import { z } from 'zod';
import { ToolNameSchema } from './schemas/visualizations';
export * from './adminTypes';
export * from './aiEvalAssessment';
export * from './chartConfig/slack';
export * from './chartConfig/web';
export * from './constants';
export * from './aiAgentReviewClassifierTypes';
export * from './documentTypes';
export * from './filterExploreByTags';
export * from './followUpTools';
export * from './projectContext';
export * from './requestTypes';
export * from './schemas';
export * from './schemas/agentReadiness';
export * from './schemas/agentSuggestions';
export * from './types';
export * from './utils';
export * from './validators';
export const baseAgentSchema = z.object({
    uuid: z.string(),
    projectUuid: z.string(),
    organizationUuid: z.string(),
    name: z.string(),
    description: z.string().nullable(),
    imageUrl: z.string().url().nullable(),
    tags: z.array(z.string()).nullable(),
    integrations: z.array(z.object({
        type: z.literal('slack'),
        channelId: z.string(),
    })),
    createdAt: z.coerce.date(),
    updatedAt: z.coerce.date(),
    instruction: z
        .string()
        .max(8192, // 8kb
    'Custom instruction is too long. Maximum allowed is 8,100 characters.')
        .nullable(),
    provider: z.string(),
    model: z.string(),
    groupAccess: z.array(z.string()),
    userAccess: z.array(z.string()),
    spaceAccess: z.array(z.string()),
    enableDataAccess: z.boolean(),
    enableSelfImprovement: z.boolean(),
    enableContentTools: z.boolean(),
    version: z.number(),
});
// The hosted GitHub MCP server. The one-click "Connect GitHub" flow points the
// MCP server here and authenticates with the org's GitHub App installation
// token (minted server-side), so no separate OAuth/PAT step is needed.
export const GITHUB_MCP_SERVER_URL = 'https://api.githubcopilot.com/mcp/';
export const GITHUB_MCP_SERVER_NAME = 'GitHub';
export const isAiAgentMcpToolName = (toolName) => toolName.startsWith('mcp_');
export const isAiAgentToolName = (toolName) => ToolNameSchema.safeParse(toolName).success ||
    isAiAgentMcpToolName(toolName);
/**
 * Type guard to check if a CreateEvaluationPrompt is a string prompt
 */
export const isStringPrompt = (prompt) => 'prompt' in prompt;
/**
 * Type guard to check if a CreateEvaluationPrompt is a thread reference
 */
export const isThreadPrompt = (prompt) => 'promptUuid' in prompt && 'threadUuid' in prompt;
//# sourceMappingURL=index.js.map