Skip to content

Commit 375e62e

Browse files
committed
merge(next): resolve conflicts in mcp credential filtering PR
Merge latest next into fix/mcp-credential-filtering and resolve request.py/wire.py conflicts while preserving per-server credential embedding behavior.
2 parents 3c1d415 + 37e69b2 commit 375e62e

93 files changed

Lines changed: 5628 additions & 2569 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/ci.yml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,12 @@ jobs:
1919
runs-on: ${{ github.repository == 'stainless-sdks/dedalus-sdk-python' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }}
2020
if: github.event_name == 'push' || github.event.pull_request.head.repo.fork
2121
steps:
22-
- uses: actions/checkout@v4
22+
- uses: actions/checkout@v6
2323

2424
- name: Install uv
2525
uses: astral-sh/setup-uv@v5
2626
with:
27-
version: '0.9.13'
27+
version: '0.10.2'
2828

2929
- name: Install dependencies
3030
run: uv sync --all-extras
@@ -41,12 +41,12 @@ jobs:
4141
id-token: write
4242
runs-on: ${{ github.repository == 'stainless-sdks/dedalus-sdk-python' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }}
4343
steps:
44-
- uses: actions/checkout@v4
44+
- uses: actions/checkout@v6
4545

4646
- name: Install uv
4747
uses: astral-sh/setup-uv@v5
4848
with:
49-
version: '0.9.13'
49+
version: '0.10.2'
5050

5151
- name: Install dependencies
5252
run: uv sync --all-extras
@@ -57,7 +57,7 @@ jobs:
5757
- name: Get GitHub OIDC Token
5858
if: github.repository == 'stainless-sdks/dedalus-sdk-python'
5959
id: github-oidc
60-
uses: actions/github-script@v6
60+
uses: actions/github-script@v8
6161
with:
6262
script: core.setOutput('github_token', await core.getIDToken());
6363

@@ -75,12 +75,12 @@ jobs:
7575
runs-on: ${{ github.repository == 'stainless-sdks/dedalus-sdk-python' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }}
7676
if: github.event_name == 'push' || github.event.pull_request.head.repo.fork
7777
steps:
78-
- uses: actions/checkout@v4
78+
- uses: actions/checkout@v6
7979

8080
- name: Install uv
8181
uses: astral-sh/setup-uv@v5
8282
with:
83-
version: '0.9.13'
83+
version: '0.10.2'
8484

8585
- name: Bootstrap
8686
run: ./scripts/bootstrap

.github/workflows/publish-pypi.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,10 @@ jobs:
1212
publish:
1313
name: publish
1414
runs-on: ubuntu-latest
15+
environment: production
1516

1617
steps:
17-
- uses: actions/checkout@v4
18+
- uses: actions/checkout@v6
1819

1920
- name: Install uv
2021
uses: astral-sh/setup-uv@v5

.github/workflows/release-doctor.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ jobs:
1313
if: github.repository == 'dedalus-labs/dedalus-sdk-python' && (github.event_name == 'push' || github.event_name == 'workflow_dispatch' || startsWith(github.head_ref, 'release-please') || github.head_ref == 'next')
1414

1515
steps:
16-
- uses: actions/checkout@v4
16+
- uses: actions/checkout@v6
1717

1818
- name: Check release environment
1919
run: |

