feat: add daily manual price review workflow
This commit is contained in:
@@ -9,6 +9,15 @@ from pathlib import Path
|
||||
from arr_ingestion.validation import ProcessorPolicy
|
||||
|
||||
|
||||
# This is the immutable identity of the retired direct-MCP/callback contract.
|
||||
# It is not a selectable active processor version: only the compatibility
|
||||
# replay path uses it, and that path has no review-required state.
|
||||
LEGACY_DIRECT_PROCESSOR_VERSION = "3.0.0"
|
||||
LEGACY_DIRECT_RULE_SET_SHA256 = (
|
||||
"c41257208324a43e711de13ec9776a5e6486db334757f152531bf8292a2018eb"
|
||||
)
|
||||
|
||||
|
||||
def load_processor_policy(project_root: Path) -> ProcessorPolicy:
|
||||
skill_root = (project_root / "arr-opera-daily-ingest").resolve()
|
||||
script = skill_root / "scripts" / "process_daily.py"
|
||||
@@ -33,3 +42,21 @@ def load_processor_policy(project_root: Path) -> ProcessorPolicy:
|
||||
rule_set_sha256=rule_set_sha256,
|
||||
skill_root=skill_root,
|
||||
)
|
||||
|
||||
|
||||
def load_legacy_direct_processor_policy(project_root: Path) -> ProcessorPolicy:
|
||||
"""Return the frozen v3 identity for retired direct-MCP replay only.
|
||||
|
||||
The active package supplies a narrowly scoped ``--legacy-v3-output``
|
||||
compatibility replay. Keeping this identity separate prevents the ARR2
|
||||
XML upload path from accepting or producing a v3 review-less result.
|
||||
"""
|
||||
|
||||
active = load_processor_policy(project_root)
|
||||
return ProcessorPolicy(
|
||||
processor_version=LEGACY_DIRECT_PROCESSOR_VERSION,
|
||||
rule_set_sha256=LEGACY_DIRECT_RULE_SET_SHA256,
|
||||
skill_root=active.skill_root,
|
||||
python_binary=active.python_binary,
|
||||
legacy_direct_v3=True,
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user