@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/index.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  import { z } from 'zod';
2
2
  import { errorSchema, QuizEvidence, Attempt, SubmitInput, MemberProgress, questDescriptionSchema, PublishedRelease, ReviewListOptions, MemberListOptions, ReleaseInput, beginHandoverSchema } from './schema.js';
3
- export { Decision, Entitlement, MemberPage, PhotoResult, PickupAvailability, QuestAvailability, QuestDescription, QuestPresentation, QuestSettingsInput, ReviewPage, Reward, Snapshot, TieredRewardDefinition, artifactSchema, attemptSchema, batchReleaseSchema, completionRecordSchema, configurePickupSchema, confirmHandoverSchema, decisionSchema, entitlementSchema, eventSchema, evidenceSchema, identifier, mediaUrlSchema, memberListSchema, memberPageSchema, memberProgressSchema, photoResultSchema, pickupAllocationSchema, pickupAvailabilitySchema, pickupCatalogSchema, pickupPolicySchema, pickupSelectionSchema, pointsRewardSchema, prerequisiteSchema, publishedReleaseSchema, questAvailabilitySchema, questPresentationSchema, questSettingsInputSchema, quizAnswersSchema, quizEvidenceSchema, releaseSchema, reservationSchema, reviewItemSchema, reviewListSchema, reviewModeSchema, reviewPageSchema, rewardBundleSchema, rewardKey, rewardSchema, snapshotSchema, staffDecisionSchema, stockSchema, submitSchema, templateSchema, tierRewardSchema, tieredRewardDefinitionSchema, triggerSchema } from './schema.js';
4
- import { r as referralAcceptSchema, L as LeaderboardQuery, w as walletChallengeInputSchema, b as walletProofSchema, A as AuthProvider } from './settings-B7vsT8nd.js';
5
- export { c as AccountConnection, D as DiscordMember, I as IntegrationProvider, e as LeaderboardDefinition, f as LeaderboardPage, P as ProjectIntegration, Q as QuizContent, R as ReferralDefinition, g as SettingField, h as SettingsValues, S as SolanaBalance, W as WalletConnection, i as accountConnectionSchema, j as authProviderSchema, d as defineLeaderboard, a as defineReferral, k as discordMemberInputSchema, l as discordMemberSchema, m as discordServerSchema, n as integrationProviderSchema, o as leaderboardArtifactSchema, p as leaderboardDefinitionSchema, q as leaderboardExclusionSchema, t as leaderboardGroupSchema, u as leaderboardPageSchema, v as leaderboardPreviewSchema, x as leaderboardQuerySchema, y as leaderboardRowSchema, z as leaderboardWindowSchema, B as parseSettings, C as pointsAccountSchema, E as pointsEntrySchema, F as pointsMutationSchema, G as pointsResultSchema, H as projectIntegrationSchema, J as publishedLeaderboardSchema, K as publishedReferralSchema, M as quizChoiceSchema, N as quizContentSchema, O as quizQuestionSchema, T as quizQuestionsSchema, U as referralAccountSchema, V as referralArtifactSchema, X as referralControlSchema, Y as referralDefinitionSchema, Z as referralHistorySchema, _ as referralManagementSchema, $ as referralRelationshipSchema, a0 as referralSummarySchema, a1 as settingFieldSchema, s as settings, a2 as settingsFieldsSchema, a3 as settingsValuesSchema, a4 as solanaAddressSchema, a5 as solanaBalanceSchema, a6 as walletChallengeSchema, a7 as walletConnectionSchema } from './settings-B7vsT8nd.js';
3
+ export { Decision, Entitlement, MemberPage, PhotoResult, PickupAvailability, QuestAvailability, QuestDescription, QuestPresentation, QuestSettingsInput, ReviewPage, Reward, Snapshot, TieredRewardDefinition, artifactSchema, attemptSchema, batchReleaseSchema, completionRecordSchema, configurePickupSchema, confirmHandoverSchema, decisionSchema, entitlementSchema, eventSchema, evidenceSchema, identifier, integrationRewardSchema, mediaUrlSchema, memberListSchema, memberPageSchema, memberProgressSchema, photoResultSchema, pickupAllocationSchema, pickupAvailabilitySchema, pickupCatalogSchema, pickupPolicySchema, pickupSelectionSchema, pointsRewardSchema, prerequisiteSchema, publishedReleaseSchema, questAvailabilitySchema, questPresentationSchema, questSettingsInputSchema, quizAnswersSchema, quizEvidenceSchema, releaseSchema, reservationSchema, reviewItemSchema, reviewListSchema, reviewModeSchema, reviewPageSchema, rewardBundleSchema, rewardKey, rewardSchema, snapshotSchema, staffDecisionSchema, stockSchema, submitSchema, templateSchema, tierRewardSchema, tieredRewardDefinitionSchema, triggerSchema } from './schema.js';
4
+ import { r as referralAcceptSchema, L as LeaderboardQuery, w as walletChallengeInputSchema, e as walletProofSchema, A as AuthProvider } from './settings-BrC6C9yl.js';
5
+ export { f as AccountConnection, B as Budget, D as DiscordMember, a as DiscordMessage, I as IntegrationProvider, g as LeaderboardDefinition, h as LeaderboardPage, O as Observation, P as ProjectIntegration, Q as QuizContent, R as ReferralDefinition, i as ResourceOption, j as ResourceSource, k as SettingField, l as SettingsValues, S as SolanaBalance, W as WalletConnection, m as accountConnectionSchema, n as authProviderSchema, p as budgetSchema, q as compatibleSettingKinds, t as completionKeySchema, u as completionPolicySchema, d as defineLeaderboard, b as defineReferral, c as discord, v as discordMemberInputSchema, x as discordMemberSchema, y as discordMessageInputSchema, z as discordMessageSchema, C as discordReactionSchema, E as discordServerSchema, F as integrationProviderSchema, G as leaderboardArtifactSchema, H as leaderboardDefinitionSchema, J as leaderboardExclusionSchema, K as leaderboardGroupSchema, M as leaderboardPageSchema, N as leaderboardPreviewSchema, T as leaderboardQuerySchema, U as leaderboardRowSchema, V as leaderboardWindowSchema, X as missingResourceSettings, Y as observationInputSchema, Z as observationReceiptSchema, _ as observationSchema, o as observationTriggerSchema, $ as parseSettings, a0 as pointsAccountSchema, a1 as pointsEntrySchema, a2 as pointsMutationSchema, a3 as pointsResultSchema, a4 as projectIntegrationSchema, a5 as publishedLeaderboardSchema, a6 as publishedReferralSchema, a7 as quizChoiceSchema, a8 as quizContentSchema, a9 as quizQuestionSchema, aa as quizQuestionsSchema, ab as referralAccountSchema, ac as referralArtifactSchema, ad as referralControlSchema, ae as referralDefinitionSchema, af as referralHistorySchema, ag as referralManagementSchema, ah as referralRelationshipSchema, ai as referralSummarySchema, aj as resourceOptionsSchema, ak as resourceRequestSchema, al as resourceSourceSchema, am as settingFieldSchema, s as settings, an as settingsFieldsSchema, ao as settingsValuesSchema, ap as solanaAddressSchema, aq as solanaBalanceSchema, ar as walletChallengeSchema, as as walletConnectionSchema } from './settings-BrC6C9yl.js';
6
6
 
7
7
  declare class RelayError extends Error {
8
8
  readonly status: number;
@@ -145,16 +145,19 @@ declare function submissions(transport: Transport, configuredStore: SubmissionSt
145
145
  input: "photo";
146
146
  release?: string;
147
147
  recoverPrevious?: boolean;
148
+ repeatable?: boolean;
148
149
  }): Promise<PhotoSubmission>;
149
150
  (quest: string, options: {
150
151
  input: "quiz";
151
152
  release?: string;
152
153
  recoverPrevious?: boolean;
154
+ repeatable?: boolean;
153
155
  }): Promise<QuizSubmission>;
154
156
  (quest: string, options: {
155
157
  input: "none";
156
158
  release?: string;
157
159
  recoverPrevious?: boolean;
160
+ repeatable?: boolean;
158
161
  }): Promise<ClaimSubmission>;
159
162
  };
160
163
  type SubmissionDraft = {
@@ -227,6 +230,28 @@ declare const questTypeVersionSchema: z.ZodObject<{
227
230
  discord: "discord";
228
231
  }>>>;
229
232
  fields: z.ZodRecord<z.ZodString, z.ZodDiscriminatedUnion<[z.ZodObject<{
233
+ kind: z.ZodLiteral<"datetime">;
234
+ default: z.ZodPipe<z.ZodISODateTime, z.ZodTransform<string, string>>;
235
+ label: z.ZodString;
236
+ description: z.ZodOptional<z.ZodString>;
237
+ }, z.core.$strict>, z.ZodObject<{
238
+ kind: z.ZodLiteral<"resource">;
239
+ default: z.ZodUnion<readonly [z.ZodLiteral<"">, z.ZodString]>;
240
+ source: z.ZodUnion<readonly [z.ZodObject<{
241
+ provider: z.ZodLiteral<"discord">;
242
+ resource: z.ZodLiteral<"channel">;
243
+ types: z.ZodArray<z.ZodEnum<{
244
+ text: "text";
245
+ announcement: "announcement";
246
+ }>>;
247
+ }, z.core.$strict>, z.ZodObject<{
248
+ provider: z.ZodLiteral<"discord">;
249
+ resource: z.ZodLiteral<"role">;
250
+ assignable: z.ZodDefault<z.ZodBoolean>;
251
+ }, z.core.$strict>]>;
252
+ label: z.ZodString;
253
+ description: z.ZodOptional<z.ZodString>;
254
+ }, z.core.$strict>, z.ZodObject<{
230
255
  kind: z.ZodLiteral<"quiz">;
231
256
  default: z.ZodArray<z.ZodObject<{
232
257
  id: z.ZodString;
@@ -296,6 +321,11 @@ declare const questTypeVersionSchema: z.ZodObject<{
296
321
  }, z.core.$strict>;
297
322
  }, z.core.$strict>;
298
323
  tier: z.ZodString;
324
+ }, z.core.$strict>, z.ZodObject<{
325
+ kind: z.ZodLiteral<"integration">;
326
+ provider: z.ZodLiteral<"discord">;
327
+ action: z.ZodLiteral<"grant-role">;
328
+ roleId: z.ZodString;
299
329
  }, z.core.$strict>]>>;
300
330
  humanReview: z.ZodBoolean;
301
331
  trigger: z.ZodUnion<readonly [z.ZodObject<{
@@ -311,14 +341,39 @@ declare const questTypeVersionSchema: z.ZodObject<{
311
341
  }>>;
312
342
  }, z.core.$strict>, z.ZodObject<{
313
343
  kind: z.ZodLiteral<"automatic">;
344
+ observation: z.ZodOptional<z.ZodObject<{
345
+ source: z.ZodString;
346
+ type: z.ZodString;
347
+ }, z.core.$strict>>;
314
348
  }, z.core.$strict>]>;
315
349
  requires: z.ZodDefault<z.ZodArray<z.ZodObject<{
316
350
  quest: z.ZodString;
317
351
  scope: z.ZodLiteral<"ever">;
318
352
  }, z.core.$strict>>>;
319
- completion: z.ZodObject<{
353
+ completion: z.ZodDiscriminatedUnion<[z.ZodObject<{
320
354
  kind: z.ZodLiteral<"once">;
321
- }, z.core.$strict>;
355
+ }, z.core.$strict>, z.ZodObject<{
356
+ kind: z.ZodLiteral<"keyed">;
357
+ }, z.core.$strict>], "kind">;
358
+ visibility: z.ZodDefault<z.ZodEnum<{
359
+ visible: "visible";
360
+ hidden: "hidden";
361
+ }>>;
362
+ budgets: z.ZodDefault<z.ZodArray<z.ZodObject<{
363
+ id: z.ZodString;
364
+ scope: z.ZodEnum<{
365
+ member: "member";
366
+ project: "project";
367
+ }>;
368
+ period: z.ZodEnum<{
369
+ lifetime: "lifetime";
370
+ day: "day";
371
+ }>;
372
+ limit: z.ZodNumber;
373
+ cost: z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
374
+ balance: z.ZodString;
375
+ }, z.core.$strict>]>;
376
+ }, z.core.$strict>>>;
322
377
  }, z.core.$strict>;
