@objectstack/plugin-approvals 17.3.0 → 17.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -422,7 +422,7 @@ declare const SysApprovalRequest: Omit<{
422
422
  nameField?: string | undefined;
423
423
  displayNameField?: string | undefined;
424
424
  titleFormat?: string | {
425
- dialect: "cel" | "cron" | "template";
425
+ dialect: "template";
426
426
  source?: string | undefined;
427
427
  ast?: unknown;
428
428
  meta?: {
@@ -484,7 +484,6 @@ declare const SysApprovalRequest: Omit<{
484
484
  }) | undefined;
485
485
  name?: string | undefined;
486
486
  tree?: {
487
- [x: string]: unknown;
488
487
  parentField?: string | undefined;
489
488
  labelField?: string | undefined;
490
489
  fields?: string[] | undefined;
@@ -495,6 +494,68 @@ declare const SysApprovalRequest: Omit<{
495
494
  defaultValue?: never;
496
495
  }) | undefined;
497
496
  inlineEdit?: boolean | undefined;
497
+ emptyState?: {
498
+ title?: string | (Record<string, string> & {
499
+ key?: never;
500
+ defaultValue?: never;
501
+ }) | undefined;
502
+ message?: string | (Record<string, string> & {
503
+ key?: never;
504
+ defaultValue?: never;
505
+ }) | undefined;
506
+ icon?: string | undefined;
507
+ } | undefined;
508
+ bulkActions?: string[] | undefined;
509
+ bulkActionDefs?: {
510
+ name: string;
511
+ operation: "delete" | "update" | "custom";
512
+ label?: string | undefined;
513
+ icon?: string | undefined;
514
+ variant?: "primary" | "secondary" | "outline" | "danger" | "ghost" | undefined;
515
+ execution?: "aggregate" | "perRecord" | undefined;
516
+ patch?: Record<string, unknown> | undefined;
517
+ params?: {
518
+ [x: string]: unknown;
519
+ name: string;
520
+ type: "number" | "boolean" | "user" | "date" | "record" | "file" | "code" | "url" | "email" | "datetime" | "time" | "formula" | "text" | "textarea" | "phone" | "password" | "secret" | "markdown" | "html" | "richtext" | "currency" | "percent" | "toggle" | "select" | "multiselect" | "radio" | "checkboxes" | "lookup" | "master_detail" | "tree" | "image" | "avatar" | "video" | "audio" | "summary" | "autonumber" | "composite" | "repeater" | "location" | "address" | "json" | "color" | "rating" | "slider" | "signature" | "qrcode" | "progress" | "tags" | "vector";
521
+ label?: string | undefined;
522
+ help?: string | undefined;
523
+ required?: boolean | undefined;
524
+ default?: unknown;
525
+ options?: {
526
+ [x: string]: unknown;
527
+ label: string;
528
+ value: string | number | boolean;
529
+ }[] | undefined;
530
+ object?: string | undefined;
531
+ labelField?: string | undefined;
532
+ multiple?: boolean | undefined;
533
+ placeholder?: string | undefined;
534
+ }[] | undefined;
535
+ confirmText?: string | undefined;
536
+ confirmLabel?: string | undefined;
537
+ visible?: string | {
538
+ dialect: "cel" | "cron" | "template";
539
+ source?: string | undefined;
540
+ ast?: unknown;
541
+ meta?: {
542
+ rationale?: string | undefined;
543
+ generatedBy?: string | undefined;
544
+ } | undefined;
545
+ } | undefined;
546
+ requiredPermissions?: string[] | undefined;
547
+ maxRecords?: number | undefined;
548
+ batchSize?: number | undefined;
549
+ }[] | undefined;
550
+ rowActions?: string[] | undefined;
551
+ navigation?: {
552
+ mode?: "none" | "page" | "modal" | "split" | "drawer" | "popover" | "new_window" | undefined;
553
+ view?: string | undefined;
554
+ preventNavigation?: boolean | undefined;
555
+ openNewTab?: boolean | undefined;
556
+ size?: "full" | "md" | "auto" | "sm" | "lg" | "xl" | undefined;
557
+ width?: string | number | undefined;
558
+ } | undefined;
498
559
  data?: {
499
560
  provider: "object";
500
561
  object: string;
@@ -523,14 +584,6 @@ declare const SysApprovalRequest: Omit<{
523
584
  schema?: Record<string, unknown> | undefined;
524
585
  } | undefined;
525
586
  pageName?: string | undefined;
526
- navigation?: {
527
- mode?: "none" | "page" | "modal" | "split" | "drawer" | "popover" | "new_window" | undefined;
528
- view?: string | undefined;
529
- preventNavigation?: boolean | undefined;
530
- openNewTab?: boolean | undefined;
531
- size?: "full" | "md" | "auto" | "sm" | "lg" | "xl" | undefined;
532
- width?: string | number | undefined;
533
- } | undefined;
534
587
  sharing?: {
535
588
  type?: "personal" | "collaborative" | undefined;
536
589
  lockedBy?: string | undefined;
@@ -561,60 +614,6 @@ declare const SysApprovalRequest: Omit<{
561
614
  isDefault?: boolean | undefined;
562
615
  visible?: boolean | undefined;
563
616
  }[] | undefined;
564
- emptyState?: {
565
- title?: string | (Record<string, string> & {
566
- key?: never;
567
- defaultValue?: never;
568
- }) | undefined;
569
- message?: string | (Record<string, string> & {
570
- key?: never;
571
- defaultValue?: never;
572
- }) | undefined;
573
- icon?: string | undefined;
574
- } | undefined;
575
- bulkActions?: string[] | undefined;
576
- bulkActionDefs?: {
577
- name: string;
578
- operation: "delete" | "update" | "custom";
579
- label?: string | undefined;
580
- icon?: string | undefined;
581
- variant?: "primary" | "secondary" | "outline" | "danger" | "ghost" | undefined;
582
- execution?: "aggregate" | "perRecord" | undefined;
583
- patch?: Record<string, unknown> | undefined;
584
- params?: {
585
- [x: string]: unknown;
586
- name: string;
587
- type: "number" | "boolean" | "user" | "date" | "record" | "file" | "code" | "url" | "email" | "datetime" | "time" | "formula" | "text" | "textarea" | "phone" | "password" | "secret" | "markdown" | "html" | "richtext" | "currency" | "percent" | "toggle" | "select" | "multiselect" | "radio" | "checkboxes" | "lookup" | "master_detail" | "tree" | "image" | "avatar" | "video" | "audio" | "summary" | "autonumber" | "composite" | "repeater" | "location" | "address" | "json" | "color" | "rating" | "slider" | "signature" | "qrcode" | "progress" | "tags" | "vector";
588
- label?: string | undefined;
589
- help?: string | undefined;
590
- required?: boolean | undefined;
591
- default?: unknown;
592
- options?: {
593
- [x: string]: unknown;
594
- label: string;
595
- value: string | number | boolean;
596
- }[] | undefined;
597
- object?: string | undefined;
598
- labelField?: string | undefined;
599
- multiple?: boolean | undefined;
600
- placeholder?: string | undefined;
601
- }[] | undefined;
602
- confirmText?: string | undefined;
603
- confirmLabel?: string | undefined;
604
- visible?: string | {
605
- dialect: "cel" | "cron" | "template";
606
- source?: string | undefined;
607
- ast?: unknown;
608
- meta?: {
609
- rationale?: string | undefined;
610
- generatedBy?: string | undefined;
611
- } | undefined;
612
- } | undefined;
613
- requiredPermissions?: string[] | undefined;
614
- maxRecords?: number | undefined;
615
- batchSize?: number | undefined;
616
- }[] | undefined;
617
- rowActions?: string[] | undefined;
618
617
  responsive?: undefined;
619
618
  performance?: undefined;
620
619
  striped?: undefined;
@@ -672,7 +671,6 @@ declare const SysApprovalRequest: Omit<{
672
671
  scale?: "month" | "day" | "week" | "year" | "hour" | "quarter" | undefined;
673
672
  } | undefined;
674
673
  gantt?: {
675
- [x: string]: unknown;
676
674
  startDateField: string;
677
675
  endDateField: string;
678
676
  titleField: string;
@@ -702,6 +700,31 @@ declare const SysApprovalRequest: Omit<{
702
700
  }[] | undefined;
703
701
  autoZoomToFilter?: boolean | undefined;
704
702
  viewMode?: "month" | "day" | "week" | "year" | "quarter" | undefined;
703
+ borderColorField?: string | undefined;
704
+ lockField?: string | undefined;
705
+ objectField?: string | undefined;
706
+ summaryExtent?: "children" | "self" | undefined;
707
+ defaultCollapsedDepth?: number | undefined;
708
+ dependencyTypes?: boolean | undefined;
709
+ timeZone?: string | undefined;
710
+ exportFileName?: string | undefined;
711
+ interactions?: {
712
+ move?: boolean | undefined;
713
+ resize?: boolean | undefined;
714
+ progress?: boolean | undefined;
715
+ link?: boolean | undefined;
716
+ } | undefined;
717
+ timeSegments?: {
718
+ bands: {
719
+ label: string;
720
+ start: string;
721
+ end: string;
722
+ key?: string | undefined;
723
+ color?: string | undefined;
724
+ }[];
725
+ dayStart?: string | undefined;
726
+ showMidnight?: boolean | undefined;
727
+ } | undefined;
705
728
  } | undefined;
706
729
  chart?: {
707
730
  dataset: string;
@@ -1135,6 +1158,7 @@ declare const SysApprovalRequest: Omit<{
1135
1158
  readonly _provenance?: "package" | "env-forced" | "org" | undefined;
1136
1159
  readonly _packageId?: string | undefined;
1137
1160
  readonly _packageVersion?: string | undefined;
1161
+ readonly precision?: number | undefined;
1138
1162
  readonly name?: string | undefined;
1139
1163
  readonly lookupFilters?: {
1140
1164
  field: string;
@@ -1161,7 +1185,6 @@ declare const SysApprovalRequest: Omit<{
1161
1185
  } | undefined;
1162
1186
  readonly reference?: string | undefined;
1163
1187
  readonly label?: string | undefined;
1164
- readonly precision?: number | undefined;
1165
1188
  readonly scale?: number | undefined;
1166
1189
  readonly step?: number | undefined;
1167
1190
  readonly displayField?: string | undefined;
@@ -1264,7 +1287,7 @@ declare const SysApprovalRequest: Omit<{
1264
1287
  readonly widget?: string | undefined;
1265
1288
  readonly internal?: boolean | undefined;
1266
1289
  readonly requiredPermissions?: string[] | undefined;
1267
- readonly maskingRule?: "name" | "email" | "phone" | "id_card" | "bank_account" | {
1290
+ readonly maskingRule?: "email" | "name" | "phone" | "id_card" | "bank_account" | {
1268
1291
  keepHead: number;
1269
1292
  keepTail: number;
1270
1293
  } | undefined;
@@ -1334,6 +1357,7 @@ declare const SysApprovalRequest: Omit<{
1334
1357
  readonly _provenance?: "package" | "env-forced" | "org" | undefined;
1335
1358
  readonly _packageId?: string | undefined;
1336
1359
  readonly _packageVersion?: string | undefined;
1360
+ readonly precision?: number | undefined;
1337
1361
  readonly name?: string | undefined;
1338
1362
  readonly lookupFilters?: {
1339
1363
  field: string;
@@ -1360,7 +1384,6 @@ declare const SysApprovalRequest: Omit<{
1360
1384
  } | undefined;
1361
1385
  readonly reference?: string | undefined;
1362
1386
  readonly label?: string | undefined;
1363
- readonly precision?: number | undefined;
1364
1387
  readonly scale?: number | undefined;
1365
1388
  readonly step?: number | undefined;
1366
1389
  readonly displayField?: string | undefined;
@@ -1463,7 +1486,7 @@ declare const SysApprovalRequest: Omit<{
1463
1486
  readonly widget?: string | undefined;
1464
1487
  readonly internal?: boolean | undefined;
1465
1488
  readonly requiredPermissions?: string[] | undefined;
1466
- readonly maskingRule?: "name" | "email" | "phone" | "id_card" | "bank_account" | {
1489
+ readonly maskingRule?: "email" | "name" | "phone" | "id_card" | "bank_account" | {
1467
1490
  keepHead: number;
1468
1491
  keepTail: number;
1469
1492
  } | undefined;
@@ -1524,6 +1547,7 @@ declare const SysApprovalRequest: Omit<{
1524
1547
  readonly _provenance?: "package" | "env-forced" | "org" | undefined;
1525
1548
  readonly _packageId?: string | undefined;
1526
1549
  readonly _packageVersion?: string | undefined;
1550
+ readonly precision?: number | undefined;
1527
1551
  readonly name?: string | undefined;
1528
1552
  readonly lookupFilters?: {
1529
1553
  field: string;
@@ -1550,7 +1574,6 @@ declare const SysApprovalRequest: Omit<{
1550
1574
  } | undefined;
1551
1575
  readonly reference?: string | undefined;
1552
1576
  readonly label?: string | undefined;
1553
- readonly precision?: number | undefined;
1554
1577
  readonly scale?: number | undefined;
1555
1578
  readonly step?: number | undefined;
1556
1579
  readonly displayField?: string | undefined;
@@ -1653,7 +1676,7 @@ declare const SysApprovalRequest: Omit<{
1653
1676
  readonly widget?: string | undefined;
1654
1677
  readonly internal?: boolean | undefined;
1655
1678
  readonly requiredPermissions?: string[] | undefined;
1656
- readonly maskingRule?: "name" | "email" | "phone" | "id_card" | "bank_account" | {
1679
+ readonly maskingRule?: "email" | "name" | "phone" | "id_card" | "bank_account" | {
1657
1680
  keepHead: number;
1658
1681
  keepTail: number;
1659
1682
  } | undefined;
@@ -1714,6 +1737,7 @@ declare const SysApprovalRequest: Omit<{
1714
1737
  readonly _provenance?: "package" | "env-forced" | "org" | undefined;
1715
1738
  readonly _packageId?: string | undefined;
1716
1739
  readonly _packageVersion?: string | undefined;
1740
+ readonly precision?: number | undefined;
1717
1741
  readonly name?: string | undefined;
1718
1742
  readonly lookupFilters?: {
1719
1743
  field: string;
@@ -1740,7 +1764,6 @@ declare const SysApprovalRequest: Omit<{
1740
1764
  } | undefined;
1741
1765
  readonly reference?: string | undefined;
1742
1766
  readonly label?: string | undefined;
1743
- readonly precision?: number | undefined;
1744
1767
  readonly scale?: number | undefined;
1745
1768
  readonly step?: number | undefined;
1746
1769
  readonly displayField?: string | undefined;
@@ -1843,7 +1866,7 @@ declare const SysApprovalRequest: Omit<{
1843
1866
  readonly widget?: string | undefined;
1844
1867
  readonly internal?: boolean | undefined;
1845
1868
  readonly requiredPermissions?: string[] | undefined;
1846
- readonly maskingRule?: "name" | "email" | "phone" | "id_card" | "bank_account" | {
1869
+ readonly maskingRule?: "email" | "name" | "phone" | "id_card" | "bank_account" | {
1847
1870
  keepHead: number;
1848
1871
  keepTail: number;
1849
1872
  } | undefined;
@@ -1912,6 +1935,7 @@ declare const SysApprovalRequest: Omit<{
1912
1935
  readonly _provenance?: "package" | "env-forced" | "org" | undefined;
1913
1936
  readonly _packageId?: string | undefined;
1914
1937
  readonly _packageVersion?: string | undefined;
1938
+ readonly precision?: number | undefined;
1915
1939
  readonly name?: string | undefined;
1916
1940
  readonly lookupFilters?: {
1917
1941
  field: string;
@@ -1938,7 +1962,6 @@ declare const SysApprovalRequest: Omit<{
1938
1962
  } | undefined;
1939
1963
  readonly reference?: string | undefined;
1940
1964
  readonly label?: string | undefined;
1941
- readonly precision?: number | undefined;
1942
1965
  readonly scale?: number | undefined;
1943
1966
  readonly step?: number | undefined;
1944
1967
  readonly displayField?: string | undefined;
@@ -2041,7 +2064,7 @@ declare const SysApprovalRequest: Omit<{
2041
2064
  readonly widget?: string | undefined;
2042
2065
  readonly internal?: boolean | undefined;
2043
2066
  readonly requiredPermissions?: string[] | undefined;
2044
- readonly maskingRule?: "name" | "email" | "phone" | "id_card" | "bank_account" | {
2067
+ readonly maskingRule?: "email" | "name" | "phone" | "id_card" | "bank_account" | {
2045
2068
  keepHead: number;
2046
2069
  keepTail: number;
2047
2070
  } | undefined;
@@ -2102,6 +2125,7 @@ declare const SysApprovalRequest: Omit<{
2102
2125
  readonly _provenance?: "package" | "env-forced" | "org" | undefined;
2103
2126
  readonly _packageId?: string | undefined;
2104
2127
  readonly _packageVersion?: string | undefined;
2128
+ readonly precision?: number | undefined;
2105
2129
  readonly name?: string | undefined;
2106
2130
  readonly lookupFilters?: {
2107
2131
  field: string;
@@ -2128,7 +2152,6 @@ declare const SysApprovalRequest: Omit<{
2128
2152
  } | undefined;
2129
2153
  readonly reference?: string | undefined;
2130
2154
  readonly label?: string | undefined;
2131
- readonly precision?: number | undefined;
2132
2155
  readonly scale?: number | undefined;
2133
2156
  readonly step?: number | undefined;
2134
2157
  readonly displayField?: string | undefined;
@@ -2231,7 +2254,7 @@ declare const SysApprovalRequest: Omit<{
2231
2254
  readonly widget?: string | undefined;
2232
2255
  readonly internal?: boolean | undefined;
2233
2256
  readonly requiredPermissions?: string[] | undefined;
2234
- readonly maskingRule?: "name" | "email" | "phone" | "id_card" | "bank_account" | {
2257
+ readonly maskingRule?: "email" | "name" | "phone" | "id_card" | "bank_account" | {
2235
2258
  keepHead: number;
2236
2259
  keepTail: number;
2237
2260
  } | undefined;
@@ -2292,6 +2315,7 @@ declare const SysApprovalRequest: Omit<{
2292
2315
  readonly _provenance?: "package" | "env-forced" | "org" | undefined;
2293
2316
  readonly _packageId?: string | undefined;
2294
2317
  readonly _packageVersion?: string | undefined;
2318
+ readonly precision?: number | undefined;
2295
2319
  readonly name?: string | undefined;
2296
2320
  readonly lookupFilters?: {
2297
2321
  field: string;
@@ -2318,7 +2342,6 @@ declare const SysApprovalRequest: Omit<{
2318
2342
  } | undefined;
2319
2343
  readonly reference?: string | undefined;
2320
2344
  readonly label?: string | undefined;
2321
- readonly precision?: number | undefined;
2322
2345
  readonly scale?: number | undefined;
2323
2346
  readonly step?: number | undefined;
2324
2347
  readonly displayField?: string | undefined;
@@ -2421,7 +2444,7 @@ declare const SysApprovalRequest: Omit<{
2421
2444
  readonly widget?: string | undefined;
2422
2445
  readonly internal?: boolean | undefined;
2423
2446
  readonly requiredPermissions?: string[] | undefined;
2424
- readonly maskingRule?: "name" | "email" | "phone" | "id_card" | "bank_account" | {
2447
+ readonly maskingRule?: "email" | "name" | "phone" | "id_card" | "bank_account" | {
2425
2448
  keepHead: number;
2426
2449
  keepTail: number;
2427
2450
  } | undefined;
@@ -2482,6 +2505,7 @@ declare const SysApprovalRequest: Omit<{
2482
2505
  readonly _provenance?: "package" | "env-forced" | "org" | undefined;
2483
2506
  readonly _packageId?: string | undefined;
2484
2507
  readonly _packageVersion?: string | undefined;
2508
+ readonly precision?: number | undefined;
2485
2509
  readonly name?: string | undefined;
2486
2510
  readonly lookupFilters?: {
2487
2511
  field: string;
@@ -2508,7 +2532,6 @@ declare const SysApprovalRequest: Omit<{
2508
2532
  } | undefined;
2509
2533
  readonly reference?: string | undefined;
2510
2534
  readonly label?: string | undefined;
2511
- readonly precision?: number | undefined;
2512
2535
  readonly scale?: number | undefined;
2513
2536
  readonly step?: number | undefined;
2514
2537
  readonly displayField?: string | undefined;
@@ -2611,7 +2634,7 @@ declare const SysApprovalRequest: Omit<{
2611
2634
  readonly widget?: string | undefined;
2612
2635
  readonly internal?: boolean | undefined;
2613
2636
  readonly requiredPermissions?: string[] | undefined;
2614
- readonly maskingRule?: "name" | "email" | "phone" | "id_card" | "bank_account" | {
2637
+ readonly maskingRule?: "email" | "name" | "phone" | "id_card" | "bank_account" | {
2615
2638
  keepHead: number;
2616
2639
  keepTail: number;
2617
2640
  } | undefined;
@@ -2672,6 +2695,7 @@ declare const SysApprovalRequest: Omit<{
2672
2695
  readonly _provenance?: "package" | "env-forced" | "org" | undefined;
2673
2696
  readonly _packageId?: string | undefined;
2674
2697
  readonly _packageVersion?: string | undefined;
2698
+ readonly precision?: number | undefined;
2675
2699
  readonly name?: string | undefined;
2676
2700
  readonly lookupFilters?: {
2677
2701
  field: string;
@@ -2698,7 +2722,6 @@ declare const SysApprovalRequest: Omit<{
2698
2722
  } | undefined;
2699
2723
  readonly reference?: string | undefined;
2700
2724
  readonly label?: string | undefined;
2701
- readonly precision?: number | undefined;
2702
2725
  readonly scale?: number | undefined;
2703
2726
  readonly step?: number | undefined;
2704
2727
  readonly displayField?: string | undefined;
@@ -2801,7 +2824,7 @@ declare const SysApprovalRequest: Omit<{
2801
2824
  readonly widget?: string | undefined;
2802
2825
  readonly internal?: boolean | undefined;
2803
2826
  readonly requiredPermissions?: string[] | undefined;
2804
- readonly maskingRule?: "name" | "email" | "phone" | "id_card" | "bank_account" | {
2827
+ readonly maskingRule?: "email" | "name" | "phone" | "id_card" | "bank_account" | {
2805
2828
  keepHead: number;
2806
2829
  keepTail: number;
2807
2830
  } | undefined;
@@ -2862,6 +2885,7 @@ declare const SysApprovalRequest: Omit<{
2862
2885
  readonly _provenance?: "package" | "env-forced" | "org" | undefined;
2863
2886
  readonly _packageId?: string | undefined;
2864
2887
  readonly _packageVersion?: string | undefined;
2888
+ readonly precision?: number | undefined;
2865
2889
  readonly name?: string | undefined;
2866
2890
  readonly lookupFilters?: {
2867
2891
  field: string;
@@ -2888,7 +2912,6 @@ declare const SysApprovalRequest: Omit<{
2888
2912
  } | undefined;
2889
2913
  readonly reference?: string | undefined;
2890
2914
  readonly label?: string | undefined;
2891
- readonly precision?: number | undefined;
2892
2915
  readonly scale?: number | undefined;
2893
2916
  readonly step?: number | undefined;
2894
2917
  readonly displayField?: string | undefined;
@@ -2991,7 +3014,7 @@ declare const SysApprovalRequest: Omit<{
2991
3014
  readonly widget?: string | undefined;
2992
3015
  readonly internal?: boolean | undefined;
2993
3016
  readonly requiredPermissions?: string[] | undefined;
2994
- readonly maskingRule?: "name" | "email" | "phone" | "id_card" | "bank_account" | {
3017
+ readonly maskingRule?: "email" | "name" | "phone" | "id_card" | "bank_account" | {
2995
3018
  keepHead: number;
2996
3019
  keepTail: number;
2997
3020
  } | undefined;
@@ -3052,6 +3075,7 @@ declare const SysApprovalRequest: Omit<{
3052
3075
  readonly _provenance?: "package" | "env-forced" | "org" | undefined;
3053
3076
  readonly _packageId?: string | undefined;
3054
3077
  readonly _packageVersion?: string | undefined;
3078
+ readonly precision?: number | undefined;
3055
3079
  readonly name?: string | undefined;
3056
3080
  readonly lookupFilters?: {
3057
3081
  field: string;
@@ -3078,7 +3102,6 @@ declare const SysApprovalRequest: Omit<{
3078
3102
  } | undefined;
3079
3103
  readonly reference?: string | undefined;
3080
3104
  readonly label?: string | undefined;
3081
- readonly precision?: number | undefined;
3082
3105
  readonly scale?: number | undefined;
3083
3106
  readonly step?: number | undefined;
3084
3107
  readonly displayField?: string | undefined;
@@ -3181,7 +3204,7 @@ declare const SysApprovalRequest: Omit<{
3181
3204
  readonly widget?: string | undefined;
3182
3205
  readonly internal?: boolean | undefined;
3183
3206
  readonly requiredPermissions?: string[] | undefined;
3184
- readonly maskingRule?: "name" | "email" | "phone" | "id_card" | "bank_account" | {
3207
+ readonly maskingRule?: "email" | "name" | "phone" | "id_card" | "bank_account" | {
3185
3208
  keepHead: number;
3186
3209
  keepTail: number;
3187
3210
  } | undefined;
@@ -3242,6 +3265,7 @@ declare const SysApprovalRequest: Omit<{
3242
3265
  readonly _provenance?: "package" | "env-forced" | "org" | undefined;
3243
3266
  readonly _packageId?: string | undefined;
3244
3267
  readonly _packageVersion?: string | undefined;
3268
+ readonly precision?: number | undefined;
3245
3269
  readonly name?: string | undefined;
3246
3270
  readonly lookupFilters?: {
3247
3271
  field: string;
@@ -3268,7 +3292,6 @@ declare const SysApprovalRequest: Omit<{
3268
3292
  } | undefined;
3269
3293
  readonly reference?: string | undefined;
3270
3294
  readonly label?: string | undefined;
3271
- readonly precision?: number | undefined;
3272
3295
  readonly scale?: number | undefined;
3273
3296
  readonly step?: number | undefined;
3274
3297
  readonly displayField?: string | undefined;
@@ -3371,7 +3394,7 @@ declare const SysApprovalRequest: Omit<{
3371
3394
  readonly widget?: string | undefined;
3372
3395
  readonly internal?: boolean | undefined;
3373
3396
  readonly requiredPermissions?: string[] | undefined;
3374
- readonly maskingRule?: "name" | "email" | "phone" | "id_card" | "bank_account" | {
3397
+ readonly maskingRule?: "email" | "name" | "phone" | "id_card" | "bank_account" | {
3375
3398
  keepHead: number;
3376
3399
  keepTail: number;
3377
3400
  } | undefined;
@@ -3432,6 +3455,7 @@ declare const SysApprovalRequest: Omit<{
3432
3455
  readonly _provenance?: "package" | "env-forced" | "org" | undefined;
3433
3456
  readonly _packageId?: string | undefined;
3434
3457
  readonly _packageVersion?: string | undefined;
3458
+ readonly precision?: number | undefined;
3435
3459
  readonly name?: string | undefined;
3436
3460
  readonly lookupFilters?: {
3437
3461
  field: string;
@@ -3458,7 +3482,6 @@ declare const SysApprovalRequest: Omit<{
3458
3482
  } | undefined;
3459
3483
  readonly reference?: string | undefined;
3460
3484
  readonly label?: string | undefined;
3461
- readonly precision?: number | undefined;
3462
3485
  readonly scale?: number | undefined;
3463
3486
  readonly step?: number | undefined;
3464
3487
  readonly displayField?: string | undefined;
@@ -3561,7 +3584,7 @@ declare const SysApprovalRequest: Omit<{
3561
3584
  readonly widget?: string | undefined;
3562
3585
  readonly internal?: boolean | undefined;
3563
3586
  readonly requiredPermissions?: string[] | undefined;
3564
- readonly maskingRule?: "name" | "email" | "phone" | "id_card" | "bank_account" | {
3587
+ readonly maskingRule?: "email" | "name" | "phone" | "id_card" | "bank_account" | {
3565
3588
  keepHead: number;
3566
3589
  keepTail: number;
3567
3590
  } | undefined;
@@ -3622,6 +3645,7 @@ declare const SysApprovalRequest: Omit<{
3622
3645
  readonly _provenance?: "package" | "env-forced" | "org" | undefined;
3623
3646
  readonly _packageId?: string | undefined;
3624
3647
  readonly _packageVersion?: string | undefined;
3648
+ readonly precision?: number | undefined;
3625
3649
  readonly name?: string | undefined;
3626
3650
  readonly lookupFilters?: {
3627
3651
  field: string;
@@ -3648,7 +3672,6 @@ declare const SysApprovalRequest: Omit<{
3648
3672
  } | undefined;
3649
3673
  readonly reference?: string | undefined;
3650
3674
  readonly label?: string | undefined;
3651
- readonly precision?: number | undefined;
3652
3675
  readonly scale?: number | undefined;
3653
3676
  readonly step?: number | undefined;
3654
3677
  readonly displayField?: string | undefined;
@@ -3751,7 +3774,7 @@ declare const SysApprovalRequest: Omit<{
3751
3774
  readonly widget?: string | undefined;
3752
3775
  readonly internal?: boolean | undefined;
3753
3776
  readonly requiredPermissions?: string[] | undefined;
3754
- readonly maskingRule?: "name" | "email" | "phone" | "id_card" | "bank_account" | {
3777
+ readonly maskingRule?: "email" | "name" | "phone" | "id_card" | "bank_account" | {
3755
3778
  keepHead: number;
3756
3779
  keepTail: number;
3757
3780
  } | undefined;
@@ -3812,6 +3835,7 @@ declare const SysApprovalRequest: Omit<{
3812
3835
  readonly _provenance?: "package" | "env-forced" | "org" | undefined;
3813
3836
  readonly _packageId?: string | undefined;
3814
3837
  readonly _packageVersion?: string | undefined;
3838
+ readonly precision?: number | undefined;
3815
3839
  readonly name?: string | undefined;
3816
3840
  readonly lookupFilters?: {
3817
3841
  field: string;
@@ -3838,7 +3862,6 @@ declare const SysApprovalRequest: Omit<{
3838
3862
  } | undefined;
3839
3863
  readonly reference?: string | undefined;
3840
3864
  readonly label?: string | undefined;
3841
- readonly precision?: number | undefined;
3842
3865
  readonly scale?: number | undefined;
3843
3866
  readonly step?: number | undefined;
3844
3867
  readonly displayField?: string | undefined;
@@ -3941,7 +3964,7 @@ declare const SysApprovalRequest: Omit<{
3941
3964
  readonly widget?: string | undefined;
3942
3965
  readonly internal?: boolean | undefined;
3943
3966
  readonly requiredPermissions?: string[] | undefined;
3944
- readonly maskingRule?: "name" | "email" | "phone" | "id_card" | "bank_account" | {
3967
+ readonly maskingRule?: "email" | "name" | "phone" | "id_card" | "bank_account" | {
3945
3968
  keepHead: number;
3946
3969
  keepTail: number;
3947
3970
  } | undefined;
@@ -4002,6 +4025,7 @@ declare const SysApprovalRequest: Omit<{
4002
4025
  readonly _provenance?: "package" | "env-forced" | "org" | undefined;
4003
4026
  readonly _packageId?: string | undefined;
4004
4027
  readonly _packageVersion?: string | undefined;
4028
+ readonly precision?: number | undefined;
4005
4029
  readonly name?: string | undefined;
4006
4030
  readonly lookupFilters?: {
4007
4031
  field: string;
@@ -4028,7 +4052,6 @@ declare const SysApprovalRequest: Omit<{
4028
4052
  } | undefined;
4029
4053
  readonly reference?: string | undefined;
4030
4054
  readonly label?: string | undefined;
4031
- readonly precision?: number | undefined;
4032
4055
  readonly scale?: number | undefined;
4033
4056
  readonly step?: number | undefined;
4034
4057
  readonly displayField?: string | undefined;
@@ -4131,7 +4154,7 @@ declare const SysApprovalRequest: Omit<{
4131
4154
  readonly widget?: string | undefined;
4132
4155
  readonly internal?: boolean | undefined;
4133
4156
  readonly requiredPermissions?: string[] | undefined;
4134
- readonly maskingRule?: "name" | "email" | "phone" | "id_card" | "bank_account" | {
4157
+ readonly maskingRule?: "email" | "name" | "phone" | "id_card" | "bank_account" | {
4135
4158
  keepHead: number;
4136
4159
  keepTail: number;
4137
4160
  } | undefined;
@@ -4192,6 +4215,7 @@ declare const SysApprovalRequest: Omit<{
4192
4215
  readonly _provenance?: "package" | "env-forced" | "org" | undefined;
4193
4216
  readonly _packageId?: string | undefined;
4194
4217
  readonly _packageVersion?: string | undefined;
4218
+ readonly precision?: number | undefined;
4195
4219
  readonly name?: string | undefined;
4196
4220
  readonly lookupFilters?: {
4197
4221
  field: string;
@@ -4218,7 +4242,6 @@ declare const SysApprovalRequest: Omit<{
4218
4242
  } | undefined;
4219
4243
  readonly reference?: string | undefined;
4220
4244
  readonly label?: string | undefined;
4221
- readonly precision?: number | undefined;
4222
4245
  readonly scale?: number | undefined;
4223
4246
  readonly step?: number | undefined;
4224
4247
  readonly displayField?: string | undefined;
@@ -4321,7 +4344,7 @@ declare const SysApprovalRequest: Omit<{
4321
4344
  readonly widget?: string | undefined;
4322
4345
  readonly internal?: boolean | undefined;
4323
4346
  readonly requiredPermissions?: string[] | undefined;
4324
- readonly maskingRule?: "name" | "email" | "phone" | "id_card" | "bank_account" | {
4347
+ readonly maskingRule?: "email" | "name" | "phone" | "id_card" | "bank_account" | {
4325
4348
  keepHead: number;
4326
4349
  keepTail: number;
4327
4350
  } | undefined;
@@ -4906,7 +4929,7 @@ declare const SysApprovalAction: Omit<{
4906
4929
  nameField?: string | undefined;
4907
4930
  displayNameField?: string | undefined;
4908
4931
  titleFormat?: string | {
4909
- dialect: "cel" | "cron" | "template";
4932
+ dialect: "template";
4910
4933
  source?: string | undefined;
4911
4934
  ast?: unknown;
4912
4935
  meta?: {
@@ -4968,7 +4991,6 @@ declare const SysApprovalAction: Omit<{
4968
4991
  }) | undefined;
4969
4992
  name?: string | undefined;
4970
4993
  tree?: {
4971
- [x: string]: unknown;
4972
4994
  parentField?: string | undefined;
4973
4995
  labelField?: string | undefined;
4974
4996
  fields?: string[] | undefined;
@@ -4979,6 +5001,68 @@ declare const SysApprovalAction: Omit<{
4979
5001
  defaultValue?: never;
4980
5002
  }) | undefined;
4981
5003
  inlineEdit?: boolean | undefined;
5004
+ emptyState?: {
5005
+ title?: string | (Record<string, string> & {
5006
+ key?: never;
5007
+ defaultValue?: never;
5008
+ }) | undefined;
5009
+ message?: string | (Record<string, string> & {
5010
+ key?: never;
5011
+ defaultValue?: never;
5012
+ }) | undefined;
5013
+ icon?: string | undefined;
5014
+ } | undefined;
5015
+ bulkActions?: string[] | undefined;
5016
+ bulkActionDefs?: {
5017
+ name: string;
5018
+ operation: "delete" | "update" | "custom";
5019
+ label?: string | undefined;
5020
+ icon?: string | undefined;
5021
+ variant?: "primary" | "secondary" | "outline" | "danger" | "ghost" | undefined;
5022
+ execution?: "aggregate" | "perRecord" | undefined;
5023
+ patch?: Record<string, unknown> | undefined;
5024
+ params?: {
5025
+ [x: string]: unknown;
5026
+ name: string;
5027
+ type: "number" | "boolean" | "user" | "date" | "record" | "file" | "code" | "url" | "email" | "datetime" | "time" | "formula" | "text" | "textarea" | "phone" | "password" | "secret" | "markdown" | "html" | "richtext" | "currency" | "percent" | "toggle" | "select" | "multiselect" | "radio" | "checkboxes" | "lookup" | "master_detail" | "tree" | "image" | "avatar" | "video" | "audio" | "summary" | "autonumber" | "composite" | "repeater" | "location" | "address" | "json" | "color" | "rating" | "slider" | "signature" | "qrcode" | "progress" | "tags" | "vector";
5028
+ label?: string | undefined;
5029
+ help?: string | undefined;
5030
+ required?: boolean | undefined;
5031
+ default?: unknown;
5032
+ options?: {
5033
+ [x: string]: unknown;
5034
+ label: string;
5035
+ value: string | number | boolean;
5036
+ }[] | undefined;
5037
+ object?: string | undefined;
5038
+ labelField?: string | undefined;
5039
+ multiple?: boolean | undefined;
5040
+ placeholder?: string | undefined;
5041
+ }[] | undefined;
5042
+ confirmText?: string | undefined;
5043
+ confirmLabel?: string | undefined;
5044
+ visible?: string | {
5045
+ dialect: "cel" | "cron" | "template";
5046
+ source?: string | undefined;
5047
+ ast?: unknown;
5048
+ meta?: {
5049
+ rationale?: string | undefined;
5050
+ generatedBy?: string | undefined;
5051
+ } | undefined;
5052
+ } | undefined;
5053
+ requiredPermissions?: string[] | undefined;
5054
+ maxRecords?: number | undefined;
5055
+ batchSize?: number | undefined;
5056
+ }[] | undefined;
5057
+ rowActions?: string[] | undefined;
5058
+ navigation?: {
5059
+ mode?: "none" | "page" | "modal" | "split" | "drawer" | "popover" | "new_window" | undefined;
5060
+ view?: string | undefined;
5061
+ preventNavigation?: boolean | undefined;
5062
+ openNewTab?: boolean | undefined;
5063
+ size?: "full" | "md" | "auto" | "sm" | "lg" | "xl" | undefined;
5064
+ width?: string | number | undefined;
5065
+ } | undefined;
4982
5066
  data?: {
4983
5067
  provider: "object";
4984
5068
  object: string;
@@ -5007,14 +5091,6 @@ declare const SysApprovalAction: Omit<{
5007
5091
  schema?: Record<string, unknown> | undefined;
5008
5092
  } | undefined;
5009
5093
  pageName?: string | undefined;
5010
- navigation?: {
5011
- mode?: "none" | "page" | "modal" | "split" | "drawer" | "popover" | "new_window" | undefined;
5012
- view?: string | undefined;
5013
- preventNavigation?: boolean | undefined;
5014
- openNewTab?: boolean | undefined;
5015
- size?: "full" | "md" | "auto" | "sm" | "lg" | "xl" | undefined;
5016
- width?: string | number | undefined;
5017
- } | undefined;
5018
5094
  sharing?: {
5019
5095
  type?: "personal" | "collaborative" | undefined;
5020
5096
  lockedBy?: string | undefined;
@@ -5045,60 +5121,6 @@ declare const SysApprovalAction: Omit<{
5045
5121
  isDefault?: boolean | undefined;
5046
5122
  visible?: boolean | undefined;
5047
5123
  }[] | undefined;
5048
- emptyState?: {
5049
- title?: string | (Record<string, string> & {
5050
- key?: never;
5051
- defaultValue?: never;
5052
- }) | undefined;
5053
- message?: string | (Record<string, string> & {
5054
- key?: never;
5055
- defaultValue?: never;
5056
- }) | undefined;
5057
- icon?: string | undefined;
5058
- } | undefined;
5059
- bulkActions?: string[] | undefined;
5060
- bulkActionDefs?: {
5061
- name: string;
5062
- operation: "delete" | "update" | "custom";
5063
- label?: string | undefined;
5064
- icon?: string | undefined;
5065
- variant?: "primary" | "secondary" | "outline" | "danger" | "ghost" | undefined;
5066
- execution?: "aggregate" | "perRecord" | undefined;
5067
- patch?: Record<string, unknown> | undefined;
5068
- params?: {
5069
- [x: string]: unknown;
5070
- name: string;
5071
- type: "number" | "boolean" | "user" | "date" | "record" | "file" | "code" | "url" | "email" | "datetime" | "time" | "formula" | "text" | "textarea" | "phone" | "password" | "secret" | "markdown" | "html" | "richtext" | "currency" | "percent" | "toggle" | "select" | "multiselect" | "radio" | "checkboxes" | "lookup" | "master_detail" | "tree" | "image" | "avatar" | "video" | "audio" | "summary" | "autonumber" | "composite" | "repeater" | "location" | "address" | "json" | "color" | "rating" | "slider" | "signature" | "qrcode" | "progress" | "tags" | "vector";
5072
- label?: string | undefined;
5073
- help?: string | undefined;
5074
- required?: boolean | undefined;
5075
- default?: unknown;
5076
- options?: {
5077
- [x: string]: unknown;
5078
- label: string;
5079
- value: string | number | boolean;
5080
- }[] | undefined;
5081
- object?: string | undefined;
5082
- labelField?: string | undefined;
5083
- multiple?: boolean | undefined;
5084
- placeholder?: string | undefined;
5085
- }[] | undefined;
5086
- confirmText?: string | undefined;
5087
- confirmLabel?: string | undefined;
5088
- visible?: string | {
5089
- dialect: "cel" | "cron" | "template";
5090
- source?: string | undefined;
5091
- ast?: unknown;
5092
- meta?: {
5093
- rationale?: string | undefined;
5094
- generatedBy?: string | undefined;
5095
- } | undefined;
5096
- } | undefined;
5097
- requiredPermissions?: string[] | undefined;
5098
- maxRecords?: number | undefined;
5099
- batchSize?: number | undefined;
5100
- }[] | undefined;
5101
- rowActions?: string[] | undefined;
5102
5124
  responsive?: undefined;
5103
5125
  performance?: undefined;
5104
5126
  striped?: undefined;
@@ -5156,7 +5178,6 @@ declare const SysApprovalAction: Omit<{
5156
5178
  scale?: "month" | "day" | "week" | "year" | "hour" | "quarter" | undefined;
5157
5179
  } | undefined;
5158
5180
  gantt?: {
5159
- [x: string]: unknown;
5160
5181
  startDateField: string;
5161
5182
  endDateField: string;
5162
5183
  titleField: string;
@@ -5186,6 +5207,31 @@ declare const SysApprovalAction: Omit<{
5186
5207
  }[] | undefined;
5187
5208
  autoZoomToFilter?: boolean | undefined;
5188
5209
  viewMode?: "month" | "day" | "week" | "year" | "quarter" | undefined;
5210
+ borderColorField?: string | undefined;
5211
+ lockField?: string | undefined;
5212
+ objectField?: string | undefined;
5213
+ summaryExtent?: "children" | "self" | undefined;
5214
+ defaultCollapsedDepth?: number | undefined;
5215
+ dependencyTypes?: boolean | undefined;
5216
+ timeZone?: string | undefined;
5217
+ exportFileName?: string | undefined;
5218
+ interactions?: {
5219
+ move?: boolean | undefined;
5220
+ resize?: boolean | undefined;
5221
+ progress?: boolean | undefined;
5222
+ link?: boolean | undefined;
5223
+ } | undefined;
5224
+ timeSegments?: {
5225
+ bands: {
5226
+ label: string;
5227
+ start: string;
5228
+ end: string;
5229
+ key?: string | undefined;
5230
+ color?: string | undefined;
5231
+ }[];
5232
+ dayStart?: string | undefined;
5233
+ showMidnight?: boolean | undefined;
5234
+ } | undefined;
5189
5235
  } | undefined;
5190
5236
  chart?: {
5191
5237
  dataset: string;
@@ -5594,6 +5640,7 @@ declare const SysApprovalAction: Omit<{
5594
5640
  readonly _provenance?: "package" | "env-forced" | "org" | undefined;
5595
5641
  readonly _packageId?: string | undefined;
5596
5642
  readonly _packageVersion?: string | undefined;
5643
+ readonly precision?: number | undefined;
5597
5644
  readonly name?: string | undefined;
5598
5645
  readonly lookupFilters?: {
5599
5646
  field: string;
@@ -5620,7 +5667,6 @@ declare const SysApprovalAction: Omit<{
5620
5667
  } | undefined;
5621
5668
  readonly reference?: string | undefined;
5622
5669
  readonly label?: string | undefined;
5623
- readonly precision?: number | undefined;
5624
5670
  readonly scale?: number | undefined;
5625
5671
  readonly step?: number | undefined;
5626
5672
  readonly displayField?: string | undefined;
@@ -5723,7 +5769,7 @@ declare const SysApprovalAction: Omit<{
5723
5769
  readonly widget?: string | undefined;
5724
5770
  readonly internal?: boolean | undefined;
5725
5771
  readonly requiredPermissions?: string[] | undefined;
5726
- readonly maskingRule?: "name" | "email" | "phone" | "id_card" | "bank_account" | {
5772
+ readonly maskingRule?: "email" | "name" | "phone" | "id_card" | "bank_account" | {
5727
5773
  keepHead: number;
5728
5774
  keepTail: number;
5729
5775
  } | undefined;
@@ -5801,6 +5847,7 @@ declare const SysApprovalAction: Omit<{
5801
5847
  readonly _provenance?: "package" | "env-forced" | "org" | undefined;
5802
5848
  readonly _packageId?: string | undefined;
5803
5849
  readonly _packageVersion?: string | undefined;
5850
+ readonly precision?: number | undefined;
5804
5851
  readonly name?: string | undefined;
5805
5852
  readonly lookupFilters?: {
5806
5853
  field: string;
@@ -5827,7 +5874,6 @@ declare const SysApprovalAction: Omit<{
5827
5874
  } | undefined;
5828
5875
  readonly reference?: string | undefined;
5829
5876
  readonly label?: string | undefined;
5830
- readonly precision?: number | undefined;
5831
5877
  readonly scale?: number | undefined;
5832
5878
  readonly step?: number | undefined;
5833
5879
  readonly displayField?: string | undefined;
@@ -5930,7 +5976,7 @@ declare const SysApprovalAction: Omit<{
5930
5976
  readonly widget?: string | undefined;
5931
5977
  readonly internal?: boolean | undefined;
5932
5978
  readonly requiredPermissions?: string[] | undefined;
5933
- readonly maskingRule?: "name" | "email" | "phone" | "id_card" | "bank_account" | {
5979
+ readonly maskingRule?: "email" | "name" | "phone" | "id_card" | "bank_account" | {
5934
5980
  keepHead: number;
5935
5981
  keepTail: number;
5936
5982
  } | undefined;
@@ -5991,6 +6037,7 @@ declare const SysApprovalAction: Omit<{
5991
6037
  readonly _provenance?: "package" | "env-forced" | "org" | undefined;
5992
6038
  readonly _packageId?: string | undefined;
5993
6039
  readonly _packageVersion?: string | undefined;
6040
+ readonly precision?: number | undefined;
5994
6041
  readonly name?: string | undefined;
5995
6042
  readonly lookupFilters?: {
5996
6043
  field: string;
@@ -6017,7 +6064,6 @@ declare const SysApprovalAction: Omit<{
6017
6064
  } | undefined;
6018
6065
  readonly reference?: string | undefined;
6019
6066
  readonly label?: string | undefined;
6020
- readonly precision?: number | undefined;
6021
6067
  readonly scale?: number | undefined;
6022
6068
  readonly step?: number | undefined;
6023
6069
  readonly displayField?: string | undefined;
@@ -6120,7 +6166,7 @@ declare const SysApprovalAction: Omit<{
6120
6166
  readonly widget?: string | undefined;
6121
6167
  readonly internal?: boolean | undefined;
6122
6168
  readonly requiredPermissions?: string[] | undefined;
6123
- readonly maskingRule?: "name" | "email" | "phone" | "id_card" | "bank_account" | {
6169
+ readonly maskingRule?: "email" | "name" | "phone" | "id_card" | "bank_account" | {
6124
6170
  keepHead: number;
6125
6171
  keepTail: number;
6126
6172
  } | undefined;
@@ -6181,6 +6227,7 @@ declare const SysApprovalAction: Omit<{
6181
6227
  readonly _provenance?: "package" | "env-forced" | "org" | undefined;
6182
6228
  readonly _packageId?: string | undefined;
6183
6229
  readonly _packageVersion?: string | undefined;
6230
+ readonly precision?: number | undefined;
6184
6231
  readonly name?: string | undefined;
6185
6232
  readonly lookupFilters?: {
6186
6233
  field: string;
@@ -6207,7 +6254,6 @@ declare const SysApprovalAction: Omit<{
6207
6254
  } | undefined;
6208
6255
  readonly reference?: string | undefined;
6209
6256
  readonly label?: string | undefined;
6210
- readonly precision?: number | undefined;
6211
6257
  readonly scale?: number | undefined;
6212
6258
  readonly step?: number | undefined;
6213
6259
  readonly displayField?: string | undefined;
@@ -6310,7 +6356,7 @@ declare const SysApprovalAction: Omit<{
6310
6356
  readonly widget?: string | undefined;
6311
6357
  readonly internal?: boolean | undefined;
6312
6358
  readonly requiredPermissions?: string[] | undefined;
6313
- readonly maskingRule?: "name" | "email" | "phone" | "id_card" | "bank_account" | {
6359
+ readonly maskingRule?: "email" | "name" | "phone" | "id_card" | "bank_account" | {
6314
6360
  keepHead: number;
6315
6361
  keepTail: number;
6316
6362
  } | undefined;
@@ -6379,6 +6425,7 @@ declare const SysApprovalAction: Omit<{
6379
6425
  readonly _provenance?: "package" | "env-forced" | "org" | undefined;
6380
6426
  readonly _packageId?: string | undefined;
6381
6427
  readonly _packageVersion?: string | undefined;
6428
+ readonly precision?: number | undefined;
6382
6429
  readonly name?: string | undefined;
6383
6430
  readonly lookupFilters?: {
6384
6431
  field: string;
@@ -6405,7 +6452,6 @@ declare const SysApprovalAction: Omit<{
6405
6452
  } | undefined;
6406
6453
  readonly reference?: string | undefined;
6407
6454
  readonly label?: string | undefined;
6408
- readonly precision?: number | undefined;
6409
6455
  readonly scale?: number | undefined;
6410
6456
  readonly step?: number | undefined;
6411
6457
  readonly displayField?: string | undefined;
@@ -6508,7 +6554,7 @@ declare const SysApprovalAction: Omit<{
6508
6554
  readonly widget?: string | undefined;
6509
6555
  readonly internal?: boolean | undefined;
6510
6556
  readonly requiredPermissions?: string[] | undefined;
6511
- readonly maskingRule?: "name" | "email" | "phone" | "id_card" | "bank_account" | {
6557
+ readonly maskingRule?: "email" | "name" | "phone" | "id_card" | "bank_account" | {
6512
6558
  keepHead: number;
6513
6559
  keepTail: number;
6514
6560
  } | undefined;
@@ -6569,6 +6615,7 @@ declare const SysApprovalAction: Omit<{
6569
6615
  readonly _provenance?: "package" | "env-forced" | "org" | undefined;
6570
6616
  readonly _packageId?: string | undefined;
6571
6617
  readonly _packageVersion?: string | undefined;
6618
+ readonly precision?: number | undefined;
6572
6619
  readonly name?: string | undefined;
6573
6620
  readonly lookupFilters?: {
6574
6621
  field: string;
@@ -6595,7 +6642,6 @@ declare const SysApprovalAction: Omit<{
6595
6642
  } | undefined;
6596
6643
  readonly reference?: string | undefined;
6597
6644
  readonly label?: string | undefined;
6598
- readonly precision?: number | undefined;
6599
6645
  readonly scale?: number | undefined;
6600
6646
  readonly step?: number | undefined;
6601
6647
  readonly displayField?: string | undefined;
@@ -6698,7 +6744,7 @@ declare const SysApprovalAction: Omit<{
6698
6744
  readonly widget?: string | undefined;
6699
6745
  readonly internal?: boolean | undefined;
6700
6746
  readonly requiredPermissions?: string[] | undefined;
6701
- readonly maskingRule?: "name" | "email" | "phone" | "id_card" | "bank_account" | {
6747
+ readonly maskingRule?: "email" | "name" | "phone" | "id_card" | "bank_account" | {
6702
6748
  keepHead: number;
6703
6749
  keepTail: number;
6704
6750
  } | undefined;
@@ -6777,6 +6823,7 @@ declare const SysApprovalAction: Omit<{
6777
6823
  readonly _provenance?: "package" | "env-forced" | "org" | undefined;
6778
6824
  readonly _packageId?: string | undefined;
6779
6825
  readonly _packageVersion?: string | undefined;
6826
+ readonly precision?: number | undefined;
6780
6827
  readonly name?: string | undefined;
6781
6828
  readonly lookupFilters?: {
6782
6829
  field: string;
@@ -6803,7 +6850,6 @@ declare const SysApprovalAction: Omit<{
6803
6850
  } | undefined;
6804
6851
  readonly reference?: string | undefined;
6805
6852
  readonly label?: string | undefined;
6806
- readonly precision?: number | undefined;
6807
6853
  readonly scale?: number | undefined;
6808
6854
  readonly step?: number | undefined;
6809
6855
  readonly displayField?: string | undefined;
@@ -6906,7 +6952,7 @@ declare const SysApprovalAction: Omit<{
6906
6952
  readonly widget?: string | undefined;
6907
6953
  readonly internal?: boolean | undefined;
6908
6954
  readonly requiredPermissions?: string[] | undefined;
6909
- readonly maskingRule?: "name" | "email" | "phone" | "id_card" | "bank_account" | {
6955
+ readonly maskingRule?: "email" | "name" | "phone" | "id_card" | "bank_account" | {
6910
6956
  keepHead: number;
6911
6957
  keepTail: number;
6912
6958
  } | undefined;
@@ -6967,6 +7013,7 @@ declare const SysApprovalAction: Omit<{
6967
7013
  readonly _provenance?: "package" | "env-forced" | "org" | undefined;
6968
7014
  readonly _packageId?: string | undefined;
6969
7015
  readonly _packageVersion?: string | undefined;
7016
+ readonly precision?: number | undefined;
6970
7017
  readonly name?: string | undefined;
6971
7018
  readonly lookupFilters?: {
6972
7019
  field: string;
@@ -6993,7 +7040,6 @@ declare const SysApprovalAction: Omit<{
6993
7040
  } | undefined;
6994
7041
  readonly reference?: string | undefined;
6995
7042
  readonly label?: string | undefined;
6996
- readonly precision?: number | undefined;
6997
7043
  readonly scale?: number | undefined;
6998
7044
  readonly step?: number | undefined;
6999
7045
  readonly displayField?: string | undefined;
@@ -7096,7 +7142,7 @@ declare const SysApprovalAction: Omit<{
7096
7142
  readonly widget?: string | undefined;
7097
7143
  readonly internal?: boolean | undefined;
7098
7144
  readonly requiredPermissions?: string[] | undefined;
7099
- readonly maskingRule?: "name" | "email" | "phone" | "id_card" | "bank_account" | {
7145
+ readonly maskingRule?: "email" | "name" | "phone" | "id_card" | "bank_account" | {
7100
7146
  keepHead: number;
7101
7147
  keepTail: number;
7102
7148
  } | undefined;
@@ -7529,7 +7575,7 @@ declare const SysApprovalApprover: Omit<{
7529
7575
  nameField?: string | undefined;
7530
7576
  displayNameField?: string | undefined;
7531
7577
  titleFormat?: string | {
7532
- dialect: "cel" | "cron" | "template";
7578
+ dialect: "template";
7533
7579
  source?: string | undefined;
7534
7580
  ast?: unknown;
7535
7581
  meta?: {
@@ -7591,7 +7637,6 @@ declare const SysApprovalApprover: Omit<{
7591
7637
  }) | undefined;
7592
7638
  name?: string | undefined;
7593
7639
  tree?: {
7594
- [x: string]: unknown;
7595
7640
  parentField?: string | undefined;
7596
7641
  labelField?: string | undefined;
7597
7642
  fields?: string[] | undefined;
@@ -7602,6 +7647,68 @@ declare const SysApprovalApprover: Omit<{
7602
7647
  defaultValue?: never;
7603
7648
  }) | undefined;
7604
7649
  inlineEdit?: boolean | undefined;
7650
+ emptyState?: {
7651
+ title?: string | (Record<string, string> & {
7652
+ key?: never;
7653
+ defaultValue?: never;
7654
+ }) | undefined;
7655
+ message?: string | (Record<string, string> & {
7656
+ key?: never;
7657
+ defaultValue?: never;
7658
+ }) | undefined;
7659
+ icon?: string | undefined;
7660
+ } | undefined;
7661
+ bulkActions?: string[] | undefined;
7662
+ bulkActionDefs?: {
7663
+ name: string;
7664
+ operation: "delete" | "update" | "custom";
7665
+ label?: string | undefined;
7666
+ icon?: string | undefined;
7667
+ variant?: "primary" | "secondary" | "outline" | "danger" | "ghost" | undefined;
7668
+ execution?: "aggregate" | "perRecord" | undefined;
7669
+ patch?: Record<string, unknown> | undefined;
7670
+ params?: {
7671
+ [x: string]: unknown;
7672
+ name: string;
7673
+ type: "number" | "boolean" | "user" | "date" | "record" | "file" | "code" | "url" | "email" | "datetime" | "time" | "formula" | "text" | "textarea" | "phone" | "password" | "secret" | "markdown" | "html" | "richtext" | "currency" | "percent" | "toggle" | "select" | "multiselect" | "radio" | "checkboxes" | "lookup" | "master_detail" | "tree" | "image" | "avatar" | "video" | "audio" | "summary" | "autonumber" | "composite" | "repeater" | "location" | "address" | "json" | "color" | "rating" | "slider" | "signature" | "qrcode" | "progress" | "tags" | "vector";
7674
+ label?: string | undefined;
7675
+ help?: string | undefined;
7676
+ required?: boolean | undefined;
7677
+ default?: unknown;
7678
+ options?: {
7679
+ [x: string]: unknown;
7680
+ label: string;
7681
+ value: string | number | boolean;
7682
+ }[] | undefined;
7683
+ object?: string | undefined;
7684
+ labelField?: string | undefined;
7685
+ multiple?: boolean | undefined;
7686
+ placeholder?: string | undefined;
7687
+ }[] | undefined;
7688
+ confirmText?: string | undefined;
7689
+ confirmLabel?: string | undefined;
7690
+ visible?: string | {
7691
+ dialect: "cel" | "cron" | "template";
7692
+ source?: string | undefined;
7693
+ ast?: unknown;
7694
+ meta?: {
7695
+ rationale?: string | undefined;
7696
+ generatedBy?: string | undefined;
7697
+ } | undefined;
7698
+ } | undefined;
7699
+ requiredPermissions?: string[] | undefined;
7700
+ maxRecords?: number | undefined;
7701
+ batchSize?: number | undefined;
7702
+ }[] | undefined;
7703
+ rowActions?: string[] | undefined;
7704
+ navigation?: {
7705
+ mode?: "none" | "page" | "modal" | "split" | "drawer" | "popover" | "new_window" | undefined;
7706
+ view?: string | undefined;
7707
+ preventNavigation?: boolean | undefined;
7708
+ openNewTab?: boolean | undefined;
7709
+ size?: "full" | "md" | "auto" | "sm" | "lg" | "xl" | undefined;
7710
+ width?: string | number | undefined;
7711
+ } | undefined;
7605
7712
  data?: {
7606
7713
  provider: "object";
7607
7714
  object: string;
@@ -7630,14 +7737,6 @@ declare const SysApprovalApprover: Omit<{
7630
7737
  schema?: Record<string, unknown> | undefined;
7631
7738
  } | undefined;
7632
7739
  pageName?: string | undefined;
7633
- navigation?: {
7634
- mode?: "none" | "page" | "modal" | "split" | "drawer" | "popover" | "new_window" | undefined;
7635
- view?: string | undefined;
7636
- preventNavigation?: boolean | undefined;
7637
- openNewTab?: boolean | undefined;
7638
- size?: "full" | "md" | "auto" | "sm" | "lg" | "xl" | undefined;
7639
- width?: string | number | undefined;
7640
- } | undefined;
7641
7740
  sharing?: {
7642
7741
  type?: "personal" | "collaborative" | undefined;
7643
7742
  lockedBy?: string | undefined;
@@ -7668,60 +7767,6 @@ declare const SysApprovalApprover: Omit<{
7668
7767
  isDefault?: boolean | undefined;
7669
7768
  visible?: boolean | undefined;
7670
7769
  }[] | undefined;
7671
- emptyState?: {
7672
- title?: string | (Record<string, string> & {
7673
- key?: never;
7674
- defaultValue?: never;
7675
- }) | undefined;
7676
- message?: string | (Record<string, string> & {
7677
- key?: never;
7678
- defaultValue?: never;
7679
- }) | undefined;
7680
- icon?: string | undefined;
7681
- } | undefined;
7682
- bulkActions?: string[] | undefined;
7683
- bulkActionDefs?: {
7684
- name: string;
7685
- operation: "delete" | "update" | "custom";
7686
- label?: string | undefined;
7687
- icon?: string | undefined;
7688
- variant?: "primary" | "secondary" | "outline" | "danger" | "ghost" | undefined;
7689
- execution?: "aggregate" | "perRecord" | undefined;
7690
- patch?: Record<string, unknown> | undefined;
7691
- params?: {
7692
- [x: string]: unknown;
7693
- name: string;
7694
- type: "number" | "boolean" | "user" | "date" | "record" | "file" | "code" | "url" | "email" | "datetime" | "time" | "formula" | "text" | "textarea" | "phone" | "password" | "secret" | "markdown" | "html" | "richtext" | "currency" | "percent" | "toggle" | "select" | "multiselect" | "radio" | "checkboxes" | "lookup" | "master_detail" | "tree" | "image" | "avatar" | "video" | "audio" | "summary" | "autonumber" | "composite" | "repeater" | "location" | "address" | "json" | "color" | "rating" | "slider" | "signature" | "qrcode" | "progress" | "tags" | "vector";
7695
- label?: string | undefined;
7696
- help?: string | undefined;
7697
- required?: boolean | undefined;
7698
- default?: unknown;
7699
- options?: {
7700
- [x: string]: unknown;
7701
- label: string;
7702
- value: string | number | boolean;
7703
- }[] | undefined;
7704
- object?: string | undefined;
7705
- labelField?: string | undefined;
7706
- multiple?: boolean | undefined;
7707
- placeholder?: string | undefined;
7708
- }[] | undefined;
7709
- confirmText?: string | undefined;
7710
- confirmLabel?: string | undefined;
7711
- visible?: string | {
7712
- dialect: "cel" | "cron" | "template";
7713
- source?: string | undefined;
7714
- ast?: unknown;
7715
- meta?: {
7716
- rationale?: string | undefined;
7717
- generatedBy?: string | undefined;
7718
- } | undefined;
7719
- } | undefined;
7720
- requiredPermissions?: string[] | undefined;
7721
- maxRecords?: number | undefined;
7722
- batchSize?: number | undefined;
7723
- }[] | undefined;
7724
- rowActions?: string[] | undefined;
7725
7770
  responsive?: undefined;
7726
7771
  performance?: undefined;
7727
7772
  striped?: undefined;
@@ -7779,7 +7824,6 @@ declare const SysApprovalApprover: Omit<{
7779
7824
  scale?: "month" | "day" | "week" | "year" | "hour" | "quarter" | undefined;
7780
7825
  } | undefined;
7781
7826
  gantt?: {
7782
- [x: string]: unknown;
7783
7827
  startDateField: string;
7784
7828
  endDateField: string;
7785
7829
  titleField: string;
@@ -7809,6 +7853,31 @@ declare const SysApprovalApprover: Omit<{
7809
7853
  }[] | undefined;
7810
7854
  autoZoomToFilter?: boolean | undefined;
7811
7855
  viewMode?: "month" | "day" | "week" | "year" | "quarter" | undefined;
7856
+ borderColorField?: string | undefined;
7857
+ lockField?: string | undefined;
7858
+ objectField?: string | undefined;
7859
+ summaryExtent?: "children" | "self" | undefined;
7860
+ defaultCollapsedDepth?: number | undefined;
7861
+ dependencyTypes?: boolean | undefined;
7862
+ timeZone?: string | undefined;
7863
+ exportFileName?: string | undefined;
7864
+ interactions?: {
7865
+ move?: boolean | undefined;
7866
+ resize?: boolean | undefined;
7867
+ progress?: boolean | undefined;
7868
+ link?: boolean | undefined;
7869
+ } | undefined;
7870
+ timeSegments?: {
7871
+ bands: {
7872
+ label: string;
7873
+ start: string;
7874
+ end: string;
7875
+ key?: string | undefined;
7876
+ color?: string | undefined;
7877
+ }[];
7878
+ dayStart?: string | undefined;
7879
+ showMidnight?: boolean | undefined;
7880
+ } | undefined;
7812
7881
  } | undefined;
7813
7882
  chart?: {
7814
7883
  dataset: string;
@@ -8149,6 +8218,7 @@ declare const SysApprovalApprover: Omit<{
8149
8218
  readonly _provenance?: "package" | "env-forced" | "org" | undefined;
8150
8219
  readonly _packageId?: string | undefined;
8151
8220
  readonly _packageVersion?: string | undefined;
8221
+ readonly precision?: number | undefined;
8152
8222
  readonly name?: string | undefined;
8153
8223
  readonly lookupFilters?: {
8154
8224
  field: string;
@@ -8175,7 +8245,6 @@ declare const SysApprovalApprover: Omit<{
8175
8245
  } | undefined;
8176
8246
  readonly reference?: string | undefined;
8177
8247
  readonly label?: string | undefined;
8178
- readonly precision?: number | undefined;
8179
8248
  readonly scale?: number | undefined;
8180
8249
  readonly step?: number | undefined;
8181
8250
  readonly displayField?: string | undefined;
@@ -8278,7 +8347,7 @@ declare const SysApprovalApprover: Omit<{
8278
8347
  readonly widget?: string | undefined;
8279
8348
  readonly internal?: boolean | undefined;
8280
8349
  readonly requiredPermissions?: string[] | undefined;
8281
- readonly maskingRule?: "name" | "email" | "phone" | "id_card" | "bank_account" | {
8350
+ readonly maskingRule?: "email" | "name" | "phone" | "id_card" | "bank_account" | {
8282
8351
  keepHead: number;
8283
8352
  keepTail: number;
8284
8353
  } | undefined;
@@ -8356,6 +8425,7 @@ declare const SysApprovalApprover: Omit<{
8356
8425
  readonly _provenance?: "package" | "env-forced" | "org" | undefined;
8357
8426
  readonly _packageId?: string | undefined;
8358
8427
  readonly _packageVersion?: string | undefined;
8428
+ readonly precision?: number | undefined;
8359
8429
  readonly name?: string | undefined;
8360
8430
  readonly lookupFilters?: {
8361
8431
  field: string;
@@ -8382,7 +8452,6 @@ declare const SysApprovalApprover: Omit<{
8382
8452
  } | undefined;
8383
8453
  readonly reference?: string | undefined;
8384
8454
  readonly label?: string | undefined;
8385
- readonly precision?: number | undefined;
8386
8455
  readonly scale?: number | undefined;
8387
8456
  readonly step?: number | undefined;
8388
8457
  readonly displayField?: string | undefined;
@@ -8485,7 +8554,7 @@ declare const SysApprovalApprover: Omit<{
8485
8554
  readonly widget?: string | undefined;
8486
8555
  readonly internal?: boolean | undefined;
8487
8556
  readonly requiredPermissions?: string[] | undefined;
8488
- readonly maskingRule?: "name" | "email" | "phone" | "id_card" | "bank_account" | {
8557
+ readonly maskingRule?: "email" | "name" | "phone" | "id_card" | "bank_account" | {
8489
8558
  keepHead: number;
8490
8559
  keepTail: number;
8491
8560
  } | undefined;
@@ -8546,6 +8615,7 @@ declare const SysApprovalApprover: Omit<{
8546
8615
  readonly _provenance?: "package" | "env-forced" | "org" | undefined;
8547
8616
  readonly _packageId?: string | undefined;
8548
8617
  readonly _packageVersion?: string | undefined;
8618
+ readonly precision?: number | undefined;
8549
8619
  readonly name?: string | undefined;
8550
8620
  readonly lookupFilters?: {
8551
8621
  field: string;
@@ -8572,7 +8642,6 @@ declare const SysApprovalApprover: Omit<{
8572
8642
  } | undefined;
8573
8643
  readonly reference?: string | undefined;
8574
8644
  readonly label?: string | undefined;
8575
- readonly precision?: number | undefined;
8576
8645
  readonly scale?: number | undefined;
8577
8646
  readonly step?: number | undefined;
8578
8647
  readonly displayField?: string | undefined;
@@ -8675,7 +8744,7 @@ declare const SysApprovalApprover: Omit<{
8675
8744
  readonly widget?: string | undefined;
8676
8745
  readonly internal?: boolean | undefined;
8677
8746
  readonly requiredPermissions?: string[] | undefined;
8678
- readonly maskingRule?: "name" | "email" | "phone" | "id_card" | "bank_account" | {
8747
+ readonly maskingRule?: "email" | "name" | "phone" | "id_card" | "bank_account" | {
8679
8748
  keepHead: number;
8680
8749
  keepTail: number;
8681
8750
  } | undefined;
@@ -9111,7 +9180,7 @@ declare const SysApprovalDelegation: Omit<{
9111
9180
  nameField?: string | undefined;
9112
9181
  displayNameField?: string | undefined;
9113
9182
  titleFormat?: string | {
9114
- dialect: "cel" | "cron" | "template";
9183
+ dialect: "template";
9115
9184
  source?: string | undefined;
9116
9185
  ast?: unknown;
9117
9186
  meta?: {
@@ -9173,7 +9242,6 @@ declare const SysApprovalDelegation: Omit<{
9173
9242
  }) | undefined;
9174
9243
  name?: string | undefined;
9175
9244
  tree?: {
9176
- [x: string]: unknown;
9177
9245
  parentField?: string | undefined;
9178
9246
  labelField?: string | undefined;
9179
9247
  fields?: string[] | undefined;
@@ -9184,6 +9252,68 @@ declare const SysApprovalDelegation: Omit<{
9184
9252
  defaultValue?: never;
9185
9253
  }) | undefined;
9186
9254
  inlineEdit?: boolean | undefined;
9255
+ emptyState?: {
9256
+ title?: string | (Record<string, string> & {
9257
+ key?: never;
9258
+ defaultValue?: never;
9259
+ }) | undefined;
9260
+ message?: string | (Record<string, string> & {
9261
+ key?: never;
9262
+ defaultValue?: never;
9263
+ }) | undefined;
9264
+ icon?: string | undefined;
9265
+ } | undefined;
9266
+ bulkActions?: string[] | undefined;
9267
+ bulkActionDefs?: {
9268
+ name: string;
9269
+ operation: "delete" | "update" | "custom";
9270
+ label?: string | undefined;
9271
+ icon?: string | undefined;
9272
+ variant?: "primary" | "secondary" | "outline" | "danger" | "ghost" | undefined;
9273
+ execution?: "aggregate" | "perRecord" | undefined;
9274
+ patch?: Record<string, unknown> | undefined;
9275
+ params?: {
9276
+ [x: string]: unknown;
9277
+ name: string;
9278
+ type: "number" | "boolean" | "user" | "date" | "record" | "file" | "code" | "url" | "email" | "datetime" | "time" | "formula" | "text" | "textarea" | "phone" | "password" | "secret" | "markdown" | "html" | "richtext" | "currency" | "percent" | "toggle" | "select" | "multiselect" | "radio" | "checkboxes" | "lookup" | "master_detail" | "tree" | "image" | "avatar" | "video" | "audio" | "summary" | "autonumber" | "composite" | "repeater" | "location" | "address" | "json" | "color" | "rating" | "slider" | "signature" | "qrcode" | "progress" | "tags" | "vector";
9279
+ label?: string | undefined;
9280
+ help?: string | undefined;
9281
+ required?: boolean | undefined;
9282
+ default?: unknown;
9283
+ options?: {
9284
+ [x: string]: unknown;
9285
+ label: string;
9286
+ value: string | number | boolean;
9287
+ }[] | undefined;
9288
+ object?: string | undefined;
9289
+ labelField?: string | undefined;
9290
+ multiple?: boolean | undefined;
9291
+ placeholder?: string | undefined;
9292
+ }[] | undefined;
9293
+ confirmText?: string | undefined;
9294
+ confirmLabel?: string | undefined;
9295
+ visible?: string | {
9296
+ dialect: "cel" | "cron" | "template";
9297
+ source?: string | undefined;
9298
+ ast?: unknown;
9299
+ meta?: {
9300
+ rationale?: string | undefined;
9301
+ generatedBy?: string | undefined;
9302
+ } | undefined;
9303
+ } | undefined;
9304
+ requiredPermissions?: string[] | undefined;
9305
+ maxRecords?: number | undefined;
9306
+ batchSize?: number | undefined;
9307
+ }[] | undefined;
9308
+ rowActions?: string[] | undefined;
9309
+ navigation?: {
9310
+ mode?: "none" | "page" | "modal" | "split" | "drawer" | "popover" | "new_window" | undefined;
9311
+ view?: string | undefined;
9312
+ preventNavigation?: boolean | undefined;
9313
+ openNewTab?: boolean | undefined;
9314
+ size?: "full" | "md" | "auto" | "sm" | "lg" | "xl" | undefined;
9315
+ width?: string | number | undefined;
9316
+ } | undefined;
9187
9317
  data?: {
9188
9318
  provider: "object";
9189
9319
  object: string;
@@ -9212,14 +9342,6 @@ declare const SysApprovalDelegation: Omit<{
9212
9342
  schema?: Record<string, unknown> | undefined;
9213
9343
  } | undefined;
9214
9344
  pageName?: string | undefined;
9215
- navigation?: {
9216
- mode?: "none" | "page" | "modal" | "split" | "drawer" | "popover" | "new_window" | undefined;
9217
- view?: string | undefined;
9218
- preventNavigation?: boolean | undefined;
9219
- openNewTab?: boolean | undefined;
9220
- size?: "full" | "md" | "auto" | "sm" | "lg" | "xl" | undefined;
9221
- width?: string | number | undefined;
9222
- } | undefined;
9223
9345
  sharing?: {
9224
9346
  type?: "personal" | "collaborative" | undefined;
9225
9347
  lockedBy?: string | undefined;
@@ -9250,60 +9372,6 @@ declare const SysApprovalDelegation: Omit<{
9250
9372
  isDefault?: boolean | undefined;
9251
9373
  visible?: boolean | undefined;
9252
9374
  }[] | undefined;
9253
- emptyState?: {
9254
- title?: string | (Record<string, string> & {
9255
- key?: never;
9256
- defaultValue?: never;
9257
- }) | undefined;
9258
- message?: string | (Record<string, string> & {
9259
- key?: never;
9260
- defaultValue?: never;
9261
- }) | undefined;
9262
- icon?: string | undefined;
9263
- } | undefined;
9264
- bulkActions?: string[] | undefined;
9265
- bulkActionDefs?: {
9266
- name: string;
9267
- operation: "delete" | "update" | "custom";
9268
- label?: string | undefined;
9269
- icon?: string | undefined;
9270
- variant?: "primary" | "secondary" | "outline" | "danger" | "ghost" | undefined;
9271
- execution?: "aggregate" | "perRecord" | undefined;
9272
- patch?: Record<string, unknown> | undefined;
9273
- params?: {
9274
- [x: string]: unknown;
9275
- name: string;
9276
- type: "number" | "boolean" | "user" | "date" | "record" | "file" | "code" | "url" | "email" | "datetime" | "time" | "formula" | "text" | "textarea" | "phone" | "password" | "secret" | "markdown" | "html" | "richtext" | "currency" | "percent" | "toggle" | "select" | "multiselect" | "radio" | "checkboxes" | "lookup" | "master_detail" | "tree" | "image" | "avatar" | "video" | "audio" | "summary" | "autonumber" | "composite" | "repeater" | "location" | "address" | "json" | "color" | "rating" | "slider" | "signature" | "qrcode" | "progress" | "tags" | "vector";
9277
- label?: string | undefined;
9278
- help?: string | undefined;
9279
- required?: boolean | undefined;
9280
- default?: unknown;
9281
- options?: {
9282
- [x: string]: unknown;
9283
- label: string;
9284
- value: string | number | boolean;
9285
- }[] | undefined;
9286
- object?: string | undefined;
9287
- labelField?: string | undefined;
9288
- multiple?: boolean | undefined;
9289
- placeholder?: string | undefined;
9290
- }[] | undefined;
9291
- confirmText?: string | undefined;
9292
- confirmLabel?: string | undefined;
9293
- visible?: string | {
9294
- dialect: "cel" | "cron" | "template";
9295
- source?: string | undefined;
9296
- ast?: unknown;
9297
- meta?: {
9298
- rationale?: string | undefined;
9299
- generatedBy?: string | undefined;
9300
- } | undefined;
9301
- } | undefined;
9302
- requiredPermissions?: string[] | undefined;
9303
- maxRecords?: number | undefined;
9304
- batchSize?: number | undefined;
9305
- }[] | undefined;
9306
- rowActions?: string[] | undefined;
9307
9375
  responsive?: undefined;
9308
9376
  performance?: undefined;
9309
9377
  striped?: undefined;
@@ -9361,7 +9429,6 @@ declare const SysApprovalDelegation: Omit<{
9361
9429
  scale?: "month" | "day" | "week" | "year" | "hour" | "quarter" | undefined;
9362
9430
  } | undefined;
9363
9431
  gantt?: {
9364
- [x: string]: unknown;
9365
9432
  startDateField: string;
9366
9433
  endDateField: string;
9367
9434
  titleField: string;
@@ -9391,6 +9458,31 @@ declare const SysApprovalDelegation: Omit<{
9391
9458
  }[] | undefined;
9392
9459
  autoZoomToFilter?: boolean | undefined;
9393
9460
  viewMode?: "month" | "day" | "week" | "year" | "quarter" | undefined;
9461
+ borderColorField?: string | undefined;
9462
+ lockField?: string | undefined;
9463
+ objectField?: string | undefined;
9464
+ summaryExtent?: "children" | "self" | undefined;
9465
+ defaultCollapsedDepth?: number | undefined;
9466
+ dependencyTypes?: boolean | undefined;
9467
+ timeZone?: string | undefined;
9468
+ exportFileName?: string | undefined;
9469
+ interactions?: {
9470
+ move?: boolean | undefined;
9471
+ resize?: boolean | undefined;
9472
+ progress?: boolean | undefined;
9473
+ link?: boolean | undefined;
9474
+ } | undefined;
9475
+ timeSegments?: {
9476
+ bands: {
9477
+ label: string;
9478
+ start: string;
9479
+ end: string;
9480
+ key?: string | undefined;
9481
+ color?: string | undefined;
9482
+ }[];
9483
+ dayStart?: string | undefined;
9484
+ showMidnight?: boolean | undefined;
9485
+ } | undefined;
9394
9486
  } | undefined;
9395
9487
  chart?: {
9396
9488
  dataset: string;
@@ -9752,6 +9844,7 @@ declare const SysApprovalDelegation: Omit<{
9752
9844
  readonly _provenance?: "package" | "env-forced" | "org" | undefined;
9753
9845
  readonly _packageId?: string | undefined;
9754
9846
  readonly _packageVersion?: string | undefined;
9847
+ readonly precision?: number | undefined;
9755
9848
  readonly name?: string | undefined;
9756
9849
  readonly lookupFilters?: {
9757
9850
  field: string;
@@ -9778,7 +9871,6 @@ declare const SysApprovalDelegation: Omit<{
9778
9871
  } | undefined;
9779
9872
  readonly reference?: string | undefined;
9780
9873
  readonly label?: string | undefined;
9781
- readonly precision?: number | undefined;
9782
9874
  readonly scale?: number | undefined;
9783
9875
  readonly step?: number | undefined;
9784
9876
  readonly displayField?: string | undefined;
@@ -9881,7 +9973,7 @@ declare const SysApprovalDelegation: Omit<{
9881
9973
  readonly widget?: string | undefined;
9882
9974
  readonly internal?: boolean | undefined;
9883
9975
  readonly requiredPermissions?: string[] | undefined;
9884
- readonly maskingRule?: "name" | "email" | "phone" | "id_card" | "bank_account" | {
9976
+ readonly maskingRule?: "email" | "name" | "phone" | "id_card" | "bank_account" | {
9885
9977
  keepHead: number;
9886
9978
  keepTail: number;
9887
9979
  } | undefined;
@@ -9960,6 +10052,7 @@ declare const SysApprovalDelegation: Omit<{
9960
10052
  readonly _provenance?: "package" | "env-forced" | "org" | undefined;
9961
10053
  readonly _packageId?: string | undefined;
9962
10054
  readonly _packageVersion?: string | undefined;
10055
+ readonly precision?: number | undefined;
9963
10056
  readonly name?: string | undefined;
9964
10057
  readonly lookupFilters?: {
9965
10058
  field: string;
@@ -9986,7 +10079,6 @@ declare const SysApprovalDelegation: Omit<{
9986
10079
  } | undefined;
9987
10080
  readonly reference?: string | undefined;
9988
10081
  readonly label?: string | undefined;
9989
- readonly precision?: number | undefined;
9990
10082
  readonly scale?: number | undefined;
9991
10083
  readonly step?: number | undefined;
9992
10084
  readonly displayField?: string | undefined;
@@ -10089,7 +10181,7 @@ declare const SysApprovalDelegation: Omit<{
10089
10181
  readonly widget?: string | undefined;
10090
10182
  readonly internal?: boolean | undefined;
10091
10183
  readonly requiredPermissions?: string[] | undefined;
10092
- readonly maskingRule?: "name" | "email" | "phone" | "id_card" | "bank_account" | {
10184
+ readonly maskingRule?: "email" | "name" | "phone" | "id_card" | "bank_account" | {
10093
10185
  keepHead: number;
10094
10186
  keepTail: number;
10095
10187
  } | undefined;
@@ -10150,6 +10242,7 @@ declare const SysApprovalDelegation: Omit<{
10150
10242
  readonly _provenance?: "package" | "env-forced" | "org" | undefined;
10151
10243
  readonly _packageId?: string | undefined;
10152
10244
  readonly _packageVersion?: string | undefined;
10245
+ readonly precision?: number | undefined;
10153
10246
  readonly name?: string | undefined;
10154
10247
  readonly lookupFilters?: {
10155
10248
  field: string;
@@ -10176,7 +10269,6 @@ declare const SysApprovalDelegation: Omit<{
10176
10269
  } | undefined;
10177
10270
  readonly reference?: string | undefined;
10178
10271
  readonly label?: string | undefined;
10179
- readonly precision?: number | undefined;
10180
10272
  readonly scale?: number | undefined;
10181
10273
  readonly step?: number | undefined;
10182
10274
  readonly displayField?: string | undefined;
@@ -10279,7 +10371,7 @@ declare const SysApprovalDelegation: Omit<{
10279
10371
  readonly widget?: string | undefined;
10280
10372
  readonly internal?: boolean | undefined;
10281
10373
  readonly requiredPermissions?: string[] | undefined;
10282
- readonly maskingRule?: "name" | "email" | "phone" | "id_card" | "bank_account" | {
10374
+ readonly maskingRule?: "email" | "name" | "phone" | "id_card" | "bank_account" | {
10283
10375
  keepHead: number;
10284
10376
  keepTail: number;
10285
10377
  } | undefined;
@@ -10340,6 +10432,7 @@ declare const SysApprovalDelegation: Omit<{
10340
10432
  readonly _provenance?: "package" | "env-forced" | "org" | undefined;
10341
10433
  readonly _packageId?: string | undefined;
10342
10434
  readonly _packageVersion?: string | undefined;
10435
+ readonly precision?: number | undefined;
10343
10436
  readonly name?: string | undefined;
10344
10437
  readonly lookupFilters?: {
10345
10438
  field: string;
@@ -10366,7 +10459,6 @@ declare const SysApprovalDelegation: Omit<{
10366
10459
  } | undefined;
10367
10460
  readonly reference?: string | undefined;
10368
10461
  readonly label?: string | undefined;
10369
- readonly precision?: number | undefined;
10370
10462
  readonly scale?: number | undefined;
10371
10463
  readonly step?: number | undefined;
10372
10464
  readonly displayField?: string | undefined;
@@ -10469,7 +10561,7 @@ declare const SysApprovalDelegation: Omit<{
10469
10561
  readonly widget?: string | undefined;
10470
10562
  readonly internal?: boolean | undefined;
10471
10563
  readonly requiredPermissions?: string[] | undefined;
10472
- readonly maskingRule?: "name" | "email" | "phone" | "id_card" | "bank_account" | {
10564
+ readonly maskingRule?: "email" | "name" | "phone" | "id_card" | "bank_account" | {
10473
10565
  keepHead: number;
10474
10566
  keepTail: number;
10475
10567
  } | undefined;
@@ -10539,6 +10631,7 @@ declare const SysApprovalDelegation: Omit<{
10539
10631
  readonly _provenance?: "package" | "env-forced" | "org" | undefined;
10540
10632
  readonly _packageId?: string | undefined;
10541
10633
  readonly _packageVersion?: string | undefined;
10634
+ readonly precision?: number | undefined;
10542
10635
  readonly name?: string | undefined;
10543
10636
  readonly lookupFilters?: {
10544
10637
  field: string;
@@ -10565,7 +10658,6 @@ declare const SysApprovalDelegation: Omit<{
10565
10658
  } | undefined;
10566
10659
  readonly reference?: string | undefined;
10567
10660
  readonly label?: string | undefined;
10568
- readonly precision?: number | undefined;
10569
10661
  readonly scale?: number | undefined;
10570
10662
  readonly step?: number | undefined;
10571
10663
  readonly displayField?: string | undefined;
@@ -10668,7 +10760,7 @@ declare const SysApprovalDelegation: Omit<{
10668
10760
  readonly widget?: string | undefined;
10669
10761
  readonly internal?: boolean | undefined;
10670
10762
  readonly requiredPermissions?: string[] | undefined;
10671
- readonly maskingRule?: "name" | "email" | "phone" | "id_card" | "bank_account" | {
10763
+ readonly maskingRule?: "email" | "name" | "phone" | "id_card" | "bank_account" | {
10672
10764
  keepHead: number;
10673
10765
  keepTail: number;
10674
10766
  } | undefined;
@@ -10729,6 +10821,7 @@ declare const SysApprovalDelegation: Omit<{
10729
10821
  readonly _provenance?: "package" | "env-forced" | "org" | undefined;
10730
10822
  readonly _packageId?: string | undefined;
10731
10823
  readonly _packageVersion?: string | undefined;
10824
+ readonly precision?: number | undefined;
10732
10825
  readonly name?: string | undefined;
10733
10826
  readonly lookupFilters?: {
10734
10827
  field: string;
@@ -10755,7 +10848,6 @@ declare const SysApprovalDelegation: Omit<{
10755
10848
  } | undefined;
10756
10849
  readonly reference?: string | undefined;
10757
10850
  readonly label?: string | undefined;
10758
- readonly precision?: number | undefined;
10759
10851
  readonly scale?: number | undefined;
10760
10852
  readonly step?: number | undefined;
10761
10853
  readonly displayField?: string | undefined;
@@ -10858,7 +10950,7 @@ declare const SysApprovalDelegation: Omit<{
10858
10950
  readonly widget?: string | undefined;
10859
10951
  readonly internal?: boolean | undefined;
10860
10952
  readonly requiredPermissions?: string[] | undefined;
10861
- readonly maskingRule?: "name" | "email" | "phone" | "id_card" | "bank_account" | {
10953
+ readonly maskingRule?: "email" | "name" | "phone" | "id_card" | "bank_account" | {
10862
10954
  keepHead: number;
10863
10955
  keepTail: number;
10864
10956
  } | undefined;
@@ -11050,6 +11142,70 @@ interface ApprovalResumeSurface {
11050
11142
  * engine that does not implement it simply gets no pre-flight.
11051
11143
  */
11052
11144
  hasSuspendedRun?(runId: string): Promise<boolean>;
11145
+ /**
11146
+ * [#15389] Where each suspended run is currently parked. Read by
11147
+ * {@link ApprovalService.continueRestoredRun} to prove the pause it was asked
11148
+ * to continue is the one THIS request's recorded outcome was issued at, and
11149
+ * not merely some live pause on the same run — `hasSuspendedRun` answers a
11150
+ * boolean and cannot tell the two apart. Which node that is depends on the signal, not
11151
+ * only on the row: see {@link ApprovalService.expectedPauseNode}.
11152
+ *
11153
+ * ⚠️ Declares a method `AutomationEngine` ALREADY implements publicly
11154
+ * (`listSuspendedRunsDurable`); it widens no engine surface. Durable-first,
11155
+ * so it sees a pause parked by another replica or before a restart.
11156
+ *
11157
+ * Optional, and its absence is FAIL-CLOSED: a caller that cannot prove node
11158
+ * identity refuses the continuation rather than proceeding on the weaker
11159
+ * check. The engine degrades a store outage to its in-memory list rather
11160
+ * than throwing, and that degradation is safe HERE for the same reason — a
11161
+ * pause it cannot see is a pause this verb will not act on.
11162
+ */
11163
+ listSuspendedRunsDurable?(): Promise<Array<{
11164
+ runId: string;
11165
+ flowName: string;
11166
+ nodeId: string;
11167
+ correlation?: string;
11168
+ }>>;
11169
+ /**
11170
+ * [#15358] Whether the consumed suspension behind a `failed` run SURVIVES —
11171
+ * i.e. whether the engine's `restoreConsumedSuspension` would re-arm it.
11172
+ * Read by {@link ApprovalService.inspectStrandedRequests}, for `failed` rows
11173
+ * only, to tell the #13909 strand (repairable) from a cascade-failed
11174
+ * ancestor — the `failAncestors` shape the engine itself calls NOT stranded,
11175
+ * because `failSuspendedRun` consumed the ancestor's pause and journalled
11176
+ * nothing, so no verb re-arms it (#15222's shape). {@link getRun} answers
11177
+ * `status: 'failed'` for both: the discriminator is deliberately NOT on
11178
+ * `ExecutionLogEntry`, which `GET /automation/:name/runs/:runId` serves
11179
+ * verbatim. Ruled B′ on #15358 (2026-09-07): it is published as a dedicated
11180
+ * read-only engine member, never on the wire.
11181
+ *
11182
+ * ⚠️ Declares a method `AutomationEngine` ALREADY implements publicly
11183
+ * (`inspectConsumedSuspension`); it widens no engine surface. It answers
11184
+ * from the same two witnesses the restore verb reads — this process's hot
11185
+ * journal and the durable row — so what it calls repairable IS what that
11186
+ * verb restores. The three negatives are distinct on purpose (see
11187
+ * {@link StrandedRunState}); the middle one, `'SNAPSHOT_DROPPED'`, is a
11188
+ * strand the store could not persist, repairable only by the process that
11189
+ * stranded it while that process lives.
11190
+ *
11191
+ * Optional, and its absence is FAIL-CLOSED for a report: a `failed` row the
11192
+ * engine cannot be asked about is reported as today's undifferentiated
11193
+ * `'failed'` — ⛔ never as `'unrepairable'` (that calls the repairable row
11194
+ * dead: the #15555 false-negative harm, one surface over) and ⛔ never
11195
+ * skipped (that hides the row). Absence of the discriminator is not
11196
+ * evidence of anything. Rejects when a store cannot be read; the inspection
11197
+ * counts such a row `undetermined` — but ⛔ unlike a thrown
11198
+ * {@link hasSuspendedRun} it does NOT drop the row, because this oracle is
11199
+ * asked only WHICH shape a row already known to be stranded is (#16709).
11200
+ * A host that resolves a malformed verdict is treated the same way, and
11201
+ * costs no OTHER row its answer.
11202
+ */
11203
+ inspectConsumedSuspension?(runId: string): Promise<{
11204
+ repairable: true;
11205
+ } | {
11206
+ repairable: false;
11207
+ reason: 'RUN_SUSPENDED' | 'SNAPSHOT_DROPPED' | 'NO_CONSUMED_SUSPENSION';
11208
+ }>;
11053
11209
  }
11054
11210
  /**
11055
11211
  * Optional messaging surface (ADR-0012 `messaging` service). When attached,
@@ -11071,26 +11227,112 @@ interface ApprovalMessagingSurface {
11071
11227
  }): Promise<unknown>;
11072
11228
  }
11073
11229
  /**
11074
- * WHY a terminal request's run is unrecoverable — the two shapes the inspection
11075
- * reports, which have different causes and different remedies (#13909).
11230
+ * WHY a terminal request's run is unrecoverable — the shapes the inspection
11231
+ * reports, which have different causes and different remedies (#13909;
11232
+ * split three ways by the #15358 B′ ruling, 2026-09-07).
11076
11233
  *
11077
11234
  * - `missing` — `getRun` finds no history row at all (#4469's original shape):
11078
11235
  * the run was lost before it could record anything, typically a pause that
11079
11236
  * never reached a durable store and did not survive a restart.
11080
- * - `failed` — the run DID record a terminal `failed` row. The engine consumes
11081
- * a suspension *before* running the downstream nodes
11082
- * (`AutomationEngine.resumeInternal`: `forgetSuspendedRun(run, 'resumed')`
11083
- * precedes `traverseNext`), so a downstream node that merely THREW threw with
11084
- * the pause already gone the catch arm recorded `failed` and there is no
11085
- * suspension left to resume. The decision is durable, the flow stopped
11086
- * mid-continuation, and no verb moves the run out of that state.
11237
+ *
11238
+ * The other four all describe a run that DID record a terminal `failed` row.
11239
+ * The engine consumes a suspension *before* running the downstream nodes
11240
+ * (`AutomationEngine.resumeInternal`: `forgetSuspendedRun(run, 'resumed')`
11241
+ * precedes `traverseNext`), so a downstream node that merely THREW threw with
11242
+ * the pause already gone the catch arm recorded `failed` and there is no
11243
+ * suspension left to resume. The decision is durable and the flow stopped
11244
+ * mid-continuation. What differs is whether anything can put the pause back,
11245
+ * and `status` alone cannot say — the three differentiated members come from
11246
+ * the engine's own consumed-suspension witnesses
11247
+ * ({@link ApprovalResumeSurface.inspectConsumedSuspension}):
11248
+ *
11249
+ * - `repairable` — the engine holds the consumed suspension (in its journal
11250
+ * or on the durable row): the #13909 strand. `restoreConsumedSuspension`
11251
+ * re-arms it and {@link ApprovalService.continueRestoredRun} re-issues the
11252
+ * decision. The remedy is a repair.
11253
+ * - `snapshot_dropped` — the run DID strand, but the store could not persist
11254
+ * the snapshot (over its row budget) and the engine asked holds no hot
11255
+ * copy. Repairable only by the process that stranded it, while that process
11256
+ * lives; the restore verb refuses it elsewhere naming the budget. ⛔ Not
11257
+ * folded into either neighbour: as `repairable` it over-reports, as
11258
+ * `unrepairable` it is #15555's false negative. Reported as what it is.
11259
+ * - `unrepairable` — the engine holds NO consumed suspension: the run was
11260
+ * cascade-failed (`failAncestors` → `failSuspendedRun`, which consumes the
11261
+ * ancestor's pause and journals nothing — #15222's shape, the one the
11262
+ * engine's own words call not a strand), never paused at all, or did
11263
+ * strand and its snapshot is no longer held (the journal evicted a copy
11264
+ * whose write never landed; the run was restored and then finished; a
11265
+ * store class without `loadTerminal`, after a restart) — the engine's
11266
+ * `NO_CONSUMED_SUSPENSION` covers all three and does not say which. The
11267
+ * label is faithful to the verb: nothing re-arms it; the remedy is a new
11268
+ * run, not a restore.
11269
+ * - `failed` — the engine COULD NOT BE ASKED which of the three it is, or
11270
+ * was asked and could not answer. Three ways in: the attached surface has
11271
+ * no `inspectConsumedSuspension` (an engine build older than this plugin,
11272
+ * or a test double); the read THREW (a store outage); or the host resolved
11273
+ * a malformed verdict, violating its own declared surface (#16709). Today's
11274
+ * undifferentiated label, kept on purpose as the fail-closed fallback
11275
+ * (#15358 ruling, item 1): a failure to differentiate is not evidence, so
11276
+ * the row is reported and its repairability left unstated — ⛔ never
11277
+ * `unrepairable`, ⛔ never dropped from the report.
11087
11278
  *
11088
11279
  * ⚠️ This names the shapes for the REPORT only. It is not a run state: the
11089
11280
  * engine's own vocabulary is still `'completed' | 'paused' | 'failed'`
11090
11281
  * (`AutomationResult.status`) and nothing persists or queries "stranded".
11091
11282
  * Giving the condition a platform-level name is #13909's own deliverable.
11092
11283
  */
11093
- type StrandedRunState = 'missing' | 'failed';
11284
+ type StrandedRunState = 'missing' | 'failed' | 'repairable' | 'snapshot_dropped' | 'unrepairable';
11285
+ /**
11286
+ * The continuation an approvals door already issued once, kept so it can be
11287
+ * issued AGAIN after an operator re-arms the pause it was refused on (#15389).
11288
+ *
11289
+ * Stashed under `__strandedContinuation` in `sys_approval_request`
11290
+ * `node_config_json` — the same private side-channel `__decisionOutputs`
11291
+ * already uses, rather than a new column: this is recovery bookkeeping for a
11292
+ * rare failure path, not part of the authored node config, and every reader of
11293
+ * that JSON reads named fields.
11294
+ */
11295
+ interface StrandedContinuationSignal {
11296
+ /** The `approve` / `reject` / `revise` / `resubmit` edge the outcome walks. */
11297
+ branchLabel?: string;
11298
+ /** The exact flow-variable payload the original resume carried. */
11299
+ output?: Record<string, unknown>;
11300
+ /** Outcome label for the {@link strandedDecisionFailure} envelope. */
11301
+ decision: string;
11302
+ /** How the original door described the outcome in prose, e.g. `the reject decision`. */
11303
+ what: string;
11304
+ }
11305
+ /**
11306
+ * Outcome of {@link ApprovalService.continueRestoredRun} (#15389).
11307
+ *
11308
+ * ⚠️ Deliberately its own shape rather than a reuse of `ApprovalDecisionResult`:
11309
+ * that contract is the subject of an OPEN maintainer ruling on #15556, and this
11310
+ * card must not pre-empt it. Nothing here changes what `decide` answers.
11311
+ */
11312
+ interface ApprovalContinuationResult {
11313
+ /** True when the restored pause was consumed and the flow moved on. */
11314
+ resumed: boolean;
11315
+ /** The run this continued — the one the request has always named. */
11316
+ runId: string;
11317
+ /** The outcome that was replayed, exactly as it was first recorded. */
11318
+ decision: string;
11319
+ /** The edge it walked. */
11320
+ branchLabel?: string;
11321
+ /**
11322
+ * Where the replayed signal came from, so a caller can tell an EXACT replay
11323
+ * from an inferred one:
11324
+ *
11325
+ * - `journal` — the failing door stashed the literal signal it sent, so this
11326
+ * is a byte-for-byte re-issue.
11327
+ * - `reconstructed` — no stash (the strand predates that journalling, or its
11328
+ * write failed), so the signal was rebuilt from the row's recorded outcome.
11329
+ * Exact for every status this verb accepts; the one shape it CANNOT rebuild
11330
+ * is refused rather than guessed (see the method's `AMBIGUOUS_RECORDED_OUTCOME`).
11331
+ */
11332
+ source: 'journal' | 'reconstructed';
11333
+ /** Set only on the tolerated non-failure: a concurrent resume already had it. */
11334
+ resumeError?: string;
11335
+ }
11094
11336
  /**
11095
11337
  * One terminal request whose owning flow run is unrecoverable (#4469) — the
11096
11338
  * decision was recorded and the flow never moved. Reporting shape only: the
@@ -11104,14 +11346,18 @@ interface StrandedApprovalRequest {
11104
11346
  /**
11105
11347
  * The `flow_run_id` that resolves to no live suspension and no recoverable
11106
11348
  * run — see `runState`: no history row at all (`missing`), or a terminal
11107
- * `failed` row (`failed`).
11349
+ * `failed` row (`repairable` / `snapshot_dropped` / `unrepairable`, or
11350
+ * `failed` when the engine could not say which).
11108
11351
  */
11109
11352
  runId: string;
11110
11353
  /**
11111
11354
  * Which unrecoverable shape this is — see {@link StrandedRunState}. Carried
11112
- * because the two need different remedies: a `missing` run has no history to
11113
- * read, while a `failed` one has a step log and an error message naming the
11114
- * node that threw.
11355
+ * because the shapes need different remedies: a `missing` run has no history
11356
+ * to read; a `repairable` one is put back by `restoreConsumedSuspension` and
11357
+ * continued by {@link ApprovalService.continueRestoredRun}; an
11358
+ * `unrepairable` one (#15222's cascade-failed ancestor) is refused by that
11359
+ * verb and needs a new run. An operator reading `'failed'` has to ask the
11360
+ * engine directly.
11115
11361
  */
11116
11362
  runState: StrandedRunState;
11117
11363
  flowName?: string;
@@ -11554,7 +11800,53 @@ declare class ApprovalService implements IApprovalService {
11554
11800
  * unchanged — only rows belonging to no org at all become visible.
11555
11801
  */
11556
11802
  private businessUnitOrgScope;
11557
- /** Recursive department — walks `sys_business_unit.parent_business_unit_id`. */
11803
+ /**
11804
+ * Tenant scope for the `sys_business_unit_member` read — a STRICT equality,
11805
+ * deliberately NOT {@link businessUnitOrgScope} (#14946).
11806
+ *
11807
+ * The two screens answer different questions. The UNIT is the anchor the
11808
+ * approver NAMES, and a seeded unit carries `organization_id = null` by
11809
+ * construction (a seed cannot know the id the runtime mints at boot), so
11810
+ * #3807 admits the null there on purpose. The MEMBER rows are the SET BEING
11811
+ * ROUTED TO — enumerated by the platform, never named by anyone — and a
11812
+ * seeded unit id exists identically in every tenant. Before this screen the
11813
+ * member read carried no organization predicate at all, under
11814
+ * {@link SYSTEM_CTX} which carries no tenant either, so tenant A's request
11815
+ * resolved the shared unit and then collected EVERY tenant's membership rows
11816
+ * hanging off it: approval authority over A's record, routed to B's users.
11817
+ *
11818
+ * Why the null arm is NOT copied here — measured on this tree:
11819
+ * - `sys_business_unit_member` declares no `organization_id`; the column
11820
+ * is injected (`applySystemFields`) and the tenancy census lists it in;
11821
+ * - REST / session writes fill it (`SqlDriver.injectTenantOnInsert`);
11822
+ * - seed replay does NOT (`seed-loader.ts` withholds its `fallbackOrgId`
11823
+ * from every `sys_` object), and elevated system-context writes do NOT
11824
+ * (`unclassified` in `PLATFORM_OBJECT_TENANCY`, tracked as #14570).
11825
+ * So a NULL on a member row means UNKNOWN tenancy, not "platform-global",
11826
+ * and unknown tenancy is not a member of this organization. This is the
11827
+ * ruling `plugin-sharing`'s `memberScope` already applies to the same rows
11828
+ * (#14547 / #14949), and the posture this file already takes for
11829
+ * `sys_team_member` and `sys_user_position`.
11830
+ *
11831
+ * The cost is declared, not hidden: an organization whose MEMBERSHIP rows
11832
+ * were seeded or system-written expands to nobody even on a unit it can
11833
+ * see. That is not silent — the graph-type fallback in `expandApprover`
11834
+ * warns `expanded to nobody` (#3807) and `onEmptyApprovers` governs the
11835
+ * request as for any unstaffed target — and the repair is to stamp the
11836
+ * membership rows, never to widen this screen. ⛔ Do not "unify" the two
11837
+ * screens: one method serving both re-opens whichever half it does not
11838
+ * implement.
11839
+ */
11840
+ private businessUnitMemberScope;
11841
+ /**
11842
+ * Recursive department — walks `sys_business_unit.parent_business_unit_id`.
11843
+ *
11844
+ * Two tenant screens, and they are different on purpose: the UNIT rows
11845
+ * (seed check and descent) go through the null-inclusive
11846
+ * {@link businessUnitOrgScope}; the MEMBER read goes through the strict
11847
+ * {@link businessUnitMemberScope}. `organizationId` is the DIRECTORY
11848
+ * organization the approver resolves in (ADR-0105 D9), for both.
11849
+ */
11558
11850
  private expandBusinessUnitUsers;
11559
11851
  /**
11560
11852
  * Position holders (ADR-0090 D3): `sys_user_position` is the platform-owned
@@ -11837,6 +12129,20 @@ declare class ApprovalService implements IApprovalService {
11837
12129
  private serviceResume;
11838
12130
  /** The engine failure code behind a {@link serviceResume} rejection, if any. */
11839
12131
  private static resumeCodeOf;
12132
+ /**
12133
+ * The engine's own run-state discriminator behind a {@link serviceResume}
12134
+ * rejection — `AutomationResult.status` — if the engine reported one
12135
+ * (#13807).
12136
+ *
12137
+ * Read as a SIBLING of {@link resumeCodeOf}, never as a substitute: the two
12138
+ * answer different questions and the stranded exit proves they are not
12139
+ * interchangeable. It reports `status: 'stranded'` and **no `code` at all**
12140
+ * (`service-automation` `engine.ts`, the resume catch arm), so a door that
12141
+ * reads only the code sees an unnamed failure and cannot tell a repairable
12142
+ * strand from a dead run — which is how the platform's own repairability
12143
+ * signal had a producer and zero consumers until this call site.
12144
+ */
12145
+ private static resumeStatusOf;
11840
12146
  /**
11841
12147
  * Refuse an operation whose whole point is to advance a flow run when that
11842
12148
  * run no longer exists — BEFORE anything is written down (#4420).
@@ -11902,8 +12208,31 @@ declare class ApprovalService implements IApprovalService {
11902
12208
  * which cannot throw without breaking every standalone deployment — it
11903
12209
  * reports through `resumeError` instead.
11904
12210
  *
12211
+ * ## The throw is truthful, not merely loud (#13807)
12212
+ *
12213
+ * Maintainer ruling 2026-09-04 (decision batch #37, option B): this door
12214
+ * KEEPS its status code — the effect landing while the run strands is still
12215
+ * a failure and must still be reported as one — and stops discarding what
12216
+ * the engine said. ⛔ Not "return 200", which the card forbids; ⛔ not
12217
+ * atomic, because rolling a real human decision back is excluded by the
12218
+ * #13937 shape-4 ruling, which binds this door's own writes too (a machine
12219
+ * that re-armed strandings by itself would re-run the node that threw,
12220
+ * forever, with nobody deciding it should).
12221
+ *
12222
+ * So the error carries {@link StrandedDecisionDetails} beside its prose:
12223
+ * `finalized` (the decision stands), `decision`, `runId`, and `repairable`
12224
+ * derived from the engine's `'stranded'` discriminator. Before this a caller
12225
+ * had a 500 and a sentence — and 500 alone reads as "the rejection did not
12226
+ * happen", which is the misreading that makes a caller retry or escalate
12227
+ * against a decision that IS durable.
12228
+ *
11905
12229
  * @param what - how the recorded outcome reads in the error, e.g.
11906
12230
  * `"the approve decision"`.
12231
+ * @param decision - the outcome label for the machine-readable envelope
12232
+ * (`'approve'` / `'reject'` / `'revise'` / `'resubmit'`). Passed
12233
+ * explicitly rather than parsed back out of `what` or the signal: the
12234
+ * prose is for humans and `output` is the flow's, and neither is a place
12235
+ * to keep a wire value.
11907
12236
  */
11908
12237
  private resumeRecordedOutcome;
11909
12238
  /**
@@ -11922,7 +12251,7 @@ declare class ApprovalService implements IApprovalService {
11922
12251
  */
11923
12252
  decide(requestId: string, input: ApprovalDecisionInput, context: ExecutionContext): Promise<ApprovalDecisionResult>;
11924
12253
  /**
11925
- * Withdraw a pending request (submitter only). Finalises the row as
12254
+ * Withdraw an undecided request. Finalises the row as
11926
12255
  * `recalled`, releases the record lock (keyed on pending status), mirrors
11927
12256
  * the status field when configured, and resumes the owning flow run down
11928
12257
  * the `reject` branch with `output.decision = 'recall'` — leaving the run
@@ -12208,8 +12537,25 @@ declare class ApprovalService implements IApprovalService {
12208
12537
  * ⚠️ The widening does NOT reverse the conservatism: `completed`, `cancelled`
12209
12538
  * and `paused` are each still skipped, for reasons named one at a time in
12210
12539
  * `classifyStrandedRunState`, and an unrecognised status is skipped too.
12211
- * What the widening buys is that a `failed` run is now reported with
12212
- * `runState: 'failed'` instead of counted as healthy.
12540
+ * What the widening buys is that a `failed` run is now reported instead of
12541
+ * counted as healthy.
12542
+ *
12543
+ * **A THIRD oracle tells the `failed` rows apart (#15358).** `status ===
12544
+ * 'failed'` over-reports in one specific direction: a cascade-failed run
12545
+ * — an ancestor `failAncestors` failed while it was parked at its `subflow`
12546
+ * node, whose pause `failSuspendedRun` consumed and journalled nothing — has
12547
+ * the same terminal row as the #13909 strand, and `restoreConsumedSuspension`
12548
+ * refuses it. The engine's discriminator (the consumed-suspension snapshot)
12549
+ * is deliberately NOT on the object `getRun` answers, so it is asked through
12550
+ * a dedicated read-only member, `inspectConsumedSuspension`, and only for
12551
+ * `failed` rows: the answer splits `'failed'` into `'repairable'`,
12552
+ * `'snapshot_dropped'` and `'unrepairable'` (see {@link StrandedRunState}).
12553
+ * A surface without that member leaves the row `'failed'` — reported,
12554
+ * undifferentiated — because absence of the discriminator is not evidence
12555
+ * of anything. So does a read that THREW or answered a malformed verdict
12556
+ * (#16709): by the time this oracle is asked the row is already known to be
12557
+ * stranded, so a failure to differentiate it is not a reason to drop it from
12558
+ * a report — it is counted `undetermined` as telemetry AND reported.
12213
12559
  *
12214
12560
  * ⚠️ **What this can and cannot size.** It makes the condition *visible* in a
12215
12561
  * deployment; it is not itself a census, and it says nothing about this
@@ -12229,9 +12575,205 @@ declare class ApprovalService implements IApprovalService {
12229
12575
  }): Promise<{
12230
12576
  scanned: number;
12231
12577
  stranded: StrandedApprovalRequest[];
12232
- /** Rows skipped because the suspension store could not be read — NOT healthy, just unknown. */
12578
+ /**
12579
+ * Reads that could not be MADE — telemetry, ⛔ never a verdict and ⛔ never
12580
+ * a "healthy" number. A thrown first or second oracle SKIPS its row
12581
+ * (whether that row is stranded at all is then unknown, and a storage
12582
+ * outage must not be published as a lost run); a thrown or malformed THIRD
12583
+ * read leaves its row in `stranded` as the undifferentiated `'failed'` and
12584
+ * is counted here as well — the row is known to be stranded, only its
12585
+ * shape could not be told (#16709). So this counter and `stranded.length`
12586
+ * overlap on purpose, and neither one alone sizes the scan's blind spot.
12587
+ */
12233
12588
  undetermined: number;
12234
12589
  }>;
12590
+ /**
12591
+ * Stash the continuation a door just failed to deliver, so it can be issued
12592
+ * again after the pause is re-armed (#15389).
12593
+ *
12594
+ * `AutomationEngine.restoreConsumedSuspension` puts a stranded approval run
12595
+ * back on its pause and tells the operator to *re-issue the continuation* —
12596
+ * but for an `approval` node the only issuers are this service's doors, and
12597
+ * every one of them guards on a `pending` request that the stranding call
12598
+ * itself just made terminal. Re-opening the row is excluded (it would let a
12599
+ * decided request be decided again), so what is kept instead is the SIGNAL:
12600
+ * the exact `branchLabel` + `output` the failed resume carried.
12601
+ *
12602
+ * ⚠️ Best-effort by construction, and it must stay that way: the decision is
12603
+ * already durable and its caller is already owed a `RESUME_FAILED` throw. A
12604
+ * failure to write recovery bookkeeping must not replace that throw with a
12605
+ * storage error — {@link ApprovalService.continueRestoredRun} rebuilds the
12606
+ * signal from the row when the stash is absent, so this failing costs
12607
+ * fidelity on one shape, not the repair path.
12608
+ */
12609
+ private journalStrandedContinuation;
12610
+ /**
12611
+ * The continuation to re-issue for a request whose recorded outcome stranded
12612
+ * its run — the journalled one when there is one, otherwise rebuilt from the
12613
+ * row (#15389).
12614
+ *
12615
+ * ## Why a rebuild path exists at all
12616
+ *
12617
+ * The journal only covers runs stranded by a build that HAS it. The card is
12618
+ * explicitly about *"the runs already in this state"*, and one of those can
12619
+ * still be restored whenever the durable run-history row carried its
12620
+ * suspension snapshot — so a repair verb that only served future strands
12621
+ * would miss the population the card was filed for.
12622
+ *
12623
+ * ## Which statuses it rebuilds, which it discriminates, and which it refuses
12624
+ *
12625
+ * ⛔ A status is NOT the same thing as a continuation. Three of the four
12626
+ * terminal statuses have more than one writer or more than one issuer, so
12627
+ * "one status, one signal" is false and is not what this relies on. Each row
12628
+ * below states its own population and its own discriminator:
12629
+ *
12630
+ * | status | writers / issuers | rebuilt as | how it is decided |
12631
+ * |---|---|---|---|
12632
+ * | `approved` | 1 (`decide`; escalation auto-approve routes through it) | `approve` | unambiguous |
12633
+ * | `rejected` | 2 (`decide`; ADR-0044 revision-limit auto-reject) | `reject`, or REFUSED | a `revise` action row means the auto-reject arm is possible |
12634
+ * | `returned` | 1 writer, 2 issuers (`sendBack` → `revise`; a later `resubmit` → `resubmit`, writing no status) | `resubmit` or `revise` | a `resubmit` action row, whose sole writer is `resubmit` |
12635
+ * | `recalled` | 2 writers, 3 behaviours, 2 issuing NO continuation | REFUSED | nothing on the row distinguishes them |
12636
+ *
12637
+ * ⚠️ **Both refusals are deliberate and neither is best-effort.** The failure
12638
+ * mode of a wrong rebuild is a flow advanced down a branch nobody chose —
12639
+ * strictly worse than the dead end this verb exists to open. Where the signal
12640
+ * cannot be proved, this refuses and names what the operator can do instead;
12641
+ * the journal is what makes both shapes recoverable going forward.
12642
+ *
12643
+ * ⛔ `pending` and `cancelled` are refused outright: neither names a recorded
12644
+ * outcome to replay. A `pending` request's continuation is an ordinary
12645
+ * decision through the front door, which is exactly the guard this verb
12646
+ * exists to avoid weakening.
12647
+ */
12648
+ private resolveRecordedContinuation;
12649
+ /**
12650
+ * WHERE the pause a recorded continuation was refused on actually sits
12651
+ * (#15389) — the expected node guard 3 compares the run's parked node against.
12652
+ *
12653
+ * ⚠️ This is signal-aware, and that is the whole point of it. "This request's
12654
+ * own node" is the right answer for three of the four signals and the WRONG
12655
+ * answer for the fourth:
12656
+ *
12657
+ * | signal | issued from | why |
12658
+ * |---|---|---|
12659
+ * | `approve` / `reject` | the request's own approval node | the decision is taken at the pause it gates |
12660
+ * | `revise` (send-back) | the request's own approval node | send-back resumes that same pause down the `revise` edge |
12661
+ * | `recall` | the request's own approval node | recall-on-pending resumes that same pause down `reject` |
12662
+ * | `resubmit` | the **revise window** the request's `revise` edge leads to | by construction: a resubmit is only reachable AFTER a send-back moved the run there, and it resumes THAT pause down the `resubmit` back-edge |
12663
+ *
12664
+ * Measured before this existed: a `returned` row whose resubmit stranded was
12665
+ * refused by guard 3 on both the journal and the rebuild paths — the pause
12666
+ * re-armed at the revise window while the row's `flow_node_id` still read the
12667
+ * approval node — and the refusal told the operator the pause was not this
12668
+ * request's when it was exactly this request's. A refusal may ship; a refusal
12669
+ * that names a cause the code did not take may not.
12670
+ *
12671
+ * ⛔ It stays FAIL-CLOSED: the revise window is derived from the flow
12672
+ * definition the same way {@link ApprovalService.assertReviseEdge} derives it
12673
+ * — a `revise` out-edge of this request's node into a node the flow declares
12674
+ * as `{@link APPROVAL_REVISE_NODE_TYPE}`, which is the pause only this service
12675
+ * can continue. No engine, no flow, no such edge, or more than one candidate
12676
+ * ⇒ refuse. It needs no automation surface `assertReviseEdge` did not already
12677
+ * use (`getFlow`), and no engine change.
12678
+ *
12679
+ * ⚠️ It does not widen what guard 3 admits beyond that one signal: for every
12680
+ * other decision the answer is byte-identical to the row's own node.
12681
+ *
12682
+ * ⛔ It is NOT what keeps the recall-in-revise-window shape (row `recalled`,
12683
+ * run at the revise window) refused, and an earlier revision of this comment
12684
+ * claimed it was — on the reasoning that such a row's journalled signal is
12685
+ * `recall` rather than `resubmit`. That is false: a recall taken inside the
12686
+ * revise window calls `cancelRun` and journals NOTHING, so the journal on
12687
+ * such a row is whatever an EARLIER strand left there — a `resubmit`, most
12688
+ * often, since the resubmit is what the window exists to receive. Measured:
12689
+ * with the journal returned before the row's status was looked at, that
12690
+ * stale `resubmit` reached this method, was answered with the revise window,
12691
+ * matched the parked node, and opened a fresh `pending` round on a withdrawn
12692
+ * request. What refuses it is the journal/status compatibility check in
12693
+ * {@link ApprovalService.resolveRecordedContinuation} — see
12694
+ * {@link CONTINUATIONS_A_STATUS_CAN_ISSUE} — which runs BEFORE this method
12695
+ * and never hands it a signal the row's status cannot have issued.
12696
+ */
12697
+ private expectedPauseNode;
12698
+ /**
12699
+ * Re-issue the continuation for a run an operator has re-armed with
12700
+ * `AutomationEngine.restoreConsumedSuspension` — the missing half of that
12701
+ * repair verb, for approvals (#15389).
12702
+ *
12703
+ * ## The dead end this exits
12704
+ *
12705
+ * A decision whose downstream node throws strands the run: the suspension is
12706
+ * consumed, the decision is durable, and the caller gets `RESUME_FAILED`
12707
+ * carrying `repairable: true`. `restoreConsumedSuspension` then genuinely
12708
+ * re-arms the pause — measured `restored: true`, `hasSuspendedRun` back to
12709
+ * `true` — and its own reason string tells the operator to *re-issue the
12710
+ * continuation*. For an `approval` node there was then nobody who could:
12711
+ *
12712
+ * - `decide` / `recall` / `sendBack` / `resubmit` all guard on a `pending`
12713
+ * request, and the row is terminal — written by the very call that
12714
+ * stranded the run;
12715
+ * - the generic `engine.resume` refuses, because the `approval` node
12716
+ * declares `resumeAuthority: 'service'` and the #3801 gate turns away any
12717
+ * resume that is not the tail of a decision this service authorized.
12718
+ *
12719
+ * So the only verb left was `cancelRun`, which discards the branch's
12720
+ * downstream work. Measured on the real engine and the real door: the
12721
+ * restored pause IS resumable, and a `resumeAuthority`-marked resume walks
12722
+ * the reject branch to completion. Nothing was missing in the engine — what
12723
+ * was missing was an ISSUER on this side. This is that issuer.
12724
+ *
12725
+ * ## What it deliberately does NOT do
12726
+ *
12727
+ * ⛔ It does not re-open, re-decide, or rewrite the request row: all four
12728
+ * `pending` guards stay exactly as they are, and no status, mirror field or
12729
+ * audit row is written. A person decided this once; this replays what they
12730
+ * decided onto the pause that was put back, and replays nothing else.
12731
+ * ⛔ It does not relax `resumeAuthority: 'service'` — the resume goes through
12732
+ * {@link ApprovalService.serviceResume} like every other, so the marker is
12733
+ * still stamped in exactly one place.
12734
+ * ⛔ It grants no capability that in-process code did not already have:
12735
+ * `RESUME_AUTHORITY_SERVICE` is importable by anything in the host, so the
12736
+ * raw form of this call was always available. What this adds is the GUARDED
12737
+ * form, and the guards are the substance of it — three, each with its own
12738
+ * reverse-control pin, because the raw marker is not a guard and an
12739
+ * unguarded repair verb advances flows nobody decided:
12740
+ *
12741
+ * 1. {@link assertLatestForRun} — this request is still the newest on its
12742
+ * run, so a superseded row cannot drive a later round or a later node;
12743
+ * 2. `hasSuspendedRun` — a pause exists at all (strict: an unreadable store
12744
+ * throws rather than reading as "not suspended");
12745
+ * 3. node identity — that pause is parked where THIS request's recorded
12746
+ * outcome was issued from: its own approval node for `approve`,
12747
+ * `reject`, `revise` and `recall`, and — for a `resubmit`, which is only
12748
+ * reachable from a revise window — the `approval_revise` node its own
12749
+ * `revise` edge leads to. {@link ApprovalService.expectedPauseNode}
12750
+ * derives it, fail-closed.
12751
+ *
12752
+ * Guard 3 is not redundant with guard 2: existence is not identity, and a
12753
+ * boolean cannot tell this request's re-armed pause from any other live
12754
+ * pause on the same run.
12755
+ *
12756
+ * ## Posture, and why it takes no `ExecutionContext`
12757
+ *
12758
+ * Deliberately shaped like the engine verb it completes: an in-process
12759
+ * operator repair, reachable from a host or a console script, with no REST
12760
+ * route and no entry in the spec `ApprovalService` contract — exactly as
12761
+ * `restoreConsumedSuspension` is a class method on `AutomationEngine` and
12762
+ * appears in no contract. It authorizes nothing new: the decision it replays
12763
+ * was authorized and recorded when it was made, and re-authorizing it here
12764
+ * against a present-day actor would be a different and wrong question (the
12765
+ * original approver may be long gone). `requestedBy` / `reason` ride the log
12766
+ * for the same reason they do on the restore.
12767
+ *
12768
+ * @returns what was replayed and whether the run moved — never a silent
12769
+ * `false`. A resume that fails again throws the same `RESUME_FAILED`
12770
+ * envelope the original decision did, `repairable` and all, so a second
12771
+ * restore-and-continue is possible.
12772
+ */
12773
+ continueRestoredRun(requestId: string, options?: {
12774
+ requestedBy?: string;
12775
+ reason?: string;
12776
+ }): Promise<ApprovalContinuationResult>;
12235
12777
  releaseDeadRunRequests(): Promise<{
12236
12778
  scanned: number;
12237
12779
  released: number;
@@ -12701,4 +13243,4 @@ declare const APPROVAL_REVISE_CORRELATION_PREFIX = "approval_revise:";
12701
13243
  */
12702
13244
  declare function registerApprovalReviseNode(automation: ApprovalAutomationSurface, logger?: MinimalLogger): void;
12703
13245
 
12704
- export { APPROVAL_REVISE_CORRELATION_PREFIX, type ApprovalAutomationSurface, type ApprovalClock, type ApprovalEngine, type ApprovalNodeAutoOutcome, type ApprovalResumeSurface, ApprovalService, type ApprovalServiceOptions, type ApprovalsPluginOptions, ApprovalsServicePlugin, type ApproverExpressionContext, type StrandedApprovalRequest, type StrandedRunState, SysApprovalAction, SysApprovalApprover, SysApprovalDelegation, SysApprovalRequest, registerApprovalNode, registerApprovalReviseNode };
13246
+ export { APPROVAL_REVISE_CORRELATION_PREFIX, type ApprovalAutomationSurface, type ApprovalClock, type ApprovalContinuationResult, type ApprovalEngine, type ApprovalNodeAutoOutcome, type ApprovalResumeSurface, ApprovalService, type ApprovalServiceOptions, type ApprovalsPluginOptions, ApprovalsServicePlugin, type ApproverExpressionContext, type StrandedApprovalRequest, type StrandedContinuationSignal, type StrandedRunState, SysApprovalAction, SysApprovalApprover, SysApprovalDelegation, SysApprovalRequest, registerApprovalNode, registerApprovalReviseNode };