summaryrefslogtreecommitdiff
path: root/frontend/src/types.ts
diff options
context:
space:
mode:
Diffstat (limited to 'frontend/src/types.ts')
-rw-r--r--frontend/src/types.ts95
1 files changed, 95 insertions, 0 deletions
diff --git a/frontend/src/types.ts b/frontend/src/types.ts
index c6d1263..ac8d417 100644
--- a/frontend/src/types.ts
+++ b/frontend/src/types.ts
@@ -9,3 +9,98 @@ export type Choice = {
id: string
label: string
}
+
+// Contract types
+export type ContractType = 'simple' | 'specification' | 'execute'
+export type ContractPhase = 'research' | 'specify' | 'plan' | 'execute' | 'review'
+export type ContractStatus = 'active' | 'completed' | 'archived'
+
+export interface ContractSummary {
+ id: string
+ name: string
+ description?: string
+ contractType: string
+ phase: string
+ status: string
+ supervisorTaskId?: string
+ localOnly: boolean
+ fileCount: number
+ taskCount: number
+ repositoryCount: number
+ version: number
+ createdAt: string
+ // Red team fields
+ redTeamEnabled?: boolean
+}
+
+export interface Contract {
+ id: string
+ ownerId: string
+ name: string
+ description?: string
+ contractType: string
+ phase: string
+ status: string
+ supervisorTaskId?: string
+ autonomousLoop: boolean
+ phaseGuard: boolean
+ completedDeliverables: Record<string, string[]>
+ localOnly: boolean
+ redTeamEnabled: boolean
+ redTeamPrompt?: string
+ version: number
+ createdAt: string
+ updatedAt: string
+}
+
+export interface CreateContractRequest {
+ name: string
+ description?: string
+ contractType?: string
+ initialPhase?: string
+ autonomousLoop?: boolean
+ phaseGuard?: boolean
+ localOnly?: boolean
+ redTeamEnabled?: boolean
+ redTeamPrompt?: string
+}
+
+export interface TaskSummary {
+ id: string
+ contractId?: string
+ contractName?: string
+ contractPhase?: string
+ contractStatus?: string
+ parentTaskId?: string
+ depth: number
+ name: string
+ status: string
+ priority: number
+ progressSummary?: string
+ subtaskCount: number
+ version: number
+ isSupervisor: boolean
+ isRedTeam: boolean
+ hidden: boolean
+ createdAt: string
+ updatedAt: string
+}
+
+// Red team notification types
+export type NotificationSeverity = 'info' | 'warning' | 'critical'
+
+export interface RedTeamNotification {
+ id: string
+ contractId: string
+ redTeamTaskId: string
+ relatedTaskId?: string
+ message: string
+ severity: NotificationSeverity
+ filePath?: string
+ context?: string
+ delivered: boolean
+ deliveredAt?: string
+ acknowledged: boolean
+ acknowledgedAt?: string
+ createdAt: string
+}