323
378
  provider: z.ZodEnum<{
324
379
  "fixture-pass": "fixture-pass";
@@ -488,6 +543,28 @@ declare const questCatalogSchema: z.ZodObject<{
488
543
  discord: "discord";
489
544
  }>>>;
490
545
  fields: z.ZodRecord<z.ZodString, z.ZodDiscriminatedUnion<[z.ZodObject<{
546
+ kind: z.ZodLiteral<"datetime">;
547
+ default: z.ZodPipe<z.ZodISODateTime, z.ZodTransform<string, string>>;
548
+ label: z.ZodString;
549
+ description: z.ZodOptional<z.ZodString>;
550
+ }, z.core.$strict>, z.ZodObject<{
551
+ kind: z.ZodLiteral<"resource">;
552
+ default: z.ZodUnion<readonly [z.ZodLiteral<"">, z.ZodString]>;
553
+ source: z.ZodUnion<readonly [z.ZodObject<{
554
+ provider: z.ZodLiteral<"discord">;
555
+ resource: z.ZodLiteral<"channel">;
556
+ types: z.ZodArray<z.ZodEnum<{
557
+ text: "text";
558
+ announcement: "announcement";
559
+ }>>;
560
+ }, z.core.$strict>, z.ZodObject<{
561
+ provider: z.ZodLiteral<"discord">;
562
+ resource: z.ZodLiteral<"role">;
563
+ assignable: z.ZodDefault<z.ZodBoolean>;
564
+ }, z.core.$strict>]>;
565
+ label: z.ZodString;
566
+ description: z.ZodOptional<z.ZodString>;
567
+ }, z.core.$strict>, z.ZodObject<{
491
568
  kind: z.ZodLiteral<"quiz">;
492
569
  default: z.ZodArray<z.ZodObject<{
493
570
  id: z.ZodString;
@@ -557,6 +634,11 @@ declare const questCatalogSchema: z.ZodObject<{
557
634
  }, z.core.$strict>;
558
635
  }, z.core.$strict>;
559
636
  tier: z.ZodString;
637
+ }, z.core.$strict>, z.ZodObject<{
638
+ kind: z.ZodLiteral<"integration">;
639
+ provider: z.ZodLiteral<"discord">;
640
+ action: z.ZodLiteral<"grant-role">;
641
+ roleId: z.ZodString;
560
642
  }, z.core.$strict>]>>;
561
643
  humanReview: z.ZodBoolean;
562
644
  trigger: z.ZodUnion<readonly [z.ZodObject<{
@@ -572,14 +654,39 @@ declare const questCatalogSchema: z.ZodObject<{
572
654
  }>>;
573
655
  }, z.core.$strict>, z.ZodObject<{
574
656
  kind: z.ZodLiteral<"automatic">;
657
+ observation: z.ZodOptional<z.ZodObject<{
658
+ source: z.ZodString;
659
+ type: z.ZodString;
660
+ }, z.core.$strict>>;
575
661
  }, z.core.$strict>]>;
576
662
  requires: z.ZodDefault<z.ZodArray<z.ZodObject<{
577
663
  quest: z.ZodString;
578
664
  scope: z.ZodLiteral<"ever">;
579
665
  }, z.core.$strict>>>;
580
- completion: z.ZodObject<{
666
+ completion: z.ZodDiscriminatedUnion<[z.ZodObject<{
581
667
  kind: z.ZodLiteral<"once">;
582
- }, z.core.$strict>;
668
+ }, z.core.$strict>, z.ZodObject<{
669
+ kind: z.ZodLiteral<"keyed">;
670
+ }, z.core.$strict>], "kind">;
671
+ visibility: z.ZodDefault<z.ZodEnum<{
672
+ visible: "visible";
673
+ hidden: "hidden";
674
+ }>>;
675
+ budgets: z.ZodDefault<z.ZodArray<z.ZodObject<{
676
+ id: z.ZodString;
677
+ scope: z.ZodEnum<{
678
+ member: "member";
679
+ project: "project";
680
+ }>;
681
+ period: z.ZodEnum<{
682
+ lifetime: "lifetime";
683
+ day: "day";
684
+ }>;
685
+ limit: z.ZodNumber;
686
+ cost: z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
687
+ balance: z.ZodString;
688
+ }, z.core.$strict>]>;
689
+ }, z.core.$strict>>>;
583
690
  }, z.core.$strict>;
584
691
  provider: z.ZodEnum<{
585
692
  "fixture-pass": "fixture-pass";
@@ -711,6 +818,28 @@ declare const questCatalogSchema: z.ZodObject<{
711
818
  discord: "discord";
712
819
  }>>>;
713
820
  fields: z.ZodRecord<z.ZodString, z.ZodDiscriminatedUnion<[z.ZodObject<{
821
+ kind: z.ZodLiteral<"datetime">;
822
+ default: z.ZodPipe<z.ZodISODateTime, z.ZodTransform<string, string>>;
823
+ label: z.ZodString;
824
+ description: z.ZodOptional<z.ZodString>;
825
+ }, z.core.$strict>, z.ZodObject<{
826
+ kind: z.ZodLiteral<"resource">;
827
+ default: z.ZodUnion<readonly [z.ZodLiteral<"">, z.ZodString]>;
828
+ source: z.ZodUnion<readonly [z.ZodObject<{
829
+ provider: z.ZodLiteral<"discord">;
830
+ resource: z.ZodLiteral<"channel">;
831
+ types: z.ZodArray<z.ZodEnum<{
832
+ text: "text";
833
+ announcement: "announcement";
834
+ }>>;
835
+ }, z.core.$strict>, z.ZodObject<{
836
+ provider: z.ZodLiteral<"discord">;
837
+ resource: z.ZodLiteral<"role">;
838
+ assignable: z.ZodDefault<z.ZodBoolean>;
839
+ }, z.core.$strict>]>;
840
+ label: z.ZodString;
841
+ description: z.ZodOptional<z.ZodString>;
842
+ }, z.core.$strict>, z.ZodObject<{
714
843
  kind: z.ZodLiteral<"quiz">;
715
844
  default: z.ZodArray<z.ZodObject<{
716
845
  id: z.ZodString;
@@ -780,6 +909,11 @@ declare const questCatalogSchema: z.ZodObject<{
780
909
  }, z.core.$strict>;
781
910
  }, z.core.$strict>;
782
911
  tier: z.ZodString;
912
+ }, z.core.$strict>, z.ZodObject<{
913
+ kind: z.ZodLiteral<"integration">;
914
+ provider: z.ZodLiteral<"discord">;
915
+ action: z.ZodLiteral<"grant-role">;
916
+ roleId: z.ZodString;
783
917
  }, z.core.$strict>]>>;
784
918
  humanReview: z.ZodBoolean;
785
919
  trigger: z.ZodUnion<readonly [z.ZodObject<{
@@ -795,14 +929,39 @@ declare const questCatalogSchema: z.ZodObject<{
795
929
  }>>;
796
930
  }, z.core.$strict>, z.ZodObject<{
797
931
  kind: z.ZodLiteral<"automatic">;
932
+ observation: z.ZodOptional<z.ZodObject<{
933
+ source: z.ZodString;
934
+ type: z.ZodString;
935
+ }, z.core.$strict>>;
798
936
  }, z.core.$strict>]>;
799
937
  requires: z.ZodDefault<z.ZodArray<z.ZodObject<{
800
938
  quest: z.ZodString;
801
939
  scope: z.ZodLiteral<"ever">;
802
940
  }, z.core.$strict>>>;
803
- completion: z.ZodObject<{
941
+ completion: z.ZodDiscriminatedUnion<[z.ZodObject<{
804
942
  kind: z.ZodLiteral<"once">;
805
- }, z.core.$strict>;
943
+ }, z.core.$strict>, z.ZodObject<{
944
+ kind: z.ZodLiteral<"keyed">;
945
+ }, z.core.$strict>], "kind">;
946
+ visibility: z.ZodDefault<z.ZodEnum<{
947
+ visible: "visible";
948
+ hidden: "hidden";
949
+ }>>;
950
+ budgets: z.ZodDefault<z.ZodArray<z.ZodObject<{
951
+ id: z.ZodString;
952
+ scope: z.ZodEnum<{
953
+ member: "member";
954
+ project: "project";
955
+ }>;
956
+ period: z.ZodEnum<{
957
+ lifetime: "lifetime";
958
+ day: "day";
959
+ }>;
960
+ limit: z.ZodNumber;
961
+ cost: z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
962
+ balance: z.ZodString;
963
+ }, z.core.$strict>]>;
964
+ }, z.core.$strict>>>;
806
965
  code: z.ZodString;
807
966
  provider: z.ZodEnum<{
808
967
  "fixture-pass": "fixture-pass";
@@ -869,6 +1028,11 @@ declare const questCatalogSchema: z.ZodObject<{
869
1028
  }, z.core.$strict>;
870
1029
  }, z.core.$strict>;
871
1030
  tier: z.ZodString;
1031
+ }, z.core.$strict>, z.ZodObject<{
1032
+ kind: z.ZodLiteral<"integration">;
1033
+ provider: z.ZodLiteral<"discord">;
1034
+ action: z.ZodLiteral<"grant-role">;
1035
+ roleId: z.ZodString;
872
1036
  }, z.core.$strict>]>>;
873
1037
  code: z.ZodString;
874
1038
  provider: z.ZodEnum<{
@@ -906,6 +1070,25 @@ declare const questCatalogSchema: z.ZodObject<{
906
1070
  };
907
1071
  integrations: "discord"[];
908
1072
  fields: Record<string, {
1073
+ kind: "datetime";
1074
+ default: string;
1075
+ label: string;
1076
+ description?: string | undefined;
1077
+ } | {
1078
+ kind: "resource";
1079
+ default: string;
1080
+ source: {
1081
+ provider: "discord";
1082
+ resource: "channel";
1083
+ types: ("text" | "announcement")[];
1084
+ } | {
1085
+ provider: "discord";
1086
+ resource: "role";
1087
+ assignable: boolean;
1088
+ };
1089
+ label: string;
1090
+ description?: string | undefined;
1091
+ } | {
909
1092
  kind: "quiz";
910
1093
  default: {
911
1094
  id: string;
@@ -975,6 +1158,11 @@ declare const questCatalogSchema: z.ZodObject<{
975
1158
  kind: "points";
976
1159
  balance: string;
977
1160
  amount: number;
1161
+ } | {
1162
+ kind: "integration";
1163
+ provider: "discord";
1164
+ action: "grant-role";
1165
+ roleId: string;
978
1166
  })[];
979
1167
  humanReview: boolean;
980
1168
  trigger: {
@@ -983,6 +1171,10 @@ declare const questCatalogSchema: z.ZodObject<{
983
1171
  actor?: "member" | "staff" | undefined;
984
1172
  } | {
985
1173
  kind: "automatic";
1174
+ observation?: {
1175
+ source: string;
1176
+ type: string;
1177
+ } | undefined;
986
1178
  };
987
1179
  requires: {
988
1180
  quest: string;
@@ -990,7 +1182,19 @@ declare const questCatalogSchema: z.ZodObject<{
990
1182
  }[];
991
1183
  completion: {
992
1184
  kind: "once";
1185
+ } | {
1186
+ kind: "keyed";
993
1187
  };
1188
+ visibility: "visible" | "hidden";
1189
+ budgets: {
1190
+ id: string;
1191
+ scope: "member" | "project";
1192
+ period: "lifetime" | "day";
1193
+ limit: number;
1194
+ cost: number | {
1195
+ balance: string;
1196
+ };
1197
+ }[];
994
1198
  code: string;
995
1199
  provider: "fixture-pass" | "fixture-fail" | "fixture-unclear" | "fixture-error" | "workers-ai";
996
1200
  id: string;
@@ -1047,6 +1251,11 @@ declare const questCatalogSchema: z.ZodObject<{
1047
1251
  kind: "points";
1048
1252
  balance: string;
1049
1253
  amount: number;
1254
+ } | {
1255
+ kind: "integration";
1256
+ provider: "discord";
1257
+ action: "grant-role";
1258
+ roleId: string;
1050
1259
  })[];
1051
1260
  code: string;
1052
1261
  provider: "fixture-pass" | "fixture-fail" | "fixture-unclear" | "fixture-error" | "workers-ai";
@@ -1119,6 +1328,28 @@ declare const catalogDeploymentPreviewSchema: z.ZodObject<{
1119
1328
  discord: "discord";
1120
1329
  }>>>;
1121
1330
  fields: z.ZodRecord<z.ZodString, z.ZodDiscriminatedUnion<[z.ZodObject<{
1331
+ kind: z.ZodLiteral<"datetime">;
1332
+ default: z.ZodPipe<z.ZodISODateTime, z.ZodTransform<string, string>>;
1333
+ label: z.ZodString;
1334
+ description: z.ZodOptional<z.ZodString>;
1335
+ }, z.core.$strict>, z.ZodObject<{
1336
+ kind: z.ZodLiteral<"resource">;
1337
+ default: z.ZodUnion<readonly [z.ZodLiteral<"">, z.ZodString]>;
1338
+ source: z.ZodUnion<readonly [z.ZodObject<{
1339
+ provider: z.ZodLiteral<"discord">;
1340
+ resource: z.ZodLiteral<"channel">;
1341
+ types: z.ZodArray<z.ZodEnum<{
1342
+ text: "text";
1343
+ announcement: "announcement";
1344
+ }>>;
1345
+ }, z.core.$strict>, z.ZodObject<{
1346
+ provider: z.ZodLiteral<"discord">;
1347
+ resource: z.ZodLiteral<"role">;
1348
+ assignable: z.ZodDefault<z.ZodBoolean>;
1349
+ }, z.core.$strict>]>;
1350
+ label: z.ZodString;
1351
+ description: z.ZodOptional<z.ZodString>;
1352
+ }, z.core.$strict>, z.ZodObject<{
1122
1353
  kind: z.ZodLiteral<"quiz">;
1123
1354
  default: z.ZodArray<z.ZodObject<{
1124
1355
  id: z.ZodString;
@@ -1188,6 +1419,11 @@ declare const catalogDeploymentPreviewSchema: z.ZodObject<{
1188
1419
  }, z.core.$strict>;
1189
1420
  }, z.core.$strict>;
1190
1421
  tier: z.ZodString;
1422
+ }, z.core.$strict>, z.ZodObject<{
1423
+ kind: z.ZodLiteral<"integration">;
1424
+ provider: z.ZodLiteral<"discord">;
1425
+ action: z.ZodLiteral<"grant-role">;
1426
+ roleId: z.ZodString;
1191
1427
  }, z.core.$strict>]>>;
1192
1428
  humanReview: z.ZodBoolean;
1193
1429
  trigger: z.ZodUnion<readonly [z.ZodObject<{
@@ -1203,14 +1439,39 @@ declare const catalogDeploymentPreviewSchema: z.ZodObject<{
1203
1439
  }>>;
1204
1440
  }, z.core.$strict>, z.ZodObject<{
1205
1441
  kind: z.ZodLiteral<"automatic">;
1442
+ observation: z.ZodOptional<z.ZodObject<{
1443
+ source: z.ZodString;
1444
+ type: z.ZodString;
1445
+ }, z.core.$strict>>;
1206
1446
  }, z.core.$strict>]>;
1207
1447
  requires: z.ZodDefault<z.ZodArray<z.ZodObject<{
1208
1448
  quest: z.ZodString;
1209
1449
  scope: z.ZodLiteral<"ever">;
1210
1450
  }, z.core.$strict>>>;
1211
- completion: z.ZodObject<{
1451
+ completion: z.ZodDiscriminatedUnion<[z.ZodObject<{
1212
1452
  kind: z.ZodLiteral<"once">;
1213
- }, z.core.$strict>;
1453
+ }, z.core.$strict>, z.ZodObject<{
1454
+ kind: z.ZodLiteral<"keyed">;
1455
+ }, z.core.$strict>], "kind">;
1456
+ visibility: z.ZodDefault<z.ZodEnum<{
1457
+ visible: "visible";
1458
+ hidden: "hidden";
1459
+ }>>;
1460
+ budgets: z.ZodDefault<z.ZodArray<z.ZodObject<{
1461
+ id: z.ZodString;
1462
+ scope: z.ZodEnum<{
1463
+ member: "member";
1464
+ project: "project";
1465
+ }>;
1466
+ period: z.ZodEnum<{
1467
+ lifetime: "lifetime";
1468
+ day: "day";
1469
+ }>;
1470
+ limit: z.ZodNumber;
1471
+ cost: z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
1472
+ balance: z.ZodString;
1473
+ }, z.core.$strict>]>;
1474
+ }, z.core.$strict>>>;
1214
1475
  }, z.core.$strict>;
