@domino-sdk/relay 0.4.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?: {
@@ -897,23 +982,6 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
897
982
  };
898
983
  expiresAt: number;
899
984
  } | null>;
900
- demoSignIn: (code: string) => Promise<{
901
- organization: string;
902
- project: string;
903
- environment: "test" | "live";
904
- id: string;
905
- principal: {
906
- kind: "member";
907
- member: string;
908
- } | {
909
- kind: "staff";
910
- subject: string;
911
- } | {
912
- kind: "operator";
913
- subject: string;
914
- };
915
- expiresAt: number;
916
- }>;
917
985
  signOut: () => Promise<{
918
986
  ok: boolean;
919
987
  }>;
@@ -948,16 +1016,19 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
948
1016
  input: "photo";
949
1017
  release?: string;
950
1018
  recoverPrevious?: boolean;
1019
+ repeatable?: boolean;
951
1020
  }): Promise<PhotoSubmission>;
952
1021
  (quest: string, options: {
953
1022
  input: "quiz";
954
1023
  release?: string;
955
1024
  recoverPrevious?: boolean;
1025
+ repeatable?: boolean;
956
1026
  }): Promise<QuizSubmission>;
957
1027
  (quest: string, options: {
958
1028
  input: "none";
959
1029
  release?: string;
960
1030
  recoverPrevious?: boolean;
1031
+ repeatable?: boolean;
961
1032
  }): Promise<ClaimSubmission>;
962
1033
  };
963
1034
  collectionPass: (entitlement: string, session: string) => Promise<{
@@ -997,6 +1068,11 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
997
1068
  kind: "points";
998
1069
  balance: string;
999
1070
  amount: number;
1071
+ } | {
1072
+ kind: "integration";
1073
+ provider: "discord";
1074
+ action: "grant-role";
1075
+ roleId: string;
1000
1076
  })[] | null;
1001
1077
  createdAt: number;
1002
1078
  input?: {
@@ -1039,6 +1115,10 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1039
1115
  actor?: "member" | "staff" | undefined;
1040
1116
  } | {
1041
1117
  kind: "automatic";
1118
+ observation?: {
1119
+ source: string;
1120
+ type: string;
1121
+ } | undefined;
1042
1122
  };
1043
1123
  availability: {
1044
1124
  kind: "available";
@@ -1055,6 +1135,10 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1055
1135
  kind: "staff-required";
1056
1136
  } | {
1057
1137
  kind: "automatic";
1138
+ observation?: {
1139
+ source: string;
1140
+ type: string;
1141
+ } | undefined;
1058
1142
  } | {
1059
1143
  kind: "checking";
1060
1144
  attempt: string;
@@ -1066,6 +1150,13 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1066
1150
  attempt: string;
1067
1151
  };
1068
1152
  completed: boolean;
1153
+ completion: {
1154
+ kind: "once";
1155
+ } | {
1156
+ kind: "keyed";
1157
+ };
1158
+ completionCount: number;
1159
+ visibility: "visible" | "hidden";
1069
1160
  missing: {
1070
1161
  quest: string;
1071
1162
  title: string;
@@ -1102,6 +1193,11 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1102
1193
  kind: "points";
1103
1194
  balance: string;
1104
1195
  amount: number;
1196
+ } | {
1197
+ kind: "integration";
1198
+ provider: "discord";
1199
+ action: "grant-role";
1200
+ roleId: string;
1105
1201
  })[] | null;
1106
1202
  createdAt: number;
1107
1203
  input?: {
@@ -1192,6 +1288,23 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1192
1288
  } | undefined;
1193
1289
  })[];
1194
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
+ }>;
1195
1308
  claim: (input: Omit<SubmitInput, "member">, options?: {
1196
1309
  session: string;
1197
1310
  }) => Promise<{
@@ -1226,6 +1339,11 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1226
1339
  kind: "points";
1227
1340
  balance: string;
1228
1341
  amount: number;
1342
+ } | {
1343
+ kind: "integration";
1344
+ provider: "discord";
1345
+ action: "grant-role";
1346
+ roleId: string;
1229
1347
  })[] | null;
1230
1348
  createdAt: number;
1231
1349
  input?: {
@@ -1280,6 +1398,11 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1280
1398
  kind: "points";
1281
1399
  balance: string;
1282
1400
  amount: number;
1401
+ } | {
1402
+ kind: "integration";
1403
+ provider: "discord";
1404
+ action: "grant-role";
1405
+ roleId: string;
1283
1406
  })[] | null;
1284
1407
  createdAt: number;
1285
1408
  input?: {
@@ -1348,6 +1471,25 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1348
1471
  };
1349
1472
  integrations: "discord"[];
1350
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
+ } | {
1351
1493
  kind: "quiz";
1352
1494
  default: {
1353
1495
  id: string;
@@ -1417,6 +1559,11 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1417
1559
  kind: "points";
1418
1560
  balance: string;
1419
1561
  amount: number;
1562
+ } | {
1563
+ kind: "integration";
1564
+ provider: "discord";
1565
+ action: "grant-role";
1566
+ roleId: string;
1420
1567
  })[];
