@brutalist/mcp
Version:
Deploy Claude, Codex & Gemini CLI agents to demolish your work before users do. Real file analysis. Brutal honesty. Now with intelligent pagination.
79 lines • 3.84 kB
TypeScript
import { CLIAgentResponse } from './types/brutalist.js';
export type BrutalistPromptType = 'code' | 'codebase' | 'architecture' | 'idea' | 'research' | 'data' | 'security' | 'product' | 'infrastructure' | 'debate' | 'dependencies' | 'fileStructure' | 'gitHistory' | 'testCoverage';
export declare const AVAILABLE_MODELS: {
readonly claude: {
readonly default: undefined;
readonly aliases: readonly ["opus", "sonnet", "haiku"];
readonly full: readonly ["claude-opus-4-1-20250805", "claude-sonnet-4-20250514"];
readonly recommended: "opus";
};
readonly codex: {
readonly default: "gpt-5-codex";
readonly models: readonly ["gpt-5", "gpt-5-codex", "o3", "o3-mini", "o3-pro", "o4-mini"];
readonly recommended: "gpt-5-codex";
};
readonly gemini: {
readonly default: "gemini-2.5-pro";
readonly models: readonly ["gemini-2.5-flash", "gemini-2.5-pro", "gemini-2.5-flash-lite"];
readonly recommended: "gemini-2.5-pro";
};
};
export interface CLIAgentOptions {
workingDirectory?: string;
timeout?: number;
preferredCLI?: 'claude' | 'codex' | 'gemini';
analysisType?: BrutalistPromptType;
models?: {
claude?: string;
codex?: string;
gemini?: string;
};
onStreamingEvent?: (event: StreamingEvent) => void;
progressToken?: string | number;
onProgress?: (progress: number, total: number, message: string) => void;
sessionId?: string;
requestId?: string;
}
export interface StreamingEvent {
type: 'agent_start' | 'agent_progress' | 'agent_complete' | 'agent_error';
agent: 'claude' | 'codex' | 'gemini' | 'system';
content?: string;
timestamp: number;
sessionId?: string;
metadata?: Record<string, any>;
}
export interface CLIContext {
availableCLIs: ('claude' | 'codex' | 'gemini')[];
}
export declare class CLIAgentOrchestrator {
private defaultTimeout;
private defaultWorkingDir;
private cliContext;
private cliContextCached;
private cliContextCacheTime;
private readonly CLI_CACHE_TTL;
private runningCLIs;
private readonly MAX_CONCURRENT_CLIS;
private streamingBuffers;
private readonly STREAMING_FLUSH_INTERVAL;
private readonly MAX_CHUNK_SIZE;
constructor();
private parseClaudeStreamOutput;
private decodeClaudeStreamJson;
private extractCodexAgentMessage;
private emitThrottledStreamingEvent;
detectCLIContext(): Promise<CLIContext>;
selectSingleCLI(preferredCLI?: 'claude' | 'codex' | 'gemini', analysisType?: BrutalistPromptType): 'claude' | 'codex' | 'gemini';
private _executeCLI;
executeClaudeCode(userPrompt: string, systemPromptSpec: string, options?: CLIAgentOptions): Promise<CLIAgentResponse>;
executeCodex(userPrompt: string, systemPromptSpec: string, options?: CLIAgentOptions): Promise<CLIAgentResponse>;
executeGemini(userPrompt: string, systemPromptSpec: string, options?: CLIAgentOptions): Promise<CLIAgentResponse>;
executeSingleCLI(cli: 'claude' | 'codex' | 'gemini', userPrompt: string, systemPromptSpec: string, options?: CLIAgentOptions): Promise<CLIAgentResponse>;
private waitForAvailableSlot;
executeCLIAgents(cliAgents: string[], systemPrompt: string, userPrompt: string, options?: CLIAgentOptions): Promise<CLIAgentResponse[]>;
executeCLIAgent(agent: string, systemPrompt: string, userPrompt: string, options?: CLIAgentOptions): Promise<CLIAgentResponse>;
executeBrutalistAnalysis(analysisType: BrutalistPromptType, primaryContent: string, systemPromptSpec: string, context?: string, options?: CLIAgentOptions): Promise<CLIAgentResponse[]>;
synthesizeBrutalistFeedback(responses: CLIAgentResponse[], analysisType: string): string;
private constructUserPrompt;
}
//# sourceMappingURL=cli-agents.d.ts.map