@proteos/sdk 0.51.0 → 0.52.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -867,6 +867,74 @@ interface EntityService {
867
867
  delete(slug: string): Promise<void>;
868
868
  }
869
869
 
870
+ /**
871
+ * Service for entity extensions — attributes contributed to an EXISTING host
872
+ * entity by a resource that does not own it (typically a second module). The
873
+ * host's `attributes` are the materialized merge: its own attributes plus every
874
+ * extension's, each stamped with `extension_key`. Every write here
875
+ * re-materializes the host; an attribute name shared with the host or another
876
+ * extension is refused (`entity_extension_attribute_collision`).
877
+ */
878
+ interface EntityExtensionService {
879
+ /** Lists entity extensions (auto-paginating iterator). */
880
+ list(options?: ListEntityExtensionsOptions): PageIterator<EntityExtension, ListEntityExtensionsOptions>;
881
+ /** Fetches a single page of entity extensions. */
882
+ listPage(options?: ListEntityExtensionsOptions): Promise<ListResult<EntityExtension>>;
883
+ /** Gets an entity extension by key (404 when unknown). */
884
+ get(key: string): Promise<EntityExtension>;
885
+ /**
886
+ * Creates an entity extension and merges its attributes into the host.
887
+ * @throws {ProteosError} 409 `entity_extension_already_exists` when the key
888
+ * is taken; 400 `entity_extension_entity_not_found` when the host does
889
+ * not exist; 400 `entity_extension_attribute_collision` on a name clash.
890
+ */
891
+ create(request: CreateEntityExtensionRequest): Promise<EntityExtension>;
892
+ /**
893
+ * Creates or replaces an entity extension idempotently by key
894
+ * (`PUT /meta/v1/entity-extensions/:key`). Replaces the whole definition;
895
+ * the host binding (`entity_slug`) of an existing key is immutable.
896
+ */
897
+ upsert(key: string, request: CreateEntityExtensionRequest): Promise<EntityExtension>;
898
+ /** Partially updates an entity extension (`attributes` replaces the whole list). */
899
+ update(key: string, request: UpdateEntityExtensionRequest): Promise<EntityExtension>;
900
+ /** Deletes an entity extension and removes its attributes from the host. */
901
+ delete(key: string): Promise<void>;
902
+ }
903
+
904
+ /**
905
+ * Service for entity extensions — attributes contributed to an EXISTING host
906
+ * entity by a resource that does not own it (typically a second module). The
907
+ * host's `attributes` are the materialized merge: its own attributes plus every
908
+ * extension's, each stamped with `extension_key`. Every write here
909
+ * re-materializes the host; an attribute name shared with the host or another
910
+ * extension is refused (`entity_extension_attribute_collision`).
911
+ */
912
+ interface ListExtensionService {
913
+ /** Lists entity extensions (auto-paginating iterator). */
914
+ list(options?: ListListExtensionsOptions): PageIterator<ListExtension, ListListExtensionsOptions>;
915
+ /** Fetches a single page of entity extensions. */
916
+ listPage(options?: ListListExtensionsOptions): Promise<ListResult<ListExtension>>;
917
+ /** Gets an entity extension by key (404 when unknown). */
918
+ get(key: string): Promise<ListExtension>;
919
+ /**
920
+ * Creates an entity extension and merges its attributes into the host.
921
+ * @throws {ProteosError} 409 `entity_extension_already_exists` when the key
922
+ * is taken; 400 `entity_extension_entity_not_found` when the host does
923
+ * not exist; 400 `entity_extension_attribute_collision` on a name clash.
924
+ */
925
+ create(request: CreateListExtensionRequest): Promise<ListExtension>;
926
+ /**
927
+ * Creates or replaces an entity extension idempotently by key
928
+ * (`PUT /meta/v1/list-extensions/:key`). Replaces the whole definition;
929
+ * the host binding (`list_slug`) of an existing key is immutable.
930
+ */
931
+ upsert(key: string, request: CreateListExtensionRequest): Promise<ListExtension>;
932
+ /** Partially updates an entity extension (`attributes` replaces the whole list). */
933
+ update(key: string, request: UpdateListExtensionRequest): Promise<ListExtension>;
934
+ /** Deletes an entity extension and removes its attributes from the host. */
935
+ delete(key: string): Promise<void>;
936
+ }
937
+
870
938
  /**
871
939
  * Service for managing list view configurations.
872
940
  * List views define filtered and sorted views of lists.
@@ -981,6 +1049,45 @@ interface ListService {
981
1049
  delete(slug: string): Promise<void>;
982
1050
  }
983
1051
 
1052
+ /**
1053
+ * Service for menu-configuration extensions — items contributed to an EXISTING
1054
+ * host menu configuration by a resource that does not own it (typically a
1055
+ * second module). The host's `items` are the materialized merge: its own tree
1056
+ * plus every extension's placements, each contributed item stamped with
1057
+ * `extension_key` (a replaced / removed host item kept under `replaced_item`).
1058
+ * Every write here re-materializes the host; an item id shared with the host
1059
+ * or another extension is refused
1060
+ * (`menu_configuration_extension_item_id_collision`), an anchor the host does
1061
+ * not have too (`menu_configuration_extension_anchor_not_found`).
1062
+ */
1063
+ interface MenuConfigurationExtensionService {
1064
+ /** Lists menu-configuration extensions (auto-paginating iterator). */
1065
+ list(options?: ListMenuConfigurationExtensionsOptions): PageIterator<MenuConfigurationExtension, ListMenuConfigurationExtensionsOptions>;
1066
+ /** Fetches a single page of menu-configuration extensions. */
1067
+ listPage(options?: ListMenuConfigurationExtensionsOptions): Promise<ListResult<MenuConfigurationExtension>>;
1068
+ /** Gets a menu-configuration extension by key (404 when unknown). */
1069
+ get(key: string): Promise<MenuConfigurationExtension>;
1070
+ /**
1071
+ * Creates a menu-configuration extension and merges its items into the host.
1072
+ * @throws {ProteosError} 409 `menu_configuration_extension_already_exists`
1073
+ * when the key is taken; 400 `menu_configuration_extension_menu_not_found`
1074
+ * when the host does not exist; 400
1075
+ * `menu_configuration_extension_anchor_not_found` /
1076
+ * `menu_configuration_extension_item_id_collision` on a bad placement.
1077
+ */
1078
+ create(request: CreateMenuConfigurationExtensionRequest): Promise<MenuConfigurationExtension>;
1079
+ /**
1080
+ * Creates or replaces a menu-configuration extension idempotently by key
1081
+ * (`PUT /meta/v1/menu-configuration-extensions/:key`). Replaces the whole definition;
1082
+ * the host binding (`menu_slug`) of an existing key is immutable.
1083
+ */
1084
+ upsert(key: string, request: CreateMenuConfigurationExtensionRequest): Promise<MenuConfigurationExtension>;
1085
+ /** Partially updates a menu-configuration extension (`placements` replaces the whole list). */
1086
+ update(key: string, request: UpdateMenuConfigurationExtensionRequest): Promise<MenuConfigurationExtension>;
1087
+ /** Deletes a menu-configuration extension and removes its items from the host. */
1088
+ delete(key: string): Promise<void>;
1089
+ }
1090
+
984
1091
  /**
985
1092
  * Service for managing menu configurations.
986
1093
  * Menu configurations define the navigation structure of applications.
@@ -1128,6 +1235,40 @@ interface ModuleService {
1128
1235
  }>;
1129
1236
  }
1130
1237
 
1238
+ /**
1239
+ * Service for entity extensions — attributes contributed to an EXISTING host
1240
+ * entity by a resource that does not own it (typically a second module). The
1241
+ * host's `attributes` are the materialized merge: its own attributes plus every
1242
+ * extension's, each stamped with `extension_key`. Every write here
1243
+ * re-materializes the host; an attribute name shared with the host or another
1244
+ * extension is refused (`entity_extension_attribute_collision`).
1245
+ */
1246
+ interface PageExtensionService {
1247
+ /** Lists entity extensions (auto-paginating iterator). */
1248
+ list(options?: ListPageExtensionsOptions): PageIterator<PageExtension, ListPageExtensionsOptions>;
1249
+ /** Fetches a single page of entity extensions. */
1250
+ listPage(options?: ListPageExtensionsOptions): Promise<ListResult<PageExtension>>;
1251
+ /** Gets an entity extension by key (404 when unknown). */
1252
+ get(key: string): Promise<PageExtension>;
1253
+ /**
1254
+ * Creates an entity extension and merges its attributes into the host.
1255
+ * @throws {ProteosError} 409 `entity_extension_already_exists` when the key
1256
+ * is taken; 400 `entity_extension_entity_not_found` when the host does
1257
+ * not exist; 400 `entity_extension_attribute_collision` on a name clash.
1258
+ */
1259
+ create(request: CreatePageExtensionRequest): Promise<PageExtension>;
1260
+ /**
1261
+ * Creates or replaces an entity extension idempotently by key
1262
+ * (`PUT /meta/v1/page-extensions/:key`). Replaces the whole definition;
1263
+ * the host binding (`page_slug`) of an existing key is immutable.
1264
+ */
1265
+ upsert(key: string, request: CreatePageExtensionRequest): Promise<PageExtension>;
1266
+ /** Partially updates an entity extension (`attributes` replaces the whole list). */
1267
+ update(key: string, request: UpdatePageExtensionRequest): Promise<PageExtension>;
1268
+ /** Deletes an entity extension and removes its attributes from the host. */
1269
+ delete(key: string): Promise<void>;
1270
+ }
1271
+
1131
1272
  /**
1132
1273
  * Service for managing page configurations.
1133
1274
  * Pages define the layout and content of entity detail views.
@@ -1403,6 +1544,13 @@ interface ResponsiveSizing {
1403
1544
  */
