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
2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "0.1.0-alpha.23"
".": "0.1.0-alpha.24"
}
6 changes: 3 additions & 3 deletions .stats.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
configured_endpoints: 22
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/opencode%2Fopencode-a1da357fcefd3105736841fbf44018022fade78e67ffc81e178cf9196da723ee.yml
openapi_spec_hash: 9bd27afcc5b8f43d8e4223f7c984035f
config_hash: 62b73a3397120578a992bffd1e69386a
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/opencode%2Fopencode-5e3b108daef12bb43f728ee42261cd1322e8909e6225db58d6fe0617f3b5904c.yml
openapi_spec_hash: 1f9d2853ba0c1179e45426560e082ef4
config_hash: 6d56a7ca0d6ed899ecdb5c053a8278ae
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
# Changelog

## 0.1.0-alpha.24 (2025-07-21)

Full Changelog: [v0.1.0-alpha.23...v0.1.0-alpha.24](https://github.com/sst/opencode-sdk-python/compare/v0.1.0-alpha.23...v0.1.0-alpha.24)

### Features

* **api:** api update ([bd6dd48](https://github.com/sst/opencode-sdk-python/commit/bd6dd48f11b23c77802e0a36af94c1a92c0326c7))

## 0.1.0-alpha.23 (2025-07-18)

Full Changelog: [v0.1.0-alpha.22...v0.1.0-alpha.23](https://github.com/sst/opencode-sdk-python/compare/v0.1.0-alpha.22...v0.1.0-alpha.23)
Expand Down
5 changes: 4 additions & 1 deletion api.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ Types:
```python
from opencode_ai.types import (
App,
LogLevel,
Mode,
Model,
Provider,
Expand Down Expand Up @@ -96,12 +95,16 @@ from opencode_ai.types import (
AssistantMessage,
FilePart,
FilePartInput,
FilePartSource,
FilePartSourceText,
FileSource,
Message,
Part,
Session,
SnapshotPart,
StepFinishPart,
StepStartPart,
SymbolSource,
TextPart,
TextPartInput,
ToolPart,
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "opencode-ai"
version = "0.1.0-alpha.23"
version = "0.1.0-alpha.24"
description = "The official Python library for the opencode API"
dynamic = ["readme"]
license = "Apache-2.0"
Expand Down
2 changes: 1 addition & 1 deletion src/opencode_ai/_version.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

__title__ = "opencode_ai"
__version__ = "0.1.0-alpha.23" # x-release-please-version
__version__ = "0.1.0-alpha.24" # x-release-please-version
6 changes: 5 additions & 1 deletion src/opencode_ai/resources/session.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

from __future__ import annotations

from typing import Iterable
from typing import Dict, Iterable

import httpx

Expand Down Expand Up @@ -163,6 +163,7 @@ def chat(
provider_id: str,
message_id: 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.
# The extra values given here take precedence over values defined on the client or passed to this method.
extra_headers: Headers | None = None,
Expand Down Expand Up @@ -195,6 +196,7 @@ def chat(
"provider_id": provider_id,
"message_id": message_id,
"mode": mode,
"tools": tools,
},
session_chat_params.SessionChatParams,
),
Expand Down Expand Up @@ -529,6 +531,7 @@ async def chat(
provider_id: str,
message_id: 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.
# The extra values given here take precedence over values defined on the client or passed to this method.
extra_headers: Headers | None = None,
Expand Down Expand Up @@ -561,6 +564,7 @@ async def chat(
"provider_id": provider_id,
"message_id": message_id,
"mode": mode,
"tools": tools,
},
session_chat_params.SessionChatParams,
),
Expand Down
9 changes: 8 additions & 1 deletion src/opencode_ai/types/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,23 +19,26 @@
from .session import Session as Session
from .provider import Provider as Provider
from .file_part import FilePart as FilePart
from .log_level import LogLevel as LogLevel
from .text_part import TextPart as TextPart
from .tool_part import ToolPart as ToolPart
from .file_source import FileSource as FileSource
from .mode_config import ModeConfig as ModeConfig
from .user_message import UserMessage as UserMessage
from .snapshot_part import SnapshotPart as SnapshotPart
from .symbol_source import SymbolSource as SymbolSource
from .app_log_params import AppLogParams as AppLogParams
from .keybinds_config import KeybindsConfig as KeybindsConfig
from .step_start_part import StepStartPart as StepStartPart
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 .find_text_params import FindTextParams as FindTextParams
from .mcp_local_config import McpLocalConfig as McpLocalConfig
from .step_finish_part import StepFinishPart as StepFinishPart
from .tool_state_error import ToolStateError as ToolStateError
from .app_init_response import AppInitResponse as AppInitResponse
from .assistant_message import AssistantMessage as AssistantMessage
from .file_source_param import FileSourceParam as FileSourceParam
from .find_files_params import FindFilesParams as FindFilesParams
from .mcp_remote_config import McpRemoteConfig as McpRemoteConfig
from .app_modes_response import AppModesResponse as AppModesResponse
Expand All @@ -48,16 +51,20 @@
from .find_symbols_params import FindSymbolsParams as FindSymbolsParams
from .session_chat_params import SessionChatParams as SessionChatParams
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 .tool_state_completed import ToolStateCompleted as ToolStateCompleted
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 .session_init_response import SessionInitResponse as SessionInitResponse
from .session_list_response import SessionListResponse as SessionListResponse
from .text_part_input_param import TextPartInputParam as TextPartInputParam
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_delete_response import SessionDeleteResponse as SessionDeleteResponse
from .session_summarize_params import SessionSummarizeParams as SessionSummarizeParams
from .session_messages_response import SessionMessagesResponse as SessionMessagesResponse
from .session_summarize_response import SessionSummarizeResponse as SessionSummarizeResponse
from .file_part_source_text_param import FilePartSourceTextParam as FilePartSourceTextParam
10 changes: 6 additions & 4 deletions src/opencode_ai/types/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@

from .._utils import PropertyInfo
from .._models import BaseModel
from .log_level import LogLevel
from .mode_config import ModeConfig
from .keybinds_config import KeybindsConfig
from .mcp_local_config import McpLocalConfig
Expand Down Expand Up @@ -146,9 +145,6 @@ class Config(BaseModel):
layout: Optional[Literal["auto", "stretch"]] = None
"""@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 (Model Context Protocol) server configurations"""

Expand All @@ -167,6 +163,12 @@ class Config(BaseModel):
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 name to use for the interface"""

Expand Down
3 changes: 3 additions & 0 deletions src/opencode_ai/types/file_part.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
from pydantic import Field as FieldInfo

from .._models import BaseModel
from .file_part_source import FilePartSource

__all__ = ["FilePart"]

Expand All @@ -24,3 +25,5 @@ class FilePart(BaseModel):
url: str

filename: Optional[str] = None

source: Optional[FilePartSource] = None
4 changes: 4 additions & 0 deletions src/opencode_ai/types/file_part_input_param.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@

from typing_extensions import Literal, Required, TypedDict

from .file_part_source_param import FilePartSourceParam

__all__ = ["FilePartInputParam"]


Expand All @@ -17,3 +19,5 @@ class FilePartInputParam(TypedDict, total=False):
id: str

filename: str

source: FilePartSourceParam
12 changes: 12 additions & 0 deletions src/opencode_ai/types/file_part_source.py
Original file line number Diff line number Diff line change
@@ -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")]
13 changes: 13 additions & 0 deletions src/opencode_ai/types/file_part_source_param.py
Original file line number Diff line number Diff line change
@@ -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]
13 changes: 13 additions & 0 deletions src/opencode_ai/types/file_part_source_text.py
Original file line number Diff line number Diff line change
@@ -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
15 changes: 15 additions & 0 deletions src/opencode_ai/types/file_part_source_text_param.py
Original file line number Diff line number Diff line change
@@ -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]
16 changes: 16 additions & 0 deletions src/opencode_ai/types/file_source.py
Original file line number Diff line number Diff line change
@@ -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"]
17 changes: 17 additions & 0 deletions src/opencode_ai/types/file_source_param.py
Original file line number Diff line number Diff line change
@@ -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"]]
7 changes: 0 additions & 7 deletions src/opencode_ai/types/log_level.py

This file was deleted.

4 changes: 3 additions & 1 deletion src/opencode_ai/types/session_chat_params.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

from __future__ import annotations

from typing import Union, Iterable
from typing import Dict, Union, Iterable
from typing_extensions import Required, Annotated, TypeAlias, TypedDict

from .._utils import PropertyInfo
Expand All @@ -23,5 +23,7 @@ class SessionChatParams(TypedDict, total=False):

mode: str

tools: Dict[str, bool]


Part: TypeAlias = Union[TextPartInputParam, FilePartInputParam]
40 changes: 40 additions & 0 deletions src/opencode_ai/types/symbol_source.py
Original file line number Diff line number Diff line change
@@ -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"]
Loading