Skip to content

Commit fdab2a9

Browse files
feat(api): manual updates
1 parent d4ab769 commit fdab2a9

34 files changed

Lines changed: 302 additions & 474 deletions

.stats.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
configured_endpoints: 20
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/opencode%2Fopencode-945f9da9e9a4c4008834deef63e4346c0076e020eed3d3c98c249095033c1ac5.yml
3-
openapi_spec_hash: 522a44f6cb0677435fe2ac7693848ad7
4-
config_hash: 6c8822d278ba83456e5eed6d774ca230
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/opencode%2Fopencode-15eeb028f79b9a065b4e54a6ea6a58631e9bd5004f97820f0c79d18e3f8bac84.yml
3+
openapi_spec_hash: 38c8bacb6c8e4c46852a3e81e3fb9fda
4+
config_hash: 348a85e725de595ca05a61f4333794ac

api.md

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -83,18 +83,19 @@ Types:
8383

8484
```python
8585
from opencode_ai.types import (
86+
AssistantMessage,
87+
AssistantMessagePart,
8688
FilePart,
8789
Message,
88-
MessagePart,
89-
ReasoningPart,
9090
Session,
91-
SourceURLPart,
9291
StepStartPart,
9392
TextPart,
94-
ToolCall,
95-
ToolInvocationPart,
96-
ToolPartialCall,
97-
ToolResult,
93+
ToolPart,
94+
ToolStateCompleted,
95+
ToolStateError,
96+
ToolStatePending,
97+
ToolStateRunning,
98+
UserMessagePart,
9899
SessionListResponse,
99100
SessionDeleteResponse,
100101
SessionAbortResponse,
@@ -110,7 +111,7 @@ Methods:
110111
- <code title="get /session">client.session.<a href="./src/opencode_ai/resources/session.py">list</a>() -> <a href="./src/opencode_ai/types/session_list_response.py">SessionListResponse</a></code>
111112
- <code title="delete /session/{id}">client.session.<a href="./src/opencode_ai/resources/session.py">delete</a>(id) -> <a href="./src/opencode_ai/types/session_delete_response.py">SessionDeleteResponse</a></code>
112113
- <code title="post /session/{id}/abort">client.session.<a href="./src/opencode_ai/resources/session.py">abort</a>(id) -> <a href="./src/opencode_ai/types/session_abort_response.py">SessionAbortResponse</a></code>
113-
- <code title="post /session/{id}/message">client.session.<a href="./src/opencode_ai/resources/session.py">chat</a>(id, \*\*<a href="src/opencode_ai/types/session_chat_params.py">params</a>) -> <a href="./src/opencode_ai/types/message.py">Message</a></code>
114+
- <code title="post /session/{id}/message">client.session.<a href="./src/opencode_ai/resources/session.py">chat</a>(id, \*\*<a href="src/opencode_ai/types/session_chat_params.py">params</a>) -> <a href="./src/opencode_ai/types/assistant_message.py">AssistantMessage</a></code>
114115
- <code title="post /session/{id}/init">client.session.<a href="./src/opencode_ai/resources/session.py">init</a>(id, \*\*<a href="src/opencode_ai/types/session_init_params.py">params</a>) -> <a href="./src/opencode_ai/types/session_init_response.py">SessionInitResponse</a></code>
115116
- <code title="get /session/{id}/message">client.session.<a href="./src/opencode_ai/resources/session.py">messages</a>(id) -> <a href="./src/opencode_ai/types/session_messages_response.py">SessionMessagesResponse</a></code>
116117
- <code title="post /session/{id}/share">client.session.<a href="./src/opencode_ai/resources/session.py">share</a>(id) -> <a href="./src/opencode_ai/types/session.py">Session</a></code>

src/opencode_ai/resources/session.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,13 @@
1818
async_to_streamed_response_wrapper,
1919
)
2020
from .._base_client import make_request_options
21-
from ..types.message import Message
2221
from ..types.session import Session
23-
from ..types.message_part_param import MessagePartParam
22+
from ..types.assistant_message import AssistantMessage
2423
from ..types.session_init_response import SessionInitResponse
2524
from ..types.session_list_response import SessionListResponse
2625
from ..types.session_abort_response import SessionAbortResponse
2726
from ..types.session_delete_response import SessionDeleteResponse
27+
from ..types.user_message_part_param import UserMessagePartParam
2828
from ..types.session_messages_response import SessionMessagesResponse
2929
from ..types.session_summarize_response import SessionSummarizeResponse
3030

@@ -160,15 +160,15 @@ def chat(
160160
id: str,
161161
*,
162162
model_id: str,
163-
parts: Iterable[MessagePartParam],
163+
parts: Iterable[UserMessagePartParam],
164164
provider_id: str,
165165
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
166166
# The extra values given here take precedence over values defined on the client or passed to this method.
167167
extra_headers: Headers | None = None,
168168
extra_query: Query | None = None,
169169
extra_body: Body | None = None,
170170
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
171-
) -> Message:
171+
) -> AssistantMessage:
172172
"""
173173
Create and send a new message to a session
174174
@@ -198,7 +198,7 @@ def chat(
198198
options=make_request_options(
199199
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
200200
),
201-
cast_to=Message,
201+
cast_to=AssistantMessage,
202202
)
203203

204204
def init(
@@ -520,15 +520,15 @@ async def chat(
520520
id: str,
521521
*,
522522
model_id: str,
523-
parts: Iterable[MessagePartParam],
523+
parts: Iterable[UserMessagePartParam],
524524
provider_id: str,
525525
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
526526
# The extra values given here take precedence over values defined on the client or passed to this method.
527527
extra_headers: Headers | None = None,
528528
extra_query: Query | None = None,
529529
extra_body: Body | None = None,
530530
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
531-
) -> Message:
531+
) -> AssistantMessage:
532532
"""
533533
Create and send a new message to a session
534534
@@ -558,7 +558,7 @@ async def chat(
558558
options=make_request_options(
559559
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
560560
),
561-
cast_to=Message,
561+
cast_to=AssistantMessage,
562562
)
563563

564564
async def init(

src/opencode_ai/types/__init__.py

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -13,43 +13,37 @@
1313
from .file_part import FilePart as FilePart
1414
from .mcp_local import McpLocal as McpLocal
1515
from .text_part import TextPart as TextPart
16-
from .tool_call import ToolCall as ToolCall
16+
from .tool_part import ToolPart as ToolPart
1717
from .mcp_remote import McpRemote as McpRemote
18-
from .tool_result import ToolResult as ToolResult
19-
from .message_part import MessagePart as MessagePart
20-
from .reasoning_part import ReasoningPart as ReasoningPart
2118
from .file_part_param import FilePartParam as FilePartParam
22-
from .source_url_part import SourceURLPart as SourceURLPart
2319
from .step_start_part import StepStartPart as StepStartPart
2420
from .text_part_param import TextPartParam as TextPartParam
25-
from .tool_call_param import ToolCallParam as ToolCallParam
2621
from .file_read_params import FileReadParams as FileReadParams
2722
from .find_text_params import FindTextParams as FindTextParams
23+
from .tool_state_error import ToolStateError as ToolStateError
2824
from .app_init_response import AppInitResponse as AppInitResponse
25+
from .assistant_message import AssistantMessage as AssistantMessage
2926
from .find_files_params import FindFilesParams as FindFilesParams
30-
from .tool_partial_call import ToolPartialCall as ToolPartialCall
31-
from .tool_result_param import ToolResultParam as ToolResultParam
27+
from .user_message_part import UserMessagePart as UserMessagePart
3228
from .file_read_response import FileReadResponse as FileReadResponse
3329
from .find_text_response import FindTextResponse as FindTextResponse
34-
from .message_part_param import MessagePartParam as MessagePartParam
30+
from .tool_state_pending import ToolStatePending as ToolStatePending
31+
from .tool_state_running import ToolStateRunning as ToolStateRunning
3532
from .event_list_response import EventListResponse as EventListResponse
3633
from .find_files_response import FindFilesResponse as FindFilesResponse
3734
from .find_symbols_params import FindSymbolsParams as FindSymbolsParams
3835
from .session_chat_params import SessionChatParams as SessionChatParams
3936
from .session_init_params import SessionInitParams as SessionInitParams
4037
from .file_status_response import FileStatusResponse as FileStatusResponse
41-
from .reasoning_part_param import ReasoningPartParam as ReasoningPartParam
42-
from .tool_invocation_part import ToolInvocationPart as ToolInvocationPart
38+
from .tool_state_completed import ToolStateCompleted as ToolStateCompleted
4339
from .find_symbols_response import FindSymbolsResponse as FindSymbolsResponse
4440
from .session_init_response import SessionInitResponse as SessionInitResponse
4541
from .session_list_response import SessionListResponse as SessionListResponse
46-
from .source_url_part_param import SourceURLPartParam as SourceURLPartParam
47-
from .step_start_part_param import StepStartPartParam as StepStartPartParam
42+
from .assistant_message_part import AssistantMessagePart as AssistantMessagePart
4843
from .session_abort_response import SessionAbortResponse as SessionAbortResponse
4944
from .session_delete_response import SessionDeleteResponse as SessionDeleteResponse
50-
from .tool_partial_call_param import ToolPartialCallParam as ToolPartialCallParam
45+
from .user_message_part_param import UserMessagePartParam as UserMessagePartParam
5146
from .session_summarize_params import SessionSummarizeParams as SessionSummarizeParams
5247
from .config_providers_response import ConfigProvidersResponse as ConfigProvidersResponse
5348
from .session_messages_response import SessionMessagesResponse as SessionMessagesResponse
5449
from .session_summarize_response import SessionSummarizeResponse as SessionSummarizeResponse
55-
from .tool_invocation_part_param import ToolInvocationPartParam as ToolInvocationPartParam
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2+
3+
from typing import List, Union, Optional
4+
from typing_extensions import Literal, Annotated, TypeAlias
5+
6+
from pydantic import Field as FieldInfo
7+
8+
from .._utils import PropertyInfo
9+
from .._models import BaseModel
10+
from .shared.unknown_error import UnknownError
11+
from .assistant_message_part import AssistantMessagePart
12+
from .shared.provider_auth_error import ProviderAuthError
13+
14+
__all__ = ["AssistantMessage", "Path", "Time", "Tokens", "TokensCache", "Error", "ErrorMessageOutputLengthError"]
15+
16+
17+
class Path(BaseModel):
18+
cwd: str
19+
20+
root: str
21+
22+
23+
class Time(BaseModel):
24+
created: float
25+
26+
completed: Optional[float] = None
27+
28+
29+
class TokensCache(BaseModel):
30+
read: float
31+
32+
write: float
33+
34+
35+
class Tokens(BaseModel):
36+
cache: TokensCache
37+
38+
input: float
39+
40+
output: float
41+
42+
reasoning: float
43+
44+
45+
class ErrorMessageOutputLengthError(BaseModel):
46+
data: object
47+
48+
name: Literal["MessageOutputLengthError"]
49+
50+
51+
Error: TypeAlias = Annotated[
52+
Union[ProviderAuthError, UnknownError, ErrorMessageOutputLengthError], PropertyInfo(discriminator="name")
53+
]
54+
55+
56+
class AssistantMessage(BaseModel):
57+
id: str
58+
59+
cost: float
60+
61+
api_model_id: str = FieldInfo(alias="modelID")
62+
63+
parts: List[AssistantMessagePart]
64+
65+
path: Path
66+
67+
provider_id: str = FieldInfo(alias="providerID")
68+
69+
role: Literal["assistant"]
70+
71+
session_id: str = FieldInfo(alias="sessionID")
72+
73+
system: List[str]
74+
75+
time: Time
76+
77+
tokens: Tokens
78+
79+
error: Optional[Error] = None
80+
81+
summary: Optional[bool] = None
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2+
3+
from typing import Union
4+
from typing_extensions import Annotated, TypeAlias
5+
6+
from .._utils import PropertyInfo
7+
from .text_part import TextPart
8+
from .tool_part import ToolPart
9+
from .step_start_part import StepStartPart
10+
11+
__all__ = ["AssistantMessagePart"]
12+
13+
AssistantMessagePart: TypeAlias = Annotated[
14+
Union[TextPart, ToolPart, StepStartPart], PropertyInfo(discriminator="type")
15+
]

src/opencode_ai/types/event_list_response.py

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@
99
from .message import Message
1010
from .session import Session
1111
from .._models import BaseModel
12-
from .message_part import MessagePart
1312
from .shared.unknown_error import UnknownError
13+
from .assistant_message_part import AssistantMessagePart
1414
from .shared.provider_auth_error import ProviderAuthError
1515

1616
__all__ = [
@@ -22,10 +22,10 @@
2222
"EventPermissionUpdatedPropertiesTime",
2323
"EventFileEdited",
2424
"EventFileEditedProperties",
25-
"EventStorageWrite",
26-
"EventStorageWriteProperties",
2725
"EventInstallationUpdated",
2826
"EventInstallationUpdatedProperties",
27+
"EventStorageWrite",
28+
"EventStorageWriteProperties",
2929
"EventMessageUpdated",
3030
"EventMessageUpdatedProperties",
3131
"EventMessageRemoved",
@@ -91,6 +91,16 @@ class EventFileEdited(BaseModel):
9191
type: Literal["file.edited"]
9292

9393

94+
class EventInstallationUpdatedProperties(BaseModel):
95+
version: str
96+
97+
98+
class EventInstallationUpdated(BaseModel):
99+
properties: EventInstallationUpdatedProperties
100+
101+
type: Literal["installation.updated"]
102+
103+
94104
class EventStorageWriteProperties(BaseModel):
95105
key: str
96106

@@ -103,16 +113,6 @@ class EventStorageWrite(BaseModel):
103113
type: Literal["storage.write"]
104114

105115

106-
class EventInstallationUpdatedProperties(BaseModel):
107-
version: str
108-
109-
110-
class EventInstallationUpdated(BaseModel):
111-
properties: EventInstallationUpdatedProperties
112-
113-
type: Literal["installation.updated"]
114-
115-
116116
class EventMessageUpdatedProperties(BaseModel):
117117
info: Message
118118

@@ -138,7 +138,7 @@ class EventMessageRemoved(BaseModel):
138138
class EventMessagePartUpdatedProperties(BaseModel):
139139
message_id: str = FieldInfo(alias="messageID")
140140

141-
part: MessagePart
141+
part: AssistantMessagePart
142142

143143
session_id: str = FieldInfo(alias="sessionID")
144144

@@ -218,8 +218,8 @@ class EventFileWatcherUpdated(BaseModel):
218218
EventLspClientDiagnostics,
219219
EventPermissionUpdated,
220220
EventFileEdited,
221-
EventStorageWrite,
222221
EventInstallationUpdated,
222+
EventStorageWrite,
223223
EventMessageUpdated,
224224
EventMessageRemoved,
225225
EventMessagePartUpdated,

src/opencode_ai/types/file_part.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,13 @@
33
from typing import Optional
44
from typing_extensions import Literal
55

6-
from pydantic import Field as FieldInfo
7-
86
from .._models import BaseModel
97

108
__all__ = ["FilePart"]
119

1210

1311
class FilePart(BaseModel):
14-
media_type: str = FieldInfo(alias="mediaType")
12+
mime: str
1513

1614
type: Literal["file"]
1715

src/opencode_ai/types/file_part_param.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,13 @@
22

33
from __future__ import annotations
44

5-
from typing_extensions import Literal, Required, Annotated, TypedDict
6-
7-
from .._utils import PropertyInfo
5+
from typing_extensions import Literal, Required, TypedDict
86

97
__all__ = ["FilePartParam"]
108

119

1210
class FilePartParam(TypedDict, total=False):
13-
media_type: Required[Annotated[str, PropertyInfo(alias="mediaType")]]
11+
mime: Required[str]
1412

1513
type: Required[Literal["file"]]
1614

0 commit comments

Comments
 (0)