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>
3.9 KiB
name, description, license
| name | description | license |
|---|---|---|
| mosaic-plugin-gantt | Query and analyze project timelines, task dependencies, and schedules from Mosaic Stack's Gantt/Project API | MIT |
This skill enables querying project timelines, task dependencies, critical path analysis, and project status from Mosaic Stack's API.
Overview
The Mosaic Stack provides project management capabilities with support for:
- Project timelines with start/end dates
- Task dependencies and scheduling
- Task status tracking (NOT_STARTED, IN_PROGRESS, PAUSED, COMPLETED, ARCHIVED)
- Priority levels (LOW, MEDIUM, HIGH, URGENT)
- Project status (PLANNING, ACTIVE, ON_HOLD, COMPLETED, ARCHIVED)
API Endpoints
Base URL: Configured via MOSAIC_API_URL environment variable (default: http://localhost:3000)
Projects
GET /projects- List all projects with paginationGET /projects/:id- Get project details with tasks
Tasks
GET /tasks- List all tasks with optional filters- Query params:
projectId,status,priority,assigneeId,page,limit
- Query params:
Authentication
Requests require authentication headers:
X-Workspace-Id: Workspace UUID (fromMOSAIC_WORKSPACE_IDenv var)Authorization: Bearer token (fromMOSAIC_API_TOKENenv var)
Trigger Phrases & Examples
Query project timeline:
- "Show me the timeline for [project name]"
- "What's the status of [project]?"
- "Give me an overview of Project Alpha"
Check task dependencies:
- "What blocks task [task name]?"
- "What are the dependencies for [task]?"
- "Show me what's blocking [task]"
Project status overview:
- "Project status for [project]"
- "How is [project] doing?"
- "Summary of [project]"
Identify critical path:
- "Find the critical path for [project]"
- "What's the critical path?"
- "Show me blockers for [project]"
- "Which tasks can't be delayed in [project]?"
Find upcoming deadlines:
- "What tasks are due soon in [project]?"
- "Show me tasks approaching deadline"
- "What's due this week?"
Data Models
Project
{
id: string;
name: string;
description?: string;
status: 'PLANNING' | 'ACTIVE' | 'ON_HOLD' | 'COMPLETED' | 'ARCHIVED';
startDate?: Date;
endDate?: Date;
color?: string;
tasks?: Task[];
_count: { tasks: number; events: number };
}
Task
{
id: string;
title: string;
description?: string;
status: 'NOT_STARTED' | 'IN_PROGRESS' | 'PAUSED' | 'COMPLETED' | 'ARCHIVED';
priority: 'LOW' | 'MEDIUM' | 'HIGH' | 'URGENT';
dueDate?: Date;
completedAt?: Date;
projectId?: string;
assigneeId?: string;
metadata: {
startDate?: Date;
dependencies?: string[]; // Array of task IDs
[key: string]: any;
};
}
Helper Scripts
Use gantt-api.sh for API queries:
# List all projects
./gantt-api.sh projects
# Get project by ID
./gantt-api.sh project <project-id>
# Get tasks for a project
./gantt-api.sh tasks <project-id>
# Find critical path
./gantt-api.sh critical-path <project-id>
# Get dependency chain for a task
./gantt-api.sh dependencies <task-id>
PDA-Friendly Language
When presenting information, use supportive, non-judgmental language:
- "Target passed" instead of "OVERDUE" or "LATE"
- "Approaching target" for near-deadline tasks
- "Paused" not "BLOCKED" or "STUCK"
- Focus on what's accomplished and what's next, not what's behind
Implementation Notes
-
Environment Setup: Ensure
.envhas required variables:MOSAIC_API_URL- API base URL (e.g.,http://localhost:3000, no/apisuffix)MOSAIC_WORKSPACE_ID- Workspace UUIDMOSAIC_API_TOKEN- Authentication token
-
Error Handling: API returns 401 for auth errors, 404 for not found
-
Pagination: Projects and tasks are paginated (default 50 items/page)
-
Dependencies: Task dependencies are stored in
metadata.dependenciesas array of task IDs -
Date Handling: Start dates may be in
metadata.startDateor fall back tocreatedAt