UNPKG

@iflow-mcp/ejmockler-brutalist

Version:

Deploy Claude, Codex & Gemini CLI agents to demolish your work before users do. Real file analysis. Brutal honesty. Now with conversation continuation & intelligent pagination.

121 lines 3.99 kB
/** * Core abstraction: ArgumentSpace * * Defines the parameter schema for a tool - what arguments it accepts. * Argument spaces are composable and reusable across tools. */ import { z } from 'zod'; export interface ArgumentSpace { /** Unique identifier */ id: string; /** Human-readable name */ name: string; /** Base arguments that all tools share */ base: z.ZodObject<any>; /** Domain-specific arguments */ domain: z.ZodObject<any>; /** Optional: compute additional arguments from user input */ computed?: (args: any) => Record<string, any>; /** Optional: validate arguments beyond schema */ validate?: (args: any) => { valid: boolean; errors?: string[]; }; } /** * Standard base arguments shared by all tools */ export declare const BASE_ARGUMENTS: z.ZodObject<{ context: z.ZodOptional<z.ZodString>; models: z.ZodOptional<z.ZodObject<{ claude: z.ZodOptional<z.ZodString>; codex: z.ZodOptional<z.ZodString>; gemini: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { claude?: string | undefined; codex?: string | undefined; gemini?: string | undefined; }, { claude?: string | undefined; codex?: string | undefined; gemini?: string | undefined; }>>; clis: z.ZodOptional<z.ZodArray<z.ZodEnum<["claude", "codex", "gemini"]>, "many">>; force_refresh: z.ZodOptional<z.ZodBoolean>; context_id: z.ZodOptional<z.ZodString>; resume: z.ZodOptional<z.ZodBoolean>; limit: z.ZodOptional<z.ZodNumber>; offset: z.ZodOptional<z.ZodNumber>; cursor: z.ZodOptional<z.ZodString>; verbose: z.ZodOptional<z.ZodBoolean>; }, "strip", z.ZodTypeAny, { context?: string | undefined; models?: { claude?: string | undefined; codex?: string | undefined; gemini?: string | undefined; } | undefined; clis?: ("claude" | "codex" | "gemini")[] | undefined; force_refresh?: boolean | undefined; context_id?: string | undefined; resume?: boolean | undefined; limit?: number | undefined; offset?: number | undefined; cursor?: string | undefined; verbose?: boolean | undefined; }, { context?: string | undefined; models?: { claude?: string | undefined; codex?: string | undefined; gemini?: string | undefined; } | undefined; clis?: ("claude" | "codex" | "gemini")[] | undefined; force_refresh?: boolean | undefined; context_id?: string | undefined; resume?: boolean | undefined; limit?: number | undefined; offset?: number | undefined; cursor?: string | undefined; verbose?: boolean | undefined; }>; /** * Common argument space: Filesystem-based analysis */ export declare const FILESYSTEM_ARGUMENT_SPACE: ArgumentSpace; /** * Common argument space: Text-based input */ export declare const TEXT_INPUT_ARGUMENT_SPACE: ArgumentSpace; /** * Argument space: Filesystem with depth control */ export declare const FILESYSTEM_WITH_DEPTH: ArgumentSpace; /** * Argument space: Package manifest analysis */ export declare const PACKAGE_MANIFEST_SPACE: ArgumentSpace; /** * Argument space: Git repository analysis */ export declare const GIT_REPOSITORY_SPACE: ArgumentSpace; /** * Argument space: Test suite analysis */ export declare const TEST_SUITE_SPACE: ArgumentSpace; /** * Helper to merge multiple argument spaces */ export declare function mergeArgumentSpaces(...spaces: ArgumentSpace[]): ArgumentSpace; /** * Helper to infer cache key fields from an argument space * * NOTE: Excludes pagination/continuation fields (context_id, resume, offset, limit, cursor, force_refresh) * as these don't affect the actual analysis content. */ export declare function inferCacheKeys(space: ArgumentSpace): string[]; /** * Helper to infer the primary argument field */ export declare function inferPrimaryArg(space: ArgumentSpace): string; //# sourceMappingURL=argument-space.d.ts.map