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