feat(api): add MS23 mission control Prisma schema
All checks were successful
ci/woodpecker/push/ci Pipeline was successful

Add 4 new models for Mission Control:
- AgentConversationMessage: per-agent message storage with SSE streaming
- AgentSessionTree: parent/child subagent relationships (taskSource field for mosaic-queue integration)
- AgentProviderConfig: external provider registration per workspace (encrypted credentials)
- OperatorAuditLog: append-only audit trail for barge-in/kill/pause actions

Closes #693 (partial — schema only)
This commit is contained in:
2026-03-06 18:42:12 -06:00
parent 1bed5b3573
commit 3890b528e0
2 changed files with 146 additions and 0 deletions

View File

@@ -1739,3 +1739,66 @@ model UserAgent {
@@unique([userId, name])
@@index([userId])
}
// MS23: Agent conversation messages for Mission Control streaming
model AgentConversationMessage {
id String @id @default(cuid())
sessionId String
provider String @default("internal")
role String
content String
timestamp DateTime @default(now())
metadata Json @default("{}")
@@index([sessionId, timestamp])
}
// MS23: Agent session tree for parent/child relationships
model AgentSessionTree {
id String @id @default(cuid())
sessionId String @unique
parentSessionId String?
provider String @default("internal")
missionId String?
taskId String?
taskSource String? @default("internal")
agentType String?
status String @default("spawning")
spawnedAt DateTime @default(now())
completedAt DateTime?
metadata Json @default("{}")
@@index([parentSessionId])
@@index([missionId])
}
// MS23: External agent provider configuration per workspace
model AgentProviderConfig {
id String @id @default(cuid())
workspaceId String
name String
provider String
gatewayUrl String
credentials Json @default("{}")
isActive Boolean @default(true)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@unique([workspaceId, name])
}
// MS23: Audit log for operator interventions
model OperatorAuditLog {
id String @id @default(cuid())
userId String
sessionId String
provider String
action String
content String?
metadata Json @default("{}")
createdAt DateTime @default(now())
@@index([sessionId])
@@index([userId])
@@index([createdAt])
}