Spaces:
Running on Zero
Running on Zero
| from pathlib import Path | |
| from tests.helpers import load_test_index | |
| from hackathon_advisor.agent import AdvisorEngine | |
| from hackathon_advisor.data import ProjectIndex | |
| from hackathon_advisor.prize_ledger import prize_ledger | |
| from hackathon_advisor.submission_packet import build_submission_packet_markdown | |
| from hackathon_advisor.trace_export import trace_metadata | |
| def test_submission_packet_contains_demo_and_prize_evidence() -> None: | |
| index = load_test_index() | |
| engine = AdvisorEngine(index) | |
| state = {"goals": ["Well-Tuned", "Field Notes"]} | |
| state = engine.turn("A local-first archive cartographer for family photos", state).state | |
| state = engine.turn("make a build plan", state).state | |
| markdown = build_submission_packet_markdown( | |
| state, | |
| { | |
| **trace_metadata(index), | |
| "project_count": len(index.projects), | |
| }, | |
| prize_ledger(engine.runtime_status()), | |
| ) | |
| assert markdown.startswith("# Hackathon Advisor Submission Packet") | |
| assert "## Demo Script" in markdown | |
| assert "## Artifact Checklist" in markdown | |
| assert "## Prize Evidence" in markdown | |
| assert "## Model Budget" in markdown | |
| assert "## Social Post Draft" in markdown | |
| assert "Hackathon Advisor" in markdown | |
| assert "Well-Tuned | ready" in markdown | |
| assert "MiniCPM5 LoRA SFT JSONL | ready | lora_dataset" in markdown | |
| assert "Fate page PNG | ready | /api/artifact.png" in markdown | |
| assert "Notes, Chapter, and PNG are available in the app" in markdown | |
| assert "`/api/prize-ledger` separates ready and planned badge states" in markdown | |
| assert "A local-first archive cartographer for family photos" in markdown | |
| def test_empty_submission_packet_is_honest_about_missing_session_artifacts() -> None: | |
| markdown = build_submission_packet_markdown( | |
| {}, | |
| { | |
| "snapshot_generated_at": "2026-06-06T00:00:00+00:00", | |
| "project_count": 100, | |
| "index_algorithm": "llama-cpp-embedding-v1", | |
| "index_generated_at": "2026-06-06T01:00:00+00:00", | |
| "snapshot_digest": "abc", | |
| }, | |
| prize_ledger({"backend": "rules", "model_id": "deterministic-tool-router", "adapter_id": ""}), | |
| ) | |
| assert "Title: Unwritten Page" in markdown | |
| assert "Tool trace JSONL | needs session" in markdown | |
| assert "Submission packet markdown | ready" in markdown | |
| assert "No ideas recorded yet." in markdown | |