vllm - 💡(How to fix) Fix [Doc]: Integration Issue: Qwen3.6-27B-FP8 with Codex via vLLM Server [1 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
vllm-project/vllm#42475Fetched 2026-05-14 03:29:53
View on GitHub
Comments
0
Participants
1
Timeline
1
Reactions
0
Author
Participants
Timeline (top)
labeled ×1

Error Message

export NCCL_DEBUG=WARN After issuing a command in Codex, the following error occurred: {"error":{"message":"18 validation errors:\n {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'FunctionTool', 'type'), 'msg': "Input should be 'function'", 'input': 'namespace', 'ctx': {'expected': "'function'"}}\n {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'FileSearchTool', 'type'), 'msg': "Input should be 'file_search'", 'input': 'namespace', 'ctx': {'expected': "'file_search'"}}\n {'type': 'missing', 'loc': ('body', 'tools', 11, 'FileSearchTool', 'vector_store_ids'), 'msg': 'Field required', 'input': {'type': 'namespace', 'name': 'codex_app', 'description': 'Tools in the codex_app namespace.', 'tools': [{'type': 'function', 'name': 'automation_update', 'description': 'Create, update, view, or delete recurring automations in the Codex app. Use this when the user asks for an automation, recurring run, repeated task, reminder, follow-up, monitor, or asks you to watch something, keep an eye on it, check back later, wake up later, notify them, or keep working later. Cron automations run as standalone jobs against workspaces. Heartbeat automations are proactive follow-ups attached to the current local thread. Prefer heartbeats for requests to continue this thread later, especially below one hour. Use suggested_create or suggested_update when proposing a worktree automation with a local environment setup config so the user can review it before it is saved. Never write raw automation directives by hand, show raw RRULE strings to the user, or create a workaround cron automation for a thread heartbeat unless the user explicitly asks for that. For requests about existing automations, inspect $CODEX_HOME/automations//automation.toml to find matching automation ids by name or prompt. Prefer updating an existing automation over creating a duplicate. For updates, preserve existing fields unless the user asks to change them, and call automation_update with the resolved id and full updated fields.', 'strict': False, 'parameters': {'type': 'object', 'properties': {'cwds': {'description': 'Cron automations only. Workspace directories for the automation; can be a JSON array or comma-separated string.', 'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}]}, 'destination': {'type': 'string', 'description': 'Optional automation destination. Use thread for heartbeat automations attached to the current local thread.'}, 'executionEnvironment': {'type': 'string', 'description': 'One of worktree or local. Cron automations only.'}, 'id': {'type': 'string', 'description': 'Automation id. Required for mode=view, mode=update, mode=delete, and mode=suggested_update. Omit for mode=create and mode=suggested_create.'}, 'kind': {'type': 'string', 'description': 'One of cron or heartbeat. Required for create, update, suggested_create, and suggested_update. Use cron for detached workspace jobs. Use heartbeat when the user wants this thread to wake up later and continue the conversation.'}, 'localEnvironmentConfigPath': {'type': ['string', 'null'], 'description': 'Optional local environment config path for worktree setup scripts. Immediate worktree create calls with a non-null value and immediate worktree update calls that preserve or set a setup config are rejected; use suggested_create/suggested_update for user review. Pass null to clear or run without setup. Cron automations only.'}, 'mode': {'type': 'string', 'description': 'One of view, create, update, delete, suggested_create, or suggested_update. Use view to show an existing automation, create/update/delete to mutate immediately, and suggested_create/suggested_update to present a proposal for the user to review.'}, 'model': {'type': 'string', 'description': 'Model to use for cron automations.'}, 'name': {'type': 'string', 'description': 'Short human-readable automation name. If the user does not provide one, choose a concise name.'}, 'prompt': {'type': 'string', 'description': 'The automation prompt. Describe only the task itself; do not include schedule, workspace, or thread details because those are provided separately. Keep it self-sufficient, include output expectations when useful, and do not ask it to write a file or announce nothing to do unless the user explicitly asked for that.'}, 'reasoningEffort': {'type': 'string', 'description': 'Reasoning effort to use for cron automations. One of none, minimal, low, medium, high, or xhigh.'}, 'rrule': {'type': 'string', 'description': "RRULE schedule string. Interpret requested times in the user's locale. Cron automations use hourly interval or weekly schedules. Heartbeat automations attached to a thread can use minute-based intervals such as FREQ=MINUTELY;INTERVAL=30 or daily/weekly wall-clock schedules."}, 'status': {'type': 'string', 'description': 'One of ACTIVE or PAUSED. Default to ACTIVE unless the user asks to start paused.'}, 'targetThreadId': {'type': 'string', 'description': 'Target thread id for heartbeat automations. Prefer destination=thread for the current local thread instead of inventing or copying raw thread ids.'}}, 'additionalProperties': False}}]}}\n {'type': 'missing', 'loc': ('body', 'tools', 11, 'ComputerTool', 'display_height'), 'msg': 'Field required', 'input': {'type': 'namespace', 'name': 'codex_app', 'description': 'Tools in the codex_app namespace.', 'tools': [{'type': 'function', 'name': 'automation_update', 'description': 'Create, update, view, or delete recurring automations in the Codex app. Use this when the user asks for an automation, recurring run, repeated task, reminder, follow-up, monitor, or asks you to watch something, keep an eye on it, check back later, wake up later, notify them, or keep working later. Cron automations run as standalone jobs against workspaces. Heartbeat automations are proactive follow-ups attached to the current local thread. Prefer heartbeats for requests to continue this thread later, especially below one hour. Use suggested_create or suggested_update when proposing a worktree automation with a local environment setup config so the user can review it before it is saved. Never write raw automation directives by hand, show raw RRULE strings to the user, or create a workaround cron automation for a thread heartbeat unless the user explicitly asks for that. For requests about existing automations, inspect $CODEX_HOME/automations//automation.toml to find matching automation ids by name or prompt. Prefer updating an existing automation over creating a duplicate. For updates, preserve existing fields unless the user asks to change them, and call automation_update with the resolved id and full updated fields.', 'strict': False, 'parameters': {'type': 'object', 'properties': {'cwds': {'description': 'Cron automations only. Workspace directories for the automation; can be a JSON array or comma-separated string.', 'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}]}, 'destination': {'type': 'string', 'description': 'Optional automation destination. Use thread for heartbeat automations attached to the current local thread.'}, 'executionEnvironment': {'type': 'string', 'description': 'One of worktree or local. Cron automations only.'}, 'id': {'type': 'string', 'description': 'Automation id. Required for mode=view, mode=update, mode=delete, and mode=suggested_update. Omit for mode=create and mode=suggested_create.'}, 'kind': {'type': 'string', 'description': 'One of cron or heartbeat. Required for create, update, suggested_create, and suggested_update. Use cron for detached workspace jobs. Use heartbeat when the user wants this thread to wake up later and continue the conversation.'}, 'localEnvironmentConfigPath': {'type': ['string', 'null'], 'description': 'Optional local environment config path for worktree setup scripts. Immediate worktree create calls with a non-null value and immediate worktree update calls that preserve or set a setup config are rejected; use suggested_create/suggested_update for user review. Pass null to clear or run without setup. Cron automations only.'}, 'mode': {'type': 'string', 'description': 'One of view, create, update, delete, suggested_create, or suggested_update. Use view to show an existing automation, create/update/delete to mutate immediately, and suggested_create/suggested_update to present a proposal for the user to review.'}, 'model': {'type': 'string', 'description': 'Model to use for cron automations.'}, 'name': {'type': 'string', 'description': 'Short human-readable automation name. If the user does not provide one, choose a concise name.'}, 'prompt': {'type': 'string', 'description': 'The automation prompt. Describe only the task itself; do not include schedule, workspace, or thread details because those are provided separately. Keep it self-sufficient, include output expectations when useful, and do not ask it to write a file or announce nothing to do unless the user explicitly asked for that.'}, 'reasoningEffort': {'type': 'string', 'description': 'Reasoning effort to use for cron automations. One of none, minimal, low, medium, high, or xhigh.'}, 'rrule': {'type': 'string', 'description': "RRULE schedule string. Interpret requested times in the user's locale. Cron automations use hourly interval or weekly schedules. Heartbeat automations attached to a thread can use minute-based intervals such as FREQ=MINUTELY;INTERVAL=30 or daily/weekly wall-clock schedules."}, 'status': {'type': 'string', 'description': 'One of ACTIVE or PAUSED. Default to ACTIVE unless the user asks to start paused.'}, 'targetThreadId': {'type': 'string', 'description': 'Target thread id for heartbeat automations. Prefer destination=thread for the current local thread instead of inventing or copying raw thread ids.'}}, 'additionalProperties': False}}]}}\n {'type': 'missing', 'loc': ('body', 'tools', 11, 'ComputerTool', 'display_width'), 'msg': 'Field required', 'input': {'type': 'namespace', 'name': 'codex_app', 'description': 'Tools in the codex_app namespace.', 'tools': [{'type': 'function', 'name': 'automation_update', 'description': 'Create, update, view, or delete recurring automations in the Codex app. Use this when the user asks for an automation, recurring run, repeated task, reminder, follow-up, monitor, or asks you to watch something, keep an eye on it, check back later, wake up later, notify them, or keep working later. Cron automations run as standalone jobs against workspaces. Heartbeat automations are proactive follow-ups attached to the current local thread. Prefer heartbeats for requests to continue this thread later, especially below one hour. Use suggested_create or suggested_update when proposing a worktree automation with a local environment setup config so the user can review it before it is saved. Never write raw automation directives by hand, show raw RRULE strings to the user, or create a workaround cron automation for a thread heartbeat unless the user explicitly asks for that. For requests about existing automations, inspect $CODEX_HOME/automations//automation.toml to find matching automation ids by name or prompt. Prefer updating an existing automation over creating a duplicate. For updates, preserve existing fields unless the user asks to change them, and call automation_update with the resolved id and full updated fields.', 'strict': False, 'parameters': {'type': 'object', 'properties': {'cwds': {'description': 'Cron automations only. Workspace directories for the automation; can be a JSON array or comma-separated string.', 'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}]}, 'destination': {'type': 'string', 'description': 'Optional automation destination. Use thread for heartbeat automations attached to the current local thread.'}, 'executionEnvironment': {'type': 'string', 'description': 'One of worktree or local. Cron automations only.'}, 'id': {'type': 'string', 'description': 'Automation id. Required for mode=view, mode=update, mode=delete, and mode=suggested_update. Omit for mode=create and mode=suggested_create.'}, 'kind': {'type': 'string', 'description': 'One of cron or heartbeat. Required for create, update, suggested_create, and suggested_update. Use cron for detached workspace jobs. Use heartbeat when the user wants this thread to wake up later and continue the conversation.'}, 'localEnvironmentConfigPath': {'type': ['string', 'null'], 'description': 'Optional local environment config path for worktree setup scripts. Immediate worktree create calls with a non-null value and immediate worktree update calls that preserve or set a setup config are rejected; use suggested_create/suggested_update for user review. Pass null to clear or run without setup. Cron automations only.'}, 'mode': {'type': 'string', 'description': 'One of view, create, update, delete, suggested_create, or suggested_update. Use view to show an existing automation, create/update/delete to mutate immediately, and suggested_create/suggested_update to present a proposal for the user to review.'}, 'model': {'type': 'string', 'description': 'Model to use for cron automations.'}, 'name': {'type': 'string', 'description': 'Short human-readable automation name. If the user does not provide one, choose a concise name.'}, 'prompt': {'type': 'string', 'description': 'The automation prompt. Describe only the task itself; do not include schedule, workspace, or thread details because those are provided separately. Keep it self-sufficient, include output expectations when useful, and do not ask it to write a file or announce nothing to do unless the user explicitly asked for that.'}, 'reasoningEffort': {'type': 'string', 'description': 'Reasoning effort to use for cron automations. One of none, minimal, low, medium, high, or xhigh.'}, 'rrule': {'type': 'string', 'description': "RRULE schedule string. Interpret requested times in the user's locale. Cron automations use hourly interval or weekly schedules. Heartbeat automations attached to a thread can use minute-based intervals such as FREQ=MINUTELY;INTERVAL=30 or daily/weekly wall-clock schedules."}, 'status': {'type': 'string', 'description': 'One of ACTIVE or PAUSED. Default to ACTIVE unless the user asks to start paused.'}, 'targetThreadId': {'type': 'string', 'description': 'Target thread id for heartbeat automations. Prefer destination=thread for the current local thread instead of inventing or copying raw thread ids.'}}, 'additionalProperties': False}}]}}\n {'type': 'missing', 'loc': ('body', 'tools', 11, 'ComputerTool', 'environment'), 'msg': 'Field required', 'input': {'type': 'namespace', 'name': 'codex_app', 'description': 'Tools in the codex_app namespace.', 'tools': [{'type': 'function', 'name': 'automation_update', 'description': 'Create, update, view, or delete recurring automations in the Codex app. Use this when the user asks for an automation, recurring run, repeated task, reminder, follow-up, monitor, or asks you to watch something, keep an eye on it, check back later, wake up later, notify them, or keep working later. Cron automations run as standalone jobs against workspaces. Heartbeat automations are proactive follow-ups attached to the current local thread. Prefer heartbeats for requests to continue this thread later, especially below one hour. Use suggested_create or suggested_update when proposing a worktree automation with a local environment setup config so the user can review it before it is saved. Never write raw automation directives by hand, show raw RRULE strings to the user, or create a workaround cron automation for a thread heartbeat unless the user explicitly asks for that. For requests about existing automations, inspect $CODEX_HOME/automations//automation.toml to find matching automation ids by name or prompt. Prefer updating an existing automation over creating a duplicate. For updates, preserve existing fields unless the user asks to change them, and call automation_update with the resolved id and full updated fields.', 'strict': False, 'parameters': {'type': 'object', 'properties': {'cwds': {'description': 'Cron automations only. Workspace directories for the automation; can be a JSON array or comma-separated string.', 'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}]}, 'destination': {'type': 'string', 'description': 'Optional automation destination. Use thread for heartbeat automations attached to the current local thread.'}, 'executionEnvironment': {'type': 'string', 'description': 'One of worktree or local. Cron automations only.'}, 'id': {'type': 'string', 'description': 'Automation id. Required for mode=view, mode=update, mode=delete, and mode=suggested_update. Omit for mode=create and mode=suggested_create.'}, 'kind': {'type': 'string', 'description': 'One of cron or heartbeat. Required for create, update, suggested_create, and suggested_update. Use cron for detached workspace jobs. Use heartbeat when the user wants this thread to wake up later and continue the conversation.'}, 'localEnvironmentConfigPath': {'type': ['string', 'null'], 'description': 'Optional local environment config path for worktree setup scripts. Immediate worktree create calls with a non-null value and immediate worktree update calls that preserve or set a setup config are rejected; use suggested_create/suggested_update for user review. Pass null to clear or run without setup. Cron automations only.'}, 'mode': {'type': 'string', 'description': 'One of view, create, update, delete, suggested_create, or suggested_update. Use view to show an existing automation, create/update/delete to mutate immediately, and suggested_create/suggested_update to present a proposal for the user to review.'}, 'model': {'type': 'string', 'description': 'Model to use for cron automations.'}, 'name': {'type': 'string', 'description': 'Short human-readable automation name. If the user does not provide one, choose a concise name.'}, 'prompt': {'type': 'string', 'description': 'The automation prompt. Describe only the task itself; do not include schedule, workspace, or thread details because those are provided separately. Keep it self-sufficient, include output expectations when useful, and do not ask it to write a file or announce nothing to do unless the user explicitly asked for that.'}, 'reasoningEffort': {'type': 'string', 'description': 'Reasoning effort to use for cron automations. One of none, minimal, low, medium, high, or xhigh.'}, 'rrule': {'type': 'string', 'description': "RRULE schedule string. Interpret requested times in the user's locale. Cron automations use hourly interval or weekly schedules. Heartbeat automations attached to a thread can use minute-based intervals such as FREQ=MINUTELY;INTERVAL=30 or daily/weekly wall-clock schedules."}, 'status': {'type': 'string', 'description': 'One of ACTIVE or PAUSED. Default to ACTIVE unless the user asks to start paused.'}, 'targetThreadId': {'type': 'string', 'description': 'Target thread id for heartbeat automations. Prefer destination=thread for the current local thread instead of inventing or copying raw thread ids.'}}, 'additionalProperties': False}}]}}\n {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'ComputerTool', 'type'), 'msg': "Input should be 'computer_use_preview'", 'input': 'namespace', 'ctx': {'expected': "'computer_use_preview'"}}\n {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'WebSearchTool', 'type'), 'msg': "Input should be 'web_search' or 'web_search_2025_08_26'", 'input': 'namespace', 'ctx': {'expected': "'web_search' or 'web_search_2025_08_26'"}}\n {'type': 'missing', 'loc': ('body', 'tools', 11, 'Mcp', 'server_label'), 'msg': 'Field required', 'input': {'type': 'namespace', 'name': 'codex_app', 'description': 'Tools in the codex_app namespace.', 'tools': [{'type': 'function', 'name': 'automation_update', 'description': 'Create, update, view, or delete recurring automations in the Codex app. Use this when the user asks for an automation, recurring run, repeated task, reminder, follow-up, monitor, or asks you to watch something, keep an eye on it, check back later, wake up later, notify them, or keep working later. Cron automations run as standalone jobs against workspaces. Heartbeat automations are proactive follow-ups attached to the current local thread. Prefer heartbeats for requests to continue this thread later, especially below one hour. Use suggested_create or suggested_update when proposing a worktree automation with a local environment setup config so the user can review it before it is saved. Never write raw automation directives by hand, show raw RRULE strings to the user, or create a workaround cron automation for a thread heartbeat unless the user explicitly asks for that. For requests about existing automations, inspect $CODEX_HOME/automations//automation.toml to find matching automation ids by name or prompt. Prefer updating an existing automation over creating a duplicate. For updates, preserve existing fields unless the user asks to change them, and call automation_update with the resolved id and full updated fields.', 'strict': False, 'parameters': {'type': 'object', 'properties': {'cwds': {'description': 'Cron automations only. Workspace directories for the automation; can be a JSON array or comma-separated string.', 'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}]}, 'destination': {'type': 'string', 'description': 'Optional automation destination. Use thread for heartbeat automations attached to the current local thread.'}, 'executionEnvironment': {'type': 'string', 'description': 'One of worktree or local. Cron automations only.'}, 'id': {'type': 'string', 'description': 'Automation id. Required for mode=view, mode=update, mode=delete, and mode=suggested_update. Omit for mode=create and mode=suggested_create.'}, 'kind': {'type': 'string', 'description': 'One of cron or heartbeat. Required for create, update, suggested_create, and suggested_update. Use cron for detached workspace jobs. Use heartbeat when the user wants this thread to wake up later and continue the conversation.'}, 'localEnvironmentConfigPath': {'type': ['string', 'null'], 'description': 'Optional local environment config path for worktree setup scripts. Immediate worktree create calls with a non-null value and immediate worktree update calls that preserve or set a setup config are rejected; use suggested_create/suggested_update for user review. Pass null to clear or run without setup. Cron automations only.'}, 'mode': {'type': 'string', 'description': 'One of view, create, update, delete, suggested_create, or suggested_update. Use view to show an existing automation, create/update/delete to mutate immediately, and suggested_create/suggested_update to present a proposal for the user to review.'}, 'model': {'type': 'string', 'description': 'Model to use for cron automations.'}, 'name': {'type': 'string', 'description': 'Short human-readable automation name. If the user does not provide one, choose a concise name.'}, 'prompt': {'type': 'string', 'description': 'The automation prompt. Describe only the task itself; do not include schedule, workspace, or thread details because those are provided separately. Keep it self-sufficient, include output expectations when useful, and do not ask it to write a file or announce nothing to do unless the user explicitly asked for that.'}, 'reasoningEffort': {'type': 'string', 'description': 'Reasoning effort to use for cron automations. One of none, minimal, low, medium, high, or xhigh.'}, 'rrule': {'type': 'string', 'description': "RRULE schedule string. Interpret requested times in the user's locale. Cron automations use hourly interval or weekly schedules. Heartbeat automations attached to a thread can use minute-based intervals such as FREQ=MINUTELY;INTERVAL=30 or daily/weekly wall-clock schedules."}, 'status': {'type': 'string', 'description': 'One of ACTIVE or PAUSED. Default to ACTIVE unless the user asks to start paused.'}, 'targetThreadId': {'type': 'string', 'description': 'Target thread id for heartbeat automations. Prefer destination=thread for the current local thread instead of inventing or copying raw thread ids.'}}, 'additionalProperties': False}}]}}\n {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'Mcp', 'type'), 'msg': "Input should be 'mcp'", 'input': 'namespace', 'ctx': {'expected': "'mcp'"}}\n {'type': 'missing', 'loc': ('body', 'tools', 11, 'CodeInterpreter', 'container'), 'msg': 'Field required', 'input': {'type': 'namespace', 'name': 'codex_app', 'description': 'Tools in the codex_app namespace.', 'tools': [{'type': 'function', 'name': 'automation_update', 'description': 'Create, update, view, or delete recurring automations in the Codex app. Use this when the user asks for an automation, recurring run, repeated task, reminder, follow-up, monitor, or asks you to watch something, keep an eye on it, check back later, wake up later, notify them, or keep working later. Cron automations run as standalone jobs against workspaces. Heartbeat automations are proactive follow-ups attached to the current local thread. Prefer heartbeats for requests to continue this thread later, especially below one hour. Use suggested_create or suggested_update when proposing a worktree automation with a local environment setup config so the user can review it before it is saved. Never write raw automation directives by hand, show raw RRULE strings to the user, or create a workaround cron automation for a thread heartbeat unless the user explicitly asks for that. For requests about existing automations, inspect $CODEX_HOME/automations//automation.toml to find matching automation ids by name or prompt. Prefer updating an existing automation over creating a duplicate. For updates, preserve existing fields unless the user asks to change them, and call automation_update with the resolved id and full updated fields.', 'strict': False, 'parameters': {'type': 'object', 'properties': {'cwds': {'description': 'Cron automations only. Workspace directories for the automation; can be a JSON array or comma-separated string.', 'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}]}, 'destination': {'type': 'string', 'description': 'Optional automation destination. Use thread for heartbeat automations attached to the current local thread.'}, 'executionEnvironment': {'type': 'string', 'description': 'One of worktree or local. Cron automations only.'}, 'id': {'type': 'string', 'description': 'Automation id. Required for mode=view, mode=update, mode=delete, and mode=suggested_update. Omit for mode=create and mode=suggested_create.'}, 'kind': {'type': 'string', 'description': 'One of cron or heartbeat. Required for create, update, suggested_create, and suggested_update. Use cron for detached workspace jobs. Use heartbeat when the user wants this thread to wake up later and continue the conversation.'}, 'localEnvironmentConfigPath': {'type': ['string', 'null'], 'description': 'Optional local environment config path for worktree setup scripts. Immediate worktree create calls with a non-null value and immediate worktree update calls that preserve or set a setup config are rejected; use suggested_create/suggested_update for user review. Pass null to clear or run without setup. Cron automations only.'}, 'mode': {'type': 'string', 'description': 'One of view, create, update, delete, suggested_create, or suggested_update. Use view to show an existing automation, create/update/delete to mutate immediately, and suggested_create/suggested_update to present a proposal for the user to review.'}, 'model': {'type': 'string', 'description': 'Model to use for cron automations.'}, 'name': {'type': 'string', 'description': 'Short human-readable automation name. If the user does not provide one, choose a concise name.'}, 'prompt': {'type': 'string', 'description': 'The automation prompt. Describe only the task itself; do not include schedule, workspace, or thread details because those are provided separately. Keep it self-sufficient, include output expectations when useful, and do not ask it to write a file or announce nothing to do unless the user explicitly asked for that.'}, 'reasoningEffort': {'type': 'string', 'description': 'Reasoning effort to use for cron automations. One of none, minimal, low, medium, high, or xhigh.'}, 'rrule': {'type': 'string', 'description': "RRULE schedule string. Interpret requested times in the user's locale. Cron automations use hourly interval or weekly schedules. Heartbeat automations attached to a thread can use minute-based intervals such as FREQ=MINUTELY;INTERVAL=30 or daily/weekly wall-clock schedules."}, 'status': {'type': 'string', 'description': 'One of ACTIVE or PAUSED. Default to ACTIVE unless the user asks to start paused.'}, 'targetThreadId': {'type': 'string', 'description': 'Target thread id for heartbeat automations. Prefer destination=thread for the current local thread instead of inventing or copying raw thread ids.'}}, 'additionalProperties': False}}]}}\n {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'CodeInterpreter', 'type'), 'msg': "Input should be 'code_interpreter'", 'input': 'namespace', 'ctx': {'expected': "'code_interpreter'"}}\n {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'ImageGeneration', 'type'), 'msg': "Input should be 'image_generation'", 'input': 'namespace', 'ctx': {'expected': "'image_generation'"}}\n {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'LocalShell', 'type'), 'msg': "Input should be 'local_shell'", 'input': 'namespace', 'ctx': {'expected': "'local_shell'"}}\n {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'FunctionShellTool', 'type'), 'msg': "Input should be 'shell'", 'input': 'namespace', 'ctx': {'expected': "'shell'"}}\n {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'CustomTool', 'type'), 'msg': "Input should be 'custom'", 'input': 'namespace', 'ctx': {'expected': "'custom'"}}\n {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'WebSearchPreviewTool', 'type'), 'msg': "Input should be 'web_search_preview' or 'web_search_preview_2025_03_11'", 'input': 'namespace', 'ctx': {'expected': "'web_search_preview' or 'web_search_preview_2025_03_11'"}}\n {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'ApplyPatchTool', 'type'), 'msg': "Input should be 'apply_patch'", 'input': 'namespace', 'ctx': {'expected': "'apply_patch'"}}\n\n File "/home/user/.local/lib/python3.10/site-packages/vllm/entrypoints/utils.py", line 48, in create_responses\n POST /v1/responses [{'type': 'literal_error', 'loc': ('body', 'tools', 11, 'FunctionTool', 'type'), 'msg': "Input should be 'function'", 'input': 'namespace', 'ctx': {'expected': "'function'"}}, {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'FileSearchTool', 'type'), 'msg': "Input should be 'file_search'", 'input': 'namespace', 'ctx': {'expected': "'file_search'"}}, {'type': 'missing', 'loc': ('body', 'tools', 11, 'FileSearchTool', 'vector_store_ids'), 'msg': 'Field required', 'input': {'type': 'namespace', 'name': 'codex_app', 'description': 'Tools in the codex_app namespace.', 'tools': [{'type': 'function', 'name': 'automation_update', 'description': 'Create, update, view, or delete recurring automations in the Codex app. Use this when the user asks for an automation, recurring run, repeated task, reminder, follow-up, monitor, or asks you to watch something, keep an eye on it, check back later, wake up later, notify them, or keep working later. Cron automations run as standalone jobs against workspaces. Heartbeat automations are proactive follow-ups attached to the current local thread. Prefer heartbeats for requests to continue this thread later, especially below one hour. Use suggested_create or suggested_update when proposing a worktree automation with a local environment setup config so the user can review it before it is saved. Never write raw automation directives by hand, show raw RRULE strings to the user, or create a workaround cron automation for a thread heartbeat unless the user explicitly asks for that. For requests about existing automations, inspect $CODEX_HOME/automations//automation.toml to find matching automation ids by name or prompt. Prefer updating an existing automation over creating a duplicate. For updates, preserve existing fields unless the user asks to change them, and call automation_update with the resolved id and full updated fields.', 'strict': False, 'parameters': {'type': 'object', 'properties': {'cwds': {'description': 'Cron automations only. Workspace directories for the automation; can be a JSON array or comma-separated string.', 'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}]}, 'destination': {'type': 'string', 'description': 'Optional automation destination. Use thread for heartbeat automations attached to the current local thread.'}, 'executionEnvironment': {'type': 'string', 'description': 'One of worktree or local. Cron automations only.'}, 'id': {'type': 'string', 'description': 'Automation id. Required for mode=view, mode=update, mode=delete, and mode=suggested_update. Omit for mode=create and mode=suggested_create.'}, 'kind': {'type': 'string', 'description': 'One of cron or heartbeat. Required for create, update, suggested_create, and suggested_update. Use cron for detached workspace jobs. Use heartbeat when the user wants this thread to wake up later and continue the conversation.'}, 'localEnvironmentConfigPath': {'type': ['string', 'null'], 'description': 'Optional local environment config path for worktree setup scripts. Immediate worktree create calls with a non-null value and immediate worktree update calls that preserve or set a setup config are rejected; use suggested_create/suggested_update for user review. Pass null to clear or run without setup. Cron automations only.'}, 'mode': {'type': 'string', 'description': 'One of view, create, update, delete, suggested_create, or suggested_update. Use view to show an existing automation, create/update/delete to mutate immediately, and suggested_create/suggested_update to present a proposal for the user to review.'}, 'model': {'type': 'string', 'description': 'Model to use for cron automations.'}, 'name': {'type': 'string', 'description': 'Short human-readable automation name. If the user does not provide one, choose a concise name.'}, 'prompt': {'type': 'string', 'description': 'The automation prompt. Describe only the task itself; do not include schedule, workspace, or thread details because those are provided separately. Keep it self-sufficient, include output expectations when useful, and do not ask it to write a file or announce nothing to do unless the user explicitly asked for that.'}, 'reasoningEffort': {'type': 'string', 'description': 'Reasoning effort to use for cron automations. One of none, minimal, low, medium, high, or xhigh.'}, 'rrule': {'type': 'string', 'description': "RRULE schedule string. Interpret requested times in the user's locale. Cron automations use hourly interval or weekly schedules. Heartbeat automations attached to a thread can use minute-based intervals such as FREQ=MINUTELY;INTERVAL=30 or daily/weekly wall-clock schedules."}, 'status': {'type': 'string', 'description': 'One of ACTIVE or PAUSED. Default to ACTIVE unless the user asks to start paused.'}, 'targetThreadId': {'type': 'string', 'description': 'Target thread id for heartbeat automations. Prefer destination=thread for the current local thread instead of inventing or copying raw thread ids.'}}, 'additionalProperties': False}}]}}, {'type': 'missing', 'loc': ('body', 'tools', 11, 'ComputerTool', 'display_height'), 'msg': 'Field required', 'input': {'type': 'namespace', 'name': 'codex_app', 'description': 'Tools in the codex_app namespace.', 'tools': [{'type': 'function', 'name': 'automation_update', 'description': 'Create, update, view, or delete recurring automations in the Codex app. Use this when the user asks for an automation, recurring run, repeated task, reminder, follow-up, monitor, or asks you to watch something, keep an eye on it, check back later, wake up later, notify them, or keep working later. Cron automations run as standalone jobs against workspaces. Heartbeat automations are proactive follow-ups attached to the current local thread. Prefer heartbeats for requests to continue this thread later, especially below one hour. Use suggested_create or suggested_update when proposing a worktree automation with a local environment setup config so the user can review it before it is saved. Never write raw automation directives by hand, show raw RRULE strings to the user, or create a workaround cron automation for a thread heartbeat unless the user explicitly asks for that. For requests about existing automations, inspect $CODEX_HOME/automations//automation.toml to find matching automation ids by name or prompt. Prefer updating an existing automation over creating a duplicate. For updates, preserve existing fields unless the user asks to change them, and call automation_update with the resolved id and full updated fields.', 'strict': False, 'parameters': {'type': 'object', 'properties': {'cwds': {'description': 'Cron automations only. Workspace directories for the automation; can be a JSON array or comma-separated string.', 'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}]}, 'destination': {'type': 'string', 'description': 'Optional automation destination. Use thread for heartbeat automations attached to the current local thread.'}, 'executionEnvironment': {'type': 'string', 'description': 'One of worktree or local. Cron automations only.'}, 'id': {'type': 'string', 'description': 'Automation id. Required for mode=view, mode=update, mode=delete, and mode=suggested_update. Omit for mode=create and mode=suggested_create.'}, 'kind': {'type': 'string', 'description': 'One of cron or heartbeat. Required for create, update, suggested_create, and suggested_update. Use cron for detached workspace jobs. Use heartbeat when the user wants this thread to wake up later and continue the conversation.'}, 'localEnvironmentConfigPath': {'type': ['string', 'null'], 'description': 'Optional local environment config path for worktree setup scripts. Immediate worktree create calls with a non-null value and immediate worktree update calls that preserve or set a setup config are rejected; use suggested_create/suggested_update for user review. Pass null to clear or run without setup. Cron automations only.'}, 'mode': {'type': 'string', 'description': 'One of view, create, update, delete, suggested_create, or suggested_update. Use view to show an existing automation, create/update/delete to mutate immediately, and suggested_create/suggested_update to present a proposal for the user to review.'}, 'model': {'type': 'string', 'description': 'Model to use for cron automations.'}, 'name': {'type': 'string', 'description': 'Short human-readable automation name. If the user does not provide one, choose a concise name.'}, 'prompt': {'type': 'string', 'description': 'The automation prompt. Describe only the task itself; do not include schedule, workspace, or thread details because those are provided separately. Keep it self-sufficient, include output expectations when useful, and do not ask it to write a file or announce nothing to do unless the user explicitly asked for that.'}, 'reasoningEffort': {'type': 'string', 'description': 'Reasoning effort to use for cron automations. One of none, minimal, low, medium, high, or xhigh.'}, 'rrule': {'type': 'string', 'description': "RRULE schedule string. Interpret requested times in the user's locale. Cron automations use hourly interval or weekly schedules. Heartbeat automations attached to a thread can use minute-based intervals such as FREQ=MINUTELY;INTERVAL=30 or daily/weekly wall-clock schedules."}, 'status': {'type': 'string', 'description': 'One of ACTIVE or PAUSED. Default to ACTIVE unless the user asks to start paused.'}, 'targetThreadId': {'type': 'string', 'description': 'Target thread id for heartbeat automations. Prefer destination=thread for the current local thread instead of inventing or copying raw thread ids.'}}, 'additionalProperties': False}}]}}, {'type': 'missing', 'loc': ('body', 'tools', 11, 'ComputerTool', 'display_width'), 'msg': 'Field required', 'input': {'type': 'namespace', 'name': 'codex_app', 'description': 'Tools in the codex_app namespace.', 'tools': [{'type': 'function', 'name': 'automation_update', 'description': 'Create, update, view, or delete recurring automations in the Codex app. Use this when the user asks for an automation, recurring run, repeated task, reminder, follow-up, monitor, or asks you to watch something, keep an eye on it, check back later, wake up later, notify them, or keep working later. Cron automations run as standalone jobs against workspaces. Heartbeat automations are proactive follow-ups attached to the current local thread. Prefer heartbeats for requests to continue this thread later, especially below one hour. Use suggested_create or suggested_update when proposing a worktree automation with a local environment setup config so the user can review it before it is saved. Never write raw automation directives by hand, show raw RRULE strings to the user, or create a workaround cron automation for a thread heartbeat unless the user explicitly asks for that. For requests about existing automations, inspect $CODEX_HOME/automations//automation.toml to find matching automation ids by name or prompt. Prefer updating an existing automation over creating a duplicate. For updates, preserve existing fields unless the user asks to change them, and call automation_update with the resolved id and full updated fields.', 'strict': False, 'parameters': {'type': 'object', 'properties': {'cwds': {'description': 'Cron automations only. Workspace directories for the automation; can be a JSON array or comma-separated string.', 'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}]}, 'destination': {'type': 'string', 'description': 'Optional automation destination. Use thread for heartbeat automations attached to the current local thread.'}, 'executionEnvironment': {'type': 'string', 'description': 'One of worktree or local. Cron automations only.'}, 'id': {'type': 'string', 'description': 'Automation id. Required for mode=view, mode=update, mode=delete, and mode=suggested_update. Omit for mode=create and mode=suggested_create.'}, 'kind': {'type': 'string', 'description': 'One of cron or heartbeat. Required for create, update, suggested_create, and suggested_update. Use cron for detached workspace jobs. Use heartbeat when the user wants this thread to wake up later and continue the conversation.'}, 'localEnvironmentConfigPath': {'type': ['string', 'null'], 'description': 'Optional local environment config path for worktree setup scripts. Immediate worktree create calls with a non-null value and immediate worktree update calls that preserve or set a setup config are rejected; use suggested_create/suggested_update for user review. Pass null to clear or run without setup. Cron automations only.'}, 'mode': {'type': 'string', 'description': 'One of view, create, update, delete, suggested_create, or suggested_update. Use view to show an existing automation, create/update/delete to mutate immediately, and suggested_create/suggested_update to present a proposal for the user to review.'}, 'model': {'type': 'string', 'description': 'Model to use for cron automations.'}, 'name': {'type': 'string', 'description': 'Short human-readable automation name. If the user does not provide one, choose a concise name.'}, 'prompt': {'type': 'string', 'description': 'The automation prompt. Describe only the task itself; do not include schedule, workspace, or thread details because those are provided separately. Keep it self-sufficient, include output expectations when useful, and do not ask it to write a file or announce nothing to do unless the user explicitly asked for that.'}, 'reasoningEffort': {'type': 'string', 'description': 'Reasoning effort to use for cron automations. One of none, minimal, low, medium, high, or xhigh.'}, 'rrule': {'type': 'string', 'description': "RRULE schedule string. Interpret requested times in the user's locale. Cron automations use hourly interval or weekly schedules. Heartbeat automations attached to a thread can use minute-based intervals such as FREQ=MINUTELY;INTERVAL=30 or daily/weekly wall-clock schedules."}, 'status': {'type': 'string', 'description': 'One of ACTIVE or PAUSED. Default to ACTIVE unless the user asks to start paused.'}, 'targetThreadId': {'type': 'string', 'description': 'Target thread id for heartbeat automations. Prefer destination=thread for the current local thread instead of inventing or copying raw thread ids.'}}, 'additionalProperties': False}}]}}, {'type': 'missing', 'loc': ('body', 'tools', 11, 'ComputerTool', 'environment'), 'msg': 'Field required', 'input': {'type': 'namespace', 'name': 'codex_app', 'description': 'Tools in the codex_app namespace.', 'tools': [{'type': 'function', 'name': 'automation_update', 'description': 'Create, update, view, or delete recurring automations in the Codex app. Use this when the user asks for an automation, recurring run, repeated task, reminder, follow-up, monitor, or asks you to watch something, keep an eye on it, check back later, wake up later, notify them, or keep working later. Cron automations run as standalone jobs against workspaces. Heartbeat automations are proactive follow-ups attached to the current local thread. Prefer heartbeats for requests to continue this thread later, especially below one hour. Use suggested_create or suggested_update when proposing a worktree automation with a local environment setup config so the user can review it before it is saved. Never write raw automation directives by hand, show raw RRULE strings to the user, or create a workaround cron automation for a thread heartbeat unless the user explicitly asks for that. For requests about existing automations, inspect $CODEX_HOME/automations//automation.toml to find matching automation ids by name or prompt. Prefer updating an existing automation over creating a duplicate. For updates, preserve existing fields unless the user asks to change them, and call automation_update with the resolved id and full updated fields.', 'strict': False, 'parameters': {'type': 'object', 'properties': {'cwds': {'description': 'Cron automations only. Workspace directories for the automation; can be a JSON array or comma-separated string.', 'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}]}, 'destination': {'type': 'string', 'description': 'Optional automation destination. Use thread for heartbeat automations attached to the current local thread.'}, 'executionEnvironment': {'type': 'string', 'description': 'One of worktree or local. Cron automations only.'}, 'id': {'type': 'string', 'description': 'Automation id. Required for mode=view, mode=update, mode=delete, and mode=suggested_update. Omit for mode=create and mode=suggested_create.'}, 'kind': {'type': 'string', 'description': 'One of cron or heartbeat. Required for create, update, suggested_create, and suggested_update. Use cron for detached workspace jobs. Use heartbeat when the user wants this thread to wake up later and continue the conversation.'}, 'localEnvironmentConfigPath': {'type': ['string', 'null'], 'description': 'Optional local environment config path for worktree setup scripts. Immediate worktree create calls with a non-null value and immediate worktree update calls that preserve or set a setup config are rejected; use suggested_create/suggested_update for user review. Pass null to clear or run without setup. Cron automations only.'}, 'mode': {'type': 'string', 'description': 'One of view, create, update, delete, suggested_create, or suggested_update. Use view to show an existing automation, create/update/delete to mutate immediately, and suggested_create/suggested_update to present a proposal for the user to review.'}, 'model': {'type': 'string', 'description': 'Model to use for cron automations.'}, 'name': {'type': 'string', 'description': 'Short human-readable automation name. If the user does not provide one, choose a concise name.'}, 'prompt': {'type': 'string', 'description': 'The automation prompt. Describe only the task itself; do not include schedule, workspace, or thread details because those are provided separately. Keep it self-sufficient, include output expectations when useful, and do not ask it to write a file or announce nothing to do unless the user explicitly asked for that.'}, 'reasoningEffort': {'type': 'string', 'description': 'Reasoning effort to use for cron automations. One of none, minimal, low, medium, high, or xhigh.'}, 'rrule': {'type': 'string', 'description': "RRULE schedule string. Interpret requested times in the user's locale. Cron automations use hourly interval or weekly schedules. Heartbeat automations attached to a thread can use minute-based intervals such as FREQ=MINUTELY;INTERVAL=30 or daily/weekly wall-clock schedules."}, 'status': {'type': 'string', 'description': 'One of ACTIVE or PAUSED. Default to ACTIVE unless the user asks to start paused.'}, 'targetThreadId': {'type': 'string', 'description': 'Target thread id for heartbeat automations. Prefer destination=thread for the current local thread instead of inventing or copying raw thread ids.'}}, 'additionalProperties': False}}]}}, {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'ComputerTool', 'type'), 'msg': "Input should be 'computer_use_preview'", 'input': 'namespace', 'ctx': {'expected': "'computer_use_preview'"}}, {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'WebSearchTool', 'type'), 'msg': "Input should be 'web_search' or 'web_search_2025_08_26'", 'input': 'namespace', 'ctx': {'expected': "'web_search' or 'web_search_2025_08_26'"}}, {'type': 'missing', 'loc': ('body', 'tools', 11, 'Mcp', 'server_label'), 'msg': 'Field required', 'input': {'type': 'namespace', 'name': 'codex_app', 'description': 'Tools in the codex_app namespace.', 'tools': [{'type': 'function', 'name': 'automation_update', 'description': 'Create, update, view, or delete recurring automations in the Codex app. Use this when the user asks for an automation, recurring run, repeated task, reminder, follow-up, monitor, or asks you to watch something, keep an eye on it, check back later, wake up later, notify them, or keep working later. Cron automations run as standalone jobs against workspaces. Heartbeat automations are proactive follow-ups attached to the current local thread. Prefer heartbeats for requests to continue this thread later, especially below one hour. Use suggested_create or suggested_update when proposing a worktree automation with a local environment setup config so the user can review it before it is saved. Never write raw automation directives by hand, show raw RRULE strings to the user, or create a workaround cron automation for a thread heartbeat unless the user explicitly asks for that. For requests about existing automations, inspect $CODEX_HOME/automations//automation.toml to find matching automation ids by name or prompt. Prefer updating an existing automation over creating a duplicate. For updates, preserve existing fields unless the user asks to change them, and call automation_update with the resolved id and full updated fields.', 'strict': False, 'parameters': {'type': 'object', 'properties': {'cwds': {'description': 'Cron automations only. Workspace directories for the automation; can be a JSON array or comma-separated string.', 'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}]}, 'destination': {'type': 'string', 'description': 'Optional automation destination. Use thread for heartbeat automations attached to the current local thread.'}, 'executionEnvironment': {'type': 'string', 'description': 'One of worktree or local. Cron automations only.'}, 'id': {'type': 'string', 'description': 'Automation id. Required for mode=view, mode=update, mode=delete, and mode=suggested_update. Omit for mode=create and mode=suggested_create.'}, 'kind': {'type': 'string', 'description': 'One of cron or heartbeat. Required for create, update, suggested_create, and suggested_update. Use cron for detached workspace jobs. Use heartbeat when the user wants this thread to wake up later and continue the conversation.'}, 'localEnvironmentConfigPath': {'type': ['string', 'null'], 'description': 'Optional local environment config path for worktree setup scripts. Immediate worktree create calls with a non-null value and immediate worktree update calls that preserve or set a setup config are rejected; use suggested_create/suggested_update for user review. Pass null to clear or run without setup. Cron automations only.'}, 'mode': {'type': 'string', 'description': 'One of view, create, update, delete, suggested_create, or suggested_update. Use view to show an existing automation, create/update/delete to mutate immediately, and suggested_create/suggested_update to present a proposal for the user to review.'}, 'model': {'type': 'string', 'description': 'Model to use for cron automations.'}, 'name': {'type': 'string', 'description': 'Short human-readable automation name. If the user does not provide one, choose a concise name.'}, 'prompt': {'type': 'string', 'description': 'The automation prompt. Describe only the task itself; do not include schedule, workspace, or thread details because those are provided separately. Keep it self-sufficient, include output expectations when useful, and do not ask it to write a file or announce nothing to do unless the user explicitly asked for that.'}, 'reasoningEffort': {'type': 'string', 'description': 'Reasoning effort to use for cron automations. One of none, minimal, low, medium, high, or xhigh.'}, 'rrule': {'type': 'string', 'description': "RRULE schedule string. Interpret requested times in the user's locale. Cron automations use hourly interval or weekly schedules. Heartbeat automations attached to a thread can use minute-based intervals such as FREQ=MINUTELY;INTERVAL=30 or daily/weekly wall-clock schedules."}, 'status': {'type': 'string', 'description': 'One of ACTIVE or PAUSED. Default to ACTIVE unless the user asks to start paused.'}, 'targetThreadId': {'type': 'string', 'description': 'Target thread id for heartbeat automations. Prefer destination=thread for the current local thread instead of inventing or copying raw thread ids.'}}, 'additionalProperties': False}}]}}, {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'Mcp', 'type'), 'msg': "Input should be 'mcp'", 'input': 'namespace', 'ctx': {'expected': "'mcp'"}}, {'type': 'missing', 'loc': ('body', 'tools', 11, 'CodeInterpreter', 'container'), 'msg': 'Field required', 'input': {'type': 'namespace', 'name': 'codex_app', 'description': 'Tools in the codex_app namespace.', 'tools': [{'type': 'function', 'name': 'automation_update', 'description': 'Create, update, view, or delete recurring automations in the Codex app. Use this when the user asks for an automation, recurring run, repeated task, reminder, follow-up, monitor, or asks you to watch something, keep an eye on it, check back later, wake up later, notify them, or keep working later. Cron automations run as standalone jobs against workspaces. Heartbeat automations are proactive follow-ups attached to the current local thread. Prefer heartbeats for requests to continue this thread later, especially below one hour. Use suggested_create or suggested_update when proposing a worktree automation with a local environment setup config so the user can review it before it is saved. Never write raw automation directives by hand, show raw RRULE strings to the user, or create a workaround cron automation for a thread heartbeat unless the user explicitly asks for that. For requests about existing automations, inspect $CODEX_HOME/automations//automation.toml to find matching automation ids by name or prompt. Prefer updating an existing automation over creating a duplicate. For updates, preserve existing fields unless the user asks to change them, and call automation_update with the resolved id and full updated fields.', 'strict': False, 'parameters': {'type': 'object', 'properties': {'cwds': {'description': 'Cron automations only. Workspace directories for the automation; can be a JSON array or comma-separated string.', 'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}]}, 'destination': {'type': 'string', 'description': 'Optional automation destination. Use thread for heartbeat automations attached to the current local thread.'}, 'executionEnvironment': {'type': 'string', 'description': 'One of worktree or local. Cron automations only.'}, 'id': {'type': 'string', 'description': 'Automation id. Required for mode=view, mode=update, mode=delete, and mode=suggested_update. Omit for mode=create and mode=suggested_create.'}, 'kind': {'type': 'string', 'description': 'One of cron or heartbeat. Required for create, update, suggested_create, and suggested_update. Use cron for detached workspace jobs. Use heartbeat when the user wants this thread to wake up later and continue the conversation.'}, 'localEnvironmentConfigPath': {'type': ['string', 'null'], 'description': 'Optional local environment config path for worktree setup scripts. Immediate worktree create calls with a non-null value and immediate worktree update calls that preserve or set a setup config are rejected; use suggested_create/suggested_update for user review. Pass null to clear or run without setup. Cron automations only.'}, 'mode': {'type': 'string', 'description': 'One of view, create, update, delete, suggested_create, or suggested_update. Use view to show an existing automation, create/update/delete to mutate immediately, and suggested_create/suggested_update to present a proposal for the user to review.'}, 'model': {'type': 'string', 'description': 'Model to use for cron automations.'}, 'name': {'type': 'string', 'description': 'Short human-readable automation name. If the user does not provide one, choose a concise name.'}, 'prompt': {'type': 'string', 'description': 'The automation prompt. Describe only the task itself; do not include schedule, workspace, or thread details because those are provided separately. Keep it self-sufficient, include output expectations when useful, and do not ask it to write a file or announce nothing to do unless the user explicitly asked for that.'}, 'reasoningEffort': {'type': 'string', 'description': 'Reasoning effort to use for cron automations. One of none, minimal, low, medium, high, or xhigh.'}, 'rrule': {'type': 'string', 'description': "RRULE schedule string. Interpret requested times in the user's locale. Cron automations use hourly interval or weekly schedules. Heartbeat automations attached to a thread can use minute-based intervals such as FREQ=MINUTELY;INTERVAL=30 or daily/weekly wall-clock schedules."}, 'status': {'type': 'string', 'description': 'One of ACTIVE or PAUSED. Default to ACTIVE unless the user asks to start paused.'}, 'targetThreadId': {'type': 'string', 'description': 'Target thread id for heartbeat automations. Prefer destination=thread for the current local thread instead of inventing or copying raw thread ids.'}}, 'additionalProperties': False}}]}}, {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'CodeInterpreter', 'type'), 'msg': "Input should be 'code_interpreter'", 'input': 'namespace', 'ctx': {'expected': "'code_interpreter'"}}, {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'ImageGeneration', 'type'), 'msg': "Input should be 'image_generation'", 'input': 'namespace', 'ctx': {'expected': "'image_generation'"}}, {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'LocalShell', 'type'), 'msg': "Input should be 'local_shell'", 'input': 'namespace', 'ctx': {'expected': "'local_shell'"}}, {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'FunctionShellTool', 'type'), 'msg': "Input should be 'shell'", 'input': 'namespace', 'ctx': {'expected': "'shell'"}}, {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'CustomTool', 'type'), 'msg': "Input should be 'custom'", 'input': 'namespace', 'ctx': {'expected': "'custom'"}}, {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'WebSearchPreviewTool', 'type'), 'msg': "Input should be 'web_search_preview' or 'web_search_preview_2025_03_11'", 'input': 'namespace', 'ctx': {'expected': "'web_search_preview' or 'web_search_preview_2025_03_11'"}}, {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'ApplyPatchTool', 'type'), 'msg': "Input should be 'apply_patch'", 'input': 'namespace', 'ctx': {'expected': "'apply_patch'"}}]","type":"Bad Request","param":null,"code":400}}

Root Cause

{"error":{"message":"18 validation errors:\n {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'FunctionTool', 'type'), 'msg': \"Input should be 'function'\", 'input': 'namespace', 'ctx': {'expected': \"'function'\"}}\n {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'FileSearchTool', 'type'), 'msg': \"Input should be 'file_search'\", 'input': 'namespace', 'ctx': {'expected': \"'file_search'\"}}\n {'type': 'missing', 'loc': ('body', 'tools', 11, 'FileSearchTool', 'vector_store_ids'), 'msg': 'Field required', 'input': {'type': 'namespace', 'name': 'codex_app', 'description': 'Tools in the codex_app namespace.', 'tools': [{'type': 'function', 'name': 'automation_update', 'description': 'Create, update, view, or delete recurring automations in the Codex app. Use this when the user asks for an automation, recurring run, repeated task, reminder, follow-up, monitor, or asks you to watch something, keep an eye on it, check back later, wake up later, notify them, or keep working later. Cron automations run as standalone jobs against workspaces. Heartbeat automations are proactive follow-ups attached to the current local thread. Prefer heartbeats for requests to continue this thread later, especially below one hour. Use suggested_create or suggested_update when proposing a worktree automation with a local environment setup config so the user can review it before it is saved. Never write raw automation directives by hand, show raw RRULE strings to the user, or create a workaround cron automation for a thread heartbeat unless the user explicitly asks for that. For requests about existing automations, inspect $CODEX_HOME/automations/*/automation.toml to find matching automation ids by name or prompt. Prefer updating an existing automation over creating a duplicate. For updates, preserve existing fields unless the user asks to change them, and call automation_update with the resolved id and full updated fields.', 'strict': False, 'parameters': {'type': 'object', 'properties': {'cwds': {'description': 'Cron automations only. Workspace directories for the automation; can be a JSON array or comma-separated string.', 'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}]}, 'destination': {'type': 'string', 'description': 'Optional automation destination. Use thread for heartbeat automations attached to the current local thread.'}, 'executionEnvironment': {'type': 'string', 'description': 'One of worktree or local. Cron automations only.'}, 'id': {'type': 'string', 'description': 'Automation id. Required for mode=view, mode=update, mode=delete, and mode=suggested_update. Omit for mode=create and mode=suggested_create.'}, 'kind': {'type': 'string', 'description': 'One of cron or heartbeat. Required for create, update, suggested_create, and suggested_update. Use cron for detached workspace jobs. Use heartbeat when the user wants this thread to wake up later and continue the conversation.'}, 'localEnvironmentConfigPath': {'type': ['string', 'null'], 'description': 'Optional local environment config path for worktree setup scripts. Immediate worktree create calls with a non-null value and immediate worktree update calls that preserve or set a setup config are rejected; use suggested_create/suggested_update for user review. Pass null to clear or run without setup. Cron automations only.'}, 'mode': {'type': 'string', 'description': 'One of view, create, update, delete, suggested_create, or suggested_update. Use view to show an existing automation, create/update/delete to mutate immediately, and suggested_create/suggested_update to present a proposal for the user to review.'}, 'model': {'type': 'string', 'description': 'Model to use for cron automations.'}, 'name': {'type': 'string', 'description': 'Short human-readable automation name. If the user does not provide one, choose a concise name.'}, 'prompt': {'type': 'string', 'description': 'The automation prompt. Describe only the task itself; do not include schedule, workspace, or thread details because those are provided separately. Keep it self-sufficient, include output expectations when useful, and do not ask it to write a file or announce nothing to do unless the user explicitly asked for that.'}, 'reasoningEffort': {'type': 'string', 'description': 'Reasoning effort to use for cron automations. One of none, minimal, low, medium, high, or xhigh.'}, 'rrule': {'type': 'string', 'description': \"RRULE schedule string. Interpret requested times in the user's locale. Cron automations use hourly interval or weekly schedules. Heartbeat automations attached to a thread can use minute-based intervals such as FREQ=MINUTELY;INTERVAL=30 or daily/weekly wall-clock schedules.\"}, 'status': {'type': 'string', 'description': 'One of ACTIVE or PAUSED. Default to ACTIVE unless the user asks to start paused.'}, 'targetThreadId': {'type': 'string', 'description': 'Target thread id for heartbeat automations. Prefer destination=thread for the current local thread instead of inventing or copying raw thread ids.'}}, 'additionalProperties': False}}]}}\n {'type': 'missing', 'loc': ('body', 'tools', 11, 'ComputerTool', 'display_height'), 'msg': 'Field required', 'input': {'type': 'namespace', 'name': 'codex_app', 'description': 'Tools in the codex_app namespace.', 'tools': [{'type': 'function', 'name': 'automation_update', 'description': 'Create, update, view, or delete recurring automations in the Codex app. Use this when the user asks for an automation, recurring run, repeated task, reminder, follow-up, monitor, or asks you to watch something, keep an eye on it, check back later, wake up later, notify them, or keep working later. Cron automations run as standalone jobs against workspaces. Heartbeat automations are proactive follow-ups attached to the current local thread. Prefer heartbeats for requests to continue this thread later, especially below one hour. Use suggested_create or suggested_update when proposing a worktree automation with a local environment setup config so the user can review it before it is saved. Never write raw automation directives by hand, show raw RRULE strings to the user, or create a workaround cron automation for a thread heartbeat unless the user explicitly asks for that. For requests about existing automations, inspect $CODEX_HOME/automations/*/automation.toml to find matching automation ids by name or prompt. Prefer updating an existing automation over creating a duplicate. For updates, preserve existing fields unless the user asks to change them, and call automation_update with the resolved id and full updated fields.', 'strict': False, 'parameters': {'type': 'object', 'properties': {'cwds': {'description': 'Cron automations only. Workspace directories for the automation; can be a JSON array or comma-separated string.', 'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}]}, 'destination': {'type': 'string', 'description': 'Optional automation destination. Use thread for heartbeat automations attached to the current local thread.'}, 'executionEnvironment': {'type': 'string', 'description': 'One of worktree or local. Cron automations only.'}, 'id': {'type': 'string', 'description': 'Automation id. Required for mode=view, mode=update, mode=delete, and mode=suggested_update. Omit for mode=create and mode=suggested_create.'}, 'kind': {'type': 'string', 'description': 'One of cron or heartbeat. Required for create, update, suggested_create, and suggested_update. Use cron for detached workspace jobs. Use heartbeat when the user wants this thread to wake up later and continue the conversation.'}, 'localEnvironmentConfigPath': {'type': ['string', 'null'], 'description': 'Optional local environment config path for worktree setup scripts. Immediate worktree create calls with a non-null value and immediate worktree update calls that preserve or set a setup config are rejected; use suggested_create/suggested_update for user review. Pass null to clear or run without setup. Cron automations only.'}, 'mode': {'type': 'string', 'description': 'One of view, create, update, delete, suggested_create, or suggested_update. Use view to show an existing automation, create/update/delete to mutate immediately, and suggested_create/suggested_update to present a proposal for the user to review.'}, 'model': {'type': 'string', 'description': 'Model to use for cron automations.'}, 'name': {'type': 'string', 'description': 'Short human-readable automation name. If the user does not provide one, choose a concise name.'}, 'prompt': {'type': 'string', 'description': 'The automation prompt. Describe only the task itself; do not include schedule, workspace, or thread details because those are provided separately. Keep it self-sufficient, include output expectations when useful, and do not ask it to write a file or announce nothing to do unless the user explicitly asked for that.'}, 'reasoningEffort': {'type': 'string', 'description': 'Reasoning effort to use for cron automations. One of none, minimal, low, medium, high, or xhigh.'}, 'rrule': {'type': 'string', 'description': \"RRULE schedule string. Interpret requested times in the user's locale. Cron automations use hourly interval or weekly schedules. Heartbeat automations attached to a thread can use minute-based intervals such as FREQ=MINUTELY;INTERVAL=30 or daily/weekly wall-clock schedules.\"}, 'status': {'type': 'string', 'description': 'One of ACTIVE or PAUSED. Default to ACTIVE unless the user asks to start paused.'}, 'targetThreadId': {'type': 'string', 'description': 'Target thread id for heartbeat automations. Prefer destination=thread for the current local thread instead of inventing or copying raw thread ids.'}}, 'additionalProperties': False}}]}}\n {'type': 'missing', 'loc': ('body', 'tools', 11, 'ComputerTool', 'display_width'), 'msg': 'Field required', 'input': {'type': 'namespace', 'name': 'codex_app', 'description': 'Tools in the codex_app namespace.', 'tools': [{'type': 'function', 'name': 'automation_update', 'description': 'Create, update, view, or delete recurring automations in the Codex app. Use this when the user asks for an automation, recurring run, repeated task, reminder, follow-up, monitor, or asks you to watch something, keep an eye on it, check back later, wake up later, notify them, or keep working later. Cron automations run as standalone jobs against workspaces. Heartbeat automations are proactive follow-ups attached to the current local thread. Prefer heartbeats for requests to continue this thread later, especially below one hour. Use suggested_create or suggested_update when proposing a worktree automation with a local environment setup config so the user can review it before it is saved. Never write raw automation directives by hand, show raw RRULE strings to the user, or create a workaround cron automation for a thread heartbeat unless the user explicitly asks for that. For requests about existing automations, inspect $CODEX_HOME/automations/*/automation.toml to find matching automation ids by name or prompt. Prefer updating an existing automation over creating a duplicate. For updates, preserve existing fields unless the user asks to change them, and call automation_update with the resolved id and full updated fields.', 'strict': False, 'parameters': {'type': 'object', 'properties': {'cwds': {'description': 'Cron automations only. Workspace directories for the automation; can be a JSON array or comma-separated string.', 'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}]}, 'destination': {'type': 'string', 'description': 'Optional automation destination. Use thread for heartbeat automations attached to the current local thread.'}, 'executionEnvironment': {'type': 'string', 'description': 'One of worktree or local. Cron automations only.'}, 'id': {'type': 'string', 'description': 'Automation id. Required for mode=view, mode=update, mode=delete, and mode=suggested_update. Omit for mode=create and mode=suggested_create.'}, 'kind': {'type': 'string', 'description': 'One of cron or heartbeat. Required for create, update, suggested_create, and suggested_update. Use cron for detached workspace jobs. Use heartbeat when the user wants this thread to wake up later and continue the conversation.'}, 'localEnvironmentConfigPath': {'type': ['string', 'null'], 'description': 'Optional local environment config path for worktree setup scripts. Immediate worktree create calls with a non-null value and immediate worktree update calls that preserve or set a setup config are rejected; use suggested_create/suggested_update for user review. Pass null to clear or run without setup. Cron automations only.'}, 'mode': {'type': 'string', 'description': 'One of view, create, update, delete, suggested_create, or suggested_update. Use view to show an existing automation, create/update/delete to mutate immediately, and suggested_create/suggested_update to present a proposal for the user to review.'}, 'model': {'type': 'string', 'description': 'Model to use for cron automations.'}, 'name': {'type': 'string', 'description': 'Short human-readable automation name. If the user does not provide one, choose a concise name.'}, 'prompt': {'type': 'string', 'description': 'The automation prompt. Describe only the task itself; do not include schedule, workspace, or thread details because those are provided separately. Keep it self-sufficient, include output expectations when useful, and do not ask it to write a file or announce nothing to do unless the user explicitly asked for that.'}, 'reasoningEffort': {'type': 'string', 'description': 'Reasoning effort to use for cron automations. One of none, minimal, low, medium, high, or xhigh.'}, 'rrule': {'type': 'string', 'description': \"RRULE schedule string. Interpret requested times in the user's locale. Cron automations use hourly interval or weekly schedules. Heartbeat automations attached to a thread can use minute-based intervals such as FREQ=MINUTELY;INTERVAL=30 or daily/weekly wall-clock schedules.\"}, 'status': {'type': 'string', 'description': 'One of ACTIVE or PAUSED. Default to ACTIVE unless the user asks to start paused.'}, 'targetThreadId': {'type': 'string', 'description': 'Target thread id for heartbeat automations. Prefer destination=thread for the current local thread instead of inventing or copying raw thread ids.'}}, 'additionalProperties': False}}]}}\n {'type': 'missing', 'loc': ('body', 'tools', 11, 'ComputerTool', 'environment'), 'msg': 'Field required', 'input': {'type': 'namespace', 'name': 'codex_app', 'description': 'Tools in the codex_app namespace.', 'tools': [{'type': 'function', 'name': 'automation_update', 'description': 'Create, update, view, or delete recurring automations in the Codex app. Use this when the user asks for an automation, recurring run, repeated task, reminder, follow-up, monitor, or asks you to watch something, keep an eye on it, check back later, wake up later, notify them, or keep working later. Cron automations run as standalone jobs against workspaces. Heartbeat automations are proactive follow-ups attached to the current local thread. Prefer heartbeats for requests to continue this thread later, especially below one hour. Use suggested_create or suggested_update when proposing a worktree automation with a local environment setup config so the user can review it before it is saved. Never write raw automation directives by hand, show raw RRULE strings to the user, or create a workaround cron automation for a thread heartbeat unless the user explicitly asks for that. For requests about existing automations, inspect $CODEX_HOME/automations/*/automation.toml to find matching automation ids by name or prompt. Prefer updating an existing automation over creating a duplicate. For updates, preserve existing fields unless the user asks to change them, and call automation_update with the resolved id and full updated fields.', 'strict': False, 'parameters': {'type': 'object', 'properties': {'cwds': {'description': 'Cron automations only. Workspace directories for the automation; can be a JSON array or comma-separated string.', 'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}]}, 'destination': {'type': 'string', 'description': 'Optional automation destination. Use thread for heartbeat automations attached to the current local thread.'}, 'executionEnvironment': {'type': 'string', 'description': 'One of worktree or local. Cron automations only.'}, 'id': {'type': 'string', 'description': 'Automation id. Required for mode=view, mode=update, mode=delete, and mode=suggested_update. Omit for mode=create and mode=suggested_create.'}, 'kind': {'type': 'string', 'description': 'One of cron or heartbeat. Required for create, update, suggested_create, and suggested_update. Use cron for detached workspace jobs. Use heartbeat when the user wants this thread to wake up later and continue the conversation.'}, 'localEnvironmentConfigPath': {'type': ['string', 'null'], 'description': 'Optional local environment config path for worktree setup scripts. Immediate worktree create calls with a non-null value and immediate worktree update calls that preserve or set a setup config are rejected; use suggested_create/suggested_update for user review. Pass null to clear or run without setup. Cron automations only.'}, 'mode': {'type': 'string', 'description': 'One of view, create, update, delete, suggested_create, or suggested_update. Use view to show an existing automation, create/update/delete to mutate immediately, and suggested_create/suggested_update to present a proposal for the user to review.'}, 'model': {'type': 'string', 'description': 'Model to use for cron automations.'}, 'name': {'type': 'string', 'description': 'Short human-readable automation name. If the user does not provide one, choose a concise name.'}, 'prompt': {'type': 'string', 'description': 'The automation prompt. Describe only the task itself; do not include schedule, workspace, or thread details because those are provided separately. Keep it self-sufficient, include output expectations when useful, and do not ask it to write a file or announce nothing to do unless the user explicitly asked for that.'}, 'reasoningEffort': {'type': 'string', 'description': 'Reasoning effort to use for cron automations. One of none, minimal, low, medium, high, or xhigh.'}, 'rrule': {'type': 'string', 'description': \"RRULE schedule string. Interpret requested times in the user's locale. Cron automations use hourly interval or weekly schedules. Heartbeat automations attached to a thread can use minute-based intervals such as FREQ=MINUTELY;INTERVAL=30 or daily/weekly wall-clock schedules.\"}, 'status': {'type': 'string', 'description': 'One of ACTIVE or PAUSED. Default to ACTIVE unless the user asks to start paused.'}, 'targetThreadId': {'type': 'string', 'description': 'Target thread id for heartbeat automations. Prefer destination=thread for the current local thread instead of inventing or copying raw thread ids.'}}, 'additionalProperties': False}}]}}\n {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'ComputerTool', 'type'), 'msg': \"Input should be 'computer_use_preview'\", 'input': 'namespace', 'ctx': {'expected': \"'computer_use_preview'\"}}\n {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'WebSearchTool', 'type'), 'msg': \"Input should be 'web_search' or 'web_search_2025_08_26'\", 'input': 'namespace', 'ctx': {'expected': \"'web_search' or 'web_search_2025_08_26'\"}}\n {'type': 'missing', 'loc': ('body', 'tools', 11, 'Mcp', 'server_label'), 'msg': 'Field required', 'input': {'type': 'namespace', 'name': 'codex_app', 'description': 'Tools in the codex_app namespace.', 'tools': [{'type': 'function', 'name': 'automation_update', 'description': 'Create, update, view, or delete recurring automations in the Codex app. Use this when the user asks for an automation, recurring run, repeated task, reminder, follow-up, monitor, or asks you to watch something, keep an eye on it, check back later, wake up later, notify them, or keep working later. Cron automations run as standalone jobs against workspaces. Heartbeat automations are proactive follow-ups attached to the current local thread. Prefer heartbeats for requests to continue this thread later, especially below one hour. Use suggested_create or suggested_update when proposing a worktree automation with a local environment setup config so the user can review it before it is saved. Never write raw automation directives by hand, show raw RRULE strings to the user, or create a workaround cron automation for a thread heartbeat unless the user explicitly asks for that. For requests about existing automations, inspect $CODEX_HOME/automations/*/automation.toml to find matching automation ids by name or prompt. Prefer updating an existing automation over creating a duplicate. For updates, preserve existing fields unless the user asks to change them, and call automation_update with the resolved id and full updated fields.', 'strict': False, 'parameters': {'type': 'object', 'properties': {'cwds': {'description': 'Cron automations only. Workspace directories for the automation; can be a JSON array or comma-separated string.', 'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}]}, 'destination': {'type': 'string', 'description': 'Optional automation destination. Use thread for heartbeat automations attached to the current local thread.'}, 'executionEnvironment': {'type': 'string', 'description': 'One of worktree or local. Cron automations only.'}, 'id': {'type': 'string', 'description': 'Automation id. Required for mode=view, mode=update, mode=delete, and mode=suggested_update. Omit for mode=create and mode=suggested_create.'}, 'kind': {'type': 'string', 'description': 'One of cron or heartbeat. Required for create, update, suggested_create, and suggested_update. Use cron for detached workspace jobs. Use heartbeat when the user wants this thread to wake up later and continue the conversation.'}, 'localEnvironmentConfigPath': {'type': ['string', 'null'], 'description': 'Optional local environment config path for worktree setup scripts. Immediate worktree create calls with a non-null value and immediate worktree update calls that preserve or set a setup config are rejected; use suggested_create/suggested_update for user review. Pass null to clear or run without setup. Cron automations only.'}, 'mode': {'type': 'string', 'description': 'One of view, create, update, delete, suggested_create, or suggested_update. Use view to show an existing automation, create/update/delete to mutate immediately, and suggested_create/suggested_update to present a proposal for the user to review.'}, 'model': {'type': 'string', 'description': 'Model to use for cron automations.'}, 'name': {'type': 'string', 'description': 'Short human-readable automation name. If the user does not provide one, choose a concise name.'}, 'prompt': {'type': 'string', 'description': 'The automation prompt. Describe only the task itself; do not include schedule, workspace, or thread details because those are provided separately. Keep it self-sufficient, include output expectations when useful, and do not ask it to write a file or announce nothing to do unless the user explicitly asked for that.'}, 'reasoningEffort': {'type': 'string', 'description': 'Reasoning effort to use for cron automations. One of none, minimal, low, medium, high, or xhigh.'}, 'rrule': {'type': 'string', 'description': \"RRULE schedule string. Interpret requested times in the user's locale. Cron automations use hourly interval or weekly schedules. Heartbeat automations attached to a thread can use minute-based intervals such as FREQ=MINUTELY;INTERVAL=30 or daily/weekly wall-clock schedules.\"}, 'status': {'type': 'string', 'description': 'One of ACTIVE or PAUSED. Default to ACTIVE unless the user asks to start paused.'}, 'targetThreadId': {'type': 'string', 'description': 'Target thread id for heartbeat automations. Prefer destination=thread for the current local thread instead of inventing or copying raw thread ids.'}}, 'additionalProperties': False}}]}}\n {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'Mcp', 'type'), 'msg': \"Input should be 'mcp'\", 'input': 'namespace', 'ctx': {'expected': \"'mcp'\"}}\n {'type': 'missing', 'loc': ('body', 'tools', 11, 'CodeInterpreter', 'container'), 'msg': 'Field required', 'input': {'type': 'namespace', 'name': 'codex_app', 'description': 'Tools in the codex_app namespace.', 'tools': [{'type': 'function', 'name': 'automation_update', 'description': 'Create, update, view, or delete recurring automations in the Codex app. Use this when the user asks for an automation, recurring run, repeated task, reminder, follow-up, monitor, or asks you to watch something, keep an eye on it, check back later, wake up later, notify them, or keep working later. Cron automations run as standalone jobs against workspaces. Heartbeat automations are proactive follow-ups attached to the current local thread. Prefer heartbeats for requests to continue this thread later, especially below one hour. Use suggested_create or suggested_update when proposing a worktree automation with a local environment setup config so the user can review it before it is saved. Never write raw automation directives by hand, show raw RRULE strings to the user, or create a workaround cron automation for a thread heartbeat unless the user explicitly asks for that. For requests about existing automations, inspect $CODEX_HOME/automations/*/automation.toml to find matching automation ids by name or prompt. Prefer updating an existing automation over creating a duplicate. For updates, preserve existing fields unless the user asks to change them, and call automation_update with the resolved id and full updated fields.', 'strict': False, 'parameters': {'type': 'object', 'properties': {'cwds': {'description': 'Cron automations only. Workspace directories for the automation; can be a JSON array or comma-separated string.', 'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}]}, 'destination': {'type': 'string', 'description': 'Optional automation destination. Use thread for heartbeat automations attached to the current local thread.'}, 'executionEnvironment': {'type': 'string', 'description': 'One of worktree or local. Cron automations only.'}, 'id': {'type': 'string', 'description': 'Automation id. Required for mode=view, mode=update, mode=delete, and mode=suggested_update. Omit for mode=create and mode=suggested_create.'}, 'kind': {'type': 'string', 'description': 'One of cron or heartbeat. Required for create, update, suggested_create, and suggested_update. Use cron for detached workspace jobs. Use heartbeat when the user wants this thread to wake up later and continue the conversation.'}, 'localEnvironmentConfigPath': {'type': ['string', 'null'], 'description': 'Optional local environment config path for worktree setup scripts. Immediate worktree create calls with a non-null value and immediate worktree update calls that preserve or set a setup config are rejected; use suggested_create/suggested_update for user review. Pass null to clear or run without setup. Cron automations only.'}, 'mode': {'type': 'string', 'description': 'One of view, create, update, delete, suggested_create, or suggested_update. Use view to show an existing automation, create/update/delete to mutate immediately, and suggested_create/suggested_update to present a proposal for the user to review.'}, 'model': {'type': 'string', 'description': 'Model to use for cron automations.'}, 'name': {'type': 'string', 'description': 'Short human-readable automation name. If the user does not provide one, choose a concise name.'}, 'prompt': {'type': 'string', 'description': 'The automation prompt. Describe only the task itself; do not include schedule, workspace, or thread details because those are provided separately. Keep it self-sufficient, include output expectations when useful, and do not ask it to write a file or announce nothing to do unless the user explicitly asked for that.'}, 'reasoningEffort': {'type': 'string', 'description': 'Reasoning effort to use for cron automations. One of none, minimal, low, medium, high, or xhigh.'}, 'rrule': {'type': 'string', 'description': \"RRULE schedule string. Interpret requested times in the user's locale. Cron automations use hourly interval or weekly schedules. Heartbeat automations attached to a thread can use minute-based intervals such as FREQ=MINUTELY;INTERVAL=30 or daily/weekly wall-clock schedules.\"}, 'status': {'type': 'string', 'description': 'One of ACTIVE or PAUSED. Default to ACTIVE unless the user asks to start paused.'}, 'targetThreadId': {'type': 'string', 'description': 'Target thread id for heartbeat automations. Prefer destination=thread for the current local thread instead of inventing or copying raw thread ids.'}}, 'additionalProperties': False}}]}}\n {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'CodeInterpreter', 'type'), 'msg': \"Input should be 'code_interpreter'\", 'input': 'namespace', 'ctx': {'expected': \"'code_interpreter'\"}}\n {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'ImageGeneration', 'type'), 'msg': \"Input should be 'image_generation'\", 'input': 'namespace', 'ctx': {'expected': \"'image_generation'\"}}\n {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'LocalShell', 'type'), 'msg': \"Input should be 'local_shell'\", 'input': 'namespace', 'ctx': {'expected': \"'local_shell'\"}}\n {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'FunctionShellTool', 'type'), 'msg': \"Input should be 'shell'\", 'input': 'namespace', 'ctx': {'expected': \"'shell'\"}}\n {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'CustomTool', 'type'), 'msg': \"Input should be 'custom'\", 'input': 'namespace', 'ctx': {'expected': \"'custom'\"}}\n {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'WebSearchPreviewTool', 'type'), 'msg': \"Input should be 'web_search_preview' or 'web_search_preview_2025_03_11'\", 'input': 'namespace', 'ctx': {'expected': \"'web_search_preview' or 'web_search_preview_2025_03_11'\"}}\n {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'ApplyPatchTool', 'type'), 'msg': \"Input should be 'apply_patch'\", 'input': 'namespace', 'ctx': {'expected': \"'apply_patch'\"}}\n\n File \"/home/user/.local/lib/python3.10/site-packages/vllm/entrypoints/utils.py\", line 48, in create_responses\n POST /v1/responses [{'type': 'literal_error', 'loc': ('body', 'tools', 11, 'FunctionTool', 'type'), 'msg': \"Input should be 'function'\", 'input': 'namespace', 'ctx': {'expected': \"'function'\"}}, {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'FileSearchTool', 'type'), 'msg': \"Input should be 'file_search'\", 'input': 'namespace', 'ctx': {'expected': \"'file_search'\"}}, {'type': 'missing', 'loc': ('body', 'tools', 11, 'FileSearchTool', 'vector_store_ids'), 'msg': 'Field required', 'input': {'type': 'namespace', 'name': 'codex_app', 'description': 'Tools in the codex_app namespace.', 'tools': [{'type': 'function', 'name': 'automation_update', 'description': 'Create, update, view, or delete recurring automations in the Codex app. Use this when the user asks for an automation, recurring run, repeated task, reminder, follow-up, monitor, or asks you to watch something, keep an eye on it, check back later, wake up later, notify them, or keep working later. Cron automations run as standalone jobs against workspaces. Heartbeat automations are proactive follow-ups attached to the current local thread. Prefer heartbeats for requests to continue this thread later, especially below one hour. Use suggested_create or suggested_update when proposing a worktree automation with a local environment setup config so the user can review it before it is saved. Never write raw automation directives by hand, show raw RRULE strings to the user, or create a workaround cron automation for a thread heartbeat unless the user explicitly asks for that. For requests about existing automations, inspect $CODEX_HOME/automations/*/automation.toml to find matching automation ids by name or prompt. Prefer updating an existing automation over creating a duplicate. For updates, preserve existing fields unless the user asks to change them, and call automation_update with the resolved id and full updated fields.', 'strict': False, 'parameters': {'type': 'object', 'properties': {'cwds': {'description': 'Cron automations only. Workspace directories for the automation; can be a JSON array or comma-separated string.', 'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}]}, 'destination': {'type': 'string', 'description': 'Optional automation destination. Use thread for heartbeat automations attached to the current local thread.'}, 'executionEnvironment': {'type': 'string', 'description': 'One of worktree or local. Cron automations only.'}, 'id': {'type': 'string', 'description': 'Automation id. Required for mode=view, mode=update, mode=delete, and mode=suggested_update. Omit for mode=create and mode=suggested_create.'}, 'kind': {'type': 'string', 'description': 'One of cron or heartbeat. Required for create, update, suggested_create, and suggested_update. Use cron for detached workspace jobs. Use heartbeat when the user wants this thread to wake up later and continue the conversation.'}, 'localEnvironmentConfigPath': {'type': ['string', 'null'], 'description': 'Optional local environment config path for worktree setup scripts. Immediate worktree create calls with a non-null value and immediate worktree update calls that preserve or set a setup config are rejected; use suggested_create/suggested_update for user review. Pass null to clear or run without setup. Cron automations only.'}, 'mode': {'type': 'string', 'description': 'One of view, create, update, delete, suggested_create, or suggested_update. Use view to show an existing automation, create/update/delete to mutate immediately, and suggested_create/suggested_update to present a proposal for the user to review.'}, 'model': {'type': 'string', 'description': 'Model to use for cron automations.'}, 'name': {'type': 'string', 'description': 'Short human-readable automation name. If the user does not provide one, choose a concise name.'}, 'prompt': {'type': 'string', 'description': 'The automation prompt. Describe only the task itself; do not include schedule, workspace, or thread details because those are provided separately. Keep it self-sufficient, include output expectations when useful, and do not ask it to write a file or announce nothing to do unless the user explicitly asked for that.'}, 'reasoningEffort': {'type': 'string', 'description': 'Reasoning effort to use for cron automations. One of none, minimal, low, medium, high, or xhigh.'}, 'rrule': {'type': 'string', 'description': \"RRULE schedule string. Interpret requested times in the user's locale. Cron automations use hourly interval or weekly schedules. Heartbeat automations attached to a thread can use minute-based intervals such as FREQ=MINUTELY;INTERVAL=30 or daily/weekly wall-clock schedules.\"}, 'status': {'type': 'string', 'description': 'One of ACTIVE or PAUSED. Default to ACTIVE unless the user asks to start paused.'}, 'targetThreadId': {'type': 'string', 'description': 'Target thread id for heartbeat automations. Prefer destination=thread for the current local thread instead of inventing or copying raw thread ids.'}}, 'additionalProperties': False}}]}}, {'type': 'missing', 'loc': ('body', 'tools', 11, 'ComputerTool', 'display_height'), 'msg': 'Field required', 'input': {'type': 'namespace', 'name': 'codex_app', 'description': 'Tools in the codex_app namespace.', 'tools': [{'type': 'function', 'name': 'automation_update', 'description': 'Create, update, view, or delete recurring automations in the Codex app. Use this when the user asks for an automation, recurring run, repeated task, reminder, follow-up, monitor, or asks you to watch something, keep an eye on it, check back later, wake up later, notify them, or keep working later. Cron automations run as standalone jobs against workspaces. Heartbeat automations are proactive follow-ups attached to the current local thread. Prefer heartbeats for requests to continue this thread later, especially below one hour. Use suggested_create or suggested_update when proposing a worktree automation with a local environment setup config so the user can review it before it is saved. Never write raw automation directives by hand, show raw RRULE strings to the user, or create a workaround cron automation for a thread heartbeat unless the user explicitly asks for that. For requests about existing automations, inspect $CODEX_HOME/automations/*/automation.toml to find matching automation ids by name or prompt. Prefer updating an existing automation over creating a duplicate. For updates, preserve existing fields unless the user asks to change them, and call automation_update with the resolved id and full updated fields.', 'strict': False, 'parameters': {'type': 'object', 'properties': {'cwds': {'description': 'Cron automations only. Workspace directories for the automation; can be a JSON array or comma-separated string.', 'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}]}, 'destination': {'type': 'string', 'description': 'Optional automation destination. Use thread for heartbeat automations attached to the current local thread.'}, 'executionEnvironment': {'type': 'string', 'description': 'One of worktree or local. Cron automations only.'}, 'id': {'type': 'string', 'description': 'Automation id. Required for mode=view, mode=update, mode=delete, and mode=suggested_update. Omit for mode=create and mode=suggested_create.'}, 'kind': {'type': 'string', 'description': 'One of cron or heartbeat. Required for create, update, suggested_create, and suggested_update. Use cron for detached workspace jobs. Use heartbeat when the user wants this thread to wake up later and continue the conversation.'}, 'localEnvironmentConfigPath': {'type': ['string', 'null'], 'description': 'Optional local environment config path for worktree setup scripts. Immediate worktree create calls with a non-null value and immediate worktree update calls that preserve or set a setup config are rejected; use suggested_create/suggested_update for user review. Pass null to clear or run without setup. Cron automations only.'}, 'mode': {'type': 'string', 'description': 'One of view, create, update, delete, suggested_create, or suggested_update. Use view to show an existing automation, create/update/delete to mutate immediately, and suggested_create/suggested_update to present a proposal for the user to review.'}, 'model': {'type': 'string', 'description': 'Model to use for cron automations.'}, 'name': {'type': 'string', 'description': 'Short human-readable automation name. If the user does not provide one, choose a concise name.'}, 'prompt': {'type': 'string', 'description': 'The automation prompt. Describe only the task itself; do not include schedule, workspace, or thread details because those are provided separately. Keep it self-sufficient, include output expectations when useful, and do not ask it to write a file or announce nothing to do unless the user explicitly asked for that.'}, 'reasoningEffort': {'type': 'string', 'description': 'Reasoning effort to use for cron automations. One of none, minimal, low, medium, high, or xhigh.'}, 'rrule': {'type': 'string', 'description': \"RRULE schedule string. Interpret requested times in the user's locale. Cron automations use hourly interval or weekly schedules. Heartbeat automations attached to a thread can use minute-based intervals such as FREQ=MINUTELY;INTERVAL=30 or daily/weekly wall-clock schedules.\"}, 'status': {'type': 'string', 'description': 'One of ACTIVE or PAUSED. Default to ACTIVE unless the user asks to start paused.'}, 'targetThreadId': {'type': 'string', 'description': 'Target thread id for heartbeat automations. Prefer destination=thread for the current local thread instead of inventing or copying raw thread ids.'}}, 'additionalProperties': False}}]}}, {'type': 'missing', 'loc': ('body', 'tools', 11, 'ComputerTool', 'display_width'), 'msg': 'Field required', 'input': {'type': 'namespace', 'name': 'codex_app', 'description': 'Tools in the codex_app namespace.', 'tools': [{'type': 'function', 'name': 'automation_update', 'description': 'Create, update, view, or delete recurring automations in the Codex app. Use this when the user asks for an automation, recurring run, repeated task, reminder, follow-up, monitor, or asks you to watch something, keep an eye on it, check back later, wake up later, notify them, or keep working later. Cron automations run as standalone jobs against workspaces. Heartbeat automations are proactive follow-ups attached to the current local thread. Prefer heartbeats for requests to continue this thread later, especially below one hour. Use suggested_create or suggested_update when proposing a worktree automation with a local environment setup config so the user can review it before it is saved. Never write raw automation directives by hand, show raw RRULE strings to the user, or create a workaround cron automation for a thread heartbeat unless the user explicitly asks for that. For requests about existing automations, inspect $CODEX_HOME/automations/*/automation.toml to find matching automation ids by name or prompt. Prefer updating an existing automation over creating a duplicate. For updates, preserve existing fields unless the user asks to change them, and call automation_update with the resolved id and full updated fields.', 'strict': False, 'parameters': {'type': 'object', 'properties': {'cwds': {'description': 'Cron automations only. Workspace directories for the automation; can be a JSON array or comma-separated string.', 'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}]}, 'destination': {'type': 'string', 'description': 'Optional automation destination. Use thread for heartbeat automations attached to the current local thread.'}, 'executionEnvironment': {'type': 'string', 'description': 'One of worktree or local. Cron automations only.'}, 'id': {'type': 'string', 'description': 'Automation id. Required for mode=view, mode=update, mode=delete, and mode=suggested_update. Omit for mode=create and mode=suggested_create.'}, 'kind': {'type': 'string', 'description': 'One of cron or heartbeat. Required for create, update, suggested_create, and suggested_update. Use cron for detached workspace jobs. Use heartbeat when the user wants this thread to wake up later and continue the conversation.'}, 'localEnvironmentConfigPath': {'type': ['string', 'null'], 'description': 'Optional local environment config path for worktree setup scripts. Immediate worktree create calls with a non-null value and immediate worktree update calls that preserve or set a setup config are rejected; use suggested_create/suggested_update for user review. Pass null to clear or run without setup. Cron automations only.'}, 'mode': {'type': 'string', 'description': 'One of view, create, update, delete, suggested_create, or suggested_update. Use view to show an existing automation, create/update/delete to mutate immediately, and suggested_create/suggested_update to present a proposal for the user to review.'}, 'model': {'type': 'string', 'description': 'Model to use for cron automations.'}, 'name': {'type': 'string', 'description': 'Short human-readable automation name. If the user does not provide one, choose a concise name.'}, 'prompt': {'type': 'string', 'description': 'The automation prompt. Describe only the task itself; do not include schedule, workspace, or thread details because those are provided separately. Keep it self-sufficient, include output expectations when useful, and do not ask it to write a file or announce nothing to do unless the user explicitly asked for that.'}, 'reasoningEffort': {'type': 'string', 'description': 'Reasoning effort to use for cron automations. One of none, minimal, low, medium, high, or xhigh.'}, 'rrule': {'type': 'string', 'description': \"RRULE schedule string. Interpret requested times in the user's locale. Cron automations use hourly interval or weekly schedules. Heartbeat automations attached to a thread can use minute-based intervals such as FREQ=MINUTELY;INTERVAL=30 or daily/weekly wall-clock schedules.\"}, 'status': {'type': 'string', 'description': 'One of ACTIVE or PAUSED. Default to ACTIVE unless the user asks to start paused.'}, 'targetThreadId': {'type': 'string', 'description': 'Target thread id for heartbeat automations. Prefer destination=thread for the current local thread instead of inventing or copying raw thread ids.'}}, 'additionalProperties': False}}]}}, {'type': 'missing', 'loc': ('body', 'tools', 11, 'ComputerTool', 'environment'), 'msg': 'Field required', 'input': {'type': 'namespace', 'name': 'codex_app', 'description': 'Tools in the codex_app namespace.', 'tools': [{'type': 'function', 'name': 'automation_update', 'description': 'Create, update, view, or delete recurring automations in the Codex app. Use this when the user asks for an automation, recurring run, repeated task, reminder, follow-up, monitor, or asks you to watch something, keep an eye on it, check back later, wake up later, notify them, or keep working later. Cron automations run as standalone jobs against workspaces. Heartbeat automations are proactive follow-ups attached to the current local thread. Prefer heartbeats for requests to continue this thread later, especially below one hour. Use suggested_create or suggested_update when proposing a worktree automation with a local environment setup config so the user can review it before it is saved. Never write raw automation directives by hand, show raw RRULE strings to the user, or create a workaround cron automation for a thread heartbeat unless the user explicitly asks for that. For requests about existing automations, inspect $CODEX_HOME/automations/*/automation.toml to find matching automation ids by name or prompt. Prefer updating an existing automation over creating a duplicate. For updates, preserve existing fields unless the user asks to change them, and call automation_update with the resolved id and full updated fields.', 'strict': False, 'parameters': {'type': 'object', 'properties': {'cwds': {'description': 'Cron automations only. Workspace directories for the automation; can be a JSON array or comma-separated string.', 'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}]}, 'destination': {'type': 'string', 'description': 'Optional automation destination. Use thread for heartbeat automations attached to the current local thread.'}, 'executionEnvironment': {'type': 'string', 'description': 'One of worktree or local. Cron automations only.'}, 'id': {'type': 'string', 'description': 'Automation id. Required for mode=view, mode=update, mode=delete, and mode=suggested_update. Omit for mode=create and mode=suggested_create.'}, 'kind': {'type': 'string', 'description': 'One of cron or heartbeat. Required for create, update, suggested_create, and suggested_update. Use cron for detached workspace jobs. Use heartbeat when the user wants this thread to wake up later and continue the conversation.'}, 'localEnvironmentConfigPath': {'type': ['string', 'null'], 'description': 'Optional local environment config path for worktree setup scripts. Immediate worktree create calls with a non-null value and immediate worktree update calls that preserve or set a setup config are rejected; use suggested_create/suggested_update for user review. Pass null to clear or run without setup. Cron automations only.'}, 'mode': {'type': 'string', 'description': 'One of view, create, update, delete, suggested_create, or suggested_update. Use view to show an existing automation, create/update/delete to mutate immediately, and suggested_create/suggested_update to present a proposal for the user to review.'}, 'model': {'type': 'string', 'description': 'Model to use for cron automations.'}, 'name': {'type': 'string', 'description': 'Short human-readable automation name. If the user does not provide one, choose a concise name.'}, 'prompt': {'type': 'string', 'description': 'The automation prompt. Describe only the task itself; do not include schedule, workspace, or thread details because those are provided separately. Keep it self-sufficient, include output expectations when useful, and do not ask it to write a file or announce nothing to do unless the user explicitly asked for that.'}, 'reasoningEffort': {'type': 'string', 'description': 'Reasoning effort to use for cron automations. One of none, minimal, low, medium, high, or xhigh.'}, 'rrule': {'type': 'string', 'description': \"RRULE schedule string. Interpret requested times in the user's locale. Cron automations use hourly interval or weekly schedules. Heartbeat automations attached to a thread can use minute-based intervals such as FREQ=MINUTELY;INTERVAL=30 or daily/weekly wall-clock schedules.\"}, 'status': {'type': 'string', 'description': 'One of ACTIVE or PAUSED. Default to ACTIVE unless the user asks to start paused.'}, 'targetThreadId': {'type': 'string', 'description': 'Target thread id for heartbeat automations. Prefer destination=thread for the current local thread instead of inventing or copying raw thread ids.'}}, 'additionalProperties': False}}]}}, {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'ComputerTool', 'type'), 'msg': \"Input should be 'computer_use_preview'\", 'input': 'namespace', 'ctx': {'expected': \"'computer_use_preview'\"}}, {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'WebSearchTool', 'type'), 'msg': \"Input should be 'web_search' or 'web_search_2025_08_26'\", 'input': 'namespace', 'ctx': {'expected': \"'web_search' or 'web_search_2025_08_26'\"}}, {'type': 'missing', 'loc': ('body', 'tools', 11, 'Mcp', 'server_label'), 'msg': 'Field required', 'input': {'type': 'namespace', 'name': 'codex_app', 'description': 'Tools in the codex_app namespace.', 'tools': [{'type': 'function', 'name': 'automation_update', 'description': 'Create, update, view, or delete recurring automations in the Codex app. Use this when the user asks for an automation, recurring run, repeated task, reminder, follow-up, monitor, or asks you to watch something, keep an eye on it, check back later, wake up later, notify them, or keep working later. Cron automations run as standalone jobs against workspaces. Heartbeat automations are proactive follow-ups attached to the current local thread. Prefer heartbeats for requests to continue this thread later, especially below one hour. Use suggested_create or suggested_update when proposing a worktree automation with a local environment setup config so the user can review it before it is saved. Never write raw automation directives by hand, show raw RRULE strings to the user, or create a workaround cron automation for a thread heartbeat unless the user explicitly asks for that. For requests about existing automations, inspect $CODEX_HOME/automations/*/automation.toml to find matching automation ids by name or prompt. Prefer updating an existing automation over creating a duplicate. For updates, preserve existing fields unless the user asks to change them, and call automation_update with the resolved id and full updated fields.', 'strict': False, 'parameters': {'type': 'object', 'properties': {'cwds': {'description': 'Cron automations only. Workspace directories for the automation; can be a JSON array or comma-separated string.', 'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}]}, 'destination': {'type': 'string', 'description': 'Optional automation destination. Use thread for heartbeat automations attached to the current local thread.'}, 'executionEnvironment': {'type': 'string', 'description': 'One of worktree or local. Cron automations only.'}, 'id': {'type': 'string', 'description': 'Automation id. Required for mode=view, mode=update, mode=delete, and mode=suggested_update. Omit for mode=create and mode=suggested_create.'}, 'kind': {'type': 'string', 'description': 'One of cron or heartbeat. Required for create, update, suggested_create, and suggested_update. Use cron for detached workspace jobs. Use heartbeat when the user wants this thread to wake up later and continue the conversation.'}, 'localEnvironmentConfigPath': {'type': ['string', 'null'], 'description': 'Optional local environment config path for worktree setup scripts. Immediate worktree create calls with a non-null value and immediate worktree update calls that preserve or set a setup config are rejected; use suggested_create/suggested_update for user review. Pass null to clear or run without setup. Cron automations only.'}, 'mode': {'type': 'string', 'description': 'One of view, create, update, delete, suggested_create, or suggested_update. Use view to show an existing automation, create/update/delete to mutate immediately, and suggested_create/suggested_update to present a proposal for the user to review.'}, 'model': {'type': 'string', 'description': 'Model to use for cron automations.'}, 'name': {'type': 'string', 'description': 'Short human-readable automation name. If the user does not provide one, choose a concise name.'}, 'prompt': {'type': 'string', 'description': 'The automation prompt. Describe only the task itself; do not include schedule, workspace, or thread details because those are provided separately. Keep it self-sufficient, include output expectations when useful, and do not ask it to write a file or announce nothing to do unless the user explicitly asked for that.'}, 'reasoningEffort': {'type': 'string', 'description': 'Reasoning effort to use for cron automations. One of none, minimal, low, medium, high, or xhigh.'}, 'rrule': {'type': 'string', 'description': \"RRULE schedule string. Interpret requested times in the user's locale. Cron automations use hourly interval or weekly schedules. Heartbeat automations attached to a thread can use minute-based intervals such as FREQ=MINUTELY;INTERVAL=30 or daily/weekly wall-clock schedules.\"}, 'status': {'type': 'string', 'description': 'One of ACTIVE or PAUSED. Default to ACTIVE unless the user asks to start paused.'}, 'targetThreadId': {'type': 'string', 'description': 'Target thread id for heartbeat automations. Prefer destination=thread for the current local thread instead of inventing or copying raw thread ids.'}}, 'additionalProperties': False}}]}}, {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'Mcp', 'type'), 'msg': \"Input should be 'mcp'\", 'input': 'namespace', 'ctx': {'expected': \"'mcp'\"}}, {'type': 'missing', 'loc': ('body', 'tools', 11, 'CodeInterpreter', 'container'), 'msg': 'Field required', 'input': {'type': 'namespace', 'name': 'codex_app', 'description': 'Tools in the codex_app namespace.', 'tools': [{'type': 'function', 'name': 'automation_update', 'description': 'Create, update, view, or delete recurring automations in the Codex app. Use this when the user asks for an automation, recurring run, repeated task, reminder, follow-up, monitor, or asks you to watch something, keep an eye on it, check back later, wake up later, notify them, or keep working later. Cron automations run as standalone jobs against workspaces. Heartbeat automations are proactive follow-ups attached to the current local thread. Prefer heartbeats for requests to continue this thread later, especially below one hour. Use suggested_create or suggested_update when proposing a worktree automation with a local environment setup config so the user can review it before it is saved. Never write raw automation directives by hand, show raw RRULE strings to the user, or create a workaround cron automation for a thread heartbeat unless the user explicitly asks for that. For requests about existing automations, inspect $CODEX_HOME/automations/*/automation.toml to find matching automation ids by name or prompt. Prefer updating an existing automation over creating a duplicate. For updates, preserve existing fields unless the user asks to change them, and call automation_update with the resolved id and full updated fields.', 'strict': False, 'parameters': {'type': 'object', 'properties': {'cwds': {'description': 'Cron automations only. Workspace directories for the automation; can be a JSON array or comma-separated string.', 'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}]}, 'destination': {'type': 'string', 'description': 'Optional automation destination. Use thread for heartbeat automations attached to the current local thread.'}, 'executionEnvironment': {'type': 'string', 'description': 'One of worktree or local. Cron automations only.'}, 'id': {'type': 'string', 'description': 'Automation id. Required for mode=view, mode=update, mode=delete, and mode=suggested_update. Omit for mode=create and mode=suggested_create.'}, 'kind': {'type': 'string', 'description': 'One of cron or heartbeat. Required for create, update, suggested_create, and suggested_update. Use cron for detached workspace jobs. Use heartbeat when the user wants this thread to wake up later and continue the conversation.'}, 'localEnvironmentConfigPath': {'type': ['string', 'null'], 'description': 'Optional local environment config path for worktree setup scripts. Immediate worktree create calls with a non-null value and immediate worktree update calls that preserve or set a setup config are rejected; use suggested_create/suggested_update for user review. Pass null to clear or run without setup. Cron automations only.'}, 'mode': {'type': 'string', 'description': 'One of view, create, update, delete, suggested_create, or suggested_update. Use view to show an existing automation, create/update/delete to mutate immediately, and suggested_create/suggested_update to present a proposal for the user to review.'}, 'model': {'type': 'string', 'description': 'Model to use for cron automations.'}, 'name': {'type': 'string', 'description': 'Short human-readable automation name. If the user does not provide one, choose a concise name.'}, 'prompt': {'type': 'string', 'description': 'The automation prompt. Describe only the task itself; do not include schedule, workspace, or thread details because those are provided separately. Keep it self-sufficient, include output expectations when useful, and do not ask it to write a file or announce nothing to do unless the user explicitly asked for that.'}, 'reasoningEffort': {'type': 'string', 'description': 'Reasoning effort to use for cron automations. One of none, minimal, low, medium, high, or xhigh.'}, 'rrule': {'type': 'string', 'description': \"RRULE schedule string. Interpret requested times in the user's locale. Cron automations use hourly interval or weekly schedules. Heartbeat automations attached to a thread can use minute-based intervals such as FREQ=MINUTELY;INTERVAL=30 or daily/weekly wall-clock schedules.\"}, 'status': {'type': 'string', 'description': 'One of ACTIVE or PAUSED. Default to ACTIVE unless the user asks to start paused.'}, 'targetThreadId': {'type': 'string', 'description': 'Target thread id for heartbeat automations. Prefer destination=thread for the current local thread instead of inventing or copying raw thread ids.'}}, 'additionalProperties': False}}]}}, {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'CodeInterpreter', 'type'), 'msg': \"Input should be 'code_interpreter'\", 'input': 'namespace', 'ctx': {'expected': \"'code_interpreter'\"}}, {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'ImageGeneration', 'type'), 'msg': \"Input should be 'image_generation'\", 'input': 'namespace', 'ctx': {'expected': \"'image_generation'\"}}, {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'LocalShell', 'type'), 'msg': \"Input should be 'local_shell'\", 'input': 'namespace', 'ctx': {'expected': \"'local_shell'\"}}, {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'FunctionShellTool', 'type'), 'msg': \"Input should be 'shell'\", 'input': 'namespace', 'ctx': {'expected': \"'shell'\"}}, {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'CustomTool', 'type'), 'msg': \"Input should be 'custom'\", 'input': 'namespace', 'ctx': {'expected': \"'custom'\"}}, {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'WebSearchPreviewTool', 'type'), 'msg': \"Input should be 'web_search_preview' or 'web_search_preview_2025_03_11'\", 'input': 'namespace', 'ctx': {'expected': \"'web_search_preview' or 'web_search_preview_2025_03_11'\"}}, {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'ApplyPatchTool', 'type'), 'msg': \"Input should be 'apply_patch'\", 'input': 'namespace', 'ctx': {'expected': \"'apply_patch'\"}}]","type":"Bad Request","param":null,"code":400}}

Fix Action

Fix / Workaround

{"error":{"message":"18 validation errors:\n {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'FunctionTool', 'type'), 'msg': \"Input should be 'function'\", 'input': 'namespace', 'ctx': {'expected': \"'function'\"}}\n {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'FileSearchTool', 'type'), 'msg': \"Input should be 'file_search'\", 'input': 'namespace', 'ctx': {'expected': \"'file_search'\"}}\n {'type': 'missing', 'loc': ('body', 'tools', 11, 'FileSearchTool', 'vector_store_ids'), 'msg': 'Field required', 'input': {'type': 'namespace', 'name': 'codex_app', 'description': 'Tools in the codex_app namespace.', 'tools': [{'type': 'function', 'name': 'automation_update', 'description': 'Create, update, view, or delete recurring automations in the Codex app. Use this when the user asks for an automation, recurring run, repeated task, reminder, follow-up, monitor, or asks you to watch something, keep an eye on it, check back later, wake up later, notify them, or keep working later. Cron automations run as standalone jobs against workspaces. Heartbeat automations are proactive follow-ups attached to the current local thread. Prefer heartbeats for requests to continue this thread later, especially below one hour. Use suggested_create or suggested_update when proposing a worktree automation with a local environment setup config so the user can review it before it is saved. Never write raw automation directives by hand, show raw RRULE strings to the user, or create a workaround cron automation for a thread heartbeat unless the user explicitly asks for that. For requests about existing automations, inspect $CODEX_HOME/automations/*/automation.toml to find matching automation ids by name or prompt. Prefer updating an existing automation over creating a duplicate. For updates, preserve existing fields unless the user asks to change them, and call automation_update with the resolved id and full updated fields.', 'strict': False, 'parameters': {'type': 'object', 'properties': {'cwds': {'description': 'Cron automations only. Workspace directories for the automation; can be a JSON array or comma-separated string.', 'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}]}, 'destination': {'type': 'string', 'description': 'Optional automation destination. Use thread for heartbeat automations attached to the current local thread.'}, 'executionEnvironment': {'type': 'string', 'description': 'One of worktree or local. Cron automations only.'}, 'id': {'type': 'string', 'description': 'Automation id. Required for mode=view, mode=update, mode=delete, and mode=suggested_update. Omit for mode=create and mode=suggested_create.'}, 'kind': {'type': 'string', 'description': 'One of cron or heartbeat. Required for create, update, suggested_create, and suggested_update. Use cron for detached workspace jobs. Use heartbeat when the user wants this thread to wake up later and continue the conversation.'}, 'localEnvironmentConfigPath': {'type': ['string', 'null'], 'description': 'Optional local environment config path for worktree setup scripts. Immediate worktree create calls with a non-null value and immediate worktree update calls that preserve or set a setup config are rejected; use suggested_create/suggested_update for user review. Pass null to clear or run without setup. Cron automations only.'}, 'mode': {'type': 'string', 'description': 'One of view, create, update, delete, suggested_create, or suggested_update. Use view to show an existing automation, create/update/delete to mutate immediately, and suggested_create/suggested_update to present a proposal for the user to review.'}, 'model': {'type': 'string', 'description': 'Model to use for cron automations.'}, 'name': {'type': 'string', 'description': 'Short human-readable automation name. If the user does not provide one, choose a concise name.'}, 'prompt': {'type': 'string', 'description': 'The automation prompt. Describe only the task itself; do not include schedule, workspace, or thread details because those are provided separately. Keep it self-sufficient, include output expectations when useful, and do not ask it to write a file or announce nothing to do unless the user explicitly asked for that.'}, 'reasoningEffort': {'type': 'string', 'description': 'Reasoning effort to use for cron automations. One of none, minimal, low, medium, high, or xhigh.'}, 'rrule': {'type': 'string', 'description': \"RRULE schedule string. Interpret requested times in the user's locale. Cron automations use hourly interval or weekly schedules. Heartbeat automations attached to a thread can use minute-based intervals such as FREQ=MINUTELY;INTERVAL=30 or daily/weekly wall-clock schedules.\"}, 'status': {'type': 'string', 'description': 'One of ACTIVE or PAUSED. Default to ACTIVE unless the user asks to start paused.'}, 'targetThreadId': {'type': 'string', 'description': 'Target thread id for heartbeat automations. Prefer destination=thread for the current local thread instead of inventing or copying raw thread ids.'}}, 'additionalProperties': False}}]}}\n {'type': 'missing', 'loc': ('body', 'tools', 11, 'ComputerTool', 'display_height'), 'msg': 'Field required', 'input': {'type': 'namespace', 'name': 'codex_app', 'description': 'Tools in the codex_app namespace.', 'tools': [{'type': 'function', 'name': 'automation_update', 'description': 'Create, update, view, or delete recurring automations in the Codex app. Use this when the user asks for an automation, recurring run, repeated task, reminder, follow-up, monitor, or asks you to watch something, keep an eye on it, check back later, wake up later, notify them, or keep working later. Cron automations run as standalone jobs against workspaces. Heartbeat automations are proactive follow-ups attached to the current local thread. Prefer heartbeats for requests to continue this thread later, especially below one hour. Use suggested_create or suggested_update when proposing a worktree automation with a local environment setup config so the user can review it before it is saved. Never write raw automation directives by hand, show raw RRULE strings to the user, or create a workaround cron automation for a thread heartbeat unless the user explicitly asks for that. For requests about existing automations, inspect $CODEX_HOME/automations/*/automation.toml to find matching automation ids by name or prompt. Prefer updating an existing automation over creating a duplicate. For updates, preserve existing fields unless the user asks to change them, and call automation_update with the resolved id and full updated fields.', 'strict': False, 'parameters': {'type': 'object', 'properties': {'cwds': {'description': 'Cron automations only. Workspace directories for the automation; can be a JSON array or comma-separated string.', 'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}]}, 'destination': {'type': 'string', 'description': 'Optional automation destination. Use thread for heartbeat automations attached to the current local thread.'}, 'executionEnvironment': {'type': 'string', 'description': 'One of worktree or local. Cron automations only.'}, 'id': {'type': 'string', 'description': 'Automation id. Required for mode=view, mode=update, mode=delete, and mode=suggested_update. Omit for mode=create and mode=suggested_create.'}, 'kind': {'type': 'string', 'description': 'One of cron or heartbeat. Required for create, update, suggested_create, and suggested_update. Use cron for detached workspace jobs. Use heartbeat when the user wants this thread to wake up later and continue the conversation.'}, 'localEnvironmentConfigPath': {'type': ['string', 'null'], 'description': 'Optional local environment config path for worktree setup scripts. Immediate worktree create calls with a non-null value and immediate worktree update calls that preserve or set a setup config are rejected; use suggested_create/suggested_update for user review. Pass null to clear or run without setup. Cron automations only.'}, 'mode': {'type': 'string', 'description': 'One of view, create, update, delete, suggested_create, or suggested_update. Use view to show an existing automation, create/update/delete to mutate immediately, and suggested_create/suggested_update to present a proposal for the user to review.'}, 'model': {'type': 'string', 'description': 'Model to use for cron automations.'}, 'name': {'type': 'string', 'description': 'Short human-readable automation name. If the user does not provide one, choose a concise name.'}, 'prompt': {'type': 'string', 'description': 'The automation prompt. Describe only the task itself; do not include schedule, workspace, or thread details because those are provided separately. Keep it self-sufficient, include output expectations when useful, and do not ask it to write a file or announce nothing to do unless the user explicitly asked for that.'}, 'reasoningEffort': {'type': 'string', 'description': 'Reasoning effort to use for cron automations. One of none, minimal, low, medium, high, or xhigh.'}, 'rrule': {'type': 'string', 'description': \"RRULE schedule string. Interpret requested times in the user's locale. Cron automations use hourly interval or weekly schedules. Heartbeat automations attached to a thread can use minute-based intervals such as FREQ=MINUTELY;INTERVAL=30 or daily/weekly wall-clock schedules.\"}, 'status': {'type': 'string', 'description': 'One of ACTIVE or PAUSED. Default to ACTIVE unless the user asks to start paused.'}, 'targetThreadId': {'type': 'string', 'description': 'Target thread id for heartbeat automations. Prefer destination=thread for the current local thread instead of inventing or copying raw thread ids.'}}, 'additionalProperties': False}}]}}\n {'type': 'missing', 'loc': ('body', 'tools', 11, 'ComputerTool', 'display_width'), 'msg': 'Field required', 'input': {'type': 'namespace', 'name': 'codex_app', 'description': 'Tools in the codex_app namespace.', 'tools': [{'type': 'function', 'name': 'automation_update', 'description': 'Create, update, view, or delete recurring automations in the Codex app. Use this when the user asks for an automation, recurring run, repeated task, reminder, follow-up, monitor, or asks you to watch something, keep an eye on it, check back later, wake up later, notify them, or keep working later. Cron automations run as standalone jobs against workspaces. Heartbeat automations are proactive follow-ups attached to the current local thread. Prefer heartbeats for requests to continue this thread later, especially below one hour. Use suggested_create or suggested_update when proposing a worktree automation with a local environment setup config so the user can review it before it is saved. Never write raw automation directives by hand, show raw RRULE strings to the user, or create a workaround cron automation for a thread heartbeat unless the user explicitly asks for that. For requests about existing automations, inspect $CODEX_HOME/automations/*/automation.toml to find matching automation ids by name or prompt. Prefer updating an existing automation over creating a duplicate. For updates, preserve existing fields unless the user asks to change them, and call automation_update with the resolved id and full updated fields.', 'strict': False, 'parameters': {'type': 'object', 'properties': {'cwds': {'description': 'Cron automations only. Workspace directories for the automation; can be a JSON array or comma-separated string.', 'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}]}, 'destination': {'type': 'string', 'description': 'Optional automation destination. Use thread for heartbeat automations attached to the current local thread.'}, 'executionEnvironment': {'type': 'string', 'description': 'One of worktree or local. Cron automations only.'}, 'id': {'type': 'string', 'description': 'Automation id. Required for mode=view, mode=update, mode=delete, and mode=suggested_update. Omit for mode=create and mode=suggested_create.'}, 'kind': {'type': 'string', 'description': 'One of cron or heartbeat. Required for create, update, suggested_create, and suggested_update. Use cron for detached workspace jobs. Use heartbeat when the user wants this thread to wake up later and continue the conversation.'}, 'localEnvironmentConfigPath': {'type': ['string', 'null'], 'description': 'Optional local environment config path for worktree setup scripts. Immediate worktree create calls with a non-null value and immediate worktree update calls that preserve or set a setup config are rejected; use suggested_create/suggested_update for user review. Pass null to clear or run without setup. Cron automations only.'}, 'mode': {'type': 'string', 'description': 'One of view, create, update, delete, suggested_create, or suggested_update. Use view to show an existing automation, create/update/delete to mutate immediately, and suggested_create/suggested_update to present a proposal for the user to review.'}, 'model': {'type': 'string', 'description': 'Model to use for cron automations.'}, 'name': {'type': 'string', 'description': 'Short human-readable automation name. If the user does not provide one, choose a concise name.'}, 'prompt': {'type': 'string', 'description': 'The automation prompt. Describe only the task itself; do not include schedule, workspace, or thread details because those are provided separately. Keep it self-sufficient, include output expectations when useful, and do not ask it to write a file or announce nothing to do unless the user explicitly asked for that.'}, 'reasoningEffort': {'type': 'string', 'description': 'Reasoning effort to use for cron automations. One of none, minimal, low, medium, high, or xhigh.'}, 'rrule': {'type': 'string', 'description': \"RRULE schedule string. Interpret requested times in the user's locale. Cron automations use hourly interval or weekly schedules. Heartbeat automations attached to a thread can use minute-based intervals such as FREQ=MINUTELY;INTERVAL=30 or daily/weekly wall-clock schedules.\"}, 'status': {'type': 'string', 'description': 'One of ACTIVE or PAUSED. Default to ACTIVE unless the user asks to start paused.'}, 'targetThreadId': {'type': 'string', 'description': 'Target thread id for heartbeat automations. Prefer destination=thread for the current local thread instead of inventing or copying raw thread ids.'}}, 'additionalProperties': False}}]}}\n {'type': 'missing', 'loc': ('body', 'tools', 11, 'ComputerTool', 'environment'), 'msg': 'Field required', 'input': {'type': 'namespace', 'name': 'codex_app', 'description': 'Tools in the codex_app namespace.', 'tools': [{'type': 'function', 'name': 'automation_update', 'description': 'Create, update, view, or delete recurring automations in the Codex app. Use this when the user asks for an automation, recurring run, repeated task, reminder, follow-up, monitor, or asks you to watch something, keep an eye on it, check back later, wake up later, notify them, or keep working later. Cron automations run as standalone jobs against workspaces. Heartbeat automations are proactive follow-ups attached to the current local thread. Prefer heartbeats for requests to continue this thread later, especially below one hour. Use suggested_create or suggested_update when proposing a worktree automation with a local environment setup config so the user can review it before it is saved. Never write raw automation directives by hand, show raw RRULE strings to the user, or create a workaround cron automation for a thread heartbeat unless the user explicitly asks for that. For requests about existing automations, inspect $CODEX_HOME/automations/*/automation.toml to find matching automation ids by name or prompt. Prefer updating an existing automation over creating a duplicate. For updates, preserve existing fields unless the user asks to change them, and call automation_update with the resolved id and full updated fields.', 'strict': False, 'parameters': {'type': 'object', 'properties': {'cwds': {'description': 'Cron automations only. Workspace directories for the automation; can be a JSON array or comma-separated string.', 'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}]}, 'destination': {'type': 'string', 'description': 'Optional automation destination. Use thread for heartbeat automations attached to the current local thread.'}, 'executionEnvironment': {'type': 'string', 'description': 'One of worktree or local. Cron automations only.'}, 'id': {'type': 'string', 'description': 'Automation id. Required for mode=view, mode=update, mode=delete, and mode=suggested_update. Omit for mode=create and mode=suggested_create.'}, 'kind': {'type': 'string', 'description': 'One of cron or heartbeat. Required for create, update, suggested_create, and suggested_update. Use cron for detached workspace jobs. Use heartbeat when the user wants this thread to wake up later and continue the conversation.'}, 'localEnvironmentConfigPath': {'type': ['string', 'null'], 'description': 'Optional local environment config path for worktree setup scripts. Immediate worktree create calls with a non-null value and immediate worktree update calls that preserve or set a setup config are rejected; use suggested_create/suggested_update for user review. Pass null to clear or run without setup. Cron automations only.'}, 'mode': {'type': 'string', 'description': 'One of view, create, update, delete, suggested_create, or suggested_update. Use view to show an existing automation, create/update/delete to mutate immediately, and suggested_create/suggested_update to present a proposal for the user to review.'}, 'model': {'type': 'string', 'description': 'Model to use for cron automations.'}, 'name': {'type': 'string', 'description': 'Short human-readable automation name. If the user does not provide one, choose a concise name.'}, 'prompt': {'type': 'string', 'description': 'The automation prompt. Describe only the task itself; do not include schedule, workspace, or thread details because those are provided separately. Keep it self-sufficient, include output expectations when useful, and do not ask it to write a file or announce nothing to do unless the user explicitly asked for that.'}, 'reasoningEffort': {'type': 'string', 'description': 'Reasoning effort to use for cron automations. One of none, minimal, low, medium, high, or xhigh.'}, 'rrule': {'type': 'string', 'description': \"RRULE schedule string. Interpret requested times in the user's locale. Cron automations use hourly interval or weekly schedules. Heartbeat automations attached to a thread can use minute-based intervals such as FREQ=MINUTELY;INTERVAL=30 or daily/weekly wall-clock schedules.\"}, 'status': {'type': 'string', 'description': 'One of ACTIVE or PAUSED. Default to ACTIVE unless the user asks to start paused.'}, 'targetThreadId': {'type': 'string', 'description': 'Target thread id for heartbeat automations. Prefer destination=thread for the current local thread instead of inventing or copying raw thread ids.'}}, 'additionalProperties': False}}]}}\n {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'ComputerTool', 'type'), 'msg': \"Input should be 'computer_use_preview'\", 'input': 'namespace', 'ctx': {'expected': \"'computer_use_preview'\"}}\n {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'WebSearchTool', 'type'), 'msg': \"Input should be 'web_search' or 'web_search_2025_08_26'\", 'input': 'namespace', 'ctx': {'expected': \"'web_search' or 'web_search_2025_08_26'\"}}\n {'type': 'missing', 'loc': ('body', 'tools', 11, 'Mcp', 'server_label'), 'msg': 'Field required', 'input': {'type': 'namespace', 'name': 'codex_app', 'description': 'Tools in the codex_app namespace.', 'tools': [{'type': 'function', 'name': 'automation_update', 'description': 'Create, update, view, or delete recurring automations in the Codex app. Use this when the user asks for an automation, recurring run, repeated task, reminder, follow-up, monitor, or asks you to watch something, keep an eye on it, check back later, wake up later, notify them, or keep working later. Cron automations run as standalone jobs against workspaces. Heartbeat automations are proactive follow-ups attached to the current local thread. Prefer heartbeats for requests to continue this thread later, especially below one hour. Use suggested_create or suggested_update when proposing a worktree automation with a local environment setup config so the user can review it before it is saved. Never write raw automation directives by hand, show raw RRULE strings to the user, or create a workaround cron automation for a thread heartbeat unless the user explicitly asks for that. For requests about existing automations, inspect $CODEX_HOME/automations/*/automation.toml to find matching automation ids by name or prompt. Prefer updating an existing automation over creating a duplicate. For updates, preserve existing fields unless the user asks to change them, and call automation_update with the resolved id and full updated fields.', 'strict': False, 'parameters': {'type': 'object', 'properties': {'cwds': {'description': 'Cron automations only. Workspace directories for the automation; can be a JSON array or comma-separated string.', 'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}]}, 'destination': {'type': 'string', 'description': 'Optional automation destination. Use thread for heartbeat automations attached to the current local thread.'}, 'executionEnvironment': {'type': 'string', 'description': 'One of worktree or local. Cron automations only.'}, 'id': {'type': 'string', 'description': 'Automation id. Required for mode=view, mode=update, mode=delete, and mode=suggested_update. Omit for mode=create and mode=suggested_create.'}, 'kind': {'type': 'string', 'description': 'One of cron or heartbeat. Required for create, update, suggested_create, and suggested_update. Use cron for detached workspace jobs. Use heartbeat when the user wants this thread to wake up later and continue the conversation.'}, 'localEnvironmentConfigPath': {'type': ['string', 'null'], 'description': 'Optional local environment config path for worktree setup scripts. Immediate worktree create calls with a non-null value and immediate worktree update calls that preserve or set a setup config are rejected; use suggested_create/suggested_update for user review. Pass null to clear or run without setup. Cron automations only.'}, 'mode': {'type': 'string', 'description': 'One of view, create, update, delete, suggested_create, or suggested_update. Use view to show an existing automation, create/update/delete to mutate immediately, and suggested_create/suggested_update to present a proposal for the user to review.'}, 'model': {'type': 'string', 'description': 'Model to use for cron automations.'}, 'name': {'type': 'string', 'description': 'Short human-readable automation name. If the user does not provide one, choose a concise name.'}, 'prompt': {'type': 'string', 'description': 'The automation prompt. Describe only the task itself; do not include schedule, workspace, or thread details because those are provided separately. Keep it self-sufficient, include output expectations when useful, and do not ask it to write a file or announce nothing to do unless the user explicitly asked for that.'}, 'reasoningEffort': {'type': 'string', 'description': 'Reasoning effort to use for cron automations. One of none, minimal, low, medium, high, or xhigh.'}, 'rrule': {'type': 'string', 'description': \"RRULE schedule string. Interpret requested times in the user's locale. Cron automations use hourly interval or weekly schedules. Heartbeat automations attached to a thread can use minute-based intervals such as FREQ=MINUTELY;INTERVAL=30 or daily/weekly wall-clock schedules.\"}, 'status': {'type': 'string', 'description': 'One of ACTIVE or PAUSED. Default to ACTIVE unless the user asks to start paused.'}, 'targetThreadId': {'type': 'string', 'description': 'Target thread id for heartbeat automations. Prefer destination=thread for the current local thread instead of inventing or copying raw thread ids.'}}, 'additionalProperties': False}}]}}\n {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'Mcp', 'type'), 'msg': \"Input should be 'mcp'\", 'input': 'namespace', 'ctx': {'expected': \"'mcp'\"}}\n {'type': 'missing', 'loc': ('body', 'tools', 11, 'CodeInterpreter', 'container'), 'msg': 'Field required', 'input': {'type': 'namespace', 'name': 'codex_app', 'description': 'Tools in the codex_app namespace.', 'tools': [{'type': 'function', 'name': 'automation_update', 'description': 'Create, update, view, or delete recurring automations in the Codex app. Use this when the user asks for an automation, recurring run, repeated task, reminder, follow-up, monitor, or asks you to watch something, keep an eye on it, check back later, wake up later, notify them, or keep working later. Cron automations run as standalone jobs against workspaces. Heartbeat automations are proactive follow-ups attached to the current local thread. Prefer heartbeats for requests to continue this thread later, especially below one hour. Use suggested_create or suggested_update when proposing a worktree automation with a local environment setup config so the user can review it before it is saved. Never write raw automation directives by hand, show raw RRULE strings to the user, or create a workaround cron automation for a thread heartbeat unless the user explicitly asks for that. For requests about existing automations, inspect $CODEX_HOME/automations/*/automation.toml to find matching automation ids by name or prompt. Prefer updating an existing automation over creating a duplicate. For updates, preserve existing fields unless the user asks to change them, and call automation_update with the resolved id and full updated fields.', 'strict': False, 'parameters': {'type': 'object', 'properties': {'cwds': {'description': 'Cron automations only. Workspace directories for the automation; can be a JSON array or comma-separated string.', 'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}]}, 'destination': {'type': 'string', 'description': 'Optional automation destination. Use thread for heartbeat automations attached to the current local thread.'}, 'executionEnvironment': {'type': 'string', 'description': 'One of worktree or local. Cron automations only.'}, 'id': {'type': 'string', 'description': 'Automation id. Required for mode=view, mode=update, mode=delete, and mode=suggested_update. Omit for mode=create and mode=suggested_create.'}, 'kind': {'type': 'string', 'description': 'One of cron or heartbeat. Required for create, update, suggested_create, and suggested_update. Use cron for detached workspace jobs. Use heartbeat when the user wants this thread to wake up later and continue the conversation.'}, 'localEnvironmentConfigPath': {'type': ['string', 'null'], 'description': 'Optional local environment config path for worktree setup scripts. Immediate worktree create calls with a non-null value and immediate worktree update calls that preserve or set a setup config are rejected; use suggested_create/suggested_update for user review. Pass null to clear or run without setup. Cron automations only.'}, 'mode': {'type': 'string', 'description': 'One of view, create, update, delete, suggested_create, or suggested_update. Use view to show an existing automation, create/update/delete to mutate immediately, and suggested_create/suggested_update to present a proposal for the user to review.'}, 'model': {'type': 'string', 'description': 'Model to use for cron automations.'}, 'name': {'type': 'string', 'description': 'Short human-readable automation name. If the user does not provide one, choose a concise name.'}, 'prompt': {'type': 'string', 'description': 'The automation prompt. Describe only the task itself; do not include schedule, workspace, or thread details because those are provided separately. Keep it self-sufficient, include output expectations when useful, and do not ask it to write a file or announce nothing to do unless the user explicitly asked for that.'}, 'reasoningEffort': {'type': 'string', 'description': 'Reasoning effort to use for cron automations. One of none, minimal, low, medium, high, or xhigh.'}, 'rrule': {'type': 'string', 'description': \"RRULE schedule string. Interpret requested times in the user's locale. Cron automations use hourly interval or weekly schedules. Heartbeat automations attached to a thread can use minute-based intervals such as FREQ=MINUTELY;INTERVAL=30 or daily/weekly wall-clock schedules.\"}, 'status': {'type': 'string', 'description': 'One of ACTIVE or PAUSED. Default to ACTIVE unless the user asks to start paused.'}, 'targetThreadId': {'type': 'string', 'description': 'Target thread id for heartbeat automations. Prefer destination=thread for the current local thread instead of inventing or copying raw thread ids.'}}, 'additionalProperties': False}}]}}\n {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'CodeInterpreter', 'type'), 'msg': \"Input should be 'code_interpreter'\", 'input': 'namespace', 'ctx': {'expected': \"'code_interpreter'\"}}\n {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'ImageGeneration', 'type'), 'msg': \"Input should be 'image_generation'\", 'input': 'namespace', 'ctx': {'expected': \"'image_generation'\"}}\n {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'LocalShell', 'type'), 'msg': \"Input should be 'local_shell'\", 'input': 'namespace', 'ctx': {'expected': \"'local_shell'\"}}\n {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'FunctionShellTool', 'type'), 'msg': \"Input should be 'shell'\", 'input': 'namespace', 'ctx': {'expected': \"'shell'\"}}\n {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'CustomTool', 'type'), 'msg': \"Input should be 'custom'\", 'input': 'namespace', 'ctx': {'expected': \"'custom'\"}}\n {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'WebSearchPreviewTool', 'type'), 'msg': \"Input should be 'web_search_preview' or 'web_search_preview_2025_03_11'\", 'input': 'namespace', 'ctx': {'expected': \"'web_search_preview' or 'web_search_preview_2025_03_11'\"}}\n {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'ApplyPatchTool', 'type'), 'msg': \"Input should be 'apply_patch'\", 'input': 'namespace', 'ctx': {'expected': \"'apply_patch'\"}}\n\n File \"/home/user/.local/lib/python3.10/site-packages/vllm/entrypoints/utils.py\", line 48, in create_responses\n POST /v1/responses [{'type': 'literal_error', 'loc': ('body', 'tools', 11, 'FunctionTool', 'type'), 'msg': \"Input should be 'function'\", 'input': 'namespace', 'ctx': {'expected': \"'function'\"}}, {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'FileSearchTool', 'type'), 'msg': \"Input should be 'file_search'\", 'input': 'namespace', 'ctx': {'expected': \"'file_search'\"}}, {'type': 'missing', 'loc': ('body', 'tools', 11, 'FileSearchTool', 'vector_store_ids'), 'msg': 'Field required', 'input': {'type': 'namespace', 'name': 'codex_app', 'description': 'Tools in the codex_app namespace.', 'tools': [{'type': 'function', 'name': 'automation_update', 'description': 'Create, update, view, or delete recurring automations in the Codex app. Use this when the user asks for an automation, recurring run, repeated task, reminder, follow-up, monitor, or asks you to watch something, keep an eye on it, check back later, wake up later, notify them, or keep working later. Cron automations run as standalone jobs against workspaces. Heartbeat automations are proactive follow-ups attached to the current local thread. Prefer heartbeats for requests to continue this thread later, especially below one hour. Use suggested_create or suggested_update when proposing a worktree automation with a local environment setup config so the user can review it before it is saved. Never write raw automation directives by hand, show raw RRULE strings to the user, or create a workaround cron automation for a thread heartbeat unless the user explicitly asks for that. For requests about existing automations, inspect $CODEX_HOME/automations/*/automation.toml to find matching automation ids by name or prompt. Prefer updating an existing automation over creating a duplicate. For updates, preserve existing fields unless the user asks to change them, and call automation_update with the resolved id and full updated fields.', 'strict': False, 'parameters': {'type': 'object', 'properties': {'cwds': {'description': 'Cron automations only. Workspace directories for the automation; can be a JSON array or comma-separated string.', 'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}]}, 'destination': {'type': 'string', 'description': 'Optional automation destination. Use thread for heartbeat automations attached to the current local thread.'}, 'executionEnvironment': {'type': 'string', 'description': 'One of worktree or local. Cron automations only.'}, 'id': {'type': 'string', 'description': 'Automation id. Required for mode=view, mode=update, mode=delete, and mode=suggested_update. Omit for mode=create and mode=suggested_create.'}, 'kind': {'type': 'string', 'description': 'One of cron or heartbeat. Required for create, update, suggested_create, and suggested_update. Use cron for detached workspace jobs. Use heartbeat when the user wants this thread to wake up later and continue the conversation.'}, 'localEnvironmentConfigPath': {'type': ['string', 'null'], 'description': 'Optional local environment config path for worktree setup scripts. Immediate worktree create calls with a non-null value and immediate worktree update calls that preserve or set a setup config are rejected; use suggested_create/suggested_update for user review. Pass null to clear or run without setup. Cron automations only.'}, 'mode': {'type': 'string', 'description': 'One of view, create, update, delete, suggested_create, or suggested_update. Use view to show an existing automation, create/update/delete to mutate immediately, and suggested_create/suggested_update to present a proposal for the user to review.'}, 'model': {'type': 'string', 'description': 'Model to use for cron automations.'}, 'name': {'type': 'string', 'description': 'Short human-readable automation name. If the user does not provide one, choose a concise name.'}, 'prompt': {'type': 'string', 'description': 'The automation prompt. Describe only the task itself; do not include schedule, workspace, or thread details because those are provided separately. Keep it self-sufficient, include output expectations when useful, and do not ask it to write a file or announce nothing to do unless the user explicitly asked for that.'}, 'reasoningEffort': {'type': 'string', 'description': 'Reasoning effort to use for cron automations. One of none, minimal, low, medium, high, or xhigh.'}, 'rrule': {'type': 'string', 'description': \"RRULE schedule string. Interpret requested times in the user's locale. Cron automations use hourly interval or weekly schedules. Heartbeat automations attached to a thread can use minute-based intervals such as FREQ=MINUTELY;INTERVAL=30 or daily/weekly wall-clock schedules.\"}, 'status': {'type': 'string', 'description': 'One of ACTIVE or PAUSED. Default to ACTIVE unless the user asks to start paused.'}, 'targetThreadId': {'type': 'string', 'description': 'Target thread id for heartbeat automations. Prefer destination=thread for the current local thread instead of inventing or copying raw thread ids.'}}, 'additionalProperties': False}}]}}, {'type': 'missing', 'loc': ('body', 'tools', 11, 'ComputerTool', 'display_height'), 'msg': 'Field required', 'input': {'type': 'namespace', 'name': 'codex_app', 'description': 'Tools in the codex_app namespace.', 'tools': [{'type': 'function', 'name': 'automation_update', 'description': 'Create, update, view, or delete recurring automations in the Codex app. Use this when the user asks for an automation, recurring run, repeated task, reminder, follow-up, monitor, or asks you to watch something, keep an eye on it, check back later, wake up later, notify them, or keep working later. Cron automations run as standalone jobs against workspaces. Heartbeat automations are proactive follow-ups attached to the current local thread. Prefer heartbeats for requests to continue this thread later, especially below one hour. Use suggested_create or suggested_update when proposing a worktree automation with a local environment setup config so the user can review it before it is saved. Never write raw automation directives by hand, show raw RRULE strings to the user, or create a workaround cron automation for a thread heartbeat unless the user explicitly asks for that. For requests about existing automations, inspect $CODEX_HOME/automations/*/automation.toml to find matching automation ids by name or prompt. Prefer updating an existing automation over creating a duplicate. For updates, preserve existing fields unless the user asks to change them, and call automation_update with the resolved id and full updated fields.', 'strict': False, 'parameters': {'type': 'object', 'properties': {'cwds': {'description': 'Cron automations only. Workspace directories for the automation; can be a JSON array or comma-separated string.', 'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}]}, 'destination': {'type': 'string', 'description': 'Optional automation destination. Use thread for heartbeat automations attached to the current local thread.'}, 'executionEnvironment': {'type': 'string', 'description': 'One of worktree or local. Cron automations only.'}, 'id': {'type': 'string', 'description': 'Automation id. Required for mode=view, mode=update, mode=delete, and mode=suggested_update. Omit for mode=create and mode=suggested_create.'}, 'kind': {'type': 'string', 'description': 'One of cron or heartbeat. Required for create, update, suggested_create, and suggested_update. Use cron for detached workspace jobs. Use heartbeat when the user wants this thread to wake up later and continue the conversation.'}, 'localEnvironmentConfigPath': {'type': ['string', 'null'], 'description': 'Optional local environment config path for worktree setup scripts. Immediate worktree create calls with a non-null value and immediate worktree update calls that preserve or set a setup config are rejected; use suggested_create/suggested_update for user review. Pass null to clear or run without setup. Cron automations only.'}, 'mode': {'type': 'string', 'description': 'One of view, create, update, delete, suggested_create, or suggested_update. Use view to show an existing automation, create/update/delete to mutate immediately, and suggested_create/suggested_update to present a proposal for the user to review.'}, 'model': {'type': 'string', 'description': 'Model to use for cron automations.'}, 'name': {'type': 'string', 'description': 'Short human-readable automation name. If the user does not provide one, choose a concise name.'}, 'prompt': {'type': 'string', 'description': 'The automation prompt. Describe only the task itself; do not include schedule, workspace, or thread details because those are provided separately. Keep it self-sufficient, include output expectations when useful, and do not ask it to write a file or announce nothing to do unless the user explicitly asked for that.'}, 'reasoningEffort': {'type': 'string', 'description': 'Reasoning effort to use for cron automations. One of none, minimal, low, medium, high, or xhigh.'}, 'rrule': {'type': 'string', 'description': \"RRULE schedule string. Interpret requested times in the user's locale. Cron automations use hourly interval or weekly schedules. Heartbeat automations attached to a thread can use minute-based intervals such as FREQ=MINUTELY;INTERVAL=30 or daily/weekly wall-clock schedules.\"}, 'status': {'type': 'string', 'description': 'One of ACTIVE or PAUSED. Default to ACTIVE unless the user asks to start paused.'}, 'targetThreadId': {'type': 'string', 'description': 'Target thread id for heartbeat automations. Prefer destination=thread for the current local thread instead of inventing or copying raw thread ids.'}}, 'additionalProperties': False}}]}}, {'type': 'missing', 'loc': ('body', 'tools', 11, 'ComputerTool', 'display_width'), 'msg': 'Field required', 'input': {'type': 'namespace', 'name': 'codex_app', 'description': 'Tools in the codex_app namespace.', 'tools': [{'type': 'function', 'name': 'automation_update', 'description': 'Create, update, view, or delete recurring automations in the Codex app. Use this when the user asks for an automation, recurring run, repeated task, reminder, follow-up, monitor, or asks you to watch something, keep an eye on it, check back later, wake up later, notify them, or keep working later. Cron automations run as standalone jobs against workspaces. Heartbeat automations are proactive follow-ups attached to the current local thread. Prefer heartbeats for requests to continue this thread later, especially below one hour. Use suggested_create or suggested_update when proposing a worktree automation with a local environment setup config so the user can review it before it is saved. Never write raw automation directives by hand, show raw RRULE strings to the user, or create a workaround cron automation for a thread heartbeat unless the user explicitly asks for that. For requests about existing automations, inspect $CODEX_HOME/automations/*/automation.toml to find matching automation ids by name or prompt. Prefer updating an existing automation over creating a duplicate. For updates, preserve existing fields unless the user asks to change them, and call automation_update with the resolved id and full updated fields.', 'strict': False, 'parameters': {'type': 'object', 'properties': {'cwds': {'description': 'Cron automations only. Workspace directories for the automation; can be a JSON array or comma-separated string.', 'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}]}, 'destination': {'type': 'string', 'description': 'Optional automation destination. Use thread for heartbeat automations attached to the current local thread.'}, 'executionEnvironment': {'type': 'string', 'description': 'One of worktree or local. Cron automations only.'}, 'id': {'type': 'string', 'description': 'Automation id. Required for mode=view, mode=update, mode=delete, and mode=suggested_update. Omit for mode=create and mode=suggested_create.'}, 'kind': {'type': 'string', 'description': 'One of cron or heartbeat. Required for create, update, suggested_create, and suggested_update. Use cron for detached workspace jobs. Use heartbeat when the user wants this thread to wake up later and continue the conversation.'}, 'localEnvironmentConfigPath': {'type': ['string', 'null'], 'description': 'Optional local environment config path for worktree setup scripts. Immediate worktree create calls with a non-null value and immediate worktree update calls that preserve or set a setup config are rejected; use suggested_create/suggested_update for user review. Pass null to clear or run without setup. Cron automations only.'}, 'mode': {'type': 'string', 'description': 'One of view, create, update, delete, suggested_create, or suggested_update. Use view to show an existing automation, create/update/delete to mutate immediately, and suggested_create/suggested_update to present a proposal for the user to review.'}, 'model': {'type': 'string', 'description': 'Model to use for cron automations.'}, 'name': {'type': 'string', 'description': 'Short human-readable automation name. If the user does not provide one, choose a concise name.'}, 'prompt': {'type': 'string', 'description': 'The automation prompt. Describe only the task itself; do not include schedule, workspace, or thread details because those are provided separately. Keep it self-sufficient, include output expectations when useful, and do not ask it to write a file or announce nothing to do unless the user explicitly asked for that.'}, 'reasoningEffort': {'type': 'string', 'description': 'Reasoning effort to use for cron automations. One of none, minimal, low, medium, high, or xhigh.'}, 'rrule': {'type': 'string', 'description': \"RRULE schedule string. Interpret requested times in the user's locale. Cron automations use hourly interval or weekly schedules. Heartbeat automations attached to a thread can use minute-based intervals such as FREQ=MINUTELY;INTERVAL=30 or daily/weekly wall-clock schedules.\"}, 'status': {'type': 'string', 'description': 'One of ACTIVE or PAUSED. Default to ACTIVE unless the user asks to start paused.'}, 'targetThreadId': {'type': 'string', 'description': 'Target thread id for heartbeat automations. Prefer destination=thread for the current local thread instead of inventing or copying raw thread ids.'}}, 'additionalProperties': False}}]}}, {'type': 'missing', 'loc': ('body', 'tools', 11, 'ComputerTool', 'environment'), 'msg': 'Field required', 'input': {'type': 'namespace', 'name': 'codex_app', 'description': 'Tools in the codex_app namespace.', 'tools': [{'type': 'function', 'name': 'automation_update', 'description': 'Create, update, view, or delete recurring automations in the Codex app. Use this when the user asks for an automation, recurring run, repeated task, reminder, follow-up, monitor, or asks you to watch something, keep an eye on it, check back later, wake up later, notify them, or keep working later. Cron automations run as standalone jobs against workspaces. Heartbeat automations are proactive follow-ups attached to the current local thread. Prefer heartbeats for requests to continue this thread later, especially below one hour. Use suggested_create or suggested_update when proposing a worktree automation with a local environment setup config so the user can review it before it is saved. Never write raw automation directives by hand, show raw RRULE strings to the user, or create a workaround cron automation for a thread heartbeat unless the user explicitly asks for that. For requests about existing automations, inspect $CODEX_HOME/automations/*/automation.toml to find matching automation ids by name or prompt. Prefer updating an existing automation over creating a duplicate. For updates, preserve existing fields unless the user asks to change them, and call automation_update with the resolved id and full updated fields.', 'strict': False, 'parameters': {'type': 'object', 'properties': {'cwds': {'description': 'Cron automations only. Workspace directories for the automation; can be a JSON array or comma-separated string.', 'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}]}, 'destination': {'type': 'string', 'description': 'Optional automation destination. Use thread for heartbeat automations attached to the current local thread.'}, 'executionEnvironment': {'type': 'string', 'description': 'One of worktree or local. Cron automations only.'}, 'id': {'type': 'string', 'description': 'Automation id. Required for mode=view, mode=update, mode=delete, and mode=suggested_update. Omit for mode=create and mode=suggested_create.'}, 'kind': {'type': 'string', 'description': 'One of cron or heartbeat. Required for create, update, suggested_create, and suggested_update. Use cron for detached workspace jobs. Use heartbeat when the user wants this thread to wake up later and continue the conversation.'}, 'localEnvironmentConfigPath': {'type': ['string', 'null'], 'description': 'Optional local environment config path for worktree setup scripts. Immediate worktree create calls with a non-null value and immediate worktree update calls that preserve or set a setup config are rejected; use suggested_create/suggested_update for user review. Pass null to clear or run without setup. Cron automations only.'}, 'mode': {'type': 'string', 'description': 'One of view, create, update, delete, suggested_create, or suggested_update. Use view to show an existing automation, create/update/delete to mutate immediately, and suggested_create/suggested_update to present a proposal for the user to review.'}, 'model': {'type': 'string', 'description': 'Model to use for cron automations.'}, 'name': {'type': 'string', 'description': 'Short human-readable automation name. If the user does not provide one, choose a concise name.'}, 'prompt': {'type': 'string', 'description': 'The automation prompt. Describe only the task itself; do not include schedule, workspace, or thread details because those are provided separately. Keep it self-sufficient, include output expectations when useful, and do not ask it to write a file or announce nothing to do unless the user explicitly asked for that.'}, 'reasoningEffort': {'type': 'string', 'description': 'Reasoning effort to use for cron automations. One of none, minimal, low, medium, high, or xhigh.'}, 'rrule': {'type': 'string', 'description': \"RRULE schedule string. Interpret requested times in the user's locale. Cron automations use hourly interval or weekly schedules. Heartbeat automations attached to a thread can use minute-based intervals such as FREQ=MINUTELY;INTERVAL=30 or daily/weekly wall-clock schedules.\"}, 'status': {'type': 'string', 'description': 'One of ACTIVE or PAUSED. Default to ACTIVE unless the user asks to start paused.'}, 'targetThreadId': {'type': 'string', 'description': 'Target thread id for heartbeat automations. Prefer destination=thread for the current local thread instead of inventing or copying raw thread ids.'}}, 'additionalProperties': False}}]}}, {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'ComputerTool', 'type'), 'msg': \"Input should be 'computer_use_preview'\", 'input': 'namespace', 'ctx': {'expected': \"'computer_use_preview'\"}}, {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'WebSearchTool', 'type'), 'msg': \"Input should be 'web_search' or 'web_search_2025_08_26'\", 'input': 'namespace', 'ctx': {'expected': \"'web_search' or 'web_search_2025_08_26'\"}}, {'type': 'missing', 'loc': ('body', 'tools', 11, 'Mcp', 'server_label'), 'msg': 'Field required', 'input': {'type': 'namespace', 'name': 'codex_app', 'description': 'Tools in the codex_app namespace.', 'tools': [{'type': 'function', 'name': 'automation_update', 'description': 'Create, update, view, or delete recurring automations in the Codex app. Use this when the user asks for an automation, recurring run, repeated task, reminder, follow-up, monitor, or asks you to watch something, keep an eye on it, check back later, wake up later, notify them, or keep working later. Cron automations run as standalone jobs against workspaces. Heartbeat automations are proactive follow-ups attached to the current local thread. Prefer heartbeats for requests to continue this thread later, especially below one hour. Use suggested_create or suggested_update when proposing a worktree automation with a local environment setup config so the user can review it before it is saved. Never write raw automation directives by hand, show raw RRULE strings to the user, or create a workaround cron automation for a thread heartbeat unless the user explicitly asks for that. For requests about existing automations, inspect $CODEX_HOME/automations/*/automation.toml to find matching automation ids by name or prompt. Prefer updating an existing automation over creating a duplicate. For updates, preserve existing fields unless the user asks to change them, and call automation_update with the resolved id and full updated fields.', 'strict': False, 'parameters': {'type': 'object', 'properties': {'cwds': {'description': 'Cron automations only. Workspace directories for the automation; can be a JSON array or comma-separated string.', 'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}]}, 'destination': {'type': 'string', 'description': 'Optional automation destination. Use thread for heartbeat automations attached to the current local thread.'}, 'executionEnvironment': {'type': 'string', 'description': 'One of worktree or local. Cron automations only.'}, 'id': {'type': 'string', 'description': 'Automation id. Required for mode=view, mode=update, mode=delete, and mode=suggested_update. Omit for mode=create and mode=suggested_create.'}, 'kind': {'type': 'string', 'description': 'One of cron or heartbeat. Required for create, update, suggested_create, and suggested_update. Use cron for detached workspace jobs. Use heartbeat when the user wants this thread to wake up later and continue the conversation.'}, 'localEnvironmentConfigPath': {'type': ['string', 'null'], 'description': 'Optional local environment config path for worktree setup scripts. Immediate worktree create calls with a non-null value and immediate worktree update calls that preserve or set a setup config are rejected; use suggested_create/suggested_update for user review. Pass null to clear or run without setup. Cron automations only.'}, 'mode': {'type': 'string', 'description': 'One of view, create, update, delete, suggested_create, or suggested_update. Use view to show an existing automation, create/update/delete to mutate immediately, and suggested_create/suggested_update to present a proposal for the user to review.'}, 'model': {'type': 'string', 'description': 'Model to use for cron automations.'}, 'name': {'type': 'string', 'description': 'Short human-readable automation name. If the user does not provide one, choose a concise name.'}, 'prompt': {'type': 'string', 'description': 'The automation prompt. Describe only the task itself; do not include schedule, workspace, or thread details because those are provided separately. Keep it self-sufficient, include output expectations when useful, and do not ask it to write a file or announce nothing to do unless the user explicitly asked for that.'}, 'reasoningEffort': {'type': 'string', 'description': 'Reasoning effort to use for cron automations. One of none, minimal, low, medium, high, or xhigh.'}, 'rrule': {'type': 'string', 'description': \"RRULE schedule string. Interpret requested times in the user's locale. Cron automations use hourly interval or weekly schedules. Heartbeat automations attached to a thread can use minute-based intervals such as FREQ=MINUTELY;INTERVAL=30 or daily/weekly wall-clock schedules.\"}, 'status': {'type': 'string', 'description': 'One of ACTIVE or PAUSED. Default to ACTIVE unless the user asks to start paused.'}, 'targetThreadId': {'type': 'string', 'description': 'Target thread id for heartbeat automations. Prefer destination=thread for the current local thread instead of inventing or copying raw thread ids.'}}, 'additionalProperties': False}}]}}, {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'Mcp', 'type'), 'msg': \"Input should be 'mcp'\", 'input': 'namespace', 'ctx': {'expected': \"'mcp'\"}}, {'type': 'missing', 'loc': ('body', 'tools', 11, 'CodeInterpreter', 'container'), 'msg': 'Field required', 'input': {'type': 'namespace', 'name': 'codex_app', 'description': 'Tools in the codex_app namespace.', 'tools': [{'type': 'function', 'name': 'automation_update', 'description': 'Create, update, view, or delete recurring automations in the Codex app. Use this when the user asks for an automation, recurring run, repeated task, reminder, follow-up, monitor, or asks you to watch something, keep an eye on it, check back later, wake up later, notify them, or keep working later. Cron automations run as standalone jobs against workspaces. Heartbeat automations are proactive follow-ups attached to the current local thread. Prefer heartbeats for requests to continue this thread later, especially below one hour. Use suggested_create or suggested_update when proposing a worktree automation with a local environment setup config so the user can review it before it is saved. Never write raw automation directives by hand, show raw RRULE strings to the user, or create a workaround cron automation for a thread heartbeat unless the user explicitly asks for that. For requests about existing automations, inspect $CODEX_HOME/automations/*/automation.toml to find matching automation ids by name or prompt. Prefer updating an existing automation over creating a duplicate. For updates, preserve existing fields unless the user asks to change them, and call automation_update with the resolved id and full updated fields.', 'strict': False, 'parameters': {'type': 'object', 'properties': {'cwds': {'description': 'Cron automations only. Workspace directories for the automation; can be a JSON array or comma-separated string.', 'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}]}, 'destination': {'type': 'string', 'description': 'Optional automation destination. Use thread for heartbeat automations attached to the current local thread.'}, 'executionEnvironment': {'type': 'string', 'description': 'One of worktree or local. Cron automations only.'}, 'id': {'type': 'string', 'description': 'Automation id. Required for mode=view, mode=update, mode=delete, and mode=suggested_update. Omit for mode=create and mode=suggested_create.'}, 'kind': {'type': 'string', 'description': 'One of cron or heartbeat. Required for create, update, suggested_create, and suggested_update. Use cron for detached workspace jobs. Use heartbeat when the user wants this thread to wake up later and continue the conversation.'}, 'localEnvironmentConfigPath': {'type': ['string', 'null'], 'description': 'Optional local environment config path for worktree setup scripts. Immediate worktree create calls with a non-null value and immediate worktree update calls that preserve or set a setup config are rejected; use suggested_create/suggested_update for user review. Pass null to clear or run without setup. Cron automations only.'}, 'mode': {'type': 'string', 'description': 'One of view, create, update, delete, suggested_create, or suggested_update. Use view to show an existing automation, create/update/delete to mutate immediately, and suggested_create/suggested_update to present a proposal for the user to review.'}, 'model': {'type': 'string', 'description': 'Model to use for cron automations.'}, 'name': {'type': 'string', 'description': 'Short human-readable automation name. If the user does not provide one, choose a concise name.'}, 'prompt': {'type': 'string', 'description': 'The automation prompt. Describe only the task itself; do not include schedule, workspace, or thread details because those are provided separately. Keep it self-sufficient, include output expectations when useful, and do not ask it to write a file or announce nothing to do unless the user explicitly asked for that.'}, 'reasoningEffort': {'type': 'string', 'description': 'Reasoning effort to use for cron automations. One of none, minimal, low, medium, high, or xhigh.'}, 'rrule': {'type': 'string', 'description': \"RRULE schedule string. Interpret requested times in the user's locale. Cron automations use hourly interval or weekly schedules. Heartbeat automations attached to a thread can use minute-based intervals such as FREQ=MINUTELY;INTERVAL=30 or daily/weekly wall-clock schedules.\"}, 'status': {'type': 'string', 'description': 'One of ACTIVE or PAUSED. Default to ACTIVE unless the user asks to start paused.'}, 'targetThreadId': {'type': 'string', 'description': 'Target thread id for heartbeat automations. Prefer destination=thread for the current local thread instead of inventing or copying raw thread ids.'}}, 'additionalProperties': False}}]}}, {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'CodeInterpreter', 'type'), 'msg': \"Input should be 'code_interpreter'\", 'input': 'namespace', 'ctx': {'expected': \"'code_interpreter'\"}}, {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'ImageGeneration', 'type'), 'msg': \"Input should be 'image_generation'\", 'input': 'namespace', 'ctx': {'expected': \"'image_generation'\"}}, {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'LocalShell', 'type'), 'msg': \"Input should be 'local_shell'\", 'input': 'namespace', 'ctx': {'expected': \"'local_shell'\"}}, {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'FunctionShellTool', 'type'), 'msg': \"Input should be 'shell'\", 'input': 'namespace', 'ctx': {'expected': \"'shell'\"}}, {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'CustomTool', 'type'), 'msg': \"Input should be 'custom'\", 'input': 'namespace', 'ctx': {'expected': \"'custom'\"}}, {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'WebSearchPreviewTool', 'type'), 'msg': \"Input should be 'web_search_preview' or 'web_search_preview_2025_03_11'\", 'input': 'namespace', 'ctx': {'expected': \"'web_search_preview' or 'web_search_preview_2025_03_11'\"}}, {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'ApplyPatchTool', 'type'), 'msg': \"Input should be 'apply_patch'\", 'input': 'namespace', 'ctx': {'expected': \"'apply_patch'\"}}]","type":"Bad Request","param":null,"code":400}}

Code Example

After issuing a command in Codex, the following error occurred:
RAW_BUFFERClick to expand / collapse

📚 The doc issue

Issue Description: I followed the tutorial in the codex.mddocumentation to integrate the Qwen3.6-27B model into Codex. The vLLM server configuration is as follows:

#!/bin/bash
set -e

MODEL_PATH="/home/user/vllm-server/models/Qwen3.6-27B-FP8"
MODEL_NAME=$(basename "$MODEL_PATH" | tr '[:upper:]' '[:lower:]')

export CUDA_VISIBLE_DEVICES=0,1
export NCCL_P2P_DISABLE=0
export NCCL_IB_DISABLE=1
export NCCL_SHM_DISABLE=0
export NCCL_DEBUG=WARN
export CUDA_DEVICE_MAX_CONNECTIONS=1

source ~/miniconda3/etc/profile.d/conda.sh
conda activate vllm

exec vllm serve "$MODEL_PATH" \
  --tensor-parallel-size 2 \
  --kv-cache-dtype fp8 \
  --max-model-len 204800 \
  --max-num-seqs 8 \
  --gpu-memory-utilization 0.92 \
  --disable-custom-all-reduce \
  --trust-remote-code \
  --enable-auto-tool-choice \
  --tool-call-parser qwen3_coder \
  --chat-template-content-format openai \
  --enable-chunked-prefill \
  --host 0.0.0.0 \
  --port 8001 \
  --served-model-name "$MODEL_NAME"

After issuing a command in Codex, the following error occurred:

{"error":{"message":"18 validation errors:\n {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'FunctionTool', 'type'), 'msg': \"Input should be 'function'\", 'input': 'namespace', 'ctx': {'expected': \"'function'\"}}\n {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'FileSearchTool', 'type'), 'msg': \"Input should be 'file_search'\", 'input': 'namespace', 'ctx': {'expected': \"'file_search'\"}}\n {'type': 'missing', 'loc': ('body', 'tools', 11, 'FileSearchTool', 'vector_store_ids'), 'msg': 'Field required', 'input': {'type': 'namespace', 'name': 'codex_app', 'description': 'Tools in the codex_app namespace.', 'tools': [{'type': 'function', 'name': 'automation_update', 'description': 'Create, update, view, or delete recurring automations in the Codex app. Use this when the user asks for an automation, recurring run, repeated task, reminder, follow-up, monitor, or asks you to watch something, keep an eye on it, check back later, wake up later, notify them, or keep working later. Cron automations run as standalone jobs against workspaces. Heartbeat automations are proactive follow-ups attached to the current local thread. Prefer heartbeats for requests to continue this thread later, especially below one hour. Use suggested_create or suggested_update when proposing a worktree automation with a local environment setup config so the user can review it before it is saved. Never write raw automation directives by hand, show raw RRULE strings to the user, or create a workaround cron automation for a thread heartbeat unless the user explicitly asks for that. For requests about existing automations, inspect $CODEX_HOME/automations/*/automation.toml to find matching automation ids by name or prompt. Prefer updating an existing automation over creating a duplicate. For updates, preserve existing fields unless the user asks to change them, and call automation_update with the resolved id and full updated fields.', 'strict': False, 'parameters': {'type': 'object', 'properties': {'cwds': {'description': 'Cron automations only. Workspace directories for the automation; can be a JSON array or comma-separated string.', 'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}]}, 'destination': {'type': 'string', 'description': 'Optional automation destination. Use thread for heartbeat automations attached to the current local thread.'}, 'executionEnvironment': {'type': 'string', 'description': 'One of worktree or local. Cron automations only.'}, 'id': {'type': 'string', 'description': 'Automation id. Required for mode=view, mode=update, mode=delete, and mode=suggested_update. Omit for mode=create and mode=suggested_create.'}, 'kind': {'type': 'string', 'description': 'One of cron or heartbeat. Required for create, update, suggested_create, and suggested_update. Use cron for detached workspace jobs. Use heartbeat when the user wants this thread to wake up later and continue the conversation.'}, 'localEnvironmentConfigPath': {'type': ['string', 'null'], 'description': 'Optional local environment config path for worktree setup scripts. Immediate worktree create calls with a non-null value and immediate worktree update calls that preserve or set a setup config are rejected; use suggested_create/suggested_update for user review. Pass null to clear or run without setup. Cron automations only.'}, 'mode': {'type': 'string', 'description': 'One of view, create, update, delete, suggested_create, or suggested_update. Use view to show an existing automation, create/update/delete to mutate immediately, and suggested_create/suggested_update to present a proposal for the user to review.'}, 'model': {'type': 'string', 'description': 'Model to use for cron automations.'}, 'name': {'type': 'string', 'description': 'Short human-readable automation name. If the user does not provide one, choose a concise name.'}, 'prompt': {'type': 'string', 'description': 'The automation prompt. Describe only the task itself; do not include schedule, workspace, or thread details because those are provided separately. Keep it self-sufficient, include output expectations when useful, and do not ask it to write a file or announce nothing to do unless the user explicitly asked for that.'}, 'reasoningEffort': {'type': 'string', 'description': 'Reasoning effort to use for cron automations. One of none, minimal, low, medium, high, or xhigh.'}, 'rrule': {'type': 'string', 'description': \"RRULE schedule string. Interpret requested times in the user's locale. Cron automations use hourly interval or weekly schedules. Heartbeat automations attached to a thread can use minute-based intervals such as FREQ=MINUTELY;INTERVAL=30 or daily/weekly wall-clock schedules.\"}, 'status': {'type': 'string', 'description': 'One of ACTIVE or PAUSED. Default to ACTIVE unless the user asks to start paused.'}, 'targetThreadId': {'type': 'string', 'description': 'Target thread id for heartbeat automations. Prefer destination=thread for the current local thread instead of inventing or copying raw thread ids.'}}, 'additionalProperties': False}}]}}\n {'type': 'missing', 'loc': ('body', 'tools', 11, 'ComputerTool', 'display_height'), 'msg': 'Field required', 'input': {'type': 'namespace', 'name': 'codex_app', 'description': 'Tools in the codex_app namespace.', 'tools': [{'type': 'function', 'name': 'automation_update', 'description': 'Create, update, view, or delete recurring automations in the Codex app. Use this when the user asks for an automation, recurring run, repeated task, reminder, follow-up, monitor, or asks you to watch something, keep an eye on it, check back later, wake up later, notify them, or keep working later. Cron automations run as standalone jobs against workspaces. Heartbeat automations are proactive follow-ups attached to the current local thread. Prefer heartbeats for requests to continue this thread later, especially below one hour. Use suggested_create or suggested_update when proposing a worktree automation with a local environment setup config so the user can review it before it is saved. Never write raw automation directives by hand, show raw RRULE strings to the user, or create a workaround cron automation for a thread heartbeat unless the user explicitly asks for that. For requests about existing automations, inspect $CODEX_HOME/automations/*/automation.toml to find matching automation ids by name or prompt. Prefer updating an existing automation over creating a duplicate. For updates, preserve existing fields unless the user asks to change them, and call automation_update with the resolved id and full updated fields.', 'strict': False, 'parameters': {'type': 'object', 'properties': {'cwds': {'description': 'Cron automations only. Workspace directories for the automation; can be a JSON array or comma-separated string.', 'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}]}, 'destination': {'type': 'string', 'description': 'Optional automation destination. Use thread for heartbeat automations attached to the current local thread.'}, 'executionEnvironment': {'type': 'string', 'description': 'One of worktree or local. Cron automations only.'}, 'id': {'type': 'string', 'description': 'Automation id. Required for mode=view, mode=update, mode=delete, and mode=suggested_update. Omit for mode=create and mode=suggested_create.'}, 'kind': {'type': 'string', 'description': 'One of cron or heartbeat. Required for create, update, suggested_create, and suggested_update. Use cron for detached workspace jobs. Use heartbeat when the user wants this thread to wake up later and continue the conversation.'}, 'localEnvironmentConfigPath': {'type': ['string', 'null'], 'description': 'Optional local environment config path for worktree setup scripts. Immediate worktree create calls with a non-null value and immediate worktree update calls that preserve or set a setup config are rejected; use suggested_create/suggested_update for user review. Pass null to clear or run without setup. Cron automations only.'}, 'mode': {'type': 'string', 'description': 'One of view, create, update, delete, suggested_create, or suggested_update. Use view to show an existing automation, create/update/delete to mutate immediately, and suggested_create/suggested_update to present a proposal for the user to review.'}, 'model': {'type': 'string', 'description': 'Model to use for cron automations.'}, 'name': {'type': 'string', 'description': 'Short human-readable automation name. If the user does not provide one, choose a concise name.'}, 'prompt': {'type': 'string', 'description': 'The automation prompt. Describe only the task itself; do not include schedule, workspace, or thread details because those are provided separately. Keep it self-sufficient, include output expectations when useful, and do not ask it to write a file or announce nothing to do unless the user explicitly asked for that.'}, 'reasoningEffort': {'type': 'string', 'description': 'Reasoning effort to use for cron automations. One of none, minimal, low, medium, high, or xhigh.'}, 'rrule': {'type': 'string', 'description': \"RRULE schedule string. Interpret requested times in the user's locale. Cron automations use hourly interval or weekly schedules. Heartbeat automations attached to a thread can use minute-based intervals such as FREQ=MINUTELY;INTERVAL=30 or daily/weekly wall-clock schedules.\"}, 'status': {'type': 'string', 'description': 'One of ACTIVE or PAUSED. Default to ACTIVE unless the user asks to start paused.'}, 'targetThreadId': {'type': 'string', 'description': 'Target thread id for heartbeat automations. Prefer destination=thread for the current local thread instead of inventing or copying raw thread ids.'}}, 'additionalProperties': False}}]}}\n {'type': 'missing', 'loc': ('body', 'tools', 11, 'ComputerTool', 'display_width'), 'msg': 'Field required', 'input': {'type': 'namespace', 'name': 'codex_app', 'description': 'Tools in the codex_app namespace.', 'tools': [{'type': 'function', 'name': 'automation_update', 'description': 'Create, update, view, or delete recurring automations in the Codex app. Use this when the user asks for an automation, recurring run, repeated task, reminder, follow-up, monitor, or asks you to watch something, keep an eye on it, check back later, wake up later, notify them, or keep working later. Cron automations run as standalone jobs against workspaces. Heartbeat automations are proactive follow-ups attached to the current local thread. Prefer heartbeats for requests to continue this thread later, especially below one hour. Use suggested_create or suggested_update when proposing a worktree automation with a local environment setup config so the user can review it before it is saved. Never write raw automation directives by hand, show raw RRULE strings to the user, or create a workaround cron automation for a thread heartbeat unless the user explicitly asks for that. For requests about existing automations, inspect $CODEX_HOME/automations/*/automation.toml to find matching automation ids by name or prompt. Prefer updating an existing automation over creating a duplicate. For updates, preserve existing fields unless the user asks to change them, and call automation_update with the resolved id and full updated fields.', 'strict': False, 'parameters': {'type': 'object', 'properties': {'cwds': {'description': 'Cron automations only. Workspace directories for the automation; can be a JSON array or comma-separated string.', 'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}]}, 'destination': {'type': 'string', 'description': 'Optional automation destination. Use thread for heartbeat automations attached to the current local thread.'}, 'executionEnvironment': {'type': 'string', 'description': 'One of worktree or local. Cron automations only.'}, 'id': {'type': 'string', 'description': 'Automation id. Required for mode=view, mode=update, mode=delete, and mode=suggested_update. Omit for mode=create and mode=suggested_create.'}, 'kind': {'type': 'string', 'description': 'One of cron or heartbeat. Required for create, update, suggested_create, and suggested_update. Use cron for detached workspace jobs. Use heartbeat when the user wants this thread to wake up later and continue the conversation.'}, 'localEnvironmentConfigPath': {'type': ['string', 'null'], 'description': 'Optional local environment config path for worktree setup scripts. Immediate worktree create calls with a non-null value and immediate worktree update calls that preserve or set a setup config are rejected; use suggested_create/suggested_update for user review. Pass null to clear or run without setup. Cron automations only.'}, 'mode': {'type': 'string', 'description': 'One of view, create, update, delete, suggested_create, or suggested_update. Use view to show an existing automation, create/update/delete to mutate immediately, and suggested_create/suggested_update to present a proposal for the user to review.'}, 'model': {'type': 'string', 'description': 'Model to use for cron automations.'}, 'name': {'type': 'string', 'description': 'Short human-readable automation name. If the user does not provide one, choose a concise name.'}, 'prompt': {'type': 'string', 'description': 'The automation prompt. Describe only the task itself; do not include schedule, workspace, or thread details because those are provided separately. Keep it self-sufficient, include output expectations when useful, and do not ask it to write a file or announce nothing to do unless the user explicitly asked for that.'}, 'reasoningEffort': {'type': 'string', 'description': 'Reasoning effort to use for cron automations. One of none, minimal, low, medium, high, or xhigh.'}, 'rrule': {'type': 'string', 'description': \"RRULE schedule string. Interpret requested times in the user's locale. Cron automations use hourly interval or weekly schedules. Heartbeat automations attached to a thread can use minute-based intervals such as FREQ=MINUTELY;INTERVAL=30 or daily/weekly wall-clock schedules.\"}, 'status': {'type': 'string', 'description': 'One of ACTIVE or PAUSED. Default to ACTIVE unless the user asks to start paused.'}, 'targetThreadId': {'type': 'string', 'description': 'Target thread id for heartbeat automations. Prefer destination=thread for the current local thread instead of inventing or copying raw thread ids.'}}, 'additionalProperties': False}}]}}\n {'type': 'missing', 'loc': ('body', 'tools', 11, 'ComputerTool', 'environment'), 'msg': 'Field required', 'input': {'type': 'namespace', 'name': 'codex_app', 'description': 'Tools in the codex_app namespace.', 'tools': [{'type': 'function', 'name': 'automation_update', 'description': 'Create, update, view, or delete recurring automations in the Codex app. Use this when the user asks for an automation, recurring run, repeated task, reminder, follow-up, monitor, or asks you to watch something, keep an eye on it, check back later, wake up later, notify them, or keep working later. Cron automations run as standalone jobs against workspaces. Heartbeat automations are proactive follow-ups attached to the current local thread. Prefer heartbeats for requests to continue this thread later, especially below one hour. Use suggested_create or suggested_update when proposing a worktree automation with a local environment setup config so the user can review it before it is saved. Never write raw automation directives by hand, show raw RRULE strings to the user, or create a workaround cron automation for a thread heartbeat unless the user explicitly asks for that. For requests about existing automations, inspect $CODEX_HOME/automations/*/automation.toml to find matching automation ids by name or prompt. Prefer updating an existing automation over creating a duplicate. For updates, preserve existing fields unless the user asks to change them, and call automation_update with the resolved id and full updated fields.', 'strict': False, 'parameters': {'type': 'object', 'properties': {'cwds': {'description': 'Cron automations only. Workspace directories for the automation; can be a JSON array or comma-separated string.', 'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}]}, 'destination': {'type': 'string', 'description': 'Optional automation destination. Use thread for heartbeat automations attached to the current local thread.'}, 'executionEnvironment': {'type': 'string', 'description': 'One of worktree or local. Cron automations only.'}, 'id': {'type': 'string', 'description': 'Automation id. Required for mode=view, mode=update, mode=delete, and mode=suggested_update. Omit for mode=create and mode=suggested_create.'}, 'kind': {'type': 'string', 'description': 'One of cron or heartbeat. Required for create, update, suggested_create, and suggested_update. Use cron for detached workspace jobs. Use heartbeat when the user wants this thread to wake up later and continue the conversation.'}, 'localEnvironmentConfigPath': {'type': ['string', 'null'], 'description': 'Optional local environment config path for worktree setup scripts. Immediate worktree create calls with a non-null value and immediate worktree update calls that preserve or set a setup config are rejected; use suggested_create/suggested_update for user review. Pass null to clear or run without setup. Cron automations only.'}, 'mode': {'type': 'string', 'description': 'One of view, create, update, delete, suggested_create, or suggested_update. Use view to show an existing automation, create/update/delete to mutate immediately, and suggested_create/suggested_update to present a proposal for the user to review.'}, 'model': {'type': 'string', 'description': 'Model to use for cron automations.'}, 'name': {'type': 'string', 'description': 'Short human-readable automation name. If the user does not provide one, choose a concise name.'}, 'prompt': {'type': 'string', 'description': 'The automation prompt. Describe only the task itself; do not include schedule, workspace, or thread details because those are provided separately. Keep it self-sufficient, include output expectations when useful, and do not ask it to write a file or announce nothing to do unless the user explicitly asked for that.'}, 'reasoningEffort': {'type': 'string', 'description': 'Reasoning effort to use for cron automations. One of none, minimal, low, medium, high, or xhigh.'}, 'rrule': {'type': 'string', 'description': \"RRULE schedule string. Interpret requested times in the user's locale. Cron automations use hourly interval or weekly schedules. Heartbeat automations attached to a thread can use minute-based intervals such as FREQ=MINUTELY;INTERVAL=30 or daily/weekly wall-clock schedules.\"}, 'status': {'type': 'string', 'description': 'One of ACTIVE or PAUSED. Default to ACTIVE unless the user asks to start paused.'}, 'targetThreadId': {'type': 'string', 'description': 'Target thread id for heartbeat automations. Prefer destination=thread for the current local thread instead of inventing or copying raw thread ids.'}}, 'additionalProperties': False}}]}}\n {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'ComputerTool', 'type'), 'msg': \"Input should be 'computer_use_preview'\", 'input': 'namespace', 'ctx': {'expected': \"'computer_use_preview'\"}}\n {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'WebSearchTool', 'type'), 'msg': \"Input should be 'web_search' or 'web_search_2025_08_26'\", 'input': 'namespace', 'ctx': {'expected': \"'web_search' or 'web_search_2025_08_26'\"}}\n {'type': 'missing', 'loc': ('body', 'tools', 11, 'Mcp', 'server_label'), 'msg': 'Field required', 'input': {'type': 'namespace', 'name': 'codex_app', 'description': 'Tools in the codex_app namespace.', 'tools': [{'type': 'function', 'name': 'automation_update', 'description': 'Create, update, view, or delete recurring automations in the Codex app. Use this when the user asks for an automation, recurring run, repeated task, reminder, follow-up, monitor, or asks you to watch something, keep an eye on it, check back later, wake up later, notify them, or keep working later. Cron automations run as standalone jobs against workspaces. Heartbeat automations are proactive follow-ups attached to the current local thread. Prefer heartbeats for requests to continue this thread later, especially below one hour. Use suggested_create or suggested_update when proposing a worktree automation with a local environment setup config so the user can review it before it is saved. Never write raw automation directives by hand, show raw RRULE strings to the user, or create a workaround cron automation for a thread heartbeat unless the user explicitly asks for that. For requests about existing automations, inspect $CODEX_HOME/automations/*/automation.toml to find matching automation ids by name or prompt. Prefer updating an existing automation over creating a duplicate. For updates, preserve existing fields unless the user asks to change them, and call automation_update with the resolved id and full updated fields.', 'strict': False, 'parameters': {'type': 'object', 'properties': {'cwds': {'description': 'Cron automations only. Workspace directories for the automation; can be a JSON array or comma-separated string.', 'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}]}, 'destination': {'type': 'string', 'description': 'Optional automation destination. Use thread for heartbeat automations attached to the current local thread.'}, 'executionEnvironment': {'type': 'string', 'description': 'One of worktree or local. Cron automations only.'}, 'id': {'type': 'string', 'description': 'Automation id. Required for mode=view, mode=update, mode=delete, and mode=suggested_update. Omit for mode=create and mode=suggested_create.'}, 'kind': {'type': 'string', 'description': 'One of cron or heartbeat. Required for create, update, suggested_create, and suggested_update. Use cron for detached workspace jobs. Use heartbeat when the user wants this thread to wake up later and continue the conversation.'}, 'localEnvironmentConfigPath': {'type': ['string', 'null'], 'description': 'Optional local environment config path for worktree setup scripts. Immediate worktree create calls with a non-null value and immediate worktree update calls that preserve or set a setup config are rejected; use suggested_create/suggested_update for user review. Pass null to clear or run without setup. Cron automations only.'}, 'mode': {'type': 'string', 'description': 'One of view, create, update, delete, suggested_create, or suggested_update. Use view to show an existing automation, create/update/delete to mutate immediately, and suggested_create/suggested_update to present a proposal for the user to review.'}, 'model': {'type': 'string', 'description': 'Model to use for cron automations.'}, 'name': {'type': 'string', 'description': 'Short human-readable automation name. If the user does not provide one, choose a concise name.'}, 'prompt': {'type': 'string', 'description': 'The automation prompt. Describe only the task itself; do not include schedule, workspace, or thread details because those are provided separately. Keep it self-sufficient, include output expectations when useful, and do not ask it to write a file or announce nothing to do unless the user explicitly asked for that.'}, 'reasoningEffort': {'type': 'string', 'description': 'Reasoning effort to use for cron automations. One of none, minimal, low, medium, high, or xhigh.'}, 'rrule': {'type': 'string', 'description': \"RRULE schedule string. Interpret requested times in the user's locale. Cron automations use hourly interval or weekly schedules. Heartbeat automations attached to a thread can use minute-based intervals such as FREQ=MINUTELY;INTERVAL=30 or daily/weekly wall-clock schedules.\"}, 'status': {'type': 'string', 'description': 'One of ACTIVE or PAUSED. Default to ACTIVE unless the user asks to start paused.'}, 'targetThreadId': {'type': 'string', 'description': 'Target thread id for heartbeat automations. Prefer destination=thread for the current local thread instead of inventing or copying raw thread ids.'}}, 'additionalProperties': False}}]}}\n {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'Mcp', 'type'), 'msg': \"Input should be 'mcp'\", 'input': 'namespace', 'ctx': {'expected': \"'mcp'\"}}\n {'type': 'missing', 'loc': ('body', 'tools', 11, 'CodeInterpreter', 'container'), 'msg': 'Field required', 'input': {'type': 'namespace', 'name': 'codex_app', 'description': 'Tools in the codex_app namespace.', 'tools': [{'type': 'function', 'name': 'automation_update', 'description': 'Create, update, view, or delete recurring automations in the Codex app. Use this when the user asks for an automation, recurring run, repeated task, reminder, follow-up, monitor, or asks you to watch something, keep an eye on it, check back later, wake up later, notify them, or keep working later. Cron automations run as standalone jobs against workspaces. Heartbeat automations are proactive follow-ups attached to the current local thread. Prefer heartbeats for requests to continue this thread later, especially below one hour. Use suggested_create or suggested_update when proposing a worktree automation with a local environment setup config so the user can review it before it is saved. Never write raw automation directives by hand, show raw RRULE strings to the user, or create a workaround cron automation for a thread heartbeat unless the user explicitly asks for that. For requests about existing automations, inspect $CODEX_HOME/automations/*/automation.toml to find matching automation ids by name or prompt. Prefer updating an existing automation over creating a duplicate. For updates, preserve existing fields unless the user asks to change them, and call automation_update with the resolved id and full updated fields.', 'strict': False, 'parameters': {'type': 'object', 'properties': {'cwds': {'description': 'Cron automations only. Workspace directories for the automation; can be a JSON array or comma-separated string.', 'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}]}, 'destination': {'type': 'string', 'description': 'Optional automation destination. Use thread for heartbeat automations attached to the current local thread.'}, 'executionEnvironment': {'type': 'string', 'description': 'One of worktree or local. Cron automations only.'}, 'id': {'type': 'string', 'description': 'Automation id. Required for mode=view, mode=update, mode=delete, and mode=suggested_update. Omit for mode=create and mode=suggested_create.'}, 'kind': {'type': 'string', 'description': 'One of cron or heartbeat. Required for create, update, suggested_create, and suggested_update. Use cron for detached workspace jobs. Use heartbeat when the user wants this thread to wake up later and continue the conversation.'}, 'localEnvironmentConfigPath': {'type': ['string', 'null'], 'description': 'Optional local environment config path for worktree setup scripts. Immediate worktree create calls with a non-null value and immediate worktree update calls that preserve or set a setup config are rejected; use suggested_create/suggested_update for user review. Pass null to clear or run without setup. Cron automations only.'}, 'mode': {'type': 'string', 'description': 'One of view, create, update, delete, suggested_create, or suggested_update. Use view to show an existing automation, create/update/delete to mutate immediately, and suggested_create/suggested_update to present a proposal for the user to review.'}, 'model': {'type': 'string', 'description': 'Model to use for cron automations.'}, 'name': {'type': 'string', 'description': 'Short human-readable automation name. If the user does not provide one, choose a concise name.'}, 'prompt': {'type': 'string', 'description': 'The automation prompt. Describe only the task itself; do not include schedule, workspace, or thread details because those are provided separately. Keep it self-sufficient, include output expectations when useful, and do not ask it to write a file or announce nothing to do unless the user explicitly asked for that.'}, 'reasoningEffort': {'type': 'string', 'description': 'Reasoning effort to use for cron automations. One of none, minimal, low, medium, high, or xhigh.'}, 'rrule': {'type': 'string', 'description': \"RRULE schedule string. Interpret requested times in the user's locale. Cron automations use hourly interval or weekly schedules. Heartbeat automations attached to a thread can use minute-based intervals such as FREQ=MINUTELY;INTERVAL=30 or daily/weekly wall-clock schedules.\"}, 'status': {'type': 'string', 'description': 'One of ACTIVE or PAUSED. Default to ACTIVE unless the user asks to start paused.'}, 'targetThreadId': {'type': 'string', 'description': 'Target thread id for heartbeat automations. Prefer destination=thread for the current local thread instead of inventing or copying raw thread ids.'}}, 'additionalProperties': False}}]}}\n {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'CodeInterpreter', 'type'), 'msg': \"Input should be 'code_interpreter'\", 'input': 'namespace', 'ctx': {'expected': \"'code_interpreter'\"}}\n {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'ImageGeneration', 'type'), 'msg': \"Input should be 'image_generation'\", 'input': 'namespace', 'ctx': {'expected': \"'image_generation'\"}}\n {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'LocalShell', 'type'), 'msg': \"Input should be 'local_shell'\", 'input': 'namespace', 'ctx': {'expected': \"'local_shell'\"}}\n {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'FunctionShellTool', 'type'), 'msg': \"Input should be 'shell'\", 'input': 'namespace', 'ctx': {'expected': \"'shell'\"}}\n {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'CustomTool', 'type'), 'msg': \"Input should be 'custom'\", 'input': 'namespace', 'ctx': {'expected': \"'custom'\"}}\n {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'WebSearchPreviewTool', 'type'), 'msg': \"Input should be 'web_search_preview' or 'web_search_preview_2025_03_11'\", 'input': 'namespace', 'ctx': {'expected': \"'web_search_preview' or 'web_search_preview_2025_03_11'\"}}\n {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'ApplyPatchTool', 'type'), 'msg': \"Input should be 'apply_patch'\", 'input': 'namespace', 'ctx': {'expected': \"'apply_patch'\"}}\n\n File \"/home/user/.local/lib/python3.10/site-packages/vllm/entrypoints/utils.py\", line 48, in create_responses\n POST /v1/responses [{'type': 'literal_error', 'loc': ('body', 'tools', 11, 'FunctionTool', 'type'), 'msg': \"Input should be 'function'\", 'input': 'namespace', 'ctx': {'expected': \"'function'\"}}, {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'FileSearchTool', 'type'), 'msg': \"Input should be 'file_search'\", 'input': 'namespace', 'ctx': {'expected': \"'file_search'\"}}, {'type': 'missing', 'loc': ('body', 'tools', 11, 'FileSearchTool', 'vector_store_ids'), 'msg': 'Field required', 'input': {'type': 'namespace', 'name': 'codex_app', 'description': 'Tools in the codex_app namespace.', 'tools': [{'type': 'function', 'name': 'automation_update', 'description': 'Create, update, view, or delete recurring automations in the Codex app. Use this when the user asks for an automation, recurring run, repeated task, reminder, follow-up, monitor, or asks you to watch something, keep an eye on it, check back later, wake up later, notify them, or keep working later. Cron automations run as standalone jobs against workspaces. Heartbeat automations are proactive follow-ups attached to the current local thread. Prefer heartbeats for requests to continue this thread later, especially below one hour. Use suggested_create or suggested_update when proposing a worktree automation with a local environment setup config so the user can review it before it is saved. Never write raw automation directives by hand, show raw RRULE strings to the user, or create a workaround cron automation for a thread heartbeat unless the user explicitly asks for that. For requests about existing automations, inspect $CODEX_HOME/automations/*/automation.toml to find matching automation ids by name or prompt. Prefer updating an existing automation over creating a duplicate. For updates, preserve existing fields unless the user asks to change them, and call automation_update with the resolved id and full updated fields.', 'strict': False, 'parameters': {'type': 'object', 'properties': {'cwds': {'description': 'Cron automations only. Workspace directories for the automation; can be a JSON array or comma-separated string.', 'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}]}, 'destination': {'type': 'string', 'description': 'Optional automation destination. Use thread for heartbeat automations attached to the current local thread.'}, 'executionEnvironment': {'type': 'string', 'description': 'One of worktree or local. Cron automations only.'}, 'id': {'type': 'string', 'description': 'Automation id. Required for mode=view, mode=update, mode=delete, and mode=suggested_update. Omit for mode=create and mode=suggested_create.'}, 'kind': {'type': 'string', 'description': 'One of cron or heartbeat. Required for create, update, suggested_create, and suggested_update. Use cron for detached workspace jobs. Use heartbeat when the user wants this thread to wake up later and continue the conversation.'}, 'localEnvironmentConfigPath': {'type': ['string', 'null'], 'description': 'Optional local environment config path for worktree setup scripts. Immediate worktree create calls with a non-null value and immediate worktree update calls that preserve or set a setup config are rejected; use suggested_create/suggested_update for user review. Pass null to clear or run without setup. Cron automations only.'}, 'mode': {'type': 'string', 'description': 'One of view, create, update, delete, suggested_create, or suggested_update. Use view to show an existing automation, create/update/delete to mutate immediately, and suggested_create/suggested_update to present a proposal for the user to review.'}, 'model': {'type': 'string', 'description': 'Model to use for cron automations.'}, 'name': {'type': 'string', 'description': 'Short human-readable automation name. If the user does not provide one, choose a concise name.'}, 'prompt': {'type': 'string', 'description': 'The automation prompt. Describe only the task itself; do not include schedule, workspace, or thread details because those are provided separately. Keep it self-sufficient, include output expectations when useful, and do not ask it to write a file or announce nothing to do unless the user explicitly asked for that.'}, 'reasoningEffort': {'type': 'string', 'description': 'Reasoning effort to use for cron automations. One of none, minimal, low, medium, high, or xhigh.'}, 'rrule': {'type': 'string', 'description': \"RRULE schedule string. Interpret requested times in the user's locale. Cron automations use hourly interval or weekly schedules. Heartbeat automations attached to a thread can use minute-based intervals such as FREQ=MINUTELY;INTERVAL=30 or daily/weekly wall-clock schedules.\"}, 'status': {'type': 'string', 'description': 'One of ACTIVE or PAUSED. Default to ACTIVE unless the user asks to start paused.'}, 'targetThreadId': {'type': 'string', 'description': 'Target thread id for heartbeat automations. Prefer destination=thread for the current local thread instead of inventing or copying raw thread ids.'}}, 'additionalProperties': False}}]}}, {'type': 'missing', 'loc': ('body', 'tools', 11, 'ComputerTool', 'display_height'), 'msg': 'Field required', 'input': {'type': 'namespace', 'name': 'codex_app', 'description': 'Tools in the codex_app namespace.', 'tools': [{'type': 'function', 'name': 'automation_update', 'description': 'Create, update, view, or delete recurring automations in the Codex app. Use this when the user asks for an automation, recurring run, repeated task, reminder, follow-up, monitor, or asks you to watch something, keep an eye on it, check back later, wake up later, notify them, or keep working later. Cron automations run as standalone jobs against workspaces. Heartbeat automations are proactive follow-ups attached to the current local thread. Prefer heartbeats for requests to continue this thread later, especially below one hour. Use suggested_create or suggested_update when proposing a worktree automation with a local environment setup config so the user can review it before it is saved. Never write raw automation directives by hand, show raw RRULE strings to the user, or create a workaround cron automation for a thread heartbeat unless the user explicitly asks for that. For requests about existing automations, inspect $CODEX_HOME/automations/*/automation.toml to find matching automation ids by name or prompt. Prefer updating an existing automation over creating a duplicate. For updates, preserve existing fields unless the user asks to change them, and call automation_update with the resolved id and full updated fields.', 'strict': False, 'parameters': {'type': 'object', 'properties': {'cwds': {'description': 'Cron automations only. Workspace directories for the automation; can be a JSON array or comma-separated string.', 'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}]}, 'destination': {'type': 'string', 'description': 'Optional automation destination. Use thread for heartbeat automations attached to the current local thread.'}, 'executionEnvironment': {'type': 'string', 'description': 'One of worktree or local. Cron automations only.'}, 'id': {'type': 'string', 'description': 'Automation id. Required for mode=view, mode=update, mode=delete, and mode=suggested_update. Omit for mode=create and mode=suggested_create.'}, 'kind': {'type': 'string', 'description': 'One of cron or heartbeat. Required for create, update, suggested_create, and suggested_update. Use cron for detached workspace jobs. Use heartbeat when the user wants this thread to wake up later and continue the conversation.'}, 'localEnvironmentConfigPath': {'type': ['string', 'null'], 'description': 'Optional local environment config path for worktree setup scripts. Immediate worktree create calls with a non-null value and immediate worktree update calls that preserve or set a setup config are rejected; use suggested_create/suggested_update for user review. Pass null to clear or run without setup. Cron automations only.'}, 'mode': {'type': 'string', 'description': 'One of view, create, update, delete, suggested_create, or suggested_update. Use view to show an existing automation, create/update/delete to mutate immediately, and suggested_create/suggested_update to present a proposal for the user to review.'}, 'model': {'type': 'string', 'description': 'Model to use for cron automations.'}, 'name': {'type': 'string', 'description': 'Short human-readable automation name. If the user does not provide one, choose a concise name.'}, 'prompt': {'type': 'string', 'description': 'The automation prompt. Describe only the task itself; do not include schedule, workspace, or thread details because those are provided separately. Keep it self-sufficient, include output expectations when useful, and do not ask it to write a file or announce nothing to do unless the user explicitly asked for that.'}, 'reasoningEffort': {'type': 'string', 'description': 'Reasoning effort to use for cron automations. One of none, minimal, low, medium, high, or xhigh.'}, 'rrule': {'type': 'string', 'description': \"RRULE schedule string. Interpret requested times in the user's locale. Cron automations use hourly interval or weekly schedules. Heartbeat automations attached to a thread can use minute-based intervals such as FREQ=MINUTELY;INTERVAL=30 or daily/weekly wall-clock schedules.\"}, 'status': {'type': 'string', 'description': 'One of ACTIVE or PAUSED. Default to ACTIVE unless the user asks to start paused.'}, 'targetThreadId': {'type': 'string', 'description': 'Target thread id for heartbeat automations. Prefer destination=thread for the current local thread instead of inventing or copying raw thread ids.'}}, 'additionalProperties': False}}]}}, {'type': 'missing', 'loc': ('body', 'tools', 11, 'ComputerTool', 'display_width'), 'msg': 'Field required', 'input': {'type': 'namespace', 'name': 'codex_app', 'description': 'Tools in the codex_app namespace.', 'tools': [{'type': 'function', 'name': 'automation_update', 'description': 'Create, update, view, or delete recurring automations in the Codex app. Use this when the user asks for an automation, recurring run, repeated task, reminder, follow-up, monitor, or asks you to watch something, keep an eye on it, check back later, wake up later, notify them, or keep working later. Cron automations run as standalone jobs against workspaces. Heartbeat automations are proactive follow-ups attached to the current local thread. Prefer heartbeats for requests to continue this thread later, especially below one hour. Use suggested_create or suggested_update when proposing a worktree automation with a local environment setup config so the user can review it before it is saved. Never write raw automation directives by hand, show raw RRULE strings to the user, or create a workaround cron automation for a thread heartbeat unless the user explicitly asks for that. For requests about existing automations, inspect $CODEX_HOME/automations/*/automation.toml to find matching automation ids by name or prompt. Prefer updating an existing automation over creating a duplicate. For updates, preserve existing fields unless the user asks to change them, and call automation_update with the resolved id and full updated fields.', 'strict': False, 'parameters': {'type': 'object', 'properties': {'cwds': {'description': 'Cron automations only. Workspace directories for the automation; can be a JSON array or comma-separated string.', 'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}]}, 'destination': {'type': 'string', 'description': 'Optional automation destination. Use thread for heartbeat automations attached to the current local thread.'}, 'executionEnvironment': {'type': 'string', 'description': 'One of worktree or local. Cron automations only.'}, 'id': {'type': 'string', 'description': 'Automation id. Required for mode=view, mode=update, mode=delete, and mode=suggested_update. Omit for mode=create and mode=suggested_create.'}, 'kind': {'type': 'string', 'description': 'One of cron or heartbeat. Required for create, update, suggested_create, and suggested_update. Use cron for detached workspace jobs. Use heartbeat when the user wants this thread to wake up later and continue the conversation.'}, 'localEnvironmentConfigPath': {'type': ['string', 'null'], 'description': 'Optional local environment config path for worktree setup scripts. Immediate worktree create calls with a non-null value and immediate worktree update calls that preserve or set a setup config are rejected; use suggested_create/suggested_update for user review. Pass null to clear or run without setup. Cron automations only.'}, 'mode': {'type': 'string', 'description': 'One of view, create, update, delete, suggested_create, or suggested_update. Use view to show an existing automation, create/update/delete to mutate immediately, and suggested_create/suggested_update to present a proposal for the user to review.'}, 'model': {'type': 'string', 'description': 'Model to use for cron automations.'}, 'name': {'type': 'string', 'description': 'Short human-readable automation name. If the user does not provide one, choose a concise name.'}, 'prompt': {'type': 'string', 'description': 'The automation prompt. Describe only the task itself; do not include schedule, workspace, or thread details because those are provided separately. Keep it self-sufficient, include output expectations when useful, and do not ask it to write a file or announce nothing to do unless the user explicitly asked for that.'}, 'reasoningEffort': {'type': 'string', 'description': 'Reasoning effort to use for cron automations. One of none, minimal, low, medium, high, or xhigh.'}, 'rrule': {'type': 'string', 'description': \"RRULE schedule string. Interpret requested times in the user's locale. Cron automations use hourly interval or weekly schedules. Heartbeat automations attached to a thread can use minute-based intervals such as FREQ=MINUTELY;INTERVAL=30 or daily/weekly wall-clock schedules.\"}, 'status': {'type': 'string', 'description': 'One of ACTIVE or PAUSED. Default to ACTIVE unless the user asks to start paused.'}, 'targetThreadId': {'type': 'string', 'description': 'Target thread id for heartbeat automations. Prefer destination=thread for the current local thread instead of inventing or copying raw thread ids.'}}, 'additionalProperties': False}}]}}, {'type': 'missing', 'loc': ('body', 'tools', 11, 'ComputerTool', 'environment'), 'msg': 'Field required', 'input': {'type': 'namespace', 'name': 'codex_app', 'description': 'Tools in the codex_app namespace.', 'tools': [{'type': 'function', 'name': 'automation_update', 'description': 'Create, update, view, or delete recurring automations in the Codex app. Use this when the user asks for an automation, recurring run, repeated task, reminder, follow-up, monitor, or asks you to watch something, keep an eye on it, check back later, wake up later, notify them, or keep working later. Cron automations run as standalone jobs against workspaces. Heartbeat automations are proactive follow-ups attached to the current local thread. Prefer heartbeats for requests to continue this thread later, especially below one hour. Use suggested_create or suggested_update when proposing a worktree automation with a local environment setup config so the user can review it before it is saved. Never write raw automation directives by hand, show raw RRULE strings to the user, or create a workaround cron automation for a thread heartbeat unless the user explicitly asks for that. For requests about existing automations, inspect $CODEX_HOME/automations/*/automation.toml to find matching automation ids by name or prompt. Prefer updating an existing automation over creating a duplicate. For updates, preserve existing fields unless the user asks to change them, and call automation_update with the resolved id and full updated fields.', 'strict': False, 'parameters': {'type': 'object', 'properties': {'cwds': {'description': 'Cron automations only. Workspace directories for the automation; can be a JSON array or comma-separated string.', 'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}]}, 'destination': {'type': 'string', 'description': 'Optional automation destination. Use thread for heartbeat automations attached to the current local thread.'}, 'executionEnvironment': {'type': 'string', 'description': 'One of worktree or local. Cron automations only.'}, 'id': {'type': 'string', 'description': 'Automation id. Required for mode=view, mode=update, mode=delete, and mode=suggested_update. Omit for mode=create and mode=suggested_create.'}, 'kind': {'type': 'string', 'description': 'One of cron or heartbeat. Required for create, update, suggested_create, and suggested_update. Use cron for detached workspace jobs. Use heartbeat when the user wants this thread to wake up later and continue the conversation.'}, 'localEnvironmentConfigPath': {'type': ['string', 'null'], 'description': 'Optional local environment config path for worktree setup scripts. Immediate worktree create calls with a non-null value and immediate worktree update calls that preserve or set a setup config are rejected; use suggested_create/suggested_update for user review. Pass null to clear or run without setup. Cron automations only.'}, 'mode': {'type': 'string', 'description': 'One of view, create, update, delete, suggested_create, or suggested_update. Use view to show an existing automation, create/update/delete to mutate immediately, and suggested_create/suggested_update to present a proposal for the user to review.'}, 'model': {'type': 'string', 'description': 'Model to use for cron automations.'}, 'name': {'type': 'string', 'description': 'Short human-readable automation name. If the user does not provide one, choose a concise name.'}, 'prompt': {'type': 'string', 'description': 'The automation prompt. Describe only the task itself; do not include schedule, workspace, or thread details because those are provided separately. Keep it self-sufficient, include output expectations when useful, and do not ask it to write a file or announce nothing to do unless the user explicitly asked for that.'}, 'reasoningEffort': {'type': 'string', 'description': 'Reasoning effort to use for cron automations. One of none, minimal, low, medium, high, or xhigh.'}, 'rrule': {'type': 'string', 'description': \"RRULE schedule string. Interpret requested times in the user's locale. Cron automations use hourly interval or weekly schedules. Heartbeat automations attached to a thread can use minute-based intervals such as FREQ=MINUTELY;INTERVAL=30 or daily/weekly wall-clock schedules.\"}, 'status': {'type': 'string', 'description': 'One of ACTIVE or PAUSED. Default to ACTIVE unless the user asks to start paused.'}, 'targetThreadId': {'type': 'string', 'description': 'Target thread id for heartbeat automations. Prefer destination=thread for the current local thread instead of inventing or copying raw thread ids.'}}, 'additionalProperties': False}}]}}, {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'ComputerTool', 'type'), 'msg': \"Input should be 'computer_use_preview'\", 'input': 'namespace', 'ctx': {'expected': \"'computer_use_preview'\"}}, {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'WebSearchTool', 'type'), 'msg': \"Input should be 'web_search' or 'web_search_2025_08_26'\", 'input': 'namespace', 'ctx': {'expected': \"'web_search' or 'web_search_2025_08_26'\"}}, {'type': 'missing', 'loc': ('body', 'tools', 11, 'Mcp', 'server_label'), 'msg': 'Field required', 'input': {'type': 'namespace', 'name': 'codex_app', 'description': 'Tools in the codex_app namespace.', 'tools': [{'type': 'function', 'name': 'automation_update', 'description': 'Create, update, view, or delete recurring automations in the Codex app. Use this when the user asks for an automation, recurring run, repeated task, reminder, follow-up, monitor, or asks you to watch something, keep an eye on it, check back later, wake up later, notify them, or keep working later. Cron automations run as standalone jobs against workspaces. Heartbeat automations are proactive follow-ups attached to the current local thread. Prefer heartbeats for requests to continue this thread later, especially below one hour. Use suggested_create or suggested_update when proposing a worktree automation with a local environment setup config so the user can review it before it is saved. Never write raw automation directives by hand, show raw RRULE strings to the user, or create a workaround cron automation for a thread heartbeat unless the user explicitly asks for that. For requests about existing automations, inspect $CODEX_HOME/automations/*/automation.toml to find matching automation ids by name or prompt. Prefer updating an existing automation over creating a duplicate. For updates, preserve existing fields unless the user asks to change them, and call automation_update with the resolved id and full updated fields.', 'strict': False, 'parameters': {'type': 'object', 'properties': {'cwds': {'description': 'Cron automations only. Workspace directories for the automation; can be a JSON array or comma-separated string.', 'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}]}, 'destination': {'type': 'string', 'description': 'Optional automation destination. Use thread for heartbeat automations attached to the current local thread.'}, 'executionEnvironment': {'type': 'string', 'description': 'One of worktree or local. Cron automations only.'}, 'id': {'type': 'string', 'description': 'Automation id. Required for mode=view, mode=update, mode=delete, and mode=suggested_update. Omit for mode=create and mode=suggested_create.'}, 'kind': {'type': 'string', 'description': 'One of cron or heartbeat. Required for create, update, suggested_create, and suggested_update. Use cron for detached workspace jobs. Use heartbeat when the user wants this thread to wake up later and continue the conversation.'}, 'localEnvironmentConfigPath': {'type': ['string', 'null'], 'description': 'Optional local environment config path for worktree setup scripts. Immediate worktree create calls with a non-null value and immediate worktree update calls that preserve or set a setup config are rejected; use suggested_create/suggested_update for user review. Pass null to clear or run without setup. Cron automations only.'}, 'mode': {'type': 'string', 'description': 'One of view, create, update, delete, suggested_create, or suggested_update. Use view to show an existing automation, create/update/delete to mutate immediately, and suggested_create/suggested_update to present a proposal for the user to review.'}, 'model': {'type': 'string', 'description': 'Model to use for cron automations.'}, 'name': {'type': 'string', 'description': 'Short human-readable automation name. If the user does not provide one, choose a concise name.'}, 'prompt': {'type': 'string', 'description': 'The automation prompt. Describe only the task itself; do not include schedule, workspace, or thread details because those are provided separately. Keep it self-sufficient, include output expectations when useful, and do not ask it to write a file or announce nothing to do unless the user explicitly asked for that.'}, 'reasoningEffort': {'type': 'string', 'description': 'Reasoning effort to use for cron automations. One of none, minimal, low, medium, high, or xhigh.'}, 'rrule': {'type': 'string', 'description': \"RRULE schedule string. Interpret requested times in the user's locale. Cron automations use hourly interval or weekly schedules. Heartbeat automations attached to a thread can use minute-based intervals such as FREQ=MINUTELY;INTERVAL=30 or daily/weekly wall-clock schedules.\"}, 'status': {'type': 'string', 'description': 'One of ACTIVE or PAUSED. Default to ACTIVE unless the user asks to start paused.'}, 'targetThreadId': {'type': 'string', 'description': 'Target thread id for heartbeat automations. Prefer destination=thread for the current local thread instead of inventing or copying raw thread ids.'}}, 'additionalProperties': False}}]}}, {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'Mcp', 'type'), 'msg': \"Input should be 'mcp'\", 'input': 'namespace', 'ctx': {'expected': \"'mcp'\"}}, {'type': 'missing', 'loc': ('body', 'tools', 11, 'CodeInterpreter', 'container'), 'msg': 'Field required', 'input': {'type': 'namespace', 'name': 'codex_app', 'description': 'Tools in the codex_app namespace.', 'tools': [{'type': 'function', 'name': 'automation_update', 'description': 'Create, update, view, or delete recurring automations in the Codex app. Use this when the user asks for an automation, recurring run, repeated task, reminder, follow-up, monitor, or asks you to watch something, keep an eye on it, check back later, wake up later, notify them, or keep working later. Cron automations run as standalone jobs against workspaces. Heartbeat automations are proactive follow-ups attached to the current local thread. Prefer heartbeats for requests to continue this thread later, especially below one hour. Use suggested_create or suggested_update when proposing a worktree automation with a local environment setup config so the user can review it before it is saved. Never write raw automation directives by hand, show raw RRULE strings to the user, or create a workaround cron automation for a thread heartbeat unless the user explicitly asks for that. For requests about existing automations, inspect $CODEX_HOME/automations/*/automation.toml to find matching automation ids by name or prompt. Prefer updating an existing automation over creating a duplicate. For updates, preserve existing fields unless the user asks to change them, and call automation_update with the resolved id and full updated fields.', 'strict': False, 'parameters': {'type': 'object', 'properties': {'cwds': {'description': 'Cron automations only. Workspace directories for the automation; can be a JSON array or comma-separated string.', 'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}}]}, 'destination': {'type': 'string', 'description': 'Optional automation destination. Use thread for heartbeat automations attached to the current local thread.'}, 'executionEnvironment': {'type': 'string', 'description': 'One of worktree or local. Cron automations only.'}, 'id': {'type': 'string', 'description': 'Automation id. Required for mode=view, mode=update, mode=delete, and mode=suggested_update. Omit for mode=create and mode=suggested_create.'}, 'kind': {'type': 'string', 'description': 'One of cron or heartbeat. Required for create, update, suggested_create, and suggested_update. Use cron for detached workspace jobs. Use heartbeat when the user wants this thread to wake up later and continue the conversation.'}, 'localEnvironmentConfigPath': {'type': ['string', 'null'], 'description': 'Optional local environment config path for worktree setup scripts. Immediate worktree create calls with a non-null value and immediate worktree update calls that preserve or set a setup config are rejected; use suggested_create/suggested_update for user review. Pass null to clear or run without setup. Cron automations only.'}, 'mode': {'type': 'string', 'description': 'One of view, create, update, delete, suggested_create, or suggested_update. Use view to show an existing automation, create/update/delete to mutate immediately, and suggested_create/suggested_update to present a proposal for the user to review.'}, 'model': {'type': 'string', 'description': 'Model to use for cron automations.'}, 'name': {'type': 'string', 'description': 'Short human-readable automation name. If the user does not provide one, choose a concise name.'}, 'prompt': {'type': 'string', 'description': 'The automation prompt. Describe only the task itself; do not include schedule, workspace, or thread details because those are provided separately. Keep it self-sufficient, include output expectations when useful, and do not ask it to write a file or announce nothing to do unless the user explicitly asked for that.'}, 'reasoningEffort': {'type': 'string', 'description': 'Reasoning effort to use for cron automations. One of none, minimal, low, medium, high, or xhigh.'}, 'rrule': {'type': 'string', 'description': \"RRULE schedule string. Interpret requested times in the user's locale. Cron automations use hourly interval or weekly schedules. Heartbeat automations attached to a thread can use minute-based intervals such as FREQ=MINUTELY;INTERVAL=30 or daily/weekly wall-clock schedules.\"}, 'status': {'type': 'string', 'description': 'One of ACTIVE or PAUSED. Default to ACTIVE unless the user asks to start paused.'}, 'targetThreadId': {'type': 'string', 'description': 'Target thread id for heartbeat automations. Prefer destination=thread for the current local thread instead of inventing or copying raw thread ids.'}}, 'additionalProperties': False}}]}}, {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'CodeInterpreter', 'type'), 'msg': \"Input should be 'code_interpreter'\", 'input': 'namespace', 'ctx': {'expected': \"'code_interpreter'\"}}, {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'ImageGeneration', 'type'), 'msg': \"Input should be 'image_generation'\", 'input': 'namespace', 'ctx': {'expected': \"'image_generation'\"}}, {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'LocalShell', 'type'), 'msg': \"Input should be 'local_shell'\", 'input': 'namespace', 'ctx': {'expected': \"'local_shell'\"}}, {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'FunctionShellTool', 'type'), 'msg': \"Input should be 'shell'\", 'input': 'namespace', 'ctx': {'expected': \"'shell'\"}}, {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'CustomTool', 'type'), 'msg': \"Input should be 'custom'\", 'input': 'namespace', 'ctx': {'expected': \"'custom'\"}}, {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'WebSearchPreviewTool', 'type'), 'msg': \"Input should be 'web_search_preview' or 'web_search_preview_2025_03_11'\", 'input': 'namespace', 'ctx': {'expected': \"'web_search_preview' or 'web_search_preview_2025_03_11'\"}}, {'type': 'literal_error', 'loc': ('body', 'tools', 11, 'ApplyPatchTool', 'type'), 'msg': \"Input should be 'apply_patch'\", 'input': 'namespace', 'ctx': {'expected': \"'apply_patch'\"}}]","type":"Bad Request","param":null,"code":400}}

Could you please advise on how to resolve this issue?

Suggest a potential alternative/fix

No response

Before submitting a new issue...

  • Make sure you already searched for relevant issues, and asked the chatbot living at the bottom right corner of the documentation page, which can answer lots of frequently asked questions.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING