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