feat(api): api update

This commit is contained in:
stainless-app[bot] 2025-07-21 22:39:56 +00:00
parent 06577e9685
commit e2e1f1d384
18 changed files with 205 additions and 18 deletions

View file

@ -1,4 +1,4 @@
configured_endpoints: 22 configured_endpoints: 22
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/opencode%2Fopencode-a1da357fcefd3105736841fbf44018022fade78e67ffc81e178cf9196da723ee.yml openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/opencode%2Fopencode-5e3b108daef12bb43f728ee42261cd1322e8909e6225db58d6fe0617f3b5904c.yml
openapi_spec_hash: 9bd27afcc5b8f43d8e4223f7c984035f openapi_spec_hash: 1f9d2853ba0c1179e45426560e082ef4
config_hash: 62b73a3397120578a992bffd1e69386a config_hash: 6d56a7ca0d6ed899ecdb5c053a8278ae

5
api.md
View file

@ -23,7 +23,6 @@ Types:
```python ```python
from opencode_ai.types import ( from opencode_ai.types import (
App, App,
LogLevel,
Mode, Mode,
Model, Model,
Provider, Provider,
@ -96,12 +95,16 @@ from opencode_ai.types import (
AssistantMessage, AssistantMessage,
FilePart, FilePart,
FilePartInput, FilePartInput,
FilePartSource,
FilePartSourceText,
FileSource,
Message, Message,
Part, Part,
Session, Session,
SnapshotPart, SnapshotPart,
StepFinishPart, StepFinishPart,
StepStartPart, StepStartPart,
SymbolSource,
TextPart, TextPart,
TextPartInput, TextPartInput,
ToolPart, ToolPart,

View file

@ -2,7 +2,7 @@
from __future__ import annotations from __future__ import annotations
from typing import Iterable from typing import Dict, Iterable
import httpx import httpx
@ -163,6 +163,7 @@ class SessionResource(SyncAPIResource):
provider_id: str, provider_id: str,
message_id: str | NotGiven = NOT_GIVEN, message_id: str | NotGiven = NOT_GIVEN,
mode: str | NotGiven = NOT_GIVEN, mode: str | NotGiven = NOT_GIVEN,
tools: Dict[str, bool] | NotGiven = NOT_GIVEN,
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # 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. # The extra values given here take precedence over values defined on the client or passed to this method.
extra_headers: Headers | None = None, extra_headers: Headers | None = None,
@ -195,6 +196,7 @@ class SessionResource(SyncAPIResource):
"provider_id": provider_id, "provider_id": provider_id,
"message_id": message_id, "message_id": message_id,
"mode": mode, "mode": mode,
"tools": tools,
}, },
session_chat_params.SessionChatParams, session_chat_params.SessionChatParams,
), ),
@ -529,6 +531,7 @@ class AsyncSessionResource(AsyncAPIResource):
provider_id: str, provider_id: str,
message_id: str | NotGiven = NOT_GIVEN, message_id: str | NotGiven = NOT_GIVEN,
mode: str | NotGiven = NOT_GIVEN, mode: str | NotGiven = NOT_GIVEN,
tools: Dict[str, bool] | NotGiven = NOT_GIVEN,
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # 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. # The extra values given here take precedence over values defined on the client or passed to this method.
extra_headers: Headers | None = None, extra_headers: Headers | None = None,
@ -561,6 +564,7 @@ class AsyncSessionResource(AsyncAPIResource):
"provider_id": provider_id, "provider_id": provider_id,
"message_id": message_id, "message_id": message_id,
"mode": mode, "mode": mode,
"tools": tools,
}, },
session_chat_params.SessionChatParams, session_chat_params.SessionChatParams,
), ),

View file

