Skip to content
This repository was archived by the owner on Aug 19, 2026. It is now read-only.
This repository was archived by the owner on Aug 19, 2026. It is now read-only.

[AGENT-2137] Agent list page — full-screen Dialog from MainLayout with SlideUp #577

Description

@dnviti

Code: AGENT-2137
Priority: MEDIUM
Section: Orchestration — Agent Orchestration Gateway (Phase 4: GUI)
Dependencies: AGENT-2123

Description

Create the agent management list page as a full-screen MUI Dialog opened from MainLayout, following the established pattern for features that overlay the workspace (to preserve active RDP/SSH sessions). The page displays all agent definitions for the current tenant with their status, LLM provider, last run information, and action buttons.

Technical Details

Client — Agent List Dialog (client/src/components/Agents/AgentListDialog.tsx)

  • Full-screen MUI Dialog with TransitionComponent={SlideUp} (import from '../common/SlideUp')
  • Props: { open: boolean, onClose: () => void }
  • AppBar position="static" + Toolbar variant="dense" with:
    • Close button (left)
    • Title: "Agent Management"
    • Create Agent button (right, opens creation wizard)
  • Agent list table (MUI DataGrid or Table):
    • Columns: Name, Status (chip: ACTIVE/PAUSED/DISABLED), Provider (chip: resolved source — agent/tenant/platform), Model, Last Run (relative time), Instances (running count), Actions
    • Actions: Start (opens task input), Pause/Resume, Edit, Delete (with confirmation)
    • Row click: opens Agent Detail view
    • Empty state: illustration + "Create your first agent" CTA
  • Toolbar: search input, status filter (All/Active/Paused/Disabled), refresh button
  • Loading state: skeleton rows
  • Error state: error banner with retry

Client — Agent API (client/src/api/agent.api.ts)

  • listAgents() → AgentDefinition[]
  • createAgent(input) → AgentDefinition
  • getAgent(id) → AgentDefinition (with permissions, schedules)
  • updateAgent(id, input) → AgentDefinition
  • deleteAgent(id) → void
  • startAgent(id, taskDescription) → AgentInstance
  • testLlmConnection(id) → { success, latencyMs, model, error? }

Client — Agent Store (client/src/store/agentStore.ts)

  • Zustand store with: agents[], selectedAgent, loading, error
  • Actions: fetchAgents, createAgent, updateAgent, deleteAgent, setSelectedAgent

Client — MainLayout Integration

  • Add "Agents" button to sidebar navigation (below existing items)
  • State in MainLayout: agentDialogOpen
  • Render <AgentListDialog> outside the blur wrapper Box (same as other full-screen dialogs)

Files Involved

  • CREATE client/src/components/Agents/AgentListDialog.tsx — Full-screen agent list
  • CREATE client/src/api/agent.api.ts — Agent API client
  • CREATE client/src/store/agentStore.ts — Zustand agent store
  • MODIFY client/src/components/Layout/MainLayout.tsx — Add agents button and dialog state

Reference: Agent Orchestration Gateway — Phase 4.1

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions