90 lines
2.8 KiB
TypeScript
90 lines
2.8 KiB
TypeScript
/**
|
|
* Role ID constants for type-safe role references.
|
|
* Using constants prevents typos and enables autocomplete.
|
|
*/
|
|
export const ROLE_IDS = {
|
|
// ===================
|
|
// Organization Structure
|
|
// ===================
|
|
STEERING_COMMITTEE: 'steering-committee',
|
|
CORE_MAINTAINERS: 'core-maintainers',
|
|
LEAD_MAINTAINERS: 'lead-maintainers',
|
|
MODERATORS: 'moderators',
|
|
ADMINISTRATORS: 'administrators', // Discord only
|
|
COMMUNITY_MANAGERS: 'community-managers', // Discord only
|
|
|
|
// ===================
|
|
// Maintainer Groups
|
|
// ===================
|
|
MAINTAINERS: 'maintainers',
|
|
DOCS_MAINTAINERS: 'docs-maintainers',
|
|
INSPECTOR_MAINTAINERS: 'inspector-maintainers',
|
|
MCPB_MAINTAINERS: 'mcpb-maintainers',
|
|
REFERENCE_SERVERS_MAINTAINERS: 'reference-servers-maintainers',
|
|
REGISTRY_MAINTAINERS: 'registry-maintainers',
|
|
USE_MCP_MAINTAINERS: 'use-mcp-maintainers',
|
|
|
|
// ===================
|
|
// SDK Maintainers
|
|
// ===================
|
|
SDK_MAINTAINERS: 'sdk-maintainers',
|
|
CSHARP_SDK: 'csharp-sdk',
|
|
CSHARP_SDK_ADMIN: 'csharp-sdk-admin',
|
|
GO_SDK: 'go-sdk',
|
|
JAVA_SDK: 'java-sdk',
|
|
KOTLIN_SDK: 'kotlin-sdk',
|
|
MCP_APPS_SDK: 'mcp-apps-sdk',
|
|
PHP_SDK: 'php-sdk',
|
|
PYTHON_SDK: 'python-sdk',
|
|
PYTHON_SDK_AUTH: 'python-sdk-auth', // GitHub only (CODEOWNERS)
|
|
RUBY_SDK: 'ruby-sdk',
|
|
RUST_SDK: 'rust-sdk',
|
|
SWIFT_SDK: 'swift-sdk',
|
|
TYPESCRIPT_SDK: 'typescript-sdk',
|
|
TYPESCRIPT_SDK_AUTH: 'typescript-sdk-auth', // GitHub only (CODEOWNERS)
|
|
TYPESCRIPT_SDK_COLLABORATORS: 'typescript-sdk-collaborators', // GitHub only
|
|
|
|
// ===================
|
|
// Working Groups
|
|
// ===================
|
|
WORKING_GROUPS: 'working-groups',
|
|
AUTH_MAINTAINERS: 'auth-maintainers',
|
|
SECURITY_WG: 'security-wg',
|
|
SERVER_IDENTITY_WG: 'server-identity-wg',
|
|
TRANSPORT_WG: 'transport-wg',
|
|
TRIGGERS_EVENTS_WG: 'triggers-events-wg',
|
|
MCP_APPS_WG: 'mcp-apps-wg',
|
|
|
|
// ===================
|
|
// Interest Groups
|
|
// ===================
|
|
INTEREST_GROUPS: 'interest-groups',
|
|
AGENTS_IG: 'agents-ig',
|
|
AUTH_IG: 'auth-ig',
|
|
CLIENT_IMPLEMENTOR_IG: 'client-implementor-ig',
|
|
FINANCIAL_SERVICES_IG: 'financial-services-ig',
|
|
GATEWAYS_IG: 'gateways-ig',
|
|
PRIMITIVE_GROUPING_IG: 'primitive-grouping-ig',
|
|
SKILLS_OVER_MCP_IG: 'skills-over-mcp-ig',
|
|
TOOL_ANNOTATIONS_IG: 'tool-annotations-ig',
|
|
|
|
// ===================
|
|
// WG/IG Facilitators (Discord only)
|
|
// ===================
|
|
WG_IG_FACILITATORS: 'wg-ig-facilitators',
|
|
|
|
// ===================
|
|
// Email Groups (Google only)
|
|
// ===================
|
|
ANTITRUST: 'antitrust',
|
|
CATCH_ALL: 'catch-all',
|
|
} as const;
|
|
|
|
export type RoleId = (typeof ROLE_IDS)[keyof typeof ROLE_IDS];
|
|
|
|
/**
|
|
* Helper to check if a string is a valid RoleId at runtime.
|
|
*/
|
|
export function isValidRoleId(id: string): id is RoleId {
|
|
return Object.values(ROLE_IDS).includes(id as RoleId);
|
|
}
|