diff --git a/app/api/server.py b/app/api/server.py index 4938dab..531ca2e 100644 --- a/app/api/server.py +++ b/app/api/server.py @@ -13,6 +13,12 @@ class CriticFeedbackRequest(BaseModel): feedback: str task_id: str | None = None session_id: str | None = None + feedback_type: str | None = None + severity: str | None = None + correction: str | None = None + remember: bool = True + retry: bool = False + assistant_answer: str | None = None correctness_override: float | None = None usefulness_override: float | None = None safety_override: float | None = None @@ -87,6 +93,12 @@ def critic_feedback(request: CriticFeedbackRequest) -> dict[str, object]: feedback=request.feedback, task_id=request.task_id, session_id=request.session_id, + feedback_type=request.feedback_type, + severity=request.severity, + correction=request.correction, + remember=request.remember, + retry=request.retry, + assistant_answer=request.assistant_answer, correctness_override=request.correctness_override, usefulness_override=request.usefulness_override, safety_override=request.safety_override, diff --git a/app/api/static/index.html b/app/api/static/index.html index b381c08..330f8b6 100644 --- a/app/api/static/index.html +++ b/app/api/static/index.html @@ -68,6 +68,14 @@ font: inherit; cursor: pointer; } + button.secondary { + background: #ffffff; + color: var(--accent); + border: 1px solid var(--border); + } + button.danger { + background: #b42318; + } .messages, .events { display: grid; gap: 12px; @@ -95,6 +103,48 @@ gap: 10px; margin-top: 12px; } + .feedback-actions { + display: flex; + gap: 8px; + flex-wrap: wrap; + margin-top: 10px; + } + dialog { + border: 1px solid var(--border); + border-radius: 8px; + padding: 0; + width: min(560px, calc(100vw - 32px)); + color: var(--text); + } + dialog::backdrop { + background: rgba(20, 18, 15, 0.4); + } + .modal-body { + display: grid; + gap: 12px; + padding: 18px; + background: var(--panel); + } + select { + width: 100%; + border: 1px solid var(--border); + background: #fff; + border-radius: 12px; + padding: 10px; + font: inherit; + } + label { + display: grid; + gap: 6px; + } + label.inline { + display: flex; + align-items: center; + gap: 8px; + } + label.inline input { + width: auto; + } @media (max-width: 860px) { .layout { grid-template-columns: 1fr; } } @@ -117,6 +167,53 @@
+