package model import "time" // AcpStatusResponse is the API response for ACP status. type AcpStatusResponse struct { WorkspaceID string `json:"workspaceId"` Ready bool `json:"ready"` SessionID string `json:"sessionId,omitempty"` Running bool `json:"running"` PID int `json:"pid,omitempty"` Error string `json:"error,omitempty"` } // AcpMessage is a single role/text/time entry in the ACP history. type AcpMessage struct { Role string `json:"role"` Text string `json:"text"` Time time.Time `json:"time"` MessageID string `json:"messageId,omitempty"` } // AcpHistoryResponse is the API response for ACP history. type AcpHistoryResponse struct { SessionID string `json:"sessionId"` Messages []AcpMessage `json:"messages"` } // AcpPromptRequest is the body for POST /acp/prompt. type AcpPromptRequest struct { Content string `json:"content"` } // AcpPromptResponse is the API response for a prompt turn. type AcpPromptResponse struct { SessionID string `json:"sessionId"` StopReason string `json:"stopReason"` Text string `json:"text"` } // AcpStreamRequest is the first client message on the ACP streaming WebSocket. type AcpStreamRequest struct { Type string `json:"type"` Content string `json:"content"` } // AcpStreamEvent is a server-to-client streaming event. type AcpStreamEvent struct { Type string `json:"type"` MessageID string `json:"messageId,omitempty"` Text string `json:"text,omitempty"` StopReason string `json:"stopReason,omitempty"` Error string `json:"error,omitempty"` }