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
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
6 changes: 6 additions & 0 deletions sdk-endpoints.txt
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,12 @@ POST /v1/audio/transcriptions

[excluded]
GET /v1/models/{model_id} # redundant, list_models covers discovery
# Caller-orchestrated MCP is public, but no SDK shell wraps it yet. Typed
# mcp.list_tools and mcp.execute methods are the next step for the SDKs, and
# execution needs one deliberate property no generated wrapper gives it for
# free: exactly one HTTP attempt, never a retry.
GET /v1/mcp/servers/{mcp_server_id}/tools # not yet wrapped
POST /v1/mcp/execute # not yet wrapped
# Files API: added to the gateway spec, not yet wrapped by any SDK shell.
POST /v1/files # not yet wrapped
GET /v1/files # not yet wrapped
Expand Down
40 changes: 39 additions & 1 deletion src/otari/_client/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

Otari, an OpenAI-compatible LLM gateway with API key management

The version of the OpenAPI document: 0.5.0
The version of the OpenAPI document: 0.0.0-dev
Generated by OpenAPI Generator (https://openapi-generator.tech)

Do not edit the class manually.
Expand All @@ -33,6 +33,7 @@
"ImagesApi",
"InvitationsApi",
"KeysApi",
"McpApi",
"McpServersApi",
"MessagesApi",
"ModelsApi",
Expand Down Expand Up @@ -98,13 +99,16 @@
"AgentTelemetryUsage",
"AliasRequest",
"AliasResponse",
"Annotations",
"ApiKeyId",
"AppliedEditsInner",
"AudioContent",
"AudioSpeechRequest",
"AuthenticatePasskeyRequest",
"AuthorizeResponse",
"BatchRequestItem",
"BillingMeters",
"BlobResourceContents",
"BudgetResetLogResponse",
"BudgetResponse",
"CCChatCompletionAudio",
Expand Down Expand Up @@ -134,6 +138,7 @@
"CCPromptTokensDetails",
"CCTopLogprob",
"CacheMissReason",
"CallToolResult",
"Caller",
"Caller1",
"CallerIdentityPublic",
Expand Down Expand Up @@ -168,6 +173,7 @@
"Content8",
"Content9",
"ContentAnyOfInner",
"ContentInner",
"Conversation",
"CountTokensRequest",
"CountTokensResponse",
Expand All @@ -194,7 +200,9 @@
"DroppedResponse",
"EMBEmbedding",
"EMBUsage",
"EmbeddedResource",
"EmbeddingRequest",
"ExecutionState",
"ExplainRequest",
"ExplainResponse",
"ExternalEventsRequest",
Expand All @@ -208,6 +216,8 @@
"IMGUsage",
"IMGUsageInputTokensDetails",
"IMGUsageOutputTokensDetails",
"Icon",
"ImageContent",
"ImageGenerationRequest",
"ImagesResponse",
"InFlightEntry",
Expand Down Expand Up @@ -365,7 +375,12 @@
"MailSettings",
"MaintenanceMode",
"ManagedTool",
"McpErrorBody",
"McpExecuteRequest",
"McpServerConfig",
"McpToolDefinition",
"McpToolWarning",
"McpToolsResponse",
"Message",
"MessageResponse",
"MessagesRequest",
Expand Down Expand Up @@ -443,6 +458,8 @@
"ResendVerificationRequest",
"ResendVerificationResponse",
"ResetPasswordRequest",
"Resource",
"ResourceLink",
"ResponsesRequest",
"RotateMasterKeyResponse",
"RouterStatus",
Expand Down Expand Up @@ -472,6 +489,8 @@
"TestProviderResponse",
"TestServiceRequest",
"TestServiceResponse",
"TextContent",
"TextResourceContents",
"TokenChargeLine",
"ToolCallsInner",
"ToolChoice",
Expand Down Expand Up @@ -565,6 +584,7 @@
from otari._client.api.images_api import ImagesApi as ImagesApi
from otari._client.api.invitations_api import InvitationsApi as InvitationsApi
from otari._client.api.keys_api import KeysApi as KeysApi
from otari._client.api.mcp_api import McpApi as McpApi
from otari._client.api.mcp_servers_api import McpServersApi as McpServersApi
from otari._client.api.messages_api import MessagesApi as MessagesApi
from otari._client.api.models_api import ModelsApi as ModelsApi
Expand Down Expand Up @@ -634,13 +654,16 @@
from otari._client.models.agent_telemetry_usage import AgentTelemetryUsage as AgentTelemetryUsage
from otari._client.models.alias_request import AliasRequest as AliasRequest
from otari._client.models.alias_response import AliasResponse as AliasResponse
from otari._client.models.annotations import Annotations as Annotations
from otari._client.models.api_key_id import ApiKeyId as ApiKeyId
from otari._client.models.applied_edits_inner import AppliedEditsInner as AppliedEditsInner
from otari._client.models.audio_content import AudioContent as AudioContent
from otari._client.models.audio_speech_request import AudioSpeechRequest as AudioSpeechRequest
from otari._client.models.authenticate_passkey_request import AuthenticatePasskeyRequest as AuthenticatePasskeyRequest
from otari._client.models.authorize_response import AuthorizeResponse as AuthorizeResponse
from otari._client.models.batch_request_item import BatchRequestItem as BatchRequestItem
from otari._client.models.billing_meters import BillingMeters as BillingMeters
from otari._client.models.blob_resource_contents import BlobResourceContents as BlobResourceContents
from otari._client.models.budget_reset_log_response import BudgetResetLogResponse as BudgetResetLogResponse
from otari._client.models.budget_response import BudgetResponse as BudgetResponse
from otari._client.models.cc_chat_completion_audio import CCChatCompletionAudio as CCChatCompletionAudio
Expand Down Expand Up @@ -670,6 +693,7 @@
from otari._client.models.cc_prompt_tokens_details import CCPromptTokensDetails as CCPromptTokensDetails
from otari._client.models.cc_top_logprob import CCTopLogprob as CCTopLogprob
from otari._client.models.cache_miss_reason import CacheMissReason as CacheMissReason
from otari._client.models.call_tool_result import CallToolResult as CallToolResult
from otari._client.models.caller import Caller as Caller
from otari._client.models.caller1 import Caller1 as Caller1
from otari._client.models.caller_identity_public import CallerIdentityPublic as CallerIdentityPublic
Expand Down Expand Up @@ -704,6 +728,7 @@
from otari._client.models.content8 import Content8 as Content8
from otari._client.models.content9 import Content9 as Content9
from otari._client.models.content_any_of_inner import ContentAnyOfInner as ContentAnyOfInner
from otari._client.models.content_inner import ContentInner as ContentInner
from otari._client.models.conversation import Conversation as Conversation
from otari._client.models.count_tokens_request import CountTokensRequest as CountTokensRequest
from otari._client.models.count_tokens_response import CountTokensResponse as CountTokensResponse
Expand All @@ -730,7 +755,9 @@
from otari._client.models.dropped_response import DroppedResponse as DroppedResponse
from otari._client.models.emb_embedding import EMBEmbedding as EMBEmbedding
from otari._client.models.emb_usage import EMBUsage as EMBUsage
from otari._client.models.embedded_resource import EmbeddedResource as EmbeddedResource
from otari._client.models.embedding_request import EmbeddingRequest as EmbeddingRequest
from otari._client.models.execution_state import ExecutionState as ExecutionState
from otari._client.models.explain_request import ExplainRequest as ExplainRequest
from otari._client.models.explain_response import ExplainResponse as ExplainResponse
from otari._client.models.external_events_request import ExternalEventsRequest as ExternalEventsRequest
Expand All @@ -744,6 +771,8 @@
from otari._client.models.img_usage import IMGUsage as IMGUsage
from otari._client.models.img_usage_input_tokens_details import IMGUsageInputTokensDetails as IMGUsageInputTokensDetails
from otari._client.models.img_usage_output_tokens_details import IMGUsageOutputTokensDetails as IMGUsageOutputTokensDetails
from otari._client.models.icon import Icon as Icon
from otari._client.models.image_content import ImageContent as ImageContent
from otari._client.models.image_generation_request import ImageGenerationRequest as ImageGenerationRequest
from otari._client.models.images_response import ImagesResponse as ImagesResponse
from otari._client.models.in_flight_entry import InFlightEntry as InFlightEntry
Expand Down Expand Up @@ -901,7 +930,12 @@
from otari._client.models.mail_settings import MailSettings as MailSettings
from otari._client.models.maintenance_mode import MaintenanceMode as MaintenanceMode
from otari._client.models.managed_tool import ManagedTool as ManagedTool
from otari._client.models.mcp_error_body import McpErrorBody as McpErrorBody
from otari._client.models.mcp_execute_request import McpExecuteRequest as McpExecuteRequest
from otari._client.models.mcp_server_config import McpServerConfig as McpServerConfig
from otari._client.models.mcp_tool_definition import McpToolDefinition as McpToolDefinition
from otari._client.models.mcp_tool_warning import McpToolWarning as McpToolWarning
from otari._client.models.mcp_tools_response import McpToolsResponse as McpToolsResponse
from otari._client.models.message import Message as Message
from otari._client.models.message_response import MessageResponse as MessageResponse
from otari._client.models.messages_request import MessagesRequest as MessagesRequest
Expand Down Expand Up @@ -979,6 +1013,8 @@
from otari._client.models.resend_verification_request import ResendVerificationRequest as ResendVerificationRequest
from otari._client.models.resend_verification_response import ResendVerificationResponse as ResendVerificationResponse
from otari._client.models.reset_password_request import ResetPasswordRequest as ResetPasswordRequest
from otari._client.models.resource import Resource as Resource
from otari._client.models.resource_link import ResourceLink as ResourceLink
from otari._client.models.responses_request import ResponsesRequest as ResponsesRequest
from otari._client.models.rotate_master_key_response import RotateMasterKeyResponse as RotateMasterKeyResponse
from otari._client.models.router_status import RouterStatus as RouterStatus
Expand Down Expand Up @@ -1008,6 +1044,8 @@
from otari._client.models.test_provider_response import TestProviderResponse as TestProviderResponse
from otari._client.models.test_service_request import TestServiceRequest as TestServiceRequest
from otari._client.models.test_service_response import TestServiceResponse as TestServiceResponse
from otari._client.models.text_content import TextContent as TextContent
from otari._client.models.text_resource_contents import TextResourceContents as TextResourceContents
from otari._client.models.token_charge_line import TokenChargeLine as TokenChargeLine
from otari._client.models.tool_calls_inner import ToolCallsInner as ToolCallsInner
from otari._client.models.tool_choice import ToolChoice as ToolChoice
Expand Down
2 changes: 1 addition & 1 deletion src/otari/_client/_spec_version.py
Original file line number Diff line number Diff line change
@@ -1 +1 @@
__spec_version__ = "0.5.0"
__spec_version__ = "0.0.0-dev"
1 change: 1 addition & 0 deletions src/otari/_client/api/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
from otari._client.api.images_api import ImagesApi
from otari._client.api.invitations_api import InvitationsApi
from otari._client.api.keys_api import KeysApi
from otari._client.api.mcp_api import McpApi
from otari._client.api.mcp_servers_api import McpServersApi
from otari._client.api.messages_api import MessagesApi
from otari._client.api.models_api import ModelsApi
Expand Down
2 changes: 1 addition & 1 deletion src/otari/_client/api/admin_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

Otari, an OpenAI-compatible LLM gateway with API key management

The version of the OpenAPI document: 0.5.0
The version of the OpenAPI document: 0.0.0-dev
Generated by OpenAPI Generator (https://openapi-generator.tech)

Do not edit the class manually.
Expand Down
2 changes: 1 addition & 1 deletion src/otari/_client/api/agent_telemetry_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

Otari, an OpenAI-compatible LLM gateway with API key management

The version of the OpenAPI document: 0.5.0
The version of the OpenAPI document: 0.0.0-dev
Generated by OpenAPI Generator (https://openapi-generator.tech)

Do not edit the class manually.
Expand Down
2 changes: 1 addition & 1 deletion src/otari/_client/api/aliases_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

Otari, an OpenAI-compatible LLM gateway with API key management

The version of the OpenAPI document: 0.5.0
The version of the OpenAPI document: 0.0.0-dev
Generated by OpenAPI Generator (https://openapi-generator.tech)

Do not edit the class manually.
Expand Down
2 changes: 1 addition & 1 deletion src/otari/_client/api/audio_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

Otari, an OpenAI-compatible LLM gateway with API key management

The version of the OpenAPI document: 0.5.0
The version of the OpenAPI document: 0.0.0-dev
Generated by OpenAPI Generator (https://openapi-generator.tech)

Do not edit the class manually.
Expand Down
8 changes: 4 additions & 4 deletions src/otari/_client/api/auth_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

Otari, an OpenAI-compatible LLM gateway with API key management

The version of the OpenAPI document: 0.5.0
The version of the OpenAPI document: 0.0.0-dev
Generated by OpenAPI Generator (https://openapi-generator.tech)

Do not edit the class manually.
Expand Down Expand Up @@ -600,7 +600,7 @@ def authorize_v1_auth_oauth_provider_authorize_get(
) -> AuthorizeResponse:
"""Authorize

Start an OAuth sign-in: where to send the browser, and the state to keep. A GET, and safe: it reads configuration and mints a random value, writing nothing. Repeating it simply produces another state, and only the one the browser kept is the one it will compare against.
Start an OAuth sign-in: where to send the browser, and the state to keep. A GET that writes, which is the one thing to know about it. It records the authorization it is about to start (the state's hash, the PKCE verifier the exchange will need, and the digest of a flow secret it sets as an HttpOnly cookie) so the callback has something to check against, and that record is the whole reason the callback can refuse a code this deployment never asked for, or one presented from a browser other than the one that asked. Still safe to repeat: each call mints its own state, and only the one the browser kept is the one it sends back. The rows the others leave expire on their own and are swept by the next call. The cookie is reused when the browser already holds one, so a second tab does not break the first.

:param provider: Which OAuth provider to sign in with. (required)
:type provider: str
Expand Down Expand Up @@ -668,7 +668,7 @@ def authorize_v1_auth_oauth_provider_authorize_get_with_http_info(
) -> ApiResponse[AuthorizeResponse]:
"""Authorize

Start an OAuth sign-in: where to send the browser, and the state to keep. A GET, and safe: it reads configuration and mints a random value, writing nothing. Repeating it simply produces another state, and only the one the browser kept is the one it will compare against.
Start an OAuth sign-in: where to send the browser, and the state to keep. A GET that writes, which is the one thing to know about it. It records the authorization it is about to start (the state's hash, the PKCE verifier the exchange will need, and the digest of a flow secret it sets as an HttpOnly cookie) so the callback has something to check against, and that record is the whole reason the callback can refuse a code this deployment never asked for, or one presented from a browser other than the one that asked. Still safe to repeat: each call mints its own state, and only the one the browser kept is the one it sends back. The rows the others leave expire on their own and are swept by the next call. The cookie is reused when the browser already holds one, so a second tab does not break the first.

:param provider: Which OAuth provider to sign in with. (required)
:type provider: str
Expand Down Expand Up @@ -736,7 +736,7 @@ def authorize_v1_auth_oauth_provider_authorize_get_without_preload_content(
) -> RESTResponseType:
"""Authorize

Start an OAuth sign-in: where to send the browser, and the state to keep. A GET, and safe: it reads configuration and mints a random value, writing nothing. Repeating it simply produces another state, and only the one the browser kept is the one it will compare against.
Start an OAuth sign-in: where to send the browser, and the state to keep. A GET that writes, which is the one thing to know about it. It records the authorization it is about to start (the state's hash, the PKCE verifier the exchange will need, and the digest of a flow secret it sets as an HttpOnly cookie) so the callback has something to check against, and that record is the whole reason the callback can refuse a code this deployment never asked for, or one presented from a browser other than the one that asked. Still safe to repeat: each call mints its own state, and only the one the browser kept is the one it sends back. The rows the others leave expire on their own and are swept by the next call. The cookie is reused when the browser already holds one, so a second tab does not break the first.

:param provider: Which OAuth provider to sign in with. (required)
:type provider: str
Expand Down
2 changes: 1 addition & 1 deletion src/otari/_client/api/batches_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

Otari, an OpenAI-compatible LLM gateway with API key management

The version of the OpenAPI document: 0.5.0
The version of the OpenAPI document: 0.0.0-dev
Generated by OpenAPI Generator (https://openapi-generator.tech)

Do not edit the class manually.
Expand Down
2 changes: 1 addition & 1 deletion src/otari/_client/api/bootstrap_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

Otari, an OpenAI-compatible LLM gateway with API key management

The version of the OpenAPI document: 0.5.0
The version of the OpenAPI document: 0.0.0-dev
Generated by OpenAPI Generator (https://openapi-generator.tech)

Do not edit the class manually.
Expand Down
2 changes: 1 addition & 1 deletion src/otari/_client/api/budgets_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

Otari, an OpenAI-compatible LLM gateway with API key management

The version of the OpenAPI document: 0.5.0
The version of the OpenAPI document: 0.0.0-dev
Generated by OpenAPI Generator (https://openapi-generator.tech)

Do not edit the class manually.
Expand Down
2 changes: 1 addition & 1 deletion src/otari/_client/api/chat_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

Otari, an OpenAI-compatible LLM gateway with API key management

The version of the OpenAPI document: 0.5.0
The version of the OpenAPI document: 0.0.0-dev
Generated by OpenAPI Generator (https://openapi-generator.tech)

Do not edit the class manually.
Expand Down
2 changes: 1 addition & 1 deletion src/otari/_client/api/embeddings_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

Otari, an OpenAI-compatible LLM gateway with API key management

The version of the OpenAPI document: 0.5.0
The version of the OpenAPI document: 0.0.0-dev
Generated by OpenAPI Generator (https://openapi-generator.tech)

Do not edit the class manually.
Expand Down
2 changes: 1 addition & 1 deletion src/otari/_client/api/files_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

Otari, an OpenAI-compatible LLM gateway with API key management

The version of the OpenAPI document: 0.5.0
The version of the OpenAPI document: 0.0.0-dev
Generated by OpenAPI Generator (https://openapi-generator.tech)

Do not edit the class manually.
Expand Down
2 changes: 1 addition & 1 deletion src/otari/_client/api/health_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

Otari, an OpenAI-compatible LLM gateway with API key management

The version of the OpenAPI document: 0.5.0
The version of the OpenAPI document: 0.0.0-dev
Generated by OpenAPI Generator (https://openapi-generator.tech)

Do not edit the class manually.
Expand Down
2 changes: 1 addition & 1 deletion src/otari/_client/api/images_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

Otari, an OpenAI-compatible LLM gateway with API key management

The version of the OpenAPI document: 0.5.0
The version of the OpenAPI document: 0.0.0-dev
Generated by OpenAPI Generator (https://openapi-generator.tech)

Do not edit the class manually.
Expand Down
2 changes: 1 addition & 1 deletion src/otari/_client/api/invitations_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

Otari, an OpenAI-compatible LLM gateway with API key management

The version of the OpenAPI document: 0.5.0
The version of the OpenAPI document: 0.0.0-dev
Generated by OpenAPI Generator (https://openapi-generator.tech)

Do not edit the class manually.
Expand Down
2 changes: 1 addition & 1 deletion src/otari/_client/api/keys_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

Otari, an OpenAI-compatible LLM gateway with API key management

The version of the OpenAPI document: 0.5.0
The version of the OpenAPI document: 0.0.0-dev
Generated by OpenAPI Generator (https://openapi-generator.tech)

Do not edit the class manually.
Expand Down
Loading
Loading