feat: add chief_analyst AgentStep, summary phase, and ChiefAnalystReport type

This commit is contained in:
Ali AL OGAILI 2026-03-24 14:08:05 +01:00
parent 0f74540e04
commit 9a46424e61
4 changed files with 15 additions and 2 deletions

View File

@ -26,6 +26,7 @@ const STEP_ACCENT: Record<AgentStep, string> = {
conservative_analyst: '#00C4E8', conservative_analyst: '#00C4E8',
neutral_analyst: '#A78BFA', neutral_analyst: '#A78BFA',
risk_judge: '#FFB400', risk_judge: '#FFB400',
chief_analyst: '#adc6ff',
} }
const STEP_ROLE_DESC: Partial<Record<AgentStep, string>> = { const STEP_ROLE_DESC: Partial<Record<AgentStep, string>> = {

View File

@ -1,5 +1,5 @@
import type { AgentStep, RunStatus } from '@/lib/types/run' import type { AgentStep, RunStatus } from '@/lib/types/run'
import type { Decision, StepStatus } from '@/lib/types/agents' import type { Decision, StepStatus, ChiefAnalystReport } from '@/lib/types/agents'
export type TokenCount = { in: number; out: number } export type TokenCount = { in: number; out: number }
@ -11,4 +11,5 @@ export type RunStreamState = {
error: string | null error: string | null
tokensByStep: Record<AgentStep, TokenCount> tokensByStep: Record<AgentStep, TokenCount>
tokensTotal: TokenCount tokensTotal: TokenCount
chiefAnalystReport: ChiefAnalystReport | null
} }

View File

@ -4,3 +4,10 @@ export type Decision = 'BUY' | 'SELL' | 'HOLD'
export type DebateTurn = { speaker: string; text: string } export type DebateTurn = { speaker: string; text: string }
export type PhaseReport = { step: AgentStep; content: string } export type PhaseReport = { step: AgentStep; content: string }
export type StepStatus = 'pending' | 'running' | 'done' export type StepStatus = 'pending' | 'running' | 'done'
export type ChiefAnalystReport = {
verdict: 'BUY' | 'SELL' | 'HOLD'
catalyst: string
execution: string
tail_risk: string
}

View File

@ -11,12 +11,14 @@ export type AgentStep =
| 'conservative_analyst' | 'conservative_analyst'
| 'neutral_analyst' | 'neutral_analyst'
| 'risk_judge' | 'risk_judge'
| 'chief_analyst'
export const AGENT_STEPS: AgentStep[] = [ export const AGENT_STEPS: AgentStep[] = [
'market_analyst', 'news_analyst', 'fundamentals_analyst', 'social_analyst', 'market_analyst', 'news_analyst', 'fundamentals_analyst', 'social_analyst',
'bull_researcher', 'bear_researcher', 'research_manager', 'bull_researcher', 'bear_researcher', 'research_manager',
'trader', 'trader',
'aggressive_analyst', 'conservative_analyst', 'neutral_analyst', 'risk_judge', 'aggressive_analyst', 'conservative_analyst', 'neutral_analyst', 'risk_judge',
'chief_analyst',
] ]
export const AGENT_STEP_LABELS: Record<AgentStep, string> = { export const AGENT_STEP_LABELS: Record<AgentStep, string> = {
@ -32,9 +34,10 @@ export const AGENT_STEP_LABELS: Record<AgentStep, string> = {
conservative_analyst: 'Conservative', conservative_analyst: 'Conservative',
neutral_analyst: 'Neutral', neutral_analyst: 'Neutral',
risk_judge: 'Risk Judge', risk_judge: 'Risk Judge',
chief_analyst: 'Chief Analyst',
} }
export const STEP_PHASE: Record<AgentStep, 'analysts' | 'researchers' | 'trader' | 'risk'> = { export const STEP_PHASE: Record<AgentStep, 'analysts' | 'researchers' | 'trader' | 'risk' | 'summary'> = {
market_analyst: 'analysts', market_analyst: 'analysts',
news_analyst: 'analysts', news_analyst: 'analysts',
fundamentals_analyst: 'analysts', fundamentals_analyst: 'analysts',
@ -47,6 +50,7 @@ export const STEP_PHASE: Record<AgentStep, 'analysts' | 'researchers' | 'trader'
conservative_analyst: 'risk', conservative_analyst: 'risk',
neutral_analyst: 'risk', neutral_analyst: 'risk',
risk_judge: 'risk', risk_judge: 'risk',
chief_analyst: 'summary',
} }
export type RunStatus = 'queued' | 'running' | 'complete' | 'error' export type RunStatus = 'queued' | 'running' | 'complete' | 'error'