Skip to content

Runtime tool_search conflicts with OpenAI Responses native tool_search #3939

Description

@liugddx

Summary

Maka's runtime-defined deferred-tool connector is named tool_search. When a session uses an OpenAI Responses model (for example codex-subscription / gpt-5.6-sol), the current @ai-sdk/openai adapter treats that name as the provider-native openai.tool_search tool.

Maka returns a client tool result shaped like:

{"activated":["mcp__desktop_browser__browser_click"]}

The OpenAI Responses adapter validates native tool_search output as:

{"tools":[...]}

and rejects the Maka result before the next model request is sent.

Reproduction

  1. Run the latest main desktop app on Windows.
  2. Use the codex-subscription connection with gpt-5.6-sol.
  3. Send a request that requires a deferred client capability, such as desktop browser tools.
  4. The run fails immediately with:
Type validation failed: Value: {"kind":"json","value":{"activated":[...]}}
Error message:
[
  {
    "expected": "array",
    "code": "invalid_type",
    "path": ["tools"],
    "message": "Invalid input: expected array, received undefined"
  }
]

Evidence

The failure is produced while converting a local tool result in @ai-sdk/openai's Responses input converter. The runtime's connector is defined in packages/runtime/src/tool-availability.ts and uses the reserved provider name tool_search.

Expected behavior

Deferred tool activation should complete and the next model step should receive the activated Maka tools.

Proposed fix

Use a Maka-specific provider-visible connector name that cannot collide with OpenAI's reserved tool_search name, while preserving the internal activation semantics and updating history/replay, prompts, UI copy, and regression tests.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions