111 lines
2.3 KiB
TypeScript
111 lines
2.3 KiB
TypeScript
export type SessionStatus = "active" | "archived";
|
|
export type TaskStatus =
|
|
| "planning"
|
|
| "queued"
|
|
| "assigned"
|
|
| "running"
|
|
| "blocked"
|
|
| "paused"
|
|
| "waiting_approval"
|
|
| "completed"
|
|
| "failed"
|
|
| "cancelled";
|
|
export type WorkerStatus = "idle" | "busy" | "offline";
|
|
export type ApprovalStatus = "pending" | "approved" | "rejected";
|
|
export type RiskLevel = "low" | "medium" | "high";
|
|
|
|
export interface Session {
|
|
id: string;
|
|
title: string;
|
|
status: SessionStatus;
|
|
activeObjective: string;
|
|
lastPlannerSummary: string;
|
|
createdAt: string;
|
|
updatedAt: string;
|
|
}
|
|
|
|
export interface Message {
|
|
id: string;
|
|
sessionId: string;
|
|
role: "user" | "manager" | "system";
|
|
channel: string;
|
|
content: string;
|
|
createdAt: string;
|
|
}
|
|
|
|
export interface Task {
|
|
id: string;
|
|
sessionId: string;
|
|
parentTaskId: string | null;
|
|
title: string;
|
|
description: string;
|
|
kind: string;
|
|
status: TaskStatus;
|
|
priority: "low" | "medium" | "high";
|
|
requiredOs: "any" | "windows" | "macos" | "linux";
|
|
requiredCapabilities: string[];
|
|
dependencyIds: string[];
|
|
assignedWorkerId: string | null;
|
|
approvalStatus: "not_required" | ApprovalStatus;
|
|
progressPercent: number;
|
|
summary: string;
|
|
currentStep: string;
|
|
nextStep: string;
|
|
createdAt: string;
|
|
updatedAt: string;
|
|
}
|
|
|
|
export interface WorkerNode {
|
|
id: string;
|
|
name: string;
|
|
os: "windows" | "macos" | "linux";
|
|
capabilities: string[];
|
|
status: WorkerStatus;
|
|
currentTaskId: string | null;
|
|
load: number;
|
|
lastSeenAt: string;
|
|
createdAt: string;
|
|
updatedAt: string;
|
|
}
|
|
|
|
export interface ApprovalRequest {
|
|
id: string;
|
|
sessionId: string;
|
|
taskId: string;
|
|
kind: string;
|
|
summary: string;
|
|
riskLevel: RiskLevel;
|
|
status: ApprovalStatus;
|
|
requester: string;
|
|
responder: string | null;
|
|
createdAt: string;
|
|
updatedAt: string;
|
|
}
|
|
|
|
export interface BossEvent {
|
|
id: string;
|
|
sessionId: string | null;
|
|
taskId: string | null;
|
|
source: "user" | "manager" | "system" | "worker";
|
|
type: string;
|
|
timestamp: string;
|
|
payload: Record<string, unknown>;
|
|
}
|
|
|
|
export interface AppState {
|
|
sessions: Session[];
|
|
messages: Message[];
|
|
tasks: Task[];
|
|
workers: WorkerNode[];
|
|
approvals: ApprovalRequest[];
|
|
events: BossEvent[];
|
|
}
|
|
|
|
export interface SessionDetails {
|
|
session: Session;
|
|
messages: Message[];
|
|
tasks: Task[];
|
|
approvals: ApprovalRequest[];
|
|
}
|
|
|