Commit Graph

588 Commits

Author SHA1 Message Date
Alishahryar1 f9fc614563 Allow unauthenticated root probes 2026-05-10 16:03:19 -07:00
Alishahryar1 e386a3c8aa Improve admin UI setup flow 2026-05-10 15:57:56 -07:00
Ali Khokhar 33de002e04 Update README.md 2026-05-10 03:15:58 -07:00
Ali Khokhar 6ab11a1f2b Update README.md 2026-05-10 02:56:59 -07:00
Alishahryar1 3d26b4595a Updated README again and added assets folder 2026-05-10 02:51:32 -07:00
Ali Khokhar fe502c849d Update README.md 2026-05-10 02:45:26 -07:00
Alishahryar1 e76bd1fce6 Update README 2026-05-10 02:27:43 -07:00
Alishahryar1 720ec812c6 Update README again 2026-05-10 01:54:19 -07:00
Alishahryar1 cd87bc4402 Update README 2026-05-10 01:49:55 -07:00
Alishahryar1 b9bad70771 log urls at startup 2026-05-10 01:45:04 -07:00
Alishahryar1 d364dbbf48 Updated README 2026-05-10 01:39:26 -07:00
Alishahryar1 8ee72968ed Initial admin impl 2026-05-10 01:21:16 -07:00
Alishahryar1 de8e902899 Add Claude CLI smoke matrices 2026-05-09 17:27:23 -07:00
Alishahryar1 07497c7ed8 Add NVIDIA NIM CLI smoke matrix and tool schema aliasing 2026-05-09 14:25:50 -07:00
dependabot[bot] 07b30aae31 build(deps): bump the minor-and-patch group with 5 updates (#389)
Bumps the minor-and-patch group with 5 updates:

| Package | From | To |
| --- | --- | --- |
| [markdown-it-py](https://github.com/executablebooks/markdown-it-py) |
`4.0.0` | `4.2.0` |
| [pydantic](https://github.com/pydantic/pydantic) | `2.13.3` | `2.13.4`
|
| [pydantic-settings](https://github.com/pydantic/pydantic-settings) |
`2.14.0` | `2.14.1` |
| [openai](https://github.com/openai/openai-python) | `2.33.0` |
`2.36.0` |
| [transformers](https://github.com/huggingface/transformers) | `5.7.0`
| `5.8.0` |

Updates `markdown-it-py` from 4.0.0 to 4.2.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/executablebooks/markdown-it-py/releases">markdown-it-py's
releases</a>.</em></p>
<blockquote>
<h2>v4.2.0</h2>
<h2>What's Changed</h2>
<ul>
<li>✨ Add <code>make_fence_rule()</code> factory for configurable fence
markers by <a
href="https://github.com/chrisjsewell"><code>@​chrisjsewell</code></a>
in <a
href="https://redirect.github.com/executablebooks/markdown-it-py/pull/394">executablebooks/markdown-it-py#394</a></li>
<li>🚀 RELEASE v4.2.0 by <a
href="https://github.com/chrisjsewell"><code>@​chrisjsewell</code></a>
in <a
href="https://redirect.github.com/executablebooks/markdown-it-py/pull/395">executablebooks/markdown-it-py#395</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/executablebooks/markdown-it-py/compare/v4.1.0...v4.2.0">https://github.com/executablebooks/markdown-it-py/compare/v4.1.0...v4.2.0</a></p>
<h2>v4.1.0</h2>
<h2>What's Changed</h2>
<ul>
<li>✨ Add <code>--stdin</code> option to CLI by <a
href="https://github.com/mcepl"><code>@​mcepl</code></a> in <a
href="https://redirect.github.com/executablebooks/markdown-it-py/pull/379">executablebooks/markdown-it-py#379</a></li>
<li>Add AGENTS.md and copilot-setup-steps workflow by <a
href="https://github.com/Copilot"><code>@​Copilot</code></a> in <a
href="https://redirect.github.com/executablebooks/markdown-it-py/pull/380">executablebooks/markdown-it-py#380</a></li>
<li>🔧 Add typing to Scanner by <a
href="https://github.com/Alunderin"><code>@​Alunderin</code></a> in <a
href="https://redirect.github.com/executablebooks/markdown-it-py/pull/382">executablebooks/markdown-it-py#382</a></li>
<li>👌 Fix quadratic complexity in <code>fragments_join</code> /
<code>text_join</code> by <a
href="https://github.com/petricevich"><code>@​petricevich</code></a> in
<a
href="https://redirect.github.com/executablebooks/markdown-it-py/pull/389">executablebooks/markdown-it-py#389</a></li>
<li>✨Allow plugins to register inline terminator characters by <a
href="https://github.com/Copilot"><code>@​Copilot</code></a> in <a
href="https://redirect.github.com/executablebooks/markdown-it-py/pull/391">executablebooks/markdown-it-py#391</a></li>
<li>✨ Add <code>gfm-like2</code> preset with task lists, alerts, and
single-tilde strikethrough by <a
href="https://github.com/chrisjsewell"><code>@​chrisjsewell</code></a>
in <a
href="https://redirect.github.com/executablebooks/markdown-it-py/pull/388">executablebooks/markdown-it-py#388</a></li>
<li>🔧 Update pre-commit hooks by <a
href="https://github.com/chrisjsewell"><code>@​chrisjsewell</code></a>
in <a
href="https://redirect.github.com/executablebooks/markdown-it-py/pull/392">executablebooks/markdown-it-py#392</a></li>
<li>🚀 RELEASE v4.1.0 by <a
href="https://github.com/chrisjsewell"><code>@​chrisjsewell</code></a>
in <a
href="https://redirect.github.com/executablebooks/markdown-it-py/pull/393">executablebooks/markdown-it-py#393</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/mcepl"><code>@​mcepl</code></a> made
their first contribution in <a
href="https://redirect.github.com/executablebooks/markdown-it-py/pull/379">executablebooks/markdown-it-py#379</a></li>
<li><a href="https://github.com/Copilot"><code>@​Copilot</code></a> made
their first contribution in <a
href="https://redirect.github.com/executablebooks/markdown-it-py/pull/380">executablebooks/markdown-it-py#380</a></li>
<li><a href="https://github.com/Alunderin"><code>@​Alunderin</code></a>
made their first contribution in <a
href="https://redirect.github.com/executablebooks/markdown-it-py/pull/382">executablebooks/markdown-it-py#382</a></li>
<li><a
href="https://github.com/petricevich"><code>@​petricevich</code></a>
made their first contribution in <a
href="https://redirect.github.com/executablebooks/markdown-it-py/pull/389">executablebooks/markdown-it-py#389</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/executablebooks/markdown-it-py/compare/v4.0.0...v4.1.0">https://github.com/executablebooks/markdown-it-py/compare/v4.0.0...v4.1.0</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/executablebooks/markdown-it-py/blob/master/CHANGELOG.md">markdown-it-py's
changelog</a>.</em></p>
<blockquote>
<h2>4.2.0 - 2026-05-07</h2>
<ul>
<li>✨ Add <code>make_fence_rule()</code> factory for configurable fence
markers in <a
href="https://redirect.github.com/executablebooks/markdown-it-py/pull/394">#394</a></li>
</ul>
<h2>4.1.0 - 2025-05-06</h2>
<ul>
<li>✨ Add <code>gfm-like2</code> preset with task lists, alerts, and
single-tilde strikethrough core plugins in <a
href="https://redirect.github.com/executablebooks/markdown-it-py/pull/388">#388</a></li>
<li>✨ Allow plugins to register inline terminator characters in <a
href="https://redirect.github.com/executablebooks/markdown-it-py/pull/391">#391</a></li>
<li>👌 Fix quadratic complexity in <code>fragments_join</code> /
<code>text_join</code> in <a
href="https://redirect.github.com/executablebooks/markdown-it-py/pull/389">#389</a>,
thanks to <a
href="https://github.com/petricevich"><code>@​petricevich</code></a></li>
<li>👌 Add <code>--stdin</code> option to CLI for reading Markdown from
standard input in <a
href="https://redirect.github.com/executablebooks/markdown-it-py/pull/379">#379</a>,
thanks to <a
href="https://github.com/mcepl"><code>@​mcepl</code></a></li>
<li>🔧 Add typing to Scanner in <a
href="https://redirect.github.com/executablebooks/markdown-it-py/pull/382">#382</a>,
thanks to <a
href="https://github.com/Alunderin"><code>@​Alunderin</code></a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/executablebooks/markdown-it-py/compare/v4.0.0...v4.1.0">https://github.com/executablebooks/markdown-it-py/compare/v4.0.0...v4.1.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/executablebooks/markdown-it-py/commit/36c5f547144df2d01970a5792d68c71a3380b227"><code>36c5f54</code></a>
🚀 RELEASE v4.2.0 (<a
href="https://redirect.github.com/executablebooks/markdown-it-py/issues/395">#395</a>)</li>
<li><a
href="https://github.com/executablebooks/markdown-it-py/commit/96cf077ba5a6b3b4b2f862db7e0fc532694a72e9"><code>96cf077</code></a>
✨ Add <code>make_fence_rule()</code> factory for configurable fence
markers (<a
href="https://redirect.github.com/executablebooks/markdown-it-py/issues/394">#394</a>)</li>
<li><a
href="https://github.com/executablebooks/markdown-it-py/commit/3b4ff6ddd368b679643d12debf09e10ef602d4db"><code>3b4ff6d</code></a>
🚀 RELEASE v4.1.0 (<a
href="https://redirect.github.com/executablebooks/markdown-it-py/issues/393">#393</a>)</li>
<li><a
href="https://github.com/executablebooks/markdown-it-py/commit/8951f267370b03a26ae88600a6dfc707ea290067"><code>8951f26</code></a>
🔧 Update pre-commit hooks (<a
href="https://redirect.github.com/executablebooks/markdown-it-py/issues/392">#392</a>)</li>
<li><a
href="https://github.com/executablebooks/markdown-it-py/commit/693bb24063b6c658d60c7c14203ac6470387e3c6"><code>693bb24</code></a>
✨ Add <code>gfm-like2</code> preset with task lists, alerts, and
single-tilde strikethro...</li>
<li><a
href="https://github.com/executablebooks/markdown-it-py/commit/df6fd361099cab7fe0259467c3aaa3f284ec8259"><code>df6fd36</code></a>
✨Allow plugins to register inline terminator characters (<a
href="https://redirect.github.com/executablebooks/markdown-it-py/issues/391">#391</a>)</li>
<li><a
href="https://github.com/executablebooks/markdown-it-py/commit/d4ea0ca7f44e3ca86c18a87356502c59e5e49ec3"><code>d4ea0ca</code></a>
👌 Fix quadratic complexity in <code>fragments_join</code> /
<code>text_join</code> (<a
href="https://redirect.github.com/executablebooks/markdown-it-py/issues/389">#389</a>)</li>
<li><a
href="https://github.com/executablebooks/markdown-it-py/commit/89331476e44c150bc32e2597a5fae4cd15391167"><code>8933147</code></a>
🔧 Add typing to Scanner (<a
href="https://redirect.github.com/executablebooks/markdown-it-py/issues/382">#382</a>)</li>
<li><a
href="https://github.com/executablebooks/markdown-it-py/commit/2f6ae107ba32e9a7bd2d00134d09a78ec805a6a0"><code>2f6ae10</code></a>
🔧 Add AGENTS.md and copilot-setup-steps workflow (<a
href="https://redirect.github.com/executablebooks/markdown-it-py/issues/380">#380</a>)</li>
<li><a
href="https://github.com/executablebooks/markdown-it-py/commit/49043e4445d233598fb893bed6949f7b25ae4e27"><code>49043e4</code></a>
Add --stdin option to CLI for reading Markdown from standard input (<a
href="https://redirect.github.com/executablebooks/markdown-it-py/issues/379">#379</a>)</li>
<li>See full diff in <a
href="https://github.com/executablebooks/markdown-it-py/compare/v4.0.0...v4.2.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `pydantic` from 2.13.3 to 2.13.4
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/pydantic/pydantic/releases">pydantic's
releases</a>.</em></p>
<blockquote>
<h2>v2.13.4 2026-05-06</h2>
<h2>v2.13.4 (2026-05-06)</h2>
<h3>What's Changed</h3>
<h4>Packaging</h4>
<ul>
<li>Bump libc from 0.2.155 to 0.2.185 by <a
href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic/pull/13109">#13109</a></li>
<li>Adapt <code>pydantic-core</code> linker flags on macOS by <a
href="https://github.com/washingtoneg"><code>@​washingtoneg</code></a>
and <a href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic/pull/13147">#13147</a></li>
</ul>
<h4>Fixes</h4>
<ul>
<li>Preserve <code>RootModel</code> core metadata by <a
href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic/pull/13129">#13129</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4">https://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/pydantic/pydantic/blob/v2.13.4/HISTORY.md">pydantic's
changelog</a>.</em></p>
<blockquote>
<h2>v2.13.4 (2026-05-06)</h2>
<p><a
href="https://github.com/pydantic/pydantic/releases/tag/v2.13.4">GitHub
release</a></p>
<h3>What's Changed</h3>
<h4>Packaging</h4>
<ul>
<li>Bump libc from 0.2.155 to 0.2.185 by <a
href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic/pull/13109">#13109</a></li>
<li>Adapt <code>pydantic-core</code> linker flags on macOS by <a
href="https://github.com/washingtoneg"><code>@​washingtoneg</code></a>
and <a href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic/pull/13147">#13147</a></li>
</ul>
<h4>Fixes</h4>
<ul>
<li>Preserve <code>RootModel</code> core metadata by <a
href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic/pull/13129">#13129</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pydantic/pydantic/commit/cf67d4b3193c3fe43ede18612ed62785eee11382"><code>cf67d4b</code></a>
Fix linting</li>
<li><a
href="https://github.com/pydantic/pydantic/commit/f0d8a214a5803036db46a56b1f62f1e56b81d662"><code>f0d8a21</code></a>
Prepare release v2.13.4</li>
<li><a
href="https://github.com/pydantic/pydantic/commit/5e3fe1d41a00f441204241c66078003ae0391f9a"><code>5e3fe1d</code></a>
Check for pydantic tag pattern in CI</li>
<li><a
href="https://github.com/pydantic/pydantic/commit/7f9edcc2a191d2eaa9751220eb910914e716a686"><code>7f9edcc</code></a>
Document tagging conventions</li>
<li><a
href="https://github.com/pydantic/pydantic/commit/b46a0c9b8a4dd967fda8ec1a92f6437076bf262c"><code>b46a0c9</code></a>
Adapt <code>pydantic-core</code> linker flags on macOS</li>
<li><a
href="https://github.com/pydantic/pydantic/commit/50629c851e61d887d5420452c311ec6203f1f400"><code>50629c8</code></a>
Update to PyPy 7.3.22</li>
<li><a
href="https://github.com/pydantic/pydantic/commit/8522ebb71e5e9a6f7188af5f009f01785b8cf725"><code>8522ebb</code></a>
Preserve <code>RootModel</code> core metadata</li>
<li><a
href="https://github.com/pydantic/pydantic/commit/a37f3aff090ca342dc5f48304889963530b993f8"><code>a37f3af</code></a>
Adapt <code>MISSING</code> sentinel test to work with unreleased
<code>typing_extensions</code> ver...</li>
<li><a
href="https://github.com/pydantic/pydantic/commit/909259a9df660518033aa686b689f045a6eaf9d2"><code>909259a</code></a>
Remove Logfire example in documentation</li>
<li><a
href="https://github.com/pydantic/pydantic/commit/2c4174c366606fc2dc46cb806833a080aefa77df"><code>2c4174c</code></a>
Bump libc from 0.2.155 to 0.2.185</li>
<li>See full diff in <a
href="https://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4">compare
view</a></li>
</ul>
</details>
<br />

Updates `pydantic-settings` from 2.14.0 to 2.14.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/pydantic/pydantic-settings/releases">pydantic-settings's
releases</a>.</em></p>
<blockquote>
<h2>v2.14.1</h2>
<h2>What's Changed</h2>
<ul>
<li>Bump the python-packages group with 4 updates by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/pydantic/pydantic-settings/pull/850">pydantic/pydantic-settings#850</a></li>
<li>Bump the python-packages group with 5 updates by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/pydantic/pydantic-settings/pull/854">pydantic/pydantic-settings#854</a></li>
<li>Bump the github-actions group with 3 updates by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/pydantic/pydantic-settings/pull/853">pydantic/pydantic-settings#853</a></li>
<li>Bump the python-packages group with 2 updates by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/pydantic/pydantic-settings/pull/856">pydantic/pydantic-settings#856</a></li>
<li>Fix field named <code>cls</code> conflicting with classmethod
parameter by <a
href="https://github.com/hramezani"><code>@​hramezani</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic-settings/pull/858">pydantic/pydantic-settings#858</a></li>
<li>Prepare release 2.14.1 by <a
href="https://github.com/hramezani"><code>@​hramezani</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic-settings/pull/859">pydantic/pydantic-settings#859</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/pydantic/pydantic-settings/compare/v2.14.0...v2.14.1">https://github.com/pydantic/pydantic-settings/compare/v2.14.0...v2.14.1</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pydantic/pydantic-settings/commit/e95c30bec8cfaee88ee275138c064aea97a25bdf"><code>e95c30b</code></a>
Prepare release 2.14.1 (<a
href="https://redirect.github.com/pydantic/pydantic-settings/issues/859">#859</a>)</li>
<li><a
href="https://github.com/pydantic/pydantic-settings/commit/0c8734581b6cf70a995afad603ac456631d00621"><code>0c87345</code></a>
Fix field named <code>cls</code> conflicting with classmethod parameter
(<a
href="https://redirect.github.com/pydantic/pydantic-settings/issues/858">#858</a>)</li>
<li><a
href="https://github.com/pydantic/pydantic-settings/commit/7bd0072795a800065b42210b6dca90fc9b83daf7"><code>7bd0072</code></a>
Bump the python-packages group with 2 updates (<a
href="https://redirect.github.com/pydantic/pydantic-settings/issues/856">#856</a>)</li>
<li><a
href="https://github.com/pydantic/pydantic-settings/commit/b03e573d017ed48e1c2774a5e0b715db9766c76b"><code>b03e573</code></a>
Bump the github-actions group with 3 updates (<a
href="https://redirect.github.com/pydantic/pydantic-settings/issues/853">#853</a>)</li>
<li><a
href="https://github.com/pydantic/pydantic-settings/commit/eaa3b434938411ec8a3717ea646614561e713f51"><code>eaa3b43</code></a>
Bump the python-packages group with 5 updates (<a
href="https://redirect.github.com/pydantic/pydantic-settings/issues/854">#854</a>)</li>
<li><a
href="https://github.com/pydantic/pydantic-settings/commit/9f95615c24c6813c1d7d203576581a79cb6d9e8e"><code>9f95615</code></a>
Bump the python-packages group with 4 updates (<a
href="https://redirect.github.com/pydantic/pydantic-settings/issues/850">#850</a>)</li>
<li>See full diff in <a
href="https://github.com/pydantic/pydantic-settings/compare/v2.14.0...v2.14.1">compare
view</a></li>
</ul>
</details>
<br />

Updates `openai` from 2.33.0 to 2.36.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/openai/openai-python/releases">openai's
releases</a>.</em></p>
<blockquote>
<h2>v2.36.0</h2>
<h2>2.36.0 (2026-05-07)</h2>
<p>Full Changelog: <a
href="https://github.com/openai/openai-python/compare/v2.35.1...v2.36.0">v2.35.1...v2.36.0</a></p>
<h3>Features</h3>
<ul>
<li><strong>api:</strong> manual updates (<a
href="https://github.com/openai/openai-python/commit/13c639cc7d57e4fbd4406563511e15eeb88a54b2">13c639c</a>)</li>
<li><strong>api:</strong> realtime 2 (<a
href="https://github.com/openai/openai-python/commit/8fe0ab87e67eeb3cc27426b50093845229520f0e">8fe0ab8</a>)</li>
</ul>
<h2>v2.35.1</h2>
<h2>2.35.1 (2026-05-06)</h2>
<p>Full Changelog: <a
href="https://github.com/openai/openai-python/compare/v2.35.0...v2.35.1">v2.35.0...v2.35.1</a></p>
<h3>Bug Fixes</h3>
<ul>
<li><strong>api:</strong> fix imagegen <code>size</code> enum regression
(<a
href="https://github.com/openai/openai-python/commit/44846536bc3b02c393daa5bae70a85de04c7f621">4484653</a>)</li>
</ul>
<h2>v2.35.0</h2>
<h2>2.35.0 (2026-05-06)</h2>
<p>Full Changelog: <a
href="https://github.com/openai/openai-python/compare/v2.34.0...v2.35.0">v2.34.0...v2.35.0</a></p>
<h3>Features</h3>
<ul>
<li><strong>api:</strong> update image 2 (<a
href="https://github.com/openai/openai-python/commit/0ba55d7569565045426e1587906a70d5682a4bba">0ba55d7</a>)</li>
<li><strong>api:</strong> manual updates (<a
href="https://github.com/openai/openai-python/commit/72bf67acbc9f030c20db3d5a1a74ea6d67d55f51">72bf67a</a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li>remove legacy python cli (<a
href="https://github.com/openai/openai-python/commit/32f36e447d02c3124af8ab48fcc3537df2fed66e">32f36e4</a>)</li>
<li>rename legacy python cli entrypoint (<a
href="https://github.com/openai/openai-python/commit/a3b182d6d2c2e6fe1d53ca7550b2d43e0f8b2cd3">a3b182d</a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li><strong>api:</strong> update top_logprobs parameter description
across chat and responses (<a
href="https://github.com/openai/openai-python/commit/f9d339fcea63feaa1bdf918a4599f2b032c83517">f9d339f</a>)</li>
</ul>
<h2>v2.34.0</h2>
<h2>2.34.0 (2026-05-04)</h2>
<p>Full Changelog: <a
href="https://github.com/openai/openai-python/compare/v2.33.0...v2.34.0">v2.33.0...v2.34.0</a></p>
<h3>Features</h3>
<ul>
<li><strong>api:</strong> add external_key_id to projects,
email/metadata params to users, update types (<a
href="https://github.com/openai/openai-python/commit/2d232eebb2fe021bb21f2576b17d1d588f81a608">2d232ee</a>)</li>
<li><strong>api:</strong> add support for Admin API Keys per endpoint
(<a
href="https://github.com/openai/openai-python/commit/b8b176af84172f27d2fde8dca062ca4c41f94bf7">b8b176a</a>)</li>
<li><strong>api:</strong> admin API updates (<a
href="https://github.com/openai/openai-python/commit/4ae1138ae1f76e81a2267e4deb45b435c10774d5">4ae1138</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/openai/openai-python/blob/main/CHANGELOG.md">openai's
changelog</a>.</em></p>
<blockquote>
<h2>2.36.0 (2026-05-07)</h2>
<p>Full Changelog: <a
href="https://github.com/openai/openai-python/compare/v2.35.1...v2.36.0">v2.35.1...v2.36.0</a></p>
<h3>Features</h3>
<ul>
<li><strong>api:</strong> manual updates (<a
href="https://github.com/openai/openai-python/commit/13c639cc7d57e4fbd4406563511e15eeb88a54b2">13c639c</a>)</li>
<li><strong>api:</strong> realtime 2 (<a
href="https://github.com/openai/openai-python/commit/8fe0ab87e67eeb3cc27426b50093845229520f0e">8fe0ab8</a>)</li>
</ul>
<h2>2.35.1 (2026-05-06)</h2>
<p>Full Changelog: <a
href="https://github.com/openai/openai-python/compare/v2.35.0...v2.35.1">v2.35.0...v2.35.1</a></p>
<h3>Bug Fixes</h3>
<ul>
<li><strong>api:</strong> fix imagegen <code>size</code> enum regression
(<a
href="https://github.com/openai/openai-python/commit/44846536bc3b02c393daa5bae70a85de04c7f621">4484653</a>)</li>
</ul>
<h2>2.35.0 (2026-05-06)</h2>
<p>Full Changelog: <a
href="https://github.com/openai/openai-python/compare/v2.34.0...v2.35.0">v2.34.0...v2.35.0</a></p>
<h3>Features</h3>
<ul>
<li><strong>api:</strong> update image 2 (<a
href="https://github.com/openai/openai-python/commit/0ba55d7569565045426e1587906a70d5682a4bba">0ba55d7</a>)</li>
<li><strong>api:</strong> manual updates (<a
href="https://github.com/openai/openai-python/commit/72bf67acbc9f030c20db3d5a1a74ea6d67d55f51">72bf67a</a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li>remove legacy python cli (<a
href="https://github.com/openai/openai-python/commit/32f36e447d02c3124af8ab48fcc3537df2fed66e">32f36e4</a>)</li>
<li>rename legacy python cli entrypoint (<a
href="https://github.com/openai/openai-python/commit/a3b182d6d2c2e6fe1d53ca7550b2d43e0f8b2cd3">a3b182d</a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li><strong>api:</strong> update top_logprobs parameter description
across chat and responses (<a
href="https://github.com/openai/openai-python/commit/f9d339fcea63feaa1bdf918a4599f2b032c83517">f9d339f</a>)</li>
</ul>
<h2>2.34.0 (2026-05-04)</h2>
<p>Full Changelog: <a
href="https://github.com/openai/openai-python/compare/v2.33.0...v2.34.0">v2.33.0...v2.34.0</a></p>
<h3>Features</h3>
<ul>
<li><strong>api:</strong> add external_key_id to projects,
email/metadata params to users, update types (<a
href="https://github.com/openai/openai-python/commit/2d232eebb2fe021bb21f2576b17d1d588f81a608">2d232ee</a>)</li>
<li><strong>api:</strong> add support for Admin API Keys per endpoint
(<a
href="https://github.com/openai/openai-python/commit/b8b176af84172f27d2fde8dca062ca4c41f94bf7">b8b176a</a>)</li>
<li><strong>api:</strong> admin API updates (<a
href="https://github.com/openai/openai-python/commit/4ae1138ae1f76e81a2267e4deb45b435c10774d5">4ae1138</a>)</li>
<li><strong>api:</strong> manual updates (<a
href="https://github.com/openai/openai-python/commit/c1870f1b881bb914e4e62a6c8b08d4c2b9a6fd54">c1870f1</a>)</li>
<li><strong>api:</strong> manual updates (<a
href="https://github.com/openai/openai-python/commit/f6bb9c7d7bdcc45425d37722358bed097e83d493">f6bb9c7</a>)</li>
<li>support setting headers via env (<a
href="https://github.com/openai/openai-python/commit/1e89d8b56aba12f99a8ef2b1b78fdee84751275a">1e89d8b</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/openai/openai-python/commit/38d75d74a5626472cd7d1be9705ea8aba29a6b22"><code>38d75d7</code></a>
Merge pull request <a
href="https://redirect.github.com/openai/openai-python/issues/3205">#3205</a>
from openai/release-please--branches--main--changes-...</li>
<li><a
href="https://github.com/openai/openai-python/commit/ff683ffbeba94fc01d93966b774c05a3471f2495"><code>ff683ff</code></a>
release: 2.36.0</li>
<li><a
href="https://github.com/openai/openai-python/commit/8fe0ab87e67eeb3cc27426b50093845229520f0e"><code>8fe0ab8</code></a>
feat(api): realtime 2</li>
<li><a
href="https://github.com/openai/openai-python/commit/13c639cc7d57e4fbd4406563511e15eeb88a54b2"><code>13c639c</code></a>
feat(api): manual updates</li>
<li><a
href="https://github.com/openai/openai-python/commit/2f1dd2814f8d5af989dfa2077f9f748d94fd472a"><code>2f1dd28</code></a>
codegen metadata</li>
<li><a
href="https://github.com/openai/openai-python/commit/19cda34ccc9fee540bad3523b223da3ae85f273c"><code>19cda34</code></a>
codegen metadata</li>
<li><a
href="https://github.com/openai/openai-python/commit/12fc3e41f28ae433f41a88d71e1a29f6745c7640"><code>12fc3e4</code></a>
codegen metadata</li>
<li><a
href="https://github.com/openai/openai-python/commit/5e8f09c2c8f65d2e93722270963f4a19a760736f"><code>5e8f09c</code></a>
release: 2.35.1</li>
<li><a
href="https://github.com/openai/openai-python/commit/14b8afce7f17a9748a3d2946eee4d2d0b180e1d8"><code>14b8afc</code></a>
fix(api): fix imagegen <code>size</code> enum regression</li>
<li><a
href="https://github.com/openai/openai-python/commit/99b9c422f385aa5126b6b525f066a9750e463e1e"><code>99b9c42</code></a>
codegen metadata</li>
<li>Additional commits viewable in <a
href="https://github.com/openai/openai-python/compare/v2.33.0...v2.36.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `transformers` from 5.7.0 to 5.8.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/huggingface/transformers/releases">transformers's
releases</a>.</em></p>
<blockquote>
<h2>Release 5.8.0</h2>
<h1>Release v5.8.0</h1>
<h2>New Model additions</h2>
<h3>DeepSeek-V4</h3>
<!-- raw HTML omitted -->
<p>DeepSeek-V4 is the next-generation MoE (Mixture of Experts) language
model from DeepSeek that introduces several architectural innovations
over DeepSeek-V3. The architecture replaces Multi-head Latent Attention
(MLA) with a hybrid local + long-range attention design, swaps residual
connections for Manifold-Constrained Hyper-Connections (mHC), and
bootstraps the first few MoE layers with a static token-id → expert-id
hash table. This implementation covers DeepSeek-V4-Flash,
DeepSeek-V4-Pro, and their -Base pretrained variants, which share the
same architecture but differ in width, depth, expert count and
weights.</p>
<p><strong>Links:</strong> <a
href="https://huggingface.co/docs/transformers/main/en/model_doc/deepseek_v4">Documentation</a>
| <a
href="https://huggingface.co/deepseek-ai/DeepSeek-V4-Flash/blob/main/DeepSeek_V4.pdf">Paper</a></p>
<ul>
<li>Add DeepSeek V4 (<a
href="https://redirect.github.com/huggingface/transformers/issues/45643">#45643</a>)
by <a
href="https://github.com/ArthurZucker"><code>@​ArthurZucker</code></a>
in <a
href="https://redirect.github.com/huggingface/transformers/pull/45643">#45643</a></li>
</ul>
<h3>Gemma 4 Assistant</h3>
<!-- raw HTML omitted -->
<p>Gemma 4 Assistant is a small, text-only model that enables
speculative decoding for Gemma 4 models using the Multi-Token Prediction
(MTP) method and associated candidate generator. The model shares the
same Gemma4TextModel backbone as other Gemma 4 models but uses KV
sharing throughout the entire model, allowing it to reuse the KV cache
populated by the target model and skip the pre-fill phase entirely. This
architecture includes cross-attention to make the most of the target
model's context, allowing the assistant to accurately predict more
drafted tokens per drafting round.</p>
<p><strong>Links:</strong> <a
href="https://huggingface.co/docs/transformers/main/en/model_doc/gemma4_assistant">Documentation</a></p>
<ul>
<li>First model (<a
href="https://redirect.github.com/huggingface/transformers/issues/45788">#45788</a>)
by <a
href="https://github.com/SindhuRaghuram97"><code>@​SindhuRaghuram97</code></a>
in <a
href="https://redirect.github.com/huggingface/transformers/pull/45788">#45788</a></li>
</ul>
<h3>GraniteSpeechPlus</h3>
<!-- raw HTML omitted -->
<p>Granite Speech Plus is a variant of Granite Speech that enhances the
projector by consuming the concatenation of the encoder's final hidden
states with an arbitrary subset of its intermediate hidden states along
the feature dimension. It is a multimodal speech-to-text model that can
transcribe audio, provide speaker annotation and word level timestamps
by responding to text prompts. The model inherits the same architecture
components as Granite Speech including the speech encoder, query
transformer projector, language model, and optional LoRA adapter.</p>
<p><strong>Links:</strong> <a
href="https://huggingface.co/docs/transformers/main/en/model_doc/granite_speech_plus">Documentation</a></p>
<ul>
<li>Support for a new Granite-Speech-Plus model (<a
href="https://redirect.github.com/huggingface/transformers/issues/45695">#45695</a>)
by <a href="https://github.com/zvik"><code>@​zvik</code></a> in <a
href="https://redirect.github.com/huggingface/transformers/pull/45695">#45695</a></li>
</ul>
<h3>Granite4Vision</h3>
<p>Granite Vision 4.1 is a vision-language model from IBM Research
designed for enterprise-grade document data extraction. It specializes
in chart extraction (Chart2CSV, Chart2Summary, Chart2Code), table
extraction (JSON, HTML, OTSL), and semantic key-value pair extraction.
The model builds on LLaVA-NeXT with architectural innovations including
SigLIP2 Vision Encoder, Window Q-Former Projectors, and DeepStack
Feature Injection with 8 vision-to-LLM injection points.</p>
<p><strong>Links:</strong> <a
href="https://huggingface.co/docs/transformers/main/en/model_doc/granite4_vision">Documentation</a></p>
<ul>
<li>Add Granite 4.1 Vision (granite4_vision) (<a
href="https://redirect.github.com/huggingface/transformers/issues/45597">#45597</a>)
by <a
href="https://github.com/artem-spector"><code>@​artem-spector</code></a>
in <a
href="https://redirect.github.com/huggingface/transformers/pull/45597">#45597</a></li>
</ul>
<h3>EXAONE-4.5</h3>
<!-- raw HTML omitted -->
<p>EXAONE 4.5 is the first open-weight vision language model developed
by LG AI Research, integrating a dedicated visual encoder into the
existing EXAONE 4.0 framework to expand multimodal capabilities. The
model features 33 billion parameters in total, including 1.2 billion
parameters from the vision encoder, and achieves competitive performance
in general benchmarks while outperforming similar-sized models in
document understanding and Korean contextual reasoning. It builds on
EXAONE 4.0 with key enhancements including an expanded vocabulary of
153,600 tokens, support for up to 256K token context windows, and a
Multi-Token Prediction (MTP) mechanism.</p>
<p><strong>Links:</strong> <a
href="https://huggingface.co/docs/transformers/main/en/model_doc/exaone4_5">Documentation</a>
| <a href="https://huggingface.co/papers/2604.08644">Paper</a> | <a
href="https://www.lgresearch.ai/blog/view?seq=641">Blog Post</a></p>
<ul>
<li>Add EXAONE 4.5 implementations (<a
href="https://redirect.github.com/huggingface/transformers/issues/45471">#45471</a>)
by <a href="https://github.com/nuxlear"><code>@​nuxlear</code></a> in <a
href="https://redirect.github.com/huggingface/transformers/pull/45471">#45471</a></li>
</ul>
<h3>PP-FormulaNet</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/huggingface/transformers/commit/049d2bf1220747b6d39e2a978b9f5fe0defa1dca"><code>049d2bf</code></a>
v5.8.0</li>
<li><a
href="https://github.com/huggingface/transformers/commit/2871cafffb3b221b5f1df7e59033a15a7830309f"><code>2871caf</code></a>
Add Granite 4.1 Vision (granite4_vision) (<a
href="https://redirect.github.com/huggingface/transformers/issues/45597">#45597</a>)</li>
<li><a
href="https://github.com/huggingface/transformers/commit/aaec1092d413d0ea7249101ea43f74b5d6d60936"><code>aaec109</code></a>
fix: correct spelling in continuous_api docstring (<a
href="https://redirect.github.com/huggingface/transformers/issues/45749">#45749</a>)</li>
<li><a
href="https://github.com/huggingface/transformers/commit/7050d0e0bf5a97c7c0149c319681601373621eae"><code>7050d0e</code></a>
Fix link to modular transformers documentation (<a
href="https://redirect.github.com/huggingface/transformers/issues/45746">#45746</a>)</li>
<li><a
href="https://github.com/huggingface/transformers/commit/df2f2b539902c78db6a0f71fb2c175880e390576"><code>df2f2b5</code></a>
Gemma4: fix failed test cases (<a
href="https://redirect.github.com/huggingface/transformers/issues/45568">#45568</a>)</li>
<li><a
href="https://github.com/huggingface/transformers/commit/2c7d385621c80fee70c1472f3a622fcba2c93fb9"><code>2c7d385</code></a>
First model (<a
href="https://redirect.github.com/huggingface/transformers/issues/45788">#45788</a>)</li>
<li><a
href="https://github.com/huggingface/transformers/commit/a6ccf9354a4b9f6ec8d9c7482ed5e37734b6dbb2"><code>a6ccf93</code></a>
Fix CI: Allow more artifacts to be download in CI (<a
href="https://redirect.github.com/huggingface/transformers/issues/45785">#45785</a>)</li>
<li><a
href="https://github.com/huggingface/transformers/commit/2c432d73c1428640163c0ff3dc29f2fa4890b928"><code>2c432d7</code></a>
Add <code>concurrency</code> to <code>PR CI</code> workflow file
(<code>pr-ci-caller.yml</code>) (<a
href="https://redirect.github.com/huggingface/transformers/issues/45786">#45786</a>)</li>
<li><a
href="https://github.com/huggingface/transformers/commit/3db570f745f9450d8b04c78bda4bacdb333c191a"><code>3db570f</code></a>
Reorder decorators for autodoc and dataclass (<a
href="https://redirect.github.com/huggingface/transformers/issues/45702">#45702</a>)</li>
<li><a
href="https://github.com/huggingface/transformers/commit/136befeb03164bd77838560305cecc1c023317e7"><code>136befe</code></a>
Unwrap <code>text_config</code> in
<code>AutoModelFor*.from_config</code> (<a
href="https://redirect.github.com/huggingface/transformers/issues/45770">#45770</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/huggingface/transformers/compare/v5.7.0...v5.8.0">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-09 02:07:44 -07:00
Alishahryar1 43a3cc941b Update README 2026-05-09 00:20:14 -07:00
Alishahryar1 b0f5a49cd1 docs: link Wafer provider site 2026-05-08 23:47:35 -07:00
Alishahryar1 5669fb22e1 Merge branch 'ali/add-wafer-provider' 2026-05-08 23:43:35 -07:00
Alishahryar1 5294661aa4 feat: add Wafer provider 2026-05-08 23:43:16 -07:00
Preston Arnold 5706d0029d Remove redundant powershell command in README (#354)
`cp` works just fine on powershell. no need.
2026-05-05 21:52:52 -07:00
alex 8687fb3cbb fix: accept betas body field from Claude Code clients (#360)
Claude Code newer versions send a `betas` list in the request body (e.g.
"interleaved-thinking-2025-05-14"). This landed in `__pydantic_extra__`
and triggered `_openai_reject_native_only_top_level_fields`, surfacing
as "Invalid request sent to provider." for all OpenAI Chat upstreams
(kimi, nvidia_nim).

Declare `betas` on both `MessagesRequest` and `TokenCountRequest` with
`exclude=True` so it is accepted from clients but never forwarded to any
provider body.
2026-05-05 21:45:15 -07:00
alex 6b8c697f4d add kimi to readme (#361) 2026-05-05 21:41:30 -07:00
Leung Ka Chun 19e08f2da1 fix(deepseek): accept document blocks and normalize tool_result content (#358)
## What
Fixes the 422 error returned by the proxy when Claude Code v2.1.128+
sends PDF context as Anthropic `document` blocks, plus two related
DeepSeek-only issues uncovered while debugging.

Closes #357.

## Why
Claude Code now attaches PDFs/files as `document` content blocks. The
`Message.content` union didn't include that variant, so every follow-up
turn after a PDF read returned `422 Unprocessable Content` from the
proxy itself (before the request ever reached DeepSeek).

## Changes
- `api/models/anthropic.py`: new `ContentBlockDocument`, added to
`Message.content` union.
- `providers/deepseek/request.py`:
- `_strip_unsupported_attachment_blocks` — silently drops
`image`/`document` blocks for DeepSeek.
- `_serialize_tool_result_content` + `_normalize_tool_result_content` —
coerces `tool_result.content` to a string per DeepSeek's API contract.
- Hooked into `build_request_body` (strip before validation, normalize
before send).
- `tests/providers/test_deepseek.py`: +4 tests, 1 legacy test updated.

## Verification
- `uv run ruff format` ✅
- `uv run ruff check` ✅
- `uv run ty check` ✅
- `uv run pytest` ✅ (1194 passed)
- Manual: `claude-deepseek` against a PDF no longer 422s.

## Scope / non-goals
- No README change (per CONTRIBUTING).
- Image/document blocks for DeepSeek are stripped, not converted to text
— Claude Code already ships the extracted text in the paired
tool_result.
- No changes to other providers.

---------

Co-authored-by: Alishahryar1 <alishahryar2@gmail.com>
2026-05-05 21:36:38 -07:00
Alishahryar1 3bde98abaf Raise default timeouts for write and connect 2026-05-05 21:24:47 -07:00
Alishahryar1 89d6a79d12 Update README 2026-05-05 21:19:10 -07:00
alex c521589817 feat: add Kimi (Moonshot) provider (#335) 2026-05-04 18:28:54 -07:00
dependabot[bot] 29c3150ec4 Bump the minor-and-patch group with 3 updates (#314) 2026-05-03 14:31:50 -07:00
Alishahryar1 d3a3b37e9e Filter OpenRouter model variants by thinking support 2026-04-30 22:01:36 -07:00
Alishahryar1 db3c9521b1 Add no-thinking model picker variants 2026-04-30 21:27:23 -07:00
Ali Khokhar 4102373343 Update installation instructions in README 2026-04-30 20:44:50 -07:00
Alishahryar1 3e9d1ebb8c updated model picket image again 2026-04-30 20:41:01 -07:00
Alishahryar1 07bc9a3cee Updated model picker image 2026-04-30 20:36:47 -07:00
Alishahryar1 72b34ad57c Added claude-code native model picker 2026-04-30 20:34:35 -07:00
Alishahryar1 7d80cc3426 Add star chart to readme 2026-04-30 18:18:51 -07:00
Alishahryar1 97a88af241 Updated README 2026-04-30 16:48:17 -07:00
Alishahryar1 847916b1d3 fixed deepseek issue 2026-04-30 15:15:36 -07:00
Ali Khokhar 1dfa54a04d Update .env.example 2026-04-30 02:20:26 -07:00
Alishahryar1 d9040ce901 Report startup validation failures without tracebacks 2026-04-30 00:43:43 -07:00
Alishahryar1 85232a3ccb Log startup model validation failures clearly 2026-04-30 00:37:32 -07:00
Alishahryar1 eb5516e53b Validate configured models at startup 2026-04-30 00:33:45 -07:00
Alishahryar1 d78869d39a Removed cached models list 2026-04-30 00:13:20 -07:00
@aaronjmars b8f850813c fix(security): constant-time comparison for ANTHROPIC_AUTH_TOKEN (#262) 2026-04-29 10:13:21 -07:00
Ali Khokhar 0294e04f43 Update .env.example 2026-04-28 18:59:41 -07:00
Brandy Good 51112a4cf3 fix: only strip valid env assignments in command parsing (#229)
## What changed
This updates the command parsing helpers to recognize leading
environment assignments only when they match shell-style variable syntax
like `FOO=bar`. The previous implementation treated any leading token
containing `=` as an env assignment, which could misclassify real
commands or file paths that happen to include `=`. Both
`_strip_env_assignments()` and `extract_command_prefix()` now share the
same validation helper so their behavior stays consistent.

## Why it matters
These helpers are used by fast-path request optimizations, so incorrect
prefix detection can bypass normal handling with the wrong result.
Restricting env stripping to valid assignment tokens fixes false
positives without changing the public API or the response format.

## How it was tested
I validated the updated logic against representative inputs such as
`FOO=bar git status`, plain commands like `git status`, and malformed or
path-like tokens containing `=` that should not be treated as env
assignments. The change is isolated to parsing logic and does not
introduce new dependencies.

---------

Co-authored-by: genoshide <genoshide@users.noreply.github.com>
2026-04-27 18:34:48 -07:00
Ali Khokhar 9996a3d9a0 Update contribution guidelines in README
Clarify contribution guidelines regarding Docker integration and README changes.
2026-04-27 18:32:32 -07:00
Alishahryar1 053beff19e Updated README 2026-04-27 18:29:39 -07:00
Alishahryar1 abae61d85b Fix null usage in SSE for OpenAI-compatible streams (#209, #123)
- Only use provider completion_tokens when it is an int; otherwise estimate
- Coerce message_start/message_delta usage fields to safe integers in SSEBuilder
- Add regression tests for null upstream completion_tokens and builder edge cases

Claude Code could crash (e.g. undefined access on usage) when NIM/GLM or
similar sent usage with null token fields in streamed message_delta.
2026-04-27 18:20:33 -07:00
Alishahryar1 0cca5699cb fix(messaging): reuse parent CLI session for Telegram reply continuation (#233)
Pass parent_session_id into get_or_create_session so reply nodes align with
the fork/resume path instead of always allocating a fresh pending session.
Add unit coverage and update integration expectations.
2026-04-27 16:24:31 -07:00
Brandy Good 19ce65647e fix: handle env-prefixed commands in filepath extraction (#207)
## What changed
This updates `extract_filepaths_from_command()` to skip leading
environment variable assignments before detecting the actual command.
The same parsing pattern was already used in `extract_command_prefix()`,
but filepath extraction still treated the first token as the command
even when it was an env assignment.

## Why it matters
Commands like `FOO=bar cat README.md` or `DEBUG=1 grep pattern file.txt`
were incorrectly classified because `FOO=bar` was treated as the
executable name. That caused the optimization path to return an empty
`<filepaths>` block instead of the file paths the command actually
reads.

## How it was tested
Tested the updated logic against env-prefixed read commands such as
`FOO=bar cat README.md` and `DEBUG=1 grep needle app.py`. Also verified
existing behavior remains unchanged for plain commands like `cat
file.txt`, `grep pattern file.txt`, and listing commands like `ls`.

Co-authored-by: genoshide <genoshide@users.noreply.github.com>
2026-04-26 15:02:12 -07:00
Alishahryar1 f96f541c0a fix(smoke): accept reasoning-only streams and add text placeholder
- OpenAI-compat: emit minimal text block when only reasoning_content streams
  (e.g. NIM) so clients get a text segment.
- Provider prereq: pass if text or thinking content is non-empty after strip.
- Add unit test for reasoning-only stream placeholder text.
2026-04-26 12:55:18 -07:00