You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
<li>MCP tools that return image content blocks (e.g. an MCP image-generation/edit server) now render those images in the chat UI as <code>ChatImageContent</code> and replay them back to the LLM as image inputs on follow-up turns when the model supports vision. Implemented for <code>openai-responses</code> (synthetic user-role <code>input_image</code> after the <code>function_call_output</code>) and <code>anthropic</code> (mixed text + image blocks inside <code>tool_result.content</code>). <code>openai-chat</code> and <code>ollama</code> continue to receive a text placeholder until a parallel pattern is implemented there.</li>
4216
4216
<li>Bugfix: MCP tools without a <code>description</code> (which the MCP spec marks optional) no longer break Anthropic chat requests with <code>tools.<n>.custom.description: Input should be a valid string</code>. Missing/empty descriptions now fall back to the tool's <code>title</code>, then to a synthesized <code>MCP tool: <name></code> string at the MCP boundary so all providers receive a non-null string.</li>
4217
+
<li>Hook <code>matcher</code> now supports object form keyed by tool selectors with per-tool <code>argsMatchers</code>; legacy string regex matchers remain supported.</li>
<li><strong><code>matcher</code></strong>: Regex for <code>server__tool-name</code>, only for <code>*ToolCall</code> hooks.</li>
1465
+
<li><strong><code>matcher</code></strong>: For <code>*ToolCall</code> hooks. String = legacy regex for <code>server__tool-name</code>. Object = tool selector map with optional <code>argsMatchers</code>. Selectors follow tool approval: full tool name (<code>eca__write_file</code>), native ECA tool name (<code>write_file</code>), or server name. In <code>argsMatchers</code>, keys are tool argument names and values are arrays of regex alternatives for that argument. All listed arguments must match; multiple regexes for one argument are alternatives.</li>
1466
1466
<li><strong><code>visible</code></strong>: Show hook execution in chat (default: <code>true</code>).</li>
1467
1467
<li><strong><code>runOnError</code></strong>: For <code>postToolCall</code>, run even if tool errored (default: <code>false</code>).</li>
0 commit comments