@burdenoff/microfe-admin 2026.518.2 → 2026.520.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.
Files changed (39) hide show
  1. package/dist/admin/AdminRoot.d.ts.map +1 -1
  2. package/dist/admin/AdminRoot.js +54 -46
  3. package/dist/admin/AdminRoot.js.map +1 -1
  4. package/dist/admin/AdminRoutes.d.ts.map +1 -1
  5. package/dist/admin/AdminRoutes.js +22 -18
  6. package/dist/admin/AdminRoutes.js.map +1 -1
  7. package/dist/admin/components/ConfirmDialog.js +81 -4
  8. package/dist/admin/components/ConfirmDialog.js.map +1 -0
  9. package/dist/admin/components/TenantSsoPanel.d.ts +7 -0
  10. package/dist/admin/components/TenantSsoPanel.d.ts.map +1 -0
  11. package/dist/admin/components/TenantSsoPanel.js +286 -0
  12. package/dist/admin/components/TenantSsoPanel.js.map +1 -0
  13. package/dist/admin/constants/permissions.d.ts +2 -0
  14. package/dist/admin/constants/permissions.d.ts.map +1 -1
  15. package/dist/admin/constants/permissions.js +2 -0
  16. package/dist/admin/constants/permissions.js.map +1 -1
  17. package/dist/admin/hooks/useAdminPermissions.d.ts +2 -0
  18. package/dist/admin/hooks/useAdminPermissions.d.ts.map +1 -1
  19. package/dist/admin/hooks/useAdminPermissions.js +2 -0
  20. package/dist/admin/hooks/useAdminPermissions.js.map +1 -1
  21. package/dist/admin/pages/SyncFailuresPage.d.ts +14 -0
  22. package/dist/admin/pages/SyncFailuresPage.d.ts.map +1 -0
  23. package/dist/admin/pages/SyncFailuresPage.js +297 -0
  24. package/dist/admin/pages/SyncFailuresPage.js.map +1 -0
  25. package/dist/admin/pages/TenantDetailPage.d.ts.map +1 -1
  26. package/dist/admin/pages/TenantDetailPage.js +28 -23
  27. package/dist/admin/pages/TenantDetailPage.js.map +1 -1
  28. package/dist/admin/pages/index.d.ts +1 -0
  29. package/dist/admin/pages/index.d.ts.map +1 -1
  30. package/dist/admin/pages/index.js +1 -0
  31. package/dist/generated/global-operations.d.ts +252 -0
  32. package/dist/generated/global-operations.d.ts.map +1 -1
  33. package/dist/generated/global-operations.js +156 -34
  34. package/dist/generated/global-operations.js.map +1 -1
  35. package/dist/generated/global-types.d.ts +566 -1393
  36. package/dist/generated/global-types.d.ts.map +1 -1
  37. package/dist/generated/global-types.js +4 -2
  38. package/dist/generated/global-types.js.map +1 -1
  39. package/package.json +2 -2
@@ -249,22 +249,7 @@ export declare enum ActorType {
249
249
  /** Human user */
250
250
  User = "USER"
251
251
  }
252
- /**
253
- * Specific adapter/provider type for each ChannelPlatform.
254
- * ChannelPlatform = High-level category (EMAIL, SMS, PUSH, etc.)
255
- * AdapterType = Specific provider implementation
256
- *
257
- * Currently supported adapters (must match Prisma schema):
258
- * EMAIL: AWS_SES, AZURE_ACS
259
- * SMS: AWS_SNS, TWILIO_SMS
260
- * WHATSAPP: WHATSAPP_CLOUD, WHATSAPP_TWILIO
261
- * SLACK: SLACK_BOT
262
- * TEAMS: TEAMS_BOT
263
- * DISCORD: DISCORD_BOT
264
- * PUSH: FCM
265
- * INAPP: INAPP_NATIVE
266
- * WEBHOOK: WEBHOOK_HTTP
267
- */
252
+ /** Specific adapter/provider type for each ChannelPlatform. ChannelPlatform = High-level category (EMAIL, SMS, PUSH, etc.) AdapterType = Specific provider implementation Currently supported adapters (must match Prisma schema): EMAIL: AWS_SES, AZURE_ACS SMS: AWS_SNS, TWILIO_SMS WHATSAPP: WHATSAPP_CLOUD, WHATSAPP_TWILIO SLACK: SLACK_BOT TEAMS: TEAMS_BOT DISCORD: DISCORD_BOT PUSH: FCM INAPP: INAPP_NATIVE WEBHOOK: WEBHOOK_HTTP */
268
253
  export declare enum AdapterType {
269
254
  /** Amazon Simple Email Service */
270
255
  AwsSes = "AWS_SES",
@@ -389,19 +374,13 @@ export type Addon = {
389
374
  createdAt?: Maybe<Scalars['DateTime']['output']>;
390
375
  /** The currency in which the addon is priced. Defaults to 'USD'. */
391
376
  currency?: Maybe<Scalars['String']['output']>;
392
- /**
393
- * Prices for all supported currencies with beautiful rounding.
394
- * Example: { "USD": 2.00, "INR": 199, "EUR": 1.99, "GBP": 1.79 }
395
- */
377
+ /** Prices for all supported currencies with beautiful rounding. Example: { "USD": 2.00, "INR": 199, "EUR": 1.99, "GBP": 1.79 } */
396
378
  currencyPrices?: Maybe<Scalars['JSON']['output']>;
397
379
  /** The duration for which the addon is valid (e.g., monthly, yearly). Defaults to 'monthly'. */
398
380
  duration?: Maybe<PlanDuration>;
399
381
  /** A list of features provided by this addon, such as extra quotas or special services. */
400
382
  features?: Maybe<Array<Maybe<SubscriptionFeatures>>>;
401
- /**
402
- * Geography-specific price overrides. The billing account's country/state/region plus
403
- * currency decide whether one of these overrides applies.
404
- */
383
+ /** Geography-specific price overrides. The billing account's country/state/region plus currency decide whether one of these overrides applies. */
405
384
  geoPricingOverrides: Array<GeoPricingOverride>;
406
385
  /** The unique identifier for the Addon, automatically generated as a UUID. */
407
386
  id?: Maybe<Scalars['ID']['output']>;
@@ -418,10 +397,7 @@ export type Addon = {
418
397
  /** The timestamp when the addon was last updated. */
419
398
  updatedAt?: Maybe<Scalars['DateTime']['output']>;
420
399
  };
421
- /**
422
- * Tracks historical price changes for an Addon.
423
- * A new record is created whenever an addon's price is updated.
424
- */
400
+ /** Tracks historical price changes for an Addon. A new record is created whenever an addon's price is updated. */
425
401
  export type AddonPriceHistory = {
426
402
  __typename?: 'AddonPriceHistory';
427
403
  /** The addon this price change belongs to */
@@ -467,11 +443,7 @@ export type AddonSubscription = {
467
443
  updatedAt?: Maybe<Scalars['DateTime']['output']>;
468
444
  };
469
445
  export type AddonsFilter = {
470
- /**
471
- * Include free addons (price = 0) in the response.
472
- * Defaults to true. Set to false on user-facing browse pages
473
- * since free addons are auto-assigned and cannot be purchased.
474
- */
446
+ /** Include free addons (price = 0) in the response. Defaults to true. Set to false on user-facing browse pages since free addons are auto-assigned and cannot be purchased. */
475
447
  includeFree?: InputMaybe<Scalars['Boolean']['input']>;
476
448
  /** Filter addons by product ID. When set, only addons with this productID are returned. */
477
449
  productId?: InputMaybe<Scalars['String']['input']>;
@@ -690,11 +662,7 @@ export type AgentProfile = {
690
662
  createdAt: Scalars['DateTime']['output'];
691
663
  currentChats: Scalars['Int']['output'];
692
664
  currentTickets: Scalars['Int']['output'];
693
- /**
694
- * Anonymized display alias surfaced to end-users in support conversations.
695
- * Stable per agent (deterministic-on-first-use) so the same agent always shows
696
- * the same alias to a given user. Real userId / user are admin-only.
697
- */
665
+ /** Anonymized display alias surfaced to end-users in support conversations. Stable per agent (deterministic-on-first-use) so the same agent always shows the same alias to a given user. Real userId / user are admin-only. */
698
666
  displayAlias?: Maybe<Scalars['String']['output']>;
699
667
  id: Scalars['ID']['output'];
700
668
  isAvailable: Scalars['Boolean']['output'];
@@ -1144,10 +1112,7 @@ export type Application = {
1144
1112
  /** Structured tag assignments via wspace-tags-svc. Resource type: APPLICATION. */
1145
1113
  tagAssignments: Array<ApplicationTagAssignment>;
1146
1114
  /**
1147
- * Legacy free-text tag list. Maintained for backwards compatibility while
1148
- * consumers migrate to `tagAssignments`. New writes should use the
1149
- * `addTagToApplication` / `removeTagFromApplication` mutations and consume
1150
- * `tagAssignments` (resolved via wspace-tags-svc).
1115
+ * Legacy free-text tag list. Maintained for backwards compatibility while consumers migrate to `tagAssignments`. New writes should use the `addTagToApplication` / `removeTagFromApplication` mutations and consume `tagAssignments` (resolved via wspace-tags-svc).
1151
1116
  * @deprecated Use tagAssignments for structured tag data via wspace-tags-svc
1152
1117
  */
1153
1118
  tags: Array<Scalars['String']['output']>;
@@ -1208,10 +1173,7 @@ export type ApplicationScope = {
1208
1173
  metadata?: Maybe<Scalars['JSON']['output']>;
1209
1174
  scope: Scalars['String']['output'];
1210
1175
  };
1211
- /**
1212
- * Tag assignment binding a UniversalTag to an Application. Mirrors the universal
1213
- * tag-assignment shape from wspace-tags-svc.UniversalTagAssignment.
1214
- */
1176
+ /** Tag assignment binding a UniversalTag to an Application. Mirrors the universal tag-assignment shape from wspace-tags-svc.UniversalTagAssignment. */
1215
1177
  export type ApplicationTagAssignment = {
1216
1178
  __typename?: 'ApplicationTagAssignment';
1217
1179
  assignedAt?: Maybe<Scalars['DateTime']['output']>;
@@ -1416,10 +1378,7 @@ export type AuthMethodConfigInput = {
1416
1378
  samlEntityId?: InputMaybe<Scalars['String']['input']>;
1417
1379
  samlSsoUrl?: InputMaybe<Scalars['String']['input']>;
1418
1380
  };
1419
- /**
1420
- * Authentication response with optional MFA challenge support
1421
- * When requiresMFA is true, user/tokens will be null until MFA verification
1422
- */
1381
+ /** Authentication response with optional MFA challenge support When requiresMFA is true, user/tokens will be null until MFA verification */
1423
1382
  export type AuthPayload = {
1424
1383
  __typename?: 'AuthPayload';
1425
1384
  accessToken?: Maybe<Scalars['String']['output']>;
@@ -1521,10 +1480,7 @@ export type BatchOperationResult = {
1521
1480
  failedIds?: Maybe<Array<Scalars['ID']['output']>>;
1522
1481
  success: Scalars['Boolean']['output'];
1523
1482
  };
1524
- /**
1525
- * BillingAccount entity - resolvable via Federation Gateway.
1526
- * Other services (e.g., store-svc) can reference BillingAccount by id.
1527
- */
1483
+ /** BillingAccount entity - resolvable via Federation Gateway. Other services (e.g., store-svc) can reference BillingAccount by id. */
1528
1484
  export type BillingAccount = {
1529
1485
  __typename?: 'BillingAccount';
1530
1486
  /** The billing addresses associated with this billing account */
@@ -1655,10 +1611,7 @@ export type BillingOrder = {
1655
1611
  /** External order ID from the service (e.g., "store-order-12345") */
1656
1612
  id: Scalars['ID']['output'];
1657
1613
  items: Scalars['JSON']['output'];
1658
- /**
1659
- * Tax is calculated at payment time and stored in Transaction/Payment, not BillingOrder.
1660
- * Tax info can be found in metadata.paymentTaxAmount, metadata.paymentTaxRate, metadata.paymentTotal
1661
- */
1614
+ /** Tax is calculated at payment time and stored in Transaction/Payment, not BillingOrder. Tax info can be found in metadata.paymentTaxAmount, metadata.paymentTaxRate, metadata.paymentTotal */
1662
1615
  metadata?: Maybe<Scalars['JSON']['output']>;
1663
1616
  orgId: Scalars['String']['output'];
1664
1617
  status: BillingOrderStatus;
@@ -2048,28 +2001,15 @@ export type ChangePasswordInput = {
2048
2001
  /** Channel represents a configured connection to a communication platform */
2049
2002
  export type Channel = {
2050
2003
  __typename?: 'Channel';
2051
- /**
2052
- * Specific adapter type (SENDGRID, AWS_SES, TWILIO, etc.)
2053
- * Used for priority-based fallback delivery.
2054
- */
2004
+ /** Specific adapter type (SENDGRID, AWS_SES, TWILIO, etc.) Used for priority-based fallback delivery. */
2055
2005
  adapterType?: Maybe<AdapterType>;
2056
- /**
2057
- * Channel type discriminator — determines delivery behaviour.
2058
- * NOTIFICATION (EMAIL, SMS): outbound-only, adapter failover supported.
2059
- * COMMUNICATION (SLACK, TEAMS, DISCORD, WHATSAPP, WEBCHAT, INAPP, WEBHOOK): bi-directional.
2060
- */
2006
+ /** Channel type discriminator — determines delivery behaviour. NOTIFICATION (EMAIL, SMS): outbound-only, adapter failover supported. COMMUNICATION (SLACK, TEAMS, DISCORD, WHATSAPP, WEBCHAT, INAPP, WEBHOOK): bi-directional. */
2061
2007
  channelType: ChannelType;
2062
- /**
2063
- * Typed channel configuration.
2064
- * Returns structured configuration with defaults applied.
2065
- */
2008
+ /** Typed channel configuration. Returns structured configuration with defaults applied. */
2066
2009
  config: ChannelConfig;
2067
2010
  /** Channel connection (authenticated credentials) */
2068
2011
  connection?: Maybe<ChannelConnection>;
2069
- /**
2070
- * Real-time connection health (system-monitored: HEALTHY, DEGRADED, UNHEALTHY).
2071
- * Updated automatically based on API calls and health checks.
2072
- */
2012
+ /** Real-time connection health (system-monitored: HEALTHY, DEGRADED, UNHEALTHY). Updated automatically based on API calls and health checks. */
2073
2013
  connectionHealth: ConnectionHealth;
2074
2014
  /** Number of consecutive API failures (resets to 0 on success) */
2075
2015
  consecutiveFailures: Scalars['Int']['output'];
@@ -2101,16 +2041,9 @@ export type Channel = {
2101
2041
  organizationId: Scalars['ID']['output'];
2102
2042
  /** Communication platform (Slack, Teams, Discord, etc.) */
2103
2043
  platform: ChannelPlatform;
2104
- /**
2105
- * Platform-specific configuration (webhook URLs, channel IDs, etc.)
2106
- * Raw JSON for backward compatibility.
2107
- */
2044
+ /** Platform-specific configuration (webhook URLs, channel IDs, etc.) Raw JSON for backward compatibility. */
2108
2045
  platformConfig?: Maybe<Scalars['JSON']['output']>;
2109
- /**
2110
- * Priority for fallback ordering (lower = higher priority, tried first).
2111
- * Example: SendGrid(1) → AWS SES(2) → Azure ACS(3)
2112
- * All ACTIVE channels are included in the failover chain.
2113
- */
2046
+ /** Priority for fallback ordering (lower = higher priority, tried first). Example: SendGrid(1) → AWS SES(2) → Azure ACS(3) All ACTIVE channels are included in the failover chain. */
2114
2047
  priority: Scalars['Int']['output'];
2115
2048
  /** Current channel status (admin-controlled: ACTIVE, INACTIVE, etc.) */
2116
2049
  status: ChannelStatus;
@@ -2136,10 +2069,7 @@ export declare enum ChannelAuthType {
2136
2069
  /** Webhook-only (no authentication) */
2137
2070
  Webhook = "WEBHOOK"
2138
2071
  }
2139
- /**
2140
- * Channel configuration settings.
2141
- * Strongly-typed configuration instead of generic JSON.
2142
- */
2072
+ /** Channel configuration settings. Strongly-typed configuration instead of generic JSON. */
2143
2073
  export type ChannelConfig = {
2144
2074
  __typename?: 'ChannelConfig';
2145
2075
  /** Default workflow ID to execute for incoming messages (if any) */
@@ -2156,10 +2086,7 @@ export type ChannelConfig = {
2156
2086
  platformSettings?: Maybe<Scalars['JSON']['output']>;
2157
2087
  /** Rate limit: maximum messages per hour for this channel. */
2158
2088
  rateLimitPerHour?: Maybe<Scalars['Int']['output']>;
2159
- /**
2160
- * Rate limit: maximum messages per minute for this channel.
2161
- * Platform-specific limits apply (e.g., Slack: 60/min, WhatsApp: varies).
2162
- */
2089
+ /** Rate limit: maximum messages per minute for this channel. Platform-specific limits apply (e.g., Slack: 60/min, WhatsApp: varies). */
2163
2090
  rateLimitPerMinute?: Maybe<Scalars['Int']['output']>;
2164
2091
  /** Webhook URL for receiving platform events */
2165
2092
  webhookUrl?: Maybe<Scalars['String']['output']>;
@@ -2185,10 +2112,7 @@ export type ChannelConfigInput = {
2185
2112
  /** Webhook URL */
2186
2113
  webhookUrl?: InputMaybe<Scalars['String']['input']>;
2187
2114
  };
2188
- /**
2189
- * ChannelConnection represents an authenticated connection to a platform
2190
- * All credentials are encrypted with AES-256-GCM
2191
- */
2115
+ /** ChannelConnection represents an authenticated connection to a platform All credentials are encrypted with AES-256-GCM */
2192
2116
  export type ChannelConnection = {
2193
2117
  __typename?: 'ChannelConnection';
2194
2118
  /** Authentication type used */
@@ -2215,10 +2139,7 @@ export type ChannelConnection = {
2215
2139
  lastTestedAt?: Maybe<Scalars['DateTime']['output']>;
2216
2140
  /** Whether OAuth tokens need refresh (within 24h of expiry) */
2217
2141
  needsTokenRefresh: Scalars['Boolean']['output'];
2218
- /**
2219
- * Platform-specific metadata (channel IDs, team info, etc.)
2220
- * NOTE: Non-sensitive data only
2221
- */
2142
+ /** Platform-specific metadata (channel IDs, team info, etc.) NOTE: Non-sensitive data only */
2222
2143
  platformMetadata?: Maybe<Scalars['JSON']['output']>;
2223
2144
  /** Tag assignments for this connection (stub — returns empty until wspace-tags-svc supports org-scoped assignments) */
2224
2145
  tagAssignments: Array<ChannelConnectionTagAssignment>;
@@ -2229,10 +2150,7 @@ export type ChannelConnection = {
2229
2150
  /** Last update timestamp */
2230
2151
  updatedAt: Scalars['DateTime']['output'];
2231
2152
  };
2232
- /**
2233
- * Paginated list of channel connections with cursor support.
2234
- * Pass `nextCursor` from a previous response as `cursor` in the next call.
2235
- */
2153
+ /** Paginated list of channel connections with cursor support. Pass `nextCursor` from a previous response as `cursor` in the next call. */
2236
2154
  export type ChannelConnectionList = {
2237
2155
  __typename?: 'ChannelConnectionList';
2238
2156
  hasMore: Scalars['Boolean']['output'];
@@ -2316,14 +2234,7 @@ export type ChannelDeliveryInput = {
2316
2234
  connectionId?: InputMaybe<Scalars['ID']['input']>;
2317
2235
  /** Notification content */
2318
2236
  content: ChannelDeliveryContentInput;
2319
- /**
2320
- * Internal Botlit user ID. When provided, the service automatically resolves
2321
- * the user's DM conversation ID from their UserPlatformConnection record and
2322
- * uses it as the delivery recipient. Requires the user to have connected via
2323
- * OAuth (dmAllowed=true) with notificationsEnabled=true.
2324
- *
2325
- * Either `recipient` or `internalUserId` must be provided.
2326
- */
2237
+ /** Internal Botlit user ID. When provided, the service automatically resolves the user's DM conversation ID from their UserPlatformConnection record and uses it as the delivery recipient. Requires the user to have connected via OAuth (dmAllowed=true) with notificationsEnabled=true. Either `recipient` or `internalUserId` must be provided. */
2327
2238
  internalUserId?: InputMaybe<Scalars['ID']['input']>;
2328
2239
  /** Optional reference to originating notification in notification-svc */
2329
2240
  notificationId?: InputMaybe<Scalars['ID']['input']>;
@@ -2333,18 +2244,7 @@ export type ChannelDeliveryInput = {
2333
2244
  organizationId: Scalars['ID']['input'];
2334
2245
  /** Target delivery platform (EMAIL, SMS, PUSH, SLACK, TEAMS, etc.) */
2335
2246
  platform: ChannelPlatform;
2336
- /**
2337
- * Recipient identifier based on platform:
2338
- * - EMAIL: email address
2339
- * - SMS: phone number (E.164 format)
2340
- * - PUSH: device token
2341
- * - SLACK/TEAMS/DISCORD: user ID or channel ID
2342
- * - WHATSAPP: phone number
2343
- * - WEBHOOK: webhook URL
2344
- * - INAPP: user ID
2345
- *
2346
- * Either `recipient` or `internalUserId` must be provided.
2347
- */
2247
+ /** Recipient identifier based on platform: - EMAIL: email address - SMS: phone number (E.164 format) - PUSH: device token - SLACK/TEAMS/DISCORD: user ID or channel ID - WHATSAPP: phone number - WEBHOOK: webhook URL - INAPP: user ID Either `recipient` or `internalUserId` must be provided. */
2348
2248
  recipient?: InputMaybe<Scalars['String']['input']>;
2349
2249
  };
2350
2250
  /** Delivery options for channel delivery */
@@ -2415,10 +2315,7 @@ export declare enum ChannelExportFormat {
2415
2315
  /** JSON-Lines; one row per line (streaming-friendly). */
2416
2316
  Jsonl = "JSONL"
2417
2317
  }
2418
- /**
2419
- * Export job descriptor returned by channel export mutations.
2420
- * Poll `channelExportJob(id:)` until status=COMPLETED, then GET downloadUrl.
2421
- */
2318
+ /** Export job descriptor returned by channel export mutations. Poll `channelExportJob(id:)` until status=COMPLETED, then GET downloadUrl. */
2422
2319
  export type ChannelExportJob = {
2423
2320
  __typename?: 'ChannelExportJob';
2424
2321
  byteSize?: Maybe<Scalars['Int']['output']>;
@@ -2491,6 +2388,8 @@ export type ChannelHealthUpdate = {
2491
2388
  channel: Channel;
2492
2389
  /** Channel ID that changed */
2493
2390
  channelId: Scalars['ID']['output'];
2391
+ /** New health status alias for frontend compatibility (same as newHealth) */
2392
+ currentHealth: ConnectionHealth;
2494
2393
  /** Error details if health degraded to UNHEALTHY */
2495
2394
  error?: Maybe<Scalars['String']['output']>;
2496
2395
  /** New health status (after the change) */
@@ -2499,6 +2398,8 @@ export type ChannelHealthUpdate = {
2499
2398
  previousHealth: ConnectionHealth;
2500
2399
  /** Reason for the health change (if available) */
2501
2400
  reason?: Maybe<Scalars['String']['output']>;
2401
+ /** Timestamp alias for frontend compatibility (same as changedAt) */
2402
+ timestamp: Scalars['DateTime']['output'];
2502
2403
  };
2503
2404
  /** Channel list response with pagination */
2504
2405
  export type ChannelList = {
@@ -2507,11 +2408,7 @@ export type ChannelList = {
2507
2408
  hasMore: Scalars['Boolean']['output'];
2508
2409
  /** List of channels */
2509
2410
  items: Array<Channel>;
2510
- /**
2511
- * Opaque cursor for fetching the next page (base64 last-id with stable id-tiebreaker).
2512
- * Pass via `pagination.cursor` on the next call. Null when no more results.
2513
- * Non-breaking: offset pagination still works for existing clients.
2514
- */
2411
+ /** Opaque cursor for fetching the next page (base64 last-id with stable id-tiebreaker). Pass via `pagination.cursor` on the next call. Null when no more results. Non-breaking: offset pagination still works for existing clients. */
2515
2412
  nextCursor?: Maybe<Scalars['String']['output']>;
2516
2413
  /** Total count (for pagination) */
2517
2414
  total: Scalars['Int']['output'];
@@ -2655,32 +2552,11 @@ export type ChannelTagAssignment = {
2655
2552
  tag?: Maybe<UniversalTag>;
2656
2553
  tagId: Scalars['ID']['output'];
2657
2554
  };
2658
- /**
2659
- * Channel type discriminator — determines delivery behaviour and webhook handling.
2660
- *
2661
- * NOTIFICATION channels (EMAIL, SMS) are outbound-only:
2662
- * - Support priority-based failover across adapters.
2663
- * - No inbound webhook processing.
2664
- * - No DM conversations.
2665
- * - Recipient resolved via externalEmail (email) or externalUserId (phone).
2666
- *
2667
- * COMMUNICATION channels (SLACK, TEAMS, DISCORD, WHATSAPP, WEBCHAT, INAPP, WEBHOOK)
2668
- * are bi-directional:
2669
- * - Inbound webhooks processed and forwarded to conversations-svc.
2670
- * - DM conversations tracked via dmConversationId.
2671
- * - Recipient resolved via dmConversationId set during OAuth / pairing.
2672
- */
2555
+ /** Channel type discriminator — determines delivery behaviour and webhook handling. NOTIFICATION channels (EMAIL, SMS) are outbound-only: - Support priority-based failover across adapters. - No inbound webhook processing. - No DM conversations. - Recipient resolved via externalEmail (email) or externalUserId (phone). COMMUNICATION channels (SLACK, TEAMS, DISCORD, WHATSAPP, WEBCHAT, INAPP, WEBHOOK) are bi-directional: - Inbound webhooks processed and forwarded to conversations-svc. - DM conversations tracked via dmConversationId. - Recipient resolved via dmConversationId set during OAuth / pairing. */
2673
2556
  export declare enum ChannelType {
2674
- /**
2675
- * Bi-directional platform channels: SLACK, TEAMS, DISCORD,
2676
- * WHATSAPP, WEBCHAT, INAPP, WEBHOOK.
2677
- * Processes inbound webhooks and supports DM conversations.
2678
- */
2557
+ /** Bi-directional platform channels: SLACK, TEAMS, DISCORD, WHATSAPP, WEBCHAT, INAPP, WEBHOOK. Processes inbound webhooks and supports DM conversations. */
2679
2558
  Communication = "COMMUNICATION",
2680
- /**
2681
- * Outbound-only delivery channels: EMAIL, SMS.
2682
- * Supports adapter-level failover (e.g. AWS SES → Azure ACS).
2683
- */
2559
+ /** Outbound-only delivery channels: EMAIL, SMS. Supports adapter-level failover (e.g. AWS SES → Azure ACS). */
2684
2560
  Notification = "NOTIFICATION"
2685
2561
  }
2686
2562
  export type Charge = {
@@ -2800,16 +2676,7 @@ export type ConfigureWorkspaceInput = {
2800
2676
  endpoint?: InputMaybe<Scalars['String']['input']>;
2801
2677
  region?: InputMaybe<Scalars['String']['input']>;
2802
2678
  };
2803
- /**
2804
- * Real-time health status of a channel's connection.
2805
- * Monitored by the system based on API calls and health checks.
2806
- *
2807
- * - `status` = Admin-controlled (ACTIVE, INACTIVE, ARCHIVED)
2808
- * - `connectionHealth` = System-monitored (HEALTHY, DEGRADED, UNHEALTHY)
2809
- *
2810
- * Example: Channel status = ACTIVE but connectionHealth = UNHEALTHY
2811
- * means admin enabled the channel but the API is down.
2812
- */
2679
+ /** Real-time health status of a channel's connection. Monitored by the system based on API calls and health checks. - `status` = Admin-controlled (ACTIVE, INACTIVE, ARCHIVED) - `connectionHealth` = System-monitored (HEALTHY, DEGRADED, UNHEALTHY) Example: Channel status = ACTIVE but connectionHealth = UNHEALTHY means admin enabled the channel but the API is down. */
2813
2680
  export declare enum ConnectionHealth {
2814
2681
  /** Partial failures, high latency, or rate limiting */
2815
2682
  Degraded = "DEGRADED",
@@ -2844,6 +2711,8 @@ export type ConnectionStatusChangedEvent = {
2844
2711
  changedAt: Scalars['DateTime']['output'];
2845
2712
  channelId: Scalars['ID']['output'];
2846
2713
  connectionId: Scalars['ID']['output'];
2714
+ /** Connection ID (alias: id) */
2715
+ id: Scalars['ID']['output'];
2847
2716
  isActive: Scalars['Boolean']['output'];
2848
2717
  isHealthy: Scalars['Boolean']['output'];
2849
2718
  organizationId: Scalars['ID']['output'];
@@ -2963,6 +2832,8 @@ export type ContentPageFilterInput = {
2963
2832
  search?: InputMaybe<Scalars['String']['input']>;
2964
2833
  /** Filter by slug */
2965
2834
  slug?: InputMaybe<Scalars['String']['input']>;
2835
+ /** Filter by a tag (e.g. "blog", "legal", "docs"). Matches pages whose tags array contains this value. */
2836
+ tag?: InputMaybe<Scalars['String']['input']>;
2966
2837
  /** Filter by visibility level */
2967
2838
  visibility?: InputMaybe<ContentVisibility>;
2968
2839
  };
@@ -2971,10 +2842,7 @@ export declare enum ContentVisibility {
2971
2842
  Internal = "INTERNAL",
2972
2843
  Public = "PUBLIC"
2973
2844
  }
2974
- /**
2975
- * Context filter input for querying records by context.
2976
- * Supports exact match filtering on context fields.
2977
- */
2845
+ /** Context filter input for querying records by context. Supports exact match filtering on context fields. */
2978
2846
  export type ContextFilterInput = {
2979
2847
  /** Filter by organization ID */
2980
2848
  organizationId?: InputMaybe<Scalars['ID']['input']>;
@@ -2985,10 +2853,7 @@ export type ContextFilterInput = {
2985
2853
  /** Filter by workspace ID */
2986
2854
  workspaceId?: InputMaybe<Scalars['ID']['input']>;
2987
2855
  };
2988
- /**
2989
- * Operation context for filtering and scoping data.
2990
- * All fields are optional and can be extended as needed.
2991
- */
2856
+ /** Operation context for filtering and scoping data. All fields are optional and can be extended as needed. */
2992
2857
  export type ContextInput = {
2993
2858
  /** Additional custom context as JSON */
2994
2859
  custom?: InputMaybe<Scalars['JSON']['input']>;
@@ -3262,12 +3127,7 @@ export type CreateCategoryInput = {
3262
3127
  export type CreateChannelInput = {
3263
3128
  /** Specific adapter type (SENDGRID, AWS_SES, TWILIO, etc.) */
3264
3129
  adapterType?: InputMaybe<AdapterType>;
3265
- /**
3266
- * Channel type: NOTIFICATION (EMAIL/SMS) or COMMUNICATION (SLACK/TEAMS/etc).
3267
- * If omitted, defaults based on platform:
3268
- * EMAIL, SMS → NOTIFICATION
3269
- * All others → COMMUNICATION
3270
- */
3130
+ /** Channel type: NOTIFICATION (EMAIL/SMS) or COMMUNICATION (SLACK/TEAMS/etc). If omitted, defaults based on platform: EMAIL, SMS → NOTIFICATION All others → COMMUNICATION */
3271
3131
  channelType?: InputMaybe<ChannelType>;
3272
3132
  /** Operation context for scoping */
3273
3133
  context?: InputMaybe<ContextInput>;
@@ -3281,11 +3141,7 @@ export type CreateChannelInput = {
3281
3141
  platform: ChannelPlatform;
3282
3142
  /** Platform-specific configuration (webhook URLs, etc.) */
3283
3143
  platformConfig?: InputMaybe<Scalars['JSON']['input']>;
3284
- /**
3285
- * Priority for fallback ordering (lower = higher priority).
3286
- * Default is 100. Use 1 for highest priority.
3287
- * All ACTIVE channels are included in the failover chain.
3288
- */
3144
+ /** Priority for fallback ordering (lower = higher priority). Default is 100. Use 1 for highest priority. All ACTIVE channels are included in the failover chain. */
3289
3145
  priority?: InputMaybe<Scalars['Int']['input']>;
3290
3146
  /** Channel status (default: ACTIVE) */
3291
3147
  status?: InputMaybe<ChannelStatus>;
@@ -3308,16 +3164,23 @@ export type CreateConnectionInput = {
3308
3164
  redirectUri?: InputMaybe<Scalars['String']['input']>;
3309
3165
  };
3310
3166
  export type CreateContentPageInput = {
3167
+ author?: InputMaybe<Scalars['String']['input']>;
3168
+ category?: InputMaybe<Scalars['String']['input']>;
3311
3169
  content: Scalars['String']['input'];
3312
3170
  contentFormat?: InputMaybe<Scalars['String']['input']>;
3171
+ excerpt?: InputMaybe<Scalars['String']['input']>;
3172
+ featured?: InputMaybe<Scalars['Boolean']['input']>;
3313
3173
  isPublished?: InputMaybe<Scalars['Boolean']['input']>;
3314
3174
  productId?: InputMaybe<Scalars['String']['input']>;
3175
+ publishedAt?: InputMaybe<Scalars['DateTime']['input']>;
3176
+ readingTime?: InputMaybe<Scalars['Int']['input']>;
3315
3177
  seoDescription?: InputMaybe<Scalars['String']['input']>;
3316
3178
  seoKeywords?: InputMaybe<Scalars['String']['input']>;
3317
3179
  seoTitle?: InputMaybe<Scalars['String']['input']>;
3318
3180
  slug: Scalars['String']['input'];
3319
3181
  sortOrder?: InputMaybe<Scalars['Int']['input']>;
3320
3182
  tags?: InputMaybe<Array<Scalars['String']['input']>>;
3183
+ thumbnail?: InputMaybe<Scalars['String']['input']>;
3321
3184
  title: Scalars['String']['input'];
3322
3185
  visibility?: InputMaybe<ContentVisibility>;
3323
3186
  };
@@ -3709,6 +3572,22 @@ export type CreatePolicyReferenceInput = {
3709
3572
  priority?: InputMaybe<Scalars['Int']['input']>;
3710
3573
  resourceType: Scalars['String']['input'];
3711
3574
  };
3575
+ export type CreatePressKitAssetInput = {
3576
+ category: PressKitAssetCategory;
3577
+ description?: InputMaybe<Scalars['String']['input']>;
3578
+ fileName?: InputMaybe<Scalars['String']['input']>;
3579
+ fileSize?: InputMaybe<Scalars['Int']['input']>;
3580
+ fileUrl: Scalars['String']['input'];
3581
+ mimeType?: InputMaybe<Scalars['String']['input']>;
3582
+ productId: Scalars['String']['input'];
3583
+ slug: Scalars['String']['input'];
3584
+ sortOrder?: InputMaybe<Scalars['Int']['input']>;
3585
+ tags?: InputMaybe<Array<Scalars['String']['input']>>;
3586
+ thumbnailUrl?: InputMaybe<Scalars['String']['input']>;
3587
+ title: Scalars['String']['input'];
3588
+ version?: InputMaybe<Scalars['String']['input']>;
3589
+ visibility?: InputMaybe<ContentVisibility>;
3590
+ };
3712
3591
  export type CreateProductEntitlementInput = {
3713
3592
  expiresAt?: InputMaybe<Scalars['DateTime']['input']>;
3714
3593
  metadata?: InputMaybe<Scalars['JSON']['input']>;
@@ -3993,10 +3872,7 @@ export type CreateStoreOrderInput = {
3993
3872
  lineItems: Array<StoreLineItemInput>;
3994
3873
  /** Additional metadata */
3995
3874
  metadata?: InputMaybe<Scalars['JSON']['input']>;
3996
- /**
3997
- * Total product cost (sum of all line items)
3998
- * Note: Currency, tax, and final billing amount calculated by billing service
3999
- */
3875
+ /** Total product cost (sum of all line items) Note: Currency, tax, and final billing amount calculated by billing service */
4000
3876
  total: Scalars['Float']['input'];
4001
3877
  };
4002
3878
  export type CreateSubscriptionInput = {
@@ -4284,10 +4160,7 @@ export type CreditRate = {
4284
4160
  rateUSD: Scalars['Float']['output'];
4285
4161
  updatedAt: Scalars['DateTime']['output'];
4286
4162
  };
4287
- /**
4288
- * CreditTransaction entity - resolvable via Federation Gateway.
4289
- * Other services (e.g., store-svc) can reference CreditTransaction by id.
4290
- */
4163
+ /** CreditTransaction entity - resolvable via Federation Gateway. Other services (e.g., store-svc) can reference CreditTransaction by id. */
4291
4164
  export type CreditTransaction = {
4292
4165
  __typename?: 'CreditTransaction';
4293
4166
  amount: Scalars['Float']['output'];
@@ -4494,10 +4367,7 @@ export type DeleteUserResult = {
4494
4367
  message: Scalars['String']['output'];
4495
4368
  success: Scalars['Boolean']['output'];
4496
4369
  };
4497
- /**
4498
- * Paginated list of delivery attempts with cursor support.
4499
- * Pass `nextCursor` from a previous response as `cursor` in the next call.
4500
- */
4370
+ /** Paginated list of delivery attempts with cursor support. Pass `nextCursor` from a previous response as `cursor` in the next call. */
4501
4371
  export type DeliveryAttemptList = {
4502
4372
  __typename?: 'DeliveryAttemptList';
4503
4373
  hasMore: Scalars['Boolean']['output'];
@@ -4565,6 +4435,13 @@ export declare enum DeliveryStatus {
4565
4435
  /** Successfully sent */
4566
4436
  Sent = "SENT"
4567
4437
  }
4438
+ /** Delivery updated event payload emitted on delivery status changes. */
4439
+ export type DeliveryUpdatedEvent = {
4440
+ __typename?: 'DeliveryUpdatedEvent';
4441
+ channelId: Scalars['ID']['output'];
4442
+ id: Scalars['ID']['output'];
4443
+ status: DeliveryStatus;
4444
+ };
4568
4445
  export type DependencyTriggeredUpdate = {
4569
4446
  __typename?: 'DependencyTriggeredUpdate';
4570
4447
  dependencyCount: Scalars['Int']['output'];
@@ -5016,22 +4893,13 @@ export declare enum DevportalExportFormat {
5016
4893
  /** JSON-Lines; one row per line (good for streaming consumers). */
5017
4894
  Jsonl = "JSONL"
5018
4895
  }
5019
- /**
5020
- * Export job descriptor returned from any of the entity-specific export
5021
- * mutations. For small exports the job typically transitions to COMPLETED
5022
- * synchronously (within the request); larger exports may return CREATED and
5023
- * require the caller to poll `devportalExportJob(id:)`.
5024
- */
4896
+ /** Export job descriptor returned from any of the entity-specific export mutations. For small exports the job typically transitions to COMPLETED synchronously (within the request); larger exports may return CREATED and require the caller to poll `devportalExportJob(id:)`. */
5025
4897
  export type DevportalExportJob = {
5026
4898
  __typename?: 'DevportalExportJob';
5027
4899
  byteSize?: Maybe<Scalars['Int']['output']>;
5028
4900
  completedAt?: Maybe<Scalars['DateTime']['output']>;
5029
4901
  createdAt: Scalars['DateTime']['output'];
5030
- /**
5031
- * Stable URL the caller can GET to retrieve the full payload. Today this is
5032
- * a presigned-style URL hosted by devportal-svc itself; once the platform
5033
- * S3 wiring lands it will be a true presigned S3 URL with TTL.
5034
- */
4902
+ /** Stable URL the caller can GET to retrieve the full payload. Today this is a presigned-style URL hosted by devportal-svc itself; once the platform S3 wiring lands it will be a true presigned S3 URL with TTL. */
5035
4903
  downloadUrl?: Maybe<Scalars['String']['output']>;
5036
4904
  /** ISO timestamp when downloadUrl expires (24h default). */
5037
4905
  downloadUrlExpiresAt?: Maybe<Scalars['DateTime']['output']>;
@@ -5161,16 +5029,9 @@ export type EffectivePermissions = {
5161
5029
  actorId: Scalars['String']['output'];
5162
5030
  /** Cache key for debugging and invalidation */
5163
5031
  cacheKey?: Maybe<Scalars['String']['output']>;
5164
- /**
5165
- * When this permission set should be considered stale.
5166
- * Frontend should refresh after this time.
5167
- */
5032
+ /** When this permission set should be considered stale. Frontend should refresh after this time. */
5168
5033
  expiresAt: Scalars['DateTime']['output'];
5169
- /**
5170
- * Flat permission strings for easy frontend matching.
5171
- * Format: "{resourceType}:{action}" e.g., ["project:read", "project:write", "task:*"]
5172
- * Includes wildcards for ADMIN level (e.g., "project:*")
5173
- */
5034
+ /** Flat permission strings for easy frontend matching. Format: "{resourceType}:{action}" e.g., ["project:read", "project:write", "task:*"] Includes wildcards for ADMIN level (e.g., "project:*") */
5174
5035
  permissionStrings: Array<Scalars['String']['output']>;
5175
5036
  /** Resource types and their effective levels */
5176
5037
  permissions: Array<EffectiveResourcePermission>;
@@ -5475,10 +5336,7 @@ export type FailedBillingOrderCallbacksResponse = {
5475
5336
  orders: Array<BillingOrder>;
5476
5337
  totalCount: Scalars['Int']['output'];
5477
5338
  };
5478
- /**
5479
- * Platform-wide feature flag definition.
5480
- * Managed by super admins. Can be scoped to a product and category.
5481
- */
5339
+ /** Platform-wide feature flag definition. Managed by super admins. Can be scoped to a product and category. */
5482
5340
  export type FeatureFlag = {
5483
5341
  __typename?: 'FeatureFlag';
5484
5342
  category?: Maybe<Scalars['String']['output']>;
@@ -5506,10 +5364,7 @@ export type FeatureFlagBulkEvaluation = {
5506
5364
  __typename?: 'FeatureFlagBulkEvaluation';
5507
5365
  evaluations: Array<FeatureFlagEvaluation>;
5508
5366
  };
5509
- /**
5510
- * Result of evaluating a single feature flag for a specific context.
5511
- * Compatible with OpenFeature ResolutionDetails.
5512
- */
5367
+ /** Result of evaluating a single feature flag for a specific context. Compatible with OpenFeature ResolutionDetails. */
5513
5368
  export type FeatureFlagEvaluation = {
5514
5369
  __typename?: 'FeatureFlagEvaluation';
5515
5370
  errorCode?: Maybe<Scalars['String']['output']>;
@@ -5655,10 +5510,7 @@ export type GetStoreProductTagsInput = {
5655
5510
  };
5656
5511
  export type GrantAppWorkspaceAccessInput = {
5657
5512
  appId: Scalars['ID']['input'];
5658
- /**
5659
- * Optional subset of the app's global scopes. Empty array means the
5660
- * authorization inherits the app's full scope list.
5661
- */
5513
+ /** Optional subset of the app's global scopes. Empty array means the authorization inherits the app's full scope list. */
5662
5514
  scopes?: InputMaybe<Array<Scalars['String']['input']>>;
5663
5515
  tenantId: Scalars['ID']['input'];
5664
5516
  workspaceId: Scalars['ID']['input'];
@@ -5689,31 +5541,13 @@ export type GrantDelegationInput = {
5689
5541
  userId?: InputMaybe<Scalars['String']['input']>;
5690
5542
  workspaceIds?: InputMaybe<Array<Scalars['String']['input']>>;
5691
5543
  };
5692
- /**
5693
- * GraphQL callback configuration for external service notifications
5694
- * Supports two authentication methods (controlled by CALLBACK_AUTH_METHOD env var):
5695
- * 1. token (default): Direct HTTP with authToken
5696
- * 2. internal-gateway: Service credentials via internal gateway
5697
- */
5544
+ /** GraphQL callback configuration for external service notifications Supports two authentication methods (controlled by CALLBACK_AUTH_METHOD env var): 1. token (default): Direct HTTP with authToken 2. internal-gateway: Service credentials via internal gateway */
5698
5545
  export type GraphQlCallbackInput = {
5699
- /**
5700
- * Authentication token for callback (optional)
5701
- * Required only when CALLBACK_AUTH_METHOD=token (default)
5702
- * Not needed when CALLBACK_AUTH_METHOD=internal-gateway
5703
- * Example: Bearer store-service-webhook-secret-xyz
5704
- */
5546
+ /** Authentication token for callback (optional) Required only when CALLBACK_AUTH_METHOD=token (default) Not needed when CALLBACK_AUTH_METHOD=internal-gateway Example: Bearer store-service-webhook-secret-xyz */
5705
5547
  authToken?: InputMaybe<Scalars['String']['input']>;
5706
- /**
5707
- * GraphQL endpoint URL of the external service
5708
- * Must be HTTPS and match BILLING_CALLBACK_ALLOWED_ENDPOINTS/HOSTS/SUFFIXES.
5709
- * Localhost is allowed only outside production for local development.
5710
- * Example: https://graphqlworkspaces.burdenoff.com/workspaces/graphql
5711
- */
5548
+ /** GraphQL endpoint URL of the external service Must be HTTPS and match BILLING_CALLBACK_ALLOWED_ENDPOINTS/HOSTS/SUFFIXES. Localhost is allowed only outside production for local development. Example: https://graphqlworkspaces.burdenoff.com/workspaces/graphql */
5712
5549
  endpoint: Scalars['String']['input'];
5713
- /**
5714
- * Name of the GraphQL mutation to call on payment completion
5715
- * Example: updateOrderPaymentStatus
5716
- */
5550
+ /** Name of the GraphQL mutation to call on payment completion Example: updateOrderPaymentStatus */
5717
5551
  mutationName: Scalars['String']['input'];
5718
5552
  };
5719
5553
  export type Group = {
@@ -5963,10 +5797,7 @@ export type InitiatePaymentInput = {
5963
5797
  amount: Scalars['Float']['input'];
5964
5798
  /** For PLAN purchase: enable automatic renewal when subscription expires */
5965
5799
  autoRenew?: InputMaybe<Scalars['Boolean']['input']>;
5966
- /**
5967
- * For PLAN purchase with autoRenew: payment method ID to use for auto-renewal
5968
- * Must be a verified saved payment method. Required if autoRenew is true.
5969
- */
5800
+ /** For PLAN purchase with autoRenew: payment method ID to use for auto-renewal Must be a verified saved payment method. Required if autoRenew is true. */
5970
5801
  autoRenewPaymentMethodId?: InputMaybe<Scalars['ID']['input']>;
5971
5802
  /** Billing account ID (required for tax calculation) */
5972
5803
  billingAccountId: Scalars['ID']['input'];
@@ -5974,11 +5805,7 @@ export type InitiatePaymentInput = {
5974
5805
  creditAmount?: InputMaybe<Scalars['Int']['input']>;
5975
5806
  /** Currency code (e.g., INR, USD) */
5976
5807
  currency: Scalars['String']['input'];
5977
- /**
5978
- * For PLAN downgrade: the active higher-tier subscription ID being replaced.
5979
- * Old subscription is left active until natural expiry — no cancellation, no refund.
5980
- * User retains old plan quotas during overlap; continues on new plan after expiry.
5981
- */
5808
+ /** For PLAN downgrade: the active higher-tier subscription ID being replaced. Old subscription is left active until natural expiry — no cancellation, no refund. User retains old plan quotas during overlap; continues on new plan after expiry. */
5982
5809
  downgradeFromSubscriptionId?: InputMaybe<Scalars['ID']['input']>;
5983
5810
  /** For PLAN purchase: whether this is an annual subscription (12 months with discount) */
5984
5811
  isAnnual?: InputMaybe<Scalars['Boolean']['input']>;
@@ -6004,16 +5831,9 @@ export type InitiatePaymentInput = {
6004
5831
  quantity?: InputMaybe<Scalars['Int']['input']>;
6005
5832
  /** Whether to save the card for future purchases (only for new card payments) */
6006
5833
  saveCard?: InputMaybe<Scalars['Boolean']['input']>;
6007
- /**
6008
- * For ADDON purchase: subscription ID to attach addon to.
6009
- * Required if billing account has multiple active subscriptions.
6010
- * If only one active subscription exists, it will be auto-selected.
6011
- */
5834
+ /** For ADDON purchase: subscription ID to attach addon to. Required if billing account has multiple active subscriptions. If only one active subscription exists, it will be auto-selected. */
6012
5835
  subscriptionId?: InputMaybe<Scalars['ID']['input']>;
6013
- /**
6014
- * For PLAN upgrade: the subscription ID being upgraded from.
6015
- * If provided, this is an upgrade - old quotas will be moved to new subscription.
6016
- */
5836
+ /** For PLAN upgrade: the subscription ID being upgraded from. If provided, this is an upgrade - old quotas will be moved to new subscription. */
6017
5837
  upgradeFromSubscriptionId?: InputMaybe<Scalars['ID']['input']>;
6018
5838
  };
6019
5839
  /** Response from initiatePayment mutation */
@@ -6392,10 +6212,7 @@ export type KerberosConfigInput = {
6392
6212
  realm: Scalars['String']['input'];
6393
6213
  servicePrincipal: Scalars['String']['input'];
6394
6214
  };
6395
- /**
6396
- * KeyboardShortcut entity - defines a keyboard shortcut action.
6397
- * Shortcuts can be global (all products) or product-specific.
6398
- */
6215
+ /** KeyboardShortcut entity - defines a keyboard shortcut action. Shortcuts can be global (all products) or product-specific. */
6399
6216
  export type KeyboardShortcut = {
6400
6217
  __typename?: 'KeyboardShortcut';
6401
6218
  /** Category for grouping (e.g., "Navigation", "Actions", "UI", "Help") */
@@ -6745,10 +6562,7 @@ export type MessageAttachmentInput = {
6745
6562
  /** Attachment URL */
6746
6563
  url: Scalars['String']['input'];
6747
6564
  };
6748
- /**
6749
- * MessageDeliveryAttempt represents a single delivery attempt (transient, 7-day TTL)
6750
- * Used for debugging and monitoring only
6751
- */
6565
+ /** MessageDeliveryAttempt represents a single delivery attempt (transient, 7-day TTL) Used for debugging and monitoring only */
6752
6566
  export type MessageDeliveryAttempt = {
6753
6567
  __typename?: 'MessageDeliveryAttempt';
6754
6568
  /** Associated channel */
@@ -6822,10 +6636,7 @@ export type MonthlyEarning = {
6822
6636
  orders: Scalars['Int']['output'];
6823
6637
  year: Scalars['Int']['output'];
6824
6638
  };
6825
- /**
6826
- * Input for delivering a notification across multiple platforms and recipients simultaneously.
6827
- * The service fans out per-platform in parallel with independent failover per platform.
6828
- */
6639
+ /** Input for delivering a notification across multiple platforms and recipients simultaneously. The service fans out per-platform in parallel with independent failover per platform. */
6829
6640
  export type MultiPlatformDeliveryInput = {
6830
6641
  /** Notification content (same content sent to all platforms/recipients) */
6831
6642
  content: ChannelDeliveryContentInput;
@@ -6854,10 +6665,7 @@ export type MultiPlatformDeliveryResult = {
6854
6665
  /** Total number of recipients across all platforms */
6855
6666
  totalRecipients: Scalars['Int']['output'];
6856
6667
  };
6857
- /**
6858
- * Per-recipient addresses for multi-platform delivery.
6859
- * Populate the field that matches each target platform.
6860
- */
6668
+ /** Per-recipient addresses for multi-platform delivery. Populate the field that matches each target platform. */
6861
6669
  export type MultiPlatformRecipientInput = {
6862
6670
  /** Email address (for EMAIL platform) */
6863
6671
  email?: InputMaybe<Scalars['String']['input']>;
@@ -6879,15 +6687,9 @@ export type MultiPlatformRecipientInput = {
6879
6687
  /** Root mutation type */
6880
6688
  export type Mutation = {
6881
6689
  __typename?: 'Mutation';
6882
- /**
6883
- * Placeholder field to allow empty Mutation type extension.
6884
- * Must be @shareable since it exists in multiple subgraphs.
6885
- */
6690
+ /** Placeholder field to allow empty Mutation type extension. Must be @shareable since it exists in multiple subgraphs. */
6886
6691
  _empty?: Maybe<Scalars['String']['output']>;
6887
- /**
6888
- * Placeholder mutation (extended by modules)
6889
- * @rbac(public: true, scopeType: "global")
6890
- */
6692
+ /** Placeholder mutation (extended by modules) @rbac(public: true, scopeType: "global") */
6891
6693
  _placeholder?: Maybe<Scalars['String']['output']>;
6892
6694
  _privacyEcho?: Maybe<Scalars['String']['output']>;
6893
6695
  /** Accept an organization invitation */
@@ -6923,11 +6725,7 @@ export type Mutation = {
6923
6725
  addReleaseTesters: Array<ReleaseTrackUser>;
6924
6726
  addSubscribersToList: NewsletterList;
6925
6727
  addSuppression: NewsletterSuppression;
6926
- /**
6927
- * Bind a tag to an Application. The tag must already exist in wspace-tags-svc.
6928
- * Currently a stub-adapter no-op until the global-layer integration with
6929
- * wspace-tags-svc lands (see tracker).
6930
- */
6728
+ /** Bind a tag to an Application. The tag must already exist in wspace-tags-svc. Currently a stub-adapter no-op until the global-layer integration with wspace-tags-svc lands (see tracker). */
6931
6729
  addTagToApplication: ApplicationTagAssignment;
6932
6730
  addTicketTags: SupportTicket;
6933
6731
  /** Add an item to the cart (creates cart if needed) */
@@ -6955,10 +6753,7 @@ export type Mutation = {
6955
6753
  approveReview: ProductReview;
6956
6754
  approveTranslation: Translation;
6957
6755
  approveWaitlist: NewsletterWaitlist;
6958
- /**
6959
- * Soft archive a billing account. Financial history is preserved and the account is removed
6960
- * from active billing operations.
6961
- */
6756
+ /** Soft archive a billing account. Financial history is preserved and the account is removed from active billing operations. */
6962
6757
  archiveBillingAccount: BillingAccount;
6963
6758
  /** Archive a channel */
6964
6759
  archiveChannel: Channel;
@@ -6973,14 +6768,7 @@ export type Mutation = {
6973
6768
  archiveTour: Tour;
6974
6769
  /** Archive a workspace */
6975
6770
  archiveWorkspace: Workspace;
6976
- /**
6977
- * Assign the "Authenticated User" role to a user at the global scope.
6978
- * This should be called when a new user signs up to give them basic platform access.
6979
- * This mutation is idempotent - calling it multiple times for the same user is safe.
6980
- *
6981
- * SECURITY: This mutation is restricted to service and super_admin actors only.
6982
- * It should be called by global-auth-svc when a user signs up, not directly by users.
6983
- */
6771
+ /** Assign the "Authenticated User" role to a user at the global scope. This should be called when a new user signs up to give them basic platform access. This mutation is idempotent - calling it multiple times for the same user is safe. SECURITY: This mutation is restricted to service and super_admin actors only. It should be called by global-auth-svc when a user signs up, not directly by users. */
6984
6772
  assignAuthenticatedUserRole: AssignAuthenticatedUserRoleResult;
6985
6773
  assignEntitlementSeat: ProductEntitlement;
6986
6774
  /** Assign a role to an actor */
@@ -6991,18 +6779,9 @@ export type Mutation = {
6991
6779
  assignTagToUser: UserTagAssignment;
6992
6780
  /** Attach media to a tour step */
6993
6781
  attachMediaToStep: TourStepMedia;
6994
- /**
6995
- * Erase the subject's auth-layer data. With dryRun=true, returns counts
6996
- * without mutating. Sessions and refresh tokens are always purged; the
6997
- * User row is anonymised (email/name nulled, status=DEACTIVATED) rather
6998
- * than deleted to preserve referential integrity for audit logs.
6999
- */
6782
+ /** Erase the subject's auth-layer data. With dryRun=true, returns counts without mutating. Sessions and refresh tokens are always purged; the User row is anonymised (email/name nulled, status=DEACTIVATED) rather than deleted to preserve referential integrity for audit logs. */
7000
6783
  authEraseSubject: AuthEraseResult;
7001
- /**
7002
- * Export the subject's auth-layer data (account, sessions, MFA settings,
7003
- * OAuth accounts, app delegations, audit log entries owned by the user).
7004
- * Idempotent — repeated calls return identical bundles.
7005
- */
6784
+ /** Export the subject's auth-layer data (account, sessions, MFA settings, OAuth accounts, app delegations, audit log entries owned by the user). Idempotent — repeated calls return identical bundles. */
7006
6785
  authExportSubject: Scalars['JSON']['output'];
7007
6786
  authenticate: AuthResult;
7008
6787
  authenticateAPIKey: AuthResult;
@@ -7037,10 +6816,7 @@ export type Mutation = {
7037
6816
  bulkDeleteActivityLogs: Scalars['Int']['output'];
7038
6817
  bulkPauseSchedules: SchedulerBulkOperationResult;
7039
6818
  bulkResumeSchedules: SchedulerBulkOperationResult;
7040
- /**
7041
- * Bulk set user's opt-in/out preference for multiple feature flags.
7042
- * RBAC is scoped to the target workspace via `input.workspaceId`.
7043
- */
6819
+ /** Bulk set user's opt-in/out preference for multiple feature flags. RBAC is scoped to the target workspace via `input.workspaceId`. */
7044
6820
  bulkSetUserFeatureFlagPreferences: Array<UserFeatureFlagPreference>;
7045
6821
  bulkUpdateSchedules: SchedulerBulkOperationResult;
7046
6822
  bulkUpdateTranslations: BulkOperationResult;
@@ -7059,24 +6835,12 @@ export type Mutation = {
7059
6835
  cancelPayout: DeveloperOrgPayout;
7060
6836
  /** Cancel a scheduled notification */
7061
6837
  cancelScheduledNotification: Scalars['Boolean']['output'];
7062
- /**
7063
- * Cancel a subscription - disables auto-renewal but keeps subscription active until endDate.
7064
- * The subscription will not renew when it expires.
7065
- */
6838
+ /** Cancel a subscription - disables auto-renewal but keeps subscription active until endDate. The subscription will not renew when it expires. */
7066
6839
  cancelSubscription: BillingSubscription;
7067
6840
  changePassword: Scalars['Boolean']['output'];
7068
- /**
7069
- * Erase channel-layer subject data. With dryRun=true returns counts.
7070
- * Per-user platform connections are PURGED (OAuth tokens etc).
7071
- * Delivery / webhook / suppression rows are anonymised but retained for
7072
- * spam-complaint / abuse forensics (`retainedForLegalReason: "abuse-2yr"`).
7073
- */
6841
+ /** Erase channel-layer subject data. With dryRun=true returns counts. Per-user platform connections are PURGED (OAuth tokens etc). Delivery / webhook / suppression rows are anonymised but retained for spam-complaint / abuse forensics (`retainedForLegalReason: "abuse-2yr"`). */
7074
6842
  channelEraseSubject: ChannelEraseResult;
7075
- /**
7076
- * Export the subject's channel-layer data: per-user platform connections,
7077
- * delivery attempts addressed to the subject, webhook events, and any
7078
- * channel rows the subject created.
7079
- */
6843
+ /** Export the subject's channel-layer data: per-user platform connections, delivery attempts addressed to the subject, webhook events, and any channel rows the subject created. */
7080
6844
  channelExportSubject: Scalars['JSON']['output'];
7081
6845
  /** Check push MFA challenge status (polling) */
7082
6846
  checkPushMFAStatus: PushMfaStatus;
@@ -7117,10 +6881,7 @@ export type Mutation = {
7117
6881
  createAutomationStep: AutomationStep;
7118
6882
  /** Create a new billing account for the current org (from context) */
7119
6883
  createBillingAccount: BillingAccount;
7120
- /**
7121
- * Create a billing order for external service (e.g., store)
7122
- * Stores order details + GraphQL callback endpoint for payment notifications
7123
- */
6884
+ /** Create a billing order for external service (e.g., store) Stores order details + GraphQL callback endpoint for payment notifications */
7124
6885
  createBillingOrder: CreateBillingOrderResponse;
7125
6886
  createCampaign: NewsletterCampaign;
7126
6887
  createCannedResponse: CannedResponse;
@@ -7183,13 +6944,12 @@ export type Mutation = {
7183
6944
  createPlatformProduct: PlatformProduct;
7184
6945
  /** Create an OPA policy reference */
7185
6946
  createPolicyReference: PolicyReference;
6947
+ /** Create a press kit asset for a product */
6948
+ createPressKitAsset: ProductPressKitAsset;
7186
6949
  createProduct: StoreProduct;
7187
6950
  createProductEntitlement: ProductEntitlement;
7188
6951
  createPromoCode: PromoCode;
7189
- /**
7190
- * Create a support ticket from a public/unauthenticated source (e.g. website contact form).
7191
- * Does not require authentication.
7192
- */
6952
+ /** Create a support ticket from a public/unauthenticated source (e.g. website contact form). Does not require authentication. */
7193
6953
  createPublicSupportTicket: SupportTicket;
7194
6954
  createQuota: Scalars['Boolean']['output'];
7195
6955
  createRecurringBillingPlan: RecurringBillingPlan;
@@ -7240,15 +7000,9 @@ export type Mutation = {
7240
7000
  createTourTemplate: TourTemplate;
7241
7001
  createTranslation: Translation;
7242
7002
  createTranslationKey: TranslationKey;
7243
- /**
7244
- * Create complete tenant structure for a new user (tenant, org, workspace)
7245
- * This is typically called after user email verification
7246
- */
7003
+ /** Create complete tenant structure for a new user (tenant, org, workspace) This is typically called after user email verification */
7247
7004
  createUserTenantStructure: CreateUserTenantStructureResponse;
7248
- /**
7249
- * Create a visibility rule for a resource.
7250
- * Auto-registers the resource if not already registered.
7251
- */
7005
+ /** Create a visibility rule for a resource. Auto-registers the resource if not already registered. */
7252
7006
  createVisibilityRule: VisibilityRule;
7253
7007
  createWebhook: Webhook;
7254
7008
  /** Create a new workspace */
@@ -7270,16 +7024,9 @@ export type Mutation = {
7270
7024
  deactivateResource: Scalars['Boolean']['output'];
7271
7025
  /** Deactivate a tour schedule */
7272
7026
  deactivateTourSchedule: TourSchedule;
7273
- /**
7274
- * Pure quota decrement — called by wspace-activity-svc after writing a UsageRecord.
7275
- * Only decrements QuotaAssignment.limits.value. Does NOT write back to activity-svc.
7276
- * Requires the quotaAssignmentId already resolved by checkQuotaExhausted.
7277
- */
7027
+ /** Pure quota decrement — called by wspace-activity-svc after writing a UsageRecord. Only decrements QuotaAssignment.limits.value. Does NOT write back to activity-svc. Requires the quotaAssignmentId already resolved by checkQuotaExhausted. */
7278
7028
  decrementQuota: Scalars['Boolean']['output'];
7279
- /**
7280
- * Delete current user's account permanently
7281
- * Requires password confirmation
7282
- */
7029
+ /** Delete current user's account permanently Requires password confirmation */
7283
7030
  deleteAccount: AccountActionResult;
7284
7031
  deleteActivityLog: Scalars['Boolean']['output'];
7285
7032
  deleteAffiliateCode: Scalars['Boolean']['output'];
@@ -7307,10 +7054,7 @@ export type Mutation = {
7307
7054
  deleteDiscount: Scalars['Boolean']['output'];
7308
7055
  /** Delete an entitlement */
7309
7056
  deleteEntitlement: Scalars['Boolean']['output'];
7310
- /**
7311
- * Delete external OIDC configuration
7312
- * Admin only
7313
- */
7057
+ /** Delete external OIDC configuration Admin only */
7314
7058
  deleteExternalOIDCConfig: AccountActionResult;
7315
7059
  deleteFAQ: Scalars['Boolean']['output'];
7316
7060
  /** Delete a feature flag (super admin only) */
@@ -7356,6 +7100,8 @@ export type Mutation = {
7356
7100
  deletePlatformProduct: Scalars['Boolean']['output'];
7357
7101
  /** Delete an OPA policy reference */
7358
7102
  deletePolicyReference: Scalars['Boolean']['output'];
7103
+ /** Delete a press kit asset */
7104
+ deletePressKitAsset: Scalars['Boolean']['output'];
7359
7105
  deleteProduct: Scalars['Boolean']['output'];
7360
7106
  deleteProductAsset: Scalars['Boolean']['output'];
7361
7107
  deleteProductEntitlement: Scalars['Boolean']['output'];
@@ -7401,21 +7147,11 @@ export type Mutation = {
7401
7147
  /** Soft-delete a user platform connection */
7402
7148
  deleteUserPlatformConnection: Scalars['Boolean']['output'];
7403
7149
  deleteWebhook: Scalars['Boolean']['output'];
7404
- /**
7405
- * Deliver the same notification to multiple recipients in bulk.
7406
- * More efficient than multiple single calls for broadcast scenarios.
7407
- */
7150
+ /** Deliver the same notification to multiple recipients in bulk. More efficient than multiple single calls for broadcast scenarios. */
7408
7151
  deliverBulkNotification: BulkChannelDeliveryResult;
7409
- /**
7410
- * Deliver a notification across multiple platforms and multiple recipients in one call.
7411
- * Fans out per-platform in parallel (Promise.allSettled) with independent failover per platform.
7412
- * Adapters that natively support multi-recipient (SES, ACS) send one API call; others loop concurrently.
7413
- */
7152
+ /** Deliver a notification across multiple platforms and multiple recipients in one call. Fans out per-platform in parallel (Promise.allSettled) with independent failover per platform. Adapters that natively support multi-recipient (SES, ACS) send one API call; others loop concurrently. */
7414
7153
  deliverMultiPlatformNotification: MultiPlatformDeliveryResult;
7415
- /**
7416
- * Deliver a notification to a single recipient via Channel service.
7417
- * Called by global-notification-svc to deliver through platform adapters.
7418
- */
7154
+ /** Deliver a notification to a single recipient via Channel service. Called by global-notification-svc to deliver through platform adapters. */
7419
7155
  deliverNotification: ChannelDeliveryResult;
7420
7156
  deprecateApplicationVersion: ApplicationVersion;
7421
7157
  deprecateProduct: StoreProduct;
@@ -7437,11 +7173,7 @@ export type Mutation = {
7437
7173
  enableMFA: Scalars['Boolean']['output'];
7438
7174
  enableMaintenanceMode: MaintenanceModeStatus;
7439
7175
  enrollSubscriberInAutomation: AutomationSubscriber;
7440
- /**
7441
- * Anonymise the subject on the billing layer. With dryRun=true, returns
7442
- * what would change without mutating. Financial records (Transaction,
7443
- * Invoice, Payment) are RETAINED for the statutory 7-year window.
7444
- */
7176
+ /** Anonymise the subject on the billing layer. With dryRun=true, returns what would change without mutating. Financial records (Transaction, Invoice, Payment) are RETAINED for the statutory 7-year window. */
7445
7177
  eraseSubject: EraseResult;
7446
7178
  escalateSupportTicket: SupportTicket;
7447
7179
  /** Exchange app token for app-as-user token (Token Exchange flow) */
@@ -7461,11 +7193,7 @@ export type Mutation = {
7461
7193
  exportDeveloperOrganizations: DevportalExportJob;
7462
7194
  /** Export per-organization revenue rows matching the optional filter. */
7463
7195
  exportRevenue: DevportalExportJob;
7464
- /**
7465
- * Export the subject's billing-layer data (billing accounts, subscriptions,
7466
- * invoices, payment methods on file, transaction history, credits, usage).
7467
- * Idempotent.
7468
- */
7196
+ /** Export the subject's billing-layer data (billing accounts, subscriptions, invoices, payment methods on file, transaction history, credits, usage). Idempotent. Called by the privacy service as part of GDPR DSAR fan-out. */
7469
7197
  exportSubject: Scalars['JSON']['output'];
7470
7198
  /** Export webhook event records matching the filter. */
7471
7199
  exportWebhookEvents: ChannelExportJob;
@@ -7482,10 +7210,7 @@ export type Mutation = {
7482
7210
  generateHMACSecret: HmacCredentialResult;
7483
7211
  /** Generate an invoice for a subscription */
7484
7212
  generateInvoice: Invoice;
7485
- /**
7486
- * Generate OIDC authorization URL for SSO login
7487
- * Returns URL to redirect user to the IdP
7488
- */
7213
+ /** Generate OIDC authorization URL for SSO login Returns URL to redirect user to the IdP */
7489
7214
  generateOIDCAuthUrl: OidcAuthUrlResult;
7490
7215
  /** Generate passkey authentication options (for login) */
7491
7216
  generatePasskeyAuthenticationOptions: PasskeyAuthenticationOptions;
@@ -7500,11 +7225,7 @@ export type Mutation = {
7500
7225
  /** Generate challenge message for wallet signature */
7501
7226
  generateWalletChallenge: WalletChallengeResult;
7502
7227
  getSupportAttachmentPartUploadUrls: Array<SupportAttachmentPresignedPart>;
7503
- /**
7504
- * Grant an app access to act on a specific workspace. Idempotent: re-granting
7505
- * an ACTIVE authorization updates its scopes; re-granting a REVOKED one flips
7506
- * it back to ACTIVE and clears the revoke fields.
7507
- */
7228
+ /** Grant an app access to act on a specific workspace. Idempotent: re-granting an ACTIVE authorization updates its scopes; re-granting a REVOKED one flips it back to ACTIVE and clears the revoke fields. */
7508
7229
  grantAppWorkspaceAccess: AppWorkspaceAuthorization;
7509
7230
  grantConsent: ConsentRecord;
7510
7231
  grantCredits: CreditTransaction;
@@ -7518,63 +7239,29 @@ export type Mutation = {
7518
7239
  /** Mark webhook as ignored */
7519
7240
  ignoreWebhook: Scalars['Boolean']['output'];
7520
7241
  importSubscribers: ImportSubscribersResult;
7521
- /**
7522
- * Initialize billing roles for a billing account by cloning billing role templates.
7523
- * Use this when a new billing account is created.
7524
- *
7525
- * Returns the number of roles created (0 if roles already exist).
7526
- */
7242
+ /** Initialize billing roles for a billing account by cloning billing role templates. Use this when a new billing account is created. Returns the number of roles created (0 if roles already exist). */
7527
7243
  initializeBillingRoles: InitializeBillingRolesResult;
7528
- /**
7529
- * Initialize organization roles by cloning organization role templates.
7530
- * Use this when a new organization is created. The creator will be assigned the Owner role.
7531
- *
7532
- * Returns the number of roles created (0 if roles already exist).
7533
- *
7534
- * SECURITY: This mutation is restricted to service and super_admin actors only.
7535
- * It should be called by global-tenant-svc when an organization is created, not directly by users.
7536
- */
7244
+ /** Initialize organization roles by cloning organization role templates. Use this when a new organization is created. The creator will be assigned the Owner role. Returns the number of roles created (0 if roles already exist). SECURITY: This mutation is restricted to service and super_admin actors only. It should be called by global-tenant-svc when an organization is created, not directly by users. */
7537
7245
  initializeOrganizationRoles: InitializeOrganizationRolesResult;
7538
7246
  /** Initiate Kerberos SPNEGO authentication */
7539
7247
  initiateKerberosAuth: KerberosChallengeResult;
7540
7248
  /** Initiate NTLM authentication (returns Type 2 challenge) */
7541
7249
  initiateNTLMChallenge: NtlmChallengeResult;
7542
- /**
7543
- * Initiate a payment for credits, plans, or addons
7544
- * This creates a Stripe PaymentIntent or Razorpay Order with tax included
7545
- * Returns client secret (Stripe) or order ID (Razorpay) for frontend to complete payment
7546
- */
7250
+ /** Initiate a payment for credits, plans, or addons This creates a Stripe PaymentIntent or Razorpay Order with tax included Returns client secret (Stripe) or order ID (Razorpay) for frontend to complete payment */
7547
7251
  initiatePayment: InitiatePaymentResponse;
7548
7252
  /** Install an application */
7549
7253
  installApp: AppInstallation;
7550
- /**
7551
- * Install a purchased app to a workspace.
7552
- * Validates that the product was purchased before allowing installation.
7553
- * If orderId is not provided, will find the most recent processed order for this product.
7554
- */
7254
+ /** Install a purchased app to a workspace. Validates that the product was purchased before allowing installation. If orderId is not provided, will find the most recent processed order for this product. */
7555
7255
  installPurchasedApp: InstallPurchasedAppResult;
7556
7256
  /** Invite a user to join an organization */
7557
7257
  inviteDeveloperOrgMember: DeveloperOrgInvitation;
7558
7258
  /** Invite a user to an organization by email */
7559
7259
  inviteOrganizationMember: OrganizationInvite;
7560
- /**
7561
- * Public endpoint — no authentication required. Email is normalized (trimmed, lowercased).
7562
- * Must be protected by API gateway rate limiting (recommended: 5 req/min per IP).
7563
- */
7260
+ /** Public endpoint — no authentication required. Email is normalized (trimmed, lowercased). Must be protected by API gateway rate limiting (recommended: 5 req/min per IP). */
7564
7261
  joinWaitlist: NewsletterWaitlist;
7565
7262
  /** Leave an organization */
7566
7263
  leaveDeveloperOrganization: Scalars['Boolean']['output'];
7567
- /**
7568
- * Link a personal integration connection (from wspace-integrations-svc) to a bot channel.
7569
- * Called by microfe-botlit after the user completes OAuth in microfe-integrations.
7570
- *
7571
- * Steps performed internally:
7572
- * 1. Fetch IntegrationConnection data from wspace-integrations-svc via internal GQL
7573
- * 2. Extract platform identity (slackUserId / msUserId / discordUserId / phone) from metadata
7574
- * 3. Open a DM conversation using the bot token from ChannelConnection
7575
- * 4. Upsert UserPlatformConnection (source=OAUTH, dmAllowed=true, dmConversationId set)
7576
- * 5. Send welcome DM (Slack / Teams / Discord where supported)
7577
- */
7264
+ /** Link a personal integration connection (from wspace-integrations-svc) to a bot channel. Called by microfe-botlit after the user completes OAuth in microfe-integrations. Steps performed internally: 1. Fetch IntegrationConnection data from wspace-integrations-svc via internal GQL 2. Extract platform identity (slackUserId / msUserId / discordUserId / phone) from metadata 3. Open a DM conversation using the bot token from ChannelConnection 4. Upsert UserPlatformConnection (source=OAUTH, dmAllowed=true, dmConversationId set) 5. Send welcome DM (Slack / Teams / Discord where supported) */
7578
7265
  linkIntegrationConnection: UserPlatformConnection;
7579
7266
  linkTickets: TicketLink;
7580
7267
  /** Link wallet to existing user account */
@@ -7591,24 +7278,16 @@ export type Mutation = {
7591
7278
  markNotificationsByFilterAsRead: BatchOperationResult;
7592
7279
  /** Mark an order as refunded (admin) */
7593
7280
  markOrderRefunded: StoreOrder;
7281
+ markPayoutPaid: PayoutRequest;
7594
7282
  markReviewHelpful: ProductReview;
7595
7283
  /** Merge a guest cart into the current user's cart (after login) */
7596
7284
  mergeCart: CartPayload;
7597
7285
  mergeTickets: SupportTicket;
7598
7286
  /** Moderate a review (admin) */
7599
7287
  moderateAppReview: AppReview;
7600
- /**
7601
- * Erase newsletter subscriber data. With dryRun=true returns counts.
7602
- * Subscriber + per-list rows + automation enrolments PURGED.
7603
- * Suppression entry ANONYMISED (email hashed) — kept to honour CAN-SPAM
7604
- * unsubscribe permanence. Bounce/complaint/consent-audit rows anonymised
7605
- * but retained for deliverability forensics.
7606
- */
7288
+ /** Erase newsletter subscriber data. With dryRun=true returns counts. Subscriber + per-list rows + automation enrolments PURGED. Suppression entry ANONYMISED (email hashed) — kept to honour CAN-SPAM unsubscribe permanence. Bounce/complaint/consent-audit rows anonymised but retained for deliverability forensics. */
7607
7289
  newsletterEraseSubject: NewsletterEraseResult;
7608
- /**
7609
- * Export the subject's newsletter data: subscriber rows, per-list memberships,
7610
- * consent ledger entries, automation enrolments, waitlist entries.
7611
- */
7290
+ /** Export the subject's newsletter data: subscriber rows, per-list memberships, consent ledger entries, automation enrolments, waitlist entries. */
7612
7291
  newsletterExportSubject: Scalars['JSON']['output'];
7613
7292
  openCircuitBreaker: CircuitBreakerState;
7614
7293
  /** Pause a subscription */
@@ -7628,11 +7307,7 @@ export type Mutation = {
7628
7307
  processScheduledNotifications: Scalars['Int']['output'];
7629
7308
  /** Process a webhook manually (for retry) */
7630
7309
  processWebhook: WebhookProcessingResult;
7631
- /**
7632
- * Switch a tenant to DEDICATED mode and begin provisioning.
7633
- * Sets status to PROVISIONING until endpoint is set.
7634
- * If endpoint is provided, sets status directly to ACTIVE.
7635
- */
7310
+ /** Switch a tenant to DEDICATED mode and begin provisioning. Sets status to PROVISIONING until endpoint is set. If endpoint is provided, sets status directly to ACTIVE. */
7636
7311
  provisionDedicatedTenant: Tenant;
7637
7312
  /** Public unsubscribe via HMAC-signed token from email link. No authentication required. */
7638
7313
  publicUnsubscribeByToken: Scalars['Boolean']['output'];
@@ -7692,10 +7367,7 @@ export type Mutation = {
7692
7367
  /** Reject an organization invite (must be logged in as the invited user) */
7693
7368
  rejectOrganizationInvite: OrganizationInvite;
7694
7369
  rejectPayoutRequest: PayoutRequest;
7695
- /**
7696
- * Admin rejects a submitted product with a mandatory reason. Publisher can
7697
- * edit and resubmit afterwards.
7698
- */
7370
+ /** Admin rejects a submitted product with a mandatory reason. Publisher can edit and resubmit afterwards. */
7699
7371
  rejectProduct: StoreProduct;
7700
7372
  rejectPublisher: Publisher;
7701
7373
  rejectReview: ProductReview;
@@ -7732,24 +7404,15 @@ export type Mutation = {
7732
7404
  /** Remove a tag from a user */
7733
7405
  removeTagFromUser: AccountActionResult;
7734
7406
  removeTicketTags: SupportTicket;
7735
- /**
7736
- * Remove user's preference for a feature flag (reverts to default).
7737
- * RBAC is scoped to the target workspace.
7738
- */
7407
+ /** Remove user's preference for a feature flag (reverts to default). RBAC is scoped to the target workspace. */
7739
7408
  removeUserFeatureFlagPreference: Scalars['Boolean']['output'];
7740
7409
  /** Remove a visibility rule */
7741
7410
  removeVisibilityRule: Scalars['Boolean']['output'];
7742
- /**
7743
- * Remove a workspace override, reverting to the platform default.
7744
- * RBAC is scoped to the target workspace.
7745
- */
7411
+ /** Remove a workspace override, reverting to the platform default. RBAC is scoped to the target workspace. */
7746
7412
  removeWorkspaceFeatureFlagOverride: Scalars['Boolean']['output'];
7747
7413
  /** Remove a member from a workspace */
7748
7414
  removeWorkspaceMember: Scalars['Boolean']['output'];
7749
- /**
7750
- * Remove workspace metadata (membership and routing)
7751
- * Note: This only removes metadata. Use workspaces service to delete actual workspace content.
7752
- */
7415
+ /** Remove workspace metadata (membership and routing) Note: This only removes metadata. Use workspaces service to delete actual workspace content. */
7753
7416
  removeWorkspaceMetadata: Scalars['Boolean']['output'];
7754
7417
  /** Rename a passkey */
7755
7418
  renamePasskey: PasskeyInfo;
@@ -7767,10 +7430,7 @@ export type Mutation = {
7767
7430
  replaceChannelTags: Array<ChannelTagAssignment>;
7768
7431
  /** Replace all tags on a store product */
7769
7432
  replaceStoreProductTags: Array<StoreProductTagAssignment>;
7770
- /**
7771
- * Send an email reply to a contact inquiry. The reply is sent via the notification
7772
- * pipeline (notification-svc → channel-svc → email provider). Auto-updates status to REVIEWED.
7773
- */
7433
+ /** Send an email reply to a contact inquiry. The reply is sent via the notification pipeline (notification-svc → channel-svc → email provider). Auto-updates status to REVIEWED. */
7774
7434
  replyToContactInquiry: ContactInquiryReplyResult;
7775
7435
  replyToReview: ProductReviewReply;
7776
7436
  /** Report a review */
@@ -7778,10 +7438,7 @@ export type Mutation = {
7778
7438
  /** Reprocess a failed webhook event */
7779
7439
  reprocessWebhook: WebhookProcessingResult;
7780
7440
  requestBillingPayout: PayoutRequest;
7781
- /**
7782
- * Request a credit withdrawal. Converts purchased + earned credits to a PayoutRequest
7783
- * denominated in USD at the current credit rate. Uses the specified payout account for payment.
7784
- */
7441
+ /** Request a credit withdrawal. Converts purchased + earned credits to a PayoutRequest denominated in USD at the current credit rate. Uses the specified payout account for payment. */
7785
7442
  requestCreditWithdrawal: PayoutRequest;
7786
7443
  /** Request a manual payout (devportal legacy alias) */
7787
7444
  requestDeveloperOrgPayout: DeveloperOrgPayout;
@@ -7825,10 +7482,7 @@ export type Mutation = {
7825
7482
  resumeSLA: SupportTicket;
7826
7483
  resumeScheduledJob: ScheduledJob;
7827
7484
  retireSubprocessor: Subprocessor;
7828
- /**
7829
- * Manually retry GraphQL callback for a failed billing order (admin only)
7830
- * Useful for retrying after fixing issues in external service
7831
- */
7485
+ /** Manually retry GraphQL callback for a failed billing order (admin only) Useful for retrying after fixing issues in external service */
7832
7486
  retryBillingOrderCallback: RetryBillingOrderCallbackResponse;
7833
7487
  /** Retry a failed delivery attempt */
7834
7488
  retryDelivery: MessageDeliveryResult;
@@ -7838,18 +7492,14 @@ export type Mutation = {
7838
7492
  retryPayout: DeveloperOrgPayout;
7839
7493
  /** Retry a failed refund */
7840
7494
  retryRefund: ProcessRefundResult;
7495
+ /** Manually requeue a sync outbox entry for retry. The background reconciler will pick it up on its next tick — this mutation does not invoke the sync inline. Intended for PERMANENTLY_FAILED entries after the underlying problem (e.g. a downstream service that was down during signup) has been resolved. Resets attempts to 0 so the entry gets a fresh retry budget. */
7496
+ retrySyncOutboxEntry: RetrySyncOutboxResult;
7841
7497
  revertTranslation: Translation;
7842
7498
  reviewTranslation: Translation;
7843
7499
  revokeAPIKey: Scalars['Boolean']['output'];
7844
- /**
7845
- * Revoke all sessions except the current one.
7846
- * Returns the number of sessions that were revoked.
7847
- */
7500
+ /** Revoke all sessions except the current one. Returns the number of sessions that were revoked. */
7848
7501
  revokeAllSessions: RevokeAllSessionsResult;
7849
- /**
7850
- * Revoke an app's access to a workspace. Returns false if the row was already
7851
- * REVOKED or never existed.
7852
- */
7502
+ /** Revoke an app's access to a workspace. Returns false if the row was already REVOKED or never existed. */
7853
7503
  revokeAppWorkspaceAccess: Scalars['Boolean']['output'];
7854
7504
  revokeConsent: NewsletterConsent;
7855
7505
  revokeDelegation: Scalars['Boolean']['output'];
@@ -7858,17 +7508,11 @@ export type Mutation = {
7858
7508
  revokeHMACCredential: Scalars['Boolean']['output'];
7859
7509
  revokeLicense: ProductEntitlement;
7860
7510
  revokeSeat: LicenseSeat;
7861
- /**
7862
- * Revoke (log out) a specific session by ID.
7863
- * Returns true if the session was successfully revoked.
7864
- */
7511
+ /** Revoke (log out) a specific session by ID. Returns true if the session was successfully revoked. */
7865
7512
  revokeSession: Scalars['Boolean']['output'];
7866
7513
  /** Revoke a signed cookie session */
7867
7514
  revokeSignedCookieSession: Scalars['Boolean']['output'];
7868
- /**
7869
- * Revoke a user's platform connection (sets dmAllowed = false, clears tokens).
7870
- * Does NOT delete the record — keeps presence history intact.
7871
- */
7515
+ /** Revoke a user's platform connection (sets dmAllowed = false, clears tokens). Does NOT delete the record — keeps presence history intact. */
7872
7516
  revokeUserPlatformConnection: UserPlatformConnection;
7873
7517
  rollbackRelease: ProductRelease;
7874
7518
  rotateAPIKey: ApiKeyRotateResult;
@@ -7885,11 +7529,7 @@ export type Mutation = {
7885
7529
  scheduleNewsletter: Newsletter;
7886
7530
  /** Schedule a notification for future delivery */
7887
7531
  scheduleNotification: ScheduledNotification;
7888
- /**
7889
- * Seed default feature flags across all products.
7890
- * Creates all default flags if they don't already exist. Returns the count of newly created flags.
7891
- * Skips flags that already exist (by key uniqueness).
7892
- */
7532
+ /** Seed default feature flags across all products. Creates all default flags if they don't already exist. Returns the count of newly created flags. Skips flags that already exist (by key uniqueness). */
7893
7533
  seedDefaultFeatureFlags: Scalars['Int']['output'];
7894
7534
  /** Bulk create default shortcuts for a product */
7895
7535
  seedDefaultShortcuts: Scalars['Int']['output'];
@@ -7908,11 +7548,7 @@ export type Mutation = {
7908
7548
  setAgentOnline: AgentProfile;
7909
7549
  /** Set or update billing address for a billing account */
7910
7550
  setBillingAddress: BillingAddress;
7911
- /**
7912
- * Set a billing account as the default for an org.
7913
- * Only one billing account can be default per org.
7914
- * If another account is currently default, it will be unset.
7915
- */
7551
+ /** Set a billing account as the default for an org. Only one billing account can be default per org. If another account is currently default, it will be unset. */
7916
7552
  setDefaultBillingAccount: BillingAccount;
7917
7553
  setDefaultLanguage: Language;
7918
7554
  /** Set a payment method as default */
@@ -7923,21 +7559,12 @@ export type Mutation = {
7923
7559
  setNotificationTopicSubscription: NotificationTopicSubscription;
7924
7560
  /** Set default permission level for a role on a resource type */
7925
7561
  setRoleDefaultPermission: Role;
7926
- /**
7927
- * Set or update the endpoint URL for a DEDICATED tenant.
7928
- * Transitions PROVISIONING → ACTIVE when endpoint is set.
7929
- */
7562
+ /** Set or update the endpoint URL for a DEDICATED tenant. Transitions PROVISIONING → ACTIVE when endpoint is set. */
7930
7563
  setTenantEndpoint: Tenant;
7931
- /**
7932
- * Set user's opt-in/out preference for a previewable feature flag.
7933
- * RBAC is scoped to the target workspace via `input.workspaceId`.
7934
- */
7564
+ /** Set user's opt-in/out preference for a previewable feature flag. RBAC is scoped to the target workspace via `input.workspaceId`. */
7935
7565
  setUserFeatureFlagPreference: UserFeatureFlagPreference;
7936
7566
  setUserLanguagePreference: UserLanguagePreference;
7937
- /**
7938
- * Set workspace-level override for a feature flag (super admin or workspace admin).
7939
- * RBAC is scoped to the target workspace via `input.workspaceId`.
7940
- */
7567
+ /** Set workspace-level override for a feature flag (super admin or workspace admin). RBAC is scoped to the target workspace via `input.workspaceId`. */
7941
7568
  setWorkspaceFeatureFlagOverride: WorkspaceFeatureFlagOverride;
7942
7569
  setupMFA: MfaSetupResult;
7943
7570
  sideloadApp: StoreAppInstallation;
@@ -7958,42 +7585,19 @@ export type Mutation = {
7958
7585
  /** Mark a tour as started for a user */
7959
7586
  startTour: TourUserProgress;
7960
7587
  submitApplication: Application;
7961
- /**
7962
- * Submit an application to the store for review. Awaits the store-svc
7963
- * submit call and returns the application with the resulting store
7964
- * submission metadata attached to `metadata.storeSubmissionStatus`.
7965
- *
7966
- * The target store's requiresApproval flag decides whether the submission
7967
- * lands in PENDING_REVIEW (public default) or is auto-published (private
7968
- * registries that trust their publishers).
7969
- */
7588
+ /** Submit an application to the store for review. Awaits the store-svc submit call and returns the application with the resulting store submission metadata attached to `metadata.storeSubmissionStatus`. The target store's requiresApproval flag decides whether the submission lands in PENDING_REVIEW (public default) or is auto-published (private registries that trust their publishers). */
7970
7589
  submitApplicationForReview: Application;
7971
- /**
7972
- * Submit a contact inquiry from a public website (no authentication required).
7973
- * Validates reCAPTCHA token server-side using the product's secret key
7974
- * fetched from the tenant service via internal gateway.
7975
- */
7590
+ /** Submit a contact inquiry from a public website (no authentication required). Validates reCAPTCHA token server-side using the product's secret key fetched from the tenant service via internal gateway. */
7976
7591
  submitContactInquiry: SubmitContactInquiryResult;
7977
- /**
7978
- * Submit a product to its target store for review. The store's
7979
- * requiresApproval flag decides whether the product goes to PENDING_REVIEW
7980
- * or is auto-published.
7981
- */
7592
+ /** Submit a product to its target store for review. The store's requiresApproval flag decides whether the product goes to PENDING_REVIEW or is auto-published. */
7982
7593
  submitProduct: StoreProduct;
7983
7594
  submitPublisherVerification: Publisher;
7984
7595
  submitSatisfactionSurvey: CustomerSatisfactionSurvey;
7985
7596
  subscribe: NewsletterSubscriber;
7986
7597
  subscribeToStore: UserStoreSubscription;
7987
- /**
7988
- * Anonymise the subject across support records. With dryRun=true returns
7989
- * counts without mutating. Ticket bodies and agent resolution history are
7990
- * retained for legal-claims defence (`retainedForLegalReason: "claims-3yr"`).
7991
- */
7598
+ /** Anonymise the subject across support records. With dryRun=true returns counts without mutating. Ticket bodies and agent resolution history are retained for legal-claims defence (`retainedForLegalReason: "claims-3yr"`). */
7992
7599
  supportEraseSubject: SupportEraseResult;
7993
- /**
7994
- * Export the subject's support data: tickets they raised, messages they
7995
- * authored, contact inquiries, CSAT surveys submitted.
7996
- */
7600
+ /** Export the subject's support data: tickets they raised, messages they authored, contact inquiries, CSAT surveys submitted. */
7997
7601
  supportExportSubject: Scalars['JSON']['output'];
7998
7602
  suppressIdentifier: SuppressionEntry;
7999
7603
  /** Suspend an installation (admin) */
@@ -8006,17 +7610,9 @@ export type Mutation = {
8006
7610
  suspendTenant: Tenant;
8007
7611
  /** Suspend a workspace */
8008
7612
  suspendWorkspace: Workspace;
8009
- /**
8010
- * Sync tour steps (smart update in ONE call)
8011
- * Send all desired steps, backend handles: update existing, create new, delete removed
8012
- */
7613
+ /** Sync tour steps (smart update in ONE call) Send all desired steps, backend handles: update existing, create new, delete removed */
8013
7614
  syncTourSteps: Array<TourStep>;
8014
- /**
8015
- * Sync workspace metadata from workspace layer to global layer.
8016
- * Called by wspace-workspace-svc when a workspace is created directly via workspace layer.
8017
- * This is the reverse of syncFromGlobal - it syncs global ← wspace.
8018
- * Creates workspace metadata + owner membership in global-tenant-svc.
8019
- */
7615
+ /** Sync workspace metadata from workspace layer to global layer. Called by wspace-workspace-svc when a workspace is created directly via workspace layer. This is the reverse of syncFromGlobal - it syncs global ← wspace. Creates workspace metadata + owner membership in global-tenant-svc. */
8020
7616
  syncWorkspaceFromWspace: SyncWorkspaceFromWspaceResponse;
8021
7617
  tagChannel: ChannelTagAssignment;
8022
7618
  tagChannelConnection: ChannelConnectionTagAssignment;
@@ -8132,15 +7728,9 @@ export type Mutation = {
8132
7728
  updateKeyboardShortcut: KeyboardShortcut;
8133
7729
  updateKnowledgeBaseArticle: KnowledgeBaseArticle;
8134
7730
  updateLanguage: Language;
8135
- /**
8136
- * Update the current user's dashboard widget layout preferences.
8137
- * Replaces the dashboard.widgets array within preferences.
8138
- */
7731
+ /** Update the current user's dashboard widget layout preferences. Replaces the dashboard.widgets array within preferences. */
8139
7732
  updateMyDashboardPreferences: Scalars['JSON']['output'];
8140
- /**
8141
- * Update the current user's general preferences.
8142
- * Merges the provided JSON into the existing preferences field.
8143
- */
7733
+ /** Update the current user's general preferences. Merges the provided JSON into the existing preferences field. */
8144
7734
  updateMyPreferences: UserPreference;
8145
7735
  updateNewsletter: Newsletter;
8146
7736
  updateNewsletterAutomation: NewsletterAutomation;
@@ -8174,6 +7764,8 @@ export type Mutation = {
8174
7764
  updatePlatformProduct: PlatformProduct;
8175
7765
  /** Update an OPA policy reference */
8176
7766
  updatePolicyReference: PolicyReference;
7767
+ /** Update an existing press kit asset */
7768
+ updatePressKitAsset: ProductPressKitAsset;
8177
7769
  updateProduct: StoreProduct;
8178
7770
  updateQuota: Scalars['Boolean']['output'];
8179
7771
  /** Update RBAC configuration for a scope */
@@ -8189,18 +7781,11 @@ export type Mutation = {
8189
7781
  updateScheduleTemplate: ScheduleTemplate;
8190
7782
  updateScheduledJob: ScheduledJob;
8191
7783
  updateStore: Store;
8192
- /**
8193
- * Update order payment status (called by billing service callback)
8194
- *
8195
- * This is a PUBLIC mutation called by the billing service after payment completion
8196
- */
7784
+ /** Update order payment status (called by billing service callback) This is a PUBLIC mutation called by the billing service after payment completion */
8197
7785
  updateStoreOrderPaymentStatus: UpdateStoreOrderPaymentStatusResponse;
8198
7786
  updateSubprocessor: Subprocessor;
8199
7787
  updateSubscriber: NewsletterSubscriber;
8200
- /**
8201
- * Update the seat count on an active PER_SEAT subscription.
8202
- * Syncs quantity to the payment gateway and updates the seat quota ceiling.
8203
- */
7788
+ /** Update the seat count on an active PER_SEAT subscription. Syncs quantity to the payment gateway and updates the seat quota ceiling. */
8204
7789
  updateSubscriptionSeats: BillingSubscription;
8205
7790
  updateSupportMessage: SupportMessage;
8206
7791
  updateSupportTicket: SupportTicket;
@@ -8242,17 +7827,11 @@ export type Mutation = {
8242
7827
  /** Upload tour media */
8243
7828
  uploadTourMedia: TourMedia;
8244
7829
  upsertComplianceSettings: NewsletterComplianceSettings;
8245
- /**
8246
- * Create or update external OIDC configuration (Google, Microsoft, etc.)
8247
- * Admin only
8248
- */
7830
+ /** Create or update external OIDC configuration (Google, Microsoft, etc.) Admin only */
8249
7831
  upsertExternalOIDCConfig: ExternalOidcConfiguration;
8250
7832
  /** Create or update fulfillment details for an order (admin) */
8251
7833
  upsertOrderFulfillment: OrderFulfillment;
8252
- /**
8253
- * Upsert a platform connection from a passively-observed webhook event (source = SEEN).
8254
- * Used by WebhookProcessor to track users without granting DM access.
8255
- */
7834
+ /** Upsert a platform connection from a passively-observed webhook event (source = SEEN). Used by WebhookProcessor to track users without granting DM access. */
8256
7835
  upsertSeenUser: UserPlatformConnection;
8257
7836
  useCannedResponse: CannedResponse;
8258
7837
  validateApiKey: TokenValidationResponse;
@@ -8273,17 +7852,7 @@ export type Mutation = {
8273
7852
  /** Verify a payment method (micro-deposits) */
8274
7853
  verifyPaymentMethod: DeveloperOrgPaymentMethod;
8275
7854
  verifyPublisherPayoutMethod: PublisherPayoutMethod;
8276
- /**
8277
- * Verify a WhatsApp pairing code entered by the user in the dashboard.
8278
- * Called by wspace-integrations-svc during its CUSTOM auth step.
8279
- *
8280
- * Looks up the UserPlatformConnection (source=SEEN) for the channel + phone number,
8281
- * checks the pairing code matches and has not expired, then:
8282
- * - Sets pairingStatus = APPROVED
8283
- * - Sets dmAllowed = true
8284
- * - Sets dmConversationId to the WhatsApp JID format
8285
- * Returns true on success, throws on failure.
8286
- */
7855
+ /** Verify a WhatsApp pairing code entered by the user in the dashboard. Called by wspace-integrations-svc during its CUSTOM auth step. Looks up the UserPlatformConnection (source=SEEN) for the channel + phone number, checks the pairing code matches and has not expired, then: - Sets pairingStatus = APPROVED - Sets dmAllowed = true - Sets dmConversationId to the WhatsApp JID format Returns true on success, throws on failure. */
8287
7856
  verifyWhatsAppPairingCode: Scalars['Boolean']['output'];
8288
7857
  /** Void an invoice */
8289
7858
  voidInvoice: Invoice;
@@ -8772,7 +8341,6 @@ export type MutationCompleteStepArgs = {
8772
8341
  };
8773
8342
  /** Root mutation type */
8774
8343
  export type MutationCompleteSupportAttachmentUploadArgs = {
8775
- folderId: Scalars['ID']['input'];
8776
8344
  sessionId: Scalars['ID']['input'];
8777
8345
  ticketId: Scalars['ID']['input'];
8778
8346
  };
@@ -9031,6 +8599,10 @@ export type MutationCreatePolicyReferenceArgs = {
9031
8599
  input: CreatePolicyReferenceInput;
9032
8600
  };
9033
8601
  /** Root mutation type */
8602
+ export type MutationCreatePressKitAssetArgs = {
8603
+ input: CreatePressKitAssetInput;
8604
+ };
8605
+ /** Root mutation type */
9034
8606
  export type MutationCreateProductArgs = {
9035
8607
  input: CreateProductInput;
9036
8608
  };
@@ -9451,6 +9023,10 @@ export type MutationDeletePolicyReferenceArgs = {
9451
9023
  id: Scalars['ID']['input'];
9452
9024
  };
9453
9025
  /** Root mutation type */
9026
+ export type MutationDeletePressKitAssetArgs = {
9027
+ id: Scalars['ID']['input'];
9028
+ };
9029
+ /** Root mutation type */
9454
9030
  export type MutationDeleteProductArgs = {
9455
9031
  id: Scalars['ID']['input'];
9456
9032
  };
@@ -9932,6 +9508,12 @@ export type MutationMarkOrderRefundedArgs = {
9932
9508
  reason?: InputMaybe<Scalars['String']['input']>;
9933
9509
  };
9934
9510
  /** Root mutation type */
9511
+ export type MutationMarkPayoutPaidArgs = {
9512
+ externalReference?: InputMaybe<Scalars['String']['input']>;
9513
+ id: Scalars['ID']['input'];
9514
+ notes?: InputMaybe<Scalars['String']['input']>;
9515
+ };
9516
+ /** Root mutation type */
9935
9517
  export type MutationMarkReviewHelpfulArgs = {
9936
9518
  id: Scalars['ID']['input'];
9937
9519
  };
@@ -10564,6 +10146,10 @@ export type MutationRetryRefundArgs = {
10564
10146
  id: Scalars['ID']['input'];
10565
10147
  };
10566
10148
  /** Root mutation type */
10149
+ export type MutationRetrySyncOutboxEntryArgs = {
10150
+ id: Scalars['ID']['input'];
10151
+ };
10152
+ /** Root mutation type */
10567
10153
  export type MutationRevertTranslationArgs = {
10568
10154
  id: Scalars['ID']['input'];
10569
10155
  versionId: Scalars['ID']['input'];
@@ -11360,6 +10946,11 @@ export type MutationUpdatePolicyReferenceArgs = {
11360
10946
  input: UpdatePolicyReferenceInput;
11361
10947
  };
11362
10948
  /** Root mutation type */
10949
+ export type MutationUpdatePressKitAssetArgs = {
10950
+ id: Scalars['ID']['input'];
10951
+ input: UpdatePressKitAssetInput;
10952
+ };
10953
+ /** Root mutation type */
11363
10954
  export type MutationUpdateProductArgs = {
11364
10955
  input: UpdateProductInput;
11365
10956
  };
@@ -11675,12 +11266,7 @@ export type MutationVoteOnAppReviewArgs = {
11675
11266
  export type MutationWithdrawConsentArgs = {
11676
11267
  input: WithdrawConsentInput;
11677
11268
  };
11678
- /**
11679
- * Filter inputs for `myContactInquiries`.
11680
- * Search and email-filter are deliberately not exposed — the query is already
11681
- * scoped to the caller's email, so a full-text search across `name`/`subject`
11682
- * would only surface inquiries the caller already owns.
11683
- */
11269
+ /** Filter inputs for `myContactInquiries`. Search and email-filter are deliberately not exposed — the query is already scoped to the caller's email, so a full-text search across `name`/`subject` would only surface inquiries the caller already owns. */
11684
11270
  export type MyContactInquiryFilterInput = {
11685
11271
  /** Filter by product ID */
11686
11272
  productId?: InputMaybe<Scalars['String']['input']>;
@@ -11801,11 +11387,7 @@ export type NewsletterConsent = {
11801
11387
  subscriberId: Scalars['String']['output'];
11802
11388
  userAgent?: Maybe<Scalars['String']['output']>;
11803
11389
  };
11804
- /**
11805
- * Newsletter-specific context output type.
11806
- * Returns the stored context for each record.
11807
- * Module-specific to avoid federation conflicts with OperationContext in other subgraphs.
11808
- */
11390
+ /** Newsletter-specific context output type. Returns the stored context for each record. Module-specific to avoid federation conflicts with OperationContext in other subgraphs. */
11809
11391
  export type NewsletterContext = {
11810
11392
  __typename?: 'NewsletterContext';
11811
11393
  /** Additional custom context as JSON */
@@ -11823,10 +11405,7 @@ export type NewsletterContext = {
11823
11405
  /** Workspace ID for workspace-level scoping */
11824
11406
  workspaceId?: Maybe<Scalars['ID']['output']>;
11825
11407
  };
11826
- /**
11827
- * Newsletter context filter input for querying records by context.
11828
- * Supports exact match filtering on context fields.
11829
- */
11408
+ /** Newsletter context filter input for querying records by context. Supports exact match filtering on context fields. */
11830
11409
  export type NewsletterContextFilterInput = {
11831
11410
  /** Filter by organization ID */
11832
11411
  organizationId?: InputMaybe<Scalars['ID']['input']>;
@@ -11841,10 +11420,7 @@ export type NewsletterContextFilterInput = {
11841
11420
  /** Filter by workspace ID */
11842
11421
  workspaceId?: InputMaybe<Scalars['ID']['input']>;
11843
11422
  };
11844
- /**
11845
- * Newsletter context input for filtering and scoping data.
11846
- * All fields are optional and can be extended as needed.
11847
- */
11423
+ /** Newsletter context input for filtering and scoping data. All fields are optional and can be extended as needed. */
11848
11424
  export type NewsletterContextInput = {
11849
11425
  /** Additional custom context as JSON */
11850
11426
  custom?: InputMaybe<Scalars['JSON']['input']>;
@@ -12491,10 +12067,7 @@ export type OidcHybridConfig = {
12491
12067
  supportedGrantTypes: Array<Scalars['String']['output']>;
12492
12068
  supportedResponseTypes: Array<Scalars['String']['output']>;
12493
12069
  };
12494
- /**
12495
- * Operation context output type.
12496
- * Returns the stored context for each record.
12497
- */
12070
+ /** Operation context output type. Returns the stored context for each record. */
12498
12071
  export type OperationContext = {
12499
12072
  __typename?: 'OperationContext';
12500
12073
  /** App ID for app-level scoping */
@@ -12644,10 +12217,7 @@ export type OrderStatusUpdatedEvent = {
12644
12217
  updatedAt: Scalars['String']['output'];
12645
12218
  workspaceId?: Maybe<Scalars['ID']['output']>;
12646
12219
  };
12647
- /**
12648
- * Organization type stub - represents an organization entity from another service
12649
- * This service doesn't own the Organization model, but references it
12650
- */
12220
+ /** Organization type stub - represents an organization entity from another service This service doesn't own the Organization model, but references it */
12651
12221
  export type Organization = {
12652
12222
  __typename?: 'Organization';
12653
12223
  createdAt: Scalars['DateTime']['output'];
@@ -12709,11 +12279,7 @@ export type OrganizationAuditLogPageInfo = {
12709
12279
  endCursor?: Maybe<Scalars['String']['output']>;
12710
12280
  hasNextPage: Scalars['Boolean']['output'];
12711
12281
  };
12712
- /**
12713
- * Inline export payload for `exportOrganizationsCsv`. Returns CSV text along
12714
- * with a count of rows and a flag if the result was capped at the requested
12715
- * limit. Pattern mirrors `TenantExport` from the tenant module.
12716
- */
12282
+ /** Inline export payload for `exportOrganizationsCsv`. Returns CSV text along with a count of rows and a flag if the result was capped at the requested limit. Pattern mirrors `TenantExport` from the tenant module. */
12717
12283
  export type OrganizationCsvExport = {
12718
12284
  __typename?: 'OrganizationCsvExport';
12719
12285
  csv: Scalars['String']['output'];
@@ -12809,10 +12375,7 @@ export type PageInfo = {
12809
12375
  hasPreviousPage: Scalars['Boolean']['output'];
12810
12376
  startCursor?: Maybe<Scalars['String']['output']>;
12811
12377
  };
12812
- /**
12813
- * Response type for getTransactionsByBillingAccount query
12814
- * Contains basic billing account info and paginated transactions
12815
- */
12378
+ /** Response type for getTransactionsByBillingAccount query Contains basic billing account info and paginated transactions */
12816
12379
  export type PaginatedBillingAccountTransactions = {
12817
12380
  __typename?: 'PaginatedBillingAccountTransactions';
12818
12381
  /** Billing-specific email (for invoices) */
@@ -13051,10 +12614,7 @@ export declare enum PaymentMethodType {
13051
12614
  Paypal = "PAYPAL",
13052
12615
  Wallet = "WALLET"
13053
12616
  }
13054
- /**
13055
- * Payment provider configuration for frontend integration
13056
- * Contains only public keys safe to expose to the client
13057
- */
12617
+ /** Payment provider configuration for frontend integration Contains only public keys safe to expose to the client */
13058
12618
  export type PaymentProviderConfig = {
13059
12619
  __typename?: 'PaymentProviderConfig';
13060
12620
  /** Whether Razorpay is configured and available */
@@ -13304,19 +12864,13 @@ export type Plan = {
13304
12864
  createdAt?: Maybe<Scalars['DateTime']['output']>;
13305
12865
  /** The currency in which the plan is priced. Defaults to 'USD'. */
13306
12866
  currency?: Maybe<Scalars['String']['output']>;
13307
- /**
13308
- * Prices for all supported currencies with beautiful rounding.
13309
- * Example: { "USD": 2.00, "INR": 199, "EUR": 1.99, "GBP": 1.79 }
13310
- */
12867
+ /** Prices for all supported currencies with beautiful rounding. Example: { "USD": 2.00, "INR": 199, "EUR": 1.99, "GBP": 1.79 } */
13311
12868
  currencyPrices?: Maybe<Scalars['JSON']['output']>;
13312
12869
  /** The duration for which the plan is valid (e.g., monthly, yearly). Defaults to 'monthly'. */
13313
12870
  duration?: Maybe<PlanDuration>;
13314
12871
  /** A list of features provided by this plan, such as quotas or special services. */
13315
12872
  features?: Maybe<Array<Maybe<SubscriptionFeatures>>>;
13316
- /**
13317
- * Geography-specific price overrides. The billing account's country/state/region plus
13318
- * currency decide whether one of these overrides applies.
13319
- */
12873
+ /** Geography-specific price overrides. The billing account's country/state/region plus currency decide whether one of these overrides applies. */
13320
12874
  geoPricingOverrides: Array<GeoPricingOverride>;
13321
12875
  /** The unique identifier for the Plan, automatically generated as a UUID. */
13322
12876
  id?: Maybe<Scalars['ID']['output']>;
@@ -13334,15 +12888,9 @@ export type Plan = {
13334
12888
  price?: Maybe<Scalars['Float']['output']>;
13335
12889
  /** Historical record of price changes for this plan */
13336
12890
  priceHistory: Array<PlanPriceHistory>;
13337
- /**
13338
- * Per-seat rate used when pricingModel is PER_SEAT.
13339
- * Total charge = pricePerSeat × seatCount.
13340
- */
12891
+ /** Per-seat rate used when pricingModel is PER_SEAT. Total charge = pricePerSeat × seatCount. */
13341
12892
  pricePerSeat?: Maybe<Scalars['Float']['output']>;
13342
- /**
13343
- * Whether this plan bills at a flat rate or per seat.
13344
- * PER_SEAT plans pass seatCount as quantity to Stripe/Razorpay.
13345
- */
12893
+ /** Whether this plan bills at a flat rate or per seat. PER_SEAT plans pass seatCount as quantity to Stripe/Razorpay. */
13346
12894
  pricingModel?: Maybe<PlanPricingModel>;
13347
12895
  /** Which product the plan belongs to (reference to product microservice) */
13348
12896
  productID?: Maybe<Scalars['String']['output']>;
@@ -13355,10 +12903,7 @@ export declare enum PlanDuration {
13355
12903
  Monthly = "monthly",
13356
12904
  Yearly = "yearly"
13357
12905
  }
13358
- /**
13359
- * Tracks historical price changes for a Plan.
13360
- * A new record is created whenever a plan's price is updated.
13361
- */
12906
+ /** Tracks historical price changes for a Plan. A new record is created whenever a plan's price is updated. */
13362
12907
  export type PlanPriceHistory = {
13363
12908
  __typename?: 'PlanPriceHistory';
13364
12909
  /** Who made the price change (actor ID) */
@@ -13390,11 +12935,7 @@ export type PlanQuotaInput = {
13390
12935
  quotaId: Scalars['ID']['input'];
13391
12936
  };
13392
12937
  export type PlansFilter = {
13393
- /**
13394
- * Include free plans (price = 0) in the response.
13395
- * Defaults to true. Set to false on user-facing browse pages
13396
- * since free plans are auto-assigned and cannot be purchased.
13397
- */
12938
+ /** Include free plans (price = 0) in the response. Defaults to true. Set to false on user-facing browse pages since free plans are auto-assigned and cannot be purchased. */
13398
12939
  includeFree?: InputMaybe<Scalars['Boolean']['input']>;
13399
12940
  /** Filter plans by product ID. When set, only plans with this productID are returned. */
13400
12941
  productId?: InputMaybe<Scalars['String']['input']>;
@@ -13411,10 +12952,7 @@ export type PlatformDeliveryResult = {
13411
12952
  /** Whether at least one recipient was delivered successfully */
13412
12953
  success: Scalars['Boolean']['output'];
13413
12954
  };
13414
- /**
13415
- * PlatformProduct entity - resolvable via Federation Gateway.
13416
- * Other services can reference PlatformProduct by id or slug.
13417
- */
12955
+ /** PlatformProduct entity - resolvable via Federation Gateway. Other services can reference PlatformProduct by id or slug. */
13418
12956
  export type PlatformProduct = {
13419
12957
  __typename?: 'PlatformProduct';
13420
12958
  /** Number of active users */
@@ -13455,11 +12993,7 @@ export type PlatformProduct = {
13455
12993
  ogImage?: Maybe<Scalars['String']['output']>;
13456
12994
  /** Google Play Store URL */
13457
12995
  playStoreUrl?: Maybe<Scalars['String']['output']>;
13458
- /**
13459
- * reCAPTCHA secret key (server-side) for backend verification.
13460
- * Only accessible via internal gateway (platformProduct query requires auth).
13461
- * The publicProduct query does NOT resolve this field.
13462
- */
12996
+ /** reCAPTCHA secret key (server-side) for backend verification. Only accessible via internal gateway (platformProduct query requires auth). The publicProduct query does NOT resolve this field. */
13463
12997
  recaptchaSecretKey?: Maybe<Scalars['String']['output']>;
13464
12998
  /** reCAPTCHA site key (public) for frontend verification */
13465
12999
  recaptchaSiteKey?: Maybe<Scalars['String']['output']>;
@@ -13555,6 +13089,25 @@ export type PrepareSupportAttachmentUploadInput = {
13555
13089
  mimeType: Scalars['String']['input'];
13556
13090
  ticketId: Scalars['ID']['input'];
13557
13091
  };
13092
+ export declare enum PressKitAssetCategory {
13093
+ Banner = "BANNER",
13094
+ BrandGuide = "BRAND_GUIDE",
13095
+ Brochure = "BROCHURE",
13096
+ Document = "DOCUMENT",
13097
+ Logo = "LOGO",
13098
+ PressRelease = "PRESS_RELEASE",
13099
+ Screenshot = "SCREENSHOT"
13100
+ }
13101
+ export type PressKitAssetFilterInput = {
13102
+ /** Filter by category (LOGO, BANNER, BROCHURE, ...) */
13103
+ category?: InputMaybe<PressKitAssetCategory>;
13104
+ /** Search in title or slug */
13105
+ search?: InputMaybe<Scalars['String']['input']>;
13106
+ /** Filter by a tag. Matches assets whose tags array contains this value. */
13107
+ tag?: InputMaybe<Scalars['String']['input']>;
13108
+ /** Filter by visibility level */
13109
+ visibility?: InputMaybe<ContentVisibility>;
13110
+ };
13558
13111
  /** Price range in results */
13559
13112
  export type PriceRange = {
13560
13113
  __typename?: 'PriceRange';
@@ -13662,27 +13215,32 @@ export type ProductChartSnapshot = {
13662
13215
  storeId?: Maybe<Scalars['ID']['output']>;
13663
13216
  window: Scalars['String']['output'];
13664
13217
  };
13665
- /**
13666
- * A content page (privacy policy, terms of service, etc.) stored in markdown format.
13667
- * Supports global defaults (productId = null) and per-product overrides.
13668
- */
13218
+ /** A content page (privacy policy, terms of service, etc.) stored in markdown format. Supports global defaults (productId = null) and per-product overrides. */
13669
13219
  export type ProductContentPage = {
13670
13220
  __typename?: 'ProductContentPage';
13221
+ author?: Maybe<Scalars['String']['output']>;
13222
+ category?: Maybe<Scalars['String']['output']>;
13671
13223
  content: Scalars['String']['output'];
13672
13224
  contentFormat: Scalars['String']['output'];
13673
13225
  createdAt: Scalars['DateTime']['output'];
13226
+ /** Blog/article fields */
13227
+ excerpt?: Maybe<Scalars['String']['output']>;
13228
+ featured: Scalars['Boolean']['output'];
13674
13229
  id: Scalars['ID']['output'];
13675
13230
  isPublished: Scalars['Boolean']['output'];
13676
13231
  lastUpdated: Scalars['DateTime']['output'];
13677
13232
  product?: Maybe<PlatformProduct>;
13678
13233
  productId?: Maybe<Scalars['String']['output']>;
13234
+ publishedAt?: Maybe<Scalars['DateTime']['output']>;
13235
+ readingTime?: Maybe<Scalars['Int']['output']>;
13679
13236
  seoDescription?: Maybe<Scalars['String']['output']>;
13680
13237
  seoKeywords?: Maybe<Scalars['String']['output']>;
13681
13238
  seoTitle?: Maybe<Scalars['String']['output']>;
13682
13239
  slug: Scalars['String']['output'];
13683
13240
  sortOrder: Scalars['Int']['output'];
13684
- /** Searchable tags for this page (e.g. "legal", "privacy") */
13241
+ /** Searchable tags for this page (e.g. "legal", "privacy", "blog") */
13685
13242
  tags: Array<Scalars['String']['output']>;
13243
+ thumbnail?: Maybe<Scalars['String']['output']>;
13686
13244
  title: Scalars['String']['output'];
13687
13245
  updatedAt: Scalars['DateTime']['output'];
13688
13246
  version: Scalars['Int']['output'];
@@ -13738,6 +13296,35 @@ export declare enum ProductNature {
13738
13296
  Digital = "DIGITAL",
13739
13297
  Physical = "PHYSICAL"
13740
13298
  }
13299
+ /** A downloadable press/media asset (logo, banner, brochure, document, etc.) scoped to a product. Public by default — shown on the product /press page. */
13300
+ export type ProductPressKitAsset = {
13301
+ __typename?: 'ProductPressKitAsset';
13302
+ category: PressKitAssetCategory;
13303
+ createdAt: Scalars['DateTime']['output'];
13304
+ description?: Maybe<Scalars['String']['output']>;
13305
+ fileName?: Maybe<Scalars['String']['output']>;
13306
+ fileSize?: Maybe<Scalars['Int']['output']>;
13307
+ fileUrl: Scalars['String']['output'];
13308
+ id: Scalars['ID']['output'];
13309
+ mimeType?: Maybe<Scalars['String']['output']>;
13310
+ product?: Maybe<PlatformProduct>;
13311
+ productId: Scalars['String']['output'];
13312
+ slug: Scalars['String']['output'];
13313
+ sortOrder: Scalars['Int']['output'];
13314
+ tags: Array<Scalars['String']['output']>;
13315
+ thumbnailUrl?: Maybe<Scalars['String']['output']>;
13316
+ title: Scalars['String']['output'];
13317
+ updatedAt: Scalars['DateTime']['output'];
13318
+ version?: Maybe<Scalars['String']['output']>;
13319
+ /** Access control: PUBLIC (no auth), AUTHENTICATED (login), INTERNAL (admin only) */
13320
+ visibility: ContentVisibility;
13321
+ };
13322
+ export type ProductPressKitAssetList = {
13323
+ __typename?: 'ProductPressKitAssetList';
13324
+ hasMore: Scalars['Boolean']['output'];
13325
+ items: Array<ProductPressKitAsset>;
13326
+ total: Scalars['Int']['output'];
13327
+ };
13741
13328
  /** Rating distribution for filter refinement (product ratings) */
13742
13329
  export type ProductRatingDistribution = {
13743
13330
  __typename?: 'ProductRatingDistribution';
@@ -14058,15 +13645,9 @@ export type PushMfaStatus = {
14058
13645
  /** Root query type */
14059
13646
  export type Query = {
14060
13647
  __typename?: 'Query';
14061
- /**
14062
- * Placeholder field to allow empty Query type extension.
14063
- * Must be @shareable since it exists in multiple subgraphs.
14064
- */
13648
+ /** Placeholder field to allow empty Query type extension. Must be @shareable since it exists in multiple subgraphs. */
14065
13649
  _empty?: Maybe<Scalars['String']['output']>;
14066
- /**
14067
- * Health check for the service
14068
- * @rbac(public: true, scopeType: "global")
14069
- */
13650
+ /** Health check for the service @rbac(public: true, scopeType: "global") */
14070
13651
  _health: Scalars['String']['output'];
14071
13652
  _newsletterSubscriptionsPlaceholder?: Maybe<Scalars['String']['output']>;
14072
13653
  _privacyHealth?: Maybe<Scalars['String']['output']>;
@@ -14074,10 +13655,7 @@ export type Query = {
14074
13655
  actionDefinitions: Array<ActionDefinition>;
14075
13656
  /** Get all active schedules (for background processing) */
14076
13657
  activeSchedules: Array<TourSchedule>;
14077
- /**
14078
- * Get all active sessions for the current user.
14079
- * The `isCurrent` field indicates which session belongs to this request.
14080
- */
13658
+ /** Get all active sessions for the current user. The `isCurrent` field indicates which session belongs to this request. */
14081
13659
  activeSessions: SessionConnection;
14082
13660
  activityLog?: Maybe<ActivityLog>;
14083
13661
  activityLogs: ActivityLogConnection;
@@ -14102,6 +13680,10 @@ export type Query = {
14102
13680
  agentProfile?: Maybe<AgentProfile>;
14103
13681
  agentProfileByUserId?: Maybe<AgentProfile>;
14104
13682
  agentProfiles: AgentProfileConnection;
13683
+ /** Admin query: list all organizations in the platform (optionally filtered). Requires global 'organization:read' permission — super admins and platform admins only. For end-user "my orgs" access use myOrganizations instead. */
13684
+ allOrganizations: OrganizationList;
13685
+ /** Admin query: list all workspaces in the platform (optionally filtered). Requires global 'workspace:read' permission — super admins and platform admins only. For end-user "my workspaces" access use myWorkspaces instead. */
13686
+ allWorkspaces: WorkspaceList;
14105
13687
  app?: Maybe<App>;
14106
13688
  /** List API keys for a specific app */
14107
13689
  appApiKeys: ApiKeyConnection;
@@ -14126,10 +13708,7 @@ export type Query = {
14126
13708
  application?: Maybe<Application>;
14127
13709
  applicationAnalytics: Array<ApplicationAnalytics>;
14128
13710
  applications: ApplicationConnection;
14129
- /**
14130
- * Internal: get all approved waitlist entries for an email.
14131
- * Used by tenant-svc for product access checks.
14132
- */
13711
+ /** Internal: get all approved waitlist entries for an email. Used by tenant-svc for product access checks. */
14133
13712
  approvedWaitlistProducts: Array<NewsletterWaitlist>;
14134
13713
  appsActingAsCurrentUser: AppConnection;
14135
13714
  auditLogs: AuditLogConnection;
@@ -14141,44 +13720,12 @@ export type Query = {
14141
13720
  automationSubscribers: Array<AutomationSubscriber>;
14142
13721
  availableAgents: Array<AgentProfile>;
14143
13722
  availableAuthMethods: Array<AuthMethod>;
14144
- /**
14145
- * Get available preview features the user can opt-in to within a workspace.
14146
- * Returns only flags that are previewable, active, and allowed by workspace admin.
14147
- * Bounded by limit/offset to avoid unbounded fetches.
14148
- */
13723
+ /** Get available preview features the user can opt-in to within a workspace. Returns only flags that are previewable, active, and allowed by workspace admin. Bounded by limit/offset to avoid unbounded fetches. */
14149
13724
  availableFeaturePreviews: Array<FeatureFlag>;
14150
13725
  bounceStats: BounceStats;
14151
- /**
14152
- * Browse store products with unified filtering, sorting, and pagination.
14153
- * Search is treated as a filter - all filters combine with AND logic.
14154
- *
14155
- * Example usage:
14156
- * ```graphql
14157
- * query {
14158
- * browseStore(input: {
14159
- * filter: {
14160
- * search: "ai notification"
14161
- * type: NODE
14162
- * pricingModel: FREE
14163
- * minRating: 4.0
14164
- * compatibleWith: "workspaces"
14165
- * }
14166
- * sortBy: RELEVANCE
14167
- * pagination: { limit: 20, offset: 0 }
14168
- * }) {
14169
- * products { id name rating downloads }
14170
- * totalCount
14171
- * hasMore
14172
- * facets { categories { value count } }
14173
- * }
14174
- * }
14175
- * ```
14176
- */
13726
+ /** Browse store products with unified filtering, sorting, and pagination. Search is treated as a filter - all filters combine with AND logic. Example usage: ```graphql query { browseStore(input: { filter: { search: "ai notification" type: NODE pricingModel: FREE minRating: 4.0 compatibleWith: "workspaces" } sortBy: RELEVANCE pagination: { limit: 20, offset: 0 } }) { products { id name rating downloads } totalCount hasMore facets { categories { value count } } } } ``` */
14177
13727
  browseStore: BrowseStoreResult;
14178
- /**
14179
- * Calculate tax for a purchase (preview without creating payment)
14180
- * Used by checkout to show tax breakdown before payment
14181
- */
13728
+ /** Calculate tax for a purchase (preview without creating payment) Used by checkout to show tax breakdown before payment */
14182
13729
  calculateTax: TaxCalculationResult;
14183
13730
  campaign?: Maybe<NewsletterCampaign>;
14184
13731
  campaignBounces: Array<NewsletterBounce>;
@@ -14205,10 +13752,7 @@ export type Query = {
14205
13752
  checkPermissions: Array<PermissionCheckResult>;
14206
13753
  /** Check if a plan has an entitlement for a specific store item */
14207
13754
  checkPlanEntitlement?: Maybe<SubscriptionEntitlement>;
14208
- /**
14209
- * Check if the current user can access a specific product.
14210
- * Returns access status and reason.
14211
- */
13755
+ /** Check if the current user can access a specific product. Returns access status and reason. */
14212
13756
  checkProductAccess: ProductAccessResult;
14213
13757
  checkQuotaExhausted: QuotaCheckResult;
14214
13758
  /** Check if an actor can see a resource */
@@ -14218,10 +13762,7 @@ export type Query = {
14218
13762
  circuitBreakerStatus?: Maybe<CircuitBreakerState>;
14219
13763
  compareVariants: VariantComparisonResult;
14220
13764
  complaintStats: ComplaintStats;
14221
- /**
14222
- * Returns compliance-related audit events (consent changes, suppressions, bounces, complaints)
14223
- * for a given platform product, sorted by most recent first.
14224
- */
13765
+ /** Returns compliance-related audit events (consent changes, suppressions, bounces, complaints) for a given platform product, sorted by most recent first. */
14225
13766
  complianceAuditLog: Array<ComplianceAuditLogEntry>;
14226
13767
  complianceSettings?: Maybe<NewsletterComplianceSettings>;
14227
13768
  consentLedger: ConsentRecordConnection;
@@ -14232,17 +13773,11 @@ export type Query = {
14232
13773
  contactInquiry?: Maybe<ContactInquiry>;
14233
13774
  /** Get a single content page by ID */
14234
13775
  contentPage?: Maybe<ProductContentPage>;
14235
- /**
14236
- * Get a content page by slug and optional product ID.
14237
- * If productId is null, returns the global default page.
14238
- */
13776
+ /** Get a content page by slug and optional product ID. If productId is null, returns the global default page. */
14239
13777
  contentPageBySlug?: Maybe<ProductContentPage>;
14240
13778
  /** List content pages with optional filtering by product */
14241
13779
  contentPages: ProductContentPageList;
14242
- /**
14243
- * Convert an amount from one currency to another (uses live exchange rates)
14244
- * Default fromCurrency is USD
14245
- */
13780
+ /** Convert an amount from one currency to another (uses live exchange rates) Default fromCurrency is USD */
14246
13781
  convertCurrency: CurrencyConversion;
14247
13782
  currentUser?: Maybe<User>;
14248
13783
  currentUserApps: AppConnection;
@@ -14315,26 +13850,12 @@ export type Query = {
14315
13850
  estimateNewsletterRecipients: NewsletterRecipientEstimate;
14316
13851
  /** Estimate shipping for an order with a specific method */
14317
13852
  estimateOrderShipping: OrderShippingEstimate;
14318
- /**
14319
- * Evaluate feature flags for the current actor in a workspace context.
14320
- * Used by frontend providers for bulk flag evaluation.
14321
- * Returns OpenFeature-compatible ResolutionDetails for each flag.
14322
- * RBAC is scoped to the target workspace via `input.workspaceId`.
14323
- */
13853
+ /** Evaluate feature flags for the current actor in a workspace context. Used by frontend providers for bulk flag evaluation. Returns OpenFeature-compatible ResolutionDetails for each flag. RBAC is scoped to the target workspace via `input.workspaceId`. */
14324
13854
  evaluateFeatureFlags: FeatureFlagBulkEvaluation;
14325
- /**
14326
- * Synchronous super_admin export of organizations as a CSV string. Returns
14327
- * inline CSV (RFC-4180 with CWE-1236 protection) plus row count and a
14328
- * truncated flag indicating the result was capped at the requested limit.
14329
- */
13855
+ /** Synchronous super_admin export of organizations as a CSV string. Returns inline CSV (RFC-4180 with CWE-1236 protection) plus row count and a truncated flag indicating the result was capped at the requested limit. */
14330
13856
  exportOrganizationsCsv: OrganizationCsvExport;
14331
13857
  exportSubscribers: Array<ExportSubscriber>;
14332
- /**
14333
- * Synchronous superadmin export of tenants as a CSV string. The wspace-export-svc
14334
- * pipeline is workspace-scoped (every entity needs `workspace_id`) and therefore
14335
- * cannot host a global tenant export. Returning the data inline keeps the surface
14336
- * small; switch to a global-export-svc when the row volume warrants async jobs.
14337
- */
13858
+ /** Synchronous superadmin export of tenants as a CSV string. The wspace-export-svc pipeline is workspace-scoped (every entity needs `workspace_id`) and therefore cannot host a global tenant export. Returning the data inline keeps the surface small; switch to a global-export-svc when the row volume warrants async jobs. */
14338
13859
  exportTenantsCsv: TenantExport;
14339
13860
  exportTranslations: TranslationsExport;
14340
13861
  faq?: Maybe<Faq>;
@@ -14347,15 +13868,9 @@ export type Query = {
14347
13868
  /** List feature flags with optional filtering (super admin only) */
14348
13869
  featureFlags: FeatureFlagList;
14349
13870
  featuredProducts: Array<StoreProduct>;
14350
- /**
14351
- * Get available filter options for a given context.
14352
- * Useful for populating filter dropdowns in UI.
14353
- */
13871
+ /** Get available filter options for a given context. Useful for populating filter dropdowns in UI. */
14354
13872
  filterOptions: FilterOptionsResult;
14355
- /**
14356
- * Get active subscriptions for a billing account (optimized for dashboard)
14357
- * Only returns subscriptions with status = 'active'
14358
- */
13873
+ /** Get active subscriptions for a billing account (optimized for dashboard) Only returns subscriptions with status = 'active' */
14359
13874
  getActiveSubscriptions: Array<BillingSubscription>;
14360
13875
  /** Get the price change history for a specific addon */
14361
13876
  getAddonPriceHistory: Array<AddonPriceHistory>;
@@ -14373,11 +13888,7 @@ export type Query = {
14373
13888
  /** Get a billing account by ID */
14374
13889
  getBillingAccount?: Maybe<BillingAccount>;
14375
13890
  getBillingAccountCreditTransactions: PaginatedCreditTransactions;
14376
- /**
14377
- * Get usage summary for all quotas of a billing account.
14378
- * Returns both subscription (PRODUCT_SPECIFIC) and pooled quotas.
14379
- * If productId is provided, filters subscription quotas by that product.
14380
- */
13891
+ /** Get usage summary for all quotas of a billing account. Returns both subscription (PRODUCT_SPECIFIC) and pooled quotas. If productId is provided, filters subscription quotas by that product. */
14381
13892
  getBillingAccountQuotasSummary: BillingAccountQuotasSummary;
14382
13893
  /** Get all billing accounts for the current org (from context) */
14383
13894
  getBillingAccountsByOrg: Array<BillingAccount>;
@@ -14390,24 +13901,14 @@ export type Query = {
14390
13901
  /** Get a channel by ID */
14391
13902
  getChannel?: Maybe<Channel>;
14392
13903
  getChannelConnectionTags: Array<ChannelConnectionTagAssignment>;
14393
- /**
14394
- * Get recent delivery attempts for a channel.
14395
- * Supports cursor pagination — pass `cursor` from the previous page's `nextCursor`.
14396
- * Falls back to offset when `cursor` is absent.
14397
- */
13904
+ /** Get recent delivery attempts for a channel. Supports cursor pagination — pass `cursor` from the previous page's `nextCursor`. Falls back to offset when `cursor` is absent. */
14398
13905
  getChannelDeliveryAttempts: DeliveryAttemptList;
14399
- /**
14400
- * Get organization-level channel settings.
14401
- * Returns defaults when no settings have been saved yet.
14402
- */
13906
+ /** Get organization-level channel settings. Returns defaults when no settings have been saved yet. */
14403
13907
  getChannelOrgSettings: ChannelOrgSettings;
14404
13908
  /** Get channel statistics */
14405
13909
  getChannelStats: ChannelStats;
14406
13910
  getChannelTags: Array<ChannelTagAssignment>;
14407
- /**
14408
- * Get recent webhook events for a channel.
14409
- * Supports cursor pagination — pass `cursor` from the previous page's `nextCursor`.
14410
- */
13911
+ /** Get recent webhook events for a channel. Supports cursor pagination — pass `cursor` from the previous page's `nextCursor`. */
14411
13912
  getChannelWebhookEvents: WebhookEventList;
14412
13913
  /** Get all channels with optional filtering */
14413
13914
  getChannels: ChannelList;
@@ -14415,29 +13916,19 @@ export type Query = {
14415
13916
  getChannelsByOrganization: ChannelList;
14416
13917
  /** Get channels by platform */
14417
13918
  getChannelsByPlatform: ChannelList;
14418
- /**
14419
- * Get channels for failover (sorted by priority, ascending).
14420
- * Returns channels for a platform that are enabled for failover.
14421
- * Used by delivery logic for priority-based fallback.
14422
- */
13919
+ /** Get channels for failover (sorted by priority, ascending). Returns channels for a platform that are enabled for failover. Used by delivery logic for priority-based fallback. */
14423
13920
  getChannelsForFailover: Array<Channel>;
14424
13921
  /** Get a charge by ID */
14425
13922
  getCharge?: Maybe<Charge>;
14426
13923
  /** Get all charges for the current org (from context), optionally filtered by status */
14427
13924
  getCharges: Array<Charge>;
14428
- /**
14429
- * Get a connection by ID
14430
- * NOTE: Credentials are never returned in queries
14431
- */
13925
+ /** Get a connection by ID NOTE: Credentials are never returned in queries */
14432
13926
  getConnection?: Maybe<ChannelConnection>;
14433
13927
  /** Get connection by channel ID */
14434
13928
  getConnectionByChannel?: Maybe<ChannelConnection>;
14435
13929
  /** Get connection status summary */
14436
13930
  getConnectionStatus: ConnectionStatus;
14437
- /**
14438
- * Get all connections for an organization.
14439
- * Supports cursor pagination — pass `cursor` from the previous page's `nextCursor`.
14440
- */
13931
+ /** Get all connections for an organization. Supports cursor pagination — pass `cursor` from the previous page's `nextCursor`. */
14441
13932
  getConnectionsByOrganization: ChannelConnectionList;
14442
13933
  getCostOfCredits: CreditCost;
14443
13934
  /** Get a coupon by ID */
@@ -14446,22 +13937,14 @@ export type Query = {
14446
13937
  getCouponByCode?: Maybe<Coupon>;
14447
13938
  /** Get coupon usage history */
14448
13939
  getCouponUsageHistory: CouponUsageListResponse;
14449
- /**
14450
- * Get credit balance broken down by type (purchased, earned, granted, withdrawable).
14451
- * Computed from the transaction ledger — use this for withdrawal eligibility checks.
14452
- */
13940
+ /** Get credit balance broken down by type (purchased, earned, granted, withdrawable). Computed from the transaction ledger — use this for withdrawal eligibility checks. */
14453
13941
  getCreditBalanceByType: CreditBalanceByType;
14454
13942
  /** Get credit notes for the current org (from context) */
14455
13943
  getCreditNotes: Array<CreditNote>;
14456
13944
  getCreditTransactionDetails: CreditTransaction;
14457
13945
  /** Get the default/first billing account for the current org (from context) */
14458
13946
  getDefaultBillingAccount?: Maybe<BillingAccount>;
14459
- /**
14460
- * Get the default billing account for a specific organization by orgId.
14461
- * Returns the billing account where isDefault = true for the given orgId.
14462
- * If no default is set, returns the first active billing account.
14463
- * Used by gateway for automatic billing account resolution in usage tracking.
14464
- */
13947
+ /** Get the default billing account for a specific organization by orgId. Returns the billing account where isDefault = true for the given orgId. If no default is set, returns the first active billing account. Used by gateway for automatic billing account resolution in usage tracking. */
14465
13948
  getDefaultBillingAccountByOrgId?: Maybe<BillingAccount>;
14466
13949
  /** Get the default payment method for a billing account */
14467
13950
  getDefaultPaymentMethod?: Maybe<PaymentMethod>;
@@ -14479,20 +13962,11 @@ export type Query = {
14479
13962
  getEntitlement?: Maybe<SubscriptionEntitlement>;
14480
13963
  /** Get external OIDC configuration for a tenant (Google, Microsoft, etc.) */
14481
13964
  getExternalOIDCConfig?: Maybe<ExternalOidcConfiguration>;
14482
- /**
14483
- * Get billing orders with failed callbacks (admin only)
14484
- * Useful for monitoring and manual retry
14485
- */
13965
+ /** Get billing orders with failed callbacks (admin only) Useful for monitoring and manual retry */
14486
13966
  getFailedBillingOrderCallbacks: FailedBillingOrderCallbacksResponse;
14487
- /**
14488
- * Get failed delivery attempts for retry.
14489
- * Supports cursor pagination — pass `cursor` from the previous page's `nextCursor`.
14490
- */
13967
+ /** Get failed delivery attempts for retry. Supports cursor pagination — pass `cursor` from the previous page's `nextCursor`. */
14491
13968
  getFailedDeliveryAttempts: DeliveryAttemptList;
14492
- /**
14493
- * Get failed webhook events for retry.
14494
- * Supports cursor pagination — pass `cursor` from the previous page's `nextCursor`.
14495
- */
13969
+ /** Get failed webhook events for retry. Supports cursor pagination — pass `cursor` from the previous page's `nextCursor`. */
14496
13970
  getFailedWebhookEvents: WebhookEventList;
14497
13971
  /** Get an invoice by ID */
14498
13972
  getInvoice?: Maybe<Invoice>;
@@ -14518,10 +13992,7 @@ export type Query = {
14518
13992
  getPaymentFailures: Array<PaymentFailure>;
14519
13993
  /** Get payment methods for a billing account */
14520
13994
  getPaymentMethods: Array<PaymentMethod>;
14521
- /**
14522
- * Get payment provider configuration for frontend integration
14523
- * Returns public keys only (safe to expose to client)
14524
- */
13995
+ /** Get payment provider configuration for frontend integration Returns public keys only (safe to expose to client) */
14525
13996
  getPaymentProviderConfig: PaymentProviderConfig;
14526
13997
  /** Get all payments for the current org (from context), optionally filtered by status */
14527
13998
  getPayments: Array<Payment>;
@@ -14544,10 +14015,7 @@ export type Query = {
14544
14015
  getReferralCodeByCode?: Maybe<ReferralCode>;
14545
14016
  /** Get a single refund record by ID */
14546
14017
  getRefundRecord?: Maybe<RefundRecord>;
14547
- /**
14548
- * Get refund records with filters and pagination (for admin dashboard).
14549
- * Uses orgId from context by default. Super admins can override with orgIdFilter.
14550
- */
14018
+ /** Get refund records with filters and pagination (for admin dashboard). Uses orgId from context by default. Super admins can override with orgIdFilter. */
14551
14019
  getRefundRecords: PaginatedRefundRecords;
14552
14020
  /** Get refund statistics (counts and amounts) */
14553
14021
  getRefundStats: RefundStats;
@@ -14564,12 +14032,7 @@ export type Query = {
14564
14032
  getStoreProductTags: Array<StoreProductTagAssignment>;
14565
14033
  /** Get a subscription by ID */
14566
14034
  getSubscription?: Maybe<BillingSubscription>;
14567
- /**
14568
- * Enhanced subscription overview with better pagination and filtering
14569
- * @param includeExpired - Include past/canceled/expired subscriptions (default: false)
14570
- * @param onlyExpired - Only fetch past subscriptions for lazy loading (default: false)
14571
- * @param searchQuery - Search quotas by name in database (case-insensitive)
14572
- */
14035
+ /** Enhanced subscription overview with better pagination and filtering @param includeExpired - Include past/canceled/expired subscriptions (default: false) @param onlyExpired - Only fetch past subscriptions for lazy loading (default: false) @param searchQuery - Search quotas by name in database (case-insensitive) */
14573
14036
  getSubscriptionUsageOverview?: Maybe<Array<SubscriptionWithQuotas>>;
14574
14037
  getSubscriptionUsages: SubscriptionQuotaUsageWithFilter;
14575
14038
  /** Get tax rates */
@@ -14592,10 +14055,7 @@ export type Query = {
14592
14055
  getWebhookStats: WebhookStats;
14593
14056
  /** Health check endpoint */
14594
14057
  health: HealthStatus;
14595
- /**
14596
- * Get grouped products for homepage.
14597
- * Optionally filter by compatible product (e.g., "bigconsole", "fluidgrids").
14598
- */
14058
+ /** Get grouped products for homepage. Optionally filter by compatible product (e.g., "bigconsole", "fluidgrids"). */
14599
14059
  homeGroupedProducts: GroupedStoreProducts;
14600
14060
  homepageSections: Array<HomepageSection>;
14601
14061
  i18nModule?: Maybe<I18nModule>;
@@ -14610,12 +14070,7 @@ export type Query = {
14610
14070
  /** Initiate HTTP Digest auth challenge */
14611
14071
  initiateDigestChallenge: DigestChallengeResult;
14612
14072
  inventoryAdjustments: Array<InventoryAdjustment>;
14613
- /**
14614
- * Fast check for a single (app, workspace) pair. Used by wspace-auth-svc via
14615
- * the internal global gateway before issuing a workspace token to an app
14616
- * actor. Public (no actor RBAC) because the internal gateway is the only
14617
- * caller and it trusts the x-actor-* headers it injects.
14618
- */
14073
+ /** Fast check for a single (app, workspace) pair. Used by wspace-auth-svc via the internal global gateway before issuing a workspace token to an app actor. Public (no actor RBAC) because the internal gateway is the only caller and it trusts the x-actor-* headers it injects. */
14619
14074
  isAppAuthorizedForWorkspace: Scalars['Boolean']['output'];
14620
14075
  isAppInstalled?: Maybe<StoreAppInstallation>;
14621
14076
  isEmailSuppressed: Scalars['Boolean']['output'];
@@ -14636,27 +14091,17 @@ export type Query = {
14636
14091
  listCoupons: CouponsListResponse;
14637
14092
  /** List all referral codes (admin) */
14638
14093
  listReferralCodes: ReferralCodesListResponse;
14639
- /**
14640
- * List all platform connections for a channel.
14641
- * Supports cursor pagination — pass `cursor` from the previous page's `nextCursor`.
14642
- */
14094
+ /** List cross-layer sync outbox entries (failures, in-flight retries, etc.). */
14095
+ listSyncOutboxEntries: SyncOutboxEntryList;
14096
+ /** List all platform connections for a channel. Supports cursor pagination — pass `cursor` from the previous page's `nextCursor`. */
14643
14097
  listUserPlatformConnectionsByChannel: UserPlatformConnectionList;
14644
- /**
14645
- * List all platform connections for an organization.
14646
- * Supports cursor pagination — pass `cursor` from the previous page's `nextCursor`.
14647
- */
14098
+ /** List all platform connections for an organization. Supports cursor pagination — pass `cursor` from the previous page's `nextCursor`. */
14648
14099
  listUserPlatformConnectionsByOrganization: UserPlatformConnectionList;
14649
- /**
14650
- * List all platform connections for a given internal user.
14651
- * Supports cursor pagination — pass `cursor` from the previous page's `nextCursor`.
14652
- */
14100
+ /** List all platform connections for a given internal user. Supports cursor pagination — pass `cursor` from the previous page's `nextCursor`. */
14653
14101
  listUserPlatformConnectionsByUser: UserPlatformConnectionList;
14654
14102
  lookupAffiliateCode?: Maybe<AffiliateCode>;
14655
14103
  lowStockProducts: Array<LowStockProduct>;
14656
- /**
14657
- * Returns products the current user can access based on their actor type,
14658
- * email domain, and waitlist approval status. Used by app shells for nav.
14659
- */
14104
+ /** Returns products the current user can access based on their actor type, email domain, and waitlist approval status. Used by app shells for nav. */
14660
14105
  myAccessibleProducts: PlatformProductList;
14661
14106
  myActivityLogs: ActivityLogConnection;
14662
14107
  myAffiliateCodes: AffiliateCodeConnection;
@@ -14667,28 +14112,13 @@ export type Query = {
14667
14112
  myAppInstallations: AppInstallationConnection;
14668
14113
  /** Get my review for an application */
14669
14114
  myAppReview?: Maybe<AppReview>;
14670
- /**
14671
- * Get all workspaces the actor is authorized to access
14672
- * Returns list with basic routing details (name, workspaceId, publicUrl)
14673
- */
14115
+ /** Get all workspaces the actor is authorized to access Returns list with basic routing details (name, workspaceId, publicUrl) */
14674
14116
  myAuthorizedWorkspaces: WorkspaceRoutingList;
14675
14117
  /** Get the current user's active cart */
14676
14118
  myCart?: Maybe<Cart>;
14677
- /**
14678
- * Get the authenticated caller's own contact inquiries.
14679
- *
14680
- * Matches by email (case-insensitive). The public `submitContactInquiry`
14681
- * mutation stores submissions with `createdBy = "anonymous"`, so there is no
14682
- * userId to filter on; scoping by the gateway-forwarded email is the only
14683
- * reliable way to link a signed-in user back to their earlier anonymous
14684
- * submissions.
14685
- */
14119
+ /** Get the authenticated caller's own contact inquiries. Matches by email (case-insensitive). The public `submitContactInquiry` mutation stores submissions with `createdBy = "anonymous"`, so there is no userId to filter on; scoping by the gateway-forwarded email is the only reliable way to link a signed-in user back to their earlier anonymous submissions. */
14686
14120
  myContactInquiries: ContactInquiryList;
14687
- /**
14688
- * Get the current user's dashboard widget layout preferences.
14689
- * Returns the dashboard configuration JSON from preferences,
14690
- * or null if no customization has been saved (frontend uses defaults).
14691
- */
14121
+ /** Get the current user's dashboard widget layout preferences. Returns the dashboard configuration JSON from preferences, or null if no customization has been saved (frontend uses defaults). */
14692
14122
  myDashboardPreferences?: Maybe<Scalars['JSON']['output']>;
14693
14123
  /** Get my developer organizations (where I'm a member) */
14694
14124
  myDeveloperOrganizations: Array<DeveloperOrganization>;
@@ -14703,9 +14133,9 @@ export type Query = {
14703
14133
  myNotificationCountsByChannel: NotificationChannelCounts;
14704
14134
  /** Get all orders for the authenticated user */
14705
14135
  myOrders: Array<StoreOrder>;
14706
- /** Get invites for the current authenticated user (invitee view) */
14136
+ /** Get invites for the current authenticated user (invitee view). Membership-scoped: the resolver filters by actorId (invitee). Any authenticated user may call this; no RBAC permission is checked. */
14707
14137
  myOrganizationInvites: OrganizationInviteList;
14708
- /** Get organizations where the current user is a member */
14138
+ /** Get organizations where the current user is a member (owned + added to). Membership-scoped: the resolver filters by actorId, so the returned set IS the access list. Any authenticated user may call this; no RBAC permission is checked. */
14709
14139
  myOrganizations: OrganizationList;
14710
14140
  /** List user's registered passkeys */
14711
14141
  myPasskeys: Array<PasskeyInfo>;
@@ -14713,25 +14143,16 @@ export type Query = {
14713
14143
  myPayoutRequests: PayoutRequestConnection;
14714
14144
  /** Get my pending invitations */
14715
14145
  myPendingInvitations: Array<DeveloperOrgInvitation>;
14716
- /**
14717
- * Get current user's permissions in a scope (self-service).
14718
- * Returns full permission details including roles, permission strings, and cache TTL.
14719
- */
14146
+ /** Get current user's permissions in a scope (self-service). Returns full permission details including roles, permission strings, and cache TTL. */
14720
14147
  myPermissions: EffectivePermissions;
14721
- /**
14722
- * Get the current user's full preferences record.
14723
- * Creates a default record if none exists.
14724
- */
14148
+ /** Get the current user's full preferences record. Creates a default record if none exists. */
14725
14149
  myPreferences?: Maybe<UserPreference>;
14726
14150
  /** List user's registered public keys */
14727
14151
  myPublicKeys: Array<PublicKeyInfo>;
14728
14152
  /** Get the current user's publisher profile, or null if none exists yet. */
14729
14153
  myPublisher?: Maybe<Publisher>;
14730
14154
  myReviews: Array<ProductReview>;
14731
- /**
14732
- * Get current user's roles in a scope (lightweight, self-service).
14733
- * Use this for quick role checks without fetching full permissions.
14734
- */
14155
+ /** Get current user's roles in a scope (lightweight, self-service). Use this for quick role checks without fetching full permissions. */
14735
14156
  myRoles: MyRolesResult;
14736
14157
  myStoreAppInstallations: StoreAppInstallationConnection;
14737
14158
  /** Stores the current user is subscribed to (auto-includes public stores). */
@@ -14742,24 +14163,14 @@ export type Query = {
14742
14163
  myTenants: TenantList;
14743
14164
  /** Get unread notification count for authenticated user */
14744
14165
  myUnreadNotificationCount: Scalars['Int']['output'];
14745
- /**
14746
- * Get the current authenticated user's platform connection for a given channel.
14747
- * Uses the actor's internal user ID from request context — no internalUserId
14748
- * argument needed. Returns null if the user has not connected this channel.
14749
- */
14166
+ /** Get the current authenticated user's platform connection for a given channel. Uses the actor's internal user ID from request context — no internalUserId argument needed. Returns null if the user has not connected this channel. */
14750
14167
  myUserPlatformConnection?: Maybe<UserPlatformConnection>;
14751
- /**
14752
- * Public: check waitlist status by email + product. Returns null if not on waitlist.
14753
- * Rate-limited at API gateway level.
14754
- */
14168
+ /** Public: check waitlist status by email + product. Returns null if not on waitlist. Rate-limited at API gateway level. */
14755
14169
  myWaitlistStatus?: Maybe<NewsletterWaitlist>;
14756
14170
  /** List user's linked wallets */
14757
14171
  myWallets: Array<WalletInfo>;
14758
14172
  myWishlist: Array<UserWishlist>;
14759
- /**
14760
- * Get workspaces where the current user is a member
14761
- * Self-service query - returns only the authenticated user's workspaces
14762
- */
14173
+ /** Get workspaces where the current user is a member (owned + added to). Membership-scoped: the resolver filters by actorId, so the returned set IS the access list. Any authenticated user may call this; no RBAC permission is checked. */
14763
14174
  myWorkspaces: WorkspaceList;
14764
14175
  newsletter?: Maybe<Newsletter>;
14765
14176
  newsletterAutomation?: Maybe<NewsletterAutomation>;
@@ -14809,11 +14220,7 @@ export type Query = {
14809
14220
  orderFulfillment?: Maybe<OrderFulfillment>;
14810
14221
  /** Get a single organization by ID */
14811
14222
  organization?: Maybe<Organization>;
14812
- /**
14813
- * Paginated keyset connection over the persistent OrganizationAuditLog table.
14814
- * Returns audit events for a single organization, newest first. Supports
14815
- * optional filtering by `action` (event name) and `actorId`.
14816
- */
14223
+ /** Paginated keyset connection over the persistent OrganizationAuditLog table. Returns audit events for a single organization, newest first. Supports optional filtering by `action` (event name) and `actorId`. */
14817
14224
  organizationAuditLogsConnection: OrganizationAuditLogConnection;
14818
14225
  /** Get an organization by slug within a tenant */
14819
14226
  organizationBySlug?: Maybe<Organization>;
@@ -14822,7 +14229,10 @@ export type Query = {
14822
14229
  /** Get members of an organization */
14823
14230
  organizationMembers: OrganizationMemberList;
14824
14231
  organizationScheduleQuotas: OrganizationScheduleQuotas;
14825
- /** List all organizations with optional filtering and pagination */
14232
+ /**
14233
+ * List all organizations with optional filtering and pagination
14234
+ * @deprecated Dual-personality query. Use 'allOrganizations' for admin/global access or 'myOrganizations' for membership-scoped access. Scheduled for removal.
14235
+ */
14826
14236
  organizations: OrganizationList;
14827
14237
  payoutRunHistory: Array<PayoutRunLog>;
14828
14238
  /** Publishers awaiting verification review (admin queue). */
@@ -14849,6 +14259,10 @@ export type Query = {
14849
14259
  popularArticles: Array<KnowledgeBaseArticle>;
14850
14260
  popularCannedResponses: Array<CannedResponse>;
14851
14261
  popularFAQs: Array<Faq>;
14262
+ /** Get a single press kit asset by ID (admin — auth required). */
14263
+ pressKitAsset?: Maybe<ProductPressKitAsset>;
14264
+ /** List press kit assets for a product (admin — auth required). */
14265
+ pressKitAssets: ProductPressKitAssetList;
14852
14266
  previewSchedule: SchedulePreview;
14853
14267
  product?: Maybe<StoreProduct>;
14854
14268
  /** List assets linked to a product. */
@@ -14860,52 +14274,27 @@ export type Query = {
14860
14274
  productOrders: ItemOrdersList;
14861
14275
  productReleases: Array<ProductRelease>;
14862
14276
  productReviews: Array<ProductReview>;
14863
- /**
14864
- * Get shortcuts for a specific product (includes global shortcuts).
14865
- * Bounded by limit/offset to avoid unbounded fetches.
14866
- */
14277
+ /** Get shortcuts for a specific product (includes global shortcuts). Bounded by limit/offset to avoid unbounded fetches. */
14867
14278
  productShortcuts: Array<KeyboardShortcut>;
14868
14279
  /** Get product-level tour statistics */
14869
14280
  productTourStatistics: ProductTourStatistics;
14870
14281
  products: Array<StoreProduct>;
14871
14282
  pseudoLocaleStats: PseudoLocaleStats;
14872
- /**
14873
- * Get all active addons for a specific product (public, no authentication required).
14874
- * Used by product website pricing pages.
14875
- * Only returns active addons.
14876
- */
14283
+ /** Get all active addons for a specific product (public, no authentication required). Used by product website pricing pages. Only returns active addons. */
14877
14284
  publicAddons: Array<Addon>;
14878
- /**
14879
- * Get a public content page by slug and optional product ID.
14880
- * Only returns pages with visibility=PUBLIC and isPublished=true.
14881
- */
14285
+ /** Get a public content page by slug and optional product ID. Only returns pages with visibility=PUBLIC and isPublished=true. */
14882
14286
  publicContentPage?: Maybe<ProductContentPage>;
14883
- /**
14884
- * List public content pages for a product.
14885
- * Only returns pages with visibility=PUBLIC and isPublished=true.
14886
- */
14287
+ /** List public content pages for a product. Only returns pages with visibility=PUBLIC and isPublished=true. */
14887
14288
  publicContentPages: ProductContentPageList;
14888
- /**
14889
- * Get all active plans for a specific product (public, no authentication required).
14890
- * Used by product website pricing pages.
14891
- * Only returns active plans with their features.
14892
- */
14289
+ /** Get all active plans for a specific product (public, no authentication required). Used by product website pricing pages. Only returns active plans with their features. */
14893
14290
  publicPlans: Array<Plan>;
14894
- /**
14895
- * Get a platform product by slug (public, no auth required).
14896
- * Returns only ACTIVE or WAITLIST products.
14897
- * Does NOT expose sensitive fields like recaptchaSecretKey.
14898
- */
14291
+ /** List public press kit assets for a product (no auth required). Only returns assets with visibility=PUBLIC. */
14292
+ publicPressKitAssets: ProductPressKitAssetList;
14293
+ /** Get a platform product by slug (public, no auth required). Returns only ACTIVE or WAITLIST products. Does NOT expose sensitive fields like recaptchaSecretKey. */
14899
14294
  publicProduct?: Maybe<PlatformProduct>;
14900
- /**
14901
- * Get all platform products (public, no auth required).
14902
- * Returns only ACTIVE or WAITLIST products (WAITLIST products are visible for waitlist signup).
14903
- */
14295
+ /** Get all platform products (public, no auth required). Returns only ACTIVE or WAITLIST products (WAITLIST products are visible for waitlist signup). */
14904
14296
  publicProducts: PlatformProductList;
14905
- /**
14906
- * Resolve a public content page for a product with template variable replacement.
14907
- * Only returns pages with visibility=PUBLIC and isPublished=true.
14908
- */
14297
+ /** Resolve a public content page for a product with template variable replacement. Only returns pages with visibility=PUBLIC and isPublished=true. */
14909
14298
  publicResolvedContentPage?: Maybe<ProductContentPage>;
14910
14299
  publicScheduleTemplates: ScheduleTemplateConnection;
14911
14300
  publishedProducts: Array<StoreProduct>;
@@ -14920,11 +14309,7 @@ export type Query = {
14920
14309
  recentArticles: Array<KnowledgeBaseArticle>;
14921
14310
  releaseAuditEvents: Array<ProductReleaseAuditEvent>;
14922
14311
  releaseTracks: Array<ReleaseTrack>;
14923
- /**
14924
- * Resolve the effective content page for a product.
14925
- * Returns the product-specific page if it exists, otherwise the global default.
14926
- * Template variables in content (e.g. {{productName}}) are replaced with product data.
14927
- */
14312
+ /** Resolve the effective content page for a product. Returns the product-specific page if it exists, otherwise the global default. Template variables in content (e.g. {{productName}}) are replaced with product data. */
14928
14313
  resolvedContentPage?: Maybe<ProductContentPage>;
14929
14314
  /** Get a specific registered resource by ID */
14930
14315
  resource?: Maybe<Resource>;
@@ -14960,11 +14345,7 @@ export type Query = {
14960
14345
  searchFAQs: Array<Faq>;
14961
14346
  searchKnowledgeBase: Array<KnowledgeBaseArticle>;
14962
14347
  searchProducts: Array<StoreProduct>;
14963
- /**
14964
- * Get search suggestions for autocomplete.
14965
- * Returns suggestions from product names, tags, categories, and authors.
14966
- * Uses trigram matching for fuzzy search.
14967
- */
14348
+ /** Get search suggestions for autocomplete. Returns suggestions from product names, tags, categories, and authors. Uses trigram matching for fuzzy search. */
14968
14349
  searchSuggestions: Array<SearchSuggestion>;
14969
14350
  searchTicketTemplates: Array<TicketTemplate>;
14970
14351
  searchTickets: Array<SupportTicket>;
@@ -14976,26 +14357,7 @@ export type Query = {
14976
14357
  /** Fetch a store by id or slug. */
14977
14358
  store?: Maybe<Store>;
14978
14359
  storeAppInstallation?: Maybe<StoreAppInstallation>;
14979
- /**
14980
- * Get detailed product information for the app details page.
14981
- * Includes product data, reviews, related products, publisher info, and version history.
14982
- * Automatically increments view count.
14983
- *
14984
- * Example usage:
14985
- * ```graphql
14986
- * query {
14987
- * storeProductDetails(input: { id: "product-123" }) {
14988
- * product { id name description manifest rating downloads }
14989
- * reviews { id rating comment }
14990
- * relatedProducts { id name icon }
14991
- * publisher { id name isVerified }
14992
- * versions { id version status }
14993
- * userReview { id rating }
14994
- * isPurchased
14995
- * }
14996
- * }
14997
- * ```
14998
- */
14360
+ /** Get detailed product information for the app details page. Includes product data, reviews, related products, publisher info, and version history. Automatically increments view count. Example usage: ```graphql query { storeProductDetails(input: { id: "product-123" }) { product { id name description manifest rating downloads } reviews { id rating comment } relatedProducts { id name icon } publisher { id name isVerified } versions { id version status } userReview { id rating } isPurchased } } ``` */
14999
14361
  storeProductDetails: StoreProductDetailsResult;
15000
14362
  /** List all stores the caller can see. */
15001
14363
  stores: Array<Store>;
@@ -15018,6 +14380,10 @@ export type Query = {
15018
14380
  suppressionList: SuppressionEntryConnection;
15019
14381
  suppressions: Array<NewsletterSuppression>;
15020
14382
  surveyByTicket?: Maybe<CustomerSatisfactionSurvey>;
14383
+ /** Fetch one outbox entry by id (includes the full payload for inspection). */
14384
+ syncOutboxEntry?: Maybe<SyncOutboxEntry>;
14385
+ /** Aggregate counts for the outbox, used by the admin dashboard tile. */
14386
+ syncOutboxStats: SyncOutboxStats;
15021
14387
  tag?: Maybe<ProductTag>;
15022
14388
  tagBySlug?: Maybe<ProductTag>;
15023
14389
  tags: Array<ProductTag>;
@@ -15025,11 +14391,7 @@ export type Query = {
15025
14391
  tenant?: Maybe<Tenant>;
15026
14392
  /** Get a tenant by slug */
15027
14393
  tenantBySlug?: Maybe<Tenant>;
15028
- /**
15029
- * Get tenant routing info by ID.
15030
- * Lightweight query for gateway routing decisions.
15031
- * Returns type (SHARED/DEDICATED), endpoint, and status.
15032
- */
14394
+ /** Get tenant routing info by ID. Lightweight query for gateway routing decisions. Returns type (SHARED/DEDICATED), endpoint, and status. */
15033
14395
  tenantRoutingInfo?: Maybe<TenantRoutingInfo>;
15034
14396
  /** List all tenants with optional filtering and pagination */
15035
14397
  tenants: TenantList;
@@ -15069,12 +14431,7 @@ export type Query = {
15069
14431
  tourUserProgressList: Array<TourUserProgress>;
15070
14432
  /** Get tours with optional filtering and pagination */
15071
14433
  tours: ToursResponse;
15072
- /**
15073
- * Get tours for a specific context (product/module/page).
15074
- * Public endpoint consumed by frontend SDKs without authentication
15075
- * (the resolver returns published, active, in-window tours and uses an
15076
- * anonymous actor id). See spec global-specs/modules/tours/RBAC.md:34.
15077
- */
14434
+ /** Get tours for a specific context (product/module/page). Public endpoint consumed by frontend SDKs without authentication (the resolver returns published, active, in-window tours and uses an anonymous actor id). See spec global-specs/modules/tours/RBAC.md:34. */
15078
14435
  toursForContext: Array<Tour>;
15079
14436
  translation?: Maybe<Translation>;
15080
14437
  translationAudit: TranslationAuditList;
@@ -15085,19 +14442,13 @@ export type Query = {
15085
14442
  translationKeys: TranslationKeyList;
15086
14443
  translationStats: Scalars['JSON']['output'];
15087
14444
  translations: TranslationList;
15088
- /**
15089
- * Get popular/trending search terms.
15090
- * Useful for showing suggestions when search input is empty.
15091
- */
14445
+ /** Get popular/trending search terms. Useful for showing suggestions when search input is empty. */
15092
14446
  trendingSearches: Array<Scalars['String']['output']>;
15093
14447
  /** Get a user by ID (admin only) */
15094
14448
  user?: Maybe<User>;
15095
14449
  /** Get total count of users (for analytics) */
15096
14450
  userCount: Scalars['Int']['output'];
15097
- /**
15098
- * Get a user's feature flag preferences in a workspace.
15099
- * Bounded by limit/offset to avoid unbounded fetches.
15100
- */
14451
+ /** Get a user's feature flag preferences in a workspace. Bounded by limit/offset to avoid unbounded fetches. */
15101
14452
  userFeatureFlagPreferences: Array<UserFeatureFlagPreference>;
15102
14453
  userLanguagePreference?: Maybe<UserLanguagePreference>;
15103
14454
  /** Check if the current user has reviewed a specific product */
@@ -15110,10 +14461,7 @@ export type Query = {
15110
14461
  users: UserConnection;
15111
14462
  /** Validate a coupon code for a specific order */
15112
14463
  validateCoupon: ValidateCouponResponse;
15113
- /**
15114
- * Validate a license key without modifying state. Used by vibecontrols
15115
- * agents + wspace services to check license validity before plugin load.
15116
- */
14464
+ /** Validate a license key without modifying state. Used by vibecontrols agents + wspace services to check license validity before plugin load. */
15117
14465
  validateLicense: LicenseValidationResult;
15118
14466
  validatePromoCode: PromoCodeValidationResult;
15119
14467
  /** Get visibility rules for a resource */
@@ -15131,27 +14479,20 @@ export type Query = {
15131
14479
  workspaceAnalyticsSummary: WorkspaceTourAnalyticsSummary;
15132
14480
  /** Get a workspace by slug within a tenant */
15133
14481
  workspaceBySlug?: Maybe<Workspace>;
15134
- /**
15135
- * Get workspace overrides for a specific workspace.
15136
- * Bounded by limit/offset to avoid unbounded fetches.
15137
- */
14482
+ /** Get workspace overrides for a specific workspace. Bounded by limit/offset to avoid unbounded fetches. */
15138
14483
  workspaceFeatureFlagOverrides: Array<WorkspaceFeatureFlagOverride>;
15139
14484
  /** Get members of a workspace */
15140
14485
  workspaceMembers: WorkspaceMemberList;
15141
- /**
15142
- * Get public details of a workspace by ID
15143
- * Returns public info if actor is authorized
15144
- */
14486
+ /** Get public details of a workspace by ID Returns public info if actor is authorized */
15145
14487
  workspacePublicDetails?: Maybe<WorkspacePublicDetails>;
15146
- /**
15147
- * Get workspace routing info by ID
15148
- * Returns workspace name, endpoint (publicUrl), region for routing purposes
15149
- * Requires actor to be a member of the workspace
15150
- */
14488
+ /** Get workspace routing info by ID Returns workspace name, endpoint (publicUrl), region for routing purposes Requires actor to be a member of the workspace */
15151
14489
  workspaceRouting?: Maybe<WorkspaceRouting>;
15152
14490
  /** Get workspace store orders with pagination */
15153
14491
  workspaceStoreOrders: StoreOrdersResult;
15154
- /** List all workspaces with optional filtering and pagination */
14492
+ /**
14493
+ * List all workspaces with optional filtering and pagination.
14494
+ * @deprecated Dual-personality query. Use 'allWorkspaces' for admin/global access or 'myWorkspaces' for membership-scoped access. Scheduled for removal.
14495
+ */
15155
14496
  workspaces: WorkspaceList;
15156
14497
  };
15157
14498
  /** Root query type */
@@ -15253,6 +14594,18 @@ export type QueryAgentProfilesArgs = {
15253
14594
  offset?: InputMaybe<Scalars['Int']['input']>;
15254
14595
  };
15255
14596
  /** Root query type */
14597
+ export type QueryAllOrganizationsArgs = {
14598
+ filter?: InputMaybe<OrganizationFilterInput>;
14599
+ limit?: InputMaybe<Scalars['Int']['input']>;
14600
+ offset?: InputMaybe<Scalars['Int']['input']>;
14601
+ };
14602
+ /** Root query type */
14603
+ export type QueryAllWorkspacesArgs = {
14604
+ filter?: InputMaybe<WorkspaceFilterInput>;
14605
+ limit?: InputMaybe<Scalars['Int']['input']>;
14606
+ offset?: InputMaybe<Scalars['Int']['input']>;
14607
+ };
14608
+ /** Root query type */
15256
14609
  export type QueryAppArgs = {
15257
14610
  id: Scalars['ID']['input'];
15258
14611
  };
@@ -16103,6 +15456,7 @@ export type QueryGetPaginatedInvoicesArgs = {
16103
15456
  billingAccountId?: InputMaybe<Scalars['ID']['input']>;
16104
15457
  page?: InputMaybe<Scalars['Int']['input']>;
16105
15458
  pageSize?: InputMaybe<Scalars['Int']['input']>;
15459
+ search?: InputMaybe<Scalars['String']['input']>;
16106
15460
  status?: InputMaybe<InvoiceStatus>;
16107
15461
  };
16108
15462
  /** Root query type */
@@ -16110,6 +15464,7 @@ export type QueryGetPaginatedSubscriptionsArgs = {
16110
15464
  billingAccountId: Scalars['ID']['input'];
16111
15465
  page?: InputMaybe<Scalars['Int']['input']>;
16112
15466
  pageSize?: InputMaybe<Scalars['Int']['input']>;
15467
+ search?: InputMaybe<Scalars['String']['input']>;
16113
15468
  };
16114
15469
  /** Root query type */
16115
15470
  export type QueryGetPaymentArgs = {
@@ -16451,6 +15806,12 @@ export type QueryListReferralCodesArgs = {
16451
15806
  offset?: InputMaybe<Scalars['Int']['input']>;
16452
15807
  };
16453
15808
  /** Root query type */
15809
+ export type QueryListSyncOutboxEntriesArgs = {
15810
+ filter?: InputMaybe<SyncOutboxFilterInput>;
15811
+ limit?: InputMaybe<Scalars['Int']['input']>;
15812
+ offset?: InputMaybe<Scalars['Int']['input']>;
15813
+ };
15814
+ /** Root query type */
16454
15815
  export type QueryListUserPlatformConnectionsByChannelArgs = {
16455
15816
  channelId: Scalars['ID']['input'];
16456
15817
  cursor?: InputMaybe<Scalars['String']['input']>;
@@ -16867,6 +16228,17 @@ export type QueryPopularFaQsArgs = {
16867
16228
  limit?: InputMaybe<Scalars['Int']['input']>;
16868
16229
  };
16869
16230
  /** Root query type */
16231
+ export type QueryPressKitAssetArgs = {
16232
+ id: Scalars['ID']['input'];
16233
+ };
16234
+ /** Root query type */
16235
+ export type QueryPressKitAssetsArgs = {
16236
+ filter?: InputMaybe<PressKitAssetFilterInput>;
16237
+ limit?: InputMaybe<Scalars['Int']['input']>;
16238
+ offset?: InputMaybe<Scalars['Int']['input']>;
16239
+ productId?: InputMaybe<Scalars['String']['input']>;
16240
+ };
16241
+ /** Root query type */
16870
16242
  export type QueryPreviewScheduleArgs = {
16871
16243
  count?: InputMaybe<Scalars['Int']['input']>;
16872
16244
  cronExpression?: InputMaybe<Scalars['String']['input']>;
@@ -16959,6 +16331,13 @@ export type QueryPublicPlansArgs = {
16959
16331
  productId: Scalars['String']['input'];
16960
16332
  };
16961
16333
  /** Root query type */
16334
+ export type QueryPublicPressKitAssetsArgs = {
16335
+ category?: InputMaybe<PressKitAssetCategory>;
16336
+ limit?: InputMaybe<Scalars['Int']['input']>;
16337
+ offset?: InputMaybe<Scalars['Int']['input']>;
16338
+ productId: Scalars['String']['input'];
16339
+ };
16340
+ /** Root query type */
16962
16341
  export type QueryPublicProductArgs = {
16963
16342
  slug: Scalars['String']['input'];
16964
16343
  };
@@ -17266,6 +16645,10 @@ export type QuerySurveyByTicketArgs = {
17266
16645
  ticketId: Scalars['ID']['input'];
17267
16646
  };
17268
16647
  /** Root query type */
16648
+ export type QuerySyncOutboxEntryArgs = {
16649
+ id: Scalars['ID']['input'];
16650
+ };
16651
+ /** Root query type */
17269
16652
  export type QueryTagArgs = {
17270
16653
  id: Scalars['ID']['input'];
17271
16654
  };
@@ -17584,12 +16967,7 @@ export type Quota = {
17584
16967
  name?: Maybe<Scalars['String']['output']>;
17585
16968
  /** Defines whether this quota template is pooled (shared across products) or product-specific. */
17586
16969
  quotaType?: Maybe<QuotaType>;
17587
- /**
17588
- * When does usage reset for assignments of this quota?
17589
- * NEVER = static limit (seats, agents, storage cap)
17590
- * DAILY = resets each day at midnight UTC (API requests/day, AI sessions/day)
17591
- * MONTHLY = resets at the start of each billing cycle
17592
- */
16970
+ /** When does usage reset for assignments of this quota? NEVER = static limit (seats, agents, storage cap) DAILY = resets each day at midnight UTC (API requests/day, AI sessions/day) MONTHLY = resets at the start of each billing cycle */
17593
16971
  resetPeriod?: Maybe<QuotaResetPeriod>;
17594
16972
  /** A Quota is reusable or not (e.g., bot,seats). */
17595
16973
  reusable?: Maybe<Scalars['Boolean']['output']>;
@@ -17614,11 +16992,7 @@ export type QuotaAssignment = {
17614
16992
  endtime?: Maybe<Scalars['DateTime']['output']>;
17615
16993
  /** The unique identifier for the QuotaAssignment, automatically generated as a UUID. */
17616
16994
  id?: Maybe<Scalars['ID']['output']>;
17617
- /**
17618
- * When limits were last restored to their original value by the reset job.
17619
- * Null means this assignment has never been reset in-place.
17620
- * The daily QuotaResetWorkflow uses this to find assignments that need resetting.
17621
- */
16995
+ /** When limits were last restored to their original value by the reset job. Null means this assignment has never been reset in-place. The daily QuotaResetWorkflow uses this to find assignments that need resetting. */
17622
16996
  lastResetAt?: Maybe<Scalars['DateTime']['output']>;
17623
16997
  /** A JSON object defining the limits associated with the assigned quota (e.g., data caps, usage limits). */
17624
16998
  limits?: Maybe<Scalars['JSON']['output']>;
@@ -17626,10 +17000,7 @@ export type QuotaAssignment = {
17626
17000
  name?: Maybe<Scalars['String']['output']>;
17627
17001
  /** The type of quota - POOLED (billing account level) or PRODUCT_SPECIFIC (subscription level). */
17628
17002
  quotaType?: Maybe<QuotaType>;
17629
- /**
17630
- * Copied from parent Quota.resetPeriod at creation. Tells the reset job how often
17631
- * limits.value should be restored. DAILY = restore every midnight UTC.
17632
- */
17003
+ /** Copied from parent Quota.resetPeriod at creation. Tells the reset job how often limits.value should be restored. DAILY = restore every midnight UTC. */
17633
17004
  resetPeriod?: Maybe<QuotaResetPeriod>;
17634
17005
  /** A Quota is reusable or not (e.g., bot,seats). */
17635
17006
  reusable?: Maybe<Scalars['Boolean']['output']>;
@@ -17646,6 +17017,7 @@ export type QuotaAssignment = {
17646
17017
  };
17647
17018
  export type QuotaAssignmentSummary = {
17648
17019
  __typename?: 'QuotaAssignmentSummary';
17020
+ context?: Maybe<Scalars['JSON']['output']>;
17649
17021
  createdAt?: Maybe<Scalars['DateTime']['output']>;
17650
17022
  currentUsageSum?: Maybe<Scalars['Int']['output']>;
17651
17023
  endtime?: Maybe<Scalars['DateTime']['output']>;
@@ -17658,6 +17030,7 @@ export type QuotaAssignmentSummary = {
17658
17030
  /** Summary of a single quota assignment with usage details */
17659
17031
  export type QuotaAssignmentUsageSummary = {
17660
17032
  __typename?: 'QuotaAssignmentUsageSummary';
17033
+ context?: Maybe<Scalars['JSON']['output']>;
17661
17034
  createdAt: Scalars['DateTime']['output'];
17662
17035
  endtime: Scalars['DateTime']['output'];
17663
17036
  id: Scalars['ID']['output'];
@@ -18194,18 +17567,10 @@ export type RegisterProductAssetInput = {
18194
17567
  caption?: InputMaybe<Scalars['String']['input']>;
18195
17568
  fileName?: InputMaybe<Scalars['String']['input']>;
18196
17569
  fileType: ProductAssetType;
18197
- /**
18198
- * File ID returned from wspace-files-svc's completeUpload mutation.
18199
- * The browser uploads the file directly to files-svc, then calls this
18200
- * mutation to link it to the product.
18201
- */
17570
+ /** File ID returned from wspace-files-svc's completeUpload mutation. The browser uploads the file directly to files-svc, then calls this mutation to link it to the product. */
18202
17571
  filesSvcId: Scalars['ID']['input'];
18203
17572
  locale?: InputMaybe<Scalars['String']['input']>;
18204
- /**
18205
- * If true (default), marks previous assets of the same fileType+locale as
18206
- * no longer current. Set to false to keep multiple live copies (e.g. when
18207
- * building a screenshot gallery).
18208
- */
17573
+ /** If true (default), marks previous assets of the same fileType+locale as no longer current. Set to false to keep multiple live copies (e.g. when building a screenshot gallery). */
18209
17574
  makeCurrent?: InputMaybe<Scalars['Boolean']['input']>;
18210
17575
  mimeType?: InputMaybe<Scalars['String']['input']>;
18211
17576
  orderIndex?: InputMaybe<Scalars['Int']['input']>;
@@ -18339,11 +17704,7 @@ export type ResolveContextWidgetConversationInput = {
18339
17704
  title?: InputMaybe<Scalars['String']['input']>;
18340
17705
  workspaceId: Scalars['ID']['input'];
18341
17706
  };
18342
- /**
18343
- * Registered resource with custom permission configurations.
18344
- * Resources are only registered when they have non-default permissions
18345
- * (overrides, visibility rules, or scoped assignments).
18346
- */
17707
+ /** Registered resource with custom permission configurations. Resources are only registered when they have non-default permissions (overrides, visibility rules, or scoped assignments). */
18347
17708
  export type Resource = {
18348
17709
  __typename?: 'Resource';
18349
17710
  children: Array<Resource>;
@@ -18374,6 +17735,12 @@ export type RetryBillingOrderCallbackResponse = {
18374
17735
  order?: Maybe<BillingOrder>;
18375
17736
  success: Scalars['Boolean']['output'];
18376
17737
  };
17738
+ export type RetrySyncOutboxResult = {
17739
+ __typename?: 'RetrySyncOutboxResult';
17740
+ entry?: Maybe<SyncOutboxEntry>;
17741
+ message?: Maybe<Scalars['String']['output']>;
17742
+ success: Scalars['Boolean']['output'];
17743
+ };
18377
17744
  /** Revenue summary for dashboard */
18378
17745
  export type RevenueSummary = {
18379
17746
  __typename?: 'RevenueSummary';
@@ -19229,32 +18596,17 @@ export type SpendCreditResponse = {
19229
18596
  export type SpendCreditsInput = {
19230
18597
  addOnIds?: InputMaybe<Array<InputMaybe<AddOnInputPayment>>>;
19231
18598
  billingAccountId: Scalars['String']['input'];
19232
- /**
19233
- * For plan downgrades — the active higher-tier subscription ID.
19234
- * Old subscription's auto-renewal is cancelled so it won't charge again;
19235
- * it stays active until natural expiry and then the new plan continues.
19236
- */
18599
+ /** For plan downgrades — the active higher-tier subscription ID. Old subscription's auto-renewal is cancelled so it won't charge again; it stays active until natural expiry and then the new plan continues. */
19237
18600
  downgradeFromSubscriptionId?: InputMaybe<Scalars['String']['input']>;
19238
18601
  isAnnual?: InputMaybe<Scalars['Boolean']['input']>;
19239
18602
  /** Order ID to purchase using credits (for store orders, etc.) */
19240
18603
  orderId?: InputMaybe<Scalars['String']['input']>;
19241
18604
  planId?: InputMaybe<Scalars['String']['input']>;
19242
- /**
19243
- * Number of seats for PER_SEAT plans. Stored on the created subscription.
19244
- * Credits required = pricePerSeat × seatCount × creditsPerUSD (instead of plan.price).
19245
- * Ignored for FLAT_RATE plans.
19246
- */
18605
+ /** Number of seats for PER_SEAT plans. Stored on the created subscription. Credits required = pricePerSeat × seatCount × creditsPerUSD (instead of plan.price). Ignored for FLAT_RATE plans. */
19247
18606
  seatCount?: InputMaybe<Scalars['Int']['input']>;
19248
- /**
19249
- * For addon purchases - the subscription ID to attach addons to.
19250
- * Required if billing account has multiple active subscriptions.
19251
- * If only one active subscription exists, it will be auto-selected.
19252
- */
18607
+ /** For addon purchases - the subscription ID to attach addons to. Required if billing account has multiple active subscriptions. If only one active subscription exists, it will be auto-selected. */
19253
18608
  subscriptionId?: InputMaybe<Scalars['String']['input']>;
19254
- /**
19255
- * For plan upgrades - the subscription ID to upgrade from.
19256
- * Old quotas will be moved to the new subscription.
19257
- */
18609
+ /** For plan upgrades - the subscription ID to upgrade from. Old quotas will be moved to the new subscription. */
19258
18610
  upgradeFromSubscriptionId?: InputMaybe<Scalars['String']['input']>;
19259
18611
  };
19260
18612
  export type Store = {
@@ -19318,10 +18670,7 @@ export type StoreFacets = {
19318
18670
  /** Available types with counts */
19319
18671
  types: Array<FacetCount>;
19320
18672
  };
19321
- /**
19322
- * Unified filter input for browsing/searching store products.
19323
- * All filters combine with AND logic - search is treated as a filter.
19324
- */
18673
+ /** Unified filter input for browsing/searching store products. All filters combine with AND logic - search is treated as a filter. */
19325
18674
  export type StoreFilterInput = {
19326
18675
  /** Filter by author name (partial match) */
19327
18676
  authorName?: InputMaybe<Scalars['String']['input']>;
@@ -19331,10 +18680,7 @@ export type StoreFilterInput = {
19331
18680
  categories?: InputMaybe<Array<Scalars['String']['input']>>;
19332
18681
  /** Filter by exact category match (e.g., "Customer Support", "Notification") */
19333
18682
  category?: InputMaybe<Scalars['String']['input']>;
19334
- /**
19335
- * Filter by compatible product (e.g., "workspaces", "fluidgrids", "bigconsole")
19336
- * Products must be compatible with this product.
19337
- */
18683
+ /** Filter by compatible product (e.g., "workspaces", "fluidgrids", "bigconsole") Products must be compatible with this product. */
19338
18684
  compatibleWith?: InputMaybe<Scalars['String']['input']>;
19339
18685
  /** Filter only featured products */
19340
18686
  featured?: InputMaybe<Scalars['Boolean']['input']>;
@@ -19364,24 +18710,11 @@ export type StoreFilterInput = {
19364
18710
  publisherId?: InputMaybe<Scalars['String']['input']>;
19365
18711
  /** Filter products that require shipping */
19366
18712
  requiresShipping?: InputMaybe<Scalars['Boolean']['input']>;
19367
- /**
19368
- * Full-text search query. Searches across:
19369
- * - name (highest priority)
19370
- * - description
19371
- * - tags
19372
- * - authorName, category (lowest priority)
19373
- * Uses PostgreSQL tsvector with weighted ranking.
19374
- */
18713
+ /** Full-text search query. Searches across: - name (highest priority) - description - tags - authorName, category (lowest priority) Uses PostgreSQL tsvector with weighted ranking. */
19375
18714
  search?: InputMaybe<Scalars['String']['input']>;
19376
18715
  /** Filter by product status (defaults to PUBLISHED for consumer queries) */
19377
18716
  status?: InputMaybe<ProductStatus>;
19378
- /**
19379
- * Filter by type-specific subtype.
19380
- * Examples:
19381
- * - For AGENT: "task_automation", "conversational", "research"
19382
- * - For NODE: "action", "trigger", "integration", "ai"
19383
- * - For WIDGET: "chart", "metric", "table", "map"
19384
- */
18717
+ /** Filter by type-specific subtype. Examples: - For AGENT: "task_automation", "conversational", "research" - For NODE: "action", "trigger", "integration", "ai" - For WIDGET: "chart", "metric", "table", "map" */
19385
18718
  subType?: InputMaybe<Scalars['String']['input']>;
19386
18719
  /** Filter by multiple subtypes (OR within this filter) */
19387
18720
  subTypes?: InputMaybe<Array<Scalars['String']['input']>>;
@@ -19406,12 +18739,7 @@ export declare enum StoreInstallationStatus {
19406
18739
  Pending = "PENDING",
19407
18740
  Uninstalled = "UNINSTALLED"
19408
18741
  }
19409
- /**
19410
- * StoreItem entity reference.
19411
- * The actual StoreItem is defined in the Store service.
19412
- * In Federation 2 setup, this will be marked with @key directive.
19413
- * For now, this is a reference type that returns the itemId for the Gateway to resolve.
19414
- */
18742
+ /** StoreItem entity reference. The actual StoreItem is defined in the Store service. In Federation 2 setup, this will be marked with @key directive. For now, this is a reference type that returns the itemId for the Gateway to resolve. */
19415
18743
  export type StoreItem = {
19416
18744
  __typename?: 'StoreItem';
19417
18745
  /** The unique identifier for the store item */
@@ -19438,11 +18766,7 @@ export type StoreLineItemInput = {
19438
18766
  /** Product version at time of purchase */
19439
18767
  version?: InputMaybe<Scalars['String']['input']>;
19440
18768
  };
19441
- /**
19442
- * External entity stub for StoreOrder from store-svc.
19443
- * Federation gateway will resolve full StoreOrder data from store-svc.
19444
- * Used by: BillingAccount.storeOrders (if extended), Transaction.storeOrder
19445
- */
18769
+ /** External entity stub for StoreOrder from store-svc. Federation gateway will resolve full StoreOrder data from store-svc. Used by: BillingAccount.storeOrders (if extended), Transaction.storeOrder */
19446
18770
  export type StoreOrder = {
19447
18771
  __typename?: 'StoreOrder';
19448
18772
  appliedEntitlementId?: Maybe<Scalars['String']['output']>;
@@ -19453,11 +18777,7 @@ export type StoreOrder = {
19453
18777
  /** Context JSON (must include workspace_id) */
19454
18778
  context: Scalars['JSON']['output'];
19455
18779
  createdAt: Scalars['DateTime']['output'];
19456
- /**
19457
- * Currency captured when the store order was created.
19458
- * Billing may still convert at payment time, but this is the canonical
19459
- * order currency for checkout display and reconciliation.
19460
- */
18780
+ /** Currency captured when the store order was created. Billing may still convert at payment time, but this is the canonical order currency for checkout display and reconciliation. */
19461
18781
  currency: Scalars['String']['output'];
19462
18782
  /** Fulfillment tracking for physical orders */
19463
18783
  fulfillment?: Maybe<OrderFulfillment>;
@@ -19470,10 +18790,7 @@ export type StoreOrder = {
19470
18790
  /** When payment was completed (null if still pending) */
19471
18791
  purchasedAt?: Maybe<Scalars['DateTime']['output']>;
19472
18792
  status: OrderStatus;
19473
- /**
19474
- * Total product cost (sum of line items)
19475
- * Note: Currency, tax, and final billing amount handled by billing service
19476
- */
18793
+ /** Total product cost (sum of line items) Note: Currency, tax, and final billing amount handled by billing service */
19477
18794
  total: Scalars['Float']['output'];
19478
18795
  transaction?: Maybe<Transaction>;
19479
18796
  /** Transaction ID from billing service (set after payment) */
@@ -19497,11 +18814,7 @@ export type StorePaginationInput = {
19497
18814
  /** Number of items to skip (for offset pagination) */
19498
18815
  offset?: InputMaybe<Scalars['Int']['input']>;
19499
18816
  };
19500
- /**
19501
- * External entity stub for StoreProduct from store-svc.
19502
- * Federation gateway will resolve full StoreProduct data from store-svc.
19503
- * Used by: SubscriptionEntitlement.storeProduct
19504
- */
18817
+ /** External entity stub for StoreProduct from store-svc. Federation gateway will resolve full StoreProduct data from store-svc. Used by: SubscriptionEntitlement.storeProduct */
19505
18818
  export type StoreProduct = {
19506
18819
  __typename?: 'StoreProduct';
19507
18820
  /** Allow orders when out of stock (physical products) */
@@ -19511,10 +18824,7 @@ export type StoreProduct = {
19511
18824
  /** Brand name (physical products) */
19512
18825
  brand?: Maybe<Scalars['String']['output']>;
19513
18826
  category?: Maybe<Scalars['String']['output']>;
19514
- /**
19515
- * Compatible products (from manifest.compatibility.products)
19516
- * Examples: ["fluidgrids", "workspaces", "bigconsole", "botlit"]
19517
- */
18827
+ /** Compatible products (from manifest.compatibility.products) Examples: ["fluidgrids", "workspaces", "bigconsole", "botlit"] */
19518
18828
  compatibleProducts: Array<Scalars['String']['output']>;
19519
18829
  content?: Maybe<Scalars['JSON']['output']>;
19520
18830
  context?: Maybe<Scalars['JSON']['output']>;
@@ -19533,15 +18843,9 @@ export type StoreProduct = {
19533
18843
  height?: Maybe<Scalars['Float']['output']>;
19534
18844
  icon?: Maybe<Scalars['String']['output']>;
19535
18845
  id: Scalars['ID']['output'];
19536
- /**
19537
- * Integration dependencies (from manifest.dependencies.integrations)
19538
- * Examples: ["slack", "sendgrid", "zendesk", "salesforce"]
19539
- */
18846
+ /** Integration dependencies (from manifest.dependencies.integrations) Examples: ["slack", "sendgrid", "zendesk", "salesforce"] */
19540
18847
  integrationDeps: Array<Scalars['String']['output']>;
19541
- /**
19542
- * Whether this product is already purchased by the current billing account.
19543
- * Computed field based on billingAccountId context.
19544
- */
18848
+ /** Whether this product is already purchased by the current billing account. Computed field based on billingAccountId context. */
19545
18849
  isPurchased?: Maybe<Scalars['Boolean']['output']>;
19546
18850
  /** Product length (physical products) */
19547
18851
  length?: Maybe<Scalars['Float']['output']>;
@@ -19572,10 +18876,7 @@ export type StoreProduct = {
19572
18876
  rating?: Maybe<Scalars['Float']['output']>;
19573
18877
  rejectedReason?: Maybe<Scalars['String']['output']>;
19574
18878
  repositoryUrl?: Maybe<Scalars['String']['output']>;
19575
- /**
19576
- * Required permissions (from manifest.permissions)
19577
- * Examples: ["network.outbound", "database.write", "notification.email"]
19578
- */
18879
+ /** Required permissions (from manifest.permissions) Examples: ["network.outbound", "database.write", "notification.email"] */
19579
18880
  requiredPermissions: Array<Scalars['String']['output']>;
19580
18881
  /** Whether this product requires shipping (physical products) */
19581
18882
  requiresShipping?: Maybe<Scalars['Boolean']['output']>;
@@ -19594,13 +18895,7 @@ export type StoreProduct = {
19594
18895
  /** Current stock quantity (physical products) */
19595
18896
  stockQuantity?: Maybe<Scalars['Int']['output']>;
19596
18897
  storeId?: Maybe<Scalars['ID']['output']>;
19597
- /**
19598
- * Type-specific subtype from manifest.json.
19599
- * Examples:
19600
- * - Agent: task_automation, conversational, research, code_assistant
19601
- * - Node: action, transform, trigger, logic, integration, data, notification, ai
19602
- * - Widget: chart, metric, table, map, form, text, custom
19603
- */
18898
+ /** Type-specific subtype from manifest.json. Examples: - Agent: task_automation, conversational, research, code_assistant - Node: action, transform, trigger, logic, integration, data, notification, ai - Widget: chart, metric, table, map, form, text, custom */
19604
18899
  subType?: Maybe<Scalars['String']['output']>;
19605
18900
  submittedAt?: Maybe<Scalars['DateTime']['output']>;
19606
18901
  submittedBy?: Maybe<Scalars['String']['output']>;
@@ -19726,10 +19021,7 @@ export type SubmissionStatusUpdatedEvent = {
19726
19021
  submissionId: Scalars['ID']['output'];
19727
19022
  updatedAt: Scalars['String']['output'];
19728
19023
  };
19729
- /**
19730
- * Input for submitting a contact inquiry from a public website.
19731
- * reCAPTCHA token is required only when CAPTCHA_ENABLED=true.
19732
- */
19024
+ /** Input for submitting a contact inquiry from a public website. reCAPTCHA token is required only when CAPTCHA_ENABLED=true. */
19733
19025
  export type SubmitContactInquiryInput = {
19734
19026
  /** Company name (optional) */
19735
19027
  company?: InputMaybe<Scalars['String']['input']>;
@@ -19874,55 +19166,31 @@ export type Subscription = {
19874
19166
  _emptyBilling?: Maybe<Scalars['String']['output']>;
19875
19167
  _emptyDevportal?: Maybe<Scalars['String']['output']>;
19876
19168
  _emptyI18n?: Maybe<Scalars['String']['output']>;
19877
- /**
19878
- * Placeholder field to allow empty Subscription type extension.
19879
- * Each module has a unique placeholder to avoid naming conflicts across subgraphs.
19880
- */
19169
+ /** Placeholder field to allow empty Subscription type extension. Each module has a unique placeholder to avoid naming conflicts across subgraphs. */
19881
19170
  _emptyNewsletter?: Maybe<Scalars['String']['output']>;
19882
19171
  _emptyNotification?: Maybe<Scalars['String']['output']>;
19883
- /**
19884
- * Placeholder field to allow empty Subscription type extension.
19885
- * Each module has a unique placeholder to avoid naming conflicts across subgraphs.
19886
- */
19172
+ /** Placeholder field to allow empty Subscription type extension. Each module has a unique placeholder to avoid naming conflicts across subgraphs. */
19887
19173
  _emptySupport?: Maybe<Scalars['String']['output']>;
19888
19174
  _emptyTours?: Maybe<Scalars['String']['output']>;
19889
- /**
19890
- * Placeholder subscription (extended by modules)
19891
- * @rbac(public: true, scopeType: "global")
19892
- */
19175
+ /** Placeholder subscription (extended by modules) @rbac(public: true, scopeType: "global") */
19893
19176
  _placeholder?: Maybe<Scalars['String']['output']>;
19894
19177
  agentStatusChanged: AgentProfile;
19895
- /**
19896
- * Fires whenever the AppReview lifecycle changes for a given application
19897
- * (submission -> moderation -> publish/reject).
19898
- */
19178
+ /** Fires whenever the AppReview lifecycle changes for a given application (submission -> moderation -> publish/reject). */
19899
19179
  appReviewStatusChanged: AppReview;
19900
- /**
19901
- * Subscribe to channel health changes.
19902
- * Emits when a channel's connectionHealth status changes (HEALTHY → DEGRADED, etc.)
19903
- *
19904
- * Use cases:
19905
- * - Real-time dashboard updates showing channel health
19906
- * - Alerting systems monitoring channel availability
19907
- * - Auto-failover logic reacting to health degradation
19908
- */
19180
+ /** Subscribe to channel health changes. Emits when a channel's connectionHealth status changes (HEALTHY → DEGRADED, etc.) Use cases: - Real-time dashboard updates showing channel health - Alerting systems monitoring channel availability - Auto-failover logic reacting to health degradation */
19909
19181
  channelHealthChanged: ChannelHealthUpdate;
19910
- /**
19911
- * Subscribe to connection-status changes for a channel.
19912
- * Emits when isActive or isHealthy flips on the channel's connection.
19913
- */
19182
+ /** Subscribe to connection-status changes for an organization. Emits when isActive or isHealthy flips on any channel connection in the org. Pass either organizationId (to watch all connections in the org) or channelId (to watch a specific channel's connection — deprecated arg, kept for backward compat). */
19914
19183
  connectionStatusChanged: ConnectionStatusChangedEvent;
19915
19184
  /** Emits the deleted content-page id. */
19916
19185
  contentPageDeleted: Scalars['ID']['output'];
19917
19186
  /** Notifies clients when a content page is created or updated. */
19918
19187
  contentPageUpdated: ProductContentPage;
19919
19188
  coverageChanged: CoverageChangeEvent;
19189
+ /** Subscribe to delivery status updates for a channel. Emits when a message delivery attempt changes status (SENDING, SENT, FAILED, etc.) */
19190
+ deliveryUpdated: DeliveryUpdatedEvent;
19920
19191
  dependencyTriggered: DependencyTriggeredUpdate;
19921
19192
  executionUpdated: ExecutionUpdate;
19922
- /**
19923
- * Notifies clients when a feature flag definition is created or updated.
19924
- * Subscribers can pass `flagKey` to receive only matching events.
19925
- */
19193
+ /** Notifies clients when a feature flag definition is created or updated. Subscribers can pass `flagKey` to receive only matching events. */
19926
19194
  featureFlagChanged: FeatureFlag;
19927
19195
  /** Emits the deleted feature-flag id so clients can drop it from their cache. */
19928
19196
  featureFlagDeleted: Scalars['ID']['output'];
@@ -19930,54 +19198,33 @@ export type Subscription = {
19930
19198
  /** Subscribe to app installation status changes for a workspace. */
19931
19199
  installationStatusUpdated?: Maybe<InstallationStatusUpdatedEvent>;
19932
19200
  jobStatusUpdated: JobStatusUpdate;
19933
- /**
19934
- * Notifies clients when a keyboard shortcut is created, updated, or toggled.
19935
- * Subscribers can pass `productId` to scope the stream to a single product.
19936
- */
19201
+ /** Notifies clients when a keyboard shortcut is created, updated, or toggled. Subscribers can pass `productId` to scope the stream to a single product. */
19937
19202
  keyboardShortcutChanged: KeyboardShortcut;
19938
19203
  /** Emits the deleted shortcut id so clients can drop it from their cache. */
19939
19204
  keyboardShortcutDeleted: Scalars['ID']['output'];
19940
19205
  /** Subscribe to license entitlement status changes. */
19941
19206
  licenseStatusUpdated?: Maybe<LicenseStatusUpdatedEvent>;
19942
19207
  metricsUpdated: SchedulerMetricsUpdate;
19943
- /**
19944
- * Live stream of the authenticated caller's unread notification count.
19945
- * Mirrors the result of `myUnreadNotificationCount` and replaces 30s
19946
- * polling on the FE NotificationCenter — backend publishes on every
19947
- * notification create / read / archive / delete.
19948
- */
19208
+ /** Live stream of the authenticated caller's unread notification count. Mirrors the result of `myUnreadNotificationCount` and replaces 30s polling on the FE NotificationCenter — backend publishes on every notification create / read / archive / delete. */
19949
19209
  myUnreadNotificationCountStream: Scalars['Int']['output'];
19950
19210
  newTicketInQueue: SupportTicket;
19951
19211
  /** Subscribe to new notifications for the authenticated user */
19952
19212
  notificationReceived?: Maybe<Notification>;
19953
- /**
19954
- * Subscribe to delivery status updates for a notification.
19955
- * Useful for real-time tracking of delivery progress.
19956
- */
19213
+ /** Subscribe to delivery status updates for a notification. Useful for real-time tracking of delivery progress. */
19957
19214
  onDeliveryStatusUpdate: ChannelDeliveryStatusUpdate;
19958
19215
  /** Subscribe to order status changes for a specific order or workspace. */
19959
19216
  orderStatusUpdated?: Maybe<OrderStatusUpdatedEvent>;
19960
19217
  /** Emits the deleted product id so clients can drop it from their cache. */
19961
19218
  productDeleted: Scalars['ID']['output'];
19962
- /**
19963
- * Notifies clients when a platform product is created or updated.
19964
- * Fires on create + update mutations; deletes are reported via `productDeleted`.
19965
- */
19219
+ /** Notifies clients when a platform product is created or updated. Fires on create + update mutations; deletes are reported via `productDeleted`. */
19966
19220
  productUpdated: PlatformProduct;
19967
- /**
19968
- * Fires when the per-organization revenue rollup recomputes
19969
- * (currently every cron tick or after a settled sale).
19970
- */
19221
+ /** Fires when the per-organization revenue rollup recomputes (currently every cron tick or after a settled sale). */
19971
19222
  revenueUpdated: DeveloperOrgRevenueAnalytics;
19972
19223
  /** Subscribe to publisher submission status changes. */
19973
19224
  submissionStatusUpdated?: Maybe<SubmissionStatusUpdatedEvent>;
19974
19225
  /** Stream of soft-deleted tenant ids. */
19975
19226
  tenantDeleted: Scalars['ID']['output'];
19976
- /**
19977
- * Stream of tenant lifecycle changes (create/update/configure/suspend/activate/
19978
- * provision/endpoint-set). Backed by an in-memory pubsub fed by the matching
19979
- * mutations. Lets the admin tenant list refresh in real time without polling.
19980
- */
19227
+ /** Stream of tenant lifecycle changes (create/update/configure/suspend/activate/ provision/endpoint-set). Backed by an in-memory pubsub fed by the matching mutations. Lets the admin tenant list refresh in real time without polling. */
19981
19228
  tenantUpdated: Tenant;
19982
19229
  ticketMessageAdded: SupportMessage;
19983
19230
  ticketUpdated: SupportTicket;
@@ -19985,16 +19232,9 @@ export type Subscription = {
19985
19232
  translationUpdated: TranslationUpdateEvent;
19986
19233
  /** Subscribe to unread count changes for the authenticated user */
19987
19234
  unreadCountUpdated?: Maybe<Scalars['Int']['output']>;
19988
- /**
19989
- * Fires on every WebhookDelivery state transition for the given webhook
19990
- * (PENDING -> DELIVERING -> DELIVERED|FAILED|RETRYING).
19991
- */
19235
+ /** Fires on every WebhookDelivery state transition for the given webhook (PENDING -> DELIVERING -> DELIVERED|FAILED|RETRYING). */
19992
19236
  webhookDeliveryUpdated: WebhookDelivery;
19993
- /**
19994
- * Subscribe to webhook events received by a channel.
19995
- * Emits when a new WebhookEvent row is persisted (before downstream processing).
19996
- * Resolver-level filter scopes to the requested channelId.
19997
- */
19237
+ /** Subscribe to webhook events received by a channel. Emits when a new WebhookEvent row is persisted (before downstream processing). Resolver-level filter scopes to the requested channelId. */
19998
19238
  webhookReceived: WebhookReceivedEvent;
19999
19239
  };
20000
19240
  /** Root subscription type */
@@ -20007,7 +19247,8 @@ export type SubscriptionChannelHealthChangedArgs = {
20007
19247
  };
20008
19248
  /** Root subscription type */
20009
19249
  export type SubscriptionConnectionStatusChangedArgs = {
20010
- channelId: Scalars['ID']['input'];
19250
+ channelId?: InputMaybe<Scalars['ID']['input']>;
19251
+ organizationId?: InputMaybe<Scalars['ID']['input']>;
20011
19252
  };
20012
19253
  /** Root subscription type */
20013
19254
  export type SubscriptionContentPageUpdatedArgs = {
@@ -20018,6 +19259,10 @@ export type SubscriptionCoverageChangedArgs = {
20018
19259
  productCode: Scalars['String']['input'];
20019
19260
  };
20020
19261
  /** Root subscription type */
19262
+ export type SubscriptionDeliveryUpdatedArgs = {
19263
+ channelId: Scalars['ID']['input'];
19264
+ };
19265
+ /** Root subscription type */
20021
19266
  export type SubscriptionDependencyTriggeredArgs = {
20022
19267
  scheduleId?: InputMaybe<Scalars['ID']['input']>;
20023
19268
  };
@@ -20119,10 +19364,7 @@ export type SubscriptionWebhookDeliveryUpdatedArgs = {
20119
19364
  export type SubscriptionWebhookReceivedArgs = {
20120
19365
  channelId: Scalars['ID']['input'];
20121
19366
  };
20122
- /**
20123
- * SubscriptionEntitlement defines what store items a plan grants access to.
20124
- * This allows plans to provide discounts or free access to store items.
20125
- */
19367
+ /** SubscriptionEntitlement defines what store items a plan grants access to. This allows plans to provide discounts or free access to store items. */
20126
19368
  export type SubscriptionEntitlement = {
20127
19369
  __typename?: 'SubscriptionEntitlement';
20128
19370
  /** The type of access granted (FREE_ACCESS or DISCOUNT) */
@@ -20137,10 +19379,7 @@ export type SubscriptionEntitlement = {
20137
19379
  id: Scalars['ID']['output'];
20138
19380
  /** Reference to the store item entity (resolved via Federation) */
20139
19381
  item?: Maybe<StoreItem>;
20140
- /**
20141
- * Reference to the store item (external entity from Store service)
20142
- * Resolved via Federation 2 Gateway
20143
- */
19382
+ /** Reference to the store item (external entity from Store service) Resolved via Federation 2 Gateway */
20144
19383
  itemId: Scalars['String']['output'];
20145
19384
  /** The plan that grants this entitlement */
20146
19385
  plan: Plan;
@@ -20229,7 +19468,10 @@ export type SupportAttachmentPresignedPart = {
20229
19468
  };
20230
19469
  export type SupportAttachmentUploadSession = {
20231
19470
  __typename?: 'SupportAttachmentUploadSession';
19471
+ attachmentId: Scalars['ID']['output'];
19472
+ /** @deprecated Support attachments no longer use files-module folders. */
20232
19473
  folderId: Scalars['ID']['output'];
19474
+ /** @deprecated Support attachments are stored directly in support-owned S3 prefixes. */
20233
19475
  folderPath: Scalars['String']['output'];
20234
19476
  partSize: Scalars['Int']['output'];
20235
19477
  presignedUrls: Array<SupportAttachmentPresignedPart>;
@@ -20238,25 +19480,14 @@ export type SupportAttachmentUploadSession = {
20238
19480
  uploadType: Scalars['String']['output'];
20239
19481
  uploadUrl?: Maybe<Scalars['String']['output']>;
20240
19482
  };
20241
- /**
20242
- * Privacy-preserving author projection for SupportMessage. End-users only ever see
20243
- * the anonymized alias + generated avatar for agent authors; super_admin / service
20244
- * actors (admin app) see the real identity.
20245
- */
19483
+ /** Privacy-preserving author projection for SupportMessage. End-users only ever see the anonymized alias + generated avatar for agent authors; super_admin / service actors (admin app) see the real identity. */
20246
19484
  export type SupportAuthor = {
20247
19485
  __typename?: 'SupportAuthor';
20248
19486
  avatar: Scalars['String']['output'];
20249
19487
  displayName: Scalars['String']['output'];
20250
- /**
20251
- * Stable opaque identifier safe for both viewer scopes. For agent authors viewed
20252
- * by an end-user this is the AgentProfile id (NOT the underlying userId); for
20253
- * admin viewers and customer authors it is the underlying actor id.
20254
- */
19488
+ /** Stable opaque identifier safe for both viewer scopes. For agent authors viewed by an end-user this is the AgentProfile id (NOT the underlying userId); for admin viewers and customer authors it is the underlying actor id. */
20255
19489
  id: Scalars['ID']['output'];
20256
- /**
20257
- * True when the viewer was scoped down to the anonymized projection. Admins see
20258
- * this as false; end-users see it as true for agent authors.
20259
- */
19490
+ /** True when the viewer was scoped down to the anonymized projection. Admins see this as false; end-users see it as true for agent authors. */
20260
19491
  isAnonymized: Scalars['Boolean']['output'];
20261
19492
  /** AGENT | CUSTOMER | SYSTEM — drives UI styling without leaking identity. */
20262
19493
  kind: SupportAuthorKind;
@@ -20266,11 +19497,7 @@ export declare enum SupportAuthorKind {
20266
19497
  Customer = "CUSTOMER",
20267
19498
  System = "SYSTEM"
20268
19499
  }
20269
- /**
20270
- * Support-specific context output type.
20271
- * Returns the stored context for each record.
20272
- * Uses a unique type name to avoid federation conflicts with other services.
20273
- */
19500
+ /** Support-specific context output type. Returns the stored context for each record. Uses a unique type name to avoid federation conflicts with other services. */
20274
19501
  export type SupportContext = {
20275
19502
  __typename?: 'SupportContext';
20276
19503
  custom?: Maybe<Scalars['JSON']['output']>;
@@ -20281,11 +19508,7 @@ export type SupportContext = {
20281
19508
  userId?: Maybe<Scalars['ID']['output']>;
20282
19509
  workspaceId?: Maybe<Scalars['ID']['output']>;
20283
19510
  };
20284
- /**
20285
- * Context filter input for querying records by context.
20286
- * Supports exact match filtering on context fields.
20287
- * Note: tenantId filtering is applied automatically from context.tenant?.id.
20288
- */
19511
+ /** Context filter input for querying records by context. Supports exact match filtering on context fields. Note: tenantId filtering is applied automatically from context.tenant?.id. */
20289
19512
  export type SupportContextFilterInput = {
20290
19513
  organizationId?: InputMaybe<Scalars['ID']['input']>;
20291
19514
  productId?: InputMaybe<Scalars['ID']['input']>;
@@ -20293,11 +19516,7 @@ export type SupportContextFilterInput = {
20293
19516
  userId?: InputMaybe<Scalars['ID']['input']>;
20294
19517
  workspaceId?: InputMaybe<Scalars['ID']['input']>;
20295
19518
  };
20296
- /**
20297
- * Support context input for filtering and scoping data.
20298
- * All fields are optional and can be extended as needed.
20299
- * Note: tenantId is derived from context.tenant?.id (gateway header), not from client input.
20300
- */
19519
+ /** Support context input for filtering and scoping data. All fields are optional and can be extended as needed. Note: tenantId is derived from context.tenant?.id (gateway header), not from client input. */
20301
19520
  export type SupportContextInput = {
20302
19521
  custom?: InputMaybe<Scalars['JSON']['input']>;
20303
19522
  organizationId?: InputMaybe<Scalars['ID']['input']>;
@@ -20326,10 +19545,7 @@ export type SupportMessage = {
20326
19545
  __typename?: 'SupportMessage';
20327
19546
  attachmentCount: Scalars['Int']['output'];
20328
19547
  attachments: Array<Scalars['String']['output']>;
20329
- /**
20330
- * Privacy-aware author projection. Returns the anonymized alias + avatar for
20331
- * end-users; admin app (super_admin / service) sees the real identity.
20332
- */
19548
+ /** Privacy-aware author projection. Returns the anonymized alias + avatar for end-users; admin app (super_admin / service) sees the real identity. */
20333
19549
  author: SupportAuthor;
20334
19550
  authorId: Scalars['String']['output'];
20335
19551
  /** Contextual IDs for filtering and scoping (workspaceId, userId, projectId, etc.) */
@@ -20523,6 +19739,48 @@ export type SyncChannelUsersInput = {
20523
19739
  /** Force refresh (ignore cache) */
20524
19740
  forceRefresh?: InputMaybe<Scalars['Boolean']['input']>;
20525
19741
  };
19742
+ /** A recorded cross-layer sync attempt (global-tenant-svc → wspace layer). */
19743
+ export type SyncOutboxEntry = {
19744
+ __typename?: 'SyncOutboxEntry';
19745
+ attempts: Scalars['Int']['output'];
19746
+ createdAt: Scalars['DateTime']['output'];
19747
+ id: Scalars['ID']['output'];
19748
+ lastAttemptAt?: Maybe<Scalars['DateTime']['output']>;
19749
+ lastError?: Maybe<Scalars['String']['output']>;
19750
+ maxAttempts: Scalars['Int']['output'];
19751
+ nextRetryAt?: Maybe<Scalars['DateTime']['output']>;
19752
+ operation: Scalars['String']['output'];
19753
+ payload?: Maybe<Scalars['JSON']['output']>;
19754
+ status: SyncOutboxStatus;
19755
+ updatedAt: Scalars['DateTime']['output'];
19756
+ workspaceId: Scalars['String']['output'];
19757
+ };
19758
+ export type SyncOutboxEntryList = {
19759
+ __typename?: 'SyncOutboxEntryList';
19760
+ items: Array<SyncOutboxEntry>;
19761
+ total: Scalars['Int']['output'];
19762
+ };
19763
+ export type SyncOutboxFilterInput = {
19764
+ /** Filter by sync operation (e.g. SYNC_WORKSPACE, ADD_MEMBER, REMOVE_MEMBER). */
19765
+ operation?: InputMaybe<Scalars['String']['input']>;
19766
+ /** Filter to one or more statuses. If omitted, all statuses are returned. */
19767
+ statuses?: InputMaybe<Array<SyncOutboxStatus>>;
19768
+ /** Filter by the workspace the sync targets. */
19769
+ workspaceId?: InputMaybe<Scalars['String']['input']>;
19770
+ };
19771
+ export type SyncOutboxStats = {
19772
+ __typename?: 'SyncOutboxStats';
19773
+ pending: Scalars['Int']['output'];
19774
+ permanentlyFailed: Scalars['Int']['output'];
19775
+ retrying: Scalars['Int']['output'];
19776
+ successful: Scalars['Int']['output'];
19777
+ };
19778
+ export declare enum SyncOutboxStatus {
19779
+ Pending = "PENDING",
19780
+ PermanentlyFailed = "PERMANENTLY_FAILED",
19781
+ Retrying = "RETRYING",
19782
+ Success = "SUCCESS"
19783
+ }
20526
19784
  export type SyncTourStepInput = {
20527
19785
  actions?: InputMaybe<Scalars['JSON']['input']>;
20528
19786
  content: Scalars['String']['input'];
@@ -20543,10 +19801,7 @@ export type SyncTourStepInput = {
20543
19801
  waitForSelector?: InputMaybe<Scalars['String']['input']>;
20544
19802
  waitForTimeout?: InputMaybe<Scalars['Int']['input']>;
20545
19803
  };
20546
- /**
20547
- * Input for syncing workspace from workspace layer to global layer
20548
- * Called by wspace-workspace-svc after creating a workspace directly
20549
- */
19804
+ /** Input for syncing workspace from workspace layer to global layer Called by wspace-workspace-svc after creating a workspace directly */
20550
19805
  export type SyncWorkspaceFromWspaceInput = {
20551
19806
  /** Workspace name */
20552
19807
  name: Scalars['String']['input'];
@@ -20641,20 +19896,13 @@ export type TemplateNotificationResult = {
20641
19896
  /** Number of notifications successfully triggered */
20642
19897
  totalTriggered: Scalars['Int']['output'];
20643
19898
  };
20644
- /**
20645
- * Tenant type stub - represents a tenant entity from the tenant service
20646
- * This service doesn't own the Tenant model, but references it
20647
- */
19899
+ /** Tenant type stub - represents a tenant entity from the tenant service This service doesn't own the Tenant model, but references it */
20648
19900
  export type Tenant = {
20649
19901
  __typename?: 'Tenant';
20650
19902
  config?: Maybe<TenantConfig>;
20651
19903
  createdAt: Scalars['DateTime']['output'];
20652
19904
  customDomain?: Maybe<Scalars['String']['output']>;
20653
- /**
20654
- * Service routing endpoint for dedicated tenants
20655
- * For SHARED tenants, this is null (uses default service)
20656
- * For DEDICATED tenants, this points to the dedicated service instance
20657
- */
19905
+ /** Service routing endpoint for dedicated tenants For SHARED tenants, this is null (uses default service) For DEDICATED tenants, this points to the dedicated service instance */
20658
19906
  endpoint?: Maybe<Scalars['String']['output']>;
20659
19907
  id: Scalars['ID']['output'];
20660
19908
  metadata?: Maybe<Scalars['JSON']['output']>;
@@ -20677,10 +19925,7 @@ export type TenantConfig = {
20677
19925
  features?: Maybe<Scalars['JSON']['output']>;
20678
19926
  region?: Maybe<Scalars['String']['output']>;
20679
19927
  };
20680
- /**
20681
- * Inline export payload for `exportTenantsCsv`. Returns CSV text along with a
20682
- * count of rows and a flag if the result was capped at the requested limit.
20683
- */
19928
+ /** Inline export payload for `exportTenantsCsv`. Returns CSV text along with a count of rows and a flag if the result was capped at the requested limit. */
20684
19929
  export type TenantExport = {
20685
19930
  __typename?: 'TenantExport';
20686
19931
  csv: Scalars['String']['output'];
@@ -20704,10 +19949,7 @@ export type TenantList = {
20704
19949
  offset: Scalars['Int']['output'];
20705
19950
  total: Scalars['Int']['output'];
20706
19951
  };
20707
- /**
20708
- * Lightweight tenant routing info used by gateways to decide
20709
- * whether to proxy requests to a dedicated tenant endpoint.
20710
- */
19952
+ /** Lightweight tenant routing info used by gateways to decide whether to proxy requests to a dedicated tenant endpoint. */
20711
19953
  export type TenantRoutingInfo = {
20712
19954
  __typename?: 'TenantRoutingInfo';
20713
19955
  endpoint?: Maybe<Scalars['String']['output']>;
@@ -20882,13 +20124,7 @@ export type Tour = {
20882
20124
  metadata?: Maybe<Scalars['JSON']['output']>;
20883
20125
  mobileConfig?: Maybe<Scalars['JSON']['output']>;
20884
20126
  moduleId?: Maybe<Scalars['String']['output']>;
20885
- /**
20886
- * The current authenticated user's progress for this tour, or null if the
20887
- * user has not interacted with it yet. Resolves to the most recent
20888
- * TourUserProgress row for the requesting actor. Used by the TourTrigger
20889
- * dropdown to render per-tour status chips (Completed / In progress /
20890
- * Skipped) without requiring a second round-trip.
20891
- */
20127
+ /** The current authenticated user's progress for this tour, or null if the user has not interacted with it yet. Resolves to the most recent TourUserProgress row for the requesting actor. Used by the TourTrigger dropdown to render per-tour status chips (Completed / In progress / Skipped) without requiring a second round-trip. */
20892
20128
  myProgress?: Maybe<TourUserProgress>;
20893
20129
  name: Scalars['String']['output'];
20894
20130
  pageId?: Maybe<Scalars['String']['output']>;
@@ -21161,12 +20397,7 @@ export declare enum TourUserStatus {
21161
20397
  NotStarted = "NOT_STARTED",
21162
20398
  Skipped = "SKIPPED"
21163
20399
  }
21164
- /**
21165
- * Tours-specific context output type.
21166
- * Returns the stored context for each record.
21167
- * Uses a unique type name to avoid federation conflicts with other services.
21168
- * Must be @shareable since context types may exist in multiple subgraphs.
21169
- */
20400
+ /** Tours-specific context output type. Returns the stored context for each record. Uses a unique type name to avoid federation conflicts with other services. Must be @shareable since context types may exist in multiple subgraphs. */
21170
20401
  export type ToursContext = {
21171
20402
  __typename?: 'ToursContext';
21172
20403
  /** Additional custom context as JSON */
@@ -21199,10 +20430,7 @@ export type ToursResponse = {
21199
20430
  total: Scalars['Int']['output'];
21200
20431
  tours: Array<Tour>;
21201
20432
  };
21202
- /**
21203
- * Transaction entity - resolvable via Federation Gateway.
21204
- * Other services (e.g., store-svc) can reference Transaction by id.
21205
- */
20433
+ /** Transaction entity - resolvable via Federation Gateway. Other services (e.g., store-svc) can reference Transaction by id. */
21206
20434
  export type Transaction = {
21207
20435
  __typename?: 'Transaction';
21208
20436
  amount: Scalars['Float']['output'];
@@ -21651,10 +20879,7 @@ export type UpdateChannelInput = {
21651
20879
  export type UpdateConnectionInput = {
21652
20880
  /** Operation context for scoping */
21653
20881
  context?: InputMaybe<ContextInput>;
21654
- /**
21655
- * Platform-specific credentials (API keys, tokens, etc.)
21656
- * Will be encrypted before storage.
21657
- */
20882
+ /** Platform-specific credentials (API keys, tokens, etc.) Will be encrypted before storage. */
21658
20883
  credentials?: InputMaybe<Scalars['JSON']['input']>;
21659
20884
  /** Connection status */
21660
20885
  isActive?: InputMaybe<Scalars['Boolean']['input']>;
@@ -21668,14 +20893,21 @@ export type UpdateContactInquiryStatusInput = {
21668
20893
  status: ContactInquiryStatus;
21669
20894
  };
21670
20895
  export type UpdateContentPageInput = {
20896
+ author?: InputMaybe<Scalars['String']['input']>;
20897
+ category?: InputMaybe<Scalars['String']['input']>;
21671
20898
  content?: InputMaybe<Scalars['String']['input']>;
21672
20899
  contentFormat?: InputMaybe<Scalars['String']['input']>;
20900
+ excerpt?: InputMaybe<Scalars['String']['input']>;
20901
+ featured?: InputMaybe<Scalars['Boolean']['input']>;
21673
20902
  isPublished?: InputMaybe<Scalars['Boolean']['input']>;
20903
+ publishedAt?: InputMaybe<Scalars['DateTime']['input']>;
20904
+ readingTime?: InputMaybe<Scalars['Int']['input']>;
21674
20905
  seoDescription?: InputMaybe<Scalars['String']['input']>;
21675
20906
  seoKeywords?: InputMaybe<Scalars['String']['input']>;
21676
20907
  seoTitle?: InputMaybe<Scalars['String']['input']>;
21677
20908
  sortOrder?: InputMaybe<Scalars['Int']['input']>;
21678
20909
  tags?: InputMaybe<Array<Scalars['String']['input']>>;
20910
+ thumbnail?: InputMaybe<Scalars['String']['input']>;
21679
20911
  title?: InputMaybe<Scalars['String']['input']>;
21680
20912
  visibility?: InputMaybe<ContentVisibility>;
21681
20913
  };
@@ -22035,6 +21267,20 @@ export type UpdatePolicyReferenceInput = {
22035
21267
  priority?: InputMaybe<Scalars['Int']['input']>;
22036
21268
  resourceType?: InputMaybe<Scalars['String']['input']>;
22037
21269
  };
21270
+ export type UpdatePressKitAssetInput = {
21271
+ category?: InputMaybe<PressKitAssetCategory>;
21272
+ description?: InputMaybe<Scalars['String']['input']>;
21273
+ fileName?: InputMaybe<Scalars['String']['input']>;
21274
+ fileSize?: InputMaybe<Scalars['Int']['input']>;
21275
+ fileUrl?: InputMaybe<Scalars['String']['input']>;
21276
+ mimeType?: InputMaybe<Scalars['String']['input']>;
21277
+ sortOrder?: InputMaybe<Scalars['Int']['input']>;
21278
+ tags?: InputMaybe<Array<Scalars['String']['input']>>;
21279
+ thumbnailUrl?: InputMaybe<Scalars['String']['input']>;
21280
+ title?: InputMaybe<Scalars['String']['input']>;
21281
+ version?: InputMaybe<Scalars['String']['input']>;
21282
+ visibility?: InputMaybe<ContentVisibility>;
21283
+ };
22038
21284
  export type UpdateProductInput = {
22039
21285
  category?: InputMaybe<Scalars['String']['input']>;
22040
21286
  content?: InputMaybe<Scalars['JSON']['input']>;
@@ -22234,10 +21480,7 @@ export type UpdateSubscriptionInput = {
22234
21480
  export type UpdateSubscriptionSeatsInput = {
22235
21481
  /** Billing account that owns this subscription. */
22236
21482
  billingAccountId: Scalars['ID']['input'];
22237
- /**
22238
- * New seat count. Must be >= plan.minSeats. Applied immediately on Stripe (with proration)
22239
- * and at next cycle on Razorpay (proration delta charged as a separate one-time order).
22240
- */
21483
+ /** New seat count. Must be >= plan.minSeats. Applied immediately on Stripe (with proration) and at next cycle on Razorpay (proration delta charged as a separate one-time order). */
22241
21484
  seatCount: Scalars['Int']['input'];
22242
21485
  subscriptionId: Scalars['ID']['input'];
22243
21486
  };
@@ -22390,6 +21633,7 @@ export type UpdateTranslationKeyInput = {
22390
21633
  };
22391
21634
  /** Input for updating user profile information */
22392
21635
  export type UpdateUserInput = {
21636
+ avatar?: InputMaybe<Scalars['String']['input']>;
22393
21637
  firstName?: InputMaybe<Scalars['String']['input']>;
22394
21638
  language?: InputMaybe<Scalars['String']['input']>;
22395
21639
  lastName?: InputMaybe<Scalars['String']['input']>;
@@ -22575,15 +21819,12 @@ export type UsageTrends = {
22575
21819
  /** Predicted usage for next period */
22576
21820
  predictedUsage?: Maybe<Scalars['Float']['output']>;
22577
21821
  };
22578
- /**
22579
- * User type stub - represents a user entity from the auth/user service
22580
- * This service doesn't own the User model, but references it in usage tracking
22581
- * Federation gateway will resolve full User data from auth/user service.
22582
- */
21822
+ /** User type stub - represents a user entity from the auth/user service This service doesn't own the User model, but references it in usage tracking Federation gateway will resolve full User data from auth/user service. */
22583
21823
  export type User = {
22584
21824
  __typename?: 'User';
22585
21825
  /** Tickets assigned to this user (if support agent) */
22586
21826
  assignedTickets: SupportTicketConnection;
21827
+ avatar?: Maybe<Scalars['String']['output']>;
22587
21828
  createdAt: Scalars['DateTime']['output'];
22588
21829
  defaultWorkspaceId?: Maybe<Scalars['String']['output']>;
22589
21830
  email: Scalars['String']['output'];
@@ -22607,21 +21848,13 @@ export type User = {
22607
21848
  updatedAt: Scalars['DateTime']['output'];
22608
21849
  username: Scalars['String']['output'];
22609
21850
  };
22610
- /**
22611
- * User type stub - represents a user entity from the auth/user service
22612
- * This service doesn't own the User model, but references it in usage tracking
22613
- * Federation gateway will resolve full User data from auth/user service.
22614
- */
21851
+ /** User type stub - represents a user entity from the auth/user service This service doesn't own the User model, but references it in usage tracking Federation gateway will resolve full User data from auth/user service. */
22615
21852
  export type UserAssignedTicketsArgs = {
22616
21853
  filter?: InputMaybe<SupportTicketFilterInput>;
22617
21854
  limit?: InputMaybe<Scalars['Int']['input']>;
22618
21855
  offset?: InputMaybe<Scalars['Int']['input']>;
22619
21856
  };
22620
- /**
22621
- * User type stub - represents a user entity from the auth/user service
22622
- * This service doesn't own the User model, but references it in usage tracking
22623
- * Federation gateway will resolve full User data from auth/user service.
22624
- */
21857
+ /** User type stub - represents a user entity from the auth/user service This service doesn't own the User model, but references it in usage tracking Federation gateway will resolve full User data from auth/user service. */
22625
21858
  export type UserTicketsArgs = {
22626
21859
  filter?: InputMaybe<SupportTicketFilterInput>;
22627
21860
  limit?: InputMaybe<Scalars['Int']['input']>;
@@ -22675,17 +21908,10 @@ export type UserLanguagePreference = {
22675
21908
  updatedAt: Scalars['DateTime']['output'];
22676
21909
  userId: Scalars['String']['output'];
22677
21910
  };
22678
- /**
22679
- * UserPlatformConnection represents a verified user identity on a communication platform.
22680
- * It serves as the DM authorization allowlist and notification delivery target.
22681
- * Replaces the former ChannelUser model.
22682
- */
21911
+ /** UserPlatformConnection represents a verified user identity on a communication platform. It serves as the DM authorization allowlist and notification delivery target. Replaces the former ChannelUser model. */
22683
21912
  export type UserPlatformConnection = {
22684
21913
  __typename?: 'UserPlatformConnection';
22685
- /**
22686
- * Whether the user has a valid DM conversation target
22687
- * (dmAllowed = true AND dmConversationId is set)
22688
- */
21914
+ /** Whether the user has a valid DM conversation target (dmAllowed = true AND dmConversationId is set) */
22689
21915
  canReceiveDm: Scalars['Boolean']['output'];
22690
21916
  /** Associated channel */
22691
21917
  channel: Channel;
@@ -22701,16 +21927,9 @@ export type UserPlatformConnection = {
22701
21927
  customStatus?: Maybe<Scalars['String']['output']>;
22702
21928
  /** When this record was soft-deleted (null = active) */
22703
21929
  deletedAt?: Maybe<Scalars['DateTime']['output']>;
22704
- /**
22705
- * Whether DMs to/from this user are allowed.
22706
- * Only true when source = OAUTH or PAIRED; never for SEEN.
22707
- */
21930
+ /** Whether DMs to/from this user are allowed. Only true when source = OAUTH or PAIRED; never for SEEN. */
22708
21931
  dmAllowed: Scalars['Boolean']['output'];
22709
- /**
22710
- * Platform-specific DM conversation ID.
22711
- * Slack: D0A1B2C3 | Teams: conversation reference JSON |
22712
- * WhatsApp: JID | Discord: N/A | Google Chat: space name
22713
- */
21932
+ /** Platform-specific DM conversation ID. Slack: D0A1B2C3 | Teams: conversation reference JSON | WhatsApp: JID | Discord: N/A | Google Chat: space name */
22714
21933
  dmConversationId?: Maybe<Scalars['String']['output']>;
22715
21934
  /** Platform avatar URL */
22716
21935
  externalAvatarUrl?: Maybe<Scalars['String']['output']>;
@@ -22726,12 +21945,7 @@ export type UserPlatformConnection = {
22726
21945
  externalUsername?: Maybe<Scalars['String']['output']>;
22727
21946
  /** Unique connection ID */
22728
21947
  id: Scalars['ID']['output'];
22729
- /**
22730
- * Opaque reference to the IntegrationConnection in wspace-integrations-svc
22731
- * that holds this user's personal OAuth token. Set after the user completes
22732
- * the OAuth flow in microfe-integrations and clicks "Link to bot channel".
22733
- * Null for connections created via the legacy Slack OAuth flow.
22734
- */
21948
+ /** Opaque reference to the IntegrationConnection in wspace-integrations-svc that holds this user's personal OAuth token. Set after the user completes the OAuth flow in microfe-integrations and clicks "Link to bot channel". Null for connections created via the legacy Slack OAuth flow. */
22735
21949
  integrationConnectionId?: Maybe<Scalars['ID']['output']>;
22736
21950
  /** Internal Botlit user ID (opaque reference) */
22737
21951
  internalUserId?: Maybe<Scalars['ID']['output']>;
@@ -22749,10 +21963,7 @@ export type UserPlatformConnection = {
22749
21963
  organizationId: Scalars['ID']['output'];
22750
21964
  /** When pairing was approved */
22751
21965
  pairingApprovedAt?: Maybe<Scalars['DateTime']['output']>;
22752
- /**
22753
- * 8-character pairing code (WhatsApp / Discord only).
22754
- * Only present when pairingStatus = PENDING.
22755
- */
21966
+ /** 8-character pairing code (WhatsApp / Discord only). Only present when pairingStatus = PENDING. */
22756
21967
  pairingCode?: Maybe<Scalars['String']['output']>;
22757
21968
  /** When the pairing code expires (1-hour TTL from generation) */
22758
21969
  pairingCodeExpiresAt?: Maybe<Scalars['DateTime']['output']>;
@@ -22770,10 +21981,7 @@ export type UserPlatformConnection = {
22770
21981
  source: UserPlatformSource;
22771
21982
  /** Last update timestamp */
22772
21983
  updatedAt: Scalars['DateTime']['output'];
22773
- /**
22774
- * User's personal OAuth token expiry (AES-256-GCM encrypted at rest)
22775
- * NOTE: The token itself is never returned by queries; only the expiry is exposed.
22776
- */
21984
+ /** User's personal OAuth token expiry (AES-256-GCM encrypted at rest) NOTE: The token itself is never returned by queries; only the expiry is exposed. */
22777
21985
  userTokenExpiresAt?: Maybe<Scalars['DateTime']['output']>;
22778
21986
  /** Scopes granted by the user's personal OAuth token */
22779
21987
  userTokenScope?: Maybe<Scalars['String']['output']>;
@@ -22797,10 +22005,7 @@ export type UserPlatformConnectionFilterInput = {
22797
22005
  /** Filter by connection source */
22798
22006
  source?: InputMaybe<UserPlatformSource>;
22799
22007
  };
22800
- /**
22801
- * Paginated list of user platform connections with cursor support.
22802
- * Pass `nextCursor` from a previous response as `cursor` in the next call.
22803
- */
22008
+ /** Paginated list of user platform connections with cursor support. Pass `nextCursor` from a previous response as `cursor` in the next call. */
22804
22009
  export type UserPlatformConnectionList = {
22805
22010
  __typename?: 'UserPlatformConnectionList';
22806
22011
  hasMore: Scalars['Boolean']['output'];
@@ -22808,35 +22013,20 @@ export type UserPlatformConnectionList = {
22808
22013
  nextCursor?: Maybe<Scalars['String']['output']>;
22809
22014
  total: Scalars['Int']['output'];
22810
22015
  };
22811
- /**
22812
- * How a UserPlatformConnection was established.
22813
- * Controls whether dmAllowed can be set to true.
22814
- */
22016
+ /** How a UserPlatformConnection was established. Controls whether dmAllowed can be set to true. */
22815
22017
  export declare enum UserPlatformSource {
22816
22018
  /** Bulk-imported user record (e.g. from CSV or directory sync). */
22817
22019
  Import = "IMPORT",
22818
22020
  /** Admin manually added the user (back-office operation). */
22819
22021
  Manual = "MANUAL",
22820
- /**
22821
- * Connected via dashboard OAuth flow (Slack, Teams, Google Chat).
22822
- * Grants dmAllowed = true immediately after token exchange.
22823
- */
22022
+ /** Connected via dashboard OAuth flow (Slack, Teams, Google Chat). Grants dmAllowed = true immediately after token exchange. */
22824
22023
  Oauth = "OAUTH",
22825
- /**
22826
- * Connected via pairing code (WhatsApp, Discord).
22827
- * Grants dmAllowed = true once the user approves the pairing code in the dashboard.
22828
- */
22024
+ /** Connected via pairing code (WhatsApp, Discord). Grants dmAllowed = true once the user approves the pairing code in the dashboard. */
22829
22025
  Paired = "PAIRED",
22830
- /**
22831
- * Passively observed from an inbound webhook event.
22832
- * Never grants dmAllowed = true automatically.
22833
- */
22026
+ /** Passively observed from an inbound webhook event. Never grants dmAllowed = true automatically. */
22834
22027
  Seen = "SEEN"
22835
22028
  }
22836
- /**
22837
- * User preference record storing theme, notification settings,
22838
- * dashboard customization, and other user-specific configuration.
22839
- */
22029
+ /** User preference record storing theme, notification settings, dashboard customization, and other user-specific configuration. */
22840
22030
  export type UserPreference = {
22841
22031
  __typename?: 'UserPreference';
22842
22032
  accessibility?: Maybe<Scalars['JSON']['output']>;
@@ -22849,10 +22039,7 @@ export type UserPreference = {
22849
22039
  updatedAt: Scalars['DateTime']['output'];
22850
22040
  userId: Scalars['String']['output'];
22851
22041
  };
22852
- /**
22853
- * User presence status on the communication platform.
22854
- * Synced from platform webhooks or periodic polling.
22855
- */
22042
+ /** User presence status on the communication platform. Synced from platform webhooks or periodic polling. */
22856
22043
  export declare enum UserPresenceStatus {
22857
22044
  /** User is away or idle */
22858
22045
  Away = "AWAY",
@@ -23143,10 +22330,7 @@ export declare enum WebhookDeliveryStatus {
23143
22330
  Pending = "PENDING",
23144
22331
  Retrying = "RETRYING"
23145
22332
  }
23146
- /**
23147
- * WebhookEvent represents a received webhook (transient, 7-day TTL)
23148
- * Used for debugging and monitoring only
23149
- */
22333
+ /** WebhookEvent represents a received webhook (transient, 7-day TTL) Used for debugging and monitoring only */
23150
22334
  export type WebhookEvent = {
23151
22335
  __typename?: 'WebhookEvent';
23152
22336
  /** Associated channel */
@@ -23182,10 +22366,7 @@ export type WebhookEvent = {
23182
22366
  /** Last update timestamp */
23183
22367
  updatedAt: Scalars['DateTime']['output'];
23184
22368
  };
23185
- /**
23186
- * Paginated list of webhook events with cursor support.
23187
- * Pass `nextCursor` from a previous response as `cursor` in the next call.
23188
- */
22369
+ /** Paginated list of webhook events with cursor support. Pass `nextCursor` from a previous response as `cursor` in the next call. */
23189
22370
  export type WebhookEventList = {
23190
22371
  __typename?: 'WebhookEventList';
23191
22372
  hasMore: Scalars['Boolean']['output'];
@@ -23313,18 +22494,11 @@ export type WithdrawConsentInput = {
23313
22494
  subjectId: Scalars['ID']['input'];
23314
22495
  subjectType: Scalars['String']['input'];
23315
22496
  };
23316
- /**
23317
- * Workspace type stub - represents a workspace entity from the workspace service
23318
- * This service doesn't own the Workspace model, but references it
23319
- */
22497
+ /** Workspace type stub - represents a workspace entity from the workspace service This service doesn't own the Workspace model, but references it */
23320
22498
  export type Workspace = {
23321
22499
  __typename?: 'Workspace';
23322
22500
  createdAt: Scalars['DateTime']['output'];
23323
- /**
23324
- * Service routing endpoint for dedicated tenants
23325
- * For SHARED tenants, this is null (uses default workspace service)
23326
- * For DEDICATED tenants, this points to the dedicated workspace service instance
23327
- */
22501
+ /** Service routing endpoint for dedicated tenants For SHARED tenants, this is null (uses default workspace service) For DEDICATED tenants, this points to the dedicated workspace service instance */
23328
22502
  endpoint?: Maybe<Scalars['String']['output']>;
23329
22503
  id: Scalars['ID']['output'];
23330
22504
  /** Member count */
@@ -23345,10 +22519,7 @@ export type Workspace = {
23345
22519
  type: WorkspaceType;
23346
22520
  updatedAt: Scalars['DateTime']['output'];
23347
22521
  };
23348
- /**
23349
- * Workspace-level override for a feature flag.
23350
- * Workspace admins can disable flags or control user opt-in for their workspace.
23351
- */
22522
+ /** Workspace-level override for a feature flag. Workspace admins can disable flags or control user opt-in for their workspace. */
23352
22523
  export type WorkspaceFeatureFlagOverride = {
23353
22524
  __typename?: 'WorkspaceFeatureFlagOverride';
23354
22525
  allowUserOptIn: Scalars['Boolean']['output'];
@@ -23476,6 +22647,7 @@ export type CreatePlanInput = {
23476
22647
  quotas: Array<PlanQuotaInput>;
23477
22648
  };
23478
22649
  export type CreateQuotaInput = {
22650
+ context?: InputMaybe<Scalars['JSON']['input']>;
23479
22651
  limits: Scalars['JSON']['input'];
23480
22652
  name: Scalars['String']['input'];
23481
22653
  quotaType?: InputMaybe<QuotaType>;
@@ -23510,6 +22682,7 @@ export type UpdatePlanInput = {
23510
22682
  quotas: Array<PlanQuotaInput>;
23511
22683
  };
23512
22684
  export type UpdateQuotaInput = {
22685
+ context?: InputMaybe<Scalars['JSON']['input']>;
23513
22686
  id: Scalars['String']['input'];
23514
22687
  isActive: Scalars['Boolean']['input'];
23515
22688
  limits?: InputMaybe<Scalars['JSON']['input']>;