agent-ecosystem/packages/agent-graph/src/ports/GraphConfigPort.ts
Илия 11bb49c53e
feat(graph): force-directed agent graph visualization with kanban-zone task layout
Force-directed graph visualization for agent teams.

Package: @claude-teams/agent-graph (isolated workspace package)
- Space theme: bloom, particles, hex grid, depth stars
- Members as hexagonal nodes with breathing glow
- Tasks as pill cards in kanban columns (todo/wip/done/review/approved) per owner
- Message particles along edges (real-time only)
- Deterministic layout, Figma-style pan, scroll/pinch zoom
- Clean Architecture: ports/adapters/strategies, ES #private classes

Integration: features/agent-graph/ (adapter + overlay + tab)
- Full-screen overlay (Cmd+Shift+G) + Pin as Tab
- Graph button in Team section header
- Frustum culling, zero per-frame allocations, adaptive fps
- Performance overlay via ?perf query param

Also: CI runs on all PR branches, features/CLAUDE.md architecture guide
2026-03-28 12:03:42 +02:00

55 lines
2.3 KiB
TypeScript

import type { GraphNodeState } from './types';
/**
* Configuration port — visual theme, filters, animation settings.
* All fields optional — package provides sensible defaults.
*/
export interface GraphConfigPort {
// ─── Theme ─────────────────────────────────────────────────────────────
/** Background color (default: space dark #0a0f1a) */
backgroundColor?: string;
/** Whether to show hex grid on background */
showHexGrid?: boolean;
/** Whether to show depth star field */
showStarField?: boolean;
/** Bloom post-processing intensity (0 = off, 1 = default) */
bloomIntensity?: number;
// ─── Node Colors (overrides per state) ─────────────────────────────────
nodeStateColors?: Partial<Record<GraphNodeState, string>>;
/** Task status colors */
taskStatusColors?: {
pending?: string;
in_progress?: string;
completed?: string;
deleted?: string;
};
/** Review state colors */
reviewStateColors?: {
review?: string;
needsFix?: string;
approved?: string;
};
// ─── Filters (show/hide node kinds) ────────────────────────────────────
showTasks?: boolean;
showProcesses?: boolean;
showCompletedTasks?: boolean;
showEdgeLabels?: boolean;
// ─── Animation ─────────────────────────────────────────────────────────
/** Animation enabled (default: true) */
animationEnabled?: boolean;
/** Particle speed multiplier (default: 1) */
particleSpeed?: number;
/** Breathing animation speed (default: 1) */
breathingSpeed?: number;
// ─── Force Layout ──────────────────────────────────────────────────────
/** Charge strength (repulsion, default: -800) */
chargeStrength?: number;
/** Center attraction strength (default: 0.03) */
centerStrength?: number;
/** Task orbit radius around owner (default: 150) */
taskOrbitRadius?: number;
}