diff --git a/agents-api/agents_api/autogen/openapi_model.py b/agents-api/agents_api/autogen/openapi_model.py index ae612006d..d8c1f6e39 100644 --- a/agents-api/agents_api/autogen/openapi_model.py +++ b/agents-api/agents_api/autogen/openapi_model.py @@ -1,6 +1,6 @@ # generated by datamodel-codegen: # filename: openapi.yaml -# timestamp: 2024-06-17T07:05:47+00:00 +# timestamp: 2024-06-21T03:13:24+00:00 from __future__ import annotations @@ -1140,11 +1140,6 @@ class PatchToolRequest(BaseModel): class Execution(BaseModel): id: UUID task_id: UUID - created_at: UUID - arguments: Dict[str, Any] - """ - JSON Schema of parameters - """ status: Annotated[ str, Field(pattern="^(queued|starting|running|awaiting_input|succeeded|failed)$"), @@ -1152,6 +1147,14 @@ class Execution(BaseModel): """ Execution Status """ + arguments: Dict[str, Any] + """ + JSON of parameters + """ + user_id: UUID | None = None + session_id: UUID | None = None + created_at: AwareDatetime + updated_at: AwareDatetime class ExecutionTransition(BaseModel): @@ -1259,4 +1262,5 @@ class Task(BaseModel): ID of the Task """ created_at: AwareDatetime + updated_at: AwareDatetime | None = None agent_id: UUID diff --git a/agents-api/agents_api/common/protocol/tasks.py b/agents-api/agents_api/common/protocol/tasks.py index 298a365f8..991497c00 100644 --- a/agents-api/agents_api/common/protocol/tasks.py +++ b/agents-api/agents_api/common/protocol/tasks.py @@ -4,6 +4,11 @@ from pydantic import BaseModel, Field, UUID4, computed_field from ...autogen.openapi_model import ( + User, + Agent, + Session, + Tool, + FunctionDef, PromptWorkflowStep, EvaluateWorkflowStep, YieldWorkflowStep, @@ -14,6 +19,9 @@ Execution, ) +from ...models.execution.get_execution_input import get_execution_input_query +from ..utils.cozo import uuid_int_list_to_uuid4 + WorkflowStep = ( PromptWorkflowStep | EvaluateWorkflowStep @@ -53,6 +61,24 @@ class TaskSpec(BaseModel): class TaskProtocol(SerializableTask): + @classmethod + def from_cozo_data(cls, task_data: dict[str, Any]) -> "SerializableTask": + + workflows = task_data.pop("workflows") + assert len(workflows) > 0 + + main_wf_idx, main_wf = next( + (i, wf) for i, wf in enumerate(workflows) if wf["name"] == "main" + ) + + task_data["main"] = main_wf["steps"] + workflows.pop(main_wf_idx) + + for workflow in workflows: + task_data[workflow["name"]] = workflow["steps"] + + return cls(**task_data) + @computed_field @property def spec(self) -> TaskSpec: @@ -79,17 +105,59 @@ def spec(self) -> TaskSpec: ) -# FIXME: Enable all of these class ExecutionInput(BaseModel): developer_id: UUID4 execution: Execution task: TaskProtocol - # agent: Agent - # user: User | None - # session: Session | None - # tools: list[Tool] + agent: Agent + user: User | None + session: Session | None + tools: list[Tool] arguments: dict[str, Any] + @classmethod + def fetch( + cls, *, developer_id: UUID4, task_id: UUID4, execution_id: UUID4, client: Any + ) -> "ExecutionInput": + [data] = get_execution_input_query( + task_id=task_id, + execution_id=execution_id, + client=client, + ).to_dict(orient="records") + + # FIXME: Need to manually convert id from list of int to UUID4 + # because cozo has a bug with UUID4 + # See: https://github.com/cozodb/cozo/issues/269 + for kind in ["task", "execution", "agent", "user", "session"]: + if not data[kind]: + continue + + for key in data[kind]: + if key == "id" or key.endswith("_id") and data[kind][key] is not None: + data[kind][key] = uuid_int_list_to_uuid4(data[kind][key]) + + agent = Agent(**data["agent"]) + task = TaskProtocol.from_cozo_data(data["task"]) + execution = Execution(**data["execution"]) + user = User(**data["user"]) if data["user"] else None + session = Session(**data["session"]) if data["session"] else None + tools = [ + Tool(type="function", id=function["id"], function=FunctionDef(**function)) + for function in data["tools"] + ] + arguments = execution.arguments + + return cls( + developer_id=developer_id, + execution=execution, + task=task, + agent=agent, + user=user, + session=session, + tools=tools, + arguments=arguments, + ) + class StepContext(ExecutionInput): definition: WorkflowStep diff --git a/agents-api/agents_api/common/utils/cozo.py b/agents-api/agents_api/common/utils/cozo.py index 66f2481a7..67c98b924 100644 --- a/agents-api/agents_api/common/utils/cozo.py +++ b/agents-api/agents_api/common/utils/cozo.py @@ -3,6 +3,7 @@ """This module provides utility functions for interacting with the Cozo API client, including data mutation processes.""" from types import SimpleNamespace +from uuid import UUID from pycozo import Client @@ -17,3 +18,7 @@ cozo_process_mutate_data = _fake_client._process_mutate_data = lambda data: ( Client._process_mutate_data(_fake_client, data) ) + +uuid_int_list_to_uuid4 = lambda data: UUID( + bytes=b"".join([i.to_bytes(1, "big") for i in data]) +) diff --git a/agents-api/agents_api/models/execution/create_execution.py b/agents-api/agents_api/models/execution/create_execution.py index 20f6f8504..751a731b3 100644 --- a/agents-api/agents_api/models/execution/create_execution.py +++ b/agents-api/agents_api/models/execution/create_execution.py @@ -13,6 +13,7 @@ def create_execution_query( agent_id: UUID, task_id: UUID, execution_id: UUID, + session_id: UUID | None = None, status: Literal[ "queued", "starting", "running", "awaiting_input", "succeeded", "failed" ] = "queued", @@ -22,16 +23,17 @@ def create_execution_query( query = """ { - ?[task_id, execution_id, status, arguments] <- [[ - to_uuid($task_id), - to_uuid($execution_id), - $status, - $arguments - ]] + ?[task_id, execution_id, session_id, status, arguments] := + task_id = to_uuid($task_id), + execution_id = to_uuid($execution_id), + session_id = if(is_null($session_id), null, to_uuid($session_id)), + status = $status, + arguments = $arguments :insert executions { task_id, execution_id, + session_id, status, arguments } @@ -42,6 +44,7 @@ def create_execution_query( { "task_id": str(task_id), "execution_id": str(execution_id), + "session_id": str(session_id) if session_id is not None else None, "status": status, "arguments": arguments, }, diff --git a/agents-api/agents_api/models/execution/get_execution.py b/agents-api/agents_api/models/execution/get_execution.py index 1870a878f..0c9902c66 100644 --- a/agents-api/agents_api/models/execution/get_execution.py +++ b/agents-api/agents_api/models/execution/get_execution.py @@ -13,11 +13,12 @@ def get_execution_query( ) -> tuple[str, dict]: query = """ { - ?[status, arguments, created_at, updated_at] := *executions { + ?[status, arguments, session_id, created_at, updated_at] := *executions { task_id: to_uuid($task_id), execution_id: to_uuid($execution_id), status, arguments, + session_id, created_at, updated_at, } diff --git a/agents-api/agents_api/models/execution/get_execution_input.py b/agents-api/agents_api/models/execution/get_execution_input.py new file mode 100644 index 000000000..f07871a8e --- /dev/null +++ b/agents-api/agents_api/models/execution/get_execution_input.py @@ -0,0 +1,322 @@ +from uuid import UUID + +from ..utils import cozo_query + +from beartype import beartype + + +@cozo_query +@beartype +def get_execution_input_query( + task_id: UUID, + execution_id: UUID, +) -> tuple[str, dict]: + query = """ +{ + ?[task_id, execution_id, status, arguments, session_id, created_at, updated_at] := *executions { + task_id, + execution_id, + status, + arguments, + session_id, + created_at, + updated_at, + }, + task_id = to_uuid($task_id), + execution_id = to_uuid($execution_id), + + :create _execution { + task_id, + execution_id, + created_at, + updated_at, + arguments, + session_id, + status, + } +} +{ + ?[task_id, agent_id, name, description, input_schema, tools_available, workflows, updated_at, created_at] := *tasks { + task_id, + agent_id, + name, + description, + input_schema, + tools_available, + workflows, + created_at, + updated_at_ms, + }, updated_at = to_int(updated_at_ms) / 1000, + task_id = to_uuid($task_id), + + :create _task { + task_id, + agent_id, + name, + description, + input_schema, + tools_available, + workflows, + created_at, + updated_at, + } +} +{ + ?[tool_id, name, description, parameters, created_at, updated_at] := + *_task { agent_id }, + *agent_functions { + agent_id, + tool_id, + name, + description, + parameters, + created_at, + updated_at, + } + + :create _tools { + tool_id, + name, + description, + parameters, + created_at, + updated_at, + } +} + +{ + ?[agent_id, name, about, default_settings, model, metadata, instructions, created_at, updated_at] := + *_task { agent_id }, + *agents { + agent_id, + name, + about, + model, + metadata, + instructions, + created_at, + updated_at, + }, + *agent_default_settings { + agent_id, + frequency_penalty, + presence_penalty, + length_penalty, + repetition_penalty, + top_p, + temperature, + min_p, + }, + default_settings = { + "frequency_penalty": frequency_penalty, + "presence_penalty": presence_penalty, + "length_penalty": length_penalty, + "repetition_penalty": repetition_penalty, + "top_p": top_p, + "temperature": temperature, + "min_p": min_p, + } + + :create _agent { + agent_id, + name, + about, + default_settings, + model, + metadata, + instructions, + created_at, + updated_at, + } +} + +{ + ?[session_id, user_id, situation, summary, metadata, created_at, updated_at] := + *_task { agent_id }, + *session_lookup { + agent_id, + user_id, + session_id, + }, + *sessions { + session_id, + situation, + summary, + metadata, + created_at, + updated_at, + } + + :create _session { + session_id, + user_id, + situation, + summary, + metadata, + created_at, + updated_at, + } +} + +{ + ?[user_id, name, about, metadata, created_at, updated_at] := + *_session { user_id }, + *users { + user_id, + name, + about, + metadata, + created_at, + updated_at, + } + + :create _user { + user_id, + name, + about, + metadata, + created_at, + updated_at, + } +} + +{ + collected_tools[collect(tool)] := + *_tools { + tool_id, + name: tool_name, + description: tool_description, + parameters: tool_parameters, + created_at: tool_created_at, + updated_at: tool_updated_at, + }, + tool = { + "id": tool_id, + "name": tool_name, + "description": tool_description, + "parameters": tool_parameters, + "created_at": tool_created_at, + "updated_at": tool_updated_at, + } + + found_users[collect(user)] := + *_user { + user_id, + name, + about, + metadata, + created_at, + updated_at, + }, + user = { + "id": user_id, + "name": name, + "about": about, + "metadata": metadata, + "created_at": created_at, + "updated_at": updated_at, + } + + found_sessions[collect(session)] := + found_users[_users], + *_agent { agent_id }, + *_session { + session_id, + situation, + summary, + metadata, + created_at, + updated_at, + }, + session = { + "id": session_id, + "agent_id": agent_id, + "user_id": if(to_bool(_users), _users->0->"user_id"), + "situation": situation, + "summary": summary, + "metadata": metadata, + "created_at": created_at, + "updated_at": updated_at, + } + + ?[execution, task, agent, user, session, tools] := + collected_tools[tools], + found_sessions[_sessions], + found_users[_users], + session = _sessions->0, + user = _users->0, + + *_agent { + agent_id, + name: agent_name, + about: agent_about, + default_settings: agent_default_settings, + model: agent_model, + metadata: agent_metadata, + instructions: agent_instructions, + created_at: agent_created_at, + updated_at: agent_updated_at, + }, + agent = { + "id": agent_id, + "name": agent_name, + "about": agent_about, + "default_settings": agent_default_settings, + "model": agent_model, + "metadata": agent_metadata, + "instructions": agent_instructions, + "created_at": agent_created_at, + "updated_at": agent_updated_at, + }, + + *_task { + task_id, + name: task_name, + description: task_description, + input_schema: task_input_schema, + tools_available: task_tools_available, + workflows: task_workflows, + created_at: task_created_at, + updated_at: task_updated_at, + }, + task = { + "id": task_id, + "agent_id": agent_id, + "name": task_name, + "description": task_description, + "input_schema": task_input_schema, + "tools_available": task_tools_available, + "workflows": task_workflows, + "created_at": task_created_at, + "updated_at": task_updated_at, + }, + + *_execution { + execution_id, + created_at: execution_created_at, + updated_at: execution_updated_at, + arguments: execution_arguments, + session_id: execution_session_id, + status: execution_status, + }, + execution = { + "id": execution_id, + "task_id": task_id, + "user_id": if(to_bool(_users), _users->0->"user_id"), + "created_at": execution_created_at, + "updated_at": execution_updated_at, + "arguments": execution_arguments, + "session_id": execution_session_id, + "status": execution_status, + }, + +} + +""" + return ( + query, + { + "task_id": str(task_id), + "execution_id": str(execution_id), + }, + ) diff --git a/agents-api/agents_api/models/execution/list_executions.py b/agents-api/agents_api/models/execution/list_executions.py index 058b79290..f11c99319 100644 --- a/agents-api/agents_api/models/execution/list_executions.py +++ b/agents-api/agents_api/models/execution/list_executions.py @@ -8,28 +8,30 @@ @cozo_query @beartype def list_task_executions_query( - agent_id: UUID, task_id: UUID, developer_id: UUID + agent_id: UUID, task_id: UUID, developer_id: UUID, limit: int = 100, offset: int = 0 ) -> tuple[str, dict]: # TODO: Check for agent in developer ID; Assert whether dev can access agent and by relation the task - query = """ -{ + query = f""" +{{ ?[ execution_id, status, arguments, + session_id, created_at, updated_at, - ] := *executions { + ] := *executions {{ task_id: to_uuid($task_id), execution_id, status, arguments, + session_id, created_at, updated_at, - } - :limit 10 - :offset 0 + }} + :limit {limit} + :offset {offset} -} +}} """ return (query, {"task_id": str(task_id)}) diff --git a/agents-api/agents_api/models/execution/test_execution_queries.py b/agents-api/agents_api/models/execution/test_execution_queries.py index cf66511c6..f2a56033b 100644 --- a/agents-api/agents_api/models/execution/test_execution_queries.py +++ b/agents-api/agents_api/models/execution/test_execution_queries.py @@ -5,9 +5,12 @@ from pycozo import Client from ward import test +from ..agent.create_agent import create_agent_query +from ..task.create_task import create_task_query from .create_execution import create_execution_query -from .get_execution_status import get_execution_status_query from .get_execution import get_execution_query +from .get_execution_status import get_execution_status_query +from .get_execution_input import get_execution_input_query from .list_executions import list_task_executions_query from .update_execution_status import update_execution_status_query from .create_execution_transition import create_execution_transition_query @@ -15,6 +18,8 @@ from .list_execution_transitions import list_execution_transitions_query from .update_execution_transition import update_execution_transition_query +from ...common.protocol.tasks import ExecutionInput + def cozo_client(migrations_dir: str = "./migrations"): # Create a new client for each test @@ -45,6 +50,26 @@ def _(): ) +@test("model: create execution with session") +def _(): + client = cozo_client() + developer_id = uuid4() + agent_id = uuid4() + task_id = uuid4() + execution_id = uuid4() + session_id = uuid4() + + create_execution_query( + developer_id=developer_id, + agent_id=agent_id, + task_id=task_id, + execution_id=execution_id, + session_id=session_id, + arguments={"input": "test"}, + client=client, + ) + + @test("model: get execution") def _(): client = cozo_client() @@ -95,6 +120,101 @@ def _(): assert result["status"][0] == "queued" +@test("model: get execution input") +def _(): + client = cozo_client() + developer_id = uuid4() + agent_id = uuid4() + task_id = uuid4() + execution_id = uuid4() + + create_agent_query( + agent_id=agent_id, + developer_id=developer_id, + name="test", + about="test", + model="gpt-4", + metadata={"test": "test"}, + client=client, + ) + + create_task_query( + developer_id=developer_id, + agent_id=agent_id, + task_id=task_id, + name="test", + description="test", + input_schema={"test": "test"}, + tools_available=[], + workflows=[], + client=client, + ) + + create_execution_query( + developer_id=developer_id, + agent_id=agent_id, + task_id=task_id, + execution_id=execution_id, + arguments={"input": "test"}, + client=client, + ) + + result = get_execution_input_query( + task_id=task_id, execution_id=execution_id, client=client + ) + + assert len(result["execution"]) == 1 + + +@test("model: fetch execution input") +def _(): + client = cozo_client() + developer_id = uuid4() + agent_id = uuid4() + task_id = uuid4() + execution_id = uuid4() + + create_agent_query( + agent_id=agent_id, + developer_id=developer_id, + name="test", + about="test", + model="gpt-4", + metadata={"test": "test"}, + client=client, + ) + + create_task_query( + developer_id=developer_id, + agent_id=agent_id, + task_id=task_id, + name="test", + description="test", + input_schema={"test": "test"}, + tools_available=[], + workflows=[{"name": "main", "steps": []}], + client=client, + ) + + create_execution_query( + developer_id=developer_id, + agent_id=agent_id, + task_id=task_id, + execution_id=execution_id, + arguments={"input": "test"}, + client=client, + ) + + result = ExecutionInput.fetch( + developer_id=developer_id, + task_id=task_id, + execution_id=execution_id, + client=client, + ) + + assert result.execution.id == execution_id + + @test("model: list executions empty") def _(): client = cozo_client() @@ -171,10 +291,10 @@ def _(): developer_id=developer_id, execution_id=execution_id, transition_id=transition_id, - type_="step", + type="step", from_=("test", 1), to=("test", 2), - output={"input": "test"}, + outputs={"input": "test"}, client=client, ) @@ -190,10 +310,10 @@ def _(): developer_id=developer_id, execution_id=execution_id, transition_id=transition_id, - type_="step", + type="step", from_=("test", 1), to=("test", 2), - output={"input": "test"}, + outputs={"input": "test"}, client=client, ) @@ -215,10 +335,10 @@ def _(): developer_id=developer_id, execution_id=execution_id, transition_id=transition_id, - type_="step", + type="step", from_=("test", 1), to=("test", 2), - output={"input": "test"}, + outputs={"input": "test"}, client=client, ) @@ -238,10 +358,10 @@ def _(): developer_id=developer_id, execution_id=execution_id, transition_id=transition_id, - type_="step", + type="step", from_=("test", 1), to=("test", 2), - output={"input": "test"}, + outputs={"input": "test"}, client=client, ) diff --git a/agents-api/agents_api/routers/tasks/routers.py b/agents-api/agents_api/routers/tasks/routers.py index 3f189f660..68f3e09b6 100644 --- a/agents-api/agents_api/routers/tasks/routers.py +++ b/agents-api/agents_api/routers/tasks/routers.py @@ -70,6 +70,10 @@ async def create_task( # TODO: Do thorough validation of the task spec + workflows = [ + {"name": "main", "steps": request.main}, + ] + [{"name": name, "steps": steps} for name, steps in request.model_extra] + resp: pd.DataFrame = create_task_query( agent_id=agent_id, task_id=task_id, @@ -78,7 +82,7 @@ async def create_task( description=request.description, input_schema=request.input_schema, tools_available=request.tools_available, - workflows=request.workflows, + workflows=workflows, ) return ResourceCreatedResponse( id=resp["task_id"][0], created_at=resp["created_at"][0] diff --git a/agents-api/migrations/migrate_1716939839_task_relations.py b/agents-api/migrations/migrate_1716939839_task_relations.py index abe436687..431ec8fc9 100644 --- a/agents-api/migrations/migrate_1716939839_task_relations.py +++ b/agents-api/migrations/migrate_1716939839_task_relations.py @@ -40,6 +40,7 @@ def run(client, queries): # one of: "queued", "starting", "running", "awaiting_input", "succeeded", "failed" arguments: Json, + session_id: Uuid? default null, created_at: Float default now(), updated_at: Float default now(), } diff --git a/agents-api/poetry.lock b/agents-api/poetry.lock index 4ffc09e96..49e8cf233 100644 --- a/agents-api/poetry.lock +++ b/agents-api/poetry.lock @@ -782,19 +782,19 @@ develop = ["coverage", "invoke", "path.py", "pylint", "pytest (>=3.2)", "pytest- [[package]] name = "dask" -version = "2024.6.1" +version = "2024.6.2" description = "Parallel PyData with Task Scheduling" optional = false python-versions = ">=3.9" files = [ - {file = "dask-2024.6.1-py3-none-any.whl", hash = "sha256:3560c2cebd4ebfe3f51d0eaee51adc080a72f8a4d0c58ba97ded139c0fc158c5"}, - {file = "dask-2024.6.1.tar.gz", hash = "sha256:30f074860e9855cacbe67d7abe7fcd3c863d3f82e5469a0ef46d7512caeede07"}, + {file = "dask-2024.6.2-py3-none-any.whl", hash = "sha256:81b80ee015b2e057b93bb2d1bf13a866136e762e2b24bf54b6b621e8b86b7708"}, + {file = "dask-2024.6.2.tar.gz", hash = "sha256:d429d6b19e85fd1306ac37c188aaf99d03bbe69a6fe59d2b42882b2ac188686f"}, ] [package.dependencies] click = ">=8.1" cloudpickle = ">=1.5.0" -distributed = {version = "2024.6.1", optional = true, markers = "extra == \"distributed\""} +distributed = {version = "2024.6.2", optional = true, markers = "extra == \"distributed\""} fsspec = ">=2021.09.0" importlib-metadata = {version = ">=4.13.0", markers = "python_version < \"3.12\""} packaging = ">=20.0" @@ -807,7 +807,7 @@ array = ["numpy (>=1.21)"] complete = ["dask[array,dataframe,diagnostics,distributed]", "lz4 (>=4.3.2)", "pyarrow (>=7.0)", "pyarrow-hotfix"] dataframe = ["dask-expr (>=1.1,<1.2)", "dask[array]", "pandas (>=1.3)"] diagnostics = ["bokeh (>=2.4.2)", "jinja2 (>=2.10.3)"] -distributed = ["distributed (==2024.6.1)"] +distributed = ["distributed (==2024.6.2)"] test = ["pandas[test]", "pre-commit", "pytest", "pytest-cov", "pytest-rerunfailures", "pytest-timeout", "pytest-xdist"] [[package]] @@ -920,19 +920,19 @@ files = [ [[package]] name = "distributed" -version = "2024.6.1" +version = "2024.6.2" description = "Distributed scheduler for Dask" optional = false python-versions = ">=3.9" files = [ - {file = "distributed-2024.6.1-py3-none-any.whl", hash = "sha256:801989bb401f4657e48d3e7bf2efab6f3954e33f0a2a39bf49f30a4e1d2a0455"}, - {file = "distributed-2024.6.1.tar.gz", hash = "sha256:785485b647648268c8e37cc6267136068e58d3ab3b0250fb56d5d03b0bc118a7"}, + {file = "distributed-2024.6.2-py3-none-any.whl", hash = "sha256:0c1f8ccb1da71273ad8c53c598147dc37e60bef17142fd466cb72618a521880f"}, + {file = "distributed-2024.6.2.tar.gz", hash = "sha256:bb43b766ada860b163956607c80f99871d823c645e326c2b5e35f020351adc55"}, ] [package.dependencies] click = ">=8.0" cloudpickle = ">=1.5.0" -dask = "2024.6.1" +dask = "2024.6.2" jinja2 = ">=2.10.3" locket = ">=1.0.0" msgpack = ">=1.0.0" @@ -990,13 +990,13 @@ files = [ [[package]] name = "email-validator" -version = "2.1.2" +version = "2.2.0" description = "A robust email address syntax and deliverability validation library." optional = false python-versions = ">=3.8" files = [ - {file = "email_validator-2.1.2-py3-none-any.whl", hash = "sha256:d89f6324e13b1e39889eab7f9ca2f91dc9aebb6fa50a6d8bd4329ab50f251115"}, - {file = "email_validator-2.1.2.tar.gz", hash = "sha256:14c0f3d343c4beda37400421b39fa411bbe33a75df20825df73ad53e06a9f04c"}, + {file = "email_validator-2.2.0-py3-none-any.whl", hash = "sha256:561977c2d73ce3611850a06fa56b414621e0c8faa9d66f2611407d87465da631"}, + {file = "email_validator-2.2.0.tar.gz", hash = "sha256:cb690f344c617a714f22e66ae771445a1ceb46821152df8e165c5f9a364582b7"}, ] [package.dependencies] @@ -1397,13 +1397,13 @@ xai = ["tensorflow (>=2.3.0,<3.0.0dev)"] [[package]] name = "google-cloud-bigquery" -version = "3.24.0" +version = "3.25.0" description = "Google BigQuery API client library" optional = false python-versions = ">=3.7" files = [ - {file = "google-cloud-bigquery-3.24.0.tar.gz", hash = "sha256:e95e6f6e0aa32e6c453d44e2b3298931fdd7947c309ea329a31b6ff1f939e17e"}, - {file = "google_cloud_bigquery-3.24.0-py2.py3-none-any.whl", hash = "sha256:bc08323ce99dee4e811b7c3d0cde8929f5bf0b1aeaed6bcd75fc89796dd87652"}, + {file = "google-cloud-bigquery-3.25.0.tar.gz", hash = "sha256:5b2aff3205a854481117436836ae1403f11f2594e6810a98886afd57eda28509"}, + {file = "google_cloud_bigquery-3.25.0-py2.py3-none-any.whl", hash = "sha256:7f0c371bc74d2a7fb74dacbc00ac0f90c8c2bec2289b51dd6685a275873b1ce9"}, ] [package.dependencies] @@ -1889,22 +1889,22 @@ networkx = ">=2" [[package]] name = "importlib-metadata" -version = "7.1.0" +version = "7.2.0" description = "Read metadata from Python packages" optional = false python-versions = ">=3.8" files = [ - {file = "importlib_metadata-7.1.0-py3-none-any.whl", hash = "sha256:30962b96c0c223483ed6cc7280e7f0199feb01a0e40cfae4d4450fc6fab1f570"}, - {file = "importlib_metadata-7.1.0.tar.gz", hash = "sha256:b78938b926ee8d5f020fc4772d487045805a55ddbad2ecf21c6d60938dc7fcd2"}, + {file = "importlib_metadata-7.2.0-py3-none-any.whl", hash = "sha256:04e4aad329b8b948a5711d394fa8759cb80f009225441b4f2a02bd4d8e5f426c"}, + {file = "importlib_metadata-7.2.0.tar.gz", hash = "sha256:3ff4519071ed42740522d494d04819b666541b9752c43012f85afb2cc220fcc6"}, ] [package.dependencies] zipp = ">=0.5" [package.extras] -docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] perf = ["ipython"] -testing = ["flufl.flake8", "importlib-resources (>=1.3)", "jaraco.test (>=5.4)", "packaging", "pyfakefs", "pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy", "pytest-perf (>=0.9.2)", "pytest-ruff (>=0.2.1)"] +test = ["flufl.flake8", "importlib-resources (>=1.3)", "jaraco.test (>=5.4)", "packaging", "pyfakefs", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy", "pytest-perf (>=0.9.2)", "pytest-ruff (>=0.2.1)"] [[package]] name = "inflect" @@ -2215,13 +2215,13 @@ typing-extensions = ">=4.0.0,<5.0.0" [[package]] name = "jupyter-ai" -version = "2.17.0" +version = "2.18.0" description = "A generative AI extension for JupyterLab" optional = false python-versions = ">=3.8" files = [ - {file = "jupyter_ai-2.17.0-py3-none-any.whl", hash = "sha256:34dc6c936db46b050c9996d015ee965a81f29ba20633d1ced6cbfcd336e4889d"}, - {file = "jupyter_ai-2.17.0.tar.gz", hash = "sha256:1aef735759a4591d93360f3a629b5a46f0e28d8b31a9c2a3deae69d22e9854f1"}, + {file = "jupyter_ai-2.18.0-py3-none-any.whl", hash = "sha256:6b7997f4f670b6f101f146c70b735542e61cc335bbbed0993d801bd5c5303258"}, + {file = "jupyter_ai-2.18.0.tar.gz", hash = "sha256:f90cd1e43e0f570d33b721e44a538c8399f5f49c7a0ab4b299586687ed1451a8"}, ] [package.dependencies] @@ -2243,13 +2243,13 @@ test = ["coverage", "jupyter-server[test] (>=1.6,<3)", "pytest", "pytest-asyncio [[package]] name = "jupyter-ai-magics" -version = "2.17.0" +version = "2.18.0" description = "Jupyter AI magics Python package. Not published on NPM." optional = false python-versions = ">=3.8" files = [ - {file = "jupyter_ai_magics-2.17.0-py3-none-any.whl", hash = "sha256:dd241fb9bc08946e8476d9dfe6b20765ed60794be91264360d9021ef0fbb5184"}, - {file = "jupyter_ai_magics-2.17.0.tar.gz", hash = "sha256:aa7e70e904dbc777252a90215cce666e96a06bff932706c6c7b102f42850c2fa"}, + {file = "jupyter_ai_magics-2.18.0-py3-none-any.whl", hash = "sha256:c32ef167ff8b9abac1060bc4f8fda011a5adc71da8b0e119bf7be12b5e57afe9"}, + {file = "jupyter_ai_magics-2.18.0.tar.gz", hash = "sha256:95fb34b95a2ac7c5249d4052a598f9c0d2b70b0d189858a980ff2c74eaa15e01"}, ] [package.dependencies] @@ -2605,13 +2605,13 @@ extended-testing = ["beautifulsoup4 (>=4.12.3,<5.0.0)", "lxml (>=4.9.3,<6.0)"] [[package]] name = "langsmith" -version = "0.1.80" +version = "0.1.81" description = "Client library to connect to the LangSmith LLM Tracing and Evaluation Platform." optional = false python-versions = "<4.0,>=3.8.1" files = [ - {file = "langsmith-0.1.80-py3-none-any.whl", hash = "sha256:951fc29576b52afd8378d41f6db343090fea863e3620f0ca97e83b221f93c94d"}, - {file = "langsmith-0.1.80.tar.gz", hash = "sha256:a29b1dde27612308beee424f1388ad844c8e7e375bf2ac8bdf4da174013f279d"}, + {file = "langsmith-0.1.81-py3-none-any.whl", hash = "sha256:3251d823225eef23ee541980b9d9e506367eabbb7f985a086b5d09e8f78ba7e9"}, + {file = "langsmith-0.1.81.tar.gz", hash = "sha256:585ef3a2251380bd2843a664c9a28da4a7d28432e3ee8bcebf291ffb8e1f0af0"}, ] [package.dependencies] @@ -3287,13 +3287,13 @@ files = [ [[package]] name = "openai" -version = "1.35.0" +version = "1.35.3" description = "The official Python library for the openai API" optional = false python-versions = ">=3.7.1" files = [ - {file = "openai-1.35.0-py3-none-any.whl", hash = "sha256:1c1c19ddc8c1238aee501a12d5100250e59ff49f24148f699a49664945e28fc0"}, - {file = "openai-1.35.0.tar.gz", hash = "sha256:c420ce141a5ca4f243b3249ce9e2587c93399321e77d1661be302fd5b9db1854"}, + {file = "openai-1.35.3-py3-none-any.whl", hash = "sha256:7b26544cef80f125431c073ffab3811d2421fbb9e30d3bd5c2436aba00b042d5"}, + {file = "openai-1.35.3.tar.gz", hash = "sha256:d6177087f150b381d49499be782d764213fdf638d391b29ca692b84dd675a389"}, ] [package.dependencies] @@ -4115,6 +4115,7 @@ files = [ {file = "PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34"}, {file = "PyYAML-6.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28"}, {file = "PyYAML-6.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9"}, + {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a08c6f0fe150303c1c6b71ebcd7213c2858041a7e01975da3a99aed1e7a378ef"}, {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0"}, {file = "PyYAML-6.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4"}, {file = "PyYAML-6.0.1-cp312-cp312-win32.whl", hash = "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54"}, diff --git a/fern/fern.config.json b/fern/fern.config.json index 6a1da249a..35afd3157 100644 --- a/fern/fern.config.json +++ b/fern/fern.config.json @@ -1,4 +1,4 @@ { "organization": "julep", - "version": "0.29.0" + "version": "0.30.10" } \ No newline at end of file diff --git a/fern/generators.yml b/fern/generators.yml index 446c3556b..8d3a40112 100644 --- a/fern/generators.yml +++ b/fern/generators.yml @@ -12,7 +12,7 @@ groups: location: local-file-system path: ../sdks/python/julep/api - name: fernapi/fern-postman - version: 0.1.0 + version: 0.1.1 output: location: local-file-system path: ../sdks/postman diff --git a/mock_openapi.yaml b/mock_openapi.yaml index a22060e29..884d426fd 100644 --- a/mock_openapi.yaml +++ b/mock_openapi.yaml @@ -1,5 +1,4 @@ openapi: 3.0.3 - info: title: Julep Agents API description: Julep AI agents API allows creating agents with long-term memory easily. @@ -12,27 +11,21 @@ info: name: Apache 2.0 url: http://www.apache.org/licenses/LICENSE-2.0.html version: 1.0.0 - externalDocs: description: Find out more about spec url: https://docs.julep.ai - servers: - url: https://api-alpha.julep.ai/api description: '' variables: {} - tags: - name: Default description: '' - externalDocs: url: https://docs.julep.ai description: https://docs.julep.ai - paths: /api/sessions: - post: summary: Create a new session description: Create a session between an agent and a user @@ -55,7 +48,6 @@ paths: description: Session successfully created security: - api-key: [] - get: summary: List sessions description: >- @@ -126,7 +118,6 @@ paths: security: - api-key: [] /api/users: - post: summary: Create a new user description: Create a new user @@ -148,7 +139,6 @@ paths: description: User successfully created security: - api-key: [] - get: summary: List users description: >- @@ -217,7 +207,6 @@ paths: security: - api-key: [] /api/agents: - post: summary: Create a new agent description: Create a new agent @@ -239,7 +228,6 @@ paths: description: Agent successfully created security: - api-key: [] - get: summary: List agents description: >- @@ -309,7 +297,6 @@ paths: security: - api-key: [] /api/sessions/{session_id}: - get: summary: Get details of the session description: '' @@ -324,7 +311,6 @@ paths: $ref: '#/components/schemas/Session' security: - api-key: [] - delete: summary: Delete session description: '' @@ -339,7 +325,6 @@ paths: $ref: '#/components/schemas/ResourceDeletedResponse' security: - api-key: [] - put: summary: Update session parameters description: '' @@ -359,7 +344,6 @@ paths: $ref: '#/components/schemas/ResourceUpdatedResponse' security: - api-key: [] - parameters: - in: path name: session_id @@ -368,7 +352,6 @@ paths: type: string format: uuid required: true - patch: summary: Patch Session parameters (merge instead of replace) description: '' @@ -391,7 +374,6 @@ paths: security: - api-key: [] /api/sessions/{session_id}/suggestions: - get: summary: Get autogenerated suggestions for session user and agent description: Sorted (created_at descending) @@ -427,7 +409,6 @@ paths: $ref: '#/components/schemas/Suggestion' security: - api-key: [] - parameters: - in: path name: session_id @@ -437,7 +418,6 @@ paths: format: uuid required: true /api/sessions/{session_id}/history: - get: summary: Get all messages in a session description: Sorted (created_at ascending) @@ -473,7 +453,6 @@ paths: $ref: '#/components/schemas/ChatMLMessage' security: - api-key: [] - parameters: - in: path name: session_id @@ -482,7 +461,6 @@ paths: type: string format: uuid required: true - delete: summary: Delete session history (does NOT delete related memories) description: '' @@ -498,7 +476,6 @@ paths: security: - api-key: [] /api/sessions/{session_id}/chat: - parameters: - in: path name: session_id @@ -507,7 +484,6 @@ paths: type: string format: uuid required: true - post: summary: Interact with the session description: '' @@ -537,7 +513,6 @@ paths: security: - api-key: [] /api/agents/{agent_id}/memories: - get: summary: Get memories of the agent description: Sorted (created_at descending) @@ -580,7 +555,6 @@ paths: $ref: '#/components/schemas/Memory' security: - api-key: [] - parameters: - in: path name: agent_id @@ -590,7 +564,6 @@ paths: format: uuid required: true /api/users/{user_id}: - get: summary: Get details of the user description: '' @@ -605,7 +578,6 @@ paths: $ref: '#/components/schemas/User' security: - api-key: [] - delete: summary: Delete user description: '' @@ -620,7 +592,6 @@ paths: $ref: '#/components/schemas/ResourceDeletedResponse' security: - api-key: [] - put: summary: Update user parameters description: '' @@ -640,7 +611,6 @@ paths: $ref: '#/components/schemas/ResourceUpdatedResponse' security: - api-key: [] - parameters: - in: path name: user_id @@ -649,7 +619,6 @@ paths: type: string format: uuid required: true - patch: summary: Patch User parameters (merge instead of replace) description: '' @@ -672,7 +641,6 @@ paths: security: - api-key: [] /api/agents/{agent_id}: - get: summary: Get details of the agent description: '' @@ -687,7 +655,6 @@ paths: $ref: '#/components/schemas/Agent' security: - api-key: [] - delete: summary: Delete agent description: '' @@ -702,7 +669,6 @@ paths: $ref: '#/components/schemas/ResourceDeletedResponse' security: - api-key: [] - put: summary: Update agent parameters description: '' @@ -722,7 +688,6 @@ paths: $ref: '#/components/schemas/ResourceUpdatedResponse' security: - api-key: [] - parameters: - in: path name: agent_id @@ -731,7 +696,6 @@ paths: type: string format: uuid required: true - patch: summary: Patch Agent parameters (merge instead of replace) description: '' @@ -754,7 +718,6 @@ paths: security: - api-key: [] /api/agents/{agent_id}/docs: - get: summary: Get docs of the agent description: Sorted (created_at descending) @@ -814,7 +777,6 @@ paths: $ref: '#/components/schemas/Doc' security: - api-key: [] - parameters: - in: path name: agent_id @@ -823,7 +785,6 @@ paths: type: string format: uuid required: true - post: summary: Create doc of the agent description: '' @@ -844,7 +805,6 @@ paths: security: - api-key: [] /api/users/{user_id}/docs: - get: summary: Get docs of the user description: Sorted (created_at descending) @@ -904,7 +864,6 @@ paths: $ref: '#/components/schemas/Doc' security: - api-key: [] - parameters: - in: path name: user_id @@ -913,7 +872,6 @@ paths: type: string format: uuid required: true - post: summary: Create doc of the user description: '' @@ -934,7 +892,6 @@ paths: security: - api-key: [] /api/users/{user_id}/docs/{doc_id}: - parameters: - in: path name: user_id @@ -950,7 +907,6 @@ paths: type: string format: uuid required: true - delete: summary: Delete doc by id description: '' @@ -966,7 +922,6 @@ paths: security: - api-key: [] /api/agents/{agent_id}/docs/{doc_id}: - parameters: - in: path name: agent_id @@ -982,7 +937,6 @@ paths: type: string format: uuid required: true - delete: summary: Delete doc by id description: '' @@ -998,7 +952,6 @@ paths: security: - api-key: [] /api/agents/{agent_id}/memories/{memory_id}: - delete: summary: Delete memory of the agent by id description: '' @@ -1013,7 +966,6 @@ paths: $ref: '#/components/schemas/ResourceDeletedResponse' security: - api-key: [] - parameters: - in: path name: agent_id @@ -1030,7 +982,6 @@ paths: format: uuid required: true /api/agents/{agent_id}/tools: - get: summary: Get tools of the agent description: Sorted (created_at descending) @@ -1063,7 +1014,6 @@ paths: $ref: '#/components/schemas/Tool' security: - api-key: [] - parameters: - in: path name: agent_id @@ -1072,7 +1022,6 @@ paths: type: string format: uuid required: true - post: summary: Create tool for the agent description: '' @@ -1093,7 +1042,6 @@ paths: security: - api-key: [] /api/agents/{agent_id}/tools/{tool_id}: - parameters: - in: path name: agent_id @@ -1109,7 +1057,6 @@ paths: type: string format: uuid required: true - delete: summary: Delete tool by id description: '' @@ -1124,7 +1071,6 @@ paths: $ref: '#/components/schemas/ResourceDeletedResponse' security: - api-key: [] - put: summary: Update agent tool definition description: '' @@ -1144,7 +1090,6 @@ paths: $ref: '#/components/schemas/ResourceUpdatedResponse' security: - api-key: [] - patch: summary: Patch Agent tool parameters (merge instead of replace) description: '' @@ -1167,7 +1112,6 @@ paths: security: - api-key: [] /api/jobs/{job_id}: - get: summary: Get status of the job description: '' @@ -1182,7 +1126,6 @@ paths: $ref: '#/components/schemas/JobStatus' security: - api-key: [] - parameters: - in: path name: job_id @@ -1192,7 +1135,6 @@ paths: format: uuid required: true /api/agents/{agent_id}/tasks: - get: summary: Get a list of tasks description: '' @@ -1209,7 +1151,6 @@ paths: $ref: '#/components/schemas/Task' security: - api-key: [] - post: summary: Create a Task description: '' @@ -1229,7 +1170,6 @@ paths: $ref: '#/components/schemas/ResourceCreatedResponse' security: - api-key: [] - parameters: - in: path name: agent_id @@ -1238,7 +1178,6 @@ paths: type: string required: true /api/agents/{agent_id}/tasks/{task_id}/executions: - post: summary: Create (or start) an execution of a Task description: '' @@ -1258,7 +1197,6 @@ paths: $ref: '#/components/schemas/ResourceCreatedResponse' security: - api-key: [] - get: summary: List Executions of a Task description: '' @@ -1275,7 +1213,6 @@ paths: $ref: '#/components/schemas/Execution' security: &ref_2 - api-key: [] - parameters: - in: path name: agent_id @@ -1290,7 +1227,6 @@ paths: format: uuid required: true /api/agents/{agent_id}/tasks/{task_id}: - get: summary: Get a Task by ID description: '' @@ -1305,7 +1241,6 @@ paths: $ref: '#/components/schemas/Task' security: - api-key: [] - parameters: - in: path name: agent_id @@ -1320,7 +1255,6 @@ paths: format: uuid required: true /api/executions/{execution_id}/transitions/{transition_id}: - get: description: '' operationId: GetExecutionTransition @@ -1335,7 +1269,6 @@ paths: security: &ref_5 - api-key: [] summary: Get an Execution Transition - parameters: - &ref_6 in: path @@ -1351,7 +1284,6 @@ paths: schema: type: string required: true - put: summary: '' description: '' @@ -1379,14 +1311,12 @@ paths: security: - api-key: [] /api/tasks/{task_id}/executions/{execution_id}: - get: summary: Get Task Execution By ID description: '' operationId: GetTaskExecution responses: *ref_1 security: *ref_2 - parameters: - in: path name: task_id @@ -1399,7 +1329,6 @@ paths: schema: *ref_3 required: true /api/executions/{execution_id}/transitions/: - get: description: '' operationId: GetExecutionTransition @@ -1415,13 +1344,10 @@ paths: $ref: '#/components/schemas/ExecutionTransition' security: *ref_5 summary: List Transitions of an Execution - parameters: - *ref_6 - components: schemas: - User: $schema: http://json-schema.org/draft-04/schema# type: object @@ -1451,7 +1377,6 @@ components: description: (Optional) metadata required: - id - Agent: $schema: http://json-schema.org/draft-04/schema# type: object @@ -1498,13 +1423,11 @@ components: - name - id - model - FunctionParameters: type: object description: The parameters the functions accepts, described as a JSON Schema object. additionalProperties: true properties: {} - FunctionDef: type: object properties: @@ -1524,7 +1447,6 @@ components: required: - name - parameters - Tool: type: object properties: @@ -1548,7 +1470,6 @@ components: - type - function - id - Session: $schema: http://json-schema.org/draft-04/schema# type: object @@ -1598,7 +1519,6 @@ components: required: - id - agent_id - CreateUserRequest: $schema: http://json-schema.org/draft-04/schema# type: object @@ -1621,7 +1541,6 @@ components: properties: {} description: (Optional) metadata description: A valid request payload for creating a user - CreateSessionRequest: $schema: http://json-schema.org/draft-04/schema# type: object @@ -1654,7 +1573,6 @@ components: required: - agent_id description: A valid request payload for creating a session - CreateAgentRequest: $schema: http://json-schema.org/draft-04/schema# type: object @@ -1702,7 +1620,6 @@ components: required: - name description: A valid request payload for creating an agent - UpdateSessionRequest: $schema: http://json-schema.org/draft-04/schema# type: object @@ -1723,7 +1640,6 @@ components: description: A valid request payload for updating a session required: - situation - UpdateAgentRequest: $schema: http://json-schema.org/draft-04/schema# type: object @@ -1756,7 +1672,6 @@ components: required: - about - name - UpdateUserRequest: $schema: http://json-schema.org/draft-04/schema# type: object @@ -1775,7 +1690,6 @@ components: required: - about - name - Suggestion: $schema: http://json-schema.org/draft-04/schema# type: object @@ -1806,7 +1720,6 @@ components: - target - content - session_id - ChatMLMessage: $schema: http://json-schema.org/draft-04/schema# type: object @@ -1845,7 +1758,6 @@ components: - created_at - content - role - InputChatMLMessage: $schema: http://json-schema.org/draft-04/schema# type: object @@ -1879,7 +1791,6 @@ components: required: - content - role - ChatInputData: type: object properties: @@ -1908,7 +1819,6 @@ components: included in the request required: - messages - NamedToolChoice: type: object description: >- @@ -1931,7 +1841,6 @@ components: required: - type - function - ToolChoiceOption: description: > Controls which (if any) function is called by the model. @@ -1959,7 +1868,6 @@ components: - auto - $ref: '#/components/schemas/NamedToolChoice' type: string - FunctionCallOption: type: object description: > @@ -1971,7 +1879,6 @@ components: description: The name of the function to call. required: - name - CompletionUsage: type: object description: Usage statistics for the completion request. @@ -1989,7 +1896,6 @@ components: - prompt_tokens - completion_tokens - total_tokens - ChatResponse: type: object description: >- @@ -2042,7 +1948,6 @@ components: - finish_reason - id - doc_ids - Memory: $schema: http://json-schema.org/draft-04/schema# type: object @@ -2094,7 +1999,6 @@ components: - agent_id - user_id - entities - ChatSettings: type: object properties: @@ -2292,7 +2196,9 @@ components: - deterministic - code - multilingual - + model: + type: string + description: Model name AgentDefaultSettings: type: object properties: @@ -2384,13 +2290,11 @@ components: - deterministic - code - multilingual - ChatInput: allOf: - $ref: '#/components/schemas/ChatInputData' - $ref: '#/components/schemas/ChatSettings' - $ref: '#/components/schemas/MemoryAccessOptions' - Doc: type: object properties: @@ -2424,7 +2328,6 @@ components: - content - id - created_at - CreateDoc: type: object properties: @@ -2448,7 +2351,6 @@ components: required: - title - content - MemoryAccessOptions: type: object properties: @@ -2464,7 +2366,6 @@ components: type: boolean description: Whether this interaction should form memories or not default: true - CreateToolRequest: type: object properties: @@ -2483,7 +2384,6 @@ components: required: - type - function - UpdateToolRequest: type: object properties: @@ -2492,7 +2392,6 @@ components: description: Function definition and parameters required: - function - ResourceCreatedResponse: type: object properties: @@ -2512,8 +2411,6 @@ components: required: - id - created_at - - ResourceUpdatedResponse: type: object properties: @@ -2533,8 +2430,6 @@ components: required: - id - updated_at - - ResourceDeletedResponse: type: object properties: @@ -2554,8 +2449,6 @@ components: required: - id - deleted_at - - JobStatus: $schema: http://json-schema.org/draft-04/schema# type: object @@ -2606,8 +2499,6 @@ components: - name - created_at - state - - PatchUserRequest: $schema: http://json-schema.org/draft-04/schema# type: object @@ -2623,8 +2514,6 @@ components: properties: {} description: Optional metadata description: A request for patching a user - - PatchAgentRequest: $schema: http://json-schema.org/draft-04/schema# type: object @@ -2654,8 +2543,6 @@ components: description: List of instructions for the agent description: Instructions for the agent description: A request for patching an agent - - PatchSessionRequest: $schema: http://json-schema.org/draft-04/schema# type: object @@ -2674,8 +2561,6 @@ components: type: string description: Action to start on context window overflow description: A request for patching a session - - PatchToolRequest: type: object properties: @@ -2684,8 +2569,6 @@ components: description: Function definition and parameters required: - function - - PartialFunctionDef: type: object properties: @@ -2702,8 +2585,6 @@ components: parameters: $ref: '#/components/schemas/FunctionParameters' description: Parameters accepeted by this function - - DocIds: type: object properties: @@ -2718,8 +2599,6 @@ components: required: - agent_doc_ids - user_doc_ids - - ChatMLTextContentPart: type: object properties: @@ -2736,8 +2615,6 @@ components: required: - type - text - - ChatMLImageContentPart: type: object properties: @@ -2771,8 +2648,6 @@ components: required: - type - image_url - - Task: type: object properties: @@ -2809,9 +2684,13 @@ components: created_at: type: string format: date-time + updated_at: + type: string + format: date-time agent_id: type: string format: uuid + additionalProperties: true description: Describes a Task required: - name @@ -2819,8 +2698,6 @@ components: - id - created_at - agent_id - - WorkflowStep: anyOf: - $ref: '#/components/schemas/PromptWorkflowStep' @@ -2835,8 +2712,6 @@ components: description: Workflow Step for handling an Error - $ref: '#/components/schemas/IfElseWorkflowStep' description: Workflow Step for If, Then, Else - - CreateTask: type: object properties: @@ -2870,8 +2745,6 @@ components: required: - name - main - - Execution: type: object properties: @@ -2881,24 +2754,36 @@ components: task_id: type: string format: uuid - created_at: - type: string - format: uuid + status: + $ref: '#/components/schemas/ExecutionStatus' arguments: type: object properties: {} additionalProperties: true - description: JSON Schema of parameters - status: - $ref: '#/components/schemas/ExecutionStatus' + description: JSON of parameters + user_id: + type: string + format: uuid + nullable: true + default: null + session_id: + type: string + format: uuid + nullable: true + default: null + created_at: + type: string + format: date-time + updated_at: + type: string + format: date-time required: - id - task_id - - created_at - - arguments - status - - + - arguments + - created_at + - updated_at ExecutionTransition: type: object properties: @@ -2940,8 +2825,6 @@ components: - outputs - from - to - - PromptWorkflowStep: type: object properties: @@ -2955,8 +2838,6 @@ components: required: - prompt - settings - - EvaluateWorkflowStep: type: object properties: @@ -2964,14 +2845,10 @@ components: $ref: '#/components/schemas/CELObject' required: - evaluate - - CELObject: type: object properties: {} additionalProperties: true - - YieldWorkflowStep: type: object properties: @@ -2982,8 +2859,6 @@ components: required: - workflow - arguments - - ToolCallWorkflowStep: type: object properties: @@ -2994,8 +2869,6 @@ components: required: - tool_id - arguments - - ErrorWorkflowStep: type: object properties: @@ -3003,8 +2876,6 @@ components: type: string required: - error - - IfElseWorkflowStep: type: object properties: @@ -3018,20 +2889,14 @@ components: - if - then - else - - TransitionType: type: string pattern: ^(finish|wait|error|step)$ description: Execution Status - - ExecutionStatus: type: string pattern: ^(queued|starting|running|awaiting_input|succeeded|failed)$ description: Execution Status - - CreateExecution: type: object properties: @@ -3050,8 +2915,6 @@ components: - task_id - arguments - status - - ToolResponse: type: object properties: @@ -3066,8 +2929,6 @@ components: required: - output - id - - securitySchemes: api-key: type: apiKey @@ -3075,10 +2936,7 @@ components: description: API Key Authentication name: Authorization in: header - - parameters: - session_id: in: path required: false @@ -3086,7 +2944,6 @@ components: schema: type: string format: uuid - user_id: in: path required: false @@ -3094,7 +2951,6 @@ components: schema: type: string format: uuid - agent_id: in: path required: false @@ -3102,7 +2958,6 @@ components: schema: type: string format: uuid - message_id: in: path required: false @@ -3110,7 +2965,6 @@ components: schema: type: string format: uuid - doc_id: in: path required: false @@ -3118,7 +2972,6 @@ components: schema: type: string format: uuid - memory_id: in: path required: false @@ -3126,7 +2979,6 @@ components: schema: type: string format: uuid - tool_id: in: path required: false @@ -3134,7 +2986,6 @@ components: schema: type: string format: uuid - job_id: in: path required: false @@ -3142,14 +2993,12 @@ components: schema: type: string format: uuid - task_id: in: path required: false description: '' schema: type: string - execution_id: in: path required: false @@ -3157,7 +3006,6 @@ components: schema: type: string name: execution_id - transition_id: in: path required: false @@ -3165,11 +3013,6 @@ components: schema: type: string name: transition_id - - requestBodies: {} - - - security: - api-key: [] diff --git a/openapi.yaml b/openapi.yaml index 4c610aaed..b5dc23194 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -2684,9 +2684,13 @@ components: created_at: type: string format: date-time + updated_at: + type: string + format: date-time agent_id: type: string format: uuid + additionalProperties: true description: Describes a Task required: - name @@ -2750,22 +2754,36 @@ components: task_id: type: string format: uuid - created_at: - type: string - format: uuid + status: + $ref: '#/components/schemas/ExecutionStatus' arguments: type: object properties: {} additionalProperties: true - description: JSON Schema of parameters - status: - $ref: '#/components/schemas/ExecutionStatus' + description: JSON of parameters + user_id: + type: string + format: uuid + nullable: true + default: null + session_id: + type: string + format: uuid + nullable: true + default: null + created_at: + type: string + format: date-time + updated_at: + type: string + format: date-time required: - id - task_id - - created_at - - arguments - status + - arguments + - created_at + - updated_at ExecutionTransition: type: object properties: diff --git a/sdks/postman/collection.json b/sdks/postman/collection.json index cab58b634..dcec46ba4 100644 --- a/sdks/postman/collection.json +++ b/sdks/postman/collection.json @@ -3576,7 +3576,7 @@ "body": null }, "description": "", - "body": "[\n {\n \"name\": \"name\",\n \"description\": \"description\",\n \"tools_available\": [\n \"tools_available\"\n ],\n \"input_schema\": {\n \"input_schema\": {\n \"key\": \"value\"\n }\n },\n \"main\": [\n {\n \"prompt\": [\n {\n \"role\": \"user\",\n \"content\": \"content\"\n }\n ],\n \"settings\": {\n \"min_p\": 0.01\n }\n }\n ],\n \"id\": \"id\",\n \"created_at\": \"2024-01-15T09:30:00Z\",\n \"agent_id\": \"agent_id\"\n }\n]", + "body": "[\n {\n \"name\": \"name\",\n \"description\": \"description\",\n \"tools_available\": [\n \"tools_available\"\n ],\n \"input_schema\": {\n \"input_schema\": {\n \"key\": \"value\"\n }\n },\n \"main\": [\n {\n \"prompt\": [\n {\n \"role\": \"user\",\n \"content\": \"content\"\n }\n ],\n \"settings\": {\n \"min_p\": 0.01\n }\n }\n ],\n \"id\": \"id\",\n \"created_at\": \"2024-01-15T09:30:00Z\",\n \"updated_at\": \"2024-01-15T09:30:00Z\",\n \"agent_id\": \"agent_id\"\n }\n]", "_postman_previewlanguage": "json" } ] @@ -3784,7 +3784,7 @@ "body": null }, "description": "", - "body": "[\n {\n \"id\": \"id\",\n \"task_id\": \"task_id\",\n \"created_at\": \"created_at\",\n \"arguments\": {\n \"arguments\": {\n \"key\": \"value\"\n }\n },\n \"status\": \"status\"\n }\n]", + "body": "[\n {\n \"id\": \"id\",\n \"task_id\": \"task_id\",\n \"status\": \"status\",\n \"arguments\": {\n \"arguments\": {\n \"key\": \"value\"\n }\n },\n \"user_id\": \"user_id\",\n \"session_id\": \"session_id\",\n \"created_at\": \"2024-01-15T09:30:00Z\",\n \"updated_at\": \"2024-01-15T09:30:00Z\"\n }\n]", "_postman_previewlanguage": "json" } ] @@ -4006,7 +4006,7 @@ "body": null }, "description": "", - "body": "{\n \"name\": \"name\",\n \"description\": \"description\",\n \"tools_available\": [\n \"tools_available\"\n ],\n \"input_schema\": {\n \"input_schema\": {\n \"key\": \"value\"\n }\n },\n \"main\": [\n {\n \"prompt\": [\n {\n \"role\": \"user\",\n \"content\": \"content\"\n }\n ],\n \"settings\": {\n \"min_p\": 0.01\n }\n }\n ],\n \"id\": \"id\",\n \"created_at\": \"2024-01-15T09:30:00Z\",\n \"agent_id\": \"agent_id\"\n}", + "body": "{\n \"name\": \"name\",\n \"description\": \"description\",\n \"tools_available\": [\n \"tools_available\"\n ],\n \"input_schema\": {\n \"input_schema\": {\n \"key\": \"value\"\n }\n },\n \"main\": [\n {\n \"prompt\": [\n {\n \"role\": \"user\",\n \"content\": \"content\"\n }\n ],\n \"settings\": {\n \"min_p\": 0.01\n }\n }\n ],\n \"id\": \"id\",\n \"created_at\": \"2024-01-15T09:30:00Z\",\n \"updated_at\": \"2024-01-15T09:30:00Z\",\n \"agent_id\": \"agent_id\"\n}", "_postman_previewlanguage": "json" } ] diff --git a/sdks/python/julep/api/types/chat_input_data_tool_choice.py b/sdks/python/julep/api/types/chat_input_data_tool_choice.py index 769c451c0..2885d0693 100644 --- a/sdks/python/julep/api/types/chat_input_data_tool_choice.py +++ b/sdks/python/julep/api/types/chat_input_data_tool_choice.py @@ -3,6 +3,7 @@ import typing from .named_tool_choice import NamedToolChoice +from .named_tool_choice_function import NamedToolChoiceFunction from .tool_choice_option import ToolChoiceOption ChatInputDataToolChoice = typing.Union[ToolChoiceOption, NamedToolChoice] diff --git a/sdks/python/julep/api/types/chat_ml_message_content.py b/sdks/python/julep/api/types/chat_ml_message_content.py index 0ebccf90e..96006aafb 100644 --- a/sdks/python/julep/api/types/chat_ml_message_content.py +++ b/sdks/python/julep/api/types/chat_ml_message_content.py @@ -2,6 +2,12 @@ import typing +from .chat_ml_image_content_part import ChatMlImageContentPart +from .chat_ml_image_content_part_image_url import ChatMlImageContentPartImageUrl +from .chat_ml_image_content_part_image_url_detail import ( + ChatMlImageContentPartImageUrlDetail, +) from .chat_ml_message_content_item import ChatMlMessageContentItem +from .chat_ml_text_content_part import ChatMlTextContentPart ChatMlMessageContent = typing.Union[str, typing.List[ChatMlMessageContentItem]] diff --git a/sdks/python/julep/api/types/execution.py b/sdks/python/julep/api/types/execution.py index 4c29b236d..10f595417 100644 --- a/sdks/python/julep/api/types/execution.py +++ b/sdks/python/julep/api/types/execution.py @@ -15,11 +15,14 @@ class Execution(pydantic.BaseModel): id: str task_id: str - created_at: str + status: ExecutionStatus arguments: typing.Dict[str, typing.Any] = pydantic.Field( - description="JSON Schema of parameters" + description="JSON of parameters" ) - status: ExecutionStatus + user_id: typing.Optional[str] + session_id: typing.Optional[str] + created_at: dt.datetime + updated_at: dt.datetime def json(self, **kwargs: typing.Any) -> str: kwargs_with_defaults: typing.Any = { diff --git a/sdks/python/julep/api/types/input_chat_ml_message_content.py b/sdks/python/julep/api/types/input_chat_ml_message_content.py index 29aa606c0..4b8bd1c53 100644 --- a/sdks/python/julep/api/types/input_chat_ml_message_content.py +++ b/sdks/python/julep/api/types/input_chat_ml_message_content.py @@ -2,6 +2,12 @@ import typing +from .chat_ml_image_content_part import ChatMlImageContentPart +from .chat_ml_image_content_part_image_url import ChatMlImageContentPartImageUrl +from .chat_ml_image_content_part_image_url_detail import ( + ChatMlImageContentPartImageUrlDetail, +) +from .chat_ml_text_content_part import ChatMlTextContentPart from .input_chat_ml_message_content_item import InputChatMlMessageContentItem InputChatMlMessageContent = typing.Union[ diff --git a/sdks/python/julep/api/types/task.py b/sdks/python/julep/api/types/task.py index 755c99f49..61dead763 100644 --- a/sdks/python/julep/api/types/task.py +++ b/sdks/python/julep/api/types/task.py @@ -32,6 +32,7 @@ class Task(pydantic.BaseModel): ) id: str = pydantic.Field(description="ID of the Task") created_at: dt.datetime + updated_at: typing.Optional[dt.datetime] agent_id: str def json(self, **kwargs: typing.Any) -> str: diff --git a/sdks/python/julep/api/types/workflow_step.py b/sdks/python/julep/api/types/workflow_step.py index 5ba7d3193..d5a5c3a92 100644 --- a/sdks/python/julep/api/types/workflow_step.py +++ b/sdks/python/julep/api/types/workflow_step.py @@ -2,9 +2,26 @@ import typing +from .cel_object import CelObject +from .chat_ml_image_content_part import ChatMlImageContentPart +from .chat_ml_image_content_part_image_url import ChatMlImageContentPartImageUrl +from .chat_ml_image_content_part_image_url_detail import ( + ChatMlImageContentPartImageUrlDetail, +) +from .chat_ml_text_content_part import ChatMlTextContentPart +from .chat_settings import ChatSettings +from .chat_settings_preset import ChatSettingsPreset +from .chat_settings_response_format import ChatSettingsResponseFormat +from .chat_settings_response_format_schema import ChatSettingsResponseFormatSchema +from .chat_settings_response_format_type import ChatSettingsResponseFormatType +from .chat_settings_stop import ChatSettingsStop from .error_workflow_step import ErrorWorkflowStep from .evaluate_workflow_step import EvaluateWorkflowStep from .if_else_workflow_step import IfElseWorkflowStep +from .input_chat_ml_message import InputChatMlMessage +from .input_chat_ml_message_content import InputChatMlMessageContent +from .input_chat_ml_message_content_item import InputChatMlMessageContentItem +from .input_chat_ml_message_role import InputChatMlMessageRole from .prompt_workflow_step import PromptWorkflowStep from .tool_call_workflow_step import ToolCallWorkflowStep from .yield_workflow_step import YieldWorkflowStep diff --git a/sdks/python/poetry.lock b/sdks/python/poetry.lock index 17ddd74dd..3dfa8a344 100644 --- a/sdks/python/poetry.lock +++ b/sdks/python/poetry.lock @@ -690,13 +690,13 @@ tests = ["asttokens (>=2.1.0)", "coverage", "coverage-enable-subprocess", "ipyth [[package]] name = "fastjsonschema" -version = "2.19.1" +version = "2.20.0" description = "Fastest Python implementation of JSON schema" optional = false python-versions = "*" files = [ - {file = "fastjsonschema-2.19.1-py3-none-any.whl", hash = "sha256:3672b47bc94178c9f23dbb654bf47440155d4db9df5f7bc47643315f9c405cd0"}, - {file = "fastjsonschema-2.19.1.tar.gz", hash = "sha256:e3126a94bdc4623d3de4485f8d468a12f02a67921315ddc87836d6e456dc789d"}, + {file = "fastjsonschema-2.20.0-py3-none-any.whl", hash = "sha256:5875f0b0fa7a0043a91e93a9b8f793bcbbba9691e7fd83dca95c28ba26d21f0a"}, + {file = "fastjsonschema-2.20.0.tar.gz", hash = "sha256:3d48fc5300ee96f5d116f10fe6f28d938e6008f59a6a025c2649475b87f76a23"}, ] [package.extras] @@ -814,22 +814,22 @@ networkx = ">=2" [[package]] name = "importlib-metadata" -version = "7.1.0" +version = "7.2.0" description = "Read metadata from Python packages" optional = false python-versions = ">=3.8" files = [ - {file = "importlib_metadata-7.1.0-py3-none-any.whl", hash = "sha256:30962b96c0c223483ed6cc7280e7f0199feb01a0e40cfae4d4450fc6fab1f570"}, - {file = "importlib_metadata-7.1.0.tar.gz", hash = "sha256:b78938b926ee8d5f020fc4772d487045805a55ddbad2ecf21c6d60938dc7fcd2"}, + {file = "importlib_metadata-7.2.0-py3-none-any.whl", hash = "sha256:04e4aad329b8b948a5711d394fa8759cb80f009225441b4f2a02bd4d8e5f426c"}, + {file = "importlib_metadata-7.2.0.tar.gz", hash = "sha256:3ff4519071ed42740522d494d04819b666541b9752c43012f85afb2cc220fcc6"}, ] [package.dependencies] zipp = ">=0.5" [package.extras] -docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] perf = ["ipython"] -testing = ["flufl.flake8", "importlib-resources (>=1.3)", "jaraco.test (>=5.4)", "packaging", "pyfakefs", "pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy", "pytest-perf (>=0.9.2)", "pytest-ruff (>=0.2.1)"] +test = ["flufl.flake8", "importlib-resources (>=1.3)", "jaraco.test (>=5.4)", "packaging", "pyfakefs", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy", "pytest-perf (>=0.9.2)", "pytest-ruff (>=0.2.1)"] [[package]] name = "importlib-resources" @@ -1612,58 +1612,67 @@ test = ["pytest", "pytest-console-scripts", "pytest-jupyter", "pytest-tornasync" [[package]] name = "numpy" -version = "1.26.4" +version = "2.0.0" description = "Fundamental package for array computing in Python" optional = false python-versions = ">=3.9" files = [ - {file = "numpy-1.26.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9ff0f4f29c51e2803569d7a51c2304de5554655a60c5d776e35b4a41413830d0"}, - {file = "numpy-1.26.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2e4ee3380d6de9c9ec04745830fd9e2eccb3e6cf790d39d7b98ffd19b0dd754a"}, - {file = "numpy-1.26.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d209d8969599b27ad20994c8e41936ee0964e6da07478d6c35016bc386b66ad4"}, - {file = "numpy-1.26.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ffa75af20b44f8dba823498024771d5ac50620e6915abac414251bd971b4529f"}, - {file = "numpy-1.26.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:62b8e4b1e28009ef2846b4c7852046736bab361f7aeadeb6a5b89ebec3c7055a"}, - {file = "numpy-1.26.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a4abb4f9001ad2858e7ac189089c42178fcce737e4169dc61321660f1a96c7d2"}, - {file = "numpy-1.26.4-cp310-cp310-win32.whl", hash = "sha256:bfe25acf8b437eb2a8b2d49d443800a5f18508cd811fea3181723922a8a82b07"}, - {file = "numpy-1.26.4-cp310-cp310-win_amd64.whl", hash = "sha256:b97fe8060236edf3662adfc2c633f56a08ae30560c56310562cb4f95500022d5"}, - {file = "numpy-1.26.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4c66707fabe114439db9068ee468c26bbdf909cac0fb58686a42a24de1760c71"}, - {file = "numpy-1.26.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:edd8b5fe47dab091176d21bb6de568acdd906d1887a4584a15a9a96a1dca06ef"}, - {file = "numpy-1.26.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ab55401287bfec946ced39700c053796e7cc0e3acbef09993a9ad2adba6ca6e"}, - {file = "numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:666dbfb6ec68962c033a450943ded891bed2d54e6755e35e5835d63f4f6931d5"}, - {file = "numpy-1.26.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:96ff0b2ad353d8f990b63294c8986f1ec3cb19d749234014f4e7eb0112ceba5a"}, - {file = "numpy-1.26.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:60dedbb91afcbfdc9bc0b1f3f402804070deed7392c23eb7a7f07fa857868e8a"}, - {file = "numpy-1.26.4-cp311-cp311-win32.whl", hash = "sha256:1af303d6b2210eb850fcf03064d364652b7120803a0b872f5211f5234b399f20"}, - {file = "numpy-1.26.4-cp311-cp311-win_amd64.whl", hash = "sha256:cd25bcecc4974d09257ffcd1f098ee778f7834c3ad767fe5db785be9a4aa9cb2"}, - {file = "numpy-1.26.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b3ce300f3644fb06443ee2222c2201dd3a89ea6040541412b8fa189341847218"}, - {file = "numpy-1.26.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:03a8c78d01d9781b28a6989f6fa1bb2c4f2d51201cf99d3dd875df6fbd96b23b"}, - {file = "numpy-1.26.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9fad7dcb1aac3c7f0584a5a8133e3a43eeb2fe127f47e3632d43d677c66c102b"}, - {file = "numpy-1.26.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:675d61ffbfa78604709862923189bad94014bef562cc35cf61d3a07bba02a7ed"}, - {file = "numpy-1.26.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ab47dbe5cc8210f55aa58e4805fe224dac469cde56b9f731a4c098b91917159a"}, - {file = "numpy-1.26.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:1dda2e7b4ec9dd512f84935c5f126c8bd8b9f2fc001e9f54af255e8c5f16b0e0"}, - {file = "numpy-1.26.4-cp312-cp312-win32.whl", hash = "sha256:50193e430acfc1346175fcbdaa28ffec49947a06918b7b92130744e81e640110"}, - {file = "numpy-1.26.4-cp312-cp312-win_amd64.whl", hash = "sha256:08beddf13648eb95f8d867350f6a018a4be2e5ad54c8d8caed89ebca558b2818"}, - {file = "numpy-1.26.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7349ab0fa0c429c82442a27a9673fc802ffdb7c7775fad780226cb234965e53c"}, - {file = "numpy-1.26.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:52b8b60467cd7dd1e9ed082188b4e6bb35aa5cdd01777621a1658910745b90be"}, - {file = "numpy-1.26.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d5241e0a80d808d70546c697135da2c613f30e28251ff8307eb72ba696945764"}, - {file = "numpy-1.26.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f870204a840a60da0b12273ef34f7051e98c3b5961b61b0c2c1be6dfd64fbcd3"}, - {file = "numpy-1.26.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:679b0076f67ecc0138fd2ede3a8fd196dddc2ad3254069bcb9faf9a79b1cebcd"}, - {file = "numpy-1.26.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:47711010ad8555514b434df65f7d7b076bb8261df1ca9bb78f53d3b2db02e95c"}, - {file = "numpy-1.26.4-cp39-cp39-win32.whl", hash = "sha256:a354325ee03388678242a4d7ebcd08b5c727033fcff3b2f536aea978e15ee9e6"}, - {file = "numpy-1.26.4-cp39-cp39-win_amd64.whl", hash = "sha256:3373d5d70a5fe74a2c1bb6d2cfd9609ecf686d47a2d7b1d37a8f3b6bf6003aea"}, - {file = "numpy-1.26.4-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:afedb719a9dcfc7eaf2287b839d8198e06dcd4cb5d276a3df279231138e83d30"}, - {file = "numpy-1.26.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95a7476c59002f2f6c590b9b7b998306fba6a5aa646b1e22ddfeaf8f78c3a29c"}, - {file = "numpy-1.26.4-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7e50d0a0cc3189f9cb0aeb3a6a6af18c16f59f004b866cd2be1c14b36134a4a0"}, - {file = "numpy-1.26.4.tar.gz", hash = "sha256:2a02aba9ed12e4ac4eb3ea9421c420301a0c6460d9830d74a9df87efa4912010"}, + {file = "numpy-2.0.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:04494f6ec467ccb5369d1808570ae55f6ed9b5809d7f035059000a37b8d7e86f"}, + {file = "numpy-2.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2635dbd200c2d6faf2ef9a0d04f0ecc6b13b3cad54f7c67c61155138835515d2"}, + {file = "numpy-2.0.0-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:0a43f0974d501842866cc83471bdb0116ba0dffdbaac33ec05e6afed5b615238"}, + {file = "numpy-2.0.0-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:8d83bb187fb647643bd56e1ae43f273c7f4dbcdf94550d7938cfc32566756514"}, + {file = "numpy-2.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79e843d186c8fb1b102bef3e2bc35ef81160ffef3194646a7fdd6a73c6b97196"}, + {file = "numpy-2.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d7696c615765091cc5093f76fd1fa069870304beaccfd58b5dcc69e55ef49c1"}, + {file = "numpy-2.0.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b4c76e3d4c56f145d41b7b6751255feefae92edbc9a61e1758a98204200f30fc"}, + {file = "numpy-2.0.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:acd3a644e4807e73b4e1867b769fbf1ce8c5d80e7caaef0d90dcdc640dfc9787"}, + {file = "numpy-2.0.0-cp310-cp310-win32.whl", hash = "sha256:cee6cc0584f71adefe2c908856ccc98702baf95ff80092e4ca46061538a2ba98"}, + {file = "numpy-2.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:ed08d2703b5972ec736451b818c2eb9da80d66c3e84aed1deeb0c345fefe461b"}, + {file = "numpy-2.0.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ad0c86f3455fbd0de6c31a3056eb822fc939f81b1618f10ff3406971893b62a5"}, + {file = "numpy-2.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e7f387600d424f91576af20518334df3d97bc76a300a755f9a8d6e4f5cadd289"}, + {file = "numpy-2.0.0-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:34f003cb88b1ba38cb9a9a4a3161c1604973d7f9d5552c38bc2f04f829536609"}, + {file = "numpy-2.0.0-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:b6f6a8f45d0313db07d6d1d37bd0b112f887e1369758a5419c0370ba915b3871"}, + {file = "numpy-2.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5f64641b42b2429f56ee08b4f427a4d2daf916ec59686061de751a55aafa22e4"}, + {file = "numpy-2.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a7039a136017eaa92c1848152827e1424701532ca8e8967fe480fe1569dae581"}, + {file = "numpy-2.0.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:46e161722e0f619749d1cd892167039015b2c2817296104487cd03ed4a955995"}, + {file = "numpy-2.0.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:0e50842b2295ba8414c8c1d9d957083d5dfe9e16828b37de883f51fc53c4016f"}, + {file = "numpy-2.0.0-cp311-cp311-win32.whl", hash = "sha256:2ce46fd0b8a0c947ae047d222f7136fc4d55538741373107574271bc00e20e8f"}, + {file = "numpy-2.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:fbd6acc766814ea6443628f4e6751d0da6593dae29c08c0b2606164db026970c"}, + {file = "numpy-2.0.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:354f373279768fa5a584bac997de6a6c9bc535c482592d7a813bb0c09be6c76f"}, + {file = "numpy-2.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4d2f62e55a4cd9c58c1d9a1c9edaedcd857a73cb6fda875bf79093f9d9086f85"}, + {file = "numpy-2.0.0-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:1e72728e7501a450288fc8e1f9ebc73d90cfd4671ebbd631f3e7857c39bd16f2"}, + {file = "numpy-2.0.0-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:84554fc53daa8f6abf8e8a66e076aff6ece62de68523d9f665f32d2fc50fd66e"}, + {file = "numpy-2.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c73aafd1afca80afecb22718f8700b40ac7cab927b8abab3c3e337d70e10e5a2"}, + {file = "numpy-2.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:49d9f7d256fbc804391a7f72d4a617302b1afac1112fac19b6c6cec63fe7fe8a"}, + {file = "numpy-2.0.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:0ec84b9ba0654f3b962802edc91424331f423dcf5d5f926676e0150789cb3d95"}, + {file = "numpy-2.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:feff59f27338135776f6d4e2ec7aeeac5d5f7a08a83e80869121ef8164b74af9"}, + {file = "numpy-2.0.0-cp312-cp312-win32.whl", hash = "sha256:c5a59996dc61835133b56a32ebe4ef3740ea5bc19b3983ac60cc32be5a665d54"}, + {file = "numpy-2.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:a356364941fb0593bb899a1076b92dfa2029f6f5b8ba88a14fd0984aaf76d0df"}, + {file = "numpy-2.0.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:e61155fae27570692ad1d327e81c6cf27d535a5d7ef97648a17d922224b216de"}, + {file = "numpy-2.0.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4554eb96f0fd263041baf16cf0881b3f5dafae7a59b1049acb9540c4d57bc8cb"}, + {file = "numpy-2.0.0-cp39-cp39-macosx_14_0_arm64.whl", hash = "sha256:903703372d46bce88b6920a0cd86c3ad82dae2dbef157b5fc01b70ea1cfc430f"}, + {file = "numpy-2.0.0-cp39-cp39-macosx_14_0_x86_64.whl", hash = "sha256:3e8e01233d57639b2e30966c63d36fcea099d17c53bf424d77f088b0f4babd86"}, + {file = "numpy-2.0.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1cde1753efe513705a0c6d28f5884e22bdc30438bf0085c5c486cdaff40cd67a"}, + {file = "numpy-2.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:821eedb7165ead9eebdb569986968b541f9908979c2da8a4967ecac4439bae3d"}, + {file = "numpy-2.0.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:9a1712c015831da583b21c5bfe15e8684137097969c6d22e8316ba66b5baabe4"}, + {file = "numpy-2.0.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:9c27f0946a3536403efb0e1c28def1ae6730a72cd0d5878db38824855e3afc44"}, + {file = "numpy-2.0.0-cp39-cp39-win32.whl", hash = "sha256:63b92c512d9dbcc37f9d81b123dec99fdb318ba38c8059afc78086fe73820275"}, + {file = "numpy-2.0.0-cp39-cp39-win_amd64.whl", hash = "sha256:3f6bed7f840d44c08ebdb73b1825282b801799e325bcbdfa6bc5c370e5aecc65"}, + {file = "numpy-2.0.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:9416a5c2e92ace094e9f0082c5fd473502c91651fb896bc17690d6fc475128d6"}, + {file = "numpy-2.0.0-pp39-pypy39_pp73-macosx_14_0_x86_64.whl", hash = "sha256:17067d097ed036636fa79f6a869ac26df7db1ba22039d962422506640314933a"}, + {file = "numpy-2.0.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:38ecb5b0582cd125f67a629072fed6f83562d9dd04d7e03256c9829bdec027ad"}, + {file = "numpy-2.0.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:cef04d068f5fb0518a77857953193b6bb94809a806bd0a14983a8f12ada060c9"}, + {file = "numpy-2.0.0.tar.gz", hash = "sha256:cf5d1c9e6837f8af9f92b6bd3e86d513cdc11f60fd62185cc49ec7d1aba34864"}, ] [[package]] name = "openai" -version = "1.33.0" +version = "1.35.3" description = "The official Python library for the openai API" optional = false python-versions = ">=3.7.1" files = [ - {file = "openai-1.33.0-py3-none-any.whl", hash = "sha256:621163b56570897ab8389d187f686a53d4771fd6ce95d481c0a9611fe8bc4229"}, - {file = "openai-1.33.0.tar.gz", hash = "sha256:1169211a7b326ecbc821cafb427c29bfd0871f9a3e0947dd9e51acb3b0f1df78"}, + {file = "openai-1.35.3-py3-none-any.whl", hash = "sha256:7b26544cef80f125431c073ffab3811d2421fbb9e30d3bd5c2436aba00b042d5"}, + {file = "openai-1.35.3.tar.gz", hash = "sha256:d6177087f150b381d49499be782d764213fdf638d391b29ca692b84dd675a389"}, ] [package.dependencies] @@ -1848,13 +1857,13 @@ files = [ [[package]] name = "pip" -version = "24.0" +version = "24.1" description = "The PyPA recommended tool for installing Python packages." optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "pip-24.0-py3-none-any.whl", hash = "sha256:ba0d021a166865d2265246961bec0152ff124de910c5cc39f1156ce3fa7c69dc"}, - {file = "pip-24.0.tar.gz", hash = "sha256:ea9bd1a847e8c5774a5777bb398c19e80bcd4e2aa16a4b301b718fe6f593aba2"}, + {file = "pip-24.1-py3-none-any.whl", hash = "sha256:a775837439bf5da2c1a0c2fa43d5744854497c689ddbd9344cf3ea6d00598540"}, + {file = "pip-24.1.tar.gz", hash = "sha256:bdae551038c0ce6a83030b4aedef27fc95f0daa683593fea22fa05e55ed8e317"}, ] [[package]] @@ -1947,27 +1956,28 @@ wcwidth = "*" [[package]] name = "psutil" -version = "5.9.8" +version = "6.0.0" description = "Cross-platform lib for process and system monitoring in Python." optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" files = [ - {file = "psutil-5.9.8-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:26bd09967ae00920df88e0352a91cff1a78f8d69b3ecabbfe733610c0af486c8"}, - {file = "psutil-5.9.8-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:05806de88103b25903dff19bb6692bd2e714ccf9e668d050d144012055cbca73"}, - {file = "psutil-5.9.8-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:611052c4bc70432ec770d5d54f64206aa7203a101ec273a0cd82418c86503bb7"}, - {file = "psutil-5.9.8-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:50187900d73c1381ba1454cf40308c2bf6f34268518b3f36a9b663ca87e65e36"}, - {file = "psutil-5.9.8-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:02615ed8c5ea222323408ceba16c60e99c3f91639b07da6373fb7e6539abc56d"}, - {file = "psutil-5.9.8-cp27-none-win32.whl", hash = "sha256:36f435891adb138ed3c9e58c6af3e2e6ca9ac2f365efe1f9cfef2794e6c93b4e"}, - {file = "psutil-5.9.8-cp27-none-win_amd64.whl", hash = "sha256:bd1184ceb3f87651a67b2708d4c3338e9b10c5df903f2e3776b62303b26cb631"}, - {file = "psutil-5.9.8-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:aee678c8720623dc456fa20659af736241f575d79429a0e5e9cf88ae0605cc81"}, - {file = "psutil-5.9.8-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8cb6403ce6d8e047495a701dc7c5bd788add903f8986d523e3e20b98b733e421"}, - {file = "psutil-5.9.8-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d06016f7f8625a1825ba3732081d77c94589dca78b7a3fc072194851e88461a4"}, - {file = "psutil-5.9.8-cp36-cp36m-win32.whl", hash = "sha256:7d79560ad97af658a0f6adfef8b834b53f64746d45b403f225b85c5c2c140eee"}, - {file = "psutil-5.9.8-cp36-cp36m-win_amd64.whl", hash = "sha256:27cc40c3493bb10de1be4b3f07cae4c010ce715290a5be22b98493509c6299e2"}, - {file = "psutil-5.9.8-cp37-abi3-win32.whl", hash = "sha256:bc56c2a1b0d15aa3eaa5a60c9f3f8e3e565303b465dbf57a1b730e7a2b9844e0"}, - {file = "psutil-5.9.8-cp37-abi3-win_amd64.whl", hash = "sha256:8db4c1b57507eef143a15a6884ca10f7c73876cdf5d51e713151c1236a0e68cf"}, - {file = "psutil-5.9.8-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:d16bbddf0693323b8c6123dd804100241da461e41d6e332fb0ba6058f630f8c8"}, - {file = "psutil-5.9.8.tar.gz", hash = "sha256:6be126e3225486dff286a8fb9a06246a5253f4c7c53b475ea5f5ac934e64194c"}, + {file = "psutil-6.0.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:a021da3e881cd935e64a3d0a20983bda0bb4cf80e4f74fa9bfcb1bc5785360c6"}, + {file = "psutil-6.0.0-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:1287c2b95f1c0a364d23bc6f2ea2365a8d4d9b726a3be7294296ff7ba97c17f0"}, + {file = "psutil-6.0.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:a9a3dbfb4de4f18174528d87cc352d1f788b7496991cca33c6996f40c9e3c92c"}, + {file = "psutil-6.0.0-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:6ec7588fb3ddaec7344a825afe298db83fe01bfaaab39155fa84cf1c0d6b13c3"}, + {file = "psutil-6.0.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:1e7c870afcb7d91fdea2b37c24aeb08f98b6d67257a5cb0a8bc3ac68d0f1a68c"}, + {file = "psutil-6.0.0-cp27-none-win32.whl", hash = "sha256:02b69001f44cc73c1c5279d02b30a817e339ceb258ad75997325e0e6169d8b35"}, + {file = "psutil-6.0.0-cp27-none-win_amd64.whl", hash = "sha256:21f1fb635deccd510f69f485b87433460a603919b45e2a324ad65b0cc74f8fb1"}, + {file = "psutil-6.0.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:c588a7e9b1173b6e866756dde596fd4cad94f9399daf99ad8c3258b3cb2b47a0"}, + {file = "psutil-6.0.0-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ed2440ada7ef7d0d608f20ad89a04ec47d2d3ab7190896cd62ca5fc4fe08bf0"}, + {file = "psutil-6.0.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5fd9a97c8e94059b0ef54a7d4baf13b405011176c3b6ff257c247cae0d560ecd"}, + {file = "psutil-6.0.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e2e8d0054fc88153ca0544f5c4d554d42e33df2e009c4ff42284ac9ebdef4132"}, + {file = "psutil-6.0.0-cp36-cp36m-win32.whl", hash = "sha256:fc8c9510cde0146432bbdb433322861ee8c3efbf8589865c8bf8d21cb30c4d14"}, + {file = "psutil-6.0.0-cp36-cp36m-win_amd64.whl", hash = "sha256:34859b8d8f423b86e4385ff3665d3f4d94be3cdf48221fbe476e883514fdb71c"}, + {file = "psutil-6.0.0-cp37-abi3-win32.whl", hash = "sha256:a495580d6bae27291324fe60cea0b5a7c23fa36a7cd35035a16d93bdcf076b9d"}, + {file = "psutil-6.0.0-cp37-abi3-win_amd64.whl", hash = "sha256:33ea5e1c975250a720b3a6609c490db40dae5d83a4eb315170c4fe0d8b1f34b3"}, + {file = "psutil-6.0.0-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:ffe7fc9b6b36beadc8c322f84e1caff51e8703b88eee1da46d1e3a6ae11b4fd0"}, + {file = "psutil-6.0.0.tar.gz", hash = "sha256:8faae4f310b6d969fa26ca0545338b21f73c6b15db7c4a8d934a5482faa818f2"}, ] [package.extras] @@ -2000,13 +2010,13 @@ tests = ["pytest"] [[package]] name = "pycnite" -version = "2024.5.27" +version = "2024.6.13" description = "Python bytecode utilities" optional = false python-versions = ">=3.8" files = [ - {file = "pycnite-2024.5.27-py3-none-any.whl", hash = "sha256:9274c95373663749323714bfc7e845d6ea0a793abc0d33dfc6932d660b7669a9"}, - {file = "pycnite-2024.5.27.tar.gz", hash = "sha256:825949037eba62a6c46a22c998ea8be83d0136ca5297d30ec6941b886af34628"}, + {file = "pycnite-2024.6.13-py3-none-any.whl", hash = "sha256:7346099b2313894db65ffca177f9e6eb3251fdfedb019eb6da02822c2ff8c1e1"}, + {file = "pycnite-2024.6.13.tar.gz", hash = "sha256:301c5d7e2e2f61e5535d0af7c4486f3ea4f5083c4808a7645a55ddb45cb25027"}, ] [[package]] @@ -2043,13 +2053,13 @@ files = [ [[package]] name = "pydantic" -version = "2.7.3" +version = "2.7.4" description = "Data validation using Python type hints" optional = false python-versions = ">=3.8" files = [ - {file = "pydantic-2.7.3-py3-none-any.whl", hash = "sha256:ea91b002777bf643bb20dd717c028ec43216b24a6001a280f83877fd2655d0b4"}, - {file = "pydantic-2.7.3.tar.gz", hash = "sha256:c46c76a40bb1296728d7a8b99aa73dd70a48c3510111ff290034f860c99c419e"}, + {file = "pydantic-2.7.4-py3-none-any.whl", hash = "sha256:ee8538d41ccb9c0a9ad3e0e5f07bf15ed8015b481ced539a1759d8cc89ae90d0"}, + {file = "pydantic-2.7.4.tar.gz", hash = "sha256:0c84efd9548d545f63ac0060c1e4d39bb9b14db8b3c0652338aecc07b5adec52"}, ] [package.dependencies] @@ -2200,13 +2210,13 @@ diagrams = ["jinja2", "railroad-diagrams"] [[package]] name = "pyright" -version = "1.1.366" +version = "1.1.368" description = "Command line wrapper for pyright" optional = false python-versions = ">=3.7" files = [ - {file = "pyright-1.1.366-py3-none-any.whl", hash = "sha256:c09e73ccc894976bcd6d6a5784aa84d724dbd9ceb7b873b39d475ca61c2de071"}, - {file = "pyright-1.1.366.tar.gz", hash = "sha256:10e4d60be411f6d960cd39b0b58bf2ff76f2c83b9aeb102ffa9d9fda2e1303cb"}, + {file = "pyright-1.1.368-py3-none-any.whl", hash = "sha256:4a86e34b61c755b43b367af7fbf927fc6466fff6b81a9dcea07d42416c640af3"}, + {file = "pyright-1.1.368.tar.gz", hash = "sha256:9b2aa48142d9d9fc9a6aedff743c76873cc4e615f3297cdbf893d5793f75b306"}, ] [package.dependencies] @@ -2363,6 +2373,7 @@ files = [ {file = "PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34"}, {file = "PyYAML-6.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28"}, {file = "PyYAML-6.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9"}, + {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a08c6f0fe150303c1c6b71ebcd7213c2858041a7e01975da3a99aed1e7a378ef"}, {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0"}, {file = "PyYAML-6.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4"}, {file = "PyYAML-6.0.1-cp312-cp312-win32.whl", hash = "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54"}, @@ -2728,18 +2739,18 @@ win32 = ["pywin32"] [[package]] name = "setuptools" -version = "70.0.0" +version = "70.1.0" description = "Easily download, build, install, upgrade, and uninstall Python packages" optional = false python-versions = ">=3.8" files = [ - {file = "setuptools-70.0.0-py3-none-any.whl", hash = "sha256:54faa7f2e8d2d11bcd2c07bed282eef1046b5c080d1c32add737d7b5817b1ad4"}, - {file = "setuptools-70.0.0.tar.gz", hash = "sha256:f211a66637b8fa059bb28183da127d4e86396c991a942b028c6650d4319c3fd0"}, + {file = "setuptools-70.1.0-py3-none-any.whl", hash = "sha256:d9b8b771455a97c8a9f3ab3448ebe0b29b5e105f1228bba41028be116985a267"}, + {file = "setuptools-70.1.0.tar.gz", hash = "sha256:01a1e793faa5bd89abc851fa15d0a0db26f160890c7102cd8dce643e886b47f5"}, ] [package.extras] docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier"] -testing = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "importlib-metadata", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "mypy (==1.9)", "packaging (>=23.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.1)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-home (>=0.5)", "pytest-mypy", "pytest-perf", "pytest-ruff (>=0.2.1)", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] +testing = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "importlib-metadata", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "jaraco.test", "mypy (==1.10.0)", "packaging (>=23.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.1)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-home (>=0.5)", "pytest-mypy", "pytest-perf", "pytest-ruff (>=0.3.2)", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] [[package]] name = "shellingham" @@ -3033,13 +3044,13 @@ dev = ["flake8", "flake8-annotations", "flake8-bandit", "flake8-bugbear", "flake [[package]] name = "urllib3" -version = "2.2.1" +version = "2.2.2" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false python-versions = ">=3.8" files = [ - {file = "urllib3-2.2.1-py3-none-any.whl", hash = "sha256:450b20ec296a467077128bff42b73080516e71b56ff59a60a02bef2232c4fa9d"}, - {file = "urllib3-2.2.1.tar.gz", hash = "sha256:d0570876c61ab9e520d776c38acbbb5b05a776d3f9ff98a5c8fd5162a444cf19"}, + {file = "urllib3-2.2.2-py3-none-any.whl", hash = "sha256:a448b2f64d686155468037e1ace9f2d2199776e17f0a46610480d311f73e3472"}, + {file = "urllib3-2.2.2.tar.gz", hash = "sha256:dd505485549a7a552833da5e6063639d0d177c04f23bc3864e41e5dc5f612168"}, ] [package.extras] diff --git a/sdks/ts/package-lock.json b/sdks/ts/package-lock.json index 8fe795e4a..9618851ab 100644 --- a/sdks/ts/package-lock.json +++ b/sdks/ts/package-lock.json @@ -1,12 +1,12 @@ { "name": "@julep/sdk", - "version": "0.3.5", + "version": "0.3.6", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@julep/sdk", - "version": "0.3.5", + "version": "0.3.6", "license": "ISC", "dependencies": { "@rollup/plugin-typescript": "^11.1.6", diff --git a/sdks/ts/package.json b/sdks/ts/package.json index 15ebd728c..6499f442e 100644 --- a/sdks/ts/package.json +++ b/sdks/ts/package.json @@ -75,7 +75,7 @@ "start_mock_api": "prism mock ./tests/mock_openapi.yaml -p 8080 -v fatal 1> /dev/null &", "kill_mock_api": "kill $(pgrep -f 'prism .*') || echo bye", "format": "prettier -w .", - "openapi-codegen": "bash -c 'openapi -c axios --name JulepApiClient --useOptions --indent 2 -i <(yq \".\" ../../openapi.yaml) -o src/api --exportSchemas true --useUnionTypes true'", + "openapi-codegen": "bash -c 'openapi -c axios --name JulepApiClient --useOptions --indent 2 -i <(yq -o=json \".\" ../../openapi.yaml) -o src/api --exportSchemas true --useUnionTypes true'", "codegen": "npm run openapi-codegen && npm run format", "generate-docs": "typedoc --plugin typedoc-plugin-markdown --out ../../docs/js-sdk-docs src/**/*.ts", "test-inspect": "node --inspect-brk node_modules/.bin/jest --runInBand", diff --git a/sdks/ts/src/api/index.ts b/sdks/ts/src/api/index.ts index 96cb98fb6..fe1fea973 100644 --- a/sdks/ts/src/api/index.ts +++ b/sdks/ts/src/api/index.ts @@ -70,6 +70,7 @@ export type { ToolCallWorkflowStep } from "./models/ToolCallWorkflowStep"; export type { ToolChoiceOption } from "./models/ToolChoiceOption"; export type { ToolResponse } from "./models/ToolResponse"; export type { transition_id } from "./models/transition_id"; +export type { TransitionType } from "./models/TransitionType"; export type { UpdateAgentRequest } from "./models/UpdateAgentRequest"; export type { UpdateSessionRequest } from "./models/UpdateSessionRequest"; export type { UpdateToolRequest } from "./models/UpdateToolRequest"; @@ -139,6 +140,7 @@ export { $ToolCallWorkflowStep } from "./schemas/$ToolCallWorkflowStep"; export { $ToolChoiceOption } from "./schemas/$ToolChoiceOption"; export { $ToolResponse } from "./schemas/$ToolResponse"; export { $transition_id } from "./schemas/$transition_id"; +export { $TransitionType } from "./schemas/$TransitionType"; export { $UpdateAgentRequest } from "./schemas/$UpdateAgentRequest"; export { $UpdateSessionRequest } from "./schemas/$UpdateSessionRequest"; export { $UpdateToolRequest } from "./schemas/$UpdateToolRequest"; diff --git a/sdks/ts/src/api/models/ChatSettings.ts b/sdks/ts/src/api/models/ChatSettings.ts index 811fe807f..c6c899ef3 100644 --- a/sdks/ts/src/api/models/ChatSettings.ts +++ b/sdks/ts/src/api/models/ChatSettings.ts @@ -97,4 +97,8 @@ export type ChatSettings = { | "deterministic" | "code" | "multilingual"; + /** + * Model name + */ + model?: string; }; diff --git a/sdks/ts/src/api/models/CreateTask.ts b/sdks/ts/src/api/models/CreateTask.ts index a967b6fb6..bad05898e 100644 --- a/sdks/ts/src/api/models/CreateTask.ts +++ b/sdks/ts/src/api/models/CreateTask.ts @@ -2,29 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -import type { WorkflowStep } from "./WorkflowStep"; /** * Describes a Task */ -export type CreateTask = { - /** - * Name of the Task - */ - name: string; - /** - * Optional Description of the Task - */ - description?: string; - /** - * Available Tools for the Task - */ - tools_available?: Array; - /** - * JSON Schema of parameters - */ - input_schema?: Record; - /** - * Entrypoint Workflow for the Task - */ - main: WorkflowStep; -}; +export type CreateTask = Record; diff --git a/sdks/ts/src/api/models/Execution.ts b/sdks/ts/src/api/models/Execution.ts index a2e32972d..4bcbd3762 100644 --- a/sdks/ts/src/api/models/Execution.ts +++ b/sdks/ts/src/api/models/Execution.ts @@ -6,10 +6,13 @@ import type { ExecutionStatus } from "./ExecutionStatus"; export type Execution = { id: string; task_id: string; - created_at: string; + status: ExecutionStatus; /** - * JSON Schema of parameters + * JSON of parameters */ arguments: Record; - status: ExecutionStatus; + user_id?: string | null; + session_id?: string | null; + created_at: string; + updated_at: string; }; diff --git a/sdks/ts/src/api/models/ExecutionTransition.ts b/sdks/ts/src/api/models/ExecutionTransition.ts index c76be7c34..a9587495b 100644 --- a/sdks/ts/src/api/models/ExecutionTransition.ts +++ b/sdks/ts/src/api/models/ExecutionTransition.ts @@ -2,6 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ +import type { TransitionType } from "./TransitionType"; export type ExecutionTransition = { id: string; execution_id: string; @@ -12,4 +13,5 @@ export type ExecutionTransition = { outputs: Record; from: Array; to: Array | null; + type: TransitionType; }; diff --git a/sdks/ts/src/api/models/Task.ts b/sdks/ts/src/api/models/Task.ts index eeb59cb11..c873c994c 100644 --- a/sdks/ts/src/api/models/Task.ts +++ b/sdks/ts/src/api/models/Task.ts @@ -2,35 +2,7 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -import type { WorkflowStep } from "./WorkflowStep"; /** * Describes a Task */ -export type Task = { - /** - * Name of the Task - */ - name: string; - /** - * Optional Description of the Task - */ - description?: string; - /** - * Available Tools for the Task - */ - tools_available?: Array; - /** - * JSON Schema of parameters - */ - input_schema?: Record; - /** - * Entrypoint Workflow for the Task - */ - main: Array; - /** - * ID of the Task - */ - id: string; - created_at: string; - agent_id: string; -}; +export type Task = Record; diff --git a/sdks/ts/src/api/models/ToolResponse.ts b/sdks/ts/src/api/models/ToolResponse.ts index 064f60e17..c6808ca3b 100644 --- a/sdks/ts/src/api/models/ToolResponse.ts +++ b/sdks/ts/src/api/models/ToolResponse.ts @@ -6,6 +6,6 @@ export type ToolResponse = { /** * Optional Tool ID */ - id?: string; + id: string; output: Record; }; diff --git a/sdks/ts/src/api/models/TransitionType.ts b/sdks/ts/src/api/models/TransitionType.ts new file mode 100644 index 000000000..19192515d --- /dev/null +++ b/sdks/ts/src/api/models/TransitionType.ts @@ -0,0 +1,8 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +/** + * Execution Status + */ +export type TransitionType = string; diff --git a/sdks/ts/src/api/schemas/$ChatSettings.ts b/sdks/ts/src/api/schemas/$ChatSettings.ts index 094519a8e..924a8e381 100644 --- a/sdks/ts/src/api/schemas/$ChatSettings.ts +++ b/sdks/ts/src/api/schemas/$ChatSettings.ts @@ -120,5 +120,9 @@ export const $ChatSettings = { preset: { type: "Enum", }, + model: { + type: "string", + description: `Model name`, + }, }, } as const; diff --git a/sdks/ts/src/api/schemas/$CreateTask.ts b/sdks/ts/src/api/schemas/$CreateTask.ts index ec5a2a25a..a17ba8506 100644 --- a/sdks/ts/src/api/schemas/$CreateTask.ts +++ b/sdks/ts/src/api/schemas/$CreateTask.ts @@ -3,35 +3,8 @@ /* tslint:disable */ /* eslint-disable */ export const $CreateTask = { - description: `Describes a Task`, - properties: { - name: { - type: "string", - description: `Name of the Task`, - isRequired: true, - }, - description: { - type: "string", - description: `Optional Description of the Task`, - }, - tools_available: { - type: "array", - contains: { - type: "string", - description: `Tool UUID`, - format: "uuid", - }, - }, - input_schema: { - type: "dictionary", - contains: { - properties: {}, - }, - }, - main: { - type: "WorkflowStep", - description: `Entrypoint Workflow for the Task`, - isRequired: true, - }, + type: "dictionary", + contains: { + properties: {}, }, } as const; diff --git a/sdks/ts/src/api/schemas/$Execution.ts b/sdks/ts/src/api/schemas/$Execution.ts index 55c169e5b..aa7617556 100644 --- a/sdks/ts/src/api/schemas/$Execution.ts +++ b/sdks/ts/src/api/schemas/$Execution.ts @@ -14,10 +14,9 @@ export const $Execution = { isRequired: true, format: "uuid", }, - created_at: { - type: "string", + status: { + type: "ExecutionStatus", isRequired: true, - format: "uuid", }, arguments: { type: "dictionary", @@ -26,9 +25,25 @@ export const $Execution = { }, isRequired: true, }, - status: { - type: "ExecutionStatus", + user_id: { + type: "string", + isNullable: true, + format: "uuid", + }, + session_id: { + type: "string", + isNullable: true, + format: "uuid", + }, + created_at: { + type: "string", + isRequired: true, + format: "date-time", + }, + updated_at: { + type: "string", isRequired: true, + format: "date-time", }, }, } as const; diff --git a/sdks/ts/src/api/schemas/$ExecutionStatus.ts b/sdks/ts/src/api/schemas/$ExecutionStatus.ts index 2afac5daa..76afcd5ef 100644 --- a/sdks/ts/src/api/schemas/$ExecutionStatus.ts +++ b/sdks/ts/src/api/schemas/$ExecutionStatus.ts @@ -5,5 +5,5 @@ export const $ExecutionStatus = { type: "string", description: `Execution Status`, - pattern: "^(queued|starting|running|waiting_for_input|success|failed)$", + pattern: "^(queued|starting|running|awaiting_input|succeeded|failed)$", } as const; diff --git a/sdks/ts/src/api/schemas/$ExecutionTransition.ts b/sdks/ts/src/api/schemas/$ExecutionTransition.ts index 88a7fb86d..b789afca6 100644 --- a/sdks/ts/src/api/schemas/$ExecutionTransition.ts +++ b/sdks/ts/src/api/schemas/$ExecutionTransition.ts @@ -41,5 +41,9 @@ export const $ExecutionTransition = { isRequired: true, isNullable: true, }, + type: { + type: "TransitionType", + isRequired: true, + }, }, } as const; diff --git a/sdks/ts/src/api/schemas/$Task.ts b/sdks/ts/src/api/schemas/$Task.ts index 7a59a4faf..7aadab6d3 100644 --- a/sdks/ts/src/api/schemas/$Task.ts +++ b/sdks/ts/src/api/schemas/$Task.ts @@ -3,53 +3,8 @@ /* tslint:disable */ /* eslint-disable */ export const $Task = { - description: `Describes a Task`, - properties: { - name: { - type: "string", - description: `Name of the Task`, - isRequired: true, - }, - description: { - type: "string", - description: `Optional Description of the Task`, - }, - tools_available: { - type: "array", - contains: { - type: "string", - description: `Tool UUID`, - format: "uuid", - }, - }, - input_schema: { - type: "dictionary", - contains: { - properties: {}, - }, - }, - main: { - type: "array", - contains: { - type: "WorkflowStep", - }, - isRequired: true, - }, - id: { - type: "string", - description: `ID of the Task`, - isRequired: true, - format: "uuid", - }, - created_at: { - type: "string", - isRequired: true, - format: "date-time", - }, - agent_id: { - type: "string", - isRequired: true, - format: "uuid", - }, + type: "dictionary", + contains: { + properties: {}, }, } as const; diff --git a/sdks/ts/src/api/schemas/$ToolResponse.ts b/sdks/ts/src/api/schemas/$ToolResponse.ts index 8ebb3f8d6..e42939779 100644 --- a/sdks/ts/src/api/schemas/$ToolResponse.ts +++ b/sdks/ts/src/api/schemas/$ToolResponse.ts @@ -7,6 +7,7 @@ export const $ToolResponse = { id: { type: "string", description: `Optional Tool ID`, + isRequired: true, format: "uuid", }, output: { diff --git a/sdks/ts/src/api/schemas/$TransitionType.ts b/sdks/ts/src/api/schemas/$TransitionType.ts new file mode 100644 index 000000000..be66119d5 --- /dev/null +++ b/sdks/ts/src/api/schemas/$TransitionType.ts @@ -0,0 +1,9 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +export const $TransitionType = { + type: "string", + description: `Execution Status`, + pattern: "^(finish|wait|error|step)$", +} as const;