Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 0 additions & 3 deletions .stats.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1 @@
configured_endpoints: 31
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hyperspell/hyperspell-e57add0181eb2a057f8416eaf4020dd5b3042431342a51e3d4dc39af4a41aced.yml
openapi_spec_hash: d0d66b814ebe56ac7c0135f9f3aab616
config_hash: 11e84d884a86d2db0411c35fae6e9121
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ It is generated with [Stainless](https://www.stainless.com/).

Use the Hyperspell 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.

[![Add to Cursor](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/en-US/install-mcp?name=%40hyperspell%2Fhyperspell-mcp&config=eyJuYW1lIjoiQGh5cGVyc3BlbGwvaHlwZXJzcGVsbC1tY3AiLCJ0cmFuc3BvcnQiOiJodHRwIiwidXJsIjoiaHR0cHM6Ly9oeXBlcnNwZWxsLnN0bG1jcC5jb20iLCJoZWFkZXJzIjp7IngtaHlwZXJzcGVsbC1hcGkta2V5IjoiTXkgQVBJIEtleSIsIlgtQXMtVXNlciI6Ik15IFVzZXIgSUQifX0)
[![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%22%40hyperspell%2Fhyperspell-mcp%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fhyperspell.stlmcp.com%22%2C%22headers%22%3A%7B%22x-hyperspell-api-key%22%3A%22My%20API%20Key%22%2C%22X-As-User%22%3A%22My%20User%20ID%22%7D%7D)
[![Add to Cursor](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/en-US/install-mcp?name=%40hyperspell%2Fhyperspell-mcp&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkBoeXBlcnNwZWxsL2h5cGVyc3BlbGwtbWNwIl0sImVudiI6eyJIWVBFUlNQRUxMX0FQSV9LRVkiOiJNeSBBUEkgS2V5IiwiSFlQRVJTUEVMTF9VU0VSX0lEIjoiTXkgVXNlciBJRCJ9fQ)
[![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%22%40hyperspell%2Fhyperspell-mcp%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40hyperspell%2Fhyperspell-mcp%22%5D%2C%22env%22%3A%7B%22HYPERSPELL_API_KEY%22%3A%22My%20API%20Key%22%2C%22HYPERSPELL_USER_ID%22%3A%22My%20User%20ID%22%7D%7D)

> Note: You may need to set environment variables in your MCP client.

Expand Down
4 changes: 4 additions & 0 deletions bin/check-release-environment
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@

errors=()

if [ -z "${RELEASE_PLEASE_TOKEN}" ]; then
errors+=("The RELEASE_PLEASE_TOKEN secret has not been set. Create a fine-grained GitHub PAT and add it as a repository secret.")
fi

lenErrors=${#errors[@]}

if [[ lenErrors -gt 0 ]]; then
Expand Down
15 changes: 8 additions & 7 deletions scripts/mock

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion scripts/utils/upload-artifact.sh
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ UPLOAD_RESPONSE=$(curl -v -X PUT \

if echo "$UPLOAD_RESPONSE" | grep -q "HTTP/[0-9.]* 200"; then
echo -e "\033[32mUploaded build to Stainless storage.\033[0m"
echo -e "\033[32mInstallation: pip install 'https://pkg.stainless.com/s/hyperspell-python/$SHA/$FILENAME'\033[0m"
echo -e "\033[32mInstallation: pip install 'https://pkg.stainless.com/s/python-sdk/$SHA/$FILENAME'\033[0m"
else
echo -e "\033[31mFailed to upload artifact.\033[0m"
exit 1
Expand Down
20 changes: 16 additions & 4 deletions src/hyperspell/resources/connections.py
Original file line number Diff line number Diff line change
Expand Up @@ -72,8 +72,14 @@ def revoke(
timeout: float | httpx.Timeout | None | NotGiven = not_given,
) -> ConnectionRevokeResponse:
"""
Revokes Hyperspell's access the given provider and deletes all stored
credentials and indexed data.
Revoke Hyperspell's access to a provider and delete this user's stored data.

The external OAuth/Unified revoke and the (potentially large) data purge run in
a background Temporal workflow; this returns `202 Accepted` immediately. A heavy
provider — a Gmail account can carry hundreds of thousands of chunks — plus a
slow third-party revoke would otherwise outrun the request timeout: the old
synchronous path "timed out" for the caller while still finishing server-side,
making the outcome invisible. Idempotent per (app, user, provider).

Args:
extra_headers: Send extra headers
Expand Down Expand Up @@ -146,8 +152,14 @@ async def revoke(
timeout: float | httpx.Timeout | None | NotGiven = not_given,
) -> ConnectionRevokeResponse:
"""
Revokes Hyperspell's access the given provider and deletes all stored
credentials and indexed data.
Revoke Hyperspell's access to a provider and delete this user's stored data.

The external OAuth/Unified revoke and the (potentially large) data purge run in
a background Temporal workflow; this returns `202 Accepted` immediately. A heavy
provider — a Gmail account can carry hundreds of thousands of chunks — plus a
slow third-party revoke would otherwise outrun the request timeout: the old
synchronous path "timed out" for the caller while still finishing server-side,
making the outcome invisible. Idempotent per (app, user, provider).

Args:
extra_headers: Send extra headers
Expand Down
2 changes: 2 additions & 0 deletions src/hyperspell/types/shared/conversation.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@ class Conversation(BaseModel):

text: Optional[str] = None

title: Optional[str] = None

type: Optional[Literal["conversation"]] = None


Expand Down
8 changes: 4 additions & 4 deletions tests/api_resources/test_memories.py
Original file line number Diff line number Diff line change
Expand Up @@ -294,7 +294,7 @@ def test_method_search_with_all_params(self, client: Hyperspell) -> None:
query="What does Hyperspell do?",
answer=True,
effort="minimal",
max_results=0,
max_results=1,
options={
"after": parse_datetime("2019-12-27T18:11:19.117Z"),
"answer_model": "llama-3.1",
Expand All @@ -310,7 +310,7 @@ def test_method_search_with_all_params(self, client: Hyperspell) -> None:
"label_ids": ["string"],
"weight": 0,
},
"max_results": 200,
"max_results": 1,
"memory_types": ["procedure"],
"notion": {
"notion_page_ids": ["string"],
Expand Down Expand Up @@ -700,7 +700,7 @@ async def test_method_search_with_all_params(self, async_client: AsyncHyperspell
query="What does Hyperspell do?",
answer=True,
effort="minimal",
max_results=0,
max_results=1,
options={
"after": parse_datetime("2019-12-27T18:11:19.117Z"),
"answer_model": "llama-3.1",
Expand All @@ -716,7 +716,7 @@ async def test_method_search_with_all_params(self, async_client: AsyncHyperspell
"label_ids": ["string"],
"weight": 0,
},
"max_results": 200,
"max_results": 1,
"memory_types": ["procedure"],
"notion": {
"notion_page_ids": ["string"],
Expand Down
2 changes: 1 addition & 1 deletion uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading