@domino-sdk/relay 0.5.0 → 0.6.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/browser.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { SubmitInput, ReviewListOptions, MemberListOptions, ReleaseInput, beginHandoverSchema } from './schema.js';
2
2
  import { SubmissionStore, createRelayClient, QuestView, QuestController, ProgressObservation, questExperienceSchema, ProgressObserver, ExchangeInput, PhotoSubmission, QuizSubmission, ClaimSubmission } from './index.js';
3
- import { r as referralAcceptSchema, L as LeaderboardQuery, w as walletChallengeInputSchema, b as walletProofSchema, A as AuthProvider } from './settings-B7vsT8nd.js';
3
+ import { r as referralAcceptSchema, L as LeaderboardQuery, w as walletChallengeInputSchema, e as walletProofSchema, A as AuthProvider } from './settings-BrC6C9yl.js';
4
4
  import * as zod from 'zod';
5
5
 
6
6
  /** Browser client with durable submission recovery; safe to construct during SSR. */
@@ -343,6 +343,10 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
343
343
  actor?: "member" | "staff" | undefined;
344
344
  } | {
345
345
  kind: "automatic";
346
+ observation?: {
347
+ source: string;
348
+ type: string;
349
+ } | undefined;
346
350
  };
347
351
  availability: {
348
352
  kind: "available";
@@ -359,6 +363,10 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
359
363
  kind: "staff-required";
360
364
  } | {
361
365
  kind: "automatic";
366
+ observation?: {
367
+ source: string;
368
+ type: string;
369
+ } | undefined;
362
370
  } | {
363
371
  kind: "checking";
364
372
  attempt: string;
@@ -370,6 +378,13 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
370
378
  attempt: string;
371
379
  };
372
380
  completed: boolean;
381
+ completion: {
382
+ kind: "once";
383
+ } | {
384
+ kind: "keyed";
385
+ };
386
+ completionCount: number;
387
+ visibility: "visible" | "hidden";
373
388
  missing: {
374
389
  quest: string;
375
390
  title: string;
@@ -406,6 +421,11 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
406
421
  kind: "points";
407
422
  balance: string;
408
423
  amount: number;
424
+ } | {
425
+ kind: "integration";
426
+ provider: "discord";
427
+ action: "grant-role";
428
+ roleId: string;
409
429
  })[] | null;
410
430
  createdAt: number;
411
431
  input?: {
@@ -455,6 +475,11 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
455
475
  kind: "points";
456
476
  balance: string;
457
477
  amount: number;
478
+ } | {
479
+ kind: "integration";
480
+ provider: "discord";
481
+ action: "grant-role";
482
+ roleId: string;
458
483
  })[] | null;
459
484
  createdAt: number;
460
485
  input?: {
@@ -497,6 +522,10 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
497
522
  actor?: "member" | "staff" | undefined;
498
523
  } | {
499
524
  kind: "automatic";
525
+ observation?: {
526
+ source: string;
527
+ type: string;
528
+ } | undefined;
500
529
  };
501
530
  availability: {
502
531
  kind: "available";
@@ -513,6 +542,10 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
513
542
  kind: "staff-required";
514
543
  } | {
515
544
  kind: "automatic";
545
+ observation?: {
546
+ source: string;
547
+ type: string;
548
+ } | undefined;
516
549
  } | {
517
550
  kind: "checking";
518
551
  attempt: string;
@@ -524,6 +557,13 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
524
557
  attempt: string;
525
558
  };
526
559
  completed: boolean;
560
+ completion: {
561
+ kind: "once";
562
+ } | {
563
+ kind: "keyed";
564
+ };
565
+ completionCount: number;
566
+ visibility: "visible" | "hidden";
527
567
  missing: {
528
568
  quest: string;
529
569
  title: string;
@@ -560,6 +600,11 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
560
600
  kind: "points";
561
601
  balance: string;
562
602
  amount: number;
603
+ } | {
604
+ kind: "integration";
605
+ provider: "discord";
606
+ action: "grant-role";
607
+ roleId: string;
563
608
  })[] | null;
564
609
  createdAt: number;
565
610
  input?: {
@@ -610,6 +655,10 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
610
655
  actor?: "member" | "staff" | undefined;
611
656
  } | {
612
657
  kind: "automatic";
658
+ observation?: {
659
+ source: string;
660
+ type: string;
661
+ } | undefined;
613
662
  };
614
663
  availability: {
615
664
  kind: "available";
@@ -626,6 +675,10 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
626
675
  kind: "staff-required";
627
676
  } | {
628
677
  kind: "automatic";
678
+ observation?: {
679
+ source: string;
680
+ type: string;
681
+ } | undefined;
629
682
  } | {
630
683
  kind: "checking";
631
684
  attempt: string;
@@ -637,6 +690,13 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
637
690
  attempt: string;
638
691
  };
639
692
  completed: boolean;
693
+ completion: {
694
+ kind: "once";
695
+ } | {
696
+ kind: "keyed";
697
+ };
698
+ completionCount: number;
699
+ visibility: "visible" | "hidden";
640
700
  missing: {
641
701
  quest: string;
642
702
  title: string;
@@ -673,6 +733,11 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
673
733
  kind: "points";
674
734
  balance: string;
675
735
  amount: number;
736
+ } | {
737
+ kind: "integration";
738
+ provider: "discord";
739
+ action: "grant-role";
740
+ roleId: string;
676
741
  })[] | null;
677
742
  createdAt: number;
678
743
  input?: {
@@ -725,6 +790,10 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
725
790
  actor?: "member" | "staff" | undefined;
726
791
  } | {
727
792
  kind: "automatic";
793
+ observation?: {
794
+ source: string;
795
+ type: string;
796
+ } | undefined;
728
797
  };
729
798
  availability: {
730
799
  kind: "available";
@@ -741,6 +810,10 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
741
810
  kind: "staff-required";
742
811
  } | {
743
812
  kind: "automatic";
813
+ observation?: {
814
+ source: string;
815
+ type: string;
816
+ } | undefined;
744
817
  } | {
745
818
  kind: "checking";
746
819
  attempt: string;
@@ -752,6 +825,13 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
752
825
  attempt: string;
753
826
  };
754
827
  completed: boolean;
828
+ completion: {
829
+ kind: "once";
830
+ } | {
831
+ kind: "keyed";
832
+ };
833
+ completionCount: number;
834
+ visibility: "visible" | "hidden";
755
835
  missing: {
756
836
  quest: string;
757
837
  title: string;
@@ -788,6 +868,11 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
788
868
  kind: "points";
789
869
  balance: string;
790
870
  amount: number;
871
+ } | {
872
+ kind: "integration";
873
+ provider: "discord";
874
+ action: "grant-role";
875
+ roleId: string;
791
876
  })[] | null;
792
877
  createdAt: number;
793
878
  input?: {
@@ -931,16 +1016,19 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
931
1016
  input: "photo";
932
1017
  release?: string;
933
1018
  recoverPrevious?: boolean;
1019
+ repeatable?: boolean;
934
1020
  }): Promise<PhotoSubmission>;
935
1021
  (quest: string, options: {
936
1022
  input: "quiz";
937
1023
  release?: string;
938
1024
  recoverPrevious?: boolean;
1025
+ repeatable?: boolean;
939
1026
  }): Promise<QuizSubmission>;
940
1027
  (quest: string, options: {
941
1028
  input: "none";
942
1029
  release?: string;
943
1030
  recoverPrevious?: boolean;
1031
+ repeatable?: boolean;
944
1032
  }): Promise<ClaimSubmission>;
945
1033
  };
946
1034
  collectionPass: (entitlement: string, session: string) => Promise<{
@@ -980,6 +1068,11 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
980
1068
  kind: "points";
981
1069
  balance: string;
982
1070
  amount: number;
1071
+ } | {
1072
+ kind: "integration";
1073
+ provider: "discord";
1074
+ action: "grant-role";
1075
+ roleId: string;
983
1076
  })[] | null;
984
1077
  createdAt: number;
985
1078
  input?: {
@@ -1022,6 +1115,10 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1022
1115
  actor?: "member" | "staff" | undefined;
1023
1116
  } | {
1024
1117
  kind: "automatic";
1118
+ observation?: {
1119
+ source: string;
1120
+ type: string;
1121
+ } | undefined;
1025
1122
  };
