@domino-sdk/relay 0.17.2 → 0.18.1

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
- import { SubmitInput, ReviewListOptions, MemberListOptions, ReleaseInput, beginHandoverSchema } from './schema.js';
1
+ import { r as referralAcceptSchema, L as LeaderboardQuery, w as walletChallengeInputSchema, t as walletProofSchema, u as AuthProvider, v as engagementPageQuerySchema, y as contentQualificationQuerySchema, z as contentAdmissionQuerySchema, E as contentEnrollmentInputSchema, F as contentReleaseInputSchema } from './submission-input-DWlvrAQY.js';
2
+ import { SubmitInput, ReviewListOptions, MemberListOptions, ReleaseInput, beginHandoverSchema, contentPerformanceQuerySchema } from './schema.js';
2
3
  import { SubmissionStore, createRelayClient, QuestView, QuestController, ProgressObservation, questExperienceSchema, ProgressObserver, ExchangeInput, PhotoSubmission, QuizSubmission, ClaimSubmission, ValueSubmission } from './index.js';
3
- import { r as referralAcceptSchema, L as LeaderboardQuery, w as walletChallengeInputSchema, l as walletProofSchema, m as AuthProvider } from './submission-input-Cktvl71b.js';
4
4
  import * as zod from 'zod';
5
5
 
6
6
  /** Browser client with durable submission recovery; safe to construct during SSR. */
@@ -212,7 +212,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
212
212
  accounts: {
213
213
  id: string;
214
214
  program: string;
215
- kind: "milestone" | "fixed" | "bonus";
215
+ kind: "fixed" | "milestone" | "bonus";
216
216
  balance: string;
217
217
  earned: number;
218
218
  settled: number;
@@ -339,8 +339,24 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
339
339
  } | undefined;
340
340
  } | undefined;
341
341
  };
342
- connections: ("google" | "apple" | "x" | "discord")[];
342
+ connections: ("discord" | "google" | "apple" | "x")[];
343
343
  trigger: {
344
+ kind: "automatic";
345
+ observation?: {
346
+ source: string;
347
+ type: string;
348
+ } | undefined;
349
+ content?: {
350
+ tracker: string;
351
+ window: {
352
+ start: number;
353
+ end?: number | undefined;
354
+ };
355
+ enrollment: "required" | "none";
356
+ posts: "after-enrollment" | "since-start";
357
+ historical: "staff" | "automatic" | "claim";
358
+ } | undefined;
359
+ } | {
344
360
  kind: "manual";
345
361
  input: "text";
346
362
  constraints: {
@@ -361,16 +377,10 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
361
377
  kind: "manual";
362
378
  input: "quiz" | "photo" | "none";
363
379
  actor?: "member" | "staff" | undefined;
364
- } | {
365
- kind: "automatic";
366
- observation?: {
367
- source: string;
368
- type: string;
369
- } | undefined;
370
380
  };
371
381
  availability: {
372
382
  kind: "available";
373
- input: "quiz" | "url" | "text" | "photo" | "none";
383
+ input: "quiz" | "text" | "url" | "photo" | "none";
374
384
  } | {
375
385
  kind: "completed";
376
386
  } | {
@@ -419,7 +429,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
419
429
  quest: string;
420
430
  member: string;
421
431
  evidence: string | null;
422
- status: "needs-review" | "queued" | "evaluating" | "accepted" | "progressed" | "rejected" | "failed";
432
+ status: "queued" | "evaluating" | "accepted" | "progressed" | "rejected" | "needs-review" | "failed";
423
433
  reason: string | null;
424
434
  retries: number;
425
435
  generation: number;
@@ -467,7 +477,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
467
477
  } | undefined;
468
478
  } | null;
469
479
  release: string;
470
- interaction: "quiz" | "url" | "text" | "staff" | "photo" | "automatic" | "claim";
480
+ interaction: "staff" | "quiz" | "text" | "url" | "photo" | "automatic" | "claim";
471
481
  lifecycle: "active" | "paused" | "archived";
472
482
  rewards: {
473
483
  label: string;
@@ -510,7 +520,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
510
520
  quest: string;
511
521
  member: string;
512
522
  evidence: string | null;
513
- status: "needs-review" | "queued" | "evaluating" | "accepted" | "progressed" | "rejected" | "failed";
523
+ status: "queued" | "evaluating" | "accepted" | "progressed" | "rejected" | "needs-review" | "failed";
514
524
  reason: string | null;
515
525
  retries: number;
516
526
  generation: number;
@@ -582,8 +592,24 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
582
592
  } | undefined;
583
593
  } | undefined;
584
594
  };
