opencode-python-sdk 0.0.1.dev1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. opencode/.generated.json +39 -0
  2. opencode/__init__.py +221 -0
  3. opencode/_base_client.py +539 -0
  4. opencode/_client.py +255 -0
  5. opencode/_constants.py +27 -0
  6. opencode/_errors.py +547 -0
  7. opencode/_events.py +732 -0
  8. opencode/_exceptions.py +271 -0
  9. opencode/_models.py +54 -0
  10. opencode/_pagination.py +192 -0
  11. opencode/_pty.py +586 -0
  12. opencode/_qs.py +95 -0
  13. opencode/_resource.py +42 -0
  14. opencode/_rpc.py +489 -0
  15. opencode/_server.py +335 -0
  16. opencode/_streaming.py +248 -0
  17. opencode/_types.py +77 -0
  18. opencode/_unions.py +46 -0
  19. opencode/_version.py +8 -0
  20. opencode/lib/__init__.py +5 -0
  21. opencode/lib/_ready.py +91 -0
  22. opencode/lib/_session.py +231 -0
  23. opencode/py.typed +0 -0
  24. opencode/resources/__init__.py +364 -0
  25. opencode/resources/agent.py +179 -0
  26. opencode/resources/command.py +100 -0
  27. opencode/resources/config.py +240 -0
  28. opencode/resources/credential.py +384 -0
  29. opencode/resources/debug.py +178 -0
  30. opencode/resources/event.py +88 -0
  31. opencode/resources/experimental.py +765 -0
  32. opencode/resources/file.py +355 -0
  33. opencode/resources/form.py +100 -0
  34. opencode/resources/generate.py +110 -0
  35. opencode/resources/integration.py +1033 -0
  36. opencode/resources/location.py +162 -0
  37. opencode/resources/mcp.py +492 -0
  38. opencode/resources/message.py +152 -0
  39. opencode/resources/migration.py +118 -0
  40. opencode/resources/model.py +177 -0
  41. opencode/resources/permission.py +704 -0
  42. opencode/resources/plugin.py +250 -0
  43. opencode/resources/project.py +187 -0
  44. opencode/resources/provider.py +183 -0
  45. opencode/resources/pty.py +522 -0
  46. opencode/resources/reference.py +100 -0
  47. opencode/resources/rpc.py +113 -0
  48. opencode/resources/server.py +230 -0
  49. opencode/resources/session.py +3567 -0
  50. opencode/resources/shell.py +412 -0
  51. opencode/resources/skill.py +100 -0
  52. opencode/resources/vcs.py +500 -0
  53. opencode/resources/voice.py +113 -0
  54. opencode/resources/websearch.py +184 -0
  55. opencode/resources/worktree.py +336 -0
  56. opencode/testing.py +508 -0
  57. opencode/types/__init__.py +1462 -0
  58. opencode/types/_generated.py +8540 -0
  59. opencode_python_sdk-0.0.1.dev1.dist-info/METADATA +468 -0
  60. opencode_python_sdk-0.0.1.dev1.dist-info/RECORD +62 -0
  61. opencode_python_sdk-0.0.1.dev1.dist-info/WHEEL +4 -0
  62. opencode_python_sdk-0.0.1.dev1.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,39 @@