1026
1123
  availability: {
1027
1124
  kind: "available";
@@ -1038,6 +1135,10 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1038
1135
  kind: "staff-required";
1039
1136
  } | {
1040
1137
  kind: "automatic";
1138
+ observation?: {
1139
+ source: string;
1140
+ type: string;
1141
+ } | undefined;
1041
1142
  } | {
1042
1143
  kind: "checking";
1043
1144
  attempt: string;
@@ -1049,6 +1150,13 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1049
1150
  attempt: string;
1050
1151
  };
1051
1152
  completed: boolean;
1153
+ completion: {
1154
+ kind: "once";
1155
+ } | {
1156
+ kind: "keyed";
1157
+ };
1158
+ completionCount: number;
1159
+ visibility: "visible" | "hidden";
1052
1160
  missing: {
1053
1161
  quest: string;
1054
1162
  title: string;
@@ -1085,6 +1193,11 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1085
1193
  kind: "points";
1086
1194
  balance: string;
1087
1195
  amount: number;
1196
+ } | {
1197
+ kind: "integration";
1198
+ provider: "discord";
1199
+ action: "grant-role";
1200
+ roleId: string;
1088
1201
  })[] | null;
1089
1202
  createdAt: number;
1090
1203
  input?: {
@@ -1175,6 +1288,23 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1175
1288
  } | undefined;
1176
1289
  })[];
1177
1290
  }>;
1291
+ rewardDeliveries: () => Promise<{
1292
+ deliveries: {
1293
+ id: string;
1294
+ quest: string;
1295
+ completion: string;
1296
+ member: string;
1297
+ provider: "discord";
1298
+ action: "grant-role";
1299
+ roleId: string;
1300
+ status: "pending" | "delivered";
1301
+ attempts: number;
1302
+ nextAt: number;
1303
+ lastError: string | null;
1304
+ createdAt: number;
1305
+ deliveredAt: number | null;
1306
+ }[];
1307
+ }>;
1178
1308
  claim: (input: Omit<SubmitInput, "member">, options?: {
1179
1309
  session: string;
1180
1310
  }) => Promise<{
@@ -1209,6 +1339,11 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1209
1339
  kind: "points";
1210
1340
  balance: string;
1211
1341
  amount: number;
1342
+ } | {
1343
+ kind: "integration";
1344
+ provider: "discord";
1345
+ action: "grant-role";
1346
+ roleId: string;
1212
1347
  })[] | null;
1213
1348
  createdAt: number;
1214
1349
  input?: {
@@ -1263,6 +1398,11 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1263
1398
  kind: "points";
1264
1399
  balance: string;
1265
1400
  amount: number;
1401
+ } | {
1402
+ kind: "integration";
1403
+ provider: "discord";
1404
+ action: "grant-role";
1405
+ roleId: string;
1266
1406
  })[] | null;
1267
1407
  createdAt: number;
1268
1408
  input?: {
@@ -1331,6 +1471,25 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1331
1471
  };
1332
1472
  integrations: "discord"[];
1333
1473
  fields: Record<string, {
1474
+ kind: "datetime";
1475
+ default: string;
1476
+ label: string;
1477
+ description?: string | undefined;
1478
+ } | {
1479
+ kind: "resource";
1480
+ default: string;
1481
+ source: {
1482
+ provider: "discord";
1483
+ resource: "channel";
1484
+ types: ("text" | "announcement")[];
1485
+ } | {
1486
+ provider: "discord";
1487
+ resource: "role";
1488
+ assignable: boolean;
1489
+ };
1490
+ label: string;
1491
+ description?: string | undefined;
1492
+ } | {
1334
1493
  kind: "quiz";
1335
1494
  default: {
1336
1495
  id: string;
@@ -1400,6 +1559,11 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1400
1559
  kind: "points";
1401
1560
  balance: string;
1402
1561
  amount: number;
1562
+ } | {
1563
+ kind: "integration";
1564
+ provider: "discord";
1565
+ action: "grant-role";
1566
+ roleId: string;
1403
1567
  })[];
1404
1568
  humanReview: boolean;
1405
1569
  trigger: {
@@ -1408,6 +1572,10 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1408
1572
  actor?: "member" | "staff" | undefined;
1409
1573
  } | {
1410
1574
  kind: "automatic";
1575
+ observation?: {
1576
+ source: string;
1577
+ type: string;
1578
+ } | undefined;
1411
1579
  };
1412
1580
  requires: {
1413
1581
  quest: string;
@@ -1415,7 +1583,19 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1415
1583
  }[];
