|
| 1 | +spec_version: 1 |
| 2 | +name: frontier-swe-libexpat-to-x86asm |
| 3 | +type: space |
| 4 | +runtime: fastapi |
| 5 | +app: frontier_swe_env.server.app:app |
| 6 | +port: 8000 |
| 7 | +version: "0.1.0" |
| 8 | + |
| 9 | +description: > |
| 10 | + Frontier SWE — libexpat to x86-64 Assembly. An OpenEnv-shaped FastAPI |
| 11 | + service hosting a long-horizon task: reimplement libexpat 2.6.4 in x86-64 |
| 12 | + assembly and produce /app/asm-port/libexpat.so exporting the expat C ABI. |
| 13 | + The verifier builds reference C libexpat, runs the upstream test suite and |
| 14 | + benchmarks, and writes /logs/verifier/reward.json (0.5 correctness + 0.5 |
| 15 | + performance, hard-fail to 0.0 on anti-cheat or missing .so). Scored with |
| 16 | + gate checks, structured L1, LLM code/plan review, and weighted episode reward. |
| 17 | +
|
| 18 | +repo: |
| 19 | + source: https://github.com/3xcaffeine/frontier-swe-openenv |
| 20 | + task_directory: tasks/libexpat-to-x86asm |
| 21 | + |
| 22 | +environment: |
| 23 | + task_name: libexpat-to-x86asm |
| 24 | + workspace_dir: /app/asm-port |
| 25 | + build_command: "true" |
| 26 | + episode_timeout_s: 3600 |
| 27 | + max_attempts_per_subtask: 3 |
| 28 | + l1_score_mode: reward_json_score |
| 29 | + l1_timeout_s: 1500 |
| 30 | + reward_json_path: /logs/verifier/reward.json |
| 31 | + reward_json_score_field: score |
| 32 | + reward_json_score_anchors: [0.0, 1.0] |
| 33 | + reward_json_score_higher_is_better: true |
| 34 | + task_domain: systems programming / x86-64 assembly / XML parsing |
| 35 | + cpus: 4 |
| 36 | + memory_mb: 8192 |
| 37 | + |
| 38 | +rubric: |
| 39 | + type: composite |
| 40 | + layers: |
| 41 | + - name: gate_checks |
| 42 | + kind: shell |
| 43 | + script: /app/gate_checks.sh |
| 44 | + output: GATE_SCORE=N/M |
| 45 | + gates: |
| 46 | + - /app/asm-port writable, expat.h present |
| 47 | + - nasm, as, and ld on PATH |
| 48 | + - encrypted gcc + libexpat bundles staged |
| 49 | + - name: l1_tests |
| 50 | + kind: structured_reward |
| 51 | + score_mode: reward_json_score |
| 52 | + reward_json_path: /logs/verifier/reward.json |
| 53 | + score_field: score |
| 54 | + anchors: [0.0, 1.0] |
| 55 | + higher_is_better: true |
| 56 | + hard_fail_signals: |
| 57 | + - score == 0.0 (no .so, anti-cheat, verifier infra failure, zero correctness) |
| 58 | + - name: l2_code_review |
| 59 | + kind: llm_judge |
| 60 | + model_env: FSWE_GRADER_MODEL |
| 61 | + api_url_env: FSWE_GRADER_API_URL |
| 62 | + api_key_env: FSWE_GRADER_API_KEY |
| 63 | + dimensions: |
| 64 | + [completeness, correctness, robustness, forward_compatibility] |
| 65 | + - name: l3_plan_review |
| 66 | + kind: llm_judge |
| 67 | + model_env: FSWE_GRADER_MODEL |
| 68 | + api_url_env: FSWE_GRADER_API_URL |
| 69 | + api_key_env: FSWE_GRADER_API_KEY |
| 70 | + - name: episode_aggregator |
| 71 | + kind: weighted_blend |
| 72 | + output_field: observation.episode_reward |
| 73 | + |
| 74 | +tools: |
| 75 | + - name: submit_plan |
| 76 | + description: Propose a subtask plan for the episode (PLANNING -> EXECUTING). |
| 77 | + parameters: |
| 78 | + - name: subtasks |
| 79 | + type: list[dict] |
| 80 | + required: true |
| 81 | + - name: submit_subtask |
| 82 | + description: Submit the current subtask for L1 + L2 scoring. |
| 83 | + parameters: |
| 84 | + - name: subtask_id |
| 85 | + type: str |
| 86 | + required: true |
| 87 | + - name: get_status |
| 88 | + description: Return the current episode status snapshot (phase, scores, time remaining). |
| 89 | + - name: advance |
| 90 | + description: Freeze the current subtask score and advance to the next subtask. |
| 91 | + |
| 92 | +metrics: |
| 93 | + observation: |
| 94 | + - observation.phase |
| 95 | + - observation.current_subtask |
| 96 | + - observation.frozen_scores |
| 97 | + - observation.time_remaining_s |
| 98 | + - observation.plan_score |
| 99 | + - observation.subtask_feedback |
| 100 | + - observation.episode_reward |
| 101 | + reward: |
| 102 | + - reward.gate_score |
| 103 | + - reward.l1_test_score |
| 104 | + - reward.l1_blended |
| 105 | + - reward.l2_code_review |
| 106 | + - reward.l3_plan_review |
| 107 | + - reward.episode_reward |
0 commit comments