feat: sync latest ARR implementation

This commit is contained in:
Wyndham ARR
2026-07-31 15:11:42 +08:00
parent d6f8a747fa
commit bf7939dd1a
185 changed files with 17527 additions and 2260 deletions

View File

@@ -2,9 +2,7 @@
from __future__ import annotations
import importlib.util
import os
import sys
from dataclasses import dataclass
from pathlib import Path
from typing import Any, Callable, Optional
@@ -19,12 +17,13 @@ from arr_processing.postgres import PostgresProcessingState, ProcessingDatabaseC
from arr_processing.registration import ProcessingOutputRegistrar, RemoteFilePort
from arr_processing.remote_files import PrefixRemoteFilePort
from arr_processing.runner import ProcessingRunner, RemoteRunSnapshot
from arr_processing.policy import load_processor_policy
from arr_storage.aliyun_oss_v2 import AliyunOssConfig, AliyunOssV2Client
from arr_storage.contracts import ObjectKeyPolicy
from arr_storage.exchange import OutputExchangeConfig
from arr_storage.remote import CloudObjectBackend
from arr_storage.store import ManagedObjectStore
from arr_web.services import ProcessingAgentResultCoordinator
from arr_web.legacy_agent_services import ProcessingAgentResultCoordinator
class CallbackOnlyTransport:
@@ -60,32 +59,6 @@ class AgentWritebackRuntime:
self.close_callback()
def load_processor_policy(project_root: Path) -> ProcessorPolicy:
skill_root = (project_root / "arr-opera-daily-ingest").resolve()
script = skill_root / "scripts" / "process_daily.py"
module_name = "_arr_runtime_process_daily"
specification = importlib.util.spec_from_file_location(module_name, script)
if specification is None or specification.loader is None:
raise ValueError("ARR daily processor identity is unavailable")
module = importlib.util.module_from_spec(specification)
prior = sys.modules.get(module_name)
sys.modules[module_name] = module
try:
specification.loader.exec_module(module)
processor_version = str(module.PROCESSOR_VERSION)
rule_set_sha256 = str(module.rule_set_sha256())
finally:
if prior is None:
sys.modules.pop(module_name, None)
else:
sys.modules[module_name] = prior
return ProcessorPolicy(
processor_version=processor_version,
rule_set_sha256=rule_set_sha256,
skill_root=skill_root,
)
def compose_agent_writeback(
*,
object_store: ManagedObjectStore,