release: cut 0.2.0 baseline
This commit is contained in:
@@ -49,7 +49,7 @@ max_iterations: 3
|
||||
language: {language}
|
||||
|
||||
# 결과 저장 경로
|
||||
output_dir: output
|
||||
output_dir: .cross-eval/output
|
||||
|
||||
# ─── 커스텀 에이전트 (선택) ────────────────────────────────────
|
||||
# 기본 제공 에이전트를 덮어쓰거나 새 에이전트를 정의할 수 있습니다.
|
||||
@@ -372,6 +372,14 @@ def main(argv: list[str] | None = None) -> int:
|
||||
"--input", action="append", dest="inputs", metavar="KEY=PATH",
|
||||
help="추가 입력 파일 (예: --input spec=./api-spec.md)",
|
||||
)
|
||||
input_group.add_argument(
|
||||
"--env-file", action="append", dest="env_files", type=Path, default=None,
|
||||
help="에이전트 subprocess에 주입할 추가 .env 파일 (여러 개 가능)",
|
||||
)
|
||||
input_group.add_argument(
|
||||
"--target", action="append", dest="execution_targets", default=None,
|
||||
help="에이전트에게 강조할 실행 대상 힌트 (예: clickhouse, postgres)",
|
||||
)
|
||||
|
||||
# -- 에이전트 설정 --
|
||||
agent_group = run_parser.add_argument_group(
|
||||
@@ -410,6 +418,10 @@ def main(argv: list[str] | None = None) -> int:
|
||||
choices=REASONING_EFFORT_CHOICES + ("extra-high", "extra_high", "x-high"),
|
||||
help="Senior용 reasoning effort",
|
||||
)
|
||||
agent_group.add_argument(
|
||||
"--agentic", action="store_true", default=False,
|
||||
help="Coder를 agentic 모드로 실행 (worktree에서 파일 직접 수정, git diff로 결과 캡처)",
|
||||
)
|
||||
agent_group.add_argument(
|
||||
"--model", default=None, metavar="MODEL",
|
||||
help="모든 에이전트의 모델을 한번에 변경 (예: sonnet, opus)",
|
||||
@@ -761,7 +773,7 @@ def _generate_guided_config(
|
||||
"",
|
||||
f"max_iterations: {settings['max_iter']}",
|
||||
f"language: {lang}",
|
||||
"output_dir: output",
|
||||
"output_dir: .cross-eval/output",
|
||||
"",
|
||||
])
|
||||
|
||||
@@ -799,20 +811,19 @@ def _apply_model_override(config, agent_name: str, model: str) -> None:
|
||||
|
||||
def _apply_phased_iteration_override(config, max_iter: int | None) -> None:
|
||||
"""Apply CLI max-iter to converging phases while preserving setup phases."""
|
||||
if max_iter is None:
|
||||
return
|
||||
from cross_eval.config import sync_phased_iterations
|
||||
|
||||
for phase in config.phases:
|
||||
if any(step.verdict for step in phase.steps):
|
||||
phase.max_iterations = max_iter
|
||||
sync_phased_iterations(config, max_iter)
|
||||
|
||||
|
||||
def cmd_run(args: argparse.Namespace) -> int:
|
||||
"""Load config, validate, and execute the pipeline."""
|
||||
from cross_eval.config import (
|
||||
ensure_fix_preset_agentic,
|
||||
apply_input_overrides,
|
||||
default_config,
|
||||
load_config,
|
||||
sync_phased_iterations,
|
||||
validate_config,
|
||||
)
|
||||
from cross_eval.prompts import PIPELINE_PRESETS
|
||||
@@ -917,6 +928,10 @@ def cmd_run(args: argparse.Namespace) -> int:
|
||||
if preset in {"plan-review", "review-only"} and args.max_iter is None and args.min_iter is None:
|
||||
config.max_iterations = 1
|
||||
|
||||
sync_phased_iterations(config)
|
||||
if args.max_iter is not None:
|
||||
sync_phased_iterations(config, args.max_iter)
|
||||
|
||||
apply_reasoning_effort_settings(
|
||||
config,
|
||||
reasoning_effort=args.reasoning_effort,
|
||||
@@ -925,6 +940,15 @@ def cmd_run(args: argparse.Namespace) -> int:
|
||||
senior_effort=args.senior_effort,
|
||||
)
|
||||
|
||||
# --agentic: convert coder agents to agentic mode
|
||||
if args.agentic:
|
||||
from cross_eval.config import _make_agentic
|
||||
for coder_name in config.coders:
|
||||
if coder_name in config.agents:
|
||||
_make_agentic(config.agents[coder_name])
|
||||
|
||||
ensure_fix_preset_agentic(config)
|
||||
|
||||
# --model: apply to ALL agents
|
||||
if args.model is not None:
|
||||
for agent_name in config.agents:
|
||||
@@ -958,6 +982,17 @@ def cmd_run(args: argparse.Namespace) -> int:
|
||||
return 1
|
||||
config.inputs["docs"] = docs_content
|
||||
|
||||
if args.env_files:
|
||||
for env_file in args.env_files:
|
||||
resolved = env_file.resolve()
|
||||
if not resolved.exists():
|
||||
print(f"Env file not found: {resolved}", file=sys.stderr)
|
||||
return 1
|
||||
config.execution.env_files.append(str(resolved))
|
||||
|
||||
if args.execution_targets:
|
||||
config.execution.auto_context_targets = list(args.execution_targets)
|
||||
|
||||
if args.inputs:
|
||||
overrides = {}
|
||||
for item in args.inputs:
|
||||
|
||||
Reference in New Issue
Block a user