subako 0.1.0__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.
- subako/__init__.py +468 -0
- subako/_client.py +82 -0
- subako/_core.py +328 -0
- subako/_errors.py +95 -0
- subako/_events.py +147 -0
- subako/_operation.py +21 -0
- subako/_pagination.py +30 -0
- subako/_session.py +382 -0
- subako/_sse.py +74 -0
- subako/_tasks.py +29 -0
- subako/_tool_client.py +402 -0
- subako/_version.py +3 -0
- subako/generated/__init__.py +6 -0
- subako/generated/models.py +1882 -0
- subako/generated/operations.py +491 -0
- subako/py.typed +0 -0
- subako/resources/__init__.py +0 -0
- subako/resources/agents.py +68 -0
- subako/resources/api_keys.py +25 -0
- subako/resources/me.py +12 -0
- subako/resources/model_providers.py +55 -0
- subako/resources/organization.py +68 -0
- subako/resources/sessions.py +191 -0
- subako/resources/skills.py +55 -0
- subako/resources/vaults.py +66 -0
- subako/resources/workspaces.py +103 -0
- subako-0.1.0.dist-info/METADATA +564 -0
- subako-0.1.0.dist-info/RECORD +30 -0
- subako-0.1.0.dist-info/WHEEL +4 -0
- subako-0.1.0.dist-info/licenses/LICENSE +202 -0
subako/__init__.py
ADDED
|
@@ -0,0 +1,468 @@
|
|
|
1
|
+
from subako._client import SubakoClient
|
|
2
|
+
from subako._core import Archive, RequestOptions, ResourceId, TokenSource
|
|
3
|
+
from subako._errors import (
|
|
4
|
+
ClientOutdatedError,
|
|
5
|
+
ConflictError,
|
|
6
|
+
ForbiddenError,
|
|
7
|
+
InternalError,
|
|
8
|
+
InvalidRequestError,
|
|
9
|
+
NotFoundError,
|
|
10
|
+
PreconditionFailedError,
|
|
11
|
+
SubakoConnectionError,
|
|
12
|
+
SubakoError,
|
|
13
|
+
SubakoTimeoutError,
|
|
14
|
+
TooManyRequestsError,
|
|
15
|
+
UnauthorizedError,
|
|
16
|
+
)
|
|
17
|
+
from subako._events import (
|
|
18
|
+
ApprovalState,
|
|
19
|
+
ToolCallResult,
|
|
20
|
+
TranscriptFold,
|
|
21
|
+
TranscriptMessage,
|
|
22
|
+
TranscriptToolCall,
|
|
23
|
+
is_running,
|
|
24
|
+
pending_approvals,
|
|
25
|
+
transcript,
|
|
26
|
+
)
|
|
27
|
+
from subako._pagination import Page
|
|
28
|
+
from subako._session import ConnectionStatus, SessionConnection
|
|
29
|
+
from subako._tool_client import Lifetime, Tool, ToolAnswer, ToolCall, ToolClient, ToolClientStatus
|
|
30
|
+
from subako._version import VERSION
|
|
31
|
+
|
|
32
|
+
# generated-exports: begin
|
|
33
|
+
from subako.generated.models import (
|
|
34
|
+
ActorBody,
|
|
35
|
+
AddCredentialBody,
|
|
36
|
+
AddWorkspaceMemberBody,
|
|
37
|
+
AgentBody,
|
|
38
|
+
AgentConfigBody,
|
|
39
|
+
AgentSecurityBody,
|
|
40
|
+
AgentVersionBody,
|
|
41
|
+
AllowApprovalDecisionForm,
|
|
42
|
+
AnthropicModelBody,
|
|
43
|
+
AnthropicModelConfig,
|
|
44
|
+
AnthropicModelUsage,
|
|
45
|
+
AnthropicThinkingBody,
|
|
46
|
+
AnthropicUsageBody,
|
|
47
|
+
ApiKeyBody,
|
|
48
|
+
ApiKeyReceiptBody,
|
|
49
|
+
ApiKeySessionCreator,
|
|
50
|
+
ApprovalDecisionBody,
|
|
51
|
+
ApprovalDecisionForm,
|
|
52
|
+
ApprovalRequestedEvent,
|
|
53
|
+
ApprovalResolvedEvent,
|
|
54
|
+
AuthSchemeBody,
|
|
55
|
+
ByokModelProvider,
|
|
56
|
+
CancelOutcomeBody,
|
|
57
|
+
ChangeMemberRoleBody,
|
|
58
|
+
ChangeWorkspaceMemberRoleBody,
|
|
59
|
+
ClientCallFailureBody,
|
|
60
|
+
ClientCallResultBody,
|
|
61
|
+
ClientLeaveReasonBody,
|
|
62
|
+
ClientLeftEvent,
|
|
63
|
+
ClientLifetime,
|
|
64
|
+
ClientLifetimeBody,
|
|
65
|
+
ClientLifetimeForm,
|
|
66
|
+
ClientPingBody,
|
|
67
|
+
ClientRegisteredEvent,
|
|
68
|
+
ClientToolAckedEvent,
|
|
69
|
+
ClientToolBody,
|
|
70
|
+
ClientToolDispatchedEvent,
|
|
71
|
+
ClientToolFailedEvent,
|
|
72
|
+
ClientToolsUpdatedEvent,
|
|
73
|
+
ContentBlock,
|
|
74
|
+
ContentBlockBody,
|
|
75
|
+
CreateAgentBody,
|
|
76
|
+
CreatedSessionBody,
|
|
77
|
+
CreatedSessionReceiptBody,
|
|
78
|
+
CreateInvitationBody,
|
|
79
|
+
CreateSessionBody,
|
|
80
|
+
CreateVaultBody,
|
|
81
|
+
CreateWorkspaceBody,
|
|
82
|
+
CreateWorkspaceModelProviderBody,
|
|
83
|
+
CredentialBody,
|
|
84
|
+
CredentialCreated,
|
|
85
|
+
CredentialPayload,
|
|
86
|
+
CredentialPayloadBody,
|
|
87
|
+
CreditLotBody,
|
|
88
|
+
CreditsBody,
|
|
89
|
+
CreditSourceBody,
|
|
90
|
+
CustomEvent,
|
|
91
|
+
DenyApprovalDecisionForm,
|
|
92
|
+
ErrorBody,
|
|
93
|
+
ErrorCode,
|
|
94
|
+
ErrorDetail,
|
|
95
|
+
ErrorEvent,
|
|
96
|
+
HarnessRuntimeUsageResource,
|
|
97
|
+
InputSourceBody,
|
|
98
|
+
InvitationBody,
|
|
99
|
+
KeyPermissionSchema,
|
|
100
|
+
LatestVersionPin,
|
|
101
|
+
ListAgentsQuery,
|
|
102
|
+
ListAgentVersionsQuery,
|
|
103
|
+
ListApiKeysQuery,
|
|
104
|
+
ListCredentialsQuery,
|
|
105
|
+
ListInvitationsQuery,
|
|
106
|
+
ListMembersQuery,
|
|
107
|
+
ListModelProvidersQuery,
|
|
108
|
+
ListSessionEventsQuery,
|
|
109
|
+
ListSessionsQuery,
|
|
110
|
+
ListSkillsQuery,
|
|
111
|
+
ListSkillVersionsQuery,
|
|
112
|
+
ListUsageQuery,
|
|
113
|
+
ListVaultsQuery,
|
|
114
|
+
ListWorkspaceMembersQuery,
|
|
115
|
+
ListWorkspacesQuery,
|
|
116
|
+
ListWorkspaceUsageQuery,
|
|
117
|
+
LlmTokensUsageResource,
|
|
118
|
+
McpGrantBody,
|
|
119
|
+
MeBody,
|
|
120
|
+
MemberRemovedBody,
|
|
121
|
+
MeOrgBody,
|
|
122
|
+
MessageAssistantEvent,
|
|
123
|
+
MessageBody,
|
|
124
|
+
MessageUserEvent,
|
|
125
|
+
MeUserBody,
|
|
126
|
+
MintApiKeyBody,
|
|
127
|
+
MintedApiKeyBody,
|
|
128
|
+
ModelConfig,
|
|
129
|
+
ModelConfigBody,
|
|
130
|
+
ModelProvider,
|
|
131
|
+
ModelProviderBody,
|
|
132
|
+
ModelProviderDetailsBody,
|
|
133
|
+
ModelProviderFormatBody,
|
|
134
|
+
ModelProviderOwnerBody,
|
|
135
|
+
ModelUsage,
|
|
136
|
+
ModelUsageBody,
|
|
137
|
+
NeverClientLifetime,
|
|
138
|
+
NeverClientLifetimeForm,
|
|
139
|
+
OauthCredentialPayload,
|
|
140
|
+
OpenaiResponsesModelBody,
|
|
141
|
+
OpenaiResponsesModelConfig,
|
|
142
|
+
OpenaiResponsesModelUsage,
|
|
143
|
+
OpenaiResponsesUsageBody,
|
|
144
|
+
OrderParam,
|
|
145
|
+
OrganizationBody,
|
|
146
|
+
OrgMemberBody,
|
|
147
|
+
OrgRoleBody,
|
|
148
|
+
OrphanedApiKeyBody,
|
|
149
|
+
PageOutAgentBody,
|
|
150
|
+
PageOutAgentVersionBody,
|
|
151
|
+
PageOutApiKeyBody,
|
|
152
|
+
PageOutCredentialBody,
|
|
153
|
+
PageOutInvitationBody,
|
|
154
|
+
PageOutModelProviderBody,
|
|
155
|
+
PageOutOrgMemberBody,
|
|
156
|
+
PageOutSessionBody,
|
|
157
|
+
PageOutSkillBody,
|
|
158
|
+
PageOutSkillVersionBody,
|
|
159
|
+
PageOutUsageEventBody,
|
|
160
|
+
PageOutVaultBody,
|
|
161
|
+
PageOutWorkspaceBody,
|
|
162
|
+
PageOutWorkspaceMemberBody,
|
|
163
|
+
PinnedVersionPin,
|
|
164
|
+
PlatformModelBody,
|
|
165
|
+
PlatformModelProvider,
|
|
166
|
+
PolicyActionBody,
|
|
167
|
+
PostSessionEventBody,
|
|
168
|
+
PublishAgentVersionBody,
|
|
169
|
+
PutAgentSecurityBody,
|
|
170
|
+
ReasoningEffortBody,
|
|
171
|
+
RefreshBlockBody,
|
|
172
|
+
RegisterClientBody,
|
|
173
|
+
RegisteredClientBody,
|
|
174
|
+
RenameAgentBody,
|
|
175
|
+
RenameOrganizationBody,
|
|
176
|
+
RenameSkillBody,
|
|
177
|
+
RenameWorkspaceBody,
|
|
178
|
+
RoleBody,
|
|
179
|
+
RunCancelledEvent,
|
|
180
|
+
RunCompletedEvent,
|
|
181
|
+
RunFailedEvent,
|
|
182
|
+
RunQueuedEvent,
|
|
183
|
+
RunStartedEvent,
|
|
184
|
+
SessionBody,
|
|
185
|
+
SessionCreatedEvent,
|
|
186
|
+
SessionCreator,
|
|
187
|
+
SessionCreatorBody,
|
|
188
|
+
SessionEvent,
|
|
189
|
+
SessionEventBody,
|
|
190
|
+
SessionEventPageOut,
|
|
191
|
+
SessionStatusBody,
|
|
192
|
+
SessionTokenBody,
|
|
193
|
+
SessionTokenReceiptBody,
|
|
194
|
+
SkillBody,
|
|
195
|
+
SkillGrantBody,
|
|
196
|
+
SkillVersionBody,
|
|
197
|
+
StaticBearerCredentialPayload,
|
|
198
|
+
StreamSessionEventsQuery,
|
|
199
|
+
SubmitKindBody,
|
|
200
|
+
SubmitOutcomeBody,
|
|
201
|
+
TextContentBlock,
|
|
202
|
+
TextContentBlockData,
|
|
203
|
+
ThinkingContentBlock,
|
|
204
|
+
ThinkingContentBlockData,
|
|
205
|
+
ToolCallContentBlock,
|
|
206
|
+
ToolCallContentBlockData,
|
|
207
|
+
ToolCallEvent,
|
|
208
|
+
ToolDescriptorBody,
|
|
209
|
+
ToolResultEvent,
|
|
210
|
+
ToolRuleBody,
|
|
211
|
+
TtlClientLifetime,
|
|
212
|
+
TtlClientLifetimeData,
|
|
213
|
+
TtlClientLifetimeForm,
|
|
214
|
+
TtlClientLifetimeFormData,
|
|
215
|
+
UpdateClientToolsBody,
|
|
216
|
+
UpdateModelProviderBody,
|
|
217
|
+
UpdateVaultBody,
|
|
218
|
+
UsageEventBody,
|
|
219
|
+
UsageResource,
|
|
220
|
+
UsageResourceBody,
|
|
221
|
+
UserSessionCreator,
|
|
222
|
+
VaultBody,
|
|
223
|
+
VaultCreated,
|
|
224
|
+
VersionPin,
|
|
225
|
+
VersionPinBody,
|
|
226
|
+
WorkspaceBody,
|
|
227
|
+
WorkspaceMemberBody,
|
|
228
|
+
WorkspaceRoleBody,
|
|
229
|
+
)
|
|
230
|
+
|
|
231
|
+
# generated-exports: end
|
|
232
|
+
|
|
233
|
+
__all__ = [
|
|
234
|
+
"VERSION",
|
|
235
|
+
"ApprovalState",
|
|
236
|
+
"Archive",
|
|
237
|
+
"ClientOutdatedError",
|
|
238
|
+
"ConflictError",
|
|
239
|
+
"ConnectionStatus",
|
|
240
|
+
"ForbiddenError",
|
|
241
|
+
"InternalError",
|
|
242
|
+
"InvalidRequestError",
|
|
243
|
+
"Lifetime",
|
|
244
|
+
"NotFoundError",
|
|
245
|
+
"Page",
|
|
246
|
+
"PreconditionFailedError",
|
|
247
|
+
"RequestOptions",
|
|
248
|
+
"ResourceId",
|
|
249
|
+
"SessionConnection",
|
|
250
|
+
"SubakoClient",
|
|
251
|
+
"SubakoConnectionError",
|
|
252
|
+
"SubakoError",
|
|
253
|
+
"SubakoTimeoutError",
|
|
254
|
+
"TokenSource",
|
|
255
|
+
"TooManyRequestsError",
|
|
256
|
+
"Tool",
|
|
257
|
+
"ToolAnswer",
|
|
258
|
+
"ToolCall",
|
|
259
|
+
"ToolCallResult",
|
|
260
|
+
"ToolClient",
|
|
261
|
+
"ToolClientStatus",
|
|
262
|
+
"TranscriptFold",
|
|
263
|
+
"TranscriptMessage",
|
|
264
|
+
"TranscriptToolCall",
|
|
265
|
+
"UnauthorizedError",
|
|
266
|
+
"is_running",
|
|
267
|
+
"pending_approvals",
|
|
268
|
+
"transcript",
|
|
269
|
+
]
|
|
270
|
+
# generated-exports-all: begin
|
|
271
|
+
__all__ += [
|
|
272
|
+
"ActorBody",
|
|
273
|
+
"AddCredentialBody",
|
|
274
|
+
"AddWorkspaceMemberBody",
|
|
275
|
+
"AgentBody",
|
|
276
|
+
"AgentConfigBody",
|
|
277
|
+
"AgentSecurityBody",
|
|
278
|
+
"AgentVersionBody",
|
|
279
|
+
"AllowApprovalDecisionForm",
|
|
280
|
+
"AnthropicModelBody",
|
|
281
|
+
"AnthropicModelConfig",
|
|
282
|
+
"AnthropicModelUsage",
|
|
283
|
+
"AnthropicThinkingBody",
|
|
284
|
+
"AnthropicUsageBody",
|
|
285
|
+
"ApiKeyBody",
|
|
286
|
+
"ApiKeyReceiptBody",
|
|
287
|
+
"ApiKeySessionCreator",
|
|
288
|
+
"ApprovalDecisionBody",
|
|
289
|
+
"ApprovalDecisionForm",
|
|
290
|
+
"ApprovalRequestedEvent",
|
|
291
|
+
"ApprovalResolvedEvent",
|
|
292
|
+
"AuthSchemeBody",
|
|
293
|
+
"ByokModelProvider",
|
|
294
|
+
"CancelOutcomeBody",
|
|
295
|
+
"ChangeMemberRoleBody",
|
|
296
|
+
"ChangeWorkspaceMemberRoleBody",
|
|
297
|
+
"ClientCallFailureBody",
|
|
298
|
+
"ClientCallResultBody",
|
|
299
|
+
"ClientLeaveReasonBody",
|
|
300
|
+
"ClientLeftEvent",
|
|
301
|
+
"ClientLifetime",
|
|
302
|
+
"ClientLifetimeBody",
|
|
303
|
+
"ClientLifetimeForm",
|
|
304
|
+
"ClientPingBody",
|
|
305
|
+
"ClientRegisteredEvent",
|
|
306
|
+
"ClientToolAckedEvent",
|
|
307
|
+
"ClientToolBody",
|
|
308
|
+
"ClientToolDispatchedEvent",
|
|
309
|
+
"ClientToolFailedEvent",
|
|
310
|
+
"ClientToolsUpdatedEvent",
|
|
311
|
+
"ContentBlock",
|
|
312
|
+
"ContentBlockBody",
|
|
313
|
+
"CreateAgentBody",
|
|
314
|
+
"CreateInvitationBody",
|
|
315
|
+
"CreateSessionBody",
|
|
316
|
+
"CreateVaultBody",
|
|
317
|
+
"CreateWorkspaceBody",
|
|
318
|
+
"CreateWorkspaceModelProviderBody",
|
|
319
|
+
"CreatedSessionBody",
|
|
320
|
+
"CreatedSessionReceiptBody",
|
|
321
|
+
"CredentialBody",
|
|
322
|
+
"CredentialCreated",
|
|
323
|
+
"CredentialPayload",
|
|
324
|
+
"CredentialPayloadBody",
|
|
325
|
+
"CreditLotBody",
|
|
326
|
+
"CreditSourceBody",
|
|
327
|
+
"CreditsBody",
|
|
328
|
+
"CustomEvent",
|
|
329
|
+
"DenyApprovalDecisionForm",
|
|
330
|
+
"ErrorBody",
|
|
331
|
+
"ErrorCode",
|
|
332
|
+
"ErrorDetail",
|
|
333
|
+
"ErrorEvent",
|
|
334
|
+
"HarnessRuntimeUsageResource",
|
|
335
|
+
"InputSourceBody",
|
|
336
|
+
"InvitationBody",
|
|
337
|
+
"KeyPermissionSchema",
|
|
338
|
+
"LatestVersionPin",
|
|
339
|
+
"ListAgentVersionsQuery",
|
|
340
|
+
"ListAgentsQuery",
|
|
341
|
+
"ListApiKeysQuery",
|
|
342
|
+
"ListCredentialsQuery",
|
|
343
|
+
"ListInvitationsQuery",
|
|
344
|
+
"ListMembersQuery",
|
|
345
|
+
"ListModelProvidersQuery",
|
|
346
|
+
"ListSessionEventsQuery",
|
|
347
|
+
"ListSessionsQuery",
|
|
348
|
+
"ListSkillVersionsQuery",
|
|
349
|
+
"ListSkillsQuery",
|
|
350
|
+
"ListUsageQuery",
|
|
351
|
+
"ListVaultsQuery",
|
|
352
|
+
"ListWorkspaceMembersQuery",
|
|
353
|
+
"ListWorkspaceUsageQuery",
|
|
354
|
+
"ListWorkspacesQuery",
|
|
355
|
+
"LlmTokensUsageResource",
|
|
356
|
+
"McpGrantBody",
|
|
357
|
+
"MeBody",
|
|
358
|
+
"MeOrgBody",
|
|
359
|
+
"MeUserBody",
|
|
360
|
+
"MemberRemovedBody",
|
|
361
|
+
"MessageAssistantEvent",
|
|
362
|
+
"MessageBody",
|
|
363
|
+
"MessageUserEvent",
|
|
364
|
+
"MintApiKeyBody",
|
|
365
|
+
"MintedApiKeyBody",
|
|
366
|
+
"ModelConfig",
|
|
367
|
+
"ModelConfigBody",
|
|
368
|
+
"ModelProvider",
|
|
369
|
+
"ModelProviderBody",
|
|
370
|
+
"ModelProviderDetailsBody",
|
|
371
|
+
"ModelProviderFormatBody",
|
|
372
|
+
"ModelProviderOwnerBody",
|
|
373
|
+
"ModelUsage",
|
|
374
|
+
"ModelUsageBody",
|
|
375
|
+
"NeverClientLifetime",
|
|
376
|
+
"NeverClientLifetimeForm",
|
|
377
|
+
"OauthCredentialPayload",
|
|
378
|
+
"OpenaiResponsesModelBody",
|
|
379
|
+
"OpenaiResponsesModelConfig",
|
|
380
|
+
"OpenaiResponsesModelUsage",
|
|
381
|
+
"OpenaiResponsesUsageBody",
|
|
382
|
+
"OrderParam",
|
|
383
|
+
"OrgMemberBody",
|
|
384
|
+
"OrgRoleBody",
|
|
385
|
+
"OrganizationBody",
|
|
386
|
+
"OrphanedApiKeyBody",
|
|
387
|
+
"PageOutAgentBody",
|
|
388
|
+
"PageOutAgentVersionBody",
|
|
389
|
+
"PageOutApiKeyBody",
|
|
390
|
+
"PageOutCredentialBody",
|
|
391
|
+
"PageOutInvitationBody",
|
|
392
|
+
"PageOutModelProviderBody",
|
|
393
|
+
"PageOutOrgMemberBody",
|
|
394
|
+
"PageOutSessionBody",
|
|
395
|
+
"PageOutSkillBody",
|
|
396
|
+
"PageOutSkillVersionBody",
|
|
397
|
+
"PageOutUsageEventBody",
|
|
398
|
+
"PageOutVaultBody",
|
|
399
|
+
"PageOutWorkspaceBody",
|
|
400
|
+
"PageOutWorkspaceMemberBody",
|
|
401
|
+
"PinnedVersionPin",
|
|
402
|
+
"PlatformModelBody",
|
|
403
|
+
"PlatformModelProvider",
|
|
404
|
+
"PolicyActionBody",
|
|
405
|
+
"PostSessionEventBody",
|
|
406
|
+
"PublishAgentVersionBody",
|
|
407
|
+
"PutAgentSecurityBody",
|
|
408
|
+
"ReasoningEffortBody",
|
|
409
|
+
"RefreshBlockBody",
|
|
410
|
+
"RegisterClientBody",
|
|
411
|
+
"RegisteredClientBody",
|
|
412
|
+
"RenameAgentBody",
|
|
413
|
+
"RenameOrganizationBody",
|
|
414
|
+
"RenameSkillBody",
|
|
415
|
+
"RenameWorkspaceBody",
|
|
416
|
+
"RoleBody",
|
|
417
|
+
"RunCancelledEvent",
|
|
418
|
+
"RunCompletedEvent",
|
|
419
|
+
"RunFailedEvent",
|
|
420
|
+
"RunQueuedEvent",
|
|
421
|
+
"RunStartedEvent",
|
|
422
|
+
"SessionBody",
|
|
423
|
+
"SessionCreatedEvent",
|
|
424
|
+
"SessionCreator",
|
|
425
|
+
"SessionCreatorBody",
|
|
426
|
+
"SessionEvent",
|
|
427
|
+
"SessionEventBody",
|
|
428
|
+
"SessionEventPageOut",
|
|
429
|
+
"SessionStatusBody",
|
|
430
|
+
"SessionTokenBody",
|
|
431
|
+
"SessionTokenReceiptBody",
|
|
432
|
+
"SkillBody",
|
|
433
|
+
"SkillGrantBody",
|
|
434
|
+
"SkillVersionBody",
|
|
435
|
+
"StaticBearerCredentialPayload",
|
|
436
|
+
"StreamSessionEventsQuery",
|
|
437
|
+
"SubmitKindBody",
|
|
438
|
+
"SubmitOutcomeBody",
|
|
439
|
+
"TextContentBlock",
|
|
440
|
+
"TextContentBlockData",
|
|
441
|
+
"ThinkingContentBlock",
|
|
442
|
+
"ThinkingContentBlockData",
|
|
443
|
+
"ToolCallContentBlock",
|
|
444
|
+
"ToolCallContentBlockData",
|
|
445
|
+
"ToolCallEvent",
|
|
446
|
+
"ToolDescriptorBody",
|
|
447
|
+
"ToolResultEvent",
|
|
448
|
+
"ToolRuleBody",
|
|
449
|
+
"TtlClientLifetime",
|
|
450
|
+
"TtlClientLifetimeData",
|
|
451
|
+
"TtlClientLifetimeForm",
|
|
452
|
+
"TtlClientLifetimeFormData",
|
|
453
|
+
"UpdateClientToolsBody",
|
|
454
|
+
"UpdateModelProviderBody",
|
|
455
|
+
"UpdateVaultBody",
|
|
456
|
+
"UsageEventBody",
|
|
457
|
+
"UsageResource",
|
|
458
|
+
"UsageResourceBody",
|
|
459
|
+
"UserSessionCreator",
|
|
460
|
+
"VaultBody",
|
|
461
|
+
"VaultCreated",
|
|
462
|
+
"VersionPin",
|
|
463
|
+
"VersionPinBody",
|
|
464
|
+
"WorkspaceBody",
|
|
465
|
+
"WorkspaceMemberBody",
|
|
466
|
+
"WorkspaceRoleBody",
|
|
467
|
+
]
|
|
468
|
+
# generated-exports-all: end
|
subako/_client.py
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import asyncio
|
|
2
|
+
from collections.abc import Mapping
|
|
3
|
+
from types import TracebackType
|
|
4
|
+
from typing import Self
|
|
5
|
+
|
|
6
|
+
import httpx
|
|
7
|
+
|
|
8
|
+
from subako._core import DEFAULT_MAX_RETRIES, DEFAULT_TIMEOUT, Core, Sleep, TokenSource
|
|
9
|
+
from subako.resources.agents import Agents
|
|
10
|
+
from subako.resources.api_keys import ApiKeys
|
|
11
|
+
from subako.resources.me import Me
|
|
12
|
+
from subako.resources.model_providers import ModelProviders
|
|
13
|
+
from subako.resources.organization import Organization
|
|
14
|
+
from subako.resources.sessions import Sessions
|
|
15
|
+
from subako.resources.skills import Skills
|
|
16
|
+
from subako.resources.vaults import Vaults
|
|
17
|
+
from subako.resources.workspaces import Workspaces
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
def _credential(api_key: TokenSource | None, access_token: TokenSource | None) -> TokenSource:
|
|
21
|
+
match [source for source in (api_key, access_token) if source is not None]:
|
|
22
|
+
case [""]:
|
|
23
|
+
raise TypeError("the credential given to SubakoClient is empty")
|
|
24
|
+
case [source]:
|
|
25
|
+
return source
|
|
26
|
+
case _:
|
|
27
|
+
raise TypeError("SubakoClient takes exactly one of api_key or access_token")
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
class SubakoClient:
|
|
31
|
+
"""One instance per credential and workspace; the resources on it share one token cache and one HTTP client."""
|
|
32
|
+
|
|
33
|
+
def __init__(
|
|
34
|
+
self,
|
|
35
|
+
*,
|
|
36
|
+
base_url: str,
|
|
37
|
+
api_key: TokenSource | None = None,
|
|
38
|
+
access_token: TokenSource | None = None,
|
|
39
|
+
workspace_id: str | None = None,
|
|
40
|
+
timeout: float = DEFAULT_TIMEOUT,
|
|
41
|
+
max_retries: int = DEFAULT_MAX_RETRIES,
|
|
42
|
+
headers: Mapping[str, str] | None = None,
|
|
43
|
+
http_client: httpx.AsyncClient | None = None,
|
|
44
|
+
sleep: Sleep = asyncio.sleep,
|
|
45
|
+
) -> None:
|
|
46
|
+
if base_url == "":
|
|
47
|
+
raise TypeError("SubakoClient takes a base_url, e.g. https://api.kikuvi.com")
|
|
48
|
+
credential = _credential(api_key, access_token)
|
|
49
|
+
self._owns_http = http_client is None
|
|
50
|
+
self._http = httpx.AsyncClient() if http_client is None else http_client
|
|
51
|
+
core = Core(
|
|
52
|
+
http=self._http,
|
|
53
|
+
base_url=base_url,
|
|
54
|
+
credential=credential,
|
|
55
|
+
workspace_id=workspace_id,
|
|
56
|
+
timeout=timeout,
|
|
57
|
+
max_retries=max_retries,
|
|
58
|
+
headers=headers,
|
|
59
|
+
sleep=sleep,
|
|
60
|
+
)
|
|
61
|
+
self.agents = Agents(core)
|
|
62
|
+
self.api_keys = ApiKeys(core)
|
|
63
|
+
self.me = Me(core)
|
|
64
|
+
self.model_providers = ModelProviders(core)
|
|
65
|
+
self.organization = Organization(core)
|
|
66
|
+
self.sessions = Sessions(core)
|
|
67
|
+
self.skills = Skills(core)
|
|
68
|
+
self.vaults = Vaults(core)
|
|
69
|
+
self.workspaces = Workspaces(core)
|
|
70
|
+
|
|
71
|
+
async def aclose(self) -> None:
|
|
72
|
+
"""Close the HTTP client this instance created; one that was passed in stays open."""
|
|
73
|
+
if self._owns_http:
|
|
74
|
+
await self._http.aclose()
|
|
75
|
+
|
|
76
|
+
async def __aenter__(self) -> Self:
|
|
77
|
+
return self
|
|
78
|
+
|
|
79
|
+
async def __aexit__(
|
|
80
|
+
self, exc_type: type[BaseException] | None, exc: BaseException | None, traceback: TracebackType | None
|
|
81
|
+
) -> None:
|
|
82
|
+
await self.aclose()
|