1416
1584
  completion: {
1417
1585
  kind: "once";
1586
+ } | {
1587
+ kind: "keyed";
1418
1588
  };
1589
+ visibility: "visible" | "hidden";
1590
+ budgets: {
1591
+ id: string;
1592
+ scope: "member" | "project";
1593
+ period: "lifetime" | "day";
1594
+ limit: number;
1595
+ cost: number | {
1596
+ balance: string;
1597
+ };
1598
+ }[];
1419
1599
  };
1420
1600
  }[]>;
1421
1601
  template: () => Promise<{
@@ -1446,6 +1626,25 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1446
1626
  };
1447
1627
  integrations: "discord"[];
1448
1628
  fields: Record<string, {
1629
+ kind: "datetime";
1630
+ default: string;
1631
+ label: string;
1632
+ description?: string | undefined;
1633
+ } | {
1634
+ kind: "resource";
1635
+ default: string;
1636
+ source: {
1637
+ provider: "discord";
1638
+ resource: "channel";
1639
+ types: ("text" | "announcement")[];
1640
+ } | {
1641
+ provider: "discord";
1642
+ resource: "role";
1643
+ assignable: boolean;
1644
+ };
1645
+ label: string;
1646
+ description?: string | undefined;
1647
+ } | {
1449
1648
  kind: "quiz";
1450
1649
  default: {
1451
1650
  id: string;
@@ -1515,6 +1714,11 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1515
1714
  kind: "points";
1516
1715
  balance: string;
1517
1716
  amount: number;
1717
+ } | {
1718
+ kind: "integration";
1719
+ provider: "discord";
1720
+ action: "grant-role";
1721
+ roleId: string;
1518
1722
  })[];
1519
1723
  humanReview: boolean;
1520
1724
  trigger: {
@@ -1523,6 +1727,10 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1523
1727
  actor?: "member" | "staff" | undefined;
1524
1728
  } | {
1525
1729
  kind: "automatic";
1730
+ observation?: {
1731
+ source: string;
1732
+ type: string;
1733
+ } | undefined;
1526
1734
  };
1527
1735
  requires: {
1528
1736
  quest: string;
@@ -1530,7 +1738,19 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1530
1738
  }[];
1531
1739
  completion: {
1532
1740
  kind: "once";
1741
+ } | {
1742
+ kind: "keyed";
1533
1743
  };
1744
+ visibility: "visible" | "hidden";
1745
+ budgets: {
1746
+ id: string;
1747
+ scope: "member" | "project";
1748
+ period: "lifetime" | "day";
1749
+ limit: number;
1750
+ cost: number | {
1751
+ balance: string;
1752
+ };
1753
+ }[];
1534
1754
  };
1535
1755
  }>;
1536
1756
  snapshot: () => Promise<{
@@ -1560,6 +1780,25 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1560
1780
  };
1561
1781
  integrations: "discord"[];
1562
1782
  fields: Record<string, {
1783
+ kind: "datetime";
1784
+ default: string;
1785
+ label: string;
1786
+ description?: string | undefined;
1787
+ } | {
1788
+ kind: "resource";
1789
+ default: string;
1790
+ source: {
1791
+ provider: "discord";
1792
+ resource: "channel";
1793
+ types: ("text" | "announcement")[];
1794
+ } | {
1795
+ provider: "discord";
1796
+ resource: "role";
1797
+ assignable: boolean;
1798
+ };
1799
+ label: string;
1800
+ description?: string | undefined;
1801
+ } | {
1563
1802
  kind: "quiz";
1564
1803
  default: {
1565
1804
  id: string;
@@ -1629,6 +1868,11 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1629
1868
  kind: "points";
1630
1869
  balance: string;
1631
1870
  amount: number;
1871
+ } | {
1872
+ kind: "integration";
1873
+ provider: "discord";
1874
+ action: "grant-role";
1875
+ roleId: string;
1632
1876
  })[];
1633
1877
  humanReview: boolean;
1634
1878
  trigger: {
@@ -1637,6 +1881,10 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1637
1881
  actor?: "member" | "staff" | undefined;
1638
1882
  } | {
1639
1883
  kind: "automatic";
1884
+ observation?: {
1885
+ source: string;
1886
+ type: string;
1887
+ } | undefined;
1640
1888
  };
1641
1889
  requires: {
1642
1890
  quest: string;
@@ -1644,7 +1892,19 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1644
1892
  }[];
