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
29 changes: 19 additions & 10 deletions sdk-endpoints.txt
Original file line number Diff line number Diff line change
@@ -1,15 +1,23 @@
# Endpoint-coverage drift manifest for the otari gateway.
# Endpoint-coverage drift manifest for the otari SDKs.
#
# This file pins which gateway OpenAPI endpoints this SDK's PUBLIC API accounts
# for. CI fetches the canonical spec
# https://raw.githubusercontent.com/mozilla-ai/otari/main/docs/public/openapi.json
# computes its set of "METHOD path" pairs (excluding /health* meta routes), and
# asserts that set is a subset of (covered + excluded). A new gateway endpoint
# in neither section FAILS the build: add a wrapper and list it under [covered],
# or deliberately defer it under [excluded] with a one-word reason.
# CANONICAL COPY. This file is the single source of truth. The codegen workflow
# (.github/workflows/otari-sdk-codegen.yml) pushes it into all four SDK repos
# alongside the generated core, so the copies there are generated artifacts.
# Edit this file; never edit the copies, they are overwritten on every regen.
#
# All four otari SDKs (python/ts/go/rust) keep this list identical: they target
# the same gateway. Lines are "METHOD /path"; blank lines and # comments ignore.
# tests/unit/test_sdk_endpoint_coverage.py checks it against
# docs/public/openapi.json from the same commit: every "METHOD path" the spec
# exposes (excluding /health* meta routes) must appear under [covered] or
# [excluded], and every entry here must still exist in the spec. So adding a
# gateway endpoint fails the gateway's own build until it is classified here.
# That is the point: drift fails in the repo that causes it, at the moment it
# is caused, rather than surfacing later in four downstream repos.
#
# [covered] a public SDK wrapper surfaces this endpoint
# [excluded] deliberately not surfaced; give a reason
#
# Lines are "METHOD /path" with an optional "# reason" trailer; blank lines and
# comment lines are ignored.

[covered]
# Inference
Expand Down Expand Up @@ -125,6 +133,7 @@ GET /v1/providers/catalog/{provider_id} # not yet wrapped
GET /v1/providers/health # not yet wrapped
POST /v1/provider-credentials/reencrypt # not yet wrapped
# Built-in tool settings and search
GET /v1/tools # not yet wrapped
GET /v1/tool-settings # not yet wrapped
PATCH /v1/tool-settings # not yet wrapped
POST /v1/tool-settings/{service}/test # not yet wrapped
Expand Down
12 changes: 12 additions & 0 deletions src/otari/_client/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@
"SearchApi",
"SettingsApi",
"ToolSettingsApi",
"ToolsApi",
"UsageApi",
"UsersApi",
"ApiResponse",
Expand All @@ -54,6 +55,7 @@
"ApiException",
"AliasRequest",
"AliasResponse",
"ApiKeyId",
"AppliedEditsInner",
"AudioSpeechRequest",
"BatchRequestItem",
Expand Down Expand Up @@ -276,10 +278,12 @@
"MSGFunctionCall",
"MSGImageURL",
"MSGInputAudio",
"ManagedTool",
"McpServerConfig",
"MessageResponse",
"MessagesRequest",
"Model",
"Model1",
"ModelListResponse",
"ModelMetadata",
"ModelMetadataResponse",
Expand Down Expand Up @@ -328,6 +332,7 @@
"ToolChoice1",
"ToolSettingField",
"ToolSettingsResponse",
"ToolsResponse",
"UpdateBudgetRequest",
"UpdateKeyRequest",
"UpdateSettingsRequest",
Expand All @@ -350,6 +355,7 @@
"UsageSummary",
"UsageToolRow",
"UsageTotals",
"UserId",
"UserResponse",
"ValidationError",
"Value",
Expand Down Expand Up @@ -380,6 +386,7 @@
from otari._client.api.search_api import SearchApi as SearchApi
from otari._client.api.settings_api import SettingsApi as SettingsApi
from otari._client.api.tool_settings_api import ToolSettingsApi as ToolSettingsApi
from otari._client.api.tools_api import ToolsApi as ToolsApi
from otari._client.api.usage_api import UsageApi as UsageApi
from otari._client.api.users_api import UsersApi as UsersApi

Expand All @@ -397,6 +404,7 @@
# import models into sdk package
from otari._client.models.alias_request import AliasRequest as AliasRequest
from otari._client.models.alias_response import AliasResponse as AliasResponse
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_speech_request import AudioSpeechRequest as AudioSpeechRequest
from otari._client.models.batch_request_item import BatchRequestItem as BatchRequestItem
Expand Down Expand Up @@ -619,10 +627,12 @@
from otari._client.models.msg_function_call import MSGFunctionCall as MSGFunctionCall
from otari._client.models.msg_image_url import MSGImageURL as MSGImageURL
from otari._client.models.msg_input_audio import MSGInputAudio as MSGInputAudio
from otari._client.models.managed_tool import ManagedTool as ManagedTool
from otari._client.models.mcp_server_config import McpServerConfig as McpServerConfig
from otari._client.models.message_response import MessageResponse as MessageResponse
from otari._client.models.messages_request import MessagesRequest as MessagesRequest
from otari._client.models.model import Model as Model
from otari._client.models.model1 import Model1 as Model1
from otari._client.models.model_list_response import ModelListResponse as ModelListResponse
from otari._client.models.model_metadata import ModelMetadata as ModelMetadata
from otari._client.models.model_metadata_response import ModelMetadataResponse as ModelMetadataResponse
Expand Down Expand Up @@ -671,6 +681,7 @@
from otari._client.models.tool_choice1 import ToolChoice1 as ToolChoice1
from otari._client.models.tool_setting_field import ToolSettingField as ToolSettingField
from otari._client.models.tool_settings_response import ToolSettingsResponse as ToolSettingsResponse
from otari._client.models.tools_response import ToolsResponse as ToolsResponse
from otari._client.models.update_budget_request import UpdateBudgetRequest as UpdateBudgetRequest
from otari._client.models.update_key_request import UpdateKeyRequest as UpdateKeyRequest
from otari._client.models.update_settings_request import UpdateSettingsRequest as UpdateSettingsRequest
Expand All @@ -693,6 +704,7 @@
from otari._client.models.usage_summary import UsageSummary as UsageSummary
from otari._client.models.usage_tool_row import UsageToolRow as UsageToolRow
from otari._client.models.usage_totals import UsageTotals as UsageTotals
from otari._client.models.user_id import UserId as UserId
from otari._client.models.user_response import UserResponse as UserResponse
from otari._client.models.validation_error import ValidationError as ValidationError
from otari._client.models.value import Value as Value
Expand Down
1 change: 1 addition & 0 deletions src/otari/_client/api/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
from otari._client.api.search_api import SearchApi
from otari._client.api.settings_api import SettingsApi
from otari._client.api.tool_settings_api import ToolSettingsApi
from otari._client.api.tools_api import ToolsApi
from otari._client.api.usage_api import UsageApi
from otari._client.api.users_api import UsersApi

Loading
Loading