@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
TypeScript
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