1645
1893
  completion: {
1646
1894
  kind: "once";
1895
+ } | {
1896
+ kind: "keyed";
1647
1897
  };
1898
+ visibility: "visible" | "hidden";
1899
+ budgets: {
1900
+ id: string;
1901
+ scope: "member" | "project";
1902
+ period: "lifetime" | "day";
1903
+ limit: number;
1904
+ cost: number | {
1905
+ balance: string;
1906
+ };
1907
+ }[];
1648
1908
  code: string;
1649
1909
  provider: "fixture-pass" | "fixture-fail" | "fixture-unclear" | "fixture-error" | "workers-ai";
1650
1910
  id: string;
@@ -1677,6 +1937,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1677
1937
  } | undefined;
1678
1938
  }[];
1679
1939
  completions: {
1940
+ key: string;
1680
1941
  id: string;
1681
1942
  quest: string;
1682
1943
  member: string;
@@ -1790,6 +2051,11 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1790
2051
  kind: "points";
1791
2052
  balance: string;
1792
2053
  amount: number;
2054
+ } | {
2055
+ kind: "integration";
2056
+ provider: "discord";
2057
+ action: "grant-role";
2058
+ roleId: string;
1793
2059
  })[] | null;
1794
2060
  createdAt: number;
1795
2061
  input?: {
@@ -1842,6 +2108,25 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1842
2108
  };
1843
2109
  integrations: "discord"[];
1844
2110
  fields: Record<string, {
2111
+ kind: "datetime";
2112
+ default: string;
2113
+ label: string;
2114
+ description?: string | undefined;
2115
+ } | {
2116
+ kind: "resource";
2117
+ default: string;
2118
+ source: {
2119
+ provider: "discord";
2120
+ resource: "channel";
2121
+ types: ("text" | "announcement")[];
2122
+ } | {
2123
+ provider: "discord";
2124
+ resource: "role";
2125
+ assignable: boolean;
2126
+ };
2127
+ label: string;
2128
+ description?: string | undefined;
2129
+ } | {
1845
2130
  kind: "quiz";
1846
2131
  default: {
1847
2132
  id: string;
@@ -1911,6 +2196,11 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1911
2196
  kind: "points";
1912
2197
  balance: string;
1913
2198
  amount: number;
2199
+ } | {
2200
+ kind: "integration";
2201
+ provider: "discord";
2202
+ action: "grant-role";
2203
+ roleId: string;
1914
2204
  })[];
1915
2205
  humanReview: boolean;
1916
2206
  trigger: {
@@ -1919,6 +2209,10 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1919
2209
  actor?: "member" | "staff" | undefined;
1920
2210
  } | {
1921
2211
  kind: "automatic";
2212
+ observation?: {
2213
+ source: string;
2214
+ type: string;
2215
+ } | undefined;
1922
2216
  };
1923
2217
  requires: {
1924
2218
  quest: string;
@@ -1926,7 +2220,19 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1926
2220
  }[];
1927
2221
  completion: {
1928
2222
  kind: "once";
2223
+ } | {
2224
+ kind: "keyed";
1929
2225
  };
2226
+ visibility: "visible" | "hidden";
2227
+ budgets: {
2228
+ id: string;
2229
+ scope: "member" | "project";
2230
+ period: "lifetime" | "day";
2231
+ limit: number;
2232
+ cost: number | {
2233
+ balance: string;
2234
+ };
2235
+ }[];
1930
2236
  code: string;
1931
2237
  provider: "fixture-pass" | "fixture-fail" | "fixture-unclear" | "fixture-error" | "workers-ai";
1932
2238
  id: string;
@@ -1984,6 +2290,25 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1984
2290
  };
1985
2291
  integrations: "discord"[];
1986
2292
  fields: Record<string, {
2293
+ kind: "datetime";
2294
+ default: string;
2295
+ label: string;
2296
+ description?: string | undefined;
2297
+ } | {
2298
+ kind: "resource";
2299
+ default: string;
2300
+ source: {
2301
+ provider: "discord";
2302
+ resource: "channel";
2303
+ types: ("text" | "announcement")[];
2304
+ } | {
2305
+ provider: "discord";
2306
+ resource: "role";
2307
+ assignable: boolean;
2308
+ };
2309
+ label: string;
2310
+ description?: string | undefined;
2311
+ } | {
1987
2312
  kind: "quiz";
1988
2313
  default: {
1989
2314
  id: string;
@@ -2053,6 +2378,11 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2053
2378
  kind: "points";
2054
2379
  balance: string;
2055
2380
  amount: number;
2381
+ } | {
2382
+ kind: "integration";
2383
+ provider: "discord";
2384
+ action: "grant-role";
2385
+ roleId: string;
2056
2386
  })[];
