CODEX_ADK/FRONTEND/lib/api/api.dart
jean-philippe ff34042975 feat: Complete API integration for Agents, Conversations, and Executions
Implement full CQRS API integration with type-safe endpoints for all core backend operations.

## What's New
- **Agent Management**: 4 endpoints (create, get, update, delete) with 3 enums
- **Conversations**: 2 endpoints (create, get) with message support
- **Executions**: 3 endpoints (start, complete, get) with status tracking
- **OpenAPI Schema**: Updated to backend v1.0.0-mvp (10 endpoints)

## Implementation Details
- All endpoints follow CQRS pattern (commands/queries)
- 100% strict typing (no dynamic, all explicit types)
- Functional error handling with Result<T> pattern
- 3,136+ lines of production code
- 1,500+ lines of comprehensive documentation

## Files Added
- lib/api/endpoints/agent_endpoint.dart (364 lines)
- lib/api/endpoints/conversation_endpoint.dart (319 lines)
- lib/api/endpoints/execution_endpoint.dart (434 lines)
- lib/api/examples/agent_example.dart (212 lines)
- docs/AGENT_API_INTEGRATION.md (431 lines)
- docs/COMPLETE_API_INTEGRATION.md (555 lines)
- docs/INTEGRATION_STATUS.md (339 lines)

## Quality Metrics
- Flutter analyze: 0 errors 
- Type safety: 100% (0 dynamic types) 
- CQRS compliance: 100% 
- Backend compatibility: v1.0.0-mvp 

## Backend Integration
- Updated api-schema.json from backend openapi.json
- Supports all MVP endpoints except list operations (deferred to Phase 3)
- Ready for JWT authentication (infrastructure in place)

## Usage
```dart
import 'package:console/api/api.dart';

final client = CqrsApiClient(config: ApiClientConfig.development);

// Agent CRUD
await client.createAgent(CreateAgentCommand(...));
await client.getAgent('uuid');

// Conversations
await client.createConversation(CreateConversationCommand(...));

// Executions
await client.startAgentExecution(StartAgentExecutionCommand(...));
```

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-26 18:53:19 -04:00

132 lines
3.2 KiB
Dart

/// Svrnty Console API Client Library
///
/// Type-safe CQRS API client for communicating with the backend.
///
/// This library provides:
/// - CQRS pattern support (queries, commands, paginated queries)
/// - Functional error handling with Result&lt;T&gt;
/// - Type-safe serialization via Serializable interface
/// - OpenAPI contract-driven development
///
/// ## Quick Start
///
/// ```dart
/// import 'package:console/api/api.dart';
///
/// // Create client
/// final client = CqrsApiClient(
/// config: ApiClientConfig.development,
/// );
///
/// // Execute query
/// final result = await client.checkHealth();
///
/// result.when(
/// success: (isHealthy) => print('API healthy: $isHealthy'),
/// error: (error) => print('Error: ${error.message}'),
/// );
///
/// // Clean up
/// client.dispose();
/// ```
///
/// ## CQRS Patterns
///
/// ### Queries (Read)
/// ```dart
/// final result = await client.executeQuery<UserDto>(
/// endpoint: 'users/123',
/// query: GetUserQuery(userId: '123'),
/// fromJson: UserDto.fromJson,
/// );
/// ```
///
/// ### Commands (Write)
/// ```dart
/// final result = await client.executeCommand(
/// endpoint: 'createUser',
/// command: CreateUserCommand(name: 'John', email: 'john@example.com'),
/// );
/// ```
///
/// ### Paginated Queries (Lists)
/// ```dart
/// final result = await client.executePaginatedQuery<UserDto>(
/// endpoint: 'users',
/// query: ListUsersQuery(),
/// itemFromJson: UserDto.fromJson,
/// page: 1,
/// pageSize: 20,
/// );
/// ```
///
/// See [README_API.md] for complete documentation.
library;
// Core exports
export 'client.dart' show CqrsApiClient, ApiClientConfig;
export 'types.dart'
show
// Result type
Result,
ApiSuccess,
ApiError,
// Error types
ApiErrorInfo,
ApiErrorType,
// Pagination
PaginatedResponse,
PageInfo,
FilterCriteria,
FilterOperator,
SortCriteria,
SortDirection,
// Serialization
Serializable,
// Queries (from schema)
HealthQuery;
// Endpoint extensions
export 'endpoints/health_endpoint.dart' show HealthEndpoint, performHealthCheck;
export 'endpoints/agent_endpoint.dart'
show
AgentEndpoint,
// Enums
AgentType,
AgentStatus,
ModelProviderType,
// Commands
CreateAgentCommand,
UpdateAgentCommand,
DeleteAgentCommand,
// Queries
GetAgentQuery,
// DTOs
AgentDto;
export 'endpoints/conversation_endpoint.dart'
show
ConversationEndpoint,
// Commands
CreateConversationCommand,
// Queries
GetConversationQuery,
// DTOs
CreateConversationResult,
ConversationDto,
ConversationListItemDto,
ConversationMessageDto;
export 'endpoints/execution_endpoint.dart'
show
ExecutionEndpoint,
// Enums
ExecutionStatus,
// Commands
StartAgentExecutionCommand,
CompleteAgentExecutionCommand,
// Queries
GetAgentExecutionQuery,
// DTOs
StartExecutionResult,
AgentExecutionDto,
ExecutionListItemDto;