@@ -27,17 +27,20 @@ class TemplateType(str, Enum):
2727 TEMPORAL_PYDANTIC_AI = "temporal-pydantic-ai"
2828 TEMPORAL_LANGGRAPH = "temporal-langgraph"
2929 TEMPORAL_CLAUDE_CODE = "temporal-claude-code"
30+ TEMPORAL_CODEX = "temporal-codex"
3031 DEFAULT = "default"
3132 DEFAULT_LANGGRAPH = "default-langgraph"
3233 DEFAULT_PYDANTIC_AI = "default-pydantic-ai"
3334 DEFAULT_OPENAI_AGENTS = "default-openai-agents"
3435 DEFAULT_CLAUDE_CODE = "default-claude-code"
36+ DEFAULT_CODEX = "default-codex"
3537 SYNC = "sync"
3638 SYNC_OPENAI_AGENTS = "sync-openai-agents"
3739 SYNC_OPENAI_AGENTS_LOCAL_SANDBOX = "sync-openai-agents-local-sandbox"
3840 SYNC_LANGGRAPH = "sync-langgraph"
3941 SYNC_PYDANTIC_AI = "sync-pydantic-ai"
4042 SYNC_CLAUDE_CODE = "sync-claude-code"
43+ SYNC_CODEX = "sync-codex"
4144
4245
4346def render_template (
@@ -71,17 +74,20 @@ def create_project_structure(
7174 TemplateType .TEMPORAL_PYDANTIC_AI : ["acp.py" , "workflow.py" , "run_worker.py" , "agent.py" , "tools.py" ],
7275 TemplateType .TEMPORAL_LANGGRAPH : ["acp.py" , "workflow.py" , "run_worker.py" , "graph.py" , "tools.py" ],
7376 TemplateType .TEMPORAL_CLAUDE_CODE : ["acp.py" , "workflow.py" , "run_worker.py" , "activities.py" ],
77+ TemplateType .TEMPORAL_CODEX : ["acp.py" , "workflow.py" , "run_worker.py" , "activities.py" ],
7478 TemplateType .DEFAULT : ["acp.py" ],
7579 TemplateType .DEFAULT_LANGGRAPH : ["acp.py" , "graph.py" , "tools.py" ],
7680 TemplateType .DEFAULT_PYDANTIC_AI : ["acp.py" , "agent.py" , "tools.py" ],
7781 TemplateType .DEFAULT_OPENAI_AGENTS : ["acp.py" ],
7882 TemplateType .DEFAULT_CLAUDE_CODE : ["acp.py" ],
83+ TemplateType .DEFAULT_CODEX : ["acp.py" ],
7984 TemplateType .SYNC : ["acp.py" ],
8085 TemplateType .SYNC_OPENAI_AGENTS : ["acp.py" ],
8186 TemplateType .SYNC_OPENAI_AGENTS_LOCAL_SANDBOX : ["acp.py" , "agent.py" , "tools.py" ],
8287 TemplateType .SYNC_LANGGRAPH : ["acp.py" , "graph.py" , "tools.py" ],
8388 TemplateType .SYNC_PYDANTIC_AI : ["acp.py" , "agent.py" , "tools.py" ],
8489 TemplateType .SYNC_CLAUDE_CODE : ["acp.py" ],
90+ TemplateType .SYNC_CODEX : ["acp.py" ],
8591 }[template_type ]
8692
8793 # Create project/code files
@@ -196,6 +202,7 @@ def validate_agent_name(text: str) -> bool | str:
196202 {"name" : "Async ACP + LangGraph" , "value" : TemplateType .DEFAULT_LANGGRAPH },
197203 {"name" : "Async ACP + Pydantic AI" , "value" : TemplateType .DEFAULT_PYDANTIC_AI },
198204 {"name" : "Async ACP + Claude Code" , "value" : TemplateType .DEFAULT_CLAUDE_CODE },
205+ {"name" : "Async ACP + Codex" , "value" : TemplateType .DEFAULT_CODEX },
199206 ],
200207 ).ask ()
201208 if not template_type :
@@ -209,6 +216,7 @@ def validate_agent_name(text: str) -> bool | str:
209216 {"name" : "Temporal + Pydantic AI" , "value" : TemplateType .TEMPORAL_PYDANTIC_AI },
210217 {"name" : "Temporal + LangGraph" , "value" : TemplateType .TEMPORAL_LANGGRAPH },
211218 {"name" : "Temporal + Claude Code" , "value" : TemplateType .TEMPORAL_CLAUDE_CODE },
219+ {"name" : "Temporal + Codex" , "value" : TemplateType .TEMPORAL_CODEX },
212220 ],
213221 ).ask ()
214222 if not template_type :
@@ -223,6 +231,7 @@ def validate_agent_name(text: str) -> bool | str:
223231 {"name" : "Sync ACP + LangGraph" , "value" : TemplateType .SYNC_LANGGRAPH },
224232 {"name" : "Sync ACP + Pydantic AI" , "value" : TemplateType .SYNC_PYDANTIC_AI },
225233 {"name" : "Sync ACP + Claude Code" , "value" : TemplateType .SYNC_CLAUDE_CODE },
234+ {"name" : "Sync ACP + Codex" , "value" : TemplateType .SYNC_CODEX },
226235 ],
227236 ).ask ()
228237 if not template_type :
0 commit comments