@ -19,16 +19,18 @@ from .message import Message as Message
from .session import Session as Session from .session import Session as Session
from .provider import Provider as Provider from .provider import Provider as Provider
from .file_part import FilePart as FilePart from .file_part import FilePart as FilePart
from .log_level import LogLevel as LogLevel
from .text_part import TextPart as TextPart from .text_part import TextPart as TextPart
from .tool_part import ToolPart as ToolPart from .tool_part import ToolPart as ToolPart
from .file_source import FileSource as FileSource
from .mode_config import ModeConfig as ModeConfig from .mode_config import ModeConfig as ModeConfig
from .user_message import UserMessage as UserMessage from .user_message import UserMessage as UserMessage
from .snapshot_part import SnapshotPart as SnapshotPart from .snapshot_part import SnapshotPart as SnapshotPart
from .symbol_source import SymbolSource as SymbolSource
from .app_log_params import AppLogParams as AppLogParams from .app_log_params import AppLogParams as AppLogParams
from .keybinds_config import KeybindsConfig as KeybindsConfig from .keybinds_config import KeybindsConfig as KeybindsConfig
from .step_start_part import StepStartPart as StepStartPart from .step_start_part import StepStartPart as StepStartPart
from .app_log_response import AppLogResponse as AppLogResponse from .app_log_response import AppLogResponse as AppLogResponse
from .file_part_source import FilePartSource as FilePartSource
from .file_read_params import FileReadParams as FileReadParams from .file_read_params import FileReadParams as FileReadParams
from .find_text_params import FindTextParams as FindTextParams from .find_text_params import FindTextParams as FindTextParams
from .mcp_local_config import McpLocalConfig as McpLocalConfig from .mcp_local_config import McpLocalConfig as McpLocalConfig
@ -36,6 +38,7 @@ from .step_finish_part import StepFinishPart as StepFinishPart
from .tool_state_error import ToolStateError as ToolStateError from .tool_state_error import ToolStateError as ToolStateError
from .app_init_response import AppInitResponse as AppInitResponse from .app_init_response import AppInitResponse as AppInitResponse
from .assistant_message import AssistantMessage as AssistantMessage from .assistant_message import AssistantMessage as AssistantMessage
from .file_source_param import FileSourceParam as FileSourceParam
from .find_files_params import FindFilesParams as FindFilesParams from .find_files_params import FindFilesParams as FindFilesParams
from .mcp_remote_config import McpRemoteConfig as McpRemoteConfig from .mcp_remote_config import McpRemoteConfig as McpRemoteConfig
from .app_modes_response import AppModesResponse as AppModesResponse from .app_modes_response import AppModesResponse as AppModesResponse
@ -48,16 +51,20 @@ from .find_files_response import FindFilesResponse as FindFilesResponse
from .find_symbols_params import FindSymbolsParams as FindSymbolsParams from .find_symbols_params import FindSymbolsParams as FindSymbolsParams
from .session_chat_params import SessionChatParams as SessionChatParams from .session_chat_params import SessionChatParams as SessionChatParams
from .session_init_params import SessionInitParams as SessionInitParams from .session_init_params import SessionInitParams as SessionInitParams
from .symbol_source_param import SymbolSourceParam as SymbolSourceParam
from .file_status_response import FileStatusResponse as FileStatusResponse from .file_status_response import FileStatusResponse as FileStatusResponse
from .tool_state_completed import ToolStateCompleted as ToolStateCompleted from .tool_state_completed import ToolStateCompleted as ToolStateCompleted
from .file_part_input_param import FilePartInputParam as FilePartInputParam from .file_part_input_param import FilePartInputParam as FilePartInputParam
from .file_part_source_text import FilePartSourceText as FilePartSourceText
from .find_symbols_response import FindSymbolsResponse as FindSymbolsResponse from .find_symbols_response import FindSymbolsResponse as FindSymbolsResponse
from .session_init_response import SessionInitResponse as SessionInitResponse from .session_init_response import SessionInitResponse as SessionInitResponse
from .session_list_response import SessionListResponse as SessionListResponse from .session_list_response import SessionListResponse as SessionListResponse
from .text_part_input_param import TextPartInputParam as TextPartInputParam from .text_part_input_param import TextPartInputParam as TextPartInputParam
from .app_providers_response import AppProvidersResponse as AppProvidersResponse from .app_providers_response import AppProvidersResponse as AppProvidersResponse
from .file_part_source_param import FilePartSourceParam as FilePartSourceParam
from .session_abort_response import SessionAbortResponse as SessionAbortResponse from .session_abort_response import SessionAbortResponse as SessionAbortResponse
from .session_delete_response import SessionDeleteResponse as SessionDeleteResponse from .session_delete_response import SessionDeleteResponse as SessionDeleteResponse
from .session_summarize_params import SessionSummarizeParams as SessionSummarizeParams from .session_summarize_params import SessionSummarizeParams as SessionSummarizeParams
from .session_messages_response import SessionMessagesResponse as SessionMessagesResponse from .session_messages_response import SessionMessagesResponse as SessionMessagesResponse
from .session_summarize_response import SessionSummarizeResponse as SessionSummarizeResponse from .session_summarize_response import SessionSummarizeResponse as SessionSummarizeResponse
from .file_part_source_text_param import FilePartSourceTextParam as FilePartSourceTextParam