1215
1476
  provider: z.ZodEnum<{
1216
1477
  "fixture-pass": "fixture-pass";
@@ -1312,6 +1573,10 @@ declare const questViewSchema: z.ZodObject<{
1312
1573
  }>>;
1313
1574
  }, z.core.$strict>, z.ZodObject<{
1314
1575
  kind: z.ZodLiteral<"automatic">;
1576
+ observation: z.ZodOptional<z.ZodObject<{
1577
+ source: z.ZodString;
1578
+ type: z.ZodString;
1579
+ }, z.core.$strict>>;
1315
1580
  }, z.core.$strict>]>;
1316
1581
  availability: z.ZodDiscriminatedUnion<[z.ZodObject<{
1317
1582
  kind: z.ZodLiteral<"available">;
@@ -1332,6 +1597,10 @@ declare const questViewSchema: z.ZodObject<{
1332
1597
  kind: z.ZodLiteral<"staff-required">;
1333
1598
  }, z.core.$strict>, z.ZodObject<{
1334
1599
  kind: z.ZodLiteral<"automatic">;
1600
+ observation: z.ZodOptional<z.ZodObject<{
1601
+ source: z.ZodString;
1602
+ type: z.ZodString;
1603
+ }, z.core.$strict>>;
1335
1604
  }, z.core.$strict>, z.ZodObject<{
1336
1605
  kind: z.ZodLiteral<"checking">;
1337
1606
  attempt: z.ZodString;
@@ -1343,6 +1612,16 @@ declare const questViewSchema: z.ZodObject<{
1343
1612
  attempt: z.ZodString;
1344
1613
  }, z.core.$strict>], "kind">;
1345
1614
  completed: z.ZodBoolean;
1615
+ completion: z.ZodDefault<z.ZodDiscriminatedUnion<[z.ZodObject<{
1616
+ kind: z.ZodLiteral<"once">;
1617
+ }, z.core.$strict>, z.ZodObject<{
1618
+ kind: z.ZodLiteral<"keyed">;
1619
+ }, z.core.$strict>], "kind">>;
1620
+ completionCount: z.ZodDefault<z.ZodNumber>;
1621
+ visibility: z.ZodDefault<z.ZodEnum<{
1622
+ visible: "visible";
1623
+ hidden: "hidden";
1624
+ }>>;
1346
1625
  missing: z.ZodArray<z.ZodObject<{
1347
1626
  quest: z.ZodString;
1348
1627
  title: z.ZodString;
@@ -1393,6 +1672,11 @@ declare const questViewSchema: z.ZodObject<{
1393
1672
  }, z.core.$strict>;
1394
1673
  }, z.core.$strict>;
1395
1674
  tier: z.ZodString;
1675
+ }, z.core.$strict>, z.ZodObject<{
1676
+ kind: z.ZodLiteral<"integration">;
1677
+ provider: z.ZodLiteral<"discord">;
1678
+ action: z.ZodLiteral<"grant-role">;
1679
+ roleId: z.ZodString;
1396
1680
  }, z.core.$strict>]>>>>;
1397
1681
  createdAt: z.ZodNumber;
1398
1682
  }, z.core.$strip>>;
@@ -1458,6 +1742,10 @@ declare const collectionViewSchema: z.ZodObject<{
1458
1742
  }>>;
1459
1743
  }, z.core.$strict>, z.ZodObject<{
1460
1744
  kind: z.ZodLiteral<"automatic">;
1745
+ observation: z.ZodOptional<z.ZodObject<{
1746
+ source: z.ZodString;
1747
+ type: z.ZodString;
1748
+ }, z.core.$strict>>;
1461
1749
  }, z.core.$strict>]>;
1462
1750
  availability: z.ZodDiscriminatedUnion<[z.ZodObject<{
1463
1751
  kind: z.ZodLiteral<"available">;
@@ -1478,6 +1766,10 @@ declare const collectionViewSchema: z.ZodObject<{
1478
1766
  kind: z.ZodLiteral<"staff-required">;
1479
1767
  }, z.core.$strict>, z.ZodObject<{
1480
1768
  kind: z.ZodLiteral<"automatic">;
1769
+ observation: z.ZodOptional<z.ZodObject<{
1770
+ source: z.ZodString;
1771
+ type: z.ZodString;
1772
+ }, z.core.$strict>>;
1481
1773
  }, z.core.$strict>, z.ZodObject<{
1482
1774
  kind: z.ZodLiteral<"checking">;
1483
1775
  attempt: z.ZodString;
@@ -1489,6 +1781,16 @@ declare const collectionViewSchema: z.ZodObject<{
1489
1781
  attempt: z.ZodString;
1490
1782
  }, z.core.$strict>], "kind">;
1491
1783
  completed: z.ZodBoolean;
1784
+ completion: z.ZodDefault<z.ZodDiscriminatedUnion<[z.ZodObject<{
1785
+ kind: z.ZodLiteral<"once">;
1786
+ }, z.core.$strict>, z.ZodObject<{
1787
+ kind: z.ZodLiteral<"keyed">;
1788
+ }, z.core.$strict>], "kind">>;
1789
+ completionCount: z.ZodDefault<z.ZodNumber>;
1790
+ visibility: z.ZodDefault<z.ZodEnum<{
1791
+ visible: "visible";
1792
+ hidden: "hidden";
1793
+ }>>;
1492
1794
  missing: z.ZodArray<z.ZodObject<{
1493
1795
  quest: z.ZodString;
1494
1796
  title: z.ZodString;
@@ -1539,6 +1841,11 @@ declare const collectionViewSchema: z.ZodObject<{
1539
1841
  }, z.core.$strict>;
1540
1842
  }, z.core.$strict>;
1541
1843
  tier: z.ZodString;
1844
+ }, z.core.$strict>, z.ZodObject<{
1845
+ kind: z.ZodLiteral<"integration">;
1846
+ provider: z.ZodLiteral<"discord">;
1847
+ action: z.ZodLiteral<"grant-role">;
1848
+ roleId: z.ZodString;
1542
1849
  }, z.core.$strict>]>>>>;
1543
1850
  createdAt: z.ZodNumber;
1544
1851
  }, z.core.$strip>>;
@@ -1604,6 +1911,10 @@ declare const questExperienceSchema: z.ZodObject<{
1604
1911
  }>>;
1605
1912
  }, z.core.$strict>, z.ZodObject<{
1606
1913
  kind: z.ZodLiteral<"automatic">;
1914
+ observation: z.ZodOptional<z.ZodObject<{
1915
+ source: z.ZodString;
1916
+ type: z.ZodString;
1917
+ }, z.core.$strict>>;
1607
1918
  }, z.core.$strict>]>;
1608
1919
  availability: z.ZodDiscriminatedUnion<[z.ZodObject<{
1609
1920
  kind: z.ZodLiteral<"available">;
@@ -1624,6 +1935,10 @@ declare const questExperienceSchema: z.ZodObject<{
1624
1935
  kind: z.ZodLiteral<"staff-required">;
1625
1936
  }, z.core.$strict>, z.ZodObject<{
1626
1937
  kind: z.ZodLiteral<"automatic">;
1938
+ observation: z.ZodOptional<z.ZodObject<{
1939
+ source: z.ZodString;
1940
+ type: z.ZodString;
1941
+ }, z.core.$strict>>;
1627
1942
  }, z.core.$strict>, z.ZodObject<{
1628
1943
  kind: z.ZodLiteral<"checking">;
1629
1944
  attempt: z.ZodString;
@@ -1635,6 +1950,16 @@ declare const questExperienceSchema: z.ZodObject<{
1635
1950
  attempt: z.ZodString;
1636
1951
  }, z.core.$strict>], "kind">;
1637
1952
  completed: z.ZodBoolean;
1953
+ completion: z.ZodDefault<z.ZodDiscriminatedUnion<[z.ZodObject<{
1954
+ kind: z.ZodLiteral<"once">;
1955
+ }, z.core.$strict>, z.ZodObject<{
1956
+ kind: z.ZodLiteral<"keyed">;
1957
+ }, z.core.$strict>], "kind">>;
1958
+ completionCount: z.ZodDefault<z.ZodNumber>;
1959
+ visibility: z.ZodDefault<z.ZodEnum<{
1960
+ visible: "visible";
1961
+ hidden: "hidden";
1962
+ }>>;
1638
1963
  missing: z.ZodArray<z.ZodObject<{
1639
1964
  quest: z.ZodString;
1640
1965
  title: z.ZodString;
@@ -1685,6 +2010,11 @@ declare const questExperienceSchema: z.ZodObject<{
1685
2010
  }, z.core.$strict>;
1686
2011
  }, z.core.$strict>;
1687
2012
  tier: z.ZodString;
2013
+ }, z.core.$strict>, z.ZodObject<{
2014
+ kind: z.ZodLiteral<"integration">;
2015
+ provider: z.ZodLiteral<"discord">;
2016
+ action: z.ZodLiteral<"grant-role">;
2017
+ roleId: z.ZodString;
1688
2018
  }, z.core.$strict>]>>>>;
1689
2019
  createdAt: z.ZodNumber;
1690
2020
  }, z.core.$strip>>;
@@ -1750,6 +2080,10 @@ declare const questExperienceSchema: z.ZodObject<{
1750
2080
  }>>;
1751
2081
  }, z.core.$strict>, z.ZodObject<{
1752
2082
  kind: z.ZodLiteral<"automatic">;
2083
+ observation: z.ZodOptional<z.ZodObject<{
2084
+ source: z.ZodString;
2085
+ type: z.ZodString;
2086
+ }, z.core.$strict>>;
1753
2087
  }, z.core.$strict>]>;
1754
2088
  availability: z.ZodDiscriminatedUnion<[z.ZodObject<{
1755
2089
  kind: z.ZodLiteral<"available">;
@@ -1770,6 +2104,10 @@ declare const questExperienceSchema: z.ZodObject<{
1770
2104
  kind: z.ZodLiteral<"staff-required">;
1771
2105
  }, z.core.$strict>, z.ZodObject<{
1772
2106
  kind: z.ZodLiteral<"automatic">;
2107
+ observation: z.ZodOptional<z.ZodObject<{
2108
+ source: z.ZodString;
2109
+ type: z.ZodString;
2110
+ }, z.core.$strict>>;
1773
2111
  }, z.core.$strict>, z.ZodObject<{
1774
2112
  kind: z.ZodLiteral<"checking">;
1775
2113
  attempt: z.ZodString;
@@ -1781,6 +2119,16 @@ declare const questExperienceSchema: z.ZodObject<{
1781
2119
  attempt: z.ZodString;
1782
2120
  }, z.core.$strict>], "kind">;
1783
2121
  completed: z.ZodBoolean;
2122
+ completion: z.ZodDefault<z.ZodDiscriminatedUnion<[z.ZodObject<{
2123
+ kind: z.ZodLiteral<"once">;
2124
+ }, z.core.$strict>, z.ZodObject<{
2125
+ kind: z.ZodLiteral<"keyed">;
2126
+ }, z.core.$strict>], "kind">>;
2127
+ completionCount: z.ZodDefault<z.ZodNumber>;
2128
+ visibility: z.ZodDefault<z.ZodEnum<{
2129
+ visible: "visible";
2130
+ hidden: "hidden";
2131
+ }>>;
1784
2132
  missing: z.ZodArray<z.ZodObject<{
1785
2133
  quest: z.ZodString;
1786
2134
  title: z.ZodString;
@@ -1831,6 +2179,11 @@ declare const questExperienceSchema: z.ZodObject<{
1831
2179
  }, z.core.$strict>;
1832
2180
  }, z.core.$strict>;
1833
2181
  tier: z.ZodString;
2182
+ }, z.core.$strict>, z.ZodObject<{
2183
+ kind: z.ZodLiteral<"integration">;
2184
+ provider: z.ZodLiteral<"discord">;
2185
+ action: z.ZodLiteral<"grant-role">;
2186
+ roleId: z.ZodString;
1834
2187
  }, z.core.$strict>]>>>>;
