@barfinex/types
Version:
Core TypeScript type definitions and shared interfaces for the Barfinex ecosystem. Provides strongly-typed contracts for modules, services, and plugins.
185 lines • 5.11 kB
TypeScript
import { ConnectorType, MarketType } from './connector.interface';
import { SignalDirection } from './signal.interface';
import { CalibrationDecisionMeta } from './calibration/conviction-calibration.interface';
import { DetectorStrategySignalAttribution } from './detector-strategy.interface';
export declare enum AdvisorWorkflowState {
PLAN = "PLAN",
DECIDE = "DECIDE",
VALIDATE = "VALIDATE",
EXECUTE = "EXECUTE",
REVIEW = "REVIEW"
}
export declare enum AdvisorDecision {
TRADE = "TRADE",
NO_TRADE = "NO_TRADE"
}
export interface TradeIntent {
intentId: string;
symbol: string;
connectorType: ConnectorType;
marketType: MarketType;
decision: AdvisorDecision;
direction?: SignalDirection;
confidence: number;
entryPrice?: number;
stopPrice?: number;
targets?: number[];
rationale: string;
issuedAt: number;
expiresAt: number;
}
export interface ExecutionCommand {
commandId: string;
idempotencyKey: string;
intentId: string;
symbol: string;
connectorType: ConnectorType;
marketType: MarketType;
side: 'BUY' | 'SELL';
type: 'MARKET' | 'LIMIT' | 'STOP_MARKET' | 'TAKE_PROFIT_MARKET';
quantity: number;
price?: number;
sourceKey: string;
sourceRestApiUrl?: string;
issuedAt: number;
}
export interface ReviewResult {
intentId: string;
symbol: string;
isWin: boolean;
entryPrice: number;
exitPrice: number;
realizedRr?: number;
winRate: number;
feedback: string;
reviewedAt: number;
}
export interface PolicyDecision {
accepted: boolean;
reasons: string[];
}
export interface RiskGateDecision {
accepted: boolean;
reasons: string[];
}
export interface PromptPolicyVersion {
version: number;
policyText: string;
source: 'baseline' | 'controller' | 'manual';
createdAt: number;
}
export interface AdvisorLlmDecision {
decision: AdvisorDecision;
symbol: string;
direction?: SignalDirection;
confidence: number;
intent?: 'ENTER' | 'HOLD' | 'EXIT' | 'STAND_DOWN';
cooldownMs?: number;
riskBoost?: number;
trend: string;
entryPrice?: number;
stopPrice?: number;
targets?: number[];
rationale: string;
validUntil?: number;
constraints?: string[];
horizonClass?: 'scalp' | 'intraday' | 'swing';
reasoningCode?: string;
windowSec: number;
generatedAt: number;
conviction?: AdvisorConvictionSnapshot;
capitalMultiplier?: number;
calibratedConfidence?: number;
}
export interface AdvisorConvictionComponents {
confidenceScore: number;
regimeScore: number;
volatilityScore: number;
liquidityScore: number;
healthScore?: number;
}
export interface AdvisorConvictionSnapshot {
finalScore: number;
baseScore: number;
riskFloor: number;
capitalMultiplier: number;
allocatedMultiplier?: number;
multiplierRaw: number;
multiplierCapped: number;
components: AdvisorConvictionComponents;
}
export declare enum AdvisorMarketRegime {
TREND = "TREND",
RANGE = "RANGE",
BREAKOUT = "BREAKOUT",
REVERSAL = "REVERSAL",
MIXED = "MIXED",
UNKNOWN = "UNKNOWN"
}
export interface AdvisorRiskBudget {
maxPositionUsd?: number;
maxLeverage?: number;
maxDrawdownPct?: number;
maxSpreadPct?: number;
}
export interface AdvisorLlmDecisionRequest {
requestId: string;
sessionId: string;
idempotencyKey: string;
symbol: string;
modelProfile?: 'coding' | 'ml';
connectorType: ConnectorType;
marketType: MarketType;
marketRegime: AdvisorMarketRegime;
riskBudget?: AdvisorRiskBudget;
issuedAt: number;
decisionWindow?: {
triggerEvents: string[];
triggerCount: number;
decisionWindowMs: number;
};
detectorStrategy?: DetectorStrategySignalAttribution;
}
export interface AdvisorDecisionValidation {
accepted: boolean;
reasons: string[];
featureValidationStatus?: 'valid' | 'invalid' | 'unknown';
missingFeatureCount?: number;
nanFeatureCount?: number;
decisionBlockReason?: string;
strategyRequirementFailure?: string;
}
export interface AdvisorLlmUsage {
promptTokens?: number;
completionTokens?: number;
totalTokens?: number;
}
export interface AdvisorLlmTransportMeta {
provider: 'openai' | 'glm' | 'claude-cli';
model: string;
modelProfile?: 'coding' | 'ml';
latencyMs: number;
usage?: AdvisorLlmUsage;
calibration?: CalibrationDecisionMeta;
}
export interface AdvisorLlmDecisionResponse {
requestId: string;
sessionId: string;
approvedDecision: AdvisorLlmDecision;
validation: AdvisorDecisionValidation;
policyFlags: string[];
latencyMs: number;
generatedAt: number;
meta?: AdvisorLlmTransportMeta;
}
export interface AdvisorHistoricalSetup {
symbol: string;
regime: AdvisorMarketRegime;
decision: AdvisorDecision;
confidence: number;
realizedRr?: number;
slippageBps?: number;
timeToFillMs?: number;
ts: number;
}
//# sourceMappingURL=advisor-agent.interface.d.ts.map