.stats.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
configured_endpoints: 10
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/dedalus-labs%2Fdedalus-sdk-9543ba4968eb09fe1d5ccf3bcbc0acdc614a53401893cfb15f530d51d7fe952d.yml
3-
openapi_spec_hash: eebaaecfa11e98efa3c44d709c08cbd6
4-
config_hash: 1890670c4485d0ade7c70a0c8bd20423
1+
configured_endpoints: 12
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/dedalus-labs%2Fdedalus-sdk-78928123e88f6699e87022537ef23c34c0a802c5b78ac0c5259b30b59371492e.yml
3+
openapi_spec_hash: 50b6107b70d1a6367726f78a04af5493
4+
config_hash: b57dddec045c6790044b72c73f0d1891

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ It is generated with [Stainless](https://www.stainless.com/).
1313

1414
Use the Dedalus MCP Server to enable AI assistants to interact with this API, allowing them to explore endpoints, make test requests, and use documentation to help integrate this SDK into your application.
1515

16-
[![Add to Cursor](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/en-US/install-mcp?name=dedalus-labs-mcp&config=eyJuYW1lIjoiZGVkYWx1cy1sYWJzLW1jcCIsInRyYW5zcG9ydCI6InNzZSIsInVybCI6Imh0dHBzOi8vZGVkYWx1cy1zZGsuc3RsbWNwLmNvbS9zc2UifQ)
17-
[![Install in VS Code](https://img.shields.io/badge/_-Add_to_VS_Code-blue?style=for-the-badge&logo=data:image/svg%2bxml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCA0MCA0MCI+PHBhdGggZmlsbD0iI0VFRSIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMzAuMjM1IDM5Ljg4NGEyLjQ5MSAyLjQ5MSAwIDAgMS0xLjc4MS0uNzNMMTIuNyAyNC43OGwtMy40NiAyLjYyNC0zLjQwNiAyLjU4MmExLjY2NSAxLjY2NSAwIDAgMS0xLjA4Mi4zMzggMS42NjQgMS42NjQgMCAwIDEtMS4wNDYtLjQzMWwtMi4yLTJhMS42NjYgMS42NjYgMCAwIDEgMC0yLjQ2M0w3LjQ1OCAyMCA0LjY3IDE3LjQ1MyAxLjUwNyAxNC41N2ExLjY2NSAxLjY2NSAwIDAgMSAwLTIuNDYzbDIuMi0yYTEuNjY1IDEuNjY1IDAgMCAxIDIuMTMtLjA5N2w2Ljg2MyA1LjIwOUwyOC40NTIuODQ0YTIuNDg4IDIuNDg4IDAgMCAxIDEuODQxLS43MjljLjM1MS4wMDkuNjk5LjA5MSAxLjAxOS4yNDVsOC4yMzYgMy45NjFhMi41IDIuNSAwIDAgMSAxLjQxNSAyLjI1M3YuMDk5LS4wNDVWMzMuMzd2LS4wNDUuMDk1YTIuNTAxIDIuNTAxIDAgMCAxLTEuNDE2IDIuMjU3bC04LjIzNSAzLjk2MWEyLjQ5MiAyLjQ5MiAwIDAgMS0xLjA3Ny4yNDZabS43MTYtMjguOTQ3LTExLjk0OCA5LjA2MiAxMS45NTIgOS4wNjUtLjAwNC0xOC4xMjdaIi8+PC9zdmc+)](https://vscode.stainless.com/mcp/%7B%22name%22%3A%22dedalus-labs-mcp%22%2C%22type%22%3A%22sse%22%2C%22url%22%3A%22https%3A%2F%2Fdedalus-sdk.stlmcp.com%2Fsse%22%7D)
16+
[![Add to Cursor](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/en-US/install-mcp?name=dedalus-labs-mcp&config=eyJuYW1lIjoiZGVkYWx1cy1sYWJzLW1jcCIsInRyYW5zcG9ydCI6Imh0dHAiLCJ1cmwiOiJodHRwczovL2RlZGFsdXMtc2RrLnN0bG1jcC5jb20iLCJoZWFkZXJzIjp7IngtZGVkYWx1cy1hcGkta2V5IjoiTXkgQVBJIEtleSIsIngtYXBpLWtleSI6Ik15IFggQVBJIEtleSJ9fQ)
17+
[![Install in VS Code](https://img.shields.io/badge/_-Add_to_VS_Code-blue?style=for-the-badge&logo=data:image/svg%2bxml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCA0MCA0MCI+PHBhdGggZmlsbD0iI0VFRSIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMzAuMjM1IDM5Ljg4NGEyLjQ5MSAyLjQ5MSAwIDAgMS0xLjc4MS0uNzNMMTIuNyAyNC43OGwtMy40NiAyLjYyNC0zLjQwNiAyLjU4MmExLjY2NSAxLjY2NSAwIDAgMS0xLjA4Mi4zMzggMS42NjQgMS42NjQgMCAwIDEtMS4wNDYtLjQzMWwtMi4yLTJhMS42NjYgMS42NjYgMCAwIDEgMC0yLjQ2M0w3LjQ1OCAyMCA0LjY3IDE3LjQ1MyAxLjUwNyAxNC41N2ExLjY2NSAxLjY2NSAwIDAgMSAwLTIuNDYzbDIuMi0yYTEuNjY1IDEuNjY1IDAgMCAxIDIuMTMtLjA5N2w2Ljg2MyA1LjIwOUwyOC40NTIuODQ0YTIuNDg4IDIuNDg4IDAgMCAxIDEuODQxLS43MjljLjM1MS4wMDkuNjk5LjA5MSAxLjAxOS4yNDVsOC4yMzYgMy45NjFhMi41IDIuNSAwIDAgMSAxLjQxNSAyLjI1M3YuMDk5LS4wNDVWMzMuMzd2LS4wNDUuMDk1YTIuNTAxIDIuNTAxIDAgMCAxLTEuNDE2IDIuMjU3bC04LjIzNSAzLjk2MWEyLjQ5MiAyLjQ5MiAwIDAgMS0xLjA3Ny4yNDZabS43MTYtMjguOTQ3LTExLjk0OCA5LjA2MiAxMS45NTIgOS4wNjUtLjAwNC0xOC4xMjdaIi8+PC9zdmc+)](https://vscode.stainless.com/mcp/%7B%22name%22%3A%22dedalus-labs-mcp%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fdedalus-sdk.stlmcp.com%22%2C%22headers%22%3A%7B%22x-dedalus-api-key%22%3A%22My%20API%20Key%22%2C%22x-api-key%22%3A%22My%20X%20API%20Key%22%7D%7D)
1818

1919
> Note: You may need to set environment variables in your MCP client.
2020
@@ -299,7 +299,7 @@ Error codes are as follows:
299299

300300
### Retries
301301

302-
Certain errors are automatically retried 0 times by default, with a short exponential backoff.
302+
Certain errors are automatically retried 2 times by default, with a short exponential backoff.
303303
Connection errors (for example, due to a network connectivity problem), 408 Request Timeout, 409 Conflict,
304304
429 Rate Limit, and >=500 Internal errors are all retried by default.
305305

api.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ from dedalus_labs.types import (
1818
ResponseFormatJSONSchema,
1919
ResponseFormatText,
2020
ToolChoice,
21+
VoiceIDsOrCustomVoice,
2122
)
2223
```
2324

@@ -92,6 +93,30 @@ Methods:
9293
- <code title="post /v1/images/edits">client.images.<a href="./src/dedalus_labs/resources/images.py">edit</a>(\*\*<a href="src/dedalus_labs/types/image_edit_params.py">params</a>) -> <a href="./src/dedalus_labs/types/images_response.py">ImagesResponse</a></code>
9394
- <code title="post /v1/images/generations">client.images.<a href="./src/dedalus_labs/resources/images.py">generate</a>(\*\*<a href="src/dedalus_labs/types/image_generate_params.py">params</a>) -> <a href="./src/dedalus_labs/types/images_response.py">ImagesResponse</a></code>
9495

96+
# OCR
97+
98+
Types:
99+
100+
```python
101+
from dedalus_labs.types import OCRDocument, OCRPage, OCRRequest, OCRResponse
102+
```
103+
104+
Methods:
105+
106+
- <code title="post /v1/ocr">client.ocr.<a href="./src/dedalus_labs/resources/ocr.py">process</a>(\*\*<a href="src/dedalus_labs/types/ocr_process_params.py">params</a>) -> <a href="./src/dedalus_labs/types/ocr_response.py">OCRResponse</a></code>
107+
108+
# Responses
109+
110+
Types:
111+
112+
```python
113+
from dedalus_labs.types import Response, ResponseCreateParams
114+
```
115+
116+
Methods:
117+
118+
- <code title="post /v1/responses">client.responses.<a href="./src/dedalus_labs/resources/responses.py">create</a>(\*\*<a href="src/dedalus_labs/types/response_create_params.py">params</a>) -> <a href="./src/dedalus_labs/types/response.py">Response</a></code>
119+
95120
# Chat
96121

97122
## Completions
@@ -128,6 +153,7 @@ from dedalus_labs.types.chat import (
128153
ChoiceLogprobs,
129154
CompletionTokensDetails,
130155
CompletionUsage,
156+
DeferredCallResponse,
131157
InputTokenDetails,
132158
PredictionContent,
133159
PromptTokensDetails,

requirements-dev.lock

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@
33
-e .
44
annotated-types==0.7.0
55
# via pydantic
6-
anyio==4.12.0
6+
anyio==4.12.1
77
# via
88
# dedalus-labs
99
# httpx
1010
backports-asyncio-runner==1.2.0 ; python_full_version < '3.11'
1111
# via pytest-asyncio
12-
certifi==2025.11.12
12+
certifi==2026.1.4
1313
# via
1414
# httpcore
1515
# httpx
@@ -36,11 +36,13 @@ idna==3.11
3636
# via
3737
# anyio
3838
# httpx
39-
importlib-metadata==8.7.0
39+
importlib-metadata==8.7.1
4040
iniconfig==2.1.0 ; python_full_version < '3.10'
4141
# via pytest
4242
iniconfig==2.3.0 ; python_full_version >= '3.10'
4343
# via pytest
44+
jiter==0.13.0
45+
# via dedalus-labs
4446
markdown-it-py==3.0.0 ; python_full_version < '3.10'
4547
# via rich
4648
markdown-it-py==4.0.0 ; python_full_version >= '3.10'
@@ -50,11 +52,11 @@ mdurl==0.1.2
5052
mypy==1.17.0
5153
mypy-extensions==1.1.0
5254
# via mypy
53-
nodeenv==1.9.1
55+
nodeenv==1.10.0
5456
# via pyright
5557
packaging==25.0
5658
# via pytest
57-
pathspec==0.12.1
59+
pathspec==1.0.3
5860
# via mypy
5961
pluggy==1.6.0
6062
# via pytest
@@ -71,7 +73,7 @@ pytest==8.4.2 ; python_full_version < '3.10'
7173
# via
7274
# pytest-asyncio
7375
# pytest-xdist
74-
pytest==9.0.1 ; python_full_version >= '3.10'
76+
pytest==9.0.2 ; python_full_version >= '3.10'
7577
# via
7678
# pytest-asyncio
7779
# pytest-xdist
@@ -82,14 +84,14 @@ python-dateutil==2.9.0.post0 ; python_full_version < '3.10'
8284
# via time-machine
8385
respx==0.22.0
8486
rich==14.2.0
85-
ruff==0.14.7
87+
ruff==0.14.13
8688
six==1.17.0 ; python_full_version < '3.10'
8789
# via python-dateutil
8890
sniffio==1.3.1
8991
# via dedalus-labs
9092
time-machine==2.19.0 ; python_full_version < '3.10'
91-
time-machine==3.1.0 ; python_full_version >= '3.10'
92-
tomli==2.3.0 ; python_full_version < '3.11'
93+
time-machine==3.2.0 ; python_full_version >= '3.10'
94+
tomli==2.4.0 ; python_full_version < '3.11'
9395
# via
9496
# mypy
9597
# pytest

scripts/format

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,4 @@ uv run ruff check --fix .
1111
uv run ruff format
1212

1313
echo "==> Formatting docs"
14-
uv run python scripts/utils/ruffen-docs.py README.md api.md
14+
uv run python scripts/utils/ruffen-docs.py README.md $(find . -type f -name api.md)

scripts/mock

Lines changed: 0 additions & 41 deletions
This file was deleted.

scripts/test

Lines changed: 0 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -4,53 +4,7 @@ set -e
44

55
cd "$(dirname "$0")/.."
66

7-
RED='\033[0;31m'
8-
GREEN='\033[0;32m'
9-
YELLOW='\033[0;33m'
10-
NC='\033[0m' # No Color
117

12-
function prism_is_running() {
13-
curl --silent "http://localhost:4010" >/dev/null 2>&1
14-
}
15-
16-
kill_server_on_port() {
17-
pids=$(lsof -t -i tcp:"$1" || echo "")
18-
if [ "$pids" != "" ]; then
19-
kill "$pids"
20-
echo "Stopped $pids."
21-
fi
22-
}
23-
24-
function is_overriding_api_base_url() {
25-
[ -n "$TEST_API_BASE_URL" ]
26-
}
27-
28-
if ! is_overriding_api_base_url && ! prism_is_running ; then
29-
# When we exit this script, make sure to kill the background mock server process
30-
trap 'kill_server_on_port 4010' EXIT
31-
32-
# Start the dev server
33-
./scripts/mock --daemon
34-
fi
35-
36-
if is_overriding_api_base_url ; then
37-
echo -e "${GREEN}✔ Running tests against ${TEST_API_BASE_URL}${NC}"
38-
echo
39-
elif ! prism_is_running ; then
40-
echo -e "${RED}ERROR:${NC} The test suite will not run without a mock Prism server"
41-
echo -e "running against your OpenAPI spec."
42-
echo
43-
echo -e "To run the server, pass in the path or url of your OpenAPI"
44-
echo -e "spec to the prism command:"
45-
echo
46-
echo -e " \$ ${YELLOW}npm exec --package=@stainless-api/prism-cli@5.15.0 -- prism mock path/to/your.openapi.yml${NC}"
47-
echo
48-
49-
exit 1
50-
else
51-
echo -e "${GREEN}✔ Mock prism server is running with your OpenAPI spec${NC}"
52-
echo
53-
fi
548

559
export DEFER_PYDANTIC_BUILD=false
5610

0 commit comments

Comments
 (0)