1
+ [
2
+ "api.md",
3
+ "src/opencode/__init__.py",
4
+ "src/opencode/_errors.py",
5
+ "src/opencode/resources/__init__.py",
6
+ "src/opencode/resources/agent.py",
7
+ "src/opencode/resources/command.py",
8
+ "src/opencode/resources/config.py",
9
+ "src/opencode/resources/credential.py",
10
+ "src/opencode/resources/debug.py",
11
+ "src/opencode/resources/event.py",
12
+ "src/opencode/resources/experimental.py",
13
+ "src/opencode/resources/file.py",
14
+ "src/opencode/resources/form.py",
15
+ "src/opencode/resources/generate.py",
16
+ "src/opencode/resources/integration.py",
17
+ "src/opencode/resources/location.py",
18
+ "src/opencode/resources/mcp.py",
19
+ "src/opencode/resources/message.py",
20
+ "src/opencode/resources/migration.py",
21
+ "src/opencode/resources/model.py",
22
+ "src/opencode/resources/permission.py",
23
+ "src/opencode/resources/plugin.py",
24
+ "src/opencode/resources/project.py",
25
+ "src/opencode/resources/provider.py",
26
+ "src/opencode/resources/pty.py",
27
+ "src/opencode/resources/reference.py",
28
+ "src/opencode/resources/rpc.py",
29
+ "src/opencode/resources/server.py",
30
+ "src/opencode/resources/session.py",
31
+ "src/opencode/resources/shell.py",
32
+ "src/opencode/resources/skill.py",
33
+ "src/opencode/resources/vcs.py",
34
+ "src/opencode/resources/voice.py",
35
+ "src/opencode/resources/websearch.py",
36
+ "src/opencode/resources/worktree.py",
37
+ "src/opencode/types/__init__.py",
38
+ "src/opencode/types/_generated.py"
39
+ ]
opencode/__init__.py ADDED
@@ -0,0 +1,221 @@
1
+ """Typed Python client for the OpenCode 2.x server API.
2
+
3
+ Quick start::
4
+
5
+ from opencode import Opencode, OpencodeServer
6
+
7
+ with OpencodeServer() as server, Opencode(server.url, password=server.password) as client:
8
+ session = client.session.create(agent="build")
9
+ client.session.prompt(session.id, text="Summarize this repository")
10
+ client.session.wait(session.id)
11
+ for message in client.message.list(session.id):
12
+ print(message.type)
13
+ """
14
+
15
+ from __future__ import annotations
16
+
17
+ from typing import TYPE_CHECKING, Any
18
+
19
+ from ._client import AsyncOpencode, Opencode
20
+
21
+ # <generated:error-imports>
22
+ from ._errors import (
23
+ AgentNotFoundError,
24
+ CommandExecutionError,
25
+ CommandNotFoundError,
26
+ ForbiddenError,
27
+ FormAlreadySettledError,
28
+ FormInvalidAnswerError,
29
+ FormNotFoundError,
30
+ InstructionEntryValueTooLargeError,
31
+ IntegrationAttemptNotFoundError,
32
+ IntegrationMethodNotFoundError,
33
+ IntegrationNotFoundError,
34
+ InvalidCursorError,
35
+ InvalidRequestError,
36
+ LocationNotFoundError,
37
+ McpServerNotFoundError,
38
+ MessageNotFoundError,
39
+ PermissionNotFoundError,
40
+ PermissionSavedNotFoundError,
41
+ ProjectNotFoundError,
42
+ ProviderNotFoundError,
43
+ PtyNotFoundError,
44
+ RemoteFileNotFoundError,
45
+ RpcError,
46
+ RpcInternalError,
47
+ SessionBusyError,
48
+ SessionNotFoundError,
49
+ ShellNotFoundError,
50
+ SkillNotFoundError,
51
+ UnauthorizedError,
52
+ UnknownError,
53
+ VcsInitNotSupportedError,
54
+ WorktreeError,
55
+ )
56
+
57
+ # </generated:error-imports>
58
+ from ._exceptions import (
59
+ APIConnectionError,
60
+ APIError,
61
+ APIResponseValidationError,
62
+ APIStatusError,
63
+ APITimeoutError,
64
+ AuthenticationError,
65
+ BadRequestError,
66
+ ConflictError,
67
+ ContentTooLargeError,
68
+ InternalServerError,
69
+ NotFoundError,
70
+ NotImplementedServerError,
71
+ OpencodeError,
72
+ PermissionDeniedError,
73
+ RateLimitError,
74
+ ServiceUnavailableError,
75
+ UnprocessableEntityError,
76
+ )
77
+ from ._models import BaseModel
78
+ from ._pagination import AsyncCursorPage, AsyncPaginator, SyncCursorPage
79
+ from ._pty import AsyncPtyConnection, PtyConnection, PtyConnectionError
80
+ from ._server import AsyncOpencodeServer, OpencodeServer, ServerStartError
81
+ from ._streaming import AsyncStream, Stream
82
+ from ._types import NOT_GIVEN, NotGiven
83
+ from ._version import __version__
84
+
85
+ # isort: split
86
+ # Hand-written helpers, kept apart from the generated error-import block above.
87
+ from ._events import (
88
+ SUBSCRIBER_CAPACITY,
89
+ AsyncEventHub,
90
+ AsyncSubscription,
91
+ EventHub,
92
+ EventOverflowError,
93
+ Reconnect,
94
+ Subscription,
95
+ session_id_of,
96
+ )
97
+ from ._rpc import (
98
+ AsyncRpcClient,
99
+ AsyncRpcEvents,
100
+ RpcCallError,
101
+ RpcCallInternalError,
102
+ RpcClient,
103
+ RpcDefinition,
104
+ RpcEventDefinition,
105
+ RpcEventPayload,
106
+ RpcEvents,
107
+ RpcMethod,
108
+ rpc_event,
109
+ rpc_method,
110
+ )
111
+
112
+ if TYPE_CHECKING:
113
+ from . import types
114
+
115
+ # <generated:api-version>
116
+ API_VERSION = "2.1.2"
117
+ """The OpenCode server version this client was generated from."""
118
+ # </generated:api-version>
119
+
120
+ __all__ = [
121
+ "API_VERSION",
122
+ "NOT_GIVEN",
123
+ "APIConnectionError",
124
+ "APIError",
125
+ "APIResponseValidationError",
126
+ "APIStatusError",
127
+ "APITimeoutError",
128
+ "AsyncCursorPage",
129
+ "AsyncOpencode",
130
+ "AsyncOpencodeServer",
131
+ "AsyncPaginator",
132
+ "AsyncPtyConnection",
133
+ "AsyncStream",
134
+ "AuthenticationError",
135
+ "BadRequestError",
136
+ "BaseModel",
137
+ "ConflictError",
138
+ "ContentTooLargeError",
139
+ "InternalServerError",
140
+ "NotFoundError",
141
+ "NotGiven",
142
+ "NotImplementedServerError",
143
+ "Opencode",
144
+ "OpencodeError",
145
+ "OpencodeServer",
146
+ "PermissionDeniedError",
147
+ "PtyConnection",
148
+ "PtyConnectionError",
149
+ "RateLimitError",
150
+ "ServerStartError",
151
+ "ServiceUnavailableError",
152
+ "Stream",
153
+ "SyncCursorPage",
154
+ "UnprocessableEntityError",
155
+ "__version__",
156
+ "types",
157
+ # Shared event stream and typed plugin RPC
158
+ "SUBSCRIBER_CAPACITY",
159
+ "AsyncEventHub",
160
+ "AsyncRpcClient",
161
+ "AsyncRpcEvents",
162
+ "AsyncSubscription",
163
+ "EventHub",
164
+ "EventOverflowError",
165
+ "Reconnect",
166
+ "RpcCallError",
167
+ "RpcCallInternalError",
168
+ "RpcClient",
169
+ "RpcDefinition",
170
+ "RpcEventDefinition",
171
+ "RpcEventPayload",
172
+ "RpcEvents",
173
+ "RpcMethod",
174
+ "Subscription",
175
+ "rpc_event",
176
+ "rpc_method",
177
+ "session_id_of",
178
+ # <generated:error-exports>
179
+ "AgentNotFoundError",
180
+ "CommandExecutionError",
181
+ "CommandNotFoundError",
182
+ "RemoteFileNotFoundError",
183
+ "ForbiddenError",
184
+ "FormAlreadySettledError",
185
+ "FormInvalidAnswerError",
186
+ "FormNotFoundError",
187
+ "InstructionEntryValueTooLargeError",
188
+ "IntegrationAttemptNotFoundError",
189
+ "IntegrationMethodNotFoundError",
190
+ "IntegrationNotFoundError",
191
+ "InvalidCursorError",
192
+ "InvalidRequestError",
193
+ "LocationNotFoundError",
194
+ "McpServerNotFoundError",
195
+ "MessageNotFoundError",
196
+ "PermissionNotFoundError",
197
+ "PermissionSavedNotFoundError",
198
+ "ProjectNotFoundError",
199
+ "ProviderNotFoundError",
200
+ "PtyNotFoundError",
201
+ "RpcError",
202
+ "RpcInternalError",
203
+ "SessionBusyError",
204
+ "SessionNotFoundError",
205
+ "ShellNotFoundError",
206
+ "SkillNotFoundError",
207
+ "UnauthorizedError",
208
+ "UnknownError",
209
+ "VcsInitNotSupportedError",
210
+ "WorktreeError",
211
+ # </generated:error-exports>
212
+ ]
213
+
214
+
215
+ def __getattr__(name: str) -> Any:
216
+ # `opencode.types` builds several hundred models, so it is imported on first use rather than with the package.
217
+ if name == "types":
218
+ import importlib
219
+
220
+ return importlib.import_module(".types", __name__)
221
+ raise AttributeError(f"module {__name__!r} has no attribute {name!r}")