1835
2188
  createdAt: z.ZodNumber;
1836
2189
  }, z.core.$strip>>;
@@ -1954,6 +2307,28 @@ declare const questPublicationPreviewSchema: z.ZodObject<{
1954
2307
  discord: "discord";
1955
2308
  }>>>;
1956
2309
  fields: z.ZodRecord<z.ZodString, z.ZodDiscriminatedUnion<[z.ZodObject<{
2310
+ kind: z.ZodLiteral<"datetime">;
2311
+ default: z.ZodPipe<z.ZodISODateTime, z.ZodTransform<string, string>>;
2312
+ label: z.ZodString;
2313
+ description: z.ZodOptional<z.ZodString>;
2314
+ }, z.core.$strict>, z.ZodObject<{
2315
+ kind: z.ZodLiteral<"resource">;
2316
+ default: z.ZodUnion<readonly [z.ZodLiteral<"">, z.ZodString]>;
2317
+ source: z.ZodUnion<readonly [z.ZodObject<{
2318
+ provider: z.ZodLiteral<"discord">;
2319
+ resource: z.ZodLiteral<"channel">;
2320
+ types: z.ZodArray<z.ZodEnum<{
2321
+ text: "text";
2322
+ announcement: "announcement";
2323
+ }>>;
2324
+ }, z.core.$strict>, z.ZodObject<{
2325
+ provider: z.ZodLiteral<"discord">;
2326
+ resource: z.ZodLiteral<"role">;
2327
+ assignable: z.ZodDefault<z.ZodBoolean>;
2328
+ }, z.core.$strict>]>;
2329
+ label: z.ZodString;
2330
+ description: z.ZodOptional<z.ZodString>;
2331
+ }, z.core.$strict>, z.ZodObject<{
1957
2332
  kind: z.ZodLiteral<"quiz">;
1958
2333
  default: z.ZodArray<z.ZodObject<{
1959
2334
  id: z.ZodString;
@@ -2023,6 +2398,11 @@ declare const questPublicationPreviewSchema: z.ZodObject<{
2023
2398
  }, z.core.$strict>;
2024
2399
  }, z.core.$strict>;
2025
2400
  tier: z.ZodString;
2401
+ }, z.core.$strict>, z.ZodObject<{
2402
+ kind: z.ZodLiteral<"integration">;
2403
+ provider: z.ZodLiteral<"discord">;
2404
+ action: z.ZodLiteral<"grant-role">;
2405
+ roleId: z.ZodString;
2026
2406
  }, z.core.$strict>]>>;
2027
2407
  humanReview: z.ZodBoolean;
2028
2408
  trigger: z.ZodUnion<readonly [z.ZodObject<{
@@ -2038,14 +2418,39 @@ declare const questPublicationPreviewSchema: z.ZodObject<{
2038
2418
  }>>;
2039
2419
  }, z.core.$strict>, z.ZodObject<{
2040
2420
  kind: z.ZodLiteral<"automatic">;
2421
+ observation: z.ZodOptional<z.ZodObject<{
2422
+ source: z.ZodString;
2423
+ type: z.ZodString;
2424
+ }, z.core.$strict>>;
2041
2425
  }, z.core.$strict>]>;
2042
2426
  requires: z.ZodDefault<z.ZodArray<z.ZodObject<{
2043
2427
  quest: z.ZodString;
2044
2428
  scope: z.ZodLiteral<"ever">;
2045
2429
  }, z.core.$strict>>>;
2046
- completion: z.ZodObject<{
2430
+ completion: z.ZodDiscriminatedUnion<[z.ZodObject<{
2047
2431
  kind: z.ZodLiteral<"once">;
2048
- }, z.core.$strict>;
2432
+ }, z.core.$strict>, z.ZodObject<{
2433
+ kind: z.ZodLiteral<"keyed">;
2434
+ }, z.core.$strict>], "kind">;
2435
+ visibility: z.ZodDefault<z.ZodEnum<{
2436
+ visible: "visible";
2437
+ hidden: "hidden";
2438
+ }>>;
2439
+ budgets: z.ZodDefault<z.ZodArray<z.ZodObject<{
2440
+ id: z.ZodString;
2441
+ scope: z.ZodEnum<{
2442
+ member: "member";
2443
+ project: "project";
2444
+ }>;
2445
+ period: z.ZodEnum<{
2446
+ lifetime: "lifetime";
2447
+ day: "day";
2448
+ }>;
2449
+ limit: z.ZodNumber;
2450
+ cost: z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
2451
+ balance: z.ZodString;
2452
+ }, z.core.$strict>]>;
2453
+ }, z.core.$strict>>>;
2049
2454
  code: z.ZodString;
2050
2455
  provider: z.ZodEnum<{
2051
2456
  "fixture-pass": "fixture-pass";
@@ -2112,6 +2517,11 @@ declare const questPublicationPreviewSchema: z.ZodObject<{
2112
2517
  }, z.core.$strict>;
2113
2518
  }, z.core.$strict>;
2114
2519
  tier: z.ZodString;
2520
+ }, z.core.$strict>, z.ZodObject<{
2521
+ kind: z.ZodLiteral<"integration">;
2522
+ provider: z.ZodLiteral<"discord">;
2523
+ action: z.ZodLiteral<"grant-role">;
2524
+ roleId: z.ZodString;
2115
2525
  }, z.core.$strict>]>>;
2116
2526
  code: z.ZodString;
2117
2527
  provider: z.ZodEnum<{
@@ -2149,6 +2559,25 @@ declare const questPublicationPreviewSchema: z.ZodObject<{
2149
2559
  };
2150
2560
  integrations: "discord"[];
2151
2561
  fields: Record<string, {
2562
+ kind: "datetime";
2563
+ default: string;
2564
+ label: string;
2565
+ description?: string | undefined;
2566
+ } | {
2567
+ kind: "resource";
2568
+ default: string;
2569
+ source: {
2570
+ provider: "discord";
2571
+ resource: "channel";
2572
+ types: ("text" | "announcement")[];
2573
+ } | {
2574
+ provider: "discord";
2575
+ resource: "role";
2576
+ assignable: boolean;
2577
+ };
2578
+ label: string;
2579
+ description?: string | undefined;
2580
+ } | {
2152
2581
  kind: "quiz";
2153
2582
  default: {
2154
2583
  id: string;
@@ -2218,6 +2647,11 @@ declare const questPublicationPreviewSchema: z.ZodObject<{
2218
2647
  kind: "points";
2219
2648
  balance: string;
2220
2649
  amount: number;
2650
+ } | {
2651
+ kind: "integration";
2652
+ provider: "discord";
2653
+ action: "grant-role";
2654
+ roleId: string;
2221
2655
  })[];
2222
2656
  humanReview: boolean;
2223
2657
  trigger: {
@@ -2226,6 +2660,10 @@ declare const questPublicationPreviewSchema: z.ZodObject<{
2226
2660
  actor?: "member" | "staff" | undefined;
2227
2661
  } | {
2228
2662
  kind: "automatic";
2663
+ observation?: {
2664
+ source: string;
2665
+ type: string;
2666
+ } | undefined;
2229
2667
  };
2230
2668
  requires: {
2231
2669
  quest: string;
@@ -2233,7 +2671,19 @@ declare const questPublicationPreviewSchema: z.ZodObject<{
2233
2671
  }[];
2234
2672
  completion: {
2235
2673
  kind: "once";
2674
+ } | {
2675
+ kind: "keyed";
2236
2676
  };
2677
+ visibility: "visible" | "hidden";
2678
+ budgets: {
2679
+ id: string;
2680
+ scope: "member" | "project";
2681
+ period: "lifetime" | "day";
2682
+ limit: number;
2683
+ cost: number | {
2684
+ balance: string;
2685
+ };
2686
+ }[];
2237
2687
  code: string;
2238
2688
  provider: "fixture-pass" | "fixture-fail" | "fixture-unclear" | "fixture-error" | "workers-ai";
2239
2689
  id: string;
@@ -2290,6 +2740,11 @@ declare const questPublicationPreviewSchema: z.ZodObject<{
2290
2740
  kind: "points";
2291
2741
  balance: string;
2292
2742
  amount: number;
2743
+ } | {
2744
+ kind: "integration";
2745
+ provider: "discord";
2746
+ action: "grant-role";
2747
+ roleId: string;
2293
2748
  })[];
2294
2749
  code: string;
2295
2750
  provider: "fixture-pass" | "fixture-fail" | "fixture-unclear" | "fixture-error" | "workers-ai";
@@ -2334,6 +2789,48 @@ type QuestController = (ActiveController & {
2334
2789
  submit(): Promise<QuestActionResult>;
2335
2790
  });
2336
2791
 
2792
+ declare const rewardDeliverySchema: z.ZodObject<{
2793
+ id: z.ZodString;
2794
+ quest: z.ZodString;
2795
+ completion: z.ZodString;
2796
+ member: z.ZodString;
2797
+ provider: z.ZodLiteral<"discord">;
2798
+ action: z.ZodLiteral<"grant-role">;
2799
+ roleId: z.ZodString;
2800
+ status: z.ZodEnum<{
2801
+ pending: "pending";
2802
+ delivered: "delivered";
2803
+ }>;
2804
+ attempts: z.ZodNumber;
2805
+ nextAt: z.ZodNumber;
2806
+ lastError: z.ZodNullable<z.ZodString>;
2807
+ createdAt: z.ZodNumber;
2808
+ deliveredAt: z.ZodNullable<z.ZodNumber>;
2809
+ }, z.core.$strip>;
2810
+ declare const rewardDeliveriesSchema: z.ZodObject<{
2811
+ deliveries: z.ZodArray<z.ZodObject<{
2812
+ id: z.ZodString;
2813
+ quest: z.ZodString;
2814
+ completion: z.ZodString;
2815
+ member: z.ZodString;
2816
+ provider: z.ZodLiteral<"discord">;
2817
+ action: z.ZodLiteral<"grant-role">;
2818
+ roleId: z.ZodString;
2819
+ status: z.ZodEnum<{
2820
+ pending: "pending";
2821
+ delivered: "delivered";
2822
+ }>;
2823
+ attempts: z.ZodNumber;
2824
+ nextAt: z.ZodNumber;
2825
+ lastError: z.ZodNullable<z.ZodString>;
2826
+ createdAt: z.ZodNumber;
2827
+ deliveredAt: z.ZodNullable<z.ZodNumber>;
2828
+ }, z.core.$strip>>;
2829
+ }, z.core.$strip>;
2830
+
2831
+ /** An opaque prefixed resource ID with 131 bits of cryptographic randomness. */
2832
+ declare function resourceId(prefix: string): string;
2833
+
2337
2834
  declare const collectionCodeSchema: z.ZodString;
2338
2835
  declare const collectionPassSchema: z.ZodObject<{
2339
2836
  code: z.ZodString;
@@ -2874,6 +3371,28 @@ declare const deploymentPreviewSchema: z.ZodObject<{
2874
3371
  discord: "discord";
2875
3372
  }>>>;
2876
3373
  fields: z.ZodRecord<z.ZodString, z.ZodDiscriminatedUnion<[z.ZodObject<{
3374
+ kind: z.ZodLiteral<"datetime">;
3375
+ default: z.ZodPipe<z.ZodISODateTime, z.ZodTransform<string, string>>;
3376
+ label: z.ZodString;
3377
+ description: z.ZodOptional<z.ZodString>;
3378
+ }, z.core.$strict>, z.ZodObject<{
3379
+ kind: z.ZodLiteral<"resource">;
3380
+ default: z.ZodUnion<readonly [z.ZodLiteral<"">, z.ZodString]>;
3381
+ source: z.ZodUnion<readonly [z.ZodObject<{
3382
+ provider: z.ZodLiteral<"discord">;
3383
+ resource: z.ZodLiteral<"channel">;
3384
+ types: z.ZodArray<z.ZodEnum<{
3385
+ text: "text";
3386
+ announcement: "announcement";
3387
+ }>>;
3388
+ }, z.core.$strict>, z.ZodObject<{
3389
+ provider: z.ZodLiteral<"discord">;
3390
+ resource: z.ZodLiteral<"role">;
3391
+ assignable: z.ZodDefault<z.ZodBoolean>;
3392
+ }, z.core.$strict>]>;
3393
+ label: z.ZodString;
3394
+ description: z.ZodOptional<z.ZodString>;
3395
+ }, z.core.$strict>, z.ZodObject<{
2877
3396
  kind: z.ZodLiteral<"quiz">;
2878
3397
  default: z.ZodArray<z.ZodObject<{
2879
3398
  id: z.ZodString;
@@ -2943,6 +3462,11 @@ declare const deploymentPreviewSchema: z.ZodObject<{
2943
3462
  }, z.core.$strict>;
2944
3463
  }, z.core.$strict>;
2945
3464
  tier: z.ZodString;
3465
+ }, z.core.$strict>, z.ZodObject<{
3466
+ kind: z.ZodLiteral<"integration">;
3467
+ provider: z.ZodLiteral<"discord">;
3468
+ action: z.ZodLiteral<"grant-role">;
3469
+ roleId: z.ZodString;
2946
3470
  }, z.core.$strict>]>>;
2947
3471
  humanReview: z.ZodBoolean;
2948
3472
  trigger: z.ZodUnion<readonly [z.ZodObject<{
@@ -2958,14 +3482,39 @@ declare const deploymentPreviewSchema: z.ZodObject<{
2958
3482
  }>>;
2959
3483
  }, z.core.$strict>, z.ZodObject<{
2960
3484
  kind: z.ZodLiteral<"automatic">;
3485
+ observation: z.ZodOptional<z.ZodObject<{
3486
+ source: z.ZodString;
3487
+ type: z.ZodString;
3488
+ }, z.core.$strict>>;
2961
3489
  }, z.core.$strict>]>;
2962
3490
  requires: z.ZodDefault<z.ZodArray<z.ZodObject<{
2963
3491
  quest: z.ZodString;
2964
3492
  scope: z.ZodLiteral<"ever">;
2965
3493
  }, z.core.$strict>>>;
2966
- completion: z.ZodObject<{
3494
+ completion: z.ZodDiscriminatedUnion<[z.ZodObject<{
2967
3495
  kind: z.ZodLiteral<"once">;
2968
- }, z.core.$strict>;
3496
+ }, z.core.$strict>, z.ZodObject<{
3497
+ kind: z.ZodLiteral<"keyed">;
3498
+ }, z.core.$strict>], "kind">;
3499
+ visibility: z.ZodDefault<z.ZodEnum<{
3500
+ visible: "visible";
3501
+ hidden: "hidden";
3502
+ }>>;
3503
+ budgets: z.ZodDefault<z.ZodArray<z.ZodObject<{
3504
+ id: z.ZodString;
3505
+ scope: z.ZodEnum<{
3506
+ member: "member";
3507
+ project: "project";
3508
+ }>;
3509
+ period: z.ZodEnum<{
3510
+ lifetime: "lifetime";
3511
+ day: "day";
3512
+ }>;
3513
+ limit: z.ZodNumber;
3514
+ cost: z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
3515
+ balance: z.ZodString;
3516
+ }, z.core.$strict>]>;
3517
+ }, z.core.$strict>>>;
2969
3518
  code: z.ZodString;
2970
3519
  provider: z.ZodEnum<{
2971
3520
  "fixture-pass": "fixture-pass";
@@ -3032,6 +3581,11 @@ declare const deploymentPreviewSchema: z.ZodObject<{
3032
3581
  }, z.core.$strict>;
3033
3582
  }, z.core.$strict>;
3034
3583
  tier: z.ZodString;
3584
+ }, z.core.$strict>, z.ZodObject<{
3585
+ kind: z.ZodLiteral<"integration">;
3586
+ provider: z.ZodLiteral<"discord">;
3587
+ action: z.ZodLiteral<"grant-role">;
3588
+ roleId: z.ZodString;
3035
3589
  }, z.core.$strict>]>>;