2057
2387
  humanReview: boolean;
2058
2388
  trigger: {
@@ -2061,6 +2391,10 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2061
2391
  actor?: "member" | "staff" | undefined;
2062
2392
  } | {
2063
2393
  kind: "automatic";
2394
+ observation?: {
2395
+ source: string;
2396
+ type: string;
2397
+ } | undefined;
2064
2398
  };
2065
2399
  requires: {
2066
2400
  quest: string;
@@ -2068,7 +2402,19 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2068
2402
  }[];
2069
2403
  completion: {
2070
2404
  kind: "once";
2405
+ } | {
2406
+ kind: "keyed";
2071
2407
  };
2408
+ visibility: "visible" | "hidden";
2409
+ budgets: {
2410
+ id: string;
2411
+ scope: "member" | "project";
2412
+ period: "lifetime" | "day";
2413
+ limit: number;
2414
+ cost: number | {
2415
+ balance: string;
2416
+ };
2417
+ }[];
2072
2418
  code: string;
2073
2419
  provider: "fixture-pass" | "fixture-fail" | "fixture-unclear" | "fixture-error" | "workers-ai";
2074
2420
  id: string;
@@ -2132,6 +2478,10 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2132
2478
  actor?: "member" | "staff" | undefined;
2133
2479
  } | {
2134
2480
  kind: "automatic";
2481
+ observation?: {
2482
+ source: string;
2483
+ type: string;
2484
+ } | undefined;
2135
2485
  };
2136
2486
  availability: {
2137
2487
  kind: "available";
@@ -2148,6 +2498,10 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2148
2498
  kind: "staff-required";
2149
2499
  } | {
2150
2500
  kind: "automatic";
2501
+ observation?: {
2502
+ source: string;
2503
+ type: string;
2504
+ } | undefined;
2151
2505
  } | {
2152
2506
  kind: "checking";
2153
2507
  attempt: string;
@@ -2159,6 +2513,13 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2159
2513
  attempt: string;
2160
2514
  };
2161
2515
  completed: boolean;
2516
+ completion: {
2517
+ kind: "once";
2518
+ } | {
2519
+ kind: "keyed";
2520
+ };
2521
+ completionCount: number;
2522
+ visibility: "visible" | "hidden";
2162
2523
  missing: {
2163
2524
  quest: string;
2164
2525
  title: string;
@@ -2195,6 +2556,11 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2195
2556
  kind: "points";
2196
2557
  balance: string;
2197
2558
  amount: number;
2559
+ } | {
2560
+ kind: "integration";
2561
+ provider: "discord";
2562
+ action: "grant-role";
2563
+ roleId: string;
2198
2564
  })[] | null;
2199
2565
  createdAt: number;
2200
2566
  input?: {
@@ -2480,6 +2846,11 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2480
2846
  kind: "points";
2481
2847
  balance: string;
2482
2848
  amount: number;
2849
+ } | {
2850
+ kind: "integration";
2851
+ provider: "discord";
2852
+ action: "grant-role";
2853
+ roleId: string;
2483
2854
  })[] | null;
2484
2855
  createdAt: number;
2485
2856
  input?: {
@@ -2522,6 +2893,11 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2522
2893
  kind: "points";
2523
2894
  balance: string;
2524
2895
  amount: number;
2896
+ } | {
2897
+ kind: "integration";
2898
+ provider: "discord";
2899
+ action: "grant-role";
2900
+ roleId: string;
2525
2901
  })[] | null;
2526
2902
  createdAt: number;
2527
2903
  input?: {
@@ -2569,6 +2945,11 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2569
2945
  kind: "points";
2570
2946
  balance: string;
2571
2947
  amount: number;
2948
+ } | {
2949
+ kind: "integration";
2950
+ provider: "discord";
2951
+ action: "grant-role";
2952
+ roleId: string;
2572
2953
  })[] | null;
2573
2954
  createdAt: number;
2574
2955
  input?: {