1421
1568
  humanReview: boolean;
1422
1569
  trigger: {
@@ -1425,6 +1572,10 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1425
1572
  actor?: "member" | "staff" | undefined;
1426
1573
  } | {
1427
1574
  kind: "automatic";
1575
+ observation?: {
1576
+ source: string;
1577
+ type: string;
1578
+ } | undefined;
1428
1579
  };
1429
1580
  requires: {
1430
1581
  quest: string;
@@ -1432,7 +1583,19 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1432
1583
  }[];
1433
1584
  completion: {
1434
1585
  kind: "once";
1586
+ } | {
1587
+ kind: "keyed";
1435
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
+ }[];
1436
1599
  };
1437
1600
  }[]>;
1438
1601
  template: () => Promise<{
@@ -1463,6 +1626,25 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1463
1626
  };
1464
1627
  integrations: "discord"[];
1465
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
+ } | {
1466
1648
  kind: "quiz";
1467
1649
  default: {
1468
1650
  id: string;
@@ -1532,6 +1714,11 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1532
1714
  kind: "points";
1533
1715
  balance: string;
1534
1716
  amount: number;
1717
+ } | {
1718
+ kind: "integration";
1719
+ provider: "discord";
1720
+ action: "grant-role";
1721
+ roleId: string;
1535
1722
  })[];
1536
1723
  humanReview: boolean;
1537
1724
  trigger: {
@@ -1540,6 +1727,10 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1540
1727
  actor?: "member" | "staff" | undefined;
1541
1728
  } | {
1542
1729
  kind: "automatic";
1730
+ observation?: {
1731
+ source: string;
1732
+ type: string;
1733
+ } | undefined;
1543
1734
  };
1544
1735
  requires: {
1545
1736
  quest: string;
@@ -1547,7 +1738,19 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1547
1738
  }[];
1548
1739
  completion: {
1549
1740
  kind: "once";
1741
+ } | {
1742
+ kind: "keyed";
1550
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
+ }[];
1551
1754
  };
1552
1755
  }>;
1553
1756
  snapshot: () => Promise<{
@@ -1577,6 +1780,25 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1577
1780
  };
1578
1781
  integrations: "discord"[];
1579
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
+ } | {
1580
1802
  kind: "quiz";
1581
1803
  default: {
1582
1804
  id: string;
@@ -1646,6 +1868,11 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1646
1868
  kind: "points";
1647
1869
  balance: string;
1648
1870
  amount: number;
1871
+ } | {
1872
+ kind: "integration";
1873
+ provider: "discord";
1874
+ action: "grant-role";
1875
+ roleId: string;
1649
1876
  })[];
1650
1877
  humanReview: boolean;
1651
1878
  trigger: {
@@ -1654,6 +1881,10 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1654
1881
  actor?: "member" | "staff" | undefined;
1655
1882
  } | {
1656
1883
  kind: "automatic";
1884
+ observation?: {
1885
+ source: string;
1886
+ type: string;
1887
+ } | undefined;
1657
1888
  };
1658
1889
  requires: {
1659
1890
  quest: string;
@@ -1661,7 +1892,19 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1661
1892
  }[];
1662
1893
  completion: {
1663
1894
  kind: "once";
1895
+ } | {
1896
+ kind: "keyed";
1664
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
+ }[];
1665
1908
  code: string;
1666
1909
  provider: "fixture-pass" | "fixture-fail" | "fixture-unclear" | "fixture-error" | "workers-ai";
1667
1910
  id: string;
@@ -1694,6 +1937,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1694
1937
  } | undefined;
1695
1938
  }[];
1696
1939
  completions: {
1940
+ key: string;
1697
1941
  id: string;
1698
1942
  quest: string;
1699
1943
  member: string;
@@ -1807,6 +2051,11 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1807
2051
  kind: "points";
1808
2052
  balance: string;
1809
2053
  amount: number;
2054
+ } | {
2055
+ kind: "integration";
2056
+ provider: "discord";
2057
+ action: "grant-role";
2058
+ roleId: string;
1810
2059
  })[] | null;
1811
2060
  createdAt: number;
1812
2061
  input?: {
@@ -1859,6 +2108,25 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1859
2108
  };
1860
2109
  integrations: "discord"[];
1861
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
+ } | {
1862
2130
  kind: "quiz";
1863
2131
  default: {
1864
2132
  id: string;
@@ -1928,6 +2196,11 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1928
2196
  kind: "points";
1929
2197
  balance: string;
1930
2198
  amount: number;
2199
+ } | {
2200
+ kind: "integration";
2201
+ provider: "discord";
2202
+ action: "grant-role";
2203
+ roleId: string;
1931
2204
  })[];
1932
2205
  humanReview: boolean;
1933
2206
  trigger: {
@@ -1936,6 +2209,10 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1936
2209
  actor?: "member" | "staff" | undefined;
1937
2210
  } | {
1938
2211
  kind: "automatic";
2212
+ observation?: {
2213
+ source: string;
2214
+ type: string;
2215
+ } | undefined;
1939
2216
  };
1940
2217
  requires: {
1941
2218
  quest: string;
@@ -1943,7 +2220,19 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1943
2220
  }[];
1944
2221
  completion: {
1945
2222
  kind: "once";
2223
+ } | {
2224
+ kind: "keyed";
1946
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
+ }[];
1947
2236
  code: string;
1948
2237
  provider: "fixture-pass" | "fixture-fail" | "fixture-unclear" | "fixture-error" | "workers-ai";
1949
2238
  id: string;
@@ -2001,6 +2290,25 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2001
2290
  };
2002
2291
  integrations: "discord"[];
2003
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
+ } | {
2004
2312
  kind: "quiz";
2005
2313
  default: {
2006
2314
  id: string;
@@ -2070,6 +2378,11 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2070
2378
  kind: "points";
2071
2379
  balance: string;
2072
2380
  amount: number;
2381
+ } | {
2382
+ kind: "integration";
2383
+ provider: "discord";
2384
+ action: "grant-role";
2385
+ roleId: string;
2073
2386
  })[];
2074
2387
  humanReview: boolean;
2075
2388
  trigger: {
@@ -2078,6 +2391,10 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2078
2391
  actor?: "member" | "staff" | undefined;
2079
2392
  } | {
2080
2393
  kind: "automatic";
2394
+ observation?: {
2395
+ source: string;
2396
+ type: string;
2397
+ } | undefined;
2081
2398
  };
2082
2399
  requires: {
2083
2400
  quest: string;
@@ -2085,7 +2402,19 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2085
2402
  }[];
2086
2403
  completion: {
2087
2404
  kind: "once";
2405
+ } | {
2406
+ kind: "keyed";
2088
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
+ }[];
2089
2418
  code: string;
2090
2419
  provider: "fixture-pass" | "fixture-fail" | "fixture-unclear" | "fixture-error" | "workers-ai";
2091
2420
  id: string;
@@ -2149,6 +2478,10 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2149
2478
  actor?: "member" | "staff" | undefined;
2150
2479
  } | {
2151
2480
  kind: "automatic";
2481
+ observation?: {
2482
+ source: string;
2483
+ type: string;
2484
+ } | undefined;
2152
2485
  };
2153
2486
  availability: {
2154
2487
  kind: "available";
@@ -2165,6 +2498,10 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2165
2498
  kind: "staff-required";
2166
2499
  } | {
2167
2500
  kind: "automatic";
2501
+ observation?: {
2502
+ source: string;
2503
+ type: string;
2504
+ } | undefined;
2168
2505
  } | {
2169
2506
  kind: "checking";
2170
2507
  attempt: string;
@@ -2176,6 +2513,13 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2176
2513
  attempt: string;
2177
2514
  };
2178
2515
  completed: boolean;
2516
+ completion: {
2517
+ kind: "once";
2518
+ } | {
2519
+ kind: "keyed";
2520
+ };
2521
+ completionCount: number;
2522
+ visibility: "visible" | "hidden";
2179
2523
  missing: {
2180
2524
  quest: string;
2181
2525
  title: string;
@@ -2212,6 +2556,11 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2212
2556
  kind: "points";
2213
2557
  balance: string;
2214
2558
  amount: number;
2559
+ } | {
2560
+ kind: "integration";
2561
+ provider: "discord";
2562
+ action: "grant-role";
2563
+ roleId: string;
2215
2564
  })[] | null;
2216
2565
  createdAt: number;
2217
2566
  input?: {
@@ -2497,6 +2846,11 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2497
2846
  kind: "points";
2498
2847
  balance: string;
2499
2848
  amount: number;
2849
+ } | {
2850
+ kind: "integration";
2851
+ provider: "discord";
2852
+ action: "grant-role";
2853
+ roleId: string;
2500
2854
  })[] | null;
2501
2855
  createdAt: number;
2502
2856
  input?: {
@@ -2539,6 +2893,11 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2539
2893
  kind: "points";
2540
2894
  balance: string;
2541
2895
  amount: number;
2896
+ } | {
2897
+ kind: "integration";
2898
+ provider: "discord";
2899
+ action: "grant-role";
2900
+ roleId: string;
2542
2901
  })[] | null;
2543
2902
  createdAt: number;
2544
2903
  input?: {
@@ -2586,6 +2945,11 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2586
2945
  kind: "points";
2587
2946
  balance: string;
2588
2947
  amount: number;
2948
+ } | {
2949
+ kind: "integration";
2950
+ provider: "discord";
2951
+ action: "grant-role";
2952
+ roleId: string;
2589
2953
  })[] | null;
2590
2954
  createdAt: number;
2591
2955
  input?: {