3036
3590
  code: z.ZodString;
3037
3591
  provider: z.ZodEnum<{
@@ -3069,6 +3623,25 @@ declare const deploymentPreviewSchema: z.ZodObject<{
3069
3623
  };
3070
3624
  integrations: "discord"[];
3071
3625
  fields: Record<string, {
3626
+ kind: "datetime";
3627
+ default: string;
3628
+ label: string;
3629
+ description?: string | undefined;
3630
+ } | {
3631
+ kind: "resource";
3632
+ default: string;
3633
+ source: {
3634
+ provider: "discord";
3635
+ resource: "channel";
3636
+ types: ("text" | "announcement")[];
3637
+ } | {
3638
+ provider: "discord";
3639
+ resource: "role";
3640
+ assignable: boolean;
3641
+ };
3642
+ label: string;
3643
+ description?: string | undefined;
3644
+ } | {
3072
3645
  kind: "quiz";
3073
3646
  default: {
3074
3647
  id: string;
@@ -3138,6 +3711,11 @@ declare const deploymentPreviewSchema: z.ZodObject<{
3138
3711
  kind: "points";
3139
3712
  balance: string;
3140
3713
  amount: number;
3714
+ } | {
3715
+ kind: "integration";
3716
+ provider: "discord";
3717
+ action: "grant-role";
3718
+ roleId: string;
3141
3719
  })[];
3142
3720
  humanReview: boolean;
3143
3721
  trigger: {
@@ -3146,6 +3724,10 @@ declare const deploymentPreviewSchema: z.ZodObject<{
3146
3724
  actor?: "member" | "staff" | undefined;
3147
3725
  } | {
3148
3726
  kind: "automatic";
3727
+ observation?: {
3728
+ source: string;
3729
+ type: string;
3730
+ } | undefined;
3149
3731
  };
3150
3732
  requires: {
3151
3733
  quest: string;
@@ -3153,7 +3735,19 @@ declare const deploymentPreviewSchema: z.ZodObject<{
3153
3735
  }[];
3154
3736
  completion: {
3155
3737
  kind: "once";
3738
+ } | {
3739
+ kind: "keyed";
3156
3740
  };
3741
+ visibility: "visible" | "hidden";
3742
+ budgets: {
3743
+ id: string;
3744
+ scope: "member" | "project";
3745
+ period: "lifetime" | "day";
3746
+ limit: number;
3747
+ cost: number | {
3748
+ balance: string;
3749
+ };
3750
+ }[];
3157
3751
  code: string;
3158
3752
  provider: "fixture-pass" | "fixture-fail" | "fixture-unclear" | "fixture-error" | "workers-ai";
3159
3753
  id: string;
@@ -3210,6 +3804,11 @@ declare const deploymentPreviewSchema: z.ZodObject<{
3210
3804
  kind: "points";
3211
3805
  balance: string;
3212
3806
  amount: number;
3807
+ } | {
3808
+ kind: "integration";
3809
+ provider: "discord";
3810
+ action: "grant-role";
3811
+ roleId: string;
3213
3812
  })[];
3214
3813
  code: string;
3215
3814
  provider: "fixture-pass" | "fixture-fail" | "fixture-unclear" | "fixture-error" | "workers-ai";
@@ -3248,6 +3847,28 @@ declare const deploymentPreviewSchema: z.ZodObject<{
3248
3847
  discord: "discord";
3249
3848
  }>>>;
3250
3849
  fields: z.ZodRecord<z.ZodString, z.ZodDiscriminatedUnion<[z.ZodObject<{
3850
+ kind: z.ZodLiteral<"datetime">;
3851
+ default: z.ZodPipe<z.ZodISODateTime, z.ZodTransform<string, string>>;
3852
+ label: z.ZodString;
3853
+ description: z.ZodOptional<z.ZodString>;
3854
+ }, z.core.$strict>, z.ZodObject<{
3855
+ kind: z.ZodLiteral<"resource">;
3856
+ default: z.ZodUnion<readonly [z.ZodLiteral<"">, z.ZodString]>;
3857
+ source: z.ZodUnion<readonly [z.ZodObject<{
3858
+ provider: z.ZodLiteral<"discord">;
3859
+ resource: z.ZodLiteral<"channel">;
3860
+ types: z.ZodArray<z.ZodEnum<{
3861
+ text: "text";
3862
+ announcement: "announcement";
3863
+ }>>;
3864
+ }, z.core.$strict>, z.ZodObject<{
3865
+ provider: z.ZodLiteral<"discord">;
3866
+ resource: z.ZodLiteral<"role">;
3867
+ assignable: z.ZodDefault<z.ZodBoolean>;
3868
+ }, z.core.$strict>]>;
3869
+ label: z.ZodString;
3870
+ description: z.ZodOptional<z.ZodString>;
3871
+ }, z.core.$strict>, z.ZodObject<{
3251
3872
  kind: z.ZodLiteral<"quiz">;
3252
3873
  default: z.ZodArray<z.ZodObject<{
3253
3874
  id: z.ZodString;
@@ -3317,6 +3938,11 @@ declare const deploymentPreviewSchema: z.ZodObject<{
3317
3938
  }, z.core.$strict>;
3318
3939
  }, z.core.$strict>;
3319
3940
  tier: z.ZodString;
3941
+ }, z.core.$strict>, z.ZodObject<{
3942
+ kind: z.ZodLiteral<"integration">;
3943
+ provider: z.ZodLiteral<"discord">;
3944
+ action: z.ZodLiteral<"grant-role">;
3945
+ roleId: z.ZodString;
3320
3946
  }, z.core.$strict>]>>;
3321
3947
  humanReview: z.ZodBoolean;
3322
3948
  trigger: z.ZodUnion<readonly [z.ZodObject<{
@@ -3332,14 +3958,39 @@ declare const deploymentPreviewSchema: z.ZodObject<{
3332
3958
  }>>;
3333
3959
  }, z.core.$strict>, z.ZodObject<{
3334
3960
  kind: z.ZodLiteral<"automatic">;
3961
+ observation: z.ZodOptional<z.ZodObject<{
3962
+ source: z.ZodString;
3963
+ type: z.ZodString;
3964
+ }, z.core.$strict>>;
3335
3965
  }, z.core.$strict>]>;
3336
3966
  requires: z.ZodDefault<z.ZodArray<z.ZodObject<{
3337
3967
  quest: z.ZodString;
3338
3968
  scope: z.ZodLiteral<"ever">;
3339
3969
  }, z.core.$strict>>>;
3340
- completion: z.ZodObject<{
3970
+ completion: z.ZodDiscriminatedUnion<[z.ZodObject<{
3341
3971
  kind: z.ZodLiteral<"once">;
3342
- }, z.core.$strict>;
3972
+ }, z.core.$strict>, z.ZodObject<{
3973
+ kind: z.ZodLiteral<"keyed">;
3974
+ }, z.core.$strict>], "kind">;
3975
+ visibility: z.ZodDefault<z.ZodEnum<{
3976
+ visible: "visible";
3977
+ hidden: "hidden";
3978
+ }>>;
3979
+ budgets: z.ZodDefault<z.ZodArray<z.ZodObject<{
3980
+ id: z.ZodString;
3981
+ scope: z.ZodEnum<{
3982
+ member: "member";
3983
+ project: "project";
3984
+ }>;
3985
+ period: z.ZodEnum<{
3986
+ lifetime: "lifetime";
3987
+ day: "day";
3988
+ }>;
3989
+ limit: z.ZodNumber;
3990
+ cost: z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
3991
+ balance: z.ZodString;
3992
+ }, z.core.$strict>]>;
3993
+ }, z.core.$strict>>>;
3343
3994
  }, z.core.$strict>;
3344
3995
  provider: z.ZodEnum<{
3345
3996
  "fixture-pass": "fixture-pass";
@@ -3636,6 +4287,28 @@ declare const deploymentResultSchema: z.ZodObject<{
3636
4287
  discord: "discord";
3637
4288
  }>>>;
3638
4289
  fields: z.ZodRecord<z.ZodString, z.ZodDiscriminatedUnion<[z.ZodObject<{
4290
+ kind: z.ZodLiteral<"datetime">;
4291
+ default: z.ZodPipe<z.ZodISODateTime, z.ZodTransform<string, string>>;
4292
+ label: z.ZodString;
4293
+ description: z.ZodOptional<z.ZodString>;
4294
+ }, z.core.$strict>, z.ZodObject<{
4295
+ kind: z.ZodLiteral<"resource">;
4296
+ default: z.ZodUnion<readonly [z.ZodLiteral<"">, z.ZodString]>;
4297
+ source: z.ZodUnion<readonly [z.ZodObject<{
4298
+ provider: z.ZodLiteral<"discord">;
4299
+ resource: z.ZodLiteral<"channel">;
4300
+ types: z.ZodArray<z.ZodEnum<{
4301
+ text: "text";
4302
+ announcement: "announcement";
4303
+ }>>;
4304
+ }, z.core.$strict>, z.ZodObject<{
4305
+ provider: z.ZodLiteral<"discord">;
4306
+ resource: z.ZodLiteral<"role">;
4307
+ assignable: z.ZodDefault<z.ZodBoolean>;
4308
+ }, z.core.$strict>]>;
4309
+ label: z.ZodString;
4310
+ description: z.ZodOptional<z.ZodString>;
4311
+ }, z.core.$strict>, z.ZodObject<{
3639
4312
  kind: z.ZodLiteral<"quiz">;
3640
4313
  default: z.ZodArray<z.ZodObject<{
3641
4314
  id: z.ZodString;
@@ -3705,6 +4378,11 @@ declare const deploymentResultSchema: z.ZodObject<{
3705
4378
  }, z.core.$strict>;
3706
4379
  }, z.core.$strict>;
3707
4380
  tier: z.ZodString;
4381
+ }, z.core.$strict>, z.ZodObject<{
4382
+ kind: z.ZodLiteral<"integration">;
4383
+ provider: z.ZodLiteral<"discord">;
4384
+ action: z.ZodLiteral<"grant-role">;
4385
+ roleId: z.ZodString;
3708
4386
  }, z.core.$strict>]>>;
3709
4387
  humanReview: z.ZodBoolean;
3710
4388
  trigger: z.ZodUnion<readonly [z.ZodObject<{
@@ -3720,14 +4398,39 @@ declare const deploymentResultSchema: z.ZodObject<{
3720
4398
  }>>;
3721
4399
  }, z.core.$strict>, z.ZodObject<{
3722
4400
  kind: z.ZodLiteral<"automatic">;
4401
+ observation: z.ZodOptional<z.ZodObject<{
4402
+ source: z.ZodString;
4403
+ type: z.ZodString;
4404
+ }, z.core.$strict>>;
3723
4405
  }, z.core.$strict>]>;
3724
4406
  requires: z.ZodDefault<z.ZodArray<z.ZodObject<{
3725
4407
  quest: z.ZodString;
3726
4408
  scope: z.ZodLiteral<"ever">;
3727
4409
  }, z.core.$strict>>>;
3728
- completion: z.ZodObject<{
4410
+ completion: z.ZodDiscriminatedUnion<[z.ZodObject<{
3729
4411
  kind: z.ZodLiteral<"once">;
3730
- }, z.core.$strict>;
4412
+ }, z.core.$strict>, z.ZodObject<{
4413
+ kind: z.ZodLiteral<"keyed">;
4414
+ }, z.core.$strict>], "kind">;
4415
+ visibility: z.ZodDefault<z.ZodEnum<{
4416
+ visible: "visible";
4417
+ hidden: "hidden";
4418
+ }>>;
4419
+ budgets: z.ZodDefault<z.ZodArray<z.ZodObject<{
4420
+ id: z.ZodString;
4421
+ scope: z.ZodEnum<{
4422
+ member: "member";
4423
+ project: "project";
4424
+ }>;
4425
+ period: z.ZodEnum<{
4426
+ lifetime: "lifetime";
4427
+ day: "day";
4428
+ }>;
4429
+ limit: z.ZodNumber;
4430
+ cost: z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
4431
+ balance: z.ZodString;
4432
+ }, z.core.$strict>]>;
4433
+ }, z.core.$strict>>>;
3731
4434
  code: z.ZodString;
