feat!: Full code can now be generated by an external model and shared with the AI tool (Claude Code / Codex etc)!
model definitions now support a new `allow_code_generation` flag, only to be used with higher reasoning models such as GPT-5-Pro and-Gemini 2.5-Pro When `true`, the `chat` tool can now request the external model to generate a full implementation / update / instructions etc and then share the implementation with the calling agent. This effectively allows us to utilize more powerful models such as GPT-5-Pro to generate code for us or entire implementations (which are either API-only or part of the $200 Pro plan from within the ChatGPT app)
This commit is contained in:
@@ -23,7 +23,7 @@ CASSETTE_CONTINUATION_PATH = CASSETTE_DIR / "chat_gpt5_continuation.json"
|
||||
|
||||
@pytest.mark.asyncio
|
||||
@pytest.mark.no_mock_provider
|
||||
async def test_chat_auto_mode_with_openai(monkeypatch):
|
||||
async def test_chat_auto_mode_with_openai(monkeypatch, tmp_path):
|
||||
"""Ensure ChatTool in auto mode selects gpt-5 via OpenAI and returns a valid response."""
|
||||
# Prepare environment so only OpenAI is available in auto mode
|
||||
env_updates = {
|
||||
@@ -63,10 +63,12 @@ async def test_chat_auto_mode_with_openai(monkeypatch):
|
||||
|
||||
# Execute ChatTool request targeting gpt-5 directly (server normally resolves auto→model)
|
||||
chat_tool = ChatTool()
|
||||
working_directory = str(tmp_path)
|
||||
arguments = {
|
||||
"prompt": "Use chat with gpt5 and ask how far the moon is from earth.",
|
||||
"model": "gpt-5",
|
||||
"temperature": 1.0,
|
||||
"working_directory": working_directory,
|
||||
}
|
||||
|
||||
result = await chat_tool.execute(arguments)
|
||||
@@ -87,7 +89,7 @@ async def test_chat_auto_mode_with_openai(monkeypatch):
|
||||
|
||||
@pytest.mark.asyncio
|
||||
@pytest.mark.no_mock_provider
|
||||
async def test_chat_openai_continuation(monkeypatch):
|
||||
async def test_chat_openai_continuation(monkeypatch, tmp_path):
|
||||
"""Verify continuation_id workflow against gpt-5 using recorded OpenAI responses."""
|
||||
|
||||
env_updates = {
|
||||
@@ -126,12 +128,14 @@ async def test_chat_openai_continuation(monkeypatch):
|
||||
m.setattr(conversation_memory.uuid, "uuid4", lambda: fixed_thread_id)
|
||||
|
||||
chat_tool = ChatTool()
|
||||
working_directory = str(tmp_path)
|
||||
|
||||
# First message: obtain continuation_id
|
||||
first_args = {
|
||||
"prompt": "In one word, which sells better: iOS app or macOS app?",
|
||||
"model": "gpt-5",
|
||||
"temperature": 1.0,
|
||||
"working_directory": working_directory,
|
||||
}
|
||||
first_result = await chat_tool.execute(first_args)
|
||||
|
||||
@@ -152,6 +156,7 @@ async def test_chat_openai_continuation(monkeypatch):
|
||||
"model": "gpt-5",
|
||||
"continuation_id": continuation_id,
|
||||
"temperature": 1.0,
|
||||
"working_directory": working_directory,
|
||||
}
|
||||
|
||||
second_result = await chat_tool.execute(second_args)
|
||||
|
||||
Reference in New Issue
Block a user