Files
deerflow-code/offline-backend-20260512/backend/app/report_collaboration/contracts/messages.py
T
董宏凯andCursor 5e953c9fcb feat(report-collaboration): complete RC-BE-015–018 backend, eval suite, and MySQL sync
Ship report rewrite/version APIs, security budget and audit persistence, AgentScope worker wiring, and the 20-task quality eval harness so the frontend can integrate against a stable contract once enabled in config.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-06 17:32:15 +08:00

37 lines
1006 B
Python

"""Conversation-replica message rows (snake_case wire fields)."""
from __future__ import annotations
from typing import Any
from pydantic import BaseModel, ConfigDict, Field
from app.report_collaboration.contracts.enums import CollaborationMessageRole, MessageVisibility
class CollaborationToolCall(BaseModel):
model_config = ConfigDict(extra="forbid")
id: str
name: str
args: str | dict[str, Any]
class CollaborationMessage(BaseModel):
model_config = ConfigDict(extra="forbid")
message_id: str
role: CollaborationMessageRole
content: str = ""
name: str | None = None
tool_calls: list[CollaborationToolCall] = Field(default_factory=list)
tool_call_id: str | None = None
agent_run_id: str | None = None
node_run_id: str | None = None
phase_id: str | None = None
visibility: MessageVisibility = "visible"
metadata: dict[str, Any] | None = None
command_id: str | None = None
created_at: str
completed_at: str | None = None