3732
4435
  provider: z.ZodEnum<{
3733
4436
  "fixture-pass": "fixture-pass";
@@ -3794,6 +4497,11 @@ declare const deploymentResultSchema: z.ZodObject<{
3794
4497
  }, z.core.$strict>;
3795
4498
  }, z.core.$strict>;
3796
4499
  tier: z.ZodString;
4500
+ }, z.core.$strict>, z.ZodObject<{
4501
+ kind: z.ZodLiteral<"integration">;
4502
+ provider: z.ZodLiteral<"discord">;
4503
+ action: z.ZodLiteral<"grant-role">;
4504
+ roleId: z.ZodString;
3797
4505
  }, z.core.$strict>]>>;
3798
4506
  code: z.ZodString;
3799
4507
  provider: z.ZodEnum<{
@@ -3831,6 +4539,25 @@ declare const deploymentResultSchema: z.ZodObject<{
3831
4539
  };
3832
4540
  integrations: "discord"[];
3833
4541
  fields: Record<string, {
4542
+ kind: "datetime";
4543
+ default: string;
4544
+ label: string;
4545
+ description?: string | undefined;
4546
+ } | {
4547
+ kind: "resource";
4548
+ default: string;
4549
+ source: {
4550
+ provider: "discord";
4551
+ resource: "channel";
4552
+ types: ("text" | "announcement")[];
4553
+ } | {
4554
+ provider: "discord";
4555
+ resource: "role";
4556
+ assignable: boolean;
4557
+ };
4558
+ label: string;
4559
+ description?: string | undefined;
4560
+ } | {
3834
4561
  kind: "quiz";
3835
4562
  default: {
3836
4563
  id: string;
@@ -3900,6 +4627,11 @@ declare const deploymentResultSchema: z.ZodObject<{
3900
4627
  kind: "points";
3901
4628
  balance: string;
3902
4629
  amount: number;
4630
+ } | {
4631
+ kind: "integration";
4632
+ provider: "discord";
4633
+ action: "grant-role";
4634
+ roleId: string;
3903
4635
  })[];
3904
4636
  humanReview: boolean;
3905
4637
  trigger: {
@@ -3908,6 +4640,10 @@ declare const deploymentResultSchema: z.ZodObject<{
3908
4640
  actor?: "member" | "staff" | undefined;
3909
4641
  } | {
3910
4642
  kind: "automatic";
4643
+ observation?: {
4644
+ source: string;
4645
+ type: string;
4646
+ } | undefined;
3911
4647
  };
3912
4648
  requires: {
3913
4649
  quest: string;
@@ -3915,7 +4651,19 @@ declare const deploymentResultSchema: z.ZodObject<{
3915
4651
  }[];
3916
4652
  completion: {
3917
4653
  kind: "once";
4654
+ } | {
4655
+ kind: "keyed";
3918
4656
  };
4657
+ visibility: "visible" | "hidden";
4658
+ budgets: {
4659
+ id: string;
4660
+ scope: "member" | "project";
4661
+ period: "lifetime" | "day";
4662
+ limit: number;
4663
+ cost: number | {
4664
+ balance: string;
4665
+ };
4666
+ }[];
3919
4667
  code: string;
3920
4668
  provider: "fixture-pass" | "fixture-fail" | "fixture-unclear" | "fixture-error" | "workers-ai";
3921
4669
  id: string;
@@ -3972,6 +4720,11 @@ declare const deploymentResultSchema: z.ZodObject<{
3972
4720
  kind: "points";
3973
4721
  balance: string;
3974
4722
  amount: number;
4723
+ } | {
4724
+ kind: "integration";
4725
+ provider: "discord";
4726
+ action: "grant-role";
4727
+ roleId: string;
3975
4728
  })[];
3976
4729
  code: string;
3977
4730
  provider: "fixture-pass" | "fixture-fail" | "fixture-unclear" | "fixture-error" | "workers-ai";
@@ -4010,6 +4763,28 @@ declare const deploymentResultSchema: z.ZodObject<{
4010
4763
  discord: "discord";
4011
4764
  }>>>;
4012
4765
  fields: z.ZodRecord<z.ZodString, z.ZodDiscriminatedUnion<[z.ZodObject<{
4766
+ kind: z.ZodLiteral<"datetime">;
4767
+ default: z.ZodPipe<z.ZodISODateTime, z.ZodTransform<string, string>>;
4768
+ label: z.ZodString;
4769
+ description: z.ZodOptional<z.ZodString>;
4770
+ }, z.core.$strict>, z.ZodObject<{
4771
+ kind: z.ZodLiteral<"resource">;
4772
+ default: z.ZodUnion<readonly [z.ZodLiteral<"">, z.ZodString]>;
4773
+ source: z.ZodUnion<readonly [z.ZodObject<{
4774
+ provider: z.ZodLiteral<"discord">;
4775
+ resource: z.ZodLiteral<"channel">;
4776
+ types: z.ZodArray<z.ZodEnum<{
4777
+ text: "text";
4778
+ announcement: "announcement";
4779
+ }>>;
4780
+ }, z.core.$strict>, z.ZodObject<{
4781
+ provider: z.ZodLiteral<"discord">;
4782
+ resource: z.ZodLiteral<"role">;
4783
+ assignable: z.ZodDefault<z.ZodBoolean>;
4784
+ }, z.core.$strict>]>;
4785
+ label: z.ZodString;
4786
+ description: z.ZodOptional<z.ZodString>;
4787
+ }, z.core.$strict>, z.ZodObject<{
4013
4788
  kind: z.ZodLiteral<"quiz">;
4014
4789
  default: z.ZodArray<z.ZodObject<{
4015
4790
  id: z.ZodString;
@@ -4079,6 +4854,11 @@ declare const deploymentResultSchema: z.ZodObject<{
4079
4854
  }, z.core.$strict>;
4080
4855
  }, z.core.$strict>;
4081
4856
  tier: z.ZodString;
4857
+ }, z.core.$strict>, z.ZodObject<{
4858
+ kind: z.ZodLiteral<"integration">;
4859
+ provider: z.ZodLiteral<"discord">;
4860
+ action: z.ZodLiteral<"grant-role">;
4861
+ roleId: z.ZodString;
4082
4862
  }, z.core.$strict>]>>;
4083
4863
  humanReview: z.ZodBoolean;
4084
4864
  trigger: z.ZodUnion<readonly [z.ZodObject<{
@@ -4094,14 +4874,39 @@ declare const deploymentResultSchema: z.ZodObject<{
4094
4874
  }>>;
4095
4875
  }, z.core.$strict>, z.ZodObject<{
4096
4876
  kind: z.ZodLiteral<"automatic">;
4877
+ observation: z.ZodOptional<z.ZodObject<{
4878
+ source: z.ZodString;
4879
+ type: z.ZodString;
4880
+ }, z.core.$strict>>;
4097
4881
  }, z.core.$strict>]>;
4098
4882
  requires: z.ZodDefault<z.ZodArray<z.ZodObject<{
4099
4883
  quest: z.ZodString;
4100
4884
  scope: z.ZodLiteral<"ever">;
4101
4885
  }, z.core.$strict>>>;
4102
- completion: z.ZodObject<{
4886
+ completion: z.ZodDiscriminatedUnion<[z.ZodObject<{
4103
4887
  kind: z.ZodLiteral<"once">;
4104
- }, z.core.$strict>;
4888
+ }, z.core.$strict>, z.ZodObject<{
4889
+ kind: z.ZodLiteral<"keyed">;
4890
+ }, z.core.$strict>], "kind">;
4891
+ visibility: z.ZodDefault<z.ZodEnum<{
4892
+ visible: "visible";
4893
+ hidden: "hidden";
4894
+ }>>;
4895
+ budgets: z.ZodDefault<z.ZodArray<z.ZodObject<{
4896
+ id: z.ZodString;
4897
+ scope: z.ZodEnum<{
4898
+ member: "member";
4899
+ project: "project";
4900
+ }>;
4901
+ period: z.ZodEnum<{
4902
+ lifetime: "lifetime";
4903
+ day: "day";
4904
+ }>;
4905
+ limit: z.ZodNumber;
4906
+ cost: z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
4907
+ balance: z.ZodString;
4908
+ }, z.core.$strict>]>;
4909
+ }, z.core.$strict>>>;
4105
4910
  }, z.core.$strict>;
