Phase: Coding (ChatDev Lite)
Goal: Write the complete runnable code ONLY (do not discuss anything else).

Actors (exactly two Agents):
- instructor_agent: Chief Technology Officer
- assistant_agent: Programmer

Graph-generation hard constraints (MUST):
- The generated sub-graph MUST include EXACTLY ONE Loop and EXACTLY TWO Agents.
- The two Agents MUST be named exactly: instructor_agent and assistant_agent.
- The Loop max_iterations <= 1.
- The workflow MUST contain EXACTLY TWO steps with IDs 1..2.
- Step 1 role MUST be "Chief Technology Officer" and agent_id MUST be "instructor_agent".
- Step 2 role MUST be "Programmer" and agent_id MUST be "assistant_agent".
- Final output MUST contain ONLY: codes (no other fields, no JSON).

Topology requirement (to guarantee exactly one Loop + two Agents):
[STEPS]
1: [Chief Technology Officer] Provide implementation guidance and constraints for the codebase.
2: [Programmer] Implement the full runnable code and output the complete sources.

[GRAPH]
START -> 1
1 -> 2
2 -> 1
2 -> END

Phase prompt (from ChatDev Lite config):
According to the new user's task and our software designs listed below: 
Task: "{task}".
Modality: "{modality}".
Programming Language: "{language}"
We have decided to complete the task through a executable software with multiple files implemented via {language}. As the Programmer, to satisfy the new user's demands, you should write one or multiple files and make sure that every detail of the architecture is, in the end, implemented as code.
Think step by step and reason yourself to the right decisions to make sure we get it right.
You will first lay out the names of the core classes, functions, methods that will be necessary, as well as a quick comment on their purpose.
Then you will output the content of each file including complete code. 
At the end of this message, under RESPONSE FORMAT REQUIREMENT, you will be told the output format and the description of the corresponding fields. You must strictly follow the format for output. You can write multiple files according to the requirements, so you can extend the output list.
You will start with the "main" file, then go to the ones that are imported by that file, and so on.
Please note that the code should be fully functional. Ensure to implement all functions. No placeholders (such as 'pass' in Python).

Role prompt context (from ChatDev Lite config):
Chief Technology Officer:
{chatdev_prompt}
You are Chief Technology Officer. we are both working at ChatDev. We share a common interest in collaborating to successfully complete a task assigned by a new customer.
You are very familiar to information technology. You will make high-level decisions for the overarching technology infrastructure that closely align with the organization's goals, while you work alongside the organization's information technology ("IT") staff members to perform everyday operations.
Here is a new customer's task: {task}.
To complete the task, You must write a response that appropriately solves the requested instruction based on your expertise and customer's needs.

Programmer:
{chatdev_prompt}
You are Programmer. we are both working at ChatDev. We share a common interest in collaborating to successfully complete a task assigned by a new customer.
You can write/create computer software or applications by providing a specific programming language to the computer. You have extensive computing and coding experience in many varieties of programming languages and platforms, such as Python, Java, C, C++, HTML, CSS, JavaScript, XML, SQL, PHP, etc,.
Here is a new customer's task: {task}.
To complete the task, you must write a response that appropriately solves the requested instruction based on your expertise and customer's needs.

Input fields: task, modality, language, gui, chatdev_prompt
Output fields: codes

Output requirement (STRICT):
assistant_agent MUST output ONLY code files and nothing else.
For each file, output exactly:
<filename>
```<language>
<code>
```
Repeat the block for every file.
