UNPKG

@barfinex/types

Version:

Core TypeScript type definitions and shared interfaces for the Barfinex ecosystem. Provides strongly-typed contracts for modules, services, and plugins.

113 lines 3.77 kB
import type { DetectorStrategyDefinition } from './detector-strategy.interface'; export type StrategyDependencyKind = 'indicator' | 'plugin' | 'pattern'; export interface StrategyDependencyReference { kind: StrategyDependencyKind; id: string; } export type StrategyParameterType = 'string' | 'number' | 'integer' | 'boolean' | 'object' | 'array'; export interface StrategyParameterSchemaField { type: StrategyParameterType; required?: boolean; min?: number; max?: number; enum?: Array<string | number | boolean>; } export interface StrategyParameterSchema { fields: Record<string, StrategyParameterSchemaField>; } export interface StrategySynthesisConstraints { requireExperimentTag?: boolean; allowedDetectorTypes?: string[]; allowedIndicators?: string[]; allowedPlugins?: string[]; allowedPatterns?: string[]; allowDuplicateStrategyVersion?: boolean; maxParameters?: number; } export type StrategyMutationType = 'parameter_mutation' | 'indicator_toggle' | 'timeframe_mutation' | 'risk_adjustment' | 'confirmation_mutation' | 'copy'; export interface StrategyLineageMetadata { family: string; familyId?: string; familyType?: string; rootStrategyId?: string; rootGenomeId?: string; branchId?: string; parentStrategyId?: string; parentDnaId?: string; generation: number; mutationType: StrategyMutationType; mutationSeed: string; mutationOrdinal: number; mutationOperatorId: string; policyVersion: string; } export interface StrategyDNA { dnaId: string; family: string; familyId?: string; familyType?: string; rootStrategyId?: string; rootGenomeId?: string; branchId?: string; entrySignal: string; confirmations: string[]; indicators: Record<string, unknown>; timeframe: { primary: string; confirmations?: string[]; }; riskParameters: Record<string, unknown>; featureFlags: Record<string, boolean>; policyVersion: string; mutationSeed: string; lineage: StrategyLineageMetadata; } export interface StrategySynthesisRequest { strategyId: string; strategyFamily: string; strategyVersion: string; detectorType: string; symbol?: string; parameters: Record<string, unknown>; parameterSchema?: StrategyParameterSchema; indicatorDependencies: string[]; pluginDependencies: string[]; patternDependencies: string[]; experimentTag?: string; synthesisReason: string; sourceContext?: Record<string, unknown>; strategyDna?: StrategyDNA; lineage?: StrategyLineageMetadata; constraints?: StrategySynthesisConstraints; } export interface StrategySynthesisCandidate { strategyId: string; strategyFamily: string; strategyVersion: string; detectorType: string; symbol?: string; parameters: Record<string, unknown>; parameterSchema?: StrategyParameterSchema; indicatorDependencies: string[]; pluginDependencies: string[]; patternDependencies: string[]; experimentTag?: string; createdBy: 'advisor'; synthesisReason: string; sourceContext?: Record<string, unknown>; strategyDna?: StrategyDNA; lineage?: StrategyLineageMetadata; synthesisHash?: string; createdAt: string; updatedAt?: string; status: 'REJECTED' | 'REGISTERED' | 'CANDIDATE' | 'EXPERIMENT_READY' | 'PROMOTED_TO_EXPERIMENT' | 'ARCHIVED'; rejectionReasons?: string[]; detectorDefinition?: DetectorStrategyDefinition; runtimeRecovery?: StrategyRuntimeRecoveryPayload; } export interface StrategyRuntimeRecoveryPayload { schemaVersion: 1; persistedAt: string; definition: DetectorStrategyDefinition; } //# sourceMappingURL=advisor-strategy-synthesis.interface.d.ts.map