/** * 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; /** Domain-specific arguments */ domain: z.ZodObject; /** Optional: compute additional arguments from user input */ computed?: (args: any) => Record; /** 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; models: z.ZodOptional; codex: z.ZodOptional; agy: z.ZodOptional; }, "strip", z.ZodTypeAny, { claude?: string | undefined; codex?: string | undefined; agy?: string | undefined; }, { claude?: string | undefined; codex?: string | undefined; agy?: string | undefined; }>>; clis: z.ZodOptional, "many">>; force_refresh: z.ZodOptional; context_id: z.ZodOptional; resume: z.ZodOptional; limit: z.ZodOptional; offset: z.ZodOptional; cursor: z.ZodOptional; verbose: z.ZodOptional; }, "strip", z.ZodTypeAny, { context?: string | undefined; models?: { claude?: string | undefined; codex?: string | undefined; agy?: string | undefined; } | undefined; clis?: ("claude" | "codex" | "agy")[] | 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; agy?: string | undefined; } | undefined; clis?: ("claude" | "codex" | "agy")[] | 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