@anytio/pspm 0.12.0 → 0.14.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/CHANGELOG.md +26 -2
- package/CLI_GUIDE.md +248 -8
- package/README.md +4 -2
- package/dist/add-CcgUlOLa.js +755 -0
- package/dist/add-CcgUlOLa.js.map +1 -0
- package/dist/add-Cnn-OR9g.js +2 -0
- package/dist/api-client-CBTk37gh.js +2 -0
- package/dist/api-client-DBXUpGoX.js +452 -0
- package/dist/api-client-DBXUpGoX.js.map +1 -0
- package/dist/config-BQy_Rjip.js +470 -0
- package/dist/config-BQy_Rjip.js.map +1 -0
- package/dist/config-BZJ6_GsC.js +2 -0
- package/dist/index.js +2782 -6826
- package/dist/index.js.map +1 -1
- package/dist/install-gcvbBeWi.js +2 -0
- package/dist/install-lNvqIk5c.js +479 -0
- package/dist/install-lNvqIk5c.js.map +1 -0
- package/dist/symlinks-BTw8X0GG.js +1834 -0
- package/dist/symlinks-BTw8X0GG.js.map +1 -0
- package/package.json +14 -12
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-client-DBXUpGoX.js","names":["configure"],"sources":["../src/sdk/fetcher.ts","../src/sdk/generated/index.ts","../src/api-client.ts"],"sourcesContent":["/**\n * Custom fetch wrapper for Orval-generated SDK\n *\n * Handles authentication and base URL configuration.\n */\n\nexport interface SDKConfig {\n baseUrl: string;\n /** API key for authentication. Optional for public package access. */\n apiKey?: string;\n}\n\nlet config: SDKConfig | null = null;\n\n/**\n * Configure the SDK with base URL and API key.\n * Must be called before making any API requests.\n *\n * @example\n * ```typescript\n * import { configure } from \"./sdk/fetcher\";\n *\n * configure({\n * baseUrl: \"http://localhost:5600\",\n * apiKey: \"your-api-key\"\n * });\n * ```\n */\nexport function configure(options: SDKConfig): void {\n config = options;\n}\n\n/**\n * Get the current SDK configuration.\n * @throws Error if not configured\n */\nexport function getConfig(): SDKConfig {\n if (!config) {\n throw new Error(\"SDK not configured. Call configure() first.\");\n }\n return config;\n}\n\n/**\n * Check if the SDK is configured.\n */\nexport function isConfigured(): boolean {\n return config !== null;\n}\n\n/**\n * Error class for SDK API errors\n */\nexport class SDKError extends Error {\n constructor(\n message: string,\n public readonly status: number,\n public readonly body?: string,\n ) {\n super(message);\n this.name = \"SDKError\";\n }\n}\n\n/**\n * Custom fetch function for Orval\n *\n * This is used by all generated API functions to make HTTP requests.\n * It handles authentication, error handling, and response parsing.\n *\n * Returns { data, status, headers } structure expected by Orval v8.\n */\nexport async function customFetch<T>(\n url: string,\n options: RequestInit,\n): Promise<T> {\n const { baseUrl, apiKey } = getConfig();\n\n // The URL from Orval will be like \"/api/skills/me\"\n // We need to prepend the baseUrl\n const fullUrl = `${baseUrl}${url}`;\n\n // Build headers - only include Authorization if apiKey is provided\n const headers: Record<string, string> = {\n ...((options.headers as Record<string, string>) ?? {}),\n \"Content-Type\": \"application/json\",\n };\n if (apiKey) {\n headers.Authorization = `Bearer ${apiKey}`;\n }\n\n const response = await fetch(fullUrl, {\n ...options,\n headers,\n });\n\n const text = await response.text();\n let data: unknown = null;\n\n if (text) {\n try {\n data = JSON.parse(text);\n } catch {\n data = text;\n }\n }\n\n // Return the structure expected by Orval v8: { data, status, headers }\n return {\n data,\n status: response.status,\n headers: response.headers,\n } as T;\n}\n","/**\n * Generated by orval v8.5.3 🍺\n * Do not edit manually.\n * PSPM API\n * Backend API for PSPM - Performant Skill Package Manager for AI Agents\n * OpenAPI spec version: 1.0.0\n */\nimport { customFetch } from '../fetcher';\n/**\n * User list item for admin dashboard\n */\nexport interface AdminUserListItem {\n id: string;\n name: string;\n email: string;\n username: string | null;\n role: string;\n tier: string;\n createdAt: string | null;\n}\n\n/**\n * Paginated user list response\n */\nexport interface AdminUserListResponse {\n users: AdminUserListItem[];\n total: number;\n page: number;\n limit: number;\n}\n\nexport type ValidationErrorCode = typeof ValidationErrorCode[keyof typeof ValidationErrorCode];\n\n\nexport const ValidationErrorCode = {\n VALIDATION_ERROR: 'VALIDATION_ERROR',\n} as const;\n\nexport type ValidationErrorDetailsIssuesItem = {\n path: (string | number)[];\n message: string;\n};\n\nexport type ValidationErrorDetails = {\n issues: ValidationErrorDetailsIssuesItem[];\n};\n\nexport type ApiErrorCode = typeof ApiErrorCode[keyof typeof ApiErrorCode];\n\n\nexport const ApiErrorCode = {\n BAD_REQUEST: 'BAD_REQUEST',\n UNAUTHORIZED: 'UNAUTHORIZED',\n FORBIDDEN: 'FORBIDDEN',\n NOT_FOUND: 'NOT_FOUND',\n CONFLICT: 'CONFLICT',\n VALIDATION_ERROR: 'VALIDATION_ERROR',\n INTERNAL_ERROR: 'INTERNAL_ERROR',\n} as const;\n\nexport type ApiErrorDetails = {[key: string]: unknown | null};\n\nexport interface ApiError {\n code: ApiErrorCode;\n message: string;\n details?: ApiErrorDetails;\n requestId?: string;\n timestamp: string;\n}\n\nexport type ValidationError = ApiError & {\n code?: ValidationErrorCode;\n details: ValidationErrorDetails;\n};\n\n/**\n * Admin dashboard stats\n */\nexport interface AdminStats {\n totalUsers: number;\n proUsers: number;\n newUsersThisMonth: number;\n}\n\n/**\n * Updated user role response\n */\nexport interface UpdateUserRoleResponse {\n id: string;\n role: string;\n}\n\nexport type UpdateUserRoleInputRole = typeof UpdateUserRoleInputRole[keyof typeof UpdateUserRoleInputRole];\n\n\nexport const UpdateUserRoleInputRole = {\n user: 'user',\n admin: 'admin',\n} as const;\n\n/**\n * Input for updating a user's role\n */\nexport interface UpdateUserRoleInput {\n role: UpdateUserRoleInputRole;\n}\n\nexport type ApiKeyPermissionsItem = typeof ApiKeyPermissionsItem[keyof typeof ApiKeyPermissionsItem];\n\n\nexport const ApiKeyPermissionsItem = {\n read: 'read',\n write: 'write',\n delete: 'delete',\n} as const;\n\n/**\n * API key record (without the key value)\n */\nexport interface ApiKey {\n id: string;\n name: string;\n keyPrefix: string;\n userId: string;\n permissions: ApiKeyPermissionsItem[] | null;\n expiresAt: string | null;\n lastUsedAt: string | null;\n createdAt: string | null;\n}\n\nexport type ApiKeyListResponse = ApiKey[];\n\n/**\n * Created API key with the plain key (only shown once)\n */\nexport interface CreateApiKeyResponse {\n apiKey: ApiKey;\n plainKey: string;\n}\n\nexport type CreateApiKeyInputPermissionsItem = typeof CreateApiKeyInputPermissionsItem[keyof typeof CreateApiKeyInputPermissionsItem];\n\n\nexport const CreateApiKeyInputPermissionsItem = {\n read: 'read',\n write: 'write',\n delete: 'delete',\n} as const;\n\n/**\n * Input for creating a new API key\n */\nexport interface CreateApiKeyInput {\n /**\n * @minLength 1\n * @maxLength 100\n */\n name: string;\n expiresAt?: string | null;\n permissions?: CreateApiKeyInputPermissionsItem[] | null;\n}\n\nexport interface SuccessResponse {\n success: boolean;\n}\n\nexport interface DeleteApiKeyInput {\n id: string;\n}\n\nexport interface UpdateApiKeyInput {\n id: string;\n /**\n * @minLength 1\n * @maxLength 100\n */\n name: string;\n}\n\nexport interface CreateCliTokenResponse {\n token: string;\n}\n\nexport interface CreateCliTokenInput {\n /** @minLength 1 */\n state: string;\n /** @minLength 1 */\n port: string;\n}\n\nexport interface ExchangeCliTokenResponse {\n apiKey: string;\n username: string;\n}\n\nexport interface ExchangeCliTokenInput {\n /** @minLength 1 */\n token: string;\n}\n\n/**\n * User's username information. Username is immutable once set.\n */\nexport interface UsernameInfo {\n username: string | null;\n isSet: boolean;\n}\n\nexport interface CheckUsernameOutput {\n available: boolean;\n error: string | null;\n}\n\nexport interface UpdateUsernameOutput {\n success: boolean;\n username: string | null;\n error: string | null;\n}\n\nexport interface UpdateUsernameInput {\n /**\n * @minLength 3\n * @maxLength 39\n */\n username: string;\n}\n\nexport interface GetSuggestionsOutput {\n suggestions: string[];\n}\n\nexport interface ContactSuccessResponse {\n success: boolean;\n}\n\n/**\n * Input for creating a contact message\n */\nexport interface CreateContactMessage {\n /**\n * @minLength 1\n * @maxLength 200\n */\n name: string;\n /** @maxLength 320 */\n email: string;\n /**\n * @minLength 1\n * @maxLength 5000\n */\n message: string;\n}\n\n/**\n * A contact message\n */\nexport interface ContactMessage {\n id: string;\n name: string;\n email: string;\n message: string;\n isRead: boolean;\n createdAt: string | null;\n}\n\n/**\n * Paginated contact message list\n */\nexport interface ContactMessageListResponse {\n messages: ContactMessage[];\n total: number;\n page: number;\n limit: number;\n}\n\nexport interface Organization {\n id: string;\n name: string;\n displayName: string | null;\n description: string | null;\n avatarUrl: string | null;\n createdAt: string | null;\n updatedAt: string | null;\n}\n\nexport interface CreateOrgInput {\n /**\n * @minLength 3\n * @maxLength 39\n * @pattern ^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$\n */\n name: string;\n /** @maxLength 100 */\n displayName?: string;\n /** @maxLength 500 */\n description?: string;\n}\n\nexport type OrgMemberRole = typeof OrgMemberRole[keyof typeof OrgMemberRole];\n\n\nexport const OrgMemberRole = {\n owner: 'owner',\n admin: 'admin',\n member: 'member',\n} as const;\n\nexport interface OrgMember {\n id: string;\n orgId: string;\n userId: string;\n role: OrgMemberRole;\n joinedAt: string | null;\n username?: string | null;\n email?: string | null;\n}\n\nexport type AddMemberInputRole = typeof AddMemberInputRole[keyof typeof AddMemberInputRole];\n\n\nexport const AddMemberInputRole = {\n owner: 'owner',\n admin: 'admin',\n member: 'member',\n} as const;\n\nexport interface AddMemberInput {\n userId: string;\n role?: AddMemberInputRole;\n}\n\nexport type UpdateMemberRoleInputRole = typeof UpdateMemberRoleInputRole[keyof typeof UpdateMemberRoleInputRole];\n\n\nexport const UpdateMemberRoleInputRole = {\n owner: 'owner',\n admin: 'admin',\n member: 'member',\n} as const;\n\nexport interface UpdateMemberRoleInput {\n role: UpdateMemberRoleInputRole;\n}\n\nexport interface OrgSuccessResponse {\n success: boolean;\n}\n\nexport type OrgInvitationRole = typeof OrgInvitationRole[keyof typeof OrgInvitationRole];\n\n\nexport const OrgInvitationRole = {\n owner: 'owner',\n admin: 'admin',\n member: 'member',\n} as const;\n\nexport type OrgInvitationStatus = typeof OrgInvitationStatus[keyof typeof OrgInvitationStatus];\n\n\nexport const OrgInvitationStatus = {\n pending: 'pending',\n accepted: 'accepted',\n expired: 'expired',\n} as const;\n\nexport interface OrgInvitation {\n id: string;\n orgId: string;\n email: string;\n role: OrgInvitationRole;\n status: OrgInvitationStatus;\n createdAt: string | null;\n expiresAt: string | null;\n inviterUsername?: string | null;\n}\n\nexport type CreateInvitationInputRole = typeof CreateInvitationInputRole[keyof typeof CreateInvitationInputRole];\n\n\nexport const CreateInvitationInputRole = {\n owner: 'owner',\n admin: 'admin',\n member: 'member',\n} as const;\n\nexport interface CreateInvitationInput {\n email: string;\n role?: CreateInvitationInputRole;\n}\n\n/**\n * Current user info\n */\nexport type MeResponseData = {\n userId: string;\n username: string;\n} | null\n\n/**\n * Package visibility: private (owner only), team (org members), or public (everyone)\n */\nexport type Visibility = typeof Visibility[keyof typeof Visibility];\n\n\nexport const Visibility = {\n private: 'private',\n team: 'team',\n public: 'public',\n} as const;\n\n/**\n * Skill metadata\n */\nexport interface Skill {\n id: string;\n name: string;\n userId: string;\n description: string | null;\n createdAt: string | null;\n updatedAt: string | null;\n visibility: Visibility;\n}\n\n/**\n * Skill metadata with owner username\n */\nexport type SkillWithUser = Skill & {\n username: string;\n};\n\n/**\n * GitHub repository metadata for indexed skills\n */\nexport type GithubRepoInfo = {\n owner: string;\n repo: string;\n stars: number;\n forks: number;\n avatarUrl: string | null;\n htmlUrl: string | null;\n license: string | null;\n githubPath: string | null;\n} | null\n\n/**\n * Skill with download stats for explore/marketplace view\n */\nexport type ExploreSkill = SkillWithUser & ({\n totalDownloads: number;\n namespace?: string;\n userImage?: string | null;\n github?: GithubRepoInfo | null;\n});\n\n/**\n * Paginated list of public skills for the marketplace\n */\nexport interface ExploreResponse {\n skills: ExploreSkill[];\n total: number;\n page: number;\n limit: number;\n totalPages: number;\n}\n\n/**\n * List of skills\n */\nexport type SkillListResponse = SkillWithUser[];\n\n/**\n * User's username\n * @minLength 1\n * @maxLength 50\n * @pattern ^[a-zA-Z0-9_-]+$\n */\nexport type Username = string;\n\n/**\n * Skill metadata with SKILL.md content from latest version\n */\nexport type SkillDetailResponse = SkillWithUser & ({\n skillMd: string | null;\n namespace?: string;\n github?: GithubRepoInfo | null;\n userImage?: string | null;\n} | null);\n\n/**\n * Skill name identifier\n * @minLength 1\n * @maxLength 100\n * @pattern ^[a-z][a-z0-9-]*$\n */\nexport type SkillName = string;\n\n/**\n * Semantic version string (e.g., 1.0.0)\n */\nexport type Semver = string;\n\nexport type PspmMetadataType = typeof PspmMetadataType[keyof typeof PspmMetadataType];\n\n\nexport const PspmMetadataType = {\n skill: 'skill',\n} as const;\n\nexport type PspmMetadataRequirements = {\n claude?: string;\n node?: string;\n};\n\n/**\n * PSPM-specific metadata for the skill package\n */\nexport interface PspmMetadata {\n type: PspmMetadataType;\n capabilities?: string[];\n requirements?: PspmMetadataRequirements;\n}\n\nexport type SkillManifestDependencies = {[key: string]: string};\n\n/**\n * Client-side encryption metadata for private packages\n */\nexport interface EncryptionMetadata {\n algorithm: \"aes-256-gcm\";\n kdf: \"scrypt\";\n salt: string;\n iv: string;\n authTag: string;\n scope: string;\n}\n\n/**\n * Skill package manifest (package.json)\n */\nexport interface SkillManifest {\n name: SkillName;\n version: Semver;\n /** @maxLength 500 */\n description?: string;\n files?: string[];\n pspm?: PspmMetadata;\n dependencies?: SkillManifestDependencies;\n encryption?: EncryptionMetadata;\n}\n\n/**\n * Skill version metadata\n */\nexport interface SkillVersion {\n id: string;\n skillId: string;\n version: string;\n r2Key: string;\n checksum: string;\n manifest: SkillManifest;\n publishedAt: string | null;\n deprecatedAt?: string | null;\n deprecationMessage?: string | null;\n}\n\n/**\n * Download statistics for a skill package\n */\nexport interface SkillStatsResponse {\n totalDownloads: number;\n}\n\n/**\n * Skill version metadata with download URL\n */\nexport type SkillVersionWithDownload = SkillVersion & ({\n downloadUrl: string;\n skillMd?: string | null;\n} | null);\n\n/**\n * Published skill with version info\n */\nexport interface PublishSkillResponse {\n skill: SkillWithUser;\n version: SkillVersion;\n}\n\n/**\n * Input for publishing a skill\n */\nexport interface PublishSkillInput {\n manifest: SkillManifest;\n /** @maxLength 14680064 */\n tarballBase64: string;\n visibility: Visibility;\n}\n\n/**\n * Input for deprecating a skill version\n */\nexport interface DeprecateVersionInput {\n /**\n * @minLength 1\n * @maxLength 500\n */\n message: string;\n}\n\n/**\n * Updated skill after changing visibility\n */\nexport type ChangeAccessResponse = Skill & {\n username: string;\n};\n\n/**\n * Input for changing package visibility\n */\nexport interface ChangeAccessInput {\n visibility: Visibility;\n}\n\nexport type UserProfileType = typeof UserProfileType[keyof typeof UserProfileType];\n\n\nexport const UserProfileType = {\n user: 'user',\n} as const;\n\nexport interface UserProfile {\n type: UserProfileType;\n username: string;\n image: string | null;\n memberSince: string | null;\n}\n\nexport type GithubOwnerProfileType = typeof GithubOwnerProfileType[keyof typeof GithubOwnerProfileType];\n\n\nexport const GithubOwnerProfileType = {\n github_owner: 'github_owner',\n} as const;\n\nexport type GithubOwnerProfileReposItem = {\n repo: string;\n stars: number;\n description: string | null;\n};\n\nexport interface GithubOwnerProfile {\n type: GithubOwnerProfileType;\n owner: string;\n avatarUrl: string | null;\n repos: GithubOwnerProfileReposItem[];\n}\n\nexport type GithubRepoProfileType = typeof GithubRepoProfileType[keyof typeof GithubRepoProfileType];\n\n\nexport const GithubRepoProfileType = {\n github_repo: 'github_repo',\n} as const;\n\nexport interface GithubRepoProfile {\n type: GithubRepoProfileType;\n owner: string;\n repo: string;\n avatarUrl: string | null;\n htmlUrl: string | null;\n stars: number;\n forks: number;\n license: string | null;\n description: string | null;\n}\n\n/**\n * Profile metadata with paginated skills list\n */\nexport interface ProfileResponse {\n profile: UserProfile | GithubOwnerProfile | GithubRepoProfile;\n skills: ExploreSkill[];\n total: number;\n page: number;\n limit: number;\n totalPages: number;\n}\n\nexport interface IndexedRepo {\n id: string;\n owner: string;\n repo: string;\n defaultRef: string | null;\n lastIndexedAt: string | null;\n lastCommitSha: string | null;\n indexStatus: string | null;\n skillCount: number | null;\n createdAt: string;\n}\n\nexport interface AddRepoInput {\n /** @minLength 1 */\n owner: string;\n /** @minLength 1 */\n repo: string;\n ref?: string;\n}\n\nexport interface JobEnqueued {\n jobId: string;\n status: string;\n message: string;\n}\n\nexport interface IndexResult {\n owner: string;\n repo: string;\n ref: string;\n commitSha: string;\n skillsDiscovered: number;\n skillsCreated: number;\n skillsUpdated: number;\n skillsSkipped: number;\n errors: string[];\n}\n\nexport interface BulkActionResult {\n action: string;\n affected: number;\n message: string;\n}\n\nexport type BulkActionInputAction = typeof BulkActionInputAction[keyof typeof BulkActionInputAction];\n\n\nexport const BulkActionInputAction = {\n 'index-pending': 'index-pending',\n 'index-failed': 'index-failed',\n 'reset-status': 'reset-status',\n 'purge-jobs': 'purge-jobs',\n} as const;\n\nexport interface BulkActionInput {\n action: BulkActionInputAction;\n}\n\nexport interface JobStatus {\n id: string;\n type: string;\n repoId: string | null;\n status: string;\n totalSkills: number | null;\n completedSkills: number | null;\n failedSkills: number | null;\n result?: unknown | null;\n error: string | null;\n createdAt: string;\n startedAt: string | null;\n completedAt: string | null;\n}\n\nexport interface PaginatedJobs {\n jobs: JobStatus[];\n total: number;\n page: number;\n limit: number;\n totalPages: number;\n}\n\nexport interface RepoSkill {\n id: string;\n name: string;\n description: string | null;\n githubPath: string | null;\n visibility: string;\n downloadCount: number;\n versionCount: number;\n createdAt: string;\n updatedAt: string;\n}\n\n/**\n * Subscription tier level\n */\nexport type SubscriptionTier = typeof SubscriptionTier[keyof typeof SubscriptionTier];\n\n\nexport const SubscriptionTier = {\n free: 'free',\n pro: 'pro',\n} as const;\n\n/**\n * Stripe subscription status\n */\nexport type SubscriptionStatus = typeof SubscriptionStatus[keyof typeof SubscriptionStatus] | null;\n\n\nexport const SubscriptionStatus = {\n active: 'active',\n canceled: 'canceled',\n past_due: 'past_due',\n trialing: 'trialing',\n incomplete: 'incomplete',\n incomplete_expired: 'incomplete_expired',\n unpaid: 'unpaid',\n paused: 'paused',\n} as const;\n\n/**\n * User subscription information\n */\nexport interface SubscriptionInfo {\n tier: SubscriptionTier;\n status: SubscriptionStatus | null;\n priceId: string | null;\n currentPeriodEnd: string | null;\n cancelAtPeriodEnd: boolean;\n}\n\n/**\n * Stripe checkout session URL\n */\nexport interface CheckoutSessionResponse {\n url: string;\n}\n\n/**\n * Billing interval for subscription\n */\nexport type BillingInterval = typeof BillingInterval[keyof typeof BillingInterval];\n\n\nexport const BillingInterval = {\n month: 'month',\n year: 'year',\n} as const;\n\n/**\n * Input for creating a Stripe checkout session\n */\nexport interface CreateCheckoutInput {\n interval: BillingInterval;\n successUrl?: string;\n cancelUrl?: string;\n}\n\n/**\n * Stripe customer portal URL\n */\nexport interface PortalSessionResponse {\n url: string;\n}\n\n/**\n * Input for creating a Stripe customer portal session\n */\nexport interface CreatePortalInput {\n returnUrl?: string;\n}\n\nexport type CapturedErrorSource = typeof CapturedErrorSource[keyof typeof CapturedErrorSource];\n\n\nexport const CapturedErrorSource = {\n hydration: 'hydration',\n loader: 'loader',\n action: 'action',\n render: 'render',\n streaming: 'streaming',\n network: 'network',\n global: 'global',\n unknown: 'unknown',\n} as const;\n\nexport type CapturedErrorSeverity = typeof CapturedErrorSeverity[keyof typeof CapturedErrorSeverity];\n\n\nexport const CapturedErrorSeverity = {\n fatal: 'fatal',\n error: 'error',\n warning: 'warning',\n info: 'info',\n} as const;\n\nexport type CapturedErrorContext = {[key: string]: unknown | null};\n\n/**\n * A captured client error\n */\nexport interface CapturedError {\n id: string;\n message: string;\n stack?: string;\n componentStack?: string;\n source: CapturedErrorSource;\n severity: CapturedErrorSeverity;\n route?: string;\n timestamp: number;\n context?: CapturedErrorContext;\n digest?: string;\n}\n\n/**\n * Payload for reporting client errors\n */\nexport interface ErrorReportPayload {\n errors: CapturedError[];\n userAgent: string;\n url: string;\n timestamp: number;\n}\n\nexport type AdminListUsersParams = {\n/**\n * @minimum 1\n */\npage?: number;\n/**\n * @minimum 1\n * @maximum 100\n */\nlimit?: number;\nsearch?: string;\nsort?: AdminListUsersSort;\norder?: AdminListUsersOrder;\n};\n\nexport type AdminListUsersSort = typeof AdminListUsersSort[keyof typeof AdminListUsersSort];\n\n\nexport const AdminListUsersSort = {\n name: 'name',\n email: 'email',\n role: 'role',\n tier: 'tier',\n createdAt: 'createdAt',\n} as const;\n\nexport type AdminListUsersOrder = typeof AdminListUsersOrder[keyof typeof AdminListUsersOrder];\n\n\nexport const AdminListUsersOrder = {\n asc: 'asc',\n desc: 'desc',\n} as const;\n\nexport type CheckUsernameAvailabilityParams = {\n/**\n * @minLength 3\n * @maxLength 39\n */\nusername: string;\n};\n\nexport type ListContactMessagesParams = {\n/**\n * @minimum 1\n */\npage?: number;\n/**\n * @minimum 1\n * @maximum 100\n */\nlimit?: number;\nunreadOnly?: string;\n};\n\nexport type ListMyOrganizations200Item = Organization & {\n role: string;\n};\n\nexport type ExplorePublicSkillsParams = {\nsearch?: string;\nsort?: ExplorePublicSkillsSort;\nnamespace?: ExplorePublicSkillsNamespace;\n/**\n * @minimum 1\n */\npage?: number;\n/**\n * @minimum 1\n * @maximum 100\n */\nlimit?: number;\n};\n\nexport type ExplorePublicSkillsSort = typeof ExplorePublicSkillsSort[keyof typeof ExplorePublicSkillsSort];\n\n\nexport const ExplorePublicSkillsSort = {\n downloads: 'downloads',\n recent: 'recent',\n name: 'name',\n stars: 'stars',\n} as const;\n\nexport type ExplorePublicSkillsNamespace = typeof ExplorePublicSkillsNamespace[keyof typeof ExplorePublicSkillsNamespace];\n\n\nexport const ExplorePublicSkillsNamespace = {\n user: 'user',\n org: 'org',\n github: 'github',\n} as const;\n\nexport type GetUserProfileParams = {\nsearch?: string;\nsort?: GetUserProfileSort;\nnamespace?: GetUserProfileNamespace;\n/**\n * @minimum 1\n */\npage?: number;\n/**\n * @minimum 1\n * @maximum 100\n */\nlimit?: number;\n};\n\nexport type GetUserProfileSort = typeof GetUserProfileSort[keyof typeof GetUserProfileSort];\n\n\nexport const GetUserProfileSort = {\n downloads: 'downloads',\n recent: 'recent',\n name: 'name',\n stars: 'stars',\n} as const;\n\nexport type GetUserProfileNamespace = typeof GetUserProfileNamespace[keyof typeof GetUserProfileNamespace];\n\n\nexport const GetUserProfileNamespace = {\n user: 'user',\n org: 'org',\n github: 'github',\n} as const;\n\nexport type GetGithubOwnerProfileParams = {\nsearch?: string;\nsort?: GetGithubOwnerProfileSort;\nnamespace?: GetGithubOwnerProfileNamespace;\n/**\n * @minimum 1\n */\npage?: number;\n/**\n * @minimum 1\n * @maximum 100\n */\nlimit?: number;\n};\n\nexport type GetGithubOwnerProfileSort = typeof GetGithubOwnerProfileSort[keyof typeof GetGithubOwnerProfileSort];\n\n\nexport const GetGithubOwnerProfileSort = {\n downloads: 'downloads',\n recent: 'recent',\n name: 'name',\n stars: 'stars',\n} as const;\n\nexport type GetGithubOwnerProfileNamespace = typeof GetGithubOwnerProfileNamespace[keyof typeof GetGithubOwnerProfileNamespace];\n\n\nexport const GetGithubOwnerProfileNamespace = {\n user: 'user',\n org: 'org',\n github: 'github',\n} as const;\n\nexport type GetGithubRepoProfileParams = {\nsearch?: string;\nsort?: GetGithubRepoProfileSort;\nnamespace?: GetGithubRepoProfileNamespace;\n/**\n * @minimum 1\n */\npage?: number;\n/**\n * @minimum 1\n * @maximum 100\n */\nlimit?: number;\n};\n\nexport type GetGithubRepoProfileSort = typeof GetGithubRepoProfileSort[keyof typeof GetGithubRepoProfileSort];\n\n\nexport const GetGithubRepoProfileSort = {\n downloads: 'downloads',\n recent: 'recent',\n name: 'name',\n stars: 'stars',\n} as const;\n\nexport type GetGithubRepoProfileNamespace = typeof GetGithubRepoProfileNamespace[keyof typeof GetGithubRepoProfileNamespace];\n\n\nexport const GetGithubRepoProfileNamespace = {\n user: 'user',\n org: 'org',\n github: 'github',\n} as const;\n\nexport type DeleteIndexedRepo200 = {\n success: boolean;\n};\n\nexport type ListIndexerJobsParams = {\n/**\n * @minimum 1\n */\npage?: number;\n/**\n * @minimum 1\n * @maximum 100\n */\nlimit?: number;\nstatus?: ListIndexerJobsStatus;\nsort?: ListIndexerJobsSort;\norder?: ListIndexerJobsOrder;\n};\n\nexport type ListIndexerJobsStatus = typeof ListIndexerJobsStatus[keyof typeof ListIndexerJobsStatus];\n\n\nexport const ListIndexerJobsStatus = {\n queued: 'queued',\n active: 'active',\n completed: 'completed',\n failed: 'failed',\n} as const;\n\nexport type ListIndexerJobsSort = typeof ListIndexerJobsSort[keyof typeof ListIndexerJobsSort];\n\n\nexport const ListIndexerJobsSort = {\n createdAt: 'createdAt',\n status: 'status',\n type: 'type',\n} as const;\n\nexport type ListIndexerJobsOrder = typeof ListIndexerJobsOrder[keyof typeof ListIndexerJobsOrder];\n\n\nexport const ListIndexerJobsOrder = {\n asc: 'asc',\n desc: 'desc',\n} as const;\n\nexport type DeleteRepoSkill200 = {\n success: boolean;\n};\n\n/**\n * List all users with pagination and search (admin only)\n * @summary List all users\n */\nexport type adminListUsersResponse200 = {\n data: AdminUserListResponse\n status: 200\n}\n\nexport type adminListUsersResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type adminListUsersResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type adminListUsersResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type adminListUsersResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type adminListUsersResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type adminListUsersResponseSuccess = (adminListUsersResponse200) & {\n headers: Headers;\n};\nexport type adminListUsersResponseError = (adminListUsersResponse400 | adminListUsersResponse401 | adminListUsersResponse403 | adminListUsersResponse404 | adminListUsersResponse500) & {\n headers: Headers;\n};\n\nexport type adminListUsersResponse = (adminListUsersResponseSuccess | adminListUsersResponseError)\n\nexport const getAdminListUsersUrl = (params?: AdminListUsersParams,) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n \n if (value !== undefined) {\n normalizedParams.append(key, value === null ? 'null' : value.toString())\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0 ? `/api/admin/users?${stringifiedParams}` : `/api/admin/users`\n}\n\nexport const adminListUsers = async (params?: AdminListUsersParams, options?: RequestInit): Promise<adminListUsersResponse> => {\n \n return customFetch<adminListUsersResponse>(getAdminListUsersUrl(params),\n { \n ...options,\n method: 'GET'\n \n \n }\n);}\n \n\n\n/**\n * Get aggregate user statistics (admin only)\n * @summary Get admin stats\n */\nexport type adminGetStatsResponse200 = {\n data: AdminStats\n status: 200\n}\n\nexport type adminGetStatsResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type adminGetStatsResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type adminGetStatsResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type adminGetStatsResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type adminGetStatsResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type adminGetStatsResponseSuccess = (adminGetStatsResponse200) & {\n headers: Headers;\n};\nexport type adminGetStatsResponseError = (adminGetStatsResponse400 | adminGetStatsResponse401 | adminGetStatsResponse403 | adminGetStatsResponse404 | adminGetStatsResponse500) & {\n headers: Headers;\n};\n\nexport type adminGetStatsResponse = (adminGetStatsResponseSuccess | adminGetStatsResponseError)\n\nexport const getAdminGetStatsUrl = () => {\n\n\n \n\n return `/api/admin/stats`\n}\n\nexport const adminGetStats = async ( options?: RequestInit): Promise<adminGetStatsResponse> => {\n \n return customFetch<adminGetStatsResponse>(getAdminGetStatsUrl(),\n { \n ...options,\n method: 'GET'\n \n \n }\n);}\n \n\n\n/**\n * Update a user's role (admin only)\n * @summary Update user role\n */\nexport type adminUpdateUserRoleResponse200 = {\n data: UpdateUserRoleResponse\n status: 200\n}\n\nexport type adminUpdateUserRoleResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type adminUpdateUserRoleResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type adminUpdateUserRoleResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type adminUpdateUserRoleResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type adminUpdateUserRoleResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type adminUpdateUserRoleResponseSuccess = (adminUpdateUserRoleResponse200) & {\n headers: Headers;\n};\nexport type adminUpdateUserRoleResponseError = (adminUpdateUserRoleResponse400 | adminUpdateUserRoleResponse401 | adminUpdateUserRoleResponse403 | adminUpdateUserRoleResponse404 | adminUpdateUserRoleResponse500) & {\n headers: Headers;\n};\n\nexport type adminUpdateUserRoleResponse = (adminUpdateUserRoleResponseSuccess | adminUpdateUserRoleResponseError)\n\nexport const getAdminUpdateUserRoleUrl = (id: string,) => {\n\n\n \n\n return `/api/admin/users/${id}/role`\n}\n\nexport const adminUpdateUserRole = async (id: string,\n updateUserRoleInput: UpdateUserRoleInput, options?: RequestInit): Promise<adminUpdateUserRoleResponse> => {\n \n return customFetch<adminUpdateUserRoleResponse>(getAdminUpdateUserRoleUrl(id),\n { \n ...options,\n method: 'PATCH',\n headers: { 'Content-Type': 'application/json', ...options?.headers },\n body: JSON.stringify(\n updateUserRoleInput,)\n }\n);}\n \n\n\n/**\n * Retrieve all API keys for the authenticated user\n * @summary List all API keys\n */\nexport type listApiKeysResponse200 = {\n data: ApiKeyListResponse\n status: 200\n}\n\nexport type listApiKeysResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type listApiKeysResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type listApiKeysResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type listApiKeysResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type listApiKeysResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type listApiKeysResponseSuccess = (listApiKeysResponse200) & {\n headers: Headers;\n};\nexport type listApiKeysResponseError = (listApiKeysResponse400 | listApiKeysResponse401 | listApiKeysResponse403 | listApiKeysResponse404 | listApiKeysResponse500) & {\n headers: Headers;\n};\n\nexport type listApiKeysResponse = (listApiKeysResponseSuccess | listApiKeysResponseError)\n\nexport const getListApiKeysUrl = () => {\n\n\n \n\n return `/api/api-keys/api-keys`\n}\n\nexport const listApiKeys = async ( options?: RequestInit): Promise<listApiKeysResponse> => {\n \n return customFetch<listApiKeysResponse>(getListApiKeysUrl(),\n { \n ...options,\n method: 'GET'\n \n \n }\n);}\n \n\n\n/**\n * Create a new API key with optional expiration\n * @summary Create a new API key\n */\nexport type createApiKeyResponse200 = {\n data: CreateApiKeyResponse\n status: 200\n}\n\nexport type createApiKeyResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type createApiKeyResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type createApiKeyResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type createApiKeyResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type createApiKeyResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type createApiKeyResponseSuccess = (createApiKeyResponse200) & {\n headers: Headers;\n};\nexport type createApiKeyResponseError = (createApiKeyResponse400 | createApiKeyResponse401 | createApiKeyResponse403 | createApiKeyResponse404 | createApiKeyResponse500) & {\n headers: Headers;\n};\n\nexport type createApiKeyResponse = (createApiKeyResponseSuccess | createApiKeyResponseError)\n\nexport const getCreateApiKeyUrl = () => {\n\n\n \n\n return `/api/api-keys/api-keys`\n}\n\nexport const createApiKey = async (createApiKeyInput: CreateApiKeyInput, options?: RequestInit): Promise<createApiKeyResponse> => {\n \n return customFetch<createApiKeyResponse>(getCreateApiKeyUrl(),\n { \n ...options,\n method: 'POST',\n headers: { 'Content-Type': 'application/json', ...options?.headers },\n body: JSON.stringify(\n createApiKeyInput,)\n }\n);}\n \n\n\n/**\n * Revoke and delete an API key\n * @summary Delete an API key\n */\nexport type deleteApiKeyResponse200 = {\n data: SuccessResponse\n status: 200\n}\n\nexport type deleteApiKeyResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type deleteApiKeyResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type deleteApiKeyResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type deleteApiKeyResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type deleteApiKeyResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type deleteApiKeyResponseSuccess = (deleteApiKeyResponse200) & {\n headers: Headers;\n};\nexport type deleteApiKeyResponseError = (deleteApiKeyResponse400 | deleteApiKeyResponse401 | deleteApiKeyResponse403 | deleteApiKeyResponse404 | deleteApiKeyResponse500) & {\n headers: Headers;\n};\n\nexport type deleteApiKeyResponse = (deleteApiKeyResponseSuccess | deleteApiKeyResponseError)\n\nexport const getDeleteApiKeyUrl = () => {\n\n\n \n\n return `/api/api-keys/api-keys`\n}\n\nexport const deleteApiKey = async (deleteApiKeyInput: DeleteApiKeyInput, options?: RequestInit): Promise<deleteApiKeyResponse> => {\n \n return customFetch<deleteApiKeyResponse>(getDeleteApiKeyUrl(),\n { \n ...options,\n method: 'DELETE',\n headers: { 'Content-Type': 'application/json', ...options?.headers },\n body: JSON.stringify(\n deleteApiKeyInput,)\n }\n);}\n \n\n\n/**\n * Update the name/description of an API key\n * @summary Update API key name\n */\nexport type updateApiKeyNameResponse200 = {\n data: ApiKey\n status: 200\n}\n\nexport type updateApiKeyNameResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type updateApiKeyNameResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type updateApiKeyNameResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type updateApiKeyNameResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type updateApiKeyNameResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type updateApiKeyNameResponseSuccess = (updateApiKeyNameResponse200) & {\n headers: Headers;\n};\nexport type updateApiKeyNameResponseError = (updateApiKeyNameResponse400 | updateApiKeyNameResponse401 | updateApiKeyNameResponse403 | updateApiKeyNameResponse404 | updateApiKeyNameResponse500) & {\n headers: Headers;\n};\n\nexport type updateApiKeyNameResponse = (updateApiKeyNameResponseSuccess | updateApiKeyNameResponseError)\n\nexport const getUpdateApiKeyNameUrl = () => {\n\n\n \n\n return `/api/api-keys/api-keys`\n}\n\nexport const updateApiKeyName = async (updateApiKeyInput: UpdateApiKeyInput, options?: RequestInit): Promise<updateApiKeyNameResponse> => {\n \n return customFetch<updateApiKeyNameResponse>(getUpdateApiKeyNameUrl(),\n { \n ...options,\n method: 'PUT',\n headers: { 'Content-Type': 'application/json', ...options?.headers },\n body: JSON.stringify(\n updateApiKeyInput,)\n }\n);}\n \n\n\n/**\n * Create a short-lived token for CLI browser-based authentication\n * @summary Create a CLI login token\n */\nexport type createCliTokenResponse200 = {\n data: CreateCliTokenResponse\n status: 200\n}\n\nexport type createCliTokenResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type createCliTokenResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type createCliTokenResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type createCliTokenResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type createCliTokenResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type createCliTokenResponseSuccess = (createCliTokenResponse200) & {\n headers: Headers;\n};\nexport type createCliTokenResponseError = (createCliTokenResponse400 | createCliTokenResponse401 | createCliTokenResponse403 | createCliTokenResponse404 | createCliTokenResponse500) & {\n headers: Headers;\n};\n\nexport type createCliTokenResponse = (createCliTokenResponseSuccess | createCliTokenResponseError)\n\nexport const getCreateCliTokenUrl = () => {\n\n\n \n\n return `/api/api-keys/cli-token`\n}\n\nexport const createCliToken = async (createCliTokenInput: CreateCliTokenInput, options?: RequestInit): Promise<createCliTokenResponse> => {\n \n return customFetch<createCliTokenResponse>(getCreateCliTokenUrl(),\n { \n ...options,\n method: 'POST',\n headers: { 'Content-Type': 'application/json', ...options?.headers },\n body: JSON.stringify(\n createCliTokenInput,)\n }\n);}\n \n\n\n/**\n * Exchange a CLI login token for an API key (called by CLI after browser redirect)\n * @summary Exchange CLI token for API key\n */\nexport type exchangeCliTokenResponse200 = {\n data: ExchangeCliTokenResponse\n status: 200\n}\n\nexport type exchangeCliTokenResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type exchangeCliTokenResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type exchangeCliTokenResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type exchangeCliTokenResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type exchangeCliTokenResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type exchangeCliTokenResponseSuccess = (exchangeCliTokenResponse200) & {\n headers: Headers;\n};\nexport type exchangeCliTokenResponseError = (exchangeCliTokenResponse400 | exchangeCliTokenResponse401 | exchangeCliTokenResponse403 | exchangeCliTokenResponse404 | exchangeCliTokenResponse500) & {\n headers: Headers;\n};\n\nexport type exchangeCliTokenResponse = (exchangeCliTokenResponseSuccess | exchangeCliTokenResponseError)\n\nexport const getExchangeCliTokenUrl = () => {\n\n\n \n\n return `/api/api-keys/cli-token-exchange`\n}\n\nexport const exchangeCliToken = async (exchangeCliTokenInput: ExchangeCliTokenInput, options?: RequestInit): Promise<exchangeCliTokenResponse> => {\n \n return customFetch<exchangeCliTokenResponse>(getExchangeCliTokenUrl(),\n { \n ...options,\n method: 'POST',\n headers: { 'Content-Type': 'application/json', ...options?.headers },\n body: JSON.stringify(\n exchangeCliTokenInput,)\n }\n);}\n \n\n\n/**\n * Get current user's username and whether it has been set\n * @summary Get username info\n */\nexport type getUsernameInfoResponse200 = {\n data: UsernameInfo\n status: 200\n}\n\nexport type getUsernameInfoResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type getUsernameInfoResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type getUsernameInfoResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type getUsernameInfoResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type getUsernameInfoResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type getUsernameInfoResponseSuccess = (getUsernameInfoResponse200) & {\n headers: Headers;\n};\nexport type getUsernameInfoResponseError = (getUsernameInfoResponse400 | getUsernameInfoResponse401 | getUsernameInfoResponse403 | getUsernameInfoResponse404 | getUsernameInfoResponse500) & {\n headers: Headers;\n};\n\nexport type getUsernameInfoResponse = (getUsernameInfoResponseSuccess | getUsernameInfoResponseError)\n\nexport const getGetUsernameInfoUrl = () => {\n\n\n \n\n return `/api/auth/username`\n}\n\nexport const getUsernameInfo = async ( options?: RequestInit): Promise<getUsernameInfoResponse> => {\n \n return customFetch<getUsernameInfoResponse>(getGetUsernameInfoUrl(),\n { \n ...options,\n method: 'GET'\n \n \n }\n);}\n \n\n\n/**\n * Set the current user's username. This is a one-time operation - username cannot be changed after being set (npm-style).\n * @summary Set username (one-time)\n */\nexport type setUsernameResponse200 = {\n data: UpdateUsernameOutput\n status: 200\n}\n\nexport type setUsernameResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type setUsernameResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type setUsernameResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type setUsernameResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type setUsernameResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type setUsernameResponseSuccess = (setUsernameResponse200) & {\n headers: Headers;\n};\nexport type setUsernameResponseError = (setUsernameResponse400 | setUsernameResponse401 | setUsernameResponse403 | setUsernameResponse404 | setUsernameResponse500) & {\n headers: Headers;\n};\n\nexport type setUsernameResponse = (setUsernameResponseSuccess | setUsernameResponseError)\n\nexport const getSetUsernameUrl = () => {\n\n\n \n\n return `/api/auth/username`\n}\n\nexport const setUsername = async (updateUsernameInput: UpdateUsernameInput, options?: RequestInit): Promise<setUsernameResponse> => {\n \n return customFetch<setUsernameResponse>(getSetUsernameUrl(),\n { \n ...options,\n method: 'PUT',\n headers: { 'Content-Type': 'application/json', ...options?.headers },\n body: JSON.stringify(\n updateUsernameInput,)\n }\n);}\n \n\n\n/**\n * Check if a username is available for use. This endpoint is public and can be called during signup.\n * @summary Check username availability\n */\nexport type checkUsernameAvailabilityResponse200 = {\n data: CheckUsernameOutput\n status: 200\n}\n\nexport type checkUsernameAvailabilityResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type checkUsernameAvailabilityResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type checkUsernameAvailabilityResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type checkUsernameAvailabilityResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type checkUsernameAvailabilityResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type checkUsernameAvailabilityResponseSuccess = (checkUsernameAvailabilityResponse200) & {\n headers: Headers;\n};\nexport type checkUsernameAvailabilityResponseError = (checkUsernameAvailabilityResponse400 | checkUsernameAvailabilityResponse401 | checkUsernameAvailabilityResponse403 | checkUsernameAvailabilityResponse404 | checkUsernameAvailabilityResponse500) & {\n headers: Headers;\n};\n\nexport type checkUsernameAvailabilityResponse = (checkUsernameAvailabilityResponseSuccess | checkUsernameAvailabilityResponseError)\n\nexport const getCheckUsernameAvailabilityUrl = (params: CheckUsernameAvailabilityParams,) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n \n if (value !== undefined) {\n normalizedParams.append(key, value === null ? 'null' : value.toString())\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0 ? `/api/auth/username/check?${stringifiedParams}` : `/api/auth/username/check`\n}\n\nexport const checkUsernameAvailability = async (params: CheckUsernameAvailabilityParams, options?: RequestInit): Promise<checkUsernameAvailabilityResponse> => {\n \n return customFetch<checkUsernameAvailabilityResponse>(getCheckUsernameAvailabilityUrl(params),\n { \n ...options,\n method: 'GET'\n \n \n }\n);}\n \n\n\n/**\n * Get available username suggestions based on user's email and name\n * @summary Get username suggestions\n */\nexport type getUsernameSuggestionsResponse200 = {\n data: GetSuggestionsOutput\n status: 200\n}\n\nexport type getUsernameSuggestionsResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type getUsernameSuggestionsResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type getUsernameSuggestionsResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type getUsernameSuggestionsResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type getUsernameSuggestionsResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type getUsernameSuggestionsResponseSuccess = (getUsernameSuggestionsResponse200) & {\n headers: Headers;\n};\nexport type getUsernameSuggestionsResponseError = (getUsernameSuggestionsResponse400 | getUsernameSuggestionsResponse401 | getUsernameSuggestionsResponse403 | getUsernameSuggestionsResponse404 | getUsernameSuggestionsResponse500) & {\n headers: Headers;\n};\n\nexport type getUsernameSuggestionsResponse = (getUsernameSuggestionsResponseSuccess | getUsernameSuggestionsResponseError)\n\nexport const getGetUsernameSuggestionsUrl = () => {\n\n\n \n\n return `/api/auth/username/suggestions`\n}\n\nexport const getUsernameSuggestions = async ( options?: RequestInit): Promise<getUsernameSuggestionsResponse> => {\n \n return customFetch<getUsernameSuggestionsResponse>(getGetUsernameSuggestionsUrl(),\n { \n ...options,\n method: 'GET'\n \n \n }\n);}\n \n\n\n/**\n * Submit a contact message (public, no authentication required)\n * @summary Submit a contact message\n */\nexport type submitContactMessageResponse200 = {\n data: ContactSuccessResponse\n status: 200\n}\n\nexport type submitContactMessageResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type submitContactMessageResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type submitContactMessageResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type submitContactMessageResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type submitContactMessageResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type submitContactMessageResponseSuccess = (submitContactMessageResponse200) & {\n headers: Headers;\n};\nexport type submitContactMessageResponseError = (submitContactMessageResponse400 | submitContactMessageResponse401 | submitContactMessageResponse403 | submitContactMessageResponse404 | submitContactMessageResponse500) & {\n headers: Headers;\n};\n\nexport type submitContactMessageResponse = (submitContactMessageResponseSuccess | submitContactMessageResponseError)\n\nexport const getSubmitContactMessageUrl = () => {\n\n\n \n\n return `/api/contact`\n}\n\nexport const submitContactMessage = async (createContactMessage: CreateContactMessage, options?: RequestInit): Promise<submitContactMessageResponse> => {\n \n return customFetch<submitContactMessageResponse>(getSubmitContactMessageUrl(),\n { \n ...options,\n method: 'POST',\n headers: { 'Content-Type': 'application/json', ...options?.headers },\n body: JSON.stringify(\n createContactMessage,)\n }\n);}\n \n\n\n/**\n * List all contact messages with pagination (admin only)\n * @summary List contact messages\n */\nexport type listContactMessagesResponse200 = {\n data: ContactMessageListResponse\n status: 200\n}\n\nexport type listContactMessagesResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type listContactMessagesResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type listContactMessagesResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type listContactMessagesResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type listContactMessagesResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type listContactMessagesResponseSuccess = (listContactMessagesResponse200) & {\n headers: Headers;\n};\nexport type listContactMessagesResponseError = (listContactMessagesResponse400 | listContactMessagesResponse401 | listContactMessagesResponse403 | listContactMessagesResponse404 | listContactMessagesResponse500) & {\n headers: Headers;\n};\n\nexport type listContactMessagesResponse = (listContactMessagesResponseSuccess | listContactMessagesResponseError)\n\nexport const getListContactMessagesUrl = (params?: ListContactMessagesParams,) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n \n if (value !== undefined) {\n normalizedParams.append(key, value === null ? 'null' : value.toString())\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0 ? `/api/contact/messages?${stringifiedParams}` : `/api/contact/messages`\n}\n\nexport const listContactMessages = async (params?: ListContactMessagesParams, options?: RequestInit): Promise<listContactMessagesResponse> => {\n \n return customFetch<listContactMessagesResponse>(getListContactMessagesUrl(params),\n { \n ...options,\n method: 'GET'\n \n \n }\n);}\n \n\n\n/**\n * Mark a contact message as read (admin only)\n * @summary Mark message as read\n */\nexport type markContactMessageReadResponse200 = {\n data: ContactMessage\n status: 200\n}\n\nexport type markContactMessageReadResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type markContactMessageReadResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type markContactMessageReadResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type markContactMessageReadResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type markContactMessageReadResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type markContactMessageReadResponseSuccess = (markContactMessageReadResponse200) & {\n headers: Headers;\n};\nexport type markContactMessageReadResponseError = (markContactMessageReadResponse400 | markContactMessageReadResponse401 | markContactMessageReadResponse403 | markContactMessageReadResponse404 | markContactMessageReadResponse500) & {\n headers: Headers;\n};\n\nexport type markContactMessageReadResponse = (markContactMessageReadResponseSuccess | markContactMessageReadResponseError)\n\nexport const getMarkContactMessageReadUrl = (id: string,) => {\n\n\n \n\n return `/api/contact/messages/${id}/read`\n}\n\nexport const markContactMessageRead = async (id: string, options?: RequestInit): Promise<markContactMessageReadResponse> => {\n \n return customFetch<markContactMessageReadResponse>(getMarkContactMessageReadUrl(id),\n { \n ...options,\n method: 'PATCH'\n \n \n }\n);}\n \n\n\n/**\n * Delete a contact message (admin only)\n * @summary Delete a contact message\n */\nexport type deleteContactMessageResponse200 = {\n data: ContactSuccessResponse\n status: 200\n}\n\nexport type deleteContactMessageResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type deleteContactMessageResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type deleteContactMessageResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type deleteContactMessageResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type deleteContactMessageResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type deleteContactMessageResponseSuccess = (deleteContactMessageResponse200) & {\n headers: Headers;\n};\nexport type deleteContactMessageResponseError = (deleteContactMessageResponse400 | deleteContactMessageResponse401 | deleteContactMessageResponse403 | deleteContactMessageResponse404 | deleteContactMessageResponse500) & {\n headers: Headers;\n};\n\nexport type deleteContactMessageResponse = (deleteContactMessageResponseSuccess | deleteContactMessageResponseError)\n\nexport const getDeleteContactMessageUrl = (id: string,) => {\n\n\n \n\n return `/api/contact/messages/${id}`\n}\n\nexport const deleteContactMessage = async (id: string, options?: RequestInit): Promise<deleteContactMessageResponse> => {\n \n return customFetch<deleteContactMessageResponse>(getDeleteContactMessageUrl(id),\n { \n ...options,\n method: 'DELETE'\n \n \n }\n);}\n \n\n\n/**\n * Create a new organization. Admin only.\n * @summary Create organization\n */\nexport type createOrganizationResponse200 = {\n data: Organization\n status: 200\n}\n\nexport type createOrganizationResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type createOrganizationResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type createOrganizationResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type createOrganizationResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type createOrganizationResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type createOrganizationResponseSuccess = (createOrganizationResponse200) & {\n headers: Headers;\n};\nexport type createOrganizationResponseError = (createOrganizationResponse400 | createOrganizationResponse401 | createOrganizationResponse403 | createOrganizationResponse404 | createOrganizationResponse500) & {\n headers: Headers;\n};\n\nexport type createOrganizationResponse = (createOrganizationResponseSuccess | createOrganizationResponseError)\n\nexport const getCreateOrganizationUrl = () => {\n\n\n \n\n return `/api/orgs`\n}\n\nexport const createOrganization = async (createOrgInput: CreateOrgInput, options?: RequestInit): Promise<createOrganizationResponse> => {\n \n return customFetch<createOrganizationResponse>(getCreateOrganizationUrl(),\n { \n ...options,\n method: 'POST',\n headers: { 'Content-Type': 'application/json', ...options?.headers },\n body: JSON.stringify(\n createOrgInput,)\n }\n);}\n \n\n\n/**\n * Get organization details by name\n * @summary Get organization\n */\nexport type getOrganizationResponse200 = {\n data: Organization\n status: 200\n}\n\nexport type getOrganizationResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type getOrganizationResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type getOrganizationResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type getOrganizationResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type getOrganizationResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type getOrganizationResponseSuccess = (getOrganizationResponse200) & {\n headers: Headers;\n};\nexport type getOrganizationResponseError = (getOrganizationResponse400 | getOrganizationResponse401 | getOrganizationResponse403 | getOrganizationResponse404 | getOrganizationResponse500) & {\n headers: Headers;\n};\n\nexport type getOrganizationResponse = (getOrganizationResponseSuccess | getOrganizationResponseError)\n\nexport const getGetOrganizationUrl = (orgname: string,) => {\n\n\n \n\n return `/api/orgs/${orgname}`\n}\n\nexport const getOrganization = async (orgname: string, options?: RequestInit): Promise<getOrganizationResponse> => {\n \n return customFetch<getOrganizationResponse>(getGetOrganizationUrl(orgname),\n { \n ...options,\n method: 'GET'\n \n \n }\n);}\n \n\n\n/**\n * List all members of an organization\n * @summary List members\n */\nexport type listOrgMembersResponse200 = {\n data: OrgMember[]\n status: 200\n}\n\nexport type listOrgMembersResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type listOrgMembersResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type listOrgMembersResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type listOrgMembersResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type listOrgMembersResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type listOrgMembersResponseSuccess = (listOrgMembersResponse200) & {\n headers: Headers;\n};\nexport type listOrgMembersResponseError = (listOrgMembersResponse400 | listOrgMembersResponse401 | listOrgMembersResponse403 | listOrgMembersResponse404 | listOrgMembersResponse500) & {\n headers: Headers;\n};\n\nexport type listOrgMembersResponse = (listOrgMembersResponseSuccess | listOrgMembersResponseError)\n\nexport const getListOrgMembersUrl = (orgname: string,) => {\n\n\n \n\n return `/api/orgs/${orgname}/members`\n}\n\nexport const listOrgMembers = async (orgname: string, options?: RequestInit): Promise<listOrgMembersResponse> => {\n \n return customFetch<listOrgMembersResponse>(getListOrgMembersUrl(orgname),\n { \n ...options,\n method: 'GET'\n \n \n }\n);}\n \n\n\n/**\n * Add a member to the organization. Owner/admin only.\n * @summary Add member\n */\nexport type addOrgMemberResponse200 = {\n data: OrgMember\n status: 200\n}\n\nexport type addOrgMemberResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type addOrgMemberResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type addOrgMemberResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type addOrgMemberResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type addOrgMemberResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type addOrgMemberResponseSuccess = (addOrgMemberResponse200) & {\n headers: Headers;\n};\nexport type addOrgMemberResponseError = (addOrgMemberResponse400 | addOrgMemberResponse401 | addOrgMemberResponse403 | addOrgMemberResponse404 | addOrgMemberResponse500) & {\n headers: Headers;\n};\n\nexport type addOrgMemberResponse = (addOrgMemberResponseSuccess | addOrgMemberResponseError)\n\nexport const getAddOrgMemberUrl = (orgname: string,) => {\n\n\n \n\n return `/api/orgs/${orgname}/members`\n}\n\nexport const addOrgMember = async (orgname: string,\n addMemberInput: AddMemberInput, options?: RequestInit): Promise<addOrgMemberResponse> => {\n \n return customFetch<addOrgMemberResponse>(getAddOrgMemberUrl(orgname),\n { \n ...options,\n method: 'POST',\n headers: { 'Content-Type': 'application/json', ...options?.headers },\n body: JSON.stringify(\n addMemberInput,)\n }\n);}\n \n\n\n/**\n * Change the role of an organization member. Owner only.\n * @summary Update member role\n */\nexport type updateOrgMemberRoleResponse200 = {\n data: OrgMember\n status: 200\n}\n\nexport type updateOrgMemberRoleResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type updateOrgMemberRoleResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type updateOrgMemberRoleResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type updateOrgMemberRoleResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type updateOrgMemberRoleResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type updateOrgMemberRoleResponseSuccess = (updateOrgMemberRoleResponse200) & {\n headers: Headers;\n};\nexport type updateOrgMemberRoleResponseError = (updateOrgMemberRoleResponse400 | updateOrgMemberRoleResponse401 | updateOrgMemberRoleResponse403 | updateOrgMemberRoleResponse404 | updateOrgMemberRoleResponse500) & {\n headers: Headers;\n};\n\nexport type updateOrgMemberRoleResponse = (updateOrgMemberRoleResponseSuccess | updateOrgMemberRoleResponseError)\n\nexport const getUpdateOrgMemberRoleUrl = (orgname: string,\n memberId: string,) => {\n\n\n \n\n return `/api/orgs/${orgname}/members/${memberId}`\n}\n\nexport const updateOrgMemberRole = async (orgname: string,\n memberId: string,\n updateMemberRoleInput: UpdateMemberRoleInput, options?: RequestInit): Promise<updateOrgMemberRoleResponse> => {\n \n return customFetch<updateOrgMemberRoleResponse>(getUpdateOrgMemberRoleUrl(orgname,memberId),\n { \n ...options,\n method: 'PATCH',\n headers: { 'Content-Type': 'application/json', ...options?.headers },\n body: JSON.stringify(\n updateMemberRoleInput,)\n }\n);}\n \n\n\n/**\n * Remove a member from the organization. Owner/admin only.\n * @summary Remove member\n */\nexport type removeOrgMemberResponse200 = {\n data: OrgSuccessResponse\n status: 200\n}\n\nexport type removeOrgMemberResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type removeOrgMemberResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type removeOrgMemberResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type removeOrgMemberResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type removeOrgMemberResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type removeOrgMemberResponseSuccess = (removeOrgMemberResponse200) & {\n headers: Headers;\n};\nexport type removeOrgMemberResponseError = (removeOrgMemberResponse400 | removeOrgMemberResponse401 | removeOrgMemberResponse403 | removeOrgMemberResponse404 | removeOrgMemberResponse500) & {\n headers: Headers;\n};\n\nexport type removeOrgMemberResponse = (removeOrgMemberResponseSuccess | removeOrgMemberResponseError)\n\nexport const getRemoveOrgMemberUrl = (orgname: string,\n memberId: string,) => {\n\n\n \n\n return `/api/orgs/${orgname}/members/${memberId}`\n}\n\nexport const removeOrgMember = async (orgname: string,\n memberId: string, options?: RequestInit): Promise<removeOrgMemberResponse> => {\n \n return customFetch<removeOrgMemberResponse>(getRemoveOrgMemberUrl(orgname,memberId),\n { \n ...options,\n method: 'DELETE'\n \n \n }\n);}\n \n\n\n/**\n * Invite a user by email to join the organization. Admin/owner only.\n * @summary Create invitation\n */\nexport type createOrgInvitationResponse200 = {\n data: OrgInvitation\n status: 200\n}\n\nexport type createOrgInvitationResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type createOrgInvitationResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type createOrgInvitationResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type createOrgInvitationResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type createOrgInvitationResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type createOrgInvitationResponseSuccess = (createOrgInvitationResponse200) & {\n headers: Headers;\n};\nexport type createOrgInvitationResponseError = (createOrgInvitationResponse400 | createOrgInvitationResponse401 | createOrgInvitationResponse403 | createOrgInvitationResponse404 | createOrgInvitationResponse500) & {\n headers: Headers;\n};\n\nexport type createOrgInvitationResponse = (createOrgInvitationResponseSuccess | createOrgInvitationResponseError)\n\nexport const getCreateOrgInvitationUrl = (orgname: string,) => {\n\n\n \n\n return `/api/orgs/${orgname}/invitations`\n}\n\nexport const createOrgInvitation = async (orgname: string,\n createInvitationInput: CreateInvitationInput, options?: RequestInit): Promise<createOrgInvitationResponse> => {\n \n return customFetch<createOrgInvitationResponse>(getCreateOrgInvitationUrl(orgname),\n { \n ...options,\n method: 'POST',\n headers: { 'Content-Type': 'application/json', ...options?.headers },\n body: JSON.stringify(\n createInvitationInput,)\n }\n);}\n \n\n\n/**\n * List all pending invitations for the organization.\n * @summary List pending invitations\n */\nexport type listOrgInvitationsResponse200 = {\n data: OrgInvitation[]\n status: 200\n}\n\nexport type listOrgInvitationsResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type listOrgInvitationsResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type listOrgInvitationsResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type listOrgInvitationsResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type listOrgInvitationsResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type listOrgInvitationsResponseSuccess = (listOrgInvitationsResponse200) & {\n headers: Headers;\n};\nexport type listOrgInvitationsResponseError = (listOrgInvitationsResponse400 | listOrgInvitationsResponse401 | listOrgInvitationsResponse403 | listOrgInvitationsResponse404 | listOrgInvitationsResponse500) & {\n headers: Headers;\n};\n\nexport type listOrgInvitationsResponse = (listOrgInvitationsResponseSuccess | listOrgInvitationsResponseError)\n\nexport const getListOrgInvitationsUrl = (orgname: string,) => {\n\n\n \n\n return `/api/orgs/${orgname}/invitations`\n}\n\nexport const listOrgInvitations = async (orgname: string, options?: RequestInit): Promise<listOrgInvitationsResponse> => {\n \n return customFetch<listOrgInvitationsResponse>(getListOrgInvitationsUrl(orgname),\n { \n ...options,\n method: 'GET'\n \n \n }\n);}\n \n\n\n/**\n * Cancel a pending invitation. Admin/owner only.\n * @summary Cancel invitation\n */\nexport type cancelOrgInvitationResponse200 = {\n data: OrgSuccessResponse\n status: 200\n}\n\nexport type cancelOrgInvitationResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type cancelOrgInvitationResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type cancelOrgInvitationResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type cancelOrgInvitationResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type cancelOrgInvitationResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type cancelOrgInvitationResponseSuccess = (cancelOrgInvitationResponse200) & {\n headers: Headers;\n};\nexport type cancelOrgInvitationResponseError = (cancelOrgInvitationResponse400 | cancelOrgInvitationResponse401 | cancelOrgInvitationResponse403 | cancelOrgInvitationResponse404 | cancelOrgInvitationResponse500) & {\n headers: Headers;\n};\n\nexport type cancelOrgInvitationResponse = (cancelOrgInvitationResponseSuccess | cancelOrgInvitationResponseError)\n\nexport const getCancelOrgInvitationUrl = (orgname: string,\n invitationId: string,) => {\n\n\n \n\n return `/api/orgs/${orgname}/invitations/${invitationId}`\n}\n\nexport const cancelOrgInvitation = async (orgname: string,\n invitationId: string, options?: RequestInit): Promise<cancelOrgInvitationResponse> => {\n \n return customFetch<cancelOrgInvitationResponse>(getCancelOrgInvitationUrl(orgname,invitationId),\n { \n ...options,\n method: 'DELETE'\n \n \n }\n);}\n \n\n\n/**\n * Accept an invitation using the invite token. Requires authentication.\n * @summary Accept invitation\n */\nexport type acceptOrgInvitationResponse200 = {\n data: OrgMember\n status: 200\n}\n\nexport type acceptOrgInvitationResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type acceptOrgInvitationResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type acceptOrgInvitationResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type acceptOrgInvitationResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type acceptOrgInvitationResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type acceptOrgInvitationResponseSuccess = (acceptOrgInvitationResponse200) & {\n headers: Headers;\n};\nexport type acceptOrgInvitationResponseError = (acceptOrgInvitationResponse400 | acceptOrgInvitationResponse401 | acceptOrgInvitationResponse403 | acceptOrgInvitationResponse404 | acceptOrgInvitationResponse500) & {\n headers: Headers;\n};\n\nexport type acceptOrgInvitationResponse = (acceptOrgInvitationResponseSuccess | acceptOrgInvitationResponseError)\n\nexport const getAcceptOrgInvitationUrl = (token: string,) => {\n\n\n \n\n return `/api/orgs/-/invitations/${token}/accept`\n}\n\nexport const acceptOrgInvitation = async (token: string, options?: RequestInit): Promise<acceptOrgInvitationResponse> => {\n \n return customFetch<acceptOrgInvitationResponse>(getAcceptOrgInvitationUrl(token),\n { \n ...options,\n method: 'POST'\n \n \n }\n);}\n \n\n\n/**\n * List all organizations the authenticated user belongs to.\n * @summary List my organizations\n */\nexport type listMyOrganizationsResponse200 = {\n data: ListMyOrganizations200Item[]\n status: 200\n}\n\nexport type listMyOrganizationsResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type listMyOrganizationsResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type listMyOrganizationsResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type listMyOrganizationsResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type listMyOrganizationsResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type listMyOrganizationsResponseSuccess = (listMyOrganizationsResponse200) & {\n headers: Headers;\n};\nexport type listMyOrganizationsResponseError = (listMyOrganizationsResponse400 | listMyOrganizationsResponse401 | listMyOrganizationsResponse403 | listMyOrganizationsResponse404 | listMyOrganizationsResponse500) & {\n headers: Headers;\n};\n\nexport type listMyOrganizationsResponse = (listMyOrganizationsResponseSuccess | listMyOrganizationsResponseError)\n\nexport const getListMyOrganizationsUrl = () => {\n\n\n \n\n return `/api/orgs/-/mine`\n}\n\nexport const listMyOrganizations = async ( options?: RequestInit): Promise<listMyOrganizationsResponse> => {\n \n return customFetch<listMyOrganizationsResponse>(getListMyOrganizationsUrl(),\n { \n ...options,\n method: 'GET'\n \n \n }\n);}\n \n\n\n/**\n * Get the current authenticated user's info\n * @summary Get current user\n */\nexport type meResponse200 = {\n data: MeResponseData | null\n status: 200\n}\n\nexport type meResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type meResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type meResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type meResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type meResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type meResponseSuccess = (meResponse200) & {\n headers: Headers;\n};\nexport type meResponseError = (meResponse400 | meResponse401 | meResponse403 | meResponse404 | meResponse500) & {\n headers: Headers;\n};\n\nexport type meResponse = (meResponseSuccess | meResponseError)\n\nexport const getMeUrl = () => {\n\n\n \n\n return `/api/skills/-/me`\n}\n\nexport const me = async ( options?: RequestInit): Promise<meResponse> => {\n \n return customFetch<meResponse>(getMeUrl(),\n { \n ...options,\n method: 'GET'\n \n \n }\n);}\n \n\n\n/**\n * Browse and search all public skills. No authentication required.\n * @summary Explore public skills\n */\nexport type explorePublicSkillsResponse200 = {\n data: ExploreResponse\n status: 200\n}\n\nexport type explorePublicSkillsResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type explorePublicSkillsResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type explorePublicSkillsResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type explorePublicSkillsResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type explorePublicSkillsResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type explorePublicSkillsResponseSuccess = (explorePublicSkillsResponse200) & {\n headers: Headers;\n};\nexport type explorePublicSkillsResponseError = (explorePublicSkillsResponse400 | explorePublicSkillsResponse401 | explorePublicSkillsResponse403 | explorePublicSkillsResponse404 | explorePublicSkillsResponse500) & {\n headers: Headers;\n};\n\nexport type explorePublicSkillsResponse = (explorePublicSkillsResponseSuccess | explorePublicSkillsResponseError)\n\nexport const getExplorePublicSkillsUrl = (params?: ExplorePublicSkillsParams,) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n \n if (value !== undefined) {\n normalizedParams.append(key, value === null ? 'null' : value.toString())\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0 ? `/api/skills/-/explore?${stringifiedParams}` : `/api/skills/-/explore`\n}\n\nexport const explorePublicSkills = async (params?: ExplorePublicSkillsParams, options?: RequestInit): Promise<explorePublicSkillsResponse> => {\n \n return customFetch<explorePublicSkillsResponse>(getExplorePublicSkillsUrl(params),\n { \n ...options,\n method: 'GET'\n \n \n }\n);}\n \n\n\n/**\n * List all skills owned by the authenticated user\n * @summary List my skills\n */\nexport type listMySkillsResponse200 = {\n data: SkillListResponse\n status: 200\n}\n\nexport type listMySkillsResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type listMySkillsResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type listMySkillsResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type listMySkillsResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type listMySkillsResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type listMySkillsResponseSuccess = (listMySkillsResponse200) & {\n headers: Headers;\n};\nexport type listMySkillsResponseError = (listMySkillsResponse400 | listMySkillsResponse401 | listMySkillsResponse403 | listMySkillsResponse404 | listMySkillsResponse500) & {\n headers: Headers;\n};\n\nexport type listMySkillsResponse = (listMySkillsResponseSuccess | listMySkillsResponseError)\n\nexport const getListMySkillsUrl = () => {\n\n\n \n\n return `/api/skills/-/mine`\n}\n\nexport const listMySkills = async ( options?: RequestInit): Promise<listMySkillsResponse> => {\n \n return customFetch<listMySkillsResponse>(getListMySkillsUrl(),\n { \n ...options,\n method: 'GET'\n \n \n }\n);}\n \n\n\n/**\n * List all skills for a specific user\n * @summary List user skills\n */\nexport type listUserSkillsResponse200 = {\n data: SkillListResponse\n status: 200\n}\n\nexport type listUserSkillsResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type listUserSkillsResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type listUserSkillsResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type listUserSkillsResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type listUserSkillsResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type listUserSkillsResponseSuccess = (listUserSkillsResponse200) & {\n headers: Headers;\n};\nexport type listUserSkillsResponseError = (listUserSkillsResponse400 | listUserSkillsResponse401 | listUserSkillsResponse403 | listUserSkillsResponse404 | listUserSkillsResponse500) & {\n headers: Headers;\n};\n\nexport type listUserSkillsResponse = (listUserSkillsResponseSuccess | listUserSkillsResponseError)\n\nexport const getListUserSkillsUrl = (username: Username,) => {\n\n\n \n\n return `/api/skills/@user/${username}`\n}\n\nexport const listUserSkills = async (username: Username, options?: RequestInit): Promise<listUserSkillsResponse> => {\n \n return customFetch<listUserSkillsResponse>(getListUserSkillsUrl(username),\n { \n ...options,\n method: 'GET'\n \n \n }\n);}\n \n\n\n/**\n * Get a specific skill by username and name\n * @summary Get skill\n */\nexport type getSkillResponse200 = {\n data: SkillDetailResponse\n status: 200\n}\n\nexport type getSkillResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type getSkillResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type getSkillResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type getSkillResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type getSkillResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type getSkillResponseSuccess = (getSkillResponse200) & {\n headers: Headers;\n};\nexport type getSkillResponseError = (getSkillResponse400 | getSkillResponse401 | getSkillResponse403 | getSkillResponse404 | getSkillResponse500) & {\n headers: Headers;\n};\n\nexport type getSkillResponse = (getSkillResponseSuccess | getSkillResponseError)\n\nexport const getGetSkillUrl = (username: Username,\n name: SkillName,) => {\n\n\n \n\n return `/api/skills/@user/${username}/${name}`\n}\n\nexport const getSkill = async (username: Username,\n name: SkillName, options?: RequestInit): Promise<getSkillResponse> => {\n \n return customFetch<getSkillResponse>(getGetSkillUrl(username,name),\n { \n ...options,\n method: 'GET'\n \n \n }\n);}\n \n\n\n/**\n * Delete a skill and all its versions (owner only)\n * @summary Delete skill\n */\nexport type deleteSkillResponse200 = {\n data: SuccessResponse & unknown\n status: 200\n}\n\nexport type deleteSkillResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type deleteSkillResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type deleteSkillResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type deleteSkillResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type deleteSkillResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type deleteSkillResponseSuccess = (deleteSkillResponse200) & {\n headers: Headers;\n};\nexport type deleteSkillResponseError = (deleteSkillResponse400 | deleteSkillResponse401 | deleteSkillResponse403 | deleteSkillResponse404 | deleteSkillResponse500) & {\n headers: Headers;\n};\n\nexport type deleteSkillResponse = (deleteSkillResponseSuccess | deleteSkillResponseError)\n\nexport const getDeleteSkillUrl = (username: Username,\n name: SkillName,) => {\n\n\n \n\n return `/api/skills/@user/${username}/${name}`\n}\n\nexport const deleteSkill = async (username: Username,\n name: SkillName, options?: RequestInit): Promise<deleteSkillResponse> => {\n \n return customFetch<deleteSkillResponse>(getDeleteSkillUrl(username,name),\n { \n ...options,\n method: 'DELETE'\n \n \n }\n);}\n \n\n\n/**\n * List all versions for a specific skill\n * @summary List skill versions\n */\nexport type listSkillVersionsResponse200 = {\n data: SkillVersion[]\n status: 200\n}\n\nexport type listSkillVersionsResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type listSkillVersionsResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type listSkillVersionsResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type listSkillVersionsResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type listSkillVersionsResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type listSkillVersionsResponseSuccess = (listSkillVersionsResponse200) & {\n headers: Headers;\n};\nexport type listSkillVersionsResponseError = (listSkillVersionsResponse400 | listSkillVersionsResponse401 | listSkillVersionsResponse403 | listSkillVersionsResponse404 | listSkillVersionsResponse500) & {\n headers: Headers;\n};\n\nexport type listSkillVersionsResponse = (listSkillVersionsResponseSuccess | listSkillVersionsResponseError)\n\nexport const getListSkillVersionsUrl = (username: Username,\n name: SkillName,) => {\n\n\n \n\n return `/api/skills/@user/${username}/${name}/versions`\n}\n\nexport const listSkillVersions = async (username: Username,\n name: SkillName, options?: RequestInit): Promise<listSkillVersionsResponse> => {\n \n return customFetch<listSkillVersionsResponse>(getListSkillVersionsUrl(username,name),\n { \n ...options,\n method: 'GET'\n \n \n }\n);}\n \n\n\n/**\n * Get total download count for a skill package.\n * @summary Get skill download statistics\n */\nexport type getSkillStatsResponse200 = {\n data: SkillStatsResponse\n status: 200\n}\n\nexport type getSkillStatsResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type getSkillStatsResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type getSkillStatsResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type getSkillStatsResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type getSkillStatsResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type getSkillStatsResponseSuccess = (getSkillStatsResponse200) & {\n headers: Headers;\n};\nexport type getSkillStatsResponseError = (getSkillStatsResponse400 | getSkillStatsResponse401 | getSkillStatsResponse403 | getSkillStatsResponse404 | getSkillStatsResponse500) & {\n headers: Headers;\n};\n\nexport type getSkillStatsResponse = (getSkillStatsResponseSuccess | getSkillStatsResponseError)\n\nexport const getGetSkillStatsUrl = (username: Username,\n name: SkillName,) => {\n\n\n \n\n return `/api/skills/@user/${username}/${name}/stats`\n}\n\nexport const getSkillStats = async (username: Username,\n name: SkillName, options?: RequestInit): Promise<getSkillStatsResponse> => {\n \n return customFetch<getSkillStatsResponse>(getGetSkillStatsUrl(username,name),\n { \n ...options,\n method: 'GET'\n \n \n }\n);}\n \n\n\n/**\n * Get metadata for a specific skill version\n * @summary Get skill version\n */\nexport type getSkillVersionResponse200 = {\n data: SkillVersionWithDownload\n status: 200\n}\n\nexport type getSkillVersionResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type getSkillVersionResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type getSkillVersionResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type getSkillVersionResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type getSkillVersionResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type getSkillVersionResponseSuccess = (getSkillVersionResponse200) & {\n headers: Headers;\n};\nexport type getSkillVersionResponseError = (getSkillVersionResponse400 | getSkillVersionResponse401 | getSkillVersionResponse403 | getSkillVersionResponse404 | getSkillVersionResponse500) & {\n headers: Headers;\n};\n\nexport type getSkillVersionResponse = (getSkillVersionResponseSuccess | getSkillVersionResponseError)\n\nexport const getGetSkillVersionUrl = (username: Username,\n name: SkillName,\n version: Semver,) => {\n\n\n \n\n return `/api/skills/@user/${username}/${name}/versions/${version}`\n}\n\nexport const getSkillVersion = async (username: Username,\n name: SkillName,\n version: Semver, options?: RequestInit): Promise<getSkillVersionResponse> => {\n \n return customFetch<getSkillVersionResponse>(getGetSkillVersionUrl(username,name,version),\n { \n ...options,\n method: 'GET'\n \n \n }\n);}\n \n\n\n/**\n * Delete a specific version of a skill (owner only). Only allowed within 72 hours of publishing. After that, use deprecate instead.\n * @summary Delete skill version\n */\nexport type deleteSkillVersionResponse200 = {\n data: SuccessResponse & unknown\n status: 200\n}\n\nexport type deleteSkillVersionResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type deleteSkillVersionResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type deleteSkillVersionResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type deleteSkillVersionResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type deleteSkillVersionResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type deleteSkillVersionResponseSuccess = (deleteSkillVersionResponse200) & {\n headers: Headers;\n};\nexport type deleteSkillVersionResponseError = (deleteSkillVersionResponse400 | deleteSkillVersionResponse401 | deleteSkillVersionResponse403 | deleteSkillVersionResponse404 | deleteSkillVersionResponse500) & {\n headers: Headers;\n};\n\nexport type deleteSkillVersionResponse = (deleteSkillVersionResponseSuccess | deleteSkillVersionResponseError)\n\nexport const getDeleteSkillVersionUrl = (username: Username,\n name: SkillName,\n version: Semver,) => {\n\n\n \n\n return `/api/skills/@user/${username}/${name}/versions/${version}`\n}\n\nexport const deleteSkillVersion = async (username: Username,\n name: SkillName,\n version: Semver, options?: RequestInit): Promise<deleteSkillVersionResponse> => {\n \n return customFetch<deleteSkillVersionResponse>(getDeleteSkillVersionUrl(username,name,version),\n { \n ...options,\n method: 'DELETE'\n \n \n }\n);}\n \n\n\n/**\n * Download the tarball for a specific skill version. Redirects to a presigned URL.\n * @summary Download skill version\n */\nexport type downloadSkillVersionResponse302 = {\n data: void\n status: 302\n}\n\nexport type downloadSkillVersionResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type downloadSkillVersionResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type downloadSkillVersionResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type downloadSkillVersionResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type downloadSkillVersionResponse500 = {\n data: ApiError\n status: 500\n}\n\n;\nexport type downloadSkillVersionResponseError = (downloadSkillVersionResponse302 | downloadSkillVersionResponse400 | downloadSkillVersionResponse401 | downloadSkillVersionResponse403 | downloadSkillVersionResponse404 | downloadSkillVersionResponse500) & {\n headers: Headers;\n};\n\nexport type downloadSkillVersionResponse = (downloadSkillVersionResponseError)\n\nexport const getDownloadSkillVersionUrl = (username: Username,\n name: SkillName,\n version: Semver,) => {\n\n\n \n\n return `/api/skills/@user/${username}/${name}/versions/${version}/download`\n}\n\nexport const downloadSkillVersion = async (username: Username,\n name: SkillName,\n version: Semver, options?: RequestInit): Promise<downloadSkillVersionResponse> => {\n \n return customFetch<downloadSkillVersionResponse>(getDownloadSkillVersionUrl(username,name,version),\n { \n ...options,\n method: 'GET'\n \n \n }\n);}\n \n\n\n/**\n * Publish a new skill or a new version of an existing skill\n * @summary Publish skill\n */\nexport type publishSkillResponse200 = {\n data: PublishSkillResponse\n status: 200\n}\n\nexport type publishSkillResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type publishSkillResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type publishSkillResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type publishSkillResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type publishSkillResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type publishSkillResponseSuccess = (publishSkillResponse200) & {\n headers: Headers;\n};\nexport type publishSkillResponseError = (publishSkillResponse400 | publishSkillResponse401 | publishSkillResponse403 | publishSkillResponse404 | publishSkillResponse500) & {\n headers: Headers;\n};\n\nexport type publishSkillResponse = (publishSkillResponseSuccess | publishSkillResponseError)\n\nexport const getPublishSkillUrl = () => {\n\n\n \n\n return `/api/skills/-/publish`\n}\n\nexport const publishSkill = async (publishSkillInput: PublishSkillInput, options?: RequestInit): Promise<publishSkillResponse> => {\n \n return customFetch<publishSkillResponse>(getPublishSkillUrl(),\n { \n ...options,\n method: 'POST',\n headers: { 'Content-Type': 'application/json', ...options?.headers },\n body: JSON.stringify(\n publishSkillInput,)\n }\n);}\n \n\n\n/**\n * Mark a skill version as deprecated with a message. Deprecated versions are still downloadable but show warnings to users.\n * @summary Deprecate skill version\n */\nexport type deprecateSkillVersionResponse200 = {\n data: SkillVersion\n status: 200\n}\n\nexport type deprecateSkillVersionResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type deprecateSkillVersionResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type deprecateSkillVersionResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type deprecateSkillVersionResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type deprecateSkillVersionResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type deprecateSkillVersionResponseSuccess = (deprecateSkillVersionResponse200) & {\n headers: Headers;\n};\nexport type deprecateSkillVersionResponseError = (deprecateSkillVersionResponse400 | deprecateSkillVersionResponse401 | deprecateSkillVersionResponse403 | deprecateSkillVersionResponse404 | deprecateSkillVersionResponse500) & {\n headers: Headers;\n};\n\nexport type deprecateSkillVersionResponse = (deprecateSkillVersionResponseSuccess | deprecateSkillVersionResponseError)\n\nexport const getDeprecateSkillVersionUrl = (username: Username,\n name: SkillName,\n version: Semver,) => {\n\n\n \n\n return `/api/skills/@user/${username}/${name}/versions/${version}/deprecate`\n}\n\nexport const deprecateSkillVersion = async (username: Username,\n name: SkillName,\n version: Semver,\n deprecateVersionInput: DeprecateVersionInput, options?: RequestInit): Promise<deprecateSkillVersionResponse> => {\n \n return customFetch<deprecateSkillVersionResponse>(getDeprecateSkillVersionUrl(username,name,version),\n { \n ...options,\n method: 'POST',\n headers: { 'Content-Type': 'application/json', ...options?.headers },\n body: JSON.stringify(\n deprecateVersionInput,)\n }\n);}\n \n\n\n/**\n * Remove the deprecation status from a skill version.\n * @summary Remove deprecation from skill version\n */\nexport type undeprecateSkillVersionResponse200 = {\n data: SkillVersion\n status: 200\n}\n\nexport type undeprecateSkillVersionResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type undeprecateSkillVersionResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type undeprecateSkillVersionResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type undeprecateSkillVersionResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type undeprecateSkillVersionResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type undeprecateSkillVersionResponseSuccess = (undeprecateSkillVersionResponse200) & {\n headers: Headers;\n};\nexport type undeprecateSkillVersionResponseError = (undeprecateSkillVersionResponse400 | undeprecateSkillVersionResponse401 | undeprecateSkillVersionResponse403 | undeprecateSkillVersionResponse404 | undeprecateSkillVersionResponse500) & {\n headers: Headers;\n};\n\nexport type undeprecateSkillVersionResponse = (undeprecateSkillVersionResponseSuccess | undeprecateSkillVersionResponseError)\n\nexport const getUndeprecateSkillVersionUrl = (username: Username,\n name: SkillName,\n version: Semver,) => {\n\n\n \n\n return `/api/skills/@user/${username}/${name}/versions/${version}/deprecate`\n}\n\nexport const undeprecateSkillVersion = async (username: Username,\n name: SkillName,\n version: Semver, options?: RequestInit): Promise<undeprecateSkillVersionResponse> => {\n \n return customFetch<undeprecateSkillVersionResponse>(getUndeprecateSkillVersionUrl(username,name,version),\n { \n ...options,\n method: 'DELETE'\n \n \n }\n);}\n \n\n\n/**\n * Change the visibility of a skill. Private packages can be made public, but public packages cannot be made private (this is irreversible, like npm).\n * @summary Change skill visibility\n */\nexport type changeSkillAccessResponse200 = {\n data: ChangeAccessResponse\n status: 200\n}\n\nexport type changeSkillAccessResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type changeSkillAccessResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type changeSkillAccessResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type changeSkillAccessResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type changeSkillAccessResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type changeSkillAccessResponseSuccess = (changeSkillAccessResponse200) & {\n headers: Headers;\n};\nexport type changeSkillAccessResponseError = (changeSkillAccessResponse400 | changeSkillAccessResponse401 | changeSkillAccessResponse403 | changeSkillAccessResponse404 | changeSkillAccessResponse500) & {\n headers: Headers;\n};\n\nexport type changeSkillAccessResponse = (changeSkillAccessResponseSuccess | changeSkillAccessResponseError)\n\nexport const getChangeSkillAccessUrl = (username: Username,\n name: SkillName,) => {\n\n\n \n\n return `/api/skills/@user/${username}/${name}/access`\n}\n\nexport const changeSkillAccess = async (username: Username,\n name: SkillName,\n changeAccessInput: ChangeAccessInput, options?: RequestInit): Promise<changeSkillAccessResponse> => {\n \n return customFetch<changeSkillAccessResponse>(getChangeSkillAccessUrl(username,name),\n { \n ...options,\n method: 'POST',\n headers: { 'Content-Type': 'application/json', ...options?.headers },\n body: JSON.stringify(\n changeAccessInput,)\n }\n);}\n \n\n\n/**\n * List skills published under an organization. Org members see team + public skills. Others see only public.\n * @summary List organization skills\n */\nexport type listOrgSkillsResponse200 = {\n data: SkillListResponse\n status: 200\n}\n\nexport type listOrgSkillsResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type listOrgSkillsResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type listOrgSkillsResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type listOrgSkillsResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type listOrgSkillsResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type listOrgSkillsResponseSuccess = (listOrgSkillsResponse200) & {\n headers: Headers;\n};\nexport type listOrgSkillsResponseError = (listOrgSkillsResponse400 | listOrgSkillsResponse401 | listOrgSkillsResponse403 | listOrgSkillsResponse404 | listOrgSkillsResponse500) & {\n headers: Headers;\n};\n\nexport type listOrgSkillsResponse = (listOrgSkillsResponseSuccess | listOrgSkillsResponseError)\n\nexport const getListOrgSkillsUrl = (orgname: Username,) => {\n\n\n \n\n return `/api/skills/@org/${orgname}`\n}\n\nexport const listOrgSkills = async (orgname: Username, options?: RequestInit): Promise<listOrgSkillsResponse> => {\n \n return customFetch<listOrgSkillsResponse>(getListOrgSkillsUrl(orgname),\n { \n ...options,\n method: 'GET'\n \n \n }\n);}\n \n\n\n/**\n * Get a specific skill published under an organization.\n * @summary Get organization skill\n */\nexport type getOrgSkillResponse200 = {\n data: SkillDetailResponse\n status: 200\n}\n\nexport type getOrgSkillResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type getOrgSkillResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type getOrgSkillResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type getOrgSkillResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type getOrgSkillResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type getOrgSkillResponseSuccess = (getOrgSkillResponse200) & {\n headers: Headers;\n};\nexport type getOrgSkillResponseError = (getOrgSkillResponse400 | getOrgSkillResponse401 | getOrgSkillResponse403 | getOrgSkillResponse404 | getOrgSkillResponse500) & {\n headers: Headers;\n};\n\nexport type getOrgSkillResponse = (getOrgSkillResponseSuccess | getOrgSkillResponseError)\n\nexport const getGetOrgSkillUrl = (orgname: Username,\n name: SkillName,) => {\n\n\n \n\n return `/api/skills/@org/${orgname}/${name}`\n}\n\nexport const getOrgSkill = async (orgname: Username,\n name: SkillName, options?: RequestInit): Promise<getOrgSkillResponse> => {\n \n return customFetch<getOrgSkillResponse>(getGetOrgSkillUrl(orgname,name),\n { \n ...options,\n method: 'GET'\n \n \n }\n);}\n \n\n\n/**\n * Delete an organization skill and all its versions. Requires admin or owner role.\n * @summary Delete org skill\n */\nexport type deleteOrgSkillResponse200 = {\n data: SuccessResponse & unknown\n status: 200\n}\n\nexport type deleteOrgSkillResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type deleteOrgSkillResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type deleteOrgSkillResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type deleteOrgSkillResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type deleteOrgSkillResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type deleteOrgSkillResponseSuccess = (deleteOrgSkillResponse200) & {\n headers: Headers;\n};\nexport type deleteOrgSkillResponseError = (deleteOrgSkillResponse400 | deleteOrgSkillResponse401 | deleteOrgSkillResponse403 | deleteOrgSkillResponse404 | deleteOrgSkillResponse500) & {\n headers: Headers;\n};\n\nexport type deleteOrgSkillResponse = (deleteOrgSkillResponseSuccess | deleteOrgSkillResponseError)\n\nexport const getDeleteOrgSkillUrl = (orgname: Username,\n name: SkillName,) => {\n\n\n \n\n return `/api/skills/@org/${orgname}/${name}`\n}\n\nexport const deleteOrgSkill = async (orgname: Username,\n name: SkillName, options?: RequestInit): Promise<deleteOrgSkillResponse> => {\n \n return customFetch<deleteOrgSkillResponse>(getDeleteOrgSkillUrl(orgname,name),\n { \n ...options,\n method: 'DELETE'\n \n \n }\n);}\n \n\n\n/**\n * List all versions of an organization skill.\n * @summary List org skill versions\n */\nexport type listOrgSkillVersionsResponse200 = {\n data: SkillVersion[]\n status: 200\n}\n\nexport type listOrgSkillVersionsResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type listOrgSkillVersionsResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type listOrgSkillVersionsResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type listOrgSkillVersionsResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type listOrgSkillVersionsResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type listOrgSkillVersionsResponseSuccess = (listOrgSkillVersionsResponse200) & {\n headers: Headers;\n};\nexport type listOrgSkillVersionsResponseError = (listOrgSkillVersionsResponse400 | listOrgSkillVersionsResponse401 | listOrgSkillVersionsResponse403 | listOrgSkillVersionsResponse404 | listOrgSkillVersionsResponse500) & {\n headers: Headers;\n};\n\nexport type listOrgSkillVersionsResponse = (listOrgSkillVersionsResponseSuccess | listOrgSkillVersionsResponseError)\n\nexport const getListOrgSkillVersionsUrl = (orgname: Username,\n name: SkillName,) => {\n\n\n \n\n return `/api/skills/@org/${orgname}/${name}/versions`\n}\n\nexport const listOrgSkillVersions = async (orgname: Username,\n name: SkillName, options?: RequestInit): Promise<listOrgSkillVersionsResponse> => {\n \n return customFetch<listOrgSkillVersionsResponse>(getListOrgSkillVersionsUrl(orgname,name),\n { \n ...options,\n method: 'GET'\n \n \n }\n);}\n \n\n\n/**\n * Get metadata for a specific version of an organization skill.\n * @summary Get org skill version\n */\nexport type getOrgSkillVersionResponse200 = {\n data: SkillVersionWithDownload\n status: 200\n}\n\nexport type getOrgSkillVersionResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type getOrgSkillVersionResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type getOrgSkillVersionResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type getOrgSkillVersionResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type getOrgSkillVersionResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type getOrgSkillVersionResponseSuccess = (getOrgSkillVersionResponse200) & {\n headers: Headers;\n};\nexport type getOrgSkillVersionResponseError = (getOrgSkillVersionResponse400 | getOrgSkillVersionResponse401 | getOrgSkillVersionResponse403 | getOrgSkillVersionResponse404 | getOrgSkillVersionResponse500) & {\n headers: Headers;\n};\n\nexport type getOrgSkillVersionResponse = (getOrgSkillVersionResponseSuccess | getOrgSkillVersionResponseError)\n\nexport const getGetOrgSkillVersionUrl = (orgname: Username,\n name: SkillName,\n version: string,) => {\n\n\n \n\n return `/api/skills/@org/${orgname}/${name}/versions/${version}`\n}\n\nexport const getOrgSkillVersion = async (orgname: Username,\n name: SkillName,\n version: string, options?: RequestInit): Promise<getOrgSkillVersionResponse> => {\n \n return customFetch<getOrgSkillVersionResponse>(getGetOrgSkillVersionUrl(orgname,name,version),\n { \n ...options,\n method: 'GET'\n \n \n }\n);}\n \n\n\n/**\n * Download the tarball for an organization skill version. Team skills require org membership. Private skills require the publisher or admin.\n * @summary Download org skill version\n */\nexport type downloadOrgSkillVersionResponse302 = {\n data: void\n status: 302\n}\n\nexport type downloadOrgSkillVersionResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type downloadOrgSkillVersionResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type downloadOrgSkillVersionResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type downloadOrgSkillVersionResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type downloadOrgSkillVersionResponse500 = {\n data: ApiError\n status: 500\n}\n\n;\nexport type downloadOrgSkillVersionResponseError = (downloadOrgSkillVersionResponse302 | downloadOrgSkillVersionResponse400 | downloadOrgSkillVersionResponse401 | downloadOrgSkillVersionResponse403 | downloadOrgSkillVersionResponse404 | downloadOrgSkillVersionResponse500) & {\n headers: Headers;\n};\n\nexport type downloadOrgSkillVersionResponse = (downloadOrgSkillVersionResponseError)\n\nexport const getDownloadOrgSkillVersionUrl = (orgname: Username,\n name: SkillName,\n version: string,) => {\n\n\n \n\n return `/api/skills/@org/${orgname}/${name}/versions/${version}/download`\n}\n\nexport const downloadOrgSkillVersion = async (orgname: Username,\n name: SkillName,\n version: string, options?: RequestInit): Promise<downloadOrgSkillVersionResponse> => {\n \n return customFetch<downloadOrgSkillVersionResponse>(getDownloadOrgSkillVersionUrl(orgname,name,version),\n { \n ...options,\n method: 'GET'\n \n \n }\n);}\n \n\n\n/**\n * Publish a skill under an organization namespace. Requires admin or owner role.\n * @summary Publish org skill\n */\nexport type publishOrgSkillResponse200 = {\n data: PublishSkillResponse\n status: 200\n}\n\nexport type publishOrgSkillResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type publishOrgSkillResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type publishOrgSkillResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type publishOrgSkillResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type publishOrgSkillResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type publishOrgSkillResponseSuccess = (publishOrgSkillResponse200) & {\n headers: Headers;\n};\nexport type publishOrgSkillResponseError = (publishOrgSkillResponse400 | publishOrgSkillResponse401 | publishOrgSkillResponse403 | publishOrgSkillResponse404 | publishOrgSkillResponse500) & {\n headers: Headers;\n};\n\nexport type publishOrgSkillResponse = (publishOrgSkillResponseSuccess | publishOrgSkillResponseError)\n\nexport const getPublishOrgSkillUrl = (orgname: Username,) => {\n\n\n \n\n return `/api/skills/@org/${orgname}/publish`\n}\n\nexport const publishOrgSkill = async (orgname: Username,\n publishSkillInput: PublishSkillInput, options?: RequestInit): Promise<publishOrgSkillResponse> => {\n \n return customFetch<publishOrgSkillResponse>(getPublishOrgSkillUrl(orgname),\n { \n ...options,\n method: 'POST',\n headers: { 'Content-Type': 'application/json', ...options?.headers },\n body: JSON.stringify(\n publishSkillInput,)\n }\n);}\n \n\n\n/**\n * Change the visibility of an org skill. Requires admin or owner role.\n * @summary Change org skill visibility\n */\nexport type changeOrgSkillAccessResponse200 = {\n data: ChangeAccessResponse\n status: 200\n}\n\nexport type changeOrgSkillAccessResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type changeOrgSkillAccessResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type changeOrgSkillAccessResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type changeOrgSkillAccessResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type changeOrgSkillAccessResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type changeOrgSkillAccessResponseSuccess = (changeOrgSkillAccessResponse200) & {\n headers: Headers;\n};\nexport type changeOrgSkillAccessResponseError = (changeOrgSkillAccessResponse400 | changeOrgSkillAccessResponse401 | changeOrgSkillAccessResponse403 | changeOrgSkillAccessResponse404 | changeOrgSkillAccessResponse500) & {\n headers: Headers;\n};\n\nexport type changeOrgSkillAccessResponse = (changeOrgSkillAccessResponseSuccess | changeOrgSkillAccessResponseError)\n\nexport const getChangeOrgSkillAccessUrl = (orgname: Username,\n name: SkillName,) => {\n\n\n \n\n return `/api/skills/@org/${orgname}/${name}/access`\n}\n\nexport const changeOrgSkillAccess = async (orgname: Username,\n name: SkillName,\n changeAccessInput: ChangeAccessInput, options?: RequestInit): Promise<changeOrgSkillAccessResponse> => {\n \n return customFetch<changeOrgSkillAccessResponse>(getChangeOrgSkillAccessUrl(orgname,name),\n { \n ...options,\n method: 'POST',\n headers: { 'Content-Type': 'application/json', ...options?.headers },\n body: JSON.stringify(\n changeAccessInput,)\n }\n);}\n \n\n\n/**\n * Get total download count for an org skill.\n * @summary Get org skill download statistics\n */\nexport type getOrgSkillStatsResponse200 = {\n data: SkillStatsResponse\n status: 200\n}\n\nexport type getOrgSkillStatsResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type getOrgSkillStatsResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type getOrgSkillStatsResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type getOrgSkillStatsResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type getOrgSkillStatsResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type getOrgSkillStatsResponseSuccess = (getOrgSkillStatsResponse200) & {\n headers: Headers;\n};\nexport type getOrgSkillStatsResponseError = (getOrgSkillStatsResponse400 | getOrgSkillStatsResponse401 | getOrgSkillStatsResponse403 | getOrgSkillStatsResponse404 | getOrgSkillStatsResponse500) & {\n headers: Headers;\n};\n\nexport type getOrgSkillStatsResponse = (getOrgSkillStatsResponseSuccess | getOrgSkillStatsResponseError)\n\nexport const getGetOrgSkillStatsUrl = (orgname: Username,\n name: SkillName,) => {\n\n\n \n\n return `/api/skills/@org/${orgname}/${name}/stats`\n}\n\nexport const getOrgSkillStats = async (orgname: Username,\n name: SkillName, options?: RequestInit): Promise<getOrgSkillStatsResponse> => {\n \n return customFetch<getOrgSkillStatsResponse>(getGetOrgSkillStatsUrl(orgname,name),\n { \n ...options,\n method: 'GET'\n \n \n }\n);}\n \n\n\n/**\n * Get a user's public profile and their published public skills.\n * @summary Get user profile with skills\n */\nexport type getUserProfileResponse200 = {\n data: ProfileResponse\n status: 200\n}\n\nexport type getUserProfileResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type getUserProfileResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type getUserProfileResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type getUserProfileResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type getUserProfileResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type getUserProfileResponseSuccess = (getUserProfileResponse200) & {\n headers: Headers;\n};\nexport type getUserProfileResponseError = (getUserProfileResponse400 | getUserProfileResponse401 | getUserProfileResponse403 | getUserProfileResponse404 | getUserProfileResponse500) & {\n headers: Headers;\n};\n\nexport type getUserProfileResponse = (getUserProfileResponseSuccess | getUserProfileResponseError)\n\nexport const getGetUserProfileUrl = (username: Username,\n params?: GetUserProfileParams,) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n \n if (value !== undefined) {\n normalizedParams.append(key, value === null ? 'null' : value.toString())\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0 ? `/api/skills/-/profile/user/${username}?${stringifiedParams}` : `/api/skills/-/profile/user/${username}`\n}\n\nexport const getUserProfile = async (username: Username,\n params?: GetUserProfileParams, options?: RequestInit): Promise<getUserProfileResponse> => {\n \n return customFetch<getUserProfileResponse>(getGetUserProfileUrl(username,params),\n { \n ...options,\n method: 'GET'\n \n \n }\n);}\n \n\n\n/**\n * Get all public skills indexed from a GitHub owner across all their repos.\n * @summary Get GitHub owner profile with skills\n */\nexport type getGithubOwnerProfileResponse200 = {\n data: ProfileResponse\n status: 200\n}\n\nexport type getGithubOwnerProfileResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type getGithubOwnerProfileResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type getGithubOwnerProfileResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type getGithubOwnerProfileResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type getGithubOwnerProfileResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type getGithubOwnerProfileResponseSuccess = (getGithubOwnerProfileResponse200) & {\n headers: Headers;\n};\nexport type getGithubOwnerProfileResponseError = (getGithubOwnerProfileResponse400 | getGithubOwnerProfileResponse401 | getGithubOwnerProfileResponse403 | getGithubOwnerProfileResponse404 | getGithubOwnerProfileResponse500) & {\n headers: Headers;\n};\n\nexport type getGithubOwnerProfileResponse = (getGithubOwnerProfileResponseSuccess | getGithubOwnerProfileResponseError)\n\nexport const getGetGithubOwnerProfileUrl = (owner: Username,\n params?: GetGithubOwnerProfileParams,) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n \n if (value !== undefined) {\n normalizedParams.append(key, value === null ? 'null' : value.toString())\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0 ? `/api/skills/-/profile/github/${owner}?${stringifiedParams}` : `/api/skills/-/profile/github/${owner}`\n}\n\nexport const getGithubOwnerProfile = async (owner: Username,\n params?: GetGithubOwnerProfileParams, options?: RequestInit): Promise<getGithubOwnerProfileResponse> => {\n \n return customFetch<getGithubOwnerProfileResponse>(getGetGithubOwnerProfileUrl(owner,params),\n { \n ...options,\n method: 'GET'\n \n \n }\n);}\n \n\n\n/**\n * Get all public skills indexed from a specific GitHub repo.\n * @summary Get GitHub repo profile with skills\n */\nexport type getGithubRepoProfileResponse200 = {\n data: ProfileResponse\n status: 200\n}\n\nexport type getGithubRepoProfileResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type getGithubRepoProfileResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type getGithubRepoProfileResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type getGithubRepoProfileResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type getGithubRepoProfileResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type getGithubRepoProfileResponseSuccess = (getGithubRepoProfileResponse200) & {\n headers: Headers;\n};\nexport type getGithubRepoProfileResponseError = (getGithubRepoProfileResponse400 | getGithubRepoProfileResponse401 | getGithubRepoProfileResponse403 | getGithubRepoProfileResponse404 | getGithubRepoProfileResponse500) & {\n headers: Headers;\n};\n\nexport type getGithubRepoProfileResponse = (getGithubRepoProfileResponseSuccess | getGithubRepoProfileResponseError)\n\nexport const getGetGithubRepoProfileUrl = (owner: Username,\n repo: string,\n params?: GetGithubRepoProfileParams,) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n \n if (value !== undefined) {\n normalizedParams.append(key, value === null ? 'null' : value.toString())\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0 ? `/api/skills/-/profile/github/${owner}/${repo}?${stringifiedParams}` : `/api/skills/-/profile/github/${owner}/${repo}`\n}\n\nexport const getGithubRepoProfile = async (owner: Username,\n repo: string,\n params?: GetGithubRepoProfileParams, options?: RequestInit): Promise<getGithubRepoProfileResponse> => {\n \n return customFetch<getGithubRepoProfileResponse>(getGetGithubRepoProfileUrl(owner,repo,params),\n { \n ...options,\n method: 'GET'\n \n \n }\n);}\n \n\n\n/**\n * List all indexed skills from a GitHub repository.\n * @summary List skills in a GitHub repo\n */\nexport type listGithubRepoSkillsResponse200 = {\n data: SkillListResponse\n status: 200\n}\n\nexport type listGithubRepoSkillsResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type listGithubRepoSkillsResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type listGithubRepoSkillsResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type listGithubRepoSkillsResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type listGithubRepoSkillsResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type listGithubRepoSkillsResponseSuccess = (listGithubRepoSkillsResponse200) & {\n headers: Headers;\n};\nexport type listGithubRepoSkillsResponseError = (listGithubRepoSkillsResponse400 | listGithubRepoSkillsResponse401 | listGithubRepoSkillsResponse403 | listGithubRepoSkillsResponse404 | listGithubRepoSkillsResponse500) & {\n headers: Headers;\n};\n\nexport type listGithubRepoSkillsResponse = (listGithubRepoSkillsResponseSuccess | listGithubRepoSkillsResponseError)\n\nexport const getListGithubRepoSkillsUrl = (owner: Username,\n repo: string,) => {\n\n\n \n\n return `/api/skills/@github/${owner}/${repo}`\n}\n\nexport const listGithubRepoSkills = async (owner: Username,\n repo: string, options?: RequestInit): Promise<listGithubRepoSkillsResponse> => {\n \n return customFetch<listGithubRepoSkillsResponse>(getListGithubRepoSkillsUrl(owner,repo),\n { \n ...options,\n method: 'GET'\n \n \n }\n);}\n \n\n\n/**\n * Get details for a specific indexed GitHub skill.\n * @summary Get GitHub skill\n */\nexport type getGithubSkillResponse200 = {\n data: SkillDetailResponse\n status: 200\n}\n\nexport type getGithubSkillResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type getGithubSkillResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type getGithubSkillResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type getGithubSkillResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type getGithubSkillResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type getGithubSkillResponseSuccess = (getGithubSkillResponse200) & {\n headers: Headers;\n};\nexport type getGithubSkillResponseError = (getGithubSkillResponse400 | getGithubSkillResponse401 | getGithubSkillResponse403 | getGithubSkillResponse404 | getGithubSkillResponse500) & {\n headers: Headers;\n};\n\nexport type getGithubSkillResponse = (getGithubSkillResponseSuccess | getGithubSkillResponseError)\n\nexport const getGetGithubSkillUrl = (owner: Username,\n repo: string,\n name: SkillName,) => {\n\n\n \n\n return `/api/skills/@github/${owner}/${repo}/${name}`\n}\n\nexport const getGithubSkill = async (owner: Username,\n repo: string,\n name: SkillName, options?: RequestInit): Promise<getGithubSkillResponse> => {\n \n return customFetch<getGithubSkillResponse>(getGetGithubSkillUrl(owner,repo,name),\n { \n ...options,\n method: 'GET'\n \n \n }\n);}\n \n\n\n/**\n * List all versions for an indexed GitHub skill.\n * @summary List GitHub skill versions\n */\nexport type listGithubSkillVersionsResponse200 = {\n data: SkillVersion[]\n status: 200\n}\n\nexport type listGithubSkillVersionsResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type listGithubSkillVersionsResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type listGithubSkillVersionsResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type listGithubSkillVersionsResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type listGithubSkillVersionsResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type listGithubSkillVersionsResponseSuccess = (listGithubSkillVersionsResponse200) & {\n headers: Headers;\n};\nexport type listGithubSkillVersionsResponseError = (listGithubSkillVersionsResponse400 | listGithubSkillVersionsResponse401 | listGithubSkillVersionsResponse403 | listGithubSkillVersionsResponse404 | listGithubSkillVersionsResponse500) & {\n headers: Headers;\n};\n\nexport type listGithubSkillVersionsResponse = (listGithubSkillVersionsResponseSuccess | listGithubSkillVersionsResponseError)\n\nexport const getListGithubSkillVersionsUrl = (owner: Username,\n repo: string,\n name: SkillName,) => {\n\n\n \n\n return `/api/skills/@github/${owner}/${repo}/${name}/versions`\n}\n\nexport const listGithubSkillVersions = async (owner: Username,\n repo: string,\n name: SkillName, options?: RequestInit): Promise<listGithubSkillVersionsResponse> => {\n \n return customFetch<listGithubSkillVersionsResponse>(getListGithubSkillVersionsUrl(owner,repo,name),\n { \n ...options,\n method: 'GET'\n \n \n }\n);}\n \n\n\n/**\n * Get metadata for a specific version of an indexed GitHub skill.\n * @summary Get GitHub skill version\n */\nexport type getGithubSkillVersionResponse200 = {\n data: SkillVersionWithDownload\n status: 200\n}\n\nexport type getGithubSkillVersionResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type getGithubSkillVersionResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type getGithubSkillVersionResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type getGithubSkillVersionResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type getGithubSkillVersionResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type getGithubSkillVersionResponseSuccess = (getGithubSkillVersionResponse200) & {\n headers: Headers;\n};\nexport type getGithubSkillVersionResponseError = (getGithubSkillVersionResponse400 | getGithubSkillVersionResponse401 | getGithubSkillVersionResponse403 | getGithubSkillVersionResponse404 | getGithubSkillVersionResponse500) & {\n headers: Headers;\n};\n\nexport type getGithubSkillVersionResponse = (getGithubSkillVersionResponseSuccess | getGithubSkillVersionResponseError)\n\nexport const getGetGithubSkillVersionUrl = (owner: Username,\n repo: string,\n name: SkillName,\n version: string,) => {\n\n\n \n\n return `/api/skills/@github/${owner}/${repo}/${name}/versions/${version}`\n}\n\nexport const getGithubSkillVersion = async (owner: Username,\n repo: string,\n name: SkillName,\n version: string, options?: RequestInit): Promise<getGithubSkillVersionResponse> => {\n \n return customFetch<getGithubSkillVersionResponse>(getGetGithubSkillVersionUrl(owner,repo,name,version),\n { \n ...options,\n method: 'GET'\n \n \n }\n);}\n \n\n\n/**\n * Download the tarball for a specific version. Redirects to presigned URL.\n * @summary Download GitHub skill version\n */\nexport type downloadGithubSkillVersionResponse302 = {\n data: void\n status: 302\n}\n\nexport type downloadGithubSkillVersionResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type downloadGithubSkillVersionResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type downloadGithubSkillVersionResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type downloadGithubSkillVersionResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type downloadGithubSkillVersionResponse500 = {\n data: ApiError\n status: 500\n}\n\n;\nexport type downloadGithubSkillVersionResponseError = (downloadGithubSkillVersionResponse302 | downloadGithubSkillVersionResponse400 | downloadGithubSkillVersionResponse401 | downloadGithubSkillVersionResponse403 | downloadGithubSkillVersionResponse404 | downloadGithubSkillVersionResponse500) & {\n headers: Headers;\n};\n\nexport type downloadGithubSkillVersionResponse = (downloadGithubSkillVersionResponseError)\n\nexport const getDownloadGithubSkillVersionUrl = (owner: Username,\n repo: string,\n name: SkillName,\n version: string,) => {\n\n\n \n\n return `/api/skills/@github/${owner}/${repo}/${name}/versions/${version}/download`\n}\n\nexport const downloadGithubSkillVersion = async (owner: Username,\n repo: string,\n name: SkillName,\n version: string, options?: RequestInit): Promise<downloadGithubSkillVersionResponse> => {\n \n return customFetch<downloadGithubSkillVersionResponse>(getDownloadGithubSkillVersionUrl(owner,repo,name,version),\n { \n ...options,\n method: 'GET'\n \n \n }\n);}\n \n\n\n/**\n * Get download statistics for an indexed GitHub skill.\n * @summary Get GitHub skill stats\n */\nexport type getGithubSkillStatsResponse200 = {\n data: SkillStatsResponse\n status: 200\n}\n\nexport type getGithubSkillStatsResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type getGithubSkillStatsResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type getGithubSkillStatsResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type getGithubSkillStatsResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type getGithubSkillStatsResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type getGithubSkillStatsResponseSuccess = (getGithubSkillStatsResponse200) & {\n headers: Headers;\n};\nexport type getGithubSkillStatsResponseError = (getGithubSkillStatsResponse400 | getGithubSkillStatsResponse401 | getGithubSkillStatsResponse403 | getGithubSkillStatsResponse404 | getGithubSkillStatsResponse500) & {\n headers: Headers;\n};\n\nexport type getGithubSkillStatsResponse = (getGithubSkillStatsResponseSuccess | getGithubSkillStatsResponseError)\n\nexport const getGetGithubSkillStatsUrl = (owner: Username,\n repo: string,\n name: SkillName,) => {\n\n\n \n\n return `/api/skills/@github/${owner}/${repo}/${name}/stats`\n}\n\nexport const getGithubSkillStats = async (owner: Username,\n repo: string,\n name: SkillName, options?: RequestInit): Promise<getGithubSkillStatsResponse> => {\n \n return customFetch<getGithubSkillStatsResponse>(getGetGithubSkillStatsUrl(owner,repo,name),\n { \n ...options,\n method: 'GET'\n \n \n }\n);}\n \n\n\n/**\n * Add a GitHub repository for skill indexing (admin only).\n * @summary Add repo to index\n */\nexport type addIndexedRepoResponse200 = {\n data: IndexedRepo\n status: 200\n}\n\nexport type addIndexedRepoResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type addIndexedRepoResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type addIndexedRepoResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type addIndexedRepoResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type addIndexedRepoResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type addIndexedRepoResponseSuccess = (addIndexedRepoResponse200) & {\n headers: Headers;\n};\nexport type addIndexedRepoResponseError = (addIndexedRepoResponse400 | addIndexedRepoResponse401 | addIndexedRepoResponse403 | addIndexedRepoResponse404 | addIndexedRepoResponse500) & {\n headers: Headers;\n};\n\nexport type addIndexedRepoResponse = (addIndexedRepoResponseSuccess | addIndexedRepoResponseError)\n\nexport const getAddIndexedRepoUrl = () => {\n\n\n \n\n return `/api/skills/-/indexer/repos`\n}\n\nexport const addIndexedRepo = async (addRepoInput: AddRepoInput, options?: RequestInit): Promise<addIndexedRepoResponse> => {\n \n return customFetch<addIndexedRepoResponse>(getAddIndexedRepoUrl(),\n { \n ...options,\n method: 'POST',\n headers: { 'Content-Type': 'application/json', ...options?.headers },\n body: JSON.stringify(\n addRepoInput,)\n }\n);}\n \n\n\n/**\n * List all GitHub repositories being indexed (admin only).\n * @summary List indexed repos\n */\nexport type listIndexedReposResponse200 = {\n data: IndexedRepo[]\n status: 200\n}\n\nexport type listIndexedReposResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type listIndexedReposResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type listIndexedReposResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type listIndexedReposResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type listIndexedReposResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type listIndexedReposResponseSuccess = (listIndexedReposResponse200) & {\n headers: Headers;\n};\nexport type listIndexedReposResponseError = (listIndexedReposResponse400 | listIndexedReposResponse401 | listIndexedReposResponse403 | listIndexedReposResponse404 | listIndexedReposResponse500) & {\n headers: Headers;\n};\n\nexport type listIndexedReposResponse = (listIndexedReposResponseSuccess | listIndexedReposResponseError)\n\nexport const getListIndexedReposUrl = () => {\n\n\n \n\n return `/api/skills/-/indexer/repos`\n}\n\nexport const listIndexedRepos = async ( options?: RequestInit): Promise<listIndexedReposResponse> => {\n \n return customFetch<listIndexedReposResponse>(getListIndexedReposUrl(),\n { \n ...options,\n method: 'GET'\n \n \n }\n);}\n \n\n\n/**\n * Trigger async indexing for a specific GitHub repository (admin only). Returns a job ID for progress tracking.\n * @summary Run indexer for a specific repo\n */\nexport type runIndexerForRepoResponse200 = {\n data: JobEnqueued | IndexResult\n status: 200\n}\n\nexport type runIndexerForRepoResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type runIndexerForRepoResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type runIndexerForRepoResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type runIndexerForRepoResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type runIndexerForRepoResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type runIndexerForRepoResponseSuccess = (runIndexerForRepoResponse200) & {\n headers: Headers;\n};\nexport type runIndexerForRepoResponseError = (runIndexerForRepoResponse400 | runIndexerForRepoResponse401 | runIndexerForRepoResponse403 | runIndexerForRepoResponse404 | runIndexerForRepoResponse500) & {\n headers: Headers;\n};\n\nexport type runIndexerForRepoResponse = (runIndexerForRepoResponseSuccess | runIndexerForRepoResponseError)\n\nexport const getRunIndexerForRepoUrl = (id: string,) => {\n\n\n \n\n return `/api/skills/-/indexer/repos/${id}/run`\n}\n\nexport const runIndexerForRepo = async (id: string, options?: RequestInit): Promise<runIndexerForRepoResponse> => {\n \n return customFetch<runIndexerForRepoResponse>(getRunIndexerForRepoUrl(id),\n { \n ...options,\n method: 'POST'\n \n \n }\n);}\n \n\n\n/**\n * Trigger async indexing for all tracked GitHub repositories (admin only).\n * @summary Re-index all repos\n */\nexport type runIndexerAllResponse200 = {\n data: JobEnqueued[] | IndexResult[]\n status: 200\n}\n\nexport type runIndexerAllResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type runIndexerAllResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type runIndexerAllResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type runIndexerAllResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type runIndexerAllResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type runIndexerAllResponseSuccess = (runIndexerAllResponse200) & {\n headers: Headers;\n};\nexport type runIndexerAllResponseError = (runIndexerAllResponse400 | runIndexerAllResponse401 | runIndexerAllResponse403 | runIndexerAllResponse404 | runIndexerAllResponse500) & {\n headers: Headers;\n};\n\nexport type runIndexerAllResponse = (runIndexerAllResponseSuccess | runIndexerAllResponseError)\n\nexport const getRunIndexerAllUrl = () => {\n\n\n \n\n return `/api/skills/-/indexer/run`\n}\n\nexport const runIndexerAll = async ( options?: RequestInit): Promise<runIndexerAllResponse> => {\n \n return customFetch<runIndexerAllResponse>(getRunIndexerAllUrl(),\n { \n ...options,\n method: 'POST'\n \n \n }\n);}\n \n\n\n/**\n * Remove a GitHub repository from indexing (admin only). Does not delete already-indexed skills.\n * @summary Remove indexed repo\n */\nexport type deleteIndexedRepoResponse200 = {\n data: DeleteIndexedRepo200\n status: 200\n}\n\nexport type deleteIndexedRepoResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type deleteIndexedRepoResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type deleteIndexedRepoResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type deleteIndexedRepoResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type deleteIndexedRepoResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type deleteIndexedRepoResponseSuccess = (deleteIndexedRepoResponse200) & {\n headers: Headers;\n};\nexport type deleteIndexedRepoResponseError = (deleteIndexedRepoResponse400 | deleteIndexedRepoResponse401 | deleteIndexedRepoResponse403 | deleteIndexedRepoResponse404 | deleteIndexedRepoResponse500) & {\n headers: Headers;\n};\n\nexport type deleteIndexedRepoResponse = (deleteIndexedRepoResponseSuccess | deleteIndexedRepoResponseError)\n\nexport const getDeleteIndexedRepoUrl = (id: string,) => {\n\n\n \n\n return `/api/skills/-/indexer/repos/${id}`\n}\n\nexport const deleteIndexedRepo = async (id: string, options?: RequestInit): Promise<deleteIndexedRepoResponse> => {\n \n return customFetch<deleteIndexedRepoResponse>(getDeleteIndexedRepoUrl(id),\n { \n ...options,\n method: 'DELETE'\n \n \n }\n);}\n \n\n\n/**\n * Perform bulk operations on the indexer: index pending/failed repos, reset stuck statuses, purge stale jobs (admin only).\n * @summary Perform bulk indexer action\n */\nexport type indexerBulkActionResponse200 = {\n data: BulkActionResult\n status: 200\n}\n\nexport type indexerBulkActionResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type indexerBulkActionResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type indexerBulkActionResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type indexerBulkActionResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type indexerBulkActionResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type indexerBulkActionResponseSuccess = (indexerBulkActionResponse200) & {\n headers: Headers;\n};\nexport type indexerBulkActionResponseError = (indexerBulkActionResponse400 | indexerBulkActionResponse401 | indexerBulkActionResponse403 | indexerBulkActionResponse404 | indexerBulkActionResponse500) & {\n headers: Headers;\n};\n\nexport type indexerBulkActionResponse = (indexerBulkActionResponseSuccess | indexerBulkActionResponseError)\n\nexport const getIndexerBulkActionUrl = () => {\n\n\n \n\n return `/api/skills/-/indexer/bulk-action`\n}\n\nexport const indexerBulkAction = async (bulkActionInput: BulkActionInput, options?: RequestInit): Promise<indexerBulkActionResponse> => {\n \n return customFetch<indexerBulkActionResponse>(getIndexerBulkActionUrl(),\n { \n ...options,\n method: 'POST',\n headers: { 'Content-Type': 'application/json', ...options?.headers },\n body: JSON.stringify(\n bulkActionInput,)\n }\n);}\n \n\n\n/**\n * Get the status and progress of an indexer job (admin only).\n * @summary Get job status\n */\nexport type getIndexerJobStatusResponse200 = {\n data: JobStatus\n status: 200\n}\n\nexport type getIndexerJobStatusResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type getIndexerJobStatusResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type getIndexerJobStatusResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type getIndexerJobStatusResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type getIndexerJobStatusResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type getIndexerJobStatusResponseSuccess = (getIndexerJobStatusResponse200) & {\n headers: Headers;\n};\nexport type getIndexerJobStatusResponseError = (getIndexerJobStatusResponse400 | getIndexerJobStatusResponse401 | getIndexerJobStatusResponse403 | getIndexerJobStatusResponse404 | getIndexerJobStatusResponse500) & {\n headers: Headers;\n};\n\nexport type getIndexerJobStatusResponse = (getIndexerJobStatusResponseSuccess | getIndexerJobStatusResponseError)\n\nexport const getGetIndexerJobStatusUrl = (id: string,) => {\n\n\n \n\n return `/api/skills/-/indexer/jobs/${id}`\n}\n\nexport const getIndexerJobStatus = async (id: string, options?: RequestInit): Promise<getIndexerJobStatusResponse> => {\n \n return customFetch<getIndexerJobStatusResponse>(getGetIndexerJobStatusUrl(id),\n { \n ...options,\n method: 'GET'\n \n \n }\n);}\n \n\n\n/**\n * List recent indexer jobs with status and pagination (admin only).\n * @summary List recent indexer jobs\n */\nexport type listIndexerJobsResponse200 = {\n data: PaginatedJobs\n status: 200\n}\n\nexport type listIndexerJobsResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type listIndexerJobsResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type listIndexerJobsResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type listIndexerJobsResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type listIndexerJobsResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type listIndexerJobsResponseSuccess = (listIndexerJobsResponse200) & {\n headers: Headers;\n};\nexport type listIndexerJobsResponseError = (listIndexerJobsResponse400 | listIndexerJobsResponse401 | listIndexerJobsResponse403 | listIndexerJobsResponse404 | listIndexerJobsResponse500) & {\n headers: Headers;\n};\n\nexport type listIndexerJobsResponse = (listIndexerJobsResponseSuccess | listIndexerJobsResponseError)\n\nexport const getListIndexerJobsUrl = (params?: ListIndexerJobsParams,) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n \n if (value !== undefined) {\n normalizedParams.append(key, value === null ? 'null' : value.toString())\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0 ? `/api/skills/-/indexer/jobs?${stringifiedParams}` : `/api/skills/-/indexer/jobs`\n}\n\nexport const listIndexerJobs = async (params?: ListIndexerJobsParams, options?: RequestInit): Promise<listIndexerJobsResponse> => {\n \n return customFetch<listIndexerJobsResponse>(getListIndexerJobsUrl(params),\n { \n ...options,\n method: 'GET'\n \n \n }\n);}\n \n\n\n/**\n * List all skills indexed from a specific GitHub repository (admin only).\n * @summary List skills in an indexed repo\n */\nexport type listRepoSkillsResponse200 = {\n data: RepoSkill[]\n status: 200\n}\n\nexport type listRepoSkillsResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type listRepoSkillsResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type listRepoSkillsResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type listRepoSkillsResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type listRepoSkillsResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type listRepoSkillsResponseSuccess = (listRepoSkillsResponse200) & {\n headers: Headers;\n};\nexport type listRepoSkillsResponseError = (listRepoSkillsResponse400 | listRepoSkillsResponse401 | listRepoSkillsResponse403 | listRepoSkillsResponse404 | listRepoSkillsResponse500) & {\n headers: Headers;\n};\n\nexport type listRepoSkillsResponse = (listRepoSkillsResponseSuccess | listRepoSkillsResponseError)\n\nexport const getListRepoSkillsUrl = (id: string,) => {\n\n\n \n\n return `/api/skills/-/indexer/repos/${id}/skills`\n}\n\nexport const listRepoSkills = async (id: string, options?: RequestInit): Promise<listRepoSkillsResponse> => {\n \n return customFetch<listRepoSkillsResponse>(getListRepoSkillsUrl(id),\n { \n ...options,\n method: 'GET'\n \n \n }\n);}\n \n\n\n/**\n * Delete a specific skill from an indexed GitHub repository (admin only).\n * @summary Delete a skill from an indexed repo\n */\nexport type deleteRepoSkillResponse200 = {\n data: DeleteRepoSkill200\n status: 200\n}\n\nexport type deleteRepoSkillResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type deleteRepoSkillResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type deleteRepoSkillResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type deleteRepoSkillResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type deleteRepoSkillResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type deleteRepoSkillResponseSuccess = (deleteRepoSkillResponse200) & {\n headers: Headers;\n};\nexport type deleteRepoSkillResponseError = (deleteRepoSkillResponse400 | deleteRepoSkillResponse401 | deleteRepoSkillResponse403 | deleteRepoSkillResponse404 | deleteRepoSkillResponse500) & {\n headers: Headers;\n};\n\nexport type deleteRepoSkillResponse = (deleteRepoSkillResponseSuccess | deleteRepoSkillResponseError)\n\nexport const getDeleteRepoSkillUrl = (id: string,\n skillId: string,) => {\n\n\n \n\n return `/api/skills/-/indexer/repos/${id}/skills/${skillId}`\n}\n\nexport const deleteRepoSkill = async (id: string,\n skillId: string, options?: RequestInit): Promise<deleteRepoSkillResponse> => {\n \n return customFetch<deleteRepoSkillResponse>(getDeleteRepoSkillUrl(id,skillId),\n { \n ...options,\n method: 'DELETE'\n \n \n }\n);}\n \n\n\n/**\n * Retrieve the current user's subscription information\n * @summary Get current subscription\n */\nexport type getSubscriptionResponse200 = {\n data: SubscriptionInfo\n status: 200\n}\n\nexport type getSubscriptionResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type getSubscriptionResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type getSubscriptionResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type getSubscriptionResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type getSubscriptionResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type getSubscriptionResponseSuccess = (getSubscriptionResponse200) & {\n headers: Headers;\n};\nexport type getSubscriptionResponseError = (getSubscriptionResponse400 | getSubscriptionResponse401 | getSubscriptionResponse403 | getSubscriptionResponse404 | getSubscriptionResponse500) & {\n headers: Headers;\n};\n\nexport type getSubscriptionResponse = (getSubscriptionResponseSuccess | getSubscriptionResponseError)\n\nexport const getGetSubscriptionUrl = () => {\n\n\n \n\n return `/api/billing/subscription`\n}\n\nexport const getSubscription = async ( options?: RequestInit): Promise<getSubscriptionResponse> => {\n \n return customFetch<getSubscriptionResponse>(getGetSubscriptionUrl(),\n { \n ...options,\n method: 'GET'\n \n \n }\n);}\n \n\n\n/**\n * Create a Stripe checkout session for upgrading to Pro\n * @summary Create checkout session\n */\nexport type createCheckoutSessionResponse200 = {\n data: CheckoutSessionResponse\n status: 200\n}\n\nexport type createCheckoutSessionResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type createCheckoutSessionResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type createCheckoutSessionResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type createCheckoutSessionResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type createCheckoutSessionResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type createCheckoutSessionResponseSuccess = (createCheckoutSessionResponse200) & {\n headers: Headers;\n};\nexport type createCheckoutSessionResponseError = (createCheckoutSessionResponse400 | createCheckoutSessionResponse401 | createCheckoutSessionResponse403 | createCheckoutSessionResponse404 | createCheckoutSessionResponse500) & {\n headers: Headers;\n};\n\nexport type createCheckoutSessionResponse = (createCheckoutSessionResponseSuccess | createCheckoutSessionResponseError)\n\nexport const getCreateCheckoutSessionUrl = () => {\n\n\n \n\n return `/api/billing/checkout`\n}\n\nexport const createCheckoutSession = async (createCheckoutInput: CreateCheckoutInput, options?: RequestInit): Promise<createCheckoutSessionResponse> => {\n \n return customFetch<createCheckoutSessionResponse>(getCreateCheckoutSessionUrl(),\n { \n ...options,\n method: 'POST',\n headers: { 'Content-Type': 'application/json', ...options?.headers },\n body: JSON.stringify(\n createCheckoutInput,)\n }\n);}\n \n\n\n/**\n * Create a Stripe customer portal session for managing subscription\n * @summary Create customer portal session\n */\nexport type createPortalSessionResponse200 = {\n data: PortalSessionResponse\n status: 200\n}\n\nexport type createPortalSessionResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type createPortalSessionResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type createPortalSessionResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type createPortalSessionResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type createPortalSessionResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type createPortalSessionResponseSuccess = (createPortalSessionResponse200) & {\n headers: Headers;\n};\nexport type createPortalSessionResponseError = (createPortalSessionResponse400 | createPortalSessionResponse401 | createPortalSessionResponse403 | createPortalSessionResponse404 | createPortalSessionResponse500) & {\n headers: Headers;\n};\n\nexport type createPortalSessionResponse = (createPortalSessionResponseSuccess | createPortalSessionResponseError)\n\nexport const getCreatePortalSessionUrl = () => {\n\n\n \n\n return `/api/billing/portal`\n}\n\nexport const createPortalSession = async (createPortalInput: CreatePortalInput, options?: RequestInit): Promise<createPortalSessionResponse> => {\n \n return customFetch<createPortalSessionResponse>(getCreatePortalSessionUrl(),\n { \n ...options,\n method: 'POST',\n headers: { 'Content-Type': 'application/json', ...options?.headers },\n body: JSON.stringify(\n createPortalInput,)\n }\n);}\n \n\n\n/**\n * Submit client-side errors for logging and monitoring. Used by the frontend error capture service.\n * @summary Report client errors\n */\nexport type reportErrorsResponse200 = {\n data: SuccessResponse\n status: 200\n}\n\nexport type reportErrorsResponse400 = {\n data: ValidationError\n status: 400\n}\n\nexport type reportErrorsResponse401 = {\n data: ApiError\n status: 401\n}\n\nexport type reportErrorsResponse403 = {\n data: ApiError\n status: 403\n}\n\nexport type reportErrorsResponse404 = {\n data: ApiError\n status: 404\n}\n\nexport type reportErrorsResponse500 = {\n data: ApiError\n status: 500\n}\n\nexport type reportErrorsResponseSuccess = (reportErrorsResponse200) & {\n headers: Headers;\n};\nexport type reportErrorsResponseError = (reportErrorsResponse400 | reportErrorsResponse401 | reportErrorsResponse403 | reportErrorsResponse404 | reportErrorsResponse500) & {\n headers: Headers;\n};\n\nexport type reportErrorsResponse = (reportErrorsResponseSuccess | reportErrorsResponseError)\n\nexport const getReportErrorsUrl = () => {\n\n\n \n\n return `/errors/report`\n}\n\nexport const reportErrors = async (errorReportPayload: ErrorReportPayload, options?: RequestInit): Promise<reportErrorsResponse> => {\n \n return customFetch<reportErrorsResponse>(getReportErrorsUrl(),\n { \n ...options,\n method: 'POST',\n headers: { 'Content-Type': 'application/json', ...options?.headers },\n body: JSON.stringify(\n errorReportPayload,)\n }\n);}\n","/**\n * API Client for PSPM CLI\n *\n * This module re-exports the SDK functions and provides the\n * initialization logic for the CLI.\n */\n\nimport {\n getConfig,\n isConfigured,\n type SDKConfig,\n SDKError,\n configure as sdkConfigure,\n} from \"./sdk/fetcher\";\nimport {\n deleteOrgSkill,\n deleteSkill,\n deleteSkillVersion,\n exchangeCliToken,\n getOrgSkillVersion,\n getSkill,\n getSkillVersion,\n listMySkills,\n listOrgSkillVersions,\n listSkillVersions,\n listUserSkills,\n me,\n publishOrgSkill,\n publishSkill,\n} from \"./sdk/generated\";\n\n/**\n * Convert a registry URL to the base server URL for the SDK.\n *\n * The CLI stores registry URLs like \"https://pspm.dev\". This function\n * normalizes the URL by removing any trailing /api/skills path if present\n * (for backwards compatibility with older configs).\n */\nfunction registryUrlToBaseUrl(registryUrl: string): string {\n return registryUrl.replace(/\\/api\\/skills\\/?$/, \"\");\n}\n\n/**\n * Configure the SDK with registry URL and API key.\n *\n * This wrapper handles converting the CLI's registry URL format to the\n * base URL format expected by the SDK.\n */\nexport function configure(options: {\n registryUrl: string;\n apiKey?: string;\n}): void {\n const baseUrl = registryUrlToBaseUrl(options.registryUrl);\n sdkConfigure({ baseUrl, apiKey: options.apiKey });\n}\n\n// Re-export types\nexport type { SDKConfig };\n// Re-export SDK functions for convenience\nexport {\n deleteOrgSkill,\n deleteSkill,\n deleteSkillVersion,\n exchangeCliToken,\n getConfig,\n getOrgSkillVersion,\n getSkill,\n getSkillVersion,\n isConfigured,\n listMySkills,\n listOrgSkillVersions,\n listSkillVersions,\n listUserSkills,\n me,\n publishOrgSkill,\n publishSkill,\n SDKError,\n};\n\n/**\n * Get user info from the API using the /me endpoint.\n * Returns null if not authenticated.\n */\nexport async function whoamiRequest(\n registryUrl: string,\n apiKey: string,\n): Promise<{ username: string; userId: string } | null> {\n try {\n // Use direct REST endpoints (not oRPC /rpc prefix)\n configure({ registryUrl, apiKey });\n const response = await me();\n // Check for successful response before accessing user data\n if (response.status !== 200 || !response.data) {\n return null;\n }\n const user = response.data;\n return {\n username: user.username,\n userId: user.userId,\n };\n } catch {\n return null;\n }\n}\n\n/**\n * Deprecate a skill version\n */\nexport async function deprecateSkillVersion(\n username: string,\n skillName: string,\n version: string,\n message: string,\n): Promise<{ status: number; data?: unknown; error?: string }> {\n const config = getConfig();\n if (!config) {\n return { status: 401, error: \"SDK not configured\" };\n }\n\n try {\n const response = await fetch(\n `${config.baseUrl}/api/skills/@user/${username}/${skillName}/versions/${version}/deprecate`,\n {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${config.apiKey}`,\n },\n body: JSON.stringify({ message }),\n },\n );\n\n if (!response.ok) {\n const error = await response.text();\n return { status: response.status, error };\n }\n\n const data = await response.json();\n return { status: response.status, data };\n } catch (error) {\n return {\n status: 500,\n error: error instanceof Error ? error.message : \"Unknown error\",\n };\n }\n}\n\n/**\n * Remove deprecation from a skill version\n */\nexport async function undeprecateSkillVersion(\n username: string,\n skillName: string,\n version: string,\n): Promise<{ status: number; data?: unknown; error?: string }> {\n const config = getConfig();\n if (!config) {\n return { status: 401, error: \"SDK not configured\" };\n }\n\n try {\n const response = await fetch(\n `${config.baseUrl}/api/skills/@user/${username}/${skillName}/versions/${version}/deprecate`,\n {\n method: \"DELETE\",\n headers: {\n Authorization: `Bearer ${config.apiKey}`,\n },\n },\n );\n\n if (!response.ok) {\n const error = await response.text();\n return { status: response.status, error };\n }\n\n const data = await response.json();\n return { status: response.status, data };\n } catch (error) {\n return {\n status: 500,\n error: error instanceof Error ? error.message : \"Unknown error\",\n };\n }\n}\n\n// =============================================================================\n// Skill List API Functions\n// =============================================================================\n\n/**\n * Fetch a public skill list by owner type and name.\n * Calls GET /api/skill-lists/lists/@{ownerType}/{ownerName}/{listName}\n */\nexport async function fetchSkillList(\n ownerType: \"user\" | \"org\",\n ownerName: string,\n listName: string,\n): Promise<{\n status: number;\n data?: {\n name: string;\n description: string | null;\n visibility: \"private\" | \"public\";\n ownerType: \"user\" | \"org\";\n ownerName: string;\n items: {\n id: string;\n skillId: string;\n skillName: string;\n namespace: string;\n ownerName: string;\n pinnedVersion: string | null;\n }[];\n };\n error?: string;\n}> {\n const config = getConfig();\n try {\n const response = await fetch(\n `${config.baseUrl}/api/skill-lists/lists/@${ownerType}/${ownerName}/${listName}`,\n {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n ...(config.apiKey\n ? { Authorization: `Bearer ${config.apiKey}` }\n : {}),\n },\n },\n );\n if (!response.ok) {\n const error = await response.text();\n return { status: response.status, error };\n }\n const data = (await response.json()) as {\n name: string;\n description: string | null;\n visibility: \"private\" | \"public\";\n ownerType: \"user\" | \"org\";\n ownerName: string;\n items: {\n id: string;\n skillId: string;\n skillName: string;\n namespace: string;\n ownerName: string;\n pinnedVersion: string | null;\n }[];\n };\n return { status: response.status, data };\n } catch (error) {\n return {\n status: 500,\n error: error instanceof Error ? error.message : \"Unknown error\",\n };\n }\n}\n\n// =============================================================================\n// @github Namespace API Functions\n// =============================================================================\n\n/**\n * List versions for a @github skill.\n * Calls GET /api/skills/@github/{owner}/{repo}/{name}/versions\n */\nexport async function listGithubSkillVersions(\n owner: string,\n repo: string,\n name: string,\n): Promise<{ status: number; data?: { version: string }[]; error?: string }> {\n const config = getConfig();\n try {\n const response = await fetch(\n `${config.baseUrl}/api/skills/@github/${owner}/${repo}/${name}/versions`,\n {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n ...(config.apiKey\n ? { Authorization: `Bearer ${config.apiKey}` }\n : {}),\n },\n },\n );\n if (!response.ok) {\n const error = await response.text();\n return { status: response.status, error };\n }\n const data = (await response.json()) as { version: string }[];\n return { status: response.status, data };\n } catch (error) {\n return {\n status: 500,\n error: error instanceof Error ? error.message : \"Unknown error\",\n };\n }\n}\n\n/**\n * Get a specific version of a @github skill (with download URL).\n * Calls GET /api/skills/@github/{owner}/{repo}/{name}/versions/{version}\n */\nexport async function getGithubSkillVersion(\n owner: string,\n repo: string,\n name: string,\n version: string,\n): Promise<{\n status: number;\n data?: { downloadUrl: string; checksum: string; version: string };\n error?: string;\n}> {\n const config = getConfig();\n try {\n const response = await fetch(\n `${config.baseUrl}/api/skills/@github/${owner}/${repo}/${name}/versions/${version}`,\n {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n ...(config.apiKey\n ? { Authorization: `Bearer ${config.apiKey}` }\n : {}),\n },\n },\n );\n if (!response.ok) {\n const error = await response.text();\n return { status: response.status, error };\n }\n const data = (await response.json()) as {\n downloadUrl: string;\n checksum: string;\n version: string;\n };\n return { status: response.status, data };\n } catch (error) {\n return {\n status: 500,\n error: error instanceof Error ? error.message : \"Unknown error\",\n };\n }\n}\n\n/**\n * Change skill visibility (public/private)\n */\nexport async function changeSkillAccess(\n username: string,\n skillName: string,\n input: { visibility: \"public\" | \"private\" },\n): Promise<{\n status: number;\n data?: {\n id: string;\n name: string;\n username: string;\n description: string | null;\n visibility: \"public\" | \"private\";\n createdAt: string;\n updatedAt: string;\n };\n error?: string;\n}> {\n const config = getConfig();\n if (!config) {\n return { status: 401, error: \"SDK not configured\" };\n }\n\n try {\n const response = await fetch(\n `${config.baseUrl}/api/skills/@user/${username}/${skillName}/access`,\n {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${config.apiKey}`,\n },\n body: JSON.stringify(input),\n },\n );\n\n if (!response.ok) {\n const error = await response.text();\n try {\n const errorJson = JSON.parse(error);\n return {\n status: response.status,\n error: errorJson.message || errorJson.error || error,\n };\n } catch {\n return { status: response.status, error };\n }\n }\n\n const data = (await response.json()) as {\n id: string;\n name: string;\n username: string;\n description: string | null;\n visibility: \"public\" | \"private\";\n createdAt: string;\n updatedAt: string;\n };\n return { status: response.status, data };\n } catch (error) {\n return {\n status: 500,\n error: error instanceof Error ? error.message : \"Unknown error\",\n };\n }\n}\n"],"mappings":";AAYA,IAAI,SAA2B;;;;;;;;;;;;;;;AAgB/B,SAAgBA,YAAU,SAA0B;AAClD,UAAS;;;;;;AAOX,SAAgB,YAAuB;AACrC,KAAI,CAAC,OACH,OAAM,IAAI,MAAM,8CAA8C;AAEhE,QAAO;;;;;;;;;;AAgCT,eAAsB,YACpB,KACA,SACY;CACZ,MAAM,EAAE,SAAS,WAAW,WAAW;CAIvC,MAAM,UAAU,GAAG,UAAU;CAG7B,MAAM,UAAkC;EACtC,GAAK,QAAQ,WAAsC,EAAE;EACrD,gBAAgB;EACjB;AACD,KAAI,OACF,SAAQ,gBAAgB,UAAU;CAGpC,MAAM,WAAW,MAAM,MAAM,SAAS;EACpC,GAAG;EACH;EACD,CAAC;CAEF,MAAM,OAAO,MAAM,SAAS,MAAM;CAClC,IAAI,OAAgB;AAEpB,KAAI,KACF,KAAI;AACF,SAAO,KAAK,MAAM,KAAK;SACjB;AACN,SAAO;;AAKX,QAAO;EACL;EACA,QAAQ,SAAS;EACjB,SAAS,SAAS;EACnB;;;;;;;;;;;AC62FH,MAAa,iBAAiB;AAK5B,QAAO;;AAGT,MAAa,KAAK,OAAQ,YAA+C;AAEvE,QAAO,YAAwB,UAAU,EACzC;EACE,GAAG;EACH,QAAQ;EAGT,CACF;;AA+CD,MAAa,6BAA6B,WAAwC;CAChF,MAAM,mBAAmB,IAAI,iBAAiB;AAE9C,QAAO,QAAQ,UAAU,EAAE,CAAC,CAAC,SAAS,CAAC,KAAK,WAAW;AAErD,MAAI,UAAU,KAAA,EACZ,kBAAiB,OAAO,KAAK,UAAU,OAAO,SAAS,MAAM,UAAU,CAAC;GAE1E;CAEF,MAAM,oBAAoB,iBAAiB,UAAU;AAErD,QAAO,kBAAkB,SAAS,IAAI,yBAAyB,sBAAsB;;AAGvF,MAAa,sBAAsB,OAAO,QAAoC,YAAgE;AAE5I,QAAO,YAAyC,0BAA0B,OAAO,EACjF;EACE,GAAG;EACH,QAAQ;EAGT,CACF;;AAiPD,MAAa,qBAAqB,UAC9B,SAAqB;AAKvB,QAAO,qBAAqB,SAAS,GAAG;;AAG1C,MAAa,cAAc,OAAO,UAC9B,MAAiB,YAAwD;AAE3E,QAAO,YAAiC,kBAAkB,UAAS,KAAK,EACxE;EACE,GAAG;EACH,QAAQ;EAGT,CACF;;AA+CD,MAAa,2BAA2B,UACpC,SAAqB;AAKvB,QAAO,qBAAqB,SAAS,GAAG,KAAK;;AAG/C,MAAa,oBAAoB,OAAO,UACpC,MAAiB,YAA8D;AAEjF,QAAO,YAAuC,wBAAwB,UAAS,KAAK,EACpF;EACE,GAAG;EACH,QAAQ;EAGT,CACF;;AAiHD,MAAa,yBAAyB,UAClC,MACA,YAAqB;AAKvB,QAAO,qBAAqB,SAAS,GAAG,KAAK,YAAY;;AAG3D,MAAa,kBAAkB,OAAO,UAClC,MACA,SAAiB,YAA4D;AAE/E,QAAO,YAAqC,sBAAsB,UAAS,MAAK,QAAQ,EACxF;EACE,GAAG;EACH,QAAQ;EAGT,CACF;;AA+CD,MAAa,4BAA4B,UACrC,MACA,YAAqB;AAKvB,QAAO,qBAAqB,SAAS,GAAG,KAAK,YAAY;;AAG3D,MAAa,qBAAqB,OAAO,UACrC,MACA,SAAiB,YAA+D;AAElF,QAAO,YAAwC,yBAAyB,UAAS,MAAK,QAAQ,EAC9F;EACE,GAAG;EACH,QAAQ;EAGT,CACF;;AAiHD,MAAa,2BAA2B;AAKtC,QAAO;;AAGT,MAAa,eAAe,OAAO,mBAAsC,YAAyD;AAEhI,QAAO,YAAkC,oBAAoB,EAC7D;EACE,GAAG;EACH,QAAQ;EACR,SAAS;GAAE,gBAAgB;GAAoB,GAAG,SAAS;GAAS;EACpE,MAAM,KAAK,UACT,kBAAmB;EACtB,CACF;;AA+XD,MAAa,wBAAwB,SACjC,SAAqB;AAKvB,QAAO,oBAAoB,QAAQ,GAAG;;AAGxC,MAAa,iBAAiB,OAAO,SACjC,MAAiB,YAA2D;AAE9E,QAAO,YAAoC,qBAAqB,SAAQ,KAAK,EAC7E;EACE,GAAG;EACH,QAAQ;EAGT,CACF;;AA+CD,MAAa,8BAA8B,SACvC,SAAqB;AAKvB,QAAO,oBAAoB,QAAQ,GAAG,KAAK;;AAG7C,MAAa,uBAAuB,OAAO,SACvC,MAAiB,YAAiE;AAEpF,QAAO,YAA0C,2BAA2B,SAAQ,KAAK,EACzF;EACE,GAAG;EACH,QAAQ;EAGT,CACF;;AA+CD,MAAa,4BAA4B,SACrC,MACA,YAAqB;AAKvB,QAAO,oBAAoB,QAAQ,GAAG,KAAK,YAAY;;AAGzD,MAAa,qBAAqB,OAAO,SACrC,MACA,SAAiB,YAA+D;AAElF,QAAO,YAAwC,yBAAyB,SAAQ,MAAK,QAAQ,EAC7F;EACE,GAAG;EACH,QAAQ;EAGT,CACF;;AAiHD,MAAa,yBAAyB,YAAuB;AAK3D,QAAO,oBAAoB,QAAQ;;AAGrC,MAAa,kBAAkB,OAAO,SAClC,mBAAsC,YAA4D;AAEpG,QAAO,YAAqC,sBAAsB,QAAQ,EAC1E;EACE,GAAG;EACH,QAAQ;EACR,SAAS;GAAE,gBAAgB;GAAoB,GAAG,SAAS;GAAS;EACpE,MAAM,KAAK,UACT,kBAAmB;EACtB,CACF;;;;;;;;;;;;;;;;;AC9zID,SAAS,qBAAqB,aAA6B;AACzD,QAAO,YAAY,QAAQ,qBAAqB,GAAG;;;;;;;;AASrD,SAAgB,UAAU,SAGjB;AAEP,aAAa;EAAE,SADC,qBAAqB,QAAQ,YACvB;EAAE,QAAQ,QAAQ;EAAQ,CAAC;;;;;;AA8BnD,eAAsB,cACpB,aACA,QACsD;AACtD,KAAI;AAEF,YAAU;GAAE;GAAa;GAAQ,CAAC;EAClC,MAAM,WAAW,MAAM,IAAI;AAE3B,MAAI,SAAS,WAAW,OAAO,CAAC,SAAS,KACvC,QAAO;EAET,MAAM,OAAO,SAAS;AACtB,SAAO;GACL,UAAU,KAAK;GACf,QAAQ,KAAK;GACd;SACK;AACN,SAAO;;;;;;AAOX,eAAsB,sBACpB,UACA,WACA,SACA,SAC6D;CAC7D,MAAM,SAAS,WAAW;AAC1B,KAAI,CAAC,OACH,QAAO;EAAE,QAAQ;EAAK,OAAO;EAAsB;AAGrD,KAAI;EACF,MAAM,WAAW,MAAM,MACrB,GAAG,OAAO,QAAQ,oBAAoB,SAAS,GAAG,UAAU,YAAY,QAAQ,aAChF;GACE,QAAQ;GACR,SAAS;IACP,gBAAgB;IAChB,eAAe,UAAU,OAAO;IACjC;GACD,MAAM,KAAK,UAAU,EAAE,SAAS,CAAC;GAClC,CACF;AAED,MAAI,CAAC,SAAS,IAAI;GAChB,MAAM,QAAQ,MAAM,SAAS,MAAM;AACnC,UAAO;IAAE,QAAQ,SAAS;IAAQ;IAAO;;EAG3C,MAAM,OAAO,MAAM,SAAS,MAAM;AAClC,SAAO;GAAE,QAAQ,SAAS;GAAQ;GAAM;UACjC,OAAO;AACd,SAAO;GACL,QAAQ;GACR,OAAO,iBAAiB,QAAQ,MAAM,UAAU;GACjD;;;;;;AAOL,eAAsB,wBACpB,UACA,WACA,SAC6D;CAC7D,MAAM,SAAS,WAAW;AAC1B,KAAI,CAAC,OACH,QAAO;EAAE,QAAQ;EAAK,OAAO;EAAsB;AAGrD,KAAI;EACF,MAAM,WAAW,MAAM,MACrB,GAAG,OAAO,QAAQ,oBAAoB,SAAS,GAAG,UAAU,YAAY,QAAQ,aAChF;GACE,QAAQ;GACR,SAAS,EACP,eAAe,UAAU,OAAO,UACjC;GACF,CACF;AAED,MAAI,CAAC,SAAS,IAAI;GAChB,MAAM,QAAQ,MAAM,SAAS,MAAM;AACnC,UAAO;IAAE,QAAQ,SAAS;IAAQ;IAAO;;EAG3C,MAAM,OAAO,MAAM,SAAS,MAAM;AAClC,SAAO;GAAE,QAAQ,SAAS;GAAQ;GAAM;UACjC,OAAO;AACd,SAAO;GACL,QAAQ;GACR,OAAO,iBAAiB,QAAQ,MAAM,UAAU;GACjD;;;;;;;AAYL,eAAsB,eACpB,WACA,WACA,UAmBC;CACD,MAAM,SAAS,WAAW;AAC1B,KAAI;EACF,MAAM,WAAW,MAAM,MACrB,GAAG,OAAO,QAAQ,0BAA0B,UAAU,GAAG,UAAU,GAAG,YACtE;GACE,QAAQ;GACR,SAAS;IACP,gBAAgB;IAChB,GAAI,OAAO,SACP,EAAE,eAAe,UAAU,OAAO,UAAU,GAC5C,EAAE;IACP;GACF,CACF;AACD,MAAI,CAAC,SAAS,IAAI;GAChB,MAAM,QAAQ,MAAM,SAAS,MAAM;AACnC,UAAO;IAAE,QAAQ,SAAS;IAAQ;IAAO;;EAE3C,MAAM,OAAQ,MAAM,SAAS,MAAM;AAenC,SAAO;GAAE,QAAQ,SAAS;GAAQ;GAAM;UACjC,OAAO;AACd,SAAO;GACL,QAAQ;GACR,OAAO,iBAAiB,QAAQ,MAAM,UAAU;GACjD;;;;;;;AAYL,eAAsB,wBACpB,OACA,MACA,MAC2E;CAC3E,MAAM,SAAS,WAAW;AAC1B,KAAI;EACF,MAAM,WAAW,MAAM,MACrB,GAAG,OAAO,QAAQ,sBAAsB,MAAM,GAAG,KAAK,GAAG,KAAK,YAC9D;GACE,QAAQ;GACR,SAAS;IACP,gBAAgB;IAChB,GAAI,OAAO,SACP,EAAE,eAAe,UAAU,OAAO,UAAU,GAC5C,EAAE;IACP;GACF,CACF;AACD,MAAI,CAAC,SAAS,IAAI;GAChB,MAAM,QAAQ,MAAM,SAAS,MAAM;AACnC,UAAO;IAAE,QAAQ,SAAS;IAAQ;IAAO;;EAE3C,MAAM,OAAQ,MAAM,SAAS,MAAM;AACnC,SAAO;GAAE,QAAQ,SAAS;GAAQ;GAAM;UACjC,OAAO;AACd,SAAO;GACL,QAAQ;GACR,OAAO,iBAAiB,QAAQ,MAAM,UAAU;GACjD;;;;;;;AAQL,eAAsB,sBACpB,OACA,MACA,MACA,SAKC;CACD,MAAM,SAAS,WAAW;AAC1B,KAAI;EACF,MAAM,WAAW,MAAM,MACrB,GAAG,OAAO,QAAQ,sBAAsB,MAAM,GAAG,KAAK,GAAG,KAAK,YAAY,WAC1E;GACE,QAAQ;GACR,SAAS;IACP,gBAAgB;IAChB,GAAI,OAAO,SACP,EAAE,eAAe,UAAU,OAAO,UAAU,GAC5C,EAAE;IACP;GACF,CACF;AACD,MAAI,CAAC,SAAS,IAAI;GAChB,MAAM,QAAQ,MAAM,SAAS,MAAM;AACnC,UAAO;IAAE,QAAQ,SAAS;IAAQ;IAAO;;EAE3C,MAAM,OAAQ,MAAM,SAAS,MAAM;AAKnC,SAAO;GAAE,QAAQ,SAAS;GAAQ;GAAM;UACjC,OAAO;AACd,SAAO;GACL,QAAQ;GACR,OAAO,iBAAiB,QAAQ,MAAM,UAAU;GACjD;;;;;;AAOL,eAAsB,kBACpB,UACA,WACA,OAaC;CACD,MAAM,SAAS,WAAW;AAC1B,KAAI,CAAC,OACH,QAAO;EAAE,QAAQ;EAAK,OAAO;EAAsB;AAGrD,KAAI;EACF,MAAM,WAAW,MAAM,MACrB,GAAG,OAAO,QAAQ,oBAAoB,SAAS,GAAG,UAAU,UAC5D;GACE,QAAQ;GACR,SAAS;IACP,gBAAgB;IAChB,eAAe,UAAU,OAAO;IACjC;GACD,MAAM,KAAK,UAAU,MAAM;GAC5B,CACF;AAED,MAAI,CAAC,SAAS,IAAI;GAChB,MAAM,QAAQ,MAAM,SAAS,MAAM;AACnC,OAAI;IACF,MAAM,YAAY,KAAK,MAAM,MAAM;AACnC,WAAO;KACL,QAAQ,SAAS;KACjB,OAAO,UAAU,WAAW,UAAU,SAAS;KAChD;WACK;AACN,WAAO;KAAE,QAAQ,SAAS;KAAQ;KAAO;;;EAI7C,MAAM,OAAQ,MAAM,SAAS,MAAM;AASnC,SAAO;GAAE,QAAQ,SAAS;GAAQ;GAAM;UACjC,OAAO;AACd,SAAO;GACL,QAAQ;GACR,OAAO,iBAAiB,QAAQ,MAAM,UAAU;GACjD"}
|