feat: Review-Agent (Multi-Agent-Kommunikation)
- Session hat optionalen ReviewAgentId + MaxReviewIterations - Nach end_turn des Worker-Agents wird der Review-Agent aufgerufen - Review-Agent bekommt Worker-Konversation als Kontext + kann Tools nutzen - [APPROVED] in Review-Antwort → fertig, sonst Feedback an Worker - Worker korrigiert und wird erneut reviewed (max N Runden) - SSE-Events: review_start, review_text, review_tool_use, review_feedback, review_approved - Chat-UI: Review-Phase als eigene Bubble mit Header, Text, Status - Session-Page: Review-Agent-Picker (gleicher Agent-Card-Helper) - Dashboard: Review-Agent-Badge auf Session-Cards - DB-Migration: review_agent_id, max_review_iterations auf sessions
This commit is contained in:
1 parent
2598656f1c
commit
5fe3f8ac87
12 files changed
+619
-18
No files matched your search
@@ -973,3 +973,74 @@
|
||||
text-align: center;
|
||||
padding: var(--page-padding);
|
||||
}
|
||||
|
||||
/* Review Bubbles */
|
||||
|
||||
.review-bubble {
|
||||
align-self: flex-start;
|
||||
background: var(--f1-bg);
|
||||
border: var(--border-width) solid var(--f1-border);
|
||||
border-left: 3px solid var(--secondary);
|
||||
max-width: 80%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: var(--badge-spacing);
|
||||
}
|
||||
|
||||
.review-header {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: var(--badge-spacing);
|
||||
color: var(--secondary);
|
||||
}
|
||||
|
||||
.review-round {
|
||||
opacity: var(--semi-transparent);
|
||||
font-size: var(--font-size);
|
||||
}
|
||||
|
||||
.review-content {
|
||||
word-break: break-word;
|
||||
}
|
||||
|
||||
.review-tool-use {
|
||||
font-size: var(--font-size);
|
||||
opacity: var(--semi-transparent);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: var(--badge-spacing);
|
||||
}
|
||||
|
||||
.review-status {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: var(--badge-spacing);
|
||||
padding-top: var(--badge-spacing);
|
||||
border-top: var(--border-width) solid var(--f2-border);
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.review-approved {
|
||||
color: var(--success);
|
||||
}
|
||||
|
||||
.review-rejected {
|
||||
color: var(--warning);
|
||||
}
|
||||
|
||||
/* Review Iterations Row */
|
||||
|
||||
.review-iterations-row {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: var(--box-spacing);
|
||||
}
|
||||
|
||||
.review-iterations-row label {
|
||||
margin: 0;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.review-iterations-row input[type="number"] {
|
||||
width: 5em;
|
||||
}
|
||||
Reference in new issue
Block a user