From 1641d1c65d9f327f1ef08b2d845f3ea5bf0d37d0 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 18 Mar 2026 22:30:20 +0000 Subject: [PATCH 01/14] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index fa46781..6d0439a 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 30 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hyperspell%2Fhyperspell-b1f2b7cb843e6f4e6123e838ce29cbbaea0a48b1a72057632de1d0d21727c5d8.yml -openapi_spec_hash: 21a354f587a2fe19797860c7b6da81a9 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hyperspell%2Fhyperspell-74db7f2f52f21dd91ef3652895501f0a82008f699a5d0b49a58059609624b4dc.yml +openapi_spec_hash: 58616ba29b9ef5d0e0615b766bfd1a93 config_hash: 0ed970a9634b33d0af471738b478740d From 489061f36a798209f7ea49566f0f47f5b8964f44 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 20 Mar 2026 03:52:46 +0000 Subject: [PATCH 02/14] refactor(tests): switch from prism to steady --- CONTRIBUTING.md | 2 +- scripts/mock | 26 +++++++++++++------------- scripts/test | 16 ++++++++-------- 3 files changed, 22 insertions(+), 22 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 0bc8011..7b6dc76 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -65,7 +65,7 @@ $ pnpm link --global hyperspell ## Running tests -Most tests require you to [set up a mock server](https://github.com/stoplightio/prism) against the OpenAPI spec to run the tests. +Most tests require you to [set up a mock server](https://github.com/dgellow/steady) against the OpenAPI spec to run the tests. ```sh $ ./scripts/mock diff --git a/scripts/mock b/scripts/mock index bcf3b39..38201de 100755 --- a/scripts/mock +++ b/scripts/mock @@ -19,34 +19,34 @@ fi echo "==> Starting mock server with URL ${URL}" -# Run prism mock on the given spec +# Run steady mock on the given spec if [ "$1" == "--daemon" ]; then # Pre-install the package so the download doesn't eat into the startup timeout - npm exec --package=@stainless-api/prism-cli@5.15.0 -- prism --version + npm exec --package=@stdy/cli@0.19.3 -- steady --version - npm exec --package=@stainless-api/prism-cli@5.15.0 -- prism mock "$URL" &> .prism.log & + npm exec --package=@stdy/cli@0.19.3 -- steady --host 127.0.0.1 -p 4010 --validator-query-array-format=comma --validator-query-object-format=brackets "$URL" &> .stdy.log & - # Wait for server to come online (max 30s) + # Wait for server to come online via health endpoint (max 30s) echo -n "Waiting for server" attempts=0 - while ! grep -q "✖ fatal\|Prism is listening" ".prism.log" ; do + while ! curl --silent --fail "http://127.0.0.1:4010/_x-steady/health" >/dev/null 2>&1; do + if ! kill -0 $! 2>/dev/null; then + echo + cat .stdy.log + exit 1 + fi attempts=$((attempts + 1)) if [ "$attempts" -ge 300 ]; then echo - echo "Timed out waiting for Prism server to start" - cat .prism.log + echo "Timed out waiting for Steady server to start" + cat .stdy.log exit 1 fi echo -n "." sleep 0.1 done - if grep -q "✖ fatal" ".prism.log"; then - cat .prism.log - exit 1 - fi - echo else - npm exec --package=@stainless-api/prism-cli@5.15.0 -- prism mock "$URL" + npm exec --package=@stdy/cli@0.19.3 -- steady --host 127.0.0.1 -p 4010 --validator-query-array-format=comma --validator-query-object-format=brackets "$URL" fi diff --git a/scripts/test b/scripts/test index 7bce051..af1c7a5 100755 --- a/scripts/test +++ b/scripts/test @@ -9,8 +9,8 @@ GREEN='\033[0;32m' YELLOW='\033[0;33m' NC='\033[0m' # No Color -function prism_is_running() { - curl --silent "http://localhost:4010" >/dev/null 2>&1 +function steady_is_running() { + curl --silent "http://127.0.0.1:4010/_x-steady/health" >/dev/null 2>&1 } kill_server_on_port() { @@ -25,7 +25,7 @@ function is_overriding_api_base_url() { [ -n "$TEST_API_BASE_URL" ] } -if ! is_overriding_api_base_url && ! prism_is_running ; then +if ! is_overriding_api_base_url && ! steady_is_running ; then # When we exit this script, make sure to kill the background mock server process trap 'kill_server_on_port 4010' EXIT @@ -36,19 +36,19 @@ fi if is_overriding_api_base_url ; then echo -e "${GREEN}✔ Running tests against ${TEST_API_BASE_URL}${NC}" echo -elif ! prism_is_running ; then - echo -e "${RED}ERROR:${NC} The test suite will not run without a mock Prism server" +elif ! steady_is_running ; then + echo -e "${RED}ERROR:${NC} The test suite will not run without a mock Steady server" echo -e "running against your OpenAPI spec." echo echo -e "To run the server, pass in the path or url of your OpenAPI" - echo -e "spec to the prism command:" + echo -e "spec to the steady command:" echo - echo -e " \$ ${YELLOW}npm exec --package=@stainless-api/prism-cli@5.15.0 -- prism mock path/to/your.openapi.yml${NC}" + echo -e " \$ ${YELLOW}npm exec --package=@stdy/cli@0.19.3 -- steady path/to/your.openapi.yml --host 127.0.0.1 -p 4010 --validator-query-array-format=comma --validator-query-object-format=brackets${NC}" echo exit 1 else - echo -e "${GREEN}✔ Mock prism server is running with your OpenAPI spec${NC}" + echo -e "${GREEN}✔ Mock steady server is running with your OpenAPI spec${NC}" echo fi From 60d723b2005ee840ec27fbe4be01b2d363cd2227 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 21 Mar 2026 05:08:29 +0000 Subject: [PATCH 03/14] chore(tests): bump steady to v0.19.4 --- scripts/mock | 6 +++--- scripts/test | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/mock b/scripts/mock index 38201de..e1c19e8 100755 --- a/scripts/mock +++ b/scripts/mock @@ -22,9 +22,9 @@ echo "==> Starting mock server with URL ${URL}" # Run steady mock on the given spec if [ "$1" == "--daemon" ]; then # Pre-install the package so the download doesn't eat into the startup timeout - npm exec --package=@stdy/cli@0.19.3 -- steady --version + npm exec --package=@stdy/cli@0.19.4 -- steady --version - npm exec --package=@stdy/cli@0.19.3 -- steady --host 127.0.0.1 -p 4010 --validator-query-array-format=comma --validator-query-object-format=brackets "$URL" &> .stdy.log & + npm exec --package=@stdy/cli@0.19.4 -- steady --host 127.0.0.1 -p 4010 --validator-form-array-format=comma --validator-query-array-format=comma --validator-form-object-format=brackets --validator-query-object-format=brackets "$URL" &> .stdy.log & # Wait for server to come online via health endpoint (max 30s) echo -n "Waiting for server" @@ -48,5 +48,5 @@ if [ "$1" == "--daemon" ]; then echo else - npm exec --package=@stdy/cli@0.19.3 -- steady --host 127.0.0.1 -p 4010 --validator-query-array-format=comma --validator-query-object-format=brackets "$URL" + npm exec --package=@stdy/cli@0.19.4 -- steady --host 127.0.0.1 -p 4010 --validator-form-array-format=comma --validator-query-array-format=comma --validator-form-object-format=brackets --validator-query-object-format=brackets "$URL" fi diff --git a/scripts/test b/scripts/test index af1c7a5..8cf5220 100755 --- a/scripts/test +++ b/scripts/test @@ -43,7 +43,7 @@ elif ! steady_is_running ; then echo -e "To run the server, pass in the path or url of your OpenAPI" echo -e "spec to the steady command:" echo - echo -e " \$ ${YELLOW}npm exec --package=@stdy/cli@0.19.3 -- steady path/to/your.openapi.yml --host 127.0.0.1 -p 4010 --validator-query-array-format=comma --validator-query-object-format=brackets${NC}" + echo -e " \$ ${YELLOW}npm exec --package=@stdy/cli@0.19.4 -- steady path/to/your.openapi.yml --host 127.0.0.1 -p 4010 --validator-form-array-format=comma --validator-query-array-format=comma --validator-form-object-format=brackets --validator-query-object-format=brackets${NC}" echo exit 1 From be42038d3d1aa652e8552bba11cb1d31bcaa08a6 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 21 Mar 2026 05:13:59 +0000 Subject: [PATCH 04/14] chore(tests): bump steady to v0.19.5 --- scripts/mock | 6 +++--- scripts/test | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/mock b/scripts/mock index e1c19e8..ab814d3 100755 --- a/scripts/mock +++ b/scripts/mock @@ -22,9 +22,9 @@ echo "==> Starting mock server with URL ${URL}" # Run steady mock on the given spec if [ "$1" == "--daemon" ]; then # Pre-install the package so the download doesn't eat into the startup timeout - npm exec --package=@stdy/cli@0.19.4 -- steady --version + npm exec --package=@stdy/cli@0.19.5 -- steady --version - npm exec --package=@stdy/cli@0.19.4 -- steady --host 127.0.0.1 -p 4010 --validator-form-array-format=comma --validator-query-array-format=comma --validator-form-object-format=brackets --validator-query-object-format=brackets "$URL" &> .stdy.log & + npm exec --package=@stdy/cli@0.19.5 -- steady --host 127.0.0.1 -p 4010 --validator-form-array-format=comma --validator-query-array-format=comma --validator-form-object-format=brackets --validator-query-object-format=brackets "$URL" &> .stdy.log & # Wait for server to come online via health endpoint (max 30s) echo -n "Waiting for server" @@ -48,5 +48,5 @@ if [ "$1" == "--daemon" ]; then echo else - npm exec --package=@stdy/cli@0.19.4 -- steady --host 127.0.0.1 -p 4010 --validator-form-array-format=comma --validator-query-array-format=comma --validator-form-object-format=brackets --validator-query-object-format=brackets "$URL" + npm exec --package=@stdy/cli@0.19.5 -- steady --host 127.0.0.1 -p 4010 --validator-form-array-format=comma --validator-query-array-format=comma --validator-form-object-format=brackets --validator-query-object-format=brackets "$URL" fi diff --git a/scripts/test b/scripts/test index 8cf5220..907f7be 100755 --- a/scripts/test +++ b/scripts/test @@ -43,7 +43,7 @@ elif ! steady_is_running ; then echo -e "To run the server, pass in the path or url of your OpenAPI" echo -e "spec to the steady command:" echo - echo -e " \$ ${YELLOW}npm exec --package=@stdy/cli@0.19.4 -- steady path/to/your.openapi.yml --host 127.0.0.1 -p 4010 --validator-form-array-format=comma --validator-query-array-format=comma --validator-form-object-format=brackets --validator-query-object-format=brackets${NC}" + echo -e " \$ ${YELLOW}npm exec --package=@stdy/cli@0.19.5 -- steady path/to/your.openapi.yml --host 127.0.0.1 -p 4010 --validator-form-array-format=comma --validator-query-array-format=comma --validator-form-object-format=brackets --validator-query-object-format=brackets${NC}" echo exit 1 From c684933f087a8e23948c932180ead79e01bec4b4 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 21 Mar 2026 21:30:12 +0000 Subject: [PATCH 05/14] feat(api): api update --- .stats.yml | 4 ++-- src/resources/actions.ts | 6 ++++-- src/resources/auth.ts | 2 ++ src/resources/connections.ts | 3 ++- src/resources/integrations/integrations.ts | 3 ++- src/resources/integrations/web-crawler.ts | 3 ++- src/resources/memories.ts | 20 ++++++++++++++------ src/resources/shared.ts | 3 ++- 8 files changed, 30 insertions(+), 14 deletions(-) diff --git a/.stats.yml b/.stats.yml index 6d0439a..58f19c0 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 30 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hyperspell%2Fhyperspell-74db7f2f52f21dd91ef3652895501f0a82008f699a5d0b49a58059609624b4dc.yml -openapi_spec_hash: 58616ba29b9ef5d0e0615b766bfd1a93 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hyperspell%2Fhyperspell-f36a4766adbf62d457ea756c663e49bca3b0aaea3690a4985d546806850c2e88.yml +openapi_spec_hash: 5b623572e06fe5afbd5291a90b89e51d config_hash: 0ed970a9634b33d0af471738b478740d diff --git a/src/resources/actions.ts b/src/resources/actions.ts index 2f48ff9..5098e22 100644 --- a/src/resources/actions.ts +++ b/src/resources/actions.ts @@ -75,7 +75,8 @@ export interface ActionAddReactionParams { | 'vault' | 'web_crawler' | 'trace' - | 'microsoft_teams'; + | 'microsoft_teams' + | 'gmail_actions'; /** * Message timestamp to react to @@ -105,7 +106,8 @@ export interface ActionSendMessageParams { | 'vault' | 'web_crawler' | 'trace' - | 'microsoft_teams'; + | 'microsoft_teams' + | 'gmail_actions'; /** * Message text diff --git a/src/resources/auth.ts b/src/resources/auth.ts index 09b75e9..4ec2f96 100644 --- a/src/resources/auth.ts +++ b/src/resources/auth.ts @@ -68,6 +68,7 @@ export interface AuthMeResponse { | 'web_crawler' | 'trace' | 'microsoft_teams' + | 'gmail_actions' >; /** @@ -87,6 +88,7 @@ export interface AuthMeResponse { | 'web_crawler' | 'trace' | 'microsoft_teams' + | 'gmail_actions' >; /** diff --git a/src/resources/connections.ts b/src/resources/connections.ts index 529d755..3fdfa10 100644 --- a/src/resources/connections.ts +++ b/src/resources/connections.ts @@ -59,7 +59,8 @@ export namespace ConnectionListResponse { | 'vault' | 'web_crawler' | 'trace' - | 'microsoft_teams'; + | 'microsoft_teams' + | 'gmail_actions'; } } diff --git a/src/resources/integrations/integrations.ts b/src/resources/integrations/integrations.ts index 34236d5..25d2d2d 100644 --- a/src/resources/integrations/integrations.ts +++ b/src/resources/integrations/integrations.ts @@ -94,7 +94,8 @@ export namespace IntegrationListResponse { | 'vault' | 'web_crawler' | 'trace' - | 'microsoft_teams'; + | 'microsoft_teams' + | 'gmail_actions'; } } diff --git a/src/resources/integrations/web-crawler.ts b/src/resources/integrations/web-crawler.ts index 1b4919b..be1abe0 100644 --- a/src/resources/integrations/web-crawler.ts +++ b/src/resources/integrations/web-crawler.ts @@ -36,7 +36,8 @@ export interface WebCrawlerIndexResponse { | 'vault' | 'web_crawler' | 'trace' - | 'microsoft_teams'; + | 'microsoft_teams' + | 'gmail_actions'; status: 'pending' | 'processing' | 'completed' | 'failed' | 'pending_review' | 'skipped'; } diff --git a/src/resources/memories.ts b/src/resources/memories.ts index ca9f6a7..830927e 100644 --- a/src/resources/memories.ts +++ b/src/resources/memories.ts @@ -202,7 +202,8 @@ export interface Memory { | 'vault' | 'web_crawler' | 'trace' - | 'microsoft_teams'; + | 'microsoft_teams' + | 'gmail_actions'; /** * The type of document (e.g. Document, Website, Email) @@ -242,7 +243,8 @@ export interface MemoryStatus { | 'vault' | 'web_crawler' | 'trace' - | 'microsoft_teams'; + | 'microsoft_teams' + | 'gmail_actions'; status: 'pending' | 'processing' | 'completed' | 'failed' | 'pending_review' | 'skipped'; } @@ -267,7 +269,8 @@ export interface MemoryDeleteResponse { | 'vault' | 'web_crawler' | 'trace' - | 'microsoft_teams'; + | 'microsoft_teams' + | 'gmail_actions'; success: boolean; } @@ -312,7 +315,8 @@ export interface MemoryUpdateParams { | 'vault' | 'web_crawler' | 'trace' - | 'microsoft_teams'; + | 'microsoft_teams' + | 'gmail_actions'; /** * @deprecated Body param: The collection to move the document to — deprecated, set @@ -368,6 +372,7 @@ export interface MemoryListParams extends CursorPageParams { | 'web_crawler' | 'trace' | 'microsoft_teams' + | 'gmail_actions' | null; /** @@ -390,7 +395,8 @@ export interface MemoryDeleteParams { | 'vault' | 'web_crawler' | 'trace' - | 'microsoft_teams'; + | 'microsoft_teams' + | 'gmail_actions'; } export interface MemoryAddParams { @@ -492,7 +498,8 @@ export interface MemoryGetParams { | 'vault' | 'web_crawler' | 'trace' - | 'microsoft_teams'; + | 'microsoft_teams' + | 'gmail_actions'; } export interface MemorySearchParams { @@ -533,6 +540,7 @@ export interface MemorySearchParams { | 'web_crawler' | 'trace' | 'microsoft_teams' + | 'gmail_actions' >; } diff --git a/src/resources/shared.ts b/src/resources/shared.ts index 9ebcbd7..6c46945 100644 --- a/src/resources/shared.ts +++ b/src/resources/shared.ts @@ -68,7 +68,8 @@ export interface Resource { | 'vault' | 'web_crawler' | 'trace' - | 'microsoft_teams'; + | 'microsoft_teams' + | 'gmail_actions'; /** * Provider folder ID this resource belongs to From a768bf6fbd1eaa82a414535224da3f19f123907b Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 23 Mar 2026 22:29:54 +0000 Subject: [PATCH 06/14] feat(api): api update --- .stats.yml | 4 ++-- src/resources/integrations/integrations.ts | 5 +++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 58f19c0..60bd61e 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 30 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hyperspell%2Fhyperspell-f36a4766adbf62d457ea756c663e49bca3b0aaea3690a4985d546806850c2e88.yml -openapi_spec_hash: 5b623572e06fe5afbd5291a90b89e51d +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hyperspell%2Fhyperspell-23bd01d736c9d8b6a5826bd5e57b051769446e361fa288294175b9f7b0c0abd2.yml +openapi_spec_hash: 2e4983fd11a050ada444d916abdba2db config_hash: 0ed970a9634b33d0af471738b478740d diff --git a/src/resources/integrations/integrations.ts b/src/resources/integrations/integrations.ts index 25d2d2d..4d5f80f 100644 --- a/src/resources/integrations/integrations.ts +++ b/src/resources/integrations/integrations.ts @@ -96,6 +96,11 @@ export namespace IntegrationListResponse { | 'trace' | 'microsoft_teams' | 'gmail_actions'; + + /** + * Whether this integration only supports write actions (no sync) + */ + actions_only?: boolean; } } From 4949619e1a3fd9e7c6c30eab4603b72f94c476c8 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 24 Mar 2026 05:10:36 +0000 Subject: [PATCH 07/14] chore(internal): update gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index d62bea5..b7d4f6b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .prism.log +.stdy.log node_modules yarn-error.log codegen.log From 028a8ad398b22454643dd4ddf8fec700fb6dfb5b Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 24 Mar 2026 05:14:18 +0000 Subject: [PATCH 08/14] chore(internal): fix MCP server TS errors that occur with required client options --- packages/mcp-server/src/code-tool.ts | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/packages/mcp-server/src/code-tool.ts b/packages/mcp-server/src/code-tool.ts index 0b85b1d..b26fc4c 100644 --- a/packages/mcp-server/src/code-tool.ts +++ b/packages/mcp-server/src/code-tool.ts @@ -285,16 +285,14 @@ const localDenoHandler = async ({ // Strip null/undefined values so that the worker SDK client can fall back to // reading from environment variables (including any upstreamClientEnvs). - const opts: ClientOptions = Object.fromEntries( - Object.entries({ - baseURL: client.baseURL, - apiKey: client.apiKey, - userID: client.userID, - defaultHeaders: { - 'X-Stainless-MCP': 'true', - }, - }).filter(([_, v]) => v != null), - ) as ClientOptions; + const opts = { + ...(client.baseURL != null ? { baseURL: client.baseURL } : undefined), + ...(client.apiKey != null ? { apiKey: client.apiKey } : undefined), + ...(client.userID != null ? { userID: client.userID } : undefined), + defaultHeaders: { + 'X-Stainless-MCP': 'true', + }, + } satisfies Partial as ClientOptions; const req = worker.request( 'http://localhost', From 7241e1e18f60733bd2101470a65387dc839c837a Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 24 Mar 2026 05:16:39 +0000 Subject: [PATCH 09/14] chore(tests): bump steady to v0.19.6 --- scripts/mock | 6 +++--- scripts/test | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/mock b/scripts/mock index ab814d3..b319bdf 100755 --- a/scripts/mock +++ b/scripts/mock @@ -22,9 +22,9 @@ echo "==> Starting mock server with URL ${URL}" # Run steady mock on the given spec if [ "$1" == "--daemon" ]; then # Pre-install the package so the download doesn't eat into the startup timeout - npm exec --package=@stdy/cli@0.19.5 -- steady --version + npm exec --package=@stdy/cli@0.19.6 -- steady --version - npm exec --package=@stdy/cli@0.19.5 -- steady --host 127.0.0.1 -p 4010 --validator-form-array-format=comma --validator-query-array-format=comma --validator-form-object-format=brackets --validator-query-object-format=brackets "$URL" &> .stdy.log & + npm exec --package=@stdy/cli@0.19.6 -- steady --host 127.0.0.1 -p 4010 --validator-form-array-format=comma --validator-query-array-format=comma --validator-form-object-format=brackets --validator-query-object-format=brackets "$URL" &> .stdy.log & # Wait for server to come online via health endpoint (max 30s) echo -n "Waiting for server" @@ -48,5 +48,5 @@ if [ "$1" == "--daemon" ]; then echo else - npm exec --package=@stdy/cli@0.19.5 -- steady --host 127.0.0.1 -p 4010 --validator-form-array-format=comma --validator-query-array-format=comma --validator-form-object-format=brackets --validator-query-object-format=brackets "$URL" + npm exec --package=@stdy/cli@0.19.6 -- steady --host 127.0.0.1 -p 4010 --validator-form-array-format=comma --validator-query-array-format=comma --validator-form-object-format=brackets --validator-query-object-format=brackets "$URL" fi diff --git a/scripts/test b/scripts/test index 907f7be..8061e04 100755 --- a/scripts/test +++ b/scripts/test @@ -43,7 +43,7 @@ elif ! steady_is_running ; then echo -e "To run the server, pass in the path or url of your OpenAPI" echo -e "spec to the steady command:" echo - echo -e " \$ ${YELLOW}npm exec --package=@stdy/cli@0.19.5 -- steady path/to/your.openapi.yml --host 127.0.0.1 -p 4010 --validator-form-array-format=comma --validator-query-array-format=comma --validator-form-object-format=brackets --validator-query-object-format=brackets${NC}" + echo -e " \$ ${YELLOW}npm exec --package=@stdy/cli@0.19.6 -- steady path/to/your.openapi.yml --host 127.0.0.1 -p 4010 --validator-form-array-format=comma --validator-query-array-format=comma --validator-form-object-format=brackets --validator-query-object-format=brackets${NC}" echo exit 1 From 7a0446337adef66f262226409bcfcc7a9614a384 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 24 Mar 2026 17:30:09 +0000 Subject: [PATCH 10/14] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 60bd61e..4f7805b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 30 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hyperspell%2Fhyperspell-23bd01d736c9d8b6a5826bd5e57b051769446e361fa288294175b9f7b0c0abd2.yml -openapi_spec_hash: 2e4983fd11a050ada444d916abdba2db +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hyperspell%2Fhyperspell-8b0df513ca50dcaf708a82dec12d9cbbf4ac615203208373ea9b5394add77b17.yml +openapi_spec_hash: 3514190bfcbb5f804d631c0fd3bc0505 config_hash: 0ed970a9634b33d0af471738b478740d From 07b1ee87033ed506b9ff3500ce9467eabf639dcf Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 25 Mar 2026 03:28:30 +0000 Subject: [PATCH 11/14] chore(ci): skip lint on metadata-only changes Note that we still want to run tests, as these depend on the metadata. --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b90b92e..ca5b3dd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -19,7 +19,7 @@ jobs: timeout-minutes: 10 name: lint runs-on: ${{ github.repository == 'stainless-sdks/hyperspell-typescript' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }} - if: github.event_name == 'push' || github.event.pull_request.head.repo.fork + if: (github.event_name == 'push' || github.event.pull_request.head.repo.fork) && (github.event_name != 'push' || github.event.head_commit.message != 'codegen metadata') steps: - uses: actions/checkout@v6 @@ -43,7 +43,7 @@ jobs: timeout-minutes: 5 name: build runs-on: ${{ github.repository == 'stainless-sdks/hyperspell-typescript' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }} - if: github.event_name == 'push' || github.event.pull_request.head.repo.fork + if: (github.event_name == 'push' || github.event.pull_request.head.repo.fork) && (github.event_name != 'push' || github.event.head_commit.message != 'codegen metadata') permissions: contents: read id-token: write From 9d6b23b6c5254f9651d129b0e3c9f3b4ec8bfcea Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 25 Mar 2026 03:28:59 +0000 Subject: [PATCH 12/14] chore(tests): bump steady to v0.19.7 --- scripts/mock | 6 +++--- scripts/test | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/mock b/scripts/mock index b319bdf..09eb49f 100755 --- a/scripts/mock +++ b/scripts/mock @@ -22,9 +22,9 @@ echo "==> Starting mock server with URL ${URL}" # Run steady mock on the given spec if [ "$1" == "--daemon" ]; then # Pre-install the package so the download doesn't eat into the startup timeout - npm exec --package=@stdy/cli@0.19.6 -- steady --version + npm exec --package=@stdy/cli@0.19.7 -- steady --version - npm exec --package=@stdy/cli@0.19.6 -- steady --host 127.0.0.1 -p 4010 --validator-form-array-format=comma --validator-query-array-format=comma --validator-form-object-format=brackets --validator-query-object-format=brackets "$URL" &> .stdy.log & + npm exec --package=@stdy/cli@0.19.7 -- steady --host 127.0.0.1 -p 4010 --validator-form-array-format=comma --validator-query-array-format=comma --validator-form-object-format=brackets --validator-query-object-format=brackets "$URL" &> .stdy.log & # Wait for server to come online via health endpoint (max 30s) echo -n "Waiting for server" @@ -48,5 +48,5 @@ if [ "$1" == "--daemon" ]; then echo else - npm exec --package=@stdy/cli@0.19.6 -- steady --host 127.0.0.1 -p 4010 --validator-form-array-format=comma --validator-query-array-format=comma --validator-form-object-format=brackets --validator-query-object-format=brackets "$URL" + npm exec --package=@stdy/cli@0.19.7 -- steady --host 127.0.0.1 -p 4010 --validator-form-array-format=comma --validator-query-array-format=comma --validator-form-object-format=brackets --validator-query-object-format=brackets "$URL" fi diff --git a/scripts/test b/scripts/test index 8061e04..a7cf561 100755 --- a/scripts/test +++ b/scripts/test @@ -43,7 +43,7 @@ elif ! steady_is_running ; then echo -e "To run the server, pass in the path or url of your OpenAPI" echo -e "spec to the steady command:" echo - echo -e " \$ ${YELLOW}npm exec --package=@stdy/cli@0.19.6 -- steady path/to/your.openapi.yml --host 127.0.0.1 -p 4010 --validator-form-array-format=comma --validator-query-array-format=comma --validator-form-object-format=brackets --validator-query-object-format=brackets${NC}" + echo -e " \$ ${YELLOW}npm exec --package=@stdy/cli@0.19.7 -- steady path/to/your.openapi.yml --host 127.0.0.1 -p 4010 --validator-form-array-format=comma --validator-query-array-format=comma --validator-form-object-format=brackets --validator-query-object-format=brackets${NC}" echo exit 1 From c4f98492c66439e92c93d2b048af8ee108dc0bae Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 26 Mar 2026 17:30:02 +0000 Subject: [PATCH 13/14] feat(api): api update --- .stats.yml | 4 ++-- src/resources/memories.ts | 6 ++++++ tests/api-resources/memories.test.ts | 1 + 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 4f7805b..7824b9c 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 30 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hyperspell%2Fhyperspell-8b0df513ca50dcaf708a82dec12d9cbbf4ac615203208373ea9b5394add77b17.yml -openapi_spec_hash: 3514190bfcbb5f804d631c0fd3bc0505 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hyperspell%2Fhyperspell-1cb26e44dcabc61d707d60021634ddc0f49801a4df53e9d0a5b1a94c5cc7fdda.yml +openapi_spec_hash: d79eaf4567192a98df6af149efe3dc86 config_hash: 0ed970a9634b33d0af471738b478740d diff --git a/src/resources/memories.ts b/src/resources/memories.ts index 830927e..d8eb361 100644 --- a/src/resources/memories.ts +++ b/src/resources/memories.ts @@ -513,6 +513,12 @@ export interface MemorySearchParams { */ answer?: boolean; + /** + * Effort level. 0 = pass query through verbatim. 1 = LLM rewrites the query for + * better retrieval and extracts date filters. + */ + effort?: number; + /** * @deprecated Maximum number of results to return. */ diff --git a/tests/api-resources/memories.test.ts b/tests/api-resources/memories.test.ts index 3e78ca2..a93b4d8 100644 --- a/tests/api-resources/memories.test.ts +++ b/tests/api-resources/memories.test.ts @@ -155,6 +155,7 @@ describe('resource memories', () => { const response = await client.memories.search({ query: 'query', answer: true, + effort: 0, max_results: 0, options: { after: '2019-12-27T18:11:19.117Z', From a7b2b1131af3d5240748d2189a1d2971606c3598 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 26 Mar 2026 17:30:24 +0000 Subject: [PATCH 14/14] release: 0.35.1 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 26 ++++++++++++++++++++++++++ package.json | 2 +- packages/mcp-server/manifest.json | 2 +- packages/mcp-server/package.json | 2 +- packages/mcp-server/src/server.ts | 2 +- src/version.ts | 2 +- 7 files changed, 32 insertions(+), 6 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 3a39fd8..811a88e 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.35.0" + ".": "0.35.1" } diff --git a/CHANGELOG.md b/CHANGELOG.md index 559535f..abbde7c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,31 @@ # Changelog +## 0.35.1 (2026-03-26) + +Full Changelog: [v0.35.0...v0.35.1](https://github.com/hyperspell/node-sdk/compare/v0.35.0...v0.35.1) + +### Features + +* **api:** api update ([c4f9849](https://github.com/hyperspell/node-sdk/commit/c4f98492c66439e92c93d2b048af8ee108dc0bae)) +* **api:** api update ([a768bf6](https://github.com/hyperspell/node-sdk/commit/a768bf6fbd1eaa82a414535224da3f19f123907b)) +* **api:** api update ([c684933](https://github.com/hyperspell/node-sdk/commit/c684933f087a8e23948c932180ead79e01bec4b4)) + + +### Chores + +* **ci:** skip lint on metadata-only changes ([07b1ee8](https://github.com/hyperspell/node-sdk/commit/07b1ee87033ed506b9ff3500ce9467eabf639dcf)) +* **internal:** fix MCP server TS errors that occur with required client options ([028a8ad](https://github.com/hyperspell/node-sdk/commit/028a8ad398b22454643dd4ddf8fec700fb6dfb5b)) +* **internal:** update gitignore ([4949619](https://github.com/hyperspell/node-sdk/commit/4949619e1a3fd9e7c6c30eab4603b72f94c476c8)) +* **tests:** bump steady to v0.19.4 ([60d723b](https://github.com/hyperspell/node-sdk/commit/60d723b2005ee840ec27fbe4be01b2d363cd2227)) +* **tests:** bump steady to v0.19.5 ([be42038](https://github.com/hyperspell/node-sdk/commit/be42038d3d1aa652e8552bba11cb1d31bcaa08a6)) +* **tests:** bump steady to v0.19.6 ([7241e1e](https://github.com/hyperspell/node-sdk/commit/7241e1e18f60733bd2101470a65387dc839c837a)) +* **tests:** bump steady to v0.19.7 ([9d6b23b](https://github.com/hyperspell/node-sdk/commit/9d6b23b6c5254f9651d129b0e3c9f3b4ec8bfcea)) + + +### Refactors + +* **tests:** switch from prism to steady ([489061f](https://github.com/hyperspell/node-sdk/commit/489061f36a798209f7ea49566f0f47f5b8964f44)) + ## 0.35.0 (2026-03-18) Full Changelog: [v0.34.0...v0.35.0](https://github.com/hyperspell/node-sdk/compare/v0.34.0...v0.35.0) diff --git a/package.json b/package.json index ffd3a78..fdc1def 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "hyperspell", - "version": "0.35.0", + "version": "0.35.1", "description": "The official TypeScript library for the Hyperspell API", "author": "Hyperspell ", "types": "dist/index.d.ts", diff --git a/packages/mcp-server/manifest.json b/packages/mcp-server/manifest.json index 27cc620..e47427a 100644 --- a/packages/mcp-server/manifest.json +++ b/packages/mcp-server/manifest.json @@ -1,7 +1,7 @@ { "dxt_version": "0.2", "name": "hyperspell-mcp", - "version": "0.35.0", + "version": "0.35.1", "description": "The official MCP Server for the Hyperspell API", "author": { "name": "Hyperspell", diff --git a/packages/mcp-server/package.json b/packages/mcp-server/package.json index c23553d..9254990 100644 --- a/packages/mcp-server/package.json +++ b/packages/mcp-server/package.json @@ -1,6 +1,6 @@ { "name": "hyperspell-mcp", - "version": "0.35.0", + "version": "0.35.1", "description": "The official MCP Server for the Hyperspell API", "author": "Hyperspell ", "types": "dist/index.d.ts", diff --git a/packages/mcp-server/src/server.ts b/packages/mcp-server/src/server.ts index cd8f82e..8ca1736 100644 --- a/packages/mcp-server/src/server.ts +++ b/packages/mcp-server/src/server.ts @@ -21,7 +21,7 @@ export const newMcpServer = async (stainlessApiKey: string | undefined) => new McpServer( { name: 'hyperspell_api', - version: '0.35.0', + version: '0.35.1', }, { instructions: await getInstructions(stainlessApiKey), diff --git a/src/version.ts b/src/version.ts index 3f1d432..c585ef4 100644 --- a/src/version.ts +++ b/src/version.ts @@ -1 +1 @@ -export const VERSION = '0.35.0'; // x-release-please-version +export const VERSION = '0.35.1'; // x-release-please-version