from __future__ import annotations import os os.environ["CONTEXTFORGE_ENABLE_MODEL"] = "0" os.environ["CONTEXTFORGE_SKIP_UI_BUILD"] = "1" import app BASE = { "project_idea": "Build an issue triage agent.", "target_user": "Engineering teams", "build_target": "Agent workflow", "risk_level": "High", "output_language": "English", "user_context": "Reports may be incomplete.", "project_context": "Reduce triage time.", "technical_context": "Python and structured JSON.", "constraints": "Do not invent evidence.", "inputs_files": "Bug reports and logs.", "output_contract": "Return a prioritized ticket with evidence.", "failure_modes": "Hallucinated root cause.", "verification_criteria": "All ticket fields and evidence exist.", } def compile_for(topology: str) -> tuple[str, str, str, str, str, str]: return app.compile_context( BASE["project_idea"], BASE["target_user"], BASE["build_target"], topology, BASE["risk_level"], BASE["output_language"], app.REASONING_LAYERS, BASE["user_context"], BASE["project_context"], BASE["technical_context"], BASE["constraints"], BASE["inputs_files"], BASE["output_contract"], BASE["failure_modes"], BASE["verification_criteria"], ) def main() -> None: assert "pending" in app.render_metrics({}).lower() fast_updates = app.update_mode("Fast Compile") full_updates = app.update_mode("Full Control") assert all(update.get("visible") is False for update in fast_updates) assert all(update.get("visible") is True for update in full_updates) analysis = app.analyze_intake(BASE) topology = app.decide_topology(analysis, "Cascade") vital = app.extract_vital_structure(analysis, topology) reasoning = app.select_reasoning_architecture(analysis, topology, app.REASONING_LAYERS) pack = app.generate_prompt_pack(analysis, topology, vital, reasoning, BASE) qa = app.qa_repair_pass(pack) final = app.assemble_final_output(analysis, topology, vital, reasoning, qa) assert qa["pass"] assert final["prompt_pack"] expected_counts = { "Single Prompt": 1, "Cascade": 4, "Context Pack": 2, "Agent Workflow": 4, } for topology_name, expected_count in expected_counts.items(): _, _, prompt_text, _, qa_text, runtime = compile_for(topology_name) assert prompt_text.count("[ROLE]") == expected_count for tag in app.REQUIRED_PROMPT_TAGS: assert prompt_text.count(f"[{tag}]") == expected_count assert "reveal your chain of thought" not in prompt_text.lower() assert "strategy | upside | risk | cost | selected" in prompt_text assert "No Chain Of Thought Leakage" in qa_text assert runtime.count("deterministic_fallback") >= 7 assert "| Stage | Source | Fallback reason | Duration ms |" in runtime print("ContextForge QA passed.") if __name__ == "__main__": main()