openshell 0.0.113__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.
openshell/__init__.py ADDED
@@ -0,0 +1,46 @@
1
+ # SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2
+ # SPDX-License-Identifier: Apache-2.0
3
+
4
+ """OpenShell - Agent execution and management SDK."""
5
+
6
+ from __future__ import annotations
7
+
8
+ from .sandbox import (
9
+ ExecChunk,
10
+ ExecResult,
11
+ InferenceRouteClient,
12
+ InferenceRouteConfig,
13
+ Sandbox,
14
+ SandboxClient,
15
+ SandboxError,
16
+ SandboxRef,
17
+ SandboxSession,
18
+ SandboxStatusRef,
19
+ TlsConfig,
20
+ WorkspaceClient,
21
+ WorkspaceRef,
22
+ )
23
+
24
+ try:
25
+ from importlib.metadata import version
26
+
27
+ __version__ = version("openshell")
28
+ except Exception:
29
+ __version__ = "0.0.0"
30
+
31
+ __all__ = [
32
+ "ExecChunk",
33
+ "ExecResult",
34
+ "InferenceRouteClient",
35
+ "InferenceRouteConfig",
36
+ "Sandbox",
37
+ "SandboxClient",
38
+ "SandboxError",
39
+ "SandboxRef",
40
+ "SandboxSession",
41
+ "SandboxStatusRef",
42
+ "TlsConfig",
43
+ "WorkspaceClient",
44
+ "WorkspaceRef",
45
+ "__version__",
46
+ ]
@@ -0,0 +1,15 @@
1
+ from . import datamodel_pb2, openshell_pb2
2
+
3
+ # Sandbox messages and phase enums moved into openshell.proto. Keep aliases on
4
+ # datamodel_pb2 so existing Python callers and E2E tests continue to work.
5
+ for _name in (
6
+ "Sandbox",
7
+ "SandboxSpec",
8
+ "SandboxTemplate",
9
+ ):
10
+ if not hasattr(datamodel_pb2, _name):
11
+ setattr(datamodel_pb2, _name, getattr(openshell_pb2, _name))
12
+
13
+ for _name in dir(openshell_pb2):
14
+ if _name.startswith("SANDBOX_PHASE_") and not hasattr(datamodel_pb2, _name):
15
+ setattr(datamodel_pb2, _name, getattr(openshell_pb2, _name))
@@ -0,0 +1,77 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # NO CHECKED-IN PROTOBUF GENCODE
4
+ # source: datamodel.proto
5
+ # Protobuf Python Version: 6.31.1
6
+ """Generated protocol buffer code."""
7
+ from google.protobuf import descriptor as _descriptor
8
+ from google.protobuf import descriptor_pool as _descriptor_pool
9
+ from google.protobuf import runtime_version as _runtime_version
10
+ from google.protobuf import symbol_database as _symbol_database
11
+ from google.protobuf.internal import builder as _builder
12
+ _runtime_version.ValidateProtobufRuntimeVersion(
13
+ _runtime_version.Domain.PUBLIC,
14
+ 6,
15
+ 31,
16
+ 1,
17
+ '',
18
+ 'datamodel.proto'
19
+ )
20
+ # @@protoc_insertion_point(imports)
21
+
22
+ _sym_db = _symbol_database.Default()
23
+
24
+
25
+ from . import options_pb2 as options__pb2
26
+
27
+
28
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0f\x64\x61tamodel.proto\x12\x16openshell.datamodel.v1\x1a\roptions.proto\"\xf6\x02\n\nObjectMeta\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x15\n\rcreated_at_ms\x18\x03 \x01(\x03\x12>\n\x06labels\x18\x04 \x03(\x0b\x32..openshell.datamodel.v1.ObjectMeta.LabelsEntry\x12\x18\n\x10resource_version\x18\x05 \x01(\x04\x12H\n\x0b\x61nnotations\x18\x06 \x03(\x0b\x32\x33.openshell.datamodel.v1.ObjectMeta.AnnotationsEntry\x12\x11\n\tworkspace\x18\x07 \x01(\t\x12\x1d\n\x15\x64\x65letion_timestamp_ms\x18\x08 \x01(\x03\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x32\n\x10\x41nnotationsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"H\n\x0fWorkspaceStatus\x12\x35\n\x05phase\x18\x01 \x01(\x0e\x32&.openshell.datamodel.v1.WorkspacePhase\"z\n\tWorkspace\x12\x34\n\x08metadata\x18\x01 \x01(\x0b\x32\".openshell.datamodel.v1.ObjectMeta\x12\x37\n\x06status\x18\x02 \x01(\x0b\x32\'.openshell.datamodel.v1.WorkspaceStatus\"\xad\x01\n\x10\x43redentialHandle\x12\x0e\n\x06\x64river\x18\x01 \x01(\t\x12\x0e\n\x06handle\x18\x02 \x01(\t\x12H\n\x08metadata\x18\x03 \x03(\x0b\x32\x36.openshell.datamodel.v1.CredentialHandle.MetadataEntry\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xae\x05\n\x08Provider\x12\x34\n\x08metadata\x18\x01 \x01(\x0b\x32\".openshell.datamodel.v1.ObjectMeta\x12\x0c\n\x04type\x18\x02 \x01(\t\x12L\n\x0b\x63redentials\x18\x03 \x03(\x0b\x32\x31.openshell.datamodel.v1.Provider.CredentialsEntryB\x04\x88\xb5\x18\x01\x12<\n\x06\x63onfig\x18\x04 \x03(\x0b\x32,.openshell.datamodel.v1.Provider.ConfigEntry\x12]\n\x18\x63redential_expires_at_ms\x18\x05 \x03(\x0b\x32;.openshell.datamodel.v1.Provider.CredentialExpiresAtMsEntry\x12\x19\n\x11profile_workspace\x18\x06 \x01(\t\x12S\n\x12\x63redential_handles\x18\x07 \x03(\x0b\x32\x37.openshell.datamodel.v1.Provider.CredentialHandlesEntry\x1a\x32\n\x10\x43redentialsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a-\n\x0b\x43onfigEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a<\n\x1a\x43redentialExpiresAtMsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x03:\x02\x38\x01\x1a\x62\n\x16\x43redentialHandlesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x37\n\x05value\x18\x02 \x01(\x0b\x32(.openshell.datamodel.v1.CredentialHandle:\x02\x38\x01*n\n\x0eWorkspacePhase\x12\x1f\n\x1bWORKSPACE_PHASE_UNSPECIFIED\x10\x00\x12\x1a\n\x16WORKSPACE_PHASE_ACTIVE\x10\x01\x12\x1f\n\x1bWORKSPACE_PHASE_TERMINATING\x10\x02\x62\x06proto3')
29
+
30
+ _globals = globals()
31
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
32
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'datamodel_pb2', _globals)
33
+ if not _descriptor._USE_C_DESCRIPTORS:
34
+ DESCRIPTOR._loaded_options = None
35
+ _globals['_OBJECTMETA_LABELSENTRY']._loaded_options = None
36
+ _globals['_OBJECTMETA_LABELSENTRY']._serialized_options = b'8\001'
37
+ _globals['_OBJECTMETA_ANNOTATIONSENTRY']._loaded_options = None
38
+ _globals['_OBJECTMETA_ANNOTATIONSENTRY']._serialized_options = b'8\001'
39
+ _globals['_CREDENTIALHANDLE_METADATAENTRY']._loaded_options = None
40
+ _globals['_CREDENTIALHANDLE_METADATAENTRY']._serialized_options = b'8\001'
41
+ _globals['_PROVIDER_CREDENTIALSENTRY']._loaded_options = None
42
+ _globals['_PROVIDER_CREDENTIALSENTRY']._serialized_options = b'8\001'
43
+ _globals['_PROVIDER_CONFIGENTRY']._loaded_options = None
44
+ _globals['_PROVIDER_CONFIGENTRY']._serialized_options = b'8\001'
45
+ _globals['_PROVIDER_CREDENTIALEXPIRESATMSENTRY']._loaded_options = None
46
+ _globals['_PROVIDER_CREDENTIALEXPIRESATMSENTRY']._serialized_options = b'8\001'
47
+ _globals['_PROVIDER_CREDENTIALHANDLESENTRY']._loaded_options = None
48
+ _globals['_PROVIDER_CREDENTIALHANDLESENTRY']._serialized_options = b'8\001'
49
+ _globals['_PROVIDER'].fields_by_name['credentials']._loaded_options = None
50
+ _globals['_PROVIDER'].fields_by_name['credentials']._serialized_options = b'\210\265\030\001'
51
+ _globals['_WORKSPACEPHASE']._serialized_start=1498
52
+ _globals['_WORKSPACEPHASE']._serialized_end=1608
53
+ _globals['_OBJECTMETA']._serialized_start=59
54
+ _globals['_OBJECTMETA']._serialized_end=433
55
+ _globals['_OBJECTMETA_LABELSENTRY']._serialized_start=336
56
+ _globals['_OBJECTMETA_LABELSENTRY']._serialized_end=381
57
+ _globals['_OBJECTMETA_ANNOTATIONSENTRY']._serialized_start=383
58
+ _globals['_OBJECTMETA_ANNOTATIONSENTRY']._serialized_end=433
59
+ _globals['_WORKSPACESTATUS']._serialized_start=435
60
+ _globals['_WORKSPACESTATUS']._serialized_end=507
61
+ _globals['_WORKSPACE']._serialized_start=509
62
+ _globals['_WORKSPACE']._serialized_end=631
63
+ _globals['_CREDENTIALHANDLE']._serialized_start=634
64
+ _globals['_CREDENTIALHANDLE']._serialized_end=807
65
+ _globals['_CREDENTIALHANDLE_METADATAENTRY']._serialized_start=760
66
+ _globals['_CREDENTIALHANDLE_METADATAENTRY']._serialized_end=807
67
+ _globals['_PROVIDER']._serialized_start=810
68
+ _globals['_PROVIDER']._serialized_end=1496
69
+ _globals['_PROVIDER_CREDENTIALSENTRY']._serialized_start=1237
70
+ _globals['_PROVIDER_CREDENTIALSENTRY']._serialized_end=1287
71
+ _globals['_PROVIDER_CONFIGENTRY']._serialized_start=1289
72
+ _globals['_PROVIDER_CONFIGENTRY']._serialized_end=1334
73
+ _globals['_PROVIDER_CREDENTIALEXPIRESATMSENTRY']._serialized_start=1336
74
+ _globals['_PROVIDER_CREDENTIALEXPIRESATMSENTRY']._serialized_end=1396
75
+ _globals['_PROVIDER_CREDENTIALHANDLESENTRY']._serialized_start=1398
76
+ _globals['_PROVIDER_CREDENTIALHANDLESENTRY']._serialized_end=1496
77
+ # @@protoc_insertion_point(module_scope)
@@ -0,0 +1,129 @@
1
+ import options_pb2 as _options_pb2
2
+ from google.protobuf.internal import containers as _containers
3
+ from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
4
+ from google.protobuf import descriptor as _descriptor
5
+ from google.protobuf import message as _message
6
+ from collections.abc import Mapping as _Mapping
7
+ from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union
8
+
9
+ DESCRIPTOR: _descriptor.FileDescriptor
10
+
11
+ class WorkspacePhase(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
12
+ __slots__ = ()
13
+ WORKSPACE_PHASE_UNSPECIFIED: _ClassVar[WorkspacePhase]
14
+ WORKSPACE_PHASE_ACTIVE: _ClassVar[WorkspacePhase]
15
+ WORKSPACE_PHASE_TERMINATING: _ClassVar[WorkspacePhase]
16
+ WORKSPACE_PHASE_UNSPECIFIED: WorkspacePhase
17
+ WORKSPACE_PHASE_ACTIVE: WorkspacePhase
18
+ WORKSPACE_PHASE_TERMINATING: WorkspacePhase
19
+
20
+ class ObjectMeta(_message.Message):
21
+ __slots__ = ("id", "name", "created_at_ms", "labels", "resource_version", "annotations", "workspace", "deletion_timestamp_ms")
22
+ class LabelsEntry(_message.Message):
23
+ __slots__ = ("key", "value")
24
+ KEY_FIELD_NUMBER: _ClassVar[int]
25
+ VALUE_FIELD_NUMBER: _ClassVar[int]
26
+ key: str
27
+ value: str
28
+ def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ...
29
+ class AnnotationsEntry(_message.Message):
30
+ __slots__ = ("key", "value")
31
+ KEY_FIELD_NUMBER: _ClassVar[int]
32
+ VALUE_FIELD_NUMBER: _ClassVar[int]
33
+ key: str
34
+ value: str
35
+ def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ...
36
+ ID_FIELD_NUMBER: _ClassVar[int]
37
+ NAME_FIELD_NUMBER: _ClassVar[int]
38
+ CREATED_AT_MS_FIELD_NUMBER: _ClassVar[int]
39
+ LABELS_FIELD_NUMBER: _ClassVar[int]
40
+ RESOURCE_VERSION_FIELD_NUMBER: _ClassVar[int]
41
+ ANNOTATIONS_FIELD_NUMBER: _ClassVar[int]
42
+ WORKSPACE_FIELD_NUMBER: _ClassVar[int]
43
+ DELETION_TIMESTAMP_MS_FIELD_NUMBER: _ClassVar[int]
44
+ id: str
45
+ name: str
46
+ created_at_ms: int
47
+ labels: _containers.ScalarMap[str, str]
48
+ resource_version: int
49
+ annotations: _containers.ScalarMap[str, str]
50
+ workspace: str
51
+ deletion_timestamp_ms: int
52
+ def __init__(self, id: _Optional[str] = ..., name: _Optional[str] = ..., created_at_ms: _Optional[int] = ..., labels: _Optional[_Mapping[str, str]] = ..., resource_version: _Optional[int] = ..., annotations: _Optional[_Mapping[str, str]] = ..., workspace: _Optional[str] = ..., deletion_timestamp_ms: _Optional[int] = ...) -> None: ...
53
+
54
+ class WorkspaceStatus(_message.Message):
55
+ __slots__ = ("phase",)
56
+ PHASE_FIELD_NUMBER: _ClassVar[int]
57
+ phase: WorkspacePhase
58
+ def __init__(self, phase: _Optional[_Union[WorkspacePhase, str]] = ...) -> None: ...
59
+
60
+ class Workspace(_message.Message):
61
+ __slots__ = ("metadata", "status")
62
+ METADATA_FIELD_NUMBER: _ClassVar[int]
63
+ STATUS_FIELD_NUMBER: _ClassVar[int]
64
+ metadata: ObjectMeta
65
+ status: WorkspaceStatus
66
+ def __init__(self, metadata: _Optional[_Union[ObjectMeta, _Mapping]] = ..., status: _Optional[_Union[WorkspaceStatus, _Mapping]] = ...) -> None: ...
67
+
68
+ class CredentialHandle(_message.Message):
69
+ __slots__ = ("driver", "handle", "metadata")
70
+ class MetadataEntry(_message.Message):
71
+ __slots__ = ("key", "value")
72
+ KEY_FIELD_NUMBER: _ClassVar[int]
73
+ VALUE_FIELD_NUMBER: _ClassVar[int]
74
+ key: str
75
+ value: str
76
+ def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ...
77
+ DRIVER_FIELD_NUMBER: _ClassVar[int]
78
+ HANDLE_FIELD_NUMBER: _ClassVar[int]
79
+ METADATA_FIELD_NUMBER: _ClassVar[int]
80
+ driver: str
81
+ handle: str
82
+ metadata: _containers.ScalarMap[str, str]
83
+ def __init__(self, driver: _Optional[str] = ..., handle: _Optional[str] = ..., metadata: _Optional[_Mapping[str, str]] = ...) -> None: ...
84
+
85
+ class Provider(_message.Message):
86
+ __slots__ = ("metadata", "type", "credentials", "config", "credential_expires_at_ms", "profile_workspace", "credential_handles")
87
+ class CredentialsEntry(_message.Message):
88
+ __slots__ = ("key", "value")
89
+ KEY_FIELD_NUMBER: _ClassVar[int]
90
+ VALUE_FIELD_NUMBER: _ClassVar[int]
91
+ key: str
92
+ value: str
93
+ def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ...
94
+ class ConfigEntry(_message.Message):
95
+ __slots__ = ("key", "value")
96
+ KEY_FIELD_NUMBER: _ClassVar[int]
97
+ VALUE_FIELD_NUMBER: _ClassVar[int]
98
+ key: str
99
+ value: str
100
+ def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ...
101
+ class CredentialExpiresAtMsEntry(_message.Message):
102
+ __slots__ = ("key", "value")
103
+ KEY_FIELD_NUMBER: _ClassVar[int]
104
+ VALUE_FIELD_NUMBER: _ClassVar[int]
105
+ key: str
106
+ value: int
107
+ def __init__(self, key: _Optional[str] = ..., value: _Optional[int] = ...) -> None: ...
108
+ class CredentialHandlesEntry(_message.Message):
109
+ __slots__ = ("key", "value")
110
+ KEY_FIELD_NUMBER: _ClassVar[int]
111
+ VALUE_FIELD_NUMBER: _ClassVar[int]
112
+ key: str
113
+ value: CredentialHandle
114
+ def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[CredentialHandle, _Mapping]] = ...) -> None: ...
115
+ METADATA_FIELD_NUMBER: _ClassVar[int]
116
+ TYPE_FIELD_NUMBER: _ClassVar[int]
117
+ CREDENTIALS_FIELD_NUMBER: _ClassVar[int]
118
+ CONFIG_FIELD_NUMBER: _ClassVar[int]
119
+ CREDENTIAL_EXPIRES_AT_MS_FIELD_NUMBER: _ClassVar[int]
120
+ PROFILE_WORKSPACE_FIELD_NUMBER: _ClassVar[int]
121
+ CREDENTIAL_HANDLES_FIELD_NUMBER: _ClassVar[int]
122
+ metadata: ObjectMeta
123
+ type: str
124
+ credentials: _containers.ScalarMap[str, str]
125
+ config: _containers.ScalarMap[str, str]
126
+ credential_expires_at_ms: _containers.ScalarMap[str, int]
127
+ profile_workspace: str
128
+ credential_handles: _containers.MessageMap[str, CredentialHandle]
129
+ def __init__(self, metadata: _Optional[_Union[ObjectMeta, _Mapping]] = ..., type: _Optional[str] = ..., credentials: _Optional[_Mapping[str, str]] = ..., config: _Optional[_Mapping[str, str]] = ..., credential_expires_at_ms: _Optional[_Mapping[str, int]] = ..., profile_workspace: _Optional[str] = ..., credential_handles: _Optional[_Mapping[str, CredentialHandle]] = ...) -> None: ...
@@ -0,0 +1,24 @@
1
+ # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
2
+ """Client and server classes corresponding to protobuf-defined services."""
3
+ import grpc
4
+ import warnings
5
+
6
+
7
+ GRPC_GENERATED_VERSION = '1.78.0'
8
+ GRPC_VERSION = grpc.__version__
9
+ _version_not_supported = False
10
+
11
+ try:
12
+ from grpc._utilities import first_version_is_lower
13
+ _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION)
14
+ except ImportError:
15
+ _version_not_supported = True
16
+
17
+ if _version_not_supported:
18
+ raise RuntimeError(
19
+ f'The grpc package installed is at version {GRPC_VERSION},'
20
+ + ' but the generated code in datamodel_pb2_grpc.py depends on'
21
+ + f' grpcio>={GRPC_GENERATED_VERSION}.'
22
+ + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}'
23
+ + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.'
24
+ )
@@ -0,0 +1,72 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # NO CHECKED-IN PROTOBUF GENCODE
4
+ # source: inference.proto
5
+ # Protobuf Python Version: 6.31.1
6
+ """Generated protocol buffer code."""
7
+ from google.protobuf import descriptor as _descriptor
8
+ from google.protobuf import descriptor_pool as _descriptor_pool
9
+ from google.protobuf import runtime_version as _runtime_version
10
+ from google.protobuf import symbol_database as _symbol_database
11
+ from google.protobuf.internal import builder as _builder
12
+ _runtime_version.ValidateProtobufRuntimeVersion(
13
+ _runtime_version.Domain.PUBLIC,
14
+ 6,
15
+ 31,
16
+ 1,
17
+ '',
18
+ 'inference.proto'
19
+ )
20
+ # @@protoc_insertion_point(imports)
21
+
22
+ _sym_db = _symbol_database.Default()
23
+
24
+
25
+ from . import datamodel_pb2 as datamodel__pb2
26
+ from . import options_pb2 as options__pb2
27
+
28
+
29
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0finference.proto\x12\x16openshell.inference.v1\x1a\x0f\x64\x61tamodel.proto\x1a\roptions.proto\"U\n\x14InferenceRouteConfig\x12\x15\n\rprovider_name\x18\x01 \x01(\t\x12\x10\n\x08model_id\x18\x02 \x01(\t\x12\x14\n\x0ctimeout_secs\x18\x03 \x01(\x04\"\x95\x01\n\x0eInferenceRoute\x12\x34\n\x08metadata\x18\x01 \x01(\x0b\x32\".openshell.datamodel.v1.ObjectMeta\x12<\n\x06\x63onfig\x18\x02 \x01(\x0b\x32,.openshell.inference.v1.InferenceRouteConfig\x12\x0f\n\x07version\x18\x03 \x01(\x04\"\xa3\x01\n\x18SetInferenceRouteRequest\x12\x15\n\rprovider_name\x18\x01 \x01(\t\x12\x10\n\x08model_id\x18\x02 \x01(\t\x12\x12\n\nroute_name\x18\x03 \x01(\t\x12\x0e\n\x06verify\x18\x04 \x01(\x08\x12\x11\n\tno_verify\x18\x05 \x01(\x08\x12\x14\n\x0ctimeout_secs\x18\x06 \x01(\x04\x12\x11\n\tworkspace\x18\x07 \x01(\t\"2\n\x11ValidatedEndpoint\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x10\n\x08protocol\x18\x02 \x01(\t\"\xf8\x01\n\x19SetInferenceRouteResponse\x12\x15\n\rprovider_name\x18\x01 \x01(\t\x12\x10\n\x08model_id\x18\x02 \x01(\t\x12\x0f\n\x07version\x18\x03 \x01(\x04\x12\x12\n\nroute_name\x18\x04 \x01(\t\x12\x1c\n\x14validation_performed\x18\x05 \x01(\x08\x12\x46\n\x13validated_endpoints\x18\x06 \x03(\x0b\x32).openshell.inference.v1.ValidatedEndpoint\x12\x14\n\x0ctimeout_secs\x18\x07 \x01(\x04\x12\x11\n\tworkspace\x18\x08 \x01(\t\"A\n\x18GetInferenceRouteRequest\x12\x12\n\nroute_name\x18\x01 \x01(\t\x12\x11\n\tworkspace\x18\x02 \x01(\t\"\x92\x01\n\x19GetInferenceRouteResponse\x12\x15\n\rprovider_name\x18\x01 \x01(\t\x12\x10\n\x08model_id\x18\x02 \x01(\t\x12\x0f\n\x07version\x18\x03 \x01(\x04\x12\x12\n\nroute_name\x18\x04 \x01(\t\x12\x14\n\x0ctimeout_secs\x18\x05 \x01(\x04\x12\x11\n\tworkspace\x18\x06 \x01(\t\"D\n\x1b\x44\x65leteInferenceRouteRequest\x12\x12\n\nroute_name\x18\x01 \x01(\t\x12\x11\n\tworkspace\x18\x02 \x01(\t\"/\n\x1c\x44\x65leteInferenceRouteResponse\x12\x0f\n\x07\x64\x65leted\x18\x01 \x01(\x08\"\x1b\n\x19GetInferenceBundleRequest\"\xed\x01\n\rResolvedRoute\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x10\n\x08\x62\x61se_url\x18\x02 \x01(\t\x12\x11\n\tprotocols\x18\x03 \x03(\t\x12\x15\n\x07\x61pi_key\x18\x04 \x01(\tB\x04\x88\xb5\x18\x01\x12\x10\n\x08model_id\x18\x05 \x01(\t\x12\x15\n\rprovider_type\x18\x06 \x01(\t\x12\x14\n\x0ctimeout_secs\x18\x07 \x01(\x04\x12\x15\n\rmodel_in_path\x18\x08 \x01(\x08\x12\"\n\x15request_path_override\x18\t \x01(\tH\x00\x88\x01\x01\x42\x18\n\x16_request_path_override\"~\n\x1aGetInferenceBundleResponse\x12\x35\n\x06routes\x18\x01 \x03(\x0b\x32%.openshell.inference.v1.ResolvedRoute\x12\x10\n\x08revision\x18\x02 \x01(\t\x12\x17\n\x0fgenerated_at_ms\x18\x03 \x01(\x03\x32\x82\x05\n\tInference\x12\x8a\x01\n\x12GetInferenceBundle\x12\x31.openshell.inference.v1.GetInferenceBundleRequest\x1a\x32.openshell.inference.v1.GetInferenceBundleResponse\"\r\x82\xb5\x18\t\n\x07sandbox\x12\x9e\x01\n\x11SetInferenceRoute\x12\x30.openshell.inference.v1.SetInferenceRouteRequest\x1a\x31.openshell.inference.v1.SetInferenceRouteResponse\"$\x82\xb5\x18 \n\x06\x62\x65\x61rer\x12\x05\x61\x64min\"\x0finference:write\x12\x9c\x01\n\x11GetInferenceRoute\x12\x30.openshell.inference.v1.GetInferenceRouteRequest\x1a\x31.openshell.inference.v1.GetInferenceRouteResponse\"\"\x82\xb5\x18\x1e\n\x06\x62\x65\x61rer\x12\x04user\"\x0einference:read\x12\xa7\x01\n\x14\x44\x65leteInferenceRoute\x12\x33.openshell.inference.v1.DeleteInferenceRouteRequest\x1a\x34.openshell.inference.v1.DeleteInferenceRouteResponse\"$\x82\xb5\x18 \n\x06\x62\x65\x61rer\x12\x05\x61\x64min\"\x0finference:writeb\x06proto3')
30
+
31
+ _globals = globals()
32
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
33
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'inference_pb2', _globals)
34
+ if not _descriptor._USE_C_DESCRIPTORS:
35
+ DESCRIPTOR._loaded_options = None
36
+ _globals['_RESOLVEDROUTE'].fields_by_name['api_key']._loaded_options = None
37
+ _globals['_RESOLVEDROUTE'].fields_by_name['api_key']._serialized_options = b'\210\265\030\001'
38
+ _globals['_INFERENCE'].methods_by_name['GetInferenceBundle']._loaded_options = None
39
+ _globals['_INFERENCE'].methods_by_name['GetInferenceBundle']._serialized_options = b'\202\265\030\t\n\007sandbox'
40
+ _globals['_INFERENCE'].methods_by_name['SetInferenceRoute']._loaded_options = None
41
+ _globals['_INFERENCE'].methods_by_name['SetInferenceRoute']._serialized_options = b'\202\265\030 \n\006bearer\022\005admin\"\017inference:write'
42
+ _globals['_INFERENCE'].methods_by_name['GetInferenceRoute']._loaded_options = None
43
+ _globals['_INFERENCE'].methods_by_name['GetInferenceRoute']._serialized_options = b'\202\265\030\036\n\006bearer\022\004user\"\016inference:read'
44
+ _globals['_INFERENCE'].methods_by_name['DeleteInferenceRoute']._loaded_options = None
45
+ _globals['_INFERENCE'].methods_by_name['DeleteInferenceRoute']._serialized_options = b'\202\265\030 \n\006bearer\022\005admin\"\017inference:write'
46
+ _globals['_INFERENCEROUTECONFIG']._serialized_start=75
47
+ _globals['_INFERENCEROUTECONFIG']._serialized_end=160
48
+ _globals['_INFERENCEROUTE']._serialized_start=163
49
+ _globals['_INFERENCEROUTE']._serialized_end=312
50
+ _globals['_SETINFERENCEROUTEREQUEST']._serialized_start=315
51
+ _globals['_SETINFERENCEROUTEREQUEST']._serialized_end=478
52
+ _globals['_VALIDATEDENDPOINT']._serialized_start=480
53
+ _globals['_VALIDATEDENDPOINT']._serialized_end=530
54
+ _globals['_SETINFERENCEROUTERESPONSE']._serialized_start=533
55
+ _globals['_SETINFERENCEROUTERESPONSE']._serialized_end=781
56
+ _globals['_GETINFERENCEROUTEREQUEST']._serialized_start=783
57
+ _globals['_GETINFERENCEROUTEREQUEST']._serialized_end=848
58
+ _globals['_GETINFERENCEROUTERESPONSE']._serialized_start=851
59
+ _globals['_GETINFERENCEROUTERESPONSE']._serialized_end=997
60
+ _globals['_DELETEINFERENCEROUTEREQUEST']._serialized_start=999
61
+ _globals['_DELETEINFERENCEROUTEREQUEST']._serialized_end=1067
62
+ _globals['_DELETEINFERENCEROUTERESPONSE']._serialized_start=1069
63
+ _globals['_DELETEINFERENCEROUTERESPONSE']._serialized_end=1116
64
+ _globals['_GETINFERENCEBUNDLEREQUEST']._serialized_start=1118
65
+ _globals['_GETINFERENCEBUNDLEREQUEST']._serialized_end=1145
66
+ _globals['_RESOLVEDROUTE']._serialized_start=1148
67
+ _globals['_RESOLVEDROUTE']._serialized_end=1385
68
+ _globals['_GETINFERENCEBUNDLERESPONSE']._serialized_start=1387
69
+ _globals['_GETINFERENCEBUNDLERESPONSE']._serialized_end=1513
70
+ _globals['_INFERENCE']._serialized_start=1516
71
+ _globals['_INFERENCE']._serialized_end=2158
72
+ # @@protoc_insertion_point(module_scope)
@@ -0,0 +1,149 @@
1
+ import datamodel_pb2 as _datamodel_pb2
2
+ import options_pb2 as _options_pb2
3
+ from google.protobuf.internal import containers as _containers
4
+ from google.protobuf import descriptor as _descriptor
5
+ from google.protobuf import message as _message
6
+ from collections.abc import Iterable as _Iterable, Mapping as _Mapping
7
+ from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union
8
+
9
+ DESCRIPTOR: _descriptor.FileDescriptor
10
+
11
+ class InferenceRouteConfig(_message.Message):
12
+ __slots__ = ("provider_name", "model_id", "timeout_secs")
13
+ PROVIDER_NAME_FIELD_NUMBER: _ClassVar[int]
14
+ MODEL_ID_FIELD_NUMBER: _ClassVar[int]
15
+ TIMEOUT_SECS_FIELD_NUMBER: _ClassVar[int]
16
+ provider_name: str
17
+ model_id: str
18
+ timeout_secs: int
19
+ def __init__(self, provider_name: _Optional[str] = ..., model_id: _Optional[str] = ..., timeout_secs: _Optional[int] = ...) -> None: ...
20
+
21
+ class InferenceRoute(_message.Message):
22
+ __slots__ = ("metadata", "config", "version")
23
+ METADATA_FIELD_NUMBER: _ClassVar[int]
24
+ CONFIG_FIELD_NUMBER: _ClassVar[int]
25
+ VERSION_FIELD_NUMBER: _ClassVar[int]
26
+ metadata: _datamodel_pb2.ObjectMeta
27
+ config: InferenceRouteConfig
28
+ version: int
29
+ def __init__(self, metadata: _Optional[_Union[_datamodel_pb2.ObjectMeta, _Mapping]] = ..., config: _Optional[_Union[InferenceRouteConfig, _Mapping]] = ..., version: _Optional[int] = ...) -> None: ...
30
+
31
+ class SetInferenceRouteRequest(_message.Message):
32
+ __slots__ = ("provider_name", "model_id", "route_name", "verify", "no_verify", "timeout_secs", "workspace")
33
+ PROVIDER_NAME_FIELD_NUMBER: _ClassVar[int]
34
+ MODEL_ID_FIELD_NUMBER: _ClassVar[int]
35
+ ROUTE_NAME_FIELD_NUMBER: _ClassVar[int]
36
+ VERIFY_FIELD_NUMBER: _ClassVar[int]
37
+ NO_VERIFY_FIELD_NUMBER: _ClassVar[int]
38
+ TIMEOUT_SECS_FIELD_NUMBER: _ClassVar[int]
39
+ WORKSPACE_FIELD_NUMBER: _ClassVar[int]
40
+ provider_name: str
41
+ model_id: str
42
+ route_name: str
43
+ verify: bool
44
+ no_verify: bool
45
+ timeout_secs: int
46
+ workspace: str
47
+ def __init__(self, provider_name: _Optional[str] = ..., model_id: _Optional[str] = ..., route_name: _Optional[str] = ..., verify: bool = ..., no_verify: bool = ..., timeout_secs: _Optional[int] = ..., workspace: _Optional[str] = ...) -> None: ...
48
+
49
+ class ValidatedEndpoint(_message.Message):
50
+ __slots__ = ("url", "protocol")
51
+ URL_FIELD_NUMBER: _ClassVar[int]
52
+ PROTOCOL_FIELD_NUMBER: _ClassVar[int]
53
+ url: str
54
+ protocol: str
55
+ def __init__(self, url: _Optional[str] = ..., protocol: _Optional[str] = ...) -> None: ...
56
+
57
+ class SetInferenceRouteResponse(_message.Message):
58
+ __slots__ = ("provider_name", "model_id", "version", "route_name", "validation_performed", "validated_endpoints", "timeout_secs", "workspace")
59
+ PROVIDER_NAME_FIELD_NUMBER: _ClassVar[int]
60
+ MODEL_ID_FIELD_NUMBER: _ClassVar[int]
61
+ VERSION_FIELD_NUMBER: _ClassVar[int]
62
+ ROUTE_NAME_FIELD_NUMBER: _ClassVar[int]
63
+ VALIDATION_PERFORMED_FIELD_NUMBER: _ClassVar[int]
64
+ VALIDATED_ENDPOINTS_FIELD_NUMBER: _ClassVar[int]
65
+ TIMEOUT_SECS_FIELD_NUMBER: _ClassVar[int]
66
+ WORKSPACE_FIELD_NUMBER: _ClassVar[int]
67
+ provider_name: str
68
+ model_id: str
69
+ version: int
70
+ route_name: str
71
+ validation_performed: bool
72
+ validated_endpoints: _containers.RepeatedCompositeFieldContainer[ValidatedEndpoint]
73
+ timeout_secs: int
74
+ workspace: str
75
+ def __init__(self, provider_name: _Optional[str] = ..., model_id: _Optional[str] = ..., version: _Optional[int] = ..., route_name: _Optional[str] = ..., validation_performed: bool = ..., validated_endpoints: _Optional[_Iterable[_Union[ValidatedEndpoint, _Mapping]]] = ..., timeout_secs: _Optional[int] = ..., workspace: _Optional[str] = ...) -> None: ...
76
+
77
+ class GetInferenceRouteRequest(_message.Message):
78
+ __slots__ = ("route_name", "workspace")
79
+ ROUTE_NAME_FIELD_NUMBER: _ClassVar[int]
80
+ WORKSPACE_FIELD_NUMBER: _ClassVar[int]
81
+ route_name: str
82
+ workspace: str
83
+ def __init__(self, route_name: _Optional[str] = ..., workspace: _Optional[str] = ...) -> None: ...
84
+
85
+ class GetInferenceRouteResponse(_message.Message):
86
+ __slots__ = ("provider_name", "model_id", "version", "route_name", "timeout_secs", "workspace")
87
+ PROVIDER_NAME_FIELD_NUMBER: _ClassVar[int]
88
+ MODEL_ID_FIELD_NUMBER: _ClassVar[int]
89
+ VERSION_FIELD_NUMBER: _ClassVar[int]
90
+ ROUTE_NAME_FIELD_NUMBER: _ClassVar[int]
91
+ TIMEOUT_SECS_FIELD_NUMBER: _ClassVar[int]
92
+ WORKSPACE_FIELD_NUMBER: _ClassVar[int]
93
+ provider_name: str
94
+ model_id: str
95
+ version: int
96
+ route_name: str
97
+ timeout_secs: int
98
+ workspace: str
99
+ def __init__(self, provider_name: _Optional[str] = ..., model_id: _Optional[str] = ..., version: _Optional[int] = ..., route_name: _Optional[str] = ..., timeout_secs: _Optional[int] = ..., workspace: _Optional[str] = ...) -> None: ...
100
+
101
+ class DeleteInferenceRouteRequest(_message.Message):
102
+ __slots__ = ("route_name", "workspace")
103
+ ROUTE_NAME_FIELD_NUMBER: _ClassVar[int]
104
+ WORKSPACE_FIELD_NUMBER: _ClassVar[int]
105
+ route_name: str
106
+ workspace: str
107
+ def __init__(self, route_name: _Optional[str] = ..., workspace: _Optional[str] = ...) -> None: ...
108
+
109
+ class DeleteInferenceRouteResponse(_message.Message):
110
+ __slots__ = ("deleted",)
111
+ DELETED_FIELD_NUMBER: _ClassVar[int]
112
+ deleted: bool
113
+ def __init__(self, deleted: bool = ...) -> None: ...
114
+
115
+ class GetInferenceBundleRequest(_message.Message):
116
+ __slots__ = ()
117
+ def __init__(self) -> None: ...
118
+
119
+ class ResolvedRoute(_message.Message):
120
+ __slots__ = ("name", "base_url", "protocols", "api_key", "model_id", "provider_type", "timeout_secs", "model_in_path", "request_path_override")
121
+ NAME_FIELD_NUMBER: _ClassVar[int]
122
+ BASE_URL_FIELD_NUMBER: _ClassVar[int]
123
+ PROTOCOLS_FIELD_NUMBER: _ClassVar[int]
124
+ API_KEY_FIELD_NUMBER: _ClassVar[int]
125
+ MODEL_ID_FIELD_NUMBER: _ClassVar[int]
126
+ PROVIDER_TYPE_FIELD_NUMBER: _ClassVar[int]
127
+ TIMEOUT_SECS_FIELD_NUMBER: _ClassVar[int]
128
+ MODEL_IN_PATH_FIELD_NUMBER: _ClassVar[int]
129
+ REQUEST_PATH_OVERRIDE_FIELD_NUMBER: _ClassVar[int]
130
+ name: str
131
+ base_url: str
132
+ protocols: _containers.RepeatedScalarFieldContainer[str]
133
+ api_key: str
134
+ model_id: str
135
+ provider_type: str
136
+ timeout_secs: int
137
+ model_in_path: bool
138
+ request_path_override: str
139
+ def __init__(self, name: _Optional[str] = ..., base_url: _Optional[str] = ..., protocols: _Optional[_Iterable[str]] = ..., api_key: _Optional[str] = ..., model_id: _Optional[str] = ..., provider_type: _Optional[str] = ..., timeout_secs: _Optional[int] = ..., model_in_path: bool = ..., request_path_override: _Optional[str] = ...) -> None: ...
140
+
141
+ class GetInferenceBundleResponse(_message.Message):
142
+ __slots__ = ("routes", "revision", "generated_at_ms")
143
+ ROUTES_FIELD_NUMBER: _ClassVar[int]
144
+ REVISION_FIELD_NUMBER: _ClassVar[int]
145
+ GENERATED_AT_MS_FIELD_NUMBER: _ClassVar[int]
146
+ routes: _containers.RepeatedCompositeFieldContainer[ResolvedRoute]
147
+ revision: str
148
+ generated_at_ms: int
149
+ def __init__(self, routes: _Optional[_Iterable[_Union[ResolvedRoute, _Mapping]]] = ..., revision: _Optional[str] = ..., generated_at_ms: _Optional[int] = ...) -> None: ...