585
- connections: ("google" | "apple" | "x" | "discord")[];
595
+ connections: ("discord" | "google" | "apple" | "x")[];
586
596
  trigger: {
597
+ kind: "automatic";
598
+ observation?: {
599
+ source: string;
600
+ type: string;
601
+ } | undefined;
602
+ content?: {
603
+ tracker: string;
604
+ window: {
605
+ start: number;
606
+ end?: number | undefined;
607
+ };
608
+ enrollment: "required" | "none";
609
+ posts: "after-enrollment" | "since-start";
610
+ historical: "staff" | "automatic" | "claim";
611
+ } | undefined;
612
+ } | {
587
613
  kind: "manual";
588
614
  input: "text";
589
615
  constraints: {
@@ -604,16 +630,10 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
604
630
  kind: "manual";
605
631
  input: "quiz" | "photo" | "none";
606
632
  actor?: "member" | "staff" | undefined;
607
- } | {
608
- kind: "automatic";
609
- observation?: {
610
- source: string;
611
- type: string;
612
- } | undefined;
613
633
  };
614
634
  availability: {
615
635
  kind: "available";
616
- input: "quiz" | "url" | "text" | "photo" | "none";
636
+ input: "quiz" | "text" | "url" | "photo" | "none";
617
637
  } | {
618
638
  kind: "completed";
619
639
  } | {
@@ -662,7 +682,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
662
682
  quest: string;
663
683
  member: string;
664
684
  evidence: string | null;
665
- status: "needs-review" | "queued" | "evaluating" | "accepted" | "progressed" | "rejected" | "failed";
685
+ status: "queued" | "evaluating" | "accepted" | "progressed" | "rejected" | "needs-review" | "failed";
666
686
  reason: string | null;
667
687
  retries: number;
668
688
  generation: number;
@@ -710,7 +730,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
710
730
  } | undefined;
711
731
  } | null;
712
732
  release: string;
713
- interaction: "quiz" | "url" | "text" | "staff" | "photo" | "automatic" | "claim";
733
+ interaction: "staff" | "quiz" | "text" | "url" | "photo" | "automatic" | "claim";
714
734
  lifecycle: "active" | "paused" | "archived";
715
735
  rewards: {
716
736
  label: string;
@@ -773,8 +793,24 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
773
793
  } | undefined;
774
794
  } | undefined;
775
795
  };
776
- connections: ("google" | "apple" | "x" | "discord")[];
796
+ connections: ("discord" | "google" | "apple" | "x")[];
777
797
  trigger: {
798
+ kind: "automatic";
799
+ observation?: {
800
+ source: string;
801
+ type: string;
802
+ } | undefined;
803
+ content?: {
804
+ tracker: string;
805
+ window: {
806
+ start: number;
807
+ end?: number | undefined;
808
+ };
809
+ enrollment: "required" | "none";
810
+ posts: "after-enrollment" | "since-start";
811
+ historical: "staff" | "automatic" | "claim";
812
+ } | undefined;
813
+ } | {
778
814
  kind: "manual";
779
815
  input: "text";
780
816
  constraints: {
@@ -795,16 +831,10 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
795
831
  kind: "manual";
796
832
  input: "quiz" | "photo" | "none";
797
833
  actor?: "member" | "staff" | undefined;
798
- } | {
799
- kind: "automatic";
800
- observation?: {
801
- source: string;
802
- type: string;
803
- } | undefined;
804
834
  };
805
835
  availability: {
806
836
  kind: "available";
807
- input: "quiz" | "url" | "text" | "photo" | "none";
837
+ input: "quiz" | "text" | "url" | "photo" | "none";
808
838
  } | {
809
839
  kind: "completed";
810
840
  } | {
@@ -853,7 +883,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
853
883
  quest: string;
854
884
  member: string;
855
885
  evidence: string | null;
856
- status: "needs-review" | "queued" | "evaluating" | "accepted" | "progressed" | "rejected" | "failed";
886
+ status: "queued" | "evaluating" | "accepted" | "progressed" | "rejected" | "needs-review" | "failed";
857
887
  reason: string | null;
858
888
  retries: number;
859
889
  generation: number;
@@ -901,7 +931,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
901
931
  } | undefined;
902
932
  } | null;
903
933
  release: string;
904
- interaction: "quiz" | "url" | "text" | "staff" | "photo" | "automatic" | "claim";
934
+ interaction: "staff" | "quiz" | "text" | "url" | "photo" | "automatic" | "claim";
905
935
  lifecycle: "active" | "paused" | "archived";
906
936
  rewards: {
907
937
  label: string;
@@ -967,8 +997,24 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
967
997
  } | undefined;
968
998
  } | undefined;
969
999
  };
970
- connections: ("google" | "apple" | "x" | "discord")[];
1000
+ connections: ("discord" | "google" | "apple" | "x")[];
971
1001
  trigger: {
1002
+ kind: "automatic";
1003
+ observation?: {
1004
+ source: string;
1005
+ type: string;
1006
+ } | undefined;
1007
+ content?: {
1008
+ tracker: string;
1009
+ window: {
1010
+ start: number;
1011
+ end?: number | undefined;
1012
+ };
1013
+ enrollment: "required" | "none";
1014
+ posts: "after-enrollment" | "since-start";
1015
+ historical: "staff" | "automatic" | "claim";
1016
+ } | undefined;
1017
+ } | {
972
1018
  kind: "manual";
973
1019
  input: "text";
974
1020
  constraints: {
@@ -989,16 +1035,10 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
989
1035
  kind: "manual";
990
1036
  input: "quiz" | "photo" | "none";
991
1037
  actor?: "member" | "staff" | undefined;
992
- } | {
993
- kind: "automatic";
994
- observation?: {
995
- source: string;
996
- type: string;
997
- } | undefined;
998
1038
  };
999
1039
  availability: {
1000
1040
  kind: "available";
1001
- input: "quiz" | "url" | "text" | "photo" | "none";
1041
+ input: "quiz" | "text" | "url" | "photo" | "none";
1002
1042
  } | {
1003
1043
  kind: "completed";
1004
1044
  } | {
@@ -1047,7 +1087,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1047
1087
  quest: string;
1048
1088
  member: string;
1049
1089
  evidence: string | null;
1050
- status: "needs-review" | "queued" | "evaluating" | "accepted" | "progressed" | "rejected" | "failed";
1090
+ status: "queued" | "evaluating" | "accepted" | "progressed" | "rejected" | "needs-review" | "failed";
1051
1091
  reason: string | null;
1052
1092
  retries: number;
1053
1093
  generation: number;
@@ -1095,7 +1135,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1095
1135
  } | undefined;
1096
1136
  } | null;
