diff --git a/pyproject.toml b/pyproject.toml index fb4b820..a4325fe 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "superagent-py" -version = "v0.0.99" +version = "v0.1.0" description = "" readme = "README.md" authors = [] diff --git a/src/superagent/__init__.py b/src/superagent/__init__.py index 5ffa8b9..210751f 100644 --- a/src/superagent/__init__.py +++ b/src/superagent/__init__.py @@ -5,7 +5,6 @@ AgentList, AgentRunList, AgentToolList, - ApiUser, AppModelsRequestAgent, AppModelsRequestDatasource, AppModelsRequestLlm, @@ -13,14 +12,30 @@ AppModelsRequestWorkflow, AppModelsResponseAgent, AppModelsResponseAgentInvoke, + AppModelsResponseApiUser, AppModelsResponseDatasource, AppModelsResponseLlm, AppModelsResponseTool, AppModelsResponseWorkflow, DatasourceList, + DatasourceStatus, + DatasourceType, HttpValidationError, LlmList, + LlmModel, + LlmProvider, + PrismaModelsAgent, + PrismaModelsAgentDatasource, + PrismaModelsAgentLlm, + PrismaModelsAgentTool, + PrismaModelsApiUser, + PrismaModelsDatasource, + PrismaModelsLlm, + PrismaModelsTool, + PrismaModelsWorkflow, + PrismaModelsWorkflowStep, ToolList, + ToolType, ValidationError, ValidationErrorLocItem, WorkflowList, @@ -33,7 +48,6 @@ "AgentList", "AgentRunList", "AgentToolList", - "ApiUser", "AppModelsRequestAgent", "AppModelsRequestDatasource", "AppModelsRequestLlm", @@ -41,14 +55,30 @@ "AppModelsRequestWorkflow", "AppModelsResponseAgent", "AppModelsResponseAgentInvoke", + "AppModelsResponseApiUser", "AppModelsResponseDatasource", "AppModelsResponseLlm", "AppModelsResponseTool", "AppModelsResponseWorkflow", "DatasourceList", + "DatasourceStatus", + "DatasourceType", "HttpValidationError", "LlmList", + "LlmModel", + "LlmProvider", + "PrismaModelsAgent", + "PrismaModelsAgentDatasource", + "PrismaModelsAgentLlm", + "PrismaModelsAgentTool", + "PrismaModelsApiUser", + "PrismaModelsDatasource", + "PrismaModelsLlm", + "PrismaModelsTool", + "PrismaModelsWorkflow", + "PrismaModelsWorkflowStep", "ToolList", + "ToolType", "UnprocessableEntityError", "ValidationError", "ValidationErrorLocItem", diff --git a/src/superagent/core/client_wrapper.py b/src/superagent/core/client_wrapper.py index c716db4..046dabb 100644 --- a/src/superagent/core/client_wrapper.py +++ b/src/superagent/core/client_wrapper.py @@ -14,7 +14,7 @@ def get_headers(self) -> typing.Dict[str, str]: headers: typing.Dict[str, str] = { "X-Fern-Language": "Python", "X-Fern-SDK-Name": "superagent-py", - "X-Fern-SDK-Version": "v0.0.99", + "X-Fern-SDK-Version": "v0.1.0", } token = self._get_token() if token is not None: diff --git a/src/superagent/resources/api_user/client.py b/src/superagent/resources/api_user/client.py index 0941e43..72456e8 100644 --- a/src/superagent/resources/api_user/client.py +++ b/src/superagent/resources/api_user/client.py @@ -8,14 +8,14 @@ from ...core.api_error import ApiError from ...core.client_wrapper import AsyncClientWrapper, SyncClientWrapper -from ...types.api_user import ApiUser +from ...types.app_models_response_api_user import AppModelsResponseApiUser class ApiUserClient: def __init__(self, *, client_wrapper: SyncClientWrapper): self._client_wrapper = client_wrapper - def create(self) -> ApiUser: + def create(self) -> AppModelsResponseApiUser: """ Create a new API user """ @@ -26,14 +26,14 @@ def create(self) -> ApiUser: timeout=60, ) if 200 <= _response.status_code < 300: - return pydantic.parse_obj_as(ApiUser, _response.json()) # type: ignore + return pydantic.parse_obj_as(AppModelsResponseApiUser, _response.json()) # type: ignore try: _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, body=_response.text) raise ApiError(status_code=_response.status_code, body=_response_json) - def get(self) -> ApiUser: + def get(self) -> AppModelsResponseApiUser: """ Get a single api user """ @@ -44,7 +44,7 @@ def get(self) -> ApiUser: timeout=60, ) if 200 <= _response.status_code < 300: - return pydantic.parse_obj_as(ApiUser, _response.json()) # type: ignore + return pydantic.parse_obj_as(AppModelsResponseApiUser, _response.json()) # type: ignore try: _response_json = _response.json() except JSONDecodeError: @@ -74,7 +74,7 @@ class AsyncApiUserClient: def __init__(self, *, client_wrapper: AsyncClientWrapper): self._client_wrapper = client_wrapper - async def create(self) -> ApiUser: + async def create(self) -> AppModelsResponseApiUser: """ Create a new API user """ @@ -85,14 +85,14 @@ async def create(self) -> ApiUser: timeout=60, ) if 200 <= _response.status_code < 300: - return pydantic.parse_obj_as(ApiUser, _response.json()) # type: ignore + return pydantic.parse_obj_as(AppModelsResponseApiUser, _response.json()) # type: ignore try: _response_json = _response.json() except JSONDecodeError: raise ApiError(status_code=_response.status_code, body=_response.text) raise ApiError(status_code=_response.status_code, body=_response_json) - async def get(self) -> ApiUser: + async def get(self) -> AppModelsResponseApiUser: """ Get a single api user """ @@ -103,7 +103,7 @@ async def get(self) -> ApiUser: timeout=60, ) if 200 <= _response.status_code < 300: - return pydantic.parse_obj_as(ApiUser, _response.json()) # type: ignore + return pydantic.parse_obj_as(AppModelsResponseApiUser, _response.json()) # type: ignore try: _response_json = _response.json() except JSONDecodeError: diff --git a/src/superagent/types/__init__.py b/src/superagent/types/__init__.py index 5cd12b1..df377e0 100644 --- a/src/superagent/types/__init__.py +++ b/src/superagent/types/__init__.py @@ -4,7 +4,6 @@ from .agent_list import AgentList from .agent_run_list import AgentRunList from .agent_tool_list import AgentToolList -from .api_user import ApiUser from .app_models_request_agent import AppModelsRequestAgent from .app_models_request_datasource import AppModelsRequestDatasource from .app_models_request_llm import AppModelsRequestLlm @@ -12,14 +11,30 @@ from .app_models_request_workflow import AppModelsRequestWorkflow from .app_models_response_agent import AppModelsResponseAgent from .app_models_response_agent_invoke import AppModelsResponseAgentInvoke +from .app_models_response_api_user import AppModelsResponseApiUser from .app_models_response_datasource import AppModelsResponseDatasource from .app_models_response_llm import AppModelsResponseLlm from .app_models_response_tool import AppModelsResponseTool from .app_models_response_workflow import AppModelsResponseWorkflow from .datasource_list import DatasourceList +from .datasource_status import DatasourceStatus +from .datasource_type import DatasourceType from .http_validation_error import HttpValidationError from .llm_list import LlmList +from .llm_model import LlmModel +from .llm_provider import LlmProvider +from .prisma_models_agent import PrismaModelsAgent +from .prisma_models_agent_datasource import PrismaModelsAgentDatasource +from .prisma_models_agent_llm import PrismaModelsAgentLlm +from .prisma_models_agent_tool import PrismaModelsAgentTool +from .prisma_models_api_user import PrismaModelsApiUser +from .prisma_models_datasource import PrismaModelsDatasource +from .prisma_models_llm import PrismaModelsLlm +from .prisma_models_tool import PrismaModelsTool +from .prisma_models_workflow import PrismaModelsWorkflow +from .prisma_models_workflow_step import PrismaModelsWorkflowStep from .tool_list import ToolList +from .tool_type import ToolType from .validation_error import ValidationError from .validation_error_loc_item import ValidationErrorLocItem from .workflow_list import WorkflowList @@ -29,7 +44,6 @@ "AgentList", "AgentRunList", "AgentToolList", - "ApiUser", "AppModelsRequestAgent", "AppModelsRequestDatasource", "AppModelsRequestLlm", @@ -37,14 +51,30 @@ "AppModelsRequestWorkflow", "AppModelsResponseAgent", "AppModelsResponseAgentInvoke", + "AppModelsResponseApiUser", "AppModelsResponseDatasource", "AppModelsResponseLlm", "AppModelsResponseTool", "AppModelsResponseWorkflow", "DatasourceList", + "DatasourceStatus", + "DatasourceType", "HttpValidationError", "LlmList", + "LlmModel", + "LlmProvider", + "PrismaModelsAgent", + "PrismaModelsAgentDatasource", + "PrismaModelsAgentLlm", + "PrismaModelsAgentTool", + "PrismaModelsApiUser", + "PrismaModelsDatasource", + "PrismaModelsLlm", + "PrismaModelsTool", + "PrismaModelsWorkflow", + "PrismaModelsWorkflowStep", "ToolList", + "ToolType", "ValidationError", "ValidationErrorLocItem", "WorkflowList", diff --git a/src/superagent/types/agent_datasosurce_list.py b/src/superagent/types/agent_datasosurce_list.py index 9d2e146..b4f52a2 100644 --- a/src/superagent/types/agent_datasosurce_list.py +++ b/src/superagent/types/agent_datasosurce_list.py @@ -6,11 +6,12 @@ import pydantic from ..core.datetime_utils import serialize_datetime +from .prisma_models_agent_datasource import PrismaModelsAgentDatasource class AgentDatasosurceList(pydantic.BaseModel): success: bool - data: typing.Optional[typing.List[typing.Dict[str, typing.Any]]] + data: typing.Optional[typing.List[PrismaModelsAgentDatasource]] def json(self, **kwargs: typing.Any) -> str: kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} diff --git a/src/superagent/types/agent_list.py b/src/superagent/types/agent_list.py index 816d0ee..0d1a8b5 100644 --- a/src/superagent/types/agent_list.py +++ b/src/superagent/types/agent_list.py @@ -6,11 +6,12 @@ import pydantic from ..core.datetime_utils import serialize_datetime +from .prisma_models_agent import PrismaModelsAgent class AgentList(pydantic.BaseModel): success: bool - data: typing.Optional[typing.List[typing.Dict[str, typing.Any]]] + data: typing.Optional[typing.List[PrismaModelsAgent]] def json(self, **kwargs: typing.Any) -> str: kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} diff --git a/src/superagent/types/agent_tool_list.py b/src/superagent/types/agent_tool_list.py index e623b93..327688d 100644 --- a/src/superagent/types/agent_tool_list.py +++ b/src/superagent/types/agent_tool_list.py @@ -6,11 +6,12 @@ import pydantic from ..core.datetime_utils import serialize_datetime +from .prisma_models_agent_tool import PrismaModelsAgentTool class AgentToolList(pydantic.BaseModel): success: bool - data: typing.Optional[typing.List[typing.Dict[str, typing.Any]]] + data: typing.Optional[typing.List[PrismaModelsAgentTool]] def json(self, **kwargs: typing.Any) -> str: kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} diff --git a/src/superagent/types/app_models_response_agent.py b/src/superagent/types/app_models_response_agent.py index 18f2cb8..bd218a3 100644 --- a/src/superagent/types/app_models_response_agent.py +++ b/src/superagent/types/app_models_response_agent.py @@ -6,11 +6,12 @@ import pydantic from ..core.datetime_utils import serialize_datetime +from .prisma_models_agent import PrismaModelsAgent class AppModelsResponseAgent(pydantic.BaseModel): success: bool - data: typing.Optional[typing.Dict[str, typing.Any]] + data: typing.Optional[PrismaModelsAgent] def json(self, **kwargs: typing.Any) -> str: kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} diff --git a/src/superagent/types/api_user.py b/src/superagent/types/app_models_response_api_user.py similarity index 82% rename from src/superagent/types/api_user.py rename to src/superagent/types/app_models_response_api_user.py index 7018148..878663b 100644 --- a/src/superagent/types/api_user.py +++ b/src/superagent/types/app_models_response_api_user.py @@ -6,11 +6,12 @@ import pydantic from ..core.datetime_utils import serialize_datetime +from .prisma_models_api_user import PrismaModelsApiUser -class ApiUser(pydantic.BaseModel): +class AppModelsResponseApiUser(pydantic.BaseModel): success: bool - data: typing.Optional[typing.Dict[str, typing.Any]] + data: typing.Optional[PrismaModelsApiUser] def json(self, **kwargs: typing.Any) -> str: kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} diff --git a/src/superagent/types/app_models_response_datasource.py b/src/superagent/types/app_models_response_datasource.py index b990d93..7570f19 100644 --- a/src/superagent/types/app_models_response_datasource.py +++ b/src/superagent/types/app_models_response_datasource.py @@ -6,11 +6,12 @@ import pydantic from ..core.datetime_utils import serialize_datetime +from .prisma_models_datasource import PrismaModelsDatasource class AppModelsResponseDatasource(pydantic.BaseModel): success: bool - data: typing.Optional[typing.Dict[str, typing.Any]] + data: typing.Optional[PrismaModelsDatasource] def json(self, **kwargs: typing.Any) -> str: kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} diff --git a/src/superagent/types/app_models_response_llm.py b/src/superagent/types/app_models_response_llm.py index 5644275..e1e3551 100644 --- a/src/superagent/types/app_models_response_llm.py +++ b/src/superagent/types/app_models_response_llm.py @@ -6,11 +6,12 @@ import pydantic from ..core.datetime_utils import serialize_datetime +from .prisma_models_llm import PrismaModelsLlm class AppModelsResponseLlm(pydantic.BaseModel): success: bool - data: typing.Optional[typing.Dict[str, typing.Any]] + data: typing.Optional[PrismaModelsLlm] def json(self, **kwargs: typing.Any) -> str: kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} diff --git a/src/superagent/types/app_models_response_tool.py b/src/superagent/types/app_models_response_tool.py index 6e9ae7c..d67ec49 100644 --- a/src/superagent/types/app_models_response_tool.py +++ b/src/superagent/types/app_models_response_tool.py @@ -6,11 +6,12 @@ import pydantic from ..core.datetime_utils import serialize_datetime +from .prisma_models_tool import PrismaModelsTool class AppModelsResponseTool(pydantic.BaseModel): success: bool - data: typing.Optional[typing.Dict[str, typing.Any]] + data: typing.Optional[PrismaModelsTool] def json(self, **kwargs: typing.Any) -> str: kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} diff --git a/src/superagent/types/app_models_response_workflow.py b/src/superagent/types/app_models_response_workflow.py index 7dabc01..f2ef678 100644 --- a/src/superagent/types/app_models_response_workflow.py +++ b/src/superagent/types/app_models_response_workflow.py @@ -6,11 +6,12 @@ import pydantic from ..core.datetime_utils import serialize_datetime +from .prisma_models_workflow import PrismaModelsWorkflow class AppModelsResponseWorkflow(pydantic.BaseModel): success: bool - data: typing.Optional[typing.Dict[str, typing.Any]] + data: typing.Optional[PrismaModelsWorkflow] def json(self, **kwargs: typing.Any) -> str: kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} diff --git a/src/superagent/types/datasource_list.py b/src/superagent/types/datasource_list.py index e3da99d..2d86833 100644 --- a/src/superagent/types/datasource_list.py +++ b/src/superagent/types/datasource_list.py @@ -6,11 +6,12 @@ import pydantic from ..core.datetime_utils import serialize_datetime +from .prisma_models_datasource import PrismaModelsDatasource class DatasourceList(pydantic.BaseModel): success: bool - data: typing.Optional[typing.List[typing.Dict[str, typing.Any]]] + data: typing.Optional[typing.List[PrismaModelsDatasource]] def json(self, **kwargs: typing.Any) -> str: kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} diff --git a/src/superagent/types/datasource_status.py b/src/superagent/types/datasource_status.py new file mode 100644 index 0000000..22875cc --- /dev/null +++ b/src/superagent/types/datasource_status.py @@ -0,0 +1,21 @@ +# This file was auto-generated by Fern from our API Definition. + +import enum +import typing + +T_Result = typing.TypeVar("T_Result") + + +class DatasourceStatus(str, enum.Enum): + """ + An enumeration. + """ + + IN_PROGRESS = "IN_PROGRESS" + DONE = "DONE" + + def visit(self, in_progress: typing.Callable[[], T_Result], done: typing.Callable[[], T_Result]) -> T_Result: + if self is DatasourceStatus.IN_PROGRESS: + return in_progress() + if self is DatasourceStatus.DONE: + return done() diff --git a/src/superagent/types/datasource_type.py b/src/superagent/types/datasource_type.py new file mode 100644 index 0000000..69e99ca --- /dev/null +++ b/src/superagent/types/datasource_type.py @@ -0,0 +1,69 @@ +# This file was auto-generated by Fern from our API Definition. + +import enum +import typing + +T_Result = typing.TypeVar("T_Result") + + +class DatasourceType(str, enum.Enum): + """ + An enumeration. + """ + + TXT = "TXT" + PDF = "PDF" + CSV = "CSV" + YOUTUBE = "YOUTUBE" + GITHUB_REPOSITORY = "GITHUB_REPOSITORY" + MARKDOWN = "MARKDOWN" + WEBPAGE = "WEBPAGE" + AIRTABLE = "AIRTABLE" + STRIPE = "STRIPE" + NOTION = "NOTION" + SITEMAP = "SITEMAP" + URL = "URL" + FUNCTION = "FUNCTION" + + def visit( + self, + txt: typing.Callable[[], T_Result], + pdf: typing.Callable[[], T_Result], + csv: typing.Callable[[], T_Result], + youtube: typing.Callable[[], T_Result], + github_repository: typing.Callable[[], T_Result], + markdown: typing.Callable[[], T_Result], + webpage: typing.Callable[[], T_Result], + airtable: typing.Callable[[], T_Result], + stripe: typing.Callable[[], T_Result], + notion: typing.Callable[[], T_Result], + sitemap: typing.Callable[[], T_Result], + url: typing.Callable[[], T_Result], + function: typing.Callable[[], T_Result], + ) -> T_Result: + if self is DatasourceType.TXT: + return txt() + if self is DatasourceType.PDF: + return pdf() + if self is DatasourceType.CSV: + return csv() + if self is DatasourceType.YOUTUBE: + return youtube() + if self is DatasourceType.GITHUB_REPOSITORY: + return github_repository() + if self is DatasourceType.MARKDOWN: + return markdown() + if self is DatasourceType.WEBPAGE: + return webpage() + if self is DatasourceType.AIRTABLE: + return airtable() + if self is DatasourceType.STRIPE: + return stripe() + if self is DatasourceType.NOTION: + return notion() + if self is DatasourceType.SITEMAP: + return sitemap() + if self is DatasourceType.URL: + return url() + if self is DatasourceType.FUNCTION: + return function() diff --git a/src/superagent/types/llm_list.py b/src/superagent/types/llm_list.py index fd402d9..a90f48e 100644 --- a/src/superagent/types/llm_list.py +++ b/src/superagent/types/llm_list.py @@ -6,11 +6,12 @@ import pydantic from ..core.datetime_utils import serialize_datetime +from .prisma_models_llm import PrismaModelsLlm class LlmList(pydantic.BaseModel): success: bool - data: typing.Optional[typing.List[typing.Dict[str, typing.Any]]] + data: typing.Optional[typing.List[PrismaModelsLlm]] def json(self, **kwargs: typing.Any) -> str: kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} diff --git a/src/superagent/types/llm_model.py b/src/superagent/types/llm_model.py new file mode 100644 index 0000000..d79ad96 --- /dev/null +++ b/src/superagent/types/llm_model.py @@ -0,0 +1,33 @@ +# This file was auto-generated by Fern from our API Definition. + +import enum +import typing + +T_Result = typing.TypeVar("T_Result") + + +class LlmModel(str, enum.Enum): + """ + An enumeration. + """ + + GPT_3_5_TURBO_16_K_0613 = "GPT_3_5_TURBO_16K_0613" + GPT_3_5_TURBO_0613 = "GPT_3_5_TURBO_0613" + GPT_4_0613 = "GPT_4_0613" + GPT_4_32_K_0613 = "GPT_4_32K_0613" + + def visit( + self, + gpt_3_5_turbo_16_k_0613: typing.Callable[[], T_Result], + gpt_3_5_turbo_0613: typing.Callable[[], T_Result], + gpt_4_0613: typing.Callable[[], T_Result], + gpt_4_32_k_0613: typing.Callable[[], T_Result], + ) -> T_Result: + if self is LlmModel.GPT_3_5_TURBO_16_K_0613: + return gpt_3_5_turbo_16_k_0613() + if self is LlmModel.GPT_3_5_TURBO_0613: + return gpt_3_5_turbo_0613() + if self is LlmModel.GPT_4_0613: + return gpt_4_0613() + if self is LlmModel.GPT_4_32_K_0613: + return gpt_4_32_k_0613() diff --git a/src/superagent/types/llm_provider.py b/src/superagent/types/llm_provider.py new file mode 100644 index 0000000..e4512aa --- /dev/null +++ b/src/superagent/types/llm_provider.py @@ -0,0 +1,5 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing_extensions + +LlmProvider = typing_extensions.Literal["OPENAI"] diff --git a/src/superagent/types/prisma_models_agent.py b/src/superagent/types/prisma_models_agent.py new file mode 100644 index 0000000..522962d --- /dev/null +++ b/src/superagent/types/prisma_models_agent.py @@ -0,0 +1,56 @@ +# This file was auto-generated by Fern from our API Definition. + +from __future__ import annotations + +import datetime as dt +import typing + +import pydantic + +from ..core.datetime_utils import serialize_datetime +from .llm_model import LlmModel + + +class PrismaModelsAgent(pydantic.BaseModel): + """ + Represents a Agent record + """ + + id: str + name: str + avatar: typing.Optional[str] + description: str + is_active: bool = pydantic.Field(alias="isActive") + created_at: dt.datetime = pydantic.Field(alias="createdAt") + updated_at: dt.datetime = pydantic.Field(alias="updatedAt") + llms: typing.Optional[typing.List[PrismaModelsAgentLlm]] + llm_model: LlmModel = pydantic.Field(alias="llmModel") + prompt: typing.Optional[str] + api_user_id: str = pydantic.Field(alias="apiUserId") + api_user: typing.Optional[PrismaModelsApiUser] = pydantic.Field(alias="apiUser") + datasources: typing.Optional[typing.List[PrismaModelsAgentDatasource]] + tools: typing.Optional[typing.List[PrismaModelsAgentTool]] + workflow_steps: typing.Optional[typing.List[PrismaModelsWorkflowStep]] = pydantic.Field(alias="workflowSteps") + + def json(self, **kwargs: typing.Any) -> str: + kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} + return super().json(**kwargs_with_defaults) + + def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: + kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} + return super().dict(**kwargs_with_defaults) + + class Config: + frozen = True + smart_union = True + allow_population_by_field_name = True + json_encoders = {dt.datetime: serialize_datetime} + + +from .prisma_models_agent_datasource import PrismaModelsAgentDatasource # noqa: E402 +from .prisma_models_agent_llm import PrismaModelsAgentLlm # noqa: E402 +from .prisma_models_agent_tool import PrismaModelsAgentTool # noqa: E402 +from .prisma_models_api_user import PrismaModelsApiUser # noqa: E402 +from .prisma_models_workflow_step import PrismaModelsWorkflowStep # noqa: E402 + +PrismaModelsAgent.update_forward_refs() diff --git a/src/superagent/types/prisma_models_agent_datasource.py b/src/superagent/types/prisma_models_agent_datasource.py new file mode 100644 index 0000000..40519cb --- /dev/null +++ b/src/superagent/types/prisma_models_agent_datasource.py @@ -0,0 +1,43 @@ +# This file was auto-generated by Fern from our API Definition. + +from __future__ import annotations + +import datetime as dt +import typing + +import pydantic + +from ..core.datetime_utils import serialize_datetime + + +class PrismaModelsAgentDatasource(pydantic.BaseModel): + """ + Represents a AgentDatasource record + """ + + agent_id: str = pydantic.Field(alias="agentId") + datasource_id: str = pydantic.Field(alias="datasourceId") + agent: typing.Optional[PrismaModelsAgent] + datasource: typing.Optional[PrismaModelsDatasource] + created_at: dt.datetime = pydantic.Field(alias="createdAt") + updated_at: dt.datetime = pydantic.Field(alias="updatedAt") + + def json(self, **kwargs: typing.Any) -> str: + kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} + return super().json(**kwargs_with_defaults) + + def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: + kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} + return super().dict(**kwargs_with_defaults) + + class Config: + frozen = True + smart_union = True + allow_population_by_field_name = True + json_encoders = {dt.datetime: serialize_datetime} + + +from .prisma_models_agent import PrismaModelsAgent # noqa: E402 +from .prisma_models_datasource import PrismaModelsDatasource # noqa: E402 + +PrismaModelsAgentDatasource.update_forward_refs() diff --git a/src/superagent/types/prisma_models_agent_llm.py b/src/superagent/types/prisma_models_agent_llm.py new file mode 100644 index 0000000..980c90f --- /dev/null +++ b/src/superagent/types/prisma_models_agent_llm.py @@ -0,0 +1,43 @@ +# This file was auto-generated by Fern from our API Definition. + +from __future__ import annotations + +import datetime as dt +import typing + +import pydantic + +from ..core.datetime_utils import serialize_datetime + + +class PrismaModelsAgentLlm(pydantic.BaseModel): + """ + Represents a AgentLLM record + """ + + agent_id: str = pydantic.Field(alias="agentId") + llm_id: str = pydantic.Field(alias="llmId") + agent: typing.Optional[PrismaModelsAgent] + llm: typing.Optional[PrismaModelsLlm] + created_at: dt.datetime = pydantic.Field(alias="createdAt") + updated_at: dt.datetime = pydantic.Field(alias="updatedAt") + + def json(self, **kwargs: typing.Any) -> str: + kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} + return super().json(**kwargs_with_defaults) + + def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: + kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} + return super().dict(**kwargs_with_defaults) + + class Config: + frozen = True + smart_union = True + allow_population_by_field_name = True + json_encoders = {dt.datetime: serialize_datetime} + + +from .prisma_models_agent import PrismaModelsAgent # noqa: E402 +from .prisma_models_llm import PrismaModelsLlm # noqa: E402 + +PrismaModelsAgentLlm.update_forward_refs() diff --git a/src/superagent/types/prisma_models_agent_tool.py b/src/superagent/types/prisma_models_agent_tool.py new file mode 100644 index 0000000..02c5fde --- /dev/null +++ b/src/superagent/types/prisma_models_agent_tool.py @@ -0,0 +1,43 @@ +# This file was auto-generated by Fern from our API Definition. + +from __future__ import annotations + +import datetime as dt +import typing + +import pydantic + +from ..core.datetime_utils import serialize_datetime + + +class PrismaModelsAgentTool(pydantic.BaseModel): + """ + Represents a AgentTool record + """ + + agent_id: str = pydantic.Field(alias="agentId") + tool_id: str = pydantic.Field(alias="toolId") + agent: typing.Optional[PrismaModelsAgent] + tool: typing.Optional[PrismaModelsTool] + created_at: dt.datetime = pydantic.Field(alias="createdAt") + updated_at: dt.datetime = pydantic.Field(alias="updatedAt") + + def json(self, **kwargs: typing.Any) -> str: + kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} + return super().json(**kwargs_with_defaults) + + def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: + kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} + return super().dict(**kwargs_with_defaults) + + class Config: + frozen = True + smart_union = True + allow_population_by_field_name = True + json_encoders = {dt.datetime: serialize_datetime} + + +from .prisma_models_agent import PrismaModelsAgent # noqa: E402 +from .prisma_models_tool import PrismaModelsTool # noqa: E402 + +PrismaModelsAgentTool.update_forward_refs() diff --git a/src/superagent/types/prisma_models_api_user.py b/src/superagent/types/prisma_models_api_user.py new file mode 100644 index 0000000..d498a5c --- /dev/null +++ b/src/superagent/types/prisma_models_api_user.py @@ -0,0 +1,49 @@ +# This file was auto-generated by Fern from our API Definition. + +from __future__ import annotations + +import datetime as dt +import typing + +import pydantic + +from ..core.datetime_utils import serialize_datetime + + +class PrismaModelsApiUser(pydantic.BaseModel): + """ + Represents a ApiUser record + """ + + id: str + token: typing.Optional[str] + created_at: dt.datetime = pydantic.Field(alias="createdAt") + updated_at: dt.datetime = pydantic.Field(alias="updatedAt") + agents: typing.Optional[typing.List[PrismaModelsAgent]] + llms: typing.Optional[typing.List[PrismaModelsLlm]] + datasources: typing.Optional[typing.List[PrismaModelsDatasource]] + tools: typing.Optional[typing.List[PrismaModelsTool]] + worflows: typing.Optional[typing.List[PrismaModelsWorkflow]] + + def json(self, **kwargs: typing.Any) -> str: + kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} + return super().json(**kwargs_with_defaults) + + def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: + kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} + return super().dict(**kwargs_with_defaults) + + class Config: + frozen = True + smart_union = True + allow_population_by_field_name = True + json_encoders = {dt.datetime: serialize_datetime} + + +from .prisma_models_agent import PrismaModelsAgent # noqa: E402 +from .prisma_models_datasource import PrismaModelsDatasource # noqa: E402 +from .prisma_models_llm import PrismaModelsLlm # noqa: E402 +from .prisma_models_tool import PrismaModelsTool # noqa: E402 +from .prisma_models_workflow import PrismaModelsWorkflow # noqa: E402 + +PrismaModelsApiUser.update_forward_refs() diff --git a/src/superagent/types/prisma_models_datasource.py b/src/superagent/types/prisma_models_datasource.py new file mode 100644 index 0000000..dbb1ba6 --- /dev/null +++ b/src/superagent/types/prisma_models_datasource.py @@ -0,0 +1,51 @@ +# This file was auto-generated by Fern from our API Definition. + +from __future__ import annotations + +import datetime as dt +import typing + +import pydantic + +from ..core.datetime_utils import serialize_datetime +from .datasource_status import DatasourceStatus +from .datasource_type import DatasourceType + + +class PrismaModelsDatasource(pydantic.BaseModel): + """ + Represents a Datasource record + """ + + id: str + name: str + description: typing.Optional[str] + url: typing.Optional[str] + type: DatasourceType + api_user_id: str = pydantic.Field(alias="apiUserId") + api_user: typing.Optional[PrismaModelsApiUser] = pydantic.Field(alias="apiUser") + created_at: dt.datetime = pydantic.Field(alias="createdAt") + updated_at: dt.datetime = pydantic.Field(alias="updatedAt") + metadata: typing.Optional[str] + status: DatasourceStatus + datasources: typing.Optional[typing.List[PrismaModelsAgentDatasource]] + + def json(self, **kwargs: typing.Any) -> str: + kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} + return super().json(**kwargs_with_defaults) + + def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: + kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} + return super().dict(**kwargs_with_defaults) + + class Config: + frozen = True + smart_union = True + allow_population_by_field_name = True + json_encoders = {dt.datetime: serialize_datetime} + + +from .prisma_models_agent_datasource import PrismaModelsAgentDatasource # noqa: E402 +from .prisma_models_api_user import PrismaModelsApiUser # noqa: E402 + +PrismaModelsDatasource.update_forward_refs() diff --git a/src/superagent/types/prisma_models_llm.py b/src/superagent/types/prisma_models_llm.py new file mode 100644 index 0000000..a0a4395 --- /dev/null +++ b/src/superagent/types/prisma_models_llm.py @@ -0,0 +1,47 @@ +# This file was auto-generated by Fern from our API Definition. + +from __future__ import annotations + +import datetime as dt +import typing + +import pydantic + +from ..core.datetime_utils import serialize_datetime +from .llm_provider import LlmProvider + + +class PrismaModelsLlm(pydantic.BaseModel): + """ + Represents a LLM record + """ + + id: str + provider: LlmProvider + api_key: str = pydantic.Field(alias="apiKey") + options: typing.Optional[str] + agents: typing.Optional[typing.List[PrismaModelsAgentLlm]] + created_at: dt.datetime = pydantic.Field(alias="createdAt") + updated_at: dt.datetime = pydantic.Field(alias="updatedAt") + api_user_id: str = pydantic.Field(alias="apiUserId") + api_user: typing.Optional[PrismaModelsApiUser] = pydantic.Field(alias="apiUser") + + def json(self, **kwargs: typing.Any) -> str: + kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} + return super().json(**kwargs_with_defaults) + + def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: + kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} + return super().dict(**kwargs_with_defaults) + + class Config: + frozen = True + smart_union = True + allow_population_by_field_name = True + json_encoders = {dt.datetime: serialize_datetime} + + +from .prisma_models_agent_llm import PrismaModelsAgentLlm # noqa: E402 +from .prisma_models_api_user import PrismaModelsApiUser # noqa: E402 + +PrismaModelsLlm.update_forward_refs() diff --git a/src/superagent/types/prisma_models_tool.py b/src/superagent/types/prisma_models_tool.py new file mode 100644 index 0000000..c45948a --- /dev/null +++ b/src/superagent/types/prisma_models_tool.py @@ -0,0 +1,49 @@ +# This file was auto-generated by Fern from our API Definition. + +from __future__ import annotations + +import datetime as dt +import typing + +import pydantic + +from ..core.datetime_utils import serialize_datetime +from .tool_type import ToolType + + +class PrismaModelsTool(pydantic.BaseModel): + """ + Represents a Tool record + """ + + id: str + name: str + description: str + type: ToolType + return_direct: bool = pydantic.Field(alias="returnDirect") + metadata: str + created_at: dt.datetime = pydantic.Field(alias="createdAt") + updated_at: dt.datetime = pydantic.Field(alias="updatedAt") + api_user_id: str = pydantic.Field(alias="apiUserId") + api_user: typing.Optional[PrismaModelsApiUser] = pydantic.Field(alias="apiUser") + tools: typing.Optional[typing.List[PrismaModelsAgentTool]] + + def json(self, **kwargs: typing.Any) -> str: + kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} + return super().json(**kwargs_with_defaults) + + def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: + kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} + return super().dict(**kwargs_with_defaults) + + class Config: + frozen = True + smart_union = True + allow_population_by_field_name = True + json_encoders = {dt.datetime: serialize_datetime} + + +from .prisma_models_agent_tool import PrismaModelsAgentTool # noqa: E402 +from .prisma_models_api_user import PrismaModelsApiUser # noqa: E402 + +PrismaModelsTool.update_forward_refs() diff --git a/src/superagent/types/prisma_models_workflow.py b/src/superagent/types/prisma_models_workflow.py new file mode 100644 index 0000000..1da76e2 --- /dev/null +++ b/src/superagent/types/prisma_models_workflow.py @@ -0,0 +1,45 @@ +# This file was auto-generated by Fern from our API Definition. + +from __future__ import annotations + +import datetime as dt +import typing + +import pydantic + +from ..core.datetime_utils import serialize_datetime + + +class PrismaModelsWorkflow(pydantic.BaseModel): + """ + Represents a Workflow record + """ + + id: str + name: str + description: typing.Optional[str] + created_at: dt.datetime = pydantic.Field(alias="createdAt") + updated_at: dt.datetime = pydantic.Field(alias="updatedAt") + steps: typing.Optional[typing.List[PrismaModelsWorkflowStep]] + api_user_id: str = pydantic.Field(alias="apiUserId") + api_user: typing.Optional[PrismaModelsApiUser] = pydantic.Field(alias="apiUser") + + def json(self, **kwargs: typing.Any) -> str: + kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} + return super().json(**kwargs_with_defaults) + + def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: + kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} + return super().dict(**kwargs_with_defaults) + + class Config: + frozen = True + smart_union = True + allow_population_by_field_name = True + json_encoders = {dt.datetime: serialize_datetime} + + +from .prisma_models_api_user import PrismaModelsApiUser # noqa: E402 +from .prisma_models_workflow_step import PrismaModelsWorkflowStep # noqa: E402 + +PrismaModelsWorkflow.update_forward_refs() diff --git a/src/superagent/types/prisma_models_workflow_step.py b/src/superagent/types/prisma_models_workflow_step.py new file mode 100644 index 0000000..c0ab4a5 --- /dev/null +++ b/src/superagent/types/prisma_models_workflow_step.py @@ -0,0 +1,47 @@ +# This file was auto-generated by Fern from our API Definition. + +from __future__ import annotations + +import datetime as dt +import typing + +import pydantic + +from ..core.datetime_utils import serialize_datetime + + +class PrismaModelsWorkflowStep(pydantic.BaseModel): + """ + Represents a WorkflowStep record + """ + + id: str + order: int + workflow_id: str = pydantic.Field(alias="workflowId") + workflow: typing.Optional[PrismaModelsWorkflow] + created_at: dt.datetime = pydantic.Field(alias="createdAt") + updated_at: dt.datetime = pydantic.Field(alias="updatedAt") + input: str + output: str + agent_id: str = pydantic.Field(alias="agentId") + agent: typing.Optional[PrismaModelsAgent] + + def json(self, **kwargs: typing.Any) -> str: + kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} + return super().json(**kwargs_with_defaults) + + def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: + kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} + return super().dict(**kwargs_with_defaults) + + class Config: + frozen = True + smart_union = True + allow_population_by_field_name = True + json_encoders = {dt.datetime: serialize_datetime} + + +from .prisma_models_agent import PrismaModelsAgent # noqa: E402 +from .prisma_models_workflow import PrismaModelsWorkflow # noqa: E402 + +PrismaModelsWorkflowStep.update_forward_refs() diff --git a/src/superagent/types/tool_list.py b/src/superagent/types/tool_list.py index 13ea3f0..42cc1ba 100644 --- a/src/superagent/types/tool_list.py +++ b/src/superagent/types/tool_list.py @@ -6,11 +6,12 @@ import pydantic from ..core.datetime_utils import serialize_datetime +from .prisma_models_tool import PrismaModelsTool class ToolList(pydantic.BaseModel): success: bool - data: typing.Optional[typing.List[typing.Dict[str, typing.Any]]] + data: typing.Optional[typing.List[PrismaModelsTool]] def json(self, **kwargs: typing.Any) -> str: kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} diff --git a/src/superagent/types/tool_type.py b/src/superagent/types/tool_type.py new file mode 100644 index 0000000..9cec16b --- /dev/null +++ b/src/superagent/types/tool_type.py @@ -0,0 +1,57 @@ +# This file was auto-generated by Fern from our API Definition. + +import enum +import typing + +T_Result = typing.TypeVar("T_Result") + + +class ToolType(str, enum.Enum): + """ + An enumeration. + """ + + BROWSER = "BROWSER" + BING_SEARCH = "BING_SEARCH" + REPLICATE = "REPLICATE" + WOLFRAM_ALPHA = "WOLFRAM_ALPHA" + ZAPIER_NLA = "ZAPIER_NLA" + AGENT = "AGENT" + OPENAPI = "OPENAPI" + CHATGPT_PLUGIN = "CHATGPT_PLUGIN" + METAPHOR = "METAPHOR" + PUBMED = "PUBMED" + + def visit( + self, + browser: typing.Callable[[], T_Result], + bing_search: typing.Callable[[], T_Result], + replicate: typing.Callable[[], T_Result], + wolfram_alpha: typing.Callable[[], T_Result], + zapier_nla: typing.Callable[[], T_Result], + agent: typing.Callable[[], T_Result], + openapi: typing.Callable[[], T_Result], + chatgpt_plugin: typing.Callable[[], T_Result], + metaphor: typing.Callable[[], T_Result], + pubmed: typing.Callable[[], T_Result], + ) -> T_Result: + if self is ToolType.BROWSER: + return browser() + if self is ToolType.BING_SEARCH: + return bing_search() + if self is ToolType.REPLICATE: + return replicate() + if self is ToolType.WOLFRAM_ALPHA: + return wolfram_alpha() + if self is ToolType.ZAPIER_NLA: + return zapier_nla() + if self is ToolType.AGENT: + return agent() + if self is ToolType.OPENAPI: + return openapi() + if self is ToolType.CHATGPT_PLUGIN: + return chatgpt_plugin() + if self is ToolType.METAPHOR: + return metaphor() + if self is ToolType.PUBMED: + return pubmed() diff --git a/src/superagent/types/workflow_list.py b/src/superagent/types/workflow_list.py index 4ceba38..6c0bed4 100644 --- a/src/superagent/types/workflow_list.py +++ b/src/superagent/types/workflow_list.py @@ -6,11 +6,12 @@ import pydantic from ..core.datetime_utils import serialize_datetime +from .prisma_models_workflow import PrismaModelsWorkflow class WorkflowList(pydantic.BaseModel): success: bool - data: typing.Optional[typing.List[typing.Dict[str, typing.Any]]] + data: typing.Optional[typing.List[PrismaModelsWorkflow]] def json(self, **kwargs: typing.Any) -> str: kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs}