Files
awoooi/scripts/agents/replay-openai-coordinator-candidate.py
Your Name cfb866d055
Some checks failed
Ansible Lint / lint (push) Successful in 35s
CD Pipeline / tests (push) Failing after 13s
CD Pipeline / build-and-deploy (push) Has been skipped
CD Pipeline / post-deploy-checks (push) Has been skipped
Code Review / ai-code-review (push) Failing after 11s
feat(governance): add agent market automation surfaces
2026-06-04 21:50:55 +08:00

87 lines
2.9 KiB
Python

#!/usr/bin/env python3
"""
Run the OpenAI Agents SDK coordinator offline replay adapter.
This command is deterministic and local. It does not install the OpenAI Agents
SDK, call OpenAI APIs, execute tools, mutate production systems, or read fixture
labels.
"""
from __future__ import annotations
import argparse
import json
import sys
from pathlib import Path
from typing import Any
ROOT = Path(__file__).resolve().parents[2]
API_SRC = ROOT / "apps" / "api"
sys.path.insert(0, str(API_SRC))
from src.services.agent_openai_coordinator_adapter import ( # noqa: E402
OPENAI_COORDINATOR_CANDIDATE_ID,
build_openai_coordinator_candidate_results,
)
def main() -> int:
parser = argparse.ArgumentParser(
description="Run OpenAI coordinator offline replay."
)
parser.add_argument("--inputs", required=True, help="candidate input JSONL")
parser.add_argument("--output", required=True, help="candidate raw result JSONL")
parser.add_argument("--report", help="optional aggregate adapter report JSON")
args = parser.parse_args()
candidate_inputs = _read_jsonl(Path(args.inputs))
decisions = build_openai_coordinator_candidate_results(candidate_inputs)
with Path(args.output).open("w", encoding="utf-8") as handle:
for decision in decisions:
handle.write(json.dumps(decision.to_dict(), ensure_ascii=False, sort_keys=True))
handle.write("\n")
report = {
"schema_version": "agent_openai_coordinator_replay_adapter_report_v1",
"candidate_id": OPENAI_COORDINATOR_CANDIDATE_ID,
"inputs": args.inputs,
"output": args.output,
"records": len(decisions),
"external_calls": False,
"openai_api_calls": False,
"tools_executed": False,
"production_writes": False,
"fixture_labels_read": False,
"sdk_dependency": "openai_agents_sdk_package_not_installed",
"adapter_mode": "deterministic_offline_coordinator_boundary",
}
if args.report:
Path(args.report).write_text(
json.dumps(report, ensure_ascii=False, indent=2, sort_keys=True) + "\n",
encoding="utf-8",
)
print(json.dumps(report, ensure_ascii=False, sort_keys=True))
return 0
def _read_jsonl(path: Path) -> list[dict[str, Any]]:
records: list[dict[str, Any]] = []
with path.open(encoding="utf-8") as handle:
for line_number, line in enumerate(handle, start=1):
line = line.strip()
if not line or line.startswith("#"):
continue
try:
payload = json.loads(line)
except Exception as exc:
raise SystemExit(f"{path}:{line_number}: invalid JSONL: {exc}") from exc
if not isinstance(payload, dict):
raise SystemExit(f"{path}:{line_number}: expected JSON object")
records.append(payload)
return records
if __name__ == "__main__":
raise SystemExit(main())