1097
1137
  release: string;
1098
- interaction: "quiz" | "url" | "text" | "staff" | "photo" | "automatic" | "claim";
1138
+ interaction: "staff" | "quiz" | "text" | "url" | "photo" | "automatic" | "claim";
1099
1139
  lifecycle: "active" | "paused" | "archived";
1100
1140
  rewards: {
1101
1141
  label: string;
@@ -1164,7 +1204,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1164
1204
  auth: {
1165
1205
  providers: () => Promise<{
1166
1206
  providers: {
1167
- provider: "google" | "apple" | "x" | "discord";
1207
+ provider: "discord" | "google" | "apple" | "x";
1168
1208
  configured: boolean;
1169
1209
  }[];
1170
1210
  email: boolean;
@@ -1194,7 +1234,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1194
1234
  expiresAt: number;
1195
1235
  }>;
1196
1236
  accounts: () => Promise<{
1197
- provider: "google" | "apple" | "x" | "discord";
1237
+ provider: "discord" | "google" | "apple" | "x";
1198
1238
  configured: boolean;
1199
1239
  status: "disconnected" | "connected" | "reconnect";
1200
1240
  subject: string | null;
@@ -1291,7 +1331,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1291
1331
  quest: string;
1292
1332
  member: string;
1293
1333
  evidence: string | null;
1294
- status: "needs-review" | "queued" | "evaluating" | "accepted" | "progressed" | "rejected" | "failed";
1334
+ status: "queued" | "evaluating" | "accepted" | "progressed" | "rejected" | "needs-review" | "failed";
1295
1335
  reason: string | null;
1296
1336
  retries: number;
1297
1337
  generation: number;
@@ -1363,8 +1403,24 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1363
1403
  } | undefined;
1364
1404
  } | undefined;
1365
1405
  };