1404
1545
  interface CommonProps {
1405
1546
  id?: string;
1547
+ /**
1548
+ * Server-stamped back-reference to the page extension that contributes this
1549
+ * element to its host page. Present only on a host's merged layout; ignored
1550
+ * (stripped and re-derived) on writes. Mirrors `ExtensionKey` in the Go
1551
+ * `metamodel.CommonProps`.
1552
+ */
1553
+ extension_key?: string;
1406
1554
  visible_when?: FilterGroup;
1407
1555
  read_only_when?: FilterGroup;
1408
1556
  width?: SizeValue;
@@ -1515,6 +1663,8 @@ type CardElement = CommonProps & {
1515
1663
  */
1516
1664
  type LayoutTab = {
1517
1665
  id: string;
1666
+ /** Page-extension stamp for a contributed tab — same contract as `CommonProps.extension_key`. */
1667
+ extension_key?: string;
1518
1668
  label: string;
1519
1669
  icon?: string;
1520
1670
  visible_when?: FilterGroup;
@@ -1689,6 +1839,7 @@ type TextElement = CommonProps & {
1689
1839
  content: string;
1690
1840
  };
1691
1841
  type LayoutElement = RowElement | ColumnElement | SectionElement | CardElement | TabsElement | FieldElement | RelatedListElement | RelatedRecordElement | ComponentElement | DividerElement | TextElement | RecordFilterElement | ListElement | WorkflowTriggerElement;
1842
+ declare const LayoutTabSchema: z.ZodType<LayoutTab>;
1692
1843
  declare const LayoutElementSchema: z.ZodType<LayoutElement>;
1693
1844
 
1694
1845
  /**
@@ -1853,6 +2004,26 @@ declare class MetaClient {
1853
2004
  * Service for managing entity definitions.
1854
2005
  */
1855
2006
  readonly entities: EntityService;
2007
+ /**
2008
+ * Service for managing entity extensions — attributes contributed to a host
2009
+ * entity by a resource that does not own it.
2010
+ */
2011
+ readonly entityExtensions: EntityExtensionService;
2012
+ /**
2013
+ * Service for managing page extensions — anchored layout blocks contributed
2014
+ * to a host page by a resource that does not own it.
2015
+ */
2016
+ readonly pageExtensions: PageExtensionService;
2017
+ /**
2018
+ * Service for managing list extensions — columns and toolbar actions
2019
+ * contributed to a host list by a resource that does not own it.
2020
+ */
2021
+ readonly listExtensions: ListExtensionService;
2022
+ /**
2023
+ * Service for managing menu-configuration extensions — items contributed
2024
+ * to a host menu by another module or resource.
2025
+ */
2026
+ readonly menuConfigurationExtensions: MenuConfigurationExtensionService;
1856
2027
  /**
1857
2028
  * Service for managing WebAssembly modules.
1858
2029
  */
@@ -2186,6 +2357,13 @@ interface Attribute {
2186
2357
  * Mirrors `IsPlatformManaged` in the Go `metamodel.Attribute`.
2187
2358
  */
2188
2359
  is_platform_managed?: boolean;
2360
+ /**
2361
+ * Server-stamped back-reference to the entity extension that contributes
2362
+ * this attribute to its host entity. Present only on a host's merged
2363
+ * attribute list; ignored (stripped and re-derived) on writes. Mirrors
2364
+ * `ExtensionKey` in the Go `metamodel.Attribute`.
2365
+ */
2366
+ extension_key?: string;
2189
2367
  /**
2190
2368
  * Attribute-level permissions. Absent means unrestricted (today's behaviour).
2191
2369
  * Platform-managed attributes cannot carry restrictions.
@@ -2230,6 +2408,7 @@ declare const AttributeSchema: z.ZodObject<{
2230
2408
  is_nullable: z.ZodOptional<z.ZodBoolean>;
2231
2409
  is_unique: z.ZodBoolean;
2232
2410
  is_read_only: z.ZodOptional<z.ZodBoolean>;
2411
+ extension_key: z.ZodOptional<z.ZodString>;
2233
2412
  restrictions: z.ZodOptional<z.ZodObject<{
2234
2413
  read: z.ZodOptional<z.ZodObject<{
2235
2414
  roles: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
@@ -2281,6 +2460,7 @@ declare const AttributeSchema: z.ZodObject<{
2281
2460
  is_unique: boolean;
2282
2461
  options?: Record<string, unknown> | undefined;
2283
2462
  meta?: unknown;
2463
+ extension_key?: string | undefined;
2284
2464
  description?: string | undefined;
2285
2465
  is_read_only?: boolean | undefined;
2286
2466
  is_nullable?: boolean | undefined;
@@ -2303,6 +2483,7 @@ declare const AttributeSchema: z.ZodObject<{
2303
2483
  is_unique: boolean;
2304
2484
  options?: Record<string, unknown> | undefined;
2305
2485
  meta?: unknown;
2486
+ extension_key?: string | undefined;
2306
2487
  description?: string | undefined;
2307
2488
  is_read_only?: boolean | undefined;
2308
2489
  is_nullable?: boolean | undefined;
@@ -2420,6 +2601,7 @@ declare const EntitySchema: z.ZodObject<{
2420
2601
  is_nullable: z.ZodOptional<z.ZodBoolean>;
2421
2602
  is_unique: z.ZodBoolean;
2422
2603
  is_read_only: z.ZodOptional<z.ZodBoolean>;
2604
+ extension_key: z.ZodOptional<z.ZodString>;
2423
2605
  restrictions: z.ZodOptional<z.ZodObject<{
2424
2606
  read: z.ZodOptional<z.ZodObject<{
2425
2607
  roles: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
@@ -2471,6 +2653,7 @@ declare const EntitySchema: z.ZodObject<{
2471
2653
  is_unique: boolean;
2472
2654
  options?: Record<string, unknown> | undefined;
2473
2655
  meta?: unknown;
2656
+ extension_key?: string | undefined;
2474
2657
  description?: string | undefined;
2475
2658
  is_read_only?: boolean | undefined;
2476
2659
  is_nullable?: boolean | undefined;
@@ -2493,6 +2676,7 @@ declare const EntitySchema: z.ZodObject<{
2493
2676
  is_unique: boolean;
2494
2677
  options?: Record<string, unknown> | undefined;
2495
2678
  meta?: unknown;
2679
+ extension_key?: string | undefined;
2496
2680
  description?: string | undefined;
2497
2681
  is_read_only?: boolean | undefined;
2498
2682
  is_nullable?: boolean | undefined;
@@ -2529,6 +2713,7 @@ declare const EntitySchema: z.ZodObject<{
2529
2713
  is_unique: boolean;
2530
2714
  options?: Record<string, unknown> | undefined;
2531
2715
  meta?: unknown;
2716
+ extension_key?: string | undefined;
2532
2717
  description?: string | undefined;
2533
2718
  is_read_only?: boolean | undefined;
2534
2719
  is_nullable?: boolean | undefined;
@@ -2570,6 +2755,7 @@ declare const EntitySchema: z.ZodObject<{
2570
2755
  is_unique: boolean;
2571
2756
  options?: Record<string, unknown> | undefined;
2572
2757
  meta?: unknown;
2758
+ extension_key?: string | undefined;
2573
2759
  description?: string | undefined;
2574
2760
  is_read_only?: boolean | undefined;
2575
2761
  is_nullable?: boolean | undefined;
@@ -2637,6 +2823,7 @@ declare const EntityWithSchemaSchema: z.ZodObject<{
2637
2823
  is_nullable: z.ZodOptional<z.ZodBoolean>;
2638
2824
  is_unique: z.ZodBoolean;
2639
2825
  is_read_only: z.ZodOptional<z.ZodBoolean>;
2826
+ extension_key: z.ZodOptional<z.ZodString>;
2640
2827
  restrictions: z.ZodOptional<z.ZodObject<{
2641
2828
  read: z.ZodOptional<z.ZodObject<{
2642
2829
  roles: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
@@ -2688,6 +2875,7 @@ declare const EntityWithSchemaSchema: z.ZodObject<{
2688
2875
  is_unique: boolean;
2689
2876
  options?: Record<string, unknown> | undefined;
2690
2877
  meta?: unknown;
2878
+ extension_key?: string | undefined;
2691
2879
  description?: string | undefined;
2692
2880
  is_read_only?: boolean | undefined;
2693
2881
  is_nullable?: boolean | undefined;
@@ -2710,6 +2898,7 @@ declare const EntityWithSchemaSchema: z.ZodObject<{
2710
2898
  is_unique: boolean;
2711
2899
  options?: Record<string, unknown> | undefined;
2712
2900
  meta?: unknown;
2901
+ extension_key?: string | undefined;
2713
2902
  description?: string | undefined;
2714
2903
  is_read_only?: boolean | undefined;
2715
2904
  is_nullable?: boolean | undefined;
@@ -2748,6 +2937,7 @@ declare const EntityWithSchemaSchema: z.ZodObject<{
2748
2937
  is_unique: boolean;
2749
2938
  options?: Record<string, unknown> | undefined;
2750
2939
  meta?: unknown;
2940
+ extension_key?: string | undefined;
2751
2941
  description?: string | undefined;
2752
2942
  is_read_only?: boolean | undefined;
2753
2943
  is_nullable?: boolean | undefined;
@@ -2790,6 +2980,7 @@ declare const EntityWithSchemaSchema: z.ZodObject<{
2790
2980
  is_unique: boolean;
2791
2981
  options?: Record<string, unknown> | undefined;
2792
2982
  meta?: unknown;
2983
+ extension_key?: string | undefined;
2793
2984
  description?: string | undefined;
2794
2985
  is_read_only?: boolean | undefined;
2795
2986
  is_nullable?: boolean | undefined;
@@ -3205,6 +3396,12 @@ interface Column {
3205
3396
  attribute: string;
3206
3397
  label: string;
3207
3398
  width: number;
3399
+ /**
3400
+ * Server-stamped back-reference to the list extension that contributes this
3401
+ * column to its host list. Present only on a host's merged column list;
3402
+ * ignored (stripped and re-derived) on writes.
3403
+ */
3404
+ extension_key?: string;
3208
3405
  }
3209
3406
  /**
3210
3407
  * Sort direction.
@@ -3244,6 +3441,8 @@ interface PageAction {
3244
3441
  params?: Record<string, string>;
3245
3442
  inputs?: Record<string, string>;
3246
3443
  skip_confirmation?: boolean;
3444
+ /** List-extension stamp on a toolbar action a list extension appended to its host list. */
3445
+ extension_key?: string;
3247
3446
  }
3248
3447
  declare const PageActionSchema: z.ZodObject<{
3249
3448
  label: z.ZodString;
@@ -3254,10 +3453,12 @@ declare const PageActionSchema: z.ZodObject<{
3254
3453
  params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
3255
3454
  inputs: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
3256
3455
  skip_confirmation: z.ZodOptional<z.ZodBoolean>;
3456
+ extension_key: z.ZodOptional<z.ZodString>;
3257
3457
  }, "strip", z.ZodTypeAny, {
3258
3458
  label: string;
3259
3459
  icon: string;
3260
3460
  params?: Record<string, string> | undefined;
3461
+ extension_key?: string | undefined;
3261
3462
  workflow?: string | undefined;
3262
3463
  inputs?: Record<string, string> | undefined;
3263
3464
  skip_confirmation?: boolean | undefined;
@@ -3267,6 +3468,7 @@ declare const PageActionSchema: z.ZodObject<{
3267
3468
  label: string;
3268
3469
  icon: string;
3269
3470
  params?: Record<string, string> | undefined;
3471
+ extension_key?: string | undefined;
3270
3472
  workflow?: string | undefined;
3271
3473
  inputs?: Record<string, string> | undefined;
3272
3474
  skip_confirmation?: boolean | undefined;
@@ -3310,14 +3512,17 @@ declare const ColumnSchema: z.ZodObject<{
3310
3512
  attribute: z.ZodString;
3311
3513
  label: z.ZodString;
3312
3514
  width: z.ZodNumber;
3515
+ extension_key: z.ZodOptional<z.ZodString>;
3313
3516
  }, "strip", z.ZodTypeAny, {
3314
3517
  width: number;
3315
3518
  label: string;
3316
3519
  attribute: string;
3520
+ extension_key?: string | undefined;
3317
3521
  }, {
3318
3522
  width: number;
3319
3523
  label: string;
3320
3524
  attribute: string;
3525
+ extension_key?: string | undefined;
3321
3526
  }>;
3322
3527
  declare const SortConfigSchema: z.ZodObject<{
3323
3528
  attribute: z.ZodString;
@@ -3361,14 +3566,17 @@ declare const ListSchema: z.ZodObject<{
3361
3566
  attribute: z.ZodString;
3362
3567
  label: z.ZodString;
3363
3568
  width: z.ZodNumber;
3569
+ extension_key: z.ZodOptional<z.ZodString>;
3364
3570
  }, "strip", z.ZodTypeAny, {
3365
3571
  width: number;
3366
3572
  label: string;
3367
3573
  attribute: string;
3574
+ extension_key?: string | undefined;
3368
3575
  }, {
3369
3576
  width: number;
3370
3577
  label: string;
3371
3578
  attribute: string;
3579
+ extension_key?: string | undefined;
3372
3580
  }>, "many">;
3373
3581
  actions: z.ZodOptional<z.ZodArray<z.ZodObject<{
3374
3582
  label: z.ZodString;
@@ -3379,10 +3587,12 @@ declare const ListSchema: z.ZodObject<{
3379
3587
  params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
3380
3588
  inputs: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
3381
3589
  skip_confirmation: z.ZodOptional<z.ZodBoolean>;
3590
+ extension_key: z.ZodOptional<z.ZodString>;
3382
3591
  }, "strip", z.ZodTypeAny, {
3383
3592
  label: string;
3384
3593
  icon: string;
3385
3594
  params?: Record<string, string> | undefined;
3595
+ extension_key?: string | undefined;
3386
3596
  workflow?: string | undefined;
3387
3597
  inputs?: Record<string, string> | undefined;
3388
3598
  skip_confirmation?: boolean | undefined;
@@ -3392,6 +3602,7 @@ declare const ListSchema: z.ZodObject<{
3392
3602
  label: string;
3393
3603
  icon: string;
3394
3604
  params?: Record<string, string> | undefined;
3605
+ extension_key?: string | undefined;
3395
3606
  workflow?: string | undefined;
3396
3607
  inputs?: Record<string, string> | undefined;
3397
3608
  skip_confirmation?: boolean | undefined;
@@ -3429,6 +3640,7 @@ declare const ListSchema: z.ZodObject<{
3429
3640
  width: number;
3430
3641
  label: string;
3431
3642
  attribute: string;
3643
+ extension_key?: string | undefined;
3432
3644
  }[];
3433
3645
  sorting: {
3434
3646
  attribute: string;
@@ -3439,6 +3651,7 @@ declare const ListSchema: z.ZodObject<{
3439
3651
  label: string;
3440
3652
  icon: string;
3441
3653
  params?: Record<string, string> | undefined;
3654
+ extension_key?: string | undefined;
3442
3655
  workflow?: string | undefined;
3443
3656
  inputs?: Record<string, string> | undefined;
3444
3657
  skip_confirmation?: boolean | undefined;
@@ -3465,6 +3678,7 @@ declare const ListSchema: z.ZodObject<{
3465
3678
  width: number;
3466
3679
  label: string;
3467
3680
  attribute: string;
3681
+ extension_key?: string | undefined;
3468
3682
  }[];
3469
3683
  sorting: {
3470
3684
  attribute: string;
@@ -3475,6 +3689,7 @@ declare const ListSchema: z.ZodObject<{
3475
3689
  label: string;
3476
3690
  icon: string;
3477
3691
  params?: Record<string, string> | undefined;
3692
+ extension_key?: string | undefined;
3478
3693
  workflow?: string | undefined;
3479
3694
  inputs?: Record<string, string> | undefined;
3480
3695
  skip_confirmation?: boolean | undefined;
@@ -3565,14 +3780,17 @@ declare const ListViewSchema: z.ZodObject<{
3565
3780
  attribute: z.ZodString;
3566
3781
  label: z.ZodString;
3567
3782
  width: z.ZodNumber;
3783
+ extension_key: z.ZodOptional<z.ZodString>;
3568
3784
  }, "strip", z.ZodTypeAny, {
3569
3785
  width: number;
3570
3786
  label: string;
3571
3787
  attribute: string;
3788
+ extension_key?: string | undefined;
3572
3789
  }, {
3573
3790
  width: number;
3574
3791
  label: string;
3575
3792
  attribute: string;
3793
+ extension_key?: string | undefined;
3576
3794
  }>, "many">;
3577
3795
  sorting: z.ZodArray<z.ZodObject<{
3578
3796
  attribute: z.ZodString;
@@ -3604,6 +3822,7 @@ declare const ListViewSchema: z.ZodObject<{
3604
3822
  width: number;
3605
3823
  label: string;
3606
3824
  attribute: string;
3825
+ extension_key?: string | undefined;
3607
3826
  }[];
3608
3827
  sorting: {
3609
3828
  attribute: string;
@@ -3629,6 +3848,7 @@ declare const ListViewSchema: z.ZodObject<{
3629
3848
  width: number;
3630
3849
  label: string;
3631
3850
  attribute: string;
3851
+ extension_key?: string | undefined;
3632
3852
  }[];
3633
3853
  sorting: {
3634
3854
  attribute: string;
@@ -3737,10 +3957,12 @@ declare const PageSchema: z.ZodObject<{
3737
3957
  params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
3738
3958
  inputs: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
3739
3959
  skip_confirmation: z.ZodOptional<z.ZodBoolean>;
3960
+ extension_key: z.ZodOptional<z.ZodString>;
3740
3961
  }, "strip", z.ZodTypeAny, {
3741
3962
  label: string;
3742
3963
  icon: string;
3743
3964
  params?: Record<string, string> | undefined;
3965
+ extension_key?: string | undefined;
3744
3966
  workflow?: string | undefined;
3745
3967
  inputs?: Record<string, string> | undefined;
3746
3968
  skip_confirmation?: boolean | undefined;
@@ -3750,6 +3972,7 @@ declare const PageSchema: z.ZodObject<{
3750
3972
  label: string;
3751
3973
  icon: string;
3752
3974
  params?: Record<string, string> | undefined;
3975
+ extension_key?: string | undefined;
3753
3976
  workflow?: string | undefined;
3754
3977
  inputs?: Record<string, string> | undefined;
3755
3978
  skip_confirmation?: boolean | undefined;
@@ -3836,6 +4059,7 @@ declare const PageSchema: z.ZodObject<{
3836
4059
  label: string;
3837
4060
  icon: string;
3838
4061
  params?: Record<string, string> | undefined;
4062
+ extension_key?: string | undefined;
3839
4063
  workflow?: string | undefined;
3840
4064
  inputs?: Record<string, string> | undefined;
3841
4065
  skip_confirmation?: boolean | undefined;
@@ -3877,6 +4101,7 @@ declare const PageSchema: z.ZodObject<{
3877
4101
  label: string;
3878
4102
  icon: string;
3879
4103
  params?: Record<string, string> | undefined;
4104
+ extension_key?: string | undefined;
3880
4105
  workflow?: string | undefined;
3881
4106
  inputs?: Record<string, string> | undefined;
3882
4107
  skip_confirmation?: boolean | undefined;
@@ -3967,6 +4192,7 @@ type MenuItemType = (typeof MenuItemType)[keyof typeof MenuItemType];
3967
4192
  * Menu item definition. Matches the backend JSON shape for nested menus.
3968
4193
  */
3969
4194
  interface MenuItem {
4195
+ /** Stable within the menu; the menu's extension API (menu-configuration extensions anchor on it). */
3970
4196
  id: string;
3971
4197
  order: number;
3972
4198
  label: string;
@@ -3974,6 +4200,12 @@ interface MenuItem {
3974
4200
  icon: string;
3975
4201
  reference?: string;
3976
4202
  children: MenuItem[] | null;
4203
+ /** Server stamp: the item was contributed by this menu-configuration extension. Never authored. */
4204
+ extension_key?: string;
4205
+ /** Server stamp: a `remove` tombstone — consumers skip the item. Never authored. */
4206
+ is_hidden?: boolean;
4207
+ /** Server stamp: the host's own item this stamped item displaced (`replace` / `remove`). Never authored. */
4208
+ replaced_item?: MenuItem;
3977
4209
  }
3978
4210
  /**
3979
4211
  * Menu configuration.
@@ -4082,49 +4314,26 @@ interface UpdateMenuConfigurationRequest {
4082
4314
  items?: MenuItem[];
4083
4315
  is_default?: boolean;
4084
4316
  }
4085
- /** What an app opens on: a list (records table) or a platform page. */
4086
- type AppHomeType = 'list' | 'page';
4087
- interface AppHome {
4088
- type: AppHomeType;
4089
- reference: string;
4090
- }
4091
- declare const AppHomeSchema: z.ZodObject<{
4092
- type: z.ZodEnum<["list", "page"]>;
4093
- reference: z.ZodString;
4094
- }, "strip", z.ZodTypeAny, {
4095
- type: "page" | "list";
4096
- reference: string;
4097
- }, {
4098
- type: "page" | "list";
4099
- reference: string;
4100
- }>;
4101
4317
  /**
4102
- * AppConfigurationa TYPED binding row: "how app X presents itself" to
4103
- * everyone (`profile_slug: ''` = the app's default configuration) or to one
4104
- * profile (an override). One row per (app, profile). The web merges
4105
- * override default field-wise and falls through to structural defaults (menu
4106
- * `is_default`, first menu leaf, org-default agent, first page) for anything
4107
- * still unset.
4318
+ * EntityExtensionattributes contributed to ONE existing host entity by a
4319
+ * resource that does not own it (typically a second module). The host's
4320
+ * `attributes` are the materialized merge: its own attributes plus every
4321
+ * extension's, each stamped with `extension_key`. The row itself stores the
4322
+ * author's list unstamped. `key` is the identity; `entity_slug` is immutable
4323
+ * after create (delete and recreate to re-host).
4108
4324
  */
4109
- interface AppConfiguration extends AuditFields {
4110
- slug: string;
4325
+ interface EntityExtension extends AuditFields {
4326
+ key: string;
4111
4327
  org_id: string;
4328
+ name: string;
4329
+ description: string;
4330
+ /** The host entity the attributes are merged into. */
4331
+ entity_slug: string;
4112
4332
  module_slug: string;
4113
- app_slug: string;
4114
- /** Bound profile; `''` = the default configuration for everyone. */
4115
- profile_slug: string;
4116
- /** Home; absent = the first list/page leaf of the resolved menu. */
4117
- home?: AppHome | null;
4118
- /** Menu to show; `''` = the app's `is_default` menu. */
4119
- menu_slug?: string;
4120
- /** Agent Ask Proteos preselects in this app; `''` = the org default. */
4121
- default_agent_key?: string;
4122
- /** Agents offered in this app; empty = every org agent. */
4123
- agent_keys?: string[];
4124
- /** entity_slug → record page slug opened from this app. */
4125
- record_pages?: Record<string, string>;
4333
+ /** The contributed definitions, exactly as authored (no `extension_key`). */
4334
+ attributes: Attribute[];
4126
4335
  }
4127
- declare const AppConfigurationSchema: z.ZodObject<{
4336
+ declare const EntityExtensionSchema: z.ZodObject<{
4128
4337
  created_at: z.ZodString;
4129
4338
  updated_at: z.ZodString;
4130
4339
  created_by: z.ZodObject<{
@@ -4148,26 +4357,115 @@ declare const AppConfigurationSchema: z.ZodObject<{
4148
4357
  id: string;
4149
4358
  }>;
4150
4359
  } & {
4151
- slug: z.ZodString;
4360
+ key: z.ZodString;
4152
4361
  org_id: z.ZodString;
4362
+ name: z.ZodString;
4363
+ description: z.ZodString;
4364
+ entity_slug: z.ZodString;
4153
4365
  module_slug: z.ZodString;
4154
- app_slug: z.ZodString;
4155
- profile_slug: z.ZodString;
4156
- home: z.ZodOptional<z.ZodNullable<z.ZodObject<{
4157
- type: z.ZodEnum<["list", "page"]>;
4158
- reference: z.ZodString;
4366
+ attributes: z.ZodArray<z.ZodObject<{
4367
+ name: z.ZodString;
4368
+ type: z.ZodString;
4369
+ label: z.ZodString;
4370
+ description: z.ZodOptional<z.ZodString>;
4371
+ is_required: z.ZodBoolean;
4372
+ is_nullable: z.ZodOptional<z.ZodBoolean>;
4373
+ is_unique: z.ZodBoolean;
4374
+ is_read_only: z.ZodOptional<z.ZodBoolean>;
4375
+ extension_key: z.ZodOptional<z.ZodString>;
4376
+ restrictions: z.ZodOptional<z.ZodObject<{
4377
+ read: z.ZodOptional<z.ZodObject<{
4378
+ roles: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
4379
+ teams: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
4380
+ }, "strip", z.ZodTypeAny, {
4381
+ roles?: string[] | undefined;
4382
+ teams?: string[] | undefined;
4383
+ }, {
4384
+ roles?: string[] | undefined;
4385
+ teams?: string[] | undefined;
4386
+ }>>;
4387
+ write: z.ZodOptional<z.ZodObject<{
4388
+ roles: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
4389
+ teams: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
4390
+ }, "strip", z.ZodTypeAny, {
4391
+ roles?: string[] | undefined;
4392
+ teams?: string[] | undefined;
4393
+ }, {
4394
+ roles?: string[] | undefined;
4395
+ teams?: string[] | undefined;
4396
+ }>>;
4397
+ }, "strip", z.ZodTypeAny, {
4398
+ read?: {
4399
+ roles?: string[] | undefined;
4400
+ teams?: string[] | undefined;
4401
+ } | undefined;
4402
+ write?: {
4403
+ roles?: string[] | undefined;
4404
+ teams?: string[] | undefined;
4405
+ } | undefined;
4406
+ }, {
4407
+ read?: {
4408
+ roles?: string[] | undefined;
4409
+ teams?: string[] | undefined;
4410
+ } | undefined;
4411
+ write?: {
4412
+ roles?: string[] | undefined;
4413
+ teams?: string[] | undefined;
4414
+ } | undefined;
4415
+ }>>;
4416
+ default_value: z.ZodOptional<z.ZodUnknown>;
4417
+ meta: z.ZodOptional<z.ZodUnknown>;
4418
+ options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
4159
4419
  }, "strip", z.ZodTypeAny, {
4160
- type: "page" | "list";
4161
- reference: string;
4420
+ type: string;
4421
+ name: string;
4422
+ label: string;
4423
+ is_required: boolean;
4424
+ is_unique: boolean;
4425
+ options?: Record<string, unknown> | undefined;
4426
+ meta?: unknown;
4427
+ extension_key?: string | undefined;
4428
+ description?: string | undefined;
4429
+ is_read_only?: boolean | undefined;
4430
+ is_nullable?: boolean | undefined;
4431
+ restrictions?: {
4432
+ read?: {
4433
+ roles?: string[] | undefined;
4434
+ teams?: string[] | undefined;
4435
+ } | undefined;
4436
+ write?: {
4437
+ roles?: string[] | undefined;
4438
+ teams?: string[] | undefined;
4439
+ } | undefined;
4440
+ } | undefined;
4441
+ default_value?: unknown;
4162
4442
  }, {
4163
- type: "page" | "list";
4164
- reference: string;
4165
- }>>>;
4166
- menu_slug: z.ZodOptional<z.ZodString>;
4167
- default_agent_key: z.ZodOptional<z.ZodString>;
4168
- agent_keys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
4169
- record_pages: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
4443
+ type: string;
4444
+ name: string;
4445
+ label: string;
4446
+ is_required: boolean;
4447
+ is_unique: boolean;
4448
+ options?: Record<string, unknown> | undefined;
4449
+ meta?: unknown;
4450
+ extension_key?: string | undefined;
4451
+ description?: string | undefined;
4452
+ is_read_only?: boolean | undefined;
4453
+ is_nullable?: boolean | undefined;
4454
+ restrictions?: {
4455
+ read?: {
4456
+ roles?: string[] | undefined;
4457
+ teams?: string[] | undefined;
4458
+ } | undefined;
4459
+ write?: {
4460
+ roles?: string[] | undefined;
4461
+ teams?: string[] | undefined;
4462
+ } | undefined;
4463
+ } | undefined;
4464
+ default_value?: unknown;
4465
+ }>, "many">;
4170
4466
  }, "strip", z.ZodTypeAny, {
4467
+ key: string;
4468
+ name: string;
4171
4469
  created_at: string;
4172
4470
  updated_at: string;
4173
4471
  created_by: {
@@ -4178,20 +4476,37 @@ declare const AppConfigurationSchema: z.ZodObject<{
4178
4476
  type: "person" | "agent" | "api";
4179
4477
  id: string;
4180
4478
  };
4181
- slug: string;
4479
+ description: string;
4480
+ attributes: {
4481
+ type: string;
4482
+ name: string;
4483
+ label: string;
4484
+ is_required: boolean;
4485
+ is_unique: boolean;
4486
+ options?: Record<string, unknown> | undefined;
4487
+ meta?: unknown;
4488
+ extension_key?: string | undefined;
4489
+ description?: string | undefined;
4490
+ is_read_only?: boolean | undefined;
4491
+ is_nullable?: boolean | undefined;
4492
+ restrictions?: {
4493
+ read?: {
4494
+ roles?: string[] | undefined;
4495
+ teams?: string[] | undefined;
4496
+ } | undefined;
4497
+ write?: {
4498
+ roles?: string[] | undefined;
4499
+ teams?: string[] | undefined;
4500
+ } | undefined;
4501
+ } | undefined;
4502
+ default_value?: unknown;
4503
+ }[];
4182
4504
  module_slug: string;
4183
- app_slug: string;
4505
+ entity_slug: string;
4184
4506
  org_id: string;
4185
- profile_slug: string;
4186
- home?: {
4187
- type: "page" | "list";
4188
- reference: string;
4189
- } | null | undefined;
4190
- menu_slug?: string | undefined;
4191
- default_agent_key?: string | undefined;
4192
- agent_keys?: string[] | undefined;
4193
- record_pages?: Record<string, string> | undefined;
4194
4507
  }, {
4508
+ key: string;
4509
+ name: string;
4195
4510
  created_at: string;
4196
4511
  updated_at: string;
4197
4512
  created_by: {
@@ -4202,16 +4517,826 @@ declare const AppConfigurationSchema: z.ZodObject<{
4202
4517
  type: "person" | "agent" | "api";
4203
4518
  id: string;
4204
4519
  };
4205
- slug: string;
4206
- module_slug: string;
4207
- app_slug: string;
4208
- org_id: string;
4209
- profile_slug: string;
4210
- home?: {
4211
- type: "page" | "list";
4212
- reference: string;
4213
- } | null | undefined;
4214
- menu_slug?: string | undefined;
4520
+ description: string;
4521
+ attributes: {
4522
+ type: string;
4523
+ name: string;
4524
+ label: string;
4525
+ is_required: boolean;
4526
+ is_unique: boolean;
4527
+ options?: Record<string, unknown> | undefined;
4528
+ meta?: unknown;
4529
+ extension_key?: string | undefined;
4530
+ description?: string | undefined;
4531
+ is_read_only?: boolean | undefined;
4532
+ is_nullable?: boolean | undefined;
4533
+ restrictions?: {
4534
+ read?: {
4535
+ roles?: string[] | undefined;
4536
+ teams?: string[] | undefined;
4537
+ } | undefined;
4538
+ write?: {
4539
+ roles?: string[] | undefined;
4540
+ teams?: string[] | undefined;
4541
+ } | undefined;
4542
+ } | undefined;
4543
+ default_value?: unknown;
4544
+ }[];
4545
+ module_slug: string;
4546
+ entity_slug: string;
4547
+ org_id: string;
4548
+ }>;
4549
+ interface ListEntityExtensionsOptions extends MetaListOptions {
4550
+ key?: string;
4551
+ name?: string;
4552
+ entity_slug?: string;
4553
+ module_slug?: string;
4554
+ }
4555
+ /**
4556
+ * Request to create an entity extension: at least one attribute, no platform
4557
+ * attribute names, no `extension_key` (the server stamps it on the host).
4558
+ */
4559
+ interface CreateEntityExtensionRequest {
4560
+ key: string;
4561
+ name?: string;
4562
+ description?: string;
4563
+ entity_slug: string;
4564
+ module_slug?: string;
4565
+ attributes: Attribute[];
4566
+ }
4567
+ /**
4568
+ * Partial update. `attributes`, when present, replaces the whole contributed
4569
+ * list. `entity_slug` is immutable — delete and recreate to re-host.
4570
+ */
4571
+ interface UpdateEntityExtensionRequest {
4572
+ name?: string;
4573
+ description?: string;
4574
+ module_slug?: string;
4575
+ attributes?: Attribute[];
4576
+ }
4577
+ /**
4578
+ * Where a placement's block goes relative to its anchor. `first` / `last`
4579
+ * mean "inside this container", `before` / `after` mean "next to this node"
4580
+ * (a sibling of the same kind: element next to element, tab next to tab).
4581
+ */
4582
+ type ExtensionPosition = 'before' | 'after' | 'first' | 'last';
4583
+ declare const ExtensionPositionSchema: z.ZodEnum<["before", "after", "first", "last"]>;
4584
+ /**
4585
+ * Virtual anchors naming the layout roots (`first` / `last` only). Dots keep
4586
+ * them out of the kebab-case authored-id namespace.
4587
+ */
4588
+ declare const PAGE_EXTENSION_ANCHOR_MAIN = "layout.main";
4589
+ declare const PAGE_EXTENSION_ANCHOR_SIDE_PANEL = "layout.side_panel";
4590
+ /**
4591
+ * One anchored block: the anchor (an element id, a tab id, or a virtual root
4592
+ * anchor) in the host's OWN layout, a position, and the payload. Exactly one
4593
+ * of `elements` / `tabs` is set; which one is right follows from the anchor —
4594
+ * a tabs element (`first` / `last`) or a tab id (`before` / `after`) takes
4595
+ * `tabs`, everything else takes `elements`. The payload lands as ONE
4596
+ * contiguous run in author order. Every element and tab needs an authored id.
4597
+ */
4598
+ interface PageExtensionPlacement {
4599
+ anchor_id: string;
4600
+ position: ExtensionPosition;
4601
+ elements?: LayoutElement[];
4602
+ tabs?: LayoutTab[];
4603
+ }
4604
+ declare const PageExtensionPlacementSchema: z.ZodObject<{
4605
+ anchor_id: z.ZodString;
4606
+ position: z.ZodEnum<["before", "after", "first", "last"]>;
4607
+ elements: z.ZodOptional<z.ZodArray<z.ZodType<LayoutElement, z.ZodTypeDef, LayoutElement>, "many">>;
4608
+ tabs: z.ZodOptional<z.ZodArray<z.ZodType<LayoutTab, z.ZodTypeDef, LayoutTab>, "many">>;
4609
+ }, "strip", z.ZodTypeAny, {
4610
+ anchor_id: string;
4611
+ position: "before" | "after" | "first" | "last";
4612
+ elements?: LayoutElement[] | undefined;
4613
+ tabs?: LayoutTab[] | undefined;
4614
+ }, {
4615
+ anchor_id: string;
4616
+ position: "before" | "after" | "first" | "last";
4617
+ elements?: LayoutElement[] | undefined;
4618
+ tabs?: LayoutTab[] | undefined;
4619
+ }>;
4620
+ /**
4621
+ * PageExtension — anchored layout blocks contributed to ONE existing host page
4622
+ * by a resource that does not own it (typically a second module). The host's
4623
+ * `layout` is the materialized merge: its own tree plus every extension's
4624
+ * placements, each contributed element and tab stamped with `extension_key`.
4625
+ * The row itself stores the author's placements unstamped. `key` is the
4626
+ * identity; `page_slug` is immutable after create (delete and recreate to
4627
+ * re-host).
4628
+ */
4629
+ interface PageExtension extends AuditFields {
4630
+ key: string;
4631
+ org_id: string;
4632
+ name: string;
4633
+ description: string;
4634
+ /** The host page the placements are merged into. */
4635
+ page_slug: string;
4636
+ module_slug: string;
4637
+ /** The contributed blocks, exactly as authored (no `extension_key`). */
4638
+ placements: PageExtensionPlacement[];
4639
+ }
4640
+ declare const PageExtensionSchema: z.ZodObject<{
4641
+ created_at: z.ZodString;
4642
+ updated_at: z.ZodString;
4643
+ created_by: z.ZodObject<{
4644
+ type: z.ZodEnum<["person", "agent", "api"]>;
4645
+ id: z.ZodString;
4646
+ }, "strip", z.ZodTypeAny, {
4647
+ type: "person" | "agent" | "api";
4648
+ id: string;
4649
+ }, {
4650
+ type: "person" | "agent" | "api";
4651
+ id: string;
4652
+ }>;
4653
+ updated_by: z.ZodObject<{
4654
+ type: z.ZodEnum<["person", "agent", "api"]>;
4655
+ id: z.ZodString;
4656
+ }, "strip", z.ZodTypeAny, {
4657
+ type: "person" | "agent" | "api";
4658
+ id: string;
4659
+ }, {
4660
+ type: "person" | "agent" | "api";
4661
+ id: string;
4662
+ }>;
4663
+ } & {
4664
+ key: z.ZodString;
4665
+ org_id: z.ZodString;
4666
+ name: z.ZodString;
4667
+ description: z.ZodString;
4668
+ page_slug: z.ZodString;
4669
+ module_slug: z.ZodString;
4670
+ placements: z.ZodArray<z.ZodObject<{
4671
+ anchor_id: z.ZodString;
4672
+ position: z.ZodEnum<["before", "after", "first", "last"]>;
4673
+ elements: z.ZodOptional<z.ZodArray<z.ZodType<LayoutElement, z.ZodTypeDef, LayoutElement>, "many">>;
4674
+ tabs: z.ZodOptional<z.ZodArray<z.ZodType<LayoutTab, z.ZodTypeDef, LayoutTab>, "many">>;
4675
+ }, "strip", z.ZodTypeAny, {
4676
+ anchor_id: string;
4677
+ position: "before" | "after" | "first" | "last";
4678
+ elements?: LayoutElement[] | undefined;
4679
+ tabs?: LayoutTab[] | undefined;
4680
+ }, {
4681
+ anchor_id: string;
4682
+ position: "before" | "after" | "first" | "last";
4683
+ elements?: LayoutElement[] | undefined;
4684
+ tabs?: LayoutTab[] | undefined;
4685
+ }>, "many">;
4686
+ }, "strip", z.ZodTypeAny, {
4687
+ key: string;
4688
+ name: string;
4689
+ created_at: string;
4690
+ updated_at: string;
4691
+ created_by: {
4692
+ type: "person" | "agent" | "api";
4693
+ id: string;
4694
+ };
4695
+ updated_by: {
4696
+ type: "person" | "agent" | "api";
4697
+ id: string;
4698
+ };
4699
+ description: string;
4700
+ page_slug: string;
4701
+ module_slug: string;
4702
+ org_id: string;
4703
+ placements: {
4704
+ anchor_id: string;
4705
+ position: "before" | "after" | "first" | "last";
4706
+ elements?: LayoutElement[] | undefined;
4707
+ tabs?: LayoutTab[] | undefined;
4708
+ }[];
4709
+ }, {
4710
+ key: string;
4711
+ name: string;
4712
+ created_at: string;
4713
+ updated_at: string;
4714
+ created_by: {
4715
+ type: "person" | "agent" | "api";
4716
+ id: string;
4717
+ };
4718
+ updated_by: {
4719
+ type: "person" | "agent" | "api";
4720
+ id: string;
4721
+ };
4722
+ description: string;
4723
+ page_slug: string;
4724
+ module_slug: string;
4725
+ org_id: string;
4726
+ placements: {
4727
+ anchor_id: string;
4728
+ position: "before" | "after" | "first" | "last";
4729
+ elements?: LayoutElement[] | undefined;
4730
+ tabs?: LayoutTab[] | undefined;
4731
+ }[];
4732
+ }>;
4733
+ interface ListPageExtensionsOptions extends MetaListOptions {
4734
+ key?: string;
4735
+ name?: string;
4736
+ page_slug?: string;
4737
+ module_slug?: string;
4738
+ }
4739
+ /**
4740
+ * Request to create a page extension: at least one placement, an authored id
4741
+ * on every contributed element and tab, no `extension_key` (the server stamps
4742
+ * it on the host).
4743
+ */
4744
+ interface CreatePageExtensionRequest {
4745
+ key: string;
4746
+ name?: string;
4747
+ description?: string;
4748
+ page_slug: string;
4749
+ module_slug?: string;
4750
+ placements: PageExtensionPlacement[];
4751
+ }
4752
+ /**
4753
+ * Partial update. `placements`, when present, replaces the whole contributed
4754
+ * list. `page_slug` is immutable — delete and recreate to re-host.
4755
+ */
4756
+ interface UpdatePageExtensionRequest {
4757
+ name?: string;
4758
+ description?: string;
4759
+ module_slug?: string;
4760
+ placements?: PageExtensionPlacement[];
4761
+ }
4762
+ /**
4763
+ * Where a menu placement's block goes relative to its anchor. The four insert
4764
+ * positions are the shared `ExtensionPosition`; `replace` swaps the anchor
4765
+ * (whole subtree) for the block, `remove` hides it. Both keep the host's
4766
+ * original under `replaced_item` on the materialized tree.
4767
+ */
4768
+ type MenuConfigurationExtensionPosition = ExtensionPosition | 'replace' | 'remove';
4769
+ declare const MenuConfigurationExtensionPositionSchema: z.ZodEnum<["before", "after", "first", "last", "replace", "remove"]>;
4770
+ /** Virtual anchor naming the menu's root item list (`first` / `last` only). */
4771
+ declare const MENU_CONFIGURATION_EXTENSION_ANCHOR_ITEMS = "menu.items";
4772
+ /**
4773
+ * One anchored block: the anchor (an item id in the host's OWN tree, or the
4774
+ * virtual root `menu.items`), a position, and the contributed items (one
4775
+ * contiguous run in author order). `remove` carries no items; every other
4776
+ * position needs at least one. `first` / `last` on an item go into its
4777
+ * children (groups only). Every contributed item needs an authored id.
4778
+ */
4779
+ interface MenuConfigurationExtensionPlacement {
4780
+ anchor_id: string;
4781
+ position: MenuConfigurationExtensionPosition;
4782
+ items?: MenuItem[];
4783
+ }
4784
+ declare const MenuConfigurationExtensionPlacementSchema: z.ZodObject<{
4785
+ anchor_id: z.ZodString;
4786
+ position: z.ZodEnum<["before", "after", "first", "last", "replace", "remove"]>;
4787
+ items: z.ZodOptional<z.ZodArray<z.ZodType<MenuItem, z.ZodTypeDef, MenuItem>, "many">>;
4788
+ }, "strip", z.ZodTypeAny, {
4789
+ anchor_id: string;
4790
+ position: "before" | "after" | "first" | "last" | "replace" | "remove";
4791
+ items?: MenuItem[] | undefined;
4792
+ }, {
4793
+ anchor_id: string;
4794
+ position: "before" | "after" | "first" | "last" | "replace" | "remove";
4795
+ items?: MenuItem[] | undefined;
4796
+ }>;
4797
+ /**
4798
+ * MenuConfigurationExtension — items contributed to ONE existing host menu
4799
+ * configuration by a resource that does not own it (typically a second
4800
+ * module). The host's `items` are the materialized merge: its own tree plus
4801
+ * every extension's placements, each contributed item stamped with
4802
+ * `extension_key` (a replaced / removed host item kept under `replaced_item`).
4803
+ * The row itself stores the author's placements unstamped. `key` is the
4804
+ * identity; `menu_slug` is immutable after create (delete and recreate to
4805
+ * re-host).
4806
+ */
4807
+ interface MenuConfigurationExtension extends AuditFields {
4808
+ key: string;
4809
+ org_id: string;
4810
+ name: string;
4811
+ description: string;
4812
+ /** The host menu configuration the placements are merged into. */
4813
+ menu_slug: string;
4814
+ module_slug: string;
4815
+ /** The contributed blocks, exactly as authored (no `extension_key`). */
4816
+ placements: MenuConfigurationExtensionPlacement[];
4817
+ }
4818
+ declare const MenuConfigurationExtensionSchema: z.ZodObject<{
4819
+ created_at: z.ZodString;
4820
+ updated_at: z.ZodString;
4821
+ created_by: z.ZodObject<{
4822
+ type: z.ZodEnum<["person", "agent", "api"]>;
4823
+ id: z.ZodString;
4824
+ }, "strip", z.ZodTypeAny, {
4825
+ type: "person" | "agent" | "api";
4826
+ id: string;
4827
+ }, {
4828
+ type: "person" | "agent" | "api";
4829
+ id: string;
4830
+ }>;
4831
+ updated_by: z.ZodObject<{
4832
+ type: z.ZodEnum<["person", "agent", "api"]>;
4833
+ id: z.ZodString;
4834
+ }, "strip", z.ZodTypeAny, {
4835
+ type: "person" | "agent" | "api";
4836
+ id: string;
4837
+ }, {
4838
+ type: "person" | "agent" | "api";
4839
+ id: string;
4840
+ }>;
4841
+ } & {
4842
+ key: z.ZodString;
4843
+ org_id: z.ZodString;
4844
+ name: z.ZodString;
4845
+ description: z.ZodString;
4846
+ menu_slug: z.ZodString;
4847
+ module_slug: z.ZodString;
4848
+ placements: z.ZodArray<z.ZodObject<{
4849
+ anchor_id: z.ZodString;
4850
+ position: z.ZodEnum<["before", "after", "first", "last", "replace", "remove"]>;
4851
+ items: z.ZodOptional<z.ZodArray<z.ZodType<MenuItem, z.ZodTypeDef, MenuItem>, "many">>;
4852
+ }, "strip", z.ZodTypeAny, {
4853
+ anchor_id: string;
4854
+ position: "before" | "after" | "first" | "last" | "replace" | "remove";
4855
+ items?: MenuItem[] | undefined;
4856
+ }, {
4857
+ anchor_id: string;
4858
+ position: "before" | "after" | "first" | "last" | "replace" | "remove";
4859
+ items?: MenuItem[] | undefined;
4860
+ }>, "many">;
4861
+ }, "strip", z.ZodTypeAny, {
4862
+ key: string;
4863
+ name: string;
4864
+ created_at: string;
4865
+ updated_at: string;
4866
+ created_by: {
4867
+ type: "person" | "agent" | "api";
4868
+ id: string;
4869
+ };
4870
+ updated_by: {
4871
+ type: "person" | "agent" | "api";
4872
+ id: string;
4873
+ };
4874
+ description: string;
4875
+ module_slug: string;
4876
+ org_id: string;
4877
+ placements: {
4878
+ anchor_id: string;
4879
+ position: "before" | "after" | "first" | "last" | "replace" | "remove";
4880
+ items?: MenuItem[] | undefined;
4881
+ }[];
4882
+ menu_slug: string;
4883
+ }, {
4884
+ key: string;
4885
+ name: string;
4886
+ created_at: string;
4887
+ updated_at: string;
4888
+ created_by: {
4889
+ type: "person" | "agent" | "api";
4890
+ id: string;
4891
+ };
4892
+ updated_by: {
4893
+ type: "person" | "agent" | "api";
4894
+ id: string;
4895
+ };
4896
+ description: string;
4897
+ module_slug: string;
4898
+ org_id: string;
4899
+ placements: {
4900
+ anchor_id: string;
4901
+ position: "before" | "after" | "first" | "last" | "replace" | "remove";
4902
+ items?: MenuItem[] | undefined;
4903
+ }[];
4904
+ menu_slug: string;
4905
+ }>;
4906
+ interface ListMenuConfigurationExtensionsOptions extends MetaListOptions {
4907
+ key?: string;
4908
+ name?: string;
4909
+ menu_slug?: string;
4910
+ module_slug?: string;
4911
+ }
4912
+ /**
4913
+ * Request to create a menu-configuration extension: at least one placement,
4914
+ * an authored id on every contributed item, no `extension_key` (the server
4915
+ * stamps it on the host).
4916
+ */
4917
+ interface CreateMenuConfigurationExtensionRequest {
4918
+ key: string;
4919
+ name?: string;
4920
+ description?: string;
4921
+ menu_slug: string;
4922
+ module_slug?: string;
4923
+ placements: MenuConfigurationExtensionPlacement[];
4924
+ }
4925
+ /**
4926
+ * Partial update. `placements`, when present, replaces the whole contributed
4927
+ * list. `menu_slug` is immutable — delete and recreate to re-host.
4928
+ */
4929
+ interface UpdateMenuConfigurationExtensionRequest {
4930
+ name?: string;
4931
+ description?: string;
4932
+ module_slug?: string;
4933
+ placements?: MenuConfigurationExtensionPlacement[];
4934
+ }
4935
+ /**
4936
+ * One anchored run of columns. `anchor_attribute` names a column of the host's
4937
+ * OWN column list by its attribute path (a column's identity); required for
4938
+ * `before` / `after`, must be empty for `first` / `last` (the ends of the
4939
+ * list). The columns land as one contiguous run in author order.
4940
+ */
4941
+ interface ListExtensionColumnPlacement {
4942
+ anchor_attribute?: string;
4943
+ position: ExtensionPosition;
4944
+ columns: Column[];
4945
+ }
4946
+ declare const ListExtensionColumnPlacementSchema: z.ZodObject<{
4947
+ anchor_attribute: z.ZodOptional<z.ZodString>;
4948
+ position: z.ZodEnum<["before", "after", "first", "last"]>;
4949
+ columns: z.ZodArray<z.ZodObject<{
4950
+ attribute: z.ZodString;
4951
+ label: z.ZodString;
4952
+ width: z.ZodNumber;
4953
+ extension_key: z.ZodOptional<z.ZodString>;
4954
+ }, "strip", z.ZodTypeAny, {
4955
+ width: number;
4956
+ label: string;
4957
+ attribute: string;
4958
+ extension_key?: string | undefined;
4959
+ }, {
4960
+ width: number;
4961
+ label: string;
4962
+ attribute: string;
4963
+ extension_key?: string | undefined;
4964
+ }>, "many">;
4965
+ }, "strip", z.ZodTypeAny, {
4966
+ columns: {
4967
+ width: number;
4968
+ label: string;
4969
+ attribute: string;
4970
+ extension_key?: string | undefined;
4971
+ }[];
4972
+ position: "before" | "after" | "first" | "last";
4973
+ anchor_attribute?: string | undefined;
4974
+ }, {
4975
+ columns: {
4976
+ width: number;
4977
+ label: string;
4978
+ attribute: string;
4979
+ extension_key?: string | undefined;
4980
+ }[];
4981
+ position: "before" | "after" | "first" | "last";
4982
+ anchor_attribute?: string | undefined;
4983
+ }>;
4984
+ /**
4985
+ * ListExtension — columns and toolbar actions contributed to ONE existing host
4986
+ * list by a resource that does not own it. The host's `columns` / `actions`
4987
+ * are the materialized merge, each contributed one stamped `extension_key`;
4988
+ * the row stores the author's payload unstamped. `key` is the identity;
4989
+ * `list_slug` is immutable after create. Sorting, filters and selection mode
4990
+ * stay the owner's.
4991
+ */
4992
+ interface ListExtension extends AuditFields {
4993
+ key: string;
4994
+ org_id: string;
4995
+ name: string;
4996
+ description: string;
4997
+ /** The host list the columns and actions are merged into. */
4998
+ list_slug: string;
4999
+ module_slug: string;
5000
+ columns: ListExtensionColumnPlacement[];
5001
+ /** Appended after the host's own toolbar actions (no anchor). */
5002
+ actions: PageAction[];
5003
+ }
5004
+ declare const ListExtensionSchema: z.ZodObject<{
5005
+ created_at: z.ZodString;
5006
+ updated_at: z.ZodString;
5007
+ created_by: z.ZodObject<{
5008
+ type: z.ZodEnum<["person", "agent", "api"]>;
5009
+ id: z.ZodString;
5010
+ }, "strip", z.ZodTypeAny, {
5011
+ type: "person" | "agent" | "api";
5012
+ id: string;
5013
+ }, {
5014
+ type: "person" | "agent" | "api";
5015
+ id: string;
5016
+ }>;
5017
+ updated_by: z.ZodObject<{
5018
+ type: z.ZodEnum<["person", "agent", "api"]>;
5019
+ id: z.ZodString;
5020
+ }, "strip", z.ZodTypeAny, {
5021
+ type: "person" | "agent" | "api";
5022
+ id: string;
5023
+ }, {
5024
+ type: "person" | "agent" | "api";
5025
+ id: string;
5026
+ }>;
5027
+ } & {
5028
+ key: z.ZodString;
5029
+ org_id: z.ZodString;
5030
+ name: z.ZodString;
5031
+ description: z.ZodString;
5032
+ list_slug: z.ZodString;
5033
+ module_slug: z.ZodString;
5034
+ columns: z.ZodArray<z.ZodObject<{
5035
+ anchor_attribute: z.ZodOptional<z.ZodString>;
5036
+ position: z.ZodEnum<["before", "after", "first", "last"]>;
5037
+ columns: z.ZodArray<z.ZodObject<{
5038
+ attribute: z.ZodString;
5039
+ label: z.ZodString;
5040
+ width: z.ZodNumber;
5041
+ extension_key: z.ZodOptional<z.ZodString>;
5042
+ }, "strip", z.ZodTypeAny, {
5043
+ width: number;
5044
+ label: string;
5045
+ attribute: string;
5046
+ extension_key?: string | undefined;
5047
+ }, {
5048
+ width: number;
5049
+ label: string;
5050
+ attribute: string;
5051
+ extension_key?: string | undefined;
5052
+ }>, "many">;
5053
+ }, "strip", z.ZodTypeAny, {
5054
+ columns: {
5055
+ width: number;
5056
+ label: string;
5057
+ attribute: string;
5058
+ extension_key?: string | undefined;
5059
+ }[];
5060
+ position: "before" | "after" | "first" | "last";
5061
+ anchor_attribute?: string | undefined;
5062
+ }, {
5063
+ columns: {
5064
+ width: number;
5065
+ label: string;
5066
+ attribute: string;
5067
+ extension_key?: string | undefined;
5068
+ }[];
5069
+ position: "before" | "after" | "first" | "last";
5070
+ anchor_attribute?: string | undefined;
5071
+ }>, "many">;
5072
+ actions: z.ZodArray<z.ZodObject<{
5073
+ label: z.ZodString;
5074
+ icon: z.ZodString;
5075
+ kind: z.ZodOptional<z.ZodEnum<["action", "workflow"]>>;
5076
+ action: z.ZodOptional<z.ZodString>;
5077
+ workflow: z.ZodOptional<z.ZodString>;
5078
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
5079
+ inputs: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
5080
+ skip_confirmation: z.ZodOptional<z.ZodBoolean>;
5081
+ extension_key: z.ZodOptional<z.ZodString>;
5082
+ }, "strip", z.ZodTypeAny, {
5083
+ label: string;
5084
+ icon: string;
5085
+ params?: Record<string, string> | undefined;
5086
+ extension_key?: string | undefined;
5087
+ workflow?: string | undefined;
5088
+ inputs?: Record<string, string> | undefined;
5089
+ skip_confirmation?: boolean | undefined;
5090
+ action?: string | undefined;
5091
+ kind?: "workflow" | "action" | undefined;
5092
+ }, {
5093
+ label: string;
5094
+ icon: string;
5095
+ params?: Record<string, string> | undefined;
5096
+ extension_key?: string | undefined;
5097
+ workflow?: string | undefined;
5098
+ inputs?: Record<string, string> | undefined;
5099
+ skip_confirmation?: boolean | undefined;
5100
+ action?: string | undefined;
5101
+ kind?: "workflow" | "action" | undefined;
5102
+ }>, "many">;
5103
+ }, "strip", z.ZodTypeAny, {
5104
+ key: string;
5105
+ name: string;
5106
+ created_at: string;
5107
+ updated_at: string;
5108
+ created_by: {
5109
+ type: "person" | "agent" | "api";
5110
+ id: string;
5111
+ };
5112
+ updated_by: {
5113
+ type: "person" | "agent" | "api";
5114
+ id: string;
5115
+ };
5116
+ description: string;
5117
+ list_slug: string;
5118
+ module_slug: string;
5119
+ columns: {
5120
+ columns: {
5121
+ width: number;
5122
+ label: string;
5123
+ attribute: string;
5124
+ extension_key?: string | undefined;
5125
+ }[];
5126
+ position: "before" | "after" | "first" | "last";
5127
+ anchor_attribute?: string | undefined;
5128
+ }[];
5129
+ actions: {
5130
+ label: string;
5131
+ icon: string;
5132
+ params?: Record<string, string> | undefined;
5133
+ extension_key?: string | undefined;
5134
+ workflow?: string | undefined;
5135
+ inputs?: Record<string, string> | undefined;
5136
+ skip_confirmation?: boolean | undefined;
5137
+ action?: string | undefined;
5138
+ kind?: "workflow" | "action" | undefined;
5139
+ }[];
5140
+ org_id: string;
5141
+ }, {
5142
+ key: string;
5143
+ name: string;
5144
+ created_at: string;
5145
+ updated_at: string;
5146
+ created_by: {
5147
+ type: "person" | "agent" | "api";
5148
+ id: string;
5149
+ };
5150
+ updated_by: {
5151
+ type: "person" | "agent" | "api";
5152
+ id: string;
5153
+ };
5154
+ description: string;
5155
+ list_slug: string;
5156
+ module_slug: string;
5157
+ columns: {
5158
+ columns: {
5159
+ width: number;
5160
+ label: string;
5161
+ attribute: string;
5162
+ extension_key?: string | undefined;
5163
+ }[];
5164
+ position: "before" | "after" | "first" | "last";
5165
+ anchor_attribute?: string | undefined;
5166
+ }[];
5167
+ actions: {
5168
+ label: string;
5169
+ icon: string;
5170
+ params?: Record<string, string> | undefined;
5171
+ extension_key?: string | undefined;
5172
+ workflow?: string | undefined;
5173
+ inputs?: Record<string, string> | undefined;
5174
+ skip_confirmation?: boolean | undefined;
5175
+ action?: string | undefined;
5176
+ kind?: "workflow" | "action" | undefined;
5177
+ }[];
5178
+ org_id: string;
5179
+ }>;
5180
+ interface ListListExtensionsOptions extends MetaListOptions {
5181
+ key?: string;
5182
+ name?: string;
5183
+ list_slug?: string;
5184
+ module_slug?: string;
5185
+ }
5186
+ /**
5187
+ * Request to create a list extension: at least one column placement or
5188
+ * action, no `extension_key` (the server stamps it on the host).
5189
+ */
5190
+ interface CreateListExtensionRequest {
5191
+ key: string;
5192
+ name?: string;
5193
+ description?: string;
5194
+ list_slug: string;
5195
+ module_slug?: string;
5196
+ columns?: ListExtensionColumnPlacement[];
5197
+ actions?: PageAction[];
5198
+ }
5199
+ /**
5200
+ * Partial update. `columns` / `actions`, when present, each replace their
5201
+ * whole list. `list_slug` is immutable — delete and recreate to re-host.
5202
+ */
5203
+ interface UpdateListExtensionRequest {
5204
+ name?: string;
5205
+ description?: string;
5206
+ module_slug?: string;
5207
+ columns?: ListExtensionColumnPlacement[];
5208
+ actions?: PageAction[];
5209
+ }
5210
+ /** What an app opens on: a list (records table) or a platform page. */
5211
+ type AppHomeType = 'list' | 'page';
5212
+ interface AppHome {
5213
+ type: AppHomeType;
5214
+ reference: string;
5215
+ }
5216
+ declare const AppHomeSchema: z.ZodObject<{
5217
+ type: z.ZodEnum<["list", "page"]>;
5218
+ reference: z.ZodString;
5219
+ }, "strip", z.ZodTypeAny, {
5220
+ type: "page" | "list";
5221
+ reference: string;
5222
+ }, {
5223
+ type: "page" | "list";
5224
+ reference: string;
5225
+ }>;
5226
+ /**
5227
+ * AppConfiguration — a TYPED binding row: "how app X presents itself" to
5228
+ * everyone (`profile_slug: ''` = the app's default configuration) or to one
5229
+ * profile (an override). One row per (app, profile). The web merges
5230
+ * override ⊕ default field-wise and falls through to structural defaults (menu
5231
+ * `is_default`, first menu leaf, org-default agent, first page) for anything
5232
+ * still unset.
5233
+ */
5234
+ interface AppConfiguration extends AuditFields {
5235
+ slug: string;
5236
+ org_id: string;
5237
+ module_slug: string;
5238
+ app_slug: string;
5239
+ /** Bound profile; `''` = the default configuration for everyone. */
5240
+ profile_slug: string;
5241
+ /** Home; absent = the first list/page leaf of the resolved menu. */
5242
+ home?: AppHome | null;
5243
+ /** Menu to show; `''` = the app's `is_default` menu. */
5244
+ menu_slug?: string;
5245
+ /** Agent Ask Proteos preselects in this app; `''` = the org default. */
5246
+ default_agent_key?: string;
5247
+ /** Agents offered in this app; empty = every org agent. */
5248
+ agent_keys?: string[];
5249
+ /** entity_slug → record page slug opened from this app. */
5250
+ record_pages?: Record<string, string>;
5251
+ }
5252
+ declare const AppConfigurationSchema: z.ZodObject<{
5253
+ created_at: z.ZodString;
5254
+ updated_at: z.ZodString;
5255
+ created_by: z.ZodObject<{
5256
+ type: z.ZodEnum<["person", "agent", "api"]>;
5257
+ id: z.ZodString;
5258
+ }, "strip", z.ZodTypeAny, {
5259
+ type: "person" | "agent" | "api";
5260
+ id: string;
5261
+ }, {
5262
+ type: "person" | "agent" | "api";
5263
+ id: string;
5264
+ }>;
5265
+ updated_by: z.ZodObject<{
5266
+ type: z.ZodEnum<["person", "agent", "api"]>;
5267
+ id: z.ZodString;
5268
+ }, "strip", z.ZodTypeAny, {
5269
+ type: "person" | "agent" | "api";
5270
+ id: string;
5271
+ }, {
5272
+ type: "person" | "agent" | "api";
5273
+ id: string;
5274
+ }>;
5275
+ } & {
5276
+ slug: z.ZodString;
5277
+ org_id: z.ZodString;
5278
+ module_slug: z.ZodString;
5279
+ app_slug: z.ZodString;
5280
+ profile_slug: z.ZodString;
5281
+ home: z.ZodOptional<z.ZodNullable<z.ZodObject<{
5282
+ type: z.ZodEnum<["list", "page"]>;
5283
+ reference: z.ZodString;
5284
+ }, "strip", z.ZodTypeAny, {
5285
+ type: "page" | "list";
5286
+ reference: string;
5287
+ }, {
5288
+ type: "page" | "list";
5289
+ reference: string;
5290
+ }>>>;
5291
+ menu_slug: z.ZodOptional<z.ZodString>;
5292
+ default_agent_key: z.ZodOptional<z.ZodString>;
5293
+ agent_keys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
5294
+ record_pages: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
5295
+ }, "strip", z.ZodTypeAny, {
5296
+ created_at: string;
5297
+ updated_at: string;
5298
+ created_by: {
5299
+ type: "person" | "agent" | "api";
5300
+ id: string;
5301
+ };
5302
+ updated_by: {
5303
+ type: "person" | "agent" | "api";
5304
+ id: string;
5305
+ };
5306
+ slug: string;
5307
+ module_slug: string;
5308
+ app_slug: string;
5309
+ org_id: string;
5310
+ profile_slug: string;
5311
+ menu_slug?: string | undefined;
5312
+ home?: {
5313
+ type: "page" | "list";
5314
+ reference: string;
5315
+ } | null | undefined;
5316
+ default_agent_key?: string | undefined;
5317
+ agent_keys?: string[] | undefined;
5318
+ record_pages?: Record<string, string> | undefined;
5319
+ }, {
5320
+ created_at: string;
5321
+ updated_at: string;
5322
+ created_by: {
5323
+ type: "person" | "agent" | "api";
5324
+ id: string;
5325
+ };
5326
+ updated_by: {
5327
+ type: "person" | "agent" | "api";
5328
+ id: string;
5329
+ };
5330
+ slug: string;
5331
+ module_slug: string;
5332
+ app_slug: string;
5333
+ org_id: string;
5334
+ profile_slug: string;
5335
+ menu_slug?: string | undefined;
5336
+ home?: {
5337
+ type: "page" | "list";
5338
+ reference: string;
5339
+ } | null | undefined;
4215
5340
  default_agent_key?: string | undefined;
4216
5341
  agent_keys?: string[] | undefined;
4217
5342
  record_pages?: Record<string, string> | undefined;
@@ -4487,4 +5612,4 @@ declare function isCurrentUserDefault(value: unknown): value is CurrentUserDefau
4487
5612
  /** Only the identity-valued attribute types can carry the sentinel. */
4488
5613
  declare function acceptsCurrentUserDefault(type: AttributeType): boolean;
4489
5614
 
4490
- export { type DesignReferenceContent as $, type AuditFields as A, type ComponentService as B, CURRENT_USER_DEFAULT as C, type CreateAppConfigurationRequest as D, type CreateAppRequest as E, type FileRef as F, type CreateComponentRequest as G, type CreateDesignReferenceRequest as H, type CreateEntityRequest as I, type CreateListRequest as J, type CreateListViewRequest as K, type ListOptions as L, type CreateMenuConfigurationRequest as M, type CreatePageRequest as N, type CreateVariableRequest as O, PageIterator as P, type CurrencyAttributeMeta as Q, CurrencyAttributeMetaSchema as R, type CurrencySymbolSide as S, type CurrencyValue as T, type UserRef as U, type CurrentUserDefault as V, DEFAULT_OPTIONS as W, DEFAULT_PAGE_SIZE as X, DONE as Y, type DeployModuleRequest as Z, type DesignReference as _, type Attribute as a, RelationAttributeMetaSchema as a$, DesignReferenceSchema as a0, type DesignReferenceService as a1, type Done as a2, type Entity as a3, EntitySchema as a4, type EntityService as a5, type EntityWithSchema as a6, EntityWithSchemaSchema as a7, type EnumAttributeMeta as a8, type EnumValue as a9, MenuConfigurationSchema as aA, type MenuConfigurationService as aB, type MenuItem as aC, MenuItemSchema as aD, MenuItemType as aE, MetaClient as aF, type MetaListOptions as aG, type Module as aH, ModuleSchema as aI, type ModuleService as aJ, type ModuleStatus as aK, type OnDeleteAction as aL, OnDeleteActionSchema as aM, PLATFORM_ATTRIBUTE_NAMES as aN, PLATFORM_USER_ID as aO, type Page as aP, type PageAction as aQ, type PageActionKind as aR, PageActionSchema as aS, type PageLayout as aT, PageLayoutSchema as aU, PageSchema as aV, type PageService as aW, type PageType as aX, type PublicPageComponent as aY, type PublicPageResponse as aZ, type RelationAttributeMeta as a_, type FileAttributeMeta as aa, FileRefSchema as ab, type FilterElement as ac, FilterElementSchema as ad, type FilterGroup as ae, FilterGroupSchema as af, type List as ag, type ListAppConfigurationsOptions as ah, type ListAppsOptions as ai, type ListComponentsOptions as aj, type ListDesignReferencesOptions as ak, type ListEntitiesOptions as al, type ListFn as am, type ListListViewsOptions as an, type ListListsOptions as ao, type ListMenuConfigurationsOptions as ap, type ListModulesOptions as aq, type ListPagesOptions as ar, ListSchema as as, type ListService as at, type ListVariablesOptions as au, type ListView as av, ListViewSchema as aw, type ListViewService as ax, type LogicalOperator as ay, type MenuConfiguration as az, type ListResult as b, type ListElement as b$, type RequestOptions as b0, type ResolvedClientOptions as b1, type ResponseMeta as b2, ResponseMetaSchema as b3, type SortConfig as b4, SortConfigSchema as b5, type SortDirection as b6, type Timestamps as b7, type TokenProvider as b8, type UpdateAppConfigurationRequest as b9, parseAmount as bA, parseCurrencyMeta as bB, parseFileMeta as bC, parseRelationMeta as bD, platformAttributes as bE, resolveOptions as bF, type AttributeForLookup as bG, type AttributeMeta as bH, BUILT_IN_CONTROLS as bI, type BuiltInControlSlug as bJ, type CardElement as bK, type ColumnElement as bL, type CommonProps as bM, type ComponentElement as bN, type ControlBucket as bO, type DatetimeAttributeMeta as bP, type DatetimeFormat as bQ, type DividerElement as bR, type FieldElement as bS, FileAttributeMetaSchema as bT, type LayoutAlign as bU, type LayoutElement as bV, LayoutElementSchema as bW, LayoutElementType as bX, type LayoutGap as bY, type LayoutJustify as bZ, type LayoutTab as b_, type UpdateAppRequest as ba, type UpdateComponentRequest as bb, type UpdateDesignReferenceRequest as bc, type UpdateEntityRequest as bd, type UpdateListRequest as be, type UpdateListViewRequest as bf, type UpdateMenuConfigurationRequest as bg, type UpdatePageRequest as bh, type UpdateVariableRequest as bi, UserRefSchema as bj, type UserType as bk, type Variable as bl, VariableSchema as bm, type VariableService as bn, acceptsCurrentUserDefault as bo, allCurrencyCodes as bp, createIterator as bq, createListResultSchema as br, currencyLabel as bs, currencySymbol as bt, currencySymbolSide as bu, formatAmount as bv, formatMoney as bw, isCurrentUserDefault as bx, isPlatformAttributeName as by, localeNumberSeparators as bz, ProteosClient as c, type NumberAttributeMeta as c0, type ObjectAttributeMeta as c1, PAGE_BACKGROUND_TOKENS as c2, type PageBackgroundToken as c3, type PageLayoutSidePanel as c4, PageLayoutSidePanelSchema as c5, type PageStyle as c6, PageStyleSchema as c7, type PrincipalAttributeMeta as c8, type PrincipalType as c9, type RecordFilterElement as ca, type RelatedListElement as cb, type RelatedRecordElement as cc, type ResponsiveSizing as cd, type RowElement as ce, type SectionElement as cf, type SizeValue as cg, SizeValueSchema as ch, type SizingProps as ci, type StringAttributeMeta as cj, type StringFormat as ck, type TabsElement as cl, type TextElement as cm, type TextVariant as cn, type UserAttributeMeta as co, UserAttributeMetaSchema as cp, type WorkflowTriggerElement as cq, isBuiltInControl as cr, lookupCompatibleControls as cs, lookupControls as ct, lookupPrimaryControl as cu, parsePrincipalMeta as cv, parseUserMeta as cw, type PrincipalRef as d, type PublicAccessOperation as e, type App as f, type AppConfiguration as g, AppConfigurationSchema as h, type AppConfigurationService as i, type AppHome as j, AppHomeSchema as k, type AppHomeType as l, AppSchema as m, type AppService as n, type ArrayAttributeMeta as o, type AttributeAccessRule as p, type AttributeRestrictions as q, AttributeSchema as r, type AttributeType as s, AuditFieldsSchema as t, type ClientOptions as u, type Column as v, ColumnSchema as w, type ComparisonOperator as x, type Component as y, ComponentSchema as z };
5615
+ export { DEFAULT_PAGE_SIZE as $, type AuditFields as A, type ComponentService as B, CURRENT_USER_DEFAULT as C, type CreateAppConfigurationRequest as D, type CreateAppRequest as E, type FileRef as F, type CreateComponentRequest as G, type CreateDesignReferenceRequest as H, type CreateEntityExtensionRequest as I, type CreateEntityRequest as J, type CreateListExtensionRequest as K, type ListOptions as L, type CreateListRequest as M, type CreateListViewRequest as N, type CreateMenuConfigurationExtensionRequest as O, PageIterator as P, type CreateMenuConfigurationRequest as Q, type CreatePageExtensionRequest as R, type CreatePageRequest as S, type CreateVariableRequest as T, type UserRef as U, type CurrencyAttributeMeta as V, CurrencyAttributeMetaSchema as W, type CurrencySymbolSide as X, type CurrencyValue as Y, type CurrentUserDefault as Z, DEFAULT_OPTIONS as _, type Attribute as a, type MenuConfigurationService as a$, DONE as a0, type DeployModuleRequest as a1, type DesignReference as a2, type DesignReferenceContent as a3, DesignReferenceSchema as a4, type DesignReferenceService as a5, type Done as a6, type Entity as a7, type EntityExtension as a8, EntityExtensionSchema as a9, type ListExtensionService as aA, type ListFn as aB, type ListListExtensionsOptions as aC, type ListListViewsOptions as aD, type ListListsOptions as aE, type ListMenuConfigurationExtensionsOptions as aF, type ListMenuConfigurationsOptions as aG, type ListModulesOptions as aH, type ListPageExtensionsOptions as aI, type ListPagesOptions as aJ, ListSchema as aK, type ListService as aL, type ListVariablesOptions as aM, type ListView as aN, ListViewSchema as aO, type ListViewService as aP, type LogicalOperator as aQ, MENU_CONFIGURATION_EXTENSION_ANCHOR_ITEMS as aR, type MenuConfiguration as aS, type MenuConfigurationExtension as aT, type MenuConfigurationExtensionPlacement as aU, MenuConfigurationExtensionPlacementSchema as aV, type MenuConfigurationExtensionPosition as aW, MenuConfigurationExtensionPositionSchema as aX, MenuConfigurationExtensionSchema as aY, type MenuConfigurationExtensionService as aZ, MenuConfigurationSchema as a_, type EntityExtensionService as aa, EntitySchema as ab, type EntityService as ac, type EntityWithSchema as ad, EntityWithSchemaSchema as ae, type EnumAttributeMeta as af, type EnumValue as ag, type ExtensionPosition as ah, ExtensionPositionSchema as ai, type FileAttributeMeta as aj, FileRefSchema as ak, type FilterElement as al, FilterElementSchema as am, type FilterGroup as an, FilterGroupSchema as ao, type List as ap, type ListAppConfigurationsOptions as aq, type ListAppsOptions as ar, type ListComponentsOptions as as, type ListDesignReferencesOptions as at, type ListEntitiesOptions as au, type ListEntityExtensionsOptions as av, type ListExtension as aw, type ListExtensionColumnPlacement as ax, ListExtensionColumnPlacementSchema as ay, ListExtensionSchema as az, type ListResult as b, createIterator as b$, type MenuItem as b0, MenuItemSchema as b1, MenuItemType as b2, MetaClient as b3, type MetaListOptions as b4, type Module as b5, ModuleSchema as b6, type ModuleService as b7, type ModuleStatus as b8, type OnDeleteAction as b9, ResponseMetaSchema as bA, type SortConfig as bB, SortConfigSchema as bC, type SortDirection as bD, type Timestamps as bE, type TokenProvider as bF, type UpdateAppConfigurationRequest as bG, type UpdateAppRequest as bH, type UpdateComponentRequest as bI, type UpdateDesignReferenceRequest as bJ, type UpdateEntityExtensionRequest as bK, type UpdateEntityRequest as bL, type UpdateListExtensionRequest as bM, type UpdateListRequest as bN, type UpdateListViewRequest as bO, type UpdateMenuConfigurationExtensionRequest as bP, type UpdateMenuConfigurationRequest as bQ, type UpdatePageExtensionRequest as bR, type UpdatePageRequest as bS, type UpdateVariableRequest as bT, UserRefSchema as bU, type UserType as bV, type Variable as bW, VariableSchema as bX, type VariableService as bY, acceptsCurrentUserDefault as bZ, allCurrencyCodes as b_, OnDeleteActionSchema as ba, PAGE_EXTENSION_ANCHOR_MAIN as bb, PAGE_EXTENSION_ANCHOR_SIDE_PANEL as bc, PLATFORM_ATTRIBUTE_NAMES as bd, PLATFORM_USER_ID as be, type Page as bf, type PageAction as bg, type PageActionKind as bh, PageActionSchema as bi, type PageExtension as bj, type PageExtensionPlacement as bk, PageExtensionPlacementSchema as bl, PageExtensionSchema as bm, type PageExtensionService as bn, type PageLayout as bo, PageLayoutSchema as bp, PageSchema as bq, type PageService as br, type PageType as bs, type PublicPageComponent as bt, type PublicPageResponse as bu, type RelationAttributeMeta as bv, RelationAttributeMetaSchema as bw, type RequestOptions as bx, type ResolvedClientOptions as by, type ResponseMeta as bz, ProteosClient as c, UserAttributeMetaSchema as c$, createListResultSchema as c0, currencyLabel as c1, currencySymbol as c2, currencySymbolSide as c3, formatAmount as c4, formatMoney as c5, isCurrentUserDefault as c6, isPlatformAttributeName as c7, localeNumberSeparators as c8, parseAmount as c9, LayoutTabSchema as cA, type ListElement as cB, type NumberAttributeMeta as cC, type ObjectAttributeMeta as cD, PAGE_BACKGROUND_TOKENS as cE, type PageBackgroundToken as cF, type PageLayoutSidePanel as cG, PageLayoutSidePanelSchema as cH, type PageStyle as cI, PageStyleSchema as cJ, type PrincipalAttributeMeta as cK, type PrincipalType as cL, type RecordFilterElement as cM, type RelatedListElement as cN, type RelatedRecordElement as cO, type ResponsiveSizing as cP, type RowElement as cQ, type SectionElement as cR, type SizeValue as cS, SizeValueSchema as cT, type SizingProps as cU, type StringAttributeMeta as cV, type StringFormat as cW, type TabsElement as cX, type TextElement as cY, type TextVariant as cZ, type UserAttributeMeta as c_, parseCurrencyMeta as ca, parseFileMeta as cb, parseRelationMeta as cc, platformAttributes as cd, resolveOptions as ce, type AttributeForLookup as cf, type AttributeMeta as cg, BUILT_IN_CONTROLS as ch, type BuiltInControlSlug as ci, type CardElement as cj, type ColumnElement as ck, type CommonProps as cl, type ComponentElement as cm, type ControlBucket as cn, type DatetimeAttributeMeta as co, type DatetimeFormat as cp, type DividerElement as cq, type FieldElement as cr, FileAttributeMetaSchema as cs, type LayoutAlign as ct, type LayoutElement as cu, LayoutElementSchema as cv, LayoutElementType as cw, type LayoutGap as cx, type LayoutJustify as cy, type LayoutTab as cz, type PrincipalRef as d, type WorkflowTriggerElement as d0, isBuiltInControl as d1, lookupCompatibleControls as d2, lookupControls as d3, lookupPrimaryControl as d4, parsePrincipalMeta as d5, parseUserMeta as d6, type PublicAccessOperation as e, type App as f, type AppConfiguration as g, AppConfigurationSchema as h, type AppConfigurationService as i, type AppHome as j, AppHomeSchema as k, type AppHomeType as l, AppSchema as m, type AppService as n, type ArrayAttributeMeta as o, type AttributeAccessRule as p, type AttributeRestrictions as q, AttributeSchema as r, type AttributeType as s, AuditFieldsSchema as t, type ClientOptions as u, type Column as v, ColumnSchema as w, type ComparisonOperator as x, type Component as y, ComponentSchema as z };