View file

@ -7,7 +7,6 @@ from pydantic import Field as FieldInfo
from .._utils import PropertyInfo from .._utils import PropertyInfo
from .._models import BaseModel from .._models import BaseModel
from .log_level import LogLevel
from .mode_config import ModeConfig from .mode_config import ModeConfig
from .keybinds_config import KeybindsConfig from .keybinds_config import KeybindsConfig
from .mcp_local_config import McpLocalConfig from .mcp_local_config import McpLocalConfig
@ -146,9 +145,6 @@ class Config(BaseModel):
layout: Optional[Literal["auto", "stretch"]] = None layout: Optional[Literal["auto", "stretch"]] = None
"""@deprecated Always uses stretch layout.""" """@deprecated Always uses stretch layout."""
log_level: Optional[LogLevel] = None
"""Minimum log level to write to log files"""
mcp: Optional[Dict[str, Mcp]] = None mcp: Optional[Dict[str, Mcp]] = None
"""MCP (Model Context Protocol) server configurations""" """MCP (Model Context Protocol) server configurations"""
@ -167,6 +163,12 @@ class Config(BaseModel):
enables automatic sharing, 'disabled' disables all sharing enables automatic sharing, 'disabled' disables all sharing
""" """
small_model: Optional[str] = None
"""
Small model to use for tasks like summarization and title generation in the
format of provider/model
"""
theme: Optional[str] = None theme: Optional[str] = None
"""Theme name to use for the interface""" """Theme name to use for the interface"""

View file

@ -6,6 +6,7 @@ from typing_extensions import Literal
from pydantic import Field as FieldInfo from pydantic import Field as FieldInfo
from .._models import BaseModel from .._models import BaseModel
from .file_part_source import FilePartSource
__all__ = ["FilePart"] __all__ = ["FilePart"]
@ -24,3 +25,5 @@ class FilePart(BaseModel):
url: str url: str
filename: Optional[str] = None filename: Optional[str] = None
source: Optional[FilePartSource] = None

View file

@ -4,6 +4,8 @@ from __future__ import annotations
from typing_extensions import Literal, Required, TypedDict from typing_extensions import Literal, Required, TypedDict
from .file_part_source_param import FilePartSourceParam
__all__ = ["FilePartInputParam"] __all__ = ["FilePartInputParam"]
@ -17,3 +19,5 @@ class FilePartInputParam(TypedDict, total=False):
id: str id: str
filename: str filename: str
source: FilePartSourceParam

View file

@ -0,0 +1,12 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
from typing import Union
from typing_extensions import Annotated, TypeAlias
from .._utils import PropertyInfo
from .file_source import FileSource
from .symbol_source import SymbolSource
__all__ = ["FilePartSource"]
FilePartSource: TypeAlias = Annotated[Union[FileSource, SymbolSource], PropertyInfo(discriminator="type")]

View file

@ -0,0 +1,13 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
from __future__ import annotations
from typing import Union
from typing_extensions import TypeAlias
from .file_source_param import FileSourceParam
from .symbol_source_param import SymbolSourceParam
__all__ = ["FilePartSourceParam"]
FilePartSourceParam: TypeAlias = Union[FileSourceParam, SymbolSourceParam]