1366
- connections: ("google" | "apple" | "x" | "discord")[];
1406
+ connections: ("discord" | "google" | "apple" | "x")[];
1367
1407
  trigger: {
1408
+ kind: "automatic";
1409
+ observation?: {
1410
+ source: string;
1411
+ type: string;
1412
+ } | undefined;
1413
+ content?: {
1414
+ tracker: string;
1415
+ window: {
1416
+ start: number;
1417
+ end?: number | undefined;
1418
+ };
1419
+ enrollment: "required" | "none";
1420
+ posts: "after-enrollment" | "since-start";
1421
+ historical: "staff" | "automatic" | "claim";
1422
+ } | undefined;
1423
+ } | {
1368
1424
  kind: "manual";
1369
1425
  input: "text";
1370
1426
  constraints: {
@@ -1385,16 +1441,10 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1385
1441
  kind: "manual";
1386
1442
  input: "quiz" | "photo" | "none";
1387
1443
  actor?: "member" | "staff" | undefined;
1388
- } | {
1389
- kind: "automatic";
1390
- observation?: {
1391
- source: string;
1392
- type: string;
1393
- } | undefined;
1394
1444
  };
1395
1445
  availability: {
1396
1446
  kind: "available";
1397
- input: "quiz" | "url" | "text" | "photo" | "none";
1447
+ input: "quiz" | "text" | "url" | "photo" | "none";
1398
1448
  } | {
1399
1449
  kind: "completed";
1400
1450
  } | {
@@ -1443,7 +1493,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1443
1493
  quest: string;
1444
1494
  member: string;
1445
1495
  evidence: string | null;
1446
- status: "needs-review" | "queued" | "evaluating" | "accepted" | "progressed" | "rejected" | "failed";
1496
+ status: "queued" | "evaluating" | "accepted" | "progressed" | "rejected" | "needs-review" | "failed";
1447
1497
  reason: string | null;
1448
1498
  retries: number;
1449
1499
  generation: number;
@@ -1610,7 +1660,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1610
1660
  provider: "discord";
1611
1661
  action: "grant-role";
1612
1662
  roleId: string;
1613
- status: "pending" | "failed" | "delivered";
1663
+ status: "failed" | "pending" | "delivered";
1614
1664
  attempts: number;
1615
1665
  nextAt: number;
1616
1666
  lastError: string | null;
@@ -1626,7 +1676,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1626
1676
  quest: string;
1627
1677
  member: string;
1628
1678
  evidence: string | null;
1629
- status: "needs-review" | "queued" | "evaluating" | "accepted" | "progressed" | "rejected" | "failed";
1679
+ status: "queued" | "evaluating" | "accepted" | "progressed" | "rejected" | "needs-review" | "failed";
1630
1680
  reason: string | null;
1631
1681
  retries: number;
1632
1682
  generation: number;
@@ -1691,7 +1741,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1691
1741
  quest: string;
1692
1742
  member: string;
1693
1743
  evidence: string | null;
1694
- status: "needs-review" | "queued" | "evaluating" | "accepted" | "progressed" | "rejected" | "failed";
1744
+ status: "queued" | "evaluating" | "accepted" | "progressed" | "rejected" | "needs-review" | "failed";
1695
1745
  reason: string | null;
1696
1746
  retries: number;
1697
1747
  generation: number;
@@ -1772,7 +1822,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1772
1822
  code: string;
1773
1823
  definition: {
1774
1824
  quest: string;
1775
- runtimeVersion: 1 | 2;
1825
+ runtimeVersion: 2 | 1;
1776
1826
  title: string;
1777
1827
  presentation: {
1778
1828
  quiz?: {
@@ -1809,12 +1859,12 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1809
1859
  kind: "resource";
1810
1860
  default: string;
1811
1861
  source: {
1862
+ provider: "domino";
1863
+ resource: "point-ledger";
1864
+ } | {
1812
1865
  provider: "discord";
1813
1866
  resource: "channel";
1814
1867
  types: ("text" | "announcement")[];
1815
- } | {
1816
- provider: "domino";
1817
- resource: "point-ledger";
1818
1868
  } | {
1819
1869
  provider: "discord";
1820
1870
  resource: "role";
@@ -1900,6 +1950,22 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1900
1950
  })[];
1901
1951
  humanReview: boolean;
1902
1952
  trigger: {
1953
+ kind: "automatic";
1954
+ observation?: {
1955
+ source: string;
1956
+ type: string;
1957
+ } | undefined;
1958
+ content?: {
1959
+ tracker: string;
1960
+ window: {
1961
+ start: number;
1962
+ end?: number | undefined;
1963
+ };
1964
+ enrollment: "required" | "none";
1965
+ posts: "after-enrollment" | "since-start";
1966
+ historical: "staff" | "automatic" | "claim";
1967
+ } | undefined;
1968
+ } | {
1903
1969
  kind: "manual";
1904
1970
  input: "text";
1905
1971
  constraints: {
@@ -1920,12 +1986,6 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1920
1986
  kind: "manual";
1921
1987
  input: "quiz" | "photo" | "none";
1922
1988
  actor?: "member" | "staff" | undefined;
1923
- } | {
1924
- kind: "automatic";
1925
- observation?: {
1926
- source: string;
1927
- type: string;
1928
- } | undefined;
1929
1989
  };
1930
1990
  requires: {
1931
1991
  quest: string;
@@ -1943,20 +2003,24 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1943
2003
  visibility: "visible" | "hidden";
1944
2004
  budgets: {
1945
2005
  id: string;
1946
- scope: "member" | "project";
2006
+ scope: "project" | "member";
1947
2007
  period: "day" | "lifetime";
1948
2008
  limit: number;
1949
2009
  cost: number | {
1950
2010
  balance: string;
1951
2011
  };
1952
2012
  }[];
2013
+ performance?: {
2014
+ metrics: ("likes" | "replies" | "reposts" | "quotes" | "views" | "bookmarks")[];
2015
+ maxAgeMs: number;
2016
+ } | undefined;
1953
2017
  };
1954
2018
  }[]>;
1955
2019
  template: () => Promise<{
1956
2020
  code: string;
1957
2021
  definition: {
1958
2022
  quest: string;
1959
- runtimeVersion: 1 | 2;
2023
+ runtimeVersion: 2 | 1;
1960
2024
  title: string;
1961
2025
  presentation: {
1962
2026
  quiz?: {
@@ -1993,12 +2057,12 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
1993
2057
  kind: "resource";
1994
2058
  default: string;
1995
2059
  source: {
2060
+ provider: "domino";
2061
+ resource: "point-ledger";
2062
+ } | {
1996
2063
  provider: "discord";
1997
2064
  resource: "channel";
1998
2065
  types: ("text" | "announcement")[];
1999
- } | {
2000
- provider: "domino";
2001
- resource: "point-ledger";
2002
2066
  } | {
2003
2067
  provider: "discord";
2004
2068
  resource: "role";
@@ -2084,6 +2148,22 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2084
2148
  })[];
2085
2149
  humanReview: boolean;
2086
2150
  trigger: {
2151
+ kind: "automatic";
2152
+ observation?: {
2153
+ source: string;
2154
+ type: string;
2155
+ } | undefined;
2156
+ content?: {
2157
+ tracker: string;
2158
+ window: {
2159
+ start: number;
2160
+ end?: number | undefined;
2161
+ };
2162
+ enrollment: "required" | "none";
2163
+ posts: "after-enrollment" | "since-start";
2164
+ historical: "staff" | "automatic" | "claim";
2165
+ } | undefined;
2166
+ } | {
2087
2167
  kind: "manual";
2088
2168
  input: "text";
2089
2169
  constraints: {
@@ -2104,12 +2184,6 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2104
2184
  kind: "manual";
2105
2185
  input: "quiz" | "photo" | "none";
2106
2186
  actor?: "member" | "staff" | undefined;
2107
- } | {
2108
- kind: "automatic";
2109
- observation?: {
2110
- source: string;
2111
- type: string;
2112
- } | undefined;
2113
2187
  };
2114
2188
  requires: {
2115
2189
  quest: string;
@@ -2127,19 +2201,23 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2127
2201
  visibility: "visible" | "hidden";
2128
2202
  budgets: {
2129
2203
  id: string;
2130
- scope: "member" | "project";
2204
+ scope: "project" | "member";
2131
2205
  period: "day" | "lifetime";
2132
2206
  limit: number;
2133
2207
  cost: number | {
2134
2208
  balance: string;
2135
2209
  };
2136
2210
  }[];
2211
+ performance?: {
2212
+ metrics: ("likes" | "replies" | "reposts" | "quotes" | "views" | "bookmarks")[];
2213
+ maxAgeMs: number;
2214
+ } | undefined;
2137
2215
  };
2138
2216
  }>;
2139
2217
  snapshot: () => Promise<{
2140
2218
  releases: {
2141
2219
  quest: string;
2142
- runtimeVersion: 1 | 2;
2220
+ runtimeVersion: 2 | 1;
2143
2221
  title: string;
2144
2222
  presentation: {
2145
2223
  quiz?: {
@@ -2176,12 +2254,12 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2176
2254
  kind: "resource";
2177
2255
  default: string;
2178
2256
  source: {
2257
+ provider: "domino";
2258
+ resource: "point-ledger";
2259
+ } | {
2179
2260
  provider: "discord";
2180
2261
  resource: "channel";
2181
2262
  types: ("text" | "announcement")[];
2182
- } | {
2183
- provider: "domino";
2184
- resource: "point-ledger";
2185
2263
  } | {
2186
2264
  provider: "discord";
2187
2265
  resource: "role";
@@ -2267,6 +2345,22 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2267
2345
  })[];
2268
2346
  humanReview: boolean;
2269
2347
  trigger: {
2348
+ kind: "automatic";
2349
+ observation?: {
2350
+ source: string;
2351
+ type: string;
2352
+ } | undefined;
2353
+ content?: {
2354
+ tracker: string;
2355
+ window: {
2356
+ start: number;
2357
+ end?: number | undefined;
2358
+ };
2359
+ enrollment: "required" | "none";
2360
+ posts: "after-enrollment" | "since-start";
2361
+ historical: "staff" | "automatic" | "claim";
2362
+ } | undefined;
2363
+ } | {
2270
2364
  kind: "manual";
2271
2365
  input: "text";
2272
2366
  constraints: {
@@ -2287,12 +2381,6 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2287
2381
  kind: "manual";
2288
2382
  input: "quiz" | "photo" | "none";
2289
2383
  actor?: "member" | "staff" | undefined;
2290
- } | {
2291
- kind: "automatic";
2292
- observation?: {
2293
- source: string;
2294
- type: string;
2295
- } | undefined;
2296
2384
  };
2297
2385
  requires: {
2298
2386
  quest: string;
@@ -2310,7 +2398,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2310
2398
  visibility: "visible" | "hidden";
2311
2399
  budgets: {
2312
2400
  id: string;
2313
- scope: "member" | "project";
2401
+ scope: "project" | "member";
2314
2402
  period: "day" | "lifetime";
2315
2403
  limit: number;
2316
2404
  cost: number | {
@@ -2323,6 +2411,10 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2323
2411
  createdAt: number;
2324
2412
  legacy: boolean;
2325
2413
  lifecycle: "active" | "paused" | "archived";
2414
+ performance?: {
2415
+ metrics: ("likes" | "replies" | "reposts" | "quotes" | "views" | "bookmarks")[];
2416
+ maxAgeMs: number;
2417
+ } | undefined;
2326
2418
  key?: string | undefined;
2327
2419
  origin?: {
2328
2420
  typeVersion: string;
@@ -2438,7 +2530,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2438
2530
  quest: string;
2439
2531
  member: string;
2440
2532
  evidence: string | null;
2441
- status: "needs-review" | "queued" | "evaluating" | "accepted" | "progressed" | "rejected" | "failed";
2533
+ status: "queued" | "evaluating" | "accepted" | "progressed" | "rejected" | "needs-review" | "failed";
2442
2534
  reason: string | null;
2443
2535
  retries: number;
2444
2536
  generation: number;
@@ -2503,7 +2595,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2503
2595
  }>;
2504
2596
  publish: (release: ReleaseInput) => Promise<{
2505
2597
  quest: string;
2506
- runtimeVersion: 1 | 2;
2598
+ runtimeVersion: 2 | 1;
2507
2599
  title: string;
2508
2600
  presentation: {
2509
2601
  quiz?: {
@@ -2540,12 +2632,12 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2540
2632
  kind: "resource";
2541
2633
  default: string;
2542
2634
  source: {
2635
+ provider: "domino";
2636
+ resource: "point-ledger";
2637
+ } | {
2543
2638
  provider: "discord";
2544
2639
  resource: "channel";
2545
2640
  types: ("text" | "announcement")[];
2546
- } | {
2547
- provider: "domino";
2548
- resource: "point-ledger";
2549
2641
  } | {
2550
2642
  provider: "discord";
2551
2643
  resource: "role";
@@ -2631,6 +2723,22 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2631
2723
  })[];
2632
2724
  humanReview: boolean;
2633
2725
  trigger: {
2726
+ kind: "automatic";
2727
+ observation?: {
2728
+ source: string;
2729
+ type: string;
2730
+ } | undefined;
2731
+ content?: {
2732
+ tracker: string;
2733
+ window: {
2734
+ start: number;
2735
+ end?: number | undefined;
2736
+ };
2737
+ enrollment: "required" | "none";
2738
+ posts: "after-enrollment" | "since-start";
2739
+ historical: "staff" | "automatic" | "claim";
2740
+ } | undefined;
2741
+ } | {
2634
2742
  kind: "manual";
2635
2743
  input: "text";
2636
2744
  constraints: {
@@ -2651,12 +2759,6 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2651
2759
  kind: "manual";
2652
2760
  input: "quiz" | "photo" | "none";
2653
2761
  actor?: "member" | "staff" | undefined;
2654
- } | {
2655
- kind: "automatic";
2656
- observation?: {
2657
- source: string;
2658
- type: string;
2659
- } | undefined;
2660
2762
  };
2661
2763
  requires: {
2662
2764
  quest: string;
@@ -2674,7 +2776,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2674
2776
  visibility: "visible" | "hidden";
2675
2777
  budgets: {
2676
2778
  id: string;
2677
- scope: "member" | "project";
2779
+ scope: "project" | "member";
2678
2780
  period: "day" | "lifetime";
2679
2781
  limit: number;
2680
2782
  cost: number | {
@@ -2687,6 +2789,10 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2687
2789
  createdAt: number;
2688
2790
  legacy: boolean;
2689
2791
  lifecycle: "active" | "paused" | "archived";
2792
+ performance?: {
2793
+ metrics: ("likes" | "replies" | "reposts" | "quotes" | "views" | "bookmarks")[];
2794
+ maxAgeMs: number;
2795
+ } | undefined;
2690
2796
  key?: string | undefined;
2691
2797
  origin?: {
2692
2798
  typeVersion: string;
@@ -2715,7 +2821,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2715
2821
  }>;
2716
2822
  publishBatch: (releases: ReleaseInput[]) => Promise<{
2717
2823
  quest: string;
2718
- runtimeVersion: 1 | 2;
2824
+ runtimeVersion: 2 | 1;
2719
2825
  title: string;
2720
2826
  presentation: {
2721
2827
  quiz?: {
@@ -2752,12 +2858,12 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2752
2858
  kind: "resource";
2753
2859
  default: string;
2754
2860
  source: {
2861
+ provider: "domino";
2862
+ resource: "point-ledger";
2863
+ } | {
2755
2864
  provider: "discord";
2756
2865
  resource: "channel";
2757
2866
  types: ("text" | "announcement")[];
2758
- } | {
2759
- provider: "domino";
2760
- resource: "point-ledger";
2761
2867
  } | {
2762
2868
  provider: "discord";
2763
2869
  resource: "role";
@@ -2843,6 +2949,22 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2843
2949
  })[];
2844
2950
  humanReview: boolean;
2845
2951
  trigger: {
2952
+ kind: "automatic";
2953
+ observation?: {
2954
+ source: string;
2955
+ type: string;
2956
+ } | undefined;
2957
+ content?: {
2958
+ tracker: string;
2959
+ window: {
2960
+ start: number;
2961
+ end?: number | undefined;
2962
+ };
2963
+ enrollment: "required" | "none";
2964
+ posts: "after-enrollment" | "since-start";
2965
+ historical: "staff" | "automatic" | "claim";
2966
+ } | undefined;
2967
+ } | {
2846
2968
  kind: "manual";
2847
2969
  input: "text";
2848
2970
  constraints: {
@@ -2863,12 +2985,6 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2863
2985
  kind: "manual";
2864
2986
  input: "quiz" | "photo" | "none";
2865
2987
  actor?: "member" | "staff" | undefined;
2866
- } | {
2867
- kind: "automatic";
2868
- observation?: {
2869
- source: string;
2870
- type: string;
2871
- } | undefined;
2872
2988
  };
2873
2989
  requires: {
2874
2990
  quest: string;
@@ -2886,7 +3002,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2886
3002
  visibility: "visible" | "hidden";
2887
3003
  budgets: {
2888
3004
  id: string;
2889
- scope: "member" | "project";
3005
+ scope: "project" | "member";
2890
3006
  period: "day" | "lifetime";
2891
3007
  limit: number;
2892
3008
  cost: number | {
@@ -2899,6 +3015,10 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2899
3015
  createdAt: number;
2900
3016
  legacy: boolean;
2901
3017
  lifecycle: "active" | "paused" | "archived";
3018
+ performance?: {
3019
+ metrics: ("likes" | "replies" | "reposts" | "quotes" | "views" | "bookmarks")[];
3020
+ maxAgeMs: number;
3021
+ } | undefined;
2902
3022
  key?: string | undefined;
2903
3023
  origin?: {
2904
3024
  typeVersion: string;
@@ -2950,8 +3070,24 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2950
3070
  } | undefined;
2951
3071
  } | undefined;
2952
3072
  };
2953
- connections: ("google" | "apple" | "x" | "discord")[];
3073
+ connections: ("discord" | "google" | "apple" | "x")[];
2954
3074
  trigger: {
3075
+ kind: "automatic";
3076
+ observation?: {
3077
+ source: string;
3078
+ type: string;
3079
+ } | undefined;
3080
+ content?: {
3081
+ tracker: string;
3082
+ window: {
3083
+ start: number;
3084
+ end?: number | undefined;
3085
+ };
3086
+ enrollment: "required" | "none";
3087
+ posts: "after-enrollment" | "since-start";
3088
+ historical: "staff" | "automatic" | "claim";
3089
+ } | undefined;
3090
+ } | {
2955
3091
  kind: "manual";
2956
3092
  input: "text";
2957
3093
  constraints: {
@@ -2972,16 +3108,10 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
2972
3108
  kind: "manual";
2973
3109
  input: "quiz" | "photo" | "none";
2974
3110
  actor?: "member" | "staff" | undefined;
2975
- } | {
2976
- kind: "automatic";
2977
- observation?: {
2978
- source: string;
2979
- type: string;
2980
- } | undefined;
2981
3111
  };
2982
3112
  availability: {
2983
3113
  kind: "available";
2984
- input: "quiz" | "url" | "text" | "photo" | "none";
3114
+ input: "quiz" | "text" | "url" | "photo" | "none";
2985
3115
  } | {
2986
3116
  kind: "completed";
2987
3117
  } | {
@@ -3030,7 +3160,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
3030
3160
  quest: string;
3031
3161
  member: string;
3032
3162
  evidence: string | null;
3033
- status: "needs-review" | "queued" | "evaluating" | "accepted" | "progressed" | "rejected" | "failed";
3163
+ status: "queued" | "evaluating" | "accepted" | "progressed" | "rejected" | "needs-review" | "failed";
3034
3164
  reason: string | null;
3035
3165
  retries: number;
3036
3166
  generation: number;
@@ -3351,13 +3481,184 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
3351
3481
  type: "image/jpeg" | "image/png";
3352
3482
  size: number;
3353
3483
  }>;
3484
+ engagement: {
3485
+ boundaries: (input: zod.infer<typeof engagementPageQuerySchema>) => Promise<{
3486
+ current: {
3487
+ version: string;
3488
+ definition: {
3489
+ key: string;
3490
+ qualifiedBy: string;
3491
+ balance: string;
3492
+ metrics: ("likes" | "replies" | "reposts" | "quotes" | "views" | "bookmarks")[];
3493
+ baseline: "historical";
3494
+ maxAgeMs: number;
3495
+ budget: {
3496
+ projectDaily?: number | undefined;
3497
+ memberDaily?: number | undefined;
3498
+ projectLifetime?: number | undefined;
3499
+ };
3500
+ };
3501
+ publishedAt: number;
3502
+ } | null;
3503
+ requested: {
3504
+ version: string;
3505
+ definition: {
3506
+ key: string;
3507
+ qualifiedBy: string;
3508
+ balance: string;
3509
+ metrics: ("likes" | "replies" | "reposts" | "quotes" | "views" | "bookmarks")[];
3510
+ baseline: "historical";
3511
+ maxAgeMs: number;
3512
+ budget: {
3513
+ projectDaily?: number | undefined;
3514
+ memberDaily?: number | undefined;
3515
+ projectLifetime?: number | undefined;
3516
+ };
3517
+ };
3518
+ publishedAt: number;
3519
+ };
3520
+ items: {
3521
+ from: string;
3522
+ to: string;
3523
+ baseline: Partial<Record<"likes" | "replies" | "reposts" | "quotes" | "views" | "bookmarks", number>>;
3524
+ observedAt: number;
3525
+ settlement: {
3526
+ id: string;
3527
+ day: string;
3528
+ observation: string;
3529
+ qualification: string;
3530
+ earned: number;
3531
+ growth: number;
3532
+ paid: number;
3533
+ excluded: number;
3534
+ entry: string | null;
3535
+ createdAt: number;
3536
+ };
3537
+ }[];
3538
+ next: number | null;
3539
+ }>;
3540
+ page: (input: zod.infer<typeof engagementPageQuerySchema>) => Promise<{
3541
+ rule: {
3542
+ version: string;
3543
+ definition: {
3544
+ key: string;
3545
+ qualifiedBy: string;
3546
+ balance: string;
3547
+ metrics: ("likes" | "replies" | "reposts" | "quotes" | "views" | "bookmarks")[];
3548
+ baseline: "historical";
3549
+ maxAgeMs: number;
3550
+ budget: {
3551
+ projectDaily?: number | undefined;
3552
+ memberDaily?: number | undefined;
3553
+ projectLifetime?: number | undefined;
3554
+ };
3555
+ };
3556
+ publishedAt: number;
3557
+ };
3558
+ account: {
3559
+ member: string;
3560
+ earned: number;
3561
+ accounted: number;
3562
+ paid: number;
3563
+ excluded: number;
3564
+ pending: number;
3565
+ counters: Partial<Record<"likes" | "replies" | "reposts" | "quotes" | "views" | "bookmarks", number>>;
3566
+ baseline: Partial<Record<"likes" | "replies" | "reposts" | "quotes" | "views" | "bookmarks", number>>;
3567
+ observation: string | null;
3568
+ nextSettlementAt: number | null;
3569
+ reason: string | null;
3570
+ } | null;
3571
+ items: {
3572
+ id: string;
3573
+ day: string;
3574
+ observation: string;
3575
+ qualification: string;
3576
+ earned: number;
3577
+ growth: number;
3578
+ paid: number;
3579
+ excluded: number;
3580
+ entry: string | null;
3581
+ createdAt: number;
3582
+ }[];
3583
+ next: number | null;
3584
+ }>;
3585
+ };
3586
+ content: {
3587
+ performance: (input: zod.infer<typeof contentPerformanceQuerySchema>) => Promise<{
3588
+ current: {
3589
+ state: "needs-review" | "failed" | "pending" | "qualified" | "content-pending" | "content-unqualified" | "waiting" | "unqualified" | "superseded";
3590
+ reason: string | null;
3591
+ contentAttempt: string;
3592
+ attempt: string | null;
3593
+ reward: {
3594
+ attempt: string | null;
3595
+ completion: string | null;
3596
+ state: "awarded" | "excluded" | "unresolved";
3597
+ };
3598
+ };
3599
+ items: {
3600
+ attempt: string;
3601
+ contentAttempt: string;
3602
+ observation: string;
3603
+ observedAt: number;
3604
+ metrics: Partial<Record<"likes" | "replies" | "reposts" | "quotes" | "views" | "bookmarks", number>>;
3605
+ state: "needs-review" | "failed" | "pending" | "qualified" | "unqualified" | "superseded";
3606
+ reason: string | null;
3607
+ }[];
3608
+ next: number | null;
3609
+ }>;
3610
+ qualifications: (input: zod.infer<typeof contentQualificationQuerySchema>) => Promise<{
3611
+ items: {
3612
+ quest: string;
3613
+ content: string;
3614
+ member: string;
3615
+ release: string;
3616
+ attempt: string;
3617
+ revision: string;
3618
+ observation: string;
3619
+ current: boolean;
3620
+ state: "needs-review" | "failed" | "pending" | "qualified" | "unqualified" | "superseded" | "stale" | "blocked" | "unavailable";
3621
+ reason: string | null;
3622
+ reward: {
3623
+ attempt: string | null;
3624
+ completion: string | null;
3625
+ state: "awarded" | "excluded" | "unresolved";
3626
+ };
3627
+ }[];
3628
+ next: number | null;
3629
+ }>;
3630
+ admissions: (input: zod.input<typeof contentAdmissionQuerySchema>) => Promise<{
3631
+ items: {
3632
+ quest: string;
3633
+ content: string;
3634
+ release: string;
3635
+ state: "pending" | "excluded" | "admitted";
3636
+ reason: string | null;
3637
+ attempt: string | null;
3638
+ }[];
3639
+ next: string | null;
3640
+ }>;
3641
+ enroll: (input: zod.input<typeof contentEnrollmentInputSchema>) => Promise<{
3642
+ quest: string;
3643
+ member: string;
3644
+ enrolledAt: number;
3645
+ }>;
3646
+ claim: (input: zod.input<typeof contentReleaseInputSchema>) => Promise<{
3647
+ quest: string;
3648
+ content: string;
3649
+ release: string;
3650
+ state: "pending" | "excluded" | "admitted";
3651
+ reason: string | null;
3652
+ attempt: string | null;
3653
+ }>;
3654
+ };
3354
3655
  submit: (input: SubmitInput) => Promise<{
3355
3656
  id: string;
3356
3657
  release: string;
3357
3658
  quest: string;
3358
3659
  member: string;
3359
3660
  evidence: string | null;
3360
- status: "needs-review" | "queued" | "evaluating" | "accepted" | "progressed" | "rejected" | "failed";
3661
+ status: "queued" | "evaluating" | "accepted" | "progressed" | "rejected" | "needs-review" | "failed";
3361
3662
  reason: string | null;
3362
3663
  retries: number;
3363
3664
  generation: number;
@@ -3410,7 +3711,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
3410
3711
  quest: string;
3411
3712
  member: string;
3412
3713
  evidence: string | null;
3413
- status: "needs-review" | "queued" | "evaluating" | "accepted" | "progressed" | "rejected" | "failed";
3714
+ status: "queued" | "evaluating" | "accepted" | "progressed" | "rejected" | "needs-review" | "failed";
3414
3715
  reason: string | null;
3415
3716
  retries: number;
3416
3717
  generation: number;
@@ -3468,7 +3769,7 @@ declare function createBrowserRelayClient(options: Parameters<typeof createRelay
3468
3769
  quest: string;
3469
3770
  member: string;
3470
3771
  evidence: string | null;
3471
- status: "needs-review" | "queued" | "evaluating" | "accepted" | "progressed" | "rejected" | "failed";
3772
+ status: "queued" | "evaluating" | "accepted" | "progressed" | "rejected" | "needs-review" | "failed";
3472
3773
  reason: string | null;
3473
3774
  retries: number;
3474
3775
  generation: number;