feat: add agent types and interfaces
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
import { describe, it, expect } from 'vitest'
|
||||
import type { AgentSignal, AnalystReport } from '../agents'
|
||||
|
||||
describe('Agent Types', () => {
|
||||
it('should define valid agent signal structure', () => {
|
||||
const signal: AgentSignal = {
|
||||
agent: 'fundamentals',
|
||||
signal: 'bullish',
|
||||
confidence: 0.85,
|
||||
reasoning: 'Strong fundamentals',
|
||||
timestamp: '2026-01-15T00:00:00.000Z'
|
||||
}
|
||||
expect(signal.agent).toBe('fundamentals')
|
||||
expect(signal.signal).toBe('bullish')
|
||||
})
|
||||
|
||||
it('should allow neutral signal', () => {
|
||||
const signal: AgentSignal = {
|
||||
agent: 'technical',
|
||||
signal: 'neutral',
|
||||
confidence: 0.5,
|
||||
reasoning: 'Market indecision',
|
||||
timestamp: '2026-01-15T00:00:00.000Z'
|
||||
}
|
||||
expect(signal.signal).toBe('neutral')
|
||||
})
|
||||
})
|
||||
@@ -0,0 +1,38 @@
|
||||
export type SignalType = 'bullish' | 'bearish' | 'neutral'
|
||||
|
||||
export interface AgentSignal {
|
||||
agent: 'fundamentals' | 'sentiment' | 'news' | 'technical' | 'trader'
|
||||
signal: SignalType
|
||||
confidence: number
|
||||
reasoning: string
|
||||
timestamp: string
|
||||
}
|
||||
|
||||
export interface AnalystReport {
|
||||
analyst: 'fundamentals' | 'sentiment' | 'news' | 'technical'
|
||||
report: string
|
||||
signal: AgentSignal
|
||||
}
|
||||
|
||||
export interface DebateRound {
|
||||
bullishView: string
|
||||
bearishView: string
|
||||
researcher: 'bullish' | 'bearish'
|
||||
}
|
||||
|
||||
export interface TradingDecision {
|
||||
action: 'buy' | 'sell' | 'hold'
|
||||
confidence: number
|
||||
targetPrice?: number
|
||||
stopLoss?: number
|
||||
reasoning: string
|
||||
agentSignals: AgentSignal[]
|
||||
debateRounds: DebateRound[]
|
||||
}
|
||||
|
||||
export interface AgentConfig {
|
||||
llmProvider: 'openrouter'
|
||||
model: string
|
||||
maxDebateRounds: number
|
||||
temperature: number
|
||||
}
|
||||
Reference in New Issue
Block a user