From 2f86ef15de4f9793b775c2d1d36866306fb48d7a Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 17 Aug 2026 10:19:22 +0000 Subject: [PATCH 1/3] feat(api): api update --- .stats.yml | 4 ++-- src/nimble_python/_client.py | 14 +++++++++++ src/nimble_python/resources/agents/agents.py | 12 ++++------ src/nimble_python/resources/agents/runs.py | 4 ++-- .../resources/extract/extract.py | 24 +++++++++++++++++++ .../types/agent_create_params.py | 2 +- .../types/agent_create_response.py | 2 +- src/nimble_python/types/agent_get_response.py | 2 +- src/nimble_python/types/agent_list_params.py | 3 --- .../types/agent_list_response.py | 2 +- src/nimble_python/types/agent_run_params.py | 2 +- src/nimble_python/types/agent_run_response.py | 2 +- .../types/agent_update_response.py | 2 +- .../types/agents/run_create_params.py | 2 +- .../types/agents/run_create_response.py | 2 +- .../types/agents/run_get_response.py | 2 +- .../types/agents/run_list_response.py | 2 +- .../types/agents/run_result_response.py | 4 ++-- .../types/agents/template_get_response.py | 2 +- .../types/agents/template_list_response.py | 2 +- .../types/client_search_params.py | 8 +++++++ src/nimble_python/types/crawl_run_params.py | 7 ++++++ .../types/extract_async_params.py | 7 ++++++ .../types/extract_batch_params.py | 14 +++++++++++ src/nimble_python/types/extract_run_params.py | 7 ++++++ src/nimble_python/types/job_create_params.py | 7 ++++++ .../types/job_create_response.py | 7 ++++++ src/nimble_python/types/job_get_response.py | 7 ++++++ src/nimble_python/types/job_list_response.py | 7 ++++++ src/nimble_python/types/job_update_params.py | 7 ++++++ .../types/job_update_response.py | 7 ++++++ tests/api_resources/test_agents.py | 2 -- tests/api_resources/test_client.py | 2 ++ tests/api_resources/test_crawl.py | 2 ++ tests/api_resources/test_extract.py | 8 +++++++ tests/api_resources/test_jobs.py | 4 ++++ 36 files changed, 162 insertions(+), 32 deletions(-) diff --git a/.stats.yml b/.stats.yml index 47c393d..683144a 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 59 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/nimbleway/nimbleway-bcae896a8899efe0543243ad8b40ee5930b1fde2ce3620525ec94b7c096d7a0a.yml -openapi_spec_hash: 40d35babf41f9511d5f676d34ec8dbeb +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/nimbleway/nimbleway-2d8a4d5ee23ee1505dcbed57ca67ec5f32f052c4b723e21e9504682a3e1d8684.yml +openapi_spec_hash: bafe2ac9fa5f4cfa73fe12b75d185023 config_hash: a9878e098a6929e32711d66374797185 diff --git a/src/nimble_python/_client.py b/src/nimble_python/_client.py index 99b5711..726d9e1 100644 --- a/src/nimble_python/_client.py +++ b/src/nimble_python/_client.py @@ -1144,6 +1144,7 @@ def search( end_date: Optional[str] | Omit = omit, exclude_domains: Optional[SequenceNotStr[str]] | Omit = omit, focus: Union[str, SequenceNotStr[str]] | Omit = omit, + full_content: bool | Omit = omit, include_answer: bool | Omit = omit, include_domains: Optional[SequenceNotStr[str]] | Omit = omit, locale: str | Omit = omit, @@ -1181,6 +1182,11 @@ def search( focus: Search focus mode (e.g., 'general', 'news', 'shopping') or a list of explicit subagent names (e.g., ['amazon_serp', 'target_serp']) + full_content: Return richer per-result content on the fast path. With search_depth='fast', + enables live crawling of both web and news sources so results carry full + markdown content instead of snippets only. Higher recall and cost. Ignored for + other search_depth values. + include_answer: Generate an LLM-powered answer summary based on search result snippets. include_domains: List of domains to include in search results. Maximum 50 domains. @@ -1225,6 +1231,7 @@ def search( "end_date": end_date, "exclude_domains": exclude_domains, "focus": focus, + "full_content": full_content, "include_answer": include_answer, "include_domains": include_domains, "locale": locale, @@ -2354,6 +2361,7 @@ async def search( end_date: Optional[str] | Omit = omit, exclude_domains: Optional[SequenceNotStr[str]] | Omit = omit, focus: Union[str, SequenceNotStr[str]] | Omit = omit, + full_content: bool | Omit = omit, include_answer: bool | Omit = omit, include_domains: Optional[SequenceNotStr[str]] | Omit = omit, locale: str | Omit = omit, @@ -2391,6 +2399,11 @@ async def search( focus: Search focus mode (e.g., 'general', 'news', 'shopping') or a list of explicit subagent names (e.g., ['amazon_serp', 'target_serp']) + full_content: Return richer per-result content on the fast path. With search_depth='fast', + enables live crawling of both web and news sources so results carry full + markdown content instead of snippets only. Higher recall and cost. Ignored for + other search_depth values. + include_answer: Generate an LLM-powered answer summary based on search result snippets. include_domains: List of domains to include in search results. Maximum 50 domains. @@ -2435,6 +2448,7 @@ async def search( "end_date": end_date, "exclude_domains": exclude_domains, "focus": focus, + "full_content": full_content, "include_answer": include_answer, "include_domains": include_domains, "locale": locale, diff --git a/src/nimble_python/resources/agents/agents.py b/src/nimble_python/resources/agents/agents.py index 76aebcd..95431dd 100644 --- a/src/nimble_python/resources/agents/agents.py +++ b/src/nimble_python/resources/agents/agents.py @@ -78,7 +78,7 @@ def create( agent_name: Optional[str] | Omit = omit, description: Optional[str] | Omit = omit, display_name: Optional[str] | Omit = omit, - effort: Literal["low", "medium", "high", "x-high", "max"] | Omit = omit, + effort: Literal["low", "medium", "high", "x-high", "5x-high", "max"] | Omit = omit, goals: SequenceNotStr[str] | Omit = omit, icon: Optional[str] | Omit = omit, is_active: bool | Omit = omit, @@ -210,7 +210,6 @@ def list( *, limit: int | Omit = omit, offset: int | Omit = omit, - workspace_id: Optional[str] | Omit = omit, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -244,7 +243,6 @@ def list( { "limit": limit, "offset": offset, - "workspace_id": workspace_id, }, agent_list_params.AgentListParams, ), @@ -326,7 +324,7 @@ def run( *, input: str, agent_name: Optional[str] | Omit = omit, - effort: Optional[Literal["low", "medium", "high", "x-high", "max"]] | Omit = omit, + effort: Optional[Literal["low", "medium", "high", "x-high", "5x-high", "max"]] | Omit = omit, enable_events: bool | Omit = omit, input_data: Union[Iterable[Dict[str, object]], Dict[str, object], None] | Omit = omit, origin: Literal["api"] | Omit = omit, @@ -443,7 +441,7 @@ async def create( agent_name: Optional[str] | Omit = omit, description: Optional[str] | Omit = omit, display_name: Optional[str] | Omit = omit, - effort: Literal["low", "medium", "high", "x-high", "max"] | Omit = omit, + effort: Literal["low", "medium", "high", "x-high", "5x-high", "max"] | Omit = omit, goals: SequenceNotStr[str] | Omit = omit, icon: Optional[str] | Omit = omit, is_active: bool | Omit = omit, @@ -575,7 +573,6 @@ async def list( *, limit: int | Omit = omit, offset: int | Omit = omit, - workspace_id: Optional[str] | Omit = omit, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -609,7 +606,6 @@ async def list( { "limit": limit, "offset": offset, - "workspace_id": workspace_id, }, agent_list_params.AgentListParams, ), @@ -691,7 +687,7 @@ async def run( *, input: str, agent_name: Optional[str] | Omit = omit, - effort: Optional[Literal["low", "medium", "high", "x-high", "max"]] | Omit = omit, + effort: Optional[Literal["low", "medium", "high", "x-high", "5x-high", "max"]] | Omit = omit, enable_events: bool | Omit = omit, input_data: Union[Iterable[Dict[str, object]], Dict[str, object], None] | Omit = omit, origin: Literal["api"] | Omit = omit, diff --git a/src/nimble_python/resources/agents/runs.py b/src/nimble_python/resources/agents/runs.py index 6ec4b6e..a475343 100644 --- a/src/nimble_python/resources/agents/runs.py +++ b/src/nimble_python/resources/agents/runs.py @@ -54,7 +54,7 @@ def create( *, input: str, agent_name: Optional[str] | Omit = omit, - effort: Optional[Literal["low", "medium", "high", "x-high", "max"]] | Omit = omit, + effort: Optional[Literal["low", "medium", "high", "x-high", "5x-high", "max"]] | Omit = omit, enable_events: bool | Omit = omit, input_data: Union[Iterable[Dict[str, object]], Dict[str, object], None] | Omit = omit, origin: Literal["api"] | Omit = omit, @@ -341,7 +341,7 @@ async def create( *, input: str, agent_name: Optional[str] | Omit = omit, - effort: Optional[Literal["low", "medium", "high", "x-high", "max"]] | Omit = omit, + effort: Optional[Literal["low", "medium", "high", "x-high", "5x-high", "max"]] | Omit = omit, enable_events: bool | Omit = omit, input_data: Union[Iterable[Dict[str, object]], Dict[str, object], None] | Omit = omit, origin: Literal["api"] | Omit = omit, diff --git a/src/nimble_python/resources/extract/extract.py b/src/nimble_python/resources/extract/extract.py index e1a739b..5de8edc 100644 --- a/src/nimble_python/resources/extract/extract.py +++ b/src/nimble_python/resources/extract/extract.py @@ -876,6 +876,7 @@ def async_( os: Literal["windows", "mac os", "linux", "android", "ios"] | Omit = omit, parse: bool | Omit = omit, parser: Union[Dict[str, object], str] | Omit = omit, + realtime_total_timeout: float | Omit = omit, referrer_type: Literal[ "random", "no-referer", "same-origin", "google", "bing", "facebook", "twitter", "instagram" ] @@ -1012,6 +1013,10 @@ def async_( parser: Custom parser configuration as a key-value map + realtime_total_timeout: Overall deadline in milliseconds for a realtime request. Clamped to the account + total timeout — it can shorten the deadline but never extend it. Has no effect + on async requests. + referrer_type: Referrer policy for the request render: Whether to render JavaScript content using a browser @@ -1068,6 +1073,7 @@ def async_( "os": os, "parse": parse, "parser": parser, + "realtime_total_timeout": realtime_total_timeout, "referrer_type": referrer_type, "render": render, "request_timeout": request_timeout, @@ -1951,6 +1957,7 @@ def run( os: Literal["windows", "mac os", "linux", "android", "ios"] | Omit = omit, parse: bool | Omit = omit, parser: Union[Dict[str, object], str] | Omit = omit, + realtime_total_timeout: float | Omit = omit, referrer_type: Literal[ "random", "no-referer", "same-origin", "google", "bing", "facebook", "twitter", "instagram" ] @@ -2081,6 +2088,10 @@ def run( parser: Custom parser configuration as a key-value map + realtime_total_timeout: Overall deadline in milliseconds for a realtime request. Clamped to the account + total timeout — it can shorten the deadline but never extend it. Has no effect + on async requests. + referrer_type: Referrer policy for the request render: Whether to render JavaScript content using a browser @@ -2128,6 +2139,7 @@ def run( "os": os, "parse": parse, "parser": parser, + "realtime_total_timeout": realtime_total_timeout, "referrer_type": referrer_type, "render": render, "request_timeout": request_timeout, @@ -2987,6 +2999,7 @@ async def async_( os: Literal["windows", "mac os", "linux", "android", "ios"] | Omit = omit, parse: bool | Omit = omit, parser: Union[Dict[str, object], str] | Omit = omit, + realtime_total_timeout: float | Omit = omit, referrer_type: Literal[ "random", "no-referer", "same-origin", "google", "bing", "facebook", "twitter", "instagram" ] @@ -3123,6 +3136,10 @@ async def async_( parser: Custom parser configuration as a key-value map + realtime_total_timeout: Overall deadline in milliseconds for a realtime request. Clamped to the account + total timeout — it can shorten the deadline but never extend it. Has no effect + on async requests. + referrer_type: Referrer policy for the request render: Whether to render JavaScript content using a browser @@ -3179,6 +3196,7 @@ async def async_( "os": os, "parse": parse, "parser": parser, + "realtime_total_timeout": realtime_total_timeout, "referrer_type": referrer_type, "render": render, "request_timeout": request_timeout, @@ -4062,6 +4080,7 @@ async def run( os: Literal["windows", "mac os", "linux", "android", "ios"] | Omit = omit, parse: bool | Omit = omit, parser: Union[Dict[str, object], str] | Omit = omit, + realtime_total_timeout: float | Omit = omit, referrer_type: Literal[ "random", "no-referer", "same-origin", "google", "bing", "facebook", "twitter", "instagram" ] @@ -4192,6 +4211,10 @@ async def run( parser: Custom parser configuration as a key-value map + realtime_total_timeout: Overall deadline in milliseconds for a realtime request. Clamped to the account + total timeout — it can shorten the deadline but never extend it. Has no effect + on async requests. + referrer_type: Referrer policy for the request render: Whether to render JavaScript content using a browser @@ -4239,6 +4262,7 @@ async def run( "os": os, "parse": parse, "parser": parser, + "realtime_total_timeout": realtime_total_timeout, "referrer_type": referrer_type, "render": render, "request_timeout": request_timeout, diff --git a/src/nimble_python/types/agent_create_params.py b/src/nimble_python/types/agent_create_params.py index 2396ef5..7f2f4e4 100644 --- a/src/nimble_python/types/agent_create_params.py +++ b/src/nimble_python/types/agent_create_params.py @@ -20,7 +20,7 @@ class AgentCreateParams(TypedDict, total=False): display_name: Optional[str] """Human-friendly agent name shown to users.""" - effort: Literal["low", "medium", "high", "x-high", "max"] + effort: Literal["low", "medium", "high", "x-high", "5x-high", "max"] """Default effort level for this agent's runs.""" goals: SequenceNotStr[str] diff --git a/src/nimble_python/types/agent_create_response.py b/src/nimble_python/types/agent_create_response.py index 15a2bcf..1256112 100644 --- a/src/nimble_python/types/agent_create_response.py +++ b/src/nimble_python/types/agent_create_response.py @@ -88,7 +88,7 @@ class AgentCreateResponse(BaseModel): display_name: str """Human-friendly agent name shown to users.""" - effort: Literal["low", "medium", "high", "x-high", "max"] + effort: Literal["low", "medium", "high", "x-high", "5x-high", "max"] """Default effort level for this agent's runs.""" goals: List[Goal] diff --git a/src/nimble_python/types/agent_get_response.py b/src/nimble_python/types/agent_get_response.py index 7dd29f8..c93261e 100644 --- a/src/nimble_python/types/agent_get_response.py +++ b/src/nimble_python/types/agent_get_response.py @@ -88,7 +88,7 @@ class AgentGetResponse(BaseModel): display_name: str """Human-friendly agent name shown to users.""" - effort: Literal["low", "medium", "high", "x-high", "max"] + effort: Literal["low", "medium", "high", "x-high", "5x-high", "max"] """Default effort level for this agent's runs.""" goals: List[Goal] diff --git a/src/nimble_python/types/agent_list_params.py b/src/nimble_python/types/agent_list_params.py index 752e76a..440dbf1 100644 --- a/src/nimble_python/types/agent_list_params.py +++ b/src/nimble_python/types/agent_list_params.py @@ -2,7 +2,6 @@ from __future__ import annotations -from typing import Optional from typing_extensions import TypedDict __all__ = ["AgentListParams"] @@ -12,5 +11,3 @@ class AgentListParams(TypedDict, total=False): limit: int offset: int - - workspace_id: Optional[str] diff --git a/src/nimble_python/types/agent_list_response.py b/src/nimble_python/types/agent_list_response.py index 31f3c4d..5592fda 100644 --- a/src/nimble_python/types/agent_list_response.py +++ b/src/nimble_python/types/agent_list_response.py @@ -96,7 +96,7 @@ class Item(BaseModel): display_name: str """Human-friendly agent name shown to users.""" - effort: Literal["low", "medium", "high", "x-high", "max"] + effort: Literal["low", "medium", "high", "x-high", "5x-high", "max"] """Default effort level for this agent's runs.""" goals: List[ItemGoal] diff --git a/src/nimble_python/types/agent_run_params.py b/src/nimble_python/types/agent_run_params.py index 8ac150a..a8a0708 100644 --- a/src/nimble_python/types/agent_run_params.py +++ b/src/nimble_python/types/agent_run_params.py @@ -21,7 +21,7 @@ class AgentRunParams(TypedDict, total=False): reuses it. Ignored on the /{agent_id}/runs route. """ - effort: Optional[Literal["low", "medium", "high", "x-high", "max"]] + effort: Optional[Literal["low", "medium", "high", "x-high", "5x-high", "max"]] """Canonical effort tier names for the research graph.""" enable_events: bool diff --git a/src/nimble_python/types/agent_run_response.py b/src/nimble_python/types/agent_run_response.py index b8cfad0..493a78b 100644 --- a/src/nimble_python/types/agent_run_response.py +++ b/src/nimble_python/types/agent_run_response.py @@ -26,7 +26,7 @@ class AgentRunResponse(BaseModel): created_at: datetime """When the run was created.""" - effort: Literal["low", "medium", "high", "x-high", "max"] + effort: Literal["low", "medium", "high", "x-high", "5x-high", "max"] """Effort level used for the run.""" interaction_id: str diff --git a/src/nimble_python/types/agent_update_response.py b/src/nimble_python/types/agent_update_response.py index 9195f5b..ef02a71 100644 --- a/src/nimble_python/types/agent_update_response.py +++ b/src/nimble_python/types/agent_update_response.py @@ -88,7 +88,7 @@ class AgentUpdateResponse(BaseModel): display_name: str """Human-friendly agent name shown to users.""" - effort: Literal["low", "medium", "high", "x-high", "max"] + effort: Literal["low", "medium", "high", "x-high", "5x-high", "max"] """Default effort level for this agent's runs.""" goals: List[Goal] diff --git a/src/nimble_python/types/agents/run_create_params.py b/src/nimble_python/types/agents/run_create_params.py index 00e7bd8..3559dc0 100644 --- a/src/nimble_python/types/agents/run_create_params.py +++ b/src/nimble_python/types/agents/run_create_params.py @@ -21,7 +21,7 @@ class RunCreateParams(TypedDict, total=False): reuses it. Ignored on the /{agent_id}/runs route. """ - effort: Optional[Literal["low", "medium", "high", "x-high", "max"]] + effort: Optional[Literal["low", "medium", "high", "x-high", "5x-high", "max"]] """Canonical effort tier names for the research graph.""" enable_events: bool diff --git a/src/nimble_python/types/agents/run_create_response.py b/src/nimble_python/types/agents/run_create_response.py index 83fe1b9..8b55950 100644 --- a/src/nimble_python/types/agents/run_create_response.py +++ b/src/nimble_python/types/agents/run_create_response.py @@ -26,7 +26,7 @@ class RunCreateResponse(BaseModel): created_at: datetime """When the run was created.""" - effort: Literal["low", "medium", "high", "x-high", "max"] + effort: Literal["low", "medium", "high", "x-high", "5x-high", "max"] """Effort level used for the run.""" interaction_id: str diff --git a/src/nimble_python/types/agents/run_get_response.py b/src/nimble_python/types/agents/run_get_response.py index 23b4684..d10f79f 100644 --- a/src/nimble_python/types/agents/run_get_response.py +++ b/src/nimble_python/types/agents/run_get_response.py @@ -26,7 +26,7 @@ class RunGetResponse(BaseModel): created_at: datetime """When the run was created.""" - effort: Literal["low", "medium", "high", "x-high", "max"] + effort: Literal["low", "medium", "high", "x-high", "5x-high", "max"] """Effort level used for the run.""" interaction_id: str diff --git a/src/nimble_python/types/agents/run_list_response.py b/src/nimble_python/types/agents/run_list_response.py index 59978b1..9a1a707 100644 --- a/src/nimble_python/types/agents/run_list_response.py +++ b/src/nimble_python/types/agents/run_list_response.py @@ -26,7 +26,7 @@ class Item(BaseModel): created_at: datetime """When the run was created.""" - effort: Literal["low", "medium", "high", "x-high", "max"] + effort: Literal["low", "medium", "high", "x-high", "5x-high", "max"] """Effort level used for the run.""" interaction_id: str diff --git a/src/nimble_python/types/agents/run_result_response.py b/src/nimble_python/types/agents/run_result_response.py index 295be65..eab68ef 100644 --- a/src/nimble_python/types/agents/run_result_response.py +++ b/src/nimble_python/types/agents/run_result_response.py @@ -305,7 +305,7 @@ class TaskRunResultPublicV2Run(BaseModel): created_at: datetime """When the run was created.""" - effort: Literal["low", "medium", "high", "x-high", "max"] + effort: Literal["low", "medium", "high", "x-high", "5x-high", "max"] """Effort level used for the run.""" interaction_id: str @@ -370,7 +370,7 @@ class TaskRunFailedResultPublicV2Run(BaseModel): created_at: datetime """When the run was created.""" - effort: Literal["low", "medium", "high", "x-high", "max"] + effort: Literal["low", "medium", "high", "x-high", "5x-high", "max"] """Effort level used for the run.""" interaction_id: str diff --git a/src/nimble_python/types/agents/template_get_response.py b/src/nimble_python/types/agents/template_get_response.py index edbcc25..1f8ebd3 100644 --- a/src/nimble_python/types/agents/template_get_response.py +++ b/src/nimble_python/types/agents/template_get_response.py @@ -58,7 +58,7 @@ class TemplateGetResponse(BaseModel): display_name: str """Human-friendly template name shown to users.""" - effort: Literal["low", "medium", "high", "x-high", "max"] + effort: Literal["low", "medium", "high", "x-high", "5x-high", "max"] """Default effort level for runs created from this template.""" goals: List[Goal] diff --git a/src/nimble_python/types/agents/template_list_response.py b/src/nimble_python/types/agents/template_list_response.py index a4841f4..1fce162 100644 --- a/src/nimble_python/types/agents/template_list_response.py +++ b/src/nimble_python/types/agents/template_list_response.py @@ -58,7 +58,7 @@ class Item(BaseModel): display_name: str """Human-friendly template name shown to users.""" - effort: Literal["low", "medium", "high", "x-high", "max"] + effort: Literal["low", "medium", "high", "x-high", "5x-high", "max"] """Default effort level for runs created from this template.""" goals: List[ItemGoal] diff --git a/src/nimble_python/types/client_search_params.py b/src/nimble_python/types/client_search_params.py index ba42f28..19c7f44 100644 --- a/src/nimble_python/types/client_search_params.py +++ b/src/nimble_python/types/client_search_params.py @@ -42,6 +42,14 @@ class ClientSearchParams(TypedDict, total=False): subagent names (e.g., ['amazon_serp', 'target_serp']) """ + full_content: bool + """Return richer per-result content on the fast path. + + With search_depth='fast', enables live crawling of both web and news sources so + results carry full markdown content instead of snippets only. Higher recall and + cost. Ignored for other search_depth values. + """ + include_answer: bool """Generate an LLM-powered answer summary based on search result snippets.""" diff --git a/src/nimble_python/types/crawl_run_params.py b/src/nimble_python/types/crawl_run_params.py index 0afd705..a329575 100644 --- a/src/nimble_python/types/crawl_run_params.py +++ b/src/nimble_python/types/crawl_run_params.py @@ -1049,6 +1049,13 @@ class ExtractOptions(TypedDict, total=False): parser: Union[Dict[str, object], str] """Custom parser configuration as a key-value map""" + realtime_total_timeout: float + """Overall deadline in milliseconds for a realtime request. + + Clamped to the account total timeout — it can shorten the deadline but never + extend it. Has no effect on async requests. + """ + referrer_type: Literal["random", "no-referer", "same-origin", "google", "bing", "facebook", "twitter", "instagram"] """Referrer policy for the request""" diff --git a/src/nimble_python/types/extract_async_params.py b/src/nimble_python/types/extract_async_params.py index 160cd7b..7eb9cbb 100644 --- a/src/nimble_python/types/extract_async_params.py +++ b/src/nimble_python/types/extract_async_params.py @@ -901,6 +901,13 @@ class ExtractAsyncParams(TypedDict, total=False): parser: Union[Dict[str, object], str] """Custom parser configuration as a key-value map""" + realtime_total_timeout: float + """Overall deadline in milliseconds for a realtime request. + + Clamped to the account total timeout — it can shorten the deadline but never + extend it. Has no effect on async requests. + """ + referrer_type: Literal["random", "no-referer", "same-origin", "google", "bing", "facebook", "twitter", "instagram"] """Referrer policy for the request""" diff --git a/src/nimble_python/types/extract_batch_params.py b/src/nimble_python/types/extract_batch_params.py index 4909484..4fd28b0 100644 --- a/src/nimble_python/types/extract_batch_params.py +++ b/src/nimble_python/types/extract_batch_params.py @@ -1019,6 +1019,13 @@ class Input(TypedDict, total=False): parser: Union[Dict[str, object], str] """Custom parser configuration as a key-value map""" + realtime_total_timeout: float + """Overall deadline in milliseconds for a realtime request. + + Clamped to the account total timeout — it can shorten the deadline but never + extend it. Has no effect on async requests. + """ + referrer_type: Literal["random", "no-referer", "same-origin", "google", "bing", "facebook", "twitter", "instagram"] """Referrer policy for the request""" @@ -2083,6 +2090,13 @@ class SharedInputs(TypedDict, total=False): parser: Union[Dict[str, object], str] """Custom parser configuration as a key-value map""" + realtime_total_timeout: float + """Overall deadline in milliseconds for a realtime request. + + Clamped to the account total timeout — it can shorten the deadline but never + extend it. Has no effect on async requests. + """ + referrer_type: Literal["random", "no-referer", "same-origin", "google", "bing", "facebook", "twitter", "instagram"] """Referrer policy for the request""" diff --git a/src/nimble_python/types/extract_run_params.py b/src/nimble_python/types/extract_run_params.py index de18099..fb33624 100644 --- a/src/nimble_python/types/extract_run_params.py +++ b/src/nimble_python/types/extract_run_params.py @@ -898,6 +898,13 @@ class ExtractRunParams(TypedDict, total=False): parser: Union[Dict[str, object], str] """Custom parser configuration as a key-value map""" + realtime_total_timeout: float + """Overall deadline in milliseconds for a realtime request. + + Clamped to the account total timeout — it can shorten the deadline but never + extend it. Has no effect on async requests. + """ + referrer_type: Literal["random", "no-referer", "same-origin", "google", "bing", "facebook", "twitter", "instagram"] """Referrer policy for the request""" diff --git a/src/nimble_python/types/job_create_params.py b/src/nimble_python/types/job_create_params.py index 8014736..e663fef 100644 --- a/src/nimble_python/types/job_create_params.py +++ b/src/nimble_python/types/job_create_params.py @@ -62,6 +62,13 @@ class Inputs(TypedDict, total=False): Used for 's3'/'file' types. """ + node_data: Optional[Dict[str, Iterable[Dict[str, object]]]] + """Inline input records keyed by source node id, e.g. + + {'source_a': [{...}]}. Used when type is 'inline' on a dynamic-workflow job, + which has one source node per input file. Mutually exclusive with 'data'. + """ + class Schedule(TypedDict, total=False): """Cron-based schedule controlling when a job runs automatically.""" diff --git a/src/nimble_python/types/job_create_response.py b/src/nimble_python/types/job_create_response.py index f851be8..9cabb83 100644 --- a/src/nimble_python/types/job_create_response.py +++ b/src/nimble_python/types/job_create_response.py @@ -40,6 +40,13 @@ class Inputs(BaseModel): Used for 's3'/'file' types. """ + node_data: Optional[Dict[str, List[Dict[str, object]]]] = None + """Inline input records keyed by source node id, e.g. + + {'source_a': [{...}]}. Used when type is 'inline' on a dynamic-workflow job, + which has one source node per input file. Mutually exclusive with 'data'. + """ + class Schedule(BaseModel): """Cron-based schedule controlling when a job runs automatically.""" diff --git a/src/nimble_python/types/job_get_response.py b/src/nimble_python/types/job_get_response.py index 50c512a..bbc022d 100644 --- a/src/nimble_python/types/job_get_response.py +++ b/src/nimble_python/types/job_get_response.py @@ -40,6 +40,13 @@ class Inputs(BaseModel): Used for 's3'/'file' types. """ + node_data: Optional[Dict[str, List[Dict[str, object]]]] = None + """Inline input records keyed by source node id, e.g. + + {'source_a': [{...}]}. Used when type is 'inline' on a dynamic-workflow job, + which has one source node per input file. Mutually exclusive with 'data'. + """ + class Schedule(BaseModel): """Cron-based schedule controlling when a job runs automatically.""" diff --git a/src/nimble_python/types/job_list_response.py b/src/nimble_python/types/job_list_response.py index fab90b4..c5e2d98 100644 --- a/src/nimble_python/types/job_list_response.py +++ b/src/nimble_python/types/job_list_response.py @@ -40,6 +40,13 @@ class ItemInputs(BaseModel): Used for 's3'/'file' types. """ + node_data: Optional[Dict[str, List[Dict[str, object]]]] = None + """Inline input records keyed by source node id, e.g. + + {'source_a': [{...}]}. Used when type is 'inline' on a dynamic-workflow job, + which has one source node per input file. Mutually exclusive with 'data'. + """ + class ItemSchedule(BaseModel): """Cron-based schedule controlling when a job runs automatically.""" diff --git a/src/nimble_python/types/job_update_params.py b/src/nimble_python/types/job_update_params.py index a457eef..016977c 100644 --- a/src/nimble_python/types/job_update_params.py +++ b/src/nimble_python/types/job_update_params.py @@ -56,6 +56,13 @@ class Inputs(TypedDict, total=False): Used for 's3'/'file' types. """ + node_data: Optional[Dict[str, Iterable[Dict[str, object]]]] + """Inline input records keyed by source node id, e.g. + + {'source_a': [{...}]}. Used when type is 'inline' on a dynamic-workflow job, + which has one source node per input file. Mutually exclusive with 'data'. + """ + class Schedule(TypedDict, total=False): """Cron-based schedule controlling when a job runs automatically.""" diff --git a/src/nimble_python/types/job_update_response.py b/src/nimble_python/types/job_update_response.py index dbe6c3d..88ea864 100644 --- a/src/nimble_python/types/job_update_response.py +++ b/src/nimble_python/types/job_update_response.py @@ -40,6 +40,13 @@ class Inputs(BaseModel): Used for 's3'/'file' types. """ + node_data: Optional[Dict[str, List[Dict[str, object]]]] = None + """Inline input records keyed by source node id, e.g. + + {'source_a': [{...}]}. Used when type is 'inline' on a dynamic-workflow job, + which has one source node per input file. Mutually exclusive with 'data'. + """ + class Schedule(BaseModel): """Cron-based schedule controlling when a job runs automatically.""" diff --git a/tests/api_resources/test_agents.py b/tests/api_resources/test_agents.py index acfc0c1..a55e89a 100644 --- a/tests/api_resources/test_agents.py +++ b/tests/api_resources/test_agents.py @@ -166,7 +166,6 @@ def test_method_list_with_all_params(self, client: Nimble) -> None: agent = client.agents.list( limit=1, offset=0, - workspace_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", ) assert_matches_type(AgentListResponse, agent, path=["response"]) @@ -494,7 +493,6 @@ async def test_method_list_with_all_params(self, async_client: AsyncNimble) -> N agent = await async_client.agents.list( limit=1, offset=0, - workspace_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", ) assert_matches_type(AgentListResponse, agent, path=["response"]) diff --git a/tests/api_resources/test_client.py b/tests/api_resources/test_client.py index 6ca6036..87d291e 100644 --- a/tests/api_resources/test_client.py +++ b/tests/api_resources/test_client.py @@ -83,6 +83,7 @@ def test_method_search_with_all_params(self, client: Nimble) -> None: end_date="end_date", exclude_domains=["string"], focus="string", + full_content=True, include_answer=True, include_domains=["string"], locale="locale", @@ -193,6 +194,7 @@ async def test_method_search_with_all_params(self, async_client: AsyncNimble) -> end_date="end_date", exclude_domains=["string"], focus="string", + full_content=True, include_answer=True, include_domains=["string"], locale="locale", diff --git a/tests/api_resources/test_crawl.py b/tests/api_resources/test_crawl.py index 2eb067b..db999bd 100644 --- a/tests/api_resources/test_crawl.py +++ b/tests/api_resources/test_crawl.py @@ -176,6 +176,7 @@ def test_method_run_with_all_params(self, client: Nimble) -> None: "os": "windows", "parse": True, "parser": {"myParser": "bar"}, + "realtime_total_timeout": 15000, "referrer_type": "random", "render": True, "request_timeout": 30000, @@ -470,6 +471,7 @@ async def test_method_run_with_all_params(self, async_client: AsyncNimble) -> No "os": "windows", "parse": True, "parser": {"myParser": "bar"}, + "realtime_total_timeout": 15000, "referrer_type": "random", "render": True, "request_timeout": 30000, diff --git a/tests/api_resources/test_extract.py b/tests/api_resources/test_extract.py index ea71357..8c7732a 100644 --- a/tests/api_resources/test_extract.py +++ b/tests/api_resources/test_extract.py @@ -127,6 +127,7 @@ def test_method_async_with_all_params(self, client: Nimble) -> None: os="windows", parse=True, parser={"myParser": "bar"}, + realtime_total_timeout=15000, referrer_type="random", render=True, request_timeout=30000, @@ -280,6 +281,7 @@ def test_method_batch_with_all_params(self, client: Nimble) -> None: "os": "windows", "parse": True, "parser": {"myParser": "bar"}, + "realtime_total_timeout": 15000, "referrer_type": "random", "render": False, "request_timeout": 30000, @@ -394,6 +396,7 @@ def test_method_batch_with_all_params(self, client: Nimble) -> None: "os": "windows", "parse": True, "parser": {"myParser": "bar"}, + "realtime_total_timeout": 15000, "referrer_type": "random", "render": False, "request_timeout": 30000, @@ -547,6 +550,7 @@ def test_method_run_with_all_params(self, client: Nimble) -> None: os="windows", parse=True, parser={"myParser": "bar"}, + realtime_total_timeout=15000, referrer_type="random", render=True, request_timeout=30000, @@ -701,6 +705,7 @@ async def test_method_async_with_all_params(self, async_client: AsyncNimble) -> os="windows", parse=True, parser={"myParser": "bar"}, + realtime_total_timeout=15000, referrer_type="random", render=True, request_timeout=30000, @@ -854,6 +859,7 @@ async def test_method_batch_with_all_params(self, async_client: AsyncNimble) -> "os": "windows", "parse": True, "parser": {"myParser": "bar"}, + "realtime_total_timeout": 15000, "referrer_type": "random", "render": False, "request_timeout": 30000, @@ -968,6 +974,7 @@ async def test_method_batch_with_all_params(self, async_client: AsyncNimble) -> "os": "windows", "parse": True, "parser": {"myParser": "bar"}, + "realtime_total_timeout": 15000, "referrer_type": "random", "render": False, "request_timeout": 30000, @@ -1121,6 +1128,7 @@ async def test_method_run_with_all_params(self, async_client: AsyncNimble) -> No os="windows", parse=True, parser={"myParser": "bar"}, + realtime_total_timeout=15000, referrer_type="random", render=True, request_timeout=30000, diff --git a/tests/api_resources/test_jobs.py b/tests/api_resources/test_jobs.py index aa26819..aada309 100644 --- a/tests/api_resources/test_jobs.py +++ b/tests/api_resources/test_jobs.py @@ -48,6 +48,7 @@ def test_method_create_with_all_params(self, client: Nimble) -> None: "type": "s3", "data": [{"foo": "bar"}], "file_path": "file_path", + "node_data": {"foo": [{"foo": "bar"}]}, }, schedule={ "cron": "cron", @@ -108,6 +109,7 @@ def test_method_update_with_all_params(self, client: Nimble) -> None: "type": "s3", "data": [{"foo": "bar"}], "file_path": "file_path", + "node_data": {"foo": [{"foo": "bar"}]}, }, schedule={ "cron": "cron", @@ -303,6 +305,7 @@ async def test_method_create_with_all_params(self, async_client: AsyncNimble) -> "type": "s3", "data": [{"foo": "bar"}], "file_path": "file_path", + "node_data": {"foo": [{"foo": "bar"}]}, }, schedule={ "cron": "cron", @@ -363,6 +366,7 @@ async def test_method_update_with_all_params(self, async_client: AsyncNimble) -> "type": "s3", "data": [{"foo": "bar"}], "file_path": "file_path", + "node_data": {"foo": [{"foo": "bar"}]}, }, schedule={ "cron": "cron", From 7631d4c7fbce1967dd1f5c3d11ce2910be53fe70 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 17 Aug 2026 10:56:58 +0000 Subject: [PATCH 2/3] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 683144a..d81f021 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 59 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/nimbleway/nimbleway-2d8a4d5ee23ee1505dcbed57ca67ec5f32f052c4b723e21e9504682a3e1d8684.yml -openapi_spec_hash: bafe2ac9fa5f4cfa73fe12b75d185023 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/nimbleway/nimbleway-fc4544a31d0d7e2b88b55127582b45dcbd8c2e969e9301196b5742092d5330f1.yml +openapi_spec_hash: 00cbc4bde85d516e72e625288396c68d config_hash: a9878e098a6929e32711d66374797185 From 0b8ff4ee879c07793f66631a224326797dbaa459 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 17 Aug 2026 10:57:23 +0000 Subject: [PATCH 3/3] release: 1.3.0 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 8 ++++++++ pyproject.toml | 2 +- src/nimble_python/_version.py | 2 +- 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index d0ab664..2a8f4ff 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "1.2.0" + ".": "1.3.0" } \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 87a5563..9d03993 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## 1.3.0 (2026-08-17) + +Full Changelog: [v1.2.0...v1.3.0](https://github.com/Nimbleway/nimble-python/compare/v1.2.0...v1.3.0) + +### Features + +* **api:** api update ([2f86ef1](https://github.com/Nimbleway/nimble-python/commit/2f86ef15de4f9793b775c2d1d36866306fb48d7a)) + ## 1.2.0 (2026-07-28) Full Changelog: [v1.1.0...v1.2.0](https://github.com/Nimbleway/nimble-python/compare/v1.1.0...v1.2.0) diff --git a/pyproject.toml b/pyproject.toml index e22306d..4cb7b81 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "nimble_python" -version = "1.2.0" +version = "1.3.0" description = "The official Python library for the nimble API" dynamic = ["readme"] license = "Apache-2.0" diff --git a/src/nimble_python/_version.py b/src/nimble_python/_version.py index 8ec9b1e..1094ccf 100644 --- a/src/nimble_python/_version.py +++ b/src/nimble_python/_version.py @@ -1,4 +1,4 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. __title__ = "nimble_python" -__version__ = "1.2.0" # x-release-please-version +__version__ = "1.3.0" # x-release-please-version