@postmcp/presets 0.1.24 → 0.1.26
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/README.md +9 -7
- package/dist/index.js +9 -48
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +9 -48
- package/dist/index.mjs.map +1 -1
- package/package.json +14 -4
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/builder.ts","../src/catalog/developer-tools.ts","../src/catalog/cloud-databases.ts","../src/catalog/payments-commerce.ts","../src/catalog/communication-ai.ts","../src/catalog/productivity-support.ts","../src/catalog/media-social.ts","../src/types.ts","../src/auth.ts"],"sourcesContent":["import { Preset, PresetCategory } from './types.js';\nimport { DEVELOPER_TOOLS_PRESETS } from './catalog/developer-tools.js';\nimport { CLOUD_DATABASES_PRESETS } from './catalog/cloud-databases.js';\nimport { PAYMENTS_COMMERCE_PRESETS } from './catalog/payments-commerce.js';\nimport { COMMUNICATION_AI_PRESETS } from './catalog/communication-ai.js';\nimport { PRODUCTIVITY_SUPPORT_PRESETS } from './catalog/productivity-support.js';\nimport { MEDIA_SOCIAL_PRESETS } from './catalog/media-social.js';\n\nexport * from './types.js';\nexport * from './auth.js';\nexport * from './builder.js';\nexport { DEVELOPER_TOOLS_PRESETS } from './catalog/developer-tools.js';\nexport { CLOUD_DATABASES_PRESETS } from './catalog/cloud-databases.js';\nexport { PAYMENTS_COMMERCE_PRESETS } from './catalog/payments-commerce.js';\nexport { COMMUNICATION_AI_PRESETS } from './catalog/communication-ai.js';\nexport { PRODUCTIVITY_SUPPORT_PRESETS } from './catalog/productivity-support.js';\nexport { MEDIA_SOCIAL_PRESETS } from './catalog/media-social.js';\n\nexport const ALL_PRESETS: Preset[] = [\n ...DEVELOPER_TOOLS_PRESETS,\n ...CLOUD_DATABASES_PRESETS,\n ...PAYMENTS_COMMERCE_PRESETS,\n ...COMMUNICATION_AI_PRESETS,\n ...PRODUCTIVITY_SUPPORT_PRESETS,\n ...MEDIA_SOCIAL_PRESETS,\n];\n\nexport const PRESETS_BY_ID: Record<string, Preset> = ALL_PRESETS.reduce((acc, preset) => {\n acc[preset.id] = preset;\n return acc;\n}, {} as Record<string, Preset>);\n\nexport function getAllPresets(): Preset[] {\n return ALL_PRESETS;\n}\n\nexport function getPreset(id: string): Preset | undefined {\n const cleanId = id.replace(/^@/, '').toLowerCase().trim();\n return PRESETS_BY_ID[cleanId];\n}\n\nexport function getPresetsByCategory(category: PresetCategory): Preset[] {\n return ALL_PRESETS.filter((p) => p.category === category);\n}\n\nexport function searchPresets(query: string): Preset[] {\n const q = query.toLowerCase().trim();\n if (!q) return ALL_PRESETS;\n\n return ALL_PRESETS.filter((p) => {\n return (\n p.id.toLowerCase().includes(q) ||\n p.name.toLowerCase().includes(q) ||\n p.description.toLowerCase().includes(q) ||\n p.category.toLowerCase().includes(q) ||\n (p.tags && p.tags.some((t) => t.toLowerCase().includes(q)))\n );\n });\n}\n\nexport function getAllCategories(): PresetCategory[] {\n return [\n 'Developer Tools',\n 'Database & Cloud',\n 'Payments & Commerce',\n 'Communication & AI',\n 'Productivity & Support',\n 'Social & Media',\n 'Demo & Testing',\n ];\n}\n","import type { EndpointDef } from '@postmcp/types';\n\nexport type { EndpointDef };\n\nexport interface OpenAPIOperation {\n operationId: string;\n summary: string;\n description: string;\n parameters: Array<{\n name: string;\n in: string;\n required: boolean;\n schema: { type: string; format?: string; default?: unknown };\n description?: string;\n }>;\n responses: Record<string, {\n description: string;\n content?: Record<string, { schema: unknown }>;\n }>;\n requestBody?: {\n required: boolean;\n content: Record<string, { schema: { type: string; properties: Record<string, unknown> } }>;\n };\n security?: Array<Record<string, string[]>>;\n}\n\nexport interface OpenAPISpecDoc {\n openapi: string;\n info: {\n title: string;\n version: string;\n description: string;\n };\n servers: Array<{ url: string }>;\n paths: Record<string, Record<string, OpenAPIOperation>>;\n components?: {\n securitySchemes: Record<string, {\n type: string;\n scheme?: string;\n in?: string;\n name?: string;\n }>;\n };\n}\n\nexport function buildOpenAPISpec(opts: {\n title: string;\n version?: string;\n description: string;\n baseUrl: string;\n endpoints: EndpointDef[];\n securityScheme?: {\n name: string;\n type: 'http' | 'apiKey';\n scheme?: string;\n in?: 'header' | 'query';\n headerName?: string;\n };\n}): OpenAPISpecDoc {\n const pathsObj: Record<string, Record<string, OpenAPIOperation>> = {};\n\n for (const ep of opts.endpoints) {\n pathsObj[ep.path] = pathsObj[ep.path] || {};\n const opObj: OpenAPIOperation = {\n operationId: ep.operationId,\n summary: ep.summary,\n description: ep.description || ep.summary,\n parameters: (ep.parameters || []).map((p) => ({\n name: p.name,\n in: p.in,\n required: p.required ?? (p.in === 'path'),\n schema: p.schema,\n description: p.description,\n })),\n responses: {\n '200': {\n description: 'Successful response',\n content: {\n 'application/json': {\n schema: ep.responseSchema || { type: 'object' },\n },\n },\n },\n },\n };\n\n if (ep.requestBody) {\n opObj.requestBody = {\n required: ep.requestBody.required ?? true,\n content: {\n 'application/json': {\n schema: {\n type: 'object',\n properties: ep.requestBody.properties,\n },\n },\n },\n };\n }\n\n if (opts.securityScheme) {\n opObj.security = [{ [opts.securityScheme.name]: [] }];\n }\n\n pathsObj[ep.path][ep.method.toLowerCase()] = opObj;\n }\n\n const specDoc: OpenAPISpecDoc = {\n openapi: '3.0.3',\n info: {\n title: opts.title,\n version: opts.version || '1.0.0',\n description: opts.description,\n },\n servers: [{ url: opts.baseUrl }],\n paths: pathsObj,\n };\n\n if (opts.securityScheme) {\n specDoc.components = {\n securitySchemes: {\n [opts.securityScheme.name]:\n opts.securityScheme.type === 'http'\n ? { type: 'http', scheme: opts.securityScheme.scheme || 'bearer' }\n : { type: 'apiKey', in: opts.securityScheme.in || 'header', name: opts.securityScheme.headerName || 'Authorization' },\n },\n };\n }\n\n return specDoc;\n}\n","import { Preset } from '../types.js';\nimport { buildOpenAPISpec } from '../builder.js';\n\nexport const DEVELOPER_TOOLS_PRESETS: Preset[] = [\n {\n id: 'github',\n name: 'GitHub REST API',\n description: 'Manage repositories, pull requests, issues, releases, actions, and branch protections.',\n category: 'Developer Tools',\n authType: 'Bearer (GITHUB_TOKEN)',\n authEnvVar: 'GITHUB_TOKEN',\n defaultBaseUrl: 'https://api.github.com',\n specUrl: 'https://raw.githubusercontent.com/github/rest-api-description/main/descriptions/api.github.com/api.github.com.json',\n tags: ['git', 'code', 'issues', 'pr', 'actions', 'ci/cd', 'releases'],\n fieldMasks: [\n { path: '/repos/{owner}/{repo}/issues', fields: ['id', 'number', 'title', 'state', 'user.login', 'created_at', 'html_url'] },\n { path: '/repos/{owner}/{repo}/pulls', fields: ['id', 'number', 'title', 'state', 'user.login', 'head.ref', 'base.ref', 'html_url'] },\n ],\n macros: [\n {\n name: 'createIssueAndComment',\n description: 'Creates a new issue in a repository and immediately adds a follow-up comment',\n parameters: {\n type: 'object',\n properties: {\n owner: { type: 'string' },\n repo: { type: 'string' },\n title: { type: 'string' },\n body: { type: 'string' },\n comment: { type: 'string' },\n },\n required: ['owner', 'repo', 'title'],\n },\n steps: [\n { id: 'createIssue', action: 'POST /repos/{{owner}}/{{repo}}/issues', body: { title: '{{title}}', body: '{{body}}' }, export: { issueNumber: 'number' } },\n { id: 'addComment', action: 'POST /repos/{{owner}}/{{repo}}/issues/{{issueNumber}}/comments', body: { body: '{{comment}}' } },\n ],\n },\n ],\n bundledSpec: buildOpenAPISpec({\n title: 'GitHub REST API',\n baseUrl: 'https://api.github.com',\n description: 'GitHub Official REST API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/user', method: 'get', operationId: 'getAuthenticatedUser', summary: 'Get authenticated user' },\n { path: '/user/repos', method: 'get', operationId: 'listUserRepos', summary: 'List repositories for authenticated user' },\n { path: '/repos/{owner}/{repo}', method: 'get', operationId: 'getRepo', summary: 'Get repository details', parameters: [{ name: 'owner', in: 'path', schema: { type: 'string' } }, { name: 'repo', in: 'path', schema: { type: 'string' } }] },\n { path: '/repos/{owner}/{repo}/issues', method: 'get', operationId: 'listIssues', summary: 'List repository issues', parameters: [{ name: 'owner', in: 'path', schema: { type: 'string' } }, { name: 'repo', in: 'path', schema: { type: 'string' } }, { name: 'state', in: 'query', schema: { type: 'string' } }] },\n { path: '/repos/{owner}/{repo}/issues', method: 'post', operationId: 'createIssue', summary: 'Create issue', parameters: [{ name: 'owner', in: 'path', schema: { type: 'string' } }, { name: 'repo', in: 'path', schema: { type: 'string' } }], requestBody: { properties: { title: { type: 'string' }, body: { type: 'string' } } } },\n { path: '/repos/{owner}/{repo}/pulls', method: 'get', operationId: 'listPullRequests', summary: 'List pull requests', parameters: [{ name: 'owner', in: 'path', schema: { type: 'string' } }, { name: 'repo', in: 'path', schema: { type: 'string' } }] },\n { path: '/repos/{owner}/{repo}/issues/{issue_number}/comments', method: 'post', operationId: 'createIssueComment', summary: 'Create issue comment', parameters: [{ name: 'owner', in: 'path', schema: { type: 'string' } }, { name: 'repo', in: 'path', schema: { type: 'string' } }, { name: 'issue_number', in: 'path', schema: { type: 'integer' } }], requestBody: { properties: { body: { type: 'string' } } } },\n ],\n }),\n },\n {\n id: 'gitlab',\n name: 'GitLab REST API',\n description: 'GitLab project management, merge requests, CI/CD pipelines, and repository administration.',\n category: 'Developer Tools',\n authType: 'Header (PRIVATE-TOKEN)',\n authEnvVar: 'GITLAB_TOKEN',\n defaultBaseUrl: 'https://gitlab.com/api/v4',\n tags: ['git', 'merge-requests', 'pipelines', 'devops'],\n fieldMasks: [\n { path: '/projects', fields: ['id', 'name', 'web_url', 'visibility', 'star_count'] },\n { path: '/projects/{id}/merge_requests', fields: ['id', 'iid', 'title', 'state', 'web_url', 'author.username'] },\n ],\n bundledSpec: buildOpenAPISpec({\n title: 'GitLab REST API',\n baseUrl: 'https://gitlab.com/api/v4',\n description: 'GitLab Core API',\n securityScheme: { name: 'privateToken', type: 'apiKey', in: 'header', headerName: 'PRIVATE-TOKEN' },\n endpoints: [\n { path: '/user', method: 'get', operationId: 'getCurrentUser', summary: 'Get current user profile' },\n { path: '/projects', method: 'get', operationId: 'listProjects', summary: 'List GitLab projects' },\n { path: '/projects/{id}', method: 'get', operationId: 'getProject', summary: 'Get project details', parameters: [{ name: 'id', in: 'path', schema: { type: 'string' } }] },\n { path: '/projects/{id}/merge_requests', method: 'get', operationId: 'listMergeRequests', summary: 'List merge requests', parameters: [{ name: 'id', in: 'path', schema: { type: 'string' } }] },\n { path: '/projects/{id}/pipelines', method: 'get', operationId: 'listPipelines', summary: 'List CI/CD pipelines', parameters: [{ name: 'id', in: 'path', schema: { type: 'string' } }] },\n ],\n }),\n },\n {\n id: 'jira',\n name: 'Jira Software Cloud API',\n description: 'Atlassian Jira project tracking, issues, sprints, boards, and workflows.',\n category: 'Developer Tools',\n authType: 'Basic (JIRA_EMAIL:JIRA_API_TOKEN)',\n authEnvVar: 'JIRA_API_TOKEN',\n defaultBaseUrl: 'https://your-domain.atlassian.net/rest/api/3',\n tags: ['agile', 'sprints', 'tickets', 'scrum', 'kanban'],\n fieldMasks: [\n { path: '/search', fields: ['issues.id', 'issues.key', 'issues.fields.summary', 'issues.fields.status.name'] },\n ],\n bundledSpec: buildOpenAPISpec({\n title: 'Jira Software Cloud API',\n baseUrl: 'https://your-domain.atlassian.net/rest/api/3',\n description: 'Atlassian Jira Cloud REST API',\n securityScheme: { name: 'basicAuth', type: 'http', scheme: 'basic' },\n endpoints: [\n { path: '/myself', method: 'get', operationId: 'getCurrentUser', summary: 'Get current user profile' },\n { path: '/project', method: 'get', operationId: 'listProjects', summary: 'List projects' },\n { path: '/issue/{issueIdOrKey}', method: 'get', operationId: 'getIssue', summary: 'Get Jira issue details', parameters: [{ name: 'issueIdOrKey', in: 'path', schema: { type: 'string' } }] },\n { path: '/issue', method: 'post', operationId: 'createIssue', summary: 'Create new Jira issue', requestBody: { properties: { fields: { type: 'object' } } } },\n { path: '/search', method: 'get', operationId: 'searchIssuesJql', summary: 'Search issues using JQL', parameters: [{ name: 'jql', in: 'query', schema: { type: 'string' } }] },\n ],\n }),\n },\n {\n id: 'linear',\n name: 'Linear API',\n description: 'Fast project tracking, issues, milestones, teams, and cycles.',\n category: 'Developer Tools',\n authType: 'Bearer (LINEAR_API_KEY)',\n authEnvVar: 'LINEAR_API_KEY',\n defaultBaseUrl: 'https://api.linear.app',\n tags: ['issues', 'roadmap', 'cycles', 'product'],\n fieldMasks: [\n { path: '/issues', fields: ['data.id', 'data.title', 'data.state.name', 'data.priority', 'data.assignee.name'] },\n ],\n macros: [\n {\n name: 'createTeamIssue',\n description: 'Creates a new issue in a team and assigns priority',\n parameters: {\n type: 'object',\n properties: {\n teamId: { type: 'string' },\n title: { type: 'string' },\n description: { type: 'string' },\n priority: { type: 'integer' },\n },\n required: ['teamId', 'title'],\n },\n steps: [\n { id: 'createIssue', action: 'POST /issues', body: { teamId: '{{teamId}}', title: '{{title}}', description: '{{description}}', priority: '{{priority}}' } },\n ],\n },\n ],\n bundledSpec: buildOpenAPISpec({\n title: 'Linear API',\n baseUrl: 'https://api.linear.app',\n description: 'Linear Issue Tracking REST API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/viewer', method: 'get', operationId: 'getViewer', summary: 'Get current user profile' },\n { path: '/teams', method: 'get', operationId: 'listTeams', summary: 'List all teams' },\n { path: '/issues', method: 'get', operationId: 'listIssues', summary: 'List recent issues', parameters: [{ name: 'teamId', in: 'query', schema: { type: 'string' } }] },\n { path: '/issues', method: 'post', operationId: 'createIssue', summary: 'Create issue', requestBody: { properties: { teamId: { type: 'string' }, title: { type: 'string' }, description: { type: 'string' } } } },\n { path: '/projects', method: 'get', operationId: 'listProjects', summary: 'List roadmap projects' },\n ],\n }),\n },\n {\n id: 'sentry',\n name: 'Sentry API',\n description: 'Application error monitoring, performance telemetry, release tracking, and alerting.',\n category: 'Developer Tools',\n authType: 'Bearer (SENTRY_AUTH_TOKEN)',\n authEnvVar: 'SENTRY_AUTH_TOKEN',\n defaultBaseUrl: 'https://sentry.io/api/0',\n tags: ['errors', 'crash-reporting', 'performance', 'alerts'],\n fieldMasks: [\n { path: '/projects/{organization_slug}/{project_slug}/issues/', fields: ['id', 'title', 'culprit', 'count', 'lastSeen', 'status'] },\n ],\n bundledSpec: buildOpenAPISpec({\n title: 'Sentry API',\n baseUrl: 'https://sentry.io/api/0',\n description: 'Sentry Error & Performance Telemetry API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/organizations/', method: 'get', operationId: 'listOrganizations', summary: 'List organizations' },\n { path: '/projects/', method: 'get', operationId: 'listProjects', summary: 'List projects' },\n { path: '/projects/{organization_slug}/{project_slug}/issues/', method: 'get', operationId: 'listProjectIssues', summary: 'List project issues', parameters: [{ name: 'organization_slug', in: 'path', schema: { type: 'string' } }, { name: 'project_slug', in: 'path', schema: { type: 'string' } }] },\n { path: '/issues/{issue_id}/', method: 'get', operationId: 'getIssueDetails', summary: 'Get error issue details', parameters: [{ name: 'issue_id', in: 'path', schema: { type: 'string' } }] },\n ],\n }),\n },\n {\n id: 'datadog',\n name: 'Datadog API',\n description: 'Infrastructure metrics, distributed traces, logs, synthetic tests, and dashboards.',\n category: 'Developer Tools',\n authType: 'Header (DD-API-KEY / DD-APPLICATION-KEY)',\n authEnvVar: 'DATADOG_API_KEY',\n defaultBaseUrl: 'https://api.datadoghq.com/api/v2',\n tags: ['metrics', 'traces', 'logs', 'observability'],\n bundledSpec: buildOpenAPISpec({\n title: 'Datadog API',\n baseUrl: 'https://api.datadoghq.com/api/v2',\n description: 'Datadog Metrics & Telemetry API',\n securityScheme: { name: 'apiKeyAuth', type: 'apiKey', in: 'header', headerName: 'DD-API-KEY' },\n endpoints: [\n { path: '/metrics', method: 'get', operationId: 'listMetrics', summary: 'List metrics' },\n { path: '/logs/events/search', method: 'post', operationId: 'searchLogs', summary: 'Search log events', requestBody: { properties: { filter: { type: 'object' } } } },\n { path: '/monitors', method: 'get', operationId: 'listMonitors', summary: 'List monitors' },\n ],\n }),\n },\n {\n id: 'postman',\n name: 'Postman API',\n description: 'Manage Postman workspaces, API collections, environments, and mock servers.',\n category: 'Developer Tools',\n authType: 'Header (X-Api-Key)',\n authEnvVar: 'POSTMAN_API_KEY',\n defaultBaseUrl: 'https://api.getpostman.com',\n tags: ['api-testing', 'collections', 'documentation', 'mocks'],\n bundledSpec: buildOpenAPISpec({\n title: 'Postman API',\n baseUrl: 'https://api.getpostman.com',\n description: 'Postman Workspaces & Collections API',\n securityScheme: { name: 'apiKeyAuth', type: 'apiKey', in: 'header', headerName: 'X-Api-Key' },\n endpoints: [\n { path: '/me', method: 'get', operationId: 'getMe', summary: 'Get authenticated user' },\n { path: '/workspaces', method: 'get', operationId: 'listWorkspaces', summary: 'List workspaces' },\n { path: '/collections', method: 'get', operationId: 'listCollections', summary: 'List collections' },\n { path: '/collections/{collection_uid}', method: 'get', operationId: 'getCollection', summary: 'Get collection details', parameters: [{ name: 'collection_uid', in: 'path', schema: { type: 'string' } }] },\n ],\n }),\n },\n {\n id: 'vercel',\n name: 'Vercel API',\n description: 'Deploy frontend projects, manage custom domains, edge middleware, and serverless functions.',\n category: 'Developer Tools',\n authType: 'Bearer (VERCEL_TOKEN)',\n authEnvVar: 'VERCEL_TOKEN',\n defaultBaseUrl: 'https://api.vercel.com',\n specUrl: 'https://raw.githubusercontent.com/vercel/openapi/main/openapi.json',\n tags: ['hosting', 'deployments', 'domains', 'serverless', 'nextjs'],\n fieldMasks: [\n { path: '/v6/deployments', fields: ['deployments.uid', 'deployments.name', 'deployments.url', 'deployments.state', 'deployments.created'] },\n ],\n bundledSpec: buildOpenAPISpec({\n title: 'Vercel API',\n baseUrl: 'https://api.vercel.com',\n description: 'Vercel Platform API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/v2/user', method: 'get', operationId: 'getUser', summary: 'Get current user profile' },\n { path: '/v9/projects', method: 'get', operationId: 'listProjects', summary: 'List Vercel projects' },\n { path: '/v6/deployments', method: 'get', operationId: 'listDeployments', summary: 'List recent deployments', parameters: [{ name: 'projectId', in: 'query', schema: { type: 'string' } }] },\n { path: '/v13/deployments', method: 'post', operationId: 'createDeployment', summary: 'Create new deployment', requestBody: { properties: { name: { type: 'string' } } } },\n ],\n }),\n },\n {\n id: 'docker',\n name: 'Docker Hub API',\n description: 'Query container images, repositories, tags, and automated build webhooks.',\n category: 'Developer Tools',\n authType: 'Bearer (DOCKER_ACCESS_TOKEN)',\n authEnvVar: 'DOCKER_ACCESS_TOKEN',\n defaultBaseUrl: 'https://hub.docker.com/v2',\n tags: ['containers', 'images', 'registries', 'devops'],\n bundledSpec: buildOpenAPISpec({\n title: 'Docker Hub API',\n baseUrl: 'https://hub.docker.com/v2',\n description: 'Docker Hub Registry API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/user', method: 'get', operationId: 'getUser', summary: 'Get current user profile' },\n { path: '/repositories/{username}', method: 'get', operationId: 'listRepositories', summary: 'List repositories', parameters: [{ name: 'username', in: 'path', schema: { type: 'string' } }] },\n { path: '/repositories/{username}/{repository}/tags', method: 'get', operationId: 'listTags', summary: 'List repository tags', parameters: [{ name: 'username', in: 'path', schema: { type: 'string' } }, { name: 'repository', in: 'path', schema: { type: 'string' } }] },\n ],\n }),\n },\n {\n id: 'npm',\n name: 'NPM Registry API',\n description: 'Query packages, version metadata, maintainers, dependencies, and download statistics.',\n category: 'Developer Tools',\n authType: 'Bearer (NPM_TOKEN)',\n authEnvVar: 'NPM_TOKEN',\n defaultBaseUrl: 'https://registry.npmjs.org',\n tags: ['packages', 'javascript', 'typescript', 'modules'],\n bundledSpec: buildOpenAPISpec({\n title: 'NPM Registry API',\n baseUrl: 'https://registry.npmjs.org',\n description: 'NPM Package Registry API',\n endpoints: [\n { path: '/{package}', method: 'get', operationId: 'getPackageInfo', summary: 'Get package metadata', parameters: [{ name: 'package', in: 'path', schema: { type: 'string' } }] },\n { path: '/{package}/{version}', method: 'get', operationId: 'getPackageVersion', summary: 'Get package version metadata', parameters: [{ name: 'package', in: 'path', schema: { type: 'string' } }, { name: 'version', in: 'path', schema: { type: 'string' } }] },\n ],\n }),\n },\n {\n id: 'pagerduty',\n name: 'PagerDuty API',\n description: 'Incident response, on-call scheduling, escalations, and service health alerting.',\n category: 'Developer Tools',\n authType: 'Header (Token token=...)',\n authEnvVar: 'PAGERDUTY_TOKEN',\n defaultBaseUrl: 'https://api.pagerduty.com',\n tags: ['incidents', 'on-call', 'alerts', 'devops'],\n bundledSpec: buildOpenAPISpec({\n title: 'PagerDuty API',\n baseUrl: 'https://api.pagerduty.com',\n description: 'PagerDuty Incidents & On-call API',\n securityScheme: { name: 'tokenAuth', type: 'apiKey', in: 'header', headerName: 'Authorization' },\n endpoints: [\n { path: '/incidents', method: 'get', operationId: 'listIncidents', summary: 'List incidents', parameters: [{ name: 'statuses', in: 'query', schema: { type: 'string' } }] },\n { path: '/services', method: 'get', operationId: 'listServices', summary: 'List services' },\n { path: '/oncalls', method: 'get', operationId: 'listOnCalls', summary: 'List on-call schedules' },\n ],\n }),\n },\n {\n id: 'grafana',\n name: 'Grafana HTTP API',\n description: 'Manage dashboards, datasources, alert rules, user permissions, and telemetry visualization.',\n category: 'Developer Tools',\n authType: 'Bearer (GRAFANA_SERVICE_ACCOUNT_TOKEN)',\n authEnvVar: 'GRAFANA_TOKEN',\n defaultBaseUrl: 'https://grafana.example.com/api',\n tags: ['dashboards', 'monitoring', 'visualization', 'datasources'],\n bundledSpec: buildOpenAPISpec({\n title: 'Grafana HTTP API',\n baseUrl: 'https://grafana.example.com/api',\n description: 'Grafana Dashboards & Metrics API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/search', method: 'get', operationId: 'searchDashboards', summary: 'Search dashboards and folders', parameters: [{ name: 'query', in: 'query', schema: { type: 'string' } }] },\n { path: '/datasources', method: 'get', operationId: 'listDataSources', summary: 'List data sources' },\n { path: '/dashboards/uid/{uid}', method: 'get', operationId: 'getDashboardByUid', summary: 'Get dashboard by UID', parameters: [{ name: 'uid', in: 'path', schema: { type: 'string' } }] },\n ],\n }),\n },\n {\n id: 'opsgenie',\n name: 'OpsGenie API',\n description: 'Alert and incident management, escalation policies, and team rotations.',\n category: 'Developer Tools',\n authType: 'Header (GenieKey ...)',\n authEnvVar: 'OPSGENIE_KEY',\n defaultBaseUrl: 'https://api.opsgenie.com/v2',\n tags: ['incidents', 'escalation', 'alerts', 'oncall'],\n bundledSpec: buildOpenAPISpec({\n title: 'OpsGenie API',\n baseUrl: 'https://api.opsgenie.com/v2',\n description: 'OpsGenie Alerts & Incidents API',\n securityScheme: { name: 'genieKeyAuth', type: 'apiKey', in: 'header', headerName: 'Authorization' },\n endpoints: [\n { path: '/alerts', method: 'get', operationId: 'listAlerts', summary: 'List alerts' },\n { path: '/alerts', method: 'post', operationId: 'createAlert', summary: 'Create new alert', requestBody: { properties: { message: { type: 'string' }, priority: { type: 'string' } } } },\n { path: '/teams', method: 'get', operationId: 'listTeams', summary: 'List teams' },\n ],\n }),\n },\n];\n","import { Preset } from '../types.js';\nimport { buildOpenAPISpec } from '../builder.js';\n\nexport const CLOUD_DATABASES_PRESETS: Preset[] = [\n {\n id: 'supabase',\n name: 'Supabase Management API',\n description: 'Create and configure Postgres databases, auth policies, edge functions, and storage buckets.',\n category: 'Database & Cloud',\n authType: 'Bearer (SUPABASE_ACCESS_TOKEN)',\n authEnvVar: 'SUPABASE_ACCESS_TOKEN',\n defaultBaseUrl: 'https://api.supabase.com/v1',\n specUrl: 'https://api.supabase.com/api/v1-json',\n tags: ['postgres', 'auth', 'database', 'storage', 'edge-functions', 'baas'],\n fieldMasks: [\n { path: '/projects', fields: ['id', 'name', 'region', 'status', 'created_at'] },\n ],\n macros: [\n {\n name: 'getProjectConfig',\n description: 'Retrieves project metadata and its database status',\n parameters: {\n type: 'object',\n properties: {\n ref: { type: 'string', description: 'Supabase project ref' },\n },\n required: ['ref'],\n },\n steps: [\n { id: 'getProject', action: 'GET /projects/{{ref}}' },\n { id: 'getHealth', action: 'GET /projects/{{ref}}/health?services=db' },\n ],\n },\n ],\n bundledSpec: buildOpenAPISpec({\n title: 'Supabase Management API',\n baseUrl: 'https://api.supabase.com/v1',\n description: 'Supabase Cloud Management REST API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/projects', method: 'get', operationId: 'getProjects', summary: 'List all Supabase projects' },\n { path: '/projects/{ref}', method: 'get', operationId: 'getProject', summary: 'Get project details', parameters: [{ name: 'ref', in: 'path', schema: { type: 'string' } }] },\n {\n path: '/projects/{ref}/health',\n method: 'get',\n operationId: 'getProjectHealth',\n summary: 'Get database health status',\n parameters: [\n { name: 'ref', in: 'path', schema: { type: 'string' } },\n { name: 'services', in: 'query', schema: { type: 'string', default: 'db' }, description: 'Service name (e.g. db, auth, storage, realtime, pooler)' },\n ],\n },\n { path: '/organizations', method: 'get', operationId: 'getOrganizations', summary: 'List organizations' },\n { path: '/projects/{ref}/functions', method: 'get', operationId: 'getFunctions', summary: 'List Edge Functions', parameters: [{ name: 'ref', in: 'path', schema: { type: 'string' } }] },\n ],\n }),\n },\n {\n id: 'cloudflare',\n name: 'Cloudflare API',\n description: 'Manage DNS records, Cloudflare Workers, KV, R2 storage buckets, and firewall rules.',\n category: 'Database & Cloud',\n authType: 'Bearer (CLOUDFLARE_API_TOKEN)',\n authEnvVar: 'CLOUDFLARE_API_TOKEN',\n defaultBaseUrl: 'https://api.cloudflare.com/client/v4',\n tags: ['cdn', 'dns', 'workers', 'r2', 'kv', 'edge', 'security'],\n fieldMasks: [\n { path: '/zones', fields: ['result.id', 'result.name', 'result.status', 'result.name_servers'] },\n { path: '/zones/{zone_id}/dns_records', fields: ['result.id', 'result.type', 'result.name', 'result.content', 'result.proxied'] },\n ],\n bundledSpec: buildOpenAPISpec({\n title: 'Cloudflare API',\n baseUrl: 'https://api.cloudflare.com/client/v4',\n description: 'Cloudflare Client v4 API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/user', method: 'get', operationId: 'getUserDetails', summary: 'Get user profile' },\n { path: '/zones', method: 'get', operationId: 'listZones', summary: 'List DNS zones' },\n { path: '/zones/{zone_id}/dns_records', method: 'get', operationId: 'listDnsRecords', summary: 'List DNS records for a zone', parameters: [{ name: 'zone_id', in: 'path', schema: { type: 'string' } }] },\n { path: '/zones/{zone_id}/dns_records', method: 'post', operationId: 'createDnsRecord', summary: 'Create DNS record', parameters: [{ name: 'zone_id', in: 'path', schema: { type: 'string' } }], requestBody: { properties: { type: { type: 'string' }, name: { type: 'string' }, content: { type: 'string' } } } },\n ],\n }),\n },\n {\n id: 'flyio',\n name: 'Fly.io Machines API',\n description: 'Launch and control fast lightweight micro-VMs close to users worldwide.',\n category: 'Database & Cloud',\n authType: 'Bearer (FLY_API_TOKEN)',\n authEnvVar: 'FLY_API_TOKEN',\n defaultBaseUrl: 'https://api.machines.dev/v1',\n tags: ['vms', 'hosting', 'docker', 'containers', 'edge'],\n bundledSpec: buildOpenAPISpec({\n title: 'Fly.io Machines API',\n baseUrl: 'https://api.machines.dev/v1',\n description: 'Fly.io Micro-VM Machines API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/apps', method: 'get', operationId: 'listApps', summary: 'List Fly apps' },\n { path: '/apps/{app_name}/machines', method: 'get', operationId: 'listMachines', summary: 'List machines for an app', parameters: [{ name: 'app_name', in: 'path', schema: { type: 'string' } }] },\n { path: '/apps/{app_name}/machines/{machine_id}', method: 'get', operationId: 'getMachine', summary: 'Get machine details', parameters: [{ name: 'app_name', in: 'path', schema: { type: 'string' } }, { name: 'machine_id', in: 'path', schema: { type: 'string' } }] },\n ],\n }),\n },\n {\n id: 'railway',\n name: 'Railway API',\n description: 'Deploy full-stack services, provision Postgres/Redis plugins, and manage environment variables.',\n category: 'Database & Cloud',\n authType: 'Bearer (RAILWAY_API_TOKEN)',\n authEnvVar: 'RAILWAY_API_TOKEN',\n defaultBaseUrl: 'https://backboard.railway.app/graphql/v2',\n tags: ['paas', 'hosting', 'deployments', 'databases'],\n bundledSpec: buildOpenAPISpec({\n title: 'Railway API',\n baseUrl: 'https://backboard.railway.app/graphql/v2',\n description: 'Railway Platform API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/projects', method: 'get', operationId: 'listProjects', summary: 'List Railway projects' },\n { path: '/deployments', method: 'get', operationId: 'listDeployments', summary: 'List deployments' },\n ],\n }),\n },\n {\n id: 'render',\n name: 'Render API',\n description: 'Manage web services, private services, static sites, background workers, and PostgreSQL instances.',\n category: 'Database & Cloud',\n authType: 'Bearer (RENDER_API_KEY)',\n authEnvVar: 'RENDER_API_KEY',\n defaultBaseUrl: 'https://api.render.com/v1',\n tags: ['cloud', 'hosting', 'postgres', 'cron-jobs'],\n bundledSpec: buildOpenAPISpec({\n title: 'Render API',\n baseUrl: 'https://api.render.com/v1',\n description: 'Render Cloud Services API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/services', method: 'get', operationId: 'listServices', summary: 'List Render services' },\n { path: '/services/{serviceId}', method: 'get', operationId: 'getService', summary: 'Get service details', parameters: [{ name: 'serviceId', in: 'path', schema: { type: 'string' } }] },\n { path: '/postgres', method: 'get', operationId: 'listPostgresInstances', summary: 'List PostgreSQL databases' },\n ],\n }),\n },\n {\n id: 'neon',\n name: 'Neon Serverless Postgres API',\n description: 'Serverless branching PostgreSQL databases with instant cold starts and autoscaling.',\n category: 'Database & Cloud',\n authType: 'Bearer (NEON_API_KEY)',\n authEnvVar: 'NEON_API_KEY',\n defaultBaseUrl: 'https://console.neon.tech/api/v2',\n specUrl: 'https://neon.tech/api_spec/release/v2.json',\n tags: ['postgres', 'serverless', 'branching', 'sql'],\n fieldMasks: [\n { path: '/projects', fields: ['projects[*].id', 'projects[*].name', 'projects[*].region_id', 'projects[*].created_at'] },\n ],\n bundledSpec: buildOpenAPISpec({\n title: 'Neon Serverless Postgres API',\n baseUrl: 'https://console.neon.tech/api/v2',\n description: 'Neon Database Branching API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/users/me/organizations', method: 'get', operationId: 'getCurrentUserOrganizations', summary: 'List organizations for the current user' },\n {\n path: '/projects',\n method: 'get',\n operationId: 'listProjects',\n summary: 'List Neon projects',\n parameters: [\n { name: 'org_id', in: 'query', schema: { type: 'string' }, description: 'Neon Organization ID' },\n { name: 'limit', in: 'query', schema: { type: 'integer' }, description: 'The maximum number of projects to return' },\n { name: 'cursor', in: 'query', schema: { type: 'string' }, description: 'Pagination cursor' },\n { name: 'search', in: 'query', schema: { type: 'string' }, description: 'Search query to filter projects by name' },\n ],\n },\n { path: '/projects/{project_id}', method: 'get', operationId: 'getProject', summary: 'Get project details', parameters: [{ name: 'project_id', in: 'path', schema: { type: 'string' } }] },\n { path: '/projects/{project_id}/branches', method: 'get', operationId: 'listBranches', summary: 'List database branches', parameters: [{ name: 'project_id', in: 'path', schema: { type: 'string' } }] },\n { path: '/projects/{project_id}/branches', method: 'post', operationId: 'createBranch', summary: 'Create new database branch', parameters: [{ name: 'project_id', in: 'path', schema: { type: 'string' } }], requestBody: { properties: { branch: { type: 'object' } } } },\n ],\n }),\n },\n {\n id: 'upstash',\n name: 'Upstash Serverless Redis & QStash API',\n description: 'Serverless low-latency Redis cache, Vector database, and QStash message queuing.',\n category: 'Database & Cloud',\n authType: 'Bearer (UPSTASH_EMAIL:UPSTASH_API_KEY)',\n authEnvVar: 'UPSTASH_API_KEY',\n defaultBaseUrl: 'https://api.upstash.com/v2',\n tags: ['redis', 'vector', 'queue', 'serverless', 'caching'],\n bundledSpec: buildOpenAPISpec({\n title: 'Upstash Serverless Redis API',\n baseUrl: 'https://api.upstash.com/v2',\n description: 'Upstash Serverless Data Platform API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/redis/databases', method: 'get', operationId: 'listRedisDatabases', summary: 'List Redis databases' },\n { path: '/redis/database/{id}', method: 'get', operationId: 'getRedisDatabase', summary: 'Get database metadata', parameters: [{ name: 'id', in: 'path', schema: { type: 'string' } }] },\n { path: '/vector/indexes', method: 'get', operationId: 'listVectorIndexes', summary: 'List Vector indexes' },\n ],\n }),\n },\n {\n id: 'planetscale',\n name: 'PlanetScale API',\n description: 'Serverless MySQL platform with zero-downtime schema migrations and branch merging.',\n category: 'Database & Cloud',\n authType: 'Bearer (PLANETSCALE_SERVICE_TOKEN)',\n authEnvVar: 'PLANETSCALE_TOKEN',\n defaultBaseUrl: 'https://api.planetscale.com/v1',\n tags: ['mysql', 'database', 'branching', 'serverless'],\n bundledSpec: buildOpenAPISpec({\n title: 'PlanetScale API',\n baseUrl: 'https://api.planetscale.com/v1',\n description: 'PlanetScale Serverless MySQL API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/organizations', method: 'get', operationId: 'listOrganizations', summary: 'List organizations' },\n { path: '/organizations/{organization}/databases', method: 'get', operationId: 'listDatabases', summary: 'List databases', parameters: [{ name: 'organization', in: 'path', schema: { type: 'string' } }] },\n { path: '/organizations/{organization}/databases/{database}/branches', method: 'get', operationId: 'listDatabaseBranches', summary: 'List database branches', parameters: [{ name: 'organization', in: 'path', schema: { type: 'string' } }, { name: 'database', in: 'path', schema: { type: 'string' } }] },\n ],\n }),\n },\n];\n","import { Preset } from '../types.js';\nimport { buildOpenAPISpec } from '../builder.js';\n\nexport const PAYMENTS_COMMERCE_PRESETS: Preset[] = [\n {\n id: 'stripe',\n name: 'Stripe API',\n description: 'Process payments, create customer subscriptions, issue refunds, manage invoices, and dispute balances.',\n category: 'Payments & Commerce',\n authType: 'Bearer (STRIPE_SECRET_KEY)',\n authEnvVar: 'STRIPE_SECRET_KEY',\n defaultBaseUrl: 'https://api.stripe.com/v1',\n specUrl: 'https://raw.githubusercontent.com/stripe/openapi/master/openapi/spec3.json',\n tags: ['payments', 'billing', 'invoices', 'cards', 'subscriptions', 'refunds'],\n fieldMasks: [\n { path: '/v1/charges', fields: ['id', 'amount', 'currency', 'customer', 'status', 'refunded'] },\n { path: '/v1/refunds', fields: ['id', 'amount', 'currency', 'charge', 'status', 'reason'] },\n { path: '/v1/customers', fields: ['id', 'email', 'name', 'balance', 'created'] },\n ],\n macros: [\n {\n name: 'refundCustomerCharge',\n description: 'Looks up the latest charge for a customer and issues a refund',\n parameters: {\n type: 'object',\n properties: {\n customer: { type: 'string', description: 'Stripe customer ID' },\n reason: { type: 'string', description: 'Reason for refund' },\n },\n required: ['customer'],\n },\n steps: [\n { id: 'listCharges', action: 'GET /v1/charges?customer={{customer}}&limit=1', export: { chargeId: 'data[0].id' } },\n { id: 'createRefund', action: 'POST /v1/refunds', body: { charge: '{{chargeId}}', reason: '{{reason}}' } },\n ],\n },\n ],\n bundledSpec: buildOpenAPISpec({\n title: 'Stripe API',\n baseUrl: 'https://api.stripe.com/v1',\n description: 'Stripe Payments and Subscriptions API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/v1/charges', method: 'get', operationId: 'listCharges', summary: 'List charges', parameters: [{ name: 'customer', in: 'query', schema: { type: 'string' } }, { name: 'limit', in: 'query', schema: { type: 'integer' } }] },\n { path: '/v1/charges', method: 'post', operationId: 'createCharge', summary: 'Create charge', requestBody: { properties: { amount: { type: 'integer' }, currency: { type: 'string' }, source: { type: 'string' } } } },\n { path: '/v1/refunds', method: 'get', operationId: 'listRefunds', summary: 'List refunds' },\n { path: '/v1/refunds', method: 'post', operationId: 'createRefund', summary: 'Create refund', requestBody: { properties: { charge: { type: 'string' }, amount: { type: 'integer' }, reason: { type: 'string' } } } },\n { path: '/v1/customers', method: 'get', operationId: 'listCustomers', summary: 'List customers', parameters: [{ name: 'email', in: 'query', schema: { type: 'string' } }] },\n { path: '/v1/customers', method: 'post', operationId: 'createCustomer', summary: 'Create customer', requestBody: { properties: { email: { type: 'string' }, name: { type: 'string' } } } },\n ],\n }),\n },\n {\n id: 'shopify',\n name: 'Shopify Admin API',\n description: 'Manage store products, orders, inventory levels, collections, and customer accounts.',\n category: 'Payments & Commerce',\n authType: 'Header (X-Shopify-Access-Token)',\n authEnvVar: 'SHOPIFY_ACCESS_TOKEN',\n defaultBaseUrl: 'https://{shop}.myshopify.com/admin/api/2024-01',\n tags: ['ecommerce', 'products', 'orders', 'inventory', 'storefront'],\n fieldMasks: [\n { path: '/products.json', fields: ['products.id', 'products.title', 'products.vendor', 'products.status', 'products.variants'] },\n { path: '/orders.json', fields: ['orders.id', 'orders.name', 'orders.total_price', 'orders.financial_status', 'orders.created_at'] },\n ],\n bundledSpec: buildOpenAPISpec({\n title: 'Shopify Admin API',\n baseUrl: 'https://example-shop.myshopify.com/admin/api/2024-01',\n description: 'Shopify Storefront & Admin API',\n securityScheme: { name: 'shopifyAuth', type: 'apiKey', in: 'header', headerName: 'X-Shopify-Access-Token' },\n endpoints: [\n { path: '/products.json', method: 'get', operationId: 'listProducts', summary: 'List store products' },\n { path: '/products/{id}.json', method: 'get', operationId: 'getProduct', summary: 'Get product details', parameters: [{ name: 'id', in: 'path', schema: { type: 'string' } }] },\n { path: '/orders.json', method: 'get', operationId: 'listOrders', summary: 'List store orders' },\n { path: '/customers.json', method: 'get', operationId: 'listCustomers', summary: 'List store customers' },\n ],\n }),\n },\n {\n id: 'paypal',\n name: 'PayPal REST API',\n description: 'Create checkout orders, manage subscriptions, process payouts, and handle buyer disputes.',\n category: 'Payments & Commerce',\n authType: 'Bearer (PAYPAL_ACCESS_TOKEN)',\n authEnvVar: 'PAYPAL_ACCESS_TOKEN',\n defaultBaseUrl: 'https://api-m.paypal.com',\n tags: ['payments', 'checkout', 'payouts', 'orders'],\n fieldMasks: [\n { path: '/v2/checkout/orders/{id}', fields: ['id', 'status', 'intent', 'purchase_units.amount'] },\n ],\n bundledSpec: buildOpenAPISpec({\n title: 'PayPal REST API',\n baseUrl: 'https://api-m.paypal.com',\n description: 'PayPal Checkout & Payments API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/v2/checkout/orders', method: 'post', operationId: 'createOrder', summary: 'Create checkout order', requestBody: { properties: { intent: { type: 'string' }, purchase_units: { type: 'array' } } } },\n { path: '/v2/checkout/orders/{id}', method: 'get', operationId: 'getOrder', summary: 'Get order details', parameters: [{ name: 'id', in: 'path', schema: { type: 'string' } }] },\n { path: '/v2/checkout/orders/{id}/capture', method: 'post', operationId: 'captureOrder', summary: 'Capture order payment', parameters: [{ name: 'id', in: 'path', schema: { type: 'string' } }] },\n ],\n }),\n },\n {\n id: 'square',\n name: 'Square API',\n description: 'Point-of-sale terminal transactions, catalog items, customers, and merchant inventory.',\n category: 'Payments & Commerce',\n authType: 'Bearer (SQUARE_ACCESS_TOKEN)',\n authEnvVar: 'SQUARE_ACCESS_TOKEN',\n defaultBaseUrl: 'https://connect.squareup.com/v2',\n tags: ['pos', 'merchant', 'payments', 'catalog', 'inventory'],\n bundledSpec: buildOpenAPISpec({\n title: 'Square API',\n baseUrl: 'https://connect.squareup.com/v2',\n description: 'Square Merchant & Payments API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/locations', method: 'get', operationId: 'listLocations', summary: 'List business locations' },\n { path: '/payments', method: 'get', operationId: 'listPayments', summary: 'List processed payments' },\n { path: '/catalog/list', method: 'get', operationId: 'listCatalog', summary: 'List catalog items' },\n ],\n }),\n },\n {\n id: 'chargebee',\n name: 'Chargebee API',\n description: 'SaaS subscription billing, revenue recognition, metered usage, and invoice automation.',\n category: 'Payments & Commerce',\n authType: 'Basic (CHARGEBEE_API_KEY:)',\n authEnvVar: 'CHARGEBEE_API_KEY',\n defaultBaseUrl: 'https://{site}.chargebee.com/api/v2',\n tags: ['subscriptions', 'saas', 'billing', 'invoices'],\n bundledSpec: buildOpenAPISpec({\n title: 'Chargebee API',\n baseUrl: 'https://example-site.chargebee.com/api/v2',\n description: 'Chargebee Subscription Management API',\n securityScheme: { name: 'basicAuth', type: 'http', scheme: 'basic' },\n endpoints: [\n { path: '/subscriptions', method: 'get', operationId: 'listSubscriptions', summary: 'List subscriptions' },\n { path: '/invoices', method: 'get', operationId: 'listInvoices', summary: 'List customer invoices' },\n { path: '/customers', method: 'get', operationId: 'listCustomers', summary: 'List billing customers' },\n ],\n }),\n },\n {\n id: 'paddle',\n name: 'Paddle Billing API',\n description: 'Merchant of Record billing, global sales tax compliance, checkout, and subscriptions.',\n category: 'Payments & Commerce',\n authType: 'Bearer (PADDLE_API_KEY)',\n authEnvVar: 'PADDLE_API_KEY',\n defaultBaseUrl: 'https://api.paddle.com',\n tags: ['mor', 'billing', 'taxes', 'checkout', 'saas'],\n bundledSpec: buildOpenAPISpec({\n title: 'Paddle Billing API',\n baseUrl: 'https://api.paddle.com',\n description: 'Paddle Merchant of Record API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/products', method: 'get', operationId: 'listProducts', summary: 'List catalog products' },\n { path: '/prices', method: 'get', operationId: 'listPrices', summary: 'List product prices' },\n { path: '/subscriptions', method: 'get', operationId: 'listSubscriptions', summary: 'List active subscriptions' },\n ],\n }),\n },\n {\n id: 'plaid',\n name: 'Plaid API',\n description: 'Connect user bank accounts, verify balances, retrieve transaction history, and auth ACH transfers.',\n category: 'Payments & Commerce',\n authType: 'Header (PLAID-CLIENT-ID / PLAID-SECRET)',\n authEnvVar: 'PLAID_SECRET',\n defaultBaseUrl: 'https://production.plaid.com',\n tags: ['banking', 'ach', 'transactions', 'fintech', 'balances'],\n fieldMasks: [\n { path: '/accounts/balance/get', fields: ['accounts.account_id', 'accounts.name', 'accounts.balances.current', 'accounts.balances.iso_currency_code'] },\n ],\n bundledSpec: buildOpenAPISpec({\n title: 'Plaid API',\n baseUrl: 'https://production.plaid.com',\n description: 'Plaid Open Banking API',\n securityScheme: { name: 'plaidAuth', type: 'apiKey', in: 'header', headerName: 'PLAID-SECRET' },\n endpoints: [\n { path: '/accounts/balance/get', method: 'post', operationId: 'getBalances', summary: 'Retrieve account balances', requestBody: { properties: { access_token: { type: 'string' } } } },\n { path: '/transactions/sync', method: 'post', operationId: 'syncTransactions', summary: 'Sync bank transactions', requestBody: { properties: { access_token: { type: 'string' } } } },\n ],\n }),\n },\n {\n id: 'brex',\n name: 'Brex API',\n description: 'Corporate card management, expense budgets, team transaction approvals, and vendor payments.',\n category: 'Payments & Commerce',\n authType: 'Bearer (BREX_API_KEY)',\n authEnvVar: 'BREX_API_KEY',\n defaultBaseUrl: 'https://platform.brexapis.com/v2',\n tags: ['cards', 'expenses', 'banking', 'fintech'],\n bundledSpec: buildOpenAPISpec({\n title: 'Brex API',\n baseUrl: 'https://platform.brexapis.com/v2',\n description: 'Brex Corporate Spend Management API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/accounts', method: 'get', operationId: 'listAccounts', summary: 'List cash accounts' },\n { path: '/transactions/card/primary', method: 'get', operationId: 'listCardTransactions', summary: 'List primary card transactions' },\n { path: '/users/me', method: 'get', operationId: 'getMe', summary: 'Get current user profile' },\n ],\n }),\n },\n {\n id: 'ramp',\n name: 'Ramp Developer API',\n description: 'Spend management, employee corporate cards, expense policies, and accounting synchronization.',\n category: 'Payments & Commerce',\n authType: 'Bearer (RAMP_CLIENT_SECRET)',\n authEnvVar: 'RAMP_SECRET',\n defaultBaseUrl: 'https://api.ramp.com/developer/v1',\n tags: ['spend-management', 'cards', 'expenses', 'accounting'],\n bundledSpec: buildOpenAPISpec({\n title: 'Ramp Developer API',\n baseUrl: 'https://api.ramp.com/developer/v1',\n description: 'Ramp Corporate Card & Spend API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/users', method: 'get', operationId: 'listUsers', summary: 'List company users' },\n { path: '/cards', method: 'get', operationId: 'listCards', summary: 'List issued corporate cards' },\n { path: '/transactions', method: 'get', operationId: 'listTransactions', summary: 'List spend transactions' },\n ],\n }),\n },\n];\n","import { Preset } from '../types.js';\nimport { buildOpenAPISpec } from '../builder.js';\n\nexport const COMMUNICATION_AI_PRESETS: Preset[] = [\n {\n id: 'resend',\n name: 'Resend Email API',\n description: 'Developer-first transactional email delivery, domains, batch sends, and webhooks.',\n category: 'Communication & AI',\n authType: 'Bearer (RESEND_API_KEY)',\n authEnvVar: 'RESEND_API_KEY',\n defaultBaseUrl: 'https://api.resend.com',\n specUrl: 'https://raw.githubusercontent.com/resend/resend-openapi/main/openapi.json',\n tags: ['email', 'transactional', 'domains', 'deliverability'],\n fieldMasks: [\n { path: '/emails', fields: ['id', 'from', 'to', 'subject', 'created_at'] },\n ],\n macros: [\n {\n name: 'sendTransactionalEmail',\n description: 'Sends an email and returns the delivery status identifier',\n parameters: {\n type: 'object',\n properties: {\n from: { type: 'string', description: 'Sender address (e.g. onbording@resend.dev)' },\n to: { type: 'string', description: 'Recipient email address' },\n subject: { type: 'string', description: 'Email subject line' },\n html: { type: 'string', description: 'HTML body content' },\n },\n required: ['from', 'to', 'subject', 'html'],\n },\n steps: [\n { id: 'sendEmail', action: 'POST /emails', body: { from: '{{from}}', to: '{{to}}', subject: '{{subject}}', html: '{{html}}' } },\n ],\n },\n ],\n bundledSpec: buildOpenAPISpec({\n title: 'Resend Email API',\n baseUrl: 'https://api.resend.com',\n description: 'Resend Transactional Email REST API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/emails', method: 'post', operationId: 'sendEmail', summary: 'Send email message', requestBody: { properties: { from: { type: 'string' }, to: { type: 'string' }, subject: { type: 'string' }, html: { type: 'string' } } } },\n { path: '/emails/{id}', method: 'get', operationId: 'getEmail', summary: 'Get sent email status', parameters: [{ name: 'id', in: 'path', schema: { type: 'string' } }] },\n { path: '/domains', method: 'get', operationId: 'listDomains', summary: 'List verified sending domains' },\n { path: '/api-keys', method: 'get', operationId: 'listApiKeys', summary: 'List API keys' },\n ],\n }),\n },\n {\n id: 'sendgrid',\n name: 'Twilio SendGrid API',\n description: 'High-volume marketing email campaigns, transactional templates, and sender validation.',\n category: 'Communication & AI',\n authType: 'Bearer (SENDGRID_API_KEY)',\n authEnvVar: 'SENDGRID_API_KEY',\n defaultBaseUrl: 'https://api.sendgrid.com/v3',\n tags: ['email', 'templates', 'marketing', 'deliverability'],\n bundledSpec: buildOpenAPISpec({\n title: 'SendGrid API',\n baseUrl: 'https://api.sendgrid.com/v3',\n description: 'SendGrid Email API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/mail/send', method: 'post', operationId: 'sendMail', summary: 'Send mail via v3 engine', requestBody: { properties: { personalizations: { type: 'array' }, from: { type: 'object' }, content: { type: 'array' } } } },\n { path: '/templates', method: 'get', operationId: 'listTemplates', summary: 'List email dynamic templates' },\n ],\n }),\n },\n {\n id: 'twilio',\n name: 'Twilio Programmable Messaging & Voice API',\n description: 'Send SMS messages, make voice calls, verify phone numbers, and handle WhatsApp messaging.',\n category: 'Communication & AI',\n authType: 'Basic (TWILIO_ACCOUNT_SID:TWILIO_AUTH_TOKEN)',\n authEnvVar: 'TWILIO_AUTH_TOKEN',\n defaultBaseUrl: 'https://api.twilio.com/2010-04-01',\n tags: ['sms', 'voice', 'whatsapp', '2fa', 'telephony'],\n bundledSpec: buildOpenAPISpec({\n title: 'Twilio Programmable Messaging API',\n baseUrl: 'https://api.twilio.com/2010-04-01',\n description: 'Twilio REST API',\n securityScheme: { name: 'basicAuth', type: 'http', scheme: 'basic' },\n endpoints: [\n { path: '/Accounts/{AccountSid}/Messages.json', method: 'post', operationId: 'sendSms', summary: 'Send SMS message', parameters: [{ name: 'AccountSid', in: 'path', schema: { type: 'string' } }], requestBody: { properties: { To: { type: 'string' }, From: { type: 'string' }, Body: { type: 'string' } } } },\n { path: '/Accounts/{AccountSid}/Messages.json', method: 'get', operationId: 'listMessages', summary: 'List sent messages', parameters: [{ name: 'AccountSid', in: 'path', schema: { type: 'string' } }] },\n ],\n }),\n },\n {\n id: 'postmark',\n name: 'Postmark API',\n description: 'Fast reliable transactional email delivery, message bounce tracking, and inbound processing.',\n category: 'Communication & AI',\n authType: 'Header (X-Postmark-Server-Token)',\n authEnvVar: 'POSTMARK_SERVER_TOKEN',\n defaultBaseUrl: 'https://api.postmarkapp.com',\n tags: ['email', 'bounces', 'transactional', 'inbound'],\n bundledSpec: buildOpenAPISpec({\n title: 'Postmark API',\n baseUrl: 'https://api.postmarkapp.com',\n description: 'Postmark Transactional Delivery API',\n securityScheme: { name: 'serverToken', type: 'apiKey', in: 'header', headerName: 'X-Postmark-Server-Token' },\n endpoints: [\n { path: '/email', method: 'post', operationId: 'sendSingleEmail', summary: 'Send single email', requestBody: { properties: { From: { type: 'string' }, To: { type: 'string' }, Subject: { type: 'string' }, HtmlBody: { type: 'string' } } } },\n { path: '/bounces', method: 'get', operationId: 'listBounces', summary: 'List bounced emails' },\n ],\n }),\n },\n {\n id: 'openai',\n name: 'OpenAI API',\n description: 'Chat completions, embeddings, Assistants, image generation (DALL·E), and audio transcription (Whisper).',\n category: 'Communication & AI',\n authType: 'Bearer (OPENAI_API_KEY)',\n authEnvVar: 'OPENAI_API_KEY',\n defaultBaseUrl: 'https://api.openai.com/v1',\n specUrl: 'https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml',\n tags: ['llm', 'ai', 'gpt4', 'embeddings', 'whisper', 'vision'],\n bundledSpec: buildOpenAPISpec({\n title: 'OpenAI API',\n baseUrl: 'https://api.openai.com/v1',\n description: 'OpenAI Model Inference & Embeddings API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/models', method: 'get', operationId: 'listModels', summary: 'List available OpenAI models' },\n { path: '/chat/completions', method: 'post', operationId: 'createChatCompletion', summary: 'Create chat completion', requestBody: { properties: { model: { type: 'string' }, messages: { type: 'array' } } } },\n { path: '/embeddings', method: 'post', operationId: 'createEmbedding', summary: 'Create embedding vector', requestBody: { properties: { model: { type: 'string' }, input: { type: 'string' } } } },\n ],\n }),\n },\n {\n id: 'anthropic',\n name: 'Anthropic Claude API',\n description: 'Claude 3.5 Sonnet, Haiku, and Opus chat messages, tool calling, and long-context processing.',\n category: 'Communication & AI',\n authType: 'Header (x-api-key)',\n authEnvVar: 'ANTHROPIC_API_KEY',\n defaultBaseUrl: 'https://api.anthropic.com/v1',\n tags: ['llm', 'ai', 'claude', 'reasoning', 'coding'],\n bundledSpec: buildOpenAPISpec({\n title: 'Anthropic Claude API',\n baseUrl: 'https://api.anthropic.com/v1',\n description: 'Anthropic Claude Chat & Tool Calling API',\n securityScheme: { name: 'apiKeyAuth', type: 'apiKey', in: 'header', headerName: 'x-api-key' },\n endpoints: [\n { path: '/messages', method: 'post', operationId: 'createMessage', summary: 'Send message to Claude', requestBody: { properties: { model: { type: 'string' }, max_tokens: { type: 'integer' }, messages: { type: 'array' } } } },\n ],\n }),\n },\n {\n id: 'mistral',\n name: 'Mistral AI API',\n description: 'Mistral Large, Codestral, Pixtral, and embeddings inference endpoints.',\n category: 'Communication & AI',\n authType: 'Bearer (MISTRAL_API_KEY)',\n authEnvVar: 'MISTRAL_API_KEY',\n defaultBaseUrl: 'https://api.mistral.ai/v1',\n tags: ['llm', 'ai', 'mistral', 'codestral', 'open-weights'],\n bundledSpec: buildOpenAPISpec({\n title: 'Mistral AI API',\n baseUrl: 'https://api.mistral.ai/v1',\n description: 'Mistral Foundation Models API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/models', method: 'get', operationId: 'listModels', summary: 'List Mistral models' },\n { path: '/chat/completions', method: 'post', operationId: 'createChatCompletion', summary: 'Create chat completion', requestBody: { properties: { model: { type: 'string' }, messages: { type: 'array' } } } },\n ],\n }),\n },\n {\n id: 'togetherai',\n name: 'Together AI Inference API',\n description: 'Fast inference for open-source foundation models (Llama 3, Qwen, DeepSeek, Flux).',\n category: 'Communication & AI',\n authType: 'Bearer (TOGETHER_API_KEY)',\n authEnvVar: 'TOGETHER_API_KEY',\n defaultBaseUrl: 'https://api.together.xyz/v1',\n tags: ['llm', 'llama', 'flux', 'inference', 'open-source'],\n bundledSpec: buildOpenAPISpec({\n title: 'Together AI Inference API',\n baseUrl: 'https://api.together.xyz/v1',\n description: 'Together AI Open-Source Model Inference API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/models', method: 'get', operationId: 'listModels', summary: 'List models' },\n { path: '/chat/completions', method: 'post', operationId: 'createChatCompletion', summary: 'Run chat inference', requestBody: { properties: { model: { type: 'string' }, messages: { type: 'array' } } } },\n ],\n }),\n },\n {\n id: 'replicate',\n name: 'Replicate API',\n description: 'Run machine learning models in the cloud via API (image generation, voice synthesis, video).',\n category: 'Communication & AI',\n authType: 'Bearer (REPLICATE_API_TOKEN)',\n authEnvVar: 'REPLICATE_API_TOKEN',\n defaultBaseUrl: 'https://api.replicate.com/v1',\n tags: ['ml', 'diffusion', 'models', 'gpu', 'ai'],\n bundledSpec: buildOpenAPISpec({\n title: 'Replicate API',\n baseUrl: 'https://api.replicate.com/v1',\n description: 'Replicate Machine Learning API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/predictions', method: 'post', operationId: 'createPrediction', summary: 'Create model prediction', requestBody: { properties: { version: { type: 'string' }, input: { type: 'object' } } } },\n { path: '/predictions/{prediction_id}', method: 'get', operationId: 'getPrediction', summary: 'Get prediction status', parameters: [{ name: 'prediction_id', in: 'path', schema: { type: 'string' } }] },\n ],\n }),\n },\n {\n id: 'elevenlabs',\n name: 'ElevenLabs Voice AI API',\n description: 'Realistic text-to-speech synthesis, voice cloning, audio isolation, and sound effects.',\n category: 'Communication & AI',\n authType: 'Header (xi-api-key)',\n authEnvVar: 'ELEVENLABS_API_KEY',\n defaultBaseUrl: 'https://api.elevenlabs.io/v1',\n tags: ['tts', 'voice', 'audio', 'speech-synthesis'],\n bundledSpec: buildOpenAPISpec({\n title: 'ElevenLabs Voice AI API',\n baseUrl: 'https://api.elevenlabs.io/v1',\n description: 'ElevenLabs Voice Synthesis API',\n securityScheme: { name: 'apiKeyAuth', type: 'apiKey', in: 'header', headerName: 'xi-api-key' },\n endpoints: [\n { path: '/voices', method: 'get', operationId: 'listVoices', summary: 'List available voices' },\n { path: '/text-to-speech/{voice_id}', method: 'post', operationId: 'generateSpeech', summary: 'Generate speech audio', parameters: [{ name: 'voice_id', in: 'path', schema: { type: 'string' } }], requestBody: { properties: { text: { type: 'string' } } } },\n ],\n }),\n },\n {\n id: 'deepgram',\n name: 'Deepgram Speech-to-Text API',\n description: 'Real-time and pre-recorded high-accuracy speech transcription and audio intelligence.',\n category: 'Communication & AI',\n authType: 'Bearer (DEEPGRAM_API_KEY)',\n authEnvVar: 'DEEPGRAM_API_KEY',\n defaultBaseUrl: 'https://api.deepgram.com/v1',\n tags: ['stt', 'transcription', 'speech', 'audio'],\n bundledSpec: buildOpenAPISpec({\n title: 'Deepgram Speech-to-Text API',\n baseUrl: 'https://api.deepgram.com/v1',\n description: 'Deepgram Audio Transcription API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/listen', method: 'post', operationId: 'transcribeAudio', summary: 'Transcribe audio stream', requestBody: { properties: { url: { type: 'string' } } } },\n { path: '/projects', method: 'get', operationId: 'listProjects', summary: 'List Deepgram projects' },\n ],\n }),\n },\n];\n","import { Preset } from '../types.js';\nimport { buildOpenAPISpec } from '../builder.js';\n\nexport const PRODUCTIVITY_SUPPORT_PRESETS: Preset[] = [\n {\n id: 'notion',\n name: 'Notion API',\n description: 'Query and mutate Notion workspaces, databases, pages, nested blocks, and user comments.',\n category: 'Productivity & Support',\n authType: 'Bearer (NOTION_API_KEY)',\n authEnvVar: 'NOTION_API_KEY',\n defaultBaseUrl: 'https://api.notion.com/v1',\n tags: ['docs', 'wiki', 'databases', 'pages', 'notes'],\n fieldMasks: [\n { path: '/databases/{database_id}/query', fields: ['results.id', 'results.properties', 'results.url'] },\n ],\n macros: [\n {\n name: 'createDatabasePage',\n description: 'Creates a page inside a Notion database with properties',\n parameters: {\n type: 'object',\n properties: {\n database_id: { type: 'string' },\n title: { type: 'string' },\n },\n required: ['database_id', 'title'],\n },\n steps: [\n { id: 'createPage', action: 'POST /pages', body: { parent: { database_id: '{{database_id}}' }, properties: { Name: { title: [{ text: { content: '{{title}}' } }] } } } },\n ],\n },\n ],\n bundledSpec: buildOpenAPISpec({\n title: 'Notion API',\n baseUrl: 'https://api.notion.com/v1',\n description: 'Notion Workspace & Database API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/users/me', method: 'get', operationId: 'getMe', summary: 'Get current bot user' },\n { path: '/search', method: 'post', operationId: 'searchObjects', summary: 'Search pages and databases', requestBody: { properties: { query: { type: 'string' } } } },\n { path: '/databases/{database_id}', method: 'get', operationId: 'getDatabase', summary: 'Get database schema', parameters: [{ name: 'database_id', in: 'path', schema: { type: 'string' } }] },\n { path: '/databases/{database_id}/query', method: 'post', operationId: 'queryDatabase', summary: 'Query database rows', parameters: [{ name: 'database_id', in: 'path', schema: { type: 'string' } }], requestBody: { properties: { filter: { type: 'object' } } } },\n { path: '/pages', method: 'post', operationId: 'createPage', summary: 'Create new page', requestBody: { properties: { parent: { type: 'object' }, properties: { type: 'object' } } } },\n ],\n }),\n },\n {\n id: 'slack',\n name: 'Slack Web API',\n description: 'Post messages to channels, manage user groups, trigger modals, and upload file attachments.',\n category: 'Communication & AI',\n authType: 'Bearer (SLACK_BOT_TOKEN)',\n authEnvVar: 'SLACK_BOT_TOKEN',\n defaultBaseUrl: 'https://slack.com/api',\n specUrl: 'https://raw.githubusercontent.com/slackapi/slack-api-specs/master/web-api/slack_web_openapi_v2.json',\n tags: ['chat', 'messaging', 'bots', 'channels', 'collaboration', 'communication'],\n macros: [\n {\n name: 'postToChannel',\n description: 'Sends a formatted message to a specific Slack channel',\n parameters: {\n type: 'object',\n properties: {\n channel: { type: 'string', description: 'Channel ID or name' },\n text: { type: 'string', description: 'Message body' },\n },\n required: ['channel', 'text'],\n },\n steps: [\n { id: 'postMsg', action: 'POST /chat.postMessage', body: { channel: '{{channel}}', text: '{{text}}' } },\n ],\n },\n ],\n bundledSpec: buildOpenAPISpec({\n title: 'Slack Web API',\n baseUrl: 'https://slack.com/api',\n description: 'Slack Team Messaging API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/auth.test', method: 'post', operationId: 'testAuth', summary: 'Check Slack bot credentials' },\n { path: '/conversations.list', method: 'get', operationId: 'listConversations', summary: 'List public/private channels' },\n { path: '/chat.postMessage', method: 'post', operationId: 'postMessage', summary: 'Send message to channel', requestBody: { properties: { channel: { type: 'string' }, text: { type: 'string' } } } },\n { path: '/users.list', method: 'get', operationId: 'listUsers', summary: 'List workspace users' },\n ],\n }),\n },\n {\n id: 'discord',\n name: 'Discord API',\n description: 'Discord bot automation, server administration, voice channels, and rich embedded messages.',\n category: 'Communication & AI',\n authType: 'Header (Bot ...)',\n authEnvVar: 'DISCORD_BOT_TOKEN',\n defaultBaseUrl: 'https://discord.com/api/v10',\n tags: ['chat', 'gaming', 'community', 'bots', 'guilds', 'communication', 'voice'],\n bundledSpec: buildOpenAPISpec({\n title: 'Discord API',\n baseUrl: 'https://discord.com/api/v10',\n description: 'Discord Bot API',\n securityScheme: { name: 'botAuth', type: 'apiKey', in: 'header', headerName: 'Authorization' },\n endpoints: [\n { path: '/users/@me', method: 'get', operationId: 'getCurrentBotUser', summary: 'Get current bot details' },\n { path: '/channels/{channel_id}/messages', method: 'post', operationId: 'createChannelMessage', summary: 'Send message to Discord channel', parameters: [{ name: 'channel_id', in: 'path', schema: { type: 'string' } }], requestBody: { properties: { content: { type: 'string' } } } },\n { path: '/guilds/{guild_id}', method: 'get', operationId: 'getGuild', summary: 'Get guild details', parameters: [{ name: 'guild_id', in: 'path', schema: { type: 'string' } }] },\n ],\n }),\n },\n {\n id: 'airtable',\n name: 'Airtable REST API',\n description: 'Relational database sheets, record filtering, formula fields, and view automations.',\n category: 'Productivity & Support',\n authType: 'Bearer (AIRTABLE_PERSONAL_ACCESS_TOKEN)',\n authEnvVar: 'AIRTABLE_API_KEY',\n defaultBaseUrl: 'https://api.airtable.com/v0',\n tags: ['spreadsheet', 'database', 'nocode', 'tables', 'records'],\n fieldMasks: [\n { path: '/{baseId}/{tableIdOrName}', fields: ['records.id', 'records.fields', 'records.createdTime'] },\n ],\n bundledSpec: buildOpenAPISpec({\n title: 'Airtable REST API',\n baseUrl: 'https://api.airtable.com/v0',\n description: 'Airtable Database API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/{baseId}/{tableIdOrName}', method: 'get', operationId: 'listRecords', summary: 'List table records', parameters: [{ name: 'baseId', in: 'path', schema: { type: 'string' } }, { name: 'tableIdOrName', in: 'path', schema: { type: 'string' } }] },\n { path: '/{baseId}/{tableIdOrName}', method: 'post', operationId: 'createRecords', summary: 'Create table records', parameters: [{ name: 'baseId', in: 'path', schema: { type: 'string' } }, { name: 'tableIdOrName', in: 'path', schema: { type: 'string' } }], requestBody: { properties: { records: { type: 'array' } } } },\n ],\n }),\n },\n {\n id: 'asana',\n name: 'Asana API',\n description: 'Team tasks, milestones, portfolios, subtasks, custom fields, and project timelines.',\n category: 'Productivity & Support',\n authType: 'Bearer (ASANA_ACCESS_TOKEN)',\n authEnvVar: 'ASANA_ACCESS_TOKEN',\n defaultBaseUrl: 'https://app.asana.com/api/1.0',\n tags: ['tasks', 'projects', 'collaboration', 'teams'],\n bundledSpec: buildOpenAPISpec({\n title: 'Asana API',\n baseUrl: 'https://app.asana.com/api/1.0',\n description: 'Asana Task & Project Management API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/users/me', method: 'get', operationId: 'getMe', summary: 'Get current user profile' },\n { path: '/projects', method: 'get', operationId: 'listProjects', summary: 'List projects' },\n { path: '/tasks', method: 'get', operationId: 'listTasks', summary: 'List tasks', parameters: [{ name: 'project', in: 'query', schema: { type: 'string' } }] },\n { path: '/tasks', method: 'post', operationId: 'createTask', summary: 'Create task', requestBody: { properties: { data: { type: 'object' } } } },\n ],\n }),\n },\n {\n id: 'monday',\n name: 'Monday.com GraphQL/REST API',\n description: 'Work OS boards, column updates, item tracking, and workflow automation.',\n category: 'Productivity & Support',\n authType: 'Bearer (MONDAY_API_TOKEN)',\n authEnvVar: 'MONDAY_API_TOKEN',\n defaultBaseUrl: 'https://api.monday.com/v2',\n tags: ['work-management', 'boards', 'items', 'teams'],\n bundledSpec: buildOpenAPISpec({\n title: 'Monday.com API',\n baseUrl: 'https://api.monday.com/v2',\n description: 'Monday.com Work OS API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/boards', method: 'get', operationId: 'listBoards', summary: 'List boards' },\n { path: '/items', method: 'get', operationId: 'listItems', summary: 'List items' },\n ],\n }),\n },\n {\n id: 'clickup',\n name: 'ClickUp API',\n description: 'Spaces, folders, lists, task statuses, time tracking, and custom field management.',\n category: 'Productivity & Support',\n authType: 'Bearer (CLICKUP_API_TOKEN)',\n authEnvVar: 'CLICKUP_API_TOKEN',\n defaultBaseUrl: 'https://api.clickup.com/api/v2',\n tags: ['tasks', 'productivity', 'project-management', 'time-tracking'],\n bundledSpec: buildOpenAPISpec({\n title: 'ClickUp API',\n baseUrl: 'https://api.clickup.com/api/v2',\n description: 'ClickUp Work Management API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/user', method: 'get', operationId: 'getUser', summary: 'Get current user profile' },\n { path: '/team', method: 'get', operationId: 'getTeams', summary: 'Get workspaces' },\n { path: '/team/{team_id}/space', method: 'get', operationId: 'getSpaces', summary: 'List spaces in workspace', parameters: [{ name: 'team_id', in: 'path', schema: { type: 'string' } }] },\n ],\n }),\n },\n {\n id: 'trello',\n name: 'Trello REST API',\n description: 'Kanban boards, lists, cards, checklist items, and power-up webhooks.',\n category: 'Productivity & Support',\n authType: 'Query (key=...&token=...)',\n authEnvVar: 'TRELLO_TOKEN',\n defaultBaseUrl: 'https://api.trello.com/1',\n tags: ['kanban', 'cards', 'boards', 'collaboration'],\n bundledSpec: buildOpenAPISpec({\n title: 'Trello REST API',\n baseUrl: 'https://api.trello.com/1',\n description: 'Trello Kanban API',\n endpoints: [\n { path: '/members/me', method: 'get', operationId: 'getMe', summary: 'Get member details' },\n { path: '/members/me/boards', method: 'get', operationId: 'listBoards', summary: 'List member boards' },\n { path: '/cards/{id}', method: 'get', operationId: 'getCard', summary: 'Get card details', parameters: [{ name: 'id', in: 'path', schema: { type: 'string' } }] },\n ],\n }),\n },\n {\n id: 'coda',\n name: 'Coda API',\n description: 'All-in-one collaborative documents, embedded tables, pages, and interactive controls.',\n category: 'Productivity & Support',\n authType: 'Bearer (CODA_API_TOKEN)',\n authEnvVar: 'CODA_API_TOKEN',\n defaultBaseUrl: 'https://coda.io/apis/v1',\n tags: ['docs', 'spreadsheets', 'automation', 'productivity'],\n bundledSpec: buildOpenAPISpec({\n title: 'Coda API',\n baseUrl: 'https://coda.io/apis/v1',\n description: 'Coda Document & Table API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/whoami', method: 'get', operationId: 'whoAmI', summary: 'Get user info' },\n { path: '/docs', method: 'get', operationId: 'listDocs', summary: 'List docs' },\n ],\n }),\n },\n {\n id: 'zoom',\n name: 'Zoom Video Communications API',\n description: 'Schedule meetings, manage cloud recordings, handle webinars, and query user attendance.',\n category: 'Communication & AI',\n authType: 'Bearer (ZOOM_OAUTH_TOKEN)',\n authEnvVar: 'ZOOM_OAUTH_TOKEN',\n defaultBaseUrl: 'https://api.zoom.us/v2',\n tags: ['video', 'meetings', 'webinars', 'recordings', 'communication'],\n bundledSpec: buildOpenAPISpec({\n title: 'Zoom Video Communications API',\n baseUrl: 'https://api.zoom.us/v2',\n description: 'Zoom Meetings & Video API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/users/me', method: 'get', operationId: 'getMe', summary: 'Get user profile' },\n { path: '/users/{userId}/meetings', method: 'get', operationId: 'listMeetings', summary: 'List meetings', parameters: [{ name: 'userId', in: 'path', schema: { type: 'string' } }] },\n { path: '/users/{userId}/meetings', method: 'post', operationId: 'createMeeting', summary: 'Create meeting', parameters: [{ name: 'userId', in: 'path', schema: { type: 'string' } }], requestBody: { properties: { topic: { type: 'string' }, start_time: { type: 'string' } } } },\n ],\n }),\n },\n {\n id: 'zendesk',\n name: 'Zendesk Support API',\n description: 'Customer support tickets, macros, satisfaction ratings, and knowledge base articles.',\n category: 'Productivity & Support',\n authType: 'Basic (ZENDESK_EMAIL/token:ZENDESK_API_TOKEN)',\n authEnvVar: 'ZENDESK_API_TOKEN',\n defaultBaseUrl: 'https://{subdomain}.zendesk.com/api/v2',\n tags: ['support', 'helpdesk', 'tickets', 'customer-service'],\n fieldMasks: [\n { path: '/tickets.json', fields: ['tickets.id', 'tickets.subject', 'tickets.status', 'tickets.priority', 'tickets.created_at'] },\n ],\n bundledSpec: buildOpenAPISpec({\n title: 'Zendesk Support API',\n baseUrl: 'https://example.zendesk.com/api/v2',\n description: 'Zendesk Customer Support API',\n securityScheme: { name: 'basicAuth', type: 'http', scheme: 'basic' },\n endpoints: [\n { path: '/users/me.json', method: 'get', operationId: 'getMe', summary: 'Get current user' },\n { path: '/tickets.json', method: 'get', operationId: 'listTickets', summary: 'List support tickets' },\n { path: '/tickets.json', method: 'post', operationId: 'createTicket', summary: 'Create support ticket', requestBody: { properties: { ticket: { type: 'object' } } } },\n ],\n }),\n },\n {\n id: 'intercom',\n name: 'Intercom API',\n description: 'Live customer chat conversations, contact segments, outbound campaigns, and help center.',\n category: 'Productivity & Support',\n authType: 'Bearer (INTERCOM_ACCESS_TOKEN)',\n authEnvVar: 'INTERCOM_ACCESS_TOKEN',\n defaultBaseUrl: 'https://api.intercom.io',\n tags: ['chat', 'customer-support', 'conversations', 'crm'],\n bundledSpec: buildOpenAPISpec({\n title: 'Intercom API',\n baseUrl: 'https://api.intercom.io',\n description: 'Intercom Customer Communications API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/me', method: 'get', operationId: 'getMe', summary: 'Get admin profile' },\n { path: '/conversations', method: 'get', operationId: 'listConversations', summary: 'List customer conversations' },\n { path: '/contacts', method: 'get', operationId: 'listContacts', summary: 'List contacts' },\n ],\n }),\n },\n {\n id: 'front',\n name: 'Front API',\n description: 'Shared inbox collaboration, email routing rules, and multi-channel customer communications.',\n category: 'Productivity & Support',\n authType: 'Bearer (FRONT_API_TOKEN)',\n authEnvVar: 'FRONT_API_TOKEN',\n defaultBaseUrl: 'https://api2.frontapp.com',\n tags: ['shared-inbox', 'email', 'support', 'team-communication'],\n bundledSpec: buildOpenAPISpec({\n title: 'Front API',\n baseUrl: 'https://api2.frontapp.com',\n description: 'Front Shared Inbox API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/me', method: 'get', operationId: 'getMe', summary: 'Get current user' },\n { path: '/inboxes', method: 'get', operationId: 'listInboxes', summary: 'List team inboxes' },\n { path: '/conversations', method: 'get', operationId: 'listConversations', summary: 'List conversations' },\n ],\n }),\n },\n {\n id: 'helpscout',\n name: 'Help Scout Mailbox API',\n description: 'Shared team mailboxes, customer support conversations, docs articles, and beacon metrics.',\n category: 'Productivity & Support',\n authType: 'Bearer (HELPSCOUT_ACCESS_TOKEN)',\n authEnvVar: 'HELPSCOUT_ACCESS_TOKEN',\n defaultBaseUrl: 'https://api.helpscout.net/v2',\n tags: ['helpdesk', 'support', 'mailboxes', 'conversations'],\n bundledSpec: buildOpenAPISpec({\n title: 'Help Scout Mailbox API',\n baseUrl: 'https://api.helpscout.net/v2',\n description: 'Help Scout Mailbox API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/users/me', method: 'get', operationId: 'getMe', summary: 'Get current user' },\n { path: '/mailboxes', method: 'get', operationId: 'listMailboxes', summary: 'List mailboxes' },\n { path: '/conversations', method: 'get', operationId: 'listConversations', summary: 'List customer conversations' },\n ],\n }),\n },\n];\n","import { Preset } from '../types.js';\nimport { buildOpenAPISpec } from '../builder.js';\n\nexport const MEDIA_SOCIAL_PRESETS: Preset[] = [\n {\n id: 'twitter',\n name: 'X / Twitter API v2',\n description: 'Post tweets, search recent posts, query user timelines, and manage follower relationships.',\n category: 'Social & Media',\n authType: 'Bearer (TWITTER_BEARER_TOKEN)',\n authEnvVar: 'TWITTER_BEARER_TOKEN',\n defaultBaseUrl: 'https://api.twitter.com/2',\n tags: ['social', 'tweets', 'posts', 'timeline', 'media'],\n bundledSpec: buildOpenAPISpec({\n title: 'X / Twitter API v2',\n baseUrl: 'https://api.twitter.com/2',\n description: 'Twitter / X API v2',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/users/me', method: 'get', operationId: 'getMe', summary: 'Get authenticated user profile' },\n { path: '/tweets', method: 'post', operationId: 'createTweet', summary: 'Post a new tweet', requestBody: { properties: { text: { type: 'string' } } } },\n { path: '/tweets/search/recent', method: 'get', operationId: 'searchRecentTweets', summary: 'Search recent tweets', parameters: [{ name: 'query', in: 'query', schema: { type: 'string' } }] },\n ],\n }),\n },\n {\n id: 'youtube',\n name: 'YouTube Data API v3',\n description: 'Search video library, manage playlists, upload video assets, and retrieve channel analytics.',\n category: 'Social & Media',\n authType: 'Bearer / Key (YOUTUBE_API_KEY)',\n authEnvVar: 'YOUTUBE_API_KEY',\n defaultBaseUrl: 'https://www.googleapis.com/youtube/v3',\n tags: ['video', 'streaming', 'playlists', 'channels', 'media'],\n bundledSpec: buildOpenAPISpec({\n title: 'YouTube Data API v3',\n baseUrl: 'https://www.googleapis.com/youtube/v3',\n description: 'Google YouTube Data API v3',\n securityScheme: { name: 'apiKeyAuth', type: 'apiKey', in: 'query', headerName: 'key' },\n endpoints: [\n { path: '/search', method: 'get', operationId: 'searchVideos', summary: 'Search YouTube videos', parameters: [{ name: 'q', in: 'query', schema: { type: 'string' } }, { name: 'part', in: 'query', schema: { type: 'string', default: 'snippet' } }] },\n { path: '/videos', method: 'get', operationId: 'listVideos', summary: 'List video details', parameters: [{ name: 'id', in: 'query', schema: { type: 'string' } }] },\n { path: '/playlists', method: 'get', operationId: 'listPlaylists', summary: 'List channel playlists' },\n ],\n }),\n },\n {\n id: 'spotify',\n name: 'Spotify Web API',\n description: 'Query artist catalogs, search music tracks/albums, control user playback, and create playlists.',\n category: 'Social & Media',\n authType: 'Bearer (SPOTIFY_ACCESS_TOKEN)',\n authEnvVar: 'SPOTIFY_ACCESS_TOKEN',\n defaultBaseUrl: 'https://api.spotify.com/v1',\n tags: ['music', 'audio', 'playlists', 'tracks', 'playback'],\n bundledSpec: buildOpenAPISpec({\n title: 'Spotify Web API',\n baseUrl: 'https://api.spotify.com/v1',\n description: 'Spotify Music Catalog & Playback API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/me', method: 'get', operationId: 'getCurrentUser', summary: 'Get current user profile' },\n { path: '/search', method: 'get', operationId: 'searchCatalog', summary: 'Search tracks, artists, albums', parameters: [{ name: 'q', in: 'query', schema: { type: 'string' } }, { name: 'type', in: 'query', schema: { type: 'string' } }] },\n { path: '/me/player', method: 'get', operationId: 'getPlaybackState', summary: 'Get current playback state' },\n ],\n }),\n },\n {\n id: 'cloudinary',\n name: 'Cloudinary Admin & Upload API',\n description: 'Cloud media storage, AI image transformations, video encoding, and CDN optimization.',\n category: 'Social & Media',\n authType: 'Basic (CLOUDINARY_API_KEY:CLOUDINARY_API_SECRET)',\n authEnvVar: 'CLOUDINARY_API_KEY',\n defaultBaseUrl: 'https://api.cloudinary.com/v1_1/{cloud_name}',\n tags: ['images', 'video', 'cdn', 'transformations', 'media-storage'],\n bundledSpec: buildOpenAPISpec({\n title: 'Cloudinary API',\n baseUrl: 'https://api.cloudinary.com/v1_1/demo',\n description: 'Cloudinary Media Management API',\n securityScheme: { name: 'basicAuth', type: 'http', scheme: 'basic' },\n endpoints: [\n { path: '/resources/image', method: 'get', operationId: 'listImages', summary: 'List image resources' },\n { path: '/image/upload', method: 'post', operationId: 'uploadImage', summary: 'Upload image file', requestBody: { properties: { file: { type: 'string' } } } },\n ],\n }),\n },\n {\n id: 'petstore',\n name: 'Swagger Petstore',\n description: 'Standard OpenAPI reference API for testing, benchmarking, and demoing MCP servers.',\n category: 'Demo & Testing',\n authType: 'apiKey / None',\n defaultBaseUrl: 'https://petstore.swagger.io/v2',\n specUrl: 'https://petstore.swagger.io/v2/swagger.json',\n tags: ['demo', 'testing', 'pets', 'store', 'reference'],\n bundledSpec: buildOpenAPISpec({\n title: 'Swagger Petstore',\n baseUrl: 'https://petstore.swagger.io/v2',\n description: 'Sample Petstore OpenAPI 3.0 API for testing and demoing MCP capabilities',\n endpoints: [\n { path: '/pets', method: 'get', operationId: 'listPets', summary: 'List all pets', parameters: [{ name: 'limit', in: 'query', schema: { type: 'integer' } }] },\n { path: '/pets', method: 'post', operationId: 'createPets', summary: 'Create a pet', requestBody: { properties: { name: { type: 'string' }, tag: { type: 'string' } } } },\n { path: '/pets/{petId}', method: 'get', operationId: 'showPetById', summary: 'Info for a specific pet', parameters: [{ name: 'petId', in: 'path', schema: { type: 'string' } }] },\n { path: '/pets/{petId}', method: 'delete', operationId: 'deletePet', summary: 'Delete a pet', parameters: [{ name: 'petId', in: 'path', schema: { type: 'string' } }] },\n ],\n }),\n },\n];\n","export * from '@postmcp/types';\n","import { AuthConfig, Preset } from '@postmcp/types';\n\nexport function buildPresetAuthConfig(\n preset: Preset,\n env: Record<string, string | undefined> = process.env\n): AuthConfig {\n const authConfig: AuthConfig = {\n headers: {},\n securitySchemes: {},\n };\n\n const envVarName = preset.authEnvVar;\n const secretValue = envVarName ? env[envVarName] : undefined;\n\n if (!secretValue) {\n return authConfig;\n }\n\n const authType = preset.authType || '';\n\n // 1. Basic Auth (e.g. Jira, Twilio, Zendesk, Cloudinary, Chargebee)\n if (authType.startsWith('Basic')) {\n authConfig.basicAuth = secretValue;\n authConfig.securitySchemes = {\n ...authConfig.securitySchemes,\n basicAuth: secretValue,\n BasicAuth: secretValue,\n };\n return authConfig;\n }\n\n // 2. Custom Header Formats (e.g. PagerDuty \"Token token=...\", Discord \"Bot ...\", OpsGenie \"GenieKey ...\")\n if (authType.includes('Token token=')) {\n authConfig.headers = {\n ...authConfig.headers,\n Authorization: `Token token=${secretValue}`,\n };\n authConfig.securitySchemes = {\n ...authConfig.securitySchemes,\n tokenAuth: secretValue,\n };\n return authConfig;\n }\n\n if (authType.includes('Bot ...') || authType.includes('Bot <token>') || preset.id === 'discord') {\n authConfig.headers = {\n ...authConfig.headers,\n Authorization: `Bot ${secretValue}`,\n };\n authConfig.securitySchemes = {\n ...authConfig.securitySchemes,\n botAuth: secretValue,\n };\n return authConfig;\n }\n\n if (authType.includes('GenieKey')) {\n authConfig.headers = {\n ...authConfig.headers,\n Authorization: `GenieKey ${secretValue}`,\n };\n authConfig.securitySchemes = {\n ...authConfig.securitySchemes,\n genieKeyAuth: secretValue,\n };\n return authConfig;\n }\n\n // 3. Specific Custom Header API Keys\n if (authType.startsWith('Header')) {\n let headerName = 'Authorization';\n\n if (authType.includes('PRIVATE-TOKEN')) {\n headerName = 'PRIVATE-TOKEN';\n } else if (authType.includes('X-Shopify-Access-Token')) {\n headerName = 'X-Shopify-Access-Token';\n } else if (authType.includes('x-api-key') || authType.includes('X-Api-Key') || authType.includes('X-API-KEY')) {\n headerName = authType.includes('X-Api-Key') ? 'X-Api-Key' : 'x-api-key';\n } else if (authType.includes('DD-API-KEY')) {\n headerName = 'DD-API-KEY';\n } else if (authType.includes('xi-api-key')) {\n headerName = 'xi-api-key';\n } else if (authType.includes('X-Postmark-Server-Token')) {\n headerName = 'X-Postmark-Server-Token';\n } else if (authType.includes('PLAID-SECRET')) {\n headerName = 'PLAID-SECRET';\n } else {\n const match = authType.match(/Header\\s*\\(([^)]+)\\)/i);\n if (match && match[1]) {\n headerName = match[1].split('/')[0].trim();\n }\n }\n\n authConfig.headers = {\n ...authConfig.headers,\n [headerName]: secretValue,\n };\n\n authConfig.apiKey = {\n name: headerName,\n value: secretValue,\n in: 'header',\n };\n\n authConfig.securitySchemes = {\n ...authConfig.securitySchemes,\n privateToken: secretValue,\n shopifyAuth: secretValue,\n apiKeyAuth: secretValue,\n serverToken: secretValue,\n plaidAuth: secretValue,\n [headerName]: secretValue,\n };\n\n return authConfig;\n }\n\n // 4. Query Parameter Auth (e.g. Trello, YouTube)\n if (authType.startsWith('Query') || authType.includes('key=')) {\n const paramName = authType.includes('key=') ? 'key' : 'api_key';\n authConfig.apiKey = {\n name: paramName,\n value: secretValue,\n in: 'query',\n };\n authConfig.securitySchemes = {\n ...authConfig.securitySchemes,\n apiKeyAuth: secretValue,\n [paramName]: secretValue,\n };\n return authConfig;\n }\n\n // 5. Default: Bearer Token Auth (e.g. GitHub, Stripe, Linear, Notion, Supabase, OpenAI)\n authConfig.bearerToken = secretValue;\n authConfig.securitySchemes = {\n ...authConfig.securitySchemes,\n bearerAuth: secretValue,\n BearerAuth: secretValue,\n oauth2: secretValue,\n };\n\n return authConfig;\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/builder.ts","../src/catalog/developer-tools.ts","../src/catalog/cloud-databases.ts","../src/catalog/payments-commerce.ts","../src/catalog/communication-ai.ts","../src/catalog/productivity-support.ts","../src/catalog/media-social.ts","../src/types.ts","../src/auth.ts"],"sourcesContent":["import { Preset, PresetCategory } from './types.js';\nimport { DEVELOPER_TOOLS_PRESETS } from './catalog/developer-tools.js';\nimport { CLOUD_DATABASES_PRESETS } from './catalog/cloud-databases.js';\nimport { PAYMENTS_COMMERCE_PRESETS } from './catalog/payments-commerce.js';\nimport { COMMUNICATION_AI_PRESETS } from './catalog/communication-ai.js';\nimport { PRODUCTIVITY_SUPPORT_PRESETS } from './catalog/productivity-support.js';\nimport { MEDIA_SOCIAL_PRESETS } from './catalog/media-social.js';\n\nexport * from './types.js';\nexport * from './auth.js';\nexport * from './builder.js';\nexport { DEVELOPER_TOOLS_PRESETS } from './catalog/developer-tools.js';\nexport { CLOUD_DATABASES_PRESETS } from './catalog/cloud-databases.js';\nexport { PAYMENTS_COMMERCE_PRESETS } from './catalog/payments-commerce.js';\nexport { COMMUNICATION_AI_PRESETS } from './catalog/communication-ai.js';\nexport { PRODUCTIVITY_SUPPORT_PRESETS } from './catalog/productivity-support.js';\nexport { MEDIA_SOCIAL_PRESETS } from './catalog/media-social.js';\n\nexport const ALL_PRESETS: Preset[] = [\n ...DEVELOPER_TOOLS_PRESETS,\n ...CLOUD_DATABASES_PRESETS,\n ...PAYMENTS_COMMERCE_PRESETS,\n ...COMMUNICATION_AI_PRESETS,\n ...PRODUCTIVITY_SUPPORT_PRESETS,\n ...MEDIA_SOCIAL_PRESETS,\n];\n\nexport const PRESETS_BY_ID: Record<string, Preset> = ALL_PRESETS.reduce((acc, preset) => {\n acc[preset.id] = preset;\n return acc;\n}, {} as Record<string, Preset>);\n\nexport function getAllPresets(): Preset[] {\n return ALL_PRESETS;\n}\n\nexport function getPreset(id: string): Preset | undefined {\n const cleanId = id.replace(/^@/, '').toLowerCase().trim();\n return PRESETS_BY_ID[cleanId];\n}\n\nexport function getPresetsByCategory(category: PresetCategory): Preset[] {\n return ALL_PRESETS.filter((p) => p.category === category);\n}\n\nexport function searchPresets(query: string): Preset[] {\n const q = query.toLowerCase().trim();\n if (!q) return ALL_PRESETS;\n\n return ALL_PRESETS.filter((p) => {\n return (\n p.id.toLowerCase().includes(q) ||\n p.name.toLowerCase().includes(q) ||\n p.description.toLowerCase().includes(q) ||\n p.category.toLowerCase().includes(q) ||\n (p.tags && p.tags.some((t) => t.toLowerCase().includes(q)))\n );\n });\n}\n\nexport function getAllCategories(): PresetCategory[] {\n return [\n 'Developer Tools',\n 'Database & Cloud',\n 'Payments & Commerce',\n 'Communication & AI',\n 'Productivity & Support',\n 'Social & Media',\n 'Demo & Testing',\n ];\n}\n","import type { EndpointDef } from '@postmcp/types';\n\nexport type { EndpointDef };\n\nexport interface OpenAPIOperation {\n operationId: string;\n summary: string;\n description: string;\n parameters: Array<{\n name: string;\n in: string;\n required: boolean;\n schema: { type: string; format?: string; default?: unknown };\n description?: string;\n }>;\n responses: Record<string, {\n description: string;\n content?: Record<string, { schema: unknown }>;\n }>;\n requestBody?: {\n required: boolean;\n content: Record<string, { schema: { type: string; properties: Record<string, unknown> } }>;\n };\n security?: Array<Record<string, string[]>>;\n}\n\nexport interface OpenAPISpecDoc {\n openapi: string;\n info: {\n title: string;\n version: string;\n description: string;\n };\n servers: Array<{ url: string }>;\n paths: Record<string, Record<string, OpenAPIOperation>>;\n components?: {\n securitySchemes: Record<string, {\n type: string;\n scheme?: string;\n in?: string;\n name?: string;\n }>;\n };\n}\n\nexport function buildOpenAPISpec(opts: {\n title: string;\n version?: string;\n description: string;\n baseUrl: string;\n endpoints: EndpointDef[];\n securityScheme?: {\n name: string;\n type: 'http' | 'apiKey';\n scheme?: string;\n in?: 'header' | 'query';\n headerName?: string;\n };\n}): OpenAPISpecDoc {\n const pathsObj: Record<string, Record<string, OpenAPIOperation>> = {};\n\n for (const ep of opts.endpoints) {\n pathsObj[ep.path] = pathsObj[ep.path] || {};\n const opObj: OpenAPIOperation = {\n operationId: ep.operationId,\n summary: ep.summary,\n description: ep.description || ep.summary,\n parameters: (ep.parameters || []).map((p) => ({\n name: p.name,\n in: p.in,\n required: p.required ?? (p.in === 'path'),\n schema: p.schema,\n description: p.description,\n })),\n responses: {\n '200': {\n description: 'Successful response',\n content: {\n 'application/json': {\n schema: ep.responseSchema || { type: 'object' },\n },\n },\n },\n },\n };\n\n if (ep.requestBody) {\n opObj.requestBody = {\n required: ep.requestBody.required ?? true,\n content: {\n 'application/json': {\n schema: {\n type: 'object',\n properties: ep.requestBody.properties,\n },\n },\n },\n };\n }\n\n if (opts.securityScheme) {\n opObj.security = [{ [opts.securityScheme.name]: [] }];\n }\n\n pathsObj[ep.path][ep.method.toLowerCase()] = opObj;\n }\n\n const specDoc: OpenAPISpecDoc = {\n openapi: '3.0.3',\n info: {\n title: opts.title,\n version: opts.version || '1.0.0',\n description: opts.description,\n },\n servers: [{ url: opts.baseUrl }],\n paths: pathsObj,\n };\n\n if (opts.securityScheme) {\n specDoc.components = {\n securitySchemes: {\n [opts.securityScheme.name]:\n opts.securityScheme.type === 'http'\n ? { type: 'http', scheme: opts.securityScheme.scheme || 'bearer' }\n : { type: 'apiKey', in: opts.securityScheme.in || 'header', name: opts.securityScheme.headerName || 'Authorization' },\n },\n };\n }\n\n return specDoc;\n}\n","import { Preset } from '../types.js';\nimport { buildOpenAPISpec } from '../builder.js';\n\nexport const DEVELOPER_TOOLS_PRESETS: Preset[] = [\n {\n id: 'github',\n name: 'GitHub REST API',\n description: 'Manage repositories, pull requests, issues, releases, actions, and branch protections.',\n category: 'Developer Tools',\n authType: 'Bearer (GITHUB_TOKEN)',\n authEnvVar: 'GITHUB_TOKEN',\n defaultBaseUrl: 'https://api.github.com',\n defaultHeaders: {\n 'User-Agent': 'PostMCP-GitHub-Preset',\n },\n specUrl: 'https://raw.githubusercontent.com/github/rest-api-description/main/descriptions/api.github.com/api.github.com.json',\n tags: ['git', 'code', 'issues', 'pr', 'actions', 'ci/cd', 'releases'],\n fieldMasks: [\n { path: '/repos/{owner}/{repo}/issues', fields: ['id', 'number', 'title', 'state', 'user.login', 'created_at', 'html_url'] },\n { path: '/repos/{owner}/{repo}/pulls', fields: ['id', 'number', 'title', 'state', 'user.login', 'head.ref', 'base.ref', 'html_url'] },\n ],\n macros: [\n {\n name: 'createIssueAndComment',\n description: 'Creates a new issue in a repository and immediately adds a follow-up comment',\n parameters: {\n type: 'object',\n properties: {\n owner: { type: 'string' },\n repo: { type: 'string' },\n title: { type: 'string' },\n body: { type: 'string' },\n comment: { type: 'string' },\n },\n required: ['owner', 'repo', 'title'],\n },\n steps: [\n { id: 'createIssue', action: 'POST /repos/{{owner}}/{{repo}}/issues', body: { title: '{{title}}', body: '{{body}}' }, export: { issueNumber: 'number' } },\n { id: 'addComment', action: 'POST /repos/{{owner}}/{{repo}}/issues/{{issueNumber}}/comments', body: { body: '{{comment}}' } },\n ],\n },\n ],\n bundledSpec: buildOpenAPISpec({\n title: 'GitHub REST API',\n baseUrl: 'https://api.github.com',\n description: 'GitHub Official REST API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/user', method: 'get', operationId: 'getAuthenticatedUser', summary: 'Get authenticated user' },\n { path: '/user/repos', method: 'get', operationId: 'listUserRepos', summary: 'List repositories for authenticated user' },\n { path: '/repos/{owner}/{repo}', method: 'get', operationId: 'getRepo', summary: 'Get repository details', parameters: [{ name: 'owner', in: 'path', schema: { type: 'string' } }, { name: 'repo', in: 'path', schema: { type: 'string' } }] },\n { path: '/repos/{owner}/{repo}/issues', method: 'get', operationId: 'listIssues', summary: 'List repository issues', parameters: [{ name: 'owner', in: 'path', schema: { type: 'string' } }, { name: 'repo', in: 'path', schema: { type: 'string' } }, { name: 'state', in: 'query', schema: { type: 'string' } }] },\n { path: '/repos/{owner}/{repo}/issues', method: 'post', operationId: 'createIssue', summary: 'Create issue', parameters: [{ name: 'owner', in: 'path', schema: { type: 'string' } }, { name: 'repo', in: 'path', schema: { type: 'string' } }], requestBody: { properties: { title: { type: 'string' }, body: { type: 'string' } } } },\n { path: '/repos/{owner}/{repo}/pulls', method: 'get', operationId: 'listPullRequests', summary: 'List pull requests', parameters: [{ name: 'owner', in: 'path', schema: { type: 'string' } }, { name: 'repo', in: 'path', schema: { type: 'string' } }] },\n { path: '/repos/{owner}/{repo}/issues/{issue_number}/comments', method: 'post', operationId: 'createIssueComment', summary: 'Create issue comment', parameters: [{ name: 'owner', in: 'path', schema: { type: 'string' } }, { name: 'repo', in: 'path', schema: { type: 'string' } }, { name: 'issue_number', in: 'path', schema: { type: 'integer' } }], requestBody: { properties: { body: { type: 'string' } } } },\n ],\n }),\n },\n {\n id: 'gitlab',\n name: 'GitLab REST API',\n description: 'GitLab project management, merge requests, CI/CD pipelines, and repository administration.',\n category: 'Developer Tools',\n authType: 'Header (PRIVATE-TOKEN)',\n authEnvVar: 'GITLAB_TOKEN',\n defaultBaseUrl: 'https://gitlab.com/api/v4',\n tags: ['git', 'merge-requests', 'pipelines', 'devops'],\n fieldMasks: [\n { path: '/projects', fields: ['id', 'name', 'web_url', 'visibility', 'star_count'] },\n { path: '/projects/{id}/merge_requests', fields: ['id', 'iid', 'title', 'state', 'web_url', 'author.username'] },\n ],\n bundledSpec: buildOpenAPISpec({\n title: 'GitLab REST API',\n baseUrl: 'https://gitlab.com/api/v4',\n description: 'GitLab Core API',\n securityScheme: { name: 'privateToken', type: 'apiKey', in: 'header', headerName: 'PRIVATE-TOKEN' },\n endpoints: [\n { path: '/user', method: 'get', operationId: 'getCurrentUser', summary: 'Get current user profile' },\n { path: '/projects', method: 'get', operationId: 'listProjects', summary: 'List GitLab projects' },\n { path: '/projects/{id}', method: 'get', operationId: 'getProject', summary: 'Get project details', parameters: [{ name: 'id', in: 'path', schema: { type: 'string' } }] },\n { path: '/projects/{id}/merge_requests', method: 'get', operationId: 'listMergeRequests', summary: 'List merge requests', parameters: [{ name: 'id', in: 'path', schema: { type: 'string' } }] },\n { path: '/projects/{id}/pipelines', method: 'get', operationId: 'listPipelines', summary: 'List CI/CD pipelines', parameters: [{ name: 'id', in: 'path', schema: { type: 'string' } }] },\n ],\n }),\n },\n {\n id: 'jira',\n name: 'Jira Software Cloud API',\n description: 'Atlassian Jira project tracking, issues, sprints, boards, and workflows.',\n category: 'Developer Tools',\n authType: 'Basic (JIRA_EMAIL:JIRA_API_TOKEN)',\n authEnvVar: 'JIRA_API_TOKEN',\n defaultBaseUrl: 'https://your-domain.atlassian.net/rest/api/3',\n tags: ['agile', 'sprints', 'tickets', 'scrum', 'kanban'],\n fieldMasks: [\n { path: '/search', fields: ['issues.id', 'issues.key', 'issues.fields.summary', 'issues.fields.status.name'] },\n ],\n bundledSpec: buildOpenAPISpec({\n title: 'Jira Software Cloud API',\n baseUrl: 'https://your-domain.atlassian.net/rest/api/3',\n description: 'Atlassian Jira Cloud REST API',\n securityScheme: { name: 'basicAuth', type: 'http', scheme: 'basic' },\n endpoints: [\n { path: '/myself', method: 'get', operationId: 'getCurrentUser', summary: 'Get current user profile' },\n { path: '/project', method: 'get', operationId: 'listProjects', summary: 'List projects' },\n { path: '/issue/{issueIdOrKey}', method: 'get', operationId: 'getIssue', summary: 'Get Jira issue details', parameters: [{ name: 'issueIdOrKey', in: 'path', schema: { type: 'string' } }] },\n { path: '/issue', method: 'post', operationId: 'createIssue', summary: 'Create new Jira issue', requestBody: { properties: { fields: { type: 'object' } } } },\n { path: '/search', method: 'get', operationId: 'searchIssuesJql', summary: 'Search issues using JQL', parameters: [{ name: 'jql', in: 'query', schema: { type: 'string' } }] },\n ],\n }),\n },\n {\n id: 'sentry',\n name: 'Sentry API',\n description: 'Application error monitoring, performance telemetry, release tracking, and alerting.',\n category: 'Developer Tools',\n authType: 'Bearer (SENTRY_AUTH_TOKEN)',\n authEnvVar: 'SENTRY_AUTH_TOKEN',\n defaultBaseUrl: 'https://sentry.io/api/0',\n tags: ['errors', 'crash-reporting', 'performance', 'alerts'],\n fieldMasks: [\n { path: '/projects/{organization_slug}/{project_slug}/issues/', fields: ['id', 'title', 'culprit', 'count', 'lastSeen', 'status'] },\n ],\n bundledSpec: buildOpenAPISpec({\n title: 'Sentry API',\n baseUrl: 'https://sentry.io/api/0',\n description: 'Sentry Error & Performance Telemetry API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/organizations/', method: 'get', operationId: 'listOrganizations', summary: 'List organizations' },\n { path: '/projects/', method: 'get', operationId: 'listProjects', summary: 'List projects' },\n { path: '/projects/{organization_slug}/{project_slug}/issues/', method: 'get', operationId: 'listProjectIssues', summary: 'List project issues', parameters: [{ name: 'organization_slug', in: 'path', schema: { type: 'string' } }, { name: 'project_slug', in: 'path', schema: { type: 'string' } }] },\n { path: '/issues/{issue_id}/', method: 'get', operationId: 'getIssueDetails', summary: 'Get error issue details', parameters: [{ name: 'issue_id', in: 'path', schema: { type: 'string' } }] },\n ],\n }),\n },\n {\n id: 'datadog',\n name: 'Datadog API',\n description: 'Infrastructure metrics, distributed traces, logs, synthetic tests, and dashboards.',\n category: 'Developer Tools',\n authType: 'Header (DD-API-KEY / DD-APPLICATION-KEY)',\n authEnvVar: 'DATADOG_API_KEY',\n defaultBaseUrl: 'https://api.datadoghq.com/api/v2',\n tags: ['metrics', 'traces', 'logs', 'observability'],\n bundledSpec: buildOpenAPISpec({\n title: 'Datadog API',\n baseUrl: 'https://api.datadoghq.com/api/v2',\n description: 'Datadog Metrics & Telemetry API',\n securityScheme: { name: 'apiKeyAuth', type: 'apiKey', in: 'header', headerName: 'DD-API-KEY' },\n endpoints: [\n { path: '/metrics', method: 'get', operationId: 'listMetrics', summary: 'List metrics' },\n { path: '/logs/events/search', method: 'post', operationId: 'searchLogs', summary: 'Search log events', requestBody: { properties: { filter: { type: 'object' } } } },\n { path: '/monitors', method: 'get', operationId: 'listMonitors', summary: 'List monitors' },\n ],\n }),\n },\n {\n id: 'postman',\n name: 'Postman API',\n description: 'Manage Postman workspaces, API collections, environments, and mock servers.',\n category: 'Developer Tools',\n authType: 'Header (X-Api-Key)',\n authEnvVar: 'POSTMAN_API_KEY',\n defaultBaseUrl: 'https://api.getpostman.com',\n tags: ['api-testing', 'collections', 'documentation', 'mocks'],\n bundledSpec: buildOpenAPISpec({\n title: 'Postman API',\n baseUrl: 'https://api.getpostman.com',\n description: 'Postman Workspaces & Collections API',\n securityScheme: { name: 'apiKeyAuth', type: 'apiKey', in: 'header', headerName: 'X-Api-Key' },\n endpoints: [\n { path: '/me', method: 'get', operationId: 'getMe', summary: 'Get authenticated user' },\n { path: '/workspaces', method: 'get', operationId: 'listWorkspaces', summary: 'List workspaces' },\n { path: '/collections', method: 'get', operationId: 'listCollections', summary: 'List collections' },\n { path: '/collections/{collection_uid}', method: 'get', operationId: 'getCollection', summary: 'Get collection details', parameters: [{ name: 'collection_uid', in: 'path', schema: { type: 'string' } }] },\n ],\n }),\n },\n {\n id: 'vercel',\n name: 'Vercel API',\n description: 'Deploy frontend projects, manage custom domains, edge middleware, and serverless functions.',\n category: 'Developer Tools',\n authType: 'Bearer (VERCEL_TOKEN)',\n authEnvVar: 'VERCEL_TOKEN',\n defaultBaseUrl: 'https://api.vercel.com',\n specUrl: 'https://raw.githubusercontent.com/vercel/openapi/main/openapi.json',\n tags: ['hosting', 'deployments', 'domains', 'serverless', 'nextjs'],\n fieldMasks: [\n { path: '/v6/deployments', fields: ['deployments.uid', 'deployments.name', 'deployments.url', 'deployments.state', 'deployments.created'] },\n ],\n bundledSpec: buildOpenAPISpec({\n title: 'Vercel API',\n baseUrl: 'https://api.vercel.com',\n description: 'Vercel Platform API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/v2/user', method: 'get', operationId: 'getUser', summary: 'Get current user profile' },\n { path: '/v9/projects', method: 'get', operationId: 'listProjects', summary: 'List Vercel projects' },\n { path: '/v6/deployments', method: 'get', operationId: 'listDeployments', summary: 'List recent deployments', parameters: [{ name: 'projectId', in: 'query', schema: { type: 'string' } }] },\n { path: '/v13/deployments', method: 'post', operationId: 'createDeployment', summary: 'Create new deployment', requestBody: { properties: { name: { type: 'string' } } } },\n ],\n }),\n },\n {\n id: 'docker',\n name: 'Docker Hub API',\n description: 'Query container images, repositories, tags, and automated build webhooks.',\n category: 'Developer Tools',\n authType: 'Bearer (DOCKER_ACCESS_TOKEN)',\n authEnvVar: 'DOCKER_ACCESS_TOKEN',\n defaultBaseUrl: 'https://hub.docker.com/v2',\n tags: ['containers', 'images', 'registries', 'devops'],\n bundledSpec: buildOpenAPISpec({\n title: 'Docker Hub API',\n baseUrl: 'https://hub.docker.com/v2',\n description: 'Docker Hub Registry API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/user', method: 'get', operationId: 'getUser', summary: 'Get current user profile' },\n { path: '/repositories/{username}', method: 'get', operationId: 'listRepositories', summary: 'List repositories', parameters: [{ name: 'username', in: 'path', schema: { type: 'string' } }] },\n { path: '/repositories/{username}/{repository}/tags', method: 'get', operationId: 'listTags', summary: 'List repository tags', parameters: [{ name: 'username', in: 'path', schema: { type: 'string' } }, { name: 'repository', in: 'path', schema: { type: 'string' } }] },\n ],\n }),\n },\n {\n id: 'npm',\n name: 'NPM Registry API',\n description: 'Query packages, version metadata, maintainers, dependencies, and download statistics.',\n category: 'Developer Tools',\n authType: 'Bearer (NPM_TOKEN)',\n authEnvVar: 'NPM_TOKEN',\n defaultBaseUrl: 'https://registry.npmjs.org',\n tags: ['packages', 'javascript', 'typescript', 'modules'],\n bundledSpec: buildOpenAPISpec({\n title: 'NPM Registry API',\n baseUrl: 'https://registry.npmjs.org',\n description: 'NPM Package Registry API',\n endpoints: [\n { path: '/{package}', method: 'get', operationId: 'getPackageInfo', summary: 'Get package metadata', parameters: [{ name: 'package', in: 'path', schema: { type: 'string' } }] },\n { path: '/{package}/{version}', method: 'get', operationId: 'getPackageVersion', summary: 'Get package version metadata', parameters: [{ name: 'package', in: 'path', schema: { type: 'string' } }, { name: 'version', in: 'path', schema: { type: 'string' } }] },\n ],\n }),\n },\n {\n id: 'pagerduty',\n name: 'PagerDuty API',\n description: 'Incident response, on-call scheduling, escalations, and service health alerting.',\n category: 'Developer Tools',\n authType: 'Header (Token token=...)',\n authEnvVar: 'PAGERDUTY_TOKEN',\n defaultBaseUrl: 'https://api.pagerduty.com',\n tags: ['incidents', 'on-call', 'alerts', 'devops'],\n bundledSpec: buildOpenAPISpec({\n title: 'PagerDuty API',\n baseUrl: 'https://api.pagerduty.com',\n description: 'PagerDuty Incidents & On-call API',\n securityScheme: { name: 'tokenAuth', type: 'apiKey', in: 'header', headerName: 'Authorization' },\n endpoints: [\n { path: '/incidents', method: 'get', operationId: 'listIncidents', summary: 'List incidents', parameters: [{ name: 'statuses', in: 'query', schema: { type: 'string' } }] },\n { path: '/services', method: 'get', operationId: 'listServices', summary: 'List services' },\n { path: '/oncalls', method: 'get', operationId: 'listOnCalls', summary: 'List on-call schedules' },\n ],\n }),\n },\n {\n id: 'grafana',\n name: 'Grafana HTTP API',\n description: 'Manage dashboards, datasources, alert rules, user permissions, and telemetry visualization.',\n category: 'Developer Tools',\n authType: 'Bearer (GRAFANA_SERVICE_ACCOUNT_TOKEN)',\n authEnvVar: 'GRAFANA_TOKEN',\n defaultBaseUrl: 'https://grafana.example.com/api',\n tags: ['dashboards', 'monitoring', 'visualization', 'datasources'],\n bundledSpec: buildOpenAPISpec({\n title: 'Grafana HTTP API',\n baseUrl: 'https://grafana.example.com/api',\n description: 'Grafana Dashboards & Metrics API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/search', method: 'get', operationId: 'searchDashboards', summary: 'Search dashboards and folders', parameters: [{ name: 'query', in: 'query', schema: { type: 'string' } }] },\n { path: '/datasources', method: 'get', operationId: 'listDataSources', summary: 'List data sources' },\n { path: '/dashboards/uid/{uid}', method: 'get', operationId: 'getDashboardByUid', summary: 'Get dashboard by UID', parameters: [{ name: 'uid', in: 'path', schema: { type: 'string' } }] },\n ],\n }),\n },\n {\n id: 'opsgenie',\n name: 'OpsGenie API',\n description: 'Alert and incident management, escalation policies, and team rotations.',\n category: 'Developer Tools',\n authType: 'Header (GenieKey ...)',\n authEnvVar: 'OPSGENIE_KEY',\n defaultBaseUrl: 'https://api.opsgenie.com/v2',\n tags: ['incidents', 'escalation', 'alerts', 'oncall'],\n bundledSpec: buildOpenAPISpec({\n title: 'OpsGenie API',\n baseUrl: 'https://api.opsgenie.com/v2',\n description: 'OpsGenie Alerts & Incidents API',\n securityScheme: { name: 'genieKeyAuth', type: 'apiKey', in: 'header', headerName: 'Authorization' },\n endpoints: [\n { path: '/alerts', method: 'get', operationId: 'listAlerts', summary: 'List alerts' },\n { path: '/alerts', method: 'post', operationId: 'createAlert', summary: 'Create new alert', requestBody: { properties: { message: { type: 'string' }, priority: { type: 'string' } } } },\n { path: '/teams', method: 'get', operationId: 'listTeams', summary: 'List teams' },\n ],\n }),\n },\n];\n","import { Preset } from '../types.js';\nimport { buildOpenAPISpec } from '../builder.js';\n\nexport const CLOUD_DATABASES_PRESETS: Preset[] = [\n {\n id: 'supabase',\n name: 'Supabase Management API',\n description: 'Create and configure Postgres databases, auth policies, edge functions, and storage buckets.',\n category: 'Database & Cloud',\n authType: 'Bearer (SUPABASE_ACCESS_TOKEN)',\n authEnvVar: 'SUPABASE_ACCESS_TOKEN',\n defaultBaseUrl: 'https://api.supabase.com/v1',\n specUrl: 'https://api.supabase.com/api/v1-json',\n tags: ['postgres', 'auth', 'database', 'storage', 'edge-functions', 'baas'],\n fieldMasks: [\n { path: '/projects', fields: ['id', 'name', 'region', 'status', 'created_at'] },\n ],\n macros: [\n {\n name: 'getProjectConfig',\n description: 'Retrieves project metadata and its database status',\n parameters: {\n type: 'object',\n properties: {\n ref: { type: 'string', description: 'Supabase project ref' },\n },\n required: ['ref'],\n },\n steps: [\n { id: 'getProject', action: 'GET /projects/{{ref}}' },\n { id: 'getHealth', action: 'GET /projects/{{ref}}/health?services=db' },\n ],\n },\n ],\n bundledSpec: buildOpenAPISpec({\n title: 'Supabase Management API',\n baseUrl: 'https://api.supabase.com/v1',\n description: 'Supabase Cloud Management REST API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/projects', method: 'get', operationId: 'getProjects', summary: 'List all Supabase projects' },\n { path: '/projects/{ref}', method: 'get', operationId: 'getProject', summary: 'Get project details', parameters: [{ name: 'ref', in: 'path', schema: { type: 'string' } }] },\n {\n path: '/projects/{ref}/health',\n method: 'get',\n operationId: 'getProjectHealth',\n summary: 'Get database health status',\n parameters: [\n { name: 'ref', in: 'path', schema: { type: 'string' } },\n { name: 'services', in: 'query', schema: { type: 'string', default: 'db' }, description: 'Service name (e.g. db, auth, storage, realtime, pooler)' },\n ],\n },\n { path: '/organizations', method: 'get', operationId: 'getOrganizations', summary: 'List organizations' },\n { path: '/projects/{ref}/functions', method: 'get', operationId: 'getFunctions', summary: 'List Edge Functions', parameters: [{ name: 'ref', in: 'path', schema: { type: 'string' } }] },\n ],\n }),\n },\n {\n id: 'cloudflare',\n name: 'Cloudflare API',\n description: 'Manage DNS records, Cloudflare Workers, KV, R2 storage buckets, and firewall rules.',\n category: 'Database & Cloud',\n authType: 'Bearer (CLOUDFLARE_API_TOKEN)',\n authEnvVar: 'CLOUDFLARE_API_TOKEN',\n defaultBaseUrl: 'https://api.cloudflare.com/client/v4',\n tags: ['cdn', 'dns', 'workers', 'r2', 'kv', 'edge', 'security'],\n fieldMasks: [\n { path: '/zones', fields: ['result.id', 'result.name', 'result.status', 'result.name_servers'] },\n { path: '/zones/{zone_id}/dns_records', fields: ['result.id', 'result.type', 'result.name', 'result.content', 'result.proxied'] },\n ],\n bundledSpec: buildOpenAPISpec({\n title: 'Cloudflare API',\n baseUrl: 'https://api.cloudflare.com/client/v4',\n description: 'Cloudflare Client v4 API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/user', method: 'get', operationId: 'getUserDetails', summary: 'Get user profile' },\n { path: '/zones', method: 'get', operationId: 'listZones', summary: 'List DNS zones' },\n { path: '/zones/{zone_id}/dns_records', method: 'get', operationId: 'listDnsRecords', summary: 'List DNS records for a zone', parameters: [{ name: 'zone_id', in: 'path', schema: { type: 'string' } }] },\n { path: '/zones/{zone_id}/dns_records', method: 'post', operationId: 'createDnsRecord', summary: 'Create DNS record', parameters: [{ name: 'zone_id', in: 'path', schema: { type: 'string' } }], requestBody: { properties: { type: { type: 'string' }, name: { type: 'string' }, content: { type: 'string' } } } },\n ],\n }),\n },\n {\n id: 'flyio',\n name: 'Fly.io Machines API',\n description: 'Launch and control fast lightweight micro-VMs close to users worldwide.',\n category: 'Database & Cloud',\n authType: 'Bearer (FLY_API_TOKEN)',\n authEnvVar: 'FLY_API_TOKEN',\n defaultBaseUrl: 'https://api.machines.dev/v1',\n tags: ['vms', 'hosting', 'docker', 'containers', 'edge'],\n bundledSpec: buildOpenAPISpec({\n title: 'Fly.io Machines API',\n baseUrl: 'https://api.machines.dev/v1',\n description: 'Fly.io Micro-VM Machines API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/apps', method: 'get', operationId: 'listApps', summary: 'List Fly apps' },\n { path: '/apps/{app_name}/machines', method: 'get', operationId: 'listMachines', summary: 'List machines for an app', parameters: [{ name: 'app_name', in: 'path', schema: { type: 'string' } }] },\n { path: '/apps/{app_name}/machines/{machine_id}', method: 'get', operationId: 'getMachine', summary: 'Get machine details', parameters: [{ name: 'app_name', in: 'path', schema: { type: 'string' } }, { name: 'machine_id', in: 'path', schema: { type: 'string' } }] },\n ],\n }),\n },\n {\n id: 'railway',\n name: 'Railway API',\n description: 'Deploy full-stack services, provision Postgres/Redis plugins, and manage environment variables.',\n category: 'Database & Cloud',\n authType: 'Bearer (RAILWAY_API_TOKEN)',\n authEnvVar: 'RAILWAY_API_TOKEN',\n defaultBaseUrl: 'https://backboard.railway.app/graphql/v2',\n tags: ['paas', 'hosting', 'deployments', 'databases'],\n bundledSpec: buildOpenAPISpec({\n title: 'Railway API',\n baseUrl: 'https://backboard.railway.app/graphql/v2',\n description: 'Railway Platform API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/projects', method: 'get', operationId: 'listProjects', summary: 'List Railway projects' },\n { path: '/deployments', method: 'get', operationId: 'listDeployments', summary: 'List deployments' },\n ],\n }),\n },\n {\n id: 'render',\n name: 'Render API',\n description: 'Manage web services, private services, static sites, background workers, and PostgreSQL instances.',\n category: 'Database & Cloud',\n authType: 'Bearer (RENDER_API_KEY)',\n authEnvVar: 'RENDER_API_KEY',\n defaultBaseUrl: 'https://api.render.com/v1',\n tags: ['cloud', 'hosting', 'postgres', 'cron-jobs'],\n bundledSpec: buildOpenAPISpec({\n title: 'Render API',\n baseUrl: 'https://api.render.com/v1',\n description: 'Render Cloud Services API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/services', method: 'get', operationId: 'listServices', summary: 'List Render services' },\n { path: '/services/{serviceId}', method: 'get', operationId: 'getService', summary: 'Get service details', parameters: [{ name: 'serviceId', in: 'path', schema: { type: 'string' } }] },\n { path: '/postgres', method: 'get', operationId: 'listPostgresInstances', summary: 'List PostgreSQL databases' },\n ],\n }),\n },\n {\n id: 'neon',\n name: 'Neon Serverless Postgres API',\n description: 'Serverless branching PostgreSQL databases with instant cold starts and autoscaling.',\n category: 'Database & Cloud',\n authType: 'Bearer (NEON_API_KEY)',\n authEnvVar: 'NEON_API_KEY',\n defaultBaseUrl: 'https://console.neon.tech/api/v2',\n specUrl: 'https://neon.tech/api_spec/release/v2.json',\n tags: ['postgres', 'serverless', 'branching', 'sql'],\n fieldMasks: [\n { path: '/projects', fields: ['projects[*].id', 'projects[*].name', 'projects[*].region_id', 'projects[*].created_at'] },\n ],\n bundledSpec: buildOpenAPISpec({\n title: 'Neon Serverless Postgres API',\n baseUrl: 'https://console.neon.tech/api/v2',\n description: 'Neon Database Branching API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/users/me/organizations', method: 'get', operationId: 'getCurrentUserOrganizations', summary: 'List organizations for the current user' },\n {\n path: '/projects',\n method: 'get',\n operationId: 'listProjects',\n summary: 'List Neon projects',\n parameters: [\n { name: 'org_id', in: 'query', schema: { type: 'string' }, description: 'Neon Organization ID' },\n { name: 'limit', in: 'query', schema: { type: 'integer' }, description: 'The maximum number of projects to return' },\n { name: 'cursor', in: 'query', schema: { type: 'string' }, description: 'Pagination cursor' },\n { name: 'search', in: 'query', schema: { type: 'string' }, description: 'Search query to filter projects by name' },\n ],\n },\n { path: '/projects/{project_id}', method: 'get', operationId: 'getProject', summary: 'Get project details', parameters: [{ name: 'project_id', in: 'path', schema: { type: 'string' } }] },\n { path: '/projects/{project_id}/branches', method: 'get', operationId: 'listBranches', summary: 'List database branches', parameters: [{ name: 'project_id', in: 'path', schema: { type: 'string' } }] },\n { path: '/projects/{project_id}/branches', method: 'post', operationId: 'createBranch', summary: 'Create new database branch', parameters: [{ name: 'project_id', in: 'path', schema: { type: 'string' } }], requestBody: { properties: { branch: { type: 'object' } } } },\n ],\n }),\n },\n {\n id: 'upstash',\n name: 'Upstash Serverless Redis & QStash API',\n description: 'Serverless low-latency Redis cache, Vector database, and QStash message queuing.',\n category: 'Database & Cloud',\n authType: 'Bearer (UPSTASH_EMAIL:UPSTASH_API_KEY)',\n authEnvVar: 'UPSTASH_API_KEY',\n defaultBaseUrl: 'https://api.upstash.com/v2',\n tags: ['redis', 'vector', 'queue', 'serverless', 'caching'],\n bundledSpec: buildOpenAPISpec({\n title: 'Upstash Serverless Redis API',\n baseUrl: 'https://api.upstash.com/v2',\n description: 'Upstash Serverless Data Platform API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/redis/databases', method: 'get', operationId: 'listRedisDatabases', summary: 'List Redis databases' },\n { path: '/redis/database/{id}', method: 'get', operationId: 'getRedisDatabase', summary: 'Get database metadata', parameters: [{ name: 'id', in: 'path', schema: { type: 'string' } }] },\n { path: '/vector/indexes', method: 'get', operationId: 'listVectorIndexes', summary: 'List Vector indexes' },\n ],\n }),\n },\n {\n id: 'planetscale',\n name: 'PlanetScale API',\n description: 'Serverless MySQL platform with zero-downtime schema migrations and branch merging.',\n category: 'Database & Cloud',\n authType: 'Bearer (PLANETSCALE_SERVICE_TOKEN)',\n authEnvVar: 'PLANETSCALE_TOKEN',\n defaultBaseUrl: 'https://api.planetscale.com/v1',\n tags: ['mysql', 'database', 'branching', 'serverless'],\n bundledSpec: buildOpenAPISpec({\n title: 'PlanetScale API',\n baseUrl: 'https://api.planetscale.com/v1',\n description: 'PlanetScale Serverless MySQL API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/organizations', method: 'get', operationId: 'listOrganizations', summary: 'List organizations' },\n { path: '/organizations/{organization}/databases', method: 'get', operationId: 'listDatabases', summary: 'List databases', parameters: [{ name: 'organization', in: 'path', schema: { type: 'string' } }] },\n { path: '/organizations/{organization}/databases/{database}/branches', method: 'get', operationId: 'listDatabaseBranches', summary: 'List database branches', parameters: [{ name: 'organization', in: 'path', schema: { type: 'string' } }, { name: 'database', in: 'path', schema: { type: 'string' } }] },\n ],\n }),\n },\n];\n","import { Preset } from '../types.js';\nimport { buildOpenAPISpec } from '../builder.js';\n\nexport const PAYMENTS_COMMERCE_PRESETS: Preset[] = [\n {\n id: 'stripe',\n name: 'Stripe API',\n description: 'Process payments, create customer subscriptions, issue refunds, manage invoices, and dispute balances.',\n category: 'Payments & Commerce',\n authType: 'Bearer (STRIPE_SECRET_KEY)',\n authEnvVar: 'STRIPE_SECRET_KEY',\n defaultBaseUrl: 'https://api.stripe.com',\n specUrl: 'https://raw.githubusercontent.com/stripe/openapi/master/openapi/spec3.json',\n tags: ['payments', 'billing', 'invoices', 'cards', 'subscriptions', 'refunds'],\n fieldMasks: [\n { path: '/v1/charges', fields: ['id', 'amount', 'currency', 'customer', 'status', 'refunded'] },\n { path: '/v1/refunds', fields: ['id', 'amount', 'currency', 'charge', 'status', 'reason'] },\n { path: '/v1/customers', fields: ['id', 'email', 'name', 'balance', 'created'] },\n ],\n macros: [\n {\n name: 'refundCustomerCharge',\n description: 'Looks up the latest charge for a customer and issues a refund',\n parameters: {\n type: 'object',\n properties: {\n customer: { type: 'string', description: 'Stripe customer ID' },\n reason: { type: 'string', description: 'Reason for refund' },\n },\n required: ['customer'],\n },\n steps: [\n { id: 'listCharges', action: 'GET /v1/charges?customer={{customer}}&limit=1', export: { chargeId: 'data[0].id' } },\n { id: 'createRefund', action: 'POST /v1/refunds', body: { charge: '{{chargeId}}', reason: '{{reason}}' } },\n ],\n },\n ],\n bundledSpec: buildOpenAPISpec({\n title: 'Stripe API',\n baseUrl: 'https://api.stripe.com',\n description: 'Stripe Payments and Subscriptions API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/v1/charges', method: 'get', operationId: 'listCharges', summary: 'List charges', parameters: [{ name: 'customer', in: 'query', schema: { type: 'string' } }, { name: 'limit', in: 'query', schema: { type: 'integer' } }] },\n { path: '/v1/charges', method: 'post', operationId: 'createCharge', summary: 'Create charge', requestBody: { properties: { amount: { type: 'integer' }, currency: { type: 'string' }, source: { type: 'string' } } } },\n { path: '/v1/refunds', method: 'get', operationId: 'listRefunds', summary: 'List refunds' },\n { path: '/v1/refunds', method: 'post', operationId: 'createRefund', summary: 'Create refund', requestBody: { properties: { charge: { type: 'string' }, amount: { type: 'integer' }, reason: { type: 'string' } } } },\n { path: '/v1/customers', method: 'get', operationId: 'listCustomers', summary: 'List customers', parameters: [{ name: 'email', in: 'query', schema: { type: 'string' } }] },\n { path: '/v1/customers', method: 'post', operationId: 'createCustomer', summary: 'Create customer', requestBody: { properties: { email: { type: 'string' }, name: { type: 'string' } } } },\n ],\n }),\n },\n {\n id: 'shopify',\n name: 'Shopify Admin API',\n description: 'Manage store products, orders, inventory levels, collections, and customer accounts.',\n category: 'Payments & Commerce',\n authType: 'Header (X-Shopify-Access-Token)',\n authEnvVar: 'SHOPIFY_ACCESS_TOKEN',\n defaultBaseUrl: 'https://{shop}.myshopify.com/admin/api/2024-01',\n tags: ['ecommerce', 'products', 'orders', 'inventory', 'storefront'],\n fieldMasks: [\n { path: '/products.json', fields: ['products.id', 'products.title', 'products.vendor', 'products.status', 'products.variants'] },\n { path: '/orders.json', fields: ['orders.id', 'orders.name', 'orders.total_price', 'orders.financial_status', 'orders.created_at'] },\n ],\n bundledSpec: buildOpenAPISpec({\n title: 'Shopify Admin API',\n baseUrl: 'https://example-shop.myshopify.com/admin/api/2024-01',\n description: 'Shopify Storefront & Admin API',\n securityScheme: { name: 'shopifyAuth', type: 'apiKey', in: 'header', headerName: 'X-Shopify-Access-Token' },\n endpoints: [\n { path: '/products.json', method: 'get', operationId: 'listProducts', summary: 'List store products' },\n { path: '/products/{id}.json', method: 'get', operationId: 'getProduct', summary: 'Get product details', parameters: [{ name: 'id', in: 'path', schema: { type: 'string' } }] },\n { path: '/orders.json', method: 'get', operationId: 'listOrders', summary: 'List store orders' },\n { path: '/customers.json', method: 'get', operationId: 'listCustomers', summary: 'List store customers' },\n ],\n }),\n },\n {\n id: 'paypal',\n name: 'PayPal REST API',\n description: 'Create checkout orders, manage subscriptions, process payouts, and handle buyer disputes.',\n category: 'Payments & Commerce',\n authType: 'Bearer (PAYPAL_ACCESS_TOKEN)',\n authEnvVar: 'PAYPAL_ACCESS_TOKEN',\n defaultBaseUrl: 'https://api-m.paypal.com',\n tags: ['payments', 'checkout', 'payouts', 'orders'],\n fieldMasks: [\n { path: '/v2/checkout/orders/{id}', fields: ['id', 'status', 'intent', 'purchase_units.amount'] },\n ],\n bundledSpec: buildOpenAPISpec({\n title: 'PayPal REST API',\n baseUrl: 'https://api-m.paypal.com',\n description: 'PayPal Checkout & Payments API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/v2/checkout/orders', method: 'post', operationId: 'createOrder', summary: 'Create checkout order', requestBody: { properties: { intent: { type: 'string' }, purchase_units: { type: 'array' } } } },\n { path: '/v2/checkout/orders/{id}', method: 'get', operationId: 'getOrder', summary: 'Get order details', parameters: [{ name: 'id', in: 'path', schema: { type: 'string' } }] },\n { path: '/v2/checkout/orders/{id}/capture', method: 'post', operationId: 'captureOrder', summary: 'Capture order payment', parameters: [{ name: 'id', in: 'path', schema: { type: 'string' } }] },\n ],\n }),\n },\n {\n id: 'square',\n name: 'Square API',\n description: 'Point-of-sale terminal transactions, catalog items, customers, and merchant inventory.',\n category: 'Payments & Commerce',\n authType: 'Bearer (SQUARE_ACCESS_TOKEN)',\n authEnvVar: 'SQUARE_ACCESS_TOKEN',\n defaultBaseUrl: 'https://connect.squareup.com/v2',\n tags: ['pos', 'merchant', 'payments', 'catalog', 'inventory'],\n bundledSpec: buildOpenAPISpec({\n title: 'Square API',\n baseUrl: 'https://connect.squareup.com/v2',\n description: 'Square Merchant & Payments API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/locations', method: 'get', operationId: 'listLocations', summary: 'List business locations' },\n { path: '/payments', method: 'get', operationId: 'listPayments', summary: 'List processed payments' },\n { path: '/catalog/list', method: 'get', operationId: 'listCatalog', summary: 'List catalog items' },\n ],\n }),\n },\n {\n id: 'chargebee',\n name: 'Chargebee API',\n description: 'SaaS subscription billing, revenue recognition, metered usage, and invoice automation.',\n category: 'Payments & Commerce',\n authType: 'Basic (CHARGEBEE_API_KEY:)',\n authEnvVar: 'CHARGEBEE_API_KEY',\n defaultBaseUrl: 'https://{site}.chargebee.com/api/v2',\n tags: ['subscriptions', 'saas', 'billing', 'invoices'],\n bundledSpec: buildOpenAPISpec({\n title: 'Chargebee API',\n baseUrl: 'https://example-site.chargebee.com/api/v2',\n description: 'Chargebee Subscription Management API',\n securityScheme: { name: 'basicAuth', type: 'http', scheme: 'basic' },\n endpoints: [\n { path: '/subscriptions', method: 'get', operationId: 'listSubscriptions', summary: 'List subscriptions' },\n { path: '/invoices', method: 'get', operationId: 'listInvoices', summary: 'List customer invoices' },\n { path: '/customers', method: 'get', operationId: 'listCustomers', summary: 'List billing customers' },\n ],\n }),\n },\n {\n id: 'paddle',\n name: 'Paddle Billing API',\n description: 'Merchant of Record billing, global sales tax compliance, checkout, and subscriptions.',\n category: 'Payments & Commerce',\n authType: 'Bearer (PADDLE_API_KEY)',\n authEnvVar: 'PADDLE_API_KEY',\n defaultBaseUrl: 'https://api.paddle.com',\n tags: ['mor', 'billing', 'taxes', 'checkout', 'saas'],\n bundledSpec: buildOpenAPISpec({\n title: 'Paddle Billing API',\n baseUrl: 'https://api.paddle.com',\n description: 'Paddle Merchant of Record API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/products', method: 'get', operationId: 'listProducts', summary: 'List catalog products' },\n { path: '/prices', method: 'get', operationId: 'listPrices', summary: 'List product prices' },\n { path: '/subscriptions', method: 'get', operationId: 'listSubscriptions', summary: 'List active subscriptions' },\n ],\n }),\n },\n {\n id: 'plaid',\n name: 'Plaid API',\n description: 'Connect user bank accounts, verify balances, retrieve transaction history, and auth ACH transfers.',\n category: 'Payments & Commerce',\n authType: 'Header (PLAID-CLIENT-ID / PLAID-SECRET)',\n authEnvVar: 'PLAID_SECRET',\n defaultBaseUrl: 'https://production.plaid.com',\n tags: ['banking', 'ach', 'transactions', 'fintech', 'balances'],\n fieldMasks: [\n { path: '/accounts/balance/get', fields: ['accounts.account_id', 'accounts.name', 'accounts.balances.current', 'accounts.balances.iso_currency_code'] },\n ],\n bundledSpec: buildOpenAPISpec({\n title: 'Plaid API',\n baseUrl: 'https://production.plaid.com',\n description: 'Plaid Open Banking API',\n securityScheme: { name: 'plaidAuth', type: 'apiKey', in: 'header', headerName: 'PLAID-SECRET' },\n endpoints: [\n { path: '/accounts/balance/get', method: 'post', operationId: 'getBalances', summary: 'Retrieve account balances', requestBody: { properties: { access_token: { type: 'string' } } } },\n { path: '/transactions/sync', method: 'post', operationId: 'syncTransactions', summary: 'Sync bank transactions', requestBody: { properties: { access_token: { type: 'string' } } } },\n ],\n }),\n },\n {\n id: 'brex',\n name: 'Brex API',\n description: 'Corporate card management, expense budgets, team transaction approvals, and vendor payments.',\n category: 'Payments & Commerce',\n authType: 'Bearer (BREX_API_KEY)',\n authEnvVar: 'BREX_API_KEY',\n defaultBaseUrl: 'https://platform.brexapis.com/v2',\n tags: ['cards', 'expenses', 'banking', 'fintech'],\n bundledSpec: buildOpenAPISpec({\n title: 'Brex API',\n baseUrl: 'https://platform.brexapis.com/v2',\n description: 'Brex Corporate Spend Management API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/accounts', method: 'get', operationId: 'listAccounts', summary: 'List cash accounts' },\n { path: '/transactions/card/primary', method: 'get', operationId: 'listCardTransactions', summary: 'List primary card transactions' },\n { path: '/users/me', method: 'get', operationId: 'getMe', summary: 'Get current user profile' },\n ],\n }),\n },\n {\n id: 'ramp',\n name: 'Ramp Developer API',\n description: 'Spend management, employee corporate cards, expense policies, and accounting synchronization.',\n category: 'Payments & Commerce',\n authType: 'Bearer (RAMP_CLIENT_SECRET)',\n authEnvVar: 'RAMP_SECRET',\n defaultBaseUrl: 'https://api.ramp.com/developer/v1',\n tags: ['spend-management', 'cards', 'expenses', 'accounting'],\n bundledSpec: buildOpenAPISpec({\n title: 'Ramp Developer API',\n baseUrl: 'https://api.ramp.com/developer/v1',\n description: 'Ramp Corporate Card & Spend API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/users', method: 'get', operationId: 'listUsers', summary: 'List company users' },\n { path: '/cards', method: 'get', operationId: 'listCards', summary: 'List issued corporate cards' },\n { path: '/transactions', method: 'get', operationId: 'listTransactions', summary: 'List spend transactions' },\n ],\n }),\n },\n];\n","import { Preset } from '../types.js';\nimport { buildOpenAPISpec } from '../builder.js';\n\nexport const COMMUNICATION_AI_PRESETS: Preset[] = [\n {\n id: 'resend',\n name: 'Resend Email API',\n description: 'Developer-first transactional email delivery, domains, batch sends, and webhooks.',\n category: 'Communication & AI',\n authType: 'Bearer (RESEND_API_KEY)',\n authEnvVar: 'RESEND_API_KEY',\n defaultBaseUrl: 'https://api.resend.com',\n specUrl: 'https://raw.githubusercontent.com/resend/resend-openapi/main/openapi.json',\n tags: ['email', 'transactional', 'domains', 'deliverability'],\n fieldMasks: [\n { path: '/emails', fields: ['id', 'from', 'to', 'subject', 'created_at'] },\n ],\n macros: [\n {\n name: 'sendTransactionalEmail',\n description: 'Sends an email and returns the delivery status identifier',\n parameters: {\n type: 'object',\n properties: {\n from: { type: 'string', description: 'Sender address (e.g. onbording@resend.dev)' },\n to: { type: 'string', description: 'Recipient email address' },\n subject: { type: 'string', description: 'Email subject line' },\n html: { type: 'string', description: 'HTML body content' },\n },\n required: ['from', 'to', 'subject', 'html'],\n },\n steps: [\n { id: 'sendEmail', action: 'POST /emails', body: { from: '{{from}}', to: '{{to}}', subject: '{{subject}}', html: '{{html}}' } },\n ],\n },\n ],\n bundledSpec: buildOpenAPISpec({\n title: 'Resend Email API',\n baseUrl: 'https://api.resend.com',\n description: 'Resend Transactional Email REST API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/emails', method: 'post', operationId: 'sendEmail', summary: 'Send email message', requestBody: { properties: { from: { type: 'string' }, to: { type: 'string' }, subject: { type: 'string' }, html: { type: 'string' } } } },\n { path: '/emails/{id}', method: 'get', operationId: 'getEmail', summary: 'Get sent email status', parameters: [{ name: 'id', in: 'path', schema: { type: 'string' } }] },\n { path: '/domains', method: 'get', operationId: 'listDomains', summary: 'List verified sending domains' },\n { path: '/api-keys', method: 'get', operationId: 'listApiKeys', summary: 'List API keys' },\n ],\n }),\n },\n {\n id: 'sendgrid',\n name: 'Twilio SendGrid API',\n description: 'High-volume marketing email campaigns, transactional templates, and sender validation.',\n category: 'Communication & AI',\n authType: 'Bearer (SENDGRID_API_KEY)',\n authEnvVar: 'SENDGRID_API_KEY',\n defaultBaseUrl: 'https://api.sendgrid.com/v3',\n tags: ['email', 'templates', 'marketing', 'deliverability'],\n bundledSpec: buildOpenAPISpec({\n title: 'SendGrid API',\n baseUrl: 'https://api.sendgrid.com/v3',\n description: 'SendGrid Email API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/mail/send', method: 'post', operationId: 'sendMail', summary: 'Send mail via v3 engine', requestBody: { properties: { personalizations: { type: 'array' }, from: { type: 'object' }, content: { type: 'array' } } } },\n { path: '/templates', method: 'get', operationId: 'listTemplates', summary: 'List email dynamic templates' },\n ],\n }),\n },\n {\n id: 'twilio',\n name: 'Twilio Programmable Messaging & Voice API',\n description: 'Send SMS messages, make voice calls, verify phone numbers, and handle WhatsApp messaging.',\n category: 'Communication & AI',\n authType: 'Basic (TWILIO_ACCOUNT_SID:TWILIO_AUTH_TOKEN)',\n authEnvVar: 'TWILIO_AUTH_TOKEN',\n defaultBaseUrl: 'https://api.twilio.com/2010-04-01',\n tags: ['sms', 'voice', 'whatsapp', '2fa', 'telephony'],\n bundledSpec: buildOpenAPISpec({\n title: 'Twilio Programmable Messaging API',\n baseUrl: 'https://api.twilio.com/2010-04-01',\n description: 'Twilio REST API',\n securityScheme: { name: 'basicAuth', type: 'http', scheme: 'basic' },\n endpoints: [\n { path: '/Accounts/{AccountSid}/Messages.json', method: 'post', operationId: 'sendSms', summary: 'Send SMS message', parameters: [{ name: 'AccountSid', in: 'path', schema: { type: 'string' } }], requestBody: { properties: { To: { type: 'string' }, From: { type: 'string' }, Body: { type: 'string' } } } },\n { path: '/Accounts/{AccountSid}/Messages.json', method: 'get', operationId: 'listMessages', summary: 'List sent messages', parameters: [{ name: 'AccountSid', in: 'path', schema: { type: 'string' } }] },\n ],\n }),\n },\n {\n id: 'postmark',\n name: 'Postmark API',\n description: 'Fast reliable transactional email delivery, message bounce tracking, and inbound processing.',\n category: 'Communication & AI',\n authType: 'Header (X-Postmark-Server-Token)',\n authEnvVar: 'POSTMARK_SERVER_TOKEN',\n defaultBaseUrl: 'https://api.postmarkapp.com',\n tags: ['email', 'bounces', 'transactional', 'inbound'],\n bundledSpec: buildOpenAPISpec({\n title: 'Postmark API',\n baseUrl: 'https://api.postmarkapp.com',\n description: 'Postmark Transactional Delivery API',\n securityScheme: { name: 'serverToken', type: 'apiKey', in: 'header', headerName: 'X-Postmark-Server-Token' },\n endpoints: [\n { path: '/email', method: 'post', operationId: 'sendSingleEmail', summary: 'Send single email', requestBody: { properties: { From: { type: 'string' }, To: { type: 'string' }, Subject: { type: 'string' }, HtmlBody: { type: 'string' } } } },\n { path: '/bounces', method: 'get', operationId: 'listBounces', summary: 'List bounced emails' },\n ],\n }),\n },\n {\n id: 'openai',\n name: 'OpenAI API',\n description: 'Chat completions, embeddings, Assistants, image generation (DALL·E), and audio transcription (Whisper).',\n category: 'Communication & AI',\n authType: 'Bearer (OPENAI_API_KEY)',\n authEnvVar: 'OPENAI_API_KEY',\n defaultBaseUrl: 'https://api.openai.com/v1',\n specUrl: 'https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml',\n tags: ['llm', 'ai', 'gpt4', 'embeddings', 'whisper', 'vision'],\n bundledSpec: buildOpenAPISpec({\n title: 'OpenAI API',\n baseUrl: 'https://api.openai.com/v1',\n description: 'OpenAI Model Inference & Embeddings API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/models', method: 'get', operationId: 'listModels', summary: 'List available OpenAI models' },\n { path: '/chat/completions', method: 'post', operationId: 'createChatCompletion', summary: 'Create chat completion', requestBody: { properties: { model: { type: 'string' }, messages: { type: 'array' } } } },\n { path: '/embeddings', method: 'post', operationId: 'createEmbedding', summary: 'Create embedding vector', requestBody: { properties: { model: { type: 'string' }, input: { type: 'string' } } } },\n ],\n }),\n },\n {\n id: 'anthropic',\n name: 'Anthropic Claude API',\n description: 'Claude 3.5 Sonnet, Haiku, and Opus chat messages, tool calling, and long-context processing.',\n category: 'Communication & AI',\n authType: 'Header (x-api-key)',\n authEnvVar: 'ANTHROPIC_API_KEY',\n defaultBaseUrl: 'https://api.anthropic.com/v1',\n defaultHeaders: {\n 'anthropic-version': '2023-06-01',\n },\n tags: ['llm', 'ai', 'claude', 'reasoning', 'coding'],\n bundledSpec: buildOpenAPISpec({\n title: 'Anthropic Claude API',\n baseUrl: 'https://api.anthropic.com/v1',\n description: 'Anthropic Claude Chat & Tool Calling API',\n securityScheme: { name: 'apiKeyAuth', type: 'apiKey', in: 'header', headerName: 'x-api-key' },\n endpoints: [\n { path: '/messages', method: 'post', operationId: 'createMessage', summary: 'Send message to Claude', requestBody: { properties: { model: { type: 'string' }, max_tokens: { type: 'integer' }, messages: { type: 'array' } } } },\n ],\n }),\n },\n {\n id: 'mistral',\n name: 'Mistral AI API',\n description: 'Mistral Large, Codestral, Pixtral, and embeddings inference endpoints.',\n category: 'Communication & AI',\n authType: 'Bearer (MISTRAL_API_KEY)',\n authEnvVar: 'MISTRAL_API_KEY',\n defaultBaseUrl: 'https://api.mistral.ai/v1',\n tags: ['llm', 'ai', 'mistral', 'codestral', 'open-weights'],\n bundledSpec: buildOpenAPISpec({\n title: 'Mistral AI API',\n baseUrl: 'https://api.mistral.ai/v1',\n description: 'Mistral Foundation Models API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/models', method: 'get', operationId: 'listModels', summary: 'List Mistral models' },\n { path: '/chat/completions', method: 'post', operationId: 'createChatCompletion', summary: 'Create chat completion', requestBody: { properties: { model: { type: 'string' }, messages: { type: 'array' } } } },\n ],\n }),\n },\n {\n id: 'togetherai',\n name: 'Together AI Inference API',\n description: 'Fast inference for open-source foundation models (Llama 3, Qwen, DeepSeek, Flux).',\n category: 'Communication & AI',\n authType: 'Bearer (TOGETHER_API_KEY)',\n authEnvVar: 'TOGETHER_API_KEY',\n defaultBaseUrl: 'https://api.together.xyz/v1',\n tags: ['llm', 'llama', 'flux', 'inference', 'open-source'],\n bundledSpec: buildOpenAPISpec({\n title: 'Together AI Inference API',\n baseUrl: 'https://api.together.xyz/v1',\n description: 'Together AI Open-Source Model Inference API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/models', method: 'get', operationId: 'listModels', summary: 'List models' },\n { path: '/chat/completions', method: 'post', operationId: 'createChatCompletion', summary: 'Run chat inference', requestBody: { properties: { model: { type: 'string' }, messages: { type: 'array' } } } },\n ],\n }),\n },\n {\n id: 'replicate',\n name: 'Replicate API',\n description: 'Run machine learning models in the cloud via API (image generation, voice synthesis, video).',\n category: 'Communication & AI',\n authType: 'Bearer (REPLICATE_API_TOKEN)',\n authEnvVar: 'REPLICATE_API_TOKEN',\n defaultBaseUrl: 'https://api.replicate.com/v1',\n tags: ['ml', 'diffusion', 'models', 'gpu', 'ai'],\n bundledSpec: buildOpenAPISpec({\n title: 'Replicate API',\n baseUrl: 'https://api.replicate.com/v1',\n description: 'Replicate Machine Learning API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/predictions', method: 'post', operationId: 'createPrediction', summary: 'Create model prediction', requestBody: { properties: { version: { type: 'string' }, input: { type: 'object' } } } },\n { path: '/predictions/{prediction_id}', method: 'get', operationId: 'getPrediction', summary: 'Get prediction status', parameters: [{ name: 'prediction_id', in: 'path', schema: { type: 'string' } }] },\n ],\n }),\n },\n {\n id: 'elevenlabs',\n name: 'ElevenLabs Voice AI API',\n description: 'Realistic text-to-speech synthesis, voice cloning, audio isolation, and sound effects.',\n category: 'Communication & AI',\n authType: 'Header (xi-api-key)',\n authEnvVar: 'ELEVENLABS_API_KEY',\n defaultBaseUrl: 'https://api.elevenlabs.io/v1',\n tags: ['tts', 'voice', 'audio', 'speech-synthesis'],\n bundledSpec: buildOpenAPISpec({\n title: 'ElevenLabs Voice AI API',\n baseUrl: 'https://api.elevenlabs.io/v1',\n description: 'ElevenLabs Voice Synthesis API',\n securityScheme: { name: 'apiKeyAuth', type: 'apiKey', in: 'header', headerName: 'xi-api-key' },\n endpoints: [\n { path: '/voices', method: 'get', operationId: 'listVoices', summary: 'List available voices' },\n { path: '/text-to-speech/{voice_id}', method: 'post', operationId: 'generateSpeech', summary: 'Generate speech audio', parameters: [{ name: 'voice_id', in: 'path', schema: { type: 'string' } }], requestBody: { properties: { text: { type: 'string' } } } },\n ],\n }),\n },\n {\n id: 'deepgram',\n name: 'Deepgram Speech-to-Text API',\n description: 'Real-time and pre-recorded high-accuracy speech transcription and audio intelligence.',\n category: 'Communication & AI',\n authType: 'Bearer (DEEPGRAM_API_KEY)',\n authEnvVar: 'DEEPGRAM_API_KEY',\n defaultBaseUrl: 'https://api.deepgram.com/v1',\n tags: ['stt', 'transcription', 'speech', 'audio'],\n bundledSpec: buildOpenAPISpec({\n title: 'Deepgram Speech-to-Text API',\n baseUrl: 'https://api.deepgram.com/v1',\n description: 'Deepgram Audio Transcription API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/listen', method: 'post', operationId: 'transcribeAudio', summary: 'Transcribe audio stream', requestBody: { properties: { url: { type: 'string' } } } },\n { path: '/projects', method: 'get', operationId: 'listProjects', summary: 'List Deepgram projects' },\n ],\n }),\n },\n];\n","import { Preset } from '../types.js';\nimport { buildOpenAPISpec } from '../builder.js';\n\nexport const PRODUCTIVITY_SUPPORT_PRESETS: Preset[] = [\n {\n id: 'notion',\n name: 'Notion API',\n description: 'Query and mutate Notion workspaces, databases, pages, nested blocks, and user comments.',\n category: 'Productivity & Support',\n authType: 'Bearer (NOTION_API_KEY)',\n authEnvVar: 'NOTION_API_KEY',\n defaultBaseUrl: 'https://api.notion.com/v1',\n tags: ['docs', 'wiki', 'databases', 'pages', 'notes'],\n fieldMasks: [\n { path: '/databases/{database_id}/query', fields: ['results.id', 'results.properties', 'results.url'] },\n ],\n macros: [\n {\n name: 'createDatabasePage',\n description: 'Creates a page inside a Notion database with properties',\n parameters: {\n type: 'object',\n properties: {\n database_id: { type: 'string' },\n title: { type: 'string' },\n },\n required: ['database_id', 'title'],\n },\n steps: [\n { id: 'createPage', action: 'POST /pages', body: { parent: { database_id: '{{database_id}}' }, properties: { Name: { title: [{ text: { content: '{{title}}' } }] } } } },\n ],\n },\n ],\n bundledSpec: buildOpenAPISpec({\n title: 'Notion API',\n baseUrl: 'https://api.notion.com/v1',\n description: 'Notion Workspace & Database API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/users/me', method: 'get', operationId: 'getMe', summary: 'Get current bot user' },\n { path: '/search', method: 'post', operationId: 'searchObjects', summary: 'Search pages and databases', requestBody: { properties: { query: { type: 'string' } } } },\n { path: '/databases/{database_id}', method: 'get', operationId: 'getDatabase', summary: 'Get database schema', parameters: [{ name: 'database_id', in: 'path', schema: { type: 'string' } }] },\n { path: '/databases/{database_id}/query', method: 'post', operationId: 'queryDatabase', summary: 'Query database rows', parameters: [{ name: 'database_id', in: 'path', schema: { type: 'string' } }], requestBody: { properties: { filter: { type: 'object' } } } },\n { path: '/pages', method: 'post', operationId: 'createPage', summary: 'Create new page', requestBody: { properties: { parent: { type: 'object' }, properties: { type: 'object' } } } },\n ],\n }),\n },\n {\n id: 'slack',\n name: 'Slack Web API',\n description: 'Post messages to channels, manage user groups, trigger modals, and upload file attachments.',\n category: 'Communication & AI',\n authType: 'Bearer (SLACK_BOT_TOKEN)',\n authEnvVar: 'SLACK_BOT_TOKEN',\n defaultBaseUrl: 'https://slack.com/api',\n specUrl: 'https://raw.githubusercontent.com/slackapi/slack-api-specs/master/web-api/slack_web_openapi_v2.json',\n tags: ['chat', 'messaging', 'bots', 'channels', 'collaboration', 'communication'],\n macros: [\n {\n name: 'postToChannel',\n description: 'Sends a formatted message to a specific Slack channel',\n parameters: {\n type: 'object',\n properties: {\n channel: { type: 'string', description: 'Channel ID or name' },\n text: { type: 'string', description: 'Message body' },\n },\n required: ['channel', 'text'],\n },\n steps: [\n { id: 'postMsg', action: 'POST /chat.postMessage', body: { channel: '{{channel}}', text: '{{text}}' } },\n ],\n },\n ],\n bundledSpec: buildOpenAPISpec({\n title: 'Slack Web API',\n baseUrl: 'https://slack.com/api',\n description: 'Slack Team Messaging API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/auth.test', method: 'post', operationId: 'testAuth', summary: 'Check Slack bot credentials' },\n { path: '/conversations.list', method: 'get', operationId: 'listConversations', summary: 'List public/private channels' },\n { path: '/chat.postMessage', method: 'post', operationId: 'postMessage', summary: 'Send message to channel', requestBody: { properties: { channel: { type: 'string' }, text: { type: 'string' } } } },\n { path: '/users.list', method: 'get', operationId: 'listUsers', summary: 'List workspace users' },\n ],\n }),\n },\n {\n id: 'discord',\n name: 'Discord API',\n description: 'Discord bot automation, server administration, voice channels, and rich embedded messages.',\n category: 'Communication & AI',\n authType: 'Header (Bot ...)',\n authEnvVar: 'DISCORD_BOT_TOKEN',\n defaultBaseUrl: 'https://discord.com/api/v10',\n tags: ['chat', 'gaming', 'community', 'bots', 'guilds', 'communication', 'voice'],\n bundledSpec: buildOpenAPISpec({\n title: 'Discord API',\n baseUrl: 'https://discord.com/api/v10',\n description: 'Discord Bot API',\n securityScheme: { name: 'botAuth', type: 'apiKey', in: 'header', headerName: 'Authorization' },\n endpoints: [\n { path: '/users/@me', method: 'get', operationId: 'getCurrentBotUser', summary: 'Get current bot details' },\n { path: '/channels/{channel_id}/messages', method: 'post', operationId: 'createChannelMessage', summary: 'Send message to Discord channel', parameters: [{ name: 'channel_id', in: 'path', schema: { type: 'string' } }], requestBody: { properties: { content: { type: 'string' } } } },\n { path: '/guilds/{guild_id}', method: 'get', operationId: 'getGuild', summary: 'Get guild details', parameters: [{ name: 'guild_id', in: 'path', schema: { type: 'string' } }] },\n ],\n }),\n },\n {\n id: 'airtable',\n name: 'Airtable REST API',\n description: 'Relational database sheets, record filtering, formula fields, and view automations.',\n category: 'Productivity & Support',\n authType: 'Bearer (AIRTABLE_PERSONAL_ACCESS_TOKEN)',\n authEnvVar: 'AIRTABLE_API_KEY',\n defaultBaseUrl: 'https://api.airtable.com/v0',\n tags: ['spreadsheet', 'database', 'nocode', 'tables', 'records'],\n fieldMasks: [\n { path: '/{baseId}/{tableIdOrName}', fields: ['records.id', 'records.fields', 'records.createdTime'] },\n ],\n bundledSpec: buildOpenAPISpec({\n title: 'Airtable REST API',\n baseUrl: 'https://api.airtable.com/v0',\n description: 'Airtable Database API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/{baseId}/{tableIdOrName}', method: 'get', operationId: 'listRecords', summary: 'List table records', parameters: [{ name: 'baseId', in: 'path', schema: { type: 'string' } }, { name: 'tableIdOrName', in: 'path', schema: { type: 'string' } }] },\n { path: '/{baseId}/{tableIdOrName}', method: 'post', operationId: 'createRecords', summary: 'Create table records', parameters: [{ name: 'baseId', in: 'path', schema: { type: 'string' } }, { name: 'tableIdOrName', in: 'path', schema: { type: 'string' } }], requestBody: { properties: { records: { type: 'array' } } } },\n ],\n }),\n },\n {\n id: 'asana',\n name: 'Asana API',\n description: 'Team tasks, milestones, portfolios, subtasks, custom fields, and project timelines.',\n category: 'Productivity & Support',\n authType: 'Bearer (ASANA_ACCESS_TOKEN)',\n authEnvVar: 'ASANA_ACCESS_TOKEN',\n defaultBaseUrl: 'https://app.asana.com/api/1.0',\n tags: ['tasks', 'projects', 'collaboration', 'teams'],\n bundledSpec: buildOpenAPISpec({\n title: 'Asana API',\n baseUrl: 'https://app.asana.com/api/1.0',\n description: 'Asana Task & Project Management API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/users/me', method: 'get', operationId: 'getMe', summary: 'Get current user profile' },\n { path: '/projects', method: 'get', operationId: 'listProjects', summary: 'List projects' },\n { path: '/tasks', method: 'get', operationId: 'listTasks', summary: 'List tasks', parameters: [{ name: 'project', in: 'query', schema: { type: 'string' } }] },\n { path: '/tasks', method: 'post', operationId: 'createTask', summary: 'Create task', requestBody: { properties: { data: { type: 'object' } } } },\n ],\n }),\n },\n {\n id: 'monday',\n name: 'Monday.com GraphQL/REST API',\n description: 'Work OS boards, column updates, item tracking, and workflow automation.',\n category: 'Productivity & Support',\n authType: 'Bearer (MONDAY_API_TOKEN)',\n authEnvVar: 'MONDAY_API_TOKEN',\n defaultBaseUrl: 'https://api.monday.com/v2',\n tags: ['work-management', 'boards', 'items', 'teams'],\n bundledSpec: buildOpenAPISpec({\n title: 'Monday.com API',\n baseUrl: 'https://api.monday.com/v2',\n description: 'Monday.com Work OS API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/boards', method: 'get', operationId: 'listBoards', summary: 'List boards' },\n { path: '/items', method: 'get', operationId: 'listItems', summary: 'List items' },\n ],\n }),\n },\n {\n id: 'clickup',\n name: 'ClickUp API',\n description: 'Spaces, folders, lists, task statuses, time tracking, and custom field management.',\n category: 'Productivity & Support',\n authType: 'Bearer (CLICKUP_API_TOKEN)',\n authEnvVar: 'CLICKUP_API_TOKEN',\n defaultBaseUrl: 'https://api.clickup.com/api/v2',\n tags: ['tasks', 'productivity', 'project-management', 'time-tracking'],\n bundledSpec: buildOpenAPISpec({\n title: 'ClickUp API',\n baseUrl: 'https://api.clickup.com/api/v2',\n description: 'ClickUp Work Management API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/user', method: 'get', operationId: 'getUser', summary: 'Get current user profile' },\n { path: '/team', method: 'get', operationId: 'getTeams', summary: 'Get workspaces' },\n { path: '/team/{team_id}/space', method: 'get', operationId: 'getSpaces', summary: 'List spaces in workspace', parameters: [{ name: 'team_id', in: 'path', schema: { type: 'string' } }] },\n ],\n }),\n },\n {\n id: 'trello',\n name: 'Trello REST API',\n description: 'Kanban boards, lists, cards, checklist items, and power-up webhooks.',\n category: 'Productivity & Support',\n authType: 'Query (key=...&token=...)',\n authEnvVar: 'TRELLO_TOKEN',\n defaultBaseUrl: 'https://api.trello.com/1',\n tags: ['kanban', 'cards', 'boards', 'collaboration'],\n bundledSpec: buildOpenAPISpec({\n title: 'Trello REST API',\n baseUrl: 'https://api.trello.com/1',\n description: 'Trello Kanban API',\n endpoints: [\n { path: '/members/me', method: 'get', operationId: 'getMe', summary: 'Get member details' },\n { path: '/members/me/boards', method: 'get', operationId: 'listBoards', summary: 'List member boards' },\n { path: '/cards/{id}', method: 'get', operationId: 'getCard', summary: 'Get card details', parameters: [{ name: 'id', in: 'path', schema: { type: 'string' } }] },\n ],\n }),\n },\n {\n id: 'coda',\n name: 'Coda API',\n description: 'All-in-one collaborative documents, embedded tables, pages, and interactive controls.',\n category: 'Productivity & Support',\n authType: 'Bearer (CODA_API_TOKEN)',\n authEnvVar: 'CODA_API_TOKEN',\n defaultBaseUrl: 'https://coda.io/apis/v1',\n tags: ['docs', 'spreadsheets', 'automation', 'productivity'],\n bundledSpec: buildOpenAPISpec({\n title: 'Coda API',\n baseUrl: 'https://coda.io/apis/v1',\n description: 'Coda Document & Table API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/whoami', method: 'get', operationId: 'whoAmI', summary: 'Get user info' },\n { path: '/docs', method: 'get', operationId: 'listDocs', summary: 'List docs' },\n ],\n }),\n },\n {\n id: 'zoom',\n name: 'Zoom Video Communications API',\n description: 'Schedule meetings, manage cloud recordings, handle webinars, and query user attendance.',\n category: 'Communication & AI',\n authType: 'Bearer (ZOOM_OAUTH_TOKEN)',\n authEnvVar: 'ZOOM_OAUTH_TOKEN',\n defaultBaseUrl: 'https://api.zoom.us/v2',\n tags: ['video', 'meetings', 'webinars', 'recordings', 'communication'],\n bundledSpec: buildOpenAPISpec({\n title: 'Zoom Video Communications API',\n baseUrl: 'https://api.zoom.us/v2',\n description: 'Zoom Meetings & Video API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/users/me', method: 'get', operationId: 'getMe', summary: 'Get user profile' },\n { path: '/users/{userId}/meetings', method: 'get', operationId: 'listMeetings', summary: 'List meetings', parameters: [{ name: 'userId', in: 'path', schema: { type: 'string' } }] },\n { path: '/users/{userId}/meetings', method: 'post', operationId: 'createMeeting', summary: 'Create meeting', parameters: [{ name: 'userId', in: 'path', schema: { type: 'string' } }], requestBody: { properties: { topic: { type: 'string' }, start_time: { type: 'string' } } } },\n ],\n }),\n },\n {\n id: 'zendesk',\n name: 'Zendesk Support API',\n description: 'Customer support tickets, macros, satisfaction ratings, and knowledge base articles.',\n category: 'Productivity & Support',\n authType: 'Basic (ZENDESK_EMAIL/token:ZENDESK_API_TOKEN)',\n authEnvVar: 'ZENDESK_API_TOKEN',\n defaultBaseUrl: 'https://{subdomain}.zendesk.com/api/v2',\n tags: ['support', 'helpdesk', 'tickets', 'customer-service'],\n fieldMasks: [\n { path: '/tickets.json', fields: ['tickets.id', 'tickets.subject', 'tickets.status', 'tickets.priority', 'tickets.created_at'] },\n ],\n bundledSpec: buildOpenAPISpec({\n title: 'Zendesk Support API',\n baseUrl: 'https://example.zendesk.com/api/v2',\n description: 'Zendesk Customer Support API',\n securityScheme: { name: 'basicAuth', type: 'http', scheme: 'basic' },\n endpoints: [\n { path: '/users/me.json', method: 'get', operationId: 'getMe', summary: 'Get current user' },\n { path: '/tickets.json', method: 'get', operationId: 'listTickets', summary: 'List support tickets' },\n { path: '/tickets.json', method: 'post', operationId: 'createTicket', summary: 'Create support ticket', requestBody: { properties: { ticket: { type: 'object' } } } },\n ],\n }),\n },\n {\n id: 'intercom',\n name: 'Intercom API',\n description: 'Live customer chat conversations, contact segments, outbound campaigns, and help center.',\n category: 'Productivity & Support',\n authType: 'Bearer (INTERCOM_ACCESS_TOKEN)',\n authEnvVar: 'INTERCOM_ACCESS_TOKEN',\n defaultBaseUrl: 'https://api.intercom.io',\n tags: ['chat', 'customer-support', 'conversations', 'crm'],\n bundledSpec: buildOpenAPISpec({\n title: 'Intercom API',\n baseUrl: 'https://api.intercom.io',\n description: 'Intercom Customer Communications API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/me', method: 'get', operationId: 'getMe', summary: 'Get admin profile' },\n { path: '/conversations', method: 'get', operationId: 'listConversations', summary: 'List customer conversations' },\n { path: '/contacts', method: 'get', operationId: 'listContacts', summary: 'List contacts' },\n ],\n }),\n },\n {\n id: 'front',\n name: 'Front API',\n description: 'Shared inbox collaboration, email routing rules, and multi-channel customer communications.',\n category: 'Productivity & Support',\n authType: 'Bearer (FRONT_API_TOKEN)',\n authEnvVar: 'FRONT_API_TOKEN',\n defaultBaseUrl: 'https://api2.frontapp.com',\n tags: ['shared-inbox', 'email', 'support', 'team-communication'],\n bundledSpec: buildOpenAPISpec({\n title: 'Front API',\n baseUrl: 'https://api2.frontapp.com',\n description: 'Front Shared Inbox API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/me', method: 'get', operationId: 'getMe', summary: 'Get current user' },\n { path: '/inboxes', method: 'get', operationId: 'listInboxes', summary: 'List team inboxes' },\n { path: '/conversations', method: 'get', operationId: 'listConversations', summary: 'List conversations' },\n ],\n }),\n },\n {\n id: 'helpscout',\n name: 'Help Scout Mailbox API',\n description: 'Shared team mailboxes, customer support conversations, docs articles, and beacon metrics.',\n category: 'Productivity & Support',\n authType: 'Bearer (HELPSCOUT_ACCESS_TOKEN)',\n authEnvVar: 'HELPSCOUT_ACCESS_TOKEN',\n defaultBaseUrl: 'https://api.helpscout.net/v2',\n tags: ['helpdesk', 'support', 'mailboxes', 'conversations'],\n bundledSpec: buildOpenAPISpec({\n title: 'Help Scout Mailbox API',\n baseUrl: 'https://api.helpscout.net/v2',\n description: 'Help Scout Mailbox API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/users/me', method: 'get', operationId: 'getMe', summary: 'Get current user' },\n { path: '/mailboxes', method: 'get', operationId: 'listMailboxes', summary: 'List mailboxes' },\n { path: '/conversations', method: 'get', operationId: 'listConversations', summary: 'List customer conversations' },\n ],\n }),\n },\n];\n","import { Preset } from '../types.js';\nimport { buildOpenAPISpec } from '../builder.js';\n\nexport const MEDIA_SOCIAL_PRESETS: Preset[] = [\n {\n id: 'twitter',\n name: 'X / Twitter API v2',\n description: 'Post tweets, search recent posts, query user timelines, and manage follower relationships.',\n category: 'Social & Media',\n authType: 'Bearer (TWITTER_BEARER_TOKEN)',\n authEnvVar: 'TWITTER_BEARER_TOKEN',\n defaultBaseUrl: 'https://api.twitter.com/2',\n tags: ['social', 'tweets', 'posts', 'timeline', 'media'],\n bundledSpec: buildOpenAPISpec({\n title: 'X / Twitter API v2',\n baseUrl: 'https://api.twitter.com/2',\n description: 'Twitter / X API v2',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/users/me', method: 'get', operationId: 'getMe', summary: 'Get authenticated user profile' },\n { path: '/tweets', method: 'post', operationId: 'createTweet', summary: 'Post a new tweet', requestBody: { properties: { text: { type: 'string' } } } },\n { path: '/tweets/search/recent', method: 'get', operationId: 'searchRecentTweets', summary: 'Search recent tweets', parameters: [{ name: 'query', in: 'query', schema: { type: 'string' } }] },\n ],\n }),\n },\n {\n id: 'youtube',\n name: 'YouTube Data API v3',\n description: 'Search video library, manage playlists, upload video assets, and retrieve channel analytics.',\n category: 'Social & Media',\n authType: 'Bearer / Key (YOUTUBE_API_KEY)',\n authEnvVar: 'YOUTUBE_API_KEY',\n defaultBaseUrl: 'https://www.googleapis.com/youtube/v3',\n tags: ['video', 'streaming', 'playlists', 'channels', 'media'],\n bundledSpec: buildOpenAPISpec({\n title: 'YouTube Data API v3',\n baseUrl: 'https://www.googleapis.com/youtube/v3',\n description: 'Google YouTube Data API v3',\n securityScheme: { name: 'apiKeyAuth', type: 'apiKey', in: 'query', headerName: 'key' },\n endpoints: [\n { path: '/search', method: 'get', operationId: 'searchVideos', summary: 'Search YouTube videos', parameters: [{ name: 'q', in: 'query', schema: { type: 'string' } }, { name: 'part', in: 'query', schema: { type: 'string', default: 'snippet' } }] },\n { path: '/videos', method: 'get', operationId: 'listVideos', summary: 'List video details', parameters: [{ name: 'id', in: 'query', schema: { type: 'string' } }] },\n { path: '/playlists', method: 'get', operationId: 'listPlaylists', summary: 'List channel playlists' },\n ],\n }),\n },\n {\n id: 'spotify',\n name: 'Spotify Web API',\n description: 'Query artist catalogs, search music tracks/albums, control user playback, and create playlists.',\n category: 'Social & Media',\n authType: 'Bearer (SPOTIFY_ACCESS_TOKEN)',\n authEnvVar: 'SPOTIFY_ACCESS_TOKEN',\n defaultBaseUrl: 'https://api.spotify.com/v1',\n tags: ['music', 'audio', 'playlists', 'tracks', 'playback'],\n bundledSpec: buildOpenAPISpec({\n title: 'Spotify Web API',\n baseUrl: 'https://api.spotify.com/v1',\n description: 'Spotify Music Catalog & Playback API',\n securityScheme: { name: 'bearerAuth', type: 'http', scheme: 'bearer' },\n endpoints: [\n { path: '/me', method: 'get', operationId: 'getCurrentUser', summary: 'Get current user profile' },\n { path: '/search', method: 'get', operationId: 'searchCatalog', summary: 'Search tracks, artists, albums', parameters: [{ name: 'q', in: 'query', schema: { type: 'string' } }, { name: 'type', in: 'query', schema: { type: 'string' } }] },\n { path: '/me/player', method: 'get', operationId: 'getPlaybackState', summary: 'Get current playback state' },\n ],\n }),\n },\n {\n id: 'cloudinary',\n name: 'Cloudinary Admin & Upload API',\n description: 'Cloud media storage, AI image transformations, video encoding, and CDN optimization.',\n category: 'Social & Media',\n authType: 'Basic (CLOUDINARY_API_KEY:CLOUDINARY_API_SECRET)',\n authEnvVar: 'CLOUDINARY_API_KEY',\n defaultBaseUrl: 'https://api.cloudinary.com/v1_1/{cloud_name}',\n tags: ['images', 'video', 'cdn', 'transformations', 'media-storage'],\n bundledSpec: buildOpenAPISpec({\n title: 'Cloudinary API',\n baseUrl: 'https://api.cloudinary.com/v1_1/demo',\n description: 'Cloudinary Media Management API',\n securityScheme: { name: 'basicAuth', type: 'http', scheme: 'basic' },\n endpoints: [\n { path: '/resources/image', method: 'get', operationId: 'listImages', summary: 'List image resources' },\n { path: '/image/upload', method: 'post', operationId: 'uploadImage', summary: 'Upload image file', requestBody: { properties: { file: { type: 'string' } } } },\n ],\n }),\n },\n {\n id: 'petstore',\n name: 'Swagger Petstore',\n description: 'Standard OpenAPI reference API for testing, benchmarking, and demoing MCP servers.',\n category: 'Demo & Testing',\n authType: 'apiKey / None',\n defaultBaseUrl: 'https://petstore.swagger.io/v2',\n specUrl: 'https://petstore.swagger.io/v2/swagger.json',\n tags: ['demo', 'testing', 'pets', 'store', 'reference'],\n bundledSpec: buildOpenAPISpec({\n title: 'Swagger Petstore',\n baseUrl: 'https://petstore.swagger.io/v2',\n description: 'Sample Petstore OpenAPI 3.0 API for testing and demoing MCP capabilities',\n endpoints: [\n { path: '/pets', method: 'get', operationId: 'listPets', summary: 'List all pets', parameters: [{ name: 'limit', in: 'query', schema: { type: 'integer' } }] },\n { path: '/pets', method: 'post', operationId: 'createPets', summary: 'Create a pet', requestBody: { properties: { name: { type: 'string' }, tag: { type: 'string' } } } },\n { path: '/pets/{petId}', method: 'get', operationId: 'showPetById', summary: 'Info for a specific pet', parameters: [{ name: 'petId', in: 'path', schema: { type: 'string' } }] },\n { path: '/pets/{petId}', method: 'delete', operationId: 'deletePet', summary: 'Delete a pet', parameters: [{ name: 'petId', in: 'path', schema: { type: 'string' } }] },\n ],\n }),\n },\n];\n","export * from '@postmcp/types';\n","import { AuthConfig, Preset } from '@postmcp/types';\n\nexport function buildPresetAuthConfig(\n preset: Preset,\n env: Record<string, string | undefined> = process.env\n): AuthConfig {\n const authConfig: AuthConfig = {\n headers: { ...(preset.defaultHeaders || {}) },\n securitySchemes: {},\n };\n\n const envVarName = preset.authEnvVar;\n const secretValue = envVarName ? env[envVarName] : undefined;\n\n if (!secretValue) {\n return authConfig;\n }\n\n const authType = preset.authType || '';\n\n // 1. Basic Auth (e.g. Jira, Twilio, Zendesk, Cloudinary, Chargebee)\n if (authType.startsWith('Basic')) {\n authConfig.basicAuth = secretValue;\n authConfig.securitySchemes = {\n ...authConfig.securitySchemes,\n basicAuth: secretValue,\n BasicAuth: secretValue,\n };\n return authConfig;\n }\n\n // 2. Custom Header Formats (e.g. PagerDuty \"Token token=...\", Discord \"Bot ...\", OpsGenie \"GenieKey ...\")\n if (authType.includes('Token token=')) {\n authConfig.headers = {\n ...authConfig.headers,\n Authorization: `Token token=${secretValue}`,\n };\n authConfig.securitySchemes = {\n ...authConfig.securitySchemes,\n tokenAuth: secretValue,\n };\n return authConfig;\n }\n\n if (authType.includes('Bot ...') || authType.includes('Bot <token>') || preset.id === 'discord') {\n authConfig.headers = {\n ...authConfig.headers,\n Authorization: `Bot ${secretValue}`,\n };\n authConfig.securitySchemes = {\n ...authConfig.securitySchemes,\n botAuth: secretValue,\n };\n return authConfig;\n }\n\n if (authType.includes('GenieKey')) {\n authConfig.headers = {\n ...authConfig.headers,\n Authorization: `GenieKey ${secretValue}`,\n };\n authConfig.securitySchemes = {\n ...authConfig.securitySchemes,\n genieKeyAuth: secretValue,\n };\n return authConfig;\n }\n\n // 3. Specific Custom Header API Keys\n if (authType.startsWith('Header')) {\n let headerName = 'Authorization';\n\n if (authType.includes('PRIVATE-TOKEN')) {\n headerName = 'PRIVATE-TOKEN';\n } else if (authType.includes('X-Shopify-Access-Token')) {\n headerName = 'X-Shopify-Access-Token';\n } else if (authType.includes('x-api-key') || authType.includes('X-Api-Key') || authType.includes('X-API-KEY')) {\n headerName = authType.includes('X-Api-Key') ? 'X-Api-Key' : 'x-api-key';\n } else if (authType.includes('DD-API-KEY')) {\n headerName = 'DD-API-KEY';\n } else if (authType.includes('xi-api-key')) {\n headerName = 'xi-api-key';\n } else if (authType.includes('X-Postmark-Server-Token')) {\n headerName = 'X-Postmark-Server-Token';\n } else if (authType.includes('PLAID-SECRET')) {\n headerName = 'PLAID-SECRET';\n } else {\n const match = authType.match(/Header\\s*\\(([^)]+)\\)/i);\n if (match && match[1]) {\n headerName = match[1].split('/')[0].trim();\n }\n }\n\n authConfig.headers = {\n ...authConfig.headers,\n [headerName]: secretValue,\n };\n\n authConfig.apiKey = {\n name: headerName,\n value: secretValue,\n in: 'header',\n };\n\n authConfig.securitySchemes = {\n ...authConfig.securitySchemes,\n privateToken: secretValue,\n shopifyAuth: secretValue,\n apiKeyAuth: secretValue,\n serverToken: secretValue,\n plaidAuth: secretValue,\n [headerName]: secretValue,\n };\n\n return authConfig;\n }\n\n // 4. Query Parameter Auth (e.g. Trello, YouTube)\n if (authType.startsWith('Query') || authType.includes('key=')) {\n const paramName = authType.includes('key=') ? 'key' : 'api_key';\n authConfig.apiKey = {\n name: paramName,\n value: secretValue,\n in: 'query',\n };\n authConfig.securitySchemes = {\n ...authConfig.securitySchemes,\n apiKeyAuth: secretValue,\n [paramName]: secretValue,\n };\n return authConfig;\n }\n\n // 5. Default: Bearer Token Auth (e.g. GitHub, Stripe, Linear, Notion, Supabase, OpenAI)\n authConfig.bearerToken = secretValue;\n authConfig.securitySchemes = {\n ...authConfig.securitySchemes,\n bearerAuth: secretValue,\n BearerAuth: secretValue,\n oauth2: secretValue,\n };\n\n return authConfig;\n}\n"],"mappings":"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","names":[]}
|