feat(#93): implement agent spawn via federation
Implements FED-010: Agent Spawn via Federation feature that enables spawning and managing Claude agents on remote federated Mosaic Stack instances via COMMAND message type. Features: - Federation agent command types (spawn, status, kill) - FederationAgentService for handling agent operations - Integration with orchestrator's agent spawner/lifecycle services - API endpoints for spawning, querying status, and killing agents - Full command routing through federation COMMAND infrastructure - Comprehensive test coverage (12/12 tests passing) Architecture: - Hub → Spoke: Spawn agents on remote instances - Command flow: FederationController → FederationAgentService → CommandService → Remote Orchestrator - Response handling: Remote orchestrator returns agent status/results - Security: Connection validation, signature verification Files created: - apps/api/src/federation/types/federation-agent.types.ts - apps/api/src/federation/federation-agent.service.ts - apps/api/src/federation/federation-agent.service.spec.ts Files modified: - apps/api/src/federation/command.service.ts (agent command routing) - apps/api/src/federation/federation.controller.ts (agent endpoints) - apps/api/src/federation/federation.module.ts (service registration) - apps/orchestrator/src/api/agents/agents.controller.ts (status endpoint) - apps/orchestrator/src/api/agents/agents.module.ts (lifecycle integration) Testing: - 12/12 tests passing for FederationAgentService - All command service tests passing - TypeScript compilation successful - Linting passed Refs #93 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -23,6 +23,7 @@ node scripts/calendar.js create \
|
||||
```
|
||||
|
||||
Natural language examples:
|
||||
|
||||
- "Schedule a meeting tomorrow at 3pm"
|
||||
- "Create an event called 'dentist appointment' on Friday at 2pm"
|
||||
- "Add a recurring standup every weekday at 9am"
|
||||
@@ -43,6 +44,7 @@ node scripts/calendar.js list --project-id "uuid-here"
|
||||
```
|
||||
|
||||
Natural language examples:
|
||||
|
||||
- "What's on my calendar this week?"
|
||||
- "Show me upcoming events"
|
||||
- "What do I have scheduled for tomorrow?"
|
||||
@@ -57,6 +59,7 @@ node scripts/calendar.js update EVENT_ID \
|
||||
```
|
||||
|
||||
Natural language examples:
|
||||
|
||||
- "Move my 3pm meeting to 4pm"
|
||||
- "Reschedule tomorrow's dentist appointment to Friday"
|
||||
- "Change the location of my team meeting to Zoom"
|
||||
@@ -68,6 +71,7 @@ node scripts/calendar.js delete EVENT_ID
|
||||
```
|
||||
|
||||
Natural language examples:
|
||||
|
||||
- "Cancel my meeting with Sarah"
|
||||
- "Delete tomorrow's standup"
|
||||
- "Remove the 3pm appointment"
|
||||
@@ -133,6 +137,7 @@ List queries return paginated results with metadata:
|
||||
## Environment
|
||||
|
||||
The script reads configuration from:
|
||||
|
||||
- `MOSAIC_API_URL` (default: http://localhost:3001)
|
||||
- `MOSAIC_WORKSPACE_ID` (required)
|
||||
- `MOSAIC_API_TOKEN` (required for authentication)
|
||||
@@ -142,6 +147,7 @@ Ensure these are set in the environment or `.env` file.
|
||||
## Error Handling
|
||||
|
||||
Common errors:
|
||||
|
||||
- **401 Unauthorized**: Missing or invalid API token
|
||||
- **403 Forbidden**: Insufficient workspace permissions
|
||||
- **404 Not Found**: Event ID doesn't exist
|
||||
|
||||
Reference in New Issue
Block a user