Skip to content

Commit ffd83aa

Browse files
authored
Merge pull request #854 from dgageot/codex
Add support for codex
2 parents 37d14c9 + f87e5e4 commit ffd83aa

9 files changed

Lines changed: 740 additions & 29 deletions

File tree

e2e/cagent_exec_test.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,18 @@ func TestExec_OpenAI_gpt5(t *testing.T) {
3030
require.Equal(t, "\n--- Agent: root ---\n\n4", out)
3131
}
3232

33+
func TestExec_OpenAI_gpt5_1(t *testing.T) {
34+
out := cagentExec(t, "testdata/basic.yaml", "--model=openai/gpt-5.1", "What's 2+2?")
35+
36+
require.Equal(t, "\n--- Agent: root ---\n\n2 + 2 = 4.", out)
37+
}
38+
39+
func TestExec_OpenAI_gpt5_codex(t *testing.T) {
40+
out := cagentExec(t, "testdata/basic.yaml", "--model=openai/gpt-5-codex", "What's 2+2?")
41+
42+
require.Equal(t, "\n--- Agent: root ---\n\n2 + 2 equals 4.", out)
43+
}
44+
3345
func TestExec_Anthropic(t *testing.T) {
3446
out := cagentExec(t, "testdata/basic.yaml", "--model=anthropic/claude-sonnet-4-0", "What's 2+2?")
3547

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
---
2+
version: 2
3+
interactions:
4+
- id: 0
5+
request:
6+
proto: HTTP/1.1
7+
proto_major: 1
8+
proto_minor: 1
9+
content_length: 0
10+
host: api.openai.com
11+
body: "{\"messages\":[{\"content\":\"You are a knowledgeable assistant that helps users with various tasks.\\nBe helpful, accurate, and concise in your responses.\\n\",\"role\":\"system\"},{\"content\":\"What's 2+2?\",\"role\":\"user\"}],\"model\":\"gpt-5.1\",\"stream_options\":{\"include_usage\":true},\"stream\":true}"
12+
url: https://api.openai.com/v1/chat/completions
13+
method: POST
14+
response:
15+
proto: HTTP/2.0
16+
proto_major: 2
17+
proto_minor: 0
18+
content_length: -1
19+
body: "data: {\"id\":\"chatcmpl-CdtLW4hejZ5BPp87iKox4LUkfUlOg\",\"object\":\"chat.completion.chunk\",\"created\":1763623578,\"model\":\"gpt-5.1-2025-11-13\",\"service_tier\":\"default\",\"system_fingerprint\":null,\"choices\":[{\"index\":0,\"delta\":{\"role\":\"assistant\",\"content\":\"\",\"refusal\":null},\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"KW0qGO0A\"}\n\ndata: {\"id\":\"chatcmpl-CdtLW4hejZ5BPp87iKox4LUkfUlOg\",\"object\":\"chat.completion.chunk\",\"created\":1763623578,\"model\":\"gpt-5.1-2025-11-13\",\"service_tier\":\"default\",\"system_fingerprint\":null,\"choices\":[{\"index\":0,\"delta\":{\"content\":\"2\"},\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"EwQWkLJ0X\"}\n\ndata: {\"id\":\"chatcmpl-CdtLW4hejZ5BPp87iKox4LUkfUlOg\",\"object\":\"chat.completion.chunk\",\"created\":1763623578,\"model\":\"gpt-5.1-2025-11-13\",\"service_tier\":\"default\",\"system_fingerprint\":null,\"choices\":[{\"index\":0,\"delta\":{\"content\":\" +\"},\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"ob3PhUlm\"}\n\ndata: {\"id\":\"chatcmpl-CdtLW4hejZ5BPp87iKox4LUkfUlOg\",\"object\":\"chat.completion.chunk\",\"created\":1763623578,\"model\":\"gpt-5.1-2025-11-13\",\"service_tier\":\"default\",\"system_fingerprint\":null,\"choices\":[{\"index\":0,\"delta\":{\"content\":\" \"},\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"465wYHOVN\"}\n\ndata: {\"id\":\"chatcmpl-CdtLW4hejZ5BPp87iKox4LUkfUlOg\",\"object\":\"chat.completion.chunk\",\"created\":1763623578,\"model\":\"gpt-5.1-2025-11-13\",\"service_tier\":\"default\",\"system_fingerprint\":null,\"choices\":[{\"index\":0,\"delta\":{\"content\":\"2\"},\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"7HYqF8nSN\"}\n\ndata: {\"id\":\"chatcmpl-CdtLW4hejZ5BPp87iKox4LUkfUlOg\",\"object\":\"chat.completion.chunk\",\"created\":1763623578,\"model\":\"gpt-5.1-2025-11-13\",\"service_tier\":\"default\",\"system_fingerprint\":null,\"choices\":[{\"index\":0,\"delta\":{\"content\":\" =\"},\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"3jgrjBb1\"}\n\ndata: {\"id\":\"chatcmpl-CdtLW4hejZ5BPp87iKox4LUkfUlOg\",\"object\":\"chat.completion.chunk\",\"created\":1763623578,\"model\":\"gpt-5.1-2025-11-13\",\"service_tier\":\"default\",\"system_fingerprint\":null,\"choices\":[{\"index\":0,\"delta\":{\"content\":\" \"},\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"0wAkV9QNO\"}\n\ndata: {\"id\":\"chatcmpl-CdtLW4hejZ5BPp87iKox4LUkfUlOg\",\"object\":\"chat.completion.chunk\",\"created\":1763623578,\"model\":\"gpt-5.1-2025-11-13\",\"service_tier\":\"default\",\"system_fingerprint\":null,\"choices\":[{\"index\":0,\"delta\":{\"content\":\"4\"},\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"ffgEmoEog\"}\n\ndata: {\"id\":\"chatcmpl-CdtLW4hejZ5BPp87iKox4LUkfUlOg\",\"object\":\"chat.completion.chunk\",\"created\":1763623578,\"model\":\"gpt-5.1-2025-11-13\",\"service_tier\":\"default\",\"system_fingerprint\":null,\"choices\":[{\"index\":0,\"delta\":{\"content\":\".\"},\"finish_reason\":null}],\"usage\":null,\"obfuscation\":\"Jartskj6l\"}\n\ndata: {\"id\":\"chatcmpl-CdtLW4hejZ5BPp87iKox4LUkfUlOg\",\"object\":\"chat.completion.chunk\",\"created\":1763623578,\"model\":\"gpt-5.1-2025-11-13\",\"service_tier\":\"default\",\"system_fingerprint\":null,\"choices\":[{\"index\":0,\"delta\":{},\"finish_reason\":\"stop\"}],\"usage\":null,\"obfuscation\":\"RRHY\"}\n\ndata: {\"id\":\"chatcmpl-CdtLW4hejZ5BPp87iKox4LUkfUlOg\",\"object\":\"chat.completion.chunk\",\"created\":1763623578,\"model\":\"gpt-5.1-2025-11-13\",\"service_tier\":\"default\",\"system_fingerprint\":null,\"choices\":[],\"usage\":{\"prompt_tokens\":39,\"completion_tokens\":17,\"total_tokens\":56,\"prompt_tokens_details\":{\"cached_tokens\":0,\"audio_tokens\":0},\"completion_tokens_details\":{\"reasoning_tokens\":0,\"audio_tokens\":0,\"accepted_prediction_tokens\":0,\"rejected_prediction_tokens\":0}},\"obfuscation\":\"23BJCSwQd\"}\n\ndata: [DONE]\n\n"
20+
headers: {}
21+
status: 200 OK
22+
code: 200
23+
duration: 1.04982225s
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
---
2+
version: 2
3+
interactions:
4+
- id: 0
5+
request:
6+
proto: HTTP/1.1
7+
proto_major: 1
8+
proto_minor: 1
9+
content_length: 0
10+
host: api.openai.com
11+
body: "{\"input\":[{\"content\":[{\"text\":\"You are a knowledgeable assistant that helps users with various tasks.\\nBe helpful, accurate, and concise in your responses.\\n\",\"type\":\"input_text\"}],\"role\":\"system\"},{\"content\":\"What's 2+2?\",\"role\":\"user\"}],\"model\":\"gpt-5-codex\",\"stream\":true}"
12+
url: https://api.openai.com/v1/responses
13+
method: POST
14+
response:
15+
proto: HTTP/2.0
16+
proto_major: 2
17+
proto_minor: 0
18+
content_length: -1
19+
body: "event: response.created\ndata: {\"type\":\"response.created\",\"sequence_number\":0,\"response\":{\"id\":\"resp_0072d5ba6ceafaae00691ec2750cd4819abfafa0e37dc20935\",\"object\":\"response\",\"created_at\":1763623541,\"status\":\"in_progress\",\"background\":false,\"error\":null,\"incomplete_details\":null,\"instructions\":null,\"max_output_tokens\":null,\"max_tool_calls\":null,\"model\":\"gpt-5-codex\",\"output\":[],\"parallel_tool_calls\":true,\"previous_response_id\":null,\"prompt_cache_key\":null,\"prompt_cache_retention\":null,\"reasoning\":{\"effort\":\"medium\",\"summary\":null},\"safety_identifier\":null,\"service_tier\":\"auto\",\"store\":true,\"temperature\":1.0,\"text\":{\"format\":{\"type\":\"text\"},\"verbosity\":\"medium\"},\"tool_choice\":\"auto\",\"tools\":[],\"top_logprobs\":0,\"top_p\":1.0,\"truncation\":\"disabled\",\"usage\":null,\"user\":null,\"metadata\":{}}}\n\nevent: response.in_progress\ndata: {\"type\":\"response.in_progress\",\"sequence_number\":1,\"response\":{\"id\":\"resp_0072d5ba6ceafaae00691ec2750cd4819abfafa0e37dc20935\",\"object\":\"response\",\"created_at\":1763623541,\"status\":\"in_progress\",\"background\":false,\"error\":null,\"incomplete_details\":null,\"instructions\":null,\"max_output_tokens\":null,\"max_tool_calls\":null,\"model\":\"gpt-5-codex\",\"output\":[],\"parallel_tool_calls\":true,\"previous_response_id\":null,\"prompt_cache_key\":null,\"prompt_cache_retention\":null,\"reasoning\":{\"effort\":\"medium\",\"summary\":null},\"safety_identifier\":null,\"service_tier\":\"auto\",\"store\":true,\"temperature\":1.0,\"text\":{\"format\":{\"type\":\"text\"},\"verbosity\":\"medium\"},\"tool_choice\":\"auto\",\"tools\":[],\"top_logprobs\":0,\"top_p\":1.0,\"truncation\":\"disabled\",\"usage\":null,\"user\":null,\"metadata\":{}}}\n\nevent: response.output_item.added\ndata: {\"type\":\"response.output_item.added\",\"sequence_number\":2,\"output_index\":0,\"item\":{\"id\":\"rs_0072d5ba6ceafaae00691ec275b24c819aaed97bed87c31479\",\"type\":\"reasoning\",\"summary\":[]}}\n\nevent: response.output_item.done\ndata: {\"type\":\"response.output_item.done\",\"sequence_number\":3,\"output_index\":0,\"item\":{\"id\":\"rs_0072d5ba6ceafaae00691ec275b24c819aaed97bed87c31479\",\"type\":\"reasoning\",\"summary\":[]}}\n\nevent: response.output_item.added\ndata: {\"type\":\"response.output_item.added\",\"sequence_number\":4,\"output_index\":1,\"item\":{\"id\":\"msg_0072d5ba6ceafaae00691ec275da7c819a880810de30b9e538\",\"type\":\"message\",\"status\":\"in_progress\",\"content\":[],\"role\":\"assistant\"}}\n\nevent: response.content_part.added\ndata: {\"type\":\"response.content_part.added\",\"sequence_number\":5,\"item_id\":\"msg_0072d5ba6ceafaae00691ec275da7c819a880810de30b9e538\",\"output_index\":1,\"content_index\":0,\"part\":{\"type\":\"output_text\",\"annotations\":[],\"logprobs\":[],\"text\":\"\"}}\n\nevent: response.output_text.delta\ndata: {\"type\":\"response.output_text.delta\",\"sequence_number\":6,\"item_id\":\"msg_0072d5ba6ceafaae00691ec275da7c819a880810de30b9e538\",\"output_index\":1,\"content_index\":0,\"delta\":\"2\",\"logprobs\":[],\"obfuscation\":\"njecPBTBa3BTW4o\"}\n\nevent: response.output_text.delta\ndata: {\"type\":\"response.output_text.delta\",\"sequence_number\":7,\"item_id\":\"msg_0072d5ba6ceafaae00691ec275da7c819a880810de30b9e538\",\"output_index\":1,\"content_index\":0,\"delta\":\" +\",\"logprobs\":[],\"obfuscation\":\"9O02SBHKHlZG8v\"}\n\nevent: response.output_text.delta\ndata: {\"type\":\"response.output_text.delta\",\"sequence_number\":8,\"item_id\":\"msg_0072d5ba6ceafaae00691ec275da7c819a880810de30b9e538\",\"output_index\":1,\"content_index\":0,\"delta\":\" \",\"logprobs\":[],\"obfuscation\":\"RI7GnBDDKb843L5\"}\n\nevent: response.output_text.delta\ndata: {\"type\":\"response.output_text.delta\",\"sequence_number\":9,\"item_id\":\"msg_0072d5ba6ceafaae00691ec275da7c819a880810de30b9e538\",\"output_index\":1,\"content_index\":0,\"delta\":\"2\",\"logprobs\":[],\"obfuscation\":\"3ZGOkaHxfPbyusK\"}\n\nevent: response.output_text.delta\ndata: {\"type\":\"response.output_text.delta\",\"sequence_number\":10,\"item_id\":\"msg_0072d5ba6ceafaae00691ec275da7c819a880810de30b9e538\",\"output_index\":1,\"content_index\":0,\"delta\":\" equals\",\"logprobs\":[],\"obfuscation\":\"GlCVWkJR9\"}\n\nevent: response.output_text.delta\ndata: {\"type\":\"response.output_text.delta\",\"sequence_number\":11,\"item_id\":\"msg_0072d5ba6ceafaae00691ec275da7c819a880810de30b9e538\",\"output_index\":1,\"content_index\":0,\"delta\":\" \",\"logprobs\":[],\"obfuscation\":\"65IcWBJk2P6KYgB\"}\n\nevent: response.output_text.delta\ndata: {\"type\":\"response.output_text.delta\",\"sequence_number\":12,\"item_id\":\"msg_0072d5ba6ceafaae00691ec275da7c819a880810de30b9e538\",\"output_index\":1,\"content_index\":0,\"delta\":\"4\",\"logprobs\":[],\"obfuscation\":\"DccKHe0hqBnTqQs\"}\n\nevent: response.output_text.delta\ndata: {\"type\":\"response.output_text.delta\",\"sequence_number\":13,\"item_id\":\"msg_0072d5ba6ceafaae00691ec275da7c819a880810de30b9e538\",\"output_index\":1,\"content_index\":0,\"delta\":\".\",\"logprobs\":[],\"obfuscation\":\"b7nlij8K9TNSLN3\"}\n\nevent: response.output_text.done\ndata: {\"type\":\"response.output_text.done\",\"sequence_number\":14,\"item_id\":\"msg_0072d5ba6ceafaae00691ec275da7c819a880810de30b9e538\",\"output_index\":1,\"content_index\":0,\"text\":\"2 + 2 equals 4.\",\"logprobs\":[]}\n\nevent: response.content_part.done\ndata: {\"type\":\"response.content_part.done\",\"sequence_number\":15,\"item_id\":\"msg_0072d5ba6ceafaae00691ec275da7c819a880810de30b9e538\",\"output_index\":1,\"content_index\":0,\"part\":{\"type\":\"output_text\",\"annotations\":[],\"logprobs\":[],\"text\":\"2 + 2 equals 4.\"}}\n\nevent: response.output_item.done\ndata: {\"type\":\"response.output_item.done\",\"sequence_number\":16,\"output_index\":1,\"item\":{\"id\":\"msg_0072d5ba6ceafaae00691ec275da7c819a880810de30b9e538\",\"type\":\"message\",\"status\":\"completed\",\"content\":[{\"type\":\"output_text\",\"annotations\":[],\"logprobs\":[],\"text\":\"2 + 2 equals 4.\"}],\"role\":\"assistant\"}}\n\nevent: response.completed\ndata: {\"type\":\"response.completed\",\"sequence_number\":17,\"response\":{\"id\":\"resp_0072d5ba6ceafaae00691ec2750cd4819abfafa0e37dc20935\",\"object\":\"response\",\"created_at\":1763623541,\"status\":\"completed\",\"background\":false,\"error\":null,\"incomplete_details\":null,\"instructions\":null,\"max_output_tokens\":null,\"max_tool_calls\":null,\"model\":\"gpt-5-codex\",\"output\":[{\"id\":\"rs_0072d5ba6ceafaae00691ec275b24c819aaed97bed87c31479\",\"type\":\"reasoning\",\"summary\":[]},{\"id\":\"msg_0072d5ba6ceafaae00691ec275da7c819a880810de30b9e538\",\"type\":\"message\",\"status\":\"completed\",\"content\":[{\"type\":\"output_text\",\"annotations\":[],\"logprobs\":[],\"text\":\"2 + 2 equals 4.\"}],\"role\":\"assistant\"}],\"parallel_tool_calls\":true,\"previous_response_id\":null,\"prompt_cache_key\":null,\"prompt_cache_retention\":null,\"reasoning\":{\"effort\":\"medium\",\"summary\":null},\"safety_identifier\":null,\"service_tier\":\"default\",\"store\":true,\"temperature\":1.0,\"text\":{\"format\":{\"type\":\"text\"},\"verbosity\":\"medium\"},\"tool_choice\":\"auto\",\"tools\":[],\"top_logprobs\":0,\"top_p\":1.0,\"truncation\":\"disabled\",\"usage\":{\"input_tokens\":39,\"input_tokens_details\":{\"cached_tokens\":0},\"output_tokens\":14,\"output_tokens_details\":{\"reasoning_tokens\":0},\"total_tokens\":53},\"user\":null,\"metadata\":{}}}\n\n"
20+
headers: {}
21+
status: 200 OK
22+
code: 200
23+
duration: 957.048875ms

0 commit comments

Comments
 (0)