View file

@ -0,0 +1,13 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
from .._models import BaseModel
__all__ = ["FilePartSourceText"]
class FilePartSourceText(BaseModel):
end: int
start: int
value: str

View file

@ -0,0 +1,15 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
from __future__ import annotations
from typing_extensions import Required, TypedDict
__all__ = ["FilePartSourceTextParam"]
class FilePartSourceTextParam(TypedDict, total=False):
end: Required[int]
start: Required[int]
value: Required[str]

View file

@ -0,0 +1,16 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
from typing_extensions import Literal
from .._models import BaseModel
from .file_part_source_text import FilePartSourceText
__all__ = ["FileSource"]
class FileSource(BaseModel):
path: str
text: FilePartSourceText
type: Literal["file"]

View file

@ -0,0 +1,17 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
from __future__ import annotations
from typing_extensions import Literal, Required, TypedDict
from .file_part_source_text_param import FilePartSourceTextParam
__all__ = ["FileSourceParam"]
class FileSourceParam(TypedDict, total=False):
path: Required[str]
text: Required[FilePartSourceTextParam]
type: Required[Literal["file"]]

View file

@ -1,7 +0,0 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
from typing_extensions import Literal, TypeAlias
__all__ = ["LogLevel"]
LogLevel: TypeAlias = Literal["DEBUG", "INFO", "WARN", "ERROR"]

View file

@ -2,7 +2,7 @@
from __future__ import annotations from __future__ import annotations
from typing import Union, Iterable from typing import Dict, Union, Iterable
from typing_extensions import Required, Annotated, TypeAlias, TypedDict from typing_extensions import Required, Annotated, TypeAlias, TypedDict
from .._utils import PropertyInfo from .._utils import PropertyInfo
@ -23,5 +23,7 @@ class SessionChatParams(TypedDict, total=False):
mode: str mode: str
tools: Dict[str, bool]
Part: TypeAlias = Union[TextPartInputParam, FilePartInputParam] Part: TypeAlias = Union[TextPartInputParam, FilePartInputParam]

View file

@ -0,0 +1,40 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
from typing_extensions import Literal
from .._models import BaseModel
from .file_part_source_text import FilePartSourceText
__all__ = ["SymbolSource", "Range", "RangeEnd", "RangeStart"]
class RangeEnd(BaseModel):
character: float
line: float
class RangeStart(BaseModel):
character: float
line: float
class Range(BaseModel):
end: RangeEnd
start: RangeStart
class SymbolSource(BaseModel):
kind: int
name: str
path: str
range: Range
text: FilePartSourceText
type: Literal["symbol"]

View file

@ -0,0 +1,41 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
from __future__ import annotations
from typing_extensions import Literal, Required, TypedDict
from .file_part_source_text_param import FilePartSourceTextParam
__all__ = ["SymbolSourceParam", "Range", "RangeEnd", "RangeStart"]
class RangeEnd(TypedDict, total=False):
character: Required[float]
line: Required[float]
class RangeStart(TypedDict, total=False):
character: Required[float]
line: Required[float]
class Range(TypedDict, total=False):
end: Required[RangeEnd]
start: Required[RangeStart]
class SymbolSourceParam(TypedDict, total=False):
kind: Required[int]
name: Required[str]
path: Required[str]
range: Required[Range]
text: Required[FilePartSourceTextParam]
type: Required[Literal["symbol"]]

View file

@ -203,6 +203,7 @@ class TestSession:
provider_id="providerID", provider_id="providerID",
message_id="msg", message_id="msg",
mode="mode", mode="mode",
tools={"foo": True},
) )
assert_matches_type(AssistantMessage, session, path=["response"]) assert_matches_type(AssistantMessage, session, path=["response"])
@ -677,6 +678,7 @@ class TestAsyncSession:
provider_id="providerID", provider_id="providerID",
message_id="msg", message_id="msg",
mode="mode", mode="mode",
tools={"foo": True},
) )
assert_matches_type(AssistantMessage, session, path=["response"]) assert_matches_type(AssistantMessage, session, path=["response"])