4106
4911
  provider: z.ZodEnum<{
4107
4912
  "fixture-pass": "fixture-pass";
@@ -4747,6 +5552,10 @@ declare function createRelayClient(options: {
4747
5552
  actor?: "member" | "staff" | undefined;
4748
5553
  } | {
4749
5554
  kind: "automatic";
5555
+ observation?: {
5556
+ source: string;
5557
+ type: string;
5558
+ } | undefined;
4750
5559
  };
4751
5560
  availability: {
4752
5561
  kind: "available";
@@ -4763,6 +5572,10 @@ declare function createRelayClient(options: {
4763
5572
  kind: "staff-required";
4764
5573
  } | {
4765
5574
  kind: "automatic";
5575
+ observation?: {
5576
+ source: string;
5577
+ type: string;
5578
+ } | undefined;
4766
5579
  } | {
4767
5580
  kind: "checking";
4768
5581
  attempt: string;
@@ -4774,6 +5587,13 @@ declare function createRelayClient(options: {
4774
5587
  attempt: string;
4775
5588
  };
4776
5589
  completed: boolean;
5590
+ completion: {
5591
+ kind: "once";
5592
+ } | {
5593
+ kind: "keyed";
5594
+ };
5595
+ completionCount: number;
5596
+ visibility: "visible" | "hidden";
4777
5597
  missing: {
4778
5598
  quest: string;
4779
5599
  title: string;
@@ -4810,6 +5630,11 @@ declare function createRelayClient(options: {
4810
5630
  kind: "points";
4811
5631
  balance: string;
4812
5632
  amount: number;
5633
+ } | {
5634
+ kind: "integration";
5635
+ provider: "discord";
5636
+ action: "grant-role";
5637
+ roleId: string;
4813
5638
  })[] | null;
4814
5639
  createdAt: number;
4815
5640
  input?: {
@@ -4859,6 +5684,11 @@ declare function createRelayClient(options: {
4859
5684
  kind: "points";
4860
5685
  balance: string;
4861
5686
  amount: number;
5687
+ } | {
5688
+ kind: "integration";
5689
+ provider: "discord";
5690
+ action: "grant-role";
5691
+ roleId: string;
4862
5692
  })[] | null;
4863
5693
  createdAt: number;
4864
5694
  input?: {
@@ -4901,6 +5731,10 @@ declare function createRelayClient(options: {
4901
5731
  actor?: "member" | "staff" | undefined;
4902
5732
  } | {
4903
5733
  kind: "automatic";
5734
+ observation?: {
5735
+ source: string;
5736
+ type: string;
5737
+ } | undefined;
4904
5738
  };
4905
5739
  availability: {
4906
5740
  kind: "available";
@@ -4917,6 +5751,10 @@ declare function createRelayClient(options: {
4917
5751
  kind: "staff-required";
4918
5752
  } | {
4919
5753
  kind: "automatic";
5754
+ observation?: {
5755
+ source: string;
5756
+ type: string;
5757
+ } | undefined;
4920
5758
  } | {
4921
5759
  kind: "checking";
4922
5760
  attempt: string;
@@ -4928,6 +5766,13 @@ declare function createRelayClient(options: {
4928
5766
  attempt: string;
4929
5767
  };
4930
5768
  completed: boolean;
5769
+ completion: {
5770
+ kind: "once";
5771
+ } | {
5772
+ kind: "keyed";
5773
+ };
5774
+ completionCount: number;
5775
+ visibility: "visible" | "hidden";
4931
5776
  missing: {
4932
5777
  quest: string;
4933
5778
  title: string;
@@ -4964,6 +5809,11 @@ declare function createRelayClient(options: {
4964
5809
  kind: "points";
4965
5810
  balance: string;
4966
5811
  amount: number;
5812
+ } | {
5813
+ kind: "integration";
5814
+ provider: "discord";
5815
+ action: "grant-role";
5816
+ roleId: string;
4967
5817
  })[] | null;
4968
5818
  createdAt: number;
4969
5819
  input?: {
@@ -5014,6 +5864,10 @@ declare function createRelayClient(options: {
5014
5864
  actor?: "member" | "staff" | undefined;
5015
5865
  } | {
5016
5866
  kind: "automatic";
5867
+ observation?: {
5868
+ source: string;
5869
+ type: string;
5870
+ } | undefined;
5017
5871
  };
5018
5872
  availability: {
5019
5873
  kind: "available";
@@ -5030,6 +5884,10 @@ declare function createRelayClient(options: {
5030
5884
  kind: "staff-required";
5031
5885
  } | {
5032
5886
  kind: "automatic";
5887
+ observation?: {
5888
+ source: string;
5889
+ type: string;
5890
+ } | undefined;
5033
5891
  } | {
5034
5892
  kind: "checking";
5035
5893
  attempt: string;
@@ -5041,6 +5899,13 @@ declare function createRelayClient(options: {
5041
5899
  attempt: string;
5042
5900
  };
5043
5901
  completed: boolean;
5902
+ completion: {
5903
+ kind: "once";
5904
+ } | {
5905
+ kind: "keyed";
5906
+ };
5907
+ completionCount: number;
5908
+ visibility: "visible" | "hidden";
5044
5909
  missing: {
5045
5910
  quest: string;
5046
5911
  title: string;
@@ -5077,6 +5942,11 @@ declare function createRelayClient(options: {
5077
5942
  kind: "points";
5078
5943
  balance: string;
5079
5944
  amount: number;
5945
+ } | {
5946
+ kind: "integration";
5947
+ provider: "discord";
5948
+ action: "grant-role";
5949
+ roleId: string;
5080
5950
  })[] | null;
5081
5951
  createdAt: number;
5082
5952
  input?: {
@@ -5129,6 +5999,10 @@ declare function createRelayClient(options: {
5129
5999
  actor?: "member" | "staff" | undefined;
5130
6000
  } | {
5131
6001
  kind: "automatic";
6002
+ observation?: {
6003
+ source: string;
6004
+ type: string;
6005
+ } | undefined;
5132
6006
  };
5133
6007
  availability: {
5134
6008
  kind: "available";
@@ -5145,6 +6019,10 @@ declare function createRelayClient(options: {
5145
6019
  kind: "staff-required";
5146
6020
  } | {
5147
6021
  kind: "automatic";
6022
+ observation?: {
6023
+ source: string;
6024
+ type: string;
6025
+ } | undefined;
5148
6026
  } | {
5149
6027
  kind: "checking";
5150
6028
  attempt: string;
@@ -5156,6 +6034,13 @@ declare function createRelayClient(options: {
5156
6034
  attempt: string;
5157
6035
  };
5158
6036
  completed: boolean;
6037
+ completion: {
6038
+ kind: "once";
6039
+ } | {
6040
+ kind: "keyed";
6041
+ };
6042
+ completionCount: number;
6043
+ visibility: "visible" | "hidden";
5159
6044
  missing: {
5160
6045
  quest: string;
5161
6046
  title: string;
@@ -5192,6 +6077,11 @@ declare function createRelayClient(options: {
5192
6077
  kind: "points";
5193
6078
  balance: string;
5194
6079
  amount: number;
6080
+ } | {
6081
+ kind: "integration";
6082
+ provider: "discord";
6083
+ action: "grant-role";
6084
+ roleId: string;
5195
6085
  })[] | null;
5196
6086
  createdAt: number;
5197
6087
  input?: {
@@ -5301,23 +6191,6 @@ declare function createRelayClient(options: {
5301
6191
  };
5302
6192
  expiresAt: number;
5303
6193
  } | null>;
5304
- demoSignIn: (code: string) => Promise<{
5305
- organization: string;
5306
- project: string;
5307
- environment: "test" | "live";
5308
- id: string;
5309
- principal: {
5310
- kind: "member";
5311
- member: string;
5312
- } | {
5313
- kind: "staff";
5314
- subject: string;
5315
- } | {
5316
- kind: "operator";
5317
- subject: string;
5318
- };
5319
- expiresAt: number;
5320
- }>;
5321
6194
  signOut: () => Promise<{
5322
6195
  ok: boolean;
5323
6196
  }>;
@@ -5353,16 +6226,19 @@ declare function createRelayClient(options: {
5353
6226
  input: "photo";
5354
6227
  release?: string;
5355
6228
  recoverPrevious?: boolean;
6229
+ repeatable?: boolean;
5356
6230
  }): Promise<PhotoSubmission>;
5357
6231
  (quest: string, options: {
5358
6232
  input: "quiz";
5359
6233
  release?: string;
5360
6234
  recoverPrevious?: boolean;
6235
+ repeatable?: boolean;
5361
6236
  }): Promise<QuizSubmission>;
5362
6237
  (quest: string, options: {
5363
6238
  input: "none";
5364
6239
  release?: string;
5365
6240
  recoverPrevious?: boolean;
6241
+ repeatable?: boolean;
5366
6242
  }): Promise<ClaimSubmission>;
5367
6243
  };
5368
6244
  collectionPass: (entitlement: string, session: string) => Promise<{
@@ -5402,6 +6278,11 @@ declare function createRelayClient(options: {
5402
6278
  kind: "points";
5403
6279
  balance: string;
5404
6280
  amount: number;
6281
+ } | {
6282
+ kind: "integration";
6283
+ provider: "discord";
6284
+ action: "grant-role";
6285
+ roleId: string;
5405
6286
  })[] | null;
5406
6287
  createdAt: number;
5407
6288
  input?: {
@@ -5444,6 +6325,10 @@ declare function createRelayClient(options: {
5444
6325
  actor?: "member" | "staff" | undefined;
5445
6326
  } | {
5446
6327
  kind: "automatic";
6328
+ observation?: {
6329
+ source: string;
6330
+ type: string;
6331
+ } | undefined;
5447
6332
  };
5448
6333
  availability: {
5449
6334
  kind: "available";
@@ -5460,6 +6345,10 @@ declare function createRelayClient(options: {
5460
6345
  kind: "staff-required";
5461
6346
  } | {
5462
6347
  kind: "automatic";
6348
+ observation?: {
6349
+ source: string;
6350
+ type: string;
6351
+ } | undefined;
5463
6352
  } | {
5464
6353
  kind: "checking";
5465
6354
  attempt: string;
@@ -5471,6 +6360,13 @@ declare function createRelayClient(options: {
5471
6360
  attempt: string;
5472
6361
  };
5473
6362
  completed: boolean;
6363
+ completion: {
6364
+ kind: "once";
6365
+ } | {
6366
+ kind: "keyed";
6367
+ };
6368
+ completionCount: number;
6369
+ visibility: "visible" | "hidden";
5474
6370
  missing: {
5475
6371
  quest: string;
5476
6372
  title: string;
@@ -5507,6 +6403,11 @@ declare function createRelayClient(options: {
5507
6403
  kind: "points";
5508
6404
  balance: string;
5509
6405
  amount: number;
6406
+ } | {
6407
+ kind: "integration";
6408
+ provider: "discord";
6409
+ action: "grant-role";
6410
+ roleId: string;
5510
6411
  })[] | null;
5511
6412
  createdAt: number;
5512
6413
  input?: {
@@ -5597,6 +6498,23 @@ declare function createRelayClient(options: {
5597
6498
  } | undefined;
5598
6499
  })[];
5599
6500
  }>;
6501
+ rewardDeliveries: () => Promise<{
6502
+ deliveries: {
6503
+ id: string;
6504
+ quest: string;
6505
+ completion: string;
6506
+ member: string;
6507
+ provider: "discord";
6508
+ action: "grant-role";
6509
+ roleId: string;
6510
+ status: "pending" | "delivered";
6511
+ attempts: number;
6512
+ nextAt: number;
6513
+ lastError: string | null;
6514
+ createdAt: number;
6515
+ deliveredAt: number | null;
6516
+ }[];
6517
+ }>;
5600
6518
  claim: (input: Omit<SubmitInput, "member">, options?: {
5601
6519
  session: string;
5602
6520
  }) => Promise<{
@@ -5631,6 +6549,11 @@ declare function createRelayClient(options: {
5631
6549
  kind: "points";
5632
6550
  balance: string;
5633
6551
  amount: number;
6552
+ } | {
6553
+ kind: "integration";
6554
+ provider: "discord";
6555
+ action: "grant-role";
6556
+ roleId: string;
5634
6557
  })[] | null;
5635
6558
  createdAt: number;
5636
6559
  input?: {
@@ -5685,6 +6608,11 @@ declare function createRelayClient(options: {
5685
6608
  kind: "points";
5686
6609
  balance: string;
5687
6610
  amount: number;
6611
+ } | {
6612
+ kind: "integration";
6613
+ provider: "discord";
6614
+ action: "grant-role";
6615
+ roleId: string;
5688
6616
  })[] | null;
5689
6617
  createdAt: number;
5690
6618
  input?: {
@@ -5753,6 +6681,25 @@ declare function createRelayClient(options: {
5753
6681
  };
5754
6682
  integrations: "discord"[];
5755
6683
  fields: Record<string, {
6684
+ kind: "datetime";
6685
+ default: string;
6686
+ label: string;
6687
+ description?: string | undefined;
6688
+ } | {
6689
+ kind: "resource";
6690
+ default: string;
6691
+ source: {
6692
+ provider: "discord";
6693
+ resource: "channel";
6694
+ types: ("text" | "announcement")[];
6695
+ } | {
6696
+ provider: "discord";
6697
+ resource: "role";
6698
+ assignable: boolean;
6699
+ };
6700
+ label: string;
6701
+ description?: string | undefined;
6702
+ } | {
5756
6703
  kind: "quiz";
5757
6704
  default: {
5758
6705
  id: string;
@@ -5822,6 +6769,11 @@ declare function createRelayClient(options: {
5822
6769
  kind: "points";
5823
6770
  balance: string;
5824
6771
  amount: number;
6772
+ } | {
6773
+ kind: "integration";
6774
+ provider: "discord";
6775
+ action: "grant-role";
6776
+ roleId: string;
5825
6777
  })[];
5826
6778
  humanReview: boolean;
5827
6779
  trigger: {
@@ -5830,6 +6782,10 @@ declare function createRelayClient(options: {
5830
6782
  actor?: "member" | "staff" | undefined;
5831
6783
  } | {
5832
6784
  kind: "automatic";
6785
+ observation?: {
6786
+ source: string;
6787
+ type: string;
6788
+ } | undefined;
5833
6789
  };
5834
6790
  requires: {
5835
6791
  quest: string;
@@ -5837,7 +6793,19 @@ declare function createRelayClient(options: {
5837
6793
  }[];
5838
6794
  completion: {
5839
6795
  kind: "once";
6796
+ } | {
6797
+ kind: "keyed";
5840
6798
  };
6799
+ visibility: "visible" | "hidden";
6800
+ budgets: {
6801
+ id: string;
6802
+ scope: "member" | "project";
6803
+ period: "lifetime" | "day";
6804
+ limit: number;
6805
+ cost: number | {
6806
+ balance: string;
6807
+ };
6808
+ }[];
5841
6809
  };
5842
6810
  }[]>;
5843
6811
  template: () => Promise<{
@@ -5868,6 +6836,25 @@ declare function createRelayClient(options: {
5868
6836
  };
5869
6837
  integrations: "discord"[];
5870
6838
  fields: Record<string, {
6839
+ kind: "datetime";
6840
+ default: string;
6841
+ label: string;
6842
+ description?: string | undefined;
6843
+ } | {
6844
+ kind: "resource";
6845
+ default: string;
6846
+ source: {
6847
+ provider: "discord";
6848
+ resource: "channel";
6849
+ types: ("text" | "announcement")[];
6850
+ } | {
6851
+ provider: "discord";
6852
+ resource: "role";
6853
+ assignable: boolean;
6854
+ };
6855
+ label: string;
6856
+ description?: string | undefined;
6857
+ } | {
5871
6858
  kind: "quiz";
5872
6859
  default: {
5873
6860
  id: string;
@@ -5937,6 +6924,11 @@ declare function createRelayClient(options: {
5937
6924
  kind: "points";
5938
6925
  balance: string;
5939
6926
  amount: number;
6927
+ } | {
6928
+ kind: "integration";
6929
+ provider: "discord";
6930
+ action: "grant-role";
6931
+ roleId: string;
5940
6932
  })[];
5941
6933
  humanReview: boolean;
5942
6934
  trigger: {
@@ -5945,6 +6937,10 @@ declare function createRelayClient(options: {
5945
6937
  actor?: "member" | "staff" | undefined;
5946
6938
  } | {
5947
6939
  kind: "automatic";
6940
+ observation?: {
6941
+ source: string;
6942
+ type: string;
6943
+ } | undefined;
5948
6944
  };
5949
6945
  requires: {
5950
6946
  quest: string;
@@ -5952,7 +6948,19 @@ declare function createRelayClient(options: {
5952
6948
  }[];
5953
6949
  completion: {
5954
6950
  kind: "once";
6951
+ } | {
6952
+ kind: "keyed";
5955
6953
  };
6954
+ visibility: "visible" | "hidden";
6955
+ budgets: {
6956
+ id: string;
6957
+ scope: "member" | "project";
6958
+ period: "lifetime" | "day";
6959
+ limit: number;
6960
+ cost: number | {
6961
+ balance: string;
6962
+ };
6963
+ }[];
5956
6964
  };
5957
6965
  }>;
5958
6966
  snapshot: () => Promise<{
@@ -5982,6 +6990,25 @@ declare function createRelayClient(options: {
5982
6990
  };
5983
6991
  integrations: "discord"[];
5984
6992
  fields: Record<string, {
6993
+ kind: "datetime";
6994
+ default: string;
6995
+ label: string;
6996
+ description?: string | undefined;
6997
+ } | {
6998
+ kind: "resource";
6999
+ default: string;
7000
+ source: {
7001
+ provider: "discord";
7002
+ resource: "channel";
7003
+ types: ("text" | "announcement")[];
7004
+ } | {
7005
+ provider: "discord";
7006
+ resource: "role";
7007
+ assignable: boolean;
7008
+ };
7009
+ label: string;
7010
+ description?: string | undefined;
7011
+ } | {
5985
7012
  kind: "quiz";
5986
7013
  default: {
5987
7014
  id: string;
@@ -6051,6 +7078,11 @@ declare function createRelayClient(options: {
6051
7078
  kind: "points";
6052
7079
  balance: string;
6053
7080
  amount: number;
7081
+ } | {
7082
+ kind: "integration";
7083
+ provider: "discord";
7084
+ action: "grant-role";
7085
+ roleId: string;
6054
7086
  })[];
6055
7087
  humanReview: boolean;
6056
7088
  trigger: {
@@ -6059,6 +7091,10 @@ declare function createRelayClient(options: {
6059
7091
  actor?: "member" | "staff" | undefined;
6060
7092
  } | {
6061
7093
  kind: "automatic";
7094
+ observation?: {
7095
+ source: string;
7096
+ type: string;
7097
+ } | undefined;
6062
7098
  };
6063
7099
  requires: {
6064
7100
  quest: string;
@@ -6066,7 +7102,19 @@ declare function createRelayClient(options: {
6066
7102
  }[];
6067
7103
  completion: {
6068
7104
  kind: "once";
7105
+ } | {
7106
+ kind: "keyed";
6069
7107
  };
7108
+ visibility: "visible" | "hidden";
7109
+ budgets: {
7110
+ id: string;
7111
+ scope: "member" | "project";
7112
+ period: "lifetime" | "day";
7113
+ limit: number;
7114
+ cost: number | {
7115
+ balance: string;
7116
+ };
7117
+ }[];
6070
7118
  code: string;
6071
7119
  provider: "fixture-pass" | "fixture-fail" | "fixture-unclear" | "fixture-error" | "workers-ai";
6072
7120
  id: string;
@@ -6099,6 +7147,7 @@ declare function createRelayClient(options: {
6099
7147
  } | undefined;
6100
7148
  }[];
6101
7149
  completions: {
7150
+ key: string;
6102
7151
  id: string;
6103
7152
  quest: string;
6104
7153
  member: string;
@@ -6212,6 +7261,11 @@ declare function createRelayClient(options: {
6212
7261
  kind: "points";
6213
7262
  balance: string;
6214
7263
  amount: number;
7264
+ } | {
7265
+ kind: "integration";
7266
+ provider: "discord";
7267
+ action: "grant-role";
7268
+ roleId: string;
6215
7269
  })[] | null;
6216
7270
  createdAt: number;
6217
7271
  input?: {
@@ -6264,6 +7318,25 @@ declare function createRelayClient(options: {
6264
7318
  };
6265
7319
  integrations: "discord"[];
6266
7320
  fields: Record<string, {
7321
+ kind: "datetime";
7322
+ default: string;
7323
+ label: string;
7324
+ description?: string | undefined;
7325
+ } | {
7326
+ kind: "resource";
7327
+ default: string;
7328
+ source: {
7329
+ provider: "discord";
7330
+ resource: "channel";
7331
+ types: ("text" | "announcement")[];
7332
+ } | {
7333
+ provider: "discord";
7334
+ resource: "role";
7335
+ assignable: boolean;
7336
+ };
7337
+ label: string;
7338
+ description?: string | undefined;
7339
+ } | {
6267
7340
  kind: "quiz";
6268
7341
  default: {
6269
7342
  id: string;
@@ -6333,6 +7406,11 @@ declare function createRelayClient(options: {
6333
7406
  kind: "points";
6334
7407
  balance: string;
6335
7408
  amount: number;
7409
+ } | {
7410
+ kind: "integration";
7411
+ provider: "discord";
7412
+ action: "grant-role";
7413
+ roleId: string;
6336
7414
  })[];
6337
7415
  humanReview: boolean;
6338
7416
  trigger: {
@@ -6341,6 +7419,10 @@ declare function createRelayClient(options: {
6341
7419
  actor?: "member" | "staff" | undefined;
6342
7420
  } | {
6343
7421
  kind: "automatic";
7422
+ observation?: {
7423
+ source: string;
7424
+ type: string;
7425
+ } | undefined;
6344
7426
  };
6345
7427
  requires: {
6346
7428
  quest: string;
@@ -6348,7 +7430,19 @@ declare function createRelayClient(options: {
6348
7430
  }[];
6349
7431
  completion: {
6350
7432
  kind: "once";
7433
+ } | {
7434
+ kind: "keyed";
6351
7435
  };
7436
+ visibility: "visible" | "hidden";
7437
+ budgets: {
7438
+ id: string;
7439
+ scope: "member" | "project";
7440
+ period: "lifetime" | "day";
7441
+ limit: number;
7442
+ cost: number | {
7443
+ balance: string;
7444
+ };
7445
+ }[];
6352
7446
  code: string;
6353
7447
  provider: "fixture-pass" | "fixture-fail" | "fixture-unclear" | "fixture-error" | "workers-ai";
6354
7448
  id: string;
@@ -6406,6 +7500,25 @@ declare function createRelayClient(options: {
6406
7500
  };
6407
7501
  integrations: "discord"[];
6408
7502
  fields: Record<string, {
7503
+ kind: "datetime";
7504
+ default: string;
7505
+ label: string;
7506
+ description?: string | undefined;
7507
+ } | {
7508
+ kind: "resource";
7509
+ default: string;
7510
+ source: {
7511
+ provider: "discord";
7512
+ resource: "channel";
7513
+ types: ("text" | "announcement")[];
7514
+ } | {
7515
+ provider: "discord";
7516
+ resource: "role";
7517
+ assignable: boolean;
7518
+ };
7519
+ label: string;
7520
+ description?: string | undefined;
7521
+ } | {
6409
7522
  kind: "quiz";
6410
7523
  default: {
6411
7524
  id: string;
@@ -6475,6 +7588,11 @@ declare function createRelayClient(options: {
6475
7588
  kind: "points";
6476
7589
  balance: string;
6477
7590
  amount: number;
7591
+ } | {
7592
+ kind: "integration";
7593
+ provider: "discord";
7594
+ action: "grant-role";
7595
+ roleId: string;
6478
7596
  })[];
6479
7597
  humanReview: boolean;
6480
7598
  trigger: {
@@ -6483,6 +7601,10 @@ declare function createRelayClient(options: {
6483
7601
  actor?: "member" | "staff" | undefined;
6484
7602
  } | {
6485
7603
  kind: "automatic";
7604
+ observation?: {
7605
+ source: string;
7606
+ type: string;
7607
+ } | undefined;
6486
7608
  };
6487
7609
  requires: {
6488
7610
  quest: string;
@@ -6490,7 +7612,19 @@ declare function createRelayClient(options: {
6490
7612
  }[];
6491
7613
  completion: {
6492
7614
  kind: "once";
7615
+ } | {
7616
+ kind: "keyed";
6493
7617
  };
7618
+ visibility: "visible" | "hidden";
7619
+ budgets: {
7620
+ id: string;
7621
+ scope: "member" | "project";
7622
+ period: "lifetime" | "day";
7623
+ limit: number;
7624
+ cost: number | {
7625
+ balance: string;
7626
+ };
7627
+ }[];
6494
7628
  code: string;
6495
7629
  provider: "fixture-pass" | "fixture-fail" | "fixture-unclear" | "fixture-error" | "workers-ai";
6496
7630
  id: string;
@@ -6554,6 +7688,10 @@ declare function createRelayClient(options: {
6554
7688
  actor?: "member" | "staff" | undefined;
6555
7689
  } | {
6556
7690
  kind: "automatic";
7691
+ observation?: {
7692
+ source: string;
7693
+ type: string;
7694
+ } | undefined;
6557
7695
  };
6558
7696
  availability: {
6559
7697
  kind: "available";
@@ -6570,6 +7708,10 @@ declare function createRelayClient(options: {
6570
7708
  kind: "staff-required";
6571
7709
  } | {
6572
7710
  kind: "automatic";
7711
+ observation?: {
7712
+ source: string;
7713
+ type: string;
7714
+ } | undefined;
6573
7715
  } | {
6574
7716
  kind: "checking";
6575
7717
  attempt: string;
@@ -6581,6 +7723,13 @@ declare function createRelayClient(options: {
6581
7723
  attempt: string;
6582
7724
  };
6583
7725
  completed: boolean;
7726
+ completion: {
7727
+ kind: "once";
7728
+ } | {
7729
+ kind: "keyed";
7730
+ };
7731
+ completionCount: number;
7732
+ visibility: "visible" | "hidden";
6584
7733
  missing: {
6585
7734
  quest: string;
6586
7735
  title: string;
@@ -6617,6 +7766,11 @@ declare function createRelayClient(options: {
6617
7766
  kind: "points";
6618
7767
  balance: string;
6619
7768
  amount: number;
7769
+ } | {
7770
+ kind: "integration";
7771
+ provider: "discord";
7772
+ action: "grant-role";
7773
+ roleId: string;
6620
7774
  })[] | null;
6621
7775
  createdAt: number;
6622
7776
  input?: {
@@ -6902,6 +8056,11 @@ declare function createRelayClient(options: {
6902
8056
  kind: "points";
6903
8057
  balance: string;
6904
8058
  amount: number;
8059
+ } | {
8060
+ kind: "integration";
8061
+ provider: "discord";
8062
+ action: "grant-role";
8063
+ roleId: string;
6905
8064
  })[] | null;
6906
8065
  createdAt: number;
6907
8066
  input?: {
@@ -6944,6 +8103,11 @@ declare function createRelayClient(options: {
6944
8103
  kind: "points";
6945
8104
  balance: string;
6946
8105
  amount: number;
8106
+ } | {
8107
+ kind: "integration";
8108
+ provider: "discord";
8109
+ action: "grant-role";
8110
+ roleId: string;
6947
8111
  })[] | null;
6948
8112
  createdAt: number;
6949
8113
  input?: {
@@ -6991,6 +8155,11 @@ declare function createRelayClient(options: {
6991
8155
  kind: "points";
6992
8156
  balance: string;
6993
8157
  amount: number;
8158
+ } | {
8159
+ kind: "integration";
8160
+ provider: "discord";
8161
+ action: "grant-role";
8162
+ roleId: string;
6994
8163
  })[] | null;
6995
8164
  createdAt: number;
6996
8165
  input?: {
@@ -7003,4 +8172,4 @@ declare function createRelayClient(options: {
7003
8172
  }>;
7004
8173
  };
7005
8174
 
7006
- export { Attempt, AuthProvider, type ClaimSubmission, type CollectionPass, type DeploymentPreview, type ExchangeInput, LeaderboardQuery, MemberListOptions, MemberProgress, type PhotoSubmission, type ProgressObservation, type ProgressObserver, PublishedRelease, type QuestActionResult, type QuestCatalog, type QuestController, type QuestDraft, type QuestInstance, type QuestInteraction, QuestUpdatedError, type QuestView, QuizEvidence, type QuizSubmission, RelayError, ReleaseInput, ReviewListOptions, type Session, type SubmissionDraft, type SubmissionStatus, type SubmissionStore, SubmitInput, authScopeSchema, beginHandoverSchema, catalogDeploymentPreviewSchema, catalogDeploymentSchema, collectionBeginSchema, collectionCodeSchema, collectionPassSchema, collectionPreviewSchema, collectionResolveSchema, collectionSlotSchema, collectionViewSchema, createRelayClient, deploymentPreviewSchema, deploymentResultSchema, errorSchema, exchangeResultSchema, exchangeSchema, identityIntegrationInputSchema, identityIntegrationSchema, identityIntegrationSecretSchema, interactionSchema, participantExchangeSchema, principalSchema, projectCatalogArtifactSchema, projectDeploymentSchema, publishDeploymentSchema, publishQuestDraftSchema, questActions, questCatalogSchema, questCollectionSchema, questConfiguration, questDescriptionSchema, questDraftChangesSchema, questDraftSchema, questExperienceSchema, questInstanceSchema, questInteraction, questPublicationPreviewSchema, questTypeVersionSchema, questViewSchema, reconcileQuestDraft, referralAcceptSchema, saveQuestDraftSchema, sessionSchema, walletChallengeInputSchema, walletProofSchema };
8175
+ export { Attempt, AuthProvider, type ClaimSubmission, type CollectionPass, type DeploymentPreview, type ExchangeInput, LeaderboardQuery, MemberListOptions, MemberProgress, type PhotoSubmission, type ProgressObservation, type ProgressObserver, PublishedRelease, type QuestActionResult, type QuestCatalog, type QuestController, type QuestDraft, type QuestInstance, type QuestInteraction, QuestUpdatedError, type QuestView, QuizEvidence, type QuizSubmission, RelayError, ReleaseInput, ReviewListOptions, type Session, type SubmissionDraft, type SubmissionStatus, type SubmissionStore, SubmitInput, authScopeSchema, beginHandoverSchema, catalogDeploymentPreviewSchema, catalogDeploymentSchema, collectionBeginSchema, collectionCodeSchema, collectionPassSchema, collectionPreviewSchema, collectionResolveSchema, collectionSlotSchema, collectionViewSchema, createRelayClient, deploymentPreviewSchema, deploymentResultSchema, errorSchema, exchangeResultSchema, exchangeSchema, identityIntegrationInputSchema, identityIntegrationSchema, identityIntegrationSecretSchema, interactionSchema, participantExchangeSchema, principalSchema, projectCatalogArtifactSchema, projectDeploymentSchema, publishDeploymentSchema, publishQuestDraftSchema, questActions, questCatalogSchema, questCollectionSchema, questConfiguration, questDescriptionSchema, questDraftChangesSchema, questDraftSchema, questExperienceSchema, questInstanceSchema, questInteraction, questPublicationPreviewSchema, questTypeVersionSchema, questViewSchema, reconcileQuestDraft, referralAcceptSchema, resourceId, rewardDeliveriesSchema, rewardDeliverySchema, saveQuestDraftSchema, sessionSchema, walletChallengeInputSchema, walletProofSchema };