feat: bootstrap boss control plane prototype
This commit is contained in:
110
src/types.ts
Normal file
110
src/types.ts
Normal file
@@ -0,0 +1,110 @@
|
||||
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[];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user