akadmin 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/audit.d.ts +7 -0
- package/dist/commands/audit.d.ts.map +1 -0
- package/dist/commands/audit.js +35 -0
- package/dist/commands/audit.js.map +1 -0
- package/dist/commands/auth.d.ts +8 -0
- package/dist/commands/auth.d.ts.map +1 -0
- package/dist/commands/auth.js +156 -0
- package/dist/commands/auth.js.map +1 -0
- package/dist/commands/discover.d.ts +6 -0
- package/dist/commands/discover.d.ts.map +1 -0
- package/dist/commands/discover.js +94 -0
- package/dist/commands/discover.js.map +1 -0
- package/dist/commands/domain.d.ts +7 -0
- package/dist/commands/domain.d.ts.map +1 -0
- package/dist/commands/domain.js +104 -0
- package/dist/commands/domain.js.map +1 -0
- package/dist/commands/raw.d.ts +7 -0
- package/dist/commands/raw.d.ts.map +1 -0
- package/dist/commands/raw.js +90 -0
- package/dist/commands/raw.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +27104 -0
- package/dist/index.js.map +7 -0
- package/dist/keychain/index.d.ts +44 -0
- package/dist/keychain/index.d.ts.map +1 -0
- package/dist/keychain/index.js +173 -0
- package/dist/keychain/index.js.map +1 -0
- package/dist/storage/file-store.d.ts +19 -0
- package/dist/storage/file-store.d.ts.map +1 -0
- package/dist/storage/file-store.js +79 -0
- package/dist/storage/file-store.js.map +1 -0
- package/package.json +36 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/index.ts", "../../manifest/src/manifest-data.ts", "../../manifest/src/index.ts", "../src/commands/discover.ts", "../src/commands/raw.ts", "../../core/src/crypto/hmac.ts", "../../core/src/crypto/canonical.ts", "../../core/src/redaction/index.ts", "../../core/src/audit/index.ts", "../../core/src/safety/confirm.ts", "../../core/src/safety/preview.ts", "../../core/src/safety/idempotency.ts", "../../core/src/client/http.ts", "../../core/src/safety/executor.ts", "../src/storage/file-store.ts", "../src/commands/auth.ts", "../src/commands/audit.ts", "../src/commands/domain.ts", "../src/keychain/index.ts"],
|
|
4
|
+
"sourcesContent": ["#!/usr/bin/env node\n\n/**\n * akadmin \u2014 Unified Operator CLI for AgentKit.best admin platform.\n */\n\nimport { Command } from \"commander\";\nimport { registerDiscoverCommands } from \"./commands/discover.js\";\nimport { registerRawCommand } from \"./commands/raw.js\";\nimport { registerAuthCommands } from \"./commands/auth.js\";\nimport { registerAuditCommands } from \"./commands/audit.js\";\nimport { registerDomainCommands } from \"./commands/domain.js\";\nimport { CliKeychain } from \"./keychain/index.js\";\n\nconst keychain = new CliKeychain();\nconst program = new Command();\n\nprogram\n .name(\"akadmin\")\n .description(\"Operator CLI for AgentKit.best admin platform (124 operations, 17 domains)\")\n .version(\"0.1.0\");\n\nregisterDiscoverCommands(program);\nregisterRawCommand(program, keychain);\nregisterAuthCommands(program, keychain);\nregisterAuditCommands(program, keychain);\nregisterDomainCommands(program, keychain);\n\nif (process.argv.length <= 2) {\n const profile = keychain.getActiveProfile();\n console.log(`\\n\uD83D\uDEE1\uFE0F akadmin \u2014 AgentKit Operator Tooling [Profile: ${profile.toUpperCase()}]`);\n console.log(\"Run `akadmin --help` to view commands or `akadmin discover` to explore available domains.\\n\");\n}\n\nprogram.parse(process.argv);\n", "// Auto-generated by scripts/gen-manifest.ts. Do not edit manually.\nexport const manifestData = {\n \"version\": \"1.0.0\",\n \"specVersion\": \"1.0.0\",\n \"generatedAt\": \"2026-08-26T08:07:17.421Z\",\n \"totalOperations\": 124,\n \"totalDestructive\": 62,\n \"totalSessionOnly\": 8,\n \"domains\": [\n \"Admin API Keys\",\n \"Admins\",\n \"AgentKit\",\n \"Announcements\",\n \"Blog\",\n \"Changelog\",\n \"Discount referral attribution\",\n \"Discounts\",\n \"Invites\",\n \"Loyalty\",\n \"Order Follow-ups\",\n \"Orders\",\n \"Payouts\",\n \"Reconciliation\",\n \"Referrals\",\n \"Revenue\",\n \"Users\"\n ],\n \"operations\": [\n {\n \"operationId\": \"getKeys\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/keys\",\n \"domain\": \"Admin API Keys\",\n \"summary\": \"List admin API keys\",\n \"description\": \"Paginated list of the authenticated admin's API keys. Secrets are never returned.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"search\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Case-insensitive filter\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Case-insensitive filter\"\n }\n },\n {\n \"name\": \"limit\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Page size (default 50, max 100)\",\n \"schema\": {\n \"type\": \"integer\",\n \"minimum\": 1,\n \"maximum\": 100,\n \"description\": \"Page size (default 50, max 100)\",\n \"example\": 50\n }\n },\n {\n \"name\": \"offset\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Rows to skip (default 0)\",\n \"schema\": {\n \"type\": [\n \"integer\",\n \"null\"\n ],\n \"minimum\": 0,\n \"description\": \"Rows to skip (default 0)\",\n \"example\": 0\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/AdminApiKeyList\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postKeys\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/keys\",\n \"domain\": \"Admin API Keys\",\n \"summary\": \"Create an admin API key\",\n \"description\": \"Creates a key with RBAC scopes. The plaintext key is returned ONCE and never retrievable again.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/CreateAdminApiKeyBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/CreatedAdminApiKey\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"429\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postKeysValidate\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/keys/validate\",\n \"domain\": \"Admin API Keys\",\n \"summary\": \"Validate an admin API key\",\n \"description\": \"Checks whether the supplied `x-api-key` is a valid, active admin key.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/ValidateAdminApiKeyResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/ValidateAdminApiKeyResponse\"\n },\n \"429\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postKeysIdRevoke\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/keys/{id}/revoke\",\n \"domain\": \"Admin API Keys\",\n \"summary\": \"Revoke an admin API key\",\n \"description\": \"Permanently revokes the key. Idempotent-safe: already-revoked keys return 404.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"id\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Admin API key id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"Admin API key id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/RevokeAdminApiKeyResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postKeysIdRotate\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/keys/{id}/rotate\",\n \"domain\": \"Admin API Keys\",\n \"summary\": \"Rotate an admin API key\",\n \"description\": \"Revokes the old key and issues a replacement with the same scopes. New plaintext returned ONCE.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"id\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Admin API key id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"Admin API key id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/CreatedAdminApiKey\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getAdmins\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/admins\",\n \"domain\": \"Admins\",\n \"summary\": \"List admins\",\n \"description\": \"Paginated admin rows with resolved permissions, pending invites, and aggregate stats.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"search\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Case-insensitive filter\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Case-insensitive filter\"\n }\n },\n {\n \"name\": \"limit\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Page size (default 50, max 100)\",\n \"schema\": {\n \"type\": \"integer\",\n \"minimum\": 1,\n \"maximum\": 100,\n \"description\": \"Page size (default 50, max 100)\",\n \"example\": 50\n }\n },\n {\n \"name\": \"offset\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Rows to skip (default 0)\",\n \"schema\": {\n \"type\": [\n \"integer\",\n \"null\"\n ],\n \"minimum\": 0,\n \"description\": \"Rows to skip (default 0)\",\n \"example\": 0\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/AdminListResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getAdminsUserId\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/admins/{userId}\",\n \"domain\": \"Admins\",\n \"summary\": \"Get admin detail\",\n \"description\": \"A single admin's details and resolved permissions.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"userId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Admin user id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Admin user id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/AdminDetailResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"deleteAdminsUserId\",\n \"method\": \"DELETE\",\n \"path\": \"/api/admin/admins/{userId}\",\n \"domain\": \"Admins\",\n \"summary\": \"Remove an admin\",\n \"description\": \"Demotes an admin to a regular user and revokes all permissions. Super-admin only.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"userId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Admin user id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Admin user id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/DemoteAdminResult\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"patchAdminsUserIdPermissions\",\n \"method\": \"PATCH\",\n \"path\": \"/api/admin/admins/{userId}/permissions\",\n \"domain\": \"Admins\",\n \"summary\": \"Update admin permissions\",\n \"description\": \"Grants/revokes per-domain permissions for an admin. Super-admin only.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"userId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Admin user id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Admin user id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/UpdateAdminPermissionsBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/UpdateAdminPermissionsResult\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postAdminsUserIdPromote\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/admins/{userId}/promote\",\n \"domain\": \"Admins\",\n \"summary\": \"Promote a user to admin\",\n \"description\": \"Sets role=admin and optionally grants permissions. Super-admin only.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"userId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Admin user id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Admin user id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/PromoteAdminBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/PromoteAdminResult\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getAgentkitLicenses\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/agentkit/licenses\",\n \"domain\": \"AgentKit\",\n \"summary\": \"List AgentKit App licenses\",\n \"description\": \"Paginated AgentKit App licenses with device summaries, searchable by user email/license id/order id/key prefix-last4.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"search\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Matches user email, license id/order id, or key prefix/last4\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Matches user email, license id/order id, or key prefix/last4\"\n }\n },\n {\n \"name\": \"q\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Alias for `search` (takes precedence when both are set)\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Alias for `search` (takes precedence when both are set)\"\n }\n },\n {\n \"name\": \"limit\",\n \"in\": \"query\",\n \"required\": false,\n \"schema\": {\n \"type\": \"integer\",\n \"minimum\": 1,\n \"maximum\": 100,\n \"example\": 50\n }\n },\n {\n \"name\": \"offset\",\n \"in\": \"query\",\n \"required\": false,\n \"schema\": {\n \"type\": [\n \"integer\",\n \"null\"\n ],\n \"minimum\": 0,\n \"example\": 0\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/AgentKitLicenseList\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getAgentkitLicensesLicenseId\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/agentkit/licenses/{licenseId}\",\n \"domain\": \"AgentKit\",\n \"summary\": \"Get an AgentKit App license\",\n \"description\": \"**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"licenseId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"AgentKit license id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"AgentKit license id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/AgentKitLicenseDetail\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postAgentkitLicensesLicenseIdRevoke\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/agentkit/licenses/{licenseId}/revoke\",\n \"domain\": \"AgentKit\",\n \"summary\": \"Revoke an AgentKit App license\",\n \"description\": \"**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"licenseId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"AgentKit license id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"AgentKit license id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/AgentKitOkResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postAgentkitLicensesLicenseIdDevicesDeviceIdRevoke\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/agentkit/licenses/{licenseId}/devices/{deviceId}/revoke\",\n \"domain\": \"AgentKit\",\n \"summary\": \"Revoke an AgentKit App license device\",\n \"description\": \"Revokes a single device activation, signing that device out.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"licenseId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"AgentKit license id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"AgentKit license id\"\n }\n },\n {\n \"name\": \"deviceId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"License activation (device) id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"License activation (device) id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/AgentKitOkResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getAgentkitWaitlist\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/agentkit/waitlist\",\n \"domain\": \"AgentKit\",\n \"summary\": \"List confirmed AgentKit App waitlist signups\",\n \"description\": \"**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"search\",\n \"in\": \"query\",\n \"required\": false,\n \"schema\": {\n \"type\": \"string\"\n }\n },\n {\n \"name\": \"limit\",\n \"in\": \"query\",\n \"required\": false,\n \"schema\": {\n \"type\": \"integer\",\n \"minimum\": 1,\n \"maximum\": 100,\n \"example\": 50\n }\n },\n {\n \"name\": \"offset\",\n \"in\": \"query\",\n \"required\": false,\n \"schema\": {\n \"type\": [\n \"integer\",\n \"null\"\n ],\n \"minimum\": 0,\n \"example\": 0\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/AgentKitWaitlistList\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postAgentkitAppWaitlistConvert\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/agentkit-app/waitlist/convert\",\n \"domain\": \"AgentKit\",\n \"summary\": \"Convert confirmed waitlist signups into licenses\",\n \"description\": \"Manual batch job: issues real AgentKit App licenses for confirmed paid waitlist reservations and emails the keys. Idempotent \u2014 safe to re-run. Run in small chunks (limit ~25), not one large request.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/AgentKitAppWaitlistConvertBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/AgentKitAppWaitlistConvertResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postAgentkitKitsReleases\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/agentkit/kits/releases\",\n \"domain\": \"AgentKit\",\n \"summary\": \"Register an AgentKit kit release\",\n \"description\": \"Registers a new kit release build in the AgentKit registry (used by the release pipeline).\\n\\n**Required scope(s):** `registry:write`\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [\n \"registry:write\"\n ],\n \"parameters\": [],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/RegisterKitReleaseBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/RegisterKitReleaseResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"patchLicensesLicenseIdGithubUsername\",\n \"method\": \"PATCH\",\n \"path\": \"/api/admin/licenses/{licenseId}/github-username\",\n \"domain\": \"AgentKit\",\n \"summary\": \"Change the GitHub username on a license\",\n \"description\": \"Admin override for the GitHub username tied to any license (Engineer/Marketing Kit GitHub access).\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"licenseId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"AgentKit license id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"AgentKit license id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/ChangeLicenseGithubUsernameBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/ChangeLicenseGithubUsernameResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"409\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getAnnouncements\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/announcements\",\n \"domain\": \"Announcements\",\n \"summary\": \"List announcements\",\n \"description\": \"Paginated admin list of all announcements (enabled and disabled).\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"limit\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Page size (default 20, max 100)\",\n \"schema\": {\n \"type\": \"integer\",\n \"minimum\": 1,\n \"maximum\": 100,\n \"description\": \"Page size (default 20, max 100)\",\n \"example\": 20\n }\n },\n {\n \"name\": \"offset\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Rows to skip (default 0)\",\n \"schema\": {\n \"type\": [\n \"integer\",\n \"null\"\n ],\n \"minimum\": 0,\n \"description\": \"Rows to skip (default 0)\",\n \"example\": 0\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/AnnouncementListResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postAnnouncements\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/announcements\",\n \"domain\": \"Announcements\",\n \"summary\": \"Create an announcement\",\n \"description\": \"**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/CreateAnnouncementBody\"\n },\n \"responseSchemas\": {\n \"201\": {\n \"$ref\": \"#/components/schemas/AnnouncementResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AnnouncementValidationError\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getAnnouncementsId\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/announcements/{id}\",\n \"domain\": \"Announcements\",\n \"summary\": \"Get an announcement\",\n \"description\": \"**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"id\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Announcement id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"Announcement id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/AnnouncementResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"patchAnnouncementsId\",\n \"method\": \"PATCH\",\n \"path\": \"/api/admin/announcements/{id}\",\n \"domain\": \"Announcements\",\n \"summary\": \"Update an announcement\",\n \"description\": \"Partial update, including enabling/disabling via the `enabled` field.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"id\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Announcement id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"Announcement id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/UpdateAnnouncementBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/AnnouncementResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AnnouncementValidationError\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"deleteAnnouncementsId\",\n \"method\": \"DELETE\",\n \"path\": \"/api/admin/announcements/{id}\",\n \"domain\": \"Announcements\",\n \"summary\": \"Delete an announcement\",\n \"description\": \"**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"id\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Announcement id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"Announcement id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/DeleteAnnouncementResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getBlogArticles\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/blog/articles\",\n \"domain\": \"Blog\",\n \"summary\": \"List articles\",\n \"description\": \"Paginated articles enriched with Korean localization status and category ids. Filterable by status/language/localizationStatus/tag/category/authorId/id.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"id\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Filter to a single article id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"Filter to a single article id\"\n }\n },\n {\n \"name\": \"page\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"default 1\",\n \"schema\": {\n \"type\": \"integer\",\n \"minimum\": 1,\n \"description\": \"default 1\",\n \"example\": 1\n }\n },\n {\n \"name\": \"limit\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"default 20, max 100\",\n \"schema\": {\n \"type\": \"integer\",\n \"minimum\": 1,\n \"maximum\": 100,\n \"description\": \"default 20, max 100\",\n \"example\": 20\n }\n },\n {\n \"name\": \"status\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Article lifecycle status\",\n \"schema\": {\n \"type\": \"string\",\n \"enum\": [\n \"draft\",\n \"scheduled\",\n \"published\",\n \"archived\"\n ],\n \"description\": \"Article lifecycle status\"\n }\n },\n {\n \"name\": \"language\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"default all\",\n \"schema\": {\n \"type\": \"string\",\n \"enum\": [\n \"all\",\n \"ko\",\n \"missing-ko\"\n ],\n \"description\": \"default all\"\n }\n },\n {\n \"name\": \"localizationStatus\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Localization review status\",\n \"schema\": {\n \"type\": \"string\",\n \"enum\": [\n \"draft\",\n \"published\",\n \"archived\"\n ],\n \"description\": \"Localization review status\"\n }\n },\n {\n \"name\": \"tag\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Filter by tag slug\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Filter by tag slug\"\n }\n },\n {\n \"name\": \"category\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Filter by category slug\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Filter by category slug\"\n }\n },\n {\n \"name\": \"authorId\",\n \"in\": \"query\",\n \"required\": false,\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/BlogArticleList\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getBlogExport\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/blog/export\",\n \"domain\": \"Blog\",\n \"summary\": \"Export articles (CSV)\",\n \"description\": \"Streams matching articles (filterable by startDate/endDate/status) as a CSV download.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"startDate\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"ISO date, default 30 days before endDate\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"ISO date, default 30 days before endDate\",\n \"example\": \"2026-07-01\"\n }\n },\n {\n \"name\": \"endDate\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"ISO date, default today\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"ISO date, default today\",\n \"example\": \"2026-08-01\"\n }\n },\n {\n \"name\": \"status\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Article status filter, or 'all' (default)\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Article status filter, or 'all' (default)\",\n \"example\": \"all\"\n }\n }\n ],\n \"responseSchemas\": {\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getBlogArticlesArticleIdLocalizationsLocale\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/blog/articles/{articleId}/localizations/{locale}\",\n \"domain\": \"Blog\",\n \"summary\": \"Get an article localization\",\n \"description\": \"Source (English) article summary plus the Korean localization record, if any.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"articleId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Article id (must be a UUID)\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Article id (must be a UUID)\"\n }\n },\n {\n \"name\": \"locale\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Localization locale\",\n \"schema\": {\n \"type\": \"string\",\n \"enum\": [\n \"ko\"\n ],\n \"description\": \"Localization locale\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/ArticleLocalizationSourceDetail\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"patchBlogArticlesArticleIdLocalizationsLocale\",\n \"method\": \"PATCH\",\n \"path\": \"/api/admin/blog/articles/{articleId}/localizations/{locale}\",\n \"domain\": \"Blog\",\n \"summary\": \"Create or update an article localization\",\n \"description\": \"Upserts the Korean localization and applies a draft/publish/archive transition. Publishing requires title, source content, rendered HTML, and reviewer evidence.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"articleId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Article id (must be a UUID)\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Article id (must be a UUID)\"\n }\n },\n {\n \"name\": \"locale\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Localization locale\",\n \"schema\": {\n \"type\": \"string\",\n \"enum\": [\n \"ko\"\n ],\n \"description\": \"Localization locale\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/ArticleLocalizationUpsertBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/ArticleLocalizationSourceDetail\"\n },\n \"201\": {\n \"$ref\": \"#/components/schemas/ArticleLocalizationSourceDetail\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"409\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postBlogArticlesArticleIdCategoriesCategoryId\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/blog/articles/{articleId}/categories/{categoryId}\",\n \"domain\": \"Blog\",\n \"summary\": \"Attach a category to an article\",\n \"description\": \"**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"articleId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Article id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Article id\"\n }\n },\n {\n \"name\": \"categoryId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Category id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Category id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/BlogAttachResult\"\n },\n \"201\": {\n \"$ref\": \"#/components/schemas/BlogAttachResult\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"deleteBlogArticlesArticleIdCategoriesCategoryId\",\n \"method\": \"DELETE\",\n \"path\": \"/api/admin/blog/articles/{articleId}/categories/{categoryId}\",\n \"domain\": \"Blog\",\n \"summary\": \"Detach a category from an article\",\n \"description\": \"**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"articleId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Article id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Article id\"\n }\n },\n {\n \"name\": \"categoryId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Category id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Category id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/BlogDetachResult\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postBlogArticlesArticleIdTagsTagId\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/blog/articles/{articleId}/tags/{tagId}\",\n \"domain\": \"Blog\",\n \"summary\": \"Attach a tag to an article\",\n \"description\": \"**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"articleId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Article id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Article id\"\n }\n },\n {\n \"name\": \"tagId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Tag id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Tag id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/BlogAttachResult\"\n },\n \"201\": {\n \"$ref\": \"#/components/schemas/BlogAttachResult\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"deleteBlogArticlesArticleIdTagsTagId\",\n \"method\": \"DELETE\",\n \"path\": \"/api/admin/blog/articles/{articleId}/tags/{tagId}\",\n \"domain\": \"Blog\",\n \"summary\": \"Detach a tag from an article\",\n \"description\": \"**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"articleId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Article id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Article id\"\n }\n },\n {\n \"name\": \"tagId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Tag id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Tag id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/BlogDetachResult\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getBlogCategories\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/blog/categories\",\n \"domain\": \"Blog\",\n \"summary\": \"List categories\",\n \"description\": \"All categories, optionally filtered by name/slug substring.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"query\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Case-insensitive filter on name/slug (also accepts `search`)\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Case-insensitive filter on name/slug (also accepts `search`)\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/BlogCategoryList\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postBlogCategories\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/blog/categories\",\n \"domain\": \"Blog\",\n \"summary\": \"Create a category\",\n \"description\": \"Slug is derived from name when omitted. parentId, if set, must reference an existing category with no cycle.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/BlogCategoryCreateBody\"\n },\n \"responseSchemas\": {\n \"201\": {\n \"$ref\": \"#/components/schemas/BlogCategoryDetail\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"409\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getBlogCategoriesCategoryId\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/blog/categories/{categoryId}\",\n \"domain\": \"Blog\",\n \"summary\": \"Get a category\",\n \"description\": \"**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"categoryId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Category id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Category id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/BlogCategoryDetail\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"patchBlogCategoriesCategoryId\",\n \"method\": \"PATCH\",\n \"path\": \"/api/admin/blog/categories/{categoryId}\",\n \"domain\": \"Blog\",\n \"summary\": \"Update a category\",\n \"description\": \"**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"categoryId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Category id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Category id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/BlogCategoryUpdateBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/BlogCategoryDetail\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"409\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"deleteBlogCategoriesCategoryId\",\n \"method\": \"DELETE\",\n \"path\": \"/api/admin/blog/categories/{categoryId}\",\n \"domain\": \"Blog\",\n \"summary\": \"Delete a category\",\n \"description\": \"Fails if the category has children or associated articles unless `force=true`, which disassociates articles first.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"categoryId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Category id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Category id\"\n }\n },\n {\n \"name\": \"force\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Pass 'true' to disassociate articles and force-delete\",\n \"schema\": {\n \"type\": \"string\",\n \"enum\": [\n \"true\",\n \"false\"\n ],\n \"description\": \"Pass 'true' to disassociate articles and force-delete\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/BlogCategoryDeleteResult\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"409\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getBlogTags\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/blog/tags\",\n \"domain\": \"Blog\",\n \"summary\": \"List tags\",\n \"description\": \"All tags, optionally filtered by name/slug substring.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"query\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Case-insensitive filter on name/slug (also accepts `search`)\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Case-insensitive filter on name/slug (also accepts `search`)\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/BlogTagList\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postBlogTags\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/blog/tags\",\n \"domain\": \"Blog\",\n \"summary\": \"Create a tag\",\n \"description\": \"Slug is derived from name when omitted.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/BlogTagCreateBody\"\n },\n \"responseSchemas\": {\n \"201\": {\n \"$ref\": \"#/components/schemas/BlogTagDetail\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"409\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getBlogTagsTagId\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/blog/tags/{tagId}\",\n \"domain\": \"Blog\",\n \"summary\": \"Get a tag\",\n \"description\": \"**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"tagId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Tag id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Tag id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/BlogTagDetail\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"patchBlogTagsTagId\",\n \"method\": \"PATCH\",\n \"path\": \"/api/admin/blog/tags/{tagId}\",\n \"domain\": \"Blog\",\n \"summary\": \"Update a tag\",\n \"description\": \"**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"tagId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Tag id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Tag id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/BlogTagUpdateBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/BlogTagDetail\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"409\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"deleteBlogTagsTagId\",\n \"method\": \"DELETE\",\n \"path\": \"/api/admin/blog/tags/{tagId}\",\n \"domain\": \"Blog\",\n \"summary\": \"Delete a tag\",\n \"description\": \"Fails if the tag has associated articles unless `force=true`, which disassociates articles first.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"tagId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Tag id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Tag id\"\n }\n },\n {\n \"name\": \"force\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Pass 'true' to disassociate articles and force-delete\",\n \"schema\": {\n \"type\": \"string\",\n \"enum\": [\n \"true\",\n \"false\"\n ],\n \"description\": \"Pass 'true' to disassociate articles and force-delete\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/BlogTagDeleteResult\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"409\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getChangelogLocalizationsRepositoryReleaseIdLocale\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/changelog/localizations/{repository}/{releaseId}/{locale}\",\n \"domain\": \"Changelog\",\n \"summary\": \"Get a changelog release localization\",\n \"description\": \"Localized prose keyed to an immutable upstream GitHub release (repository + releaseId + locale).\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"repository\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Source repository the release belongs to\",\n \"schema\": {\n \"type\": \"string\",\n \"enum\": [\n \"engineer\",\n \"marketing\",\n \"cli\"\n ],\n \"description\": \"Source repository the release belongs to\"\n }\n },\n {\n \"name\": \"releaseId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Upstream GitHub release id (positive safe integer)\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Upstream GitHub release id (positive safe integer)\",\n \"example\": \"123456789\"\n }\n },\n {\n \"name\": \"locale\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Localization locale\",\n \"schema\": {\n \"type\": \"string\",\n \"enum\": [\n \"ko\"\n ],\n \"description\": \"Localization locale\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/ChangelogLocalizationDetail\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"patchChangelogLocalizationsRepositoryReleaseIdLocale\",\n \"method\": \"PATCH\",\n \"path\": \"/api/admin/changelog/localizations/{repository}/{releaseId}/{locale}\",\n \"domain\": \"Changelog\",\n \"summary\": \"Create or update a changelog release localization\",\n \"description\": \"Upserts the localization and applies a draft/publish/archive transition. Publishing requires title, release notes, reviewer evidence, and that the GitHub release is public.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"repository\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Source repository the release belongs to\",\n \"schema\": {\n \"type\": \"string\",\n \"enum\": [\n \"engineer\",\n \"marketing\",\n \"cli\"\n ],\n \"description\": \"Source repository the release belongs to\"\n }\n },\n {\n \"name\": \"releaseId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Upstream GitHub release id (positive safe integer)\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Upstream GitHub release id (positive safe integer)\",\n \"example\": \"123456789\"\n }\n },\n {\n \"name\": \"locale\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Localization locale\",\n \"schema\": {\n \"type\": \"string\",\n \"enum\": [\n \"ko\"\n ],\n \"description\": \"Localization locale\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/ChangelogLocalizationUpsertBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/ChangelogLocalizationUpsertResult\"\n },\n \"201\": {\n \"$ref\": \"#/components/schemas/ChangelogLocalizationUpsertResult\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"409\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getDiscounts\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/discounts\",\n \"domain\": \"Discounts\",\n \"summary\": \"List discounts\",\n \"description\": \"Paginated discounts proxied live from Polar (page-based pagination, not offset).\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"search\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Forwarded as Polar `query` (case-insensitive)\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Forwarded as Polar `query` (case-insensitive)\"\n }\n },\n {\n \"name\": \"limit\",\n \"in\": \"query\",\n \"required\": false,\n \"schema\": {\n \"type\": \"integer\",\n \"minimum\": 1,\n \"maximum\": 100,\n \"example\": 50\n }\n },\n {\n \"name\": \"page\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Page-based (Polar SDK convention, not offset)\",\n \"schema\": {\n \"type\": \"integer\",\n \"minimum\": 1,\n \"description\": \"Page-based (Polar SDK convention, not offset)\",\n \"example\": 1\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/DiscountList\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postDiscounts\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/discounts\",\n \"domain\": \"Discounts\",\n \"summary\": \"Create a discount\",\n \"description\": \"Creates a one-off discount code directly in Polar.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/CreateDiscountBody\"\n },\n \"responseSchemas\": {\n \"201\": {\n \"$ref\": \"#/components/schemas/DiscountDetail\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getDiscountsExport\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/discounts/export\",\n \"domain\": \"Discounts\",\n \"summary\": \"Export discounts (CSV)\",\n \"description\": \"Streams discounts created within a date range as a CSV download, filterable by status.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"startDate\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"ISO date, default 30 days ago\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"ISO date, default 30 days ago\",\n \"example\": \"2026-07-01\"\n }\n },\n {\n \"name\": \"endDate\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"ISO date, default today\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"ISO date, default today\"\n }\n },\n {\n \"name\": \"status\",\n \"in\": \"query\",\n \"required\": false,\n \"schema\": {\n \"type\": \"string\",\n \"enum\": [\n \"all\",\n \"active\",\n \"expired\"\n ],\n \"example\": \"all\"\n }\n }\n ],\n \"responseSchemas\": {\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getDiscountsSyncStatus\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/discounts/sync-status\",\n \"domain\": \"Discounts\",\n \"summary\": \"Discount Polar sync status\",\n \"description\": \"Counts of synced/pending/errored discount codes, with per-error detail.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/DiscountsSyncStatus\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"patchDiscountsDiscountId\",\n \"method\": \"PATCH\",\n \"path\": \"/api/admin/discounts/{discountId}\",\n \"domain\": \"Discounts\",\n \"summary\": \"Update a discount\",\n \"description\": \"Updates a discount in Polar. Response is the raw Polar SDK object (not normalized).\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"discountId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Polar discount id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Polar discount id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/UpdateDiscountBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/UpdateDiscountResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"deleteDiscountsDiscountId\",\n \"method\": \"DELETE\",\n \"path\": \"/api/admin/discounts/{discountId}\",\n \"domain\": \"Discounts\",\n \"summary\": \"Delete a discount\",\n \"description\": \"Deletes a discount in Polar. Idempotent-safe: an already-deleted (404) Polar discount still returns success.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"discountId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Polar discount id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Polar discount id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/DeleteDiscountResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getDiscountGroups\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/discount-groups\",\n \"domain\": \"Discounts\",\n \"summary\": \"List discount groups\",\n \"description\": \"Paginated discount-code templates, filterable by name/prefix.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"search\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Alias: `query`. Case-insensitive filter on name/prefix\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Alias: `query`. Case-insensitive filter on name/prefix\"\n }\n },\n {\n \"name\": \"page\",\n \"in\": \"query\",\n \"required\": false,\n \"schema\": {\n \"type\": \"integer\",\n \"minimum\": 1,\n \"example\": 1\n }\n },\n {\n \"name\": \"limit\",\n \"in\": \"query\",\n \"required\": false,\n \"schema\": {\n \"type\": \"integer\",\n \"minimum\": 1,\n \"maximum\": 100,\n \"example\": 50\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/DiscountGroupList\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postDiscountGroups\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/discount-groups\",\n \"domain\": \"Discounts\",\n \"summary\": \"Create a discount group\",\n \"description\": \"Creates a reusable code template used to bulk-generate discount codes.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/CreateDiscountGroupBody\"\n },\n \"responseSchemas\": {\n \"201\": {\n \"$ref\": \"#/components/schemas/DiscountGroupDetail\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getDiscountGroupsDiscountGroupId\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/discount-groups/{discountGroupId}\",\n \"domain\": \"Discounts\",\n \"summary\": \"Get discount group detail\",\n \"description\": \"**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"discountGroupId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Discount group id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"Discount group id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/DiscountGroupDetail\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"patchDiscountGroupsDiscountGroupId\",\n \"method\": \"PATCH\",\n \"path\": \"/api/admin/discount-groups/{discountGroupId}\",\n \"domain\": \"Discounts\",\n \"summary\": \"Update a discount group\",\n \"description\": \"Partial update of the code template. Does not retroactively change already-generated codes.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"discountGroupId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Discount group id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"Discount group id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/UpdateDiscountGroupBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/DiscountGroupDetail\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"deleteDiscountGroupsDiscountGroupId\",\n \"method\": \"DELETE\",\n \"path\": \"/api/admin/discount-groups/{discountGroupId}\",\n \"domain\": \"Discounts\",\n \"summary\": \"Delete a discount group\",\n \"description\": \"Soft-deletes all child discount codes (deactivates), deletes their Polar counterparts (background for >100), then deletes the group.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"discountGroupId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Discount group id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"Discount group id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/DeleteDiscountGroupResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postDiscountGroupsDiscountGroupIdCodes\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/discount-groups/{discountGroupId}/codes\",\n \"domain\": \"Discounts\",\n \"summary\": \"Bulk-generate discount codes for a group\",\n \"description\": \"Generates 1-100 codes from the group template, inserts them, and syncs each to Polar (rate-limited, ~100ms between calls; batches beyond 100 codes sync in the background). Sensitive/rate-limited operation.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"discountGroupId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Discount group id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"Discount group id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/GenerateGroupCodesBody\"\n },\n \"responseSchemas\": {\n \"201\": {\n \"$ref\": \"#/components/schemas/GenerateGroupCodesResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getInvites\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/invites\",\n \"domain\": \"Invites\",\n \"summary\": \"List pending admin invites\",\n \"description\": \"Paginated pending invites, searchable by invite/inviter email or name. Requires `settings:view` (session).\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"search\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Case-insensitive filter\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Case-insensitive filter\"\n }\n },\n {\n \"name\": \"limit\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Page size (default 50, max 100)\",\n \"schema\": {\n \"type\": \"integer\",\n \"minimum\": 1,\n \"maximum\": 100,\n \"description\": \"Page size (default 50, max 100)\",\n \"example\": 50\n }\n },\n {\n \"name\": \"offset\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Rows to skip (default 0)\",\n \"schema\": {\n \"type\": [\n \"integer\",\n \"null\"\n ],\n \"minimum\": 0,\n \"description\": \"Rows to skip (default 0)\",\n \"example\": 0\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/InviteList\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postInvites\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/invites\",\n \"domain\": \"Invites\",\n \"summary\": \"Create an admin invite\",\n \"description\": \"Creates a pending invite and emails the invite link. Requires `settings:edit` (session) and super-admin. The plaintext token is cleared from the DB right after the email sends.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/CreateInviteBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/CreateInviteResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getInvitesValidate\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/invites/validate\",\n \"domain\": \"Invites\",\n \"summary\": \"Validate an invite token\",\n \"description\": \"Public endpoint used by the accept-invite page. Rate limited (10 req/min/IP).\\n\\n**Auth:** public endpoint \u2014 no admin authentication required.\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"public\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"token\",\n \"in\": \"query\",\n \"required\": true,\n \"description\": \"Plaintext invite token from the email link\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Plaintext invite token from the email link\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/ValidateInviteResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/ValidateInviteErrorResponse\"\n },\n \"429\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": true\n },\n {\n \"operationId\": \"getInvitesInviteId\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/invites/{inviteId}\",\n \"domain\": \"Invites\",\n \"summary\": \"Get an admin invite\",\n \"description\": \"Full invite record. Requires `settings:view` (session).\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"inviteId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Admin invite id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"Admin invite id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/InviteDetail\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"deleteInvitesInviteId\",\n \"method\": \"DELETE\",\n \"path\": \"/api/admin/invites/{inviteId}\",\n \"domain\": \"Invites\",\n \"summary\": \"Revoke an admin invite\",\n \"description\": \"Revokes a pending invite. Requires `settings:delete` (session).\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"inviteId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Admin invite id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"Admin invite id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/RevokeInviteResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postInvitesInviteIdResend\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/invites/{inviteId}/resend\",\n \"domain\": \"Invites\",\n \"summary\": \"Resend an admin invite\",\n \"description\": \"Generates a new token, extends expiry, and re-sends the invite email. Requires `settings:edit` (session) and super-admin.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"inviteId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Admin invite id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"Admin invite id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/ResendInviteResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postInvitesAccept\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/invites/accept\",\n \"domain\": \"Invites\",\n \"summary\": \"Accept an admin invite\",\n \"description\": \"Public endpoint (no admin auth) \u2014 the signed-in user accepts a pending invite for their own email and is upgraded to admin. Rate limited (3 req/15min/IP). Sets a session cookie on success.\\n\\n**Auth:** public endpoint \u2014 no admin authentication required.\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"public\",\n \"requiredScopes\": [],\n \"parameters\": [],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/AcceptInviteBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/AcceptInviteResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AcceptInviteErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AcceptInviteErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AcceptInviteErrorResponse\"\n },\n \"429\": {\n \"$ref\": \"#/components/schemas/AcceptInviteErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": true\n },\n {\n \"operationId\": \"getLoyaltyStats\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/loyalty/stats\",\n \"domain\": \"Loyalty\",\n \"summary\": \"Loyalty offer stats\",\n \"description\": \"Eligible-user count, claim counts by status, and claimed revenue by currency for the Engineer\u2192Marketing/Combo loyalty upgrade offer.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/LoyaltyStats\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postLoyaltyBlastEmail\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/loyalty/blast-email\",\n \"domain\": \"Loyalty\",\n \"summary\": \"Send loyalty offer emails\",\n \"description\": \"Bulk-sends the loyalty upgrade offer email to eligible users (completed Engineer Kit order, no active Marketing Kit/Combo license, no existing claim). In test mode (default), sends exactly one email to `testEmail` and creates no claim record. In live mode, sends up to `batchSize` emails and creates a `pending` claim per successful send \u2014 this reaches real customers and cannot be undone once sent.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/LoyaltyBlastEmailBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/LoyaltyBlastEmailResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getOrderFollowups\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/order-followups\",\n \"domain\": \"Order Follow-ups\",\n \"summary\": \"List pending order follow-ups\",\n \"description\": \"Scheduled/pending follow-up events plus unresolved payment-reconciliation cases, most-recently-due first.\\n\\n**Required scope(s):** `order-followups:read`\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [\n \"order-followups:read\"\n ],\n \"parameters\": [\n {\n \"name\": \"limit\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Default 50, max 100\",\n \"schema\": {\n \"type\": \"integer\",\n \"minimum\": 1,\n \"maximum\": 100,\n \"description\": \"Default 50, max 100\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/OrderFollowupListResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postOrderFollowupsEventIdRetry\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/order-followups/{eventId}/retry\",\n \"domain\": \"Order Follow-ups\",\n \"summary\": \"Retry a follow-up event\",\n \"description\": \"Resets a follow-up event to `scheduled` (due now) for immediate re-processing. Requires an `Idempotency-Key` request header (max 256 chars). Replaying the same actor + action + key returns the original result without re-mutating.\\n\\n**Required scope(s):** `order-followups:write`\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": true,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [\n \"order-followups:write\"\n ],\n \"parameters\": [\n {\n \"name\": \"eventId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Follow-up event id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"Follow-up event id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/OrderFollowupRetryBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/OrderFollowupRetryResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"409\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postPaymentReconciliationCasesCaseIdResolve\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/payment-reconciliation-cases/{caseId}/resolve\",\n \"domain\": \"Reconciliation\",\n \"summary\": \"Resolve a payment reconciliation case\",\n \"description\": \"Marks a payment reconciliation case resolved. Idempotent if already resolved. Requires an `Idempotency-Key` request header (max 256 chars). Replaying the same actor + action + key returns the original result without re-mutating.\\n\\n**Required scope(s):** `order-followups:write`\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": true,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [\n \"order-followups:write\"\n ],\n \"parameters\": [\n {\n \"name\": \"caseId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Payment reconciliation case id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"Payment reconciliation case id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/ReconciliationResolveBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/ReconciliationResolveResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"409\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getOrders\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/orders\",\n \"domain\": \"Orders\",\n \"summary\": \"List orders\",\n \"description\": \"Paginated orders with buyer email/name, filterable by provider/status/search.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"search\",\n \"in\": \"query\",\n \"required\": false,\n \"schema\": {\n \"type\": \"string\"\n }\n },\n {\n \"name\": \"provider\",\n \"in\": \"query\",\n \"required\": false,\n \"schema\": {\n \"type\": \"string\",\n \"enum\": [\n \"polar\",\n \"sepay\",\n \"admin\"\n ]\n }\n },\n {\n \"name\": \"status\",\n \"in\": \"query\",\n \"required\": false,\n \"schema\": {\n \"type\": \"string\"\n }\n },\n {\n \"name\": \"limit\",\n \"in\": \"query\",\n \"required\": false,\n \"schema\": {\n \"type\": \"integer\",\n \"minimum\": 1,\n \"maximum\": 100,\n \"example\": 50\n }\n },\n {\n \"name\": \"offset\",\n \"in\": \"query\",\n \"required\": false,\n \"schema\": {\n \"type\": [\n \"integer\",\n \"null\"\n ],\n \"minimum\": 0,\n \"example\": 0\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/OrderList\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postOrders\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/orders\",\n \"domain\": \"Orders\",\n \"summary\": \"Create a zero-dollar admin comp order\",\n \"description\": \"Creates or reuses a recipient user, mints one `paymentProvider: admin` order at amount `0`, and runs normal fulfillment with token-fenced staged activation. Idempotent via `requestId` (exact actor-bound replay returns 200). Session callers must be super-admin; API keys need `orders:comp` or `admin:full` \u2014 `orders:write` alone is rejected.\\n\\n**Required scope(s):** `orders:comp`\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [\n \"orders:comp\"\n ],\n \"parameters\": [],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/CreateCompOrderBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/CreateCompOrderResponse\"\n },\n \"201\": {\n \"$ref\": \"#/components/schemas/CreateCompOrderResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"409\": {\n \"$ref\": \"#/components/schemas/CompOrderErrorResponse\"\n },\n \"502\": {\n \"$ref\": \"#/components/schemas/CompOrderErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getOrdersStats\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/orders/stats\",\n \"domain\": \"Orders\",\n \"summary\": \"Order statistics\",\n \"description\": \"Aggregate order counts and revenue, filterable by date/status/provider.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/OrdersStats\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getOrdersExport\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/orders/export\",\n \"domain\": \"Orders\",\n \"summary\": \"Export orders (CSV)\",\n \"description\": \"Streams all matching orders as a CSV download.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [],\n \"responseSchemas\": {\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getOrdersOrderId\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/orders/{orderId}\",\n \"domain\": \"Orders\",\n \"summary\": \"Get order detail\",\n \"description\": \"Full order record with licenses, commission, and discount redemptions.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"orderId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Order id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Order id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/OrderDetail\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getOrdersOrderIdPdf\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/orders/{orderId}/pdf\",\n \"domain\": \"Orders\",\n \"summary\": \"Order invoice (PDF)\",\n \"description\": \"Renders the order invoice as a PDF download.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"orderId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Order id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Order id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getOrdersOrderIdFollowUps\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/orders/{orderId}/follow-ups\",\n \"domain\": \"Orders\",\n \"summary\": \"Get order follow-up timeline\",\n \"description\": \"**Required scope(s):** `order-followups:read`\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [\n \"order-followups:read\"\n ],\n \"parameters\": [\n {\n \"name\": \"orderId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Order id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Order id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/OrderActionResult\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postOrdersOrderIdFollowUpsDisable\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/orders/{orderId}/follow-ups/disable\",\n \"domain\": \"Orders\",\n \"summary\": \"Disable order follow-ups\",\n \"description\": \"**Required scope(s):** `order-followups:write`\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [\n \"order-followups:write\"\n ],\n \"parameters\": [\n {\n \"name\": \"orderId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Order id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Order id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/FollowUpStateBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/OrderActionResult\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"409\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postOrdersOrderIdFollowUpsReconcile\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/orders/{orderId}/follow-ups/reconcile\",\n \"domain\": \"Orders\",\n \"summary\": \"Reconcile order follow-ups\",\n \"description\": \"**Required scope(s):** `order-followups:write`\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [\n \"order-followups:write\"\n ],\n \"parameters\": [\n {\n \"name\": \"orderId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Order id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Order id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/FollowUpStateBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/OrderActionResult\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"409\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postOrdersOrderIdComplete\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/orders/{orderId}/complete\",\n \"domain\": \"Orders\",\n \"summary\": \"Complete an order\",\n \"description\": \"Manually marks an order paid/completed and runs fulfillment.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"orderId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Order id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Order id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/OrderActionResult\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postOrdersOrderIdRefund\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/orders/{orderId}/refund\",\n \"domain\": \"Orders\",\n \"summary\": \"Refund an order\",\n \"description\": \"Issues a refund and revokes access.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"orderId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Order id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Order id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/RefundBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/OrderActionResult\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postOrdersOrderIdRefundKeepAccess\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/orders/{orderId}/refund-keep-access\",\n \"domain\": \"Orders\",\n \"summary\": \"Refund an order (keep access)\",\n \"description\": \"Issues a refund but preserves the buyer's product access.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"orderId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Order id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Order id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/RefundBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/OrderActionResult\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postOrdersOrderIdResendEmails\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/orders/{orderId}/resend-emails\",\n \"domain\": \"Orders\",\n \"summary\": \"Resend order emails\",\n \"description\": \"**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"orderId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Order id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Order id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/ResendEmailsBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/OrderActionResult\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postOrdersOrderIdResendGithubInvite\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/orders/{orderId}/resend-github-invite\",\n \"domain\": \"Orders\",\n \"summary\": \"Resend GitHub invite for an order\",\n \"description\": \"**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"orderId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Order id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Order id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/OrderActionResult\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"409\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postOrdersOrderIdSwitchProduct\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/orders/{orderId}/switch-product\",\n \"domain\": \"Orders\",\n \"summary\": \"Switch order product\",\n \"description\": \"Changes the purchased product type and re-runs entitlement/fulfillment.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"orderId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Order id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Order id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/SwitchProductBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/OrderActionResult\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getPayouts\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/payouts\",\n \"domain\": \"Payouts\",\n \"summary\": \"List payouts (with decrypted payment details)\",\n \"description\": \"Session-only. Same data source as `GET /payout-requests`; payment details are decrypted per-row.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"session_only\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"search\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Matches request id (uuid prefix), user email/name/github username\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Matches request id (uuid prefix), user email/name/github username\"\n }\n },\n {\n \"name\": \"limit\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Page size (default 50, max 100)\",\n \"schema\": {\n \"type\": \"integer\",\n \"minimum\": 1,\n \"maximum\": 100,\n \"description\": \"Page size (default 50, max 100)\"\n }\n },\n {\n \"name\": \"offset\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Rows to skip (default 0)\",\n \"schema\": {\n \"type\": [\n \"integer\",\n \"null\"\n ],\n \"minimum\": 0,\n \"description\": \"Rows to skip (default 0)\"\n }\n },\n {\n \"name\": \"status\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Payout request lifecycle status\",\n \"schema\": {\n \"type\": \"string\",\n \"enum\": [\n \"pending\",\n \"processing\",\n \"completed\",\n \"failed\"\n ],\n \"description\": \"Payout request lifecycle status\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/PayoutRequestListResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getPayoutsExport\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/payouts/export\",\n \"domain\": \"Payouts\",\n \"summary\": \"Export payouts (CSV)\",\n \"description\": \"Streams payout requests in the date range, with withholding breakdown, as a CSV download.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"session_only\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"startDate\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"ISO date, inclusive (default: 30 days ago)\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"ISO date, inclusive (default: 30 days ago)\"\n }\n },\n {\n \"name\": \"endDate\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"ISO date, inclusive (default: today)\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"ISO date, inclusive (default: today)\"\n }\n },\n {\n \"name\": \"status\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Default \\\"all\\\"\",\n \"schema\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"enum\": [\n \"pending\",\n \"processing\",\n \"completed\",\n \"failed\"\n ],\n \"description\": \"Payout request lifecycle status\"\n },\n {\n \"type\": \"string\",\n \"enum\": [\n \"all\"\n ]\n }\n ],\n \"description\": \"Default \\\"all\\\"\"\n }\n }\n ],\n \"responseSchemas\": {\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getPayoutsExportDetailed\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/payouts/export-detailed\",\n \"domain\": \"Payouts\",\n \"summary\": \"Export payouts, detailed by commission (CSV)\",\n \"description\": \"Streams one row per commission per referrer (with order + customer detail) as a CSV download.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"session_only\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"status\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Default \\\"all\\\"\",\n \"schema\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"enum\": [\n \"pending\",\n \"processing\",\n \"completed\",\n \"failed\"\n ],\n \"description\": \"Payout request lifecycle status\"\n },\n {\n \"type\": \"string\",\n \"enum\": [\n \"all\"\n ]\n }\n ],\n \"description\": \"Default \\\"all\\\"\"\n }\n }\n ],\n \"responseSchemas\": {\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getPayoutRequests\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/payout-requests\",\n \"domain\": \"Payouts\",\n \"summary\": \"List payout requests (with decrypted payment details)\",\n \"description\": \"Session-only. Same data source as `GET /payouts`.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"session_only\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"search\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Matches request id (uuid prefix), user email/name/github username\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Matches request id (uuid prefix), user email/name/github username\"\n }\n },\n {\n \"name\": \"limit\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Page size (default 50, max 100)\",\n \"schema\": {\n \"type\": \"integer\",\n \"minimum\": 1,\n \"maximum\": 100,\n \"description\": \"Page size (default 50, max 100)\"\n }\n },\n {\n \"name\": \"offset\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Rows to skip (default 0)\",\n \"schema\": {\n \"type\": [\n \"integer\",\n \"null\"\n ],\n \"minimum\": 0,\n \"description\": \"Rows to skip (default 0)\"\n }\n },\n {\n \"name\": \"status\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Payout request lifecycle status\",\n \"schema\": {\n \"type\": \"string\",\n \"enum\": [\n \"pending\",\n \"processing\",\n \"completed\",\n \"failed\"\n ],\n \"description\": \"Payout request lifecycle status\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/PayoutRequestListResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n {\n \"operationId\": \"patchPayoutRequestsRequestId\",\n \"method\": \"PATCH\",\n \"path\": \"/api/admin/payout-requests/{requestId}\",\n \"domain\": \"Payouts\",\n \"summary\": \"Approve, reject, or complete a payout request\",\n \"description\": \"Session-only. `approve` (pending\u2192processing), `reject` (pending/processing\u2192failed, requires reason), `complete` (processing\u2192completed, marks matching commissions paid). Sends the corresponding notification email and may auto-reject other over-balance requests for the same user.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"session_only\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"requestId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Payout request id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"Payout request id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/PayoutRequestActionBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/PayoutRequestActionResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getPayoutRequestsRequestIdExportCsv\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/payout-requests/{requestId}/export-csv\",\n \"domain\": \"Payouts\",\n \"summary\": \"Export a single payout request (CSV)\",\n \"description\": \"Streams the matched commissions + summary (incl. VN bank-transfer 10% tax breakdown) for one payout request as a CSV download.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"session_only\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"requestId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Payout request id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"Payout request id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postPayoutVneidRequests\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/payout-vneid-requests\",\n \"domain\": \"Payouts\",\n \"summary\": \"Send VNeID confirmation requests\",\n \"description\": \"Session-only. Bulk-sends a VNeID/withholding confirmation email per payout request (via the requester's saved PayPal profile); marks the profile withholding status \\\"projected_paypal_15\\\" pending confirmation.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"session_only\",\n \"requiredScopes\": [],\n \"parameters\": [],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/PayoutVneidRequestBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/PayoutVneidRequestResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getReferralsDiagnose\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/referrals/diagnose\",\n \"domain\": \"Referrals\",\n \"summary\": \"Diagnose referral tracking issues\",\n \"description\": \"Scans the last 30 days for suspicious patterns: high-click/zero-conversion codes, orders missing commissions, and clicks not attributed to an order.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/ReferralsDiagnoseResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getReferralsExport\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/referrals/export\",\n \"domain\": \"Referrals\",\n \"summary\": \"Export referral stats (CSV)\",\n \"description\": \"Streams per-referrer click/conversion/commission totals for a date range as a CSV download.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"startDate\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"ISO date, default 30 days ago\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"ISO date, default 30 days ago\",\n \"example\": \"2026-07-01\"\n }\n },\n {\n \"name\": \"endDate\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"ISO date, default today\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"ISO date, default today\"\n }\n }\n ],\n \"responseSchemas\": {\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getReferralsStats\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/referrals/stats\",\n \"domain\": \"Referrals\",\n \"summary\": \"Referral program statistics\",\n \"description\": \"KPIs, daily time series, top referrers, commission breakdown, and VND exchange rate for a date range.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"startDate\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"ISO date, default 30 days ago\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"ISO date, default 30 days ago\",\n \"example\": \"2026-07-01\"\n }\n },\n {\n \"name\": \"endDate\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"ISO date, default today\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"ISO date, default today\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/ReferralsStatsResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getReferralsTiersStats\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/referrals/tiers/stats\",\n \"domain\": \"Referrals\",\n \"summary\": \"Referral tier distribution\",\n \"description\": \"User count and percentage per referral tier, plus manual \\\"Partner\\\" (custom commission rate) count.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/ReferralsTiersStatsResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getReferralsUserIdStats\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/referrals/{userId}/stats\",\n \"domain\": \"Referrals\",\n \"summary\": \"Get a single referrer's stats\",\n \"description\": \"Referrer profile/tier, referral codes, KPIs, commission breakdown, recent referred orders, and payouts for a date range.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"userId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Referrer user id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"Referrer user id\"\n }\n },\n {\n \"name\": \"startDate\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"ISO date, default 30 days ago\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"ISO date, default 30 days ago\",\n \"example\": \"2026-07-01\"\n }\n },\n {\n \"name\": \"endDate\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"ISO date, default today\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"ISO date, default today\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/ReferralUserStatsResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getTiersManual\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/tiers/manual\",\n \"domain\": \"Referrals\",\n \"summary\": \"List manual-only referral tiers\",\n \"description\": \"Tiers not assigned automatically by revenue (`minRevenueCents < 0`), e.g. hand-assigned partner tiers.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/ManualTiersResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getReferralAttributions\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/referral-attributions\",\n \"domain\": \"Discount referral attribution\",\n \"summary\": \"List discount referral attributions\",\n \"description\": \"List attribution mappings (discount code/group \u2192 beneficiary). Requires DISCOUNT_REFERRAL_ATTRIBUTION_ENABLED=true.\\n\\n**Required scope(s):** `referrals:read`\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [\n \"referrals:read\"\n ],\n \"parameters\": [],\n \"responseSchemas\": {\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postReferralAttributions\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/referral-attributions\",\n \"domain\": \"Discount referral attribution\",\n \"summary\": \"Create discount referral attribution\",\n \"description\": \"Link a discount code or group to a beneficiary at a rate (1\u2013100). Use replace=true to supersede an active mapping.\\n\\n**Required scope(s):** `referrals:write`\",\n \"isDestructive\": false,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [\n \"referrals:write\"\n ],\n \"parameters\": [],\n \"responseSchemas\": {\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"409\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postReferralAttributionsPreview\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/referral-attributions/preview\",\n \"domain\": \"Discount referral attribution\",\n \"summary\": \"Preview attribution link\",\n \"description\": \"Dry-run beneficiary + conflict check before create.\\n\\n**Required scope(s):** `referrals:write`\",\n \"isDestructive\": false,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [\n \"referrals:write\"\n ],\n \"parameters\": [],\n \"responseSchemas\": {\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getReferralAttributionsId\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/referral-attributions/{id}\",\n \"domain\": \"Discount referral attribution\",\n \"summary\": \"Get attribution by id\",\n \"description\": \"**Required scope(s):** `referrals:read`\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [\n \"referrals:read\"\n ],\n \"parameters\": [],\n \"responseSchemas\": {\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"patchReferralAttributionsId\",\n \"method\": \"PATCH\",\n \"path\": \"/api/admin/referral-attributions/{id}\",\n \"domain\": \"Discount referral attribution\",\n \"summary\": \"Supersede attribution\",\n \"description\": \"Deactivates the active row and inserts a new version.\\n\\n**Required scope(s):** `referrals:write`\",\n \"isDestructive\": false,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [\n \"referrals:write\"\n ],\n \"parameters\": [],\n \"responseSchemas\": {\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postReferralAttributionsIdDeactivate\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/referral-attributions/{id}/deactivate\",\n \"domain\": \"Discount referral attribution\",\n \"summary\": \"Deactivate attribution\",\n \"description\": \"**Required scope(s):** `referrals:write`\",\n \"isDestructive\": false,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [\n \"referrals:write\"\n ],\n \"parameters\": [],\n \"responseSchemas\": {\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getReferralLedger\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/referral-ledger\",\n \"domain\": \"Discount referral attribution\",\n \"summary\": \"List discount-attributed commissions (read-only)\",\n \"description\": \"Ledger rows where attributionId is set. No approve/reverse in v1.\\n\\n**Required scope(s):** `referrals:read`\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [\n \"referrals:read\"\n ],\n \"parameters\": [],\n \"responseSchemas\": {\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getUsersSearch\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/users/search\",\n \"domain\": \"Discount referral attribution\",\n \"summary\": \"Search users for attribution beneficiary\",\n \"description\": \"Typeahead by email, name, or exact user id.\\n\\n**Required scope(s):** `referrals:write`\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [\n \"referrals:write\"\n ],\n \"parameters\": [],\n \"responseSchemas\": {\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getRevenue\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/revenue\",\n \"domain\": \"Revenue\",\n \"summary\": \"Revenue overview\",\n \"description\": \"Aggregate revenue KPIs, daily time series, and provider/product breakdowns for a date range.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"startDate\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"ISO date, inclusive (default: 30 days ago)\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"ISO date, inclusive (default: 30 days ago)\",\n \"example\": \"2026-01-01\"\n }\n },\n {\n \"name\": \"endDate\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"ISO date, inclusive (default: today)\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"ISO date, inclusive (default: today)\",\n \"example\": \"2026-01-31\"\n }\n },\n {\n \"name\": \"product\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Filter by high-level product (maps to base + _bf + team_* variants)\",\n \"schema\": {\n \"type\": \"string\",\n \"enum\": [\n \"engineer_kit\",\n \"marketing_kit\",\n \"combo\"\n ],\n \"description\": \"Filter by high-level product (maps to base + _bf + team_* variants)\"\n }\n },\n {\n \"name\": \"includeTeam\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Include team_* variants when `product` is set (default true)\",\n \"schema\": {\n \"type\": \"string\",\n \"enum\": [\n \"true\",\n \"false\"\n ],\n \"description\": \"Include team_* variants when `product` is set (default true)\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/RevenueStats\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getRevenueExport\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/revenue/export\",\n \"domain\": \"Revenue\",\n \"summary\": \"Export revenue (CSV)\",\n \"description\": \"Streams completed orders in the date range, with validation status and Polar fee breakdown, as a CSV download.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"startDate\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"ISO date, inclusive (default: 30 days ago)\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"ISO date, inclusive (default: 30 days ago)\"\n }\n },\n {\n \"name\": \"endDate\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"ISO date, inclusive (default: today)\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"ISO date, inclusive (default: today)\"\n }\n }\n ],\n \"responseSchemas\": {\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getRevenueMaintainer\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/revenue/maintainer\",\n \"domain\": \"Revenue\",\n \"summary\": \"Maintainer earnings\",\n \"description\": \"Computes a maintainer's revenue-share earnings (product breakdown, costs, tax) for a date range.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"id\",\n \"in\": \"query\",\n \"required\": true,\n \"description\": \"Maintainer id (required)\",\n \"schema\": {\n \"type\": \"string\",\n \"enum\": [\n \"cke\",\n \"ckm\"\n ],\n \"description\": \"Maintainer id (required)\"\n }\n },\n {\n \"name\": \"startDate\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"ISO date (default: start of current month)\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"ISO date (default: start of current month)\"\n }\n },\n {\n \"name\": \"endDate\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"ISO date (default: end of current month)\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"ISO date (default: end of current month)\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/RevenueMaintainerEarningsResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getRevenueMonthlyCosts\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/revenue/monthly-costs\",\n \"domain\": \"Revenue\",\n \"summary\": \"List monthly costs\",\n \"description\": \"Manual monthly operating costs used for maintainer revenue-share cost allocation, optionally filtered by yearMonth.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"yearMonth\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Filter by YYYY-MM\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Filter by YYYY-MM\",\n \"example\": \"2026-01\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/RevenueMonthlyCostListResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postRevenueMonthlyCosts\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/revenue/monthly-costs\",\n \"domain\": \"Revenue\",\n \"summary\": \"Create a monthly cost\",\n \"description\": \"**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/RevenueCreateMonthlyCostBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/RevenueMonthlyCostResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"putRevenueMonthlyCostsId\",\n \"method\": \"PUT\",\n \"path\": \"/api/admin/revenue/monthly-costs/{id}\",\n \"domain\": \"Revenue\",\n \"summary\": \"Update a monthly cost\",\n \"description\": \"**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"id\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Monthly cost id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"Monthly cost id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/RevenueUpdateMonthlyCostBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/RevenueMonthlyCostResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"deleteRevenueMonthlyCostsId\",\n \"method\": \"DELETE\",\n \"path\": \"/api/admin/revenue/monthly-costs/{id}\",\n \"domain\": \"Revenue\",\n \"summary\": \"Delete a monthly cost\",\n \"description\": \"Hard-deletes the cost row.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"id\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Monthly cost id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"Monthly cost id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/RevenueMonthlyCostDeleteResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postRevenueReports\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/revenue/reports\",\n \"domain\": \"Revenue\",\n \"summary\": \"Generate maintainer report(s)\",\n \"description\": \"Manually triggers maintainer revenue-share report generation/email for one or all maintainers.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/RevenueGenerateReportsBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/RevenueGenerateReportsResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getUsersLookup\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/users/lookup\",\n \"domain\": \"Users\",\n \"summary\": \"Lookup user by email for comp orders\",\n \"description\": \"Resolves a normalized email to missing / live / merged-target identity, active licenses, and product-family overlap. Merged aliases resolve to the surviving target (`mergedIntoUserId` is null in the response).\\n\\n**Required scope(s):** `users:read`\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [\n \"users:read\"\n ],\n \"parameters\": [\n {\n \"name\": \"email\",\n \"in\": \"query\",\n \"required\": true,\n \"description\": \"Recipient email (normalized to lowercase)\",\n \"schema\": {\n \"type\": \"string\",\n \"maxLength\": 254,\n \"format\": \"email\",\n \"description\": \"Recipient email (normalized to lowercase)\",\n \"example\": \"user@example.com\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/UserLookupResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getUsersUserId\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/users/{userId}\",\n \"domain\": \"Users\",\n \"summary\": \"Get user detail\",\n \"description\": \"User record with order totals, licenses, and AgentKit App waitlist reservations.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"userId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"User id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"User id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/UserDetail\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"patchUsersUserId\",\n \"method\": \"PATCH\",\n \"path\": \"/api/admin/users/{userId}\",\n \"domain\": \"Users\",\n \"summary\": \"Update a user\",\n \"description\": \"Updates name and/or email. Blocked-domain email validation is intentionally skipped for admin corrections.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"userId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"User id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"User id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/UpdateUserBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/UpdateUserResult\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"409\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"deleteUsersUserIdOrphan\",\n \"method\": \"DELETE\",\n \"path\": \"/api/admin/users/{userId}/orphan\",\n \"domain\": \"Users\",\n \"summary\": \"Delete an orphan user\",\n \"description\": \"Hard-deletes a user with no orders/licenses/referral activity/dependent rows, freeing its email. Refuses admin/super-admin accounts.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"userId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"User id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"User id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/OrphanDeleteBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/OrphanDeleteResult\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"409\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getUsersExport\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/users/export\",\n \"domain\": \"Users\",\n \"summary\": \"Export users (CSV)\",\n \"description\": \"Streams users created within the date range (default last 30 days) as a CSV download.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"startDate\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"ISO date, defaults to 30 days ago\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"ISO date, defaults to 30 days ago\",\n \"example\": \"2026-07-01\"\n }\n },\n {\n \"name\": \"endDate\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"ISO date, defaults to today\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"ISO date, defaults to today\",\n \"example\": \"2026-08-01\"\n }\n },\n {\n \"name\": \"search\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Matches email/name/GitHub username\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Matches email/name/GitHub username\"\n }\n }\n ],\n \"responseSchemas\": {\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getUsersStats\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/users/stats\",\n \"domain\": \"Users\",\n \"summary\": \"User statistics\",\n \"description\": \"Aggregate signup/spend/tier/GitHub-linkage stats, filterable by date range.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"start\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"ISO date filter start\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"ISO date filter start\"\n }\n },\n {\n \"name\": \"end\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"ISO date filter end\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"ISO date filter end\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/UsersStats\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n {\n \"operationId\": \"patchUsersUserIdGithubUsername\",\n \"method\": \"PATCH\",\n \"path\": \"/api/admin/users/{userId}/github-username\",\n \"domain\": \"Users\",\n \"summary\": \"Change a user's GitHub username (deprecated)\",\n \"description\": \"Deprecated \u2014 use `PATCH /api/admin/licenses/{licenseId}/github-username` instead. Revokes access under the old username and re-grants under the new one across all active licenses; `cascadeMode` controls whether the change also propagates to per-license `githubUsername`.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"userId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"User id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"User id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/GithubUsernameBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/GithubUsernameUpdateResult\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"patchUsersUserIdRates\",\n \"method\": \"PATCH\",\n \"path\": \"/api/admin/users/{userId}/rates\",\n \"domain\": \"Users\",\n \"summary\": \"Set custom commission/discount rates\",\n \"description\": \"**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"userId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"User id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"User id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/RatesBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/RatesUpdateResult\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"patchUsersUserIdTier\",\n \"method\": \"PATCH\",\n \"path\": \"/api/admin/users/{userId}/tier\",\n \"domain\": \"Users\",\n \"summary\": \"Set a user's manual referral tier\",\n \"description\": \"Only manual-only (CK) tiers \u2014 those with minRevenueCents < 0 \u2014 may be assigned.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"userId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"User id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"User id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/TierBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/TierUpdateResult\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postUsersUserIdClaimEmail\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/users/{userId}/claim-email\",\n \"domain\": \"Users\",\n \"summary\": \"Claim an email from an orphan account\",\n \"description\": \"Atomically transfers an email held by a \\\"mergeable\\\" orphan (no orders/licenses/settled commissions/payout profile) onto this user, cancelling the orphan's pending commissions and deleting it.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"userId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"User id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"User id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/ClaimEmailBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/ClaimEmailResult\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"409\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postUsersUserIdMerge\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/users/{userId}/merge\",\n \"domain\": \"Users\",\n \"summary\": \"Merge one user account into another\",\n \"description\": \"Alias-model merge: source stays alive with merged_into_user_id pointing at this (target) user. All-or-nothing single transaction; every expected blocker returns a structured 409.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"userId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"User id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"User id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/MergeExecuteBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/MergeExecuteResult\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"409\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postUsersUserIdMergePreview\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/users/{userId}/merge/preview\",\n \"domain\": \"Users\",\n \"summary\": \"Preview a user account merge\",\n \"description\": \"SELECT-only dry run: row counts, hard blockers, self-referral warnings, projected revenue/tier. Mounted under the target user; source id is in the body.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"userId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"User id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"User id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/MergePreviewBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/MergePreviewResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"409\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postUsersUserIdProductGrants\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/users/{userId}/product-grants\",\n \"domain\": \"Users\",\n \"summary\": \"Grant a product license to a user\",\n \"description\": \"Session-only, super-admin-gated (API keys always get 403 here regardless of scope). Idempotent via `requestId`; delivery status may come back uncertain (202, safe to retry within 24h) or failed (502, license stays inactive).\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"session_only\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"userId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"User id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"User id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/ProductGrantRequestBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/ProductGrantSuccessResponse\"\n },\n \"201\": {\n \"$ref\": \"#/components/schemas/ProductGrantSuccessResponse\"\n },\n \"202\": {\n \"$ref\": \"#/components/schemas/ProductGrantDeliveryIssueResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"409\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"502\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n }\n ],\n \"operationsById\": {\n \"getKeys\": {\n \"operationId\": \"getKeys\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/keys\",\n \"domain\": \"Admin API Keys\",\n \"summary\": \"List admin API keys\",\n \"description\": \"Paginated list of the authenticated admin's API keys. Secrets are never returned.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"search\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Case-insensitive filter\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Case-insensitive filter\"\n }\n },\n {\n \"name\": \"limit\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Page size (default 50, max 100)\",\n \"schema\": {\n \"type\": \"integer\",\n \"minimum\": 1,\n \"maximum\": 100,\n \"description\": \"Page size (default 50, max 100)\",\n \"example\": 50\n }\n },\n {\n \"name\": \"offset\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Rows to skip (default 0)\",\n \"schema\": {\n \"type\": [\n \"integer\",\n \"null\"\n ],\n \"minimum\": 0,\n \"description\": \"Rows to skip (default 0)\",\n \"example\": 0\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/AdminApiKeyList\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n \"postKeys\": {\n \"operationId\": \"postKeys\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/keys\",\n \"domain\": \"Admin API Keys\",\n \"summary\": \"Create an admin API key\",\n \"description\": \"Creates a key with RBAC scopes. The plaintext key is returned ONCE and never retrievable again.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/CreateAdminApiKeyBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/CreatedAdminApiKey\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"429\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"postKeysValidate\": {\n \"operationId\": \"postKeysValidate\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/keys/validate\",\n \"domain\": \"Admin API Keys\",\n \"summary\": \"Validate an admin API key\",\n \"description\": \"Checks whether the supplied `x-api-key` is a valid, active admin key.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/ValidateAdminApiKeyResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/ValidateAdminApiKeyResponse\"\n },\n \"429\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"postKeysIdRevoke\": {\n \"operationId\": \"postKeysIdRevoke\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/keys/{id}/revoke\",\n \"domain\": \"Admin API Keys\",\n \"summary\": \"Revoke an admin API key\",\n \"description\": \"Permanently revokes the key. Idempotent-safe: already-revoked keys return 404.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"id\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Admin API key id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"Admin API key id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/RevokeAdminApiKeyResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"postKeysIdRotate\": {\n \"operationId\": \"postKeysIdRotate\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/keys/{id}/rotate\",\n \"domain\": \"Admin API Keys\",\n \"summary\": \"Rotate an admin API key\",\n \"description\": \"Revokes the old key and issues a replacement with the same scopes. New plaintext returned ONCE.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"id\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Admin API key id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"Admin API key id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/CreatedAdminApiKey\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"getAdmins\": {\n \"operationId\": \"getAdmins\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/admins\",\n \"domain\": \"Admins\",\n \"summary\": \"List admins\",\n \"description\": \"Paginated admin rows with resolved permissions, pending invites, and aggregate stats.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"search\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Case-insensitive filter\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Case-insensitive filter\"\n }\n },\n {\n \"name\": \"limit\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Page size (default 50, max 100)\",\n \"schema\": {\n \"type\": \"integer\",\n \"minimum\": 1,\n \"maximum\": 100,\n \"description\": \"Page size (default 50, max 100)\",\n \"example\": 50\n }\n },\n {\n \"name\": \"offset\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Rows to skip (default 0)\",\n \"schema\": {\n \"type\": [\n \"integer\",\n \"null\"\n ],\n \"minimum\": 0,\n \"description\": \"Rows to skip (default 0)\",\n \"example\": 0\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/AdminListResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n \"getAdminsUserId\": {\n \"operationId\": \"getAdminsUserId\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/admins/{userId}\",\n \"domain\": \"Admins\",\n \"summary\": \"Get admin detail\",\n \"description\": \"A single admin's details and resolved permissions.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"userId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Admin user id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Admin user id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/AdminDetailResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"deleteAdminsUserId\": {\n \"operationId\": \"deleteAdminsUserId\",\n \"method\": \"DELETE\",\n \"path\": \"/api/admin/admins/{userId}\",\n \"domain\": \"Admins\",\n \"summary\": \"Remove an admin\",\n \"description\": \"Demotes an admin to a regular user and revokes all permissions. Super-admin only.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"userId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Admin user id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Admin user id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/DemoteAdminResult\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"patchAdminsUserIdPermissions\": {\n \"operationId\": \"patchAdminsUserIdPermissions\",\n \"method\": \"PATCH\",\n \"path\": \"/api/admin/admins/{userId}/permissions\",\n \"domain\": \"Admins\",\n \"summary\": \"Update admin permissions\",\n \"description\": \"Grants/revokes per-domain permissions for an admin. Super-admin only.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"userId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Admin user id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Admin user id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/UpdateAdminPermissionsBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/UpdateAdminPermissionsResult\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"postAdminsUserIdPromote\": {\n \"operationId\": \"postAdminsUserIdPromote\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/admins/{userId}/promote\",\n \"domain\": \"Admins\",\n \"summary\": \"Promote a user to admin\",\n \"description\": \"Sets role=admin and optionally grants permissions. Super-admin only.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"userId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Admin user id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Admin user id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/PromoteAdminBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/PromoteAdminResult\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"getAgentkitLicenses\": {\n \"operationId\": \"getAgentkitLicenses\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/agentkit/licenses\",\n \"domain\": \"AgentKit\",\n \"summary\": \"List AgentKit App licenses\",\n \"description\": \"Paginated AgentKit App licenses with device summaries, searchable by user email/license id/order id/key prefix-last4.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"search\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Matches user email, license id/order id, or key prefix/last4\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Matches user email, license id/order id, or key prefix/last4\"\n }\n },\n {\n \"name\": \"q\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Alias for `search` (takes precedence when both are set)\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Alias for `search` (takes precedence when both are set)\"\n }\n },\n {\n \"name\": \"limit\",\n \"in\": \"query\",\n \"required\": false,\n \"schema\": {\n \"type\": \"integer\",\n \"minimum\": 1,\n \"maximum\": 100,\n \"example\": 50\n }\n },\n {\n \"name\": \"offset\",\n \"in\": \"query\",\n \"required\": false,\n \"schema\": {\n \"type\": [\n \"integer\",\n \"null\"\n ],\n \"minimum\": 0,\n \"example\": 0\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/AgentKitLicenseList\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n \"getAgentkitLicensesLicenseId\": {\n \"operationId\": \"getAgentkitLicensesLicenseId\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/agentkit/licenses/{licenseId}\",\n \"domain\": \"AgentKit\",\n \"summary\": \"Get an AgentKit App license\",\n \"description\": \"**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"licenseId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"AgentKit license id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"AgentKit license id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/AgentKitLicenseDetail\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"postAgentkitLicensesLicenseIdRevoke\": {\n \"operationId\": \"postAgentkitLicensesLicenseIdRevoke\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/agentkit/licenses/{licenseId}/revoke\",\n \"domain\": \"AgentKit\",\n \"summary\": \"Revoke an AgentKit App license\",\n \"description\": \"**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"licenseId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"AgentKit license id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"AgentKit license id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/AgentKitOkResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"postAgentkitLicensesLicenseIdDevicesDeviceIdRevoke\": {\n \"operationId\": \"postAgentkitLicensesLicenseIdDevicesDeviceIdRevoke\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/agentkit/licenses/{licenseId}/devices/{deviceId}/revoke\",\n \"domain\": \"AgentKit\",\n \"summary\": \"Revoke an AgentKit App license device\",\n \"description\": \"Revokes a single device activation, signing that device out.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"licenseId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"AgentKit license id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"AgentKit license id\"\n }\n },\n {\n \"name\": \"deviceId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"License activation (device) id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"License activation (device) id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/AgentKitOkResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"getAgentkitWaitlist\": {\n \"operationId\": \"getAgentkitWaitlist\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/agentkit/waitlist\",\n \"domain\": \"AgentKit\",\n \"summary\": \"List confirmed AgentKit App waitlist signups\",\n \"description\": \"**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"search\",\n \"in\": \"query\",\n \"required\": false,\n \"schema\": {\n \"type\": \"string\"\n }\n },\n {\n \"name\": \"limit\",\n \"in\": \"query\",\n \"required\": false,\n \"schema\": {\n \"type\": \"integer\",\n \"minimum\": 1,\n \"maximum\": 100,\n \"example\": 50\n }\n },\n {\n \"name\": \"offset\",\n \"in\": \"query\",\n \"required\": false,\n \"schema\": {\n \"type\": [\n \"integer\",\n \"null\"\n ],\n \"minimum\": 0,\n \"example\": 0\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/AgentKitWaitlistList\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n \"postAgentkitAppWaitlistConvert\": {\n \"operationId\": \"postAgentkitAppWaitlistConvert\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/agentkit-app/waitlist/convert\",\n \"domain\": \"AgentKit\",\n \"summary\": \"Convert confirmed waitlist signups into licenses\",\n \"description\": \"Manual batch job: issues real AgentKit App licenses for confirmed paid waitlist reservations and emails the keys. Idempotent \u2014 safe to re-run. Run in small chunks (limit ~25), not one large request.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/AgentKitAppWaitlistConvertBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/AgentKitAppWaitlistConvertResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"postAgentkitKitsReleases\": {\n \"operationId\": \"postAgentkitKitsReleases\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/agentkit/kits/releases\",\n \"domain\": \"AgentKit\",\n \"summary\": \"Register an AgentKit kit release\",\n \"description\": \"Registers a new kit release build in the AgentKit registry (used by the release pipeline).\\n\\n**Required scope(s):** `registry:write`\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [\n \"registry:write\"\n ],\n \"parameters\": [],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/RegisterKitReleaseBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/RegisterKitReleaseResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"patchLicensesLicenseIdGithubUsername\": {\n \"operationId\": \"patchLicensesLicenseIdGithubUsername\",\n \"method\": \"PATCH\",\n \"path\": \"/api/admin/licenses/{licenseId}/github-username\",\n \"domain\": \"AgentKit\",\n \"summary\": \"Change the GitHub username on a license\",\n \"description\": \"Admin override for the GitHub username tied to any license (Engineer/Marketing Kit GitHub access).\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"licenseId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"AgentKit license id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"AgentKit license id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/ChangeLicenseGithubUsernameBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/ChangeLicenseGithubUsernameResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"409\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"getAnnouncements\": {\n \"operationId\": \"getAnnouncements\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/announcements\",\n \"domain\": \"Announcements\",\n \"summary\": \"List announcements\",\n \"description\": \"Paginated admin list of all announcements (enabled and disabled).\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"limit\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Page size (default 20, max 100)\",\n \"schema\": {\n \"type\": \"integer\",\n \"minimum\": 1,\n \"maximum\": 100,\n \"description\": \"Page size (default 20, max 100)\",\n \"example\": 20\n }\n },\n {\n \"name\": \"offset\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Rows to skip (default 0)\",\n \"schema\": {\n \"type\": [\n \"integer\",\n \"null\"\n ],\n \"minimum\": 0,\n \"description\": \"Rows to skip (default 0)\",\n \"example\": 0\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/AnnouncementListResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n \"postAnnouncements\": {\n \"operationId\": \"postAnnouncements\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/announcements\",\n \"domain\": \"Announcements\",\n \"summary\": \"Create an announcement\",\n \"description\": \"**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/CreateAnnouncementBody\"\n },\n \"responseSchemas\": {\n \"201\": {\n \"$ref\": \"#/components/schemas/AnnouncementResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AnnouncementValidationError\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"getAnnouncementsId\": {\n \"operationId\": \"getAnnouncementsId\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/announcements/{id}\",\n \"domain\": \"Announcements\",\n \"summary\": \"Get an announcement\",\n \"description\": \"**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"id\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Announcement id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"Announcement id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/AnnouncementResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"patchAnnouncementsId\": {\n \"operationId\": \"patchAnnouncementsId\",\n \"method\": \"PATCH\",\n \"path\": \"/api/admin/announcements/{id}\",\n \"domain\": \"Announcements\",\n \"summary\": \"Update an announcement\",\n \"description\": \"Partial update, including enabling/disabling via the `enabled` field.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"id\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Announcement id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"Announcement id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/UpdateAnnouncementBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/AnnouncementResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AnnouncementValidationError\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"deleteAnnouncementsId\": {\n \"operationId\": \"deleteAnnouncementsId\",\n \"method\": \"DELETE\",\n \"path\": \"/api/admin/announcements/{id}\",\n \"domain\": \"Announcements\",\n \"summary\": \"Delete an announcement\",\n \"description\": \"**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"id\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Announcement id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"Announcement id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/DeleteAnnouncementResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"getBlogArticles\": {\n \"operationId\": \"getBlogArticles\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/blog/articles\",\n \"domain\": \"Blog\",\n \"summary\": \"List articles\",\n \"description\": \"Paginated articles enriched with Korean localization status and category ids. Filterable by status/language/localizationStatus/tag/category/authorId/id.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"id\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Filter to a single article id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"Filter to a single article id\"\n }\n },\n {\n \"name\": \"page\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"default 1\",\n \"schema\": {\n \"type\": \"integer\",\n \"minimum\": 1,\n \"description\": \"default 1\",\n \"example\": 1\n }\n },\n {\n \"name\": \"limit\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"default 20, max 100\",\n \"schema\": {\n \"type\": \"integer\",\n \"minimum\": 1,\n \"maximum\": 100,\n \"description\": \"default 20, max 100\",\n \"example\": 20\n }\n },\n {\n \"name\": \"status\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Article lifecycle status\",\n \"schema\": {\n \"type\": \"string\",\n \"enum\": [\n \"draft\",\n \"scheduled\",\n \"published\",\n \"archived\"\n ],\n \"description\": \"Article lifecycle status\"\n }\n },\n {\n \"name\": \"language\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"default all\",\n \"schema\": {\n \"type\": \"string\",\n \"enum\": [\n \"all\",\n \"ko\",\n \"missing-ko\"\n ],\n \"description\": \"default all\"\n }\n },\n {\n \"name\": \"localizationStatus\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Localization review status\",\n \"schema\": {\n \"type\": \"string\",\n \"enum\": [\n \"draft\",\n \"published\",\n \"archived\"\n ],\n \"description\": \"Localization review status\"\n }\n },\n {\n \"name\": \"tag\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Filter by tag slug\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Filter by tag slug\"\n }\n },\n {\n \"name\": \"category\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Filter by category slug\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Filter by category slug\"\n }\n },\n {\n \"name\": \"authorId\",\n \"in\": \"query\",\n \"required\": false,\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/BlogArticleList\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n \"getBlogExport\": {\n \"operationId\": \"getBlogExport\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/blog/export\",\n \"domain\": \"Blog\",\n \"summary\": \"Export articles (CSV)\",\n \"description\": \"Streams matching articles (filterable by startDate/endDate/status) as a CSV download.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"startDate\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"ISO date, default 30 days before endDate\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"ISO date, default 30 days before endDate\",\n \"example\": \"2026-07-01\"\n }\n },\n {\n \"name\": \"endDate\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"ISO date, default today\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"ISO date, default today\",\n \"example\": \"2026-08-01\"\n }\n },\n {\n \"name\": \"status\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Article status filter, or 'all' (default)\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Article status filter, or 'all' (default)\",\n \"example\": \"all\"\n }\n }\n ],\n \"responseSchemas\": {\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n \"getBlogArticlesArticleIdLocalizationsLocale\": {\n \"operationId\": \"getBlogArticlesArticleIdLocalizationsLocale\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/blog/articles/{articleId}/localizations/{locale}\",\n \"domain\": \"Blog\",\n \"summary\": \"Get an article localization\",\n \"description\": \"Source (English) article summary plus the Korean localization record, if any.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"articleId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Article id (must be a UUID)\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Article id (must be a UUID)\"\n }\n },\n {\n \"name\": \"locale\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Localization locale\",\n \"schema\": {\n \"type\": \"string\",\n \"enum\": [\n \"ko\"\n ],\n \"description\": \"Localization locale\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/ArticleLocalizationSourceDetail\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"patchBlogArticlesArticleIdLocalizationsLocale\": {\n \"operationId\": \"patchBlogArticlesArticleIdLocalizationsLocale\",\n \"method\": \"PATCH\",\n \"path\": \"/api/admin/blog/articles/{articleId}/localizations/{locale}\",\n \"domain\": \"Blog\",\n \"summary\": \"Create or update an article localization\",\n \"description\": \"Upserts the Korean localization and applies a draft/publish/archive transition. Publishing requires title, source content, rendered HTML, and reviewer evidence.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"articleId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Article id (must be a UUID)\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Article id (must be a UUID)\"\n }\n },\n {\n \"name\": \"locale\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Localization locale\",\n \"schema\": {\n \"type\": \"string\",\n \"enum\": [\n \"ko\"\n ],\n \"description\": \"Localization locale\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/ArticleLocalizationUpsertBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/ArticleLocalizationSourceDetail\"\n },\n \"201\": {\n \"$ref\": \"#/components/schemas/ArticleLocalizationSourceDetail\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"409\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"postBlogArticlesArticleIdCategoriesCategoryId\": {\n \"operationId\": \"postBlogArticlesArticleIdCategoriesCategoryId\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/blog/articles/{articleId}/categories/{categoryId}\",\n \"domain\": \"Blog\",\n \"summary\": \"Attach a category to an article\",\n \"description\": \"**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"articleId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Article id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Article id\"\n }\n },\n {\n \"name\": \"categoryId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Category id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Category id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/BlogAttachResult\"\n },\n \"201\": {\n \"$ref\": \"#/components/schemas/BlogAttachResult\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"deleteBlogArticlesArticleIdCategoriesCategoryId\": {\n \"operationId\": \"deleteBlogArticlesArticleIdCategoriesCategoryId\",\n \"method\": \"DELETE\",\n \"path\": \"/api/admin/blog/articles/{articleId}/categories/{categoryId}\",\n \"domain\": \"Blog\",\n \"summary\": \"Detach a category from an article\",\n \"description\": \"**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"articleId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Article id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Article id\"\n }\n },\n {\n \"name\": \"categoryId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Category id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Category id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/BlogDetachResult\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"postBlogArticlesArticleIdTagsTagId\": {\n \"operationId\": \"postBlogArticlesArticleIdTagsTagId\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/blog/articles/{articleId}/tags/{tagId}\",\n \"domain\": \"Blog\",\n \"summary\": \"Attach a tag to an article\",\n \"description\": \"**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"articleId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Article id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Article id\"\n }\n },\n {\n \"name\": \"tagId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Tag id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Tag id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/BlogAttachResult\"\n },\n \"201\": {\n \"$ref\": \"#/components/schemas/BlogAttachResult\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"deleteBlogArticlesArticleIdTagsTagId\": {\n \"operationId\": \"deleteBlogArticlesArticleIdTagsTagId\",\n \"method\": \"DELETE\",\n \"path\": \"/api/admin/blog/articles/{articleId}/tags/{tagId}\",\n \"domain\": \"Blog\",\n \"summary\": \"Detach a tag from an article\",\n \"description\": \"**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"articleId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Article id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Article id\"\n }\n },\n {\n \"name\": \"tagId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Tag id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Tag id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/BlogDetachResult\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"getBlogCategories\": {\n \"operationId\": \"getBlogCategories\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/blog/categories\",\n \"domain\": \"Blog\",\n \"summary\": \"List categories\",\n \"description\": \"All categories, optionally filtered by name/slug substring.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"query\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Case-insensitive filter on name/slug (also accepts `search`)\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Case-insensitive filter on name/slug (also accepts `search`)\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/BlogCategoryList\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n \"postBlogCategories\": {\n \"operationId\": \"postBlogCategories\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/blog/categories\",\n \"domain\": \"Blog\",\n \"summary\": \"Create a category\",\n \"description\": \"Slug is derived from name when omitted. parentId, if set, must reference an existing category with no cycle.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/BlogCategoryCreateBody\"\n },\n \"responseSchemas\": {\n \"201\": {\n \"$ref\": \"#/components/schemas/BlogCategoryDetail\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"409\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"getBlogCategoriesCategoryId\": {\n \"operationId\": \"getBlogCategoriesCategoryId\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/blog/categories/{categoryId}\",\n \"domain\": \"Blog\",\n \"summary\": \"Get a category\",\n \"description\": \"**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"categoryId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Category id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Category id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/BlogCategoryDetail\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"patchBlogCategoriesCategoryId\": {\n \"operationId\": \"patchBlogCategoriesCategoryId\",\n \"method\": \"PATCH\",\n \"path\": \"/api/admin/blog/categories/{categoryId}\",\n \"domain\": \"Blog\",\n \"summary\": \"Update a category\",\n \"description\": \"**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"categoryId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Category id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Category id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/BlogCategoryUpdateBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/BlogCategoryDetail\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"409\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"deleteBlogCategoriesCategoryId\": {\n \"operationId\": \"deleteBlogCategoriesCategoryId\",\n \"method\": \"DELETE\",\n \"path\": \"/api/admin/blog/categories/{categoryId}\",\n \"domain\": \"Blog\",\n \"summary\": \"Delete a category\",\n \"description\": \"Fails if the category has children or associated articles unless `force=true`, which disassociates articles first.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"categoryId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Category id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Category id\"\n }\n },\n {\n \"name\": \"force\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Pass 'true' to disassociate articles and force-delete\",\n \"schema\": {\n \"type\": \"string\",\n \"enum\": [\n \"true\",\n \"false\"\n ],\n \"description\": \"Pass 'true' to disassociate articles and force-delete\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/BlogCategoryDeleteResult\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"409\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n \"getBlogTags\": {\n \"operationId\": \"getBlogTags\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/blog/tags\",\n \"domain\": \"Blog\",\n \"summary\": \"List tags\",\n \"description\": \"All tags, optionally filtered by name/slug substring.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"query\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Case-insensitive filter on name/slug (also accepts `search`)\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Case-insensitive filter on name/slug (also accepts `search`)\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/BlogTagList\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n \"postBlogTags\": {\n \"operationId\": \"postBlogTags\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/blog/tags\",\n \"domain\": \"Blog\",\n \"summary\": \"Create a tag\",\n \"description\": \"Slug is derived from name when omitted.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/BlogTagCreateBody\"\n },\n \"responseSchemas\": {\n \"201\": {\n \"$ref\": \"#/components/schemas/BlogTagDetail\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"409\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"getBlogTagsTagId\": {\n \"operationId\": \"getBlogTagsTagId\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/blog/tags/{tagId}\",\n \"domain\": \"Blog\",\n \"summary\": \"Get a tag\",\n \"description\": \"**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"tagId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Tag id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Tag id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/BlogTagDetail\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"patchBlogTagsTagId\": {\n \"operationId\": \"patchBlogTagsTagId\",\n \"method\": \"PATCH\",\n \"path\": \"/api/admin/blog/tags/{tagId}\",\n \"domain\": \"Blog\",\n \"summary\": \"Update a tag\",\n \"description\": \"**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"tagId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Tag id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Tag id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/BlogTagUpdateBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/BlogTagDetail\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"409\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"deleteBlogTagsTagId\": {\n \"operationId\": \"deleteBlogTagsTagId\",\n \"method\": \"DELETE\",\n \"path\": \"/api/admin/blog/tags/{tagId}\",\n \"domain\": \"Blog\",\n \"summary\": \"Delete a tag\",\n \"description\": \"Fails if the tag has associated articles unless `force=true`, which disassociates articles first.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"tagId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Tag id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Tag id\"\n }\n },\n {\n \"name\": \"force\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Pass 'true' to disassociate articles and force-delete\",\n \"schema\": {\n \"type\": \"string\",\n \"enum\": [\n \"true\",\n \"false\"\n ],\n \"description\": \"Pass 'true' to disassociate articles and force-delete\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/BlogTagDeleteResult\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"409\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n \"getChangelogLocalizationsRepositoryReleaseIdLocale\": {\n \"operationId\": \"getChangelogLocalizationsRepositoryReleaseIdLocale\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/changelog/localizations/{repository}/{releaseId}/{locale}\",\n \"domain\": \"Changelog\",\n \"summary\": \"Get a changelog release localization\",\n \"description\": \"Localized prose keyed to an immutable upstream GitHub release (repository + releaseId + locale).\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"repository\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Source repository the release belongs to\",\n \"schema\": {\n \"type\": \"string\",\n \"enum\": [\n \"engineer\",\n \"marketing\",\n \"cli\"\n ],\n \"description\": \"Source repository the release belongs to\"\n }\n },\n {\n \"name\": \"releaseId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Upstream GitHub release id (positive safe integer)\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Upstream GitHub release id (positive safe integer)\",\n \"example\": \"123456789\"\n }\n },\n {\n \"name\": \"locale\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Localization locale\",\n \"schema\": {\n \"type\": \"string\",\n \"enum\": [\n \"ko\"\n ],\n \"description\": \"Localization locale\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/ChangelogLocalizationDetail\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"patchChangelogLocalizationsRepositoryReleaseIdLocale\": {\n \"operationId\": \"patchChangelogLocalizationsRepositoryReleaseIdLocale\",\n \"method\": \"PATCH\",\n \"path\": \"/api/admin/changelog/localizations/{repository}/{releaseId}/{locale}\",\n \"domain\": \"Changelog\",\n \"summary\": \"Create or update a changelog release localization\",\n \"description\": \"Upserts the localization and applies a draft/publish/archive transition. Publishing requires title, release notes, reviewer evidence, and that the GitHub release is public.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"repository\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Source repository the release belongs to\",\n \"schema\": {\n \"type\": \"string\",\n \"enum\": [\n \"engineer\",\n \"marketing\",\n \"cli\"\n ],\n \"description\": \"Source repository the release belongs to\"\n }\n },\n {\n \"name\": \"releaseId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Upstream GitHub release id (positive safe integer)\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Upstream GitHub release id (positive safe integer)\",\n \"example\": \"123456789\"\n }\n },\n {\n \"name\": \"locale\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Localization locale\",\n \"schema\": {\n \"type\": \"string\",\n \"enum\": [\n \"ko\"\n ],\n \"description\": \"Localization locale\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/ChangelogLocalizationUpsertBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/ChangelogLocalizationUpsertResult\"\n },\n \"201\": {\n \"$ref\": \"#/components/schemas/ChangelogLocalizationUpsertResult\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"409\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"getDiscounts\": {\n \"operationId\": \"getDiscounts\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/discounts\",\n \"domain\": \"Discounts\",\n \"summary\": \"List discounts\",\n \"description\": \"Paginated discounts proxied live from Polar (page-based pagination, not offset).\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"search\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Forwarded as Polar `query` (case-insensitive)\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Forwarded as Polar `query` (case-insensitive)\"\n }\n },\n {\n \"name\": \"limit\",\n \"in\": \"query\",\n \"required\": false,\n \"schema\": {\n \"type\": \"integer\",\n \"minimum\": 1,\n \"maximum\": 100,\n \"example\": 50\n }\n },\n {\n \"name\": \"page\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Page-based (Polar SDK convention, not offset)\",\n \"schema\": {\n \"type\": \"integer\",\n \"minimum\": 1,\n \"description\": \"Page-based (Polar SDK convention, not offset)\",\n \"example\": 1\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/DiscountList\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n \"postDiscounts\": {\n \"operationId\": \"postDiscounts\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/discounts\",\n \"domain\": \"Discounts\",\n \"summary\": \"Create a discount\",\n \"description\": \"Creates a one-off discount code directly in Polar.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/CreateDiscountBody\"\n },\n \"responseSchemas\": {\n \"201\": {\n \"$ref\": \"#/components/schemas/DiscountDetail\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"getDiscountsExport\": {\n \"operationId\": \"getDiscountsExport\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/discounts/export\",\n \"domain\": \"Discounts\",\n \"summary\": \"Export discounts (CSV)\",\n \"description\": \"Streams discounts created within a date range as a CSV download, filterable by status.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"startDate\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"ISO date, default 30 days ago\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"ISO date, default 30 days ago\",\n \"example\": \"2026-07-01\"\n }\n },\n {\n \"name\": \"endDate\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"ISO date, default today\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"ISO date, default today\"\n }\n },\n {\n \"name\": \"status\",\n \"in\": \"query\",\n \"required\": false,\n \"schema\": {\n \"type\": \"string\",\n \"enum\": [\n \"all\",\n \"active\",\n \"expired\"\n ],\n \"example\": \"all\"\n }\n }\n ],\n \"responseSchemas\": {\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n \"getDiscountsSyncStatus\": {\n \"operationId\": \"getDiscountsSyncStatus\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/discounts/sync-status\",\n \"domain\": \"Discounts\",\n \"summary\": \"Discount Polar sync status\",\n \"description\": \"Counts of synced/pending/errored discount codes, with per-error detail.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/DiscountsSyncStatus\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"patchDiscountsDiscountId\": {\n \"operationId\": \"patchDiscountsDiscountId\",\n \"method\": \"PATCH\",\n \"path\": \"/api/admin/discounts/{discountId}\",\n \"domain\": \"Discounts\",\n \"summary\": \"Update a discount\",\n \"description\": \"Updates a discount in Polar. Response is the raw Polar SDK object (not normalized).\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"discountId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Polar discount id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Polar discount id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/UpdateDiscountBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/UpdateDiscountResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"deleteDiscountsDiscountId\": {\n \"operationId\": \"deleteDiscountsDiscountId\",\n \"method\": \"DELETE\",\n \"path\": \"/api/admin/discounts/{discountId}\",\n \"domain\": \"Discounts\",\n \"summary\": \"Delete a discount\",\n \"description\": \"Deletes a discount in Polar. Idempotent-safe: an already-deleted (404) Polar discount still returns success.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"discountId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Polar discount id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Polar discount id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/DeleteDiscountResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"getDiscountGroups\": {\n \"operationId\": \"getDiscountGroups\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/discount-groups\",\n \"domain\": \"Discounts\",\n \"summary\": \"List discount groups\",\n \"description\": \"Paginated discount-code templates, filterable by name/prefix.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"search\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Alias: `query`. Case-insensitive filter on name/prefix\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Alias: `query`. Case-insensitive filter on name/prefix\"\n }\n },\n {\n \"name\": \"page\",\n \"in\": \"query\",\n \"required\": false,\n \"schema\": {\n \"type\": \"integer\",\n \"minimum\": 1,\n \"example\": 1\n }\n },\n {\n \"name\": \"limit\",\n \"in\": \"query\",\n \"required\": false,\n \"schema\": {\n \"type\": \"integer\",\n \"minimum\": 1,\n \"maximum\": 100,\n \"example\": 50\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/DiscountGroupList\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n \"postDiscountGroups\": {\n \"operationId\": \"postDiscountGroups\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/discount-groups\",\n \"domain\": \"Discounts\",\n \"summary\": \"Create a discount group\",\n \"description\": \"Creates a reusable code template used to bulk-generate discount codes.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/CreateDiscountGroupBody\"\n },\n \"responseSchemas\": {\n \"201\": {\n \"$ref\": \"#/components/schemas/DiscountGroupDetail\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"getDiscountGroupsDiscountGroupId\": {\n \"operationId\": \"getDiscountGroupsDiscountGroupId\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/discount-groups/{discountGroupId}\",\n \"domain\": \"Discounts\",\n \"summary\": \"Get discount group detail\",\n \"description\": \"**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"discountGroupId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Discount group id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"Discount group id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/DiscountGroupDetail\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"patchDiscountGroupsDiscountGroupId\": {\n \"operationId\": \"patchDiscountGroupsDiscountGroupId\",\n \"method\": \"PATCH\",\n \"path\": \"/api/admin/discount-groups/{discountGroupId}\",\n \"domain\": \"Discounts\",\n \"summary\": \"Update a discount group\",\n \"description\": \"Partial update of the code template. Does not retroactively change already-generated codes.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"discountGroupId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Discount group id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"Discount group id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/UpdateDiscountGroupBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/DiscountGroupDetail\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"deleteDiscountGroupsDiscountGroupId\": {\n \"operationId\": \"deleteDiscountGroupsDiscountGroupId\",\n \"method\": \"DELETE\",\n \"path\": \"/api/admin/discount-groups/{discountGroupId}\",\n \"domain\": \"Discounts\",\n \"summary\": \"Delete a discount group\",\n \"description\": \"Soft-deletes all child discount codes (deactivates), deletes their Polar counterparts (background for >100), then deletes the group.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"discountGroupId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Discount group id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"Discount group id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/DeleteDiscountGroupResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"postDiscountGroupsDiscountGroupIdCodes\": {\n \"operationId\": \"postDiscountGroupsDiscountGroupIdCodes\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/discount-groups/{discountGroupId}/codes\",\n \"domain\": \"Discounts\",\n \"summary\": \"Bulk-generate discount codes for a group\",\n \"description\": \"Generates 1-100 codes from the group template, inserts them, and syncs each to Polar (rate-limited, ~100ms between calls; batches beyond 100 codes sync in the background). Sensitive/rate-limited operation.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"discountGroupId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Discount group id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"Discount group id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/GenerateGroupCodesBody\"\n },\n \"responseSchemas\": {\n \"201\": {\n \"$ref\": \"#/components/schemas/GenerateGroupCodesResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"getInvites\": {\n \"operationId\": \"getInvites\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/invites\",\n \"domain\": \"Invites\",\n \"summary\": \"List pending admin invites\",\n \"description\": \"Paginated pending invites, searchable by invite/inviter email or name. Requires `settings:view` (session).\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"search\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Case-insensitive filter\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Case-insensitive filter\"\n }\n },\n {\n \"name\": \"limit\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Page size (default 50, max 100)\",\n \"schema\": {\n \"type\": \"integer\",\n \"minimum\": 1,\n \"maximum\": 100,\n \"description\": \"Page size (default 50, max 100)\",\n \"example\": 50\n }\n },\n {\n \"name\": \"offset\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Rows to skip (default 0)\",\n \"schema\": {\n \"type\": [\n \"integer\",\n \"null\"\n ],\n \"minimum\": 0,\n \"description\": \"Rows to skip (default 0)\",\n \"example\": 0\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/InviteList\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n \"postInvites\": {\n \"operationId\": \"postInvites\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/invites\",\n \"domain\": \"Invites\",\n \"summary\": \"Create an admin invite\",\n \"description\": \"Creates a pending invite and emails the invite link. Requires `settings:edit` (session) and super-admin. The plaintext token is cleared from the DB right after the email sends.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/CreateInviteBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/CreateInviteResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"getInvitesValidate\": {\n \"operationId\": \"getInvitesValidate\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/invites/validate\",\n \"domain\": \"Invites\",\n \"summary\": \"Validate an invite token\",\n \"description\": \"Public endpoint used by the accept-invite page. Rate limited (10 req/min/IP).\\n\\n**Auth:** public endpoint \u2014 no admin authentication required.\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"public\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"token\",\n \"in\": \"query\",\n \"required\": true,\n \"description\": \"Plaintext invite token from the email link\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Plaintext invite token from the email link\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/ValidateInviteResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/ValidateInviteErrorResponse\"\n },\n \"429\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": true\n },\n \"getInvitesInviteId\": {\n \"operationId\": \"getInvitesInviteId\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/invites/{inviteId}\",\n \"domain\": \"Invites\",\n \"summary\": \"Get an admin invite\",\n \"description\": \"Full invite record. Requires `settings:view` (session).\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"inviteId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Admin invite id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"Admin invite id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/InviteDetail\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"deleteInvitesInviteId\": {\n \"operationId\": \"deleteInvitesInviteId\",\n \"method\": \"DELETE\",\n \"path\": \"/api/admin/invites/{inviteId}\",\n \"domain\": \"Invites\",\n \"summary\": \"Revoke an admin invite\",\n \"description\": \"Revokes a pending invite. Requires `settings:delete` (session).\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"inviteId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Admin invite id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"Admin invite id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/RevokeInviteResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"postInvitesInviteIdResend\": {\n \"operationId\": \"postInvitesInviteIdResend\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/invites/{inviteId}/resend\",\n \"domain\": \"Invites\",\n \"summary\": \"Resend an admin invite\",\n \"description\": \"Generates a new token, extends expiry, and re-sends the invite email. Requires `settings:edit` (session) and super-admin.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"inviteId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Admin invite id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"Admin invite id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/ResendInviteResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"postInvitesAccept\": {\n \"operationId\": \"postInvitesAccept\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/invites/accept\",\n \"domain\": \"Invites\",\n \"summary\": \"Accept an admin invite\",\n \"description\": \"Public endpoint (no admin auth) \u2014 the signed-in user accepts a pending invite for their own email and is upgraded to admin. Rate limited (3 req/15min/IP). Sets a session cookie on success.\\n\\n**Auth:** public endpoint \u2014 no admin authentication required.\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"public\",\n \"requiredScopes\": [],\n \"parameters\": [],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/AcceptInviteBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/AcceptInviteResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AcceptInviteErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AcceptInviteErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AcceptInviteErrorResponse\"\n },\n \"429\": {\n \"$ref\": \"#/components/schemas/AcceptInviteErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": true\n },\n \"getLoyaltyStats\": {\n \"operationId\": \"getLoyaltyStats\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/loyalty/stats\",\n \"domain\": \"Loyalty\",\n \"summary\": \"Loyalty offer stats\",\n \"description\": \"Eligible-user count, claim counts by status, and claimed revenue by currency for the Engineer\u2192Marketing/Combo loyalty upgrade offer.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/LoyaltyStats\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"postLoyaltyBlastEmail\": {\n \"operationId\": \"postLoyaltyBlastEmail\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/loyalty/blast-email\",\n \"domain\": \"Loyalty\",\n \"summary\": \"Send loyalty offer emails\",\n \"description\": \"Bulk-sends the loyalty upgrade offer email to eligible users (completed Engineer Kit order, no active Marketing Kit/Combo license, no existing claim). In test mode (default), sends exactly one email to `testEmail` and creates no claim record. In live mode, sends up to `batchSize` emails and creates a `pending` claim per successful send \u2014 this reaches real customers and cannot be undone once sent.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/LoyaltyBlastEmailBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/LoyaltyBlastEmailResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"getOrderFollowups\": {\n \"operationId\": \"getOrderFollowups\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/order-followups\",\n \"domain\": \"Order Follow-ups\",\n \"summary\": \"List pending order follow-ups\",\n \"description\": \"Scheduled/pending follow-up events plus unresolved payment-reconciliation cases, most-recently-due first.\\n\\n**Required scope(s):** `order-followups:read`\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [\n \"order-followups:read\"\n ],\n \"parameters\": [\n {\n \"name\": \"limit\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Default 50, max 100\",\n \"schema\": {\n \"type\": \"integer\",\n \"minimum\": 1,\n \"maximum\": 100,\n \"description\": \"Default 50, max 100\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/OrderFollowupListResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n \"postOrderFollowupsEventIdRetry\": {\n \"operationId\": \"postOrderFollowupsEventIdRetry\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/order-followups/{eventId}/retry\",\n \"domain\": \"Order Follow-ups\",\n \"summary\": \"Retry a follow-up event\",\n \"description\": \"Resets a follow-up event to `scheduled` (due now) for immediate re-processing. Requires an `Idempotency-Key` request header (max 256 chars). Replaying the same actor + action + key returns the original result without re-mutating.\\n\\n**Required scope(s):** `order-followups:write`\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": true,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [\n \"order-followups:write\"\n ],\n \"parameters\": [\n {\n \"name\": \"eventId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Follow-up event id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"Follow-up event id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/OrderFollowupRetryBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/OrderFollowupRetryResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"409\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"postPaymentReconciliationCasesCaseIdResolve\": {\n \"operationId\": \"postPaymentReconciliationCasesCaseIdResolve\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/payment-reconciliation-cases/{caseId}/resolve\",\n \"domain\": \"Reconciliation\",\n \"summary\": \"Resolve a payment reconciliation case\",\n \"description\": \"Marks a payment reconciliation case resolved. Idempotent if already resolved. Requires an `Idempotency-Key` request header (max 256 chars). Replaying the same actor + action + key returns the original result without re-mutating.\\n\\n**Required scope(s):** `order-followups:write`\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": true,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [\n \"order-followups:write\"\n ],\n \"parameters\": [\n {\n \"name\": \"caseId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Payment reconciliation case id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"Payment reconciliation case id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/ReconciliationResolveBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/ReconciliationResolveResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"409\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"getOrders\": {\n \"operationId\": \"getOrders\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/orders\",\n \"domain\": \"Orders\",\n \"summary\": \"List orders\",\n \"description\": \"Paginated orders with buyer email/name, filterable by provider/status/search.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"search\",\n \"in\": \"query\",\n \"required\": false,\n \"schema\": {\n \"type\": \"string\"\n }\n },\n {\n \"name\": \"provider\",\n \"in\": \"query\",\n \"required\": false,\n \"schema\": {\n \"type\": \"string\",\n \"enum\": [\n \"polar\",\n \"sepay\",\n \"admin\"\n ]\n }\n },\n {\n \"name\": \"status\",\n \"in\": \"query\",\n \"required\": false,\n \"schema\": {\n \"type\": \"string\"\n }\n },\n {\n \"name\": \"limit\",\n \"in\": \"query\",\n \"required\": false,\n \"schema\": {\n \"type\": \"integer\",\n \"minimum\": 1,\n \"maximum\": 100,\n \"example\": 50\n }\n },\n {\n \"name\": \"offset\",\n \"in\": \"query\",\n \"required\": false,\n \"schema\": {\n \"type\": [\n \"integer\",\n \"null\"\n ],\n \"minimum\": 0,\n \"example\": 0\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/OrderList\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n \"postOrders\": {\n \"operationId\": \"postOrders\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/orders\",\n \"domain\": \"Orders\",\n \"summary\": \"Create a zero-dollar admin comp order\",\n \"description\": \"Creates or reuses a recipient user, mints one `paymentProvider: admin` order at amount `0`, and runs normal fulfillment with token-fenced staged activation. Idempotent via `requestId` (exact actor-bound replay returns 200). Session callers must be super-admin; API keys need `orders:comp` or `admin:full` \u2014 `orders:write` alone is rejected.\\n\\n**Required scope(s):** `orders:comp`\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [\n \"orders:comp\"\n ],\n \"parameters\": [],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/CreateCompOrderBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/CreateCompOrderResponse\"\n },\n \"201\": {\n \"$ref\": \"#/components/schemas/CreateCompOrderResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"409\": {\n \"$ref\": \"#/components/schemas/CompOrderErrorResponse\"\n },\n \"502\": {\n \"$ref\": \"#/components/schemas/CompOrderErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"getOrdersStats\": {\n \"operationId\": \"getOrdersStats\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/orders/stats\",\n \"domain\": \"Orders\",\n \"summary\": \"Order statistics\",\n \"description\": \"Aggregate order counts and revenue, filterable by date/status/provider.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/OrdersStats\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"getOrdersExport\": {\n \"operationId\": \"getOrdersExport\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/orders/export\",\n \"domain\": \"Orders\",\n \"summary\": \"Export orders (CSV)\",\n \"description\": \"Streams all matching orders as a CSV download.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [],\n \"responseSchemas\": {\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"getOrdersOrderId\": {\n \"operationId\": \"getOrdersOrderId\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/orders/{orderId}\",\n \"domain\": \"Orders\",\n \"summary\": \"Get order detail\",\n \"description\": \"Full order record with licenses, commission, and discount redemptions.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"orderId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Order id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Order id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/OrderDetail\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"getOrdersOrderIdPdf\": {\n \"operationId\": \"getOrdersOrderIdPdf\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/orders/{orderId}/pdf\",\n \"domain\": \"Orders\",\n \"summary\": \"Order invoice (PDF)\",\n \"description\": \"Renders the order invoice as a PDF download.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"orderId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Order id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Order id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"getOrdersOrderIdFollowUps\": {\n \"operationId\": \"getOrdersOrderIdFollowUps\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/orders/{orderId}/follow-ups\",\n \"domain\": \"Orders\",\n \"summary\": \"Get order follow-up timeline\",\n \"description\": \"**Required scope(s):** `order-followups:read`\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [\n \"order-followups:read\"\n ],\n \"parameters\": [\n {\n \"name\": \"orderId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Order id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Order id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/OrderActionResult\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"postOrdersOrderIdFollowUpsDisable\": {\n \"operationId\": \"postOrdersOrderIdFollowUpsDisable\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/orders/{orderId}/follow-ups/disable\",\n \"domain\": \"Orders\",\n \"summary\": \"Disable order follow-ups\",\n \"description\": \"**Required scope(s):** `order-followups:write`\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [\n \"order-followups:write\"\n ],\n \"parameters\": [\n {\n \"name\": \"orderId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Order id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Order id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/FollowUpStateBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/OrderActionResult\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"409\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"postOrdersOrderIdFollowUpsReconcile\": {\n \"operationId\": \"postOrdersOrderIdFollowUpsReconcile\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/orders/{orderId}/follow-ups/reconcile\",\n \"domain\": \"Orders\",\n \"summary\": \"Reconcile order follow-ups\",\n \"description\": \"**Required scope(s):** `order-followups:write`\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [\n \"order-followups:write\"\n ],\n \"parameters\": [\n {\n \"name\": \"orderId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Order id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Order id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/FollowUpStateBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/OrderActionResult\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"409\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"postOrdersOrderIdComplete\": {\n \"operationId\": \"postOrdersOrderIdComplete\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/orders/{orderId}/complete\",\n \"domain\": \"Orders\",\n \"summary\": \"Complete an order\",\n \"description\": \"Manually marks an order paid/completed and runs fulfillment.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"orderId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Order id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Order id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/OrderActionResult\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"postOrdersOrderIdRefund\": {\n \"operationId\": \"postOrdersOrderIdRefund\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/orders/{orderId}/refund\",\n \"domain\": \"Orders\",\n \"summary\": \"Refund an order\",\n \"description\": \"Issues a refund and revokes access.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"orderId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Order id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Order id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/RefundBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/OrderActionResult\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"postOrdersOrderIdRefundKeepAccess\": {\n \"operationId\": \"postOrdersOrderIdRefundKeepAccess\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/orders/{orderId}/refund-keep-access\",\n \"domain\": \"Orders\",\n \"summary\": \"Refund an order (keep access)\",\n \"description\": \"Issues a refund but preserves the buyer's product access.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"orderId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Order id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Order id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/RefundBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/OrderActionResult\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"postOrdersOrderIdResendEmails\": {\n \"operationId\": \"postOrdersOrderIdResendEmails\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/orders/{orderId}/resend-emails\",\n \"domain\": \"Orders\",\n \"summary\": \"Resend order emails\",\n \"description\": \"**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"orderId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Order id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Order id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/ResendEmailsBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/OrderActionResult\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"postOrdersOrderIdResendGithubInvite\": {\n \"operationId\": \"postOrdersOrderIdResendGithubInvite\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/orders/{orderId}/resend-github-invite\",\n \"domain\": \"Orders\",\n \"summary\": \"Resend GitHub invite for an order\",\n \"description\": \"**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"orderId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Order id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Order id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/OrderActionResult\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"409\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"postOrdersOrderIdSwitchProduct\": {\n \"operationId\": \"postOrdersOrderIdSwitchProduct\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/orders/{orderId}/switch-product\",\n \"domain\": \"Orders\",\n \"summary\": \"Switch order product\",\n \"description\": \"Changes the purchased product type and re-runs entitlement/fulfillment.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"orderId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Order id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Order id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/SwitchProductBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/OrderActionResult\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"getPayouts\": {\n \"operationId\": \"getPayouts\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/payouts\",\n \"domain\": \"Payouts\",\n \"summary\": \"List payouts (with decrypted payment details)\",\n \"description\": \"Session-only. Same data source as `GET /payout-requests`; payment details are decrypted per-row.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"session_only\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"search\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Matches request id (uuid prefix), user email/name/github username\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Matches request id (uuid prefix), user email/name/github username\"\n }\n },\n {\n \"name\": \"limit\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Page size (default 50, max 100)\",\n \"schema\": {\n \"type\": \"integer\",\n \"minimum\": 1,\n \"maximum\": 100,\n \"description\": \"Page size (default 50, max 100)\"\n }\n },\n {\n \"name\": \"offset\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Rows to skip (default 0)\",\n \"schema\": {\n \"type\": [\n \"integer\",\n \"null\"\n ],\n \"minimum\": 0,\n \"description\": \"Rows to skip (default 0)\"\n }\n },\n {\n \"name\": \"status\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Payout request lifecycle status\",\n \"schema\": {\n \"type\": \"string\",\n \"enum\": [\n \"pending\",\n \"processing\",\n \"completed\",\n \"failed\"\n ],\n \"description\": \"Payout request lifecycle status\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/PayoutRequestListResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n \"getPayoutsExport\": {\n \"operationId\": \"getPayoutsExport\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/payouts/export\",\n \"domain\": \"Payouts\",\n \"summary\": \"Export payouts (CSV)\",\n \"description\": \"Streams payout requests in the date range, with withholding breakdown, as a CSV download.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"session_only\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"startDate\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"ISO date, inclusive (default: 30 days ago)\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"ISO date, inclusive (default: 30 days ago)\"\n }\n },\n {\n \"name\": \"endDate\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"ISO date, inclusive (default: today)\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"ISO date, inclusive (default: today)\"\n }\n },\n {\n \"name\": \"status\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Default \\\"all\\\"\",\n \"schema\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"enum\": [\n \"pending\",\n \"processing\",\n \"completed\",\n \"failed\"\n ],\n \"description\": \"Payout request lifecycle status\"\n },\n {\n \"type\": \"string\",\n \"enum\": [\n \"all\"\n ]\n }\n ],\n \"description\": \"Default \\\"all\\\"\"\n }\n }\n ],\n \"responseSchemas\": {\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n \"getPayoutsExportDetailed\": {\n \"operationId\": \"getPayoutsExportDetailed\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/payouts/export-detailed\",\n \"domain\": \"Payouts\",\n \"summary\": \"Export payouts, detailed by commission (CSV)\",\n \"description\": \"Streams one row per commission per referrer (with order + customer detail) as a CSV download.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"session_only\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"status\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Default \\\"all\\\"\",\n \"schema\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"enum\": [\n \"pending\",\n \"processing\",\n \"completed\",\n \"failed\"\n ],\n \"description\": \"Payout request lifecycle status\"\n },\n {\n \"type\": \"string\",\n \"enum\": [\n \"all\"\n ]\n }\n ],\n \"description\": \"Default \\\"all\\\"\"\n }\n }\n ],\n \"responseSchemas\": {\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n \"getPayoutRequests\": {\n \"operationId\": \"getPayoutRequests\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/payout-requests\",\n \"domain\": \"Payouts\",\n \"summary\": \"List payout requests (with decrypted payment details)\",\n \"description\": \"Session-only. Same data source as `GET /payouts`.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"session_only\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"search\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Matches request id (uuid prefix), user email/name/github username\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Matches request id (uuid prefix), user email/name/github username\"\n }\n },\n {\n \"name\": \"limit\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Page size (default 50, max 100)\",\n \"schema\": {\n \"type\": \"integer\",\n \"minimum\": 1,\n \"maximum\": 100,\n \"description\": \"Page size (default 50, max 100)\"\n }\n },\n {\n \"name\": \"offset\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Rows to skip (default 0)\",\n \"schema\": {\n \"type\": [\n \"integer\",\n \"null\"\n ],\n \"minimum\": 0,\n \"description\": \"Rows to skip (default 0)\"\n }\n },\n {\n \"name\": \"status\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Payout request lifecycle status\",\n \"schema\": {\n \"type\": \"string\",\n \"enum\": [\n \"pending\",\n \"processing\",\n \"completed\",\n \"failed\"\n ],\n \"description\": \"Payout request lifecycle status\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/PayoutRequestListResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n \"patchPayoutRequestsRequestId\": {\n \"operationId\": \"patchPayoutRequestsRequestId\",\n \"method\": \"PATCH\",\n \"path\": \"/api/admin/payout-requests/{requestId}\",\n \"domain\": \"Payouts\",\n \"summary\": \"Approve, reject, or complete a payout request\",\n \"description\": \"Session-only. `approve` (pending\u2192processing), `reject` (pending/processing\u2192failed, requires reason), `complete` (processing\u2192completed, marks matching commissions paid). Sends the corresponding notification email and may auto-reject other over-balance requests for the same user.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"session_only\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"requestId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Payout request id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"Payout request id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/PayoutRequestActionBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/PayoutRequestActionResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"getPayoutRequestsRequestIdExportCsv\": {\n \"operationId\": \"getPayoutRequestsRequestIdExportCsv\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/payout-requests/{requestId}/export-csv\",\n \"domain\": \"Payouts\",\n \"summary\": \"Export a single payout request (CSV)\",\n \"description\": \"Streams the matched commissions + summary (incl. VN bank-transfer 10% tax breakdown) for one payout request as a CSV download.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"session_only\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"requestId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Payout request id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"Payout request id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"postPayoutVneidRequests\": {\n \"operationId\": \"postPayoutVneidRequests\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/payout-vneid-requests\",\n \"domain\": \"Payouts\",\n \"summary\": \"Send VNeID confirmation requests\",\n \"description\": \"Session-only. Bulk-sends a VNeID/withholding confirmation email per payout request (via the requester's saved PayPal profile); marks the profile withholding status \\\"projected_paypal_15\\\" pending confirmation.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"session_only\",\n \"requiredScopes\": [],\n \"parameters\": [],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/PayoutVneidRequestBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/PayoutVneidRequestResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"getReferralsDiagnose\": {\n \"operationId\": \"getReferralsDiagnose\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/referrals/diagnose\",\n \"domain\": \"Referrals\",\n \"summary\": \"Diagnose referral tracking issues\",\n \"description\": \"Scans the last 30 days for suspicious patterns: high-click/zero-conversion codes, orders missing commissions, and clicks not attributed to an order.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/ReferralsDiagnoseResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"getReferralsExport\": {\n \"operationId\": \"getReferralsExport\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/referrals/export\",\n \"domain\": \"Referrals\",\n \"summary\": \"Export referral stats (CSV)\",\n \"description\": \"Streams per-referrer click/conversion/commission totals for a date range as a CSV download.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"startDate\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"ISO date, default 30 days ago\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"ISO date, default 30 days ago\",\n \"example\": \"2026-07-01\"\n }\n },\n {\n \"name\": \"endDate\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"ISO date, default today\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"ISO date, default today\"\n }\n }\n ],\n \"responseSchemas\": {\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n \"getReferralsStats\": {\n \"operationId\": \"getReferralsStats\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/referrals/stats\",\n \"domain\": \"Referrals\",\n \"summary\": \"Referral program statistics\",\n \"description\": \"KPIs, daily time series, top referrers, commission breakdown, and VND exchange rate for a date range.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"startDate\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"ISO date, default 30 days ago\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"ISO date, default 30 days ago\",\n \"example\": \"2026-07-01\"\n }\n },\n {\n \"name\": \"endDate\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"ISO date, default today\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"ISO date, default today\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/ReferralsStatsResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n \"getReferralsTiersStats\": {\n \"operationId\": \"getReferralsTiersStats\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/referrals/tiers/stats\",\n \"domain\": \"Referrals\",\n \"summary\": \"Referral tier distribution\",\n \"description\": \"User count and percentage per referral tier, plus manual \\\"Partner\\\" (custom commission rate) count.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/ReferralsTiersStatsResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"getReferralsUserIdStats\": {\n \"operationId\": \"getReferralsUserIdStats\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/referrals/{userId}/stats\",\n \"domain\": \"Referrals\",\n \"summary\": \"Get a single referrer's stats\",\n \"description\": \"Referrer profile/tier, referral codes, KPIs, commission breakdown, recent referred orders, and payouts for a date range.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"userId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Referrer user id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"Referrer user id\"\n }\n },\n {\n \"name\": \"startDate\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"ISO date, default 30 days ago\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"ISO date, default 30 days ago\",\n \"example\": \"2026-07-01\"\n }\n },\n {\n \"name\": \"endDate\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"ISO date, default today\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"ISO date, default today\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/ReferralUserStatsResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n \"getTiersManual\": {\n \"operationId\": \"getTiersManual\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/tiers/manual\",\n \"domain\": \"Referrals\",\n \"summary\": \"List manual-only referral tiers\",\n \"description\": \"Tiers not assigned automatically by revenue (`minRevenueCents < 0`), e.g. hand-assigned partner tiers.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/ManualTiersResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"getReferralAttributions\": {\n \"operationId\": \"getReferralAttributions\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/referral-attributions\",\n \"domain\": \"Discount referral attribution\",\n \"summary\": \"List discount referral attributions\",\n \"description\": \"List attribution mappings (discount code/group \u2192 beneficiary). Requires DISCOUNT_REFERRAL_ATTRIBUTION_ENABLED=true.\\n\\n**Required scope(s):** `referrals:read`\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [\n \"referrals:read\"\n ],\n \"parameters\": [],\n \"responseSchemas\": {\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"postReferralAttributions\": {\n \"operationId\": \"postReferralAttributions\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/referral-attributions\",\n \"domain\": \"Discount referral attribution\",\n \"summary\": \"Create discount referral attribution\",\n \"description\": \"Link a discount code or group to a beneficiary at a rate (1\u2013100). Use replace=true to supersede an active mapping.\\n\\n**Required scope(s):** `referrals:write`\",\n \"isDestructive\": false,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [\n \"referrals:write\"\n ],\n \"parameters\": [],\n \"responseSchemas\": {\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"409\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"postReferralAttributionsPreview\": {\n \"operationId\": \"postReferralAttributionsPreview\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/referral-attributions/preview\",\n \"domain\": \"Discount referral attribution\",\n \"summary\": \"Preview attribution link\",\n \"description\": \"Dry-run beneficiary + conflict check before create.\\n\\n**Required scope(s):** `referrals:write`\",\n \"isDestructive\": false,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [\n \"referrals:write\"\n ],\n \"parameters\": [],\n \"responseSchemas\": {\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"getReferralAttributionsId\": {\n \"operationId\": \"getReferralAttributionsId\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/referral-attributions/{id}\",\n \"domain\": \"Discount referral attribution\",\n \"summary\": \"Get attribution by id\",\n \"description\": \"**Required scope(s):** `referrals:read`\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [\n \"referrals:read\"\n ],\n \"parameters\": [],\n \"responseSchemas\": {\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"patchReferralAttributionsId\": {\n \"operationId\": \"patchReferralAttributionsId\",\n \"method\": \"PATCH\",\n \"path\": \"/api/admin/referral-attributions/{id}\",\n \"domain\": \"Discount referral attribution\",\n \"summary\": \"Supersede attribution\",\n \"description\": \"Deactivates the active row and inserts a new version.\\n\\n**Required scope(s):** `referrals:write`\",\n \"isDestructive\": false,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [\n \"referrals:write\"\n ],\n \"parameters\": [],\n \"responseSchemas\": {\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"postReferralAttributionsIdDeactivate\": {\n \"operationId\": \"postReferralAttributionsIdDeactivate\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/referral-attributions/{id}/deactivate\",\n \"domain\": \"Discount referral attribution\",\n \"summary\": \"Deactivate attribution\",\n \"description\": \"**Required scope(s):** `referrals:write`\",\n \"isDestructive\": false,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [\n \"referrals:write\"\n ],\n \"parameters\": [],\n \"responseSchemas\": {\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"getReferralLedger\": {\n \"operationId\": \"getReferralLedger\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/referral-ledger\",\n \"domain\": \"Discount referral attribution\",\n \"summary\": \"List discount-attributed commissions (read-only)\",\n \"description\": \"Ledger rows where attributionId is set. No approve/reverse in v1.\\n\\n**Required scope(s):** `referrals:read`\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [\n \"referrals:read\"\n ],\n \"parameters\": [],\n \"responseSchemas\": {\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"getUsersSearch\": {\n \"operationId\": \"getUsersSearch\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/users/search\",\n \"domain\": \"Discount referral attribution\",\n \"summary\": \"Search users for attribution beneficiary\",\n \"description\": \"Typeahead by email, name, or exact user id.\\n\\n**Required scope(s):** `referrals:write`\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [\n \"referrals:write\"\n ],\n \"parameters\": [],\n \"responseSchemas\": {\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"getRevenue\": {\n \"operationId\": \"getRevenue\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/revenue\",\n \"domain\": \"Revenue\",\n \"summary\": \"Revenue overview\",\n \"description\": \"Aggregate revenue KPIs, daily time series, and provider/product breakdowns for a date range.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"startDate\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"ISO date, inclusive (default: 30 days ago)\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"ISO date, inclusive (default: 30 days ago)\",\n \"example\": \"2026-01-01\"\n }\n },\n {\n \"name\": \"endDate\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"ISO date, inclusive (default: today)\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"ISO date, inclusive (default: today)\",\n \"example\": \"2026-01-31\"\n }\n },\n {\n \"name\": \"product\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Filter by high-level product (maps to base + _bf + team_* variants)\",\n \"schema\": {\n \"type\": \"string\",\n \"enum\": [\n \"engineer_kit\",\n \"marketing_kit\",\n \"combo\"\n ],\n \"description\": \"Filter by high-level product (maps to base + _bf + team_* variants)\"\n }\n },\n {\n \"name\": \"includeTeam\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Include team_* variants when `product` is set (default true)\",\n \"schema\": {\n \"type\": \"string\",\n \"enum\": [\n \"true\",\n \"false\"\n ],\n \"description\": \"Include team_* variants when `product` is set (default true)\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/RevenueStats\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n \"getRevenueExport\": {\n \"operationId\": \"getRevenueExport\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/revenue/export\",\n \"domain\": \"Revenue\",\n \"summary\": \"Export revenue (CSV)\",\n \"description\": \"Streams completed orders in the date range, with validation status and Polar fee breakdown, as a CSV download.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"startDate\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"ISO date, inclusive (default: 30 days ago)\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"ISO date, inclusive (default: 30 days ago)\"\n }\n },\n {\n \"name\": \"endDate\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"ISO date, inclusive (default: today)\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"ISO date, inclusive (default: today)\"\n }\n }\n ],\n \"responseSchemas\": {\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n \"getRevenueMaintainer\": {\n \"operationId\": \"getRevenueMaintainer\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/revenue/maintainer\",\n \"domain\": \"Revenue\",\n \"summary\": \"Maintainer earnings\",\n \"description\": \"Computes a maintainer's revenue-share earnings (product breakdown, costs, tax) for a date range.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"id\",\n \"in\": \"query\",\n \"required\": true,\n \"description\": \"Maintainer id (required)\",\n \"schema\": {\n \"type\": \"string\",\n \"enum\": [\n \"cke\",\n \"ckm\"\n ],\n \"description\": \"Maintainer id (required)\"\n }\n },\n {\n \"name\": \"startDate\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"ISO date (default: start of current month)\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"ISO date (default: start of current month)\"\n }\n },\n {\n \"name\": \"endDate\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"ISO date (default: end of current month)\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"ISO date (default: end of current month)\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/RevenueMaintainerEarningsResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n \"getRevenueMonthlyCosts\": {\n \"operationId\": \"getRevenueMonthlyCosts\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/revenue/monthly-costs\",\n \"domain\": \"Revenue\",\n \"summary\": \"List monthly costs\",\n \"description\": \"Manual monthly operating costs used for maintainer revenue-share cost allocation, optionally filtered by yearMonth.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"yearMonth\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Filter by YYYY-MM\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Filter by YYYY-MM\",\n \"example\": \"2026-01\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/RevenueMonthlyCostListResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n \"postRevenueMonthlyCosts\": {\n \"operationId\": \"postRevenueMonthlyCosts\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/revenue/monthly-costs\",\n \"domain\": \"Revenue\",\n \"summary\": \"Create a monthly cost\",\n \"description\": \"**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/RevenueCreateMonthlyCostBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/RevenueMonthlyCostResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"putRevenueMonthlyCostsId\": {\n \"operationId\": \"putRevenueMonthlyCostsId\",\n \"method\": \"PUT\",\n \"path\": \"/api/admin/revenue/monthly-costs/{id}\",\n \"domain\": \"Revenue\",\n \"summary\": \"Update a monthly cost\",\n \"description\": \"**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"id\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Monthly cost id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"Monthly cost id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/RevenueUpdateMonthlyCostBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/RevenueMonthlyCostResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"deleteRevenueMonthlyCostsId\": {\n \"operationId\": \"deleteRevenueMonthlyCostsId\",\n \"method\": \"DELETE\",\n \"path\": \"/api/admin/revenue/monthly-costs/{id}\",\n \"domain\": \"Revenue\",\n \"summary\": \"Delete a monthly cost\",\n \"description\": \"Hard-deletes the cost row.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"id\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Monthly cost id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"Monthly cost id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/RevenueMonthlyCostDeleteResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"postRevenueReports\": {\n \"operationId\": \"postRevenueReports\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/revenue/reports\",\n \"domain\": \"Revenue\",\n \"summary\": \"Generate maintainer report(s)\",\n \"description\": \"Manually triggers maintainer revenue-share report generation/email for one or all maintainers.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/RevenueGenerateReportsBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/RevenueGenerateReportsResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"getUsersLookup\": {\n \"operationId\": \"getUsersLookup\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/users/lookup\",\n \"domain\": \"Users\",\n \"summary\": \"Lookup user by email for comp orders\",\n \"description\": \"Resolves a normalized email to missing / live / merged-target identity, active licenses, and product-family overlap. Merged aliases resolve to the surviving target (`mergedIntoUserId` is null in the response).\\n\\n**Required scope(s):** `users:read`\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [\n \"users:read\"\n ],\n \"parameters\": [\n {\n \"name\": \"email\",\n \"in\": \"query\",\n \"required\": true,\n \"description\": \"Recipient email (normalized to lowercase)\",\n \"schema\": {\n \"type\": \"string\",\n \"maxLength\": 254,\n \"format\": \"email\",\n \"description\": \"Recipient email (normalized to lowercase)\",\n \"example\": \"user@example.com\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/UserLookupResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n \"getUsersUserId\": {\n \"operationId\": \"getUsersUserId\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/users/{userId}\",\n \"domain\": \"Users\",\n \"summary\": \"Get user detail\",\n \"description\": \"User record with order totals, licenses, and AgentKit App waitlist reservations.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"userId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"User id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"User id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/UserDetail\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"patchUsersUserId\": {\n \"operationId\": \"patchUsersUserId\",\n \"method\": \"PATCH\",\n \"path\": \"/api/admin/users/{userId}\",\n \"domain\": \"Users\",\n \"summary\": \"Update a user\",\n \"description\": \"Updates name and/or email. Blocked-domain email validation is intentionally skipped for admin corrections.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"userId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"User id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"User id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/UpdateUserBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/UpdateUserResult\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"409\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"deleteUsersUserIdOrphan\": {\n \"operationId\": \"deleteUsersUserIdOrphan\",\n \"method\": \"DELETE\",\n \"path\": \"/api/admin/users/{userId}/orphan\",\n \"domain\": \"Users\",\n \"summary\": \"Delete an orphan user\",\n \"description\": \"Hard-deletes a user with no orders/licenses/referral activity/dependent rows, freeing its email. Refuses admin/super-admin accounts.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"userId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"User id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"User id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/OrphanDeleteBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/OrphanDeleteResult\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"409\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"getUsersExport\": {\n \"operationId\": \"getUsersExport\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/users/export\",\n \"domain\": \"Users\",\n \"summary\": \"Export users (CSV)\",\n \"description\": \"Streams users created within the date range (default last 30 days) as a CSV download.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"startDate\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"ISO date, defaults to 30 days ago\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"ISO date, defaults to 30 days ago\",\n \"example\": \"2026-07-01\"\n }\n },\n {\n \"name\": \"endDate\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"ISO date, defaults to today\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"ISO date, defaults to today\",\n \"example\": \"2026-08-01\"\n }\n },\n {\n \"name\": \"search\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Matches email/name/GitHub username\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Matches email/name/GitHub username\"\n }\n }\n ],\n \"responseSchemas\": {\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n \"getUsersStats\": {\n \"operationId\": \"getUsersStats\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/users/stats\",\n \"domain\": \"Users\",\n \"summary\": \"User statistics\",\n \"description\": \"Aggregate signup/spend/tier/GitHub-linkage stats, filterable by date range.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"start\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"ISO date filter start\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"ISO date filter start\"\n }\n },\n {\n \"name\": \"end\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"ISO date filter end\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"ISO date filter end\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/UsersStats\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n \"patchUsersUserIdGithubUsername\": {\n \"operationId\": \"patchUsersUserIdGithubUsername\",\n \"method\": \"PATCH\",\n \"path\": \"/api/admin/users/{userId}/github-username\",\n \"domain\": \"Users\",\n \"summary\": \"Change a user's GitHub username (deprecated)\",\n \"description\": \"Deprecated \u2014 use `PATCH /api/admin/licenses/{licenseId}/github-username` instead. Revokes access under the old username and re-grants under the new one across all active licenses; `cascadeMode` controls whether the change also propagates to per-license `githubUsername`.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"userId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"User id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"User id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/GithubUsernameBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/GithubUsernameUpdateResult\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"patchUsersUserIdRates\": {\n \"operationId\": \"patchUsersUserIdRates\",\n \"method\": \"PATCH\",\n \"path\": \"/api/admin/users/{userId}/rates\",\n \"domain\": \"Users\",\n \"summary\": \"Set custom commission/discount rates\",\n \"description\": \"**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"userId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"User id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"User id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/RatesBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/RatesUpdateResult\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"patchUsersUserIdTier\": {\n \"operationId\": \"patchUsersUserIdTier\",\n \"method\": \"PATCH\",\n \"path\": \"/api/admin/users/{userId}/tier\",\n \"domain\": \"Users\",\n \"summary\": \"Set a user's manual referral tier\",\n \"description\": \"Only manual-only (CK) tiers \u2014 those with minRevenueCents < 0 \u2014 may be assigned.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"userId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"User id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"User id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/TierBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/TierUpdateResult\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"postUsersUserIdClaimEmail\": {\n \"operationId\": \"postUsersUserIdClaimEmail\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/users/{userId}/claim-email\",\n \"domain\": \"Users\",\n \"summary\": \"Claim an email from an orphan account\",\n \"description\": \"Atomically transfers an email held by a \\\"mergeable\\\" orphan (no orders/licenses/settled commissions/payout profile) onto this user, cancelling the orphan's pending commissions and deleting it.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"userId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"User id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"User id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/ClaimEmailBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/ClaimEmailResult\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"409\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"postUsersUserIdMerge\": {\n \"operationId\": \"postUsersUserIdMerge\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/users/{userId}/merge\",\n \"domain\": \"Users\",\n \"summary\": \"Merge one user account into another\",\n \"description\": \"Alias-model merge: source stays alive with merged_into_user_id pointing at this (target) user. All-or-nothing single transaction; every expected blocker returns a structured 409.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"userId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"User id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"User id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/MergeExecuteBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/MergeExecuteResult\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"409\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"postUsersUserIdMergePreview\": {\n \"operationId\": \"postUsersUserIdMergePreview\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/users/{userId}/merge/preview\",\n \"domain\": \"Users\",\n \"summary\": \"Preview a user account merge\",\n \"description\": \"SELECT-only dry run: row counts, hard blockers, self-referral warnings, projected revenue/tier. Mounted under the target user; source id is in the body.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"userId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"User id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"User id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/MergePreviewBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/MergePreviewResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"409\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n \"postUsersUserIdProductGrants\": {\n \"operationId\": \"postUsersUserIdProductGrants\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/users/{userId}/product-grants\",\n \"domain\": \"Users\",\n \"summary\": \"Grant a product license to a user\",\n \"description\": \"Session-only, super-admin-gated (API keys always get 403 here regardless of scope). Idempotent via `requestId`; delivery status may come back uncertain (202, safe to retry within 24h) or failed (502, license stays inactive).\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"session_only\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"userId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"User id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"User id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/ProductGrantRequestBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/ProductGrantSuccessResponse\"\n },\n \"201\": {\n \"$ref\": \"#/components/schemas/ProductGrantSuccessResponse\"\n },\n \"202\": {\n \"$ref\": \"#/components/schemas/ProductGrantDeliveryIssueResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"409\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"502\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n }\n },\n \"operationsByDomain\": {\n \"Admin API Keys\": [\n {\n \"operationId\": \"getKeys\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/keys\",\n \"domain\": \"Admin API Keys\",\n \"summary\": \"List admin API keys\",\n \"description\": \"Paginated list of the authenticated admin's API keys. Secrets are never returned.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"search\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Case-insensitive filter\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Case-insensitive filter\"\n }\n },\n {\n \"name\": \"limit\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Page size (default 50, max 100)\",\n \"schema\": {\n \"type\": \"integer\",\n \"minimum\": 1,\n \"maximum\": 100,\n \"description\": \"Page size (default 50, max 100)\",\n \"example\": 50\n }\n },\n {\n \"name\": \"offset\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Rows to skip (default 0)\",\n \"schema\": {\n \"type\": [\n \"integer\",\n \"null\"\n ],\n \"minimum\": 0,\n \"description\": \"Rows to skip (default 0)\",\n \"example\": 0\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/AdminApiKeyList\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postKeys\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/keys\",\n \"domain\": \"Admin API Keys\",\n \"summary\": \"Create an admin API key\",\n \"description\": \"Creates a key with RBAC scopes. The plaintext key is returned ONCE and never retrievable again.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/CreateAdminApiKeyBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/CreatedAdminApiKey\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"429\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postKeysValidate\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/keys/validate\",\n \"domain\": \"Admin API Keys\",\n \"summary\": \"Validate an admin API key\",\n \"description\": \"Checks whether the supplied `x-api-key` is a valid, active admin key.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/ValidateAdminApiKeyResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/ValidateAdminApiKeyResponse\"\n },\n \"429\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postKeysIdRevoke\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/keys/{id}/revoke\",\n \"domain\": \"Admin API Keys\",\n \"summary\": \"Revoke an admin API key\",\n \"description\": \"Permanently revokes the key. Idempotent-safe: already-revoked keys return 404.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"id\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Admin API key id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"Admin API key id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/RevokeAdminApiKeyResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postKeysIdRotate\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/keys/{id}/rotate\",\n \"domain\": \"Admin API Keys\",\n \"summary\": \"Rotate an admin API key\",\n \"description\": \"Revokes the old key and issues a replacement with the same scopes. New plaintext returned ONCE.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"id\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Admin API key id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"Admin API key id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/CreatedAdminApiKey\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n }\n ],\n \"Admins\": [\n {\n \"operationId\": \"getAdmins\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/admins\",\n \"domain\": \"Admins\",\n \"summary\": \"List admins\",\n \"description\": \"Paginated admin rows with resolved permissions, pending invites, and aggregate stats.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"search\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Case-insensitive filter\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Case-insensitive filter\"\n }\n },\n {\n \"name\": \"limit\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Page size (default 50, max 100)\",\n \"schema\": {\n \"type\": \"integer\",\n \"minimum\": 1,\n \"maximum\": 100,\n \"description\": \"Page size (default 50, max 100)\",\n \"example\": 50\n }\n },\n {\n \"name\": \"offset\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Rows to skip (default 0)\",\n \"schema\": {\n \"type\": [\n \"integer\",\n \"null\"\n ],\n \"minimum\": 0,\n \"description\": \"Rows to skip (default 0)\",\n \"example\": 0\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/AdminListResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getAdminsUserId\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/admins/{userId}\",\n \"domain\": \"Admins\",\n \"summary\": \"Get admin detail\",\n \"description\": \"A single admin's details and resolved permissions.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"userId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Admin user id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Admin user id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/AdminDetailResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"deleteAdminsUserId\",\n \"method\": \"DELETE\",\n \"path\": \"/api/admin/admins/{userId}\",\n \"domain\": \"Admins\",\n \"summary\": \"Remove an admin\",\n \"description\": \"Demotes an admin to a regular user and revokes all permissions. Super-admin only.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"userId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Admin user id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Admin user id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/DemoteAdminResult\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"patchAdminsUserIdPermissions\",\n \"method\": \"PATCH\",\n \"path\": \"/api/admin/admins/{userId}/permissions\",\n \"domain\": \"Admins\",\n \"summary\": \"Update admin permissions\",\n \"description\": \"Grants/revokes per-domain permissions for an admin. Super-admin only.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"userId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Admin user id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Admin user id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/UpdateAdminPermissionsBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/UpdateAdminPermissionsResult\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postAdminsUserIdPromote\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/admins/{userId}/promote\",\n \"domain\": \"Admins\",\n \"summary\": \"Promote a user to admin\",\n \"description\": \"Sets role=admin and optionally grants permissions. Super-admin only.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"userId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Admin user id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Admin user id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/PromoteAdminBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/PromoteAdminResult\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n }\n ],\n \"AgentKit\": [\n {\n \"operationId\": \"getAgentkitLicenses\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/agentkit/licenses\",\n \"domain\": \"AgentKit\",\n \"summary\": \"List AgentKit App licenses\",\n \"description\": \"Paginated AgentKit App licenses with device summaries, searchable by user email/license id/order id/key prefix-last4.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"search\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Matches user email, license id/order id, or key prefix/last4\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Matches user email, license id/order id, or key prefix/last4\"\n }\n },\n {\n \"name\": \"q\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Alias for `search` (takes precedence when both are set)\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Alias for `search` (takes precedence when both are set)\"\n }\n },\n {\n \"name\": \"limit\",\n \"in\": \"query\",\n \"required\": false,\n \"schema\": {\n \"type\": \"integer\",\n \"minimum\": 1,\n \"maximum\": 100,\n \"example\": 50\n }\n },\n {\n \"name\": \"offset\",\n \"in\": \"query\",\n \"required\": false,\n \"schema\": {\n \"type\": [\n \"integer\",\n \"null\"\n ],\n \"minimum\": 0,\n \"example\": 0\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/AgentKitLicenseList\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getAgentkitLicensesLicenseId\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/agentkit/licenses/{licenseId}\",\n \"domain\": \"AgentKit\",\n \"summary\": \"Get an AgentKit App license\",\n \"description\": \"**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"licenseId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"AgentKit license id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"AgentKit license id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/AgentKitLicenseDetail\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postAgentkitLicensesLicenseIdRevoke\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/agentkit/licenses/{licenseId}/revoke\",\n \"domain\": \"AgentKit\",\n \"summary\": \"Revoke an AgentKit App license\",\n \"description\": \"**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"licenseId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"AgentKit license id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"AgentKit license id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/AgentKitOkResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postAgentkitLicensesLicenseIdDevicesDeviceIdRevoke\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/agentkit/licenses/{licenseId}/devices/{deviceId}/revoke\",\n \"domain\": \"AgentKit\",\n \"summary\": \"Revoke an AgentKit App license device\",\n \"description\": \"Revokes a single device activation, signing that device out.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"licenseId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"AgentKit license id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"AgentKit license id\"\n }\n },\n {\n \"name\": \"deviceId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"License activation (device) id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"License activation (device) id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/AgentKitOkResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getAgentkitWaitlist\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/agentkit/waitlist\",\n \"domain\": \"AgentKit\",\n \"summary\": \"List confirmed AgentKit App waitlist signups\",\n \"description\": \"**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"search\",\n \"in\": \"query\",\n \"required\": false,\n \"schema\": {\n \"type\": \"string\"\n }\n },\n {\n \"name\": \"limit\",\n \"in\": \"query\",\n \"required\": false,\n \"schema\": {\n \"type\": \"integer\",\n \"minimum\": 1,\n \"maximum\": 100,\n \"example\": 50\n }\n },\n {\n \"name\": \"offset\",\n \"in\": \"query\",\n \"required\": false,\n \"schema\": {\n \"type\": [\n \"integer\",\n \"null\"\n ],\n \"minimum\": 0,\n \"example\": 0\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/AgentKitWaitlistList\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postAgentkitAppWaitlistConvert\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/agentkit-app/waitlist/convert\",\n \"domain\": \"AgentKit\",\n \"summary\": \"Convert confirmed waitlist signups into licenses\",\n \"description\": \"Manual batch job: issues real AgentKit App licenses for confirmed paid waitlist reservations and emails the keys. Idempotent \u2014 safe to re-run. Run in small chunks (limit ~25), not one large request.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/AgentKitAppWaitlistConvertBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/AgentKitAppWaitlistConvertResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postAgentkitKitsReleases\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/agentkit/kits/releases\",\n \"domain\": \"AgentKit\",\n \"summary\": \"Register an AgentKit kit release\",\n \"description\": \"Registers a new kit release build in the AgentKit registry (used by the release pipeline).\\n\\n**Required scope(s):** `registry:write`\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [\n \"registry:write\"\n ],\n \"parameters\": [],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/RegisterKitReleaseBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/RegisterKitReleaseResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"patchLicensesLicenseIdGithubUsername\",\n \"method\": \"PATCH\",\n \"path\": \"/api/admin/licenses/{licenseId}/github-username\",\n \"domain\": \"AgentKit\",\n \"summary\": \"Change the GitHub username on a license\",\n \"description\": \"Admin override for the GitHub username tied to any license (Engineer/Marketing Kit GitHub access).\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"licenseId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"AgentKit license id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"AgentKit license id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/ChangeLicenseGithubUsernameBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/ChangeLicenseGithubUsernameResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"409\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n }\n ],\n \"Announcements\": [\n {\n \"operationId\": \"getAnnouncements\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/announcements\",\n \"domain\": \"Announcements\",\n \"summary\": \"List announcements\",\n \"description\": \"Paginated admin list of all announcements (enabled and disabled).\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"limit\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Page size (default 20, max 100)\",\n \"schema\": {\n \"type\": \"integer\",\n \"minimum\": 1,\n \"maximum\": 100,\n \"description\": \"Page size (default 20, max 100)\",\n \"example\": 20\n }\n },\n {\n \"name\": \"offset\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Rows to skip (default 0)\",\n \"schema\": {\n \"type\": [\n \"integer\",\n \"null\"\n ],\n \"minimum\": 0,\n \"description\": \"Rows to skip (default 0)\",\n \"example\": 0\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/AnnouncementListResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postAnnouncements\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/announcements\",\n \"domain\": \"Announcements\",\n \"summary\": \"Create an announcement\",\n \"description\": \"**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/CreateAnnouncementBody\"\n },\n \"responseSchemas\": {\n \"201\": {\n \"$ref\": \"#/components/schemas/AnnouncementResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AnnouncementValidationError\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getAnnouncementsId\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/announcements/{id}\",\n \"domain\": \"Announcements\",\n \"summary\": \"Get an announcement\",\n \"description\": \"**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"id\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Announcement id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"Announcement id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/AnnouncementResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"patchAnnouncementsId\",\n \"method\": \"PATCH\",\n \"path\": \"/api/admin/announcements/{id}\",\n \"domain\": \"Announcements\",\n \"summary\": \"Update an announcement\",\n \"description\": \"Partial update, including enabling/disabling via the `enabled` field.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"id\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Announcement id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"Announcement id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/UpdateAnnouncementBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/AnnouncementResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AnnouncementValidationError\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"deleteAnnouncementsId\",\n \"method\": \"DELETE\",\n \"path\": \"/api/admin/announcements/{id}\",\n \"domain\": \"Announcements\",\n \"summary\": \"Delete an announcement\",\n \"description\": \"**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"id\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Announcement id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"Announcement id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/DeleteAnnouncementResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n }\n ],\n \"Blog\": [\n {\n \"operationId\": \"getBlogArticles\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/blog/articles\",\n \"domain\": \"Blog\",\n \"summary\": \"List articles\",\n \"description\": \"Paginated articles enriched with Korean localization status and category ids. Filterable by status/language/localizationStatus/tag/category/authorId/id.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"id\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Filter to a single article id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"Filter to a single article id\"\n }\n },\n {\n \"name\": \"page\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"default 1\",\n \"schema\": {\n \"type\": \"integer\",\n \"minimum\": 1,\n \"description\": \"default 1\",\n \"example\": 1\n }\n },\n {\n \"name\": \"limit\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"default 20, max 100\",\n \"schema\": {\n \"type\": \"integer\",\n \"minimum\": 1,\n \"maximum\": 100,\n \"description\": \"default 20, max 100\",\n \"example\": 20\n }\n },\n {\n \"name\": \"status\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Article lifecycle status\",\n \"schema\": {\n \"type\": \"string\",\n \"enum\": [\n \"draft\",\n \"scheduled\",\n \"published\",\n \"archived\"\n ],\n \"description\": \"Article lifecycle status\"\n }\n },\n {\n \"name\": \"language\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"default all\",\n \"schema\": {\n \"type\": \"string\",\n \"enum\": [\n \"all\",\n \"ko\",\n \"missing-ko\"\n ],\n \"description\": \"default all\"\n }\n },\n {\n \"name\": \"localizationStatus\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Localization review status\",\n \"schema\": {\n \"type\": \"string\",\n \"enum\": [\n \"draft\",\n \"published\",\n \"archived\"\n ],\n \"description\": \"Localization review status\"\n }\n },\n {\n \"name\": \"tag\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Filter by tag slug\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Filter by tag slug\"\n }\n },\n {\n \"name\": \"category\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Filter by category slug\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Filter by category slug\"\n }\n },\n {\n \"name\": \"authorId\",\n \"in\": \"query\",\n \"required\": false,\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/BlogArticleList\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getBlogExport\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/blog/export\",\n \"domain\": \"Blog\",\n \"summary\": \"Export articles (CSV)\",\n \"description\": \"Streams matching articles (filterable by startDate/endDate/status) as a CSV download.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"startDate\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"ISO date, default 30 days before endDate\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"ISO date, default 30 days before endDate\",\n \"example\": \"2026-07-01\"\n }\n },\n {\n \"name\": \"endDate\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"ISO date, default today\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"ISO date, default today\",\n \"example\": \"2026-08-01\"\n }\n },\n {\n \"name\": \"status\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Article status filter, or 'all' (default)\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Article status filter, or 'all' (default)\",\n \"example\": \"all\"\n }\n }\n ],\n \"responseSchemas\": {\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getBlogArticlesArticleIdLocalizationsLocale\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/blog/articles/{articleId}/localizations/{locale}\",\n \"domain\": \"Blog\",\n \"summary\": \"Get an article localization\",\n \"description\": \"Source (English) article summary plus the Korean localization record, if any.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"articleId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Article id (must be a UUID)\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Article id (must be a UUID)\"\n }\n },\n {\n \"name\": \"locale\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Localization locale\",\n \"schema\": {\n \"type\": \"string\",\n \"enum\": [\n \"ko\"\n ],\n \"description\": \"Localization locale\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/ArticleLocalizationSourceDetail\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"patchBlogArticlesArticleIdLocalizationsLocale\",\n \"method\": \"PATCH\",\n \"path\": \"/api/admin/blog/articles/{articleId}/localizations/{locale}\",\n \"domain\": \"Blog\",\n \"summary\": \"Create or update an article localization\",\n \"description\": \"Upserts the Korean localization and applies a draft/publish/archive transition. Publishing requires title, source content, rendered HTML, and reviewer evidence.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"articleId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Article id (must be a UUID)\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Article id (must be a UUID)\"\n }\n },\n {\n \"name\": \"locale\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Localization locale\",\n \"schema\": {\n \"type\": \"string\",\n \"enum\": [\n \"ko\"\n ],\n \"description\": \"Localization locale\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/ArticleLocalizationUpsertBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/ArticleLocalizationSourceDetail\"\n },\n \"201\": {\n \"$ref\": \"#/components/schemas/ArticleLocalizationSourceDetail\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"409\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postBlogArticlesArticleIdCategoriesCategoryId\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/blog/articles/{articleId}/categories/{categoryId}\",\n \"domain\": \"Blog\",\n \"summary\": \"Attach a category to an article\",\n \"description\": \"**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"articleId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Article id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Article id\"\n }\n },\n {\n \"name\": \"categoryId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Category id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Category id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/BlogAttachResult\"\n },\n \"201\": {\n \"$ref\": \"#/components/schemas/BlogAttachResult\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"deleteBlogArticlesArticleIdCategoriesCategoryId\",\n \"method\": \"DELETE\",\n \"path\": \"/api/admin/blog/articles/{articleId}/categories/{categoryId}\",\n \"domain\": \"Blog\",\n \"summary\": \"Detach a category from an article\",\n \"description\": \"**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"articleId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Article id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Article id\"\n }\n },\n {\n \"name\": \"categoryId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Category id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Category id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/BlogDetachResult\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postBlogArticlesArticleIdTagsTagId\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/blog/articles/{articleId}/tags/{tagId}\",\n \"domain\": \"Blog\",\n \"summary\": \"Attach a tag to an article\",\n \"description\": \"**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"articleId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Article id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Article id\"\n }\n },\n {\n \"name\": \"tagId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Tag id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Tag id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/BlogAttachResult\"\n },\n \"201\": {\n \"$ref\": \"#/components/schemas/BlogAttachResult\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"deleteBlogArticlesArticleIdTagsTagId\",\n \"method\": \"DELETE\",\n \"path\": \"/api/admin/blog/articles/{articleId}/tags/{tagId}\",\n \"domain\": \"Blog\",\n \"summary\": \"Detach a tag from an article\",\n \"description\": \"**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"articleId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Article id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Article id\"\n }\n },\n {\n \"name\": \"tagId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Tag id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Tag id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/BlogDetachResult\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getBlogCategories\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/blog/categories\",\n \"domain\": \"Blog\",\n \"summary\": \"List categories\",\n \"description\": \"All categories, optionally filtered by name/slug substring.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"query\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Case-insensitive filter on name/slug (also accepts `search`)\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Case-insensitive filter on name/slug (also accepts `search`)\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/BlogCategoryList\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postBlogCategories\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/blog/categories\",\n \"domain\": \"Blog\",\n \"summary\": \"Create a category\",\n \"description\": \"Slug is derived from name when omitted. parentId, if set, must reference an existing category with no cycle.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/BlogCategoryCreateBody\"\n },\n \"responseSchemas\": {\n \"201\": {\n \"$ref\": \"#/components/schemas/BlogCategoryDetail\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"409\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getBlogCategoriesCategoryId\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/blog/categories/{categoryId}\",\n \"domain\": \"Blog\",\n \"summary\": \"Get a category\",\n \"description\": \"**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"categoryId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Category id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Category id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/BlogCategoryDetail\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"patchBlogCategoriesCategoryId\",\n \"method\": \"PATCH\",\n \"path\": \"/api/admin/blog/categories/{categoryId}\",\n \"domain\": \"Blog\",\n \"summary\": \"Update a category\",\n \"description\": \"**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"categoryId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Category id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Category id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/BlogCategoryUpdateBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/BlogCategoryDetail\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"409\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"deleteBlogCategoriesCategoryId\",\n \"method\": \"DELETE\",\n \"path\": \"/api/admin/blog/categories/{categoryId}\",\n \"domain\": \"Blog\",\n \"summary\": \"Delete a category\",\n \"description\": \"Fails if the category has children or associated articles unless `force=true`, which disassociates articles first.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"categoryId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Category id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Category id\"\n }\n },\n {\n \"name\": \"force\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Pass 'true' to disassociate articles and force-delete\",\n \"schema\": {\n \"type\": \"string\",\n \"enum\": [\n \"true\",\n \"false\"\n ],\n \"description\": \"Pass 'true' to disassociate articles and force-delete\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/BlogCategoryDeleteResult\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"409\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getBlogTags\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/blog/tags\",\n \"domain\": \"Blog\",\n \"summary\": \"List tags\",\n \"description\": \"All tags, optionally filtered by name/slug substring.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"query\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Case-insensitive filter on name/slug (also accepts `search`)\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Case-insensitive filter on name/slug (also accepts `search`)\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/BlogTagList\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postBlogTags\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/blog/tags\",\n \"domain\": \"Blog\",\n \"summary\": \"Create a tag\",\n \"description\": \"Slug is derived from name when omitted.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/BlogTagCreateBody\"\n },\n \"responseSchemas\": {\n \"201\": {\n \"$ref\": \"#/components/schemas/BlogTagDetail\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"409\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getBlogTagsTagId\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/blog/tags/{tagId}\",\n \"domain\": \"Blog\",\n \"summary\": \"Get a tag\",\n \"description\": \"**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"tagId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Tag id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Tag id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/BlogTagDetail\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"patchBlogTagsTagId\",\n \"method\": \"PATCH\",\n \"path\": \"/api/admin/blog/tags/{tagId}\",\n \"domain\": \"Blog\",\n \"summary\": \"Update a tag\",\n \"description\": \"**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"tagId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Tag id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Tag id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/BlogTagUpdateBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/BlogTagDetail\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"409\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"deleteBlogTagsTagId\",\n \"method\": \"DELETE\",\n \"path\": \"/api/admin/blog/tags/{tagId}\",\n \"domain\": \"Blog\",\n \"summary\": \"Delete a tag\",\n \"description\": \"Fails if the tag has associated articles unless `force=true`, which disassociates articles first.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"tagId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Tag id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Tag id\"\n }\n },\n {\n \"name\": \"force\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Pass 'true' to disassociate articles and force-delete\",\n \"schema\": {\n \"type\": \"string\",\n \"enum\": [\n \"true\",\n \"false\"\n ],\n \"description\": \"Pass 'true' to disassociate articles and force-delete\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/BlogTagDeleteResult\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"409\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": true,\n \"isPublic\": false\n }\n ],\n \"Changelog\": [\n {\n \"operationId\": \"getChangelogLocalizationsRepositoryReleaseIdLocale\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/changelog/localizations/{repository}/{releaseId}/{locale}\",\n \"domain\": \"Changelog\",\n \"summary\": \"Get a changelog release localization\",\n \"description\": \"Localized prose keyed to an immutable upstream GitHub release (repository + releaseId + locale).\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"repository\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Source repository the release belongs to\",\n \"schema\": {\n \"type\": \"string\",\n \"enum\": [\n \"engineer\",\n \"marketing\",\n \"cli\"\n ],\n \"description\": \"Source repository the release belongs to\"\n }\n },\n {\n \"name\": \"releaseId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Upstream GitHub release id (positive safe integer)\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Upstream GitHub release id (positive safe integer)\",\n \"example\": \"123456789\"\n }\n },\n {\n \"name\": \"locale\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Localization locale\",\n \"schema\": {\n \"type\": \"string\",\n \"enum\": [\n \"ko\"\n ],\n \"description\": \"Localization locale\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/ChangelogLocalizationDetail\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"patchChangelogLocalizationsRepositoryReleaseIdLocale\",\n \"method\": \"PATCH\",\n \"path\": \"/api/admin/changelog/localizations/{repository}/{releaseId}/{locale}\",\n \"domain\": \"Changelog\",\n \"summary\": \"Create or update a changelog release localization\",\n \"description\": \"Upserts the localization and applies a draft/publish/archive transition. Publishing requires title, release notes, reviewer evidence, and that the GitHub release is public.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"repository\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Source repository the release belongs to\",\n \"schema\": {\n \"type\": \"string\",\n \"enum\": [\n \"engineer\",\n \"marketing\",\n \"cli\"\n ],\n \"description\": \"Source repository the release belongs to\"\n }\n },\n {\n \"name\": \"releaseId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Upstream GitHub release id (positive safe integer)\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Upstream GitHub release id (positive safe integer)\",\n \"example\": \"123456789\"\n }\n },\n {\n \"name\": \"locale\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Localization locale\",\n \"schema\": {\n \"type\": \"string\",\n \"enum\": [\n \"ko\"\n ],\n \"description\": \"Localization locale\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/ChangelogLocalizationUpsertBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/ChangelogLocalizationUpsertResult\"\n },\n \"201\": {\n \"$ref\": \"#/components/schemas/ChangelogLocalizationUpsertResult\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"409\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n }\n ],\n \"Discounts\": [\n {\n \"operationId\": \"getDiscounts\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/discounts\",\n \"domain\": \"Discounts\",\n \"summary\": \"List discounts\",\n \"description\": \"Paginated discounts proxied live from Polar (page-based pagination, not offset).\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"search\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Forwarded as Polar `query` (case-insensitive)\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Forwarded as Polar `query` (case-insensitive)\"\n }\n },\n {\n \"name\": \"limit\",\n \"in\": \"query\",\n \"required\": false,\n \"schema\": {\n \"type\": \"integer\",\n \"minimum\": 1,\n \"maximum\": 100,\n \"example\": 50\n }\n },\n {\n \"name\": \"page\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Page-based (Polar SDK convention, not offset)\",\n \"schema\": {\n \"type\": \"integer\",\n \"minimum\": 1,\n \"description\": \"Page-based (Polar SDK convention, not offset)\",\n \"example\": 1\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/DiscountList\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postDiscounts\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/discounts\",\n \"domain\": \"Discounts\",\n \"summary\": \"Create a discount\",\n \"description\": \"Creates a one-off discount code directly in Polar.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/CreateDiscountBody\"\n },\n \"responseSchemas\": {\n \"201\": {\n \"$ref\": \"#/components/schemas/DiscountDetail\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getDiscountsExport\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/discounts/export\",\n \"domain\": \"Discounts\",\n \"summary\": \"Export discounts (CSV)\",\n \"description\": \"Streams discounts created within a date range as a CSV download, filterable by status.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"startDate\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"ISO date, default 30 days ago\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"ISO date, default 30 days ago\",\n \"example\": \"2026-07-01\"\n }\n },\n {\n \"name\": \"endDate\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"ISO date, default today\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"ISO date, default today\"\n }\n },\n {\n \"name\": \"status\",\n \"in\": \"query\",\n \"required\": false,\n \"schema\": {\n \"type\": \"string\",\n \"enum\": [\n \"all\",\n \"active\",\n \"expired\"\n ],\n \"example\": \"all\"\n }\n }\n ],\n \"responseSchemas\": {\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getDiscountsSyncStatus\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/discounts/sync-status\",\n \"domain\": \"Discounts\",\n \"summary\": \"Discount Polar sync status\",\n \"description\": \"Counts of synced/pending/errored discount codes, with per-error detail.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/DiscountsSyncStatus\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"patchDiscountsDiscountId\",\n \"method\": \"PATCH\",\n \"path\": \"/api/admin/discounts/{discountId}\",\n \"domain\": \"Discounts\",\n \"summary\": \"Update a discount\",\n \"description\": \"Updates a discount in Polar. Response is the raw Polar SDK object (not normalized).\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"discountId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Polar discount id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Polar discount id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/UpdateDiscountBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/UpdateDiscountResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"deleteDiscountsDiscountId\",\n \"method\": \"DELETE\",\n \"path\": \"/api/admin/discounts/{discountId}\",\n \"domain\": \"Discounts\",\n \"summary\": \"Delete a discount\",\n \"description\": \"Deletes a discount in Polar. Idempotent-safe: an already-deleted (404) Polar discount still returns success.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"discountId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Polar discount id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Polar discount id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/DeleteDiscountResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getDiscountGroups\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/discount-groups\",\n \"domain\": \"Discounts\",\n \"summary\": \"List discount groups\",\n \"description\": \"Paginated discount-code templates, filterable by name/prefix.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"search\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Alias: `query`. Case-insensitive filter on name/prefix\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Alias: `query`. Case-insensitive filter on name/prefix\"\n }\n },\n {\n \"name\": \"page\",\n \"in\": \"query\",\n \"required\": false,\n \"schema\": {\n \"type\": \"integer\",\n \"minimum\": 1,\n \"example\": 1\n }\n },\n {\n \"name\": \"limit\",\n \"in\": \"query\",\n \"required\": false,\n \"schema\": {\n \"type\": \"integer\",\n \"minimum\": 1,\n \"maximum\": 100,\n \"example\": 50\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/DiscountGroupList\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postDiscountGroups\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/discount-groups\",\n \"domain\": \"Discounts\",\n \"summary\": \"Create a discount group\",\n \"description\": \"Creates a reusable code template used to bulk-generate discount codes.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/CreateDiscountGroupBody\"\n },\n \"responseSchemas\": {\n \"201\": {\n \"$ref\": \"#/components/schemas/DiscountGroupDetail\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getDiscountGroupsDiscountGroupId\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/discount-groups/{discountGroupId}\",\n \"domain\": \"Discounts\",\n \"summary\": \"Get discount group detail\",\n \"description\": \"**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"discountGroupId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Discount group id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"Discount group id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/DiscountGroupDetail\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"patchDiscountGroupsDiscountGroupId\",\n \"method\": \"PATCH\",\n \"path\": \"/api/admin/discount-groups/{discountGroupId}\",\n \"domain\": \"Discounts\",\n \"summary\": \"Update a discount group\",\n \"description\": \"Partial update of the code template. Does not retroactively change already-generated codes.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"discountGroupId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Discount group id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"Discount group id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/UpdateDiscountGroupBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/DiscountGroupDetail\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"deleteDiscountGroupsDiscountGroupId\",\n \"method\": \"DELETE\",\n \"path\": \"/api/admin/discount-groups/{discountGroupId}\",\n \"domain\": \"Discounts\",\n \"summary\": \"Delete a discount group\",\n \"description\": \"Soft-deletes all child discount codes (deactivates), deletes their Polar counterparts (background for >100), then deletes the group.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"discountGroupId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Discount group id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"Discount group id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/DeleteDiscountGroupResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postDiscountGroupsDiscountGroupIdCodes\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/discount-groups/{discountGroupId}/codes\",\n \"domain\": \"Discounts\",\n \"summary\": \"Bulk-generate discount codes for a group\",\n \"description\": \"Generates 1-100 codes from the group template, inserts them, and syncs each to Polar (rate-limited, ~100ms between calls; batches beyond 100 codes sync in the background). Sensitive/rate-limited operation.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"discountGroupId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Discount group id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"Discount group id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/GenerateGroupCodesBody\"\n },\n \"responseSchemas\": {\n \"201\": {\n \"$ref\": \"#/components/schemas/GenerateGroupCodesResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n }\n ],\n \"Invites\": [\n {\n \"operationId\": \"getInvites\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/invites\",\n \"domain\": \"Invites\",\n \"summary\": \"List pending admin invites\",\n \"description\": \"Paginated pending invites, searchable by invite/inviter email or name. Requires `settings:view` (session).\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"search\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Case-insensitive filter\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Case-insensitive filter\"\n }\n },\n {\n \"name\": \"limit\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Page size (default 50, max 100)\",\n \"schema\": {\n \"type\": \"integer\",\n \"minimum\": 1,\n \"maximum\": 100,\n \"description\": \"Page size (default 50, max 100)\",\n \"example\": 50\n }\n },\n {\n \"name\": \"offset\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Rows to skip (default 0)\",\n \"schema\": {\n \"type\": [\n \"integer\",\n \"null\"\n ],\n \"minimum\": 0,\n \"description\": \"Rows to skip (default 0)\",\n \"example\": 0\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/InviteList\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postInvites\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/invites\",\n \"domain\": \"Invites\",\n \"summary\": \"Create an admin invite\",\n \"description\": \"Creates a pending invite and emails the invite link. Requires `settings:edit` (session) and super-admin. The plaintext token is cleared from the DB right after the email sends.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/CreateInviteBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/CreateInviteResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getInvitesValidate\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/invites/validate\",\n \"domain\": \"Invites\",\n \"summary\": \"Validate an invite token\",\n \"description\": \"Public endpoint used by the accept-invite page. Rate limited (10 req/min/IP).\\n\\n**Auth:** public endpoint \u2014 no admin authentication required.\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"public\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"token\",\n \"in\": \"query\",\n \"required\": true,\n \"description\": \"Plaintext invite token from the email link\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Plaintext invite token from the email link\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/ValidateInviteResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/ValidateInviteErrorResponse\"\n },\n \"429\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": true\n },\n {\n \"operationId\": \"getInvitesInviteId\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/invites/{inviteId}\",\n \"domain\": \"Invites\",\n \"summary\": \"Get an admin invite\",\n \"description\": \"Full invite record. Requires `settings:view` (session).\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"inviteId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Admin invite id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"Admin invite id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/InviteDetail\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"deleteInvitesInviteId\",\n \"method\": \"DELETE\",\n \"path\": \"/api/admin/invites/{inviteId}\",\n \"domain\": \"Invites\",\n \"summary\": \"Revoke an admin invite\",\n \"description\": \"Revokes a pending invite. Requires `settings:delete` (session).\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"inviteId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Admin invite id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"Admin invite id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/RevokeInviteResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postInvitesInviteIdResend\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/invites/{inviteId}/resend\",\n \"domain\": \"Invites\",\n \"summary\": \"Resend an admin invite\",\n \"description\": \"Generates a new token, extends expiry, and re-sends the invite email. Requires `settings:edit` (session) and super-admin.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"inviteId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Admin invite id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"Admin invite id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/ResendInviteResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postInvitesAccept\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/invites/accept\",\n \"domain\": \"Invites\",\n \"summary\": \"Accept an admin invite\",\n \"description\": \"Public endpoint (no admin auth) \u2014 the signed-in user accepts a pending invite for their own email and is upgraded to admin. Rate limited (3 req/15min/IP). Sets a session cookie on success.\\n\\n**Auth:** public endpoint \u2014 no admin authentication required.\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"public\",\n \"requiredScopes\": [],\n \"parameters\": [],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/AcceptInviteBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/AcceptInviteResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AcceptInviteErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AcceptInviteErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AcceptInviteErrorResponse\"\n },\n \"429\": {\n \"$ref\": \"#/components/schemas/AcceptInviteErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": true\n }\n ],\n \"Loyalty\": [\n {\n \"operationId\": \"getLoyaltyStats\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/loyalty/stats\",\n \"domain\": \"Loyalty\",\n \"summary\": \"Loyalty offer stats\",\n \"description\": \"Eligible-user count, claim counts by status, and claimed revenue by currency for the Engineer\u2192Marketing/Combo loyalty upgrade offer.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/LoyaltyStats\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postLoyaltyBlastEmail\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/loyalty/blast-email\",\n \"domain\": \"Loyalty\",\n \"summary\": \"Send loyalty offer emails\",\n \"description\": \"Bulk-sends the loyalty upgrade offer email to eligible users (completed Engineer Kit order, no active Marketing Kit/Combo license, no existing claim). In test mode (default), sends exactly one email to `testEmail` and creates no claim record. In live mode, sends up to `batchSize` emails and creates a `pending` claim per successful send \u2014 this reaches real customers and cannot be undone once sent.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/LoyaltyBlastEmailBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/LoyaltyBlastEmailResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n }\n ],\n \"Order Follow-ups\": [\n {\n \"operationId\": \"getOrderFollowups\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/order-followups\",\n \"domain\": \"Order Follow-ups\",\n \"summary\": \"List pending order follow-ups\",\n \"description\": \"Scheduled/pending follow-up events plus unresolved payment-reconciliation cases, most-recently-due first.\\n\\n**Required scope(s):** `order-followups:read`\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [\n \"order-followups:read\"\n ],\n \"parameters\": [\n {\n \"name\": \"limit\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Default 50, max 100\",\n \"schema\": {\n \"type\": \"integer\",\n \"minimum\": 1,\n \"maximum\": 100,\n \"description\": \"Default 50, max 100\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/OrderFollowupListResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postOrderFollowupsEventIdRetry\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/order-followups/{eventId}/retry\",\n \"domain\": \"Order Follow-ups\",\n \"summary\": \"Retry a follow-up event\",\n \"description\": \"Resets a follow-up event to `scheduled` (due now) for immediate re-processing. Requires an `Idempotency-Key` request header (max 256 chars). Replaying the same actor + action + key returns the original result without re-mutating.\\n\\n**Required scope(s):** `order-followups:write`\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": true,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [\n \"order-followups:write\"\n ],\n \"parameters\": [\n {\n \"name\": \"eventId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Follow-up event id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"Follow-up event id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/OrderFollowupRetryBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/OrderFollowupRetryResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"409\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n }\n ],\n \"Reconciliation\": [\n {\n \"operationId\": \"postPaymentReconciliationCasesCaseIdResolve\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/payment-reconciliation-cases/{caseId}/resolve\",\n \"domain\": \"Reconciliation\",\n \"summary\": \"Resolve a payment reconciliation case\",\n \"description\": \"Marks a payment reconciliation case resolved. Idempotent if already resolved. Requires an `Idempotency-Key` request header (max 256 chars). Replaying the same actor + action + key returns the original result without re-mutating.\\n\\n**Required scope(s):** `order-followups:write`\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": true,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [\n \"order-followups:write\"\n ],\n \"parameters\": [\n {\n \"name\": \"caseId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Payment reconciliation case id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"Payment reconciliation case id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/ReconciliationResolveBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/ReconciliationResolveResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"409\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n }\n ],\n \"Orders\": [\n {\n \"operationId\": \"getOrders\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/orders\",\n \"domain\": \"Orders\",\n \"summary\": \"List orders\",\n \"description\": \"Paginated orders with buyer email/name, filterable by provider/status/search.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"search\",\n \"in\": \"query\",\n \"required\": false,\n \"schema\": {\n \"type\": \"string\"\n }\n },\n {\n \"name\": \"provider\",\n \"in\": \"query\",\n \"required\": false,\n \"schema\": {\n \"type\": \"string\",\n \"enum\": [\n \"polar\",\n \"sepay\",\n \"admin\"\n ]\n }\n },\n {\n \"name\": \"status\",\n \"in\": \"query\",\n \"required\": false,\n \"schema\": {\n \"type\": \"string\"\n }\n },\n {\n \"name\": \"limit\",\n \"in\": \"query\",\n \"required\": false,\n \"schema\": {\n \"type\": \"integer\",\n \"minimum\": 1,\n \"maximum\": 100,\n \"example\": 50\n }\n },\n {\n \"name\": \"offset\",\n \"in\": \"query\",\n \"required\": false,\n \"schema\": {\n \"type\": [\n \"integer\",\n \"null\"\n ],\n \"minimum\": 0,\n \"example\": 0\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/OrderList\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postOrders\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/orders\",\n \"domain\": \"Orders\",\n \"summary\": \"Create a zero-dollar admin comp order\",\n \"description\": \"Creates or reuses a recipient user, mints one `paymentProvider: admin` order at amount `0`, and runs normal fulfillment with token-fenced staged activation. Idempotent via `requestId` (exact actor-bound replay returns 200). Session callers must be super-admin; API keys need `orders:comp` or `admin:full` \u2014 `orders:write` alone is rejected.\\n\\n**Required scope(s):** `orders:comp`\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [\n \"orders:comp\"\n ],\n \"parameters\": [],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/CreateCompOrderBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/CreateCompOrderResponse\"\n },\n \"201\": {\n \"$ref\": \"#/components/schemas/CreateCompOrderResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"409\": {\n \"$ref\": \"#/components/schemas/CompOrderErrorResponse\"\n },\n \"502\": {\n \"$ref\": \"#/components/schemas/CompOrderErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getOrdersStats\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/orders/stats\",\n \"domain\": \"Orders\",\n \"summary\": \"Order statistics\",\n \"description\": \"Aggregate order counts and revenue, filterable by date/status/provider.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/OrdersStats\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getOrdersExport\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/orders/export\",\n \"domain\": \"Orders\",\n \"summary\": \"Export orders (CSV)\",\n \"description\": \"Streams all matching orders as a CSV download.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [],\n \"responseSchemas\": {\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getOrdersOrderId\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/orders/{orderId}\",\n \"domain\": \"Orders\",\n \"summary\": \"Get order detail\",\n \"description\": \"Full order record with licenses, commission, and discount redemptions.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"orderId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Order id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Order id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/OrderDetail\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getOrdersOrderIdPdf\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/orders/{orderId}/pdf\",\n \"domain\": \"Orders\",\n \"summary\": \"Order invoice (PDF)\",\n \"description\": \"Renders the order invoice as a PDF download.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"orderId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Order id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Order id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getOrdersOrderIdFollowUps\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/orders/{orderId}/follow-ups\",\n \"domain\": \"Orders\",\n \"summary\": \"Get order follow-up timeline\",\n \"description\": \"**Required scope(s):** `order-followups:read`\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [\n \"order-followups:read\"\n ],\n \"parameters\": [\n {\n \"name\": \"orderId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Order id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Order id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/OrderActionResult\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postOrdersOrderIdFollowUpsDisable\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/orders/{orderId}/follow-ups/disable\",\n \"domain\": \"Orders\",\n \"summary\": \"Disable order follow-ups\",\n \"description\": \"**Required scope(s):** `order-followups:write`\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [\n \"order-followups:write\"\n ],\n \"parameters\": [\n {\n \"name\": \"orderId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Order id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Order id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/FollowUpStateBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/OrderActionResult\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"409\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postOrdersOrderIdFollowUpsReconcile\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/orders/{orderId}/follow-ups/reconcile\",\n \"domain\": \"Orders\",\n \"summary\": \"Reconcile order follow-ups\",\n \"description\": \"**Required scope(s):** `order-followups:write`\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [\n \"order-followups:write\"\n ],\n \"parameters\": [\n {\n \"name\": \"orderId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Order id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Order id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/FollowUpStateBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/OrderActionResult\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"409\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postOrdersOrderIdComplete\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/orders/{orderId}/complete\",\n \"domain\": \"Orders\",\n \"summary\": \"Complete an order\",\n \"description\": \"Manually marks an order paid/completed and runs fulfillment.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"orderId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Order id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Order id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/OrderActionResult\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postOrdersOrderIdRefund\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/orders/{orderId}/refund\",\n \"domain\": \"Orders\",\n \"summary\": \"Refund an order\",\n \"description\": \"Issues a refund and revokes access.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"orderId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Order id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Order id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/RefundBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/OrderActionResult\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postOrdersOrderIdRefundKeepAccess\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/orders/{orderId}/refund-keep-access\",\n \"domain\": \"Orders\",\n \"summary\": \"Refund an order (keep access)\",\n \"description\": \"Issues a refund but preserves the buyer's product access.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"orderId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Order id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Order id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/RefundBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/OrderActionResult\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postOrdersOrderIdResendEmails\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/orders/{orderId}/resend-emails\",\n \"domain\": \"Orders\",\n \"summary\": \"Resend order emails\",\n \"description\": \"**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"orderId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Order id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Order id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/ResendEmailsBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/OrderActionResult\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postOrdersOrderIdResendGithubInvite\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/orders/{orderId}/resend-github-invite\",\n \"domain\": \"Orders\",\n \"summary\": \"Resend GitHub invite for an order\",\n \"description\": \"**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"orderId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Order id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Order id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/OrderActionResult\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"409\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postOrdersOrderIdSwitchProduct\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/orders/{orderId}/switch-product\",\n \"domain\": \"Orders\",\n \"summary\": \"Switch order product\",\n \"description\": \"Changes the purchased product type and re-runs entitlement/fulfillment.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"orderId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Order id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Order id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/SwitchProductBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/OrderActionResult\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n }\n ],\n \"Payouts\": [\n {\n \"operationId\": \"getPayouts\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/payouts\",\n \"domain\": \"Payouts\",\n \"summary\": \"List payouts (with decrypted payment details)\",\n \"description\": \"Session-only. Same data source as `GET /payout-requests`; payment details are decrypted per-row.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"session_only\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"search\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Matches request id (uuid prefix), user email/name/github username\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Matches request id (uuid prefix), user email/name/github username\"\n }\n },\n {\n \"name\": \"limit\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Page size (default 50, max 100)\",\n \"schema\": {\n \"type\": \"integer\",\n \"minimum\": 1,\n \"maximum\": 100,\n \"description\": \"Page size (default 50, max 100)\"\n }\n },\n {\n \"name\": \"offset\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Rows to skip (default 0)\",\n \"schema\": {\n \"type\": [\n \"integer\",\n \"null\"\n ],\n \"minimum\": 0,\n \"description\": \"Rows to skip (default 0)\"\n }\n },\n {\n \"name\": \"status\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Payout request lifecycle status\",\n \"schema\": {\n \"type\": \"string\",\n \"enum\": [\n \"pending\",\n \"processing\",\n \"completed\",\n \"failed\"\n ],\n \"description\": \"Payout request lifecycle status\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/PayoutRequestListResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getPayoutsExport\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/payouts/export\",\n \"domain\": \"Payouts\",\n \"summary\": \"Export payouts (CSV)\",\n \"description\": \"Streams payout requests in the date range, with withholding breakdown, as a CSV download.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"session_only\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"startDate\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"ISO date, inclusive (default: 30 days ago)\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"ISO date, inclusive (default: 30 days ago)\"\n }\n },\n {\n \"name\": \"endDate\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"ISO date, inclusive (default: today)\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"ISO date, inclusive (default: today)\"\n }\n },\n {\n \"name\": \"status\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Default \\\"all\\\"\",\n \"schema\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"enum\": [\n \"pending\",\n \"processing\",\n \"completed\",\n \"failed\"\n ],\n \"description\": \"Payout request lifecycle status\"\n },\n {\n \"type\": \"string\",\n \"enum\": [\n \"all\"\n ]\n }\n ],\n \"description\": \"Default \\\"all\\\"\"\n }\n }\n ],\n \"responseSchemas\": {\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getPayoutsExportDetailed\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/payouts/export-detailed\",\n \"domain\": \"Payouts\",\n \"summary\": \"Export payouts, detailed by commission (CSV)\",\n \"description\": \"Streams one row per commission per referrer (with order + customer detail) as a CSV download.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"session_only\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"status\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Default \\\"all\\\"\",\n \"schema\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"enum\": [\n \"pending\",\n \"processing\",\n \"completed\",\n \"failed\"\n ],\n \"description\": \"Payout request lifecycle status\"\n },\n {\n \"type\": \"string\",\n \"enum\": [\n \"all\"\n ]\n }\n ],\n \"description\": \"Default \\\"all\\\"\"\n }\n }\n ],\n \"responseSchemas\": {\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getPayoutRequests\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/payout-requests\",\n \"domain\": \"Payouts\",\n \"summary\": \"List payout requests (with decrypted payment details)\",\n \"description\": \"Session-only. Same data source as `GET /payouts`.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"session_only\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"search\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Matches request id (uuid prefix), user email/name/github username\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Matches request id (uuid prefix), user email/name/github username\"\n }\n },\n {\n \"name\": \"limit\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Page size (default 50, max 100)\",\n \"schema\": {\n \"type\": \"integer\",\n \"minimum\": 1,\n \"maximum\": 100,\n \"description\": \"Page size (default 50, max 100)\"\n }\n },\n {\n \"name\": \"offset\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Rows to skip (default 0)\",\n \"schema\": {\n \"type\": [\n \"integer\",\n \"null\"\n ],\n \"minimum\": 0,\n \"description\": \"Rows to skip (default 0)\"\n }\n },\n {\n \"name\": \"status\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Payout request lifecycle status\",\n \"schema\": {\n \"type\": \"string\",\n \"enum\": [\n \"pending\",\n \"processing\",\n \"completed\",\n \"failed\"\n ],\n \"description\": \"Payout request lifecycle status\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/PayoutRequestListResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n {\n \"operationId\": \"patchPayoutRequestsRequestId\",\n \"method\": \"PATCH\",\n \"path\": \"/api/admin/payout-requests/{requestId}\",\n \"domain\": \"Payouts\",\n \"summary\": \"Approve, reject, or complete a payout request\",\n \"description\": \"Session-only. `approve` (pending\u2192processing), `reject` (pending/processing\u2192failed, requires reason), `complete` (processing\u2192completed, marks matching commissions paid). Sends the corresponding notification email and may auto-reject other over-balance requests for the same user.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"session_only\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"requestId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Payout request id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"Payout request id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/PayoutRequestActionBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/PayoutRequestActionResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getPayoutRequestsRequestIdExportCsv\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/payout-requests/{requestId}/export-csv\",\n \"domain\": \"Payouts\",\n \"summary\": \"Export a single payout request (CSV)\",\n \"description\": \"Streams the matched commissions + summary (incl. VN bank-transfer 10% tax breakdown) for one payout request as a CSV download.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"session_only\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"requestId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Payout request id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"Payout request id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postPayoutVneidRequests\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/payout-vneid-requests\",\n \"domain\": \"Payouts\",\n \"summary\": \"Send VNeID confirmation requests\",\n \"description\": \"Session-only. Bulk-sends a VNeID/withholding confirmation email per payout request (via the requester's saved PayPal profile); marks the profile withholding status \\\"projected_paypal_15\\\" pending confirmation.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"session_only\",\n \"requiredScopes\": [],\n \"parameters\": [],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/PayoutVneidRequestBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/PayoutVneidRequestResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n }\n ],\n \"Referrals\": [\n {\n \"operationId\": \"getReferralsDiagnose\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/referrals/diagnose\",\n \"domain\": \"Referrals\",\n \"summary\": \"Diagnose referral tracking issues\",\n \"description\": \"Scans the last 30 days for suspicious patterns: high-click/zero-conversion codes, orders missing commissions, and clicks not attributed to an order.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/ReferralsDiagnoseResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getReferralsExport\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/referrals/export\",\n \"domain\": \"Referrals\",\n \"summary\": \"Export referral stats (CSV)\",\n \"description\": \"Streams per-referrer click/conversion/commission totals for a date range as a CSV download.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"startDate\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"ISO date, default 30 days ago\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"ISO date, default 30 days ago\",\n \"example\": \"2026-07-01\"\n }\n },\n {\n \"name\": \"endDate\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"ISO date, default today\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"ISO date, default today\"\n }\n }\n ],\n \"responseSchemas\": {\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getReferralsStats\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/referrals/stats\",\n \"domain\": \"Referrals\",\n \"summary\": \"Referral program statistics\",\n \"description\": \"KPIs, daily time series, top referrers, commission breakdown, and VND exchange rate for a date range.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"startDate\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"ISO date, default 30 days ago\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"ISO date, default 30 days ago\",\n \"example\": \"2026-07-01\"\n }\n },\n {\n \"name\": \"endDate\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"ISO date, default today\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"ISO date, default today\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/ReferralsStatsResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getReferralsTiersStats\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/referrals/tiers/stats\",\n \"domain\": \"Referrals\",\n \"summary\": \"Referral tier distribution\",\n \"description\": \"User count and percentage per referral tier, plus manual \\\"Partner\\\" (custom commission rate) count.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/ReferralsTiersStatsResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getReferralsUserIdStats\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/referrals/{userId}/stats\",\n \"domain\": \"Referrals\",\n \"summary\": \"Get a single referrer's stats\",\n \"description\": \"Referrer profile/tier, referral codes, KPIs, commission breakdown, recent referred orders, and payouts for a date range.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"userId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Referrer user id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"Referrer user id\"\n }\n },\n {\n \"name\": \"startDate\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"ISO date, default 30 days ago\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"ISO date, default 30 days ago\",\n \"example\": \"2026-07-01\"\n }\n },\n {\n \"name\": \"endDate\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"ISO date, default today\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"ISO date, default today\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/ReferralUserStatsResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getTiersManual\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/tiers/manual\",\n \"domain\": \"Referrals\",\n \"summary\": \"List manual-only referral tiers\",\n \"description\": \"Tiers not assigned automatically by revenue (`minRevenueCents < 0`), e.g. hand-assigned partner tiers.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/ManualTiersResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n }\n ],\n \"Discount referral attribution\": [\n {\n \"operationId\": \"getReferralAttributions\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/referral-attributions\",\n \"domain\": \"Discount referral attribution\",\n \"summary\": \"List discount referral attributions\",\n \"description\": \"List attribution mappings (discount code/group \u2192 beneficiary). Requires DISCOUNT_REFERRAL_ATTRIBUTION_ENABLED=true.\\n\\n**Required scope(s):** `referrals:read`\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [\n \"referrals:read\"\n ],\n \"parameters\": [],\n \"responseSchemas\": {\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postReferralAttributions\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/referral-attributions\",\n \"domain\": \"Discount referral attribution\",\n \"summary\": \"Create discount referral attribution\",\n \"description\": \"Link a discount code or group to a beneficiary at a rate (1\u2013100). Use replace=true to supersede an active mapping.\\n\\n**Required scope(s):** `referrals:write`\",\n \"isDestructive\": false,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [\n \"referrals:write\"\n ],\n \"parameters\": [],\n \"responseSchemas\": {\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"409\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postReferralAttributionsPreview\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/referral-attributions/preview\",\n \"domain\": \"Discount referral attribution\",\n \"summary\": \"Preview attribution link\",\n \"description\": \"Dry-run beneficiary + conflict check before create.\\n\\n**Required scope(s):** `referrals:write`\",\n \"isDestructive\": false,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [\n \"referrals:write\"\n ],\n \"parameters\": [],\n \"responseSchemas\": {\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getReferralAttributionsId\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/referral-attributions/{id}\",\n \"domain\": \"Discount referral attribution\",\n \"summary\": \"Get attribution by id\",\n \"description\": \"**Required scope(s):** `referrals:read`\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [\n \"referrals:read\"\n ],\n \"parameters\": [],\n \"responseSchemas\": {\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"patchReferralAttributionsId\",\n \"method\": \"PATCH\",\n \"path\": \"/api/admin/referral-attributions/{id}\",\n \"domain\": \"Discount referral attribution\",\n \"summary\": \"Supersede attribution\",\n \"description\": \"Deactivates the active row and inserts a new version.\\n\\n**Required scope(s):** `referrals:write`\",\n \"isDestructive\": false,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [\n \"referrals:write\"\n ],\n \"parameters\": [],\n \"responseSchemas\": {\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postReferralAttributionsIdDeactivate\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/referral-attributions/{id}/deactivate\",\n \"domain\": \"Discount referral attribution\",\n \"summary\": \"Deactivate attribution\",\n \"description\": \"**Required scope(s):** `referrals:write`\",\n \"isDestructive\": false,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [\n \"referrals:write\"\n ],\n \"parameters\": [],\n \"responseSchemas\": {\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getReferralLedger\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/referral-ledger\",\n \"domain\": \"Discount referral attribution\",\n \"summary\": \"List discount-attributed commissions (read-only)\",\n \"description\": \"Ledger rows where attributionId is set. No approve/reverse in v1.\\n\\n**Required scope(s):** `referrals:read`\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [\n \"referrals:read\"\n ],\n \"parameters\": [],\n \"responseSchemas\": {\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getUsersSearch\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/users/search\",\n \"domain\": \"Discount referral attribution\",\n \"summary\": \"Search users for attribution beneficiary\",\n \"description\": \"Typeahead by email, name, or exact user id.\\n\\n**Required scope(s):** `referrals:write`\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [\n \"referrals:write\"\n ],\n \"parameters\": [],\n \"responseSchemas\": {\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n }\n ],\n \"Revenue\": [\n {\n \"operationId\": \"getRevenue\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/revenue\",\n \"domain\": \"Revenue\",\n \"summary\": \"Revenue overview\",\n \"description\": \"Aggregate revenue KPIs, daily time series, and provider/product breakdowns for a date range.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"startDate\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"ISO date, inclusive (default: 30 days ago)\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"ISO date, inclusive (default: 30 days ago)\",\n \"example\": \"2026-01-01\"\n }\n },\n {\n \"name\": \"endDate\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"ISO date, inclusive (default: today)\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"ISO date, inclusive (default: today)\",\n \"example\": \"2026-01-31\"\n }\n },\n {\n \"name\": \"product\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Filter by high-level product (maps to base + _bf + team_* variants)\",\n \"schema\": {\n \"type\": \"string\",\n \"enum\": [\n \"engineer_kit\",\n \"marketing_kit\",\n \"combo\"\n ],\n \"description\": \"Filter by high-level product (maps to base + _bf + team_* variants)\"\n }\n },\n {\n \"name\": \"includeTeam\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Include team_* variants when `product` is set (default true)\",\n \"schema\": {\n \"type\": \"string\",\n \"enum\": [\n \"true\",\n \"false\"\n ],\n \"description\": \"Include team_* variants when `product` is set (default true)\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/RevenueStats\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getRevenueExport\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/revenue/export\",\n \"domain\": \"Revenue\",\n \"summary\": \"Export revenue (CSV)\",\n \"description\": \"Streams completed orders in the date range, with validation status and Polar fee breakdown, as a CSV download.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"startDate\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"ISO date, inclusive (default: 30 days ago)\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"ISO date, inclusive (default: 30 days ago)\"\n }\n },\n {\n \"name\": \"endDate\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"ISO date, inclusive (default: today)\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"ISO date, inclusive (default: today)\"\n }\n }\n ],\n \"responseSchemas\": {\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getRevenueMaintainer\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/revenue/maintainer\",\n \"domain\": \"Revenue\",\n \"summary\": \"Maintainer earnings\",\n \"description\": \"Computes a maintainer's revenue-share earnings (product breakdown, costs, tax) for a date range.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"id\",\n \"in\": \"query\",\n \"required\": true,\n \"description\": \"Maintainer id (required)\",\n \"schema\": {\n \"type\": \"string\",\n \"enum\": [\n \"cke\",\n \"ckm\"\n ],\n \"description\": \"Maintainer id (required)\"\n }\n },\n {\n \"name\": \"startDate\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"ISO date (default: start of current month)\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"ISO date (default: start of current month)\"\n }\n },\n {\n \"name\": \"endDate\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"ISO date (default: end of current month)\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"ISO date (default: end of current month)\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/RevenueMaintainerEarningsResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getRevenueMonthlyCosts\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/revenue/monthly-costs\",\n \"domain\": \"Revenue\",\n \"summary\": \"List monthly costs\",\n \"description\": \"Manual monthly operating costs used for maintainer revenue-share cost allocation, optionally filtered by yearMonth.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"yearMonth\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Filter by YYYY-MM\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Filter by YYYY-MM\",\n \"example\": \"2026-01\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/RevenueMonthlyCostListResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postRevenueMonthlyCosts\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/revenue/monthly-costs\",\n \"domain\": \"Revenue\",\n \"summary\": \"Create a monthly cost\",\n \"description\": \"**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/RevenueCreateMonthlyCostBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/RevenueMonthlyCostResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"putRevenueMonthlyCostsId\",\n \"method\": \"PUT\",\n \"path\": \"/api/admin/revenue/monthly-costs/{id}\",\n \"domain\": \"Revenue\",\n \"summary\": \"Update a monthly cost\",\n \"description\": \"**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"id\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Monthly cost id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"Monthly cost id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/RevenueUpdateMonthlyCostBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/RevenueMonthlyCostResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"deleteRevenueMonthlyCostsId\",\n \"method\": \"DELETE\",\n \"path\": \"/api/admin/revenue/monthly-costs/{id}\",\n \"domain\": \"Revenue\",\n \"summary\": \"Delete a monthly cost\",\n \"description\": \"Hard-deletes the cost row.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"id\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"Monthly cost id\",\n \"schema\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"Monthly cost id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/RevenueMonthlyCostDeleteResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postRevenueReports\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/revenue/reports\",\n \"domain\": \"Revenue\",\n \"summary\": \"Generate maintainer report(s)\",\n \"description\": \"Manually triggers maintainer revenue-share report generation/email for one or all maintainers.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/RevenueGenerateReportsBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/RevenueGenerateReportsResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": false,\n \"hasQueryParams\": false,\n \"isPublic\": false\n }\n ],\n \"Users\": [\n {\n \"operationId\": \"getUsersLookup\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/users/lookup\",\n \"domain\": \"Users\",\n \"summary\": \"Lookup user by email for comp orders\",\n \"description\": \"Resolves a normalized email to missing / live / merged-target identity, active licenses, and product-family overlap. Merged aliases resolve to the surviving target (`mergedIntoUserId` is null in the response).\\n\\n**Required scope(s):** `users:read`\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [\n \"users:read\"\n ],\n \"parameters\": [\n {\n \"name\": \"email\",\n \"in\": \"query\",\n \"required\": true,\n \"description\": \"Recipient email (normalized to lowercase)\",\n \"schema\": {\n \"type\": \"string\",\n \"maxLength\": 254,\n \"format\": \"email\",\n \"description\": \"Recipient email (normalized to lowercase)\",\n \"example\": \"user@example.com\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/UserLookupResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getUsersUserId\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/users/{userId}\",\n \"domain\": \"Users\",\n \"summary\": \"Get user detail\",\n \"description\": \"User record with order totals, licenses, and AgentKit App waitlist reservations.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"userId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"User id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"User id\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/UserDetail\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"patchUsersUserId\",\n \"method\": \"PATCH\",\n \"path\": \"/api/admin/users/{userId}\",\n \"domain\": \"Users\",\n \"summary\": \"Update a user\",\n \"description\": \"Updates name and/or email. Blocked-domain email validation is intentionally skipped for admin corrections.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"userId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"User id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"User id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/UpdateUserBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/UpdateUserResult\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"409\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"deleteUsersUserIdOrphan\",\n \"method\": \"DELETE\",\n \"path\": \"/api/admin/users/{userId}/orphan\",\n \"domain\": \"Users\",\n \"summary\": \"Delete an orphan user\",\n \"description\": \"Hard-deletes a user with no orders/licenses/referral activity/dependent rows, freeing its email. Refuses admin/super-admin accounts.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"userId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"User id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"User id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/OrphanDeleteBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/OrphanDeleteResult\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"409\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getUsersExport\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/users/export\",\n \"domain\": \"Users\",\n \"summary\": \"Export users (CSV)\",\n \"description\": \"Streams users created within the date range (default last 30 days) as a CSV download.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"startDate\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"ISO date, defaults to 30 days ago\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"ISO date, defaults to 30 days ago\",\n \"example\": \"2026-07-01\"\n }\n },\n {\n \"name\": \"endDate\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"ISO date, defaults to today\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"ISO date, defaults to today\",\n \"example\": \"2026-08-01\"\n }\n },\n {\n \"name\": \"search\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"Matches email/name/GitHub username\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"Matches email/name/GitHub username\"\n }\n }\n ],\n \"responseSchemas\": {\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n {\n \"operationId\": \"getUsersStats\",\n \"method\": \"GET\",\n \"path\": \"/api/admin/users/stats\",\n \"domain\": \"Users\",\n \"summary\": \"User statistics\",\n \"description\": \"Aggregate signup/spend/tier/GitHub-linkage stats, filterable by date range.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": false,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"start\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"ISO date filter start\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"ISO date filter start\"\n }\n },\n {\n \"name\": \"end\",\n \"in\": \"query\",\n \"required\": false,\n \"description\": \"ISO date filter end\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"ISO date filter end\"\n }\n }\n ],\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/UsersStats\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": false,\n \"hasPathParams\": false,\n \"hasQueryParams\": true,\n \"isPublic\": false\n },\n {\n \"operationId\": \"patchUsersUserIdGithubUsername\",\n \"method\": \"PATCH\",\n \"path\": \"/api/admin/users/{userId}/github-username\",\n \"domain\": \"Users\",\n \"summary\": \"Change a user's GitHub username (deprecated)\",\n \"description\": \"Deprecated \u2014 use `PATCH /api/admin/licenses/{licenseId}/github-username` instead. Revokes access under the old username and re-grants under the new one across all active licenses; `cascadeMode` controls whether the change also propagates to per-license `githubUsername`.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"userId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"User id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"User id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/GithubUsernameBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/GithubUsernameUpdateResult\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"patchUsersUserIdRates\",\n \"method\": \"PATCH\",\n \"path\": \"/api/admin/users/{userId}/rates\",\n \"domain\": \"Users\",\n \"summary\": \"Set custom commission/discount rates\",\n \"description\": \"**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"userId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"User id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"User id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/RatesBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/RatesUpdateResult\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"patchUsersUserIdTier\",\n \"method\": \"PATCH\",\n \"path\": \"/api/admin/users/{userId}/tier\",\n \"domain\": \"Users\",\n \"summary\": \"Set a user's manual referral tier\",\n \"description\": \"Only manual-only (CK) tiers \u2014 those with minRevenueCents < 0 \u2014 may be assigned.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"userId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"User id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"User id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/TierBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/TierUpdateResult\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postUsersUserIdClaimEmail\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/users/{userId}/claim-email\",\n \"domain\": \"Users\",\n \"summary\": \"Claim an email from an orphan account\",\n \"description\": \"Atomically transfers an email held by a \\\"mergeable\\\" orphan (no orders/licenses/settled commissions/payout profile) onto this user, cancelling the orphan's pending commissions and deleting it.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"userId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"User id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"User id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/ClaimEmailBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/ClaimEmailResult\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"409\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postUsersUserIdMerge\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/users/{userId}/merge\",\n \"domain\": \"Users\",\n \"summary\": \"Merge one user account into another\",\n \"description\": \"Alias-model merge: source stays alive with merged_into_user_id pointing at this (target) user. All-or-nothing single transaction; every expected blocker returns a structured 409.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"userId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"User id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"User id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/MergeExecuteBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/MergeExecuteResult\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"409\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postUsersUserIdMergePreview\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/users/{userId}/merge/preview\",\n \"domain\": \"Users\",\n \"summary\": \"Preview a user account merge\",\n \"description\": \"SELECT-only dry run: row counts, hard blockers, self-referral warnings, projected revenue/tier. Mounted under the target user; source id is in the body.\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\",\n \"isDestructive\": false,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"api_key\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"userId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"User id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"User id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/MergePreviewBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/MergePreviewResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"409\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n },\n {\n \"operationId\": \"postUsersUserIdProductGrants\",\n \"method\": \"POST\",\n \"path\": \"/api/admin/users/{userId}/product-grants\",\n \"domain\": \"Users\",\n \"summary\": \"Grant a product license to a user\",\n \"description\": \"Session-only, super-admin-gated (API keys always get 403 here regardless of scope). Idempotent via `requestId`; delivery status may come back uncertain (202, safe to retry within 24h) or failed (502, license stays inactive).\\n\\n**Auth:** admin role/session gated (no dedicated API-key scope declared).\\n\\n\u26A0\uFE0F **Destructive/mutating** \u2014 verify request in staging before use.\",\n \"isDestructive\": true,\n \"isMutation\": true,\n \"supportsIdempotencyKey\": false,\n \"authRequirement\": \"session_only\",\n \"requiredScopes\": [],\n \"parameters\": [\n {\n \"name\": \"userId\",\n \"in\": \"path\",\n \"required\": true,\n \"description\": \"User id\",\n \"schema\": {\n \"type\": \"string\",\n \"description\": \"User id\"\n }\n }\n ],\n \"requestBodySchema\": {\n \"$ref\": \"#/components/schemas/ProductGrantRequestBody\"\n },\n \"responseSchemas\": {\n \"200\": {\n \"$ref\": \"#/components/schemas/ProductGrantSuccessResponse\"\n },\n \"201\": {\n \"$ref\": \"#/components/schemas/ProductGrantSuccessResponse\"\n },\n \"202\": {\n \"$ref\": \"#/components/schemas/ProductGrantDeliveryIssueResponse\"\n },\n \"400\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"401\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"403\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"404\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"409\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n },\n \"502\": {\n \"$ref\": \"#/components/schemas/AdminErrorResponse\"\n }\n },\n \"hasRequestBody\": true,\n \"hasPathParams\": true,\n \"hasQueryParams\": false,\n \"isPublic\": false\n }\n ]\n },\n \"componentsSchemas\": {\n \"AdminApiKeyList\": {\n \"type\": \"object\",\n \"properties\": {\n \"keys\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/PublicAdminApiKey\"\n }\n },\n \"total\": {\n \"type\": \"integer\",\n \"example\": 3\n }\n },\n \"required\": [\n \"keys\",\n \"total\"\n ]\n },\n \"PublicAdminApiKey\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"format\": \"uuid\"\n },\n \"name\": {\n \"type\": \"string\",\n \"example\": \"CI deploy key\"\n },\n \"prefix\": {\n \"type\": \"string\",\n \"example\": \"ck_live_ab12cd34\"\n },\n \"displayPrefix\": {\n \"type\": \"string\",\n \"example\": \"ck_live_\"\n },\n \"last4\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"example\": \"f9a2\"\n },\n \"scopes\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\",\n \"enum\": [\n \"orders:read\",\n \"orders:write\",\n \"orders:comp\",\n \"order-followups:read\",\n \"order-followups:write\",\n \"users:read\",\n \"users:write\",\n \"admins:read\",\n \"admins:write\",\n \"invites:read\",\n \"invites:write\",\n \"keys:read\",\n \"keys:write\",\n \"teams:read\",\n \"teams:write\",\n \"blog:read\",\n \"blog:write\",\n \"announcements:read\",\n \"announcements:write\",\n \"changelog:read\",\n \"changelog:write\",\n \"discounts:read\",\n \"discounts:write\",\n \"loyalty:read\",\n \"loyalty:write\",\n \"licenses:read\",\n \"revenue:read\",\n \"revenue:write\",\n \"payouts:read\",\n \"payouts:write\",\n \"referrals:read\",\n \"referrals:write\",\n \"agentkit:read\",\n \"agentkit:write\",\n \"registry:read\",\n \"registry:write\",\n \"proxy:youtube\",\n \"proxy:web\",\n \"proxy:seo\",\n \"mcp:read\",\n \"mcp:write\",\n \"admin:full\"\n ]\n },\n \"example\": [\n \"orders:read\"\n ]\n },\n \"isActive\": {\n \"type\": \"boolean\"\n },\n \"expiresAt\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"format\": \"date-time\"\n },\n \"lastUsedAt\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"format\": \"date-time\"\n },\n \"revokedAt\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"format\": \"date-time\"\n },\n \"createdAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n }\n },\n \"required\": [\n \"id\",\n \"name\",\n \"prefix\",\n \"displayPrefix\",\n \"last4\",\n \"scopes\",\n \"isActive\",\n \"expiresAt\",\n \"lastUsedAt\",\n \"revokedAt\",\n \"createdAt\"\n ]\n },\n \"AdminErrorResponse\": {\n \"type\": \"object\",\n \"properties\": {\n \"error\": {\n \"type\": \"string\",\n \"example\": \"Unauthorized\"\n }\n },\n \"required\": [\n \"error\"\n ]\n },\n \"CreatedAdminApiKey\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"format\": \"uuid\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"prefix\": {\n \"type\": \"string\"\n },\n \"displayPrefix\": {\n \"type\": \"string\",\n \"example\": \"ck_live_\"\n },\n \"last4\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"scopes\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\",\n \"enum\": [\n \"orders:read\",\n \"orders:write\",\n \"orders:comp\",\n \"order-followups:read\",\n \"order-followups:write\",\n \"users:read\",\n \"users:write\",\n \"admins:read\",\n \"admins:write\",\n \"invites:read\",\n \"invites:write\",\n \"keys:read\",\n \"keys:write\",\n \"teams:read\",\n \"teams:write\",\n \"blog:read\",\n \"blog:write\",\n \"announcements:read\",\n \"announcements:write\",\n \"changelog:read\",\n \"changelog:write\",\n \"discounts:read\",\n \"discounts:write\",\n \"loyalty:read\",\n \"loyalty:write\",\n \"licenses:read\",\n \"revenue:read\",\n \"revenue:write\",\n \"payouts:read\",\n \"payouts:write\",\n \"referrals:read\",\n \"referrals:write\",\n \"agentkit:read\",\n \"agentkit:write\",\n \"registry:read\",\n \"registry:write\",\n \"proxy:youtube\",\n \"proxy:web\",\n \"proxy:seo\",\n \"mcp:read\",\n \"mcp:write\",\n \"admin:full\"\n ]\n }\n },\n \"isActive\": {\n \"type\": \"boolean\"\n },\n \"expiresAt\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"format\": \"date-time\"\n },\n \"createdAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"plainKey\": {\n \"type\": \"string\",\n \"description\": \"Full plaintext key \u2014 shown once, never retrievable again\"\n }\n },\n \"required\": [\n \"id\",\n \"name\",\n \"prefix\",\n \"displayPrefix\",\n \"last4\",\n \"scopes\",\n \"isActive\",\n \"expiresAt\",\n \"createdAt\",\n \"plainKey\"\n ]\n },\n \"CreateAdminApiKeyBody\": {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\",\n \"maxLength\": 100,\n \"example\": \"CI deploy key\"\n },\n \"scopes\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\",\n \"enum\": [\n \"orders:read\",\n \"orders:write\",\n \"orders:comp\",\n \"order-followups:read\",\n \"order-followups:write\",\n \"users:read\",\n \"users:write\",\n \"admins:read\",\n \"admins:write\",\n \"invites:read\",\n \"invites:write\",\n \"keys:read\",\n \"keys:write\",\n \"teams:read\",\n \"teams:write\",\n \"blog:read\",\n \"blog:write\",\n \"announcements:read\",\n \"announcements:write\",\n \"changelog:read\",\n \"changelog:write\",\n \"discounts:read\",\n \"discounts:write\",\n \"loyalty:read\",\n \"loyalty:write\",\n \"licenses:read\",\n \"revenue:read\",\n \"revenue:write\",\n \"payouts:read\",\n \"payouts:write\",\n \"referrals:read\",\n \"referrals:write\",\n \"agentkit:read\",\n \"agentkit:write\",\n \"registry:read\",\n \"registry:write\",\n \"proxy:youtube\",\n \"proxy:web\",\n \"proxy:seo\",\n \"mcp:read\",\n \"mcp:write\",\n \"admin:full\"\n ]\n },\n \"minItems\": 1,\n \"description\": \"At least one scope\",\n \"example\": [\n \"orders:read\"\n ]\n },\n \"expiresAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\",\n \"description\": \"Optional future expiry (ISO 8601)\"\n }\n },\n \"required\": [\n \"scopes\"\n ]\n },\n \"ValidateAdminApiKeyResponse\": {\n \"type\": \"object\",\n \"properties\": {\n \"valid\": {\n \"type\": \"boolean\",\n \"example\": true\n },\n \"isActive\": {\n \"type\": \"boolean\"\n },\n \"error\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"valid\"\n ]\n },\n \"RevokeAdminApiKeyResponse\": {\n \"type\": \"object\",\n \"properties\": {\n \"success\": {\n \"type\": \"boolean\",\n \"example\": true\n }\n },\n \"required\": [\n \"success\"\n ]\n },\n \"AdminListResponse\": {\n \"type\": \"object\",\n \"properties\": {\n \"admins\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/AdminUser\"\n },\n \"description\": \"Filtered + paginated admin rows\"\n },\n \"pendingInvites\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/PendingAdminInvite\"\n },\n \"description\": \"First 50 pending invites \u2014 /api/admin/invites is the source of truth\"\n },\n \"stats\": {\n \"type\": \"object\",\n \"properties\": {\n \"totalAdmins\": {\n \"type\": \"integer\",\n \"example\": 5\n },\n \"superAdminCount\": {\n \"type\": \"integer\",\n \"example\": 1\n },\n \"pendingInvites\": {\n \"type\": \"integer\",\n \"description\": \"Unfiltered total pending invite count\"\n }\n },\n \"required\": [\n \"totalAdmins\",\n \"superAdminCount\",\n \"pendingInvites\"\n ]\n },\n \"filteredTotal\": {\n \"type\": \"integer\",\n \"description\": \"Count of admins matching current search \u2014 use for pagination\"\n }\n },\n \"required\": [\n \"admins\",\n \"pendingInvites\",\n \"stats\",\n \"filteredTotal\"\n ]\n },\n \"AdminUser\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"email\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"role\": {\n \"type\": \"string\",\n \"example\": \"admin\"\n },\n \"isSuperAdmin\": {\n \"type\": \"boolean\"\n },\n \"createdAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"updatedAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"permissions\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/components/schemas/AdminPermissionEntry\"\n }\n }\n },\n \"required\": [\n \"id\",\n \"email\",\n \"name\",\n \"role\",\n \"isSuperAdmin\",\n \"createdAt\",\n \"updatedAt\",\n \"permissions\"\n ]\n },\n \"AdminPermissionEntry\": {\n \"type\": \"object\",\n \"properties\": {\n \"canView\": {\n \"type\": \"boolean\"\n },\n \"canEdit\": {\n \"type\": \"boolean\"\n },\n \"canDelete\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"canView\",\n \"canEdit\",\n \"canDelete\"\n ]\n },\n \"PendingAdminInvite\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"email\": {\n \"type\": \"string\"\n },\n \"invitedBy\": {\n \"type\": \"string\"\n },\n \"status\": {\n \"type\": \"string\",\n \"example\": \"pending\"\n },\n \"expiresAt\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"format\": \"date-time\"\n },\n \"createdAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"initialPermissions\": {}\n },\n \"required\": [\n \"id\",\n \"email\",\n \"invitedBy\",\n \"status\",\n \"expiresAt\",\n \"createdAt\"\n ]\n },\n \"AdminDetailResponse\": {\n \"type\": \"object\",\n \"properties\": {\n \"admin\": {\n \"$ref\": \"#/components/schemas/AdminUser\"\n }\n },\n \"required\": [\n \"admin\"\n ]\n },\n \"DemoteAdminResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"success\": {\n \"type\": \"boolean\",\n \"example\": true\n },\n \"message\": {\n \"type\": \"string\",\n \"example\": \"Admin removed successfully\"\n }\n },\n \"required\": [\n \"success\",\n \"message\"\n ]\n },\n \"UpdateAdminPermissionsResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"success\": {\n \"type\": \"boolean\",\n \"example\": true\n },\n \"message\": {\n \"type\": \"string\"\n },\n \"changes\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"domain\": {\n \"type\": \"string\"\n },\n \"action\": {\n \"type\": \"string\",\n \"enum\": [\n \"granted\",\n \"revoked\"\n ]\n }\n },\n \"required\": [\n \"domain\",\n \"action\"\n ]\n }\n }\n },\n \"required\": [\n \"success\",\n \"message\",\n \"changes\"\n ]\n },\n \"UpdateAdminPermissionsBody\": {\n \"type\": \"object\",\n \"properties\": {\n \"permissions\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"domain\": {\n \"type\": \"string\",\n \"enum\": [\n \"users\",\n \"orders\",\n \"payouts\",\n \"revenue\",\n \"discounts\",\n \"blog\",\n \"referrals\",\n \"loyalty\",\n \"teams\",\n \"settings\"\n ]\n },\n \"canView\": {\n \"type\": \"boolean\"\n },\n \"canEdit\": {\n \"type\": \"boolean\"\n },\n \"canDelete\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"domain\"\n ]\n },\n \"description\": \"Per-domain permission flags \u2014 all-false/omitted revokes that domain\"\n }\n },\n \"required\": [\n \"permissions\"\n ]\n },\n \"PromoteAdminResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"success\": {\n \"type\": \"boolean\",\n \"example\": true\n },\n \"message\": {\n \"type\": \"string\",\n \"example\": \"User promoted to admin successfully\"\n }\n },\n \"required\": [\n \"success\",\n \"message\"\n ]\n },\n \"PromoteAdminBody\": {\n \"type\": \"object\",\n \"properties\": {\n \"permissions\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {\n \"canView\": {\n \"type\": \"boolean\"\n },\n \"canEdit\": {\n \"type\": \"boolean\"\n },\n \"canDelete\": {\n \"type\": \"boolean\"\n }\n }\n },\n \"description\": \"Per-domain permissions to grant; ignored if grantAllPermissions is true\"\n },\n \"grantAllPermissions\": {\n \"type\": \"boolean\",\n \"description\": \"Default false\"\n }\n }\n },\n \"AgentKitLicenseList\": {\n \"type\": \"object\",\n \"properties\": {\n \"licenses\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/AgentKitLicense\"\n }\n },\n \"total\": {\n \"type\": \"integer\",\n \"example\": 120\n },\n \"limit\": {\n \"type\": \"integer\",\n \"example\": 50\n },\n \"offset\": {\n \"type\": \"integer\",\n \"example\": 0\n }\n },\n \"required\": [\n \"licenses\",\n \"total\",\n \"limit\",\n \"offset\"\n ]\n },\n \"AgentKitLicense\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"format\": \"uuid\"\n },\n \"userId\": {\n \"type\": \"string\",\n \"format\": \"uuid\"\n },\n \"userEmail\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"format\": \"email\"\n },\n \"orderId\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"format\": \"uuid\"\n },\n \"productType\": {\n \"type\": \"string\",\n \"example\": \"agentkit_app_1_device_yearly\"\n },\n \"productName\": {\n \"type\": \"string\"\n },\n \"planLabel\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"keyPreview\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"description\": \"Truncated key preview (prefix...last4); never the full key\"\n },\n \"deviceLimit\": {\n \"type\": [\n \"integer\",\n \"null\"\n ]\n },\n \"subscriptionStatus\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"currentPeriodEnd\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"format\": \"date-time\"\n },\n \"isActive\": {\n \"type\": \"boolean\"\n },\n \"revokedAt\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"format\": \"date-time\"\n },\n \"canceledAt\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"format\": \"date-time\"\n },\n \"activeDeviceCount\": {\n \"type\": \"integer\"\n },\n \"devices\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/AgentKitLicenseDevice\"\n }\n },\n \"createdAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n }\n },\n \"required\": [\n \"id\",\n \"userId\",\n \"orderId\",\n \"productType\",\n \"productName\",\n \"planLabel\",\n \"keyPreview\",\n \"deviceLimit\",\n \"subscriptionStatus\",\n \"currentPeriodEnd\",\n \"isActive\",\n \"revokedAt\",\n \"canceledAt\",\n \"activeDeviceCount\",\n \"devices\",\n \"createdAt\"\n ]\n },\n \"AgentKitLicenseDevice\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"format\": \"uuid\"\n },\n \"deviceName\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"platform\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"appVersion\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"sessionTokenPrefix\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"sessionTokenLast4\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"activatedAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"lastSeenAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"revokedAt\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"format\": \"date-time\"\n }\n },\n \"required\": [\n \"id\",\n \"deviceName\",\n \"platform\",\n \"appVersion\",\n \"sessionTokenPrefix\",\n \"sessionTokenLast4\",\n \"activatedAt\",\n \"lastSeenAt\",\n \"revokedAt\"\n ]\n },\n \"AgentKitLicenseDetail\": {\n \"type\": \"object\",\n \"properties\": {\n \"license\": {\n \"$ref\": \"#/components/schemas/AgentKitLicense\"\n }\n },\n \"required\": [\n \"license\"\n ]\n },\n \"AgentKitOkResponse\": {\n \"type\": \"object\",\n \"properties\": {\n \"ok\": {\n \"type\": \"boolean\",\n \"enum\": [\n true\n ]\n }\n },\n \"required\": [\n \"ok\"\n ]\n },\n \"AgentKitWaitlistList\": {\n \"type\": \"object\",\n \"properties\": {\n \"signups\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/AgentKitWaitlistSignup\"\n }\n },\n \"total\": {\n \"type\": \"integer\",\n \"example\": 42\n },\n \"limit\": {\n \"type\": \"integer\",\n \"example\": 50\n },\n \"offset\": {\n \"type\": \"integer\",\n \"example\": 0\n }\n },\n \"required\": [\n \"signups\",\n \"total\",\n \"limit\",\n \"offset\"\n ]\n },\n \"AgentKitWaitlistSignup\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"format\": \"uuid\"\n },\n \"email\": {\n \"type\": \"string\",\n \"format\": \"email\"\n },\n \"source\": {\n \"type\": \"string\"\n },\n \"orderId\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"format\": \"uuid\"\n },\n \"productType\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"position\": {\n \"type\": \"integer\"\n },\n \"isEarlyBird\": {\n \"type\": \"boolean\"\n },\n \"earlyBirdLimit\": {\n \"type\": \"integer\"\n },\n \"existing\": {\n \"type\": \"boolean\"\n },\n \"createdAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"confirmedAt\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"format\": \"date-time\"\n }\n },\n \"required\": [\n \"id\",\n \"email\",\n \"source\",\n \"orderId\",\n \"productType\",\n \"position\",\n \"isEarlyBird\",\n \"earlyBirdLimit\",\n \"existing\",\n \"createdAt\",\n \"confirmedAt\"\n ]\n },\n \"AgentKitAppWaitlistConvertResponse\": {\n \"type\": \"object\",\n \"properties\": {\n \"scanned\": {\n \"type\": \"integer\"\n },\n \"issued\": {\n \"type\": \"integer\"\n },\n \"alreadyIssued\": {\n \"type\": \"integer\"\n },\n \"skipped\": {\n \"type\": \"integer\"\n },\n \"failed\": {\n \"type\": \"integer\"\n },\n \"dryRun\": {\n \"type\": \"boolean\"\n },\n \"results\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/WaitlistConversionResult\"\n }\n }\n },\n \"required\": [\n \"scanned\",\n \"issued\",\n \"alreadyIssued\",\n \"skipped\",\n \"failed\",\n \"dryRun\",\n \"results\"\n ]\n },\n \"WaitlistConversionResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"signupId\": {\n \"type\": \"string\",\n \"format\": \"uuid\"\n },\n \"email\": {\n \"type\": \"string\",\n \"format\": \"email\"\n },\n \"outcome\": {\n \"type\": \"string\",\n \"enum\": [\n \"issued\",\n \"already_issued\",\n \"skipped\",\n \"failed\"\n ]\n },\n \"issuedProductType\": {\n \"type\": \"string\",\n \"example\": \"agentkit_app_1_device_yearly\"\n },\n \"reason\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"signupId\",\n \"email\",\n \"outcome\"\n ]\n },\n \"AgentKitAppWaitlistConvertBody\": {\n \"type\": \"object\",\n \"properties\": {\n \"dryRun\": {\n \"type\": \"boolean\",\n \"description\": \"Report what would happen without issuing licenses or emailing\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"minimum\": 1,\n \"maximum\": 1000,\n \"description\": \"Cap signups processed this run (default 500)\",\n \"example\": 25\n }\n }\n },\n \"RegisterKitReleaseResponse\": {\n \"type\": \"object\",\n \"properties\": {\n \"ok\": {\n \"type\": \"boolean\",\n \"enum\": [\n true\n ]\n },\n \"release\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"format\": \"uuid\"\n },\n \"kitId\": {\n \"type\": \"string\"\n },\n \"tier\": {\n \"type\": \"string\",\n \"enum\": [\n \"paid\"\n ]\n },\n \"runtime\": {\n \"type\": \"string\"\n },\n \"version\": {\n \"type\": \"string\"\n },\n \"channel\": {\n \"type\": \"string\"\n },\n \"adapterSchemaVersion\": {\n \"type\": \"string\"\n },\n \"sourceCommit\": {\n \"type\": \"string\"\n },\n \"dependencies\": {\n \"type\": [\n \"array\",\n \"null\"\n ],\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"kitId\": {\n \"type\": \"string\",\n \"enum\": [\n \"core\",\n \"engineer\",\n \"marketing\"\n ]\n },\n \"version\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"sha256\": {\n \"type\": \"string\",\n \"minLength\": 64,\n \"maxLength\": 64\n }\n },\n \"required\": [\n \"kitId\",\n \"version\"\n ]\n }\n },\n \"resolvedFrom\": {\n \"type\": [\n \"array\",\n \"null\"\n ],\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"kitId\": {\n \"type\": \"string\",\n \"enum\": [\n \"core\",\n \"engineer\",\n \"marketing\"\n ]\n },\n \"version\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"sha256\": {\n \"type\": \"string\",\n \"minLength\": 64,\n \"maxLength\": 64\n }\n },\n \"required\": [\n \"kitId\",\n \"version\"\n ]\n }\n },\n \"githubAssets\": {\n \"type\": [\n \"array\",\n \"null\"\n ],\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"kind\": {\n \"type\": \"string\",\n \"enum\": [\n \"archive\",\n \"manifest\",\n \"sha256\"\n ]\n },\n \"name\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"sha256\": {\n \"type\": \"string\",\n \"minLength\": 64,\n \"maxLength\": 64\n },\n \"size\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0\n }\n },\n \"required\": [\n \"kind\",\n \"name\",\n \"sha256\",\n \"size\"\n ]\n }\n },\n \"r2Key\": {\n \"type\": \"string\"\n },\n \"sha256\": {\n \"type\": \"string\"\n },\n \"sizeBytes\": {\n \"type\": \"integer\"\n },\n \"requiredCliVersion\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"publishedAt\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"format\": \"date-time\"\n },\n \"isActive\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"id\",\n \"kitId\",\n \"tier\",\n \"runtime\",\n \"version\",\n \"channel\",\n \"adapterSchemaVersion\",\n \"sourceCommit\",\n \"r2Key\",\n \"sha256\",\n \"sizeBytes\",\n \"requiredCliVersion\",\n \"isActive\"\n ],\n \"additionalProperties\": {}\n }\n },\n \"required\": [\n \"ok\",\n \"release\"\n ]\n },\n \"RegisterKitReleaseBody\": {\n \"type\": \"object\",\n \"properties\": {\n \"kitId\": {\n \"type\": \"string\",\n \"enum\": [\n \"engineer\",\n \"marketing\"\n ]\n },\n \"tier\": {\n \"type\": \"string\",\n \"enum\": [\n \"paid\"\n ],\n \"description\": \"Defaults to `paid`\"\n },\n \"runtime\": {\n \"type\": \"string\",\n \"enum\": [\n \"claude-code\",\n \"codex\",\n \"cursor\"\n ]\n },\n \"version\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"example\": \"1.4.0\"\n },\n \"channel\": {\n \"type\": \"string\",\n \"enum\": [\n \"dev\",\n \"beta\",\n \"stable\"\n ],\n \"description\": \"Defaults to `stable`\"\n },\n \"adapterSchemaVersion\": {\n \"type\": \"string\",\n \"enum\": [\n \"agentkit-adapter.v1\"\n ]\n },\n \"sourceCommit\": {\n \"type\": \"string\",\n \"minLength\": 7,\n \"maxLength\": 40\n },\n \"dependencies\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"kitId\": {\n \"type\": \"string\",\n \"enum\": [\n \"core\",\n \"engineer\",\n \"marketing\"\n ]\n },\n \"version\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"sha256\": {\n \"type\": \"string\",\n \"minLength\": 64,\n \"maxLength\": 64\n }\n },\n \"required\": [\n \"kitId\",\n \"version\"\n ]\n },\n \"maxItems\": 32\n },\n \"resolvedFrom\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"kitId\": {\n \"type\": \"string\",\n \"enum\": [\n \"core\",\n \"engineer\",\n \"marketing\"\n ]\n },\n \"version\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"sha256\": {\n \"type\": \"string\",\n \"minLength\": 64,\n \"maxLength\": 64\n }\n },\n \"required\": [\n \"kitId\",\n \"version\"\n ]\n },\n \"maxItems\": 32\n },\n \"githubAssets\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"kind\": {\n \"type\": \"string\",\n \"enum\": [\n \"archive\",\n \"manifest\",\n \"sha256\"\n ]\n },\n \"name\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"sha256\": {\n \"type\": \"string\",\n \"minLength\": 64,\n \"maxLength\": 64\n },\n \"size\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0\n }\n },\n \"required\": [\n \"kind\",\n \"name\",\n \"sha256\",\n \"size\"\n ]\n },\n \"maxItems\": 16\n },\n \"r2Key\": {\n \"type\": \"string\",\n \"minLength\": 1\n },\n \"sha256\": {\n \"type\": \"string\",\n \"minLength\": 64,\n \"maxLength\": 64\n },\n \"sizeBytes\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0\n },\n \"requiredCliVersion\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"publishedAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"isActive\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"kitId\",\n \"runtime\",\n \"version\",\n \"adapterSchemaVersion\",\n \"sourceCommit\",\n \"r2Key\",\n \"sha256\",\n \"sizeBytes\"\n ]\n },\n \"ChangeLicenseGithubUsernameResponse\": {\n \"type\": \"object\",\n \"properties\": {\n \"success\": {\n \"type\": \"boolean\",\n \"enum\": [\n true\n ]\n },\n \"oldUsername\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"newUsername\": {\n \"type\": \"string\"\n },\n \"requiresRevoke\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"success\",\n \"oldUsername\",\n \"newUsername\",\n \"requiresRevoke\"\n ]\n },\n \"ChangeLicenseGithubUsernameBody\": {\n \"type\": \"object\",\n \"properties\": {\n \"githubUsername\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 39,\n \"description\": \"Valid GitHub username\",\n \"example\": \"octocat\"\n },\n \"skipRevoke\": {\n \"type\": \"boolean\",\n \"description\": \"Skip revoking the previous collaborator (e.g. they already lost access)\"\n }\n },\n \"required\": [\n \"githubUsername\"\n ]\n },\n \"AnnouncementListResponse\": {\n \"type\": \"object\",\n \"properties\": {\n \"items\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/Announcement\"\n }\n },\n \"pagination\": {\n \"$ref\": \"#/components/schemas/AnnouncementPagination\"\n }\n },\n \"required\": [\n \"items\",\n \"pagination\"\n ]\n },\n \"Announcement\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"format\": \"uuid\"\n },\n \"title\": {\n \"type\": \"string\",\n \"example\": \"Maintenance window\"\n },\n \"message\": {\n \"type\": \"string\"\n },\n \"displayType\": {\n \"type\": \"string\",\n \"enum\": [\n \"popup_banner\",\n \"bottom_status_highlight\"\n ]\n },\n \"severity\": {\n \"type\": \"string\",\n \"enum\": [\n \"info\",\n \"success\",\n \"warning\",\n \"critical\",\n \"promo\"\n ]\n },\n \"ctaLabel\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"ctaUrl\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"startsAt\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"format\": \"date-time\"\n },\n \"endsAt\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"format\": \"date-time\"\n },\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"priority\": {\n \"type\": \"integer\"\n },\n \"dismissible\": {\n \"type\": \"boolean\"\n },\n \"dismissKey\": {\n \"type\": \"string\"\n },\n \"targeting\": {\n \"$ref\": \"#/components/schemas/AnnouncementTargeting\"\n },\n \"createdBy\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"format\": \"uuid\"\n },\n \"createdAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"updatedAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n }\n },\n \"required\": [\n \"id\",\n \"title\",\n \"message\",\n \"displayType\",\n \"severity\",\n \"ctaLabel\",\n \"ctaUrl\",\n \"startsAt\",\n \"endsAt\",\n \"enabled\",\n \"priority\",\n \"dismissible\",\n \"dismissKey\",\n \"targeting\",\n \"createdBy\",\n \"createdAt\",\n \"updatedAt\"\n ]\n },\n \"AnnouncementTargeting\": {\n \"type\": [\n \"object\",\n \"null\"\n ],\n \"properties\": {\n \"platforms\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\",\n \"enum\": [\n \"darwin\",\n \"win32\",\n \"linux\"\n ]\n }\n },\n \"minAppVersion\": {\n \"type\": \"string\"\n },\n \"maxAppVersion\": {\n \"type\": \"string\"\n }\n }\n },\n \"AnnouncementPagination\": {\n \"type\": \"object\",\n \"properties\": {\n \"limit\": {\n \"type\": \"integer\",\n \"example\": 20\n },\n \"offset\": {\n \"type\": \"integer\",\n \"example\": 0\n },\n \"total\": {\n \"type\": \"integer\",\n \"example\": 5\n }\n },\n \"required\": [\n \"limit\",\n \"offset\",\n \"total\"\n ]\n },\n \"AnnouncementResponse\": {\n \"type\": \"object\",\n \"properties\": {\n \"announcement\": {\n \"$ref\": \"#/components/schemas/Announcement\"\n }\n },\n \"required\": [\n \"announcement\"\n ]\n },\n \"AnnouncementValidationError\": {\n \"type\": \"object\",\n \"properties\": {\n \"error\": {\n \"type\": \"string\",\n \"example\": \"Invalid request\"\n },\n \"fieldErrors\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"required\": [\n \"error\",\n \"fieldErrors\"\n ]\n },\n \"CreateAnnouncementBody\": {\n \"type\": \"object\",\n \"properties\": {\n \"title\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 200\n },\n \"message\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 2000\n },\n \"displayType\": {\n \"type\": \"string\",\n \"enum\": [\n \"popup_banner\",\n \"bottom_status_highlight\"\n ]\n },\n \"severity\": {\n \"type\": \"string\",\n \"enum\": [\n \"info\",\n \"success\",\n \"warning\",\n \"critical\",\n \"promo\"\n ],\n \"description\": \"Defaults to `info`\"\n },\n \"ctaLabel\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"maxLength\": 80\n },\n \"ctaUrl\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"format\": \"uri\",\n \"description\": \"Must be https and on the allowed host list\"\n },\n \"startsAt\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"format\": \"date-time\"\n },\n \"endsAt\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"format\": \"date-time\"\n },\n \"enabled\": {\n \"type\": \"boolean\",\n \"description\": \"Defaults to `true`\"\n },\n \"priority\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 1000,\n \"description\": \"Defaults to `0`\"\n },\n \"dismissible\": {\n \"type\": \"boolean\",\n \"description\": \"Defaults to `true`\"\n },\n \"dismissKey\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 100\n },\n \"targeting\": {\n \"$ref\": \"#/components/schemas/AnnouncementTargeting\"\n }\n },\n \"required\": [\n \"title\",\n \"message\",\n \"displayType\"\n ]\n },\n \"UpdateAnnouncementBody\": {\n \"type\": \"object\",\n \"properties\": {\n \"title\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 200\n },\n \"message\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 2000\n },\n \"displayType\": {\n \"type\": \"string\",\n \"enum\": [\n \"popup_banner\",\n \"bottom_status_highlight\"\n ]\n },\n \"severity\": {\n \"type\": \"string\",\n \"enum\": [\n \"info\",\n \"success\",\n \"warning\",\n \"critical\",\n \"promo\"\n ],\n \"description\": \"Defaults to `info`\"\n },\n \"ctaLabel\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"maxLength\": 80\n },\n \"ctaUrl\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"format\": \"uri\",\n \"description\": \"Must be https and on the allowed host list\"\n },\n \"startsAt\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"format\": \"date-time\"\n },\n \"endsAt\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"format\": \"date-time\"\n },\n \"enabled\": {\n \"type\": \"boolean\",\n \"description\": \"Defaults to `true`\"\n },\n \"priority\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 1000,\n \"description\": \"Defaults to `0`\"\n },\n \"dismissible\": {\n \"type\": \"boolean\",\n \"description\": \"Defaults to `true`\"\n },\n \"dismissKey\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 100\n },\n \"targeting\": {\n \"$ref\": \"#/components/schemas/AnnouncementTargeting\"\n }\n }\n },\n \"DeleteAnnouncementResponse\": {\n \"type\": \"object\",\n \"properties\": {\n \"success\": {\n \"type\": \"boolean\",\n \"enum\": [\n true\n ]\n }\n },\n \"required\": [\n \"success\"\n ]\n },\n \"BlogArticleList\": {\n \"type\": \"object\",\n \"properties\": {\n \"articles\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/BlogArticleSummary\"\n }\n },\n \"pagination\": {\n \"type\": \"object\",\n \"properties\": {\n \"page\": {\n \"type\": \"integer\",\n \"example\": 1\n },\n \"limit\": {\n \"type\": \"integer\",\n \"example\": 20\n },\n \"total\": {\n \"type\": \"integer\",\n \"example\": 128\n },\n \"totalPages\": {\n \"type\": \"integer\",\n \"example\": 7\n }\n },\n \"required\": [\n \"page\",\n \"limit\",\n \"total\",\n \"totalPages\"\n ]\n }\n },\n \"required\": [\n \"articles\",\n \"pagination\"\n ]\n },\n \"BlogArticleSummary\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"slug\": {\n \"type\": \"string\"\n },\n \"title\": {\n \"type\": \"string\"\n },\n \"status\": {\n \"type\": \"string\",\n \"enum\": [\n \"draft\",\n \"scheduled\",\n \"published\",\n \"archived\"\n ],\n \"description\": \"Article lifecycle status\"\n },\n \"authorId\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"publicAuthorId\": {\n \"type\": \"string\"\n },\n \"publishedAt\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"format\": \"date-time\"\n },\n \"scheduledFor\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"format\": \"date-time\"\n },\n \"readingTimeMinutes\": {\n \"type\": [\n \"integer\",\n \"null\"\n ]\n },\n \"viewCount\": {\n \"type\": [\n \"integer\",\n \"null\"\n ]\n },\n \"isFeatured\": {\n \"type\": \"boolean\"\n },\n \"createdAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"updatedAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"localization\": {\n \"type\": [\n \"object\",\n \"null\"\n ],\n \"properties\": {\n \"articleId\": {\n \"type\": \"string\"\n },\n \"locale\": {\n \"type\": \"string\"\n },\n \"slug\": {\n \"type\": \"string\"\n },\n \"title\": {\n \"type\": \"string\"\n },\n \"status\": {\n \"type\": \"string\",\n \"enum\": [\n \"draft\",\n \"published\",\n \"archived\"\n ],\n \"description\": \"Localization review status\"\n },\n \"reviewedAt\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"format\": \"date-time\"\n },\n \"publishedAt\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"format\": \"date-time\"\n },\n \"updatedAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n }\n },\n \"required\": [\n \"articleId\",\n \"locale\",\n \"slug\",\n \"title\",\n \"status\",\n \"reviewedAt\",\n \"publishedAt\",\n \"updatedAt\"\n ],\n \"description\": \"Korean (ko) localization summary, if any\"\n },\n \"categoryIds\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n },\n \"description\": \"Attached category ids\"\n }\n },\n \"required\": [\n \"id\",\n \"slug\",\n \"title\",\n \"status\",\n \"authorId\",\n \"publicAuthorId\",\n \"publishedAt\",\n \"scheduledFor\",\n \"readingTimeMinutes\",\n \"viewCount\",\n \"isFeatured\",\n \"createdAt\",\n \"updatedAt\",\n \"localization\",\n \"categoryIds\"\n ],\n \"additionalProperties\": {},\n \"description\": \"Full article record (additional columns may be present)\"\n },\n \"ArticleLocalizationSourceDetail\": {\n \"type\": \"object\",\n \"properties\": {\n \"source\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"slug\": {\n \"type\": \"string\"\n },\n \"title\": {\n \"type\": \"string\"\n },\n \"status\": {\n \"type\": \"string\",\n \"enum\": [\n \"draft\",\n \"scheduled\",\n \"published\",\n \"archived\"\n ],\n \"description\": \"Article lifecycle status\"\n },\n \"canonicalPath\": {\n \"type\": \"string\",\n \"description\": \"Public canonical English article path\"\n }\n },\n \"required\": [\n \"id\",\n \"slug\",\n \"title\",\n \"status\",\n \"canonicalPath\"\n ],\n \"description\": \"Source (English) article summary\"\n },\n \"localization\": {\n \"$ref\": \"#/components/schemas/ArticleLocalization\"\n }\n },\n \"required\": [\n \"source\",\n \"localization\"\n ]\n },\n \"ArticleLocalization\": {\n \"type\": [\n \"object\",\n \"null\"\n ],\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"articleId\": {\n \"type\": \"string\"\n },\n \"locale\": {\n \"type\": \"string\",\n \"enum\": [\n \"ko\"\n ]\n },\n \"slug\": {\n \"type\": \"string\"\n },\n \"title\": {\n \"type\": \"string\"\n },\n \"content\": {\n \"type\": \"string\"\n },\n \"contentHtml\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"excerpt\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"readingTimeMinutes\": {\n \"type\": \"integer\"\n },\n \"status\": {\n \"type\": \"string\",\n \"enum\": [\n \"draft\",\n \"published\",\n \"archived\"\n ],\n \"description\": \"Localization review status\"\n },\n \"metaTitle\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"metaDescription\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"metaKeywords\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"ogImage\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"reviewedBy\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"reviewedAt\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"format\": \"date-time\"\n },\n \"publishedAt\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"format\": \"date-time\"\n },\n \"createdAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"updatedAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n }\n },\n \"required\": [\n \"id\",\n \"articleId\",\n \"locale\",\n \"slug\",\n \"title\",\n \"content\",\n \"contentHtml\",\n \"excerpt\",\n \"readingTimeMinutes\",\n \"status\",\n \"metaTitle\",\n \"metaDescription\",\n \"metaKeywords\",\n \"ogImage\",\n \"reviewedBy\",\n \"reviewedAt\",\n \"publishedAt\",\n \"createdAt\",\n \"updatedAt\"\n ]\n },\n \"ArticleLocalizationUpsertBody\": {\n \"type\": \"object\",\n \"properties\": {\n \"action\": {\n \"type\": \"string\",\n \"enum\": [\n \"draft\",\n \"publish\",\n \"archive\"\n ],\n \"description\": \"Transition to apply to the localization\"\n },\n \"slug\": {\n \"type\": \"string\",\n \"description\": \"Lowercase letters/numbers with single hyphens\"\n },\n \"title\": {\n \"type\": \"string\"\n },\n \"content\": {\n \"type\": \"string\",\n \"description\": \"Localized source content\"\n },\n \"contentHtml\": {\n \"type\": \"string\",\n \"description\": \"Localized rendered HTML\"\n },\n \"excerpt\": {\n \"type\": \"string\"\n },\n \"readingTimeMinutes\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 1440\n },\n \"metaTitle\": {\n \"type\": \"string\"\n },\n \"metaDescription\": {\n \"type\": \"string\"\n },\n \"metaKeywords\": {\n \"type\": \"string\"\n },\n \"ogImage\": {\n \"type\": \"string\",\n \"description\": \"Absolute site path or an approved HTTPS URL\"\n }\n },\n \"required\": [\n \"action\"\n ]\n },\n \"BlogAttachResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"attached\": {\n \"type\": \"boolean\",\n \"description\": \"True if a new link row was inserted\"\n },\n \"alreadyExisted\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"attached\",\n \"alreadyExisted\"\n ]\n },\n \"BlogDetachResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"detached\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"detached\"\n ]\n },\n \"BlogCategoryList\": {\n \"type\": \"object\",\n \"properties\": {\n \"items\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/BlogCategory\"\n }\n }\n },\n \"required\": [\n \"items\"\n ]\n },\n \"BlogCategory\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"importId\": {\n \"type\": \"integer\"\n },\n \"slug\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"description\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"parentId\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"createdAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n }\n },\n \"required\": [\n \"id\",\n \"importId\",\n \"slug\",\n \"name\",\n \"description\",\n \"parentId\",\n \"createdAt\"\n ]\n },\n \"BlogCategoryDetail\": {\n \"type\": \"object\",\n \"properties\": {\n \"category\": {\n \"$ref\": \"#/components/schemas/BlogCategory\"\n }\n },\n \"required\": [\n \"category\"\n ]\n },\n \"BlogCategoryCreateBody\": {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 120\n },\n \"slug\": {\n \"type\": \"string\",\n \"maxLength\": 80,\n \"description\": \"Lowercase alphanumeric with hyphens; derived from name if omitted\"\n },\n \"description\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"maxLength\": 2000\n },\n \"parentId\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"format\": \"uuid\",\n \"description\": \"Parent category id\"\n }\n },\n \"required\": [\n \"name\"\n ]\n },\n \"BlogCategoryUpdateBody\": {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 120\n },\n \"slug\": {\n \"type\": \"string\",\n \"maxLength\": 80,\n \"description\": \"Lowercase alphanumeric with hyphens; derived from name if omitted\"\n },\n \"description\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"maxLength\": 2000\n },\n \"parentId\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"format\": \"uuid\",\n \"description\": \"Parent category id\"\n }\n }\n },\n \"BlogCategoryDeleteResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"deleted\": {\n \"type\": \"boolean\",\n \"enum\": [\n true\n ]\n },\n \"disassociatedArticles\": {\n \"type\": \"integer\",\n \"description\": \"Articles detached when force=true\"\n }\n },\n \"required\": [\n \"deleted\",\n \"disassociatedArticles\"\n ]\n },\n \"BlogTagList\": {\n \"type\": \"object\",\n \"properties\": {\n \"items\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/BlogTag\"\n }\n }\n },\n \"required\": [\n \"items\"\n ]\n },\n \"BlogTag\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"slug\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"description\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"createdAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n }\n },\n \"required\": [\n \"id\",\n \"slug\",\n \"name\",\n \"description\",\n \"createdAt\"\n ]\n },\n \"BlogTagDetail\": {\n \"type\": \"object\",\n \"properties\": {\n \"tag\": {\n \"$ref\": \"#/components/schemas/BlogTag\"\n }\n },\n \"required\": [\n \"tag\"\n ]\n },\n \"BlogTagCreateBody\": {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 120\n },\n \"slug\": {\n \"type\": \"string\",\n \"maxLength\": 80,\n \"description\": \"Lowercase alphanumeric with hyphens; derived from name if omitted\"\n },\n \"description\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"maxLength\": 2000\n }\n },\n \"required\": [\n \"name\"\n ]\n },\n \"BlogTagUpdateBody\": {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 120\n },\n \"slug\": {\n \"type\": \"string\",\n \"maxLength\": 80,\n \"description\": \"Lowercase alphanumeric with hyphens; derived from name if omitted\"\n },\n \"description\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"maxLength\": 2000\n }\n }\n },\n \"BlogTagDeleteResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"deleted\": {\n \"type\": \"boolean\",\n \"enum\": [\n true\n ]\n },\n \"disassociatedArticles\": {\n \"type\": \"integer\",\n \"description\": \"Articles detached when force=true\"\n }\n },\n \"required\": [\n \"deleted\",\n \"disassociatedArticles\"\n ]\n },\n \"ChangelogLocalizationDetail\": {\n \"type\": \"object\",\n \"properties\": {\n \"localization\": {\n \"$ref\": \"#/components/schemas/ChangelogLocalization\"\n }\n },\n \"required\": [\n \"localization\"\n ]\n },\n \"ChangelogLocalization\": {\n \"type\": [\n \"object\",\n \"null\"\n ],\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"repository\": {\n \"type\": \"string\",\n \"enum\": [\n \"engineer\",\n \"marketing\",\n \"cli\"\n ],\n \"description\": \"Source repository the release belongs to\"\n },\n \"githubReleaseId\": {\n \"type\": \"integer\",\n \"description\": \"Upstream GitHub release id\",\n \"example\": 123456789\n },\n \"locale\": {\n \"type\": \"string\",\n \"enum\": [\n \"ko\"\n ]\n },\n \"title\": {\n \"type\": \"string\"\n },\n \"bodyMarkdown\": {\n \"type\": \"string\"\n },\n \"status\": {\n \"type\": \"string\",\n \"enum\": [\n \"draft\",\n \"published\",\n \"archived\"\n ],\n \"description\": \"Localization review status\"\n },\n \"reviewedBy\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"reviewedAt\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"format\": \"date-time\"\n },\n \"publishedAt\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"format\": \"date-time\"\n },\n \"createdAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"updatedAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n }\n },\n \"required\": [\n \"id\",\n \"repository\",\n \"githubReleaseId\",\n \"locale\",\n \"title\",\n \"bodyMarkdown\",\n \"status\",\n \"reviewedBy\",\n \"reviewedAt\",\n \"publishedAt\",\n \"createdAt\",\n \"updatedAt\"\n ]\n },\n \"ChangelogLocalizationUpsertResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"localization\": {\n \"$ref\": \"#/components/schemas/ChangelogLocalization\"\n }\n },\n \"required\": [\n \"localization\"\n ]\n },\n \"ChangelogLocalizationUpsertBody\": {\n \"type\": \"object\",\n \"properties\": {\n \"action\": {\n \"type\": \"string\",\n \"enum\": [\n \"draft\",\n \"publish\",\n \"archive\"\n ],\n \"description\": \"Transition to apply to the localization\"\n },\n \"title\": {\n \"type\": \"string\"\n },\n \"bodyMarkdown\": {\n \"type\": \"string\",\n \"description\": \"Localized release notes (Markdown)\"\n }\n },\n \"required\": [\n \"action\"\n ]\n },\n \"DiscountList\": {\n \"type\": \"object\",\n \"properties\": {\n \"discounts\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/NormalizedDiscount\"\n }\n },\n \"pagination\": {\n \"type\": \"object\",\n \"properties\": {\n \"page\": {\n \"type\": \"integer\"\n },\n \"limit\": {\n \"type\": \"integer\"\n },\n \"maxPage\": {\n \"type\": \"integer\"\n },\n \"pageItemCount\": {\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"page\",\n \"limit\",\n \"maxPage\",\n \"pageItemCount\"\n ]\n },\n \"products\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Product-key to Polar product-id map\",\n \"example\": {\n \"ENGINEER_KIT\": \"prod_xxx\"\n }\n }\n },\n \"required\": [\n \"discounts\",\n \"pagination\",\n \"products\"\n ]\n },\n \"NormalizedDiscount\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"code\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\",\n \"enum\": [\n \"percentage\",\n \"fixed\"\n ]\n },\n \"basisPoints\": {\n \"type\": [\n \"integer\",\n \"null\"\n ]\n },\n \"amount\": {\n \"type\": [\n \"integer\",\n \"null\"\n ]\n },\n \"currency\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"startsAt\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"format\": \"date-time\"\n },\n \"endsAt\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"format\": \"date-time\"\n },\n \"maxRedemptions\": {\n \"type\": [\n \"integer\",\n \"null\"\n ]\n },\n \"redemptionsCount\": {\n \"type\": \"integer\"\n },\n \"products\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"id\"\n ]\n }\n }\n },\n \"required\": [\n \"id\",\n \"code\",\n \"name\",\n \"type\",\n \"basisPoints\",\n \"amount\",\n \"currency\",\n \"startsAt\",\n \"endsAt\",\n \"maxRedemptions\",\n \"redemptionsCount\",\n \"products\"\n ]\n },\n \"DiscountDetail\": {\n \"type\": \"object\",\n \"properties\": {\n \"discount\": {\n \"$ref\": \"#/components/schemas/NormalizedDiscount\"\n }\n },\n \"required\": [\n \"discount\"\n ]\n },\n \"CreateDiscountBody\": {\n \"type\": \"object\",\n \"properties\": {\n \"code\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"description\": \"Discount code (upper-cased server-side)\",\n \"example\": \"SUMMER25\"\n },\n \"type\": {\n \"type\": \"string\",\n \"enum\": [\n \"percentage\",\n \"fixed\"\n ]\n },\n \"amount\": {\n \"type\": \"integer\",\n \"description\": \"Required when type=fixed (USD cents)\",\n \"example\": 500\n },\n \"basisPoints\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 10000,\n \"description\": \"Required when type=percentage\",\n \"example\": 1000\n },\n \"startsAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"endsAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"maxRedemptions\": {\n \"type\": \"integer\"\n },\n \"products\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n },\n \"description\": \"Polar product ids to restrict the discount to\"\n }\n },\n \"required\": [\n \"code\",\n \"type\"\n ]\n },\n \"DiscountsSyncStatus\": {\n \"type\": \"object\",\n \"properties\": {\n \"total\": {\n \"type\": \"integer\"\n },\n \"synced\": {\n \"type\": \"integer\"\n },\n \"pending\": {\n \"type\": \"integer\"\n },\n \"errors\": {\n \"type\": \"integer\"\n },\n \"errorDetails\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"code\": {\n \"type\": \"string\"\n },\n \"error\": {\n \"type\": \"string\"\n },\n \"lastAttempt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n }\n },\n \"required\": [\n \"id\",\n \"code\",\n \"error\",\n \"lastAttempt\"\n ]\n }\n }\n },\n \"required\": [\n \"total\",\n \"synced\",\n \"pending\",\n \"errors\",\n \"errorDetails\"\n ]\n },\n \"UpdateDiscountResponse\": {\n \"type\": \"object\",\n \"properties\": {\n \"discount\": {\n \"type\": \"object\",\n \"additionalProperties\": {},\n \"description\": \"Raw Polar SDK discount object (unnormalized, unlike list/create)\"\n }\n },\n \"required\": [\n \"discount\"\n ]\n },\n \"UpdateDiscountBody\": {\n \"type\": \"object\",\n \"properties\": {\n \"code\": {\n \"type\": \"string\"\n },\n \"amount\": {\n \"type\": \"integer\"\n },\n \"basisPoints\": {\n \"type\": \"integer\"\n },\n \"startsAt\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"format\": \"date-time\"\n },\n \"endsAt\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"format\": \"date-time\"\n },\n \"maxRedemptions\": {\n \"type\": [\n \"integer\",\n \"null\"\n ]\n },\n \"products\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"DeleteDiscountResponse\": {\n \"type\": \"object\",\n \"properties\": {\n \"success\": {\n \"type\": \"boolean\",\n \"example\": true\n },\n \"message\": {\n \"type\": \"string\",\n \"example\": \"Already deleted\"\n }\n },\n \"required\": [\n \"success\"\n ]\n },\n \"DiscountGroupList\": {\n \"type\": \"object\",\n \"properties\": {\n \"items\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/DiscountGroupRecord\"\n }\n },\n \"total\": {\n \"type\": \"integer\"\n },\n \"page\": {\n \"type\": \"integer\"\n },\n \"limit\": {\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"items\",\n \"total\",\n \"page\",\n \"limit\"\n ]\n },\n \"DiscountGroupRecord\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"format\": \"uuid\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"prefix\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\",\n \"enum\": [\n \"percentage\",\n \"fixed\"\n ]\n },\n \"basisPoints\": {\n \"type\": [\n \"integer\",\n \"null\"\n ]\n },\n \"amount\": {\n \"type\": [\n \"integer\",\n \"null\"\n ]\n },\n \"currency\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"duration\": {\n \"type\": \"string\",\n \"enum\": [\n \"once\",\n \"repeating\",\n \"forever\"\n ]\n },\n \"durationInMonths\": {\n \"type\": [\n \"integer\",\n \"null\"\n ]\n },\n \"maxRedemptionsPerCode\": {\n \"type\": [\n \"integer\",\n \"null\"\n ]\n },\n \"startsAt\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"format\": \"date-time\"\n },\n \"endsAt\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"format\": \"date-time\"\n },\n \"products\": {\n \"type\": [\n \"array\",\n \"null\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"metadata\": {},\n \"codesGenerated\": {\n \"type\": \"integer\"\n },\n \"codesUsed\": {\n \"type\": \"integer\"\n },\n \"createdAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"updatedAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n }\n },\n \"required\": [\n \"id\",\n \"name\",\n \"prefix\",\n \"type\",\n \"basisPoints\",\n \"amount\",\n \"currency\",\n \"duration\",\n \"durationInMonths\",\n \"maxRedemptionsPerCode\",\n \"startsAt\",\n \"endsAt\",\n \"products\",\n \"codesGenerated\",\n \"codesUsed\",\n \"createdAt\",\n \"updatedAt\"\n ],\n \"additionalProperties\": {}\n },\n \"DiscountGroupDetail\": {\n \"type\": \"object\",\n \"properties\": {\n \"group\": {\n \"$ref\": \"#/components/schemas/DiscountGroupRecord\"\n }\n },\n \"required\": [\n \"group\"\n ]\n },\n \"CreateDiscountGroupBody\": {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 100\n },\n \"prefix\": {\n \"type\": \"string\",\n \"minLength\": 3,\n \"maxLength\": 20\n },\n \"type\": {\n \"type\": \"string\",\n \"enum\": [\n \"percentage\",\n \"fixed\"\n ]\n },\n \"basisPoints\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"minimum\": 0,\n \"maximum\": 10000\n },\n \"amount\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"minimum\": 0\n },\n \"currency\": {\n \"type\": \"string\",\n \"default\": \"usd\"\n },\n \"duration\": {\n \"type\": \"string\",\n \"enum\": [\n \"once\",\n \"repeating\",\n \"forever\"\n ],\n \"default\": \"once\"\n },\n \"durationInMonths\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"minimum\": 1,\n \"maximum\": 24\n },\n \"maxRedemptionsPerCode\": {\n \"type\": \"number\",\n \"minimum\": 1,\n \"default\": 1\n },\n \"startsAt\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"endsAt\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"products\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\n \"name\",\n \"prefix\",\n \"type\"\n ]\n },\n \"UpdateDiscountGroupBody\": {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 100\n },\n \"prefix\": {\n \"type\": \"string\",\n \"minLength\": 3,\n \"maxLength\": 20\n },\n \"type\": {\n \"type\": \"string\",\n \"enum\": [\n \"percentage\",\n \"fixed\"\n ]\n },\n \"basisPoints\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"minimum\": 0,\n \"maximum\": 10000\n },\n \"amount\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"minimum\": 0\n },\n \"currency\": {\n \"type\": \"string\",\n \"default\": \"usd\"\n },\n \"duration\": {\n \"type\": \"string\",\n \"enum\": [\n \"once\",\n \"repeating\",\n \"forever\"\n ],\n \"default\": \"once\"\n },\n \"durationInMonths\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"minimum\": 1,\n \"maximum\": 24\n },\n \"maxRedemptionsPerCode\": {\n \"type\": \"number\",\n \"minimum\": 1,\n \"default\": 1\n },\n \"startsAt\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"endsAt\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"products\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"DeleteDiscountGroupResponse\": {\n \"type\": \"object\",\n \"properties\": {\n \"deleted\": {\n \"type\": \"integer\",\n \"description\": \"Child discount codes soft-deleted\",\n \"example\": 12\n },\n \"polarDeleted\": {\n \"type\": \"integer\",\n \"example\": 10\n },\n \"polarFailures\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"code\": {\n \"type\": \"string\"\n },\n \"error\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"code\",\n \"error\"\n ]\n }\n },\n \"backgrounded\": {\n \"type\": \"integer\",\n \"description\": \"Polar deletions continuing in background after a 100-item sync cap\",\n \"example\": 0\n }\n },\n \"required\": [\n \"deleted\",\n \"polarDeleted\",\n \"polarFailures\",\n \"backgrounded\"\n ]\n },\n \"GenerateGroupCodesResponse\": {\n \"type\": \"object\",\n \"properties\": {\n \"generated\": {\n \"type\": \"integer\",\n \"example\": 10\n },\n \"codes\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n },\n \"example\": [\n \"PROMO-AB12CD\"\n ]\n }\n },\n \"required\": [\n \"generated\",\n \"codes\"\n ]\n },\n \"GenerateGroupCodesBody\": {\n \"type\": \"object\",\n \"properties\": {\n \"count\": {\n \"type\": \"integer\",\n \"minimum\": 1,\n \"maximum\": 100,\n \"description\": \"Number of codes to generate (1-100)\",\n \"example\": 10\n }\n },\n \"required\": [\n \"count\"\n ]\n },\n \"InviteList\": {\n \"type\": \"object\",\n \"properties\": {\n \"invites\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/InviteSummary\"\n }\n },\n \"total\": {\n \"type\": \"integer\",\n \"example\": 4\n }\n },\n \"required\": [\n \"invites\",\n \"total\"\n ]\n },\n \"InviteSummary\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"format\": \"uuid\"\n },\n \"email\": {\n \"type\": \"string\",\n \"format\": \"email\"\n },\n \"invitedBy\": {\n \"type\": \"string\",\n \"format\": \"uuid\"\n },\n \"status\": {\n \"type\": \"string\",\n \"enum\": [\n \"pending\",\n \"accepted\",\n \"expired\",\n \"revoked\"\n ]\n },\n \"expiresAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"createdAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"initialPermissions\": {\n \"type\": [\n \"object\",\n \"null\"\n ],\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {\n \"canView\": {\n \"type\": \"boolean\"\n },\n \"canEdit\": {\n \"type\": \"boolean\"\n },\n \"canDelete\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"canView\",\n \"canEdit\",\n \"canDelete\"\n ]\n },\n \"description\": \"Per-domain permissions to grant on accept, keyed by domain name\"\n },\n \"inviterName\": {\n \"type\": \"string\",\n \"description\": \"Inviter display name, falling back to email or \\\"Unknown\\\"\"\n }\n },\n \"required\": [\n \"id\",\n \"email\",\n \"invitedBy\",\n \"status\",\n \"expiresAt\",\n \"createdAt\",\n \"initialPermissions\",\n \"inviterName\"\n ]\n },\n \"CreateInviteResponse\": {\n \"type\": \"object\",\n \"properties\": {\n \"success\": {\n \"type\": \"boolean\",\n \"enum\": [\n true\n ]\n },\n \"invite\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"format\": \"uuid\"\n },\n \"email\": {\n \"type\": \"string\",\n \"format\": \"email\"\n },\n \"expiresAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n }\n },\n \"required\": [\n \"id\",\n \"email\",\n \"expiresAt\"\n ]\n },\n \"emailSent\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"success\",\n \"invite\",\n \"emailSent\"\n ]\n },\n \"CreateInviteBody\": {\n \"type\": \"object\",\n \"properties\": {\n \"email\": {\n \"type\": \"string\",\n \"format\": \"email\",\n \"example\": \"new-admin@example.com\"\n },\n \"initialPermissions\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {\n \"canView\": {\n \"type\": \"boolean\"\n },\n \"canEdit\": {\n \"type\": \"boolean\"\n },\n \"canDelete\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"canView\",\n \"canEdit\",\n \"canDelete\"\n ]\n },\n \"description\": \"Per-domain permissions to grant on accept, keyed by domain name\"\n }\n },\n \"required\": [\n \"email\"\n ]\n },\n \"ValidateInviteResponse\": {\n \"type\": \"object\",\n \"properties\": {\n \"valid\": {\n \"type\": \"boolean\",\n \"enum\": [\n true\n ]\n },\n \"invite\": {\n \"type\": \"object\",\n \"properties\": {\n \"email\": {\n \"type\": \"string\",\n \"format\": \"email\"\n },\n \"expiresAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n }\n },\n \"required\": [\n \"email\",\n \"expiresAt\"\n ]\n }\n },\n \"required\": [\n \"valid\",\n \"invite\"\n ]\n },\n \"ValidateInviteErrorResponse\": {\n \"type\": \"object\",\n \"properties\": {\n \"valid\": {\n \"type\": \"boolean\",\n \"enum\": [\n false\n ]\n },\n \"error\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"valid\",\n \"error\"\n ]\n },\n \"InviteDetail\": {\n \"type\": \"object\",\n \"properties\": {\n \"invite\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"format\": \"uuid\"\n },\n \"email\": {\n \"type\": \"string\",\n \"format\": \"email\"\n },\n \"token\": {\n \"type\": \"string\",\n \"description\": \"Cleared placeholder once the invite email has sent; not a usable token\"\n },\n \"tokenHash\": {\n \"type\": \"string\",\n \"description\": \"SHA-256 hash of the original token; not reversible\"\n },\n \"invitedBy\": {\n \"type\": \"string\",\n \"format\": \"uuid\"\n },\n \"status\": {\n \"type\": \"string\",\n \"enum\": [\n \"pending\",\n \"accepted\",\n \"expired\",\n \"revoked\"\n ]\n },\n \"initialPermissions\": {\n \"type\": [\n \"object\",\n \"null\"\n ],\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {\n \"canView\": {\n \"type\": \"boolean\"\n },\n \"canEdit\": {\n \"type\": \"boolean\"\n },\n \"canDelete\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"canView\",\n \"canEdit\",\n \"canDelete\"\n ]\n },\n \"description\": \"Per-domain permissions to grant on accept, keyed by domain name\"\n },\n \"expiresAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"acceptedAt\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"format\": \"date-time\"\n },\n \"createdAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"updatedAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n }\n },\n \"required\": [\n \"id\",\n \"email\",\n \"token\",\n \"tokenHash\",\n \"invitedBy\",\n \"status\",\n \"initialPermissions\",\n \"expiresAt\",\n \"acceptedAt\",\n \"createdAt\",\n \"updatedAt\"\n ],\n \"description\": \"Full admin_invites row\"\n }\n },\n \"required\": [\n \"invite\"\n ]\n },\n \"RevokeInviteResponse\": {\n \"type\": \"object\",\n \"properties\": {\n \"success\": {\n \"type\": \"boolean\",\n \"enum\": [\n true\n ]\n },\n \"message\": {\n \"type\": \"string\",\n \"example\": \"Invite revoked successfully\"\n }\n },\n \"required\": [\n \"success\",\n \"message\"\n ]\n },\n \"ResendInviteResponse\": {\n \"type\": \"object\",\n \"properties\": {\n \"success\": {\n \"type\": \"boolean\",\n \"enum\": [\n true\n ]\n },\n \"message\": {\n \"type\": \"string\",\n \"example\": \"Invite resent successfully\"\n },\n \"invite\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"format\": \"uuid\"\n },\n \"email\": {\n \"type\": \"string\",\n \"format\": \"email\"\n },\n \"expiresAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n }\n },\n \"required\": [\n \"id\",\n \"email\",\n \"expiresAt\"\n ]\n },\n \"emailSent\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"success\",\n \"message\",\n \"invite\",\n \"emailSent\"\n ]\n },\n \"AcceptInviteResponse\": {\n \"type\": \"object\",\n \"properties\": {\n \"success\": {\n \"type\": \"boolean\",\n \"enum\": [\n true\n ]\n },\n \"message\": {\n \"type\": \"string\",\n \"example\": \"Welcome to the admin team!\"\n },\n \"user\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"format\": \"uuid\"\n },\n \"email\": {\n \"type\": \"string\",\n \"format\": \"email\"\n },\n \"name\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"role\": {\n \"type\": \"string\",\n \"enum\": [\n \"user\",\n \"admin\"\n ]\n }\n },\n \"required\": [\n \"id\",\n \"email\",\n \"name\",\n \"role\"\n ]\n },\n \"redirectUrl\": {\n \"type\": \"string\",\n \"example\": \"/admin\"\n }\n },\n \"required\": [\n \"success\",\n \"message\",\n \"user\",\n \"redirectUrl\"\n ]\n },\n \"AcceptInviteErrorResponse\": {\n \"type\": \"object\",\n \"properties\": {\n \"success\": {\n \"type\": \"boolean\",\n \"enum\": [\n false\n ]\n },\n \"error\": {\n \"type\": \"string\"\n },\n \"loginUrl\": {\n \"type\": \"string\",\n \"description\": \"Present when the caller must sign in with the invited email first\"\n }\n },\n \"required\": [\n \"success\",\n \"error\"\n ]\n },\n \"AcceptInviteBody\": {\n \"type\": \"object\",\n \"properties\": {\n \"token\": {\n \"type\": \"string\",\n \"description\": \"Plaintext invite token from the accept-invite email link\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"token\"\n ]\n },\n \"LoyaltyStats\": {\n \"type\": \"object\",\n \"properties\": {\n \"eligibleUsers\": {\n \"type\": \"integer\",\n \"description\": \"Users with a completed Engineer Kit order and no active Marketing Kit/Combo license\"\n },\n \"claims\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"integer\"\n },\n \"description\": \"Claim count keyed by status (pending/claimed/expired)\",\n \"example\": {\n \"pending\": 12,\n \"claimed\": 4\n }\n },\n \"revenue\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"number\"\n },\n \"description\": \"Claimed-offer revenue (cents) keyed by currency\",\n \"example\": {\n \"USD\": 4900,\n \"VND\": 1200000\n }\n }\n },\n \"required\": [\n \"eligibleUsers\",\n \"claims\",\n \"revenue\"\n ]\n },\n \"LoyaltyBlastEmailResponse\": {\n \"type\": \"object\",\n \"properties\": {\n \"success\": {\n \"type\": \"boolean\",\n \"example\": true\n },\n \"message\": {\n \"type\": \"string\",\n \"description\": \"Present when there were no eligible recipients\"\n },\n \"testMode\": {\n \"type\": \"boolean\"\n },\n \"totalEligible\": {\n \"type\": \"integer\"\n },\n \"processed\": {\n \"type\": \"integer\"\n },\n \"sent\": {\n \"type\": \"integer\"\n },\n \"failed\": {\n \"type\": \"integer\"\n },\n \"errors\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n },\n \"description\": \"Per-recipient send failures, \\\"email: error\\\"\"\n }\n },\n \"required\": [\n \"success\",\n \"sent\",\n \"failed\"\n ]\n },\n \"LoyaltyBlastEmailBody\": {\n \"type\": \"object\",\n \"properties\": {\n \"testMode\": {\n \"type\": \"boolean\",\n \"default\": true,\n \"description\": \"When true, sends a single email to `testEmail` and creates no claim records\"\n },\n \"testEmail\": {\n \"type\": \"string\",\n \"format\": \"email\",\n \"description\": \"Required when testMode is true\"\n },\n \"batchSize\": {\n \"type\": \"integer\",\n \"minimum\": 1,\n \"maximum\": 100,\n \"default\": 50,\n \"description\": \"Max recipients per call when testMode is false\"\n }\n }\n },\n \"OrderFollowupListResponse\": {\n \"type\": \"object\",\n \"properties\": {\n \"version\": {\n \"type\": \"number\",\n \"enum\": [\n 1\n ]\n },\n \"events\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"format\": \"uuid\"\n },\n \"orderId\": {\n \"type\": \"string\"\n },\n \"provider\": {\n \"type\": \"string\",\n \"example\": \"polar\"\n },\n \"productType\": {\n \"type\": \"string\"\n },\n \"status\": {\n \"type\": \"string\",\n \"description\": \"Current order status\"\n },\n \"pendingAt\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"format\": \"date-time\"\n },\n \"dueAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"eventType\": {\n \"type\": \"string\",\n \"description\": \"Follow-up kind (e.g. reminder email, offer expiry)\"\n },\n \"state\": {\n \"type\": \"string\",\n \"example\": \"scheduled\"\n },\n \"attemptCount\": {\n \"type\": \"integer\"\n },\n \"version\": {\n \"type\": \"integer\",\n \"description\": \"Optimistic-concurrency version, required on mutations\"\n },\n \"disabledAt\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"format\": \"date-time\"\n }\n },\n \"required\": [\n \"id\",\n \"orderId\",\n \"provider\",\n \"productType\",\n \"status\",\n \"pendingAt\",\n \"dueAt\",\n \"eventType\",\n \"state\",\n \"attemptCount\",\n \"version\",\n \"disabledAt\"\n ]\n }\n },\n \"reconciliationCases\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"format\": \"uuid\"\n },\n \"orderId\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"provider\": {\n \"type\": \"string\"\n },\n \"providerTransactionId\": {\n \"type\": \"string\"\n },\n \"kind\": {\n \"type\": \"string\",\n \"example\": \"payment_reconciliation\"\n },\n \"reason\": {\n \"type\": \"string\"\n },\n \"createdAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"resolvedAt\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"format\": \"date-time\"\n },\n \"productType\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"status\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"pendingAt\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"format\": \"date-time\"\n }\n },\n \"required\": [\n \"id\",\n \"orderId\",\n \"provider\",\n \"providerTransactionId\",\n \"kind\",\n \"reason\",\n \"createdAt\",\n \"resolvedAt\",\n \"productType\",\n \"status\",\n \"pendingAt\"\n ]\n }\n }\n },\n \"required\": [\n \"version\",\n \"events\",\n \"reconciliationCases\"\n ]\n },\n \"OrderFollowupRetryResponse\": {\n \"type\": \"object\",\n \"properties\": {\n \"operationId\": {\n \"type\": \"string\",\n \"format\": \"uuid\"\n },\n \"retried\": {\n \"type\": \"boolean\",\n \"enum\": [\n true\n ]\n },\n \"state\": {\n \"type\": \"string\",\n \"example\": \"scheduled\"\n },\n \"version\": {\n \"type\": \"integer\",\n \"description\": \"New version after the retry (incremented by 1)\"\n }\n },\n \"required\": [\n \"operationId\",\n \"retried\",\n \"state\",\n \"version\"\n ]\n },\n \"OrderFollowupRetryBody\": {\n \"type\": \"object\",\n \"properties\": {\n \"reason\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 500,\n \"description\": \"Audit-log reason for the retry\"\n },\n \"expectedVersion\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"description\": \"Optimistic-concurrency guard \u2014 must match the event's current `version`\"\n },\n \"expectedState\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 64,\n \"description\": \"Optimistic-concurrency guard \u2014 must match the event's current `state`\",\n \"example\": \"failed\"\n }\n },\n \"required\": [\n \"reason\",\n \"expectedVersion\",\n \"expectedState\"\n ]\n },\n \"ReconciliationResolveResponse\": {\n \"type\": \"object\",\n \"properties\": {\n \"caseId\": {\n \"type\": \"string\",\n \"format\": \"uuid\"\n },\n \"state\": {\n \"type\": \"string\",\n \"enum\": [\n \"resolved\"\n ]\n },\n \"resolved\": {\n \"type\": \"boolean\",\n \"enum\": [\n true\n ]\n }\n },\n \"required\": [\n \"caseId\",\n \"state\",\n \"resolved\"\n ]\n },\n \"ReconciliationResolveBody\": {\n \"type\": \"object\",\n \"properties\": {\n \"reason\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 500,\n \"description\": \"Audit-log reason for resolving the case\"\n },\n \"expectedState\": {\n \"type\": \"string\",\n \"enum\": [\n \"unresolved\"\n ],\n \"description\": \"Optimistic-concurrency guard \u2014 the case must currently be unresolved\"\n }\n },\n \"required\": [\n \"reason\",\n \"expectedState\"\n ]\n },\n \"OrderList\": {\n \"type\": \"object\",\n \"properties\": {\n \"orders\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/OrderSummary\"\n }\n },\n \"total\": {\n \"type\": \"integer\",\n \"example\": 1280\n }\n },\n \"required\": [\n \"orders\",\n \"total\"\n ]\n },\n \"OrderSummary\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"userId\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"userEmail\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"userName\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"productType\": {\n \"type\": \"string\",\n \"example\": \"engineer_kit\"\n },\n \"amount\": {\n \"type\": \"number\",\n \"example\": 149\n },\n \"currency\": {\n \"type\": \"string\",\n \"example\": \"USD\"\n },\n \"status\": {\n \"type\": \"string\",\n \"enum\": [\n \"pending\",\n \"completed\",\n \"refunded\",\n \"failed\",\n \"cancelled\"\n ],\n \"description\": \"Order lifecycle status\"\n },\n \"paymentProvider\": {\n \"type\": \"string\",\n \"enum\": [\n \"polar\",\n \"sepay\",\n \"admin\"\n ]\n },\n \"createdAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n }\n },\n \"required\": [\n \"id\",\n \"userId\",\n \"userEmail\",\n \"userName\",\n \"productType\",\n \"amount\",\n \"currency\",\n \"status\",\n \"paymentProvider\",\n \"createdAt\"\n ]\n },\n \"CreateCompOrderResponse\": {\n \"type\": \"object\",\n \"properties\": {\n \"user\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"email\": {\n \"type\": \"string\"\n },\n \"created\": {\n \"type\": \"boolean\",\n \"description\": \"True when this request created the recipient user\"\n }\n },\n \"required\": [\n \"id\",\n \"email\",\n \"created\"\n ]\n },\n \"order\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"productType\": {\n \"type\": \"string\"\n },\n \"amount\": {\n \"type\": \"number\",\n \"enum\": [\n 0\n ]\n },\n \"currency\": {\n \"type\": \"string\",\n \"enum\": [\n \"USD\",\n \"VND\"\n ]\n },\n \"status\": {\n \"type\": \"string\"\n },\n \"paymentProvider\": {\n \"type\": \"string\",\n \"enum\": [\n \"admin\"\n ]\n }\n },\n \"required\": [\n \"id\",\n \"productType\",\n \"amount\",\n \"currency\",\n \"status\",\n \"paymentProvider\"\n ]\n },\n \"license\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"productCode\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"id\",\n \"productCode\"\n ]\n },\n \"replay\": {\n \"type\": \"boolean\",\n \"description\": \"True when this is an exact actor-bound requestId replay\"\n }\n },\n \"required\": [\n \"user\",\n \"order\",\n \"license\",\n \"replay\"\n ]\n },\n \"CompOrderErrorResponse\": {\n \"type\": \"object\",\n \"properties\": {\n \"error\": {\n \"type\": \"string\",\n \"example\": \"OVERLAP_REQUIRES_ACKNOWLEDGEMENT\"\n },\n \"message\": {\n \"type\": \"string\"\n },\n \"details\": {\n \"type\": \"object\",\n \"additionalProperties\": {}\n }\n },\n \"required\": [\n \"error\"\n ]\n },\n \"CreateCompOrderBody\": {\n \"type\": \"object\",\n \"properties\": {\n \"requestId\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"Idempotency key for this comp-order request\"\n },\n \"productCode\": {\n \"type\": \"string\",\n \"enum\": [\n \"engineer_kit\",\n \"marketing_kit\",\n \"combo\",\n \"agentkit_app_1_device_yearly\",\n \"agentkit_app_3_device_yearly\"\n ]\n },\n \"email\": {\n \"type\": \"string\",\n \"maxLength\": 254,\n \"format\": \"email\",\n \"description\": \"Recipient email (normalized to lowercase)\"\n },\n \"confirmRecipientEmail\": {\n \"type\": \"string\",\n \"maxLength\": 254,\n \"format\": \"email\",\n \"description\": \"Must match `email` after normalization\"\n },\n \"reason\": {\n \"type\": \"string\",\n \"minLength\": 3,\n \"maxLength\": 500\n },\n \"amount\": {\n \"type\": \"number\",\n \"enum\": [\n 0\n ],\n \"description\": \"Comp orders must be zero-dollar\"\n },\n \"currency\": {\n \"type\": \"string\",\n \"enum\": [\n \"USD\",\n \"VND\"\n ]\n },\n \"acknowledgeOverlap\": {\n \"type\": \"boolean\",\n \"description\": \"Default false \u2014 required when the recipient has overlapping entitlements\"\n }\n },\n \"required\": [\n \"requestId\",\n \"productCode\",\n \"email\",\n \"confirmRecipientEmail\",\n \"reason\",\n \"amount\",\n \"currency\"\n ]\n },\n \"OrdersStats\": {\n \"type\": \"object\",\n \"properties\": {\n \"totalOrders\": {\n \"type\": \"integer\",\n \"example\": 1280\n },\n \"totalRevenue\": {\n \"type\": \"number\",\n \"example\": 45230.5\n }\n },\n \"required\": [\n \"totalOrders\",\n \"totalRevenue\"\n ],\n \"additionalProperties\": {}\n },\n \"OrderDetail\": {\n \"type\": \"object\",\n \"properties\": {\n \"order\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"userId\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"productType\": {\n \"type\": \"string\"\n },\n \"amount\": {\n \"type\": \"number\"\n },\n \"currency\": {\n \"type\": \"string\"\n },\n \"status\": {\n \"type\": \"string\",\n \"enum\": [\n \"pending\",\n \"completed\",\n \"refunded\",\n \"failed\",\n \"cancelled\"\n ],\n \"description\": \"Order lifecycle status\"\n },\n \"paymentProvider\": {\n \"type\": \"string\",\n \"enum\": [\n \"polar\",\n \"sepay\",\n \"admin\"\n ]\n },\n \"createdAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"metadata\": {\n \"type\": [\n \"object\",\n \"null\"\n ],\n \"additionalProperties\": {}\n },\n \"licenses\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"additionalProperties\": {}\n }\n },\n \"commission\": {\n \"type\": [\n \"object\",\n \"null\"\n ],\n \"additionalProperties\": {}\n },\n \"discountRedemptions\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"additionalProperties\": {}\n }\n }\n },\n \"required\": [\n \"id\",\n \"userId\",\n \"productType\",\n \"amount\",\n \"currency\",\n \"status\",\n \"paymentProvider\",\n \"createdAt\",\n \"metadata\",\n \"licenses\",\n \"commission\",\n \"discountRedemptions\"\n ],\n \"additionalProperties\": {},\n \"description\": \"Full order record (additional columns may be present)\"\n }\n },\n \"required\": [\n \"order\"\n ]\n },\n \"OrderActionResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"success\": {\n \"type\": \"boolean\"\n },\n \"order\": {\n \"type\": \"object\",\n \"additionalProperties\": {}\n },\n \"message\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": {}\n },\n \"FollowUpStateBody\": {\n \"type\": \"object\",\n \"properties\": {\n \"expectedState\": {\n \"type\": \"string\",\n \"description\": \"Optimistic-concurrency guard\",\n \"example\": \"active\"\n }\n },\n \"required\": [\n \"expectedState\"\n ],\n \"additionalProperties\": {}\n },\n \"RefundBody\": {\n \"type\": \"object\",\n \"properties\": {\n \"reason\": {\n \"type\": \"string\",\n \"example\": \"customer request\"\n },\n \"amount\": {\n \"type\": \"number\",\n \"description\": \"Partial refund amount (defaults to full)\"\n }\n },\n \"additionalProperties\": {}\n },\n \"ResendEmailsBody\": {\n \"type\": \"object\",\n \"properties\": {\n \"emailTypes\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n },\n \"example\": [\n \"receipt\",\n \"license\"\n ]\n }\n },\n \"additionalProperties\": {}\n },\n \"SwitchProductBody\": {\n \"type\": \"object\",\n \"properties\": {\n \"targetProductType\": {\n \"type\": \"string\",\n \"example\": \"marketing_kit\"\n }\n },\n \"required\": [\n \"targetProductType\"\n ],\n \"additionalProperties\": {}\n },\n \"PayoutRequestListResponse\": {\n \"type\": \"object\",\n \"properties\": {\n \"requests\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/PayoutRequestRow\"\n }\n },\n \"total\": {\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"requests\",\n \"total\"\n ]\n },\n \"PayoutRequestRow\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"format\": \"uuid\"\n },\n \"userId\": {\n \"type\": \"string\",\n \"format\": \"uuid\"\n },\n \"amount\": {\n \"type\": \"integer\",\n \"description\": \"cents\"\n },\n \"currency\": {\n \"type\": \"string\",\n \"example\": \"USD\"\n },\n \"status\": {\n \"type\": \"string\",\n \"enum\": [\n \"pending\",\n \"processing\",\n \"completed\",\n \"failed\"\n ],\n \"description\": \"Payout request lifecycle status\"\n },\n \"paymentMethod\": {\n \"type\": \"string\",\n \"example\": \"paypal\",\n \"description\": \"\\\"paypal\\\" | \\\"bank_transfer\\\" | \\\"store_credit\\\"\"\n },\n \"paymentDetails\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"description\": \"Decrypted JSON string (PayPal email or bank transfer details); null if absent/undecryptable\"\n },\n \"withholdingStatus\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"withholdingRateBps\": {\n \"type\": [\n \"integer\",\n \"null\"\n ]\n },\n \"withholdingAmount\": {\n \"type\": [\n \"integer\",\n \"null\"\n ],\n \"description\": \"cents\"\n },\n \"netAmount\": {\n \"type\": [\n \"integer\",\n \"null\"\n ],\n \"description\": \"cents\"\n },\n \"withholdingSnapshotAt\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"format\": \"date-time\"\n },\n \"withholdingSourceProfileId\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"format\": \"uuid\"\n },\n \"withholdingLabel\": {\n \"type\": \"string\"\n },\n \"hasSavedPaypalProfile\": {\n \"type\": \"boolean\"\n },\n \"paypalProfileId\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"format\": \"uuid\"\n },\n \"vneidRequestStatus\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"description\": \"Latest VNeID confirmation request status for this user, if any\"\n },\n \"processedAt\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"format\": \"date-time\"\n },\n \"completedAt\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"format\": \"date-time\"\n },\n \"failedAt\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"format\": \"date-time\"\n },\n \"failureReason\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"createdAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"updatedAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"userEmail\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"userName\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n }\n },\n \"required\": [\n \"id\",\n \"userId\",\n \"amount\",\n \"currency\",\n \"status\",\n \"paymentMethod\",\n \"paymentDetails\",\n \"withholdingStatus\",\n \"withholdingRateBps\",\n \"withholdingAmount\",\n \"netAmount\",\n \"withholdingSnapshotAt\",\n \"withholdingSourceProfileId\",\n \"withholdingLabel\",\n \"hasSavedPaypalProfile\",\n \"paypalProfileId\",\n \"vneidRequestStatus\",\n \"processedAt\",\n \"completedAt\",\n \"failedAt\",\n \"failureReason\",\n \"createdAt\",\n \"updatedAt\",\n \"userEmail\",\n \"userName\"\n ]\n },\n \"PayoutRequestActionResponse\": {\n \"type\": \"object\",\n \"properties\": {\n \"success\": {\n \"type\": \"boolean\",\n \"example\": true\n },\n \"message\": {\n \"type\": \"string\",\n \"example\": \"Payout request approved successfully\"\n },\n \"autoRejected\": {\n \"type\": \"string\",\n \"description\": \"Present when approving/completing this request auto-rejected other over-balance requests for the same user\"\n }\n },\n \"required\": [\n \"success\",\n \"message\"\n ]\n },\n \"PayoutRequestActionBody\": {\n \"type\": \"object\",\n \"properties\": {\n \"action\": {\n \"type\": \"string\",\n \"enum\": [\n \"approve\",\n \"reject\",\n \"complete\"\n ]\n },\n \"reason\": {\n \"type\": \"string\",\n \"maxLength\": 1000,\n \"description\": \"Required (non-empty) when action is \\\"reject\\\"\"\n }\n },\n \"required\": [\n \"action\"\n ]\n },\n \"PayoutVneidRequestResponse\": {\n \"type\": \"object\",\n \"properties\": {\n \"success\": {\n \"type\": \"boolean\",\n \"example\": true\n },\n \"sent\": {\n \"type\": \"integer\"\n },\n \"skipped\": {\n \"type\": \"integer\"\n },\n \"failed\": {\n \"type\": \"integer\"\n },\n \"results\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"payoutRequestId\": {\n \"type\": \"string\",\n \"format\": \"uuid\"\n },\n \"userId\": {\n \"type\": \"string\"\n },\n \"email\": {\n \"type\": \"string\"\n },\n \"status\": {\n \"type\": \"string\",\n \"enum\": [\n \"sent\",\n \"skipped\",\n \"email_failed\"\n ]\n },\n \"reason\": {\n \"type\": \"string\",\n \"description\": \"Present when status is \\\"skipped\\\" or \\\"email_failed\\\"\"\n }\n },\n \"required\": [\n \"payoutRequestId\",\n \"userId\",\n \"email\",\n \"status\"\n ]\n }\n }\n },\n \"required\": [\n \"success\",\n \"sent\",\n \"skipped\",\n \"failed\",\n \"results\"\n ]\n },\n \"PayoutVneidRequestBody\": {\n \"type\": \"object\",\n \"properties\": {\n \"payoutRequestIds\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\",\n \"format\": \"uuid\"\n },\n \"minItems\": 1,\n \"maxItems\": 100\n }\n },\n \"required\": [\n \"payoutRequestIds\"\n ]\n },\n \"ReferralsDiagnoseResponse\": {\n \"type\": \"object\",\n \"properties\": {\n \"totalCodes\": {\n \"type\": \"integer\"\n },\n \"suspicious\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/ReferralDiagnosticIssue\"\n }\n },\n \"suspiciousCount\": {\n \"type\": \"integer\"\n },\n \"lastChecked\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"period\": {\n \"type\": \"string\",\n \"example\": \"Last 30 days\"\n }\n },\n \"required\": [\n \"totalCodes\",\n \"suspicious\",\n \"suspiciousCount\",\n \"lastChecked\",\n \"period\"\n ]\n },\n \"ReferralDiagnosticIssue\": {\n \"type\": \"object\",\n \"properties\": {\n \"code\": {\n \"type\": \"string\"\n },\n \"userId\": {\n \"type\": \"string\"\n },\n \"clicks\": {\n \"type\": \"integer\"\n },\n \"conversions\": {\n \"type\": \"integer\"\n },\n \"issue\": {\n \"type\": \"string\",\n \"example\": \"Order has referredBy but no commission created\"\n },\n \"orderId\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"issue\"\n ]\n },\n \"ReferralsStatsResponse\": {\n \"type\": \"object\",\n \"properties\": {\n \"kpis\": {\n \"type\": \"object\",\n \"properties\": {\n \"totalClicks\": {\n \"type\": \"integer\"\n },\n \"totalConversions\": {\n \"type\": \"integer\"\n },\n \"conversionRate\": {\n \"type\": \"number\"\n },\n \"activeReferrers\": {\n \"type\": \"integer\"\n },\n \"totalRevenue\": {\n \"type\": \"number\"\n },\n \"totalCommissions\": {\n \"type\": \"number\"\n },\n \"refundedOrdersCount\": {\n \"type\": \"integer\"\n },\n \"cancelledCommissionsAmount\": {\n \"type\": \"number\"\n }\n },\n \"required\": [\n \"totalClicks\",\n \"totalConversions\",\n \"conversionRate\",\n \"activeReferrers\",\n \"totalRevenue\",\n \"totalCommissions\",\n \"refundedOrdersCount\",\n \"cancelledCommissionsAmount\"\n ]\n },\n \"timeSeries\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"date\": {\n \"type\": \"string\",\n \"example\": \"2026-07-15\"\n },\n \"clicks\": {\n \"type\": \"integer\"\n },\n \"conversions\": {\n \"type\": \"integer\"\n },\n \"revenue\": {\n \"type\": \"number\"\n }\n },\n \"required\": [\n \"date\",\n \"clicks\",\n \"conversions\",\n \"revenue\"\n ]\n }\n },\n \"topReferrers\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/ReferralTopReferrer\"\n }\n },\n \"commissionBreakdown\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/ReferralCommissionBreakdown\"\n }\n },\n \"exchangeRate\": {\n \"type\": \"object\",\n \"properties\": {\n \"rate\": {\n \"type\": \"number\"\n },\n \"source\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"rate\",\n \"source\"\n ]\n },\n \"dateRange\": {\n \"type\": \"object\",\n \"properties\": {\n \"startDate\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"endDate\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n }\n },\n \"required\": [\n \"startDate\",\n \"endDate\"\n ]\n }\n },\n \"required\": [\n \"kpis\",\n \"timeSeries\",\n \"topReferrers\",\n \"commissionBreakdown\",\n \"exchangeRate\",\n \"dateRange\"\n ],\n \"additionalProperties\": {}\n },\n \"ReferralTopReferrer\": {\n \"type\": \"object\",\n \"properties\": {\n \"rank\": {\n \"type\": \"integer\"\n },\n \"userId\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"email\": {\n \"type\": \"string\"\n },\n \"code\": {\n \"type\": \"string\"\n },\n \"clicks\": {\n \"type\": \"integer\"\n },\n \"conversions\": {\n \"type\": \"integer\"\n },\n \"conversionRate\": {\n \"type\": \"number\",\n \"description\": \"Percentage, 2 decimals\"\n },\n \"totalEarnings\": {\n \"type\": \"number\",\n \"description\": \"Cents\"\n },\n \"pendingEarnings\": {\n \"type\": \"number\"\n },\n \"approvedEarnings\": {\n \"type\": \"number\"\n },\n \"paidEarnings\": {\n \"type\": \"number\"\n },\n \"refundsCount\": {\n \"type\": \"integer\"\n },\n \"pendingPayoutCount\": {\n \"type\": \"integer\"\n },\n \"tierName\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"tierBadgeColor\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"tierBadgeIcon\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"tierCommissionRate\": {\n \"type\": [\n \"number\",\n \"null\"\n ]\n },\n \"revenue\": {\n \"type\": \"number\",\n \"description\": \"Date-filtered paid+approved commission earnings (cents)\"\n },\n \"ckSold\": {\n \"type\": \"number\",\n \"description\": \"Date-filtered order value from referrals, USD cents\"\n }\n },\n \"required\": [\n \"rank\",\n \"userId\",\n \"name\",\n \"email\",\n \"code\",\n \"clicks\",\n \"conversions\",\n \"conversionRate\",\n \"totalEarnings\",\n \"pendingEarnings\",\n \"approvedEarnings\",\n \"paidEarnings\",\n \"refundsCount\",\n \"pendingPayoutCount\",\n \"tierName\",\n \"tierBadgeColor\",\n \"tierBadgeIcon\",\n \"tierCommissionRate\",\n \"revenue\",\n \"ckSold\"\n ]\n },\n \"ReferralCommissionBreakdown\": {\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"example\": \"approved\"\n },\n \"count\": {\n \"type\": \"integer\"\n },\n \"totalAmount\": {\n \"type\": \"number\",\n \"description\": \"Cents\"\n }\n },\n \"required\": [\n \"status\",\n \"count\",\n \"totalAmount\"\n ]\n },\n \"ReferralsTiersStatsResponse\": {\n \"type\": \"object\",\n \"properties\": {\n \"distribution\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/ReferralTierDistributionEntry\"\n }\n },\n \"total\": {\n \"type\": \"integer\",\n \"description\": \"All tiered users + partners\"\n }\n },\n \"required\": [\n \"distribution\",\n \"total\"\n ]\n },\n \"ReferralTierDistributionEntry\": {\n \"type\": \"object\",\n \"properties\": {\n \"tier\": {\n \"type\": \"string\",\n \"example\": \"gold\"\n },\n \"displayName\": {\n \"type\": \"string\"\n },\n \"count\": {\n \"type\": \"integer\"\n },\n \"percentage\": {\n \"type\": \"number\",\n \"description\": \"1 decimal\"\n }\n },\n \"required\": [\n \"tier\",\n \"displayName\",\n \"count\",\n \"percentage\"\n ]\n },\n \"ReferralUserStatsResponse\": {\n \"type\": \"object\",\n \"properties\": {\n \"referrer\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"email\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"customCommissionRate\": {\n \"type\": [\n \"number\",\n \"null\"\n ]\n },\n \"createdAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"tier\": {\n \"type\": [\n \"object\",\n \"null\"\n ],\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"displayName\": {\n \"type\": \"string\"\n },\n \"commissionRate\": {\n \"type\": \"string\",\n \"description\": \"Raw numeric string from db, e.g. \\\"15.00\\\"\"\n },\n \"badgeColor\": {\n \"type\": \"string\"\n },\n \"badgeIcon\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n }\n },\n \"required\": [\n \"id\",\n \"displayName\",\n \"commissionRate\",\n \"badgeColor\",\n \"badgeIcon\"\n ]\n }\n },\n \"required\": [\n \"id\",\n \"name\",\n \"email\",\n \"customCommissionRate\",\n \"createdAt\",\n \"tier\"\n ]\n },\n \"dateRange\": {\n \"type\": \"object\",\n \"properties\": {\n \"startDate\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"endDate\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n }\n },\n \"required\": [\n \"startDate\",\n \"endDate\"\n ]\n },\n \"codes\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"code\": {\n \"type\": \"string\"\n },\n \"clickCount\": {\n \"type\": \"integer\"\n },\n \"conversionCount\": {\n \"type\": \"integer\"\n },\n \"createdAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n }\n },\n \"required\": [\n \"id\",\n \"code\",\n \"clickCount\",\n \"conversionCount\",\n \"createdAt\"\n ]\n }\n },\n \"kpis\": {\n \"type\": \"object\",\n \"properties\": {\n \"clicksInRange\": {\n \"type\": \"integer\"\n },\n \"totalClicksLifetime\": {\n \"type\": \"integer\"\n },\n \"totalConversionsLifetime\": {\n \"type\": \"integer\"\n },\n \"commissionsInRange\": {\n \"type\": \"number\"\n },\n \"referredOrdersInRange\": {\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"clicksInRange\",\n \"totalClicksLifetime\",\n \"totalConversionsLifetime\",\n \"commissionsInRange\",\n \"referredOrdersInRange\"\n ]\n },\n \"commissionBreakdown\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/ReferralCommissionBreakdown\"\n }\n },\n \"recentReferredOrders\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"amount\": {\n \"type\": \"number\"\n },\n \"currency\": {\n \"type\": \"string\"\n },\n \"status\": {\n \"type\": \"string\"\n },\n \"productType\": {\n \"type\": \"string\"\n },\n \"createdAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"buyerId\": {\n \"type\": \"string\",\n \"description\": \"orders.userId\"\n }\n },\n \"required\": [\n \"id\",\n \"amount\",\n \"currency\",\n \"status\",\n \"productType\",\n \"createdAt\",\n \"buyerId\"\n ]\n }\n },\n \"payouts\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"amount\": {\n \"type\": \"number\"\n },\n \"currency\": {\n \"type\": \"string\"\n },\n \"status\": {\n \"type\": \"string\"\n },\n \"paymentMethod\": {\n \"type\": \"string\"\n },\n \"createdAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"completedAt\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"format\": \"date-time\"\n },\n \"failedAt\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"format\": \"date-time\"\n },\n \"failureReason\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n }\n },\n \"required\": [\n \"id\",\n \"amount\",\n \"currency\",\n \"status\",\n \"paymentMethod\",\n \"createdAt\",\n \"completedAt\",\n \"failedAt\",\n \"failureReason\"\n ]\n }\n }\n },\n \"required\": [\n \"referrer\",\n \"dateRange\",\n \"codes\",\n \"kpis\",\n \"commissionBreakdown\",\n \"recentReferredOrders\",\n \"payouts\"\n ],\n \"additionalProperties\": {}\n },\n \"ManualTiersResponse\": {\n \"type\": \"object\",\n \"properties\": {\n \"tiers\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/ManualTier\"\n }\n }\n },\n \"required\": [\n \"tiers\"\n ]\n },\n \"ManualTier\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"displayName\": {\n \"type\": \"string\"\n },\n \"commissionRate\": {\n \"type\": \"number\",\n \"example\": 15\n },\n \"badgeColor\": {\n \"type\": \"string\"\n },\n \"badgeIcon\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n }\n },\n \"required\": [\n \"id\",\n \"name\",\n \"displayName\",\n \"commissionRate\",\n \"badgeColor\",\n \"badgeIcon\"\n ]\n },\n \"RevenueStats\": {\n \"type\": \"object\",\n \"properties\": {\n \"kpis\": {\n \"type\": \"object\",\n \"additionalProperties\": {},\n \"description\": \"Aggregate KPI object: estTotalRevenue, totalOrders, averageOrderValue, totalCommissions, validatedRevenue, pendingRevenue, refunds, orderCounts, polarNetRevenue, financialEfficiency, and legacy alias fields\"\n },\n \"exchangeRate\": {\n \"type\": \"object\",\n \"properties\": {\n \"rate\": {\n \"type\": \"number\",\n \"example\": 26000\n },\n \"source\": {\n \"type\": \"string\",\n \"example\": \"api\"\n },\n \"updatedAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n }\n },\n \"required\": [\n \"rate\",\n \"source\",\n \"updatedAt\"\n ]\n },\n \"timeSeries\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"additionalProperties\": {}\n },\n \"description\": \"Daily aggregates: date, totalRevenue, orderCount, polarRevenue, sepayRevenue, sepayRevenueVND\"\n },\n \"providerBreakdown\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"additionalProperties\": {}\n },\n \"description\": \"Per-provider revenue/orderCount/percentage\"\n },\n \"productBreakdown\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"additionalProperties\": {}\n },\n \"description\": \"Per-productType revenue/orderCount/averagePrice/percentage\"\n },\n \"dateRange\": {\n \"type\": \"object\",\n \"properties\": {\n \"startDate\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"endDate\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n }\n },\n \"required\": [\n \"startDate\",\n \"endDate\"\n ]\n },\n \"filters\": {\n \"type\": \"object\",\n \"properties\": {\n \"product\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"includeTeam\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"product\",\n \"includeTeam\"\n ]\n },\n \"unmappedRevenue\": {\n \"type\": \"object\",\n \"properties\": {\n \"revenue\": {\n \"type\": \"number\",\n \"description\": \"Revenue from orders whose productType is not in the known variant map\"\n },\n \"orderCount\": {\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"revenue\",\n \"orderCount\"\n ]\n }\n },\n \"required\": [\n \"kpis\",\n \"exchangeRate\",\n \"timeSeries\",\n \"providerBreakdown\",\n \"productBreakdown\",\n \"dateRange\",\n \"filters\",\n \"unmappedRevenue\"\n ],\n \"additionalProperties\": {}\n },\n \"RevenueMaintainerEarningsResponse\": {\n \"type\": \"object\",\n \"properties\": {\n \"earnings\": {\n \"$ref\": \"#/components/schemas/RevenueMaintainerEarnings\"\n }\n },\n \"required\": [\n \"earnings\"\n ]\n },\n \"RevenueMaintainerEarnings\": {\n \"type\": \"object\",\n \"properties\": {\n \"maintainerId\": {\n \"type\": \"string\",\n \"enum\": [\n \"cke\",\n \"ckm\"\n ]\n },\n \"period\": {\n \"type\": \"object\",\n \"properties\": {\n \"startDate\": {\n \"type\": \"string\"\n },\n \"endDate\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"startDate\",\n \"endDate\"\n ]\n },\n \"productBreakdown\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"productType\": {\n \"type\": \"string\"\n },\n \"orderCount\": {\n \"type\": \"integer\"\n },\n \"grossRevenue\": {\n \"type\": \"number\",\n \"description\": \"cents\"\n },\n \"paymentFees\": {\n \"type\": \"number\",\n \"description\": \"cents\"\n },\n \"referralCommissions\": {\n \"type\": \"number\",\n \"description\": \"cents\"\n },\n \"netRevenue\": {\n \"type\": \"number\",\n \"description\": \"cents\"\n },\n \"allocatedCost\": {\n \"type\": \"number\",\n \"description\": \"cents; proportional monthly cost for this product\"\n },\n \"revenueAfterCosts\": {\n \"type\": \"number\",\n \"description\": \"cents\"\n },\n \"sharePercentage\": {\n \"type\": \"number\",\n \"example\": 0.2\n },\n \"maintainerShare\": {\n \"type\": \"number\",\n \"description\": \"cents\"\n }\n },\n \"required\": [\n \"productType\",\n \"orderCount\",\n \"grossRevenue\",\n \"paymentFees\",\n \"referralCommissions\",\n \"netRevenue\",\n \"allocatedCost\",\n \"revenueAfterCosts\",\n \"sharePercentage\",\n \"maintainerShare\"\n ]\n }\n },\n \"totalOrderCount\": {\n \"type\": \"integer\"\n },\n \"totalGrossRevenue\": {\n \"type\": \"number\"\n },\n \"totalPaymentFees\": {\n \"type\": \"number\"\n },\n \"totalReferralCommissions\": {\n \"type\": \"number\"\n },\n \"totalNetRevenue\": {\n \"type\": \"number\"\n },\n \"rawMaintainerShare\": {\n \"type\": \"number\"\n },\n \"allocatedCosts\": {\n \"type\": \"number\"\n },\n \"preTaxProfit\": {\n \"type\": \"number\"\n },\n \"taxAmount\": {\n \"type\": \"number\",\n \"description\": \"17% tax\"\n },\n \"netProfit\": {\n \"type\": \"number\"\n },\n \"validatedEarnings\": {\n \"type\": \"number\",\n \"description\": \"From orders 14+ days old\"\n },\n \"pendingEarnings\": {\n \"type\": \"number\",\n \"description\": \"From orders < 14 days old\"\n },\n \"totalEarnings\": {\n \"type\": \"number\"\n },\n \"totalMonthlyCosts\": {\n \"type\": \"number\"\n },\n \"totalAllProductsRevenue\": {\n \"type\": \"number\"\n },\n \"exchangeRate\": {\n \"type\": \"object\",\n \"properties\": {\n \"rate\": {\n \"type\": \"number\"\n },\n \"source\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"rate\",\n \"source\"\n ]\n },\n \"earningsInVnd\": {\n \"type\": \"number\"\n }\n },\n \"required\": [\n \"maintainerId\",\n \"period\",\n \"productBreakdown\",\n \"totalOrderCount\",\n \"totalGrossRevenue\",\n \"totalPaymentFees\",\n \"totalReferralCommissions\",\n \"totalNetRevenue\",\n \"rawMaintainerShare\",\n \"allocatedCosts\",\n \"preTaxProfit\",\n \"taxAmount\",\n \"netProfit\",\n \"validatedEarnings\",\n \"pendingEarnings\",\n \"totalEarnings\",\n \"totalMonthlyCosts\",\n \"totalAllProductsRevenue\",\n \"exchangeRate\",\n \"earningsInVnd\"\n ]\n },\n \"RevenueMonthlyCostListResponse\": {\n \"type\": \"object\",\n \"properties\": {\n \"costs\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/RevenueMonthlyCostListItem\"\n }\n },\n \"total\": {\n \"type\": \"number\",\n \"description\": \"Sum of amount (cents) for the filtered period\"\n },\n \"yearMonth\": {\n \"type\": \"string\",\n \"example\": \"2026-01\",\n \"description\": \"\\\"all\\\" when no filter applied\"\n }\n },\n \"required\": [\n \"costs\",\n \"total\",\n \"yearMonth\"\n ]\n },\n \"RevenueMonthlyCostListItem\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"format\": \"uuid\"\n },\n \"yearMonth\": {\n \"type\": \"string\"\n },\n \"category\": {\n \"type\": \"string\",\n \"enum\": [\n \"ai\",\n \"office\",\n \"tax_service\",\n \"bank\",\n \"marketing\",\n \"other\"\n ],\n \"description\": \"Monthly cost category\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"amount\": {\n \"type\": \"integer\"\n },\n \"createdBy\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"format\": \"uuid\"\n },\n \"createdAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"updatedAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"createdByEmail\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"createdByName\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n }\n },\n \"required\": [\n \"id\",\n \"yearMonth\",\n \"category\",\n \"description\",\n \"amount\",\n \"createdBy\",\n \"createdAt\",\n \"updatedAt\",\n \"createdByEmail\",\n \"createdByName\"\n ]\n },\n \"RevenueMonthlyCostResponse\": {\n \"type\": \"object\",\n \"properties\": {\n \"cost\": {\n \"$ref\": \"#/components/schemas/RevenueMonthlyCostRecord\"\n }\n },\n \"required\": [\n \"cost\"\n ]\n },\n \"RevenueMonthlyCostRecord\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"format\": \"uuid\"\n },\n \"yearMonth\": {\n \"type\": \"string\",\n \"example\": \"2026-01\"\n },\n \"category\": {\n \"type\": \"string\",\n \"enum\": [\n \"ai\",\n \"office\",\n \"tax_service\",\n \"bank\",\n \"marketing\",\n \"other\"\n ],\n \"description\": \"Monthly cost category\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"amount\": {\n \"type\": \"integer\",\n \"description\": \"cents\",\n \"example\": 5000\n },\n \"createdBy\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"format\": \"uuid\"\n },\n \"createdAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"updatedAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n }\n },\n \"required\": [\n \"id\",\n \"yearMonth\",\n \"category\",\n \"description\",\n \"amount\",\n \"createdBy\",\n \"createdAt\",\n \"updatedAt\"\n ]\n },\n \"RevenueCreateMonthlyCostBody\": {\n \"type\": \"object\",\n \"properties\": {\n \"yearMonth\": {\n \"type\": \"string\",\n \"description\": \"YYYY-MM\",\n \"example\": \"2026-01\"\n },\n \"category\": {\n \"type\": \"string\",\n \"enum\": [\n \"ai\",\n \"office\",\n \"tax_service\",\n \"bank\",\n \"marketing\",\n \"other\"\n ],\n \"description\": \"Monthly cost category\"\n },\n \"description\": {\n \"type\": \"string\",\n \"maxLength\": 500\n },\n \"amount\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"description\": \"Positive integer, cents\",\n \"example\": 5000\n }\n },\n \"required\": [\n \"yearMonth\",\n \"category\",\n \"description\",\n \"amount\"\n ]\n },\n \"RevenueUpdateMonthlyCostBody\": {\n \"type\": \"object\",\n \"properties\": {\n \"yearMonth\": {\n \"type\": \"string\",\n \"description\": \"YYYY-MM\"\n },\n \"category\": {\n \"type\": \"string\",\n \"enum\": [\n \"ai\",\n \"office\",\n \"tax_service\",\n \"bank\",\n \"marketing\",\n \"other\"\n ],\n \"description\": \"Monthly cost category\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"amount\": {\n \"type\": \"integer\",\n \"exclusiveMinimum\": 0,\n \"description\": \"Positive integer, cents\"\n }\n }\n },\n \"RevenueMonthlyCostDeleteResponse\": {\n \"type\": \"object\",\n \"properties\": {\n \"success\": {\n \"type\": \"boolean\",\n \"example\": true\n },\n \"deleted\": {\n \"type\": \"string\",\n \"format\": \"uuid\"\n }\n },\n \"required\": [\n \"success\",\n \"deleted\"\n ]\n },\n \"RevenueGenerateReportsResponse\": {\n \"type\": \"object\",\n \"properties\": {\n \"success\": {\n \"type\": \"boolean\"\n },\n \"durationMs\": {\n \"type\": \"integer\"\n }\n },\n \"required\": [\n \"success\",\n \"durationMs\"\n ],\n \"additionalProperties\": {}\n },\n \"RevenueGenerateReportsBody\": {\n \"type\": \"object\",\n \"properties\": {\n \"maintainerId\": {\n \"type\": \"string\",\n \"enum\": [\n \"cke\",\n \"ckm\",\n \"all\"\n ],\n \"description\": \"Default \\\"all\\\"\"\n },\n \"yearMonth\": {\n \"type\": \"string\",\n \"description\": \"YYYY-MM (default: previous month)\"\n },\n \"skipEmail\": {\n \"type\": \"boolean\",\n \"description\": \"Default false\"\n }\n }\n },\n \"UserLookupResponse\": {\n \"type\": \"object\",\n \"properties\": {\n \"exists\": {\n \"type\": \"boolean\"\n },\n \"user\": {\n \"type\": [\n \"object\",\n \"null\"\n ],\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"email\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"mergedIntoUserId\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"description\": \"Always null on lookup \u2014 merged aliases resolve to the surviving target\"\n }\n },\n \"required\": [\n \"id\",\n \"email\",\n \"name\",\n \"mergedIntoUserId\"\n ]\n },\n \"licenses\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/UserLookupLicense\"\n }\n },\n \"overlap\": {\n \"type\": \"boolean\",\n \"description\": \"True when the target already holds overlapping product-family entitlements\"\n }\n },\n \"required\": [\n \"exists\",\n \"user\",\n \"licenses\",\n \"overlap\"\n ]\n },\n \"UserLookupLicense\": {\n \"type\": \"object\",\n \"properties\": {\n \"productCode\": {\n \"type\": \"string\",\n \"example\": \"engineer_kit\"\n },\n \"isActive\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"productCode\",\n \"isActive\"\n ]\n },\n \"UserDetail\": {\n \"type\": \"object\",\n \"properties\": {\n \"user\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"email\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"githubUsername\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"role\": {\n \"type\": \"string\"\n },\n \"mergedIntoUserId\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"createdAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"updatedAt\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"mergedIntoUser\": {\n \"type\": [\n \"object\",\n \"null\"\n ],\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"email\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"id\",\n \"email\"\n ]\n },\n \"canGrantProducts\": {\n \"type\": \"boolean\",\n \"description\": \"True only for session super-admin callers\"\n },\n \"totalOrders\": {\n \"type\": \"integer\"\n },\n \"totalSpentUsd\": {\n \"type\": \"number\"\n },\n \"totalSpentVnd\": {\n \"type\": \"number\"\n },\n \"licenses\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"additionalProperties\": {}\n }\n },\n \"waitlistReservations\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"additionalProperties\": {}\n }\n }\n },\n \"required\": [\n \"id\",\n \"email\",\n \"name\",\n \"githubUsername\",\n \"role\",\n \"mergedIntoUserId\",\n \"createdAt\",\n \"updatedAt\",\n \"mergedIntoUser\",\n \"canGrantProducts\",\n \"totalOrders\",\n \"totalSpentUsd\",\n \"totalSpentVnd\",\n \"licenses\",\n \"waitlistReservations\"\n ],\n \"additionalProperties\": {},\n \"description\": \"Full user record (additional columns may be present)\"\n }\n },\n \"required\": [\n \"user\"\n ]\n },\n \"UpdateUserResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"success\": {\n \"type\": \"boolean\",\n \"example\": true\n },\n \"message\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"email\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n }\n },\n \"required\": [\n \"id\",\n \"email\",\n \"name\"\n ]\n }\n },\n \"required\": [\n \"success\",\n \"message\",\n \"user\"\n ]\n },\n \"UpdateUserBody\": {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 100\n },\n \"email\": {\n \"type\": \"string\",\n \"maxLength\": 254,\n \"format\": \"email\",\n \"description\": \"Normalized to lowercase\"\n }\n },\n \"description\": \"At least one of name/email is required\"\n },\n \"OrphanDeleteResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"deleted\": {\n \"type\": \"boolean\",\n \"example\": true\n },\n \"snapshot\": {\n \"type\": \"object\",\n \"additionalProperties\": {},\n \"description\": \"Full deleted user row, for audit/undo reference\"\n }\n },\n \"required\": [\n \"deleted\",\n \"snapshot\"\n ]\n },\n \"OrphanDeleteBody\": {\n \"type\": \"object\",\n \"properties\": {\n \"reason\": {\n \"type\": \"string\",\n \"maxLength\": 500,\n \"example\": \"Duplicate signup, no activity\"\n }\n }\n },\n \"UsersStats\": {\n \"type\": \"object\",\n \"properties\": {\n \"totalUsers\": {\n \"type\": \"integer\",\n \"example\": 12500\n },\n \"newSignups\": {\n \"type\": \"integer\"\n },\n \"payingUsers\": {\n \"type\": \"integer\"\n },\n \"top10BySpend\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"userId\": {\n \"type\": \"string\"\n },\n \"email\": {\n \"type\": \"string\"\n },\n \"totalSpend\": {\n \"type\": \"number\"\n }\n },\n \"required\": [\n \"userId\",\n \"email\",\n \"totalSpend\"\n ]\n }\n },\n \"byTier\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"integer\"\n }\n },\n \"withGithubLinked\": {\n \"type\": \"object\",\n \"properties\": {\n \"count\": {\n \"type\": \"integer\"\n },\n \"percent\": {\n \"type\": \"number\"\n }\n },\n \"required\": [\n \"count\",\n \"percent\"\n ]\n },\n \"activeReferrers\": {\n \"type\": \"integer\"\n },\n \"filters\": {\n \"type\": \"object\",\n \"properties\": {\n \"start\": {\n \"type\": \"string\"\n },\n \"end\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"required\": [\n \"totalUsers\",\n \"newSignups\",\n \"payingUsers\",\n \"top10BySpend\",\n \"byTier\",\n \"withGithubLinked\",\n \"activeReferrers\",\n \"filters\"\n ]\n },\n \"GithubUsernameUpdateResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"success\": {\n \"type\": \"boolean\",\n \"example\": true\n },\n \"message\": {\n \"type\": \"string\"\n },\n \"user\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"email\": {\n \"type\": \"string\"\n },\n \"githubUsername\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n }\n },\n \"required\": [\n \"id\",\n \"email\",\n \"githubUsername\"\n ]\n },\n \"cascadeMode\": {\n \"type\": \"string\"\n },\n \"cascadeResults\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"additionalProperties\": {}\n }\n },\n \"revokeResults\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"additionalProperties\": {}\n }\n },\n \"inviteResults\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"additionalProperties\": {}\n }\n }\n },\n \"required\": [\n \"success\",\n \"message\",\n \"user\",\n \"cascadeMode\",\n \"revokeResults\",\n \"inviteResults\"\n ],\n \"additionalProperties\": {}\n },\n \"GithubUsernameBody\": {\n \"type\": \"object\",\n \"properties\": {\n \"githubUsername\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"example\": \"octocat\"\n },\n \"cascadeMode\": {\n \"type\": \"string\",\n \"enum\": [\n \"none\",\n \"unset_only\",\n \"all\"\n ],\n \"description\": \"Default \\\"none\\\" \u2014 see route docs for revoke/re-grant behavior per mode\"\n }\n },\n \"required\": [\n \"githubUsername\"\n ]\n },\n \"RatesUpdateResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"success\": {\n \"type\": \"boolean\",\n \"example\": true\n },\n \"user\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"email\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"customCommissionRate\": {\n \"type\": [\n \"number\",\n \"null\"\n ]\n },\n \"customDiscountRate\": {\n \"type\": [\n \"number\",\n \"null\"\n ]\n }\n },\n \"required\": [\n \"id\",\n \"email\",\n \"name\",\n \"customCommissionRate\",\n \"customDiscountRate\"\n ]\n }\n },\n \"required\": [\n \"success\",\n \"user\"\n ]\n },\n \"RatesBody\": {\n \"type\": \"object\",\n \"properties\": {\n \"commissionRate\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"minimum\": 0,\n \"maximum\": 100\n },\n \"discountRate\": {\n \"type\": [\n \"number\",\n \"null\"\n ],\n \"minimum\": 0,\n \"maximum\": 100\n }\n },\n \"required\": [\n \"commissionRate\",\n \"discountRate\"\n ]\n },\n \"TierUpdateResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"success\": {\n \"type\": \"boolean\",\n \"example\": true\n },\n \"user\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"email\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"manualTierId\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n }\n },\n \"required\": [\n \"id\",\n \"email\",\n \"name\",\n \"manualTierId\"\n ]\n },\n \"tier\": {\n \"type\": [\n \"object\",\n \"null\"\n ],\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"displayName\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"commissionRate\": {\n \"type\": \"number\"\n },\n \"badgeColor\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"badgeIcon\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n }\n },\n \"required\": [\n \"id\",\n \"name\",\n \"displayName\",\n \"commissionRate\",\n \"badgeColor\",\n \"badgeIcon\"\n ]\n }\n },\n \"required\": [\n \"success\",\n \"user\",\n \"tier\"\n ]\n },\n \"TierBody\": {\n \"type\": \"object\",\n \"properties\": {\n \"manualTierId\": {\n \"type\": [\n \"string\",\n \"null\"\n ],\n \"format\": \"uuid\",\n \"description\": \"Must reference a manual-only (CK) tier\"\n }\n },\n \"required\": [\n \"manualTierId\"\n ]\n },\n \"ClaimEmailResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"success\": {\n \"type\": \"boolean\",\n \"example\": true\n },\n \"claimedEmail\": {\n \"type\": \"string\"\n },\n \"summary\": {\n \"type\": \"object\",\n \"properties\": {\n \"cancelledCommissions\": {\n \"type\": \"integer\"\n },\n \"deletedReferralCodes\": {\n \"type\": \"integer\"\n },\n \"wipedOrders\": {\n \"type\": \"integer\"\n },\n \"portedFields\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"deletedUserId\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"cancelledCommissions\",\n \"deletedReferralCodes\",\n \"wipedOrders\",\n \"portedFields\",\n \"deletedUserId\"\n ]\n }\n },\n \"required\": [\n \"success\",\n \"claimedEmail\",\n \"summary\"\n ]\n },\n \"ClaimEmailBody\": {\n \"type\": \"object\",\n \"properties\": {\n \"email\": {\n \"type\": \"string\",\n \"maxLength\": 254,\n \"format\": \"email\",\n \"description\": \"Email being claimed for this (target) user\"\n },\n \"conflictUserId\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"Id of the orphan account currently holding the email\"\n },\n \"cancelCommissions\": {\n \"type\": \"boolean\",\n \"description\": \"Default true \u2014 required if pending commissions exist\"\n },\n \"portAuthProvider\": {\n \"type\": \"boolean\",\n \"description\": \"Default false \u2014 copy OAuth identity from the orphan\"\n },\n \"reason\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 500\n }\n },\n \"required\": [\n \"email\",\n \"conflictUserId\",\n \"reason\"\n ]\n },\n \"MergeExecuteResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"success\": {\n \"type\": \"boolean\",\n \"example\": true\n },\n \"noop\": {\n \"type\": \"boolean\",\n \"description\": \"True if this was an idempotent retry of an already-completed merge\"\n },\n \"sourceUserId\": {\n \"type\": \"string\"\n },\n \"targetUserId\": {\n \"type\": \"string\"\n },\n \"summary\": {\n \"type\": \"object\",\n \"properties\": {\n \"movedCounts\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"integer\"\n },\n \"description\": \"Rows moved per table\"\n },\n \"cancelledSelfReferralCommissions\": {\n \"type\": \"integer\"\n },\n \"revenue\": {\n \"type\": \"object\",\n \"properties\": {\n \"before\": {\n \"type\": \"number\"\n },\n \"after\": {\n \"type\": \"number\"\n }\n },\n \"required\": [\n \"before\",\n \"after\"\n ]\n },\n \"tier\": {\n \"type\": \"object\",\n \"properties\": {\n \"beforeName\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n },\n \"afterName\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n }\n },\n \"required\": [\n \"beforeName\",\n \"afterName\"\n ]\n }\n },\n \"required\": [\n \"movedCounts\",\n \"cancelledSelfReferralCommissions\",\n \"revenue\",\n \"tier\"\n ]\n }\n },\n \"required\": [\n \"success\",\n \"noop\",\n \"sourceUserId\",\n \"targetUserId\",\n \"summary\"\n ]\n },\n \"MergeExecuteBody\": {\n \"type\": \"object\",\n \"properties\": {\n \"sourceUserId\": {\n \"type\": \"string\",\n \"format\": \"uuid\"\n },\n \"confirmSourceEmail\": {\n \"type\": \"string\",\n \"maxLength\": 254,\n \"format\": \"email\",\n \"description\": \"Must equal the source account's current email\"\n },\n \"attestSamePerson\": {\n \"type\": \"boolean\",\n \"enum\": [\n true\n ],\n \"description\": \"Explicit admin confirmation \u2014 must be exactly `true`\"\n },\n \"reason\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"maxLength\": 500\n }\n },\n \"required\": [\n \"sourceUserId\",\n \"confirmSourceEmail\",\n \"attestSamePerson\",\n \"reason\"\n ]\n },\n \"MergePreviewResponse\": {\n \"type\": \"object\",\n \"properties\": {\n \"preview\": {\n \"type\": \"object\",\n \"properties\": {\n \"sourceId\": {\n \"type\": \"string\"\n },\n \"targetId\": {\n \"type\": \"string\"\n },\n \"sourceEmail\": {\n \"type\": \"string\"\n },\n \"targetEmail\": {\n \"type\": \"string\"\n },\n \"canExecute\": {\n \"type\": \"boolean\"\n },\n \"blockers\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"kind\": {\n \"type\": \"string\"\n },\n \"message\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kind\",\n \"message\"\n ]\n }\n },\n \"alreadyMerged\": {\n \"type\": [\n \"object\",\n \"null\"\n ],\n \"additionalProperties\": {}\n },\n \"moveCounts\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"integer\"\n }\n },\n \"projectedRevenueCents\": {\n \"type\": \"integer\"\n },\n \"projectedTierName\": {\n \"type\": [\n \"string\",\n \"null\"\n ]\n }\n },\n \"required\": [\n \"sourceId\",\n \"targetId\",\n \"sourceEmail\",\n \"targetEmail\",\n \"canExecute\",\n \"blockers\",\n \"alreadyMerged\",\n \"moveCounts\",\n \"projectedRevenueCents\",\n \"projectedTierName\"\n ],\n \"additionalProperties\": {},\n \"description\": \"Full preview (additional fields: conflicts, selfReferral, payout, rateWarnings)\"\n }\n },\n \"required\": [\n \"preview\"\n ]\n },\n \"MergePreviewBody\": {\n \"type\": \"object\",\n \"properties\": {\n \"sourceUserId\": {\n \"type\": \"string\",\n \"format\": \"uuid\"\n }\n },\n \"required\": [\n \"sourceUserId\"\n ]\n },\n \"ProductGrantSuccessResponse\": {\n \"type\": \"object\",\n \"properties\": {\n \"grant\": {\n \"$ref\": \"#/components/schemas/ProductGrantResult\"\n }\n },\n \"required\": [\n \"grant\"\n ]\n },\n \"ProductGrantResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"licenseId\": {\n \"type\": \"string\"\n },\n \"productCode\": {\n \"type\": \"string\"\n },\n \"deliveryStatus\": {\n \"type\": \"string\",\n \"enum\": [\n \"pending\",\n \"sending\",\n \"uncertain\",\n \"delivered\"\n ]\n },\n \"replay\": {\n \"type\": \"boolean\"\n },\n \"errorCode\": {\n \"type\": \"string\",\n \"enum\": [\n \"EMAIL_DELIVERY_FAILED\"\n ]\n }\n },\n \"required\": [\n \"licenseId\",\n \"productCode\",\n \"deliveryStatus\",\n \"replay\"\n ]\n },\n \"ProductGrantDeliveryIssueResponse\": {\n \"type\": \"object\",\n \"properties\": {\n \"error\": {\n \"type\": \"string\",\n \"example\": \"EMAIL_DELIVERY_FAILED\"\n },\n \"message\": {\n \"type\": \"string\"\n },\n \"grant\": {\n \"$ref\": \"#/components/schemas/ProductGrantResult\"\n }\n },\n \"required\": [\n \"error\",\n \"message\",\n \"grant\"\n ]\n },\n \"ProductGrantRequestBody\": {\n \"type\": \"object\",\n \"properties\": {\n \"requestId\": {\n \"type\": \"string\",\n \"format\": \"uuid\",\n \"description\": \"Idempotency key for this grant request\"\n },\n \"productCode\": {\n \"type\": \"string\",\n \"enum\": [\n \"engineer_kit\",\n \"marketing_kit\",\n \"combo\",\n \"agentkit_app_1_device_yearly\",\n \"agentkit_app_3_device_yearly\"\n ]\n },\n \"reason\": {\n \"type\": \"string\",\n \"minLength\": 3,\n \"maxLength\": 500\n },\n \"confirmRecipientEmail\": {\n \"type\": \"string\",\n \"maxLength\": 254,\n \"format\": \"email\",\n \"description\": \"Must match the target user's current email\"\n },\n \"acknowledgeOverlap\": {\n \"type\": \"boolean\",\n \"description\": \"Default false \u2014 required if the user already has an overlapping product\"\n }\n },\n \"required\": [\n \"requestId\",\n \"productCode\",\n \"reason\",\n \"confirmRecipientEmail\"\n ]\n }\n }\n} as const;\n", "// Auto-generated by scripts/gen-manifest.ts. Do not edit manually.\nimport { manifestData } from \"./manifest-data.js\";\n\nexport type AuthRequirement = \"api_key\" | \"session_only\" | \"public\";\n\nexport interface OperationDescriptor {\n operationId: string;\n method: \"GET\" | \"POST\" | \"PUT\" | \"PATCH\" | \"DELETE\";\n path: string;\n domain: string;\n summary: string;\n description: string;\n isDestructive: boolean;\n isMutation: boolean;\n supportsIdempotencyKey: boolean;\n authRequirement: AuthRequirement;\n requiredScopes: string[];\n parameters: Array<{\n name: string;\n in: \"path\" | \"query\" | \"header\" | \"cookie\";\n required: boolean;\n description?: string;\n schema?: Record<string, unknown>;\n }>;\n requestBodySchema?: Record<string, unknown>;\n responseSchemas?: Record<string, Record<string, unknown>>;\n hasRequestBody: boolean;\n hasPathParams: boolean;\n hasQueryParams: boolean;\n isPublic: boolean;\n}\n\nexport interface ManifestData {\n version: string;\n specVersion: string;\n generatedAt: string;\n totalOperations: number;\n totalDestructive: number;\n totalSessionOnly: number;\n domains: string[];\n operations: OperationDescriptor[];\n operationsById: Record<string, OperationDescriptor>;\n operationsByDomain: Record<string, OperationDescriptor[]>;\n componentsSchemas?: Record<string, Record<string, unknown>>;\n}\n\nexport const MANIFEST: ManifestData = manifestData as unknown as ManifestData;\n\nexport function getOperation(operationId: string): OperationDescriptor | undefined {\n return MANIFEST.operationsById[operationId];\n}\n\nexport function getOperationsByDomain(domain: string): OperationDescriptor[] {\n return MANIFEST.operationsByDomain[domain] || [];\n}\n\nexport function getAllDomains(): string[] {\n return MANIFEST.domains;\n}\n\nexport function getAllOperations(): OperationDescriptor[] {\n return MANIFEST.operations;\n}\n", "/**\n * CLI discover & describe commands.\n */\n\nimport { getAllDomains, getOperation, getOperationsByDomain } from \"@akadmin/manifest\";\nimport { Command } from \"commander\";\n\nexport function registerDiscoverCommands(program: Command): void {\n program\n .command(\"discover [domain]\")\n .description(\"Explore available administrative domains and operations\")\n .option(\"--json\", \"Output JSON format\")\n .option(\"--destructive\", \"Filter only destructive operations\")\n .action((domain, options) => {\n if (!domain) {\n const domains = getAllDomains();\n const summary = domains.map((d) => {\n const ops = getOperationsByDomain(d);\n const destructive = ops.filter((o) => o.isDestructive).length;\n const sessionOnly = ops.filter((o) => o.authRequirement === \"session_only\").length;\n return {\n domain: d,\n totalOperations: ops.length,\n destructiveOperations: destructive,\n sessionOnlyOperations: sessionOnly,\n };\n });\n\n if (options.json) {\n console.log(JSON.stringify(summary, null, 2));\n return;\n }\n\n console.log(\"\\n\uD83D\uDCE6 AgentKit Admin Surface (17 Domains, 124 Operations):\\n\");\n for (const s of summary) {\n const destBadge = s.destructiveOperations > 0 ? ` [\u26A0\uFE0F ${s.destructiveOperations} destructive]` : \"\";\n const sessBadge = s.sessionOnlyOperations > 0 ? ` [\uD83C\uDF6A ${s.sessionOnlyOperations} session-only]` : \"\";\n console.log(` \u2022 ${s.domain.padEnd(30)} ${s.totalOperations} ops${destBadge}${sessBadge}`);\n }\n console.log(\"\\nRun `akadmin discover <domain>` to inspect operations within a domain.\");\n return;\n }\n\n let ops = getOperationsByDomain(domain);\n if (ops.length === 0) {\n console.error(`Error: Domain '${domain}' not found. Run 'akadmin discover' to list valid domains.`);\n process.exitCode = 1;\n return;\n }\n\n if (options.destructive) {\n ops = ops.filter((o) => o.isDestructive);\n }\n\n if (options.json) {\n console.log(JSON.stringify(ops, null, 2));\n return;\n }\n\n console.log(`\\n\uD83D\uDCC2 Operations in '${domain}' (${ops.length} operations):\\n`);\n for (const op of ops) {\n const flag = op.isDestructive ? \"\u26A0\uFE0F DESTRUCTIVE\" : op.isMutation ? \"\u270F\uFE0F MUTATION\" : \"\uD83D\uDD0D READ\";\n const authBadge = op.authRequirement === \"session_only\" ? \"[\uD83C\uDF6A Session Only]\" : op.authRequirement === \"public\" ? \"[\uD83C\uDF10 Public]\" : \"\";\n console.log(` \u2022 ${op.operationId.padEnd(36)} [${op.method} ${op.path}] ${flag} ${authBadge}`);\n if (op.summary) {\n console.log(` ${op.summary}`);\n }\n }\n });\n\n program\n .command(\"describe <operationId>\")\n .description(\"Show detailed schema, parameters, and scopes for an operation\")\n .option(\"--json\", \"Output JSON format\")\n .action((operationId, options) => {\n const op = getOperation(operationId);\n if (!op) {\n console.error(`Error: Operation '${operationId}' not found.`);\n process.exitCode = 1;\n return;\n }\n\n if (options.json) {\n console.log(JSON.stringify(op, null, 2));\n return;\n }\n\n console.log(`\\n\uD83D\uDCCB Operation: ${op.operationId}`);\n console.log(`Domain: ${op.domain}`);\n console.log(`Endpoint: ${op.method} ${op.path}`);\n console.log(`Auth Mode: ${op.authRequirement}`);\n console.log(`Destructive: ${op.isDestructive ? \"YES (gated by preview->confirm)\" : \"No\"}`);\n console.log(`Scopes: ${op.requiredScopes.length > 0 ? op.requiredScopes.join(\", \") : \"None declared (admin session/super-scope)\"}`);\n console.log(`Summary: ${op.summary || \"None\"}`);\n\n if (op.parameters.length > 0) {\n console.log(\"\\nParameters:\");\n for (const p of op.parameters) {\n console.log(` - ${p.name} (${p.in}, ${p.required ? \"required\" : \"optional\"}): ${p.description || \"\"}`);\n }\n }\n\n if (op.hasRequestBody) {\n console.log(\"\\nRequest Body: Accepts JSON payload\");\n }\n });\n}\n", "/**\n * CLI universal raw escape hatch command with persistent nonces, audit logging,\n * and binary (PDF) / text (CSV) file output support.\n */\n\nimport fs from \"node:fs\";\nimport path from \"node:path\";\nimport { executeOperation, type ExecutionContext } from \"@akadmin/core\";\nimport { Command } from \"commander\";\nimport { CliKeychain } from \"../keychain/index.js\";\nimport { FileAuditStore, FileNonceStore } from \"../storage/file-store.js\";\n\nexport function registerRawCommand(program: Command, keychain: CliKeychain): void {\n const nonceStore = new FileNonceStore(keychain.getConfigDir());\n const auditStore = new FileAuditStore(keychain.getConfigDir());\n\n program\n .command(\"raw <operationId>\")\n .description(\"Invoke any of the 124 OpenAPI operations by operationId\")\n .option(\"-p, --param <key=value...>\", \"Path/query parameters (e.g. -p orderId=ord_100)\")\n .option(\"-b, --body <json>\", \"Request body JSON string\")\n .option(\"-o, --output <filePath>\", \"Save response output directly to file (for PDF invoices, CSV exports, etc.)\")\n .option(\"--confirm <token>\", \"Confirm token required to execute mutations\")\n .option(\"--profile <profile>\", \"Target environment profile (default: production)\")\n .option(\"--json\", \"Output JSON format\")\n .action(async (operationId, options) => {\n const activeProfile = options.profile || keychain.getActiveProfile();\n const creds = await keychain.getCredentials(activeProfile);\n const signingSecret = await keychain.getSigningSecret();\n\n const params: Record<string, unknown> = {};\n if (options.param) {\n const paramList = Array.isArray(options.param) ? options.param : [options.param];\n for (const item of paramList) {\n const eqIdx = item.indexOf(\"=\");\n if (eqIdx !== -1) {\n const k = item.slice(0, eqIdx).trim();\n const v = item.slice(eqIdx + 1).trim();\n params[k] = v;\n }\n }\n }\n\n let parsedBody: unknown = undefined;\n if (options.body) {\n try {\n parsedBody = JSON.parse(options.body);\n } catch {\n console.error(\"Error: --body must be valid JSON.\");\n process.exitCode = 1;\n return;\n }\n }\n\n const context: ExecutionContext = {\n operatorId: \"cli_operator\",\n profile: activeProfile,\n apiKey: creds.apiKey,\n sessionCookie: creds.sessionCookie,\n baseUrl: creds.baseUrl || \"https://agentkit.best\",\n signingSecret,\n nonceStore,\n auditStore,\n confirmToken: options.confirm,\n };\n\n const result = await executeOperation(operationId, params, parsedBody, context);\n\n if (options.json) {\n console.log(JSON.stringify(result, null, 2));\n if (result.status === \"error\") process.exitCode = 1;\n return;\n }\n\n if (result.status === \"confirmation_required\") {\n const p = result.preview;\n console.log(`\\n\uD83D\uDD12 [PREVIEW \u2014 ${activeProfile.toUpperCase()}] ${p.summary || p.operationId}`);\n console.log(`Endpoint: ${p.method} ${p.path}`);\n console.log(`Impact: ${p.impactDescription}`);\n console.log(`Hash: ${p.canonicalHash.slice(0, 16)}...`);\n console.log(`Expires: ${p.expiresAt}`);\n for (const w of p.warnings) console.log(` ${w}`);\n\n console.log(\"\\n\u25B6 TO EXECUTE, re-run with confirmation token:\");\n console.log(` akadmin raw ${operationId} ${options.param ? `--param ${options.param}` : \"\"} --confirm ${p.confirmToken}\\n`);\n return;\n }\n\n if (result.status === \"executed\") {\n const data = result.data;\n\n // Handle Binary Output (PDF)\n if (data && typeof data === \"object\" && \"isBinary\" in data && data.isBinary === true) {\n const binaryObj = data as { contentType: string; byteLength: number; rawBytes: Uint8Array };\n if (options.output) {\n const outPath = path.resolve(process.cwd(), options.output);\n fs.writeFileSync(outPath, binaryObj.rawBytes);\n console.log(`\\n\u2705 Saved binary response (${binaryObj.contentType}, ${binaryObj.byteLength} bytes) to: ${outPath}`);\n } else {\n console.log(`\\n\uD83D\uDCC4 [${activeProfile.toUpperCase()}] Binary Response Received: ${binaryObj.contentType} (${binaryObj.byteLength} bytes).`);\n console.log(\" Pass `-o <filename.pdf>` to write this file directly to disk.\\n\");\n }\n console.log(`Audit ID: ${result.auditId}`);\n return;\n }\n\n // Handle Text/CSV Output\n if (data && typeof data === \"object\" && \"isText\" in data && data.isText === true) {\n const textObj = data as { contentType: string; content: string };\n if (options.output) {\n const outPath = path.resolve(process.cwd(), options.output);\n fs.writeFileSync(outPath, textObj.content, \"utf-8\");\n console.log(`\\n\u2705 Saved text/CSV export (${textObj.contentType}) to: ${outPath}`);\n } else {\n console.log(textObj.content);\n }\n return;\n }\n\n console.log(`\\n\u2705 [${activeProfile.toUpperCase()}] Operation '${operationId}' executed successfully (Status ${result.statusCode}):`);\n console.log(JSON.stringify(result.data, null, 2));\n console.log(`\\nAudit ID: ${result.auditId}${result.idempotencyKey ? ` | Idempotency Key: ${result.idempotencyKey}` : \"\"}`);\n return;\n }\n\n if (result.status === \"error\") {\n console.error(`\\n\u274C [${activeProfile.toUpperCase()}] Execution Error (Status ${result.statusCode}):`);\n console.error(` ${result.error}`);\n if (result.requiredScopes && result.requiredScopes.length > 0) {\n console.error(` Required scope(s): ${result.requiredScopes.join(\", \")}`);\n }\n process.exitCode = 1;\n }\n });\n}\n", "/**\n * WebCrypto-based HMAC-SHA256 signing and verification.\n * Runs isomorphically on Node 22+ and Cloudflare Workers runtime.\n */\n\nexport async function hmacSha256Sign(secret: string, data: string): Promise<string> {\n const encoder = new TextEncoder();\n const keyData = encoder.encode(secret);\n const cryptoKey = await crypto.subtle.importKey(\n \"raw\",\n keyData,\n { name: \"HMAC\", hash: \"SHA-256\" },\n false,\n [\"sign\"],\n );\n\n const signatureBuffer = await crypto.subtle.sign(\n \"HMAC\",\n cryptoKey,\n encoder.encode(data),\n );\n\n const signatureArray = Array.from(new Uint8Array(signatureBuffer));\n return signatureArray.map((b) => b.toString(16).padStart(2, \"0\")).join(\"\");\n}\n\nexport async function hmacSha256Verify(\n secret: string,\n data: string,\n expectedSignatureHex: string,\n): Promise<boolean> {\n const computedSignatureHex = await hmacSha256Sign(secret, data);\n if (computedSignatureHex.length !== expectedSignatureHex.length) {\n return false;\n }\n\n // Constant-time comparison\n let mismatch = 0;\n for (let i = 0; i < computedSignatureHex.length; i++) {\n mismatch |= computedSignatureHex.charCodeAt(i) ^ expectedSignatureHex.charCodeAt(i);\n }\n return mismatch === 0;\n}\n", "/**\n * Deterministic JSON canonicalization and SHA-256 hashing using WebCrypto.\n * Preserves key ordering across nested objects for reproducible cryptographic hashes.\n */\n\nexport function canonicalizeJson(value: unknown): string {\n if (value === null || typeof value !== \"object\") {\n return JSON.stringify(value);\n }\n\n if (Array.isArray(value)) {\n return `[${value.map(canonicalizeJson).join(\",\")}]`;\n }\n\n const record = value as Record<string, unknown>;\n const sortedKeys = Object.keys(record).sort();\n const pairs = sortedKeys.map((key) => `${JSON.stringify(key)}:${canonicalizeJson(record[key])}`);\n return `{${pairs.join(\",\")}}`;\n}\n\nexport async function sha256Hex(input: string): Promise<string> {\n const encoder = new TextEncoder();\n const data = encoder.encode(input);\n const hashBuffer = await crypto.subtle.digest(\"SHA-256\", data);\n const hashArray = Array.from(new Uint8Array(hashBuffer));\n return hashArray.map((b) => b.toString(16).padStart(2, \"0\")).join(\"\");\n}\n\nexport async function computeCanonicalHash(\n operationId: string,\n params: Record<string, unknown>,\n body: unknown,\n profile: string,\n): Promise<string> {\n const canonicalData = {\n operationId,\n params,\n body: body ?? null,\n profile,\n };\n const canonicalString = canonicalizeJson(canonicalData);\n return sha256Hex(canonicalString);\n}\n", "/**\n * Central redaction scrubber for secrets, API keys, tokens, and PII.\n * Applied across all output sinks, logs, and audit trails.\n * Preserves Uint8Array and ArrayBuffer binary payloads without corruption.\n */\n\nconst SECRET_KEY_PATTERNS = [\n /x-api-key/i,\n /api[-_]?key/i,\n /authorization/i,\n /cookie/i,\n /password/i,\n /secret/i,\n /token/i,\n /privatekey/i,\n /dek/i,\n /keyhash/i,\n /plainkey/i,\n];\n\nconst SECRET_VALUE_PATTERNS = [\n /ck_live_[a-zA-Z0-9_-]{20,}/g,\n /ak_live_[a-zA-Z0-9_-]{20,}/g,\n /gh[opsu]_[a-zA-Z0-9]{20,}/g,\n /bearer\\s+[a-zA-Z0-9_.-]{20,}/gi,\n /eyJ[a-zA-Z0-9_-]{10,}\\.[a-zA-Z0-9_-]{10,}\\.[a-zA-Z0-9_-]{10,}/g, // JWTs\n];\n\nexport function redactString(text: string): string {\n let result = text;\n for (const pattern of SECRET_VALUE_PATTERNS) {\n result = result.replace(pattern, \"\u2039redacted-secret\u203A\");\n }\n return result;\n}\n\nexport function redactObject<T>(value: T): T {\n if (value === null || typeof value !== \"object\") {\n if (typeof value === \"string\") {\n return redactString(value) as unknown as T;\n }\n return value;\n }\n\n // Preserve binary buffers and typed arrays without converting to object indices\n if (value instanceof Uint8Array || value instanceof ArrayBuffer) {\n return value;\n }\n\n if (Array.isArray(value)) {\n return value.map((item) => redactObject(item)) as unknown as T;\n }\n\n const record = value as Record<string, unknown>;\n const redactedRecord: Record<string, unknown> = {};\n\n for (const [key, val] of Object.entries(record)) {\n const isSecretKey = SECRET_KEY_PATTERNS.some((pattern) => pattern.test(key));\n if (isSecretKey && val !== null && val !== undefined) {\n redactedRecord[key] = \"\u2039redacted-key\u203A\";\n } else {\n redactedRecord[key] = redactObject(val);\n }\n }\n\n return redactedRecord as T;\n}\n\nexport function maskApiKey(key: string): string {\n if (key.length <= 8) return \"********\";\n return `${key.slice(0, 8)}...${key.slice(-4)}`;\n}\n", "/**\n * Append-only audit logger and event interfaces.\n * Redacts secrets before recording. Uses cryptographic UUIDs.\n */\n\nimport { redactObject } from \"../redaction/index.js\";\n\nexport interface AuditRecord {\n id: string;\n timestamp: string;\n operatorId: string;\n profile: string;\n operationId: string;\n method: string;\n path: string;\n canonicalHash: string;\n idempotencyKey?: string;\n phase: \"preview\" | \"confirm\" | \"executed\" | \"rejected\";\n isDestructive: boolean;\n statusCode?: number;\n error?: string;\n details?: Record<string, unknown>;\n}\n\nexport interface AuditStore {\n append(record: AuditRecord): Promise<void>;\n list(limit?: number): Promise<AuditRecord[]>;\n}\n\nexport class MemoryAuditStore implements AuditStore {\n private records: AuditRecord[] = [];\n\n async append(record: AuditRecord): Promise<void> {\n const sanitized = redactObject(record);\n this.records.push(sanitized);\n }\n\n async list(limit = 50): Promise<AuditRecord[]> {\n return this.records.slice(-limit);\n }\n}\n\nexport function createAuditRecord(params: {\n operatorId: string;\n profile: string;\n operationId: string;\n method: string;\n path: string;\n canonicalHash: string;\n phase: AuditRecord[\"phase\"];\n isDestructive: boolean;\n idempotencyKey?: string;\n statusCode?: number;\n error?: string;\n details?: Record<string, unknown>;\n}): AuditRecord {\n const id = `aud_${Date.now()}_${crypto.randomUUID()}`;\n return {\n id,\n timestamp: new Date().toISOString(),\n ...params,\n };\n}\n", "/**\n * Short-lived signed HMAC confirm token minting and atomic single-use verification.\n * Cryptographically random nonces (WebCrypto) and strictly bounded TTL (<=120s).\n */\n\nimport { hmacSha256Sign, hmacSha256Verify } from \"../crypto/hmac.js\";\n\nexport const MAX_CONFIRM_TOKEN_TTL_SECONDS = 120;\nexport const DEFAULT_CONFIRM_TOKEN_TTL_SECONDS = 120;\n\nexport interface ConfirmTokenPayload {\n version: 1;\n operatorId: string;\n profile: string;\n operationId: string;\n canonicalHash: string;\n nonce: string;\n issuedAt: number;\n expiresAt: number;\n}\n\nexport interface NonceStore {\n claim(nonce: string, ttlSeconds: number): Promise<boolean>;\n}\n\nexport class MemoryNonceStore implements NonceStore {\n private consumed = new Set<string>();\n\n async claim(nonce: string, _ttlSeconds: number): Promise<boolean> {\n if (this.consumed.has(nonce)) {\n return false;\n }\n this.consumed.add(nonce);\n return true;\n }\n}\n\nfunction generateSecureNonce(): string {\n const bytes = crypto.getRandomValues(new Uint8Array(16));\n const hex = Array.from(bytes)\n .map((b) => b.toString(16).padStart(2, \"0\"))\n .join(\"\");\n return `non_${Date.now()}_${hex}`;\n}\n\nfunction base64UrlEncode(str: string): string {\n return btoa(str).replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/=+$/, \"\");\n}\n\nfunction base64UrlDecode(str: string): string {\n let base64 = str.replace(/-/g, \"+\").replace(/_/g, \"/\");\n while (base64.length % 4) {\n base64 += \"=\";\n }\n return atob(base64);\n}\n\nexport async function mintConfirmToken(params: {\n operatorId: string;\n profile: string;\n operationId: string;\n canonicalHash: string;\n signingSecret: string;\n ttlSeconds?: number;\n}): Promise<{ token: string; payload: ConfirmTokenPayload }> {\n const requestedTtl = params.ttlSeconds ?? DEFAULT_CONFIRM_TOKEN_TTL_SECONDS;\n const ttl = Math.min(Math.max(1, requestedTtl), MAX_CONFIRM_TOKEN_TTL_SECONDS);\n\n const issuedAt = Date.now();\n const expiresAt = issuedAt + ttl * 1000;\n const nonce = generateSecureNonce();\n\n const payload: ConfirmTokenPayload = {\n version: 1,\n operatorId: params.operatorId,\n profile: params.profile,\n operationId: params.operationId,\n canonicalHash: params.canonicalHash,\n nonce,\n issuedAt,\n expiresAt,\n };\n\n const payloadString = JSON.stringify(payload);\n const encodedPayload = base64UrlEncode(payloadString);\n const signature = await hmacSha256Sign(params.signingSecret, encodedPayload);\n\n const token = `akcf_${encodedPayload}.${signature}`;\n return { token, payload };\n}\n\nexport interface VerifyTokenResult {\n valid: boolean;\n error?: string;\n payload?: ConfirmTokenPayload;\n}\n\nexport async function verifyConfirmToken(params: {\n token: string;\n expectedOperatorId: string;\n expectedProfile: string;\n expectedOperationId: string;\n expectedCanonicalHash: string;\n signingSecret: string;\n nonceStore: NonceStore;\n}): Promise<VerifyTokenResult> {\n if (!params.token.startsWith(\"akcf_\")) {\n return { valid: false, error: \"Invalid token prefix: must start with 'akcf_'\" };\n }\n\n const tokenBody = params.token.slice(5);\n const dotIndex = tokenBody.indexOf(\".\");\n if (dotIndex === -1) {\n return { valid: false, error: \"Malformed token structure: missing signature delimiter\" };\n }\n\n const encodedPayload = tokenBody.slice(0, dotIndex);\n const signature = tokenBody.slice(dotIndex + 1);\n\n // 1. Verify HMAC Signature\n const isSigValid = await hmacSha256Verify(params.signingSecret, encodedPayload, signature);\n if (!isSigValid) {\n return { valid: false, error: \"Invalid token signature: tamper detected\" };\n }\n\n // 2. Decode and parse payload\n let payload: ConfirmTokenPayload;\n try {\n const rawPayload = base64UrlDecode(encodedPayload);\n payload = JSON.parse(rawPayload);\n } catch (err) {\n return { valid: false, error: `Invalid payload JSON: ${String(err)}` };\n }\n\n // 3. Expiry Check\n const now = Date.now();\n if (now > payload.expiresAt) {\n return { valid: false, error: `Confirm token expired at ${new Date(payload.expiresAt).toISOString()}` };\n }\n\n // 4. Scope & Context Binding Checks\n if (payload.operatorId !== params.expectedOperatorId) {\n return { valid: false, error: `Operator mismatch: token bound to '${payload.operatorId}', not '${params.expectedOperatorId}'` };\n }\n\n if (payload.profile !== params.expectedProfile) {\n return { valid: false, error: `Profile mismatch: token bound to '${payload.profile}', not '${params.expectedProfile}'` };\n }\n\n if (payload.operationId !== params.expectedOperationId) {\n return { valid: false, error: `Operation mismatch: token bound to '${payload.operationId}', not '${params.expectedOperationId}'` };\n }\n\n if (payload.canonicalHash !== params.expectedCanonicalHash) {\n return { valid: false, error: `Request payload drift: token bound to hash '${payload.canonicalHash}', but current request hash is '${params.expectedCanonicalHash}'` };\n }\n\n // 5. Atomic Nonce Consumption (Single-use)\n const ttlSeconds = Math.ceil((payload.expiresAt - now) / 1000) + 10;\n const claimed = await params.nonceStore.claim(payload.nonce, ttlSeconds);\n if (!claimed) {\n return { valid: false, error: `Confirm token nonce '${payload.nonce}' has already been consumed (replay rejected)` };\n }\n\n return { valid: true, payload };\n}\n", "/**\n * Impact summarizer and dry-run preview generator.\n * Returns normalized parameters and request body alongside the confirm token.\n */\n\nimport { getOperation } from \"@akadmin/manifest\";\nimport { computeCanonicalHash } from \"../crypto/canonical.js\";\nimport { mintConfirmToken } from \"./confirm.js\";\n\nexport interface PreviewResult {\n operationId: string;\n domain: string;\n method: string;\n path: string;\n summary: string;\n isDestructive: boolean;\n isMutation: boolean;\n requiredScopes: string[];\n canonicalHash: string;\n confirmToken: string;\n expiresAt: string;\n impactDescription: string;\n warnings: string[];\n normalizedParameters: Record<string, unknown>;\n normalizedBody: unknown;\n}\n\nexport async function generatePreview(params: {\n operationId: string;\n parameters: Record<string, unknown>;\n body: unknown;\n operatorId: string;\n profile: string;\n signingSecret: string;\n ttlSeconds?: number;\n}): Promise<PreviewResult> {\n const op = getOperation(params.operationId);\n if (!op) {\n throw new Error(`Operation '${params.operationId}' not found in manifest`);\n }\n\n const canonicalHash = await computeCanonicalHash(\n params.operationId,\n params.parameters,\n params.body,\n params.profile,\n );\n\n const { token, payload } = await mintConfirmToken({\n operatorId: params.operatorId,\n profile: params.profile,\n operationId: params.operationId,\n canonicalHash,\n signingSecret: params.signingSecret,\n ttlSeconds: params.ttlSeconds,\n });\n\n const warnings: string[] = [];\n if (op.isDestructive) {\n warnings.push(\"\u26A0\uFE0F DESTRUCTIVE OPERATION: Mutates persistent live data.\");\n }\n if (params.profile === \"production\") {\n warnings.push(\"\uD83D\uDD12 PRODUCTION ENVIRONMENT: Changes affect live customer/storefront records.\");\n }\n\n let impactDescription = op.summary || `${op.method} ${op.path}`;\n if (params.operationId === \"postOrders\") {\n impactDescription = \"Creates a new zero-dollar admin comp order with immediate fulfillment and license activation.\";\n } else if (op.path.includes(\"refund\")) {\n impactDescription = \"Issues a refund to customer, adjusting financial records and reversing loyalty points.\";\n } else if (op.method === \"DELETE\") {\n impactDescription = `Permanently deletes target record from ${op.domain}.`;\n }\n\n return {\n operationId: op.operationId,\n domain: op.domain,\n method: op.method,\n path: op.path,\n summary: op.summary,\n isDestructive: op.isDestructive,\n isMutation: op.isMutation,\n requiredScopes: op.requiredScopes,\n canonicalHash,\n confirmToken: token,\n expiresAt: new Date(payload.expiresAt).toISOString(),\n impactDescription,\n warnings,\n normalizedParameters: params.parameters,\n normalizedBody: params.body,\n };\n}\n", "/**\n * Deterministic Idempotency-Key derivation.\n */\n\nimport { sha256Hex } from \"../crypto/canonical.js\";\n\nexport async function generateIdempotencyKey(\n operationId: string,\n canonicalHash: string,\n nonce: string,\n): Promise<string> {\n const raw = `${operationId}:${canonicalHash}:${nonce}`;\n const hash = await sha256Hex(raw);\n return `idem_${hash.slice(0, 32)}`;\n}\n", "/**\n * Upstream HTTP Client for AgentKit admin API.\n * Supports dual auth (x-api-key header and/or session cookie),\n * bounded transparent retries for idempotent requests,\n * and robust binary (application/pdf) & text/csv content handling without corruption.\n */\n\nexport interface HttpRequestOptions {\n baseUrl: string;\n apiKey?: string;\n sessionCookie?: string;\n method: string;\n path: string;\n pathParams?: Record<string, string | number>;\n queryParams?: Record<string, string | number | boolean | undefined>;\n body?: unknown;\n idempotencyKey?: string;\n requiredScopes?: string[];\n maxRetries?: number;\n retryDelayMs?: number;\n fetchFn?: typeof fetch;\n}\n\nexport interface HttpBinaryData {\n isBinary: true;\n contentType: string;\n byteLength: number;\n base64: string;\n rawBytes: Uint8Array;\n}\n\nexport interface HttpTextData {\n isText: true;\n contentType: string;\n content: string;\n}\n\nexport type HttpResponseBody<T = unknown> = T | HttpBinaryData | HttpTextData;\n\nexport interface HttpResponse<T = unknown> {\n ok: boolean;\n status: number;\n data?: HttpResponseBody<T>;\n error?: string;\n requiredScopes?: string[];\n headers: Headers;\n retriesAttempted?: number;\n contentType?: string;\n}\n\nfunction isRetryableStatus(status: number): boolean {\n return status === 502 || status === 503 || status === 504 || status === 429;\n}\n\nfunction isBinaryContentType(contentType: string): boolean {\n const ct = contentType.toLowerCase();\n return (\n ct.includes(\"application/pdf\") ||\n ct.includes(\"application/octet-stream\") ||\n ct.includes(\"application/zip\") ||\n ct.startsWith(\"image/\") ||\n ct.startsWith(\"audio/\")\n );\n}\n\nfunction uint8ArrayToBase64(bytes: Uint8Array): string {\n let binary = \"\";\n for (let i = 0; i < bytes.byteLength; i++) {\n binary += String.fromCharCode(bytes[i]!);\n }\n return btoa(binary);\n}\n\nexport async function executeHttpRequest<T = unknown>(\n options: HttpRequestOptions,\n): Promise<HttpResponse<T>> {\n const fetchImpl = options.fetchFn ?? fetch;\n const maxRetries = options.maxRetries ?? (options.idempotencyKey || [\"GET\", \"PUT\", \"DELETE\"].includes(options.method) ? 3 : 0);\n const baseRetryDelay = options.retryDelayMs ?? 100;\n\n // 1. Resolve path parameters\n let resolvedPath = options.path;\n if (options.pathParams) {\n for (const [key, val] of Object.entries(options.pathParams)) {\n resolvedPath = resolvedPath.replace(`{${key}}`, encodeURIComponent(String(val)));\n }\n }\n\n // 2. Build Query String\n const url = new URL(resolvedPath, options.baseUrl);\n if (options.queryParams) {\n for (const [key, val] of Object.entries(options.queryParams)) {\n if (val !== undefined && val !== null) {\n url.searchParams.set(key, String(val));\n }\n }\n }\n\n // 3. Build Headers\n const headers = new Headers();\n headers.set(\"Accept\", \"application/json, application/pdf, text/csv, */*\");\n\n if (options.apiKey) {\n headers.set(\"x-api-key\", options.apiKey);\n }\n\n if (options.sessionCookie) {\n const cookieVal = options.sessionCookie.includes(\"=\")\n ? options.sessionCookie\n : `authjs.session-token=${options.sessionCookie}; __Secure-authjs.session-token=${options.sessionCookie}`;\n headers.set(\"Cookie\", cookieVal);\n }\n\n if (options.idempotencyKey) {\n headers.set(\"Idempotency-Key\", options.idempotencyKey);\n }\n\n let bodyContent: string | undefined;\n if (options.body !== undefined && options.body !== null && options.method !== \"GET\") {\n headers.set(\"Content-Type\", \"application/json\");\n bodyContent = JSON.stringify(options.body);\n }\n\n let attempt = 0;\n let lastError: unknown = null;\n let lastResponse: Response | null = null;\n\n while (attempt <= maxRetries) {\n try {\n const res = await fetchImpl(url.toString(), {\n method: options.method,\n headers,\n body: bodyContent,\n });\n\n lastResponse = res;\n\n // If response is retryable (502/503/504) and retries remain, retry with identical Idempotency-Key\n if (isRetryableStatus(res.status) && attempt < maxRetries && options.idempotencyKey) {\n attempt++;\n const delay = baseRetryDelay * Math.pow(2, attempt - 1);\n if (!(\"vi\" in globalThis)) {\n await new Promise((r) => setTimeout(r, delay));\n }\n continue;\n }\n\n const contentType = res.headers.get(\"content-type\") || \"\";\n let responseData: HttpResponseBody<T> = undefined as unknown as HttpResponseBody<T>;\n\n if (!res.ok) {\n // Error handling\n let errorMessage = `HTTP ${res.status} ${res.statusText}`;\n\n if (contentType.includes(\"application/json\")) {\n try {\n const errJson: unknown = await res.json();\n if (errJson && typeof errJson === \"object\" && \"error\" in errJson) {\n const errObj = errJson as { error?: string; message?: string };\n errorMessage = errObj.error || errObj.message || errorMessage;\n }\n responseData = errJson as T;\n } catch {}\n } else {\n const errText = await res.text();\n if (errText) errorMessage = errText;\n }\n\n if (res.status === 401) {\n errorMessage = \"Unauthorized: Invalid, expired, or missing admin credentials.\";\n } else if (res.status === 403) {\n const scopesDesc = options.requiredScopes && options.requiredScopes.length > 0\n ? ` Required scope(s): ${options.requiredScopes.join(\", \")}`\n : \"\";\n errorMessage = `Forbidden: Caller lacks required admin privileges.${scopesDesc}`;\n } else if (res.status === 429) {\n errorMessage = \"Rate limit exceeded: Too many requests sent to admin API.\";\n }\n\n return {\n ok: false,\n status: res.status,\n data: responseData,\n error: errorMessage,\n requiredScopes: options.requiredScopes,\n headers: res.headers,\n retriesAttempted: attempt,\n contentType,\n };\n }\n\n // Success Response Handling\n if (isBinaryContentType(contentType)) {\n // Binary Data (e.g. application/pdf) -> ArrayBuffer/Uint8Array to prevent string encoding corruption\n const arrayBuf = await res.arrayBuffer();\n const rawBytes = new Uint8Array(arrayBuf);\n const base64 = uint8ArrayToBase64(rawBytes);\n\n responseData = {\n isBinary: true,\n contentType,\n byteLength: rawBytes.byteLength,\n base64,\n rawBytes,\n };\n } else if (contentType.includes(\"application/json\")) {\n responseData = (await res.json()) as T;\n } else {\n // CSV or Text Data\n const text = await res.text();\n if (contentType.includes(\"text/csv\") || options.path.endsWith(\"/export\") || options.path.includes(\"export-csv\")) {\n responseData = {\n isText: true,\n contentType: contentType || \"text/csv\",\n content: text,\n };\n } else {\n responseData = text as unknown as T;\n }\n }\n\n return {\n ok: true,\n status: res.status,\n data: responseData,\n headers: res.headers,\n retriesAttempted: attempt,\n contentType,\n };\n } catch (error) {\n lastError = error;\n if (attempt < maxRetries && (options.idempotencyKey || [\"GET\", \"PUT\", \"DELETE\"].includes(options.method))) {\n attempt++;\n const delay = baseRetryDelay * Math.pow(2, attempt - 1);\n if (!(\"vi\" in globalThis)) {\n await new Promise((r) => setTimeout(r, delay));\n }\n continue;\n }\n break;\n }\n }\n\n return {\n ok: false,\n status: lastResponse?.status ?? 0,\n error: `Network error connecting to ${options.baseUrl} after ${attempt} attempt(s): ${String(lastError)}`,\n headers: lastResponse?.headers ?? new Headers(),\n retriesAttempted: attempt,\n };\n}\n", "/**\n * Closed execution choke point for all operation dispatches.\n * Enforces two-phase preview->confirm safety gate for all mutations across all profiles,\n * auth requirement validation and exact credential selection (API key vs session-only vs public),\n * atomic nonce single-use, idempotency-key injection only when supported, direct-vault capture,\n * and complete correlated preview->confirm->executed append-only audit trail (AC11).\n */\n\nimport { getOperation, type OperationDescriptor } from \"@akadmin/manifest\";\nimport { executeHttpRequest, type HttpResponse } from \"../client/http.js\";\nimport { computeCanonicalHash } from \"../crypto/canonical.js\";\nimport { createAuditRecord, type AuditStore } from \"../audit/index.js\";\nimport { generateIdempotencyKey } from \"./idempotency.js\";\nimport { generatePreview, type PreviewResult } from \"./preview.js\";\nimport { verifyConfirmToken, type NonceStore } from \"./confirm.js\";\nimport { redactObject } from \"../redaction/index.js\";\n\nexport interface ExecutionContext {\n operatorId: string;\n profile: \"production\" | \"staging\" | string;\n apiKey?: string;\n sessionCookie?: string;\n baseUrl: string;\n signingSecret: string;\n nonceStore: NonceStore;\n auditStore: AuditStore;\n confirmToken?: string;\n fetchFn?: typeof fetch;\n directVaultCapture?: (plainKey: string, keyName: string) => Promise<{ vaultStored: boolean; vaultKeyLabel: string }>;\n}\n\nexport type ExecutionResult<T = unknown> =\n | {\n status: \"confirmation_required\";\n preview: PreviewResult;\n }\n | {\n status: \"executed\";\n statusCode: number;\n data: T;\n operation: OperationDescriptor;\n idempotencyKey?: string;\n auditId: string;\n }\n | {\n status: \"error\";\n statusCode: number;\n error: string;\n operation?: OperationDescriptor;\n requiredScopes?: string[];\n auditId: string;\n };\n\ninterface KeyCreationData {\n plainKey: string;\n name?: string;\n id?: string;\n [key: string]: unknown;\n}\n\nfunction isKeyCreationData(data: unknown): data is KeyCreationData {\n return typeof data === \"object\" && data !== null && \"plainKey\" in data && typeof data.plainKey === \"string\";\n}\n\nexport async function executeOperation<T = unknown>(\n operationId: string,\n params: Record<string, unknown> = {},\n body: unknown = undefined,\n context: ExecutionContext,\n): Promise<ExecutionResult<T>> {\n const op = getOperation(operationId);\n if (!op) {\n const errorRecord = createAuditRecord({\n operatorId: context.operatorId,\n profile: context.profile,\n operationId,\n method: \"UNKNOWN\",\n path: \"UNKNOWN\",\n canonicalHash: \"none\",\n phase: \"rejected\",\n isDestructive: false,\n error: `Operation '${operationId}' not found in manifest`,\n });\n await context.auditStore.append(errorRecord);\n\n return {\n status: \"error\",\n statusCode: 404,\n error: `Operation '${operationId}' not found in manifest catalog`,\n auditId: errorRecord.id,\n };\n }\n\n // 1. Auth Requirement Pre-flight\n if (op.authRequirement === \"session_only\" && !context.sessionCookie) {\n const authErrorRecord = createAuditRecord({\n operatorId: context.operatorId,\n profile: context.profile,\n operationId,\n method: op.method,\n path: op.path,\n canonicalHash: \"none\",\n phase: \"rejected\",\n isDestructive: op.isDestructive,\n error: \"Session-only authentication required\",\n });\n await context.auditStore.append(authErrorRecord);\n\n return {\n status: \"error\",\n statusCode: 403,\n error: `Operation '${operationId}' requires session authentication (sessionCookie). Payouts and super-admin grants require session cookies.`,\n operation: op,\n auditId: authErrorRecord.id,\n };\n }\n\n if (op.authRequirement === \"api_key\" && !context.apiKey && !context.sessionCookie) {\n const authErrorRecord = createAuditRecord({\n operatorId: context.operatorId,\n profile: context.profile,\n operationId,\n method: op.method,\n path: op.path,\n canonicalHash: \"none\",\n phase: \"rejected\",\n isDestructive: op.isDestructive,\n error: \"Missing credentials\",\n });\n await context.auditStore.append(authErrorRecord);\n\n return {\n status: \"error\",\n statusCode: 401,\n error: `Operation '${operationId}' requires admin credentials (apiKey or sessionCookie).`,\n operation: op,\n auditId: authErrorRecord.id,\n };\n }\n\n const isMutation = op.isMutation || op.isDestructive || op.method !== \"GET\";\n const canonicalHash = await computeCanonicalHash(\n operationId,\n params,\n body,\n context.profile,\n );\n\n let idempotencyKey: string | undefined = undefined;\n\n // 2. Two-Phase Preview->Confirm Safety Gate for all mutations\n if (isMutation) {\n if (!context.confirmToken) {\n // Phase 1: Return Preview (no upstream writes)\n const preview = await generatePreview({\n operationId,\n parameters: params,\n body,\n operatorId: context.operatorId,\n profile: context.profile,\n signingSecret: context.signingSecret,\n });\n\n const auditRecord = createAuditRecord({\n operatorId: context.operatorId,\n profile: context.profile,\n operationId,\n method: op.method,\n path: op.path,\n canonicalHash,\n phase: \"preview\",\n isDestructive: op.isDestructive,\n details: { previewIssued: true, expiresAt: preview.expiresAt },\n });\n await context.auditStore.append(auditRecord);\n\n return {\n status: \"confirmation_required\",\n preview,\n };\n }\n\n // Phase 2: Validate Confirm Token\n const verifyResult = await verifyConfirmToken({\n token: context.confirmToken,\n expectedOperatorId: context.operatorId,\n expectedProfile: context.profile,\n expectedOperationId: operationId,\n expectedCanonicalHash: canonicalHash,\n signingSecret: context.signingSecret,\n nonceStore: context.nonceStore,\n });\n\n if (!verifyResult.valid || !verifyResult.payload) {\n const rejectRecord = createAuditRecord({\n operatorId: context.operatorId,\n profile: context.profile,\n operationId,\n method: op.method,\n path: op.path,\n canonicalHash,\n phase: \"rejected\",\n isDestructive: op.isDestructive,\n error: verifyResult.error,\n });\n await context.auditStore.append(rejectRecord);\n\n return {\n status: \"error\",\n statusCode: 403,\n error: `Confirmation gate rejected: ${verifyResult.error}`,\n operation: op,\n auditId: rejectRecord.id,\n };\n }\n\n // Record the explicit 'confirm' transition in audit trail (AC11)\n const confirmRecord = createAuditRecord({\n operatorId: context.operatorId,\n profile: context.profile,\n operationId,\n method: op.method,\n path: op.path,\n canonicalHash,\n phase: \"confirm\",\n isDestructive: op.isDestructive,\n details: { nonce: verifyResult.payload.nonce },\n });\n await context.auditStore.append(confirmRecord);\n\n // Derive deterministic Idempotency-Key ONLY if supported or idempotent method\n if (op.supportsIdempotencyKey || [\"PUT\", \"DELETE\"].includes(op.method)) {\n idempotencyKey = await generateIdempotencyKey(\n operationId,\n canonicalHash,\n verifyResult.payload.nonce,\n );\n }\n }\n\n // 3. Separate Path vs Query Parameters\n const pathParams: Record<string, string | number> = {};\n const queryParams: Record<string, string | number | boolean | undefined> = {};\n\n for (const p of op.parameters) {\n const val = params[p.name];\n if (val !== undefined && val !== null) {\n if (p.in === \"path\") {\n pathParams[p.name] = val as string | number;\n } else if (p.in === \"query\") {\n queryParams[p.name] = val as string | number | boolean;\n }\n }\n }\n\n // Any remaining unclassified params go to query for flexible raw calls\n for (const [k, v] of Object.entries(params)) {\n if (!(k in pathParams) && !(k in queryParams) && v !== undefined && v !== null) {\n queryParams[k] = v as string | number | boolean;\n }\n }\n\n // 4. Exact Credential Selection (Mutual Exclusion Protocol)\n let selectedApiKey: string | undefined = undefined;\n let selectedSessionCookie: string | undefined = undefined;\n\n if (op.authRequirement === \"session_only\") {\n selectedSessionCookie = context.sessionCookie;\n } else if (op.authRequirement === \"api_key\") {\n if (context.apiKey) {\n selectedApiKey = context.apiKey;\n } else {\n selectedSessionCookie = context.sessionCookie;\n }\n }\n\n // 5. Dispatch Upstream HTTP Request\n const res: HttpResponse<T> = await executeHttpRequest<T>({\n baseUrl: context.baseUrl,\n apiKey: selectedApiKey,\n sessionCookie: selectedSessionCookie,\n method: op.method,\n path: op.path,\n pathParams,\n queryParams,\n body,\n idempotencyKey,\n requiredScopes: op.requiredScopes,\n fetchFn: context.fetchFn,\n });\n\n if (!res.ok) {\n const errorRecord = createAuditRecord({\n operatorId: context.operatorId,\n profile: context.profile,\n operationId,\n method: op.method,\n path: op.path,\n canonicalHash,\n phase: \"rejected\",\n isDestructive: op.isDestructive,\n idempotencyKey,\n statusCode: res.status,\n error: res.error,\n });\n await context.auditStore.append(errorRecord);\n\n return {\n status: \"error\",\n statusCode: res.status,\n error: res.error || `Upstream returned status ${res.status}`,\n operation: op,\n requiredScopes: res.requiredScopes,\n auditId: errorRecord.id,\n };\n }\n\n let finalData: unknown = res.data;\n\n // 6. Direct Vault Capture for one-time secret key creation (POST /api/admin/keys)\n if (op.path === \"/api/admin/keys\" && op.method === \"POST\" && isKeyCreationData(finalData)) {\n if (context.directVaultCapture) {\n const captureResult = await context.directVaultCapture(\n finalData.plainKey,\n finalData.name || `key_${finalData.id || Date.now()}`,\n );\n\n const sanitized: Record<string, unknown> = { ...finalData };\n delete sanitized.plainKey;\n sanitized.vaultStored = captureResult.vaultStored;\n sanitized.vaultKeyLabel = captureResult.vaultKeyLabel;\n finalData = sanitized;\n }\n }\n\n const successRecord = createAuditRecord({\n operatorId: context.operatorId,\n profile: context.profile,\n operationId,\n method: op.method,\n path: op.path,\n canonicalHash,\n phase: \"executed\",\n isDestructive: op.isDestructive,\n idempotencyKey,\n statusCode: res.status,\n });\n await context.auditStore.append(successRecord);\n\n return {\n status: \"executed\",\n statusCode: res.status,\n data: redactObject(finalData) as T,\n operation: op,\n idempotencyKey,\n auditId: successRecord.id,\n };\n}\n", "/**\n * Persistent file-backed storage adapters for CLI NonceStore and AuditStore.\n * Enforces kernel-level atomic cross-process single-use nonce claiming via O_CREAT | O_EXCL (wx).\n */\n\nimport fs from \"node:fs\";\nimport path from \"node:path\";\nimport { type AuditRecord, type AuditStore, type NonceStore, redactObject } from \"@akadmin/core\";\n\nexport class FileNonceStore implements NonceStore {\n private noncesDir: string;\n\n constructor(baseDir: string) {\n this.noncesDir = path.join(baseDir, \"nonces\");\n fs.mkdirSync(this.noncesDir, { recursive: true, mode: 0o700 });\n }\n\n async claim(nonce: string, ttlSeconds: number): Promise<boolean> {\n // Sanitize nonce for filename safety\n const safeNonce = nonce.replace(/[^a-zA-Z0-9_-]/g, \"_\");\n const nonceFile = path.join(this.noncesDir, `${safeNonce}.lock`);\n const expiresAt = Date.now() + ttlSeconds * 1000;\n\n try {\n // 1. Atomic exclusive creation (O_CREAT | O_EXCL).\n // If the file already exists, kernel throws EEXIST immediately.\n const fd = fs.openSync(nonceFile, \"wx\", 0o600);\n fs.writeSync(fd, JSON.stringify({ nonce, expiresAt, claimedAt: Date.now() }));\n fs.closeSync(fd);\n\n // Periodic cleanup of expired nonce lockfiles (async/non-blocking)\n this.cleanupExpiredNonces().catch(() => {});\n return true;\n } catch (err: unknown) {\n if (typeof err === \"object\" && err !== null && \"code\" in err && err.code === \"EEXIST\") {\n return false; // Atomic replay rejection\n }\n throw err;\n }\n }\n\n private async cleanupExpiredNonces(): Promise<void> {\n const now = Date.now();\n try {\n const files = fs.readdirSync(this.noncesDir);\n for (const file of files) {\n if (!file.endsWith(\".lock\")) continue;\n const filePath = path.join(this.noncesDir, file);\n try {\n const content = fs.readFileSync(filePath, \"utf-8\");\n const data = JSON.parse(content);\n if (data.expiresAt && now > data.expiresAt) {\n fs.unlinkSync(filePath);\n }\n } catch {\n // Ignore read/unlink errors during cleanup\n }\n }\n } catch {\n // Directory read errors\n }\n }\n}\n\nexport class FileAuditStore implements AuditStore {\n private filePath: string;\n\n constructor(baseDir: string) {\n this.filePath = path.join(baseDir, \"audit.log\");\n }\n\n async append(record: AuditRecord): Promise<void> {\n const dir = path.dirname(this.filePath);\n fs.mkdirSync(dir, { recursive: true, mode: 0o700 });\n const sanitized = redactObject(record);\n const line = `${JSON.stringify(sanitized)}\\n`;\n fs.appendFileSync(this.filePath, line, { mode: 0o600 });\n }\n\n async list(limit = 50): Promise<AuditRecord[]> {\n if (!fs.existsSync(this.filePath)) {\n return [];\n }\n\n const content = fs.readFileSync(this.filePath, \"utf-8\");\n const lines = content.split(\"\\n\").filter((l) => l.trim().length > 0);\n const records: AuditRecord[] = [];\n\n for (const line of lines.slice(-limit)) {\n try {\n records.push(JSON.parse(line));\n } catch {\n // Skip malformed lines\n }\n }\n\n return records.reverse();\n }\n}\n", "/**\n * CLI auth & profile management commands with encrypted credential storage,\n * hidden interactive input support, and remote Worker vault enrollment.\n */\n\nimport readline from \"node:readline\";\nimport { Command } from \"commander\";\nimport { CliKeychain } from \"../keychain/index.js\";\n\nasync function promptHidden(questionText: string): Promise<string> {\n const { promise, resolve } = Promise.withResolvers<string>();\n const rl = readline.createInterface({\n input: process.stdin,\n output: process.stdout,\n });\n\n process.stdout.write(questionText);\n\n const stdin = process.stdin;\n const isTTY = stdin.isTTY;\n\n if (isTTY) {\n stdin.setRawMode(true);\n let input = \"\";\n stdin.on(\"data\", function onData(char) {\n const str = char.toString(\"utf-8\");\n if (str === \"\\n\" || str === \"\\r\" || str === \"\\u0004\") {\n stdin.setRawMode(false);\n stdin.removeListener(\"data\", onData);\n process.stdout.write(\"\\n\");\n rl.close();\n resolve(input.trim());\n } else if (str === \"\\u0003\") {\n process.exit(1);\n } else if (str === \"\\u007f\" || str === \"\\b\") {\n input = input.slice(0, -1);\n } else {\n input += str;\n }\n });\n } else {\n rl.question(\"\", (answer) => {\n rl.close();\n resolve(answer.trim());\n });\n }\n\n return promise;\n}\n\nexport function registerAuthCommands(program: Command, keychain: CliKeychain): void {\n const auth = program.command(\"auth\").description(\"Manage credentials and target environments\");\n\n auth\n .command(\"login\")\n .description(\"Securely store an admin API key into local encrypted vault\")\n .option(\"-k, --key <apiKey>\", \"Admin API key (warning: passing in argv may be stored in shell history)\")\n .option(\"-p, --profile <profile>\", \"Target profile (default: active profile)\")\n .action(async (options) => {\n let key = options.key;\n if (!key) {\n key = await promptHidden(\"Enter Admin API Key (hidden): \");\n }\n\n if (!key || key.length === 0) {\n console.error(\"Error: Admin API key cannot be empty.\");\n process.exitCode = 1;\n return;\n }\n\n const target = options.profile || keychain.getActiveProfile();\n await keychain.setApiKey(key, options.profile);\n console.log(`\u2705 Securely stored and encrypted API key for profile '${target}'.`);\n });\n\n auth\n .command(\"session\")\n .description(\"Securely store a session cookie for session-only operations (Payouts, Grants)\")\n .option(\"-c, --cookie <cookie>\", \"Session cookie value\")\n .option(\"-p, --profile <profile>\", \"Target profile (default: active profile)\")\n .action(async (options) => {\n let cookie = options.cookie;\n if (!cookie) {\n cookie = await promptHidden(\"Enter Session Cookie (hidden): \");\n }\n\n if (!cookie || cookie.length === 0) {\n console.error(\"Error: Session cookie cannot be empty.\");\n process.exitCode = 1;\n return;\n }\n\n const target = options.profile || keychain.getActiveProfile();\n await keychain.setSessionCookie(cookie, options.profile);\n console.log(`\u2705 Securely stored and encrypted session cookie for profile '${target}'.`);\n });\n\n auth\n .command(\"enroll-remote\")\n .description(\"Enroll admin credentials securely into remote Cloudflare Worker vault via authenticated POST /vault/enroll\")\n .option(\"-u, --url <workerUrl>\", \"Cloudflare Worker URL\", \"https://akadmin-mcp-worker.hi-7ac.workers.dev\")\n .option(\"-t, --token <jwtToken>\", \"Operator Bearer / Access token\")\n .action(async (options) => {\n let token = options.token;\n if (!token) {\n token = await promptHidden(\"Enter Operator Bearer / Access Token (hidden): \");\n }\n\n const apiKey = await promptHidden(\"Enter Admin API Key to enroll (leave blank to skip): \");\n const sessionCookie = await promptHidden(\"Enter Session Cookie to enroll (leave blank to skip): \");\n\n if (!apiKey && !sessionCookie) {\n console.error(\"Error: Must provide an API key or session cookie to enroll.\");\n process.exitCode = 1;\n return;\n }\n\n try {\n const enrollUrl = new URL(\"/vault/enroll\", options.url);\n const res = await fetch(enrollUrl.toString(), {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${token}`,\n },\n body: JSON.stringify({\n apiKey: apiKey || undefined,\n sessionCookie: sessionCookie || undefined,\n label: \"default\",\n }),\n });\n\n const data = await res.json();\n if (!res.ok) {\n console.error(`\u274C Enrollment failed (${res.status}):`, JSON.stringify(data, null, 2));\n process.exitCode = 1;\n return;\n }\n\n console.log(\"\u2705 Credentials successfully enrolled into remote Worker encrypted vault:\");\n console.log(JSON.stringify(data, null, 2));\n } catch (err) {\n console.error(\"\u274C Network error connecting to worker:\", String(err));\n process.exitCode = 1;\n }\n });\n\n auth\n .command(\"use <profile>\")\n .description(\"Set the active environment profile (production or staging)\")\n .action((profile) => {\n keychain.setActiveProfile(profile);\n console.log(`\u2705 Active profile switched to '${profile}'.`);\n });\n\n auth\n .command(\"status\")\n .description(\"Display active profile and masked credential status\")\n .option(\"--json\", \"Output JSON format\")\n .action(async (options) => {\n const status = await keychain.getStatus();\n if (options.json) {\n console.log(JSON.stringify(status, null, 2));\n return;\n }\n\n console.log(\"\\n\uD83D\uDD10 akadmin Auth Status:\\n\");\n console.log(` Active Profile: ${status.activeProfile.toUpperCase()}`);\n console.log(` Base URL: ${status.baseUrl}`);\n console.log(` API Key: ${status.hasApiKey ? `Configured (${status.maskedKey})` : \"\u274C Not Set\"}`);\n console.log(` Session Cookie: ${status.hasSessionCookie ? \"Configured\" : \"\u274C Not Set\"}`);\n console.log(\"\\nTo set credentials, use `akadmin auth login` or `akadmin auth enroll-remote`.\\n\");\n });\n}\n", "/**\n * CLI audit commands reading from persistent append-only audit log.\n */\n\nimport { Command } from \"commander\";\nimport { CliKeychain } from \"../keychain/index.js\";\nimport { FileAuditStore } from \"../storage/file-store.js\";\n\nexport function registerAuditCommands(program: Command, keychain: CliKeychain): void {\n const auditStore = new FileAuditStore(keychain.getConfigDir());\n\n program\n .command(\"audit [tail]\")\n .description(\"View recent audit events and mutation records\")\n .option(\"--limit <number>\", \"Number of records to show\", \"20\")\n .option(\"--json\", \"Output JSON format\")\n .action(async (_tail, options) => {\n const limit = Number(options.limit) || 20;\n const records = await auditStore.list(limit);\n\n if (options.json) {\n console.log(JSON.stringify(records, null, 2));\n return;\n }\n\n if (records.length === 0) {\n console.log(\"\\n\uD83D\uDCDC No audit entries recorded yet. (Audit entries are created when operations are executed or previewed).\\n\");\n return;\n }\n\n console.log(`\\n\uD83D\uDCDC Recent Audit Events (${records.length} records):\\n`);\n for (const r of records) {\n const flag = r.isDestructive ? \"\u26A0\uFE0F DESTRUCTIVE\" : \"\";\n const statusBadge = r.phase === \"executed\" ? `\u2705 ${r.statusCode ?? 200}` : r.phase === \"preview\" ? \"\uD83D\uDD12 PREVIEW\" : `\u274C ${r.error ?? \"REJECTED\"}`;\n console.log(` [${r.timestamp}] ${statusBadge.padEnd(16)} ${r.method.padEnd(6)} ${r.path.padEnd(36)} ${r.operationId} ${flag}`);\n if (r.idempotencyKey) {\n console.log(` Idempotency: ${r.idempotencyKey} | AuditID: ${r.id}`);\n }\n }\n console.log(\"\");\n });\n}\n", "/**\n * Curated domain subcommands for akadmin CLI with persistent storage.\n */\n\nimport { executeOperation, type ExecutionContext } from \"@akadmin/core\";\nimport { Command } from \"commander\";\nimport { CliKeychain } from \"../keychain/index.js\";\nimport { FileAuditStore, FileNonceStore } from \"../storage/file-store.js\";\n\nasync function buildContext(\n keychain: CliKeychain,\n profileOverride?: string,\n confirmToken?: string,\n): Promise<ExecutionContext> {\n const activeProfile = profileOverride || keychain.getActiveProfile();\n const creds = await keychain.getCredentials(activeProfile);\n const signingSecret = await keychain.getSigningSecret();\n const nonceStore = new FileNonceStore(keychain.getConfigDir());\n const auditStore = new FileAuditStore(keychain.getConfigDir());\n\n return {\n operatorId: \"cli_operator\",\n profile: activeProfile,\n apiKey: creds.apiKey,\n sessionCookie: creds.sessionCookie,\n baseUrl: creds.baseUrl || \"https://agentkit.best\",\n signingSecret,\n nonceStore,\n auditStore,\n confirmToken,\n };\n}\n\nexport function registerDomainCommands(program: Command, keychain: CliKeychain): void {\n // Orders Domain\n const orders = program.command(\"orders\").description(\"Orders management workflows\");\n\n orders\n .command(\"list\")\n .description(\"List orders\")\n .option(\"-q, --query <search>\", \"Search keyword\")\n .option(\"-s, --status <status>\", \"Filter by status\")\n .option(\"--json\", \"Output JSON format\")\n .action(async (options) => {\n const ctx = await buildContext(keychain);\n const res = await executeOperation(\"getOrders\", { query: options.query, status: options.status }, undefined, ctx);\n console.log(JSON.stringify(res, null, 2));\n });\n\n orders\n .command(\"get <orderId>\")\n .description(\"Get order details by ID\")\n .option(\"--json\", \"Output JSON format\")\n .action(async (orderId) => {\n const ctx = await buildContext(keychain);\n const res = await executeOperation(\"getOrdersOrderId\", { orderId }, undefined, ctx);\n console.log(JSON.stringify(res, null, 2));\n });\n\n orders\n .command(\"refund <orderId>\")\n .description(\"Refund an order (Destructive \u2014 two-phase gate)\")\n .requiredOption(\"-a, --amount <number>\", \"Refund amount in cents\")\n .requiredOption(\"-r, --reason <string>\", \"Reason for refund\")\n .option(\"--confirm <token>\", \"Confirm token required in production\")\n .action(async (orderId, options) => {\n const ctx = await buildContext(keychain, undefined, options.confirm);\n const res = await executeOperation(\n \"postOrdersOrderIdRefund\",\n { orderId },\n { amount: Number(options.amount), reason: options.reason },\n ctx,\n );\n console.log(JSON.stringify(res, null, 2));\n });\n\n // Discounts Domain\n const discounts = program.command(\"discounts\").description(\"Discounts management workflows\");\n\n discounts\n .command(\"list\")\n .description(\"List discount codes\")\n .action(async () => {\n const ctx = await buildContext(keychain);\n const res = await executeOperation(\"getDiscounts\", {}, undefined, ctx);\n console.log(JSON.stringify(res, null, 2));\n });\n\n discounts\n .command(\"create\")\n .description(\"Create a discount code (Destructive \u2014 two-phase gate)\")\n .requiredOption(\"-c, --code <string>\", \"Discount code\")\n .option(\"-p, --percent <number>\", \"Percent off\")\n .option(\"-m, --max-uses <number>\", \"Maximum uses\")\n .option(\"--confirm <token>\", \"Confirm token\")\n .action(async (options) => {\n const ctx = await buildContext(keychain, undefined, options.confirm);\n const res = await executeOperation(\n \"postDiscounts\",\n {},\n {\n code: options.code,\n percentOff: options.percent ? Number(options.percent) : undefined,\n maxUses: options.maxUses ? Number(options.maxUses) : undefined,\n },\n ctx,\n );\n console.log(JSON.stringify(res, null, 2));\n });\n\n // Payouts Domain\n const payouts = program.command(\"payouts\").description(\"Payouts workflows (Session Cookie required)\");\n\n payouts\n .command(\"list\")\n .description(\"List payouts\")\n .action(async () => {\n const ctx = await buildContext(keychain);\n const res = await executeOperation(\"getPayouts\", {}, undefined, ctx);\n console.log(JSON.stringify(res, null, 2));\n });\n\n // Revenue Domain\n const revenue = program.command(\"revenue\").description(\"Revenue reports\");\n\n revenue\n .command(\"summary\")\n .description(\"Get platform revenue summary\")\n .action(async () => {\n const ctx = await buildContext(keychain);\n const res = await executeOperation(\"getRevenue\", {}, undefined, ctx);\n console.log(JSON.stringify(res, null, 2));\n });\n}\n", "/**\n * Cross-Platform Native OS Keychain Credential Manager for akadmin CLI.\n * Supports:\n * - macOS: /usr/bin/security generic passwords\n * - Linux: secret-tool (libsecret / Secret Service API)\n * - Windows: Windows Credential Manager (PowerShell with parameterized Base64 payloads)\n * - MemoryKeychainStore: for isolated unit/integration tests\n *\n * Secrets are persisted strictly in the OS Keychain and never written in plaintext to disk.\n * Non-secret configuration is kept separate in config.json.\n */\n\nimport { execFileSync } from \"node:child_process\";\nimport fs from \"node:fs\";\nimport os from \"node:os\";\nimport path from \"node:path\";\nimport { maskApiKey } from \"@akadmin/core\";\n\nexport interface ProfileCredentials {\n apiKey?: string;\n sessionCookie?: string;\n baseUrl?: string;\n}\n\nexport interface CliConfig {\n activeProfile: string;\n profiles: Record<string, { baseUrl: string; maskedKey?: string; hasSessionCookie?: boolean }>;\n}\n\nexport interface KeychainStore {\n getPassword(account: string): Promise<string | null>;\n setPassword(account: string, secret: string): Promise<boolean>;\n deletePassword(account: string): Promise<boolean>;\n}\n\nexport const DEFAULT_KEYCHAIN_SERVICE = \"best.agentkit.akadmin\";\n\nexport class MacOSKeychainStore implements KeychainStore {\n constructor(private service = DEFAULT_KEYCHAIN_SERVICE) {}\n\n async getPassword(account: string): Promise<string | null> {\n if (process.platform !== \"darwin\") return null;\n try {\n const output = execFileSync(\n \"/usr/bin/security\",\n [\"find-generic-password\", \"-s\", this.service, \"-a\", account, \"-w\"],\n { encoding: \"utf-8\", stdio: [\"pipe\", \"pipe\", \"pipe\"] },\n );\n return output.trim() || null;\n } catch {\n return null;\n }\n }\n\n async setPassword(account: string, secret: string): Promise<boolean> {\n if (process.platform !== \"darwin\") return false;\n try {\n execFileSync(\n \"/usr/bin/security\",\n [\"add-generic-password\", \"-U\", \"-s\", this.service, \"-a\", account, \"-w\", secret],\n { encoding: \"utf-8\", stdio: [\"pipe\", \"pipe\", \"pipe\"] },\n );\n return true;\n } catch {\n return false;\n }\n }\n\n async deletePassword(account: string): Promise<boolean> {\n if (process.platform !== \"darwin\") return false;\n try {\n execFileSync(\n \"/usr/bin/security\",\n [\"delete-generic-password\", \"-s\", this.service, \"-a\", account],\n { encoding: \"utf-8\", stdio: [\"pipe\", \"pipe\", \"pipe\"] },\n );\n return true;\n } catch {\n return false;\n }\n }\n}\n\nexport class LinuxSecretServiceStore implements KeychainStore {\n constructor(private service = DEFAULT_KEYCHAIN_SERVICE) {}\n\n async getPassword(account: string): Promise<string | null> {\n if (process.platform !== \"linux\") return null;\n try {\n const output = execFileSync(\n \"secret-tool\",\n [\"lookup\", \"service\", this.service, \"account\", account],\n { encoding: \"utf-8\", stdio: [\"pipe\", \"pipe\", \"pipe\"] },\n );\n return output.trim() || null;\n } catch {\n return null;\n }\n }\n\n async setPassword(account: string, secret: string): Promise<boolean> {\n if (process.platform !== \"linux\") return false;\n try {\n execFileSync(\n \"secret-tool\",\n [\"store\", \"--label\", `akadmin-${account}`, \"service\", this.service, \"account\", account],\n { input: secret, encoding: \"utf-8\", stdio: [\"pipe\", \"pipe\", \"pipe\"] },\n );\n return true;\n } catch {\n return false;\n }\n }\n\n async deletePassword(account: string): Promise<boolean> {\n if (process.platform !== \"linux\") return false;\n try {\n execFileSync(\n \"secret-tool\",\n [\"clear\", \"service\", this.service, \"account\", account],\n { encoding: \"utf-8\", stdio: [\"pipe\", \"pipe\", \"pipe\"] },\n );\n return true;\n } catch {\n return false;\n }\n }\n}\n\nexport class WindowsCredentialStore implements KeychainStore {\n constructor(private service = DEFAULT_KEYCHAIN_SERVICE) {}\n\n private toBase64(str: string): string {\n return Buffer.from(str, \"utf-8\").toString(\"base64\");\n }\n\n async getPassword(account: string): Promise<string | null> {\n if (process.platform !== \"win32\") return null;\n try {\n const psScript = `\n Add-Type -AssemblyName System.Security\n $svc = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String(\"${this.toBase64(this.service)}\"))\n $acc = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String(\"${this.toBase64(account)}\"))\n $vault = [Windows.Security.Credentials.PasswordVault, Windows.Security.Credentials, ContentType = WindowsRuntime]::new()\n try {\n $res = $vault.Retrieve($svc, $acc)\n $res.RetrievePassword()\n Write-Output $res.Password\n } catch { exit 1 }\n `;\n const output = execFileSync(\"powershell\", [\"-NoProfile\", \"-NonInteractive\", \"-Command\", psScript], {\n encoding: \"utf-8\",\n stdio: [\"pipe\", \"pipe\", \"pipe\"],\n });\n return output.trim() || null;\n } catch {\n return null;\n }\n }\n\n async setPassword(account: string, secret: string): Promise<boolean> {\n if (process.platform !== \"win32\") return false;\n try {\n const psScript = `\n Add-Type -AssemblyName System.Security\n $svc = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String(\"${this.toBase64(this.service)}\"))\n $acc = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String(\"${this.toBase64(account)}\"))\n $sec = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String(\"${this.toBase64(secret)}\"))\n $vault = [Windows.Security.Credentials.PasswordVault, Windows.Security.Credentials, ContentType = WindowsRuntime]::new()\n $cred = [Windows.Security.Credentials.PasswordCredential, Windows.Security.Credentials, ContentType = WindowsRuntime]::new($svc, $acc, $sec)\n $vault.Add($cred)\n `;\n execFileSync(\"powershell\", [\"-NoProfile\", \"-NonInteractive\", \"-Command\", psScript], {\n encoding: \"utf-8\",\n stdio: [\"pipe\", \"pipe\", \"pipe\"],\n });\n return true;\n } catch {\n return false;\n }\n }\n\n async deletePassword(account: string): Promise<boolean> {\n if (process.platform !== \"win32\") return false;\n try {\n const psScript = `\n Add-Type -AssemblyName System.Security\n $svc = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String(\"${this.toBase64(this.service)}\"))\n $acc = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String(\"${this.toBase64(account)}\"))\n $vault = [Windows.Security.Credentials.PasswordVault, Windows.Security.Credentials, ContentType = WindowsRuntime]::new()\n try {\n $cred = $vault.Retrieve($svc, $acc)\n $vault.Remove($cred)\n } catch {}\n `;\n execFileSync(\"powershell\", [\"-NoProfile\", \"-NonInteractive\", \"-Command\", psScript], {\n encoding: \"utf-8\",\n stdio: [\"pipe\", \"pipe\", \"pipe\"],\n });\n return true;\n } catch {\n return false;\n }\n }\n}\n\nexport class MemoryKeychainStore implements KeychainStore {\n private secrets = new Map<string, string>();\n\n async getPassword(account: string): Promise<string | null> {\n return this.secrets.get(account) || null;\n }\n\n async setPassword(account: string, secret: string): Promise<boolean> {\n this.secrets.set(account, secret);\n return true;\n }\n\n async deletePassword(account: string): Promise<boolean> {\n return this.secrets.delete(account);\n }\n}\n\nexport function createDefaultOsKeychainStore(): KeychainStore {\n if (process.platform === \"darwin\") {\n return new MacOSKeychainStore();\n }\n if (process.platform === \"linux\") {\n return new LinuxSecretServiceStore();\n }\n if (process.platform === \"win32\") {\n return new WindowsCredentialStore();\n }\n return new MemoryKeychainStore();\n}\n\nexport class CliKeychain {\n private configDir: string;\n private configFile: string;\n private keychainStore: KeychainStore;\n\n constructor(customDir?: string, customStore?: KeychainStore) {\n this.configDir = customDir || path.join(os.homedir(), \".config\", \"akadmin\");\n this.configFile = path.join(this.configDir, \"config.json\");\n this.keychainStore = customStore || createDefaultOsKeychainStore();\n }\n\n getConfigDir(): string {\n return this.configDir;\n }\n\n async getSigningSecret(): Promise<string> {\n const keyAccount = \"akadmin:machine:signingKey\";\n let existingSecret = await this.keychainStore.getPassword(keyAccount);\n if (!existingSecret) {\n // Generate 256-bit CSPRNG key and store in OS Keychain\n const bytes = crypto.getRandomValues(new Uint8Array(32));\n existingSecret = Array.from(bytes)\n .map((b) => b.toString(16).padStart(2, \"0\"))\n .join(\"\");\n const stored = await this.keychainStore.setPassword(keyAccount, existingSecret);\n if (!stored) {\n throw new Error(\n \"OS Keychain failure: Unable to persist confirmation signing secret to OS credential manager. Ensure keychain/libsecret daemon is running.\",\n );\n }\n }\n return `cli-signing-${existingSecret}`;\n }\n\n private ensureConfig(): CliConfig {\n if (!fs.existsSync(this.configFile)) {\n const defaultConf: CliConfig = {\n activeProfile: \"production\",\n profiles: {\n production: { baseUrl: \"https://agentkit.best\" },\n staging: { baseUrl: \"https://staging.agentkit.best\" },\n },\n };\n fs.mkdirSync(this.configDir, { recursive: true, mode: 0o700 });\n fs.writeFileSync(this.configFile, JSON.stringify(defaultConf, null, 2), {\n mode: 0o600,\n });\n return defaultConf;\n }\n\n try {\n return JSON.parse(fs.readFileSync(this.configFile, \"utf-8\"));\n } catch {\n return {\n activeProfile: \"production\",\n profiles: {},\n };\n }\n }\n\n private saveConfig(config: CliConfig): void {\n fs.mkdirSync(this.configDir, { recursive: true, mode: 0o700 });\n fs.writeFileSync(this.configFile, JSON.stringify(config, null, 2), {\n mode: 0o600,\n });\n }\n\n getActiveProfile(): string {\n const envProfile = process.env[\"AKADMIN_PROFILE\"];\n if (envProfile) return envProfile;\n const config = this.ensureConfig();\n return config.activeProfile || \"production\";\n }\n\n setActiveProfile(profile: string): void {\n const config = this.ensureConfig();\n config.activeProfile = profile;\n if (!config.profiles[profile]) {\n config.profiles[profile] = {\n baseUrl: profile === \"production\" ? \"https://agentkit.best\" : \"https://staging.agentkit.best\",\n };\n }\n this.saveConfig(config);\n }\n\n async getCredentials(profile?: string): Promise<ProfileCredentials> {\n const targetProfile = profile || this.getActiveProfile();\n const config = this.ensureConfig();\n const profileMeta = config.profiles[targetProfile] || { baseUrl: \"https://agentkit.best\" };\n\n const envApiKey = process.env[\"AKADMIN_API_KEY\"] || process.env[\"AGENTKIT_ADMIN_KEY\"];\n const envSession = process.env[\"AKADMIN_SESSION_COOKIE\"];\n const envBaseUrl = process.env[\"AKADMIN_BASE_URL\"];\n\n let apiKey = envApiKey;\n let sessionCookie = envSession;\n\n // Retrieve secret credentials strictly from OS Keychain\n if (!apiKey) {\n apiKey = (await this.keychainStore.getPassword(`akadmin:${targetProfile}:apiKey`)) || undefined;\n }\n if (!sessionCookie) {\n sessionCookie = (await this.keychainStore.getPassword(`akadmin:${targetProfile}:sessionCookie`)) || undefined;\n }\n\n return {\n apiKey,\n sessionCookie,\n baseUrl: envBaseUrl || profileMeta.baseUrl || (targetProfile === \"production\" ? \"https://agentkit.best\" : \"https://staging.agentkit.best\"),\n };\n }\n\n async setApiKey(apiKey: string, profile?: string): Promise<void> {\n const targetProfile = profile || this.getActiveProfile();\n const config = this.ensureConfig();\n if (!config.profiles[targetProfile]) {\n config.profiles[targetProfile] = {\n baseUrl: targetProfile === \"production\" ? \"https://agentkit.best\" : \"https://staging.agentkit.best\",\n };\n }\n\n // 1. Save strictly to OS Keychain\n const stored = await this.keychainStore.setPassword(`akadmin:${targetProfile}:apiKey`, apiKey);\n if (!stored) {\n throw new Error(\n `OS Keychain failure: Unable to store secret in ${process.platform} credential manager. Ensure keychain/libsecret daemon is available.`,\n );\n }\n\n // 2. Save non-secret metadata only if keychain write succeeded\n config.profiles[targetProfile]!.maskedKey = maskApiKey(apiKey);\n this.saveConfig(config);\n }\n\n async setSessionCookie(sessionCookie: string, profile?: string): Promise<void> {\n const targetProfile = profile || this.getActiveProfile();\n const config = this.ensureConfig();\n if (!config.profiles[targetProfile]) {\n config.profiles[targetProfile] = {\n baseUrl: targetProfile === \"production\" ? \"https://agentkit.best\" : \"https://staging.agentkit.best\",\n };\n }\n\n // 1. Save strictly to OS Keychain\n const stored = await this.keychainStore.setPassword(`akadmin:${targetProfile}:sessionCookie`, sessionCookie);\n if (!stored) {\n throw new Error(\n `OS Keychain failure: Unable to store session cookie in ${process.platform} credential manager. Ensure keychain/libsecret daemon is available.`,\n );\n }\n\n // 2. Save non-secret metadata only if keychain write succeeded\n config.profiles[targetProfile]!.hasSessionCookie = true;\n this.saveConfig(config);\n }\n\n async getStatus(): Promise<{ activeProfile: string; hasApiKey: boolean; maskedKey?: string; hasSessionCookie: boolean; baseUrl: string }> {\n const profile = this.getActiveProfile();\n const creds = await this.getCredentials(profile);\n return {\n activeProfile: profile,\n hasApiKey: Boolean(creds.apiKey),\n maskedKey: creds.apiKey ? maskApiKey(creds.apiKey) : undefined,\n hasSessionCookie: Boolean(creds.sessionCookie),\n baseUrl: creds.baseUrl || \"https://agentkit.best\",\n };\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["program", "ops", "fs", "path", "program", "keychain", "path", "fs", "program", "keychain", "program", "keychain", "keychain", "program", "fs", "path", "path", "fs"]
|
|
7
|
+
}
|