Component: ValidationToolsMixin
Module:
gaia_agent_code.tools.validation_tools
Import: from gaia_agent_code.tools.validation_tools import ValidationToolsMixinOverview
ValidationToolsMixin provides comprehensive testing and validation tools for Next.js applications with Prisma. It includes CRUD API testing, TypeScript validation, file structure validation, and CSS integrity checks. Key Features:- Test CRUD API endpoints using curl
- Validate TypeScript compilation
- Validate CRUD application structure
- Validate CSS files for common issues
- Schema-aware test payload generation
- Automatic dev server management
- Tier 4 error messaging with rule citations
Tool Specifications
1. test_crud_api
Test CRUD API endpoints with automatic payload generation from schema. Parameters:project_dir(str, required): Path to Next.js projectmodel_name(str, required): Model name (e.g., “Todo”, “Post”)port(int, optional): Dev server port (default: 3000)
- Ensure dev server is running (start if needed)
- Read Prisma schema to get field definitions
- Generate test payload from schema fields
- POST: Create test record (expect 201)
- GET_LIST: List all records (expect 200)
- GET_SINGLE: Get created record (expect 200)
- PATCH: Update record (expect 200)
- DELETE: Delete record (expect 200)
- Cleanup: Stop dev server if we started it
2. validate_typescript
Validate TypeScript code with tier 4 error messaging. Parameters:project_dir(str, required): Path to Next.js project
- Missing type imports
- Missing Prisma singleton
- Prisma types not generated
- Direct prisma import in client component
3. validate_crud_structure
Validate that all required CRUD files exist. Parameters:project_dir(str, required): Path to Next.js projectresource_name(str, required): Resource name (e.g., “todo”)
- List page:
src/app/{resource_plural}/page.tsx - New page:
src/app/{resource_plural}/new/page.tsx - Detail page:
src/app/{resource_plural}/[id]/page.tsx - Form component:
src/components/{Resource}Form.tsx - Actions component:
src/components/{Resource}Actions.tsx - Collection API:
src/app/api/{resource_plural}/route.ts - Item API:
src/app/api/{resource_plural}/[id]/route.ts
4. validate_styles
Validate CSS files and design system consistency. Parameters:project_dir(str, required): Path to Next.js projectresource_name(str, optional): Resource name for component checks
- CSS files contain valid CSS (not TypeScript) - CRITICAL
- globals.css has Tailwind directives
- layout.tsx imports globals.css
- Balanced braces in CSS files
Helper Functions
generate_test_payload
Generate test data from Prisma field definitions. Parameters:fields(Dict[str, str]): Field names to types
_get_create_command
Generate tool command to create missing CRUD file. Parameters:description(str): File descriptionresource_name(str): Resource name
Usage Examples
Example 1: Test CRUD API
Example 2: Validate TypeScript
Example 3: Validate CRUD Structure
Example 4: Validate Styles
Testing Requirements
File:tests/agents/code/test_validation_tools.py
Dependencies
Integration with Other Mixins
Requires CLIToolsMixin
_run_foreground_command: Execute curl commands_run_background_command: Start dev server_stop_process: Stop dev server
Requires WebToolsMixin
read_prisma_model: Read schema for field definitions
ValidationToolsMixin Technical Specification