First commit of the previously-untracked PINK-on-DITAv2 migration system (execution moves to the Rust kernel; policy stays on legacy DITA, so Alpha Engine algorithmic integrity is preserved). BLUE is untouched. Sprint 0 (safety snapshot + flaw-fix verification, MARKET single-leg scope): - Verified Rust FSM fixes (flaws 2,4,10,11,13) by source read of lib.rs. - Hardened 5 vacuous/guarded assertions in test_flaws.py so each flaw test genuinely exercises its fix. Most important: Flaw 5 now asserts capital moves by EXACTLY realized PnL (was entering/exiting at the same price). - Offline suites: 533 passed, 0 failed (35 flaws + 402 kernel/accounting/ bridge + 96 runtime/persistence/multi-exit/restart/seams). - GATE PASS: MARKET-path-critical flaws 1,2,5 confirmed fixed + green. - Added SPRINT0_FLAW_VERIFICATION.md report and _rust_kernel/.gitignore (excludes Rust target/ build artifacts). LIMIT/partial-fill remain explicitly out of scope (MARKET-only bring-up). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
38 lines
828 B
Python
38 lines
828 B
Python
"""Venue adapter contracts for DITAv2."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from dataclasses import dataclass, field
|
|
from datetime import datetime
|
|
from typing import Any, Dict, List, Optional, Protocol
|
|
|
|
from .contracts import (
|
|
KernelCommandType,
|
|
KernelIntent,
|
|
KernelEventKind,
|
|
TradeSide,
|
|
VenueEvent,
|
|
VenueEventStatus,
|
|
VenueOrder,
|
|
VenueOrderStatus,
|
|
)
|
|
|
|
|
|
class VenueAdapter(Protocol):
|
|
"""Abstract venue adapter used by the kernel."""
|
|
|
|
def submit(self, intent: KernelIntent) -> List[VenueEvent]:
|
|
...
|
|
|
|
def cancel(self, order: VenueOrder, *, reason: str = "") -> List[VenueEvent]:
|
|
...
|
|
|
|
def open_orders(self) -> List[VenueOrder]:
|
|
...
|
|
|
|
def open_positions(self) -> List[Dict[str, Any]]:
|
|
...
|
|
|
|
def reconcile(self) -> List[VenueEvent]:
|
|
...
|