From 06f5fe115ace5ec4ca8149cd0afa6207b193a04c Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 22 Jul 2025 01:32:41 +0000 Subject: [PATCH 1/2] feat(api): manual updates --- .gitignore | 2 + .python-version | 2 +- .stats.yml | 8 +- README.md | 48 +- api.md | 68 +- .../00_sync/000_hello_acp/.dockerignore | 46 + .../00_sync/000_hello_acp/Dockerfile | 45 + .../tutorials/00_sync/000_hello_acp/README.md | 128 + .../00_sync/000_hello_acp/manifest.yaml | 122 + .../00_sync/000_hello_acp/project/__init__.py | 0 .../00_sync/000_hello_acp/project/acp.py | 28 + .../00_sync/000_hello_acp/requirements.txt | 5 + .../00_sync/010_multiturn/.dockerignore | 46 + .../00_sync/010_multiturn/Dockerfile | 45 + .../tutorials/00_sync/010_multiturn/README.md | 127 + .../00_sync/010_multiturn/manifest.yaml | 118 + .../00_sync/010_multiturn/project/__init__.py | 0 .../00_sync/010_multiturn/project/acp.py | 119 + .../00_sync/010_multiturn/requirements.txt | 4 + .../00_sync/020_streaming/.dockerignore | 47 + .../00_sync/020_streaming/Dockerfile | 44 + .../tutorials/00_sync/020_streaming/README.md | 129 + .../00_sync/020_streaming/manifest.yaml | 119 + .../00_sync/020_streaming/project/__init__.py | 0 .../00_sync/020_streaming/project/acp.py | 98 + .../00_sync/020_streaming/requirements.txt | 4 + .../00_sync/020_streaming/test.ipynb | 193 ++ .../00_sync/030_hello_oldowan/.dockerignore | 46 + .../00_sync/030_hello_oldowan/Dockerfile | 45 + .../00_sync/030_hello_oldowan/README.md | 17 + .../00_sync/030_hello_oldowan/manifest.yaml | 115 + .../030_hello_oldowan/project/__init__.py | 0 .../00_sync/030_hello_oldowan/project/acp.py | 512 ++++ .../030_hello_oldowan/requirements.txt | 6 + .../00_base/000_hello_acp/.dockerignore | 46 + .../00_base/000_hello_acp/Dockerfile | 45 + .../00_base/000_hello_acp/manifest.yaml | 122 + .../00_base/000_hello_acp/project/__init__.py | 0 .../00_base/000_hello_acp/project/acp.py | 75 + .../00_base/000_hello_acp/requirements.txt | 4 + .../00_base/010_multiturn/.dockerignore | 46 + .../00_base/010_multiturn/Dockerfile | 45 + .../00_base/010_multiturn/README.md | 21 + .../00_base/010_multiturn/manifest.yaml | 122 + .../00_base/010_multiturn/project/__init__.py | 0 .../00_base/010_multiturn/project/acp.py | 153 ++ .../00_base/010_multiturn/requirements.txt | 4 + .../00_base/020_streaming/.dockerignore | 46 + .../00_base/020_streaming/Dockerfile | 45 + .../00_base/020_streaming/README.md | 127 + .../00_base/020_streaming/manifest.yaml | 119 + .../00_base/020_streaming/project/__init__.py | 0 .../00_base/020_streaming/project/acp.py | 130 + .../00_base/020_streaming/requirements.txt | 5 + .../00_base/030_tracing/.dockerignore | 46 + .../10_agentic/00_base/030_tracing/Dockerfile | 45 + .../10_agentic/00_base/030_tracing/README.md | 141 ++ .../00_base/030_tracing/manifest.yaml | 119 + .../00_base/030_tracing/project/__init__.py | 0 .../00_base/030_tracing/project/acp.py | 152 ++ .../00_base/030_tracing/requirements.txt | 4 + .../00_base/040_other_sdks/.dockerignore | 46 + .../00_base/040_other_sdks/Dockerfile | 45 + .../00_base/040_other_sdks/README.md | 127 + .../00_base/040_other_sdks/manifest.yaml | 119 + .../040_other_sdks/project/__init__.py | 0 .../00_base/040_other_sdks/project/acp.py | 376 +++ .../00_base/040_other_sdks/requirements.txt | 4 + .../00_base/050_hello_oldowan/.dockerignore | 46 + .../00_base/050_hello_oldowan/Dockerfile | 45 + .../00_base/050_hello_oldowan/README.md | 17 + .../00_base/050_hello_oldowan/manifest.yaml | 116 + .../050_hello_oldowan/project/__init__.py | 0 .../00_base/050_hello_oldowan/project/acp.py | 435 ++++ .../050_hello_oldowan/requirements.txt | 6 + .../060_hello_egp_services/.dockerignore | 46 + .../00_base/060_hello_egp_services/Dockerfile | 45 + .../00_base/060_hello_egp_services/README.md | 17 + .../060_hello_egp_services/manifest.yaml | 116 + .../project/__init__.py | 0 .../060_hello_egp_services/project/acp.py | 264 ++ .../060_hello_egp_services/requirements.txt | 7 + .../00_base/080_batch_events/.dockerignore | 43 + .../00_base/080_batch_events/Dockerfile | 45 + .../00_base/080_batch_events/README.md | 174 ++ .../00_base/080_batch_events/manifest.yaml | 118 + .../080_batch_events/project/__init__.py | 0 .../00_base/080_batch_events/project/acp.py | 237 ++ .../00_base/080_batch_events/requirements.txt | 5 + .../080_batch_events/test_batch_events.py | 110 + .../10_temporal/000_hello_acp/.dockerignore | 46 + .../10_temporal/000_hello_acp/Dockerfile | 51 + .../10_temporal/000_hello_acp/README.md | 134 + .../10_temporal/000_hello_acp/manifest.yaml | 139 ++ .../000_hello_acp/project/__init__.py | 0 .../10_temporal/000_hello_acp/project/acp.py | 31 + .../000_hello_acp/project/run_worker.py | 33 + .../000_hello_acp/project/workflow.py | 71 + .../000_hello_acp/requirements.txt | 4 + .../010_agent_chat/.codeartifact-pip-conf | 4 + .../10_temporal/010_agent_chat/.dockerignore | 46 + .../10_temporal/010_agent_chat/Dockerfile | 51 + .../10_temporal/010_agent_chat/README.md | 132 + .../10_temporal/010_agent_chat/manifest.yaml | 139 ++ .../010_agent_chat/project/__init__.py | 0 .../10_temporal/010_agent_chat/project/acp.py | 31 + .../010_agent_chat/project/run_worker.py | 32 + .../010_agent_chat/project/workflow.py | 147 ++ .../010_agent_chat/requirements.txt | 4 + .../020_state_machine/.dockerignore | 46 + .../10_temporal/020_state_machine/Dockerfile | 51 + .../10_temporal/020_state_machine/README.md | 145 ++ .../020_state_machine/manifest.yaml | 138 ++ .../020_state_machine/project/__init__.py | 0 .../020_state_machine/project/acp.py | 31 + .../020_state_machine/project/run_worker.py | 33 + .../project/state_machines/deep_research.py | 40 + .../020_state_machine/project/workflow.py | 142 ++ .../deep_research/clarify_user_query.py | 83 + .../deep_research/performing_deep_research.py | 156 ++ .../deep_research/waiting_for_user_input.py | 17 + .../020_state_machine/requirements.txt | 5 + pyproject.toml | 43 +- src/agentex/__init__.py | 15 +- src/agentex/_client.py | 191 +- src/agentex/lib/__init__.py | 0 src/agentex/lib/adk/__init__.py | 41 + src/agentex/lib/adk/_modules/__init__.py | 0 src/agentex/lib/adk/_modules/acp.py | 247 ++ .../lib/adk/_modules/agent_task_tracker.py | 176 ++ src/agentex/lib/adk/_modules/agents.py | 77 + src/agentex/lib/adk/_modules/events.py | 141 ++ src/agentex/lib/adk/_modules/messages.py | 285 +++ src/agentex/lib/adk/_modules/state.py | 291 +++ src/agentex/lib/adk/_modules/streaming.py | 75 + src/agentex/lib/adk/_modules/tasks.py | 124 + src/agentex/lib/adk/_modules/tracing.py | 194 ++ src/agentex/lib/adk/providers/__init__.py | 9 + .../lib/adk/providers/_modules/__init__.py | 0 .../lib/adk/providers/_modules/litellm.py | 232 ++ .../lib/adk/providers/_modules/openai.py | 416 ++++ src/agentex/lib/adk/providers/_modules/sgp.py | 85 + src/agentex/lib/adk/utils/__init__.py | 5 + .../lib/adk/utils/_modules/__init__.py | 0 .../lib/adk/utils/_modules/templating.py | 94 + src/agentex/lib/cli/__init__.py | 0 src/agentex/lib/cli/commands/__init__.py | 0 src/agentex/lib/cli/commands/agents.py | 258 ++ src/agentex/lib/cli/commands/init.py | 241 ++ src/agentex/lib/cli/commands/main.py | 33 + src/agentex/lib/cli/commands/secrets.py | 169 ++ src/agentex/lib/cli/commands/tasks.py | 46 + src/agentex/lib/cli/commands/uv.py | 197 ++ src/agentex/lib/cli/handlers/__init__.py | 0 .../lib/cli/handlers/agent_handlers.py | 135 ++ .../lib/cli/handlers/deploy_handlers.py | 351 +++ src/agentex/lib/cli/handlers/run_handlers.py | 355 +++ .../lib/cli/handlers/secret_handlers.py | 670 +++++ .../cli/templates/default/.dockerignore.j2 | 46 + .../cli/templates/default/Dockerfile-uv.j2 | 45 + .../lib/cli/templates/default/Dockerfile.j2 | 45 + .../lib/cli/templates/default/README.md.j2 | 199 ++ .../templates/default/deploy/example.yaml.j2 | 55 + .../cli/templates/default/manifest.yaml.j2 | 116 + .../cli/templates/default/project/acp.py.j2 | 29 + .../cli/templates/default/pyproject.toml.j2 | 41 + .../cli/templates/default/requirements.txt.j2 | 5 + ... 2025-03-19 at 10.36.57\342\200\257AM.png" | Bin 0 -> 3133708 bytes .../lib/cli/templates/deploy/example.yaml.j2 | 55 + .../lib/cli/templates/sync/.dockerignore.j2 | 46 + .../lib/cli/templates/sync/Dockerfile-uv.j2 | 45 + .../lib/cli/templates/sync/Dockerfile.j2 | 45 + .../lib/cli/templates/sync/README.md.j2 | 300 +++ .../cli/templates/sync/deploy/example.yaml.j2 | 55 + .../lib/cli/templates/sync/manifest.yaml.j2 | 116 + .../lib/cli/templates/sync/project/acp.py.j2 | 27 + .../lib/cli/templates/sync/pyproject.toml.j2 | 41 + .../cli/templates/sync/requirements.txt.j2 | 5 + .../cli/templates/temporal/.dockerignore.j2 | 46 + .../cli/templates/temporal/Dockerfile-uv.j2 | 51 + .../lib/cli/templates/temporal/Dockerfile.j2 | 51 + .../lib/cli/templates/temporal/README.md.j2 | 323 +++ .../templates/temporal/deploy/example.yaml.j2 | 55 + .../cli/templates/temporal/manifest.yaml.j2 | 137 ++ .../cli/templates/temporal/project/acp.py.j2 | 30 + .../temporal/project/run_worker.py.j2 | 33 + .../templates/temporal/project/workflow.py.j2 | 66 + .../cli/templates/temporal/pyproject.toml.j2 | 42 + .../templates/temporal/requirements.txt.j2 | 5 + src/agentex/lib/cli/utils/cli_utils.py | 14 + src/agentex/lib/cli/utils/credential_utils.py | 103 + src/agentex/lib/cli/utils/exceptions.py | 6 + src/agentex/lib/cli/utils/kubectl_utils.py | 135 ++ .../lib/cli/utils/kubernetes_secrets_utils.py | 185 ++ src/agentex/lib/core/__init__.py | 0 src/agentex/lib/core/adapters/__init__.py | 0 src/agentex/lib/core/adapters/llm/__init__.py | 1 + .../lib/core/adapters/llm/adapter_litellm.py | 46 + .../lib/core/adapters/llm/adapter_sgp.py | 55 + src/agentex/lib/core/adapters/llm/port.py | 24 + .../core/adapters/streams/adapter_redis.py | 128 + src/agentex/lib/core/adapters/streams/port.py | 50 + src/agentex/lib/core/clients/__init__.py | 1 + .../lib/core/clients/temporal/__init__.py | 0 .../core/clients/temporal/temporal_client.py | 181 ++ .../lib/core/clients/temporal/types.py | 47 + .../lib/core/clients/temporal/utils.py | 56 + src/agentex/lib/core/services/__init__.py | 0 src/agentex/lib/core/services/adk/__init__.py | 0 .../lib/core/services/adk/acp/__init__.py | 0 src/agentex/lib/core/services/adk/acp/acp.py | 210 ++ .../core/services/adk/agent_task_tracker.py | 85 + src/agentex/lib/core/services/adk/agents.py | 43 + src/agentex/lib/core/services/adk/events.py | 61 + src/agentex/lib/core/services/adk/messages.py | 164 ++ .../core/services/adk/providers/__init__.py | 0 .../core/services/adk/providers/litellm.py | 256 ++ .../lib/core/services/adk/providers/openai.py | 723 ++++++ .../lib/core/services/adk/providers/sgp.py | 99 + src/agentex/lib/core/services/adk/state.py | 120 + .../lib/core/services/adk/streaming.py | 262 ++ src/agentex/lib/core/services/adk/tasks.py | 69 + src/agentex/lib/core/services/adk/tracing.py | 36 + .../lib/core/services/adk/utils/__init__.py | 0 .../lib/core/services/adk/utils/templating.py | 58 + src/agentex/lib/core/temporal/__init__.py | 0 .../lib/core/temporal/activities/__init__.py | 207 ++ .../temporal/activities/activity_helpers.py | 37 + .../core/temporal/activities/adk/__init__.py | 0 .../temporal/activities/adk/acp/__init__.py | 0 .../activities/adk/acp/acp_activities.py | 86 + .../adk/agent_task_tracker_activities.py | 76 + .../activities/adk/agents_activities.py | 35 + .../activities/adk/events_activities.py | 50 + .../activities/adk/messages_activities.py | 94 + .../activities/adk/providers/__init__.py | 0 .../adk/providers/litellm_activities.py | 71 + .../adk/providers/openai_activities.py | 210 ++ .../adk/providers/sgp_activities.py | 42 + .../activities/adk/state_activities.py | 85 + .../activities/adk/streaming_activities.py | 33 + .../activities/adk/tasks_activities.py | 48 + .../activities/adk/tracing_activities.py | 55 + .../temporal/activities/adk/utils/__init__.py | 0 .../adk/utils/templating_activities.py | 41 + .../lib/core/temporal/services/__init__.py | 0 .../services/temporal_task_service.py | 69 + .../lib/core/temporal/types/__init__.py | 0 .../lib/core/temporal/types/workflow.py | 5 + .../lib/core/temporal/workers/__init__.py | 0 .../lib/core/temporal/workers/worker.py | 162 ++ .../lib/core/temporal/workflows/workflow.py | 26 + src/agentex/lib/core/tracing/__init__.py | 5 + .../processors/agentex_tracing_processor.py | 117 + .../processors/sgp_tracing_processor.py | 119 + .../processors/tracing_processor_interface.py | 40 + src/agentex/lib/core/tracing/trace.py | 311 +++ src/agentex/lib/core/tracing/tracer.py | 70 + .../core/tracing/tracing_processor_manager.py | 62 + src/agentex/lib/environment_variables.py | 87 + src/agentex/lib/py.typed | 0 src/agentex/lib/sdk/__init__.py | 0 src/agentex/lib/sdk/config/__init__.py | 0 src/agentex/lib/sdk/config/agent_config.py | 61 + src/agentex/lib/sdk/config/agent_manifest.py | 219 ++ src/agentex/lib/sdk/config/build_config.py | 35 + .../lib/sdk/config/deployment_config.py | 117 + .../sdk/config/local_development_config.py | 56 + src/agentex/lib/sdk/config/project_config.py | 103 + src/agentex/lib/sdk/fastacp/__init__.py | 3 + .../lib/sdk/fastacp/base/base_acp_server.py | 406 ++++ src/agentex/lib/sdk/fastacp/fastacp.py | 74 + .../lib/sdk/fastacp/impl/agentic_base_acp.py | 72 + src/agentex/lib/sdk/fastacp/impl/sync_acp.py | 109 + .../lib/sdk/fastacp/impl/temporal_acp.py | 97 + src/agentex/lib/sdk/fastacp/tests/README.md | 297 +++ src/agentex/lib/sdk/fastacp/tests/conftest.py | 307 +++ src/agentex/lib/sdk/fastacp/tests/pytest.ini | 10 + .../lib/sdk/fastacp/tests/run_tests.py | 227 ++ .../sdk/fastacp/tests/test_base_acp_server.py | 450 ++++ .../sdk/fastacp/tests/test_fastacp_factory.py | 344 +++ .../lib/sdk/fastacp/tests/test_integration.py | 477 ++++ src/agentex/lib/sdk/state_machine/__init__.py | 6 + .../lib/sdk/state_machine/noop_workflow.py | 21 + src/agentex/lib/sdk/state_machine/state.py | 10 + .../lib/sdk/state_machine/state_machine.py | 189 ++ .../lib/sdk/state_machine/state_workflow.py | 16 + src/agentex/lib/sdk/utils/__init__.py | 0 src/agentex/lib/sdk/utils/messages.py | 223 ++ src/agentex/lib/types/__init__.py | 0 src/agentex/lib/types/acp.py | 94 + src/agentex/lib/types/agent_configs.py | 79 + src/agentex/lib/types/agent_results.py | 29 + src/agentex/lib/types/credentials.py | 34 + src/agentex/lib/types/fastacp.py | 61 + src/agentex/lib/types/files.py | 13 + src/agentex/lib/types/json_rpc.py | 49 + src/agentex/lib/types/llm_messages.py | 354 +++ src/agentex/lib/types/task_message_updates.py | 171 ++ src/agentex/lib/types/tracing.py | 34 + src/agentex/lib/utils/__init__.py | 0 src/agentex/lib/utils/completions.py | 131 + src/agentex/lib/utils/console.py | 14 + src/agentex/lib/utils/io.py | 29 + src/agentex/lib/utils/iterables.py | 14 + src/agentex/lib/utils/json_schema.py | 23 + src/agentex/lib/utils/logging.py | 31 + src/agentex/lib/utils/mcp.py | 17 + src/agentex/lib/utils/model_utils.py | 46 + src/agentex/lib/utils/parsing.py | 15 + src/agentex/lib/utils/regex.py | 6 + src/agentex/lib/utils/temporal.py | 13 + src/agentex/resources/__init__.py | 14 - src/agentex/resources/{agents => }/agents.py | 332 ++- src/agentex/resources/agents/__init__.py | 33 - src/agentex/resources/agents/name.py | 350 --- src/agentex/resources/echo.py | 162 -- src/agentex/resources/messages/batch.py | 9 +- src/agentex/resources/messages/messages.py | 21 +- src/agentex/resources/{tasks => }/tasks.py | 286 ++- src/agentex/resources/tasks/__init__.py | 33 - src/agentex/resources/tasks/name.py | 324 --- src/agentex/types/__init__.py | 12 +- src/agentex/types/agent_rpc_by_name_params.py | 21 + src/agentex/types/agent_rpc_params.py | 54 +- src/agentex/types/agent_rpc_params1.py | 21 + src/agentex/types/agent_rpc_response.py | 20 + src/agentex/types/agent_rpc_result.py | 90 + src/agentex/types/agents/__init__.py | 5 - src/agentex/types/agents/name_rpc_params.py | 85 - src/agentex/types/data_content.py | 4 +- src/agentex/types/data_delta.py | 14 + src/agentex/types/echo_send_params.py | 11 - src/agentex/types/event.py | 17 +- src/agentex/types/message_create_params.py | 19 +- src/agentex/types/message_update_params.py | 19 +- .../types/messages/batch_create_params.py | 16 +- .../types/messages/batch_update_params.py | 16 +- src/agentex/types/streaming_status.py | 7 - src/agentex/types/task_message.py | 37 +- src/agentex/types/task_message_content.py | 16 + .../types/task_message_content_param.py | 17 + src/agentex/types/task_message_delta.py | 16 + src/agentex/types/tasks/__init__.py | 3 - src/agentex/types/text_content.py | 6 +- src/agentex/types/text_delta.py | 14 + src/agentex/types/tool_request_content.py | 4 +- src/agentex/types/tool_request_delta.py | 18 + src/agentex/types/tool_response_content.py | 4 +- src/agentex/types/tool_response_delta.py | 18 + src/agentex_sdk/lib/.keep | 4 - tests/api_resources/agents/__init__.py | 1 - tests/api_resources/agents/test_name.py | 322 --- tests/api_resources/tasks/__init__.py | 1 - tests/api_resources/tasks/test_name.py | 274 --- tests/api_resources/test_agents.py | 320 ++- tests/api_resources/test_client.py | 79 - tests/api_resources/test_echo.py | 91 - tests/api_resources/test_tasks.py | 250 ++ tests/conftest.py | 8 +- tests/test_client.py | 253 +- uv.lock | 2149 +++++++++++++++++ 362 files changed, 30079 insertions(+), 2408 deletions(-) create mode 100644 examples/tutorials/00_sync/000_hello_acp/.dockerignore create mode 100644 examples/tutorials/00_sync/000_hello_acp/Dockerfile create mode 100644 examples/tutorials/00_sync/000_hello_acp/README.md create mode 100644 examples/tutorials/00_sync/000_hello_acp/manifest.yaml create mode 100644 examples/tutorials/00_sync/000_hello_acp/project/__init__.py create mode 100644 examples/tutorials/00_sync/000_hello_acp/project/acp.py create mode 100644 examples/tutorials/00_sync/000_hello_acp/requirements.txt create mode 100644 examples/tutorials/00_sync/010_multiturn/.dockerignore create mode 100644 examples/tutorials/00_sync/010_multiturn/Dockerfile create mode 100644 examples/tutorials/00_sync/010_multiturn/README.md create mode 100644 examples/tutorials/00_sync/010_multiturn/manifest.yaml create mode 100644 examples/tutorials/00_sync/010_multiturn/project/__init__.py create mode 100644 examples/tutorials/00_sync/010_multiturn/project/acp.py create mode 100644 examples/tutorials/00_sync/010_multiturn/requirements.txt create mode 100644 examples/tutorials/00_sync/020_streaming/.dockerignore create mode 100644 examples/tutorials/00_sync/020_streaming/Dockerfile create mode 100644 examples/tutorials/00_sync/020_streaming/README.md create mode 100644 examples/tutorials/00_sync/020_streaming/manifest.yaml create mode 100644 examples/tutorials/00_sync/020_streaming/project/__init__.py create mode 100644 examples/tutorials/00_sync/020_streaming/project/acp.py create mode 100644 examples/tutorials/00_sync/020_streaming/requirements.txt create mode 100644 examples/tutorials/00_sync/020_streaming/test.ipynb create mode 100644 examples/tutorials/00_sync/030_hello_oldowan/.dockerignore create mode 100644 examples/tutorials/00_sync/030_hello_oldowan/Dockerfile create mode 100644 examples/tutorials/00_sync/030_hello_oldowan/README.md create mode 100644 examples/tutorials/00_sync/030_hello_oldowan/manifest.yaml create mode 100644 examples/tutorials/00_sync/030_hello_oldowan/project/__init__.py create mode 100644 examples/tutorials/00_sync/030_hello_oldowan/project/acp.py create mode 100644 examples/tutorials/00_sync/030_hello_oldowan/requirements.txt create mode 100644 examples/tutorials/10_agentic/00_base/000_hello_acp/.dockerignore create mode 100644 examples/tutorials/10_agentic/00_base/000_hello_acp/Dockerfile create mode 100644 examples/tutorials/10_agentic/00_base/000_hello_acp/manifest.yaml create mode 100644 examples/tutorials/10_agentic/00_base/000_hello_acp/project/__init__.py create mode 100644 examples/tutorials/10_agentic/00_base/000_hello_acp/project/acp.py create mode 100644 examples/tutorials/10_agentic/00_base/000_hello_acp/requirements.txt create mode 100644 examples/tutorials/10_agentic/00_base/010_multiturn/.dockerignore create mode 100644 examples/tutorials/10_agentic/00_base/010_multiturn/Dockerfile create mode 100644 examples/tutorials/10_agentic/00_base/010_multiturn/README.md create mode 100644 examples/tutorials/10_agentic/00_base/010_multiturn/manifest.yaml create mode 100644 examples/tutorials/10_agentic/00_base/010_multiturn/project/__init__.py create mode 100644 examples/tutorials/10_agentic/00_base/010_multiturn/project/acp.py create mode 100644 examples/tutorials/10_agentic/00_base/010_multiturn/requirements.txt create mode 100644 examples/tutorials/10_agentic/00_base/020_streaming/.dockerignore create mode 100644 examples/tutorials/10_agentic/00_base/020_streaming/Dockerfile create mode 100644 examples/tutorials/10_agentic/00_base/020_streaming/README.md create mode 100644 examples/tutorials/10_agentic/00_base/020_streaming/manifest.yaml create mode 100644 examples/tutorials/10_agentic/00_base/020_streaming/project/__init__.py create mode 100644 examples/tutorials/10_agentic/00_base/020_streaming/project/acp.py create mode 100644 examples/tutorials/10_agentic/00_base/020_streaming/requirements.txt create mode 100644 examples/tutorials/10_agentic/00_base/030_tracing/.dockerignore create mode 100644 examples/tutorials/10_agentic/00_base/030_tracing/Dockerfile create mode 100644 examples/tutorials/10_agentic/00_base/030_tracing/README.md create mode 100644 examples/tutorials/10_agentic/00_base/030_tracing/manifest.yaml create mode 100644 examples/tutorials/10_agentic/00_base/030_tracing/project/__init__.py create mode 100644 examples/tutorials/10_agentic/00_base/030_tracing/project/acp.py create mode 100644 examples/tutorials/10_agentic/00_base/030_tracing/requirements.txt create mode 100644 examples/tutorials/10_agentic/00_base/040_other_sdks/.dockerignore create mode 100644 examples/tutorials/10_agentic/00_base/040_other_sdks/Dockerfile create mode 100644 examples/tutorials/10_agentic/00_base/040_other_sdks/README.md create mode 100644 examples/tutorials/10_agentic/00_base/040_other_sdks/manifest.yaml create mode 100644 examples/tutorials/10_agentic/00_base/040_other_sdks/project/__init__.py create mode 100644 examples/tutorials/10_agentic/00_base/040_other_sdks/project/acp.py create mode 100644 examples/tutorials/10_agentic/00_base/040_other_sdks/requirements.txt create mode 100644 examples/tutorials/10_agentic/00_base/050_hello_oldowan/.dockerignore create mode 100644 examples/tutorials/10_agentic/00_base/050_hello_oldowan/Dockerfile create mode 100644 examples/tutorials/10_agentic/00_base/050_hello_oldowan/README.md create mode 100644 examples/tutorials/10_agentic/00_base/050_hello_oldowan/manifest.yaml create mode 100644 examples/tutorials/10_agentic/00_base/050_hello_oldowan/project/__init__.py create mode 100644 examples/tutorials/10_agentic/00_base/050_hello_oldowan/project/acp.py create mode 100644 examples/tutorials/10_agentic/00_base/050_hello_oldowan/requirements.txt create mode 100644 examples/tutorials/10_agentic/00_base/060_hello_egp_services/.dockerignore create mode 100644 examples/tutorials/10_agentic/00_base/060_hello_egp_services/Dockerfile create mode 100644 examples/tutorials/10_agentic/00_base/060_hello_egp_services/README.md create mode 100644 examples/tutorials/10_agentic/00_base/060_hello_egp_services/manifest.yaml create mode 100644 examples/tutorials/10_agentic/00_base/060_hello_egp_services/project/__init__.py create mode 100644 examples/tutorials/10_agentic/00_base/060_hello_egp_services/project/acp.py create mode 100644 examples/tutorials/10_agentic/00_base/060_hello_egp_services/requirements.txt create mode 100644 examples/tutorials/10_agentic/00_base/080_batch_events/.dockerignore create mode 100644 examples/tutorials/10_agentic/00_base/080_batch_events/Dockerfile create mode 100644 examples/tutorials/10_agentic/00_base/080_batch_events/README.md create mode 100644 examples/tutorials/10_agentic/00_base/080_batch_events/manifest.yaml create mode 100644 examples/tutorials/10_agentic/00_base/080_batch_events/project/__init__.py create mode 100644 examples/tutorials/10_agentic/00_base/080_batch_events/project/acp.py create mode 100644 examples/tutorials/10_agentic/00_base/080_batch_events/requirements.txt create mode 100644 examples/tutorials/10_agentic/00_base/080_batch_events/test_batch_events.py create mode 100644 examples/tutorials/10_agentic/10_temporal/000_hello_acp/.dockerignore create mode 100644 examples/tutorials/10_agentic/10_temporal/000_hello_acp/Dockerfile create mode 100644 examples/tutorials/10_agentic/10_temporal/000_hello_acp/README.md create mode 100644 examples/tutorials/10_agentic/10_temporal/000_hello_acp/manifest.yaml create mode 100644 examples/tutorials/10_agentic/10_temporal/000_hello_acp/project/__init__.py create mode 100644 examples/tutorials/10_agentic/10_temporal/000_hello_acp/project/acp.py create mode 100644 examples/tutorials/10_agentic/10_temporal/000_hello_acp/project/run_worker.py create mode 100644 examples/tutorials/10_agentic/10_temporal/000_hello_acp/project/workflow.py create mode 100644 examples/tutorials/10_agentic/10_temporal/000_hello_acp/requirements.txt create mode 100644 examples/tutorials/10_agentic/10_temporal/010_agent_chat/.codeartifact-pip-conf create mode 100644 examples/tutorials/10_agentic/10_temporal/010_agent_chat/.dockerignore create mode 100644 examples/tutorials/10_agentic/10_temporal/010_agent_chat/Dockerfile create mode 100644 examples/tutorials/10_agentic/10_temporal/010_agent_chat/README.md create mode 100644 examples/tutorials/10_agentic/10_temporal/010_agent_chat/manifest.yaml create mode 100644 examples/tutorials/10_agentic/10_temporal/010_agent_chat/project/__init__.py create mode 100644 examples/tutorials/10_agentic/10_temporal/010_agent_chat/project/acp.py create mode 100644 examples/tutorials/10_agentic/10_temporal/010_agent_chat/project/run_worker.py create mode 100644 examples/tutorials/10_agentic/10_temporal/010_agent_chat/project/workflow.py create mode 100644 examples/tutorials/10_agentic/10_temporal/010_agent_chat/requirements.txt create mode 100644 examples/tutorials/10_agentic/10_temporal/020_state_machine/.dockerignore create mode 100644 examples/tutorials/10_agentic/10_temporal/020_state_machine/Dockerfile create mode 100644 examples/tutorials/10_agentic/10_temporal/020_state_machine/README.md create mode 100644 examples/tutorials/10_agentic/10_temporal/020_state_machine/manifest.yaml create mode 100644 examples/tutorials/10_agentic/10_temporal/020_state_machine/project/__init__.py create mode 100644 examples/tutorials/10_agentic/10_temporal/020_state_machine/project/acp.py create mode 100644 examples/tutorials/10_agentic/10_temporal/020_state_machine/project/run_worker.py create mode 100644 examples/tutorials/10_agentic/10_temporal/020_state_machine/project/state_machines/deep_research.py create mode 100644 examples/tutorials/10_agentic/10_temporal/020_state_machine/project/workflow.py create mode 100644 examples/tutorials/10_agentic/10_temporal/020_state_machine/project/workflows/deep_research/clarify_user_query.py create mode 100644 examples/tutorials/10_agentic/10_temporal/020_state_machine/project/workflows/deep_research/performing_deep_research.py create mode 100644 examples/tutorials/10_agentic/10_temporal/020_state_machine/project/workflows/deep_research/waiting_for_user_input.py create mode 100644 examples/tutorials/10_agentic/10_temporal/020_state_machine/requirements.txt create mode 100644 src/agentex/lib/__init__.py create mode 100644 src/agentex/lib/adk/__init__.py create mode 100644 src/agentex/lib/adk/_modules/__init__.py create mode 100644 src/agentex/lib/adk/_modules/acp.py create mode 100644 src/agentex/lib/adk/_modules/agent_task_tracker.py create mode 100644 src/agentex/lib/adk/_modules/agents.py create mode 100644 src/agentex/lib/adk/_modules/events.py create mode 100644 src/agentex/lib/adk/_modules/messages.py create mode 100644 src/agentex/lib/adk/_modules/state.py create mode 100644 src/agentex/lib/adk/_modules/streaming.py create mode 100644 src/agentex/lib/adk/_modules/tasks.py create mode 100644 src/agentex/lib/adk/_modules/tracing.py create mode 100644 src/agentex/lib/adk/providers/__init__.py create mode 100644 src/agentex/lib/adk/providers/_modules/__init__.py create mode 100644 src/agentex/lib/adk/providers/_modules/litellm.py create mode 100644 src/agentex/lib/adk/providers/_modules/openai.py create mode 100644 src/agentex/lib/adk/providers/_modules/sgp.py create mode 100644 src/agentex/lib/adk/utils/__init__.py create mode 100644 src/agentex/lib/adk/utils/_modules/__init__.py create mode 100644 src/agentex/lib/adk/utils/_modules/templating.py create mode 100644 src/agentex/lib/cli/__init__.py create mode 100644 src/agentex/lib/cli/commands/__init__.py create mode 100644 src/agentex/lib/cli/commands/agents.py create mode 100644 src/agentex/lib/cli/commands/init.py create mode 100644 src/agentex/lib/cli/commands/main.py create mode 100644 src/agentex/lib/cli/commands/secrets.py create mode 100644 src/agentex/lib/cli/commands/tasks.py create mode 100644 src/agentex/lib/cli/commands/uv.py create mode 100644 src/agentex/lib/cli/handlers/__init__.py create mode 100644 src/agentex/lib/cli/handlers/agent_handlers.py create mode 100644 src/agentex/lib/cli/handlers/deploy_handlers.py create mode 100644 src/agentex/lib/cli/handlers/run_handlers.py create mode 100644 src/agentex/lib/cli/handlers/secret_handlers.py create mode 100644 src/agentex/lib/cli/templates/default/.dockerignore.j2 create mode 100644 src/agentex/lib/cli/templates/default/Dockerfile-uv.j2 create mode 100644 src/agentex/lib/cli/templates/default/Dockerfile.j2 create mode 100644 src/agentex/lib/cli/templates/default/README.md.j2 create mode 100644 src/agentex/lib/cli/templates/default/deploy/example.yaml.j2 create mode 100644 src/agentex/lib/cli/templates/default/manifest.yaml.j2 create mode 100644 src/agentex/lib/cli/templates/default/project/acp.py.j2 create mode 100644 src/agentex/lib/cli/templates/default/pyproject.toml.j2 create mode 100644 src/agentex/lib/cli/templates/default/requirements.txt.j2 create mode 100644 "src/agentex/lib/cli/templates/deploy/Screenshot 2025-03-19 at 10.36.57\342\200\257AM.png" create mode 100644 src/agentex/lib/cli/templates/deploy/example.yaml.j2 create mode 100644 src/agentex/lib/cli/templates/sync/.dockerignore.j2 create mode 100644 src/agentex/lib/cli/templates/sync/Dockerfile-uv.j2 create mode 100644 src/agentex/lib/cli/templates/sync/Dockerfile.j2 create mode 100644 src/agentex/lib/cli/templates/sync/README.md.j2 create mode 100644 src/agentex/lib/cli/templates/sync/deploy/example.yaml.j2 create mode 100644 src/agentex/lib/cli/templates/sync/manifest.yaml.j2 create mode 100644 src/agentex/lib/cli/templates/sync/project/acp.py.j2 create mode 100644 src/agentex/lib/cli/templates/sync/pyproject.toml.j2 create mode 100644 src/agentex/lib/cli/templates/sync/requirements.txt.j2 create mode 100644 src/agentex/lib/cli/templates/temporal/.dockerignore.j2 create mode 100644 src/agentex/lib/cli/templates/temporal/Dockerfile-uv.j2 create mode 100644 src/agentex/lib/cli/templates/temporal/Dockerfile.j2 create mode 100644 src/agentex/lib/cli/templates/temporal/README.md.j2 create mode 100644 src/agentex/lib/cli/templates/temporal/deploy/example.yaml.j2 create mode 100644 src/agentex/lib/cli/templates/temporal/manifest.yaml.j2 create mode 100644 src/agentex/lib/cli/templates/temporal/project/acp.py.j2 create mode 100644 src/agentex/lib/cli/templates/temporal/project/run_worker.py.j2 create mode 100644 src/agentex/lib/cli/templates/temporal/project/workflow.py.j2 create mode 100644 src/agentex/lib/cli/templates/temporal/pyproject.toml.j2 create mode 100644 src/agentex/lib/cli/templates/temporal/requirements.txt.j2 create mode 100644 src/agentex/lib/cli/utils/cli_utils.py create mode 100644 src/agentex/lib/cli/utils/credential_utils.py create mode 100644 src/agentex/lib/cli/utils/exceptions.py create mode 100644 src/agentex/lib/cli/utils/kubectl_utils.py create mode 100644 src/agentex/lib/cli/utils/kubernetes_secrets_utils.py create mode 100644 src/agentex/lib/core/__init__.py create mode 100644 src/agentex/lib/core/adapters/__init__.py create mode 100644 src/agentex/lib/core/adapters/llm/__init__.py create mode 100644 src/agentex/lib/core/adapters/llm/adapter_litellm.py create mode 100644 src/agentex/lib/core/adapters/llm/adapter_sgp.py create mode 100644 src/agentex/lib/core/adapters/llm/port.py create mode 100644 src/agentex/lib/core/adapters/streams/adapter_redis.py create mode 100644 src/agentex/lib/core/adapters/streams/port.py create mode 100644 src/agentex/lib/core/clients/__init__.py create mode 100644 src/agentex/lib/core/clients/temporal/__init__.py create mode 100644 src/agentex/lib/core/clients/temporal/temporal_client.py create mode 100644 src/agentex/lib/core/clients/temporal/types.py create mode 100644 src/agentex/lib/core/clients/temporal/utils.py create mode 100644 src/agentex/lib/core/services/__init__.py create mode 100644 src/agentex/lib/core/services/adk/__init__.py create mode 100644 src/agentex/lib/core/services/adk/acp/__init__.py create mode 100644 src/agentex/lib/core/services/adk/acp/acp.py create mode 100644 src/agentex/lib/core/services/adk/agent_task_tracker.py create mode 100644 src/agentex/lib/core/services/adk/agents.py create mode 100644 src/agentex/lib/core/services/adk/events.py create mode 100644 src/agentex/lib/core/services/adk/messages.py create mode 100644 src/agentex/lib/core/services/adk/providers/__init__.py create mode 100644 src/agentex/lib/core/services/adk/providers/litellm.py create mode 100644 src/agentex/lib/core/services/adk/providers/openai.py create mode 100644 src/agentex/lib/core/services/adk/providers/sgp.py create mode 100644 src/agentex/lib/core/services/adk/state.py create mode 100644 src/agentex/lib/core/services/adk/streaming.py create mode 100644 src/agentex/lib/core/services/adk/tasks.py create mode 100644 src/agentex/lib/core/services/adk/tracing.py create mode 100644 src/agentex/lib/core/services/adk/utils/__init__.py create mode 100644 src/agentex/lib/core/services/adk/utils/templating.py create mode 100644 src/agentex/lib/core/temporal/__init__.py create mode 100644 src/agentex/lib/core/temporal/activities/__init__.py create mode 100644 src/agentex/lib/core/temporal/activities/activity_helpers.py create mode 100644 src/agentex/lib/core/temporal/activities/adk/__init__.py create mode 100644 src/agentex/lib/core/temporal/activities/adk/acp/__init__.py create mode 100644 src/agentex/lib/core/temporal/activities/adk/acp/acp_activities.py create mode 100644 src/agentex/lib/core/temporal/activities/adk/agent_task_tracker_activities.py create mode 100644 src/agentex/lib/core/temporal/activities/adk/agents_activities.py create mode 100644 src/agentex/lib/core/temporal/activities/adk/events_activities.py create mode 100644 src/agentex/lib/core/temporal/activities/adk/messages_activities.py create mode 100644 src/agentex/lib/core/temporal/activities/adk/providers/__init__.py create mode 100644 src/agentex/lib/core/temporal/activities/adk/providers/litellm_activities.py create mode 100644 src/agentex/lib/core/temporal/activities/adk/providers/openai_activities.py create mode 100644 src/agentex/lib/core/temporal/activities/adk/providers/sgp_activities.py create mode 100644 src/agentex/lib/core/temporal/activities/adk/state_activities.py create mode 100644 src/agentex/lib/core/temporal/activities/adk/streaming_activities.py create mode 100644 src/agentex/lib/core/temporal/activities/adk/tasks_activities.py create mode 100644 src/agentex/lib/core/temporal/activities/adk/tracing_activities.py create mode 100644 src/agentex/lib/core/temporal/activities/adk/utils/__init__.py create mode 100644 src/agentex/lib/core/temporal/activities/adk/utils/templating_activities.py create mode 100644 src/agentex/lib/core/temporal/services/__init__.py create mode 100644 src/agentex/lib/core/temporal/services/temporal_task_service.py create mode 100644 src/agentex/lib/core/temporal/types/__init__.py create mode 100644 src/agentex/lib/core/temporal/types/workflow.py create mode 100644 src/agentex/lib/core/temporal/workers/__init__.py create mode 100644 src/agentex/lib/core/temporal/workers/worker.py create mode 100644 src/agentex/lib/core/temporal/workflows/workflow.py create mode 100644 src/agentex/lib/core/tracing/__init__.py create mode 100644 src/agentex/lib/core/tracing/processors/agentex_tracing_processor.py create mode 100644 src/agentex/lib/core/tracing/processors/sgp_tracing_processor.py create mode 100644 src/agentex/lib/core/tracing/processors/tracing_processor_interface.py create mode 100644 src/agentex/lib/core/tracing/trace.py create mode 100644 src/agentex/lib/core/tracing/tracer.py create mode 100644 src/agentex/lib/core/tracing/tracing_processor_manager.py create mode 100644 src/agentex/lib/environment_variables.py create mode 100644 src/agentex/lib/py.typed create mode 100644 src/agentex/lib/sdk/__init__.py create mode 100644 src/agentex/lib/sdk/config/__init__.py create mode 100644 src/agentex/lib/sdk/config/agent_config.py create mode 100644 src/agentex/lib/sdk/config/agent_manifest.py create mode 100644 src/agentex/lib/sdk/config/build_config.py create mode 100644 src/agentex/lib/sdk/config/deployment_config.py create mode 100644 src/agentex/lib/sdk/config/local_development_config.py create mode 100644 src/agentex/lib/sdk/config/project_config.py create mode 100644 src/agentex/lib/sdk/fastacp/__init__.py create mode 100644 src/agentex/lib/sdk/fastacp/base/base_acp_server.py create mode 100644 src/agentex/lib/sdk/fastacp/fastacp.py create mode 100644 src/agentex/lib/sdk/fastacp/impl/agentic_base_acp.py create mode 100644 src/agentex/lib/sdk/fastacp/impl/sync_acp.py create mode 100644 src/agentex/lib/sdk/fastacp/impl/temporal_acp.py create mode 100644 src/agentex/lib/sdk/fastacp/tests/README.md create mode 100644 src/agentex/lib/sdk/fastacp/tests/conftest.py create mode 100644 src/agentex/lib/sdk/fastacp/tests/pytest.ini create mode 100644 src/agentex/lib/sdk/fastacp/tests/run_tests.py create mode 100644 src/agentex/lib/sdk/fastacp/tests/test_base_acp_server.py create mode 100644 src/agentex/lib/sdk/fastacp/tests/test_fastacp_factory.py create mode 100644 src/agentex/lib/sdk/fastacp/tests/test_integration.py create mode 100644 src/agentex/lib/sdk/state_machine/__init__.py create mode 100644 src/agentex/lib/sdk/state_machine/noop_workflow.py create mode 100644 src/agentex/lib/sdk/state_machine/state.py create mode 100644 src/agentex/lib/sdk/state_machine/state_machine.py create mode 100644 src/agentex/lib/sdk/state_machine/state_workflow.py create mode 100644 src/agentex/lib/sdk/utils/__init__.py create mode 100644 src/agentex/lib/sdk/utils/messages.py create mode 100644 src/agentex/lib/types/__init__.py create mode 100644 src/agentex/lib/types/acp.py create mode 100644 src/agentex/lib/types/agent_configs.py create mode 100644 src/agentex/lib/types/agent_results.py create mode 100644 src/agentex/lib/types/credentials.py create mode 100644 src/agentex/lib/types/fastacp.py create mode 100644 src/agentex/lib/types/files.py create mode 100644 src/agentex/lib/types/json_rpc.py create mode 100644 src/agentex/lib/types/llm_messages.py create mode 100644 src/agentex/lib/types/task_message_updates.py create mode 100644 src/agentex/lib/types/tracing.py create mode 100644 src/agentex/lib/utils/__init__.py create mode 100644 src/agentex/lib/utils/completions.py create mode 100644 src/agentex/lib/utils/console.py create mode 100644 src/agentex/lib/utils/io.py create mode 100644 src/agentex/lib/utils/iterables.py create mode 100644 src/agentex/lib/utils/json_schema.py create mode 100644 src/agentex/lib/utils/logging.py create mode 100644 src/agentex/lib/utils/mcp.py create mode 100644 src/agentex/lib/utils/model_utils.py create mode 100644 src/agentex/lib/utils/parsing.py create mode 100644 src/agentex/lib/utils/regex.py create mode 100644 src/agentex/lib/utils/temporal.py rename src/agentex/resources/{agents => }/agents.py (57%) delete mode 100644 src/agentex/resources/agents/__init__.py delete mode 100644 src/agentex/resources/agents/name.py delete mode 100644 src/agentex/resources/echo.py rename src/agentex/resources/{tasks => }/tasks.py (58%) delete mode 100644 src/agentex/resources/tasks/__init__.py delete mode 100644 src/agentex/resources/tasks/name.py create mode 100644 src/agentex/types/agent_rpc_by_name_params.py create mode 100644 src/agentex/types/agent_rpc_params1.py create mode 100644 src/agentex/types/agent_rpc_response.py create mode 100644 src/agentex/types/agent_rpc_result.py delete mode 100644 src/agentex/types/agents/__init__.py delete mode 100644 src/agentex/types/agents/name_rpc_params.py create mode 100644 src/agentex/types/data_delta.py delete mode 100644 src/agentex/types/echo_send_params.py delete mode 100644 src/agentex/types/streaming_status.py create mode 100644 src/agentex/types/task_message_content.py create mode 100644 src/agentex/types/task_message_content_param.py create mode 100644 src/agentex/types/task_message_delta.py delete mode 100644 src/agentex/types/tasks/__init__.py create mode 100644 src/agentex/types/text_delta.py create mode 100644 src/agentex/types/tool_request_delta.py create mode 100644 src/agentex/types/tool_response_delta.py delete mode 100644 src/agentex_sdk/lib/.keep delete mode 100644 tests/api_resources/agents/__init__.py delete mode 100644 tests/api_resources/agents/test_name.py delete mode 100644 tests/api_resources/tasks/__init__.py delete mode 100644 tests/api_resources/tasks/test_name.py delete mode 100644 tests/api_resources/test_client.py delete mode 100644 tests/api_resources/test_echo.py create mode 100644 uv.lock diff --git a/.gitignore b/.gitignore index 877974080..6c69882a2 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,5 @@ dist .envrc codegen.log Brewfile.lock.json + +.codeartifact-pip-conf \ No newline at end of file diff --git a/.python-version b/.python-version index 43077b246..e4fba2183 100644 --- a/.python-version +++ b/.python-version @@ -1 +1 @@ -3.9.18 +3.12 diff --git a/.stats.yml b/.stats.yml index f89209bb1..2aac91305 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ -configured_endpoints: 36 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-021b55c88964b7a5bfc9d692d32a52c6b0150445656d2407c4cb8e9dd1e5f100.yml -openapi_spec_hash: ed92c0d5d6bed9cb5617f8a776ac42c9 -config_hash: ea7ccb4f8ed1981b364cef82aa595243 +configured_endpoints: 34 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-1d08fb2290b5310c91801d7575d356628d372fd5434e15d3b9cead48eadb893f.yml +openapi_spec_hash: 216a0edbf4e1a3cde23329d4f385faed +config_hash: 7661726e3cccf9f6349179841153601d diff --git a/README.md b/README.md index db9c7afa2..2bdbb5925 100644 --- a/README.md +++ b/README.md @@ -28,16 +28,17 @@ pip install git+ssh://git@github.com/scaleapi/agentex-python.git The full API of this library can be found in [api.md](api.md). ```python -import os from agentex import Agentex client = Agentex( - api_key=os.environ.get("AGENTEX_SDK_API_KEY"), # This is the default and can be omitted + # defaults to "production". + environment="development", ) -response = client.echo.send( - message="message", +agent = client.agents.retrieve( + "agent_id", ) +print(agent.id) ``` While you can provide an `api_key` keyword argument, @@ -50,19 +51,20 @@ so that your API Key is not stored in source control. Simply import `AsyncAgentex` instead of `Agentex` and use `await` with each API call: ```python -import os import asyncio from agentex import AsyncAgentex client = AsyncAgentex( - api_key=os.environ.get("AGENTEX_SDK_API_KEY"), # This is the default and can be omitted + # defaults to "production". + environment="development", ) async def main() -> None: - response = await client.echo.send( - message="message", + agent = await client.agents.retrieve( + "agent_id", ) + print(agent.id) asyncio.run(main()) @@ -91,12 +93,12 @@ from agentex import AsyncAgentex async def main() -> None: async with AsyncAgentex( - api_key="My API Key", http_client=DefaultAioHttpClient(), ) as client: - response = await client.echo.send( - message="message", + agent = await client.agents.retrieve( + "agent_id", ) + print(agent.id) asyncio.run(main()) @@ -127,8 +129,8 @@ from agentex import Agentex client = Agentex() try: - client.echo.send( - message="message", + client.agents.retrieve( + "agent_id", ) except agentex.APIConnectionError as e: print("The server could not be reached") @@ -172,8 +174,8 @@ client = Agentex( ) # Or, configure per-request: -client.with_options(max_retries=5).echo.send( - message="message", +client.with_options(max_retries=5).agents.retrieve( + "agent_id", ) ``` @@ -197,8 +199,8 @@ client = Agentex( ) # Override per-request: -client.with_options(timeout=5.0).echo.send( - message="message", +client.with_options(timeout=5.0).agents.retrieve( + "agent_id", ) ``` @@ -240,13 +242,13 @@ The "raw" Response object can be accessed by prefixing `.with_raw_response.` to from agentex import Agentex client = Agentex() -response = client.echo.with_raw_response.send( - message="message", +response = client.agents.with_raw_response.retrieve( + "agent_id", ) print(response.headers.get('X-My-Header')) -echo = response.parse() # get the object that `echo.send()` would have returned -print(echo) +agent = response.parse() # get the object that `agents.retrieve()` would have returned +print(agent.id) ``` These methods return an [`APIResponse`](https://github.com/scaleapi/agentex-python/tree/main/src/agentex/_response.py) object. @@ -260,8 +262,8 @@ The above interface eagerly reads the full response body when you make the reque To stream the response body, use `.with_streaming_response` instead, which requires a context manager and only reads the response body once you call `.read()`, `.text()`, `.json()`, `.iter_bytes()`, `.iter_text()`, `.iter_lines()` or `.parse()`. In the async client, these are async methods. ```python -with client.echo.with_streaming_response.send( - message="message", +with client.agents.with_streaming_response.retrieve( + "agent_id", ) as response: print(response.headers.get("X-My-Header")) diff --git a/api.md b/api.md index 45be6a645..8d4e61562 100644 --- a/api.md +++ b/api.md @@ -1,37 +1,35 @@ -# Agentex - -Methods: - -- client.get_root() -> object - -# Echo - -Methods: - -- client.echo.send(\*\*params) -> object - # Agents Types: ```python -from agentex.types import AcpType, Agent, AgentRpcRequest, AgentListResponse +from agentex.types import ( + AcpType, + Agent, + AgentRpcParams, + AgentRpcRequest, + AgentRpcResponse, + AgentRpcResult, + DataDelta, + TaskMessageContent, + TaskMessageDelta, + TaskMessageUpdate, + TextDelta, + ToolRequestDelta, + ToolResponseDelta, + AgentListResponse, +) ``` Methods: -- client.agents.retrieve(agent_id) -> Agent -- client.agents.list(\*\*params) -> AgentListResponse -- client.agents.delete(agent_id) -> Agent -- client.agents.rpc(agent_id, \*\*params) -> object - -## Name - -Methods: - -- client.agents.name.retrieve(agent_name) -> Agent -- client.agents.name.delete(agent_name) -> Agent -- client.agents.name.rpc(agent_name, \*\*params) -> object +- client.agents.retrieve(agent_id) -> Agent +- client.agents.list(\*\*params) -> AgentListResponse +- client.agents.delete(agent_id) -> Agent +- client.agents.delete_by_name(agent_name) -> Agent +- client.agents.retrieve_by_name(agent_name) -> Agent +- client.agents.rpc(agent_id, \*\*params) -> AgentRpcResponse +- client.agents.rpc_by_name(agent_name, \*\*params) -> AgentRpcResponse # Tasks @@ -43,18 +41,13 @@ from agentex.types import Task, TaskListResponse Methods: -- client.tasks.retrieve(task_id) -> Task -- client.tasks.list() -> TaskListResponse -- client.tasks.delete(task_id) -> Task -- client.tasks.stream_events(task_id) -> object - -## Name - -Methods: - -- client.tasks.name.retrieve(task_name) -> Task -- client.tasks.name.delete(task_name) -> Task -- client.tasks.name.stream_events(task_name) -> object +- client.tasks.retrieve(task_id) -> Task +- client.tasks.list() -> TaskListResponse +- client.tasks.delete(task_id) -> Task +- client.tasks.delete_by_name(task_name) -> Task +- client.tasks.retrieve_by_name(task_name) -> Task +- client.tasks.stream_events(task_id) -> object +- client.tasks.stream_events_by_name(task_name) -> object # Messages @@ -65,7 +58,6 @@ from agentex.types import ( DataContent, MessageAuthor, MessageStyle, - StreamingStatus, TaskMessage, TextContent, ToolRequestContent, diff --git a/examples/tutorials/00_sync/000_hello_acp/.dockerignore b/examples/tutorials/00_sync/000_hello_acp/.dockerignore new file mode 100644 index 000000000..4521d8465 --- /dev/null +++ b/examples/tutorials/00_sync/000_hello_acp/.dockerignore @@ -0,0 +1,46 @@ +# Python +__pycache__/ +*.py[cod] +*$py.class +*.so +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +*.egg-info/ +.installed.cfg +*.egg + +# Environments +.env** +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# IDE +.idea/ +.vscode/ +*.swp +*.swo + +# Git +.git +.gitignore + +# Misc +.DS_Store + +# CodeArtifact configuration +.codeartifact-pip-conf \ No newline at end of file diff --git a/examples/tutorials/00_sync/000_hello_acp/Dockerfile b/examples/tutorials/00_sync/000_hello_acp/Dockerfile new file mode 100644 index 000000000..34f07ab19 --- /dev/null +++ b/examples/tutorials/00_sync/000_hello_acp/Dockerfile @@ -0,0 +1,45 @@ +# syntax=docker/dockerfile:1.3 +FROM python:3.12-slim +COPY --from=ghcr.io/astral-sh/uv:0.6.4 /uv /uvx /bin/ + +# Install system dependencies +RUN apt-get update && apt-get install -y \ + htop \ + vim \ + curl \ + tar \ + python3-dev \ + postgresql-client \ + build-essential \ + libpq-dev \ + gcc \ + cmake \ + netcat-openbsd \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* + +RUN uv pip install --system --upgrade pip setuptools wheel + +ENV UV_HTTP_TIMEOUT=1000 + +# Copy just the requirements file to optimize caching +COPY 000_hello_acp/requirements.txt /app/requirements.txt + +WORKDIR /app/ + +# Install the required Python packages +RUN --mount=type=secret,id=codeartifact-pip-conf,target=/etc/pip.conf \ + export UV_INDEX_URL=$(grep -E "^index-url" /etc/pip.conf | cut -d'=' -f2- | xargs) && \ + export UV_EXTRA_INDEX_URL=$(grep -E "^extra-index-url" /etc/pip.conf | cut -d'=' -f2- | xargs || echo "") && \ + uv pip install --system -r requirements.txt + +# Copy the project code +COPY 000_hello_acp/project /app/project + +WORKDIR /app/project + +# Set environment variables +ENV PYTHONPATH=/app + +# Run the agent using uvicorn +CMD ["uvicorn", "acp:acp", "--host", "0.0.0.0", "--port", "8000"] \ No newline at end of file diff --git a/examples/tutorials/00_sync/000_hello_acp/README.md b/examples/tutorials/00_sync/000_hello_acp/README.md new file mode 100644 index 000000000..87631a8a1 --- /dev/null +++ b/examples/tutorials/00_sync/000_hello_acp/README.md @@ -0,0 +1,128 @@ +# hello-sync - AgentEx Starter Template + +This is a generic starter template for building agents with the AgentEx framework. It provides a basic implementation of the Agent 2 Client Protocol (ACP) to help you get started quickly. + +## What You'll Learn + +- **Tasks**: A task is a grouping mechanism for related messages. Think of it as a conversation thread or a session. +- **Messages**: Messages are communication objects within a task. They can contain text, data, or instructions. +- **ACP Events**: The agent responds to four main events: + - `task_received`: When a new task is created + - `task_message_received`: When a message is sent within a task + - `task_approved`: When a task is approved + - `task_canceled`: When a task is canceled + +## Running the Agent + +1. Run the agent locally: +```bash +agentex agents run --manifest manifest.yaml +``` + +The agent will start on port 8000 and print messages whenever it receives any of the ACP events. + +## What's Inside + +This template: +- Sets up a basic ACP server +- Handles each of the required ACP events with simple print statements +- Provides a foundation for building more complex agents + +## Next Steps + +For more advanced agent development, check out the AgentEx tutorials: + +- **Tutorials 00-08**: Learn about building synchronous agents with ACP +- **Tutorials 09-10**: Learn how to use Temporal to power asynchronous agents + - Tutorial 09: Basic Temporal workflow setup + - Tutorial 10: Advanced Temporal patterns and best practices + +These tutorials will help you understand: +- How to handle long-running tasks +- Implementing state machines +- Managing complex workflows +- Best practices for async agent development + +## The Manifest File + +The `manifest.yaml` file is your agent's configuration file. It defines: +- How your agent should be built and packaged +- What files are included in your agent's Docker image +- Your agent's name and description +- Local development settings (like the port your agent runs on) + +This file is essential for both local development and deployment of your agent. + +## Project Structure + +``` +hello_sync/ +├── project/ # Your agent's code +│ ├── __init__.py +│ └── acp.py # ACP server and event handlers +├── Dockerfile # Container definition +├── manifest.yaml # Deployment config +└── requirements.txt # Dependencies +``` + +## Development + +1. **Customize Event Handlers** + - Modify the handlers in `acp.py` to implement your agent's logic + - Add your own tools and capabilities + - Implement custom state management + +2. **Add Dependencies** + - Add required packages to `requirements.txt` + - Update the manifest with any needed credentials + +## Local Development + +1. **Install AgentEx** +```bash +cd agentex-py +uv venv +source .venv/bin/activate +uv sync +``` + +2. **Deploy your agent** +```bash +# From this directory +export ENVIRONMENT=development && agentex agents create --manifest manifest.yaml +``` + +4. **Interact with your agent** + +Option 0: CLI (deprecated - to be replaced once a new CLI is implemented - please use the web UI for now!) +```bash +# Submit a task via CLI +agentex tasks submit --agent {{ agent_name }} --task "Your task here" +``` + +Option 1: Web UI +```bash +# Start the local web interface +cd agentex-web +make dev + +# Then open http://localhost:3000 in your browser to chat with your agent +``` + +## Development Tips + +1. **Local Testing** +- Set environment variables in project/.env for any required credentials. OR you can set these in the manifest.yaml + +### To build the agent Docker image locally (normally not necessary): + +1. First, set up CodeArtifact authentication: +```bash +../../setup-build-codeartifact.sh +``` + +2. Build the agent image: +```bash +agentex agents build --manifest manifest.yaml --secret 'id=codeartifact-pip-conf,src=.codeartifact-pip-conf' +``` + diff --git a/examples/tutorials/00_sync/000_hello_acp/manifest.yaml b/examples/tutorials/00_sync/000_hello_acp/manifest.yaml new file mode 100644 index 000000000..72398ea07 --- /dev/null +++ b/examples/tutorials/00_sync/000_hello_acp/manifest.yaml @@ -0,0 +1,122 @@ +# Agent Manifest Configuration +# --------------------------- +# This file defines how your agent should be built and deployed. + +# Build Configuration +# ------------------ +# The build config defines what gets packaged into your agent's Docker image. +# This same configuration is used whether building locally or remotely. +# +# When building: +# 1. All files from include_paths are collected into a build context +# 2. The context is filtered by dockerignore rules +# 3. The Dockerfile uses this context to build your agent's image +# 4. The image is pushed to a registry and used to run your agent +build: + context: + # Root directory for the build context + root: ../ # Keep this as the default root + + # Paths to include in the Docker build context + # Must include: + # - agentex-py: The core framework (needed for agent execution) + # - Your agent's directory (your custom agent code) + # These paths are collected and sent to the Docker daemon for building + include_paths: + - 000_hello_acp + + # Path to your agent's Dockerfile + # This defines how your agent's image is built from the context + # Relative to the root directory + dockerfile: 000_hello_acp/Dockerfile + + # Path to your agent's .dockerignore + # Filters unnecessary files from the build context + # Helps keep build context small and builds fast + dockerignore: 000_hello_acp/.dockerignore + + +# Local Development Configuration +# ----------------------------- +# Only used when running the agent locally +local_development: + agent: + port: 8000 # Port where your local ACP server is running + host_address: host.docker.internal # Host address for Docker networking (host.docker.internal for Docker, localhost for direct) + + # File paths for local development (relative to this manifest.yaml) + paths: + # Path to ACP server file + # Examples: + # project/acp.py (standard) + # src/server.py (custom structure) + # ../shared/acp.py (shared across projects) + # /absolute/path/acp.py (absolute path) + acp: project/acp.py + + +# Agent Configuration +# ----------------- +agent: + # Unique name for your agent + # Used for task routing and monitoring + name: s000-hello-acp + + # Type of ACP to use + # sync: Simple synchronous ACP implementation + # agentic: Advanced ACP with sub-types "base" or "temporal" (requires config) + acp_type: sync + + # Description of what your agent does + # Helps with documentation and discovery + description: An AgentEx agent that just says hello and acknowledges the user's message + + # Temporal workflow configuration + # Set enabled: true to use Temporal workflows for long-running tasks + temporal: + enabled: false + + # Optional: Credentials mapping + # Maps Kubernetes secrets to environment variables + # Common credentials include: + # credentials: + # - env_var_name: OPENAI_API_KEY + # secret_name: openai-api-key + # secret_key: api-key + + # Optional: Set Environment variables for running your agent locally as well + # as for deployment later on + # env: + # - name: OPENAI_BASE_URL + # value: "https://api.openai.com/v1" + # - name: ACCOUNT_ID + # value: "your_account_id_here" + + +# Deployment Configuration +# ----------------------- +# Configuration for deploying your agent to Kubernetes clusters +deployment: + # Container image configuration + image: + repository: "" # Update with your container registry + tag: "latest" # Default tag, should be versioned in production + + # Global deployment settings that apply to all clusters + # These can be overridden in cluster-specific files (deploy/*.yaml) + global: + agent: + name: "s000-hello-acp" + description: "An AgentEx agent that just says hello and acknowledges the user's message" + + # Default replica count + replicaCount: 1 + + # Default resource requirements + resources: + requests: + cpu: "500m" + memory: "1Gi" + limits: + cpu: "1000m" + memory: "2Gi" \ No newline at end of file diff --git a/examples/tutorials/00_sync/000_hello_acp/project/__init__.py b/examples/tutorials/00_sync/000_hello_acp/project/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/examples/tutorials/00_sync/000_hello_acp/project/acp.py b/examples/tutorials/00_sync/000_hello_acp/project/acp.py new file mode 100644 index 000000000..0c7b66450 --- /dev/null +++ b/examples/tutorials/00_sync/000_hello_acp/project/acp.py @@ -0,0 +1,28 @@ +from typing import AsyncGenerator, Union +from agentex.lib.sdk.fastacp.fastacp import FastACP +from agentex.lib.types.acp import SendMessageParams + +from agentex.lib.types.task_message_updates import TaskMessageUpdate +from agentex.types.task_message import TaskMessageContent +from agentex.types.task_message_content import TextContent +from agentex.lib.utils.logging import make_logger + +logger = make_logger(__name__) + + +# Create an ACP server +acp = FastACP.create( + acp_type="sync", +) + + +@acp.on_message_send +async def handle_message_send( + params: SendMessageParams +) -> Union[TaskMessageContent, AsyncGenerator[TaskMessageUpdate, None]]: + """Default message handler with streaming support""" + return TextContent( + author="agent", + content=f"Hello! I've received your message. Here's a generic response, but in future tutorials we'll see how you can get me to intelligently respond to your message. This is what I heard you say: {params.content.content}", + ) + diff --git a/examples/tutorials/00_sync/000_hello_acp/requirements.txt b/examples/tutorials/00_sync/000_hello_acp/requirements.txt new file mode 100644 index 000000000..2c2ebf15b --- /dev/null +++ b/examples/tutorials/00_sync/000_hello_acp/requirements.txt @@ -0,0 +1,5 @@ +# Install agentex-py from local path +agentex-py>=0.0.4,<0.1.0 + +# Scale GenAI Platform Python SDK +scale-gp \ No newline at end of file diff --git a/examples/tutorials/00_sync/010_multiturn/.dockerignore b/examples/tutorials/00_sync/010_multiturn/.dockerignore new file mode 100644 index 000000000..4521d8465 --- /dev/null +++ b/examples/tutorials/00_sync/010_multiturn/.dockerignore @@ -0,0 +1,46 @@ +# Python +__pycache__/ +*.py[cod] +*$py.class +*.so +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +*.egg-info/ +.installed.cfg +*.egg + +# Environments +.env** +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# IDE +.idea/ +.vscode/ +*.swp +*.swo + +# Git +.git +.gitignore + +# Misc +.DS_Store + +# CodeArtifact configuration +.codeartifact-pip-conf \ No newline at end of file diff --git a/examples/tutorials/00_sync/010_multiturn/Dockerfile b/examples/tutorials/00_sync/010_multiturn/Dockerfile new file mode 100644 index 000000000..29f524911 --- /dev/null +++ b/examples/tutorials/00_sync/010_multiturn/Dockerfile @@ -0,0 +1,45 @@ +# syntax=docker/dockerfile:1.3 +FROM python:3.12-slim +COPY --from=ghcr.io/astral-sh/uv:0.6.4 /uv /uvx /bin/ + +# Install system dependencies +RUN apt-get update && apt-get install -y \ + htop \ + vim \ + curl \ + tar \ + python3-dev \ + postgresql-client \ + build-essential \ + libpq-dev \ + gcc \ + cmake \ + netcat-openbsd \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* + +RUN uv pip install --system --upgrade pip setuptools wheel + +ENV UV_HTTP_TIMEOUT=1000 + +# Copy just the requirements file to optimize caching +COPY 010_multiturn/requirements.txt /app/requirements.txt + +WORKDIR /app/ + +# Install the required Python packages +RUN --mount=type=secret,id=codeartifact-pip-conf,target=/etc/pip.conf \ + export UV_INDEX_URL=$(grep -E "^index-url" /etc/pip.conf | cut -d'=' -f2- | xargs) && \ + export UV_EXTRA_INDEX_URL=$(grep -E "^extra-index-url" /etc/pip.conf | cut -d'=' -f2- | xargs || echo "") && \ + uv pip install --system -r requirements.txt + +# Copy the project code +COPY 010_multiturn/project /app/project + +WORKDIR /app/project + +# Set environment variables +ENV PYTHONPATH=/app + +# Run the agent using uvicorn +CMD ["uvicorn", "acp:acp", "--host", "0.0.0.0", "--port", "8000"] \ No newline at end of file diff --git a/examples/tutorials/00_sync/010_multiturn/README.md b/examples/tutorials/00_sync/010_multiturn/README.md new file mode 100644 index 000000000..a23f76531 --- /dev/null +++ b/examples/tutorials/00_sync/010_multiturn/README.md @@ -0,0 +1,127 @@ +# s010-multiturn - AgentEx Starter Template + +This is a generic starter template for building agents with the AgentEx framework. It provides a basic implementation of the Agent 2 Client Protocol (ACP) to help you get started quickly. + +## What You'll Learn + +- **Tasks**: A task is a grouping mechanism for related messages. Think of it as a conversation thread or a session. +- **Messages**: Messages are communication objects within a task. They can contain text, data, or instructions. +- **ACP Events**: The agent responds to four main events: + - `task_received`: When a new task is created + - `task_message_received`: When a message is sent within a task + - `task_approved`: When a task is approved + - `task_canceled`: When a task is canceled + +## Running the Agent + +1. Run the agent locally: +```bash +agentex agents run --manifest manifest.yaml +``` + +The agent will start on port 8000 and print messages whenever it receives any of the ACP events. + +## What's Inside + +This template: +- Sets up a basic ACP server +- Handles each of the required ACP events with simple print statements +- Provides a foundation for building more complex agents + +## Next Steps + +For more advanced agent development, check out the AgentEx tutorials: + +- **Tutorials 00-08**: Learn about building synchronous agents with ACP +- **Tutorials 09-10**: Learn how to use Temporal to power asynchronous agents + - Tutorial 09: Basic Temporal workflow setup + - Tutorial 10: Advanced Temporal patterns and best practices + +These tutorials will help you understand: +- How to handle long-running tasks +- Implementing state machines +- Managing complex workflows +- Best practices for async agent development + +## The Manifest File + +The `manifest.yaml` file is your agent's configuration file. It defines: +- How your agent should be built and packaged +- What files are included in your agent's Docker image +- Your agent's name and description +- Local development settings (like the port your agent runs on) + +This file is essential for both local development and deployment of your agent. + +## Project Structure + +``` +s010_multiturn/ +├── project/ # Your agent's code +│ ├── __init__.py +│ └── acp.py # ACP server and event handlers +├── Dockerfile # Container definition +├── manifest.yaml # Deployment config +└── requirements.txt # Dependencies +``` + +## Development + +1. **Customize Event Handlers** + - Modify the handlers in `acp.py` to implement your agent's logic + - Add your own tools and capabilities + - Implement custom state management + +2. **Add Dependencies** + - Add required packages to `requirements.txt` + - Update the manifest with any needed credentials + +## Local Development + +1. **Install AgentEx** +```bash +cd agentex-py +uv venv +source .venv/bin/activate +uv sync +``` + +2. **Deploy your agent** +```bash +# From this directory +export ENVIRONMENT=development && agentex agents create --manifest manifest.yaml +``` + +4. **Interact with your agent** + +Option 0: CLI (deprecated - to be replaced once a new CLI is implemented - please use the web UI for now!) +```bash +# Submit a task via CLI +agentex tasks submit --agent {{ agent_name }} --task "Your task here" +``` + +Option 1: Web UI +```bash +# Start the local web interface +cd agentex-web +make dev + +# Then open http://localhost:3000 in your browser to chat with your agent +``` + +## Development Tips + +1. **Local Testing** +- Set environment variables in project/.env for any required credentials. OR you can set these in the manifest.yaml + +### To build the agent Docker image locally (normally not necessary): + +1. First, set up CodeArtifact authentication: +```bash +../../setup-build-codeartifact.sh +``` + +2. Build the agent image: +```bash +agentex agents build --manifest manifest.yaml --secret 'id=codeartifact-pip-conf,src=.codeartifact-pip-conf' +``` \ No newline at end of file diff --git a/examples/tutorials/00_sync/010_multiturn/manifest.yaml b/examples/tutorials/00_sync/010_multiturn/manifest.yaml new file mode 100644 index 000000000..a68ab6bed --- /dev/null +++ b/examples/tutorials/00_sync/010_multiturn/manifest.yaml @@ -0,0 +1,118 @@ +# Agent Manifest Configuration +# --------------------------- +# This file defines how your agent should be built and deployed. + +# Build Configuration +# ------------------ +# The build config defines what gets packaged into your agent's Docker image. +# This same configuration is used whether building locally or remotely. +# +# When building: +# 1. All files from include_paths are collected into a build context +# 2. The context is filtered by dockerignore rules +# 3. The Dockerfile uses this context to build your agent's image +# 4. The image is pushed to a registry and used to run your agent +build: + context: + # Root directory for the build context + root: ../ # Keep this as the default root + + # Paths to include in the Docker build context + # Must include: + # - agentex-py: The core framework (needed for agent execution) + # - Your agent's directory (your custom agent code) + # These paths are collected and sent to the Docker daemon for building + include_paths: + - 010_multiturn + + # Path to your agent's Dockerfile + # This defines how your agent's image is built from the context + # Relative to the root directory + dockerfile: 010_multiturn/Dockerfile + + # Path to your agent's .dockerignore + # Filters unnecessary files from the build context + # Helps keep build context small and builds fast + dockerignore: 010_multiturn/.dockerignore + + +# Local Development Configuration +# ----------------------------- +# Only used when running the agent locally +local_development: + agent: + port: 8000 # Port where your local ACP server is running + host_address: host.docker.internal # Host address for Docker networking (host.docker.internal for Docker, localhost for direct) + + # File paths for local development (relative to this manifest.yaml) + paths: + # Path to ACP server file + # Examples: + # project/acp.py (standard) + # src/server.py (custom structure) + # ../shared/acp.py (shared across projects) + # /absolute/path/acp.py (absolute path) + acp: project/acp.py + + +# Agent Configuration +# ----------------- +agent: + acp_type: sync + # Unique name for your agent + # Used for task routing and monitoring + name: s010-multiturn + + # Description of what your agent does + # Helps with documentation and discovery + description: An AgentEx agent + + # Temporal workflow configuration + # Set enabled: true to use Temporal workflows for long-running tasks + temporal: + enabled: false + + # Optional: Credentials mapping + # Maps Kubernetes secrets to environment variables + # Common credentials include: + # credentials: + # - env_var_name: OPENAI_API_KEY + # secret_name: openai-api-key + # secret_key: api-key + + # Optional: Set Environment variables for running your agent locally as well + # as for deployment later on + # env: + # - name: OPENAI_BASE_URL + # value: "https://api.openai.com/v1" + # - name: ACCOUNT_ID + # value: "your_account_id_here" + + +# Deployment Configuration +# ----------------------- +# Configuration for deploying your agent to Kubernetes clusters +deployment: + # Container image configuration + image: + repository: "" # Update with your container registry + tag: "latest" # Default tag, should be versioned in production + + # Global deployment settings that apply to all clusters + # These can be overridden in cluster-specific files (deploy/*.yaml) + global: + agent: + name: "s010-multiturn" + description: "An AgentEx agent" + + # Default replica count + replicaCount: 1 + + # Default resource requirements + resources: + requests: + cpu: "500m" + memory: "1Gi" + limits: + cpu: "1000m" + memory: "2Gi" \ No newline at end of file diff --git a/examples/tutorials/00_sync/010_multiturn/project/__init__.py b/examples/tutorials/00_sync/010_multiturn/project/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/examples/tutorials/00_sync/010_multiturn/project/acp.py b/examples/tutorials/00_sync/010_multiturn/project/acp.py new file mode 100644 index 000000000..0067cec30 --- /dev/null +++ b/examples/tutorials/00_sync/010_multiturn/project/acp.py @@ -0,0 +1,119 @@ +import os +from typing import AsyncGenerator, Union + +from agentex.lib import adk +from agentex.lib.sdk.fastacp.fastacp import FastACP +from agentex.lib.types.acp import SendMessageParams +from agentex.lib.types.llm_messages import AssistantMessage, LLMConfig, SystemMessage, UserMessage +from agentex.lib.types.task_message_updates import TaskMessageUpdate +from agentex.types.task_message import TaskMessageContent +from agentex.types.task_message_content import TextContent +from agentex.lib.utils.model_utils import BaseModel + +# Create an ACP server +acp = FastACP.create( + acp_type="sync", +) + + +class StateModel(BaseModel): + system_prompt: str + model: str + + +# Note: The return of this handler is required to be persisted by the Agentex Server +@acp.on_message_send +async def handle_message_send( + params: SendMessageParams +) -> Union[TaskMessageContent, AsyncGenerator[TaskMessageUpdate, None]]: + """ + In this tutorial, we'll see how to handle a basic multi-turn conversation without streaming. + """ + ######################################################### + # 0. Validate the message. + ######################################################### + + if params.content.type != "text": + raise ValueError(f"Expected text message, got {params.content.type}") + + if params.content.author != "user": + raise ValueError(f"Expected user message, got {params.content.author}") + + if not os.environ.get("OPENAI_API_KEY"): + return TextContent( + author="agent", + content="Hey, sorry I'm unable to respond to your message because you're running this example without an OpenAI API key. Please set the OPENAI_API_KEY environment variable to run this example. Do this by either by adding a .env file to the project/ directory or by setting the environment variable in your terminal.", + ) + + ######################################################### + # 1. Initialize the state. Using state is optional, but it's a good way to store information between turns. + ######################################################### + + # Try to retrieve the state. If it doesn't exist, create it. + task_state = await adk.state.get_by_task_and_agent(task_id=params.task.id, agent_id=params.agent.id) + + if not task_state: + # If the state doesn't exist, create it. + state = StateModel(system_prompt="You are a helpful assistant that can answer questions.", model="gpt-4o-mini") + task_state = await adk.state.create(task_id=params.task.id, agent_id=params.agent.id, state=state) + else: + state = StateModel.model_validate(task_state.state) + + ######################################################### + # 2. Fetch our message history. + ######################################################### + + task_messages = await adk.messages.list(task_id=params.task.id) + + ######################################################### + # 3. Convert task messages to LLM messages. + ######################################################### + + # This might seem duplicative, but the split between TaskMessage and LLMMessage is intentional and important. + + llm_messages = [ + SystemMessage(content=state.system_prompt), + *[ + UserMessage(content=message.content.content) if message.content.author == "user" else AssistantMessage(content=message.content.content) + for message in task_messages + if message.content.type == "text" + ] + ] + + # TaskMessages are messages that are sent between an Agent and a Client. They are fundamentally decoupled from messages sent to the LLM. This is because you may want to send additional metadata to allow the client to render the message on the UI differently. + + # LLMMessages are OpenAI-compatible messages that are sent to the LLM, and are used to track the state of a conversation with a model. + + # In simple scenarios your conversion logic will just look like this. However, in complex scenarios where you are leveraging the flexibility of the TaskMessage type to send non-LLM-specific metadata, you should write custom conversion logic. + + # Some complex scenarios include: + # - Taking a markdown document output by an LLM, postprocessing it into a JSON object to clearly denote title, content, and footers. This can be sent as a DataContent TaskMessage to the client and converted back to markdown here to send back to the LLM. + # - If using multiple LLMs (like in an actor-critic framework), you may want to send DataContent that denotes which LLM generated which part of the output and write conversion logic to split the TaskMessagehistory into multiple LLM conversations. + # - If using multiple LLMs, but one LLM's output should not be sent to the user (i.e. a critic model), you can leverage the State as an internal storage mechanism to store the critic model's conversation history. This i s a powerful and flexible way to handle complex scenarios. + + ######################################################### + # 4. Call an LLM to respond to the user's message. + ######################################################### + + # Call an LLM to respond to the user's message + chat_completion = await adk.providers.litellm.chat_completion( + llm_config=LLMConfig(model=state.model, messages=llm_messages), + trace_id=params.task.id, + ) + + ######################################################### + # 5. Return the agent response to the client. + ######################################################### + + # The Agentex server automatically commits input and output messages to the database so you don't need to do this yourself, simply process the input content and return the output content. + + # Return the agent response to the client + if chat_completion.choices[0].message: + content_str = chat_completion.choices[0].message.content or "" + else: + content_str = "" + + return TextContent( + author="agent", + content=content_str + ) diff --git a/examples/tutorials/00_sync/010_multiturn/requirements.txt b/examples/tutorials/00_sync/010_multiturn/requirements.txt new file mode 100644 index 000000000..d12ad3951 --- /dev/null +++ b/examples/tutorials/00_sync/010_multiturn/requirements.txt @@ -0,0 +1,4 @@ +agentex-py>=0.0.4,<0.1.0 + +# Scale GenAI Platform Python SDK +scale-gp \ No newline at end of file diff --git a/examples/tutorials/00_sync/020_streaming/.dockerignore b/examples/tutorials/00_sync/020_streaming/.dockerignore new file mode 100644 index 000000000..e2a6524b2 --- /dev/null +++ b/examples/tutorials/00_sync/020_streaming/.dockerignore @@ -0,0 +1,47 @@ +# Python +__pycache__/ +*.py[cod] +*$py.class +*.so +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +*.egg-info/ +.installed.cfg +*.egg + +# Environments +.env** +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# IDE +.idea/ +.vscode/ +*.swp +*.swo + +# Git +.git +.gitignore + +# Misc +.DS_Store + +# CodeArtifact configuration +.codeartifact-pip-conf + diff --git a/examples/tutorials/00_sync/020_streaming/Dockerfile b/examples/tutorials/00_sync/020_streaming/Dockerfile new file mode 100644 index 000000000..99958ebc5 --- /dev/null +++ b/examples/tutorials/00_sync/020_streaming/Dockerfile @@ -0,0 +1,44 @@ +# syntax=docker/dockerfile:1.3 +FROM python:3.12-slim +COPY --from=ghcr.io/astral-sh/uv:0.6.4 /uv /uvx /bin/ + +# Install system dependencies +RUN apt-get update && apt-get install -y \ + htop \ + vim \ + curl \ + tar \ + python3-dev \ + postgresql-client \ + build-essential \ + libpq-dev \ + gcc \ + cmake \ + netcat-openbsd \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* + +RUN uv pip install --system --upgrade pip setuptools wheel + +ENV UV_HTTP_TIMEOUT=1000 + +# Copy just the requirements file to optimize caching +COPY 020_streaming/requirements.txt /app/requirements.txt + +WORKDIR /app/ + +# Install the required Python packages +RUN --mount=type=secret,id=codeartifact-pip-conf,target=/etc/pip.conf \ + export UV_INDEX_URL=$(grep -E "^index-url" /etc/pip.conf | cut -d'=' -f2- | xargs) && \ + export UV_EXTRA_INDEX_URL=$(grep -E "^extra-index-url" /etc/pip.conf | cut -d'=' -f2- | xargs || echo "") && \ + uv pip install --system -r requirements.txt +# Copy the project code +COPY 020_streaming/project /app/project + +WORKDIR /app/project + +# Set environment variables +ENV PYTHONPATH=/app + +# Run the agent using uvicorn +CMD ["uvicorn", "acp:acp", "--host", "0.0.0.0", "--port", "8000"] \ No newline at end of file diff --git a/examples/tutorials/00_sync/020_streaming/README.md b/examples/tutorials/00_sync/020_streaming/README.md new file mode 100644 index 000000000..920acf28b --- /dev/null +++ b/examples/tutorials/00_sync/020_streaming/README.md @@ -0,0 +1,129 @@ +# s020-streaming - AgentEx Starter Template + +This is a generic starter template for building agents with the AgentEx framework. It provides a basic implementation of the Agent 2 Client Protocol (ACP) to help you get started quickly. + +## What You'll Learn + +- **Tasks**: A task is a grouping mechanism for related messages. Think of it as a conversation thread or a session. +- **Messages**: Messages are communication objects within a task. They can contain text, data, or instructions. +- **ACP Events**: The agent responds to four main events: + - `task_received`: When a new task is created + - `task_message_received`: When a message is sent within a task + - `task_approved`: When a task is approved + - `task_canceled`: When a task is canceled + +## Running the Agent + +1. Run the agent locally: +```bash +agentex agents run --manifest manifest.yaml +``` + +The agent will start on port 8000 and print messages whenever it receives any of the ACP events. + +## What's Inside + +This template: +- Sets up a basic ACP server +- Handles each of the required ACP events with simple print statements +- Provides a foundation for building more complex agents + +## Next Steps + +For more advanced agent development, check out the AgentEx tutorials: + +- **Tutorials 00-08**: Learn about building synchronous agents with ACP +- **Tutorials 09-10**: Learn how to use Temporal to power asynchronous agents + - Tutorial 09: Basic Temporal workflow setup + - Tutorial 10: Advanced Temporal patterns and best practices + +These tutorials will help you understand: +- How to handle long-running tasks +- Implementing state machines +- Managing complex workflows +- Best practices for async agent development + +## The Manifest File + +The `manifest.yaml` file is your agent's configuration file. It defines: +- How your agent should be built and packaged +- What files are included in your agent's Docker image +- Your agent's name and description +- Local development settings (like the port your agent runs on) + +This file is essential for both local development and deployment of your agent. + +## Project Structure + +``` +hello_sync/ +├── project/ # Your agent's code +│ ├── __init__.py +│ └── acp.py # ACP server and event handlers +├── Dockerfile # Container definition +├── manifest.yaml # Deployment config +└── requirements.txt # Dependencies +``` + +## Development + +1. **Customize Event Handlers** + - Modify the handlers in `acp.py` to implement your agent's logic + - Add your own tools and capabilities + - Implement custom state management + +2. **Add Dependencies** + - Add required packages to `requirements.txt` + - Update the manifest with any needed credentials + +## Local Development + +1. **Install AgentEx** +```bash +cd agentex-py +uv venv +source .venv/bin/activate +uv sync +``` + +2. **Deploy your agent** +```bash +# From this directory +export ENVIRONMENT=development && agentex agents create --manifest manifest.yaml +``` + +4. **Interact with your agent** + +Option 0: CLI (deprecated - to be replaced once a new CLI is implemented - please use the web UI for now!) +```bash +# Submit a task via CLI +agentex tasks submit --agent {{ agent_name }} --task "Your task here" +``` + +Option 1: Web UI +```bash +# Start the local web interface +cd agentex-web +make dev + +# Then open http://localhost:3000 in your browser to chat with your agent +``` + +## Development Tips + +1. **Local Testing** +- Set environment variables in project/.env for any required credentials. OR you can set these in the manifest.yaml + +### To build the agent Docker image locally (normally not necessary): + +1. First, set up CodeArtifact authentication: +```bash +../../setup-build-codeartifact.sh +``` + +2. Build the agent image: +```bash +agentex agents build --manifest manifest.yaml --secret 'id=codeartifact-pip-conf,src=.codeartifact-pip-conf' +``` + + diff --git a/examples/tutorials/00_sync/020_streaming/manifest.yaml b/examples/tutorials/00_sync/020_streaming/manifest.yaml new file mode 100644 index 000000000..71460af04 --- /dev/null +++ b/examples/tutorials/00_sync/020_streaming/manifest.yaml @@ -0,0 +1,119 @@ +# Agent Manifest Configuration +# --------------------------- +# This file defines how your agent should be built and deployed. + +# Build Configuration +# ------------------ +# The build config defines what gets packaged into your agent's Docker image. +# This same configuration is used whether building locally or remotely. +# +# When building: +# 1. All files from include_paths are collected into a build context +# 2. The context is filtered by dockerignore rules +# 3. The Dockerfile uses this context to build your agent's image +# 4. The image is pushed to a registry and used to run your agent +build: + context: + # Root directory for the build context + root: ../ # Keep this as the default root + + # Paths to include in the Docker build context + # Must include: + # - agentex-py: The core framework (needed for agent execution) + # - Your agent's directory (your custom agent code) + # These paths are collected and sent to the Docker daemon for building + + include_paths: + - 020_streaming + + # Path to your agent's Dockerfile + # This defines how your agent's image is built from the context + # Relative to the root directory + dockerfile: 020_streaming/Dockerfile + + # Path to your agent's .dockerignore + # Filters unnecessary files from the build context + # Helps keep build context small and builds fast + dockerignore: 020_streaming/.dockerignore + + +# Local Development Configuration +# ----------------------------- +# Only used when running the agent locally +local_development: + agent: + port: 8000 # Port where your local ACP server is running + host_address: host.docker.internal # Host address for Docker networking (host.docker.internal for Docker, localhost for direct) + + # File paths for local development (relative to this manifest.yaml) + paths: + # Path to ACP server file + # Examples: + # project/acp.py (standard) + # src/server.py (custom structure) + # ../shared/acp.py (shared across projects) + # /absolute/path/acp.py (absolute path) + acp: project/acp.py + + +# Agent Configuration +# ----------------- +agent: + acp_type: sync + # Unique name for your agent + # Used for task routing and monitoring + name: s020-streaming + + # Description of what your agent does + # Helps with documentation and discovery + description: An AgentEx agent that does multiturn streaming chat + + # Temporal workflow configuration + # Set enabled: true to use Temporal workflows for long-running tasks + temporal: + enabled: false + + # Optional: Credentials mapping + # Maps Kubernetes secrets to environment variables + # Common credentials include: + # credentials: + # - env_var_name: OPENAI_API_KEY + # secret_name: openai-api-key + # secret_key: api-key + + # Optional: Set Environment variables for running your agent locally as well + # as for deployment later on + # env: + # - name: OPENAI_BASE_URL + # value: "https://api.openai.com/v1" + # - name: ACCOUNT_ID + # value: "your_account_id_here" + + +# Deployment Configuration +# ----------------------- +# Configuration for deploying your agent to Kubernetes clusters +deployment: + # Container image configuration + image: + repository: "" # Update with your container registry + tag: "latest" # Default tag, should be versioned in production + + # Global deployment settings that apply to all clusters + # These can be overridden in cluster-specific files (deploy/*.yaml) + global: + agent: + name: "s020-streaming" + description: "An AgentEx agent that does multiturn streaming chat" + + # Default replica count + replicaCount: 1 + + # Default resource requirements + resources: + requests: + cpu: "500m" + memory: "1Gi" + limits: + cpu: "1000m" + memory: "2Gi" \ No newline at end of file diff --git a/examples/tutorials/00_sync/020_streaming/project/__init__.py b/examples/tutorials/00_sync/020_streaming/project/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/examples/tutorials/00_sync/020_streaming/project/acp.py b/examples/tutorials/00_sync/020_streaming/project/acp.py new file mode 100644 index 000000000..787f2daed --- /dev/null +++ b/examples/tutorials/00_sync/020_streaming/project/acp.py @@ -0,0 +1,98 @@ +import os +from typing import AsyncGenerator, Union + +from agentex.lib import adk +from agentex.lib.sdk.fastacp.fastacp import FastACP +from agentex.lib.types.acp import SendMessageParams +from agentex.lib.types.llm_messages import AssistantMessage, LLMConfig, SystemMessage, UserMessage +from agentex.lib.types.task_message_updates import StreamTaskMessageDelta, StreamTaskMessageDone, StreamTaskMessageFull, TaskMessageUpdate, TextDelta +from agentex.lib.utils.model_utils import BaseModel +from agentex.types.task_message_content import TaskMessageContent, TextContent + +# Create an ACP server +acp = FastACP.create( + acp_type="sync", +) + + +class StateModel(BaseModel): + system_prompt: str + model: str + + +# Note: The return of this handler is required to be persisted by the Agentex Server +@acp.on_message_send +async def handle_message_send( + params: SendMessageParams +) -> Union[TaskMessageContent, AsyncGenerator[TaskMessageUpdate, None]]: + """ + In this tutorial, we'll see how to handle a basic multi-turn conversation without streaming. + """ + ######################################################### + # 1-3. These steps are all the same as the hello acp tutorial. + ######################################################### + + if not params.content: + return + + if params.content.type != "text": + raise ValueError(f"Expected text message, got {params.content.type}") + + if params.content.author != "user": + raise ValueError(f"Expected user message, got {params.content.author}") + + if not os.environ.get("OPENAI_API_KEY"): + yield StreamTaskMessageFull( + index=0, + type="full", + content=TextContent( + author="agent", + content="Hey, sorry I'm unable to respond to your message because you're running this example without an OpenAI API key. Please set the OPENAI_API_KEY environment variable to run this example. Do this by either by adding a .env file to the project/ directory or by setting the environment variable in your terminal.", + ), + ) + + # Try to retrieve the state. If it doesn't exist, create it. + task_state = await adk.state.get_by_task_and_agent(task_id=params.task.id, agent_id=params.agent.id) + + if not task_state: + # If the state doesn't exist, create it. + state = StateModel(system_prompt="You are a helpful assistant that can answer questions.", model="gpt-4o-mini") + task_state = await adk.state.create(task_id=params.task.id, agent_id=params.agent.id, state=state) + else: + state = StateModel.model_validate(task_state.state) + + task_messages = await adk.messages.list(task_id=params.task.id) + + llm_messages = [ + SystemMessage(content=state.system_prompt), + *[ + UserMessage(content=message.content.content) if message.content.author == "user" else AssistantMessage(content=message.content.content) + for message in task_messages + if message.content and message.content.type == "text" + ] + ] + + ######################################################### + # 4. Call an LLM to respond to the user's message and stream the response to the client. + ######################################################### + + # Call an LLM to respond to the user's message + + print(f"Calling LLM with model {state.model} and messages {llm_messages}") + + # The Agentex server automatically commits input and output messages to the database so you don't need to do this yourself, simply process the input content and return the output content. + + message_index = 0 + async for chunk in adk.providers.litellm.chat_completion_stream( + llm_config=LLMConfig(model=state.model, messages=llm_messages, stream=True), + trace_id=params.task.id, + ): + if chunk and chunk.choices and chunk.choices[0].delta and chunk.choices[0].delta.content: + yield StreamTaskMessageDelta( + index=message_index, + delta=TextDelta(text_delta=chunk.choices[0].delta.content or ""), + ) + + yield StreamTaskMessageDone( + index=message_index, + ) diff --git a/examples/tutorials/00_sync/020_streaming/requirements.txt b/examples/tutorials/00_sync/020_streaming/requirements.txt new file mode 100644 index 000000000..e9b9640aa --- /dev/null +++ b/examples/tutorials/00_sync/020_streaming/requirements.txt @@ -0,0 +1,4 @@ +agentex-py>=0.0.4,<0.1.0 + +# Scale GenAI Platform Python SDK +scale-gp diff --git a/examples/tutorials/00_sync/020_streaming/test.ipynb b/examples/tutorials/00_sync/020_streaming/test.ipynb new file mode 100644 index 000000000..386043ed6 --- /dev/null +++ b/examples/tutorials/00_sync/020_streaming/test.ipynb @@ -0,0 +1,193 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 15, + "id": "d1c309d6", + "metadata": {}, + "outputs": [], + "source": [ + "AGENT_NAME = \"s020-streaming\"" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "36834357", + "metadata": {}, + "outputs": [], + "source": [ + "from agentex import Agentex\n", + "\n", + "client = Agentex(api_key=\"random\", base_url=\"http://localhost:5003\")" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "9f6e6ef0", + "metadata": {}, + "outputs": [], + "source": [ + "# # (Optional) Create a new task. If you don't create a new task, each message will be sent to a new task. The server will create the task for you.\n", + "\n", + "# import uuid\n", + "\n", + "# TASK_ID = str(uuid.uuid4())[:8]\n", + "\n", + "# rpc_response = client.agents.rpc_by_name(\n", + "# agent_name=AGENT_NAME,\n", + "# method=\"task/create\",\n", + "# params={\n", + "# \"name\": f\"{TASK_ID}-task\",\n", + "# \"params\": {}\n", + "# }\n", + "# )\n", + "\n", + "# task = rpc_response.result\n", + "# print(task)" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "b03b0d37", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Hello! I can assist you with a variety of tasks, including:\n", + "\n", + "1. **Answering Questions**: I can provide information on a wide range of topics, including science, history, technology, and more.\n", + "2. **Explaining Concepts**: If you need help understanding a concept or topic, I can provide explanations and clarifications.\n", + "3. **Writing Assistance**: I can help with writing tasks, such as drafting emails, essays, or creative pieces.\n", + "4. **Language Support**: I can assist with grammar, vocabulary, and writing in different languages.\n", + "5. **Providing Recommendations**: Whether it's books, movies, or recipes, I can suggest options based on your preferences.\n", + "6. **Problem-Solving**: I can help you think through problems or brainstorm ideas.\n", + "\n", + "If there's something specific you need help with, feel free to ask!\n" + ] + } + ], + "source": [ + "# Test non streaming response\n", + "from agentex.types import TaskMessage, TextContent\n", + "\n", + "rpc_response = client.agents.rpc_by_name(\n", + " agent_name=AGENT_NAME,\n", + " method=\"message/send\",\n", + " params={\n", + " \"content\": {\"type\": \"text\", \"author\": \"user\", \"content\": \"Hello what can you do?\"},\n", + " \"stream\": False\n", + " }\n", + ")\n", + "\n", + "# # Extract and print just the text content from the response\n", + "# # The response is expected to be a dict with a \"result\" key containing a list of message dicts\n", + "if rpc_response and rpc_response.result:\n", + " for message in rpc_response.result:\n", + " if isinstance(message, TaskMessage):\n", + " content = message.content\n", + " if isinstance(content, TextContent):\n", + " text = content.content\n", + " print(text)\n", + " else:\n", + " print(\"No text content found in response.\")\n" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "79688331", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Hello! I can help with a variety of tasks, including:\n", + "\n", + "1. **Answering Questions**: I can provide information on a wide range of topics, from historical facts to scientific concepts.\n", + "\n", + "2. **Providing Explanations**: If you're looking to understand a specific topic better, I can explain it in detail.\n", + "\n", + "3. **Offering Writing Assistance**: I can help with writing prompts, editing text, or generating ideas for essays, articles, and more.\n", + "\n", + "4. **Solving Problems**: I can assist with math problems, logic puzzles, and more.\n", + "\n", + "5. **Learning Support**: I can help with study tips, summarizing information, and creating study guides.\n", + "\n", + "6. **Conversational Practice**: If you want to practice a language or just have a chat, I’m here for that too!\n", + "\n", + "7. **Recommendation Systems**: I can recommend books, movies, or other media based on your interests.\n", + "\n", + "Feel free to ask me anything specific you need help with!" + ] + } + ], + "source": [ + "# Test streaming response\n", + "import json\n", + "from agentex.types import AgentRpcResponse\n", + "from agentex.types.agent_rpc_result import StreamTaskMessageDelta, StreamTaskMessageFull\n", + "from agentex.types.text_delta import TextDelta\n", + "\n", + "with client.agents.with_streaming_response.rpc_by_name(\n", + " agent_name=AGENT_NAME,\n", + " method=\"message/send\",\n", + " params={\n", + " \"content\": {\"type\": \"text\", \"author\": \"user\", \"content\": \"Hello what can you do?\"},\n", + " \"stream\": True\n", + " }\n", + ") as response:\n", + " for streaming_response_str in response.iter_text():\n", + " chunk_rpc_responses = streaming_response_str.split(\"\\n\")\n", + " for chunk_rpc_response in chunk_rpc_responses:\n", + " if chunk_rpc_response:\n", + " chunk_rpc_response_dict = json.loads(chunk_rpc_response)\n", + " chunk_rpc_response = AgentRpcResponse.model_validate(chunk_rpc_response_dict)\n", + " result = chunk_rpc_response.result\n", + " # Print only the text deltas as they arrive or any full messages\n", + " if isinstance(result, StreamTaskMessageDelta):\n", + " delta = result.delta\n", + " if isinstance(delta, TextDelta):\n", + " print(delta.text_delta, end=\"\", flush=True)\n", + " elif isinstance(result, StreamTaskMessageFull):\n", + " content = result.content\n", + " if isinstance(content, TextContent):\n", + " print(content.content)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4ffb663c", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.9" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/examples/tutorials/00_sync/030_hello_oldowan/.dockerignore b/examples/tutorials/00_sync/030_hello_oldowan/.dockerignore new file mode 100644 index 000000000..c3620f1bc --- /dev/null +++ b/examples/tutorials/00_sync/030_hello_oldowan/.dockerignore @@ -0,0 +1,46 @@ +# Python +__pycache__/ +*.py[cod] +*$py.class +*.so +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +*.egg-info/ +.installed.cfg +*.egg + +# Environments +.env** +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# IDE +.idea/ +.vscode/ +*.swp +*.swo + +# Git +.git +.gitignore + +# Misc +.DS_Store + +# CodeArtifact configuration +.codeartifact-pip-conf \ No newline at end of file diff --git a/examples/tutorials/00_sync/030_hello_oldowan/Dockerfile b/examples/tutorials/00_sync/030_hello_oldowan/Dockerfile new file mode 100644 index 000000000..0ad11f331 --- /dev/null +++ b/examples/tutorials/00_sync/030_hello_oldowan/Dockerfile @@ -0,0 +1,45 @@ +# syntax=docker/dockerfile:1.3 +FROM python:3.12-slim +COPY --from=ghcr.io/astral-sh/uv:0.6.4 /uv /uvx /bin/ + +# Install system dependencies +RUN apt-get update && apt-get install -y \ + htop \ + vim \ + curl \ + tar \ + python3-dev \ + postgresql-client \ + build-essential \ + libpq-dev \ + gcc \ + cmake \ + netcat-openbsd \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* + +RUN uv pip install --system --upgrade pip setuptools wheel + +ENV UV_HTTP_TIMEOUT=1000 + +# Copy just the requirements file to optimize caching +COPY 030_hello_oldowan/requirements.txt /app/requirements.txt + +WORKDIR /app/ + +# Install the required Python packages +RUN --mount=type=secret,id=codeartifact-pip-conf,target=/etc/pip.conf \ + export UV_INDEX_URL=$(grep -E "^index-url" /etc/pip.conf | cut -d'=' -f2- | xargs) && \ + export UV_EXTRA_INDEX_URL=$(grep -E "^extra-index-url" /etc/pip.conf | cut -d'=' -f2- | xargs || echo "") && \ + uv pip install --system -r requirements.txt + +# Copy the project code +COPY 030_hello_oldowan/project /app/project + +WORKDIR /app/project + +# Set environment variables +ENV PYTHONPATH=/app + +# Run the agent using uvicorn +CMD ["uvicorn", "acp:acp", "--host", "0.0.0.0", "--port", "8000"] \ No newline at end of file diff --git a/examples/tutorials/00_sync/030_hello_oldowan/README.md b/examples/tutorials/00_sync/030_hello_oldowan/README.md new file mode 100644 index 000000000..756539ef6 --- /dev/null +++ b/examples/tutorials/00_sync/030_hello_oldowan/README.md @@ -0,0 +1,17 @@ +# Hello Oldowan Agent + +This is a simple example agent that demonstrates the basics of the Agent 2 Client Protocol (ACP) and the AgentEx framework with an integration to oldowan. + +## For Development +Navigate to `tutorials/00_sync/030_hello_oldowan` + +```bash +# Generate CodeArtifact configuration for building (run from repo root) +./setup-build-codeartifact.sh + +# Set up local development environment +uv venv --python 3.12 +source .venv/bin/activate + +uv pip install -r requirements.txt --prerelease=allow +``` diff --git a/examples/tutorials/00_sync/030_hello_oldowan/manifest.yaml b/examples/tutorials/00_sync/030_hello_oldowan/manifest.yaml new file mode 100644 index 000000000..bcbd04e51 --- /dev/null +++ b/examples/tutorials/00_sync/030_hello_oldowan/manifest.yaml @@ -0,0 +1,115 @@ +# Agent Manifest Configuration +# --------------------------- +# This file defines how your agent should be built and deployed. + +# Build Configuration +# ------------------ +# The build config defines what gets packaged into your agent's Docker image. +# This same configuration is used whether building locally or remotely. +# +# When building: +# 1. All files from include_paths are collected into a build context +# 2. The context is filtered by dockerignore rules +# 3. The Dockerfile uses this context to build your agent's image +# 4. The image is pushed to a registry and used to run your agent +build: + context: + # Root directory for the build context + root: ../ # Keep this as the default root + + # Paths to include in the Docker build context + # Must include: + # - agentex-py: The core framework (needed for agent execution) + # - Your agent's directory (your custom agent code) + # These paths are collected and sent to the Docker daemon for building + include_paths: + - 030_hello_oldowan + + # Path to your agent's Dockerfile + # This defines how your agent's image is built from the context + # Relative to the root directory + dockerfile: 030_hello_oldowan/Dockerfile + + # Path to your agent's .dockerignore + # Filters unnecessary files from the build context + # Helps keep build context small and builds fast + dockerignore: 030_hello_oldowan/.dockerignore + +# Local Development Configuration +# ----------------------------- +# Only used when running the agent locally +local_development: + agent: + port: 8000 # Port where your local ACP server is running + host_address: host.docker.internal # Host address for Docker networking (host.docker.internal for Docker, localhost for direct) + + # File paths for local development (relative to this manifest.yaml) + paths: + # Path to ACP server file + # Examples: + # project/acp.py (standard) + # src/server.py (custom structure) + # ../shared/acp.py (shared across projects) + # /absolute/path/acp.py (absolute path) + acp: project/acp.py + +# Agent Configuration +# ----------------- +agent: + acp_type: sync + # Unique name for your agent + # Used for task routing and monitoring + name: s030-hello-oldowan + + # Description of what your agent does + # Helps with documentation and discovery + description: An AgentEx agent that does multiturn streaming chat with tools in oldowan + + # Temporal workflow configuration + # Set enabled: true to use Temporal workflows for long-running tasks + temporal: + enabled: false + + # Optional: Credentials mapping + # Maps Kubernetes secrets to environment variables + # Common credentials include: + # credentials: + # - env_var_name: OPENAI_API_KEY + # secret_name: openai-api-key + # secret_key: api-key + + # Optional: Set Environment variables for running your agent locally as well + # as for deployment later on + # env: + # - name: OPENAI_BASE_URL + # value: "https://api.openai.com/v1" + # - name: ACCOUNT_ID + # value: "your_account_id_here" + +# Deployment Configuration +# ----------------------- +# Configuration for deploying your agent to Kubernetes clusters +deployment: + # Container image configuration + image: + repository: "" # Update with your container registry + tag: "latest" # Default tag, should be versioned in production + + # Global deployment settings that apply to all clusters + # These can be overridden in cluster-specific files (deploy/*.yaml) + global: + agent: + name: "s030-hello-oldowan" + description: "An AgentEx agent that does multiturn streaming chat with tools in oldowan" + + # Default replica count + replicaCount: 1 + + # Default resource requirements + resources: + requests: + cpu: "500m" + memory: "1Gi" + limits: + cpu: "1000m" + memory: "2Gi" diff --git a/examples/tutorials/00_sync/030_hello_oldowan/project/__init__.py b/examples/tutorials/00_sync/030_hello_oldowan/project/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/examples/tutorials/00_sync/030_hello_oldowan/project/acp.py b/examples/tutorials/00_sync/030_hello_oldowan/project/acp.py new file mode 100644 index 000000000..f6f6795a9 --- /dev/null +++ b/examples/tutorials/00_sync/030_hello_oldowan/project/acp.py @@ -0,0 +1,512 @@ +import os +import json +from typing import AsyncGenerator, Callable, List, Union, Dict +from functools import partial + +from agentex.lib import adk +from agentex.lib.sdk.fastacp.fastacp import FastACP +from agentex.lib.types.task_message_updates import ( + StreamTaskMessageDelta, + StreamTaskMessageFull, + TaskMessageUpdate, + TextDelta, + ToolRequestDelta, + ToolResponseDelta, +) +from agentex.lib.types.acp import SendMessageParams +from agentex.lib.types.llm_messages import Message, UserMessage +from agentex.lib.utils.model_utils import BaseModel +from agentex.types.span import Span +from agentex.types.task_message_content import TaskMessageContent, TextContent, ToolRequestContent, ToolResponseContent + + +from oldowan.tools.internal import google_search +from oldowan.completions import ( + ToolMessage, + ChatCompletionMessage, + simple_agent_acompletion, + ChoiceDelta, +) + +assert os.environ.get("SGP_API_KEY") is not None, "SGP_API_KEY is not set" +assert os.environ.get("SGP_ACCOUNT_ID") is not None, "SGP_ACCOUNT_ID is not set" + + +def think(thinking_str: str): + """ + Use the tool to think about something. It will not obtain new information or change the database, but just append the thought to the log. Use it when complex reasoning or some cache memory is needed. + Args: + thinking_str: A thought to think about. + """ + return + + +TOOL_DICT = { + "google_search": google_search, + "think": think, +} + +# Create an ACP server +acp = FastACP.create( + acp_type="sync", +) + +TOOL_RESPONSE_ID_SUFFIX = "_response" + + +class SimpleAgentCompletionConfig(BaseModel): + model: str + tools: List[str] + max_tokens: int + stream: bool + + +class StateModel(BaseModel): + turn_number: int # The number of turns the agent has taken + messages: List[Message] # The messages the agent has seen + simple_agent_completion_config: ( + SimpleAgentCompletionConfig # The function to call to get an agent response + ) + + +def convert_choice_delta_to_stream_task_message_deltas( + choice_delta: ChoiceDelta, idx: int +) -> List[StreamTaskMessageDelta]: + """ + This function converts a ChoiceDelta to a list of StreamTaskMessageDelta objects. + Args: + choice_delta: The ChoiceDelta to convert. + parent_task_message: The parent task message. + Returns: + A list of StreamTaskMessageDelta objects. + """ + # these are tool requests + deltas = [] + if ( + choice_delta.tool_calls is not None + and choice_delta.tool_calls[0].function.name is not None + ): + for tool_call in choice_delta.tool_calls: + deltas.append( + StreamTaskMessageDelta( + index=idx, + delta=ToolRequestDelta( + type="tool_request", + tool_call_id=tool_call.id, + name=tool_call.function.name, + arguments_delta=tool_call.function.arguments, + ), + ) + ) + # pass + # These are tool responses + elif choice_delta.role == "tool": + deltas.append( + StreamTaskMessageDelta( + index=idx, + delta=ToolResponseDelta( + type="tool_response", + tool_call_id=choice_delta.tool_call_id, + name=choice_delta.name, + content_delta=choice_delta.content, + ), + ) + ) + + # These are assistant messages + elif choice_delta.content is not None: + deltas.append( + StreamTaskMessageDelta( + index=idx, + delta=TextDelta( + type="text", + text_delta=choice_delta.content, + ), + ) + ) + + return deltas + + +def convert_choice_delta_to_message_content( + choice_delta: ChoiceDelta, +) -> TaskMessageContent: + """ + This function converts a ChoiceDelta to a TaskMessageContent object. + Args: + choice_delta: The ChoiceDelta to convert. + Returns: + A TaskMessageContent object. + """ + # This converts a ChoiceDelta to a TaskMessage which will instantiate "the box" to send to client + if choice_delta.tool_calls is not None: + # since we are streaming we can assume we onl need to create a message for the first tool call + return ToolRequestContent( + author="agent", + name=choice_delta.tool_calls[0].function.name, + tool_call_id=choice_delta.tool_calls[0].id, + arguments={}, # have to start this empty since we are streaming + ) + elif choice_delta.role == "tool": + print("HERE I AM: ", choice_delta) + return ToolResponseContent( + author="agent", + tool_call_id=choice_delta.tool_calls[0].id, + name=choice_delta.name, + content="", # starting empty because we add to it + ) + elif choice_delta.role == "assistant": + return TextContent( + author="agent", + content="", # starting empty because we add to it + ) + raise ValueError( + f"Unknown role: {choice_delta.role}. Failed to convert to TaskMessage" + ) + + +def convert_oldowan_message_to_stream_task_message_full( + id_to_task_message_idx: Dict[str, int], + oldowan_message: Union[ChatCompletionMessage, ToolMessage], +) -> List[StreamTaskMessageFull]: + """ + This function converts an Oldowan message to a list of StreamTaskMessageFull objects. + Args: + task_messages: A dictionary of task messages. + task_id: The task id. + oldowan_message: The Oldowan message to convert. + Returns: + A list of StreamTaskMessageFull objects. + """ + + fulls = [] + if isinstance(oldowan_message, ChatCompletionMessage): + # First create all tool calls + if oldowan_message.tool_calls is not None: + for tool_call in oldowan_message.tool_calls: + fulls.append( + StreamTaskMessageFull( + index=id_to_task_message_idx[tool_call.id], + content=ToolRequestContent( + author="agent", + name=tool_call.function.name, + arguments=json.loads(tool_call.function.arguments), + tool_call_id=tool_call.id, + ), + ) + ) + + # Create the assistant messages + if oldowan_message.content is not None: + fulls.append( + StreamTaskMessageFull( + index=id_to_task_message_idx[oldowan_message.id], + content=TextContent( + author="agent", + content=oldowan_message.content, + ), + ) + ) + + # Finally create the tool responses + elif isinstance(oldowan_message, ToolMessage): + fulls.append( + StreamTaskMessageFull( + index=id_to_task_message_idx[ + oldowan_message.tool_call_id + TOOL_RESPONSE_ID_SUFFIX + ], + content=ToolResponseContent( + author="agent", + tool_call_id=oldowan_message.tool_call_id, + name=oldowan_message.name, + content=oldowan_message.content, + ), + ) + ) + + return fulls + + +def get_oldowan_message_ids( + oldowan_message: Union[ChatCompletionMessage, ToolMessage], +) -> List[str]: + """ + This function gets the ids of the oldowan message. + Args: + oldowan_message: The Oldowan message to get the ids of. + Returns: + A list of ids. + """ + message_ids = [] + if isinstance(oldowan_message, ChatCompletionMessage): + # check that there is content + if oldowan_message.content is not None: + message_ids.append(oldowan_message.id) + + # check if there are tool calls + if oldowan_message.tool_calls is not None: + for tool_call in oldowan_message.tool_calls: + message_ids.append(tool_call.id) + + elif isinstance(oldowan_message, ToolMessage): + message_ids.append(oldowan_message.tool_call_id + TOOL_RESPONSE_ID_SUFFIX) + + return message_ids + + +# This will eventually become adk.providers.oldowan.stream_agent_sync +async def stream_oldowan_agent_sync( + messages: List[Message], + task_id: str, + span: Span, + simple_agent_acompletion_fn: Callable, +) -> AsyncGenerator[StreamTaskMessageDelta, None]: + """ + Stream an Oldowan agent response to the client. + Args: + messages: The messages to send to the agent. + task_id: The task id. + span: The span to use for tracing. + Returns: + AsyncGenerator[TaskMessageUpdate, None]: A generator of task message updates. + """ + response_stream = await simple_agent_acompletion_fn(messages=messages) + + # This is used to create the current TaskMessage object + cur_task_message_id = None + cur_idx = 0 + + # This maps id either from message object, tool_call, or tool_response to the TaskMessage object + id_to_task_message_idx = {} + + # These are messages that have already been sent in "full" + persisted_messages = [] + events = [] + + # These are ChoiceDelta objects + async for event in response_stream: + if event.role is not None: + # if there is a tool call made then check if its a new tool_call_id + if ( + event.tool_calls is not None + and event.tool_calls[0].id is not None + and event.tool_calls[0].id not in id_to_task_message_idx + ): + print(f"Role changed: {event.role}") + print(f"Tool call id changed: {event.tool_calls[0].id}") + cur_task_message_id = event.tool_calls[0].id + id_to_task_message_idx[event.tool_calls[0].id] = cur_idx + cur_idx += 1 + + # id_to_task_message[event.tool_calls[0].id] = await adk.messages.create( + # task_id=task_id, + # content=convert_choice_delta_to_message_content(event), + # ) + # print(f"Created new task message: {id_to_task_message[event.tool_calls[0].id]}") + + # If you are in a tool response, you should check that either the tool_call_id has changed or your last type was not tool + elif event.role == "tool" and ( + event.tool_call_id + TOOL_RESPONSE_ID_SUFFIX + not in id_to_task_message_idx + ): + print(f"Role changed: {event.role}") + print( + f"Tool Response id: {event.tool_call_id + TOOL_RESPONSE_ID_SUFFIX}" + ) + cur_task_message_id = event.tool_call_id + TOOL_RESPONSE_ID_SUFFIX + id_to_task_message_idx[event.tool_call_id + TOOL_RESPONSE_ID_SUFFIX] = ( + cur_idx + ) + cur_idx += 1 + # id_to_task_message[event.tool_call_id + TOOL_RESPONSE_ID_SUFFIX] = await adk.messages.create( + # task_id=task_id, + # content=convert_choice_delta_to_message_content(event), + # ) + # print(f"Created new task message: {id_to_task_message[event.tool_call_id + TOOL_RESPONSE_ID_SUFFIX]}") + + elif ( + event.role == "assistant" + and event.content is not None + and event.id not in id_to_task_message_idx + ): # this is an assistant message + print(f"Role is: {event.role}") + assert hasattr( + event, "id" + ), "Event does not have an id, please upgrade to latest oldowan" + print(f"Event id: {event.id}") + cur_task_message_id = event.id + id_to_task_message_idx[event.id] = cur_idx + cur_idx += 1 + # update the current role and task message + # id_to_task_message[event.id] = await adk.messages.create( + # task_id=task_id, + # content=convert_choice_delta_to_message_content(event), + # trace_id=task_id, + # ) + # print(f"Created new task message: {id_to_task_message[event.id]}") + + # Now we can create the items to stream + # NOTE: key assumption is that ChoiceDeltaToolCall can only apply to one tool call at a time. + for task_message_delta in convert_choice_delta_to_stream_task_message_deltas( + event, idx=id_to_task_message_idx[cur_task_message_id] + ): + yield task_message_delta + + events.append(event) + + # Issue is that we can either have an oldowan message before a task message has been created OR task message before the oldowan message + # this is because tool response messages are added to messages immediately, but streamed one after the other. + # For each oldowan message, if we haven't persisted it yet, then do so + for idx, oldowan_message in enumerate(response_stream.messages): + if oldowan_message not in persisted_messages and all( + [ + id in id_to_task_message_idx + for id in get_oldowan_message_ids(oldowan_message) + ] + ): + async with adk.tracing.span( + trace_id=task_id, + parent_id=span.id, + name=f"Message {idx}", + input=messages + + response_stream.messages[:idx], # input messages to this message + ) as message_span: + message_span.output = oldowan_message + + # Send the full messages now that they are done + for ( + stream_task_message_full + ) in convert_oldowan_message_to_stream_task_message_full( + id_to_task_message_idx=id_to_task_message_idx, + oldowan_message=oldowan_message, + ): + yield stream_task_message_full + + print(f"Persisted message: {oldowan_message}") + persisted_messages.append(oldowan_message) + + # Stream the last object + async with adk.tracing.span( + trace_id=task_id, + parent_id=span.id, + name=f"Message {len(response_stream.messages)}", + input=messages + response_stream.messages[:-1], + ) as message_span: + message_span.output = response_stream.messages[-1] + + # Persist the last message to the DB + for stream_task_message_full in convert_oldowan_message_to_stream_task_message_full( + id_to_task_message_idx=id_to_task_message_idx, + oldowan_message=response_stream.messages[-1], + ): + yield stream_task_message_full + print(f"Persisted message: {response_stream.messages[-1]}") + persisted_messages.append(response_stream.messages[-1]) + + # Aggregate the messages and store the output + messages = response_stream.messages + span.output = messages + + +# Note: The return of this handler is required to be persisted by the Agentex Server +@acp.on_message_send +async def handle_message_send( + params: SendMessageParams +) -> Union[TaskMessageContent, AsyncGenerator[TaskMessageUpdate, None]]: + """ + In this tutorial, we'll see how to handle a basic multi-turn conversation without streaming. + """ + ######################################################### + # 1-3. These steps are all the same as the hello acp tutorial. + ######################################################### + + if params.content.type != "text": + raise ValueError(f"Expected text message, got {params.content.type}") + + if params.content.author != "user": + raise ValueError(f"Expected user message, got {params.content.author}") + + if not os.environ.get("OPENAI_API_KEY"): + yield StreamTaskMessageFull( + index=0, + content=TextContent( + author="agent", + content="Hey, sorry I'm unable to respond to your message because you're running this example without an OpenAI API key. Please set the OPENAI_API_KEY environment variable to run this example. Do this by either by adding a .env file to the project/ directory or by setting the environment variable in your terminal.", + ), + ) + + # Try to retrieve the state. If it doesn't exist, create it. + task_state = await adk.state.get_by_task_and_agent( + task_id=params.task.id, agent_id=params.agent.id + ) + + if not task_state: + # If the state doesn't exist, create it. + state = StateModel( + simple_agent_completion_config=SimpleAgentCompletionConfig( + model="openai/gpt-4o", + tools=["google_search", "think"], + max_tokens=8192, + stream=True, + ), + messages=[], + turn_number=0, + ) + assert all( + [tool in TOOL_DICT for tool in state.simple_agent_completion_config.tools] + ), f"Invalid tool: {state.simple_agent_completion_config.tools}" + task_state = await adk.state.create( + task_id=params.task.id, agent_id=params.agent.id, state=state + ) + else: + state = StateModel.model_validate(task_state.state) + + messages = state.messages + + ######################################################### + # 4. Call an LLM to respond to the user's message and stream the response to the client. + ######################################################### + print( + f"Calling LLM with model {state.simple_agent_completion_config.model_dump_json()} and messages {messages}" + ) + + # Add the user's message to the conversation history + state.messages.append(UserMessage(content=params.content.content)) + + # The Agentex server automatically commits input and output messages to the database so you don't need to do this yourself, simply process the input content and return the output content. + async with adk.tracing.span( + trace_id=params.task.id, + name=f"Turn {state.turn_number}", + input=state, + ) as span: + simple_agent_completion_fn = partial( + simple_agent_acompletion, + model=state.simple_agent_completion_config.model, + tools=[ + TOOL_DICT[tool] for tool in state.simple_agent_completion_config.tools + ], + max_tokens=state.simple_agent_completion_config.max_tokens, + stream=state.simple_agent_completion_config.stream, + ) + # Stream the response and collect the generated messages + async for chunk in stream_oldowan_agent_sync( + messages=messages, + task_id=params.task.id, + span=span, + simple_agent_acompletion_fn=simple_agent_completion_fn, + ): + yield chunk + + # The generated messages are accessible from the span output + state.messages.extend(span.output) + + state.turn_number += 1 + + # Update the state with the new messages + await adk.state.update( + task_id=params.task.id, + agent_id=params.agent.id, + state_id=task_state.id, + state=state, + trace_id=params.task.id, + ) diff --git a/examples/tutorials/00_sync/030_hello_oldowan/requirements.txt b/examples/tutorials/00_sync/030_hello_oldowan/requirements.txt new file mode 100644 index 000000000..1077299aa --- /dev/null +++ b/examples/tutorials/00_sync/030_hello_oldowan/requirements.txt @@ -0,0 +1,6 @@ +# Install agentex-py from local path +agentex-py>=0.0.4,<0.1.0 + +# Scale GenAI Platform Python SDK +scale-gp +scale-oldowan>=0.3.17 \ No newline at end of file diff --git a/examples/tutorials/10_agentic/00_base/000_hello_acp/.dockerignore b/examples/tutorials/10_agentic/00_base/000_hello_acp/.dockerignore new file mode 100644 index 000000000..4521d8465 --- /dev/null +++ b/examples/tutorials/10_agentic/00_base/000_hello_acp/.dockerignore @@ -0,0 +1,46 @@ +# Python +__pycache__/ +*.py[cod] +*$py.class +*.so +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +*.egg-info/ +.installed.cfg +*.egg + +# Environments +.env** +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# IDE +.idea/ +.vscode/ +*.swp +*.swo + +# Git +.git +.gitignore + +# Misc +.DS_Store + +# CodeArtifact configuration +.codeartifact-pip-conf \ No newline at end of file diff --git a/examples/tutorials/10_agentic/00_base/000_hello_acp/Dockerfile b/examples/tutorials/10_agentic/00_base/000_hello_acp/Dockerfile new file mode 100644 index 000000000..34f07ab19 --- /dev/null +++ b/examples/tutorials/10_agentic/00_base/000_hello_acp/Dockerfile @@ -0,0 +1,45 @@ +# syntax=docker/dockerfile:1.3 +FROM python:3.12-slim +COPY --from=ghcr.io/astral-sh/uv:0.6.4 /uv /uvx /bin/ + +# Install system dependencies +RUN apt-get update && apt-get install -y \ + htop \ + vim \ + curl \ + tar \ + python3-dev \ + postgresql-client \ + build-essential \ + libpq-dev \ + gcc \ + cmake \ + netcat-openbsd \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* + +RUN uv pip install --system --upgrade pip setuptools wheel + +ENV UV_HTTP_TIMEOUT=1000 + +# Copy just the requirements file to optimize caching +COPY 000_hello_acp/requirements.txt /app/requirements.txt + +WORKDIR /app/ + +# Install the required Python packages +RUN --mount=type=secret,id=codeartifact-pip-conf,target=/etc/pip.conf \ + export UV_INDEX_URL=$(grep -E "^index-url" /etc/pip.conf | cut -d'=' -f2- | xargs) && \ + export UV_EXTRA_INDEX_URL=$(grep -E "^extra-index-url" /etc/pip.conf | cut -d'=' -f2- | xargs || echo "") && \ + uv pip install --system -r requirements.txt + +# Copy the project code +COPY 000_hello_acp/project /app/project + +WORKDIR /app/project + +# Set environment variables +ENV PYTHONPATH=/app + +# Run the agent using uvicorn +CMD ["uvicorn", "acp:acp", "--host", "0.0.0.0", "--port", "8000"] \ No newline at end of file diff --git a/examples/tutorials/10_agentic/00_base/000_hello_acp/manifest.yaml b/examples/tutorials/10_agentic/00_base/000_hello_acp/manifest.yaml new file mode 100644 index 000000000..ca5f5df36 --- /dev/null +++ b/examples/tutorials/10_agentic/00_base/000_hello_acp/manifest.yaml @@ -0,0 +1,122 @@ +# Agent Manifest Configuration +# --------------------------- +# This file defines how your agent should be built and deployed. + +# Build Configuration +# ------------------ +# The build config defines what gets packaged into your agent's Docker image. +# This same configuration is used whether building locally or remotely. +# +# When building: +# 1. All files from include_paths are collected into a build context +# 2. The context is filtered by dockerignore rules +# 3. The Dockerfile uses this context to build your agent's image +# 4. The image is pushed to a registry and used to run your agent +build: + context: + # Root directory for the build context + root: ../ # Keep this as the default root + + # Paths to include in the Docker build context + # Must include: + # - agentex-py: The core framework (needed for agent execution) + # - Your agent's directory (your custom agent code) + # These paths are collected and sent to the Docker daemon for building + include_paths: + - 000_hello_acp + + # Path to your agent's Dockerfile + # This defines how your agent's image is built from the context + # Relative to the root directory + dockerfile: 000_hello_acp/Dockerfile + + # Path to your agent's .dockerignore + # Filters unnecessary files from the build context + # Helps keep build context small and builds fast + dockerignore: 000_hello_acp/.dockerignore + + +# Local Development Configuration +# ----------------------------- +# Only used when running the agent locally +local_development: + agent: + port: 8000 # Port where your local ACP server is running + host_address: host.docker.internal # Host address for Docker networking (host.docker.internal for Docker, localhost for direct) + + # File paths for local development (relative to this manifest.yaml) + paths: + # Path to ACP server file + # Examples: + # project/acp.py (standard) + # src/server.py (custom structure) + # ../shared/acp.py (shared across projects) + # /absolute/path/acp.py (absolute path) + acp: project/acp.py + + +# Agent Configuration +# ----------------- +agent: + # Unique name for your agent + # Used for task routing and monitoring + name: ab000-hello-acp + + # Type of ACP to use + # sync: Simple synchronous ACP implementation + # agentic: Advanced ACP with sub-types "base" or "temporal" (requires config) + acp_type: agentic + + # Description of what your agent does + # Helps with documentation and discovery + description: An AgentEx agent that is not intelligent. It just shows how to implement the base agentic ACP type. + + # Temporal workflow configuration + # Set enabled: true to use Temporal workflows for long-running tasks + temporal: + enabled: false + + # Optional: Credentials mapping + # Maps Kubernetes secrets to environment variables + # Common credentials include: + # credentials: + # - env_var_name: OPENAI_API_KEY + # secret_name: openai-api-key + # secret_key: api-key + + # Optional: Set Environment variables for running your agent locally as well + # as for deployment later on + # env: + # - name: OPENAI_BASE_URL + # value: "https://api.openai.com/v1" + # - name: ACCOUNT_ID + # value: "your_account_id_here" + + +# Deployment Configuration +# ----------------------- +# Configuration for deploying your agent to Kubernetes clusters +deployment: + # Container image configuration + image: + repository: "" # Update with your container registry + tag: "latest" # Default tag, should be versioned in production + + # Global deployment settings that apply to all clusters + # These can be overridden in cluster-specific files (deploy/*.yaml) + global: + agent: + name: "ab000-hello-acp" + description: "An AgentEx agent that is not intelligent. It just shows how to implement the base agentic ACP type." + + # Default replica count + replicaCount: 1 + + # Default resource requirements + resources: + requests: + cpu: "500m" + memory: "1Gi" + limits: + cpu: "1000m" + memory: "2Gi" \ No newline at end of file diff --git a/examples/tutorials/10_agentic/00_base/000_hello_acp/project/__init__.py b/examples/tutorials/10_agentic/00_base/000_hello_acp/project/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/examples/tutorials/10_agentic/00_base/000_hello_acp/project/acp.py b/examples/tutorials/10_agentic/00_base/000_hello_acp/project/acp.py new file mode 100644 index 000000000..069dc0b35 --- /dev/null +++ b/examples/tutorials/10_agentic/00_base/000_hello_acp/project/acp.py @@ -0,0 +1,75 @@ +import json +from agentex.lib import adk +from agentex.lib.sdk.fastacp.fastacp import FastACP +from agentex.lib.types.fastacp import AgenticACPConfig +from agentex.lib.types.acp import CancelTaskParams, CreateTaskParams, SendEventParams + +from agentex.types.text_content import TextContent +from agentex.lib.utils.logging import make_logger + +logger = make_logger(__name__) + + +# Create an ACP server with base configuration +# This sets up the core server that will handle task creation, events, and cancellation +acp = FastACP.create( + acp_type="agentic", + config=AgenticACPConfig( + type="base", + ), +) + +@acp.on_task_create +async def handle_task_create(params: CreateTaskParams): + # This handler is called first whenever a new task is created. + # It's a good place to initialize any state or resources needed for the task. + + ######################################################### + # 1. (👋) Do task initialization here. + ######################################################### + + # Acknowledge that the task has been created. + await adk.messages.create( + task_id=params.task.id, + content=TextContent( + author="agent", + content=f"Hello! I've received your task. Normally you can do some state initialization here, or just pass and do nothing until you get your first event. For now I'm just acknowledging that I've received a task with the following params:\n\n{json.dumps(params.params, indent=2)}.\n\nYou should only see this message once, when the task is created. All subsequent events will be handled by the `on_task_event_send` handler.", + ), + ) + +@acp.on_task_event_send +async def handle_event_send(params: SendEventParams): + # This handler is called whenever a new event (like a message) is sent to the task + + ######################################################### + # 2. (👋) Echo back the client's message to show it in the UI. + ######################################################### + + # This is not done by default so the agent developer has full control over what is shown to the user. + if params.event.content: + await adk.messages.create(task_id=params.task.id, content=params.event.content) + + ######################################################### + # 3. (👋) Send a simple response message. + ######################################################### + + # In future tutorials, this is where we'll add more sophisticated response logic. + await adk.messages.create( + task_id=params.task.id, + content=TextContent( + author="agent", + content=f"Hello! I've received your message. I can't respond right now, but in future tutorials we'll see how you can get me to intelligently respond to your message.", + ), + ) + +@acp.on_task_cancel +async def handle_task_cancel(params: CancelTaskParams): + # This handler is called when a task is cancelled. + # It's useful for cleaning up any resources or state associated with the task. + + ######################################################### + # 4. (👋) Do task cleanup here. + ######################################################### + + # This is mostly for durable workflows that are cancellable like Temporal, but we will leave it here for demonstration purposes. + logger.info(f"Hello! I've received task cancel for task {params.task.id}: {params.task}. This isn't necessary for this example, but it's good to know that it's available.") diff --git a/examples/tutorials/10_agentic/00_base/000_hello_acp/requirements.txt b/examples/tutorials/10_agentic/00_base/000_hello_acp/requirements.txt new file mode 100644 index 000000000..d12ad3951 --- /dev/null +++ b/examples/tutorials/10_agentic/00_base/000_hello_acp/requirements.txt @@ -0,0 +1,4 @@ +agentex-py>=0.0.4,<0.1.0 + +# Scale GenAI Platform Python SDK +scale-gp \ No newline at end of file diff --git a/examples/tutorials/10_agentic/00_base/010_multiturn/.dockerignore b/examples/tutorials/10_agentic/00_base/010_multiturn/.dockerignore new file mode 100644 index 000000000..4521d8465 --- /dev/null +++ b/examples/tutorials/10_agentic/00_base/010_multiturn/.dockerignore @@ -0,0 +1,46 @@ +# Python +__pycache__/ +*.py[cod] +*$py.class +*.so +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +*.egg-info/ +.installed.cfg +*.egg + +# Environments +.env** +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# IDE +.idea/ +.vscode/ +*.swp +*.swo + +# Git +.git +.gitignore + +# Misc +.DS_Store + +# CodeArtifact configuration +.codeartifact-pip-conf \ No newline at end of file diff --git a/examples/tutorials/10_agentic/00_base/010_multiturn/Dockerfile b/examples/tutorials/10_agentic/00_base/010_multiturn/Dockerfile new file mode 100644 index 000000000..29f524911 --- /dev/null +++ b/examples/tutorials/10_agentic/00_base/010_multiturn/Dockerfile @@ -0,0 +1,45 @@ +# syntax=docker/dockerfile:1.3 +FROM python:3.12-slim +COPY --from=ghcr.io/astral-sh/uv:0.6.4 /uv /uvx /bin/ + +# Install system dependencies +RUN apt-get update && apt-get install -y \ + htop \ + vim \ + curl \ + tar \ + python3-dev \ + postgresql-client \ + build-essential \ + libpq-dev \ + gcc \ + cmake \ + netcat-openbsd \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* + +RUN uv pip install --system --upgrade pip setuptools wheel + +ENV UV_HTTP_TIMEOUT=1000 + +# Copy just the requirements file to optimize caching +COPY 010_multiturn/requirements.txt /app/requirements.txt + +WORKDIR /app/ + +# Install the required Python packages +RUN --mount=type=secret,id=codeartifact-pip-conf,target=/etc/pip.conf \ + export UV_INDEX_URL=$(grep -E "^index-url" /etc/pip.conf | cut -d'=' -f2- | xargs) && \ + export UV_EXTRA_INDEX_URL=$(grep -E "^extra-index-url" /etc/pip.conf | cut -d'=' -f2- | xargs || echo "") && \ + uv pip install --system -r requirements.txt + +# Copy the project code +COPY 010_multiturn/project /app/project + +WORKDIR /app/project + +# Set environment variables +ENV PYTHONPATH=/app + +# Run the agent using uvicorn +CMD ["uvicorn", "acp:acp", "--host", "0.0.0.0", "--port", "8000"] \ No newline at end of file diff --git a/examples/tutorials/10_agentic/00_base/010_multiturn/README.md b/examples/tutorials/10_agentic/00_base/010_multiturn/README.md new file mode 100644 index 000000000..30e18800c --- /dev/null +++ b/examples/tutorials/10_agentic/00_base/010_multiturn/README.md @@ -0,0 +1,21 @@ +# [Agentic] (Base) Echo + +This is a simple AgentEx agent that just says hello and acknowledges the user's message to show which ACP methods need to be implemented for the base agentic ACP type. + +## Building the Agent + +To build the agent Docker image locally: + +1. First, set up CodeArtifact authentication: +```bash +../../../setup-build-codeartifact.sh +``` + +2. Build the agent image: +```bash +agentex agents build --manifest manifest.yaml --secret 'id=codeartifact-pip-conf,src=.codeartifact-pip-conf' +``` + +## Official Documentation + +[000 Hello Base Agentic](https://agentex.scale.com/docs/tutorials/agentic/000_hello_base_agentic) diff --git a/examples/tutorials/10_agentic/00_base/010_multiturn/manifest.yaml b/examples/tutorials/10_agentic/00_base/010_multiturn/manifest.yaml new file mode 100644 index 000000000..4ad60c950 --- /dev/null +++ b/examples/tutorials/10_agentic/00_base/010_multiturn/manifest.yaml @@ -0,0 +1,122 @@ +# Agent Manifest Configuration +# --------------------------- +# This file defines how your agent should be built and deployed. + +# Build Configuration +# ------------------ +# The build config defines what gets packaged into your agent's Docker image. +# This same configuration is used whether building locally or remotely. +# +# When building: +# 1. All files from include_paths are collected into a build context +# 2. The context is filtered by dockerignore rules +# 3. The Dockerfile uses this context to build your agent's image +# 4. The image is pushed to a registry and used to run your agent +build: + context: + # Root directory for the build context + root: ../ # Keep this as the default root + + # Paths to include in the Docker build context + # Must include: + # - agentex-py: The core framework (needed for agent execution) + # - Your agent's directory (your custom agent code) + # These paths are collected and sent to the Docker daemon for building + include_paths: + - 010_multiturn + + # Path to your agent's Dockerfile + # This defines how your agent's image is built from the context + # Relative to the root directory + dockerfile: 010_multiturn/Dockerfile + + # Path to your agent's .dockerignore + # Filters unnecessary files from the build context + # Helps keep build context small and builds fast + dockerignore: 010_multiturn/.dockerignore + + +# Local Development Configuration +# ----------------------------- +# Only used when running the agent locally +local_development: + agent: + port: 8000 # Port where your local ACP server is running + host_address: host.docker.internal # Host address for Docker networking (host.docker.internal for Docker, localhost for direct) + + # File paths for local development (relative to this manifest.yaml) + paths: + # Path to ACP server file + # Examples: + # project/acp.py (standard) + # src/server.py (custom structure) + # ../shared/acp.py (shared across projects) + # /absolute/path/acp.py (absolute path) + acp: project/acp.py + + +# Agent Configuration +# ----------------- +agent: + # Unique name for your agent + # Used for task routing and monitoring + name: ab010-multiturn + + # Type of ACP to use + # sync: Simple synchronous ACP implementation + # agentic: Advanced ACP with sub-types "base" or "temporal" (requires config) + acp_type: agentic + + # Description of what your agent does + # Helps with documentation and discovery + description: An AgentEx agent that echoes back the user's message + + # Temporal workflow configuration + # Set enabled: true to use Temporal workflows for long-running tasks + temporal: + enabled: false + + # Optional: Credentials mapping + # Maps Kubernetes secrets to environment variables + # Common credentials include: + # credentials: + # - env_var_name: OPENAI_API_KEY + # secret_name: openai-api-key + # secret_key: api-key + + # Optional: Set Environment variables for running your agent locally as well + # as for deployment later on + # env: + # - name: OPENAI_BASE_URL + # value: "https://api.openai.com/v1" + # - name: ACCOUNT_ID + # value: "your_account_id_here" + + +# Deployment Configuration +# ----------------------- +# Configuration for deploying your agent to Kubernetes clusters +deployment: + # Container image configuration + image: + repository: "" # Update with your container registry + tag: "latest" # Default tag, should be versioned in production + + # Global deployment settings that apply to all clusters + # These can be overridden in cluster-specific files (deploy/*.yaml) + global: + agent: + name: "ab010-multiturn" + description: "An AgentEx agent that echoes back the user's message" + + # Default replica count + replicaCount: 1 + + # Default resource requirements + resources: + requests: + cpu: "500m" + memory: "1Gi" + limits: + cpu: "1000m" + memory: "2Gi" \ No newline at end of file diff --git a/examples/tutorials/10_agentic/00_base/010_multiturn/project/__init__.py b/examples/tutorials/10_agentic/00_base/010_multiturn/project/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/examples/tutorials/10_agentic/00_base/010_multiturn/project/acp.py b/examples/tutorials/10_agentic/00_base/010_multiturn/project/acp.py new file mode 100644 index 000000000..e6d6f8cc9 --- /dev/null +++ b/examples/tutorials/10_agentic/00_base/010_multiturn/project/acp.py @@ -0,0 +1,153 @@ +import os +from typing import List + +from agentex.lib import adk +from agentex.lib.core.tracing.tracing_processor_manager import ( + add_tracing_processor_config, +) +from agentex.lib.sdk.fastacp.fastacp import FastACP +from agentex.lib.types.acp import CancelTaskParams, CreateTaskParams, SendEventParams +from agentex.lib.types.fastacp import AgenticACPConfig +from agentex.lib.types.llm_messages import ( + AssistantMessage, + LLMConfig, + Message, + SystemMessage, + UserMessage, +) +from agentex.lib.types.tracing import SGPTracingProcessorConfig +from agentex.lib.utils.logging import make_logger +from agentex.lib.utils.model_utils import BaseModel +from agentex.types.text_content import TextContent + +logger = make_logger(__name__) + +# Add a tracing processor +add_tracing_processor_config(SGPTracingProcessorConfig( + sgp_api_key=os.environ.get("SCALE_GP_API_KEY", ""), + sgp_account_id=os.environ.get("SCALE_GP_ACCOUNT_ID", "") +)) + +# Create an ACP server + +# !!! Warning: Because "Agentic" ACPs are designed to be fully asynchronous, race conditions can occur if parallel events are sent. It is highly recommended to use the "temporal" type in the AgenticACPConfig instead to handle complex use cases. The "base" ACP is only designed to be used for simple use cases and for learning purposes. +acp = FastACP.create( + acp_type="agentic", + config=AgenticACPConfig(type="base"), +) + +class StateModel(BaseModel): + messages: List[Message] + + +@acp.on_task_create +async def handle_task_create(params: CreateTaskParams): + # Upon task creation, we initialize the task state with a system message. + # This will be fetched by the `on_task_event_send` handler when each event is sent. + + ######################################################### + # 1. Initialize the task state. + ######################################################### + + state = StateModel(messages=[SystemMessage(content="You are a helpful assistant that can answer questions.")]) + await adk.state.create(task_id=params.task.id, agent_id=params.agent.id, state=state) + +@acp.on_task_event_send +async def handle_event_send(params: SendEventParams): + # !!! Warning: Because "Agentic" ACPs are designed to be fully asynchronous, race conditions can occur if parallel events are sent. It is highly recommended to use the "temporal" type in the AgenticACPConfig instead to handle complex use cases. The "base" ACP is only designed to be used for simple use cases and for learning purposes. + + ######################################################### + # 2. Validate the event content. + ######################################################### + if not params.event.content: + return + + if params.event.content.type != "text": + raise ValueError(f"Expected text message, got {params.event.content.type}") + + if params.event.content.author != "user": + raise ValueError(f"Expected user message, got {params.event.content.author}") + + ######################################################### + # 3. Echo back the user's message so it shows up in the UI. + ######################################################### + + await adk.messages.create( + task_id=params.task.id, + trace_id=params.task.id, + content=params.event.content, + ) + + ######################################################### + # 4. (👋) If the OpenAI API key is not set, send a message to the user to let them know. + ######################################################### + + if not os.environ.get("OPENAI_API_KEY"): + await adk.messages.create( + task_id=params.task.id, + trace_id=params.task.id, + content=TextContent( + author="agent", + content="Hey, sorry I'm unable to respond to your message because you're running this example without an OpenAI API key. Please set the OPENAI_API_KEY environment variable to run this example. Do this by either by adding a .env file to the project/ directory or by setting the environment variable in your terminal.", + ), + ) + + ######################################################### + # 5. (👋) Retrieve the task state. + ######################################################### + + task_state = await adk.state.get_by_task_and_agent(task_id=params.task.id, agent_id=params.agent.id) + state = StateModel.model_validate(task_state.state) + + ######################################################### + # 6. (👋) Add the new user message to the message history + ######################################################### + + state.messages.append(UserMessage(content=params.event.content.content)) + + ######################################################### + # 7. (👋) Call an LLM to respond to the user's message + ######################################################### + + # Call an LLM to respond to the user's message + chat_completion = await adk.providers.litellm.chat_completion( + llm_config=LLMConfig(model="gpt-4o-mini", messages=state.messages), + trace_id=params.task.id, + ) + state.messages.append(AssistantMessage(content=chat_completion.choices[0].message.content)) + + ######################################################### + # 8. (👋) Send agent response to client + ######################################################### + + if chat_completion.choices[0].message: + content_str = chat_completion.choices[0].message.content or "" + else: + content_str = "" + + await adk.messages.create( + task_id=params.task.id, + trace_id=params.task.id, + content=TextContent( + author="agent", + content=content_str, + ), + ) + + ######################################################### + # 9. (👋) Store the messages in the task state for the next turn + ######################################################### + + await adk.state.update( + state_id=task_state.id, + task_id=params.task.id, + agent_id=params.agent.id, + state=state, + trace_id=params.task.id, + ) + +@acp.on_task_cancel +async def handle_task_cancel(params: CancelTaskParams): + """Default task cancel handler""" + logger.info(f"Task canceled: {params.task}") + diff --git a/examples/tutorials/10_agentic/00_base/010_multiturn/requirements.txt b/examples/tutorials/10_agentic/00_base/010_multiturn/requirements.txt new file mode 100644 index 000000000..d12ad3951 --- /dev/null +++ b/examples/tutorials/10_agentic/00_base/010_multiturn/requirements.txt @@ -0,0 +1,4 @@ +agentex-py>=0.0.4,<0.1.0 + +# Scale GenAI Platform Python SDK +scale-gp \ No newline at end of file diff --git a/examples/tutorials/10_agentic/00_base/020_streaming/.dockerignore b/examples/tutorials/10_agentic/00_base/020_streaming/.dockerignore new file mode 100644 index 000000000..4521d8465 --- /dev/null +++ b/examples/tutorials/10_agentic/00_base/020_streaming/.dockerignore @@ -0,0 +1,46 @@ +# Python +__pycache__/ +*.py[cod] +*$py.class +*.so +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +*.egg-info/ +.installed.cfg +*.egg + +# Environments +.env** +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# IDE +.idea/ +.vscode/ +*.swp +*.swo + +# Git +.git +.gitignore + +# Misc +.DS_Store + +# CodeArtifact configuration +.codeartifact-pip-conf \ No newline at end of file diff --git a/examples/tutorials/10_agentic/00_base/020_streaming/Dockerfile b/examples/tutorials/10_agentic/00_base/020_streaming/Dockerfile new file mode 100644 index 000000000..26ceaf8aa --- /dev/null +++ b/examples/tutorials/10_agentic/00_base/020_streaming/Dockerfile @@ -0,0 +1,45 @@ +# syntax=docker/dockerfile:1.3 +FROM python:3.12-slim +COPY --from=ghcr.io/astral-sh/uv:0.6.4 /uv /uvx /bin/ + +# Install system dependencies +RUN apt-get update && apt-get install -y \ + htop \ + vim \ + curl \ + tar \ + python3-dev \ + postgresql-client \ + build-essential \ + libpq-dev \ + gcc \ + cmake \ + netcat-openbsd \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* + +RUN uv pip install --system --upgrade pip setuptools wheel + +ENV UV_HTTP_TIMEOUT=1000 + +# Copy just the requirements file to optimize caching +COPY 020_streaming/requirements.txt /app/020_streaming/requirements.txt + +WORKDIR /app/ + +# Install the required Python packages +RUN --mount=type=secret,id=codeartifact-pip-conf,target=/etc/pip.conf \ + export UV_INDEX_URL=$(grep -E "^index-url" /etc/pip.conf | cut -d'=' -f2- | xargs) && \ + export UV_EXTRA_INDEX_URL=$(grep -E "^extra-index-url" /etc/pip.conf | cut -d'=' -f2- | xargs || echo "") && \ + uv pip install --system -r requirements.txt + +# Copy the project code +COPY 020_streaming/project /app/project + +WORKDIR /app/project + +# Set environment variables +ENV PYTHONPATH=/app + +# Run the agent using uvicorn +CMD ["uvicorn", "acp:acp", "--host", "0.0.0.0", "--port", "8000"] \ No newline at end of file diff --git a/examples/tutorials/10_agentic/00_base/020_streaming/README.md b/examples/tutorials/10_agentic/00_base/020_streaming/README.md new file mode 100644 index 000000000..5ca587b3b --- /dev/null +++ b/examples/tutorials/10_agentic/00_base/020_streaming/README.md @@ -0,0 +1,127 @@ +# ab020-streaming - AgentEx Starter Template + +This is a generic starter template for building agents with the AgentEx framework. It provides a basic implementation of the Agent 2 Client Protocol (ACP) to help you get started quickly. + +## What You'll Learn + +- **Tasks**: A task is a grouping mechanism for related messages. Think of it as a conversation thread or a session. +- **Messages**: Messages are communication objects within a task. They can contain text, data, or instructions. +- **ACP Events**: The agent responds to four main events: + - `task_received`: When a new task is created + - `task_message_received`: When a message is sent within a task + - `task_approved`: When a task is approved + - `task_canceled`: When a task is canceled + + +## Running the Agent + +1. Run the agent locally: +```bash +agentex agents run --manifest manifest.yaml +``` + +The agent will start on port 8000 and print messages whenever it receives any of the ACP events. + +## What's Inside + +This template: +- Sets up a basic ACP server +- Handles each of the required ACP events with simple print statements +- Provides a foundation for building more complex agents + +## Next Steps + +For more advanced agent development, check out the AgentEx tutorials: + +- **Tutorials 00-08**: Learn about building synchronous agents with ACP +- **Tutorials 09-10**: Learn how to use Temporal to power asynchronous agents + - Tutorial 09: Basic Temporal workflow setup + - Tutorial 10: Advanced Temporal patterns and best practices + +These tutorials will help you understand: +- How to handle long-running tasks +- Implementing state machines +- Managing complex workflows +- Best practices for async agent development + +## The Manifest File + +The `manifest.yaml` file is your agent's configuration file. It defines: +- How your agent should be built and packaged +- What files are included in your agent's Docker image +- Your agent's name and description +- Local development settings (like the port your agent runs on) + +This file is essential for both local development and deployment of your agent. + +## Project Structure + +``` +020_streaming/ +├── project/ # Your agent's code +│ ├── __init__.py +│ └── acp.py # ACP server and event handlers +├── Dockerfile # Container definition +├── manifest.yaml # Deployment config +└── requirements.txt # Dependencies +``` + +## Development + +1. **Customize Event Handlers** + - Modify the handlers in `acp.py` to implement your agent's logic + - Add your own tools and capabilities + - Implement custom state management + +2. **Add Dependencies** + - Add required packages to `requirements.txt` + - Update the manifest with any needed credentials + +## Local Development + +1. **Install AgentEx** +```bash +cd agentex-py +uv venv +source .venv/bin/activate +uv sync +``` + +2. **Deploy your agent** +```bash +# From this directory +export ENVIRONMENT=development && agentex agents create --manifest manifest.yaml +``` + +4. **Interact with your agent** + +Option 0: CLI (deprecated - to be replaced once a new CLI is implemented - please use the web UI for now!) +```bash +# Submit a task via CLI +agentex tasks submit --agent {{ agent_name }} --task "Your task here" +``` + +Option 1: Web UI +```bash +# Start the local web interface +cd agentex-web +make dev + +# Then open http://localhost:3000 in your browser to chat with your agent +``` +## Development Tips + +1. **Local Testing** +- Set environment variables in project/.env for any required credentials. OR you can set these in the manifest.yaml + +### To build the agent Docker image locally (normally not necessary): + +1. First, set up CodeArtifact authentication: +```bash +../../setup-build-codeartifact.sh +``` + +2. Build the agent image: +```bash +agentex agents build --manifest manifest.yaml --secret 'id=codeartifact-pip-conf,src=.codeartifact-pip-conf' +``` \ No newline at end of file diff --git a/examples/tutorials/10_agentic/00_base/020_streaming/manifest.yaml b/examples/tutorials/10_agentic/00_base/020_streaming/manifest.yaml new file mode 100644 index 000000000..3280ce483 --- /dev/null +++ b/examples/tutorials/10_agentic/00_base/020_streaming/manifest.yaml @@ -0,0 +1,119 @@ +# Agent Manifest Configuration +# --------------------------- +# This file defines how your agent should be built and deployed. + +# Build Configuration +# ------------------ +# The build config defines what gets packaged into your agent's Docker image. +# This same configuration is used whether building locally or remotely. +# +# When building: +# 1. All files from include_paths are collected into a build context +# 2. The context is filtered by dockerignore rules +# 3. The Dockerfile uses this context to build your agent's image +# 4. The image is pushed to a registry and used to run your agent +build: + context: + # Root directory for the build context + root: ../ # Keep this as the default root + + # Paths to include in the Docker build context + # Must include: + # - agentex-py: The core framework (needed for agent execution) + # - Your agent's directory (your custom agent code) + # These paths are collected and sent to the Docker daemon for building + include_paths: + - 020_streaming + + # Path to your agent's Dockerfile + # This defines how your agent's image is built from the context + # Relative to the root directory + dockerfile: 020_streaming/Dockerfile + + # Path to your agent's .dockerignore + # Filters unnecessary files from the build context + # Helps keep build context small and builds fast + dockerignore: 020_streaming/.dockerignore + + +# Local Development Configuration +# ----------------------------- +# Only used when running the agent locally +local_development: + agent: + port: 8000 # Port where your local ACP server is running + host_address: host.docker.internal # Host address for Docker networking (host.docker.internal for Docker, localhost for direct) + + # File paths for local development (relative to this manifest.yaml) + paths: + # Path to ACP server file + # Examples: + # project/acp.py (standard) + # src/server.py (custom structure) + # ../shared/acp.py (shared across projects) + # /absolute/path/acp.py (absolute path) + acp: project/acp.py + + +# Agent Configuration +# ----------------- +agent: + acp_type: agentic + + # Unique name for your agent + # Used for task routing and monitoring + name: ab020-streaming + + # Description of what your agent does + # Helps with documentation and discovery + description: A multiturn AgentEx agent that streams outputs + + # Temporal workflow configuration + # Set enabled: true to use Temporal workflows for long-running tasks + temporal: + enabled: false + + # Optional: Credentials mapping + # Maps Kubernetes secrets to environment variables + # Common credentials include: + # credentials: + # - env_var_name: OPENAI_API_KEY + # secret_name: openai-api-key + # secret_key: api-key + + # Optional: Set Environment variables for running your agent locally as well + # as for deployment later on + # env: + # - name: OPENAI_BASE_URL + # value: "https://api.openai.com/v1" + # - name: ACCOUNT_ID + # value: "your_account_id_here" + + +# Deployment Configuration +# ----------------------- +# Configuration for deploying your agent to Kubernetes clusters +deployment: + # Container image configuration + image: + repository: "" # Update with your container registry + tag: "latest" # Default tag, should be versioned in production + + # Global deployment settings that apply to all clusters + # These can be overridden in cluster-specific files (deploy/*.yaml) + global: + agent: + name: "ab020-streaming" + description: "A multiturn AgentEx agent that streams outputs" + + # Default replica count + replicaCount: 1 + + # Default resource requirements + resources: + requests: + cpu: "500m" + memory: "1Gi" + limits: + cpu: "1000m" + memory: "2Gi" diff --git a/examples/tutorials/10_agentic/00_base/020_streaming/project/__init__.py b/examples/tutorials/10_agentic/00_base/020_streaming/project/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/examples/tutorials/10_agentic/00_base/020_streaming/project/acp.py b/examples/tutorials/10_agentic/00_base/020_streaming/project/acp.py new file mode 100644 index 000000000..4e6c698b3 --- /dev/null +++ b/examples/tutorials/10_agentic/00_base/020_streaming/project/acp.py @@ -0,0 +1,130 @@ +import os +from typing import List + +from agentex.lib import adk +from agentex.lib.sdk.fastacp.fastacp import FastACP +from agentex.lib.types.acp import CancelTaskParams, CreateTaskParams, SendEventParams +from agentex.lib.types.fastacp import AgenticACPConfig +from agentex.lib.types.llm_messages import AssistantMessage, LLMConfig, Message, SystemMessage, UserMessage +from agentex.lib.utils.logging import make_logger +from agentex.lib.utils.model_utils import BaseModel +from agentex.types.text_content import TextContent + +logger = make_logger(__name__) + + +# Create an ACP server + +# !!! Warning: Because "Agentic" ACPs are designed to be fully asynchronous, race conditions can occur if parallel events are sent. It is highly recommended to use the "temporal" type in the AgenticACPConfig instead to handle complex use cases. The "base" ACP is only designed to be used for simple use cases and for learning purposes. +acp = FastACP.create( + acp_type="agentic", + config=AgenticACPConfig(type="base"), +) + +class StateModel(BaseModel): + messages: List[Message] + + +@acp.on_task_create +async def handle_task_create(params: CreateTaskParams): + # Upon task creation, we initialize the task state with a system message. + # This will be fetched by the `on_task_event_send` handler when each event is sent. + + ######################################################### + # 1. Initialize the task state. + ######################################################### + + state = StateModel(messages=[SystemMessage(content="You are a helpful assistant that can answer questions.")]) + await adk.state.create(task_id=params.task.id, agent_id=params.agent.id, state=state) + +@acp.on_task_event_send +async def handle_event_send(params: SendEventParams): + # !!! Warning: Because "Agentic" ACPs are designed to be fully asynchronous, race conditions can occur if parallel events are sent. It is highly recommended to use the "temporal" type in the AgenticACPConfig instead to handle complex use cases. The "base" ACP is only designed to be used for simple use cases and for learning purposes. + + ######################################################### + # 2. Validate the event content. + ######################################################### + if not params.event.content: + return + + if params.event.content.type != "text": + raise ValueError(f"Expected text message, got {params.event.content.type}") + + if params.event.content.author != "user": + raise ValueError(f"Expected user message, got {params.event.content.author}") + + ######################################################### + # 3. Echo back the user's message. + ######################################################### + + await adk.messages.create( + task_id=params.task.id, + trace_id=params.task.id, + content=params.event.content, + ) + + ######################################################### + # 4. If the OpenAI API key is not set, send a message to the user to let them know. + ######################################################### + + if not os.environ.get("OPENAI_API_KEY"): + await adk.messages.create( + task_id=params.task.id, + trace_id=params.task.id, + content=TextContent( + author="agent", + content="Hey, sorry I'm unable to respond to your message because you're running this example without an OpenAI API key. Please set the OPENAI_API_KEY environment variable to run this example. Do this by either by adding a .env file to the project/ directory or by setting the environment variable in your terminal.", + ), + ) + + ######################################################### + # 5. Retrieve the task state. + ######################################################### + + task_state = await adk.state.get_by_task_and_agent(task_id=params.task.id, agent_id=params.agent.id) + state = StateModel.model_validate(task_state.state) + + ######################################################### + # 6. Add the new user message to the message history + ######################################################### + + state.messages.append(UserMessage(content=params.event.content.content)) + + ######################################################### + # 7. (👋) Call an LLM to respond to the user's message + ######################################################### + + # When we use the streaming version of chat completion, we can either use the `chat_completion_stream_auto_send` method, or we can use the `chat_completion_stream` method. Here is the difference: + + # `chat_completion_stream_auto_send` - This is the "managed version" of the streaming method. It will automatically send the response to the client as an agent TaskMessage. + + # `chat_completion_stream` - This is the "unmanaged version" of the streaming method. It will return a generator of chat completion chunks. You can then do whatever you want with the chunks, such as sending them to the client as an agent message, or storing them in the task state, or whatever you want. + + # Here we use the `chat_completion_stream_auto_send` method. + ######################################################### + + task_message = await adk.providers.litellm.chat_completion_stream_auto_send( + task_id=params.task.id, + llm_config=LLMConfig(model="gpt-4o-mini", messages=state.messages, stream=True), + trace_id=params.task.id, + ) + + state.messages.append(AssistantMessage(content=task_message.content.content)) + + ######################################################### + # 8. Store the messages in the task state for the next turn + ######################################################### + + await adk.state.update( + state_id=task_state.id, + task_id=params.task.id, + agent_id=params.agent.id, + state=state, + trace_id=params.task.id, + ) + +@acp.on_task_cancel +async def handle_task_cancel(params: CancelTaskParams): + """Default task cancel handler""" + logger.info(f"Task canceled: {params.task}") + diff --git a/examples/tutorials/10_agentic/00_base/020_streaming/requirements.txt b/examples/tutorials/10_agentic/00_base/020_streaming/requirements.txt new file mode 100644 index 000000000..2c2ebf15b --- /dev/null +++ b/examples/tutorials/10_agentic/00_base/020_streaming/requirements.txt @@ -0,0 +1,5 @@ +# Install agentex-py from local path +agentex-py>=0.0.4,<0.1.0 + +# Scale GenAI Platform Python SDK +scale-gp \ No newline at end of file diff --git a/examples/tutorials/10_agentic/00_base/030_tracing/.dockerignore b/examples/tutorials/10_agentic/00_base/030_tracing/.dockerignore new file mode 100644 index 000000000..4521d8465 --- /dev/null +++ b/examples/tutorials/10_agentic/00_base/030_tracing/.dockerignore @@ -0,0 +1,46 @@ +# Python +__pycache__/ +*.py[cod] +*$py.class +*.so +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +*.egg-info/ +.installed.cfg +*.egg + +# Environments +.env** +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# IDE +.idea/ +.vscode/ +*.swp +*.swo + +# Git +.git +.gitignore + +# Misc +.DS_Store + +# CodeArtifact configuration +.codeartifact-pip-conf \ No newline at end of file diff --git a/examples/tutorials/10_agentic/00_base/030_tracing/Dockerfile b/examples/tutorials/10_agentic/00_base/030_tracing/Dockerfile new file mode 100644 index 000000000..84ecb735d --- /dev/null +++ b/examples/tutorials/10_agentic/00_base/030_tracing/Dockerfile @@ -0,0 +1,45 @@ +# syntax=docker/dockerfile:1.3 +FROM python:3.12-slim +COPY --from=ghcr.io/astral-sh/uv:0.6.4 /uv /uvx /bin/ + +# Install system dependencies +RUN apt-get update && apt-get install -y \ + htop \ + vim \ + curl \ + tar \ + python3-dev \ + postgresql-client \ + build-essential \ + libpq-dev \ + gcc \ + cmake \ + netcat-openbsd \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* + +RUN uv pip install --system --upgrade pip setuptools wheel + +ENV UV_HTTP_TIMEOUT=1000 + +# Copy just the requirements file to optimize caching +COPY 030_tracing/requirements.txt /app/requirements.txt + +WORKDIR /app/ + +# Install the required Python packages +RUN --mount=type=secret,id=codeartifact-pip-conf,target=/etc/pip.conf \ + export UV_INDEX_URL=$(grep -E "^index-url" /etc/pip.conf | cut -d'=' -f2- | xargs) && \ + export UV_EXTRA_INDEX_URL=$(grep -E "^extra-index-url" /etc/pip.conf | cut -d'=' -f2- | xargs || echo "") && \ + uv pip install --system -r requirements.txt + +# Copy the project code +COPY 030_tracing/project /app/project + +WORKDIR /app/project + +# Set environment variables +ENV PYTHONPATH=/app + +# Run the agent using uvicorn +CMD ["uvicorn", "acp:acp", "--host", "0.0.0.0", "--port", "8000"] \ No newline at end of file diff --git a/examples/tutorials/10_agentic/00_base/030_tracing/README.md b/examples/tutorials/10_agentic/00_base/030_tracing/README.md new file mode 100644 index 000000000..936e2ef44 --- /dev/null +++ b/examples/tutorials/10_agentic/00_base/030_tracing/README.md @@ -0,0 +1,141 @@ +# ab030-tracing - AgentEx Starter Template + +This is a generic starter template for building agents with the AgentEx framework. It provides a basic implementation of the Agent 2 Client Protocol (ACP) to help you get started quickly. + +## What You'll Learn + +- **Tasks**: A task is a grouping mechanism for related messages. Think of it as a conversation thread or a session. +- **Messages**: Messages are communication objects within a task. They can contain text, data, or instructions. +- **ACP Events**: The agent responds to four main events: + - `task_received`: When a new task is created + - `task_message_received`: When a message is sent within a task + - `task_approved`: When a task is approved + - `task_canceled`: When a task is canceled + +## Building the Agent + +To build the agent Docker image locally: + +1. First, set up CodeArtifact authentication: +```bash +../../../setup-build-codeartifact.sh +``` + +2. Build the agent image: +```bash +agentex agents build --manifest manifest.yaml --secret 'id=codeartifact-pip-conf,src=.codeartifact-pip-conf' +``` + +## Running the Agent + +1. Run the agent locally: +```bash +agentex agents run --manifest manifest.yaml +``` + +The agent will start on port 8000 and print messages whenever it receives any of the ACP events. + +## What's Inside + +This template: +- Sets up a basic ACP server +- Handles each of the required ACP events with simple print statements +- Provides a foundation for building more complex agents + +## Next Steps + +For more advanced agent development, check out the AgentEx tutorials: + +- **Tutorials 00-08**: Learn about building synchronous agents with ACP +- **Tutorials 09-10**: Learn how to use Temporal to power asynchronous agents + - Tutorial 09: Basic Temporal workflow setup + - Tutorial 10: Advanced Temporal patterns and best practices + +These tutorials will help you understand: +- How to handle long-running tasks +- Implementing state machines +- Managing complex workflows +- Best practices for async agent development + +## The Manifest File + +The `manifest.yaml` file is your agent's configuration file. It defines: +- How your agent should be built and packaged +- What files are included in your agent's Docker image +- Your agent's name and description +- Local development settings (like the port your agent runs on) + +This file is essential for both local development and deployment of your agent. + +## Project Structure + +``` +030_tracing/ +├── project/ # Your agent's code +│ ├── __init__.py +│ └── acp.py # ACP server and event handlers +├── Dockerfile # Container definition +├── manifest.yaml # Deployment config +└── requirements.txt # Dependencies +``` + +## Development + +1. **Customize Event Handlers** + - Modify the handlers in `acp.py` to implement your agent's logic + - Add your own tools and capabilities + - Implement custom state management + +2. **Add Dependencies** + - Add required packages to `requirements.txt` + - Update the manifest with any needed credentials + +## Local Development + +1. **Install AgentEx** +```bash +cd agentex-py +uv venv +source .venv/bin/activate +uv sync +``` + +2. **Deploy your agent** +```bash +# From this directory +export ENVIRONMENT=development && agentex agents create --manifest manifest.yaml +``` + +4. **Interact with your agent** + +Option 0: CLI (deprecated - to be replaced once a new CLI is implemented - please use the web UI for now!) +```bash +# Submit a task via CLI +agentex tasks submit --agent {{ agent_name }} --task "Your task here" +``` + +Option 1: Web UI +```bash +# Start the local web interface +cd agentex-web +make dev + +# Then open http://localhost:3000 in your browser to chat with your agent +``` + +## Development Tips + +1. **Local Testing** +- Set environment variables in project/.env for any required credentials. OR you can set these in the manifest.yaml + +### To build the agent Docker image locally (normally not necessary): + +1. First, set up CodeArtifact authentication: +```bash +../../setup-build-codeartifact.sh +``` + +2. Build the agent image: +```bash +agentex agents build --manifest manifest.yaml --secret 'id=codeartifact-pip-conf,src=.codeartifact-pip-conf' +``` \ No newline at end of file diff --git a/examples/tutorials/10_agentic/00_base/030_tracing/manifest.yaml b/examples/tutorials/10_agentic/00_base/030_tracing/manifest.yaml new file mode 100644 index 000000000..73a4052a6 --- /dev/null +++ b/examples/tutorials/10_agentic/00_base/030_tracing/manifest.yaml @@ -0,0 +1,119 @@ +# Agent Manifest Configuration +# --------------------------- +# This file defines how your agent should be built and deployed. + +# Build Configuration +# ------------------ +# The build config defines what gets packaged into your agent's Docker image. +# This same configuration is used whether building locally or remotely. +# +# When building: +# 1. All files from include_paths are collected into a build context +# 2. The context is filtered by dockerignore rules +# 3. The Dockerfile uses this context to build your agent's image +# 4. The image is pushed to a registry and used to run your agent +build: + context: + # Root directory for the build context + root: ../ # Keep this as the default root + + # Paths to include in the Docker build context + # Must include: + # - agentex-py: The core framework (needed for agent execution) + # - Your agent's directory (your custom agent code) + # These paths are collected and sent to the Docker daemon for building + include_paths: + - 030_tracing + + # Path to your agent's Dockerfile + # This defines how your agent's image is built from the context + # Relative to the root directory + dockerfile: 030_tracing/Dockerfile + + # Path to your agent's .dockerignore + # Filters unnecessary files from the build context + # Helps keep build context small and builds fast + dockerignore: 030_tracing/.dockerignore + + +# Local Development Configuration +# ----------------------------- +# Only used when running the agent locally +local_development: + agent: + port: 8000 # Port where your local ACP server is running + host_address: host.docker.internal # Host address for Docker networking (host.docker.internal for Docker, localhost for direct) + + # File paths for local development (relative to this manifest.yaml) + paths: + # Path to ACP server file + # Examples: + # project/acp.py (standard) + # src/server.py (custom structure) + # ../shared/acp.py (shared across projects) + # /absolute/path/acp.py (absolute path) + acp: project/acp.py + + +# Agent Configuration +# ----------------- +agent: + acp_type: agentic + + # Unique name for your agent + # Used for task routing and monitoring + name: ab030-tracing + + # Description of what your agent does + # Helps with documentation and discovery + description: An AgentEx agent that demonstrates how to do hierarchical and custom tracing + + # Temporal workflow configuration + # Set enabled: true to use Temporal workflows for long-running tasks + temporal: + enabled: false + + # Optional: Credentials mapping + # Maps Kubernetes secrets to environment variables + # Common credentials include: + # credentials: + # - env_var_name: OPENAI_API_KEY + # secret_name: openai-api-key + # secret_key: api-key + + # Optional: Set Environment variables for running your agent locally as well + # as for deployment later on + # env: + # - name: OPENAI_BASE_URL + # value: "https://api.openai.com/v1" + # - name: ACCOUNT_ID + # value: "your_account_id_here" + + +# Deployment Configuration +# ----------------------- +# Configuration for deploying your agent to Kubernetes clusters +deployment: + # Container image configuration + image: + repository: "" # Update with your container registry + tag: "latest" # Default tag, should be versioned in production + + # Global deployment settings that apply to all clusters + # These can be overridden in cluster-specific files (deploy/*.yaml) + global: + agent: + name: "ab030-tracing" + description: "An AgentEx agent that demonstrates how to do hierarchical and custom tracing" + + # Default replica count + replicaCount: 1 + + # Default resource requirements + resources: + requests: + cpu: "500m" + memory: "1Gi" + limits: + cpu: "1000m" + memory: "2Gi" \ No newline at end of file diff --git a/examples/tutorials/10_agentic/00_base/030_tracing/project/__init__.py b/examples/tutorials/10_agentic/00_base/030_tracing/project/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/examples/tutorials/10_agentic/00_base/030_tracing/project/acp.py b/examples/tutorials/10_agentic/00_base/030_tracing/project/acp.py new file mode 100644 index 000000000..04e626cf4 --- /dev/null +++ b/examples/tutorials/10_agentic/00_base/030_tracing/project/acp.py @@ -0,0 +1,152 @@ +import os +from typing import List + +from agentex.lib import adk +from agentex.lib.sdk.fastacp.fastacp import FastACP +from agentex.lib.types.acp import CancelTaskParams, CreateTaskParams, SendEventParams +from agentex.lib.types.fastacp import AgenticACPConfig +from agentex.lib.types.llm_messages import AssistantMessage, LLMConfig, Message, SystemMessage, UserMessage +from agentex.lib.utils.logging import make_logger +from agentex.lib.utils.model_utils import BaseModel +from agentex.types.text_content import TextContent + +logger = make_logger(__name__) + + +# Create an ACP server + +# !!! Warning: Because "Agentic" ACPs are designed to be fully asynchronous, race conditions can occur if parallel events are sent. It is highly recommended to use the "temporal" type in the AgenticACPConfig instead to handle complex use cases. The "base" ACP is only designed to be used for simple use cases and for learning purposes. +acp = FastACP.create( + acp_type="agentic", + config=AgenticACPConfig(type="base"), +) + +class StateModel(BaseModel): + messages: List[Message] + turn_number: int + + +@acp.on_task_create +async def handle_task_create(params: CreateTaskParams): + # Upon task creation, we initialize the task state with a system message. + # This will be fetched by the `on_task_event_send` handler when each event is sent. + + ######################################################### + # 1. Initialize the task state. + ######################################################### + + state = StateModel( + messages=[SystemMessage(content="You are a helpful assistant that can answer questions.")], + turn_number=0, + ) + await adk.state.create(task_id=params.task.id, agent_id=params.agent.id, state=state) + +@acp.on_task_event_send +async def handle_event_send(params: SendEventParams): + # !!! Warning: Because "Agentic" ACPs are designed to be fully asynchronous, race conditions can occur if parallel events are sent. It is highly recommended to use the "temporal" type in the AgenticACPConfig instead to handle complex use cases. The "base" ACP is only designed to be used for simple use cases and for learning purposes. + + ######################################################### + # 2. Validate the event content. + ######################################################### + if not params.event.content: + return + + if params.event.content.type != "text": + raise ValueError(f"Expected text message, got {params.event.content.type}") + + if params.event.content.author != "user": + raise ValueError(f"Expected user message, got {params.event.content.author}") + + ######################################################### + # 3. Retrieve the task state. + ######################################################### + + task_state = await adk.state.get_by_task_and_agent(task_id=params.task.id, agent_id=params.agent.id) + state = StateModel.model_validate(task_state.state) + state.turn_number += 1 + + # Add the new user message to the message history + state.messages.append(UserMessage(content=params.event.content.content)) + + ######################################################### + # 4. (👋) Create a tracing span. + ######################################################### + + # Create a tracing span. All of the Agentex ADK methods are "auto-traced", but by default show up as a flat list associated with a single trace id (which is usually just set to the task id by default). + # If you want to create a hierarchical trace, you can do so by creating spans in your business logic and passing the span id to the ADK methods. Traces will be grouped under parent spans for better readability. + # If you're not trying to create a hierarchical trace, but just trying to create a custom span to trace something, you can use this too to create a custom span that is associate with your trace by trace ID. + + async with adk.tracing.span( + trace_id=params.task.id, + name=f"Turn {state.turn_number}", + input=state + ) as span: + + ######################################################### + # 5. Echo back the user's message so it shows up in the UI. + ######################################################### + + # (👋) Notice that we pass the parent_span_id to the ADK methods to create a hierarchical trace. + await adk.messages.create( + task_id=params.task.id, + trace_id=params.task.id, + content=params.event.content, + parent_span_id=span.id if span else None, + ) + + ######################################################### + # 6. If the OpenAI API key is not set, send a message to the user to let them know. + ######################################################### + + # (👋) Notice that we pass the parent_span_id to the ADK methods to create a hierarchical trace. + if not os.environ.get("OPENAI_API_KEY"): + await adk.messages.create( + task_id=params.task.id, + trace_id=params.task.id, + content=TextContent( + author="agent", + content="Hey, sorry I'm unable to respond to your message because you're running this example without an OpenAI API key. Please set the OPENAI_API_KEY environment variable to run this example. Do this by either by adding a .env file to the project/ directory or by setting the environment variable in your terminal.", + ), + parent_span_id=span.id if span else None, + ) + + ######################################################### + # 7. Call an LLM to respond to the user's message + ######################################################### + + # (👋) Notice that we pass the parent_span_id to the ADK methods to create a hierarchical trace. + task_message = await adk.providers.litellm.chat_completion_stream_auto_send( + task_id=params.task.id, + llm_config=LLMConfig(model="gpt-4o-mini", messages=state.messages, stream=True), + trace_id=params.task.id, + parent_span_id=span.id if span else None, + ) + + state.messages.append(AssistantMessage(content=task_message.content.content)) + + ######################################################### + # 8. Store the messages in the task state for the next turn + ######################################################### + + # (👋) Notice that we pass the parent_span_id to the ADK methods to create a hierarchical trace. + await adk.state.update( + state_id=task_state.id, + task_id=params.task.id, + agent_id=params.agent.id, + state=state, + trace_id=params.task.id, + parent_span_id=span.id if span else None, + ) + + ######################################################### + # 9. (👋) Set the span output to the state for the next turn + ######################################################### + + # (👋) You can store an arbitrary pydantic model or dictionary in the span output. The idea of a span is that it easily allows you to compare the input and output of a span to see what the wrapped function did. + # In this case, the state is comprehensive and expressive, so we just store the change in state that occured. + span.output = state + +@acp.on_task_cancel +async def handle_task_cancel(params: CancelTaskParams): + """Default task cancel handler""" + logger.info(f"Task canceled: {params.task}") diff --git a/examples/tutorials/10_agentic/00_base/030_tracing/requirements.txt b/examples/tutorials/10_agentic/00_base/030_tracing/requirements.txt new file mode 100644 index 000000000..d12ad3951 --- /dev/null +++ b/examples/tutorials/10_agentic/00_base/030_tracing/requirements.txt @@ -0,0 +1,4 @@ +agentex-py>=0.0.4,<0.1.0 + +# Scale GenAI Platform Python SDK +scale-gp \ No newline at end of file diff --git a/examples/tutorials/10_agentic/00_base/040_other_sdks/.dockerignore b/examples/tutorials/10_agentic/00_base/040_other_sdks/.dockerignore new file mode 100644 index 000000000..4521d8465 --- /dev/null +++ b/examples/tutorials/10_agentic/00_base/040_other_sdks/.dockerignore @@ -0,0 +1,46 @@ +# Python +__pycache__/ +*.py[cod] +*$py.class +*.so +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +*.egg-info/ +.installed.cfg +*.egg + +# Environments +.env** +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# IDE +.idea/ +.vscode/ +*.swp +*.swo + +# Git +.git +.gitignore + +# Misc +.DS_Store + +# CodeArtifact configuration +.codeartifact-pip-conf \ No newline at end of file diff --git a/examples/tutorials/10_agentic/00_base/040_other_sdks/Dockerfile b/examples/tutorials/10_agentic/00_base/040_other_sdks/Dockerfile new file mode 100644 index 000000000..ae6ab7ff3 --- /dev/null +++ b/examples/tutorials/10_agentic/00_base/040_other_sdks/Dockerfile @@ -0,0 +1,45 @@ +# syntax=docker/dockerfile:1.3 +FROM python:3.12-slim +COPY --from=ghcr.io/astral-sh/uv:0.6.4 /uv /uvx /bin/ + +# Install system dependencies +RUN apt-get update && apt-get install -y \ + htop \ + vim \ + curl \ + tar \ + python3-dev \ + postgresql-client \ + build-essential \ + libpq-dev \ + gcc \ + cmake \ + netcat-openbsd \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* + +RUN uv pip install --system --upgrade pip setuptools wheel + +ENV UV_HTTP_TIMEOUT=1000 + +# Copy just the requirements file to optimize caching +COPY 040_other_sdks/requirements.txt /app/requirements.txt + +WORKDIR /app/ + +# Install the required Python packages +RUN --mount=type=secret,id=codeartifact-pip-conf,target=/etc/pip.conf \ + export UV_INDEX_URL=$(grep -E "^index-url" /etc/pip.conf | cut -d'=' -f2- | xargs) && \ + export UV_EXTRA_INDEX_URL=$(grep -E "^extra-index-url" /etc/pip.conf | cut -d'=' -f2- | xargs || echo "") && \ + uv pip install --system -r requirements.txt + +# Copy the project code +COPY 040_other_sdks/project /app/project + +WORKDIR /app/project + +# Set environment variables +ENV PYTHONPATH=/app + +# Run the agent using uvicorn +CMD ["uvicorn", "acp:acp", "--host", "0.0.0.0", "--port", "8000"] \ No newline at end of file diff --git a/examples/tutorials/10_agentic/00_base/040_other_sdks/README.md b/examples/tutorials/10_agentic/00_base/040_other_sdks/README.md new file mode 100644 index 000000000..2596a8c7e --- /dev/null +++ b/examples/tutorials/10_agentic/00_base/040_other_sdks/README.md @@ -0,0 +1,127 @@ +# ab040-other-sdks - AgentEx Starter Template + +This is a generic starter template for building agents with the AgentEx framework. It provides a basic implementation of the Agent 2 Client Protocol (ACP) to help you get started quickly. + +## What You'll Learn + +- **Tasks**: A task is a grouping mechanism for related messages. Think of it as a conversation thread or a session. +- **Messages**: Messages are communication objects within a task. They can contain text, data, or instructions. +- **ACP Events**: The agent responds to four main events: + - `task_received`: When a new task is created + - `task_message_received`: When a message is sent within a task + - `task_approved`: When a task is approved + - `task_canceled`: When a task is canceled + +## Running the Agent + +1. Run the agent locally: +```bash +agentex agents run --manifest manifest.yaml +``` + +The agent will start on port 8000 and print messages whenever it receives any of the ACP events. + +## What's Inside + +This template: +- Sets up a basic ACP server +- Handles each of the required ACP events with simple print statements +- Provides a foundation for building more complex agents + +## Next Steps + +For more advanced agent development, check out the AgentEx tutorials: + +- **Tutorials 00-08**: Learn about building synchronous agents with ACP +- **Tutorials 09-10**: Learn how to use Temporal to power asynchronous agents + - Tutorial 09: Basic Temporal workflow setup + - Tutorial 10: Advanced Temporal patterns and best practices + +These tutorials will help you understand: +- How to handle long-running tasks +- Implementing state machines +- Managing complex workflows +- Best practices for async agent development + +## The Manifest File + +The `manifest.yaml` file is your agent's configuration file. It defines: +- How your agent should be built and packaged +- What files are included in your agent's Docker image +- Your agent's name and description +- Local development settings (like the port your agent runs on) + +This file is essential for both local development and deployment of your agent. + +## Project Structure + +``` +040_other_sdks/ +├── project/ # Your agent's code +│ ├── __init__.py +│ └── acp.py # ACP server and event handlers +├── Dockerfile # Container definition +├── manifest.yaml # Deployment config +└── requirements.txt # Dependencies +``` + +## Development + +1. **Customize Event Handlers** + - Modify the handlers in `acp.py` to implement your agent's logic + - Add your own tools and capabilities + - Implement custom state management + +2. **Add Dependencies** + - Add required packages to `requirements.txt` + - Update the manifest with any needed credentials + +## Local Development + +1. **Install AgentEx** +```bash +cd agentex-py +uv venv +source .venv/bin/activate +uv sync +``` + +2. **Deploy your agent** +```bash +# From this directory +export ENVIRONMENT=development && agentex agents create --manifest manifest.yaml +``` + +4. **Interact with your agent** + +Option 0: CLI (deprecated - to be replaced once a new CLI is implemented - please use the web UI for now!) +```bash +# Submit a task via CLI +agentex tasks submit --agent {{ agent_name }} --task "Your task here" +``` + +Option 1: Web UI +```bash +# Start the local web interface +cd agentex-web +make dev + +# Then open http://localhost:3000 in your browser to chat with your agent +``` + +## Development Tips + +1. **Local Testing** +- Set environment variables in project/.env for any required credentials. OR you can set these in the manifest.yaml + +### To build the agent Docker image locally (normally not necessary): + +1. First, set up CodeArtifact authentication: +```bash +../../setup-build-codeartifact.sh +``` + +2. Build the agent image: +```bash +agentex agents build --manifest manifest.yaml --secret 'id=codeartifact-pip-conf,src=.codeartifact-pip-conf' +``` \ No newline at end of file diff --git a/examples/tutorials/10_agentic/00_base/040_other_sdks/manifest.yaml b/examples/tutorials/10_agentic/00_base/040_other_sdks/manifest.yaml new file mode 100644 index 000000000..8695ab7d4 --- /dev/null +++ b/examples/tutorials/10_agentic/00_base/040_other_sdks/manifest.yaml @@ -0,0 +1,119 @@ +# Agent Manifest Configuration +# --------------------------- +# This file defines how your agent should be built and deployed. + +# Build Configuration +# ------------------ +# The build config defines what gets packaged into your agent's Docker image. +# This same configuration is used whether building locally or remotely. +# +# When building: +# 1. All files from include_paths are collected into a build context +# 2. The context is filtered by dockerignore rules +# 3. The Dockerfile uses this context to build your agent's image +# 4. The image is pushed to a registry and used to run your agent +build: + context: + # Root directory for the build context + root: ../ # Keep this as the default root + + # Paths to include in the Docker build context + # Must include: + # - agentex-py: The core framework (needed for agent execution) + # - Your agent's directory (your custom agent code) + # These paths are collected and sent to the Docker daemon for building + include_paths: + - 040_other_sdks + + # Path to your agent's Dockerfile + # This defines how your agent's image is built from the context + # Relative to the root directory + dockerfile: 040_other_sdks/Dockerfile + + # Path to your agent's .dockerignore + # Filters unnecessary files from the build context + # Helps keep build context small and builds fast + dockerignore: 040_other_sdks/.dockerignore + + +# Local Development Configuration +# ----------------------------- +# Only used when running the agent locally +local_development: + agent: + port: 8000 # Port where your local ACP server is running + host_address: host.docker.internal # Host address for Docker networking (host.docker.internal for Docker, localhost for direct) + + # File paths for local development (relative to this manifest.yaml) + paths: + # Path to ACP server file + # Examples: + # project/acp.py (standard) + # src/server.py (custom structure) + # ../shared/acp.py (shared across projects) + # /absolute/path/acp.py (absolute path) + acp: project/acp.py + + +# Agent Configuration +# ----------------- +agent: + acp_type: agentic + + # Unique name for your agent + # Used for task routing and monitoring + name: ab040-other-sdks + + # Description of what your agent does + # Helps with documentation and discovery + description: An AgentEx agent that uses other SDKs to show the flexibilty that agents are just code + + # Temporal workflow configuration + # Set enabled: true to use Temporal workflows for long-running tasks + temporal: + enabled: false + + # Optional: Credentials mapping + # Maps Kubernetes secrets to environment variables + # Common credentials include: + # credentials: + # - env_var_name: OPENAI_API_KEY + # secret_name: openai-api-key + # secret_key: api-key + + # Optional: Set Environment variables for running your agent locally as well + # as for deployment later on + # env: + # - name: OPENAI_BASE_URL + # value: "https://api.openai.com/v1" + # - name: ACCOUNT_ID + # value: "your_account_id_here" + + +# Deployment Configuration +# ----------------------- +# Configuration for deploying your agent to Kubernetes clusters +deployment: + # Container image configuration + image: + repository: "" # Update with your container registry + tag: "latest" # Default tag, should be versioned in production + + # Global deployment settings that apply to all clusters + # These can be overridden in cluster-specific files (deploy/*.yaml) + global: + agent: + name: "ab040-other-sdks" + description: "An AgentEx agent that uses other SDKs to show the flexibilty that agents are just code" + + # Default replica count + replicaCount: 1 + + # Default resource requirements + resources: + requests: + cpu: "500m" + memory: "1Gi" + limits: + cpu: "1000m" + memory: "2Gi" \ No newline at end of file diff --git a/examples/tutorials/10_agentic/00_base/040_other_sdks/project/__init__.py b/examples/tutorials/10_agentic/00_base/040_other_sdks/project/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/examples/tutorials/10_agentic/00_base/040_other_sdks/project/acp.py b/examples/tutorials/10_agentic/00_base/040_other_sdks/project/acp.py new file mode 100644 index 000000000..9b149630c --- /dev/null +++ b/examples/tutorials/10_agentic/00_base/040_other_sdks/project/acp.py @@ -0,0 +1,376 @@ +import os +from typing import Dict, List, Optional +from contextlib import AsyncExitStack, asynccontextmanager +import json + +from agentex.lib import adk +from agentex.lib.core.services.adk.streaming import StreamingTaskMessageContext +from agentex.lib.sdk.fastacp.fastacp import FastACP +from agentex.lib.types.acp import CancelTaskParams, CreateTaskParams, SendEventParams +from agentex.lib.types.fastacp import AgenticACPConfig +from agentex.lib.types.task_message_updates import ( + StreamTaskMessageDelta, + StreamTaskMessageFull, + TextDelta, +) +from agentex.lib.utils.logging import make_logger +from agentex.lib.utils.model_utils import BaseModel +from agentex.types.text_content import TextContent +from agentex.types.task_message_content import ToolRequestContent, ToolResponseContent + +from agents import Agent, Runner +from agents.mcp import MCPServerStdio +from mcp import StdioServerParameters +from openai.types.responses import ( + ResponseCompletedEvent, + ResponseFunctionToolCall, + ResponseOutputItemDoneEvent, + ResponseTextDeltaEvent, +) +from pydantic import BaseModel + +logger = make_logger(__name__) + + +# Create an ACP server + +# !!! Warning: Because "Agentic" ACPs are designed to be fully asynchronous, race conditions can occur if parallel events are sent. It is highly recommended to use the "temporal" type in the AgenticACPConfig instead to handle complex use cases. The "base" ACP is only designed to be used for simple use cases and for learning purposes. +acp = FastACP.create( + acp_type="agentic", + config=AgenticACPConfig(type="base"), +) + +class StateModel(BaseModel): + input_list: List[dict] + turn_number: int + + +MCP_SERVERS = [ + StdioServerParameters( + command="npx", + args=["-y", "@modelcontextprotocol/server-sequential-thinking"], + ), + StdioServerParameters( + command="uvx", + args=["openai-websearch-mcp"], + env={ + "OPENAI_API_KEY": os.environ.get("OPENAI_API_KEY", "") + } + ), +] + + +@acp.on_task_create +async def handle_task_create(params: CreateTaskParams): + # Upon task creation, we initialize the task state with a system message. + # This will be fetched by the `on_task_event_send` handler when each event is sent. + state = StateModel( + input_list=[], + turn_number=0, + ) + await adk.state.create(task_id=params.task.id, agent_id=params.agent.id, state=state) + +@acp.on_task_event_send +async def handle_event_send(params: SendEventParams): + # !!! Warning: Because "Agentic" ACPs are designed to be fully asynchronous, race conditions can occur if parallel events are sent. It is highly recommended to use the "temporal" type in the AgenticACPConfig instead to handle complex use cases. The "base" ACP is only designed to be used for simple use cases and for learning purposes. + + if not params.event.content: + return + + if params.event.content.type != "text": + raise ValueError(f"Expected text message, got {params.event.content.type}") + + if params.event.content.author != "user": + raise ValueError(f"Expected user message, got {params.event.content.author}") + + + # Retrieve the task state. Each event is handled as a new turn, so we need to get the state for the current turn. + task_state = await adk.state.get_by_task_and_agent(task_id=params.task.id, agent_id=params.agent.id) + state = StateModel.model_validate(task_state.state) + state.turn_number += 1 + + # Add the new user message to the message history + state.input_list.append({"role": "user", "content": params.event.content.content}) + + async with adk.tracing.span( + trace_id=params.task.id, + name=f"Turn {state.turn_number}", + input=state + ) as span: + # Echo back the user's message so it shows up in the UI. This is not done by default so the agent developer has full control over what is shown to the user. + await adk.messages.create( + task_id=params.task.id, + trace_id=params.task.id, + content=params.event.content, + parent_span_id=span.id if span else None, + ) + + if not os.environ.get("OPENAI_API_KEY"): + await adk.messages.create( + task_id=params.task.id, + trace_id=params.task.id, + content=TextContent( + author="agent", + content="Hey, sorry I'm unable to respond to your message because you're running this example without an OpenAI API key. Please set the OPENAI_API_KEY environment variable to run this example. Do this by either by adding a .env file to the project/ directory or by setting the environment variable in your terminal.", + ), + parent_span_id=span.id if span else None, + ) + + ######################################################### + # (👋) Call an LLM to respond to the user's message using custom streaming + ######################################################### + + # This demonstrates advanced streaming patterns using adk.streaming. + # We'll show two different streaming approaches: + # 1. Simple streaming with context managers for complete messages (tool calls) + # 2. Delta-based streaming for incremental text responses + run_result = await run_openai_agent_with_custom_streaming( + task_id=params.task.id, + trace_id=params.task.id, + input_list=state.input_list, + mcp_server_params=MCP_SERVERS, + agent_name="Tool-Enabled Assistant", + agent_instructions="""You are a helpful assistant that can answer questions using various tools. + You have access to sequential thinking and web search capabilities through MCP servers. + Use these tools when appropriate to provide accurate and well-reasoned responses.""", + parent_span_id=span.id if span else None, + ) + + state.input_list = run_result.to_input_list() + + # Store the messages in the task state for the next turn + await adk.state.update( + state_id=task_state.id, + task_id=params.task.id, + agent_id=params.agent.id, + state=state, + trace_id=params.task.id, + parent_span_id=span.id if span else None, + ) + + # Set the span output to the state for the next turn + span.output = state + +@acp.on_task_cancel +async def handle_task_cancel(params: CancelTaskParams): + """Default task cancel handler""" + logger.info(f"Task canceled: {params.task}") + + +######################################################## +# Helper functions that integrate Agentex primitives with other SDKs like OpenAI Agents +######################################################## + + +@asynccontextmanager +async def mcp_server_context(mcp_server_params: list[StdioServerParameters]): + """Context manager for MCP servers.""" + servers = [] + for params in mcp_server_params: + server = MCPServerStdio( + name=f"Server: {params.command}", + params=params.model_dump(), + cache_tools_list=True, + client_session_timeout_seconds=60, + ) + servers.append(server) + + async with AsyncExitStack() as stack: + for server in servers: + await stack.enter_async_context(server) + yield servers + + +def redact_mcp_server_params( + mcp_server_params: list[StdioServerParameters], +) -> list[StdioServerParameters]: + """Redact MCP server params.""" + return [ + StdioServerParameters( + **{k: v for k, v in server_param.model_dump().items() if k != "env"}, + env={k: "********" for k in server_param.env} if server_param.env else None, + ) + for server_param in mcp_server_params + ] + + +async def run_openai_agent_with_custom_streaming( + task_id: str, + trace_id: str, + input_list: list[Dict], + mcp_server_params: list[StdioServerParameters], + agent_name: str, + agent_instructions: str, + parent_span_id: Optional[str] = None, +): + """ + Run an OpenAI agent with custom streaming using adk.streaming. + + This demonstrates advanced streaming patterns using adk.streaming. + We'll show two different streaming approaches: + 1. Simple streaming with context managers for complete messages (tool calls) + 2. Delta-based streaming for incremental text responses + """ + + tool_call_map: Dict[str, ResponseFunctionToolCall] = {} + + redacted_mcp_server_params = redact_mcp_server_params(mcp_server_params) + + result = None + async with adk.tracing.span( + trace_id=trace_id, + name="run_agent_with_custom_streaming", + input={ + "input_list": input_list, + "mcp_server_params": redacted_mcp_server_params, + "agent_name": agent_name, + "agent_instructions": agent_instructions, + }, + parent_id=parent_span_id, + ) as span: + async with mcp_server_context(mcp_server_params) as servers: + agent = Agent( + name=agent_name, + instructions=agent_instructions, + mcp_servers=servers, + ) + + # Run with streaming enabled + result = Runner.run_streamed(starting_agent=agent, input=input_list) + + ######################################################### + # (👋) For complete messages like tool calls we will use a with block to create a streaming context, but for text deltas we will use a streaming context that is created and closed manually. To make sure we close all streaming contexts we will track the item_id and close them all at the end. + ######################################################### + + item_id_to_streaming_context: Dict[str, StreamingTaskMessageContext] = {} + unclosed_item_ids: set[str] = set() + + try: + # Process streaming events with TaskMessage creation + async for event in result.stream_events(): + + if event.type == "run_item_stream_event": + if event.item.type == "tool_call_item": + tool_call_item = event.item.raw_item + tool_call_map[tool_call_item.call_id] = tool_call_item + + logger.info(f"Tool call item: {tool_call_item}") + + tool_request_content = ToolRequestContent( + author="agent", + tool_call_id=tool_call_item.call_id, + name=tool_call_item.name, + arguments=json.loads(tool_call_item.arguments), + ) + + # (👋) Create a streaming context for the tool call + # Since a tool call is a complete message, we can use a with block to create a streaming context. This will take care of creating a TaskMessage, sending a START event, and sending a DONE event when the context is closed. Of course you will also want to stream the content of the tool call so clients that are subscribed to streaming updates to the task will see the tool call. + async with adk.streaming.streaming_task_message_context( + task_id=task_id, + initial_content=tool_request_content, + ) as streaming_context: + # The message has already been persisted, but we still need to send an upda + await streaming_context.stream_update( + update=StreamTaskMessageFull( + parent_task_message=streaming_context.task_message, + content=tool_request_content, + content_type=tool_request_content.type, + ), + ) + + elif event.item.type == "tool_call_output_item": + tool_output_item = event.item.raw_item + + tool_response_content = ToolResponseContent( + author="agent", + tool_call_id=tool_output_item["call_id"], + name=tool_call_map[tool_output_item["call_id"]].name, + content=tool_output_item["output"], + ) + + # (👋) Create a streaming context for the tool call output + # Since a tool call output is a complete message, we can use a with block to create a streaming context. This will take care of creating a TaskMessage, sending a START event, and sending a DONE event when the context is closed. Of course you will also want to stream the content of the tool call output so clients that are subscribed to streaming updates to the task will see the tool call output. + async with adk.streaming.streaming_task_message_context( + task_id=task_id, + initial_content=tool_response_content, + ) as streaming_context: + # The message has already been persisted, but we still need to send an update + await streaming_context.stream_update( + update=StreamTaskMessageFull( + parent_task_message=streaming_context.task_message, + content=tool_response_content, + content_type=tool_response_content.type, + ), + ) + + elif event.type == "raw_response_event": + if isinstance(event.data, ResponseTextDeltaEvent): + # Handle text delta + item_id = event.data.item_id + + # (👋) Create a streaming context for the text delta + # Since a text delta is a partial message, we will create a streaming context manually without a with block because we need to persist the context across the for loop. + if item_id not in item_id_to_streaming_context: + streaming_context = adk.streaming.streaming_task_message_context( + task_id=task_id, + initial_content=TextContent( + author="agent", + content="", + ), + ) + # (👋) Open the streaming context manually + # This will create a TaskMessage and send a START event for you. + item_id_to_streaming_context[item_id] = await streaming_context.open() + + # (👋) Add the item_id to the set of unclosed item_ids + # This will allow us to close any lingering streaming context when the agent is done. + unclosed_item_ids.add(item_id) + else: + streaming_context = item_id_to_streaming_context[item_id] + + # (👋) Stream the delta through the streaming service + # This will send a DELTA event. The context manager will accumulate the content for you into a final message when you close the context. + await streaming_context.stream_update( + update=StreamTaskMessageDelta( + parent_task_message=streaming_context.task_message, + delta=TextDelta(text_delta=event.data.delta), + ), + ) + + elif isinstance(event.data, ResponseOutputItemDoneEvent): + # Handle item completion + item_id = event.data.item.id + + # (👋) Close the streaming context + # This will send a DONE event and update the persisted message. + if item_id in item_id_to_streaming_context: + streaming_context = item_id_to_streaming_context[item_id] + await streaming_context.close() + unclosed_item_ids.remove(item_id) + + elif isinstance(event.data, ResponseCompletedEvent): + # (👋) Close all remaining streaming contexts + # This will send a DONE event and update the persisted messages for all remaining streaming contents. Normally this won't be needed if all messages are closed by the time the agent is done. + for item_id in unclosed_item_ids: + streaming_context = item_id_to_streaming_context[item_id] + await streaming_context.close() + unclosed_item_ids.remove(item_id) + + finally: + # (👋) Close all remaining streaming contexts + # This will send a DONE event and update the persisted messages for all remaining streaming contents. Normally this won't be needed, but we do it in case any errors occur. + for item_id in unclosed_item_ids: + streaming_context = item_id_to_streaming_context[item_id] + await streaming_context.close() + unclosed_item_ids.remove(item_id) + if span: + span.output = { + "new_items": [ + item.raw_item.model_dump() + if isinstance(item.raw_item, BaseModel) + else item.raw_item + for item in result.new_items + ], + "final_output": result.final_output, + } + return result diff --git a/examples/tutorials/10_agentic/00_base/040_other_sdks/requirements.txt b/examples/tutorials/10_agentic/00_base/040_other_sdks/requirements.txt new file mode 100644 index 000000000..d12ad3951 --- /dev/null +++ b/examples/tutorials/10_agentic/00_base/040_other_sdks/requirements.txt @@ -0,0 +1,4 @@ +agentex-py>=0.0.4,<0.1.0 + +# Scale GenAI Platform Python SDK +scale-gp \ No newline at end of file diff --git a/examples/tutorials/10_agentic/00_base/050_hello_oldowan/.dockerignore b/examples/tutorials/10_agentic/00_base/050_hello_oldowan/.dockerignore new file mode 100644 index 000000000..c3620f1bc --- /dev/null +++ b/examples/tutorials/10_agentic/00_base/050_hello_oldowan/.dockerignore @@ -0,0 +1,46 @@ +# Python +__pycache__/ +*.py[cod] +*$py.class +*.so +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +*.egg-info/ +.installed.cfg +*.egg + +# Environments +.env** +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# IDE +.idea/ +.vscode/ +*.swp +*.swo + +# Git +.git +.gitignore + +# Misc +.DS_Store + +# CodeArtifact configuration +.codeartifact-pip-conf \ No newline at end of file diff --git a/examples/tutorials/10_agentic/00_base/050_hello_oldowan/Dockerfile b/examples/tutorials/10_agentic/00_base/050_hello_oldowan/Dockerfile new file mode 100644 index 000000000..aca315ae6 --- /dev/null +++ b/examples/tutorials/10_agentic/00_base/050_hello_oldowan/Dockerfile @@ -0,0 +1,45 @@ +# syntax=docker/dockerfile:1.3 +FROM python:3.12-slim +COPY --from=ghcr.io/astral-sh/uv:0.6.4 /uv /uvx /bin/ + +# Install system dependencies +RUN apt-get update && apt-get install -y \ + htop \ + vim \ + curl \ + tar \ + python3-dev \ + postgresql-client \ + build-essential \ + libpq-dev \ + gcc \ + cmake \ + netcat-openbsd \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* + +RUN uv pip install --system --upgrade pip setuptools wheel + +ENV UV_HTTP_TIMEOUT=1000 + +# Copy just the requirements file to optimize caching +COPY 050_hello_oldowan/requirements.txt /app/requirements.txt + +WORKDIR /app/ + +# Install the required Python packages +RUN --mount=type=secret,id=codeartifact-pip-conf,target=/etc/pip.conf \ + export UV_INDEX_URL=$(grep -E "^index-url" /etc/pip.conf | cut -d'=' -f2- | xargs) && \ + export UV_EXTRA_INDEX_URL=$(grep -E "^extra-index-url" /etc/pip.conf | cut -d'=' -f2- | xargs || echo "") && \ + uv pip install --system -r requirements.txt + +# Copy the project code +COPY 050_hello_oldowan/project /app/project + +WORKDIR /app/project + +# Set environment variables +ENV PYTHONPATH=/app + +# Run the agent using uvicorn +CMD ["uvicorn", "acp:acp", "--host", "0.0.0.0", "--port", "8000"] \ No newline at end of file diff --git a/examples/tutorials/10_agentic/00_base/050_hello_oldowan/README.md b/examples/tutorials/10_agentic/00_base/050_hello_oldowan/README.md new file mode 100644 index 000000000..d8c8c12ce --- /dev/null +++ b/examples/tutorials/10_agentic/00_base/050_hello_oldowan/README.md @@ -0,0 +1,17 @@ +# Hello Oldowan Agent + +This is a simple example agent that demonstrates the basics of the Agent 2 Client Protocol (ACP) and the AgentEx framework with an integration to oldowan. + +## For Development +Navigate to `tutorials/10_agentic/00_base/050_hello_oldowan` + +```bash +# Generate CodeArtifact configuration for building (run from repo root) +./setup-build-codeartifact.sh + +# Set up local development environment +uv venv --python 3.12 +source .venv/bin/activate + +uv pip install -r requirements.txt --prerelease=allow +``` diff --git a/examples/tutorials/10_agentic/00_base/050_hello_oldowan/manifest.yaml b/examples/tutorials/10_agentic/00_base/050_hello_oldowan/manifest.yaml new file mode 100644 index 000000000..addbb6689 --- /dev/null +++ b/examples/tutorials/10_agentic/00_base/050_hello_oldowan/manifest.yaml @@ -0,0 +1,116 @@ +# Agent Manifest Configuration +# --------------------------- +# This file defines how your agent should be built and deployed. + +# Build Configuration +# ------------------ +# The build config defines what gets packaged into your agent's Docker image. +# This same configuration is used whether building locally or remotely. +# +# When building: +# 1. All files from include_paths are collected into a build context +# 2. The context is filtered by dockerignore rules +# 3. The Dockerfile uses this context to build your agent's image +# 4. The image is pushed to a registry and used to run your agent +build: + context: + # Root directory for the build context + root: ../ # Keep this as the default root + + # Paths to include in the Docker build context + # Must include: + # - agentex-py: The core framework (needed for agent execution) + # - Your agent's directory (your custom agent code) + # These paths are collected and sent to the Docker daemon for building + include_paths: + - 050_hello_oldowan + + # Path to your agent's Dockerfile + # This defines how your agent's image is built from the context + # Relative to the root directory + dockerfile: 050_hello_oldowan/Dockerfile + + # Path to your agent's .dockerignore + # Filters unnecessary files from the build context + # Helps keep build context small and builds fast + dockerignore: 050_hello_oldowan/.dockerignore + +# Local Development Configuration +# ----------------------------- +# Only used when running the agent locally +local_development: + agent: + port: 8000 # Port where your local ACP server is running + host_address: host.docker.internal # Host address for Docker networking (host.docker.internal for Docker, localhost for direct) + + # File paths for local development (relative to this manifest.yaml) + paths: + # Path to ACP server file + # Examples: + # project/acp.py (standard) + # src/server.py (custom structure) + # ../shared/acp.py (shared across projects) + # /absolute/path/acp.py (absolute path) + acp: project/acp.py + +# Agent Configuration +# ----------------- +agent: + acp_type: agentic + + # Unique name for your agent + # Used for task routing and monitoring + name: ab050-hello-oldowan + + # Description of what your agent does + # Helps with documentation and discovery + description: An AgentEx agent that uses Oldowan to show the flexibilty that agents are just code + + # Temporal workflow configuration + # Set enabled: true to use Temporal workflows for long-running tasks + temporal: + enabled: false + + # Optional: Credentials mapping + # Maps Kubernetes secrets to environment variables + # Common credentials include: + # credentials: + # - env_var_name: OPENAI_API_KEY + # secret_name: openai-api-key + # secret_key: api-key + + # Optional: Set Environment variables for running your agent locally as well + # as for deployment later on + # env: + # - name: OPENAI_BASE_URL + # value: "https://api.openai.com/v1" + # - name: ACCOUNT_ID + # value: "your_account_id_here" + +# Deployment Configuration +# ----------------------- +# Configuration for deploying your agent to Kubernetes clusters +deployment: + # Container image configuration + image: + repository: "" # Update with your container registry + tag: "latest" # Default tag, should be versioned in production + + # Global deployment settings that apply to all clusters + # These can be overridden in cluster-specific files (deploy/*.yaml) + global: + agent: + name: "ab050-hello-oldowan" + description: "An AgentEx agent that uses Oldowan to show the flexibilty that agents are just code" + + # Default replica count + replicaCount: 1 + + # Default resource requirements + resources: + requests: + cpu: "500m" + memory: "1Gi" + limits: + cpu: "1000m" + memory: "2Gi" diff --git a/examples/tutorials/10_agentic/00_base/050_hello_oldowan/project/__init__.py b/examples/tutorials/10_agentic/00_base/050_hello_oldowan/project/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/examples/tutorials/10_agentic/00_base/050_hello_oldowan/project/acp.py b/examples/tutorials/10_agentic/00_base/050_hello_oldowan/project/acp.py new file mode 100644 index 000000000..ad9acc06c --- /dev/null +++ b/examples/tutorials/10_agentic/00_base/050_hello_oldowan/project/acp.py @@ -0,0 +1,435 @@ +import os +import json +from typing import Callable, List, Union, Dict +from functools import partial +import logging + +logger = logging.getLogger(__name__) + +from agentex.lib import adk +from agentex.lib.sdk.fastacp.fastacp import FastACP +from agentex.lib.types.acp import SendEventParams, CreateTaskParams, CancelTaskParams +from agentex.lib.types.fastacp import AgenticACPConfig +from agentex.lib.types.task_message_updates import StreamTaskMessageDelta, StreamTaskMessageFull, TaskMessageUpdate +from agentex.lib.types.task_message_updates import DeltaType, TextDelta, ToolResponseDelta +from agentex.lib.core.services.adk.streaming import StreamingTaskMessageContext +from agentex.lib.utils.model_utils import BaseModel +from agentex.types.span import Span +from agentex.lib.types.llm_messages import Message, UserMessage +from agentex.types.text_content import TextContent +from agentex.types.task_message_content import TaskMessageContent, ToolRequestContent, ToolResponseContent + +from oldowan.tools.internal import google_search +from oldowan.completions import ToolMessage, ChatCompletionMessage, simple_agent_acompletion, ChoiceDelta + +assert os.environ.get("SGP_API_KEY") is not None, "SGP_API_KEY is not set" +assert os.environ.get("SGP_ACCOUNT_ID") is not None, "SGP_ACCOUNT_ID is not set" + +def think(thinking_str: str): + """ + Use the tool to think about something. It will not obtain new information or change the database, but just append the thought to the log. Use it when complex reasoning or some cache memory is needed. + Args: + thinking_str: A thought to think about. + """ + return + +TOOL_DICT = { + "google_search": google_search, + "think": think, +} + +# Create an ACP server +acp = FastACP.create( + acp_type="agentic", + config=AgenticACPConfig(type="base"), +) + +TOOL_RESPONSE_ID_SUFFIX = "_response" + +class SimpleAgentCompletionConfig(BaseModel): + model: str + tools: List[str] + max_tokens: int + stream: bool + +class StateModel(BaseModel): + turn_number: int # The number of turns the agent has taken + messages: List[Message] # The messages the agent has seen + simple_agent_completion_config: SimpleAgentCompletionConfig # The function to call to get an agent response + +def convert_choice_delta_to_stream_task_message_deltas(choice_delta: ChoiceDelta, parent_task_message: TaskMessage) -> List[StreamTaskMessageDelta]: + """ + This function converts a ChoiceDelta to a list of StreamTaskMessageDelta objects. + Args: + choice_delta: The ChoiceDelta to convert. + parent_task_message: The parent task message. + Returns: + A list of StreamTaskMessageDelta objects. + """ + # these are tool requests + deltas = [] + if choice_delta.tool_calls is not None and choice_delta.tool_calls[0].function.name is not None: + + for tool_call in choice_delta.tool_calls: + # print(tool_call) + # don't stream tool calls yet. + # deltas.append(StreamTaskMessageDelta( + # index=idx, + # content_type=TaskMessageContentType.TOOL_REQUEST, + # delta='', # tool_call.function.arguments + # )) + pass + # These are tool responses + elif choice_delta.role == "tool": + deltas.append(StreamTaskMessageDelta( + parent_task_message=parent_task_message, + delta=ToolResponseDelta( + type=DeltaType.TOOL_RESPONSE, + tool_call_id=choice_delta.tool_call_id, + name=choice_delta.name, + content_delta=choice_delta.content, + ), + )) + + # These are assistant messages + elif choice_delta.content is not None: + deltas.append(StreamTaskMessageDelta( + parent_task_message=parent_task_message, + delta=TextDelta( + type=DeltaType.TEXT, + text_delta=choice_delta.content, + ), + )) + + return deltas + +def convert_choice_delta_to_message_content(choice_delta: ChoiceDelta) -> TaskMessageContent: + """ + This function converts a ChoiceDelta to a TaskMessageContent object. + Args: + choice_delta: The ChoiceDelta to convert. + Returns: + A TaskMessageContent object. + """ + # This converts a ChoiceDelta to a TaskMessage which will instantiate "the box" to send to client + if choice_delta.tool_calls is not None: + # since we are streaming we can assume we onl need to create a message for the first tool call + return ToolRequestContent( + author="agent", + name=choice_delta.tool_calls[0].function.name, + tool_call_id=choice_delta.tool_calls[0].id, + arguments={}, # have to start this empty since we are streaming + ) + elif choice_delta.role == "tool": + return ToolResponseContent( + author="agent", + name=choice_delta.name, + tool_call_id=choice_delta.tool_call_id, + content='', # starting empty because we add to it + ) + elif choice_delta.role == "assistant": + return TextContent( + author="agent", + content='', # starting empty because we add to it + ) + raise ValueError(f"Unknown role: {choice_delta.role}. Failed to convert to TaskMessage") + +async def convert_oldowan_message_to_stream_task_message_full( + id_to_streaming_context: Dict[str, StreamingTaskMessageContext], + oldowan_message: Union[ChatCompletionMessage, ToolMessage], + ) -> List[StreamTaskMessageFull]: + """ + This function converts an Oldowan message to a list of StreamTaskMessageFull objects. + Args: + task_messages: A dictionary of task messages. + task_id: The task id. + oldowan_message: The Oldowan message to convert. + Returns: + A list of StreamTaskMessageFull objects. + """ + + if isinstance(oldowan_message, ChatCompletionMessage): + # First create all tool calls + if oldowan_message.tool_calls is not None: + for tool_call in oldowan_message.tool_calls: + task_message_full = StreamTaskMessageFull( + parent_task_message=id_to_streaming_context[tool_call.id].task_message, + content=ToolRequestContent( + author="agent", + name=tool_call.function.name, + tool_call_id=tool_call.id, + arguments=json.loads(tool_call.function.arguments), + ), + ) + await id_to_streaming_context[tool_call.id].stream_update( + update=task_message_full, + ) + + + # Create the assistant messages + if oldowan_message.content is not None: + task_message_full = StreamTaskMessageFull( + parent_task_message=id_to_streaming_context[oldowan_message.id].task_message, + content=TextContent( + author="agent", + content=oldowan_message.content, + ), + ) + await id_to_streaming_context[oldowan_message.id].stream_update( + update=task_message_full, + ) + + # Finally create the tool responses + elif isinstance(oldowan_message, ToolMessage): + task_message_full = StreamTaskMessageFull( + parent_task_message=id_to_streaming_context[oldowan_message.tool_call_id + TOOL_RESPONSE_ID_SUFFIX].task_message, + content=ToolResponseContent( + author="agent", + name=oldowan_message.name, + content=oldowan_message.content, + tool_call_id=oldowan_message.tool_call_id, + ), + ) + await id_to_streaming_context[oldowan_message.tool_call_id + TOOL_RESPONSE_ID_SUFFIX].stream_update( + update=task_message_full, + ) + +def get_oldowan_message_ids(oldowan_message: Union[ChatCompletionMessage, ToolMessage]) -> List[str]: + """ + This function gets the ids of the oldowan message. + Args: + oldowan_message: The Oldowan message to get the ids of. + Returns: + A list of ids. + """ + message_ids = [] + if isinstance(oldowan_message, ChatCompletionMessage): + # check that there is content + if oldowan_message.content is not None: + message_ids.append(oldowan_message.id) + + # check if there are tool calls + if oldowan_message.tool_calls is not None: + for tool_call in oldowan_message.tool_calls: + message_ids.append(tool_call.id) + + elif isinstance(oldowan_message, ToolMessage): + message_ids.append(oldowan_message.tool_call_id + TOOL_RESPONSE_ID_SUFFIX) + + return message_ids + +# This will eventually become adk.providers.oldowan.stream_agent_async_auto_send +async def stream_oldowan_agent_async_auto_send(messages: List[Message], task_id: str, span: Span, simple_agent_acompletion_fn: Callable) -> List[Message]: + """ + Stream an Oldowan agent response to the client. + Args: + messages: The messages to send to the agent. + task_id: The task id. + span: The span to use for tracing. + Returns: + AsyncGenerator[TaskMessageUpdate, None]: A generator of task message updates. + """ + response_stream = await simple_agent_acompletion_fn(messages=messages) + + # This is used to create the current TaskMessage object + cur_task_message_id = None + + # This maps id either from message object, tool_call, or tool_response to the TaskMessage object + id_to_streaming_context = {} + + # These are messages that have already been sent in "full" + persisted_messages = [] + events = [] + + # These are ChoiceDelta objects + async for event in response_stream: + print(event) + if event.role is not None: + # if there is a tool call made then check if its a new tool_call_id + if event.tool_calls is not None and event.tool_calls[0].id is not None and event.tool_calls[0].id not in id_to_streaming_context: + print(f"Role changed: {event.role}") + print(f"Tool call id changed: {event.tool_calls[0].id}") + cur_task_message_id = event.tool_calls[0].id + streaming_context = adk.streaming.streaming_task_message_context( + task_id=task_id, + initial_content=convert_choice_delta_to_message_content(event), + ) + id_to_streaming_context[event.tool_calls[0].id] = await streaming_context.open() + print(f"Created streaming context for tool call: {id_to_streaming_context[event.tool_calls[0].id].task_message}") + + + # If you are in a tool response, you should check that either the tool_call_id has changed or your last type was not tool + elif event.role == "tool" and (event.tool_call_id + TOOL_RESPONSE_ID_SUFFIX not in id_to_streaming_context): + print(f"Role changed: {event.role}") + print(f"Tool Response id: {event.tool_call_id + TOOL_RESPONSE_ID_SUFFIX}") + cur_task_message_id = event.tool_call_id + TOOL_RESPONSE_ID_SUFFIX + streaming_context = adk.streaming.streaming_task_message_context( + task_id=task_id, + initial_content=convert_choice_delta_to_message_content(event), + ) + id_to_streaming_context[event.tool_call_id + TOOL_RESPONSE_ID_SUFFIX] = await streaming_context.open() + print(f"Created streaming context for tool response: {id_to_streaming_context[event.tool_call_id + TOOL_RESPONSE_ID_SUFFIX].task_message}") + + + elif event.role == "assistant" and event.content is not None and event.id not in id_to_streaming_context: # this is an assistant message + print(f"Role is: {event.role}") + assert hasattr(event, "id"), "Event does not have an id, please upgrade to latest oldowan" + print(f"Event id: {event.id}") + cur_task_message_id = event.id + streaming_context = adk.streaming.streaming_task_message_context( + task_id=task_id, + initial_content=convert_choice_delta_to_message_content(event), + ) + id_to_streaming_context[event.id] = await streaming_context.open() + print(f"Created streaming context for assistant message: {id_to_streaming_context[event.id].task_message}") + + + + # Now we can create the items to stream + # NOTE: key assumption is that ChoiceDeltaToolCall can only apply to one tool call at a time. + for task_message_delta in convert_choice_delta_to_stream_task_message_deltas(event, parent_task_message=id_to_streaming_context[cur_task_message_id].task_message): + streaming_context = id_to_streaming_context[cur_task_message_id] + await streaming_context.stream_update( + update=task_message_delta, + ) + + events.append(event) + + # Issue is that we can either have an oldowan message before a task message has been created OR task message before the oldowan message + # this is because tool response messages are added to messages immediately, but streamed one after the other. + # For each oldowan message, if we haven't persisted it yet, then do so + for idx, oldowan_message in enumerate(response_stream.messages): + if oldowan_message not in persisted_messages and all([id in id_to_streaming_context for id in get_oldowan_message_ids(oldowan_message)]): + async with adk.tracing.span( + trace_id=task_id, + parent_id=span.id, + name=f"Message {idx}", + input=messages + response_stream.messages[:idx], # input messages to this message + ) as message_span: + message_span.output = oldowan_message + + # Send the full messages now that they are done + await convert_oldowan_message_to_stream_task_message_full( + id_to_streaming_context=id_to_streaming_context, + oldowan_message=oldowan_message + ) + + print(f"Persisted message: {oldowan_message}") + persisted_messages.append(oldowan_message) + + # Stream the last object + async with adk.tracing.span( + trace_id=task_id, + parent_id=span.id, + name=f"Message {len(response_stream.messages)}", + input=messages + response_stream.messages[:-1], + ) as message_span: + message_span.output = response_stream.messages[-1] + + # Persist the last message to the DB + await convert_oldowan_message_to_stream_task_message_full( + id_to_streaming_context=id_to_streaming_context, + oldowan_message=response_stream.messages[-1] + ) + print(f"Persisted message: {response_stream.messages[-1]}") + persisted_messages.append(response_stream.messages[-1]) + + # Close all the streaming contexts + for streaming_context in id_to_streaming_context.values(): + if not streaming_context._is_closed: + print(f"Closing streaming context for message ID: {streaming_context.task_message.id}. Is closed: {streaming_context._is_closed}") + await streaming_context.close() + + # Aggregate the messages and store the output + return response_stream.messages + + +@acp.on_task_create +async def handle_task_create(params: CreateTaskParams): + # Upon task creation, we initialize the task state with a system message. + # This will be fetched by the `on_task_event_send` handler when each event is sent. + state = StateModel( + simple_agent_completion_config=SimpleAgentCompletionConfig( + model="openai/gpt-4o", + tools=["google_search", "think"], + max_tokens=8192, + stream=True, + ), + messages=[], + turn_number=0, + ) + assert all([tool in TOOL_DICT for tool in state.simple_agent_completion_config.tools]), f"Invalid tool: {state.simple_agent_completion_config.tools}" + await adk.state.create(task_id=params.task.id, agent_id=params.agent.id, state=state) + +# Note: The return of this handler is required to be persisted by the Agentex Server +@acp.on_task_event_send +async def handle_message_send(params: SendEventParams): + ######################################################### + # 1-3. These steps are all the same as the hello acp tutorial. + ######################################################### + + if not params.event.content: + return + + if params.event.content.type != "text": + raise ValueError(f"Expected text message, got {params.event.content.type}") + + if params.event.content.author != "user": + raise ValueError(f"Expected user message, got {params.event.content.author}") + + print(f"Received event: {params.event.content}") + await adk.messages.create( + task_id=params.task.id, + trace_id=params.task.id, + content=params.event.content, + ) + + # Try to retrieve the state. If it doesn't exist, create it. + task_state = await adk.state.get_by_task_and_agent(task_id=params.task.id, agent_id=params.agent.id) + state = StateModel.model_validate(task_state.state) + + messages = state.messages + + ######################################################### + # 4. Call an LLM to respond to the user's message and stream the response to the client. + ######################################################### + print(f"Calling LLM with model {state.simple_agent_completion_config.model_dump_json()} and messages {messages}") + + # Add the user's message to the conversation history + state.messages.append(UserMessage(content=params.event.content.content)) + + # The Agentex server automatically commits input and output messages to the database so you don't need to do this yourself, simply process the input content and return the output content. + async with adk.tracing.span( + trace_id=params.task.id, + name=f"Turn {state.turn_number}", + input=state, + ) as span: + simple_agent_completion_fn = partial( + simple_agent_acompletion, + model=state.simple_agent_completion_config.model, + tools=[TOOL_DICT[tool] for tool in state.simple_agent_completion_config.tools], + max_tokens=state.simple_agent_completion_config.max_tokens, + stream=state.simple_agent_completion_config.stream, + ) + + # Stream the response and collect the generated messages + messages = await stream_oldowan_agent_async_auto_send(messages=messages, task_id=params.task.id, span=span, simple_agent_acompletion_fn=simple_agent_completion_fn) + + # The generated messages are accessible from the span output + state.messages.extend(messages) + + state.turn_number += 1 + + # Update the state with the new messages + await adk.state.update( + task_id=params.task.id, + agent_id=params.agent.id, + state_id=task_state.id, + state=state, + trace_id=params.task.id, + ) + +@acp.on_task_cancel +async def handle_task_cancel(params: CancelTaskParams): + """Default task cancel handler""" + logger.info(f"Task canceled: {params.task}") \ No newline at end of file diff --git a/examples/tutorials/10_agentic/00_base/050_hello_oldowan/requirements.txt b/examples/tutorials/10_agentic/00_base/050_hello_oldowan/requirements.txt new file mode 100644 index 000000000..7898056cd --- /dev/null +++ b/examples/tutorials/10_agentic/00_base/050_hello_oldowan/requirements.txt @@ -0,0 +1,6 @@ +# Install agentex-py from local path +agentex-py>=0.0.4,<0.1.0 + +# Scale GenAI Platform Python SDK +scale-gp +scale-oldowan==0.3.17 \ No newline at end of file diff --git a/examples/tutorials/10_agentic/00_base/060_hello_egp_services/.dockerignore b/examples/tutorials/10_agentic/00_base/060_hello_egp_services/.dockerignore new file mode 100644 index 000000000..c3620f1bc --- /dev/null +++ b/examples/tutorials/10_agentic/00_base/060_hello_egp_services/.dockerignore @@ -0,0 +1,46 @@ +# Python +__pycache__/ +*.py[cod] +*$py.class +*.so +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +*.egg-info/ +.installed.cfg +*.egg + +# Environments +.env** +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# IDE +.idea/ +.vscode/ +*.swp +*.swo + +# Git +.git +.gitignore + +# Misc +.DS_Store + +# CodeArtifact configuration +.codeartifact-pip-conf \ No newline at end of file diff --git a/examples/tutorials/10_agentic/00_base/060_hello_egp_services/Dockerfile b/examples/tutorials/10_agentic/00_base/060_hello_egp_services/Dockerfile new file mode 100644 index 000000000..112b41a4e --- /dev/null +++ b/examples/tutorials/10_agentic/00_base/060_hello_egp_services/Dockerfile @@ -0,0 +1,45 @@ +# syntax=docker/dockerfile:1.3 +FROM python:3.12-slim +COPY --from=ghcr.io/astral-sh/uv:0.6.4 /uv /uvx /bin/ + +# Install system dependencies +RUN apt-get update && apt-get install -y \ + htop \ + vim \ + curl \ + tar \ + python3-dev \ + postgresql-client \ + build-essential \ + libpq-dev \ + gcc \ + cmake \ + netcat-openbsd \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* + +RUN uv pip install --system --upgrade pip setuptools wheel + +ENV UV_HTTP_TIMEOUT=1000 + +# Copy just the requirements file to optimize caching +COPY 060_hello_egp_services/requirements.txt /app/requirements.txt + +WORKDIR /app/ + +# Install the required Python packages +RUN --mount=type=secret,id=codeartifact-pip-conf,target=/etc/pip.conf \ + export UV_INDEX_URL=$(grep -E "^index-url" /etc/pip.conf | cut -d'=' -f2- | xargs) && \ + export UV_EXTRA_INDEX_URL=$(grep -E "^extra-index-url" /etc/pip.conf | cut -d'=' -f2- | xargs || echo "") && \ + uv pip install --system -r requirements.txt + +# Copy the project code +COPY 060_hello_egp_services/project /app/project + +WORKDIR /app/project + +# Set environment variables +ENV PYTHONPATH=/app + +# Run the agent using uvicorn +CMD ["uvicorn", "acp:acp", "--host", "0.0.0.0", "--port", "8000"] \ No newline at end of file diff --git a/examples/tutorials/10_agentic/00_base/060_hello_egp_services/README.md b/examples/tutorials/10_agentic/00_base/060_hello_egp_services/README.md new file mode 100644 index 000000000..b194e9ab8 --- /dev/null +++ b/examples/tutorials/10_agentic/00_base/060_hello_egp_services/README.md @@ -0,0 +1,17 @@ +# Hello EGP Services Agent + +This is a simple example agent that demonstrates the basics of the Agent 2 Client Protocol (ACP) and the AgentEx framework with an integration to EGP Services. + +## For Development +Navigate to `tutorials/10_agentic/00_base/060_hello_egp_services` + +```bash +# Generate CodeArtifact configuration for building (run from repo root) +./setup-build-codeartifact.sh + +# Set up local development environment +uv venv --python 3.12 +source .venv/bin/activate + +uv pip install -r requirements.txt --prerelease=allow +``` diff --git a/examples/tutorials/10_agentic/00_base/060_hello_egp_services/manifest.yaml b/examples/tutorials/10_agentic/00_base/060_hello_egp_services/manifest.yaml new file mode 100644 index 000000000..5269bc918 --- /dev/null +++ b/examples/tutorials/10_agentic/00_base/060_hello_egp_services/manifest.yaml @@ -0,0 +1,116 @@ +# Agent Manifest Configuration +# --------------------------- +# This file defines how your agent should be built and deployed. + +# Build Configuration +# ------------------ +# The build config defines what gets packaged into your agent's Docker image. +# This same configuration is used whether building locally or remotely. +# +# When building: +# 1. All files from include_paths are collected into a build context +# 2. The context is filtered by dockerignore rules +# 3. The Dockerfile uses this context to build your agent's image +# 4. The image is pushed to a registry and used to run your agent +build: + context: + # Root directory for the build context + root: ../ # Keep this as the default root + + # Paths to include in the Docker build context + # Must include: + # - agentex-py: The core framework (needed for agent execution) + # - Your agent's directory (your custom agent code) + # These paths are collected and sent to the Docker daemon for building + include_paths: + - 060_hello_egp_services + + # Path to your agent's Dockerfile + # This defines how your agent's image is built from the context + # Relative to the root directory + dockerfile: 060_hello_egp_services/Dockerfile + + # Path to your agent's .dockerignore + # Filters unnecessary files from the build context + # Helps keep build context small and builds fast + dockerignore: 060_hello_egp_services/.dockerignore + +# Local Development Configuration +# ----------------------------- +# Only used when running the agent locally +local_development: + agent: + port: 8000 # Port where your local ACP server is running + host_address: host.docker.internal # Host address for Docker networking (host.docker.internal for Docker, localhost for direct) + + # File paths for local development (relative to this manifest.yaml) + paths: + # Path to ACP server file + # Examples: + # project/acp.py (standard) + # src/server.py (custom structure) + # ../shared/acp.py (shared across projects) + # /absolute/path/acp.py (absolute path) + acp: project/acp.py + +# Agent Configuration +# ----------------- +agent: + acp_type: agentic + + # Unique name for your agent + # Used for task routing and monitoring + name: ab060-hello-egp-services + + # Description of what your agent does + # Helps with documentation and discovery + description: An AgentEx agent that uses EGP Services to show the flexibilty that agents are just code + + # Temporal workflow configuration + # Set enabled: true to use Temporal workflows for long-running tasks + temporal: + enabled: false + + # Optional: Credentials mapping + # Maps Kubernetes secrets to environment variables + # Common credentials include: + # credentials: + # - env_var_name: OPENAI_API_KEY + # secret_name: openai-api-key + # secret_key: api-key + + # Optional: Set Environment variables for running your agent locally as well + # as for deployment later on + # env: + # - name: OPENAI_BASE_URL + # value: "https://api.openai.com/v1" + # - name: ACCOUNT_ID + # value: "your_account_id_here" + +# Deployment Configuration +# ----------------------- +# Configuration for deploying your agent to Kubernetes clusters +deployment: + # Container image configuration + image: + repository: "" # Update with your container registry + tag: "latest" # Default tag, should be versioned in production + + # Global deployment settings that apply to all clusters + # These can be overridden in cluster-specific files (deploy/*.yaml) + global: + agent: + name: "ab060-hello-egp-services" + description: "An AgentEx agent that uses EGP Services to show the flexibilty that agents are just code" + + # Default replica count + replicaCount: 1 + + # Default resource requirements + resources: + requests: + cpu: "500m" + memory: "1Gi" + limits: + cpu: "1000m" + memory: "2Gi" diff --git a/examples/tutorials/10_agentic/00_base/060_hello_egp_services/project/__init__.py b/examples/tutorials/10_agentic/00_base/060_hello_egp_services/project/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/examples/tutorials/10_agentic/00_base/060_hello_egp_services/project/acp.py b/examples/tutorials/10_agentic/00_base/060_hello_egp_services/project/acp.py new file mode 100644 index 000000000..93e4830ea --- /dev/null +++ b/examples/tutorials/10_agentic/00_base/060_hello_egp_services/project/acp.py @@ -0,0 +1,264 @@ +import os +import json +import logging +from datetime import datetime +from jinja2 import Template +from typing import List, Union + +from agentex.lib import adk +from agentex.lib.sdk.fastacp.fastacp import FastACP +from agentex.lib.types.acp import SendEventParams, CreateTaskParams, CancelTaskParams +from agentex.lib.types.fastacp import AgenticACPConfig +from agentex.lib.utils.model_utils import BaseModel +from agentex.lib.types.llm_messages import Message, UserMessage, SystemMessage +from agentex.types.text_content import TextContent +from agentex.types.task_message_content import TaskMessageContent, ToolRequestContent, ToolResponseContent + +from egp_services.nodes import ToolGenerationNode, RetrieverNode, ChatGenerationNode +from egp_services.nodes.generation.tool_generation import ToolConfig +from oldowan.completions import ToolMessage, ChatCompletionMessage + +logger = logging.getLogger(__name__) + +assert os.environ.get("SGP_API_KEY") is not None, "SGP_API_KEY is not set" +assert os.environ.get("SGP_ACCOUNT_ID") is not None, "SGP_ACCOUNT_ID is not set" + +# Create an ACP server +acp = FastACP.create( + acp_type="agentic", + config=AgenticACPConfig(type="base"), +) + + + +TOOL_GENERATION_NODE = ToolGenerationNode( + model="openai/gpt-4o", + tools=[ + ToolConfig(name="nodes.ChatGenerationNode", init_kwargs={'llm_model' : 'anthropic/claude-3-7-sonnet-20250219'}), + ToolConfig(name="internal.google_search"), + ], + client_kwargs={"api_key": os.environ.get("SGP_API_KEY"), "account_id": os.environ.get("SGP_ACCOUNT_ID")} +) + +CHAT_GENERATION_NODE = ChatGenerationNode( + model="openai/gpt-4o", + client_kwargs={"api_key": os.environ.get("SGP_API_KEY"), "account_id": os.environ.get("SGP_ACCOUNT_ID")} +) + +RETRIEVER_NODE = RetrieverNode( + knowledge_base_id="bb9095d0-a93a-4353-a9f5-44c54d0060ac", + client_kwargs={"api_key": os.environ.get("SGP_API_KEY"), "account_id": os.environ.get("SGP_ACCOUNT_ID")} +) + +CREATE_RETRIEVAL_QUERY_USER_PROMPT = """ +You are a helpful assistant that creates a retrieval query for a knowledge base based on the current state of the conversation. + +Here is the current state of the conversation: + +{% for message in messages %} +{{ message.role }}: {{ message.content }} +{% endfor %} + +Now create a retrieval query for the knowledge base. +""" + +TOOL_ENABLED_ASSISTANT_SYSTEM_PROMPT = """ +You are a helpful assistant that uses tools to answer questions. + +Here is some context for the conversation: + +{% for chunk in chunks %} + +Chunk ID: {{ chunk.chunk_id }} + +{{ chunk.text }} + +{% endfor %} + +Good luck! +""" + +TOOL_RESPONSE_ID_SUFFIX = "_response" + +class StateModel(BaseModel): + turn_number: int # The number of turns the agent has taken + messages: List[Message] # The messages the agent has seen + +# Converts an egp service message to an agentex task message +def convert_message_to_task_message(message: Union[ChatCompletionMessage, ToolMessage]) -> List[TaskMessageContent]: + task_messages = [] + if isinstance(message, ChatCompletionMessage): + # Always return the ChatCompletionMessage first + if message.content is not None: + task_messages.append(TextContent( + author="agent", + content=message.content, + )) + + # Then add on the tool calls + if message.tool_calls is not None: + for tool_call in message.tool_calls: + task_messages.append(ToolRequestContent( + author="agent", + name=tool_call.function.name, + arguments=json.loads(tool_call.function.arguments), + )) + + # FInally add the Tool REsponse + elif isinstance(message, ToolMessage): + task_messages.append(ToolResponseContent( + author="agent", + content=message.content, + name=message.name, + )) + return task_messages + + +async def handle_turn(task_id: str, state: StateModel, content: str): + """Shared function for handling a turn in the task""" + # Echo back the user's initial message + await adk.messages.create( + task_id=task_id, + content=TextContent( + author="user", + content=content, + ), + trace_id=task_id, + ) + + # Add the user's message to the state + state.messages.append(UserMessage(content=content)) + + # Create a span for the entire turn + async with adk.tracing.span( + trace_id=task_id, + name=f"Turn {state.turn_number}", + input=state, + ) as span: + # 1. Summarize the current state + retrieval_query_messages = [ + UserMessage(content=Template(CREATE_RETRIEVAL_QUERY_USER_PROMPT).render(messages=state.messages)), + ] + async with adk.tracing.span( + trace_id=task_id, + name=f"Create Retrieval Query", + parent_id=span.id, + input={"retrieval_query_messages": retrieval_query_messages}, + ) as retrieval_query_span: + retrieval_query = CHAT_GENERATION_NODE( + messages=retrieval_query_messages, + ) + retrieval_query_span.end_time = datetime.now() + retrieval_query_span.output = {"retrieval_query": retrieval_query} + + print(f"Retrieval query about to be sent: {retrieval_query} - class: {type(retrieval_query)} - class name: {type(retrieval_query).__name__}") + + # 2. Do a retrieval function + async with adk.tracing.span( + trace_id=task_id, + name=f"Retrieve Chunks", + parent_id=span.id, + input={"retrieval_query": retrieval_query}, + ) as retrieve_chunks_span: + chunks = RETRIEVER_NODE(query=retrieval_query.output, num_to_return=2) + retrieve_chunks_span.end_time = datetime.now() + retrieve_chunks_span.output = {"chunks": chunks} + + + # 3. Do a tool enabled generation + tool_enabled_llm_messages = [ + SystemMessage(content=Template(TOOL_ENABLED_ASSISTANT_SYSTEM_PROMPT).render(chunks=chunks)), + *state.messages, + ] + # Trace the full node + async with adk.tracing.span( + trace_id=task_id, + name=f"Generate Response", + parent_id=span.id, + input={"tool_enabled_llm_messages": tool_enabled_llm_messages}, + ) as generate_response_span: + messages = await TOOL_GENERATION_NODE.async_call( + messages=tool_enabled_llm_messages, + ) + + # For each message, trace it and send it to the client + for idx, message in enumerate(messages): + async with adk.tracing.span( + trace_id=task_id, + name=f"Message {idx}", + parent_id=generate_response_span.id, + input={"messages": tool_enabled_llm_messages + messages[:idx]}, + ) as message_span: + task_messages = convert_message_to_task_message(message) + for task_message in task_messages: + await adk.messages.create( + task_id=task_id, + content=task_message, + trace_id=task_id, + parent_span_id=message_span.id, + ) + + message_span.output = {"message": message} + + generate_response_span.end_time = datetime.now() + generate_response_span.output = {"messages": messages} + + # Update the task state with the new messages + state.messages.extend(messages) + state.turn_number += 1 + + span.end_time = datetime.now() + + return state + + +@acp.on_task_create +async def handle_task_create(params: CreateTaskParams): + # Upon task creation, we initialize the task state with a system message. + # This will be fetched by the `on_task_event_send` handler when each event is sent. + state = StateModel( + messages=[], + turn_number=0, + ) + await adk.state.create(task_id=params.task.id, agent_id=params.agent.id, state=state) + + +# Note: The return of this handler is required to be persisted by the Agentex Server +@acp.on_task_event_send +async def handle_message_send(params: SendEventParams): + ######################################################### + # 1-3. These steps are all the same as the hello acp tutorial. + ######################################################### + + if not params.event.content: + return + + if params.event.content.type != "text": + raise ValueError(f"Expected text message, got {params.event.content.type}") + + if params.event.content.author != "user": + raise ValueError(f"Expected user message, got {params.event.content.author}") + + # Try to retrieve the state. If it doesn't exist, create it. + task_state = await adk.state.get_by_task_and_agent(task_id=params.task.id, agent_id=params.agent.id) + state = StateModel.model_validate(task_state.state) + + ######################################################### + # 4. Call an LLM to respond to the user's message and stream the response to the client. + ######################################################### + + state = await handle_turn(task_id=params.task.id, state=state, content=params.event.content.content) + + # Update the state with the new messages + await adk.state.update( + task_id=params.task.id, + agent_id=params.agent.id, + state_id=task_state.id, + state=state, + trace_id=params.task.id, + ) + +@acp.on_task_cancel +async def handle_task_cancel(params: CancelTaskParams): + """Default task cancel handler""" + logger.info(f"Task canceled: {params.task}") \ No newline at end of file diff --git a/examples/tutorials/10_agentic/00_base/060_hello_egp_services/requirements.txt b/examples/tutorials/10_agentic/00_base/060_hello_egp_services/requirements.txt new file mode 100644 index 000000000..0cd249f11 --- /dev/null +++ b/examples/tutorials/10_agentic/00_base/060_hello_egp_services/requirements.txt @@ -0,0 +1,7 @@ +# Install agentex-py from local path +agentex-py>=0.0.4,<0.1.0 + +# Scale GenAI Platform Python SDK +scale-gp +egp-services +openai-agents!=0.0.17 \ No newline at end of file diff --git a/examples/tutorials/10_agentic/00_base/080_batch_events/.dockerignore b/examples/tutorials/10_agentic/00_base/080_batch_events/.dockerignore new file mode 100644 index 000000000..c4f7a8b4b --- /dev/null +++ b/examples/tutorials/10_agentic/00_base/080_batch_events/.dockerignore @@ -0,0 +1,43 @@ +# Python +__pycache__/ +*.py[cod] +*$py.class +*.so +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +*.egg-info/ +.installed.cfg +*.egg + +# Environments +.env** +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# IDE +.idea/ +.vscode/ +*.swp +*.swo + +# Git +.git +.gitignore + +# Misc +.DS_Store \ No newline at end of file diff --git a/examples/tutorials/10_agentic/00_base/080_batch_events/Dockerfile b/examples/tutorials/10_agentic/00_base/080_batch_events/Dockerfile new file mode 100644 index 000000000..1c5138b5e --- /dev/null +++ b/examples/tutorials/10_agentic/00_base/080_batch_events/Dockerfile @@ -0,0 +1,45 @@ +# syntax=docker/dockerfile:1.3 +FROM python:3.12-slim +COPY --from=ghcr.io/astral-sh/uv:0.6.4 /uv /uvx /bin/ + +# Install system dependencies +RUN apt-get update && apt-get install -y \ + htop \ + vim \ + curl \ + tar \ + python3-dev \ + postgresql-client \ + build-essential \ + libpq-dev \ + gcc \ + cmake \ + netcat-openbsd \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* + +RUN uv pip install --system --upgrade pip setuptools wheel + +ENV UV_HTTP_TIMEOUT=1000 + +# Copy just the requirements file to optimize caching +COPY 10_agentic/00_base/080_batch_events/requirements.txt /app/10_agentic/00_base/080_batch_events/requirements.txt + +WORKDIR /app/10_agentic/00_base/080_batch_events + +# Install the required Python packages +RUN --mount=type=secret,id=codeartifact-pip-conf,target=/etc/pip.conf \ + export UV_INDEX_URL=$(grep -E "^index-url" /etc/pip.conf | cut -d'=' -f2- | xargs) && \ + export UV_EXTRA_INDEX_URL=$(grep -E "^extra-index-url" /etc/pip.conf | cut -d'=' -f2- | xargs || echo "") && \ + uv pip install --system -r requirements.txt + +# Copy the project code +COPY 10_agentic/00_base/080_batch_events/project /app/10_agentic/00_base/080_batch_events/project + +WORKDIR /app/10_agentic/00_base/080_batch_events/project + +# Set environment variables +ENV PYTHONPATH=/app + +# Run the agent using uvicorn +CMD ["uvicorn", "acp:acp", "--host", "0.0.0.0", "--port", "8000"] \ No newline at end of file diff --git a/examples/tutorials/10_agentic/00_base/080_batch_events/README.md b/examples/tutorials/10_agentic/00_base/080_batch_events/README.md new file mode 100644 index 000000000..a6058fb20 --- /dev/null +++ b/examples/tutorials/10_agentic/00_base/080_batch_events/README.md @@ -0,0 +1,174 @@ +# ab080-batch-events - AgentEx Starter Template + +This is a tutorial demonstrating **batch event processing** and the **limitations of the base agentic ACP protocol**. + +## 🎯 Tutorial Purpose + +This tutorial demonstrates three key concepts: + +1. **Events and Cursor Usage**: How to use `adk.events.list_events()` with `last_processed_event_id` to track processing progress +2. **Cursor Committing**: How to "commit" the cursor by updating `last_processed_event_id` in the AgentTaskTracker +3. **Base ACP Limitations**: Real-world limitations when building distributed agents with the basic agentic ACP protocol + +## ⚠️ Important Limitations + +### **Primary Limitation (Race Conditions)** +The code includes this critical limitation: +```python +# LIMITATION - because this is not atomic, it is possible that two different +# processes will read the value of READY and then both will try to set it to +# PROCESSING. The only way to prevent this is locking, which is not supported +# by the agentex server. +``` + +**Problem**: Multiple pods can simultaneously check status=READY and both proceed to process events, leading to duplicate work. + +### **Additional Distributed System Limitations** + +1. **Server Crash Recovery**: If the agent server dies while processing events, there's no clean way to restart processing from where it left off. The status remains "PROCESSING" indefinitely. + +2. **Cursor Commit Failures**: If the server fails to commit the cursor (`last_processed_event_id`) after writing a message, retrying will lead to duplicate messages being written for the same events. + +3. **No Transactional Guarantees**: There's no way to atomically update both the message store and the cursor position, leading to potential inconsistencies. + +4. **Base ACP Protocol Constraints**: These issues cannot be solved with the simple agentic base ACP protocol alone - they require more sophisticated coordination mechanisms. + +## 🔧 Solutions + +The limitations above highlight why more advanced patterns are needed for production systems: + +**Options for Production**: +1. **Database Locking**: Implement your own database locking mechanism and provide the agent with database credentials +2. **Temporal Workflows**: Use Temporal to ensure only one workflow execution processes events at a time (eliminates the need for manual locking) +3. **Message Queues**: Use external queue systems with built-in exactly-once delivery guarantees + +## 🎯 Batching Demonstration + +Despite the limitations, this tutorial effectively demonstrates **event batching behavior**: + +- Events arriving during the 2-second processing delay get queued +- When processing completes, all queued events are processed together in the next batch +- This shows how slow agents can efficiently handle bursts of events + +## What You'll Learn + +- **Tasks**: A task is a grouping mechanism for related messages. Think of it as a conversation thread or a session. +- **Messages**: Messages are communication objects within a task. They can contain text, data, or instructions. +- **ACP Events**: The agent responds to four main events: + - `task_received`: When a new task is created + - `task_message_received`: When a message is sent within a task + - `task_approved`: When a task is approved + - `task_canceled`: When a task is canceled + +## Running the Agent + +1. Run the agent locally: +```bash +agentex agents run --manifest manifest.yaml +``` + +The agent will start on port 8000 and print messages whenever it receives any of the ACP events. + +## What's Inside + +This template: +- Sets up a basic ACP server +- Handles each of the required ACP events with simple print statements +- Provides a foundation for building more complex agents + +## Next Steps + +For more advanced agent development, check out the AgentEx tutorials: + +- **Tutorials 00-08**: Learn about building synchronous agents with ACP +- **Tutorials 09-10**: Learn how to use Temporal to power asynchronous agents + - Tutorial 09: Basic Temporal workflow setup + - Tutorial 10: Advanced Temporal patterns and best practices + +These tutorials will help you understand: +- How to handle long-running tasks +- Implementing state machines +- Managing complex workflows +- Best practices for async agent development + +## The Manifest File + +The `manifest.yaml` file is your agent's configuration file. It defines: +- How your agent should be built and packaged +- What files are included in your agent's Docker image +- Your agent's name and description +- Local development settings (like the port your agent runs on) + +This file is essential for both local development and deployment of your agent. + +## Project Structure + +``` +080_batch_events/ +├── project/ # Your agent's code +│ ├── __init__.py +│ └── acp.py # ACP server and event handlers +├── Dockerfile # Container definition +├── manifest.yaml # Deployment config +└── requirements.txt # Dependencies +``` + +## Development + +1. **Customize Event Handlers** + - Modify the handlers in `acp.py` to implement your agent's logic + - Add your own tools and capabilities + - Implement custom state management + +2. **Add Dependencies** + - Add required packages to `requirements.txt` + - Update the manifest with any needed credentials + +## Local Development + +1. **Install AgentEx** +```bash +cd agentex-py +uv venv +source .venv/bin/activate +uv sync +``` + +2. **Start the Agentex Server** +```bash +# Navigate to the backend directory +cd agentex + +# Start all services using Docker Compose +make dev + +# Optional: In a separate terminal, use lazydocker for a better UI (everything should say "healthy") +lzd +``` + +3. **Run your agent** +```bash +# From this directory +export ENVIRONMENT=development && agentex agents run --manifest manifest.yaml +``` + +4. **Interact with your agent** + +Option 0: CLI (deprecated - to be replaced once a new CLI is implemented - please use the web UI for now!) +```bash +# Submit a task via CLI +agentex tasks submit --agent {{ agent_name }} --task "Your task here" +``` + +Option 1: Web UI +```bash +# Start the local web interface +cd agentex-web +make dev + +# Then open http://localhost:3000 in your browser to chat with your agent +``` +## Development Tips + +1. **Local Testing** +- Set environment variables in project/.env for any required credentials \ No newline at end of file diff --git a/examples/tutorials/10_agentic/00_base/080_batch_events/manifest.yaml b/examples/tutorials/10_agentic/00_base/080_batch_events/manifest.yaml new file mode 100644 index 000000000..857576875 --- /dev/null +++ b/examples/tutorials/10_agentic/00_base/080_batch_events/manifest.yaml @@ -0,0 +1,118 @@ +# Agent Manifest Configuration +# --------------------------- +# This file defines how your agent should be built and deployed. + +# Build Configuration +# ------------------ +# The build config defines what gets packaged into your agent's Docker image. +# This same configuration is used whether building locally or remotely. +# +# When building: +# 1. All files from include_paths are collected into a build context +# 2. The context is filtered by dockerignore rules +# 3. The Dockerfile uses this context to build your agent's image +# 4. The image is pushed to a registry and used to run your agent +build: + context: + # Root directory for the build context + root: ../../../ # Keep this as the default root + + # Paths to include in the Docker build context + # Must include: + # - agentex-py: The core framework (needed for agent execution) + # - Your agent's directory (your custom agent code) + # These paths are collected and sent to the Docker daemon for building + include_paths: + - agentex-py + - 10_agentic/00_base/080_batch_events + + # Path to your agent's Dockerfile + # This defines how your agent's image is built from the context + # Relative to the root directory + dockerfile: 10_agentic/00_base/080_batch_events/Dockerfile + + # Path to your agent's .dockerignore + # Filters unnecessary files from the build context + # Helps keep build context small and builds fast + dockerignore: 10_agentic/00_base/080_batch_events/.dockerignore + + +# Local Development Configuration +# ----------------------------- +# Only used when running the agent locally +local_development: + agent: + port: 8000 # Port where your local ACP server is running + host_address: host.docker.internal # Host address for Docker networking (host.docker.internal for Docker, localhost for direct) + + # File paths for local development (relative to this manifest.yaml) + paths: + # Path to ACP server file + # Examples: + # project/acp.py (standard) + # src/server.py (custom structure) + # ../shared/acp.py (shared across projects) + # /absolute/path/acp.py (absolute path) + acp: project/acp.py + + +# Agent Configuration +# ----------------- +agent: + acp_type: agentic + + # Unique name for your agent + # Used for task routing and monitoring + name: ab080-batch-events + + # Description of what your agent does + # Helps with documentation and discovery + description: An AgentEx agent + + # Temporal workflow configuration + # Set enabled: true to use Temporal workflows for long-running tasks + temporal: + enabled: false + + # Optional: Credentials mapping + # Maps Kubernetes secrets to environment variables + # Common credentials include: + # credentials: + # - env_var_name: OPENAI_API_KEY + # secret_name: openai-api-key + # secret_key: api-key + + # Optional: Set Environment variables for running your agent locally as well + # as for deployment later on + # env: + # OPENAI_API_KEY: "" + # OPENAI_BASE_URL: "" + # OPENAI_ORG_ID: "" + +# Deployment Configuration +# ----------------------- +# Configuration for deploying your agent to Kubernetes clusters +deployment: + # Container image configuration + image: + repository: "" # Update with your container registry + tag: "latest" # Default tag, should be versioned in production + + # Global deployment settings that apply to all clusters + # These can be overridden in cluster-specific files (deploy/*.yaml) + global: + agent: + name: "ab080-batch-events" + description: "An AgentEx agent" + + # Default replica count + replicaCount: 1 + + # Default resource requirements + resources: + requests: + cpu: "500m" + memory: "1Gi" + limits: + cpu: "1000m" + memory: "2Gi" \ No newline at end of file diff --git a/examples/tutorials/10_agentic/00_base/080_batch_events/project/__init__.py b/examples/tutorials/10_agentic/00_base/080_batch_events/project/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/examples/tutorials/10_agentic/00_base/080_batch_events/project/acp.py b/examples/tutorials/10_agentic/00_base/080_batch_events/project/acp.py new file mode 100644 index 000000000..eb72d68d2 --- /dev/null +++ b/examples/tutorials/10_agentic/00_base/080_batch_events/project/acp.py @@ -0,0 +1,237 @@ +""" +WARNING: This tutorial is NOT something that is production ready. It is meant for a demonstration of how to handle a bulk of events in an agentic ACP. + +THere are many limitations with trying to do something similar to this. Please see the README.md for more details. +""" +import asyncio +from enum import Enum + +from agentex.lib import adk +from agentex.lib.sdk.fastacp.fastacp import FastACP +from agentex.lib.types.acp import SendEventParams, CancelTaskParams, CreateTaskParams +from agentex.lib.types.fastacp import AgenticACPConfig +from agentex.lib.utils.logging import make_logger +from agentex.types.text_content import TextContent + +logger = make_logger(__name__) + + +class TaskCancelledError(Exception): + pass + + +class Status(Enum): + PROCESSING = "processing" + READY = "ready" + CANCELLED = "cancelled" + + +# Create an ACP server +acp = FastACP.create( + acp_type="agentic", + config=AgenticACPConfig(type="base") +) + +async def process_events_batch(events, task_id: str) -> str: + """ + Process a batch of events with 2s sleep per event to simulate work. + Returns the ID of the last processed event. + """ + if not events: + return None + + logger.info(f"🔄 Processing {len(events)} events: {[e.id for e in events]}") + + # Sleep for 2s per event to simulate processing work + for event in events: + await asyncio.sleep(5) + logger.info(f" INSIDE PROCESSING LOOP - FINISHED PROCESSING EVENT {event.id}") + + # Create message showing what was processed + event_ids = [event.id for event in events] + message_content = TextContent( + author="agent", + content=f"Processed event IDs: {event_ids}" + ) + + await adk.messages.create( + task_id=task_id, + content=message_content + ) + + final_cursor = events[-1].id + logger.info(f"📝 Message created for {len(events)} events (cursor: {final_cursor})") + return final_cursor + + +@acp.on_task_create +async def handle_task_create(params: CreateTaskParams) -> None: + # For this tutorial, we print the parameters sent to the handler + # so you can see where and how task creation is handled + + logger.info(f"Task created: {params.task.id} for agent: {params.agent.id}") + + # The AgentTaskTracker is automatically created by the server when a task is created + # Let's verify it exists and log its initial state + try: + tracker = await adk.agent_task_tracker.get_by_task_and_agent( + task_id=params.task.id, + agent_id=params.agent.id + ) + logger.info(f"AgentTaskTracker found: {tracker.id}, status: {tracker.status}, last_processed_event_id: {tracker.last_processed_event_id}") + except Exception as e: + logger.error(f"Error getting AgentTaskTracker: {e}") + + logger.info("Task creation complete") + return + + +@acp.on_task_event_send +async def handle_task_event_send(params: SendEventParams) -> None: + """ + NOTE: See the README.md for a set of limitations as to why this is not the best way to handle events. + + Handle incoming events with batching behavior. + + Demonstrates how events arriving during PROCESSING get queued and batched: + 1. Check status - skip if CANCELLED or already PROCESSING + 2. Set status to PROCESSING + 3. Process events in batches until no more arrive + 4. Set status back to READY + + The key insight: while this agent is sleeping 2s per event, new events + can arrive and will be batched together in the next processing cycle. + """ + logger.info(f"📥 Received event: {params.event.id}") + + # Get the current AgentTaskTracker state + try: + tracker = await adk.agent_task_tracker.get_by_task_and_agent( + task_id=params.task.id, + agent_id=params.agent.id + ) + logger.info(f"Current tracker status: {tracker.status}, cursor: {tracker.last_processed_event_id}") + except Exception as e: + logger.error(f"Error getting AgentTaskTracker: {e}") + return + + # Skip if task is cancelled + if tracker.status == Status.CANCELLED.value: + logger.error("❌ Task is cancelled. Skipping.") + return + + # Skip if already processing (another pod is handling it) + if tracker.status == Status.PROCESSING.value: + logger.info("⏭️ Task is already being processed by another pod. Skipping.") + return + + # LIMITATION - because this is not atomic, it is possible that two different processes will read the value of true + # and then both will try to set it to processing. The only way to prevent this is locking, which is not supported + # by the agentex server. + # + # Options: + # 1. Implement your own database locking mechanism and provide the agent with the credentials to the database + # 2. Use Temporal, which will ensure that there is only one workflow execution to be processing at a time (thus not needing a lock anymore) + # Update status to PROCESSING to claim this processing cycle + try: + tracker = await adk.agent_task_tracker.update( + tracker_id=tracker.id, + status=Status.PROCESSING.value, + status_reason="Processing events in batches" + + ) + logger.info(f"🔒 Set status to PROCESSING") + except Exception as e: + logger.error(f"❌ Failed to set status to PROCESSING (another pod may have claimed it): {e}") + return + + reset_to_ready = True + try: + current_cursor = tracker.last_processed_event_id + # Main processing loop - keep going until no more new events + while True: + print(f"\n🔍 Checking for new events since cursor: {current_cursor}") + + tracker = await adk.agent_task_tracker.get(tracker_id=tracker.id) + if tracker.status == Status.CANCELLED.value: + logger.error("❌ Task is cancelled. Skipping.") + raise TaskCancelledError("Task is cancelled") + + # Get all new events since current cursor + try: + print("Listing events since cursor: ", current_cursor) + new_events = await adk.events.list_events( + task_id=params.task.id, + agent_id=params.agent.id, + last_processed_event_id=current_cursor, + limit=100 + ) + + if not new_events: + print("✅ No more new events found - processing cycle complete") + break + + logger.info(f"🎯 BATCH: Found {len(new_events)} events to process") + + except Exception as e: + logger.error(f"❌ Error collecting events: {e}") + break + + # Process this batch of events (with 2s sleeps) + try: + final_cursor = await process_events_batch(new_events, params.task.id) + + # Update cursor to mark these events as processed + await adk.agent_task_tracker.update( + tracker_id=tracker.id, + last_processed_event_id=final_cursor, + status=Status.PROCESSING.value, # Still processing, might be more + status_reason=f"Processed batch of {len(new_events)} events" + ) + + current_cursor = final_cursor + logger.info(f"📊 Updated cursor to: {current_cursor}") + + except Exception as e: + logger.error(f"❌ Error processing events batch: {e}") + break + except TaskCancelledError as e: + logger.error(f"❌ Task cancelled: {e}") + reset_to_ready = False + finally: + if not reset_to_ready: + return + + # Always set status back to READY when done processing + try: + await adk.agent_task_tracker.update( + tracker_id=tracker.id, + status=Status.READY.value, + status_reason="Completed event processing - ready for new events" + ) + logger.info(f"🟢 Set status back to READY - agent available for new events") + except Exception as e: + logger.error(f"❌ Error setting status back to READY: {e}") + + +@acp.on_task_cancel +async def handle_task_canceled(params: CancelTaskParams): + # For this tutorial, we print the parameters sent to the handler + # so you can see where and how task cancellation is handled + logger.info(f"Hello world! Task canceled: {params.task.id}") + + # Update the AgentTaskTracker to reflect cancellation + try: + tracker = await adk.agent_task_tracker.get_by_task_and_agent( + task_id=params.task.id, + agent_id=params.agent.id + ) + await adk.agent_task_tracker.update( + tracker_id=tracker.id, + status=Status.CANCELLED.value, + status_reason="Task was cancelled by user" + ) + logger.info(f"Updated tracker status to cancelled") + except Exception as e: + logger.error(f"Error updating tracker on cancellation: {e}") + diff --git a/examples/tutorials/10_agentic/00_base/080_batch_events/requirements.txt b/examples/tutorials/10_agentic/00_base/080_batch_events/requirements.txt new file mode 100644 index 000000000..2c2ebf15b --- /dev/null +++ b/examples/tutorials/10_agentic/00_base/080_batch_events/requirements.txt @@ -0,0 +1,5 @@ +# Install agentex-py from local path +agentex-py>=0.0.4,<0.1.0 + +# Scale GenAI Platform Python SDK +scale-gp \ No newline at end of file diff --git a/examples/tutorials/10_agentic/00_base/080_batch_events/test_batch_events.py b/examples/tutorials/10_agentic/00_base/080_batch_events/test_batch_events.py new file mode 100644 index 000000000..1763fa2cc --- /dev/null +++ b/examples/tutorials/10_agentic/00_base/080_batch_events/test_batch_events.py @@ -0,0 +1,110 @@ +#!/usr/bin/env python3 +""" +Simple script to test agent RPC endpoints using the actual schemas. +""" + +import httpx +import json +import uuid +import asyncio + +# Configuration +BASE_URL = "http://localhost:5003" +AGENT_ID = "b4f32d71-ff69-4ac9-84d1-eb2937fea0c7" +RPC_ENDPOINT = f"{BASE_URL}/agents/{AGENT_ID}/rpc" + +async def send_rpc_request(method: str, params: dict): + """Send an RPC request to the agent.""" + request_data = { + "jsonrpc": "2.0", + "id": str(uuid.uuid4()), + "method": method, + "params": params + } + + print(f"→ Sending: {method}") + print(f" Request: {json.dumps(request_data, indent=2)}") + + async with httpx.AsyncClient() as client: + try: + response = await client.post( + RPC_ENDPOINT, + json=request_data, + headers={"Content-Type": "application/json"}, + timeout=30.0 + ) + + print(f" Status: {response.status_code}") + + if response.status_code == 200: + response_data = response.json() + print(f" Response: {json.dumps(response_data, indent=2)}") + return response_data + else: + print(f" Error: {response.text}") + return None + + except Exception as e: + print(f" Failed: {e}") + return None + +async def main(): + """Main function to test the agent RPC endpoints.""" + print(f"🚀 Testing Agent RPC: {AGENT_ID}") + print(f"🔗 Endpoint: {RPC_ENDPOINT}") + print("=" * 50) + + # Step 1: Create a task + print("\n📝 Step 1: Creating a task...") + task_response = await send_rpc_request("task/create", { + "params": { + "description": "Test task from simple script" + } + }) + + if not task_response or task_response.get("error"): + print("❌ Task creation failed, continuing anyway...") + task_id = str(uuid.uuid4()) # Generate a task ID to continue + else: + # Extract task_id from response (adjust based on actual response structure) + task_id = task_response.get("result", {}).get("id", str(uuid.uuid4())) + + print(f"📋 Using task_id: {task_id}") + + # Step 2: Send messages + print("\n📤 Step 2: Sending messages...") + + messages = [f"This is message {i}" for i in range(20)] + + for i, message in enumerate(messages, 1): + print(f"\n📨 Sending message {i}/{len(messages)}") + + # Create message content using TextContent structure + message_content = { + "type": "text", + "author": "user", + "style": "static", + "format": "plain", + "content": message + } + + # Send message using message/send method + response = await send_rpc_request("event/send", { + "task_id": task_id, + "event": message_content, + }) + + if response and not response.get("error"): + print(f"✅ Message {i} sent successfully") + else: + print(f"❌ Message {i} failed") + + # Small delay between messages + await asyncio.sleep(0.1) + + print("\n" + "=" * 50) + print("✨ Script completed!") + print(f"📋 Task ID: {task_id}") + +if __name__ == "__main__": + asyncio.run(main()) \ No newline at end of file diff --git a/examples/tutorials/10_agentic/10_temporal/000_hello_acp/.dockerignore b/examples/tutorials/10_agentic/10_temporal/000_hello_acp/.dockerignore new file mode 100644 index 000000000..4521d8465 --- /dev/null +++ b/examples/tutorials/10_agentic/10_temporal/000_hello_acp/.dockerignore @@ -0,0 +1,46 @@ +# Python +__pycache__/ +*.py[cod] +*$py.class +*.so +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +*.egg-info/ +.installed.cfg +*.egg + +# Environments +.env** +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# IDE +.idea/ +.vscode/ +*.swp +*.swo + +# Git +.git +.gitignore + +# Misc +.DS_Store + +# CodeArtifact configuration +.codeartifact-pip-conf \ No newline at end of file diff --git a/examples/tutorials/10_agentic/10_temporal/000_hello_acp/Dockerfile b/examples/tutorials/10_agentic/10_temporal/000_hello_acp/Dockerfile new file mode 100644 index 000000000..2ea8841a2 --- /dev/null +++ b/examples/tutorials/10_agentic/10_temporal/000_hello_acp/Dockerfile @@ -0,0 +1,51 @@ +# syntax=docker/dockerfile:1.3 +FROM python:3.12-slim +COPY --from=ghcr.io/astral-sh/uv:0.6.4 /uv /uvx /bin/ + +# Install system dependencies +RUN apt-get update && apt-get install -y \ + htop \ + vim \ + curl \ + tar \ + python3-dev \ + postgresql-client \ + build-essential \ + libpq-dev \ + gcc \ + cmake \ + netcat-openbsd \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* + +# Install tctl (Temporal CLI) +RUN curl -L https://github.com/temporalio/tctl/releases/download/v1.18.1/tctl_1.18.1_linux_arm64.tar.gz -o /tmp/tctl.tar.gz && \ + tar -xzf /tmp/tctl.tar.gz -C /usr/local/bin && \ + chmod +x /usr/local/bin/tctl && \ + rm /tmp/tctl.tar.gz + +RUN uv pip install --system --upgrade pip setuptools wheel + +ENV UV_HTTP_TIMEOUT=1000 + +# Copy just the requirements file to optimize caching +COPY 000_hello_acp/requirements.txt /app/requirements.txt + +WORKDIR /app/ + +# Install the required Python packages +RUN --mount=type=secret,id=codeartifact-pip-conf,target=/etc/pip.conf \ + export UV_INDEX_URL=$(grep -E "^index-url" /etc/pip.conf | cut -d'=' -f2- | xargs) && \ + export UV_EXTRA_INDEX_URL=$(grep -E "^extra-index-url" /etc/pip.conf | cut -d'=' -f2- | xargs || echo "") && \ + uv pip install --system -r requirements.txt + +# Copy the project code +COPY 000_hello_acp/project /app/project + +WORKDIR /app/project + +# Run the ACP server using uvicorn +CMD ["uvicorn", "acp:acp", "--host", "0.0.0.0", "--port", "8000"] + +# When we deploy the worker, we will replace the CMD with the following +# CMD ["python", "-m", "run_worker"] \ No newline at end of file diff --git a/examples/tutorials/10_agentic/10_temporal/000_hello_acp/README.md b/examples/tutorials/10_agentic/10_temporal/000_hello_acp/README.md new file mode 100644 index 000000000..4d6fa5f92 --- /dev/null +++ b/examples/tutorials/10_agentic/10_temporal/000_hello_acp/README.md @@ -0,0 +1,134 @@ +# at000-hello-acp - AgentEx Temporal Agent Template + +This is a starter template for building asynchronous agents with the AgentEx framework and Temporal. It provides a basic implementation of the Agent 2 Client Protocol (ACP) with Temporal workflow support to help you get started quickly. + +## What You'll Learn + +- **Tasks**: A task is a grouping mechanism for related messages. Think of it as a conversation thread or a session. +- **Messages**: Messages are communication objects within a task. They can contain text, data, or instructions. +- **ACP Events**: The agent responds to four main events: + - `task_received`: When a new task is created + - `task_message_received`: When a message is sent within a task + - `task_approved`: When a task is approved + - `task_canceled`: When a task is canceled +- **Temporal Workflows**: Long-running processes that can handle complex state management and async operations + + +## Running the Agent + +1. Run the agent locally: +```bash +agentex agents run --manifest manifest.yaml +``` + +The agent will start on port 8000 and print messages whenever it receives any of the ACP events. + +## What's Inside + +This template: +- Sets up a basic ACP server with Temporal integration +- Handles each of the required ACP events +- Provides a foundation for building complex async agents +- Includes Temporal workflow and activity definitions + +## Next Steps + +For more advanced agent development, check out the AgentEx tutorials: + +- **Tutorials 00-08**: Learn about building synchronous agents with ACP +- **Tutorials 09-10**: Learn how to use Temporal to power asynchronous agents + - Tutorial 09: Basic Temporal workflow setup + - Tutorial 10: Advanced Temporal patterns and best practices + +These tutorials will help you understand: +- How to handle long-running tasks +- Implementing state machines +- Managing complex workflows +- Best practices for async agent development + +## The Manifest File + +The `manifest.yaml` file is your agent's configuration file. It defines: +- How your agent should be built and packaged +- What files are included in your agent's Docker image +- Your agent's name and description +- Local development settings (like the port your agent runs on) +- Temporal worker configuration + +This file is essential for both local development and deployment of your agent. + +## Project Structure + +``` +000_hello_acp/ +├── project/ # Your agent's code +│ ├── __init__.py +│ ├── acp.py # ACP server and event handlers +│ ├── workflow.py # Temporal workflow definitions +│ ├── activities.py # Temporal activity definitions +│ └── run_worker.py # Temporal worker setup +├── Dockerfile # Container definition +├── manifest.yaml # Deployment config +└── requirements.txt # Dependencies +``` + +## Development + +1. **Customize Event Handlers** + - Modify the handlers in `acp.py` to implement your agent's logic + - Add your own tools and capabilities + - Implement custom state management + +2. **Add Dependencies** + - Add required packages to `requirements.txt` + - Update the manifest with any needed credentials + +## Local Development + +1. **Install AgentEx** +```bash +cd agentex-py +uv venv +source .venv/bin/activate +uv sync +``` + +2. **Deploy your agent** +```bash +# From this directory +export ENVIRONMENT=development && agentex agents create --manifest manifest.yaml +``` + +4. **Interact with your agent** + +Option 0: CLI (deprecated - to be replaced once a new CLI is implemented - please use the web UI for now!) +```bash +# Submit a task via CLI +agentex tasks submit --agent {{ agent_name }} --task "Your task here" +``` + +Option 1: Web UI +```bash +# Start the local web interface +cd agentex-web +make dev + +# Then open http://localhost:3000 in your browser to chat with your agent +``` + +## Development Tips + +1. **Local Testing** +- Set environment variables in project/.env for any required credentials. OR you can set these in the manifest.yaml + +### To build the agent Docker image locally (normally not necessary): + +1. First, set up CodeArtifact authentication: +```bash +../../setup-build-codeartifact.sh +``` + +2. Build the agent image: +```bash +agentex agents build --manifest manifest.yaml --secret 'id=codeartifact-pip-conf,src=.codeartifact-pip-conf' +``` \ No newline at end of file diff --git a/examples/tutorials/10_agentic/10_temporal/000_hello_acp/manifest.yaml b/examples/tutorials/10_agentic/10_temporal/000_hello_acp/manifest.yaml new file mode 100644 index 000000000..b0da05331 --- /dev/null +++ b/examples/tutorials/10_agentic/10_temporal/000_hello_acp/manifest.yaml @@ -0,0 +1,139 @@ +# Agent Manifest Configuration +# --------------------------- +# This file defines how your agent should be built and deployed. + +# Build Configuration +# ------------------ +# The build config defines what gets packaged into your agent's Docker image. +# This same configuration is used whether building locally or remotely. +# +# When building: +# 1. All files from include_paths are collected into a build context +# 2. The context is filtered by dockerignore rules +# 3. The Dockerfile uses this context to build your agent's image +# 4. The image is pushed to a registry and used to run your agent +build: + context: + # Root directory for the build context + root: ../ # Keep this as the default root + + # Paths to include in the Docker build context + # Must include: + # - agentex-py: The core framework (needed for agent execution) + # - Your agent's directory (your custom agent code) + # These paths are collected and sent to the Docker daemon for building + include_paths: + - 000_hello_acp + + # Path to your agent's Dockerfile + # This defines how your agent's image is built from the context + # Relative to the root directory + dockerfile: 000_hello_acp/Dockerfile + + # Path to your agent's .dockerignore + # Filters unnecessary files from the build context + # Helps keep build context small and builds fast + dockerignore: 000_hello_acp/.dockerignore + + +# Local Development Configuration +# ----------------------------- +# Only used when running the agent locally +local_development: + agent: + port: 8000 # Port where your local ACP server is running + host_address: host.docker.internal # Host address for Docker networking (host.docker.internal for Docker, localhost for direct) + + # File paths for local development (relative to this manifest.yaml) + paths: + # Path to ACP server file + # Examples: + # project/acp.py (standard) + # src/server.py (custom structure) + # ../shared/acp.py (shared across projects) + # /absolute/path/acp.py (absolute path) + acp: project/acp.py + + # Path to temporal worker file + # Examples: + # project/run_worker.py (standard) + # workers/temporal.py (custom structure) + # ../shared/worker.py (shared across projects) + worker: project/run_worker.py + + +# Agent Configuration +# ----------------- +agent: + # Type of agent - either sync or agentic + acp_type: agentic + + # Unique name for your agent + # Used for task routing and monitoring + name: at000-hello-acp + + # Description of what your agent does + # Helps with documentation and discovery + description: An AgentEx agent that shows how ACP works with Temporal + + # Temporal workflow configuration + # This enables your agent to run as a Temporal workflow for long-running tasks + temporal: + enabled: true + workflows: + # Name of the workflow class + # Must match the @workflow.defn name in your workflow.py + - name: at000-hello-acp + + # Queue name for task distribution + # Used by Temporal to route tasks to your agent + # Convention: _task_queue + queue_name: 000_hello_acp_queue + + # Optional: Credentials mapping + # Maps Kubernetes secrets to environment variables + # Common credentials include: + # credentials: + # - env_var_name: OPENAI_API_KEY + # secret_name: openai-api-key + # secret_key: api-key + + # Optional: Set Environment variables for running your agent locally as well + # as for deployment later on + # env: + # - name: OPENAI_BASE_URL + # value: "https://api.openai.com/v1" + # - name: ACCOUNT_ID + # value: "your_account_id_here" + + +# Deployment Configuration +# ----------------------- +# Configuration for deploying your agent to Kubernetes clusters +deployment: + # Container image configuration + image: + repository: "" # Update with your container registry + tag: "latest" # Default tag, should be versioned in production + + imagePullSecrets: + - name: my-registry-secret # Update with your image pull secret name + + # Global deployment settings that apply to all clusters + # These can be overridden using --override-file with custom configuration files + global: + agent: + name: "at000-hello-acp" + description: "An AgentEx agent that shows how ACP works with Temporal" + + # Default replica count + replicaCount: 1 + + # Default resource requirements + resources: + requests: + cpu: "500m" + memory: "1Gi" + limits: + cpu: "1000m" + memory: "2Gi" \ No newline at end of file diff --git a/examples/tutorials/10_agentic/10_temporal/000_hello_acp/project/__init__.py b/examples/tutorials/10_agentic/10_temporal/000_hello_acp/project/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/examples/tutorials/10_agentic/10_temporal/000_hello_acp/project/acp.py b/examples/tutorials/10_agentic/10_temporal/000_hello_acp/project/acp.py new file mode 100644 index 000000000..d3b8e52d6 --- /dev/null +++ b/examples/tutorials/10_agentic/10_temporal/000_hello_acp/project/acp.py @@ -0,0 +1,31 @@ +import os + +from agentex.lib.sdk.fastacp.fastacp import FastACP +from agentex.lib.types.fastacp import TemporalACPConfig + + +# Create the ACP server +acp = FastACP.create( + acp_type="agentic", + config=TemporalACPConfig( + # When deployed to the cluster, the Temporal address will automatically be set to the cluster address + # For local development, we set the address manually to talk to the local Temporal service set up via docker compose + type="temporal", + temporal_address=os.getenv("TEMPORAL_ADDRESS", "localhost:7233") + ) +) + + +# Notice that we don't need to register any handlers when we use type="temporal" +# If you look at the code in agentex.sdk.fastacp.impl.temporal_acp +# You can see that these handlers are automatically registered when the ACP is created + +# @acp.on_task_create +# This will be handled by the method in your workflow that is decorated with @workflow.run + +# @acp.on_task_event_send +# This will be handled by the method in your workflow that is decorated with @workflow.signal(name=SignalName.RECEIVE_MESSAGE) + +# @acp.on_task_cancel +# This does not need to be handled by your workflow. +# It is automatically handled by the temporal client which cancels the workflow directly \ No newline at end of file diff --git a/examples/tutorials/10_agentic/10_temporal/000_hello_acp/project/run_worker.py b/examples/tutorials/10_agentic/10_temporal/000_hello_acp/project/run_worker.py new file mode 100644 index 000000000..ff50fdfe3 --- /dev/null +++ b/examples/tutorials/10_agentic/10_temporal/000_hello_acp/project/run_worker.py @@ -0,0 +1,33 @@ +import asyncio +import os + +from agentex.lib.core.temporal.activities import get_all_activities +from agentex.lib.core.temporal.workers.worker import AgentexWorker +from agentex.lib.utils.logging import make_logger +from agentex.lib.environment_variables import EnvironmentVariables + +from workflow import At000HelloAcpWorkflow + + +environment_variables = EnvironmentVariables.refresh() + +logger = make_logger(__name__) + + +async def main(): + task_queue_name = environment_variables.WORKFLOW_TASK_QUEUE + if task_queue_name is None: + raise ValueError("WORKFLOW_TASK_QUEUE is not set") + + # Create a worker with automatic tracing + worker = AgentexWorker( + task_queue=task_queue_name, + ) + + await worker.run( + activities=get_all_activities(), + workflow=At000HelloAcpWorkflow, + ) + +if __name__ == "__main__": + asyncio.run(main()) \ No newline at end of file diff --git a/examples/tutorials/10_agentic/10_temporal/000_hello_acp/project/workflow.py b/examples/tutorials/10_agentic/10_temporal/000_hello_acp/project/workflow.py new file mode 100644 index 000000000..556a0afb7 --- /dev/null +++ b/examples/tutorials/10_agentic/10_temporal/000_hello_acp/project/workflow.py @@ -0,0 +1,71 @@ +import json +from typing import override + +from temporalio import workflow + +from agentex.lib import adk +from agentex.lib.types.acp import CreateTaskParams, SendEventParams +from agentex.lib.core.temporal.workflows.workflow import BaseWorkflow +from agentex.lib.core.temporal.types.workflow import SignalName +from agentex.lib.utils.logging import make_logger +from agentex.types.text_content import TextContent +from agentex.lib.environment_variables import EnvironmentVariables + +environment_variables = EnvironmentVariables.refresh() + +if environment_variables.WORKFLOW_NAME is None: + raise ValueError("Environment variable WORKFLOW_NAME is not set") + +if environment_variables.AGENT_NAME is None: + raise ValueError("Environment variable AGENT_NAME is not set") + +logger = make_logger(__name__) + +@workflow.defn(name=environment_variables.WORKFLOW_NAME) +class At000HelloAcpWorkflow(BaseWorkflow): + """ + Minimal async workflow template for AgentEx Temporal agents. + """ + def __init__(self): + super().__init__(display_name=environment_variables.AGENT_NAME) + self._complete_task = False + + @workflow.signal(name=SignalName.RECEIVE_EVENT) + @override + async def on_task_event_send(self, params: SendEventParams) -> None: + logger.info(f"Received task message instruction: {params}") + + # 2. Echo back the client's message to show it in the UI. This is not done by default so the agent developer has full control over what is shown to the user. + await adk.messages.create(task_id=params.task.id, content=params.event.content) + + # 3. Send a simple response message. + # In future tutorials, this is where we'll add more sophisticated response logic. + await adk.messages.create( + task_id=params.task.id, + content=TextContent( + author="agent", + content=f"Hello! I've received your message. I can't respond right now, but in future tutorials we'll see how you can get me to intelligently respond to your message.", + ), + ) + + @workflow.run + @override + async def on_task_create(self, params: CreateTaskParams) -> None: + logger.info(f"Received task create params: {params}") + + # 1. Acknowledge that the task has been created. + await adk.messages.create( + task_id=params.task.id, + content=TextContent( + author="agent", + content=f"Hello! I've received your task. Normally you can do some state initialization here, or just pass and do nothing until you get your first event. For now I'm just acknowledging that I've received a task with the following params:\n\n{json.dumps(params.params, indent=2)}.\n\nYou should only see this message once, when the task is created. All subsequent events will be handled by the `on_task_event_send` handler.", + ), + ) + + # 2. Wait for the task to be completed indefinitely. If we don't do this the workflow will close as soon as this function returns. Temporal can run hundreds of millions of workflows in parallel, so you don't need to worry about too many workflows running at once. + + # Thus, if you want this agent to field events indefinitely (or for a long time) you need to wait for a condition to be met. + await workflow.wait_condition( + lambda: self._complete_task, + timeout=None, # Set a timeout if you want to prevent the task from running indefinitely. Generally this is not needed. Temporal can run hundreds of millions of workflows in parallel and more. Only do this if you have a specific reason to do so. + ) diff --git a/examples/tutorials/10_agentic/10_temporal/000_hello_acp/requirements.txt b/examples/tutorials/10_agentic/10_temporal/000_hello_acp/requirements.txt new file mode 100644 index 000000000..d12ad3951 --- /dev/null +++ b/examples/tutorials/10_agentic/10_temporal/000_hello_acp/requirements.txt @@ -0,0 +1,4 @@ +agentex-py>=0.0.4,<0.1.0 + +# Scale GenAI Platform Python SDK +scale-gp \ No newline at end of file diff --git a/examples/tutorials/10_agentic/10_temporal/010_agent_chat/.codeartifact-pip-conf b/examples/tutorials/10_agentic/10_temporal/010_agent_chat/.codeartifact-pip-conf new file mode 100644 index 000000000..0f1920f12 --- /dev/null +++ b/examples/tutorials/10_agentic/10_temporal/010_agent_chat/.codeartifact-pip-conf @@ -0,0 +1,4 @@ +[global] +index-url = https://aws:eyJ2ZXIiOjEsImlzdSI6MTc1MTQ4ODczNSwiZW5jIjoiQTEyOEdDTSIsInRhZyI6ImJlcGJ0ZHJuTzZSSG1RWFJHQVRrcFEiLCJleHAiOjE3NTE1MzE5MzUsImFsZyI6IkExMjhHQ01LVyIsIml2IjoiRDlZQU9HM3B5SF82SWFSVSJ9.0uhUrdIA0PX-QOIvCrJcgA._PNXb16DHlDBTHAH.AwHpQ-1Fi0VF3Tr_v4nayYbWDnVr5YrusiTanpvVHbL1IjsjRJDFLWNrB7WqU1hBomFHvNJT9Sz4WY6NqoYAZDbhtbP0WJTb3rIr26tvfQQEVRPmx89wXX58rNs53O_f8Aiar0E4r0VbFwbMq6LCUodqJsfV7IlhaeOLvjIJObKonvFNOKMpsENmgjnXcfLVFXGHOkS3HTRbrGU-v1hiMnR0-AvNHyU7anuqqMJoYVDHOC1h66Tt8kQRgSYpVTmPTjGeR2_aPYoVcHAP0LXr0DFDP61lodmQCwAWaAQTxyjiBXFo9XHRwEWILFOiiqknSBSaJkjv-O-23mzStnbK8aqLHpJKO4wDOHN7EKj0_cHoNMPEs3vRxPn2_4pSYV_pB2Zw-3iHewID-mHMGe8oMR-ItsivXDJL8TH4tMMW7O7oSLr1BSPl0oCA3dWPOp3zbbXBE4JmITm7vSONScwZV7RsdX_ouvt07ioCYLE145apEH6AKTxPTfqjbyZDFiIsZGW0WBEzCvD26bhq1eunxPygS8Sk4x-elwx6-gMfWO3nzCBgA5qsGoSAeBCewp2vM0YH02Df-rMfgI5yI0TlxkwDSU_N-VfUOvqbg_4mdSyYYEyI5MHi_o4M9KtFiE6iRxBzvmvfzBef6FH-NwHsIsrd5XJZCkWQLzfotIHrbli-jUO_uRlxjHylD4uIYl5VG0kex6YKHinnj4ma_GT5mqtMTNveI-KpnXnjoCLTBMtWSwUAMXbbncLpTxOOVmYIZV0FHUVHPsNT_dr4H9NAhrxH4furq3oEEElPn8VOQBxgSW99phpSjJxnYJ8-k4ergWm_YeF1hErL9pminCM7FEh_Voy_-i4AxssA-cpQngZmRSRLzKtRF7NJng3zi1LyLZ5bSzUBlpLYoTgerA5883XzrKLHe_h7_x5UUgxAkDf7PoJ6m5XkV5ZxLSQpnjRqloDUtnFVihp-Svnt1zo1eStQ_i89ROrdGYSTTOackpuJmFy-rPDqbUOVz91EbCSIVfa7qur_pW7LB4l86bHVv56glIb4vkz_SvQnQh7xYxgGiook2x3FOW-HNlkOU62iBVOIGJ72BU1l2_TWwKgwzVFkVFu6_wloehrN-5F9IDrRswpFpFbbzHfMtwsCSfPYky92HjrgJvEKXg1rVfWBskJj8XYbdu4tVhTxSI0yKv0HNf6qnpzWqVt8jrt53L3_StirawxaxdnecsAgXtDqCRUGiIK07V0AhJQwpxcq1Af-nOAPt8Dc7G_ci-VIC8-yvDihtkPfRkGlYAuQKYXEgWXBf520X5LNpWFAeIMSSeh_u9_MxKRreS-Kxt22f67SbMCMBTy77kuvcz_dZPNqXoemG2wIULTwwNpiLCCpMmsQpJSjgxnacSvLjDKEvxonS79e7tuR4jyzaF5Td3KkGAB9Xfl_n_ovjcJ_BoY.yVwgn71YPTHXeijq-X00wQ@scale-307185671274.d.codeartifact.us-west-2.amazonaws.com/pypi/scale-pypi/simple/ +extra-index-url = https://pypi.python.org/simple + diff --git a/examples/tutorials/10_agentic/10_temporal/010_agent_chat/.dockerignore b/examples/tutorials/10_agentic/10_temporal/010_agent_chat/.dockerignore new file mode 100644 index 000000000..4521d8465 --- /dev/null +++ b/examples/tutorials/10_agentic/10_temporal/010_agent_chat/.dockerignore @@ -0,0 +1,46 @@ +# Python +__pycache__/ +*.py[cod] +*$py.class +*.so +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +*.egg-info/ +.installed.cfg +*.egg + +# Environments +.env** +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# IDE +.idea/ +.vscode/ +*.swp +*.swo + +# Git +.git +.gitignore + +# Misc +.DS_Store + +# CodeArtifact configuration +.codeartifact-pip-conf \ No newline at end of file diff --git a/examples/tutorials/10_agentic/10_temporal/010_agent_chat/Dockerfile b/examples/tutorials/10_agentic/10_temporal/010_agent_chat/Dockerfile new file mode 100644 index 000000000..44b253f27 --- /dev/null +++ b/examples/tutorials/10_agentic/10_temporal/010_agent_chat/Dockerfile @@ -0,0 +1,51 @@ +# syntax=docker/dockerfile:1.3 +FROM python:3.12-slim +COPY --from=ghcr.io/astral-sh/uv:0.6.4 /uv /uvx /bin/ + +# Install system dependencies +RUN apt-get update && apt-get install -y \ + htop \ + vim \ + curl \ + tar \ + python3-dev \ + postgresql-client \ + build-essential \ + libpq-dev \ + gcc \ + cmake \ + netcat-openbsd \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* + +# Install tctl (Temporal CLI) +RUN curl -L https://github.com/temporalio/tctl/releases/download/v1.18.1/tctl_1.18.1_linux_arm64.tar.gz -o /tmp/tctl.tar.gz && \ + tar -xzf /tmp/tctl.tar.gz -C /usr/local/bin && \ + chmod +x /usr/local/bin/tctl && \ + rm /tmp/tctl.tar.gz + +RUN uv pip install --system --upgrade pip setuptools wheel + +ENV UV_HTTP_TIMEOUT=1000 + +# Copy just the requirements file to optimize caching +COPY 010_agent_chat/requirements.txt /app/requirements.txt + +WORKDIR /app/ + +# Install the required Python packages +RUN --mount=type=secret,id=codeartifact-pip-conf,target=/etc/pip.conf \ + export UV_INDEX_URL=$(grep -E "^index-url" /etc/pip.conf | cut -d'=' -f2- | xargs) && \ + export UV_EXTRA_INDEX_URL=$(grep -E "^extra-index-url" /etc/pip.conf | cut -d'=' -f2- | xargs || echo "") && \ + uv pip install --system -r requirements.txt + +# Copy the project code +COPY 010_agent_chat/project /app/project + +WORKDIR /app/project + +# Run the ACP server using uvicorn +CMD ["uvicorn", "acp:acp", "--host", "0.0.0.0", "--port", "8000"] + +# When we deploy the worker, we will replace the CMD with the following +# CMD ["python", "-m", "run_worker"] \ No newline at end of file diff --git a/examples/tutorials/10_agentic/10_temporal/010_agent_chat/README.md b/examples/tutorials/10_agentic/10_temporal/010_agent_chat/README.md new file mode 100644 index 000000000..163da7bce --- /dev/null +++ b/examples/tutorials/10_agentic/10_temporal/010_agent_chat/README.md @@ -0,0 +1,132 @@ +# at010-agent-chat - AgentEx Temporal Agent Template + +This is a starter template for building asynchronous agents with the AgentEx framework and Temporal. It provides a basic implementation of the Agent 2 Client Protocol (ACP) with Temporal workflow support to help you get started quickly. + +## What You'll Learn + +- **Tasks**: A task is a grouping mechanism for related messages. Think of it as a conversation thread or a session. +- **Messages**: Messages are communication objects within a task. They can contain text, data, or instructions. +- **ACP Events**: The agent responds to four main events: + - `task_received`: When a new task is created + - `task_message_received`: When a message is sent within a task + - `task_canceled`: When a task is canceled +- **Temporal Workflows**: Long-running processes that can handle complex state management and async operations + +## Running the Agent + +1. Run the agent locally: +```bash +agentex agents run --manifest manifest.yaml +``` + +The agent will start on port 8000 and print messages whenever it receives any of the ACP events. + +## What's Inside + +This template: +- Sets up a basic ACP server with Temporal integration +- Handles each of the required ACP events +- Provides a foundation for building complex async agents +- Includes Temporal workflow and activity definitions + +## Next Steps + +For more advanced agent development, check out the AgentEx tutorials: + +- **Tutorials 00-08**: Learn about building synchronous agents with ACP +- **Tutorials 09-10**: Learn how to use Temporal to power asynchronous agents + - Tutorial 09: Basic Temporal workflow setup + - Tutorial 10: Advanced Temporal patterns and best practices + +These tutorials will help you understand: +- How to handle long-running tasks +- Implementing state machines +- Managing complex workflows +- Best practices for async agent development + +## The Manifest File + +The `manifest.yaml` file is your agent's configuration file. It defines: +- How your agent should be built and packaged +- What files are included in your agent's Docker image +- Your agent's name and description +- Local development settings (like the port your agent runs on) +- Temporal worker configuration + +This file is essential for both local development and deployment of your agent. + +## Project Structure + +``` +010_agent_chat/ +├── project/ # Your agent's code +│ ├── __init__.py +│ ├── acp.py # ACP server and event handlers +│ ├── workflow.py # Temporal workflow definitions +│ ├── activities.py # Temporal activity definitions +│ └── run_worker.py # Temporal worker setup +├── Dockerfile # Container definition +├── manifest.yaml # Deployment config +└── requirements.txt # Dependencies +``` + +## Development + +1. **Customize Event Handlers** + - Modify the handlers in `acp.py` to implement your agent's logic + - Add your own tools and capabilities + - Implement custom state management + +2. **Add Dependencies** + - Add required packages to `requirements.txt` + - Update the manifest with any needed credentials + +## Local Development + +1. **Install AgentEx** +```bash +cd agentex-py +uv venv +source .venv/bin/activate +uv sync +``` + +2. **Deploy your agent** +```bash +# From this directory +export ENVIRONMENT=development && agentex agents create --manifest manifest.yaml +``` + +4. **Interact with your agent** + +Option 0: CLI (deprecated - to be replaced once a new CLI is implemented - please use the web UI for now!) +```bash +# Submit a task via CLI +agentex tasks submit --agent {{ agent_name }} --task "Your task here" +``` + +Option 1: Web UI +```bash +# Start the local web interface +cd agentex-web +make dev + +# Then open http://localhost:3000 in your browser to chat with your agent +``` + +## Development Tips + +1. **Local Testing** +- Set environment variables in project/.env for any required credentials. OR you can set these in the manifest.yaml + +### To build the agent Docker image locally (normally not necessary): + +1. First, set up CodeArtifact authentication: +```bash +../../setup-build-codeartifact.sh +``` + +2. Build the agent image: +```bash +agentex agents build --manifest manifest.yaml --secret 'id=codeartifact-pip-conf,src=.codeartifact-pip-conf' +``` \ No newline at end of file diff --git a/examples/tutorials/10_agentic/10_temporal/010_agent_chat/manifest.yaml b/examples/tutorials/10_agentic/10_temporal/010_agent_chat/manifest.yaml new file mode 100644 index 000000000..2e43c9828 --- /dev/null +++ b/examples/tutorials/10_agentic/10_temporal/010_agent_chat/manifest.yaml @@ -0,0 +1,139 @@ +# Agent Manifest Configuration +# --------------------------- +# This file defines how your agent should be built and deployed. + +# Build Configuration +# ------------------ +# The build config defines what gets packaged into your agent's Docker image. +# This same configuration is used whether building locally or remotely. +# +# When building: +# 1. All files from include_paths are collected into a build context +# 2. The context is filtered by dockerignore rules +# 3. The Dockerfile uses this context to build your agent's image +# 4. The image is pushed to a registry and used to run your agent +build: + context: + # Root directory for the build context + root: ../ # Keep this as the default root + + # Paths to include in the Docker build context + # Must include: + # - agentex-py: The core framework (needed for agent execution) + # - Your agent's directory (your custom agent code) + # These paths are collected and sent to the Docker daemon for building + include_paths: + - 010_agent_chat + + # Path to your agent's Dockerfile + # This defines how your agent's image is built from the context + # Relative to the root directory + dockerfile: 010_agent_chat/Dockerfile + + # Path to your agent's .dockerignore + # Filters unnecessary files from the build context + # Helps keep build context small and builds fast + dockerignore: 010_agent_chat/.dockerignore + + +# Local Development Configuration +# ----------------------------- +# Only used when running the agent locally +local_development: + agent: + port: 8000 # Port where your local ACP server is running + host_address: host.docker.internal # Host address for Docker networking (host.docker.internal for Docker, localhost for direct) + + # File paths for local development (relative to this manifest.yaml) + paths: + # Path to ACP server file + # Examples: + # project/acp.py (standard) + # src/server.py (custom structure) + # ../shared/acp.py (shared across projects) + # /absolute/path/acp.py (absolute path) + acp: project/acp.py + + # Path to temporal worker file + # Examples: + # project/run_worker.py (standard) + # workers/temporal.py (custom structure) + # ../shared/worker.py (shared across projects) + worker: project/run_worker.py + + +# Agent Configuration +# ----------------- +agent: + # Type of agent - either sync or agentic + acp_type: agentic + + # Unique name for your agent + # Used for task routing and monitoring + name: at010-agent-chat + + # Description of what your agent does + # Helps with documentation and discovery + description: An AgentEx agentthat streams multiturn tool-enabled chat with tracing + + # Temporal workflow configuration + # This enables your agent to run as a Temporal workflow for long-running tasks + temporal: + enabled: true + workflows: + # Name of the workflow class + # Must match the @workflow.defn name in your workflow.py + - name: at010-agent-chat + + # Queue name for task distribution + # Used by Temporal to route tasks to your agent + # Convention: _task_queue + queue_name: 010_agent_chat_queue + + # Optional: Credentials mapping + # Maps Kubernetes secrets to environment variables + # Common credentials include: + # credentials: + # - env_var_name: OPENAI_API_KEY + # secret_name: openai-api-key + # secret_key: api-key + + # Optional: Set Environment variables for running your agent locally as well + # as for deployment later on + # env: + # - name: OPENAI_BASE_URL + # value: "https://api.openai.com/v1" + # - name: ACCOUNT_ID + # value: "your_account_id_here" + + +# Deployment Configuration +# ----------------------- +# Configuration for deploying your agent to Kubernetes clusters +deployment: + # Container image configuration + image: + repository: "" # Update with your container registry + tag: "latest" # Default tag, should be versioned in production + + imagePullSecrets: + - name: my-registry-secret # Update with your image pull secret name + + # Global deployment settings that apply to all clusters + # These can be overridden using --override-file with custom configuration files + global: + agent: + name: "at010-agent-chat" + description: "An AgentEx agentthat streams multiturn tool-enabled chat with tracing" + + # Default replica count + replicaCount: 1 + + # Default resource requirements + resources: + requests: + cpu: "500m" + memory: "1Gi" + limits: + cpu: "1000m" + memory: "2Gi" \ No newline at end of file diff --git a/examples/tutorials/10_agentic/10_temporal/010_agent_chat/project/__init__.py b/examples/tutorials/10_agentic/10_temporal/010_agent_chat/project/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/examples/tutorials/10_agentic/10_temporal/010_agent_chat/project/acp.py b/examples/tutorials/10_agentic/10_temporal/010_agent_chat/project/acp.py new file mode 100644 index 000000000..d3b8e52d6 --- /dev/null +++ b/examples/tutorials/10_agentic/10_temporal/010_agent_chat/project/acp.py @@ -0,0 +1,31 @@ +import os + +from agentex.lib.sdk.fastacp.fastacp import FastACP +from agentex.lib.types.fastacp import TemporalACPConfig + + +# Create the ACP server +acp = FastACP.create( + acp_type="agentic", + config=TemporalACPConfig( + # When deployed to the cluster, the Temporal address will automatically be set to the cluster address + # For local development, we set the address manually to talk to the local Temporal service set up via docker compose + type="temporal", + temporal_address=os.getenv("TEMPORAL_ADDRESS", "localhost:7233") + ) +) + + +# Notice that we don't need to register any handlers when we use type="temporal" +# If you look at the code in agentex.sdk.fastacp.impl.temporal_acp +# You can see that these handlers are automatically registered when the ACP is created + +# @acp.on_task_create +# This will be handled by the method in your workflow that is decorated with @workflow.run + +# @acp.on_task_event_send +# This will be handled by the method in your workflow that is decorated with @workflow.signal(name=SignalName.RECEIVE_MESSAGE) + +# @acp.on_task_cancel +# This does not need to be handled by your workflow. +# It is automatically handled by the temporal client which cancels the workflow directly \ No newline at end of file diff --git a/examples/tutorials/10_agentic/10_temporal/010_agent_chat/project/run_worker.py b/examples/tutorials/10_agentic/10_temporal/010_agent_chat/project/run_worker.py new file mode 100644 index 000000000..b8916bc40 --- /dev/null +++ b/examples/tutorials/10_agentic/10_temporal/010_agent_chat/project/run_worker.py @@ -0,0 +1,32 @@ +import asyncio + +from agentex.lib.core.temporal.activities import get_all_activities +from agentex.lib.core.temporal.workers.worker import AgentexWorker +from agentex.lib.utils.logging import make_logger +from agentex.lib.environment_variables import EnvironmentVariables + +from workflow import At010AgentChatWorkflow + + +environment_variables = EnvironmentVariables.refresh() + +logger = make_logger(__name__) + + +async def main(): + task_queue_name = environment_variables.WORKFLOW_TASK_QUEUE + if task_queue_name is None: + raise ValueError("WORKFLOW_TASK_QUEUE is not set") + + # Create a worker with automatic tracing + worker = AgentexWorker( + task_queue=task_queue_name, + ) + + await worker.run( + activities=get_all_activities(), + workflow=At010AgentChatWorkflow, + ) + +if __name__ == "__main__": + asyncio.run(main()) \ No newline at end of file diff --git a/examples/tutorials/10_agentic/10_temporal/010_agent_chat/project/workflow.py b/examples/tutorials/10_agentic/10_temporal/010_agent_chat/project/workflow.py new file mode 100644 index 000000000..fc172438a --- /dev/null +++ b/examples/tutorials/10_agentic/10_temporal/010_agent_chat/project/workflow.py @@ -0,0 +1,147 @@ +import os +from typing import Dict, List, override +from dotenv import load_dotenv + +from dotenv import load_dotenv +from agentex.lib.utils.model_utils import BaseModel +from mcp import StdioServerParameters +from temporalio import workflow + +from agentex.lib import adk +from agentex.lib.types.acp import CreateTaskParams, SendEventParams +from agentex.lib.core.temporal.workflows.workflow import BaseWorkflow +from agentex.lib.core.temporal.types.workflow import SignalName +from agentex.lib.utils.logging import make_logger +from agentex.lib.core.tracing.tracing_processor_manager import add_tracing_processor_config +from agentex.lib.types.tracing import SGPTracingProcessorConfig +from agentex.lib.environment_variables import EnvironmentVariables +from agentex.types.text_content import TextContent + +environment_variables = EnvironmentVariables.refresh() +load_dotenv(dotenv_path=".env") + +add_tracing_processor_config(SGPTracingProcessorConfig( + sgp_api_key=os.environ.get("SCALE_GP_API_KEY", ""), + sgp_account_id=os.environ.get("SCALE_GP_ACCOUNT_ID", ""), +)) + +if environment_variables.WORKFLOW_NAME is None: + raise ValueError("Environment variable WORKFLOW_NAME is not set") + +if environment_variables.AGENT_NAME is None: + raise ValueError("Environment variable AGENT_NAME is not set") + +logger = make_logger(__name__) + + +class StateModel(BaseModel): + input_list: List[Dict] + turn_number: int + + +MCP_SERVERS = [ + StdioServerParameters( + command="npx", + args=["-y", "@modelcontextprotocol/server-sequential-thinking"], + ), + StdioServerParameters( + command="uvx", + args=["openai-websearch-mcp"], + env={ + "OPENAI_API_KEY": os.environ.get("OPENAI_API_KEY", "") + } + ), +] + +@workflow.defn(name=environment_variables.WORKFLOW_NAME) +class At010AgentChatWorkflow(BaseWorkflow): + """ + Minimal async workflow template for AgentEx Temporal agents. + """ + def __init__(self): + super().__init__(display_name=environment_variables.AGENT_NAME) + self._complete_task = False + self._state = None + + @workflow.signal(name=SignalName.RECEIVE_EVENT) + @override + async def on_task_event_send(self, params: SendEventParams) -> None: + logger.info(f"Received task message instruction: {params}") + + if not params.event.content: + return + + if params.event.content.type != "text": + raise ValueError(f"Expected text message, got {params.event.content.type}") + + if params.event.content.author != "user": + raise ValueError(f"Expected user message, got {params.event.content.author}") + + # Increment the turn number + self._state.turn_number += 1 + # Add the new user message to the message history + self._state.input_list.append({"role": "user", "content": params.event.content.content}) + + async with adk.tracing.span( + trace_id=params.task.id, + name=f"Turn {self._state.turn_number}", + input=self._state + ) as span: + # Echo back the user's message so it shows up in the UI. This is not done by default so the agent developer has full control over what is shown to the user. + await adk.messages.create( + task_id=params.task.id, + trace_id=params.task.id, + content=params.event.content, + parent_span_id=span.id if span else None, + ) + + if not os.environ.get("OPENAI_API_KEY"): + await adk.messages.create( + task_id=params.task.id, + trace_id=params.task.id, + content=TextContent( + author="agent", + content="Hey, sorry I'm unable to respond to your message because you're running this example without an OpenAI API key. Please set the OPENAI_API_KEY environment variable to run this example. Do this by either by adding a .env file to the project/ directory or by setting the environment variable in your terminal.", + ), + parent_span_id=span.id if span else None, + ) + + # Call an LLM to respond to the user's message + # When send_as_agent_task_message=True, returns a TaskMessage + run_result = await adk.providers.openai.run_agent_streamed_auto_send( + task_id=params.task.id, + trace_id=params.task.id, + input_list=self._state.input_list, + mcp_server_params=MCP_SERVERS, + agent_name="Tool-Enabled Assistant", + agent_instructions="""You are a helpful assistant that can answer questions using various tools. + You have access to sequential thinking and web search capabilities through MCP servers. + Use these tools when appropriate to provide accurate and well-reasoned responses.""", + parent_span_id=span.id if span else None, + ) + self._state.input_list = run_result.final_input_list + + # Set the span output to the state for the next turn + span.output = self._state + + @workflow.run + @override + async def on_task_create(self, params: CreateTaskParams) -> None: + logger.info(f"Received task create params: {params}") + + # 1. Initialize the state. You can either do this here or in the __init__ method. + # This function is triggered whenever a client creates a task for this agent. + # It is not re-triggered when a new event is sent to the task. + self._state = StateModel( + input_list=[], + turn_number=0, + ) + + # 2. Wait for the task to be completed indefinitely. If we don't do this the workflow will close as soon as this function returns. Temporal can run hundreds of millions of workflows in parallel, so you don't need to worry about too many workflows running at once. + + # Thus, if you want this agent to field events indefinitely (or for a long time) you need to wait for a condition to be met. + + await workflow.wait_condition( + lambda: self._complete_task, + timeout=None, # Set a timeout if you want to prevent the task from running indefinitely. Generally this is not needed. Temporal can run hundreds of millions of workflows in parallel and more. Only do this if you have a specific reason to do so. + ) diff --git a/examples/tutorials/10_agentic/10_temporal/010_agent_chat/requirements.txt b/examples/tutorials/10_agentic/10_temporal/010_agent_chat/requirements.txt new file mode 100644 index 000000000..d12ad3951 --- /dev/null +++ b/examples/tutorials/10_agentic/10_temporal/010_agent_chat/requirements.txt @@ -0,0 +1,4 @@ +agentex-py>=0.0.4,<0.1.0 + +# Scale GenAI Platform Python SDK +scale-gp \ No newline at end of file diff --git a/examples/tutorials/10_agentic/10_temporal/020_state_machine/.dockerignore b/examples/tutorials/10_agentic/10_temporal/020_state_machine/.dockerignore new file mode 100644 index 000000000..4521d8465 --- /dev/null +++ b/examples/tutorials/10_agentic/10_temporal/020_state_machine/.dockerignore @@ -0,0 +1,46 @@ +# Python +__pycache__/ +*.py[cod] +*$py.class +*.so +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +*.egg-info/ +.installed.cfg +*.egg + +# Environments +.env** +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# IDE +.idea/ +.vscode/ +*.swp +*.swo + +# Git +.git +.gitignore + +# Misc +.DS_Store + +# CodeArtifact configuration +.codeartifact-pip-conf \ No newline at end of file diff --git a/examples/tutorials/10_agentic/10_temporal/020_state_machine/Dockerfile b/examples/tutorials/10_agentic/10_temporal/020_state_machine/Dockerfile new file mode 100644 index 000000000..923964f3d --- /dev/null +++ b/examples/tutorials/10_agentic/10_temporal/020_state_machine/Dockerfile @@ -0,0 +1,51 @@ +# syntax=docker/dockerfile:1.3 +FROM python:3.12-slim +COPY --from=ghcr.io/astral-sh/uv:0.6.4 /uv /uvx /bin/ + +# Install system dependencies +RUN apt-get update && apt-get install -y \ + htop \ + vim \ + curl \ + tar \ + python3-dev \ + postgresql-client \ + build-essential \ + libpq-dev \ + gcc \ + cmake \ + netcat-openbsd \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* + +# Install tctl (Temporal CLI) +RUN curl -L https://github.com/temporalio/tctl/releases/download/v1.18.1/tctl_1.18.1_linux_arm64.tar.gz -o /tmp/tctl.tar.gz && \ + tar -xzf /tmp/tctl.tar.gz -C /usr/local/bin && \ + chmod +x /usr/local/bin/tctl && \ + rm /tmp/tctl.tar.gz + +RUN uv pip install --system --upgrade pip setuptools wheel + +ENV UV_HTTP_TIMEOUT=1000 + +# Copy just the requirements file to optimize caching +COPY 10_agentic/10_temporal/020_state_machine/requirements.txt /app/10_agentic/10_temporal/020_state_machine/requirements.txt + +WORKDIR /app/10_agentic/10_temporal/020_state_machine + +# Install the required Python packages +RUN --mount=type=secret,id=codeartifact-pip-conf,target=/etc/pip.conf \ + export UV_INDEX_URL=$(grep -E "^index-url" /etc/pip.conf | cut -d'=' -f2- | xargs) && \ + export UV_EXTRA_INDEX_URL=$(grep -E "^extra-index-url" /etc/pip.conf | cut -d'=' -f2- | xargs || echo "") && \ + uv pip install --system -r requirements.txt + +# Copy the project code +COPY 10_agentic/10_temporal/020_state_machine/project /app/10_agentic/10_temporal/020_state_machine/project + +WORKDIR /app/10_agentic/10_temporal/020_state_machine/project + +# Run the ACP server using uvicorn +CMD ["uvicorn", "acp:acp", "--host", "0.0.0.0", "--port", "8000"] + +# When we deploy the worker, we will replace the CMD with the following +# CMD ["python", "-m", "run_worker"] \ No newline at end of file diff --git a/examples/tutorials/10_agentic/10_temporal/020_state_machine/README.md b/examples/tutorials/10_agentic/10_temporal/020_state_machine/README.md new file mode 100644 index 000000000..18c51d188 --- /dev/null +++ b/examples/tutorials/10_agentic/10_temporal/020_state_machine/README.md @@ -0,0 +1,145 @@ +# at020-state-machine - AgentEx Temporal Agent Template + +This is a starter template for building asynchronous agents with the AgentEx framework and Temporal. It provides a basic implementation of the Agent 2 Client Protocol (ACP) with Temporal workflow support to help you get started quickly. + +## What You'll Learn + +- **Tasks**: A task is a grouping mechanism for related messages. Think of it as a conversation thread or a session. +- **Messages**: Messages are communication objects within a task. They can contain text, data, or instructions. +- **ACP Events**: The agent responds to four main events: + - `task_received`: When a new task is created + - `task_message_received`: When a message is sent within a task + - `task_approved`: When a task is approved + - `task_canceled`: When a task is canceled +- **Temporal Workflows**: Long-running processes that can handle complex state management and async operations + +## Running the Agent + +1. Run the agent locally: +```bash +agentex agents run --manifest manifest.yaml +``` + +The agent will start on port 8000 and print messages whenever it receives any of the ACP events. + +## What's Inside + +This template: +- Sets up a basic ACP server with Temporal integration +- Handles each of the required ACP events +- Provides a foundation for building complex async agents +- Includes Temporal workflow and activity definitions + +## Next Steps + +For more advanced agent development, check out the AgentEx tutorials: + +- **Tutorials 00-08**: Learn about building synchronous agents with ACP +- **Tutorials 09-10**: Learn how to use Temporal to power asynchronous agents + - Tutorial 09: Basic Temporal workflow setup + - Tutorial 10: Advanced Temporal patterns and best practices + +These tutorials will help you understand: +- How to handle long-running tasks +- Implementing state machines +- Managing complex workflows +- Best practices for async agent development + +## The Manifest File + +The `manifest.yaml` file is your agent's configuration file. It defines: +- How your agent should be built and packaged +- What files are included in your agent's Docker image +- Your agent's name and description +- Local development settings (like the port your agent runs on) +- Temporal worker configuration + +This file is essential for both local development and deployment of your agent. + +## Project Structure + +``` +020_state_machine/ +├── project/ # Your agent's code +│ ├── __init__.py +│ ├── acp.py # ACP server and event handlers +│ ├── workflow.py # Temporal workflow definitions +│ ├── activities.py # Temporal activity definitions +│ └── run_worker.py # Temporal worker setup +├── Dockerfile # Container definition +├── manifest.yaml # Deployment config +└── requirements.txt # Dependencies +``` + +## Development + +1. **Customize Event Handlers** + - Modify the handlers in `acp.py` to implement your agent's logic + - Add your own tools and capabilities + - Implement custom state management + +2. **Add Dependencies** + - Add required packages to `requirements.txt` + - Update the manifest with any needed credentials + +## Local Development + +1. **Install AgentEx** +```bash +cd agentex-py +uv venv +source .venv/bin/activate +uv sync +``` + +2. **Start the Agentex Server** +```bash +# Navigate to the backend directory +cd agentex + +# Start all services using Docker Compose +make dev + +# Optional: In a separate terminal, use lazydocker for a better UI (everything should say "healthy") +lzd +``` + +3. **Run your agent** +```bash +# From this directory +export ENVIRONMENT=development && agentex agents run --manifest manifest.yaml +``` + +4. **Interact with your agent** + +Option 0: CLI (deprecated - to be replaced once a new CLI is implemented - please use the web UI for now!) +```bash +# Submit a task via CLI +agentex tasks submit --agent at020-state-machine --task "Your task here" +``` + +Option 1: Web UI +```bash +# Start the local web interface +cd agentex-web +make dev + +# Then open http://localhost:3000 in your browser to chat with your agent +``` + +## Development Tips + +1. **Local Testing** +- Set environment variables in project/.env for any required credentials. OR you can set these in the manifest.yaml + +### To build the agent Docker image locally (normally not necessary): + +1. First, set up CodeArtifact authentication: +```bash +../../setup-build-codeartifact.sh +``` + +2. Build the agent image: +```bash +agentex agents build --manifest manifest.yaml --secret 'id=codeartifact-pip-conf,src=.codeartifact-pip-conf' +``` \ No newline at end of file diff --git a/examples/tutorials/10_agentic/10_temporal/020_state_machine/manifest.yaml b/examples/tutorials/10_agentic/10_temporal/020_state_machine/manifest.yaml new file mode 100644 index 000000000..2835df837 --- /dev/null +++ b/examples/tutorials/10_agentic/10_temporal/020_state_machine/manifest.yaml @@ -0,0 +1,138 @@ +# Agent Manifest Configuration +# --------------------------- +# This file defines how your agent should be built and deployed. + +# Build Configuration +# ------------------ +# The build config defines what gets packaged into your agent's Docker image. +# This same configuration is used whether building locally or remotely. +# +# When building: +# 1. All files from include_paths are collected into a build context +# 2. The context is filtered by dockerignore rules +# 3. The Dockerfile uses this context to build your agent's image +# 4. The image is pushed to a registry and used to run your agent +build: + context: + # Root directory for the build context + root: ../ # Keep this as the default root + + # Paths to include in the Docker build context + # Must include: + # - agentex-py: The core framework (needed for agent execution) + # - Your agent's directory (your custom agent code) + # These paths are collected and sent to the Docker daemon for building + include_paths: + - 10_agentic/10_temporal/020_state_machine + + # Path to your agent's Dockerfile + # This defines how your agent's image is built from the context + # Relative to the root directory + dockerfile: 10_agentic/10_temporal/020_state_machine/Dockerfile + + # Path to your agent's .dockerignore + # Filters unnecessary files from the build context + # Helps keep build context small and builds fast + dockerignore: 10_agentic/10_temporal/020_state_machine/.dockerignore + + +# Local Development Configuration +# ----------------------------- +# Only used when running the agent locally +local_development: + agent: + port: 8000 # Port where your local ACP server is running + host_address: host.docker.internal # Host address for Docker networking (host.docker.internal for Docker, localhost for direct) + + # File paths for local development (relative to this manifest.yaml) + paths: + # Path to ACP server file + # Examples: + # project/acp.py (standard) + # src/server.py (custom structure) + # ../shared/acp.py (shared across projects) + # /absolute/path/acp.py (absolute path) + acp: project/acp.py + + # Path to temporal worker file + # Examples: + # project/run_worker.py (standard) + # workers/temporal.py (custom structure) + # ../shared/worker.py (shared across projects) + worker: project/run_worker.py + + +# Agent Configuration +# ----------------- +agent: + # Type of agent - either sync or agentic + acp_type: agentic + + # Unique name for your agent + # Used for task routing and monitoring + name: at020-state-machine + + # Description of what your agent does + # Helps with documentation and discovery + description: An AgentEx agentthat demonstrates how to uose state machines to manage complex agentic workflows + + # Temporal workflow configuration + # This enables your agent to run as a Temporal workflow for long-running tasks + temporal: + enabled: true + workflows: + # Name of the workflow class + # Must match the @workflow.defn name in your workflow.py + - name: at020-state-machine + + # Queue name for task distribution + # Used by Temporal to route tasks to your agent + # Convention: _task_queue + queue_name: 020_state_machine_queue + + # Optional: Credentials mapping + # Maps Kubernetes secrets to environment variables + # Common credentials include: + # credentials: + # - env_var_name: OPENAI_API_KEY + # secret_name: openai-api-key + # secret_key: api-key + + # Optional: Set Environment variables for running your agent locally as well + # as for deployment later on + # env: + # OPENAI_API_KEY: "" + # OPENAI_BASE_URL: "" + # OPENAI_ORG_ID: "" + + +# Deployment Configuration +# ----------------------- +# Configuration for deploying your agent to Kubernetes clusters +deployment: + # Container image configuration + image: + repository: "" # Update with your container registry + tag: "latest" # Default tag, should be versioned in production + + imagePullSecrets: + - name: my-registry-secret # Update with your image pull secret name + + # Global deployment settings that apply to all clusters + # These can be overridden using --override-file with custom configuration files + global: + agent: + name: "at020-state-machine" + description: "An AgentEx agentthat demonstrates how to uose state machines to manage complex agentic workflows" + + # Default replica count + replicaCount: 1 + + # Default resource requirements + resources: + requests: + cpu: "500m" + memory: "1Gi" + limits: + cpu: "1000m" + memory: "2Gi" \ No newline at end of file diff --git a/examples/tutorials/10_agentic/10_temporal/020_state_machine/project/__init__.py b/examples/tutorials/10_agentic/10_temporal/020_state_machine/project/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/examples/tutorials/10_agentic/10_temporal/020_state_machine/project/acp.py b/examples/tutorials/10_agentic/10_temporal/020_state_machine/project/acp.py new file mode 100644 index 000000000..d3b8e52d6 --- /dev/null +++ b/examples/tutorials/10_agentic/10_temporal/020_state_machine/project/acp.py @@ -0,0 +1,31 @@ +import os + +from agentex.lib.sdk.fastacp.fastacp import FastACP +from agentex.lib.types.fastacp import TemporalACPConfig + + +# Create the ACP server +acp = FastACP.create( + acp_type="agentic", + config=TemporalACPConfig( + # When deployed to the cluster, the Temporal address will automatically be set to the cluster address + # For local development, we set the address manually to talk to the local Temporal service set up via docker compose + type="temporal", + temporal_address=os.getenv("TEMPORAL_ADDRESS", "localhost:7233") + ) +) + + +# Notice that we don't need to register any handlers when we use type="temporal" +# If you look at the code in agentex.sdk.fastacp.impl.temporal_acp +# You can see that these handlers are automatically registered when the ACP is created + +# @acp.on_task_create +# This will be handled by the method in your workflow that is decorated with @workflow.run + +# @acp.on_task_event_send +# This will be handled by the method in your workflow that is decorated with @workflow.signal(name=SignalName.RECEIVE_MESSAGE) + +# @acp.on_task_cancel +# This does not need to be handled by your workflow. +# It is automatically handled by the temporal client which cancels the workflow directly \ No newline at end of file diff --git a/examples/tutorials/10_agentic/10_temporal/020_state_machine/project/run_worker.py b/examples/tutorials/10_agentic/10_temporal/020_state_machine/project/run_worker.py new file mode 100644 index 000000000..a5e6049a0 --- /dev/null +++ b/examples/tutorials/10_agentic/10_temporal/020_state_machine/project/run_worker.py @@ -0,0 +1,33 @@ +import asyncio +import os + +from agentex.lib.core.temporal.activities import get_all_activities +from agentex.lib.core.temporal.workers.worker import AgentexWorker +from agentex.lib.utils.logging import make_logger +from agentex.lib.environment_variables import EnvironmentVariables + +from workflow import At020StateMachineWorkflow + + +environment_variables = EnvironmentVariables.refresh() + +logger = make_logger(__name__) + + +async def main(): + task_queue_name = environment_variables.WORKFLOW_TASK_QUEUE + if task_queue_name is None: + raise ValueError("WORKFLOW_TASK_QUEUE is not set") + + # Create a worker with automatic tracing + worker = AgentexWorker( + task_queue=task_queue_name, + ) + + await worker.run( + activities=get_all_activities(), + workflow=At020StateMachineWorkflow, + ) + +if __name__ == "__main__": + asyncio.run(main()) \ No newline at end of file diff --git a/examples/tutorials/10_agentic/10_temporal/020_state_machine/project/state_machines/deep_research.py b/examples/tutorials/10_agentic/10_temporal/020_state_machine/project/state_machines/deep_research.py new file mode 100644 index 000000000..add9c185e --- /dev/null +++ b/examples/tutorials/10_agentic/10_temporal/020_state_machine/project/state_machines/deep_research.py @@ -0,0 +1,40 @@ +from enum import Enum +from typing import Dict, List, Optional, override +from agentex.types.span import Span +from pydantic import BaseModel + +from agentex.lib.sdk.state_machine import StateMachine + + +class DeepResearchState(str, Enum): + """States for the deep research workflow.""" + CLARIFYING_USER_QUERY = "clarifying_user_query" + PERFORMING_DEEP_RESEARCH = "performing_deep_research" + WAITING_FOR_USER_INPUT = "waiting_for_user_input" + COMPLETED = "completed" + FAILED = "failed" + + +class DeepResearchData(BaseModel): + """Data model for the deep research state machine - everything is one continuous research report.""" + task_id: Optional[str] = None + current_span: Optional[Span] = None + current_turn: int = 1 + + # Research report data + user_query: str = "" + follow_up_questions: List[str] = [] + follow_up_responses: List[str] = [] + n_follow_up_questions_to_ask: int = 1 + agent_input_list: List[Dict[str, str]] = [] + research_report: str = "" + research_iteration: int = 0 + + +class DeepResearchStateMachine(StateMachine[DeepResearchData]): + """State machine for the deep research workflow.""" + + @override + async def terminal_condition(self) -> bool: + """Check if the state machine has reached a terminal state.""" + return self.get_current_state() == DeepResearchState.COMPLETED diff --git a/examples/tutorials/10_agentic/10_temporal/020_state_machine/project/workflow.py b/examples/tutorials/10_agentic/10_temporal/020_state_machine/project/workflow.py new file mode 100644 index 000000000..6e374bde8 --- /dev/null +++ b/examples/tutorials/10_agentic/10_temporal/020_state_machine/project/workflow.py @@ -0,0 +1,142 @@ +import asyncio +import json +from typing import override + +from temporalio import workflow + +from agentex.lib import adk +from agentex.lib.types.acp import CreateTaskParams, SendEventParams +from agentex.lib.core.temporal.workflows.workflow import BaseWorkflow +from agentex.lib.core.temporal.types.workflow import SignalName +from agentex.lib.utils.logging import make_logger +from agentex.types.text_content import TextContent +from agentex.lib.environment_variables import EnvironmentVariables +from agentex.lib.sdk.state_machine.state import State + +from state_machines.deep_research import DeepResearchStateMachine, DeepResearchState, DeepResearchData +from workflows.deep_research.clarify_user_query import ClarifyUserQueryWorkflow +from workflows.deep_research.waiting_for_user_input import WaitingForUserInputWorkflow +from workflows.deep_research.performing_deep_research import PerformingDeepResearchWorkflow + +environment_variables = EnvironmentVariables.refresh() + +if environment_variables.WORKFLOW_NAME is None: + raise ValueError("Environment variable WORKFLOW_NAME is not set") + +if environment_variables.AGENT_NAME is None: + raise ValueError("Environment variable AGENT_NAME is not set") + +logger = make_logger(__name__) + +@workflow.defn(name=environment_variables.WORKFLOW_NAME) +class At020StateMachineWorkflow(BaseWorkflow): + """ + Minimal async workflow template for AgentEx Temporal agents. + """ + def __init__(self): + super().__init__(display_name=environment_variables.AGENT_NAME) + self.state_machine = DeepResearchStateMachine( + initial_state=DeepResearchState.WAITING_FOR_USER_INPUT, + states=[ + State(name=DeepResearchState.CLARIFYING_USER_QUERY, workflow=ClarifyUserQueryWorkflow()), + State(name=DeepResearchState.WAITING_FOR_USER_INPUT, workflow=WaitingForUserInputWorkflow()), + State(name=DeepResearchState.PERFORMING_DEEP_RESEARCH, workflow=PerformingDeepResearchWorkflow()), + ], + state_machine_data=DeepResearchData(), + trace_transitions=True + ) + + @override + @workflow.signal(name=SignalName.RECEIVE_EVENT) + async def on_task_event_send(self, params: SendEventParams) -> None: + deep_research_data = self.state_machine.get_state_machine_data() + task = params.task + message = params.event.content + + # If waiting for user input, handle the message + if self.state_machine.get_current_state() == DeepResearchState.WAITING_FOR_USER_INPUT: + if not deep_research_data.user_query: + # First time - initialize research data + deep_research_data.user_query = message.content + deep_research_data.current_turn += 1 + + if not deep_research_data.current_span: + deep_research_data.current_span = await adk.tracing.start_span( + trace_id=task.id, + name=f"Turn {deep_research_data.current_turn}", + input={ + "task_id": task.id, + "message": message.content, + } + ) + else: + # Check if we're in the middle of follow-up questions + if deep_research_data.n_follow_up_questions_to_ask > 0: + # User is responding to a follow-up question + deep_research_data.follow_up_responses.append(message.content) + + # Add the Q&A to the agent input list as context + if deep_research_data.follow_up_questions: + last_question = deep_research_data.follow_up_questions[-1] + qa_context = f"Q: {last_question}\nA: {message.content}" + deep_research_data.agent_input_list.append({ + "role": "user", + "content": qa_context + }) + else: + # User is asking a new follow-up question about the same research topic + # Add the user's follow-up question to the agent input list as context + if deep_research_data.agent_input_list: + # Add user's follow-up question to the conversation + deep_research_data.agent_input_list.append({ + "role": "user", + "content": f"Additional question: {message.content}" + }) + else: + # Initialize agent input list with the follow-up question + deep_research_data.agent_input_list = [{ + "role": "user", + "content": f"Original query: {deep_research_data.user_query}\nAdditional question: {message.content}" + }] + + deep_research_data.current_turn += 1 + + if not deep_research_data.current_span: + deep_research_data.current_span = await adk.tracing.start_span( + trace_id=task.id, + name=f"Turn {deep_research_data.current_turn}", + input={ + "task_id": task.id, + "message": message.content, + } + ) + + # Always go to clarifying user query to ask follow-up questions + # This ensures we gather more context before doing deep research + await self.state_machine.transition(DeepResearchState.CLARIFYING_USER_QUERY) + + # Echo back the user's message + await adk.messages.create( + task_id=task.id, + content=TextContent( + author="user", + content=message.content, + ), + trace_id=task.id, + parent_span_id=deep_research_data.current_span.id if deep_research_data.current_span else None, + ) + + @override + @workflow.run + async def on_task_create(self, params: CreateTaskParams) -> None: + task = params.task + + self.state_machine.set_task_id(task.id) + deep_research_data = self.state_machine.get_state_machine_data() + deep_research_data.task_id = task.id + + try: + await self.state_machine.run() + except asyncio.CancelledError as error: + logger.warning(f"Task canceled by user: {task.id}") + raise error \ No newline at end of file diff --git a/examples/tutorials/10_agentic/10_temporal/020_state_machine/project/workflows/deep_research/clarify_user_query.py b/examples/tutorials/10_agentic/10_temporal/020_state_machine/project/workflows/deep_research/clarify_user_query.py new file mode 100644 index 000000000..4ef6834a4 --- /dev/null +++ b/examples/tutorials/10_agentic/10_temporal/020_state_machine/project/workflows/deep_research/clarify_user_query.py @@ -0,0 +1,83 @@ +from typing import Optional, override +from agentex.lib.sdk.state_machine.state_machine import StateMachine + +from agentex.lib import adk +from agentex.lib.sdk.state_machine.state_workflow import StateWorkflow +from agentex.lib.types.llm_messages import LLMConfig, SystemMessage, UserMessage +from agentex.lib.utils.logging import make_logger + +from state_machines.deep_research import DeepResearchData, DeepResearchState + +logger = make_logger(__name__) + +FOLLOW_UP_QUESTION_TEMPLATE = """ +Given the following research query from the user, ask a follow up question to clarify the research direction. + +{{ user_query }} + + +{% if follow_up_questions|length > 0 %} +The following are follow up questions and answers that have been asked/given so far: +{% for q in follow_up_questions %} +Q: {{ follow_up_questions[loop.index0] }} +A: {{ follow_up_responses[loop.index0] }} +{% endfor %} +{% endif %} + +Return the follow up question and nothing else. +Follow up question: +""" + +class ClarifyUserQueryWorkflow(StateWorkflow): + """Workflow for engaging in follow-up questions.""" + + @override + async def execute(self, state_machine: StateMachine, state_machine_data: Optional[DeepResearchData] = None) -> str: + """Execute the workflow.""" + if state_machine_data is None: + return DeepResearchState.PERFORMING_DEEP_RESEARCH + + if state_machine_data.n_follow_up_questions_to_ask == 0: + # No more follow-up questions to ask, proceed to deep research + return DeepResearchState.PERFORMING_DEEP_RESEARCH + + # Generate follow-up question prompt + if state_machine_data.task_id and state_machine_data.current_span: + follow_up_question_generation_prompt = await adk.utils.templating.render_jinja( + trace_id=state_machine_data.task_id, + template=FOLLOW_UP_QUESTION_TEMPLATE, + variables={ + "user_query": state_machine_data.user_query, + "follow_up_questions": state_machine_data.follow_up_questions, + "follow_up_responses": state_machine_data.follow_up_responses + }, + parent_span_id=state_machine_data.current_span.id, + ) + + task_message = await adk.providers.litellm.chat_completion_stream_auto_send( + task_id=state_machine_data.task_id, + llm_config=LLMConfig( + model="gpt-4o-mini", + messages=[ + SystemMessage(content="You are assistant that follows exact instructions without outputting any other text except your response to the user's exact request."), + UserMessage(content=follow_up_question_generation_prompt), + ], + stream=True, + ), + trace_id=state_machine_data.task_id, + parent_span_id=state_machine_data.current_span.id, + ) + follow_up_question = task_message.content.content + + # Update with follow-up question + state_machine_data.follow_up_questions.append(follow_up_question) + + # Decrement the number of follow-up questions to ask + state_machine_data.n_follow_up_questions_to_ask -= 1 + + logger.info(f"Current research data: {state_machine_data}") + + # Always go back to waiting for user input to get their response + return DeepResearchState.WAITING_FOR_USER_INPUT + else: + return DeepResearchState.PERFORMING_DEEP_RESEARCH \ No newline at end of file diff --git a/examples/tutorials/10_agentic/10_temporal/020_state_machine/project/workflows/deep_research/performing_deep_research.py b/examples/tutorials/10_agentic/10_temporal/020_state_machine/project/workflows/deep_research/performing_deep_research.py new file mode 100644 index 000000000..d8afbc82b --- /dev/null +++ b/examples/tutorials/10_agentic/10_temporal/020_state_machine/project/workflows/deep_research/performing_deep_research.py @@ -0,0 +1,156 @@ +from datetime import datetime +import os +from typing import Optional, override + +from agentex.lib import adk +from agentex.lib.sdk.state_machine.state_machine import StateMachine +from mcp import StdioServerParameters + +from agentex.lib.sdk.state_machine.state_workflow import StateWorkflow +from agentex.types.text_content import TextContent +from agentex.lib.utils.logging import make_logger + +from state_machines.deep_research import DeepResearchData, DeepResearchState + +logger = make_logger(__name__) + +MCP_SERVERS = [ + StdioServerParameters( + command="uvx", + args=["mcp-server-time", "--local-timezone", "America/Los_Angeles"], + ), + StdioServerParameters( + command="uvx", + args=["openai-websearch-mcp"], + env={ + "OPENAI_API_KEY": os.environ.get("OPENAI_API_KEY", "") + } + ), + StdioServerParameters( + command="uvx", + args=["mcp-server-fetch"], + ), +] + +class PerformingDeepResearchWorkflow(StateWorkflow): + """Workflow for performing deep research.""" + + @override + async def execute(self, state_machine: StateMachine, state_machine_data: Optional[DeepResearchData] = None) -> str: + """Execute the workflow.""" + if state_machine_data is None: + return DeepResearchState.CLARIFYING_USER_QUERY + + if not state_machine_data.user_query: + return DeepResearchState.CLARIFYING_USER_QUERY + + # Construct initial research instruction + follow_up_qa_str = "" + for q, r in zip(state_machine_data.follow_up_questions, state_machine_data.follow_up_responses): + follow_up_qa_str += f"Q: {q}\nA: {r}\n" + + # Increment research iteration + state_machine_data.research_iteration += 1 + + # Create research instruction based on whether this is the first iteration or a continuation + if state_machine_data.research_iteration == 1: + initial_instruction = ( + f"Initial Query: {state_machine_data.user_query}\n" + f"Follow-up Q&A:\n{follow_up_qa_str}" + ) + + # Notify user that deep research is starting + if state_machine_data.task_id and state_machine_data.current_span: + await adk.messages.create( + task_id=state_machine_data.task_id, + content=TextContent( + author="agent", + content="Starting deep research process based on your query and follow-up responses...", + ), + trace_id=state_machine_data.task_id, + parent_span_id=state_machine_data.current_span.id, + ) + else: + initial_instruction = ( + f"Initial Query: {state_machine_data.user_query}\n" + f"Follow-up Q&A:\n{follow_up_qa_str}\n" + f"Current Research Report (Iteration {state_machine_data.research_iteration - 1}):\n{state_machine_data.research_report}" + ) + + # Notify user that research is continuing + if state_machine_data.task_id and state_machine_data.current_span: + await adk.messages.create( + task_id=state_machine_data.task_id, + content=TextContent( + author="agent", + content=f"Continuing deep research (iteration {state_machine_data.research_iteration}) to expand and refine the research report...", + ), + trace_id=state_machine_data.task_id, + parent_span_id=state_machine_data.current_span.id, + ) + + # Fetch the current time in human readable format + current_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S %Z") + + # Deep Research Loop + if not state_machine_data.agent_input_list: + state_machine_data.agent_input_list = [ + {"role": "user", "content": f""" +Here is my initial query, clarified with the following follow-up questions and answers: +{initial_instruction} + +You should now perform a depth search to get a more detailed understanding of the most promising areas. + +The current time is {current_time}. +"""} + ] + + if state_machine_data.task_id and state_machine_data.current_span: + result = await adk.providers.openai.run_agent_streamed_auto_send( + task_id=state_machine_data.task_id, + trace_id=state_machine_data.task_id, + input_list=state_machine_data.agent_input_list, + mcp_server_params=MCP_SERVERS, + agent_name="Deep Research Agent", + agent_instructions=f"""You are a deep research expert that can search the web for information. +You should use the tools you have access to to write an extensive report on the users query. + +You must use the web search tool at least 10 times before writing your report. +Use the fetch tool to open links you want to read. +Then use web search again repeatedly to dig deeper into the most promising areas of search results. + +Be very targeted with your searches, make sure all search queries are relevant to either the initial user query or dig deeper into the most promising areas of search results. All searches should tie back to the original query though. Remember your searches are stateless, so there is no context shared between search queries. + +Always cite your sources in the format [source](link). Do not hallucinate. Your latent information is not likely to be up to date. + +If this is a continuation of previous research (iteration {state_machine_data.research_iteration}), focus on: +1. Expanding areas that need more detail +2. Adding new relevant information discovered +3. Removing outdated or incorrect information +4. Improving the overall structure and clarity of the report +""", + parent_span_id=state_machine_data.current_span.id, + mcp_timeout_seconds=180, + ) + + # Update state with conversation history + state_machine_data.agent_input_list = result.final_input_list + + # Extract the research report from the last assistant message + if result.final_input_list: + for message in reversed(result.final_input_list): + if message.get("role") == "assistant": + state_machine_data.research_report = message.get("content", "") + break + + # Keep the research data active for future iterations + + if state_machine_data.task_id and state_machine_data.current_span: + await adk.tracing.end_span( + trace_id=state_machine_data.task_id, + span=state_machine_data.current_span, + ) + state_machine_data.current_span = None + + # Transition to waiting for user input state + return DeepResearchState.WAITING_FOR_USER_INPUT \ No newline at end of file diff --git a/examples/tutorials/10_agentic/10_temporal/020_state_machine/project/workflows/deep_research/waiting_for_user_input.py b/examples/tutorials/10_agentic/10_temporal/020_state_machine/project/workflows/deep_research/waiting_for_user_input.py new file mode 100644 index 000000000..94aa89243 --- /dev/null +++ b/examples/tutorials/10_agentic/10_temporal/020_state_machine/project/workflows/deep_research/waiting_for_user_input.py @@ -0,0 +1,17 @@ +from typing import override +from agentex.lib.sdk.state_machine import StateWorkflow, StateMachine +from agentex.lib.utils.logging import make_logger +from temporalio import workflow +from state_machines.deep_research import DeepResearchData, DeepResearchState + +logger = make_logger(__name__) + +class WaitingForUserInputWorkflow(StateWorkflow): + @override + async def execute(self, state_machine: StateMachine, state_machine_data: DeepResearchData = None) -> str: + logger.info("ActorWaitingForUserInputWorkflow: waiting for user input...") + def condition(): + current_state = state_machine.get_current_state() + return current_state != DeepResearchState.WAITING_FOR_USER_INPUT + await workflow.wait_condition(condition) + return state_machine.get_current_state() \ No newline at end of file diff --git a/examples/tutorials/10_agentic/10_temporal/020_state_machine/requirements.txt b/examples/tutorials/10_agentic/10_temporal/020_state_machine/requirements.txt new file mode 100644 index 000000000..2c2ebf15b --- /dev/null +++ b/examples/tutorials/10_agentic/10_temporal/020_state_machine/requirements.txt @@ -0,0 +1,5 @@ +# Install agentex-py from local path +agentex-py>=0.0.4,<0.1.0 + +# Scale GenAI Platform Python SDK +scale-gp \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index 2769d9ca5..4afd3b8d1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -8,23 +8,44 @@ authors = [ { name = "Agentex", email = "" }, ] dependencies = [ - "httpx>=0.23.0, <1", - "pydantic>=1.9.0, <3", + "httpx>=0.27.2,<0.28", + "pydantic>=2.0.0, <3", "typing-extensions>=4.10, <5", "anyio>=3.5.0, <5", "distro>=1.7.0, <2", "sniffio", + "typer>=0.16,<0.17", + "questionary>=2.0.1,<3", + "rich>=13.9.2,<14", + "fastapi>=0.115.0,<0.116", + "uvicorn>=0.31.1", + "python-on-whales>=0.73.0,<0.74", + "pyyaml>=6.0.2,<7", + "jsonschema>=4.23.0,<5", + "jsonref>=1.1.0,<2", + "temporalio>=1.10.0,<2", + "aiohttp>=3.10.10,<4", + "redis>=5.2.0,<6", + "litellm>=1.66.0,<2", + "kubernetes>=25.0.0,<29.0.0", + "jinja2>=3.1.3,<4", + "mcp[cli]>=1.4.1", + "scale-gp>=0.1.0a59", + "openai-agents>=0.0.7", + "tzlocal>=5.3.1", + "tzdata>=2025.2", + "pytest>=8.4.0", + "pytest-asyncio>=1.0.0", + "scale-gp-beta==0.1.0a20", + "ipykernel>=6.29.5", ] -requires-python = ">= 3.8" +requires-python = ">= 3.12,<4" classifiers = [ "Typing :: Typed", "Intended Audience :: Developers", - "Programming Language :: Python :: 3.8", - "Programming Language :: Python :: 3.9", - "Programming Language :: Python :: 3.10", - "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", "Operating System :: OS Independent", "Operating System :: POSIX", "Operating System :: MacOS", @@ -40,6 +61,12 @@ Repository = "https://github.com/scaleapi/agentex-python" [project.optional-dependencies] aiohttp = ["aiohttp", "httpx_aiohttp>=0.1.8"] +dev = [ + "ruff>=0.3.4", +] + +[project.scripts] +agentex = "agentex.lib.cli.commands.main:app" [tool.rye] managed = true @@ -142,7 +169,7 @@ filterwarnings = [ # there are a couple of flags that are still disabled by # default in strict mode as they are experimental and niche. typeCheckingMode = "strict" -pythonVersion = "3.8" +pythonVersion = "3.12" exclude = [ "_dev", diff --git a/src/agentex/__init__.py b/src/agentex/__init__.py index 891c638e5..f2e665bce 100644 --- a/src/agentex/__init__.py +++ b/src/agentex/__init__.py @@ -5,7 +5,18 @@ from . import types from ._types import NOT_GIVEN, Omit, NoneType, NotGiven, Transport, ProxiesTypes from ._utils import file_from_path -from ._client import Client, Stream, Agentex, Timeout, Transport, AsyncClient, AsyncStream, AsyncAgentex, RequestOptions +from ._client import ( + ENVIRONMENTS, + Client, + Stream, + Agentex, + Timeout, + Transport, + AsyncClient, + AsyncStream, + AsyncAgentex, + RequestOptions, +) from ._models import BaseModel from ._version import __title__, __version__ from ._response import APIResponse as APIResponse, AsyncAPIResponse as AsyncAPIResponse @@ -29,6 +40,7 @@ from ._base_client import DefaultHttpxClient, DefaultAioHttpClient, DefaultAsyncHttpxClient from ._utils._logs import setup_logging as _setup_logging + __all__ = [ "types", "__version__", @@ -61,6 +73,7 @@ "AsyncStream", "Agentex", "AsyncAgentex", + "ENVIRONMENTS", "file_from_path", "BaseModel", "DEFAULT_TIMEOUT", diff --git a/src/agentex/_client.py b/src/agentex/_client.py index ee34e3579..51ebb5e80 100644 --- a/src/agentex/_client.py +++ b/src/agentex/_client.py @@ -3,8 +3,8 @@ from __future__ import annotations import os -from typing import Any, Union, Mapping -from typing_extensions import Self, override +from typing import Any, Dict, Union, Mapping, cast +from typing_extensions import Self, Literal, override import httpx @@ -12,10 +12,7 @@ from ._qs import Querystring from ._types import ( NOT_GIVEN, - Body, Omit, - Query, - Headers, Timeout, NotGiven, Transport, @@ -24,30 +21,35 @@ ) from ._utils import is_given, get_async_library from ._version import __version__ -from ._response import ( - to_raw_response_wrapper, - to_streamed_response_wrapper, - async_to_raw_response_wrapper, - async_to_streamed_response_wrapper, -) -from .resources import echo, spans, events, states, tracker +from .resources import spans, tasks, agents, events, states, tracker from ._streaming import Stream as Stream, AsyncStream as AsyncStream from ._exceptions import APIStatusError from ._base_client import ( DEFAULT_MAX_RETRIES, SyncAPIClient, AsyncAPIClient, - make_request_options, ) -from .resources.tasks import tasks -from .resources.agents import agents from .resources.messages import messages -__all__ = ["Timeout", "Transport", "ProxiesTypes", "RequestOptions", "Agentex", "AsyncAgentex", "Client", "AsyncClient"] +__all__ = [ + "ENVIRONMENTS", + "Timeout", + "Transport", + "ProxiesTypes", + "RequestOptions", + "Agentex", + "AsyncAgentex", + "Client", + "AsyncClient", +] + +ENVIRONMENTS: Dict[str, str] = { + "production": "http://localhost:5003", + "development": "http://localhost:5003", +} class Agentex(SyncAPIClient): - echo: echo.EchoResource agents: agents.AgentsResource tasks: tasks.TasksResource messages: messages.MessagesResource @@ -61,11 +63,14 @@ class Agentex(SyncAPIClient): # client options api_key: str | None + _environment: Literal["production", "development"] | NotGiven + def __init__( self, *, api_key: str | None = None, - base_url: str | httpx.URL | None = None, + environment: Literal["production", "development"] | NotGiven = NOT_GIVEN, + base_url: str | httpx.URL | None | NotGiven = NOT_GIVEN, timeout: Union[float, Timeout, None, NotGiven] = NOT_GIVEN, max_retries: int = DEFAULT_MAX_RETRIES, default_headers: Mapping[str, str] | None = None, @@ -92,10 +97,31 @@ def __init__( api_key = os.environ.get("AGENTEX_SDK_API_KEY") self.api_key = api_key - if base_url is None: - base_url = os.environ.get("AGENTEX_BASE_URL") - if base_url is None: - base_url = f"https://api.example.com" + self._environment = environment + + base_url_env = os.environ.get("AGENTEX_BASE_URL") + if is_given(base_url) and base_url is not None: + # cast required because mypy doesn't understand the type narrowing + base_url = cast("str | httpx.URL", base_url) # pyright: ignore[reportUnnecessaryCast] + elif is_given(environment): + if base_url_env and base_url is not None: + raise ValueError( + "Ambiguous URL; The `AGENTEX_BASE_URL` env var and the `environment` argument are given. If you want to use the environment, you must pass base_url=None", + ) + + try: + base_url = ENVIRONMENTS[environment] + except KeyError as exc: + raise ValueError(f"Unknown environment: {environment}") from exc + elif base_url_env is not None: + base_url = base_url_env + else: + self._environment = environment = "production" + + try: + base_url = ENVIRONMENTS[environment] + except KeyError as exc: + raise ValueError(f"Unknown environment: {environment}") from exc super().__init__( version=__version__, @@ -108,7 +134,6 @@ def __init__( _strict_response_validation=_strict_response_validation, ) - self.echo = echo.EchoResource(self) self.agents = agents.AgentsResource(self) self.tasks = tasks.TasksResource(self) self.messages = messages.MessagesResource(self) @@ -141,21 +166,11 @@ def default_headers(self) -> dict[str, str | Omit]: **self._custom_headers, } - @override - def _validate_headers(self, headers: Headers, custom_headers: Headers) -> None: - if self.api_key and headers.get("Authorization"): - return - if isinstance(custom_headers.get("Authorization"), Omit): - return - - raise TypeError( - '"Could not resolve authentication method. Expected the api_key to be set. Or for the `Authorization` headers to be explicitly omitted"' - ) - def copy( self, *, api_key: str | None = None, + environment: Literal["production", "development"] | None = None, base_url: str | httpx.URL | None = None, timeout: float | Timeout | None | NotGiven = NOT_GIVEN, http_client: httpx.Client | None = None, @@ -191,6 +206,7 @@ def copy( return self.__class__( api_key=api_key or self.api_key, base_url=base_url or self.base_url, + environment=environment or self._environment, timeout=self.timeout if isinstance(timeout, NotGiven) else timeout, http_client=http_client, max_retries=max_retries if is_given(max_retries) else self.max_retries, @@ -203,25 +219,6 @@ def copy( # client.with_options(timeout=10).foo.create(...) with_options = copy - def get_root( - self, - *, - # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. - # The extra values given here take precedence over values defined on the client or passed to this method. - extra_headers: Headers | None = None, - extra_query: Query | None = None, - extra_body: Body | None = None, - timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> object: - """Root""" - return self.get( - "/", - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=object, - ) - @override def _make_status_error( self, @@ -257,7 +254,6 @@ def _make_status_error( class AsyncAgentex(AsyncAPIClient): - echo: echo.AsyncEchoResource agents: agents.AsyncAgentsResource tasks: tasks.AsyncTasksResource messages: messages.AsyncMessagesResource @@ -271,11 +267,14 @@ class AsyncAgentex(AsyncAPIClient): # client options api_key: str | None + _environment: Literal["production", "development"] | NotGiven + def __init__( self, *, api_key: str | None = None, - base_url: str | httpx.URL | None = None, + environment: Literal["production", "development"] | NotGiven = NOT_GIVEN, + base_url: str | httpx.URL | None | NotGiven = NOT_GIVEN, timeout: Union[float, Timeout, None, NotGiven] = NOT_GIVEN, max_retries: int = DEFAULT_MAX_RETRIES, default_headers: Mapping[str, str] | None = None, @@ -302,10 +301,31 @@ def __init__( api_key = os.environ.get("AGENTEX_SDK_API_KEY") self.api_key = api_key - if base_url is None: - base_url = os.environ.get("AGENTEX_BASE_URL") - if base_url is None: - base_url = f"https://api.example.com" + self._environment = environment + + base_url_env = os.environ.get("AGENTEX_BASE_URL") + if is_given(base_url) and base_url is not None: + # cast required because mypy doesn't understand the type narrowing + base_url = cast("str | httpx.URL", base_url) # pyright: ignore[reportUnnecessaryCast] + elif is_given(environment): + if base_url_env and base_url is not None: + raise ValueError( + "Ambiguous URL; The `AGENTEX_BASE_URL` env var and the `environment` argument are given. If you want to use the environment, you must pass base_url=None", + ) + + try: + base_url = ENVIRONMENTS[environment] + except KeyError as exc: + raise ValueError(f"Unknown environment: {environment}") from exc + elif base_url_env is not None: + base_url = base_url_env + else: + self._environment = environment = "production" + + try: + base_url = ENVIRONMENTS[environment] + except KeyError as exc: + raise ValueError(f"Unknown environment: {environment}") from exc super().__init__( version=__version__, @@ -318,7 +338,6 @@ def __init__( _strict_response_validation=_strict_response_validation, ) - self.echo = echo.AsyncEchoResource(self) self.agents = agents.AsyncAgentsResource(self) self.tasks = tasks.AsyncTasksResource(self) self.messages = messages.AsyncMessagesResource(self) @@ -351,21 +370,11 @@ def default_headers(self) -> dict[str, str | Omit]: **self._custom_headers, } - @override - def _validate_headers(self, headers: Headers, custom_headers: Headers) -> None: - if self.api_key and headers.get("Authorization"): - return - if isinstance(custom_headers.get("Authorization"), Omit): - return - - raise TypeError( - '"Could not resolve authentication method. Expected the api_key to be set. Or for the `Authorization` headers to be explicitly omitted"' - ) - def copy( self, *, api_key: str | None = None, + environment: Literal["production", "development"] | None = None, base_url: str | httpx.URL | None = None, timeout: float | Timeout | None | NotGiven = NOT_GIVEN, http_client: httpx.AsyncClient | None = None, @@ -401,6 +410,7 @@ def copy( return self.__class__( api_key=api_key or self.api_key, base_url=base_url or self.base_url, + environment=environment or self._environment, timeout=self.timeout if isinstance(timeout, NotGiven) else timeout, http_client=http_client, max_retries=max_retries if is_given(max_retries) else self.max_retries, @@ -413,25 +423,6 @@ def copy( # client.with_options(timeout=10).foo.create(...) with_options = copy - async def get_root( - self, - *, - # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. - # The extra values given here take precedence over values defined on the client or passed to this method. - extra_headers: Headers | None = None, - extra_query: Query | None = None, - extra_body: Body | None = None, - timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> object: - """Root""" - return await self.get( - "/", - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=object, - ) - @override def _make_status_error( self, @@ -468,7 +459,6 @@ def _make_status_error( class AgentexWithRawResponse: def __init__(self, client: Agentex) -> None: - self.echo = echo.EchoResourceWithRawResponse(client.echo) self.agents = agents.AgentsResourceWithRawResponse(client.agents) self.tasks = tasks.TasksResourceWithRawResponse(client.tasks) self.messages = messages.MessagesResourceWithRawResponse(client.messages) @@ -477,14 +467,9 @@ def __init__(self, client: Agentex) -> None: self.events = events.EventsResourceWithRawResponse(client.events) self.tracker = tracker.TrackerResourceWithRawResponse(client.tracker) - self.get_root = to_raw_response_wrapper( - client.get_root, - ) - class AsyncAgentexWithRawResponse: def __init__(self, client: AsyncAgentex) -> None: - self.echo = echo.AsyncEchoResourceWithRawResponse(client.echo) self.agents = agents.AsyncAgentsResourceWithRawResponse(client.agents) self.tasks = tasks.AsyncTasksResourceWithRawResponse(client.tasks) self.messages = messages.AsyncMessagesResourceWithRawResponse(client.messages) @@ -493,14 +478,9 @@ def __init__(self, client: AsyncAgentex) -> None: self.events = events.AsyncEventsResourceWithRawResponse(client.events) self.tracker = tracker.AsyncTrackerResourceWithRawResponse(client.tracker) - self.get_root = async_to_raw_response_wrapper( - client.get_root, - ) - class AgentexWithStreamedResponse: def __init__(self, client: Agentex) -> None: - self.echo = echo.EchoResourceWithStreamingResponse(client.echo) self.agents = agents.AgentsResourceWithStreamingResponse(client.agents) self.tasks = tasks.TasksResourceWithStreamingResponse(client.tasks) self.messages = messages.MessagesResourceWithStreamingResponse(client.messages) @@ -509,14 +489,9 @@ def __init__(self, client: Agentex) -> None: self.events = events.EventsResourceWithStreamingResponse(client.events) self.tracker = tracker.TrackerResourceWithStreamingResponse(client.tracker) - self.get_root = to_streamed_response_wrapper( - client.get_root, - ) - class AsyncAgentexWithStreamedResponse: def __init__(self, client: AsyncAgentex) -> None: - self.echo = echo.AsyncEchoResourceWithStreamingResponse(client.echo) self.agents = agents.AsyncAgentsResourceWithStreamingResponse(client.agents) self.tasks = tasks.AsyncTasksResourceWithStreamingResponse(client.tasks) self.messages = messages.AsyncMessagesResourceWithStreamingResponse(client.messages) @@ -525,10 +500,6 @@ def __init__(self, client: AsyncAgentex) -> None: self.events = events.AsyncEventsResourceWithStreamingResponse(client.events) self.tracker = tracker.AsyncTrackerResourceWithStreamingResponse(client.tracker) - self.get_root = async_to_streamed_response_wrapper( - client.get_root, - ) - Client = Agentex diff --git a/src/agentex/lib/__init__.py b/src/agentex/lib/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/src/agentex/lib/adk/__init__.py b/src/agentex/lib/adk/__init__.py new file mode 100644 index 000000000..9989fe5e5 --- /dev/null +++ b/src/agentex/lib/adk/__init__.py @@ -0,0 +1,41 @@ + +from agentex.lib.adk._modules.acp import ACPModule +from agentex.lib.adk._modules.agents import AgentsModule +from agentex.lib.adk._modules.agent_task_tracker import AgentTaskTrackerModule +from agentex.lib.adk._modules.events import EventsModule +from agentex.lib.adk._modules.messages import MessagesModule +from agentex.lib.adk._modules.state import StateModule +from agentex.lib.adk._modules.streaming import StreamingModule +from agentex.lib.adk._modules.tasks import TasksModule +from agentex.lib.adk._modules.tracing import TracingModule + +from agentex.lib.adk import providers +from agentex.lib.adk import utils + +acp = ACPModule() +agents = AgentsModule() +tasks = TasksModule() +messages = MessagesModule() +state = StateModule() +streaming = StreamingModule() +tracing = TracingModule() +events = EventsModule() +agent_task_tracker = AgentTaskTrackerModule() + +__all__ = [ + # Core + "acp", + "agents", + "tasks", + "messages", + "state", + "streaming", + "tracing", + "events", + "agent_task_tracker", + + # Providers + "providers", + # Utils + "utils", +] diff --git a/src/agentex/lib/adk/_modules/__init__.py b/src/agentex/lib/adk/_modules/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/src/agentex/lib/adk/_modules/acp.py b/src/agentex/lib/adk/_modules/acp.py new file mode 100644 index 000000000..657f8e144 --- /dev/null +++ b/src/agentex/lib/adk/_modules/acp.py @@ -0,0 +1,247 @@ +from datetime import timedelta +from typing import Any + +from temporalio.common import RetryPolicy + +from agentex import AsyncAgentex +from agentex.lib.core.services.adk.acp.acp import ACPService +from agentex.lib.core.temporal.activities.activity_helpers import ActivityHelpers +from agentex.lib.core.temporal.activities.adk.acp.acp_activities import ( + ACPActivityName, + EventSendParams, + MessageSendParams, + TaskCancelParams, + TaskCreateParams, +) +from agentex.lib.core.tracing.tracer import AsyncTracer +from agentex.types.task_message import TaskMessage +from agentex.types.task import Task +from agentex.lib.utils.logging import make_logger +from agentex.lib.utils.temporal import in_temporal_workflow +from agentex.types.task_message_content import TaskMessageContent + +logger = make_logger(__name__) + +DEFAULT_RETRY_POLICY = RetryPolicy(maximum_attempts=1) + + +class ACPModule: + """ + Module for managing Agent to Client Protocol (ACP) agent operations in Agentex. + + This interface provides high-level methods for interacting with the agent through the ACP. + """ + + def __init__(self, acp_service: ACPService | None = None): + """ + Initialize the ACP module. + + Args: + acp_activities (Optional[ACPActivities]): Optional pre-configured ACP activities. If None, will be auto-initialized. + """ + if acp_service is None: + agentex_client = AsyncAgentex() + tracer = AsyncTracer(agentex_client) + self._acp_service = ACPService(agentex_client=agentex_client, tracer=tracer) + else: + self._acp_service = acp_service + + async def create_task( + self, + name: str | None = None, + agent_id: str | None = None, + agent_name: str | None = None, + params: dict[str, Any] | None = None, + trace_id: str | None = None, + parent_span_id: str | None = None, + start_to_close_timeout: timedelta = timedelta(seconds=5), + heartbeat_timeout: timedelta = timedelta(seconds=5), + retry_policy: RetryPolicy = DEFAULT_RETRY_POLICY, + ): + """ + Create a new task. + + Args: + name: The name of the task. + agent_id: The ID of the agent to create the task for. + agent_name: The name of the agent to create the task for. + params: The parameters for the task. + start_to_close_timeout: The start to close timeout for the task. + heartbeat_timeout: The heartbeat timeout for the task. + retry_policy: The retry policy for the task. + + Returns: + The task entry. + """ + if in_temporal_workflow(): + return await ActivityHelpers.execute_activity( + activity_name=ACPActivityName.TASK_CREATE, + request=TaskCreateParams( + name=name, + agent_id=agent_id, + agent_name=agent_name, + params=params, + trace_id=trace_id, + parent_span_id=parent_span_id, + ), + response_type=Task, + start_to_close_timeout=start_to_close_timeout, + retry_policy=retry_policy, + heartbeat_timeout=heartbeat_timeout, + ) + else: + return await self._acp_service.task_create( + name=name, + agent_id=agent_id, + agent_name=agent_name, + params=params, + trace_id=trace_id, + parent_span_id=parent_span_id, + ) + + async def send_event( + self, + task_id: str, + content: TaskMessageContent, + agent_id: str | None = None, + agent_name: str | None = None, + trace_id: str | None = None, + parent_span_id: str | None = None, + start_to_close_timeout: timedelta = timedelta(seconds=5), + heartbeat_timeout: timedelta = timedelta(seconds=5), + retry_policy: RetryPolicy = DEFAULT_RETRY_POLICY, + ): + """ + Send an event to a task. + + Args: + task_id: The ID of the task to send the event to. + data: The data to send to the event. + agent_id: The ID of the agent to send the event to. + agent_name: The name of the agent to send the event to. + + Returns: + The event entry. + """ + if in_temporal_workflow(): + return await ActivityHelpers.execute_activity( + activity_name=ACPActivityName.EVENT_SEND, + request=EventSendParams( + agent_id=agent_id, + agent_name=agent_name, + task_id=task_id, + content=content, + trace_id=trace_id, + parent_span_id=parent_span_id, + ), + response_type=None, + start_to_close_timeout=start_to_close_timeout, + retry_policy=retry_policy, + heartbeat_timeout=heartbeat_timeout, + ) + else: + return await self._acp_service.event_send( + agent_id=agent_id, + agent_name=agent_name, + task_id=task_id, + content=content, + trace_id=trace_id, + parent_span_id=parent_span_id, + ) + + async def send_message( + self, + task_id: str, + content: TaskMessageContent, + agent_id: str | None = None, + agent_name: str | None = None, + trace_id: str | None = None, + parent_span_id: str | None = None, + start_to_close_timeout: timedelta = timedelta(seconds=5), + heartbeat_timeout: timedelta = timedelta(seconds=5), + retry_policy: RetryPolicy = DEFAULT_RETRY_POLICY, + ): + """ + Send a message to a task. + + Args: + task_id: The ID of the task to send the message to. + content: The task message content to send to the task. + agent_id: The ID of the agent to send the message to. + agent_name: The name of the agent to send the message to. + + Returns: + The message entry. + """ + if in_temporal_workflow(): + return await ActivityHelpers.execute_activity( + activity_name=ACPActivityName.MESSAGE_SEND, + request=MessageSendParams( + agent_id=agent_id, + agent_name=agent_name, + task_id=task_id, + content=content, + trace_id=trace_id, + parent_span_id=parent_span_id, + ), + response_type=TaskMessage, + start_to_close_timeout=start_to_close_timeout, + retry_policy=retry_policy, + heartbeat_timeout=heartbeat_timeout, + ) + else: + return await self._acp_service.message_send( + agent_id=agent_id, + agent_name=agent_name, + task_id=task_id, + content=content, + trace_id=trace_id, + parent_span_id=parent_span_id, + ) + + async def cancel_task( + self, + task_id: str | None = None, + task_name: str | None = None, + trace_id: str | None = None, + parent_span_id: str | None = None, + start_to_close_timeout: timedelta = timedelta(seconds=5), + heartbeat_timeout: timedelta = timedelta(seconds=5), + retry_policy: RetryPolicy = DEFAULT_RETRY_POLICY, + ): + """ + Cancel a task. + + Args: + task_id: The ID of the task to cancel. + task_name: The name of the task to cancel. + trace_id: The trace ID for the task. + parent_span_id: The parent span ID for the task. + start_to_close_timeout: The start to close timeout for the task. + heartbeat_timeout: The heartbeat timeout for the task. + retry_policy: The retry policy for the task. + + Returns: + The task entry. + """ + if in_temporal_workflow(): + return await ActivityHelpers.execute_activity( + activity_name=ACPActivityName.TASK_CANCEL, + request=TaskCancelParams( + task_id=task_id, + task_name=task_name, + trace_id=trace_id, + parent_span_id=parent_span_id, + ), + response_type=None, + start_to_close_timeout=start_to_close_timeout, + retry_policy=retry_policy, + heartbeat_timeout=heartbeat_timeout, + ) + else: + return await self._acp_service.task_cancel( + task_id=task_id, + task_name=task_name, + trace_id=trace_id, + parent_span_id=parent_span_id, + ) diff --git a/src/agentex/lib/adk/_modules/agent_task_tracker.py b/src/agentex/lib/adk/_modules/agent_task_tracker.py new file mode 100644 index 000000000..44ffd5184 --- /dev/null +++ b/src/agentex/lib/adk/_modules/agent_task_tracker.py @@ -0,0 +1,176 @@ +from datetime import timedelta + +from temporalio.common import RetryPolicy + +from agentex import AsyncAgentex +from agentex.lib.core.services.adk.agent_task_tracker import AgentTaskTrackerService +from agentex.lib.core.temporal.activities.activity_helpers import ActivityHelpers +from agentex.lib.core.temporal.activities.adk.agent_task_tracker_activities import ( + AgentTaskTrackerActivityName, + GetAgentTaskTrackerByTaskAndAgentParams, + GetAgentTaskTrackerParams, + UpdateAgentTaskTrackerParams, +) +from agentex.lib.core.tracing.tracer import AsyncTracer +from agentex.types.agent_task_tracker import AgentTaskTracker +from agentex.lib.utils.logging import make_logger +from agentex.lib.utils.temporal import in_temporal_workflow + +logger = make_logger(__name__) + +# Default retry policy for all agent task tracker operations +DEFAULT_RETRY_POLICY = RetryPolicy(maximum_attempts=1) + + +class AgentTaskTrackerModule: + """ + Module for managing agent task trackers in Agentex. + Provides high-level async methods for retrieving, filtering, and updating agent task trackers. + """ + + def __init__( + self, + agent_task_tracker_service: AgentTaskTrackerService | None = None, + ): + if agent_task_tracker_service is None: + agentex_client = AsyncAgentex() + tracer = AsyncTracer(agentex_client) + self._agent_task_tracker_service = AgentTaskTrackerService( + agentex_client=agentex_client, tracer=tracer + ) + else: + self._agent_task_tracker_service = agent_task_tracker_service + + async def get( + self, + tracker_id: str, + trace_id: str | None = None, + parent_span_id: str | None = None, + start_to_close_timeout: timedelta = timedelta(seconds=5), + heartbeat_timeout: timedelta = timedelta(seconds=5), + retry_policy: RetryPolicy = DEFAULT_RETRY_POLICY, + ) -> AgentTaskTracker: + """ + Get an agent task tracker by ID. + + Args: + tracker_id (str): The ID of the tracker. + trace_id (Optional[str]): The trace ID for tracing. + parent_span_id (Optional[str]): The parent span ID for tracing. + start_to_close_timeout (timedelta): The start to close timeout. + heartbeat_timeout (timedelta): The heartbeat timeout. + retry_policy (RetryPolicy): The retry policy. + + Returns: + AgentTaskTracker: The agent task tracker. + """ + params = GetAgentTaskTrackerParams( + tracker_id=tracker_id, + trace_id=trace_id, + parent_span_id=parent_span_id, + ) + if in_temporal_workflow(): + return await ActivityHelpers.execute_activity( + activity_name=AgentTaskTrackerActivityName.GET_AGENT_TASK_TRACKER, + request=params, + response_type=AgentTaskTracker, + start_to_close_timeout=start_to_close_timeout, + retry_policy=retry_policy, + heartbeat_timeout=heartbeat_timeout, + ) + else: + return await self._agent_task_tracker_service.get_agent_task_tracker( + tracker_id=tracker_id, + trace_id=trace_id, + parent_span_id=parent_span_id, + ) + + async def get_by_task_and_agent( + self, + task_id: str, + agent_id: str, + trace_id: str | None = None, + parent_span_id: str | None = None, + start_to_close_timeout: timedelta = timedelta(seconds=5), + heartbeat_timeout: timedelta = timedelta(seconds=5), + retry_policy: RetryPolicy = DEFAULT_RETRY_POLICY, + ) -> AgentTaskTracker | None: + """ + Get an agent task tracker by task ID and agent ID. + """ + params = GetAgentTaskTrackerByTaskAndAgentParams( + task_id=task_id, + agent_id=agent_id, + trace_id=trace_id, + parent_span_id=parent_span_id, + ) + if in_temporal_workflow(): + return await ActivityHelpers.execute_activity( + activity_name=AgentTaskTrackerActivityName.GET_AGENT_TASK_TRACKER_BY_TASK_AND_AGENT, + request=params, + response_type=AgentTaskTracker, + start_to_close_timeout=start_to_close_timeout, + retry_policy=retry_policy, + heartbeat_timeout=heartbeat_timeout, + ) + else: + return await self._agent_task_tracker_service.get_by_task_and_agent( + task_id=task_id, + agent_id=agent_id, + trace_id=trace_id, + parent_span_id=parent_span_id, + ) + + async def update( + self, + tracker_id: str, + last_processed_event_id: str | None = None, + status: str | None = None, + status_reason: str | None = None, + trace_id: str | None = None, + parent_span_id: str | None = None, + start_to_close_timeout: timedelta = timedelta(seconds=5), + heartbeat_timeout: timedelta = timedelta(seconds=5), + retry_policy: RetryPolicy = DEFAULT_RETRY_POLICY, + ) -> AgentTaskTracker: + """ + Update an agent task tracker. + + Args: + tracker_id (str): The ID of the tracker to update. + request (UpdateAgentTaskTrackerRequest): The update request containing the new values. + trace_id (Optional[str]): The trace ID for tracing. + parent_span_id (Optional[str]): The parent span ID for tracing. + start_to_close_timeout (timedelta): The start to close timeout. + heartbeat_timeout (timedelta): The heartbeat timeout. + retry_policy (RetryPolicy): The retry policy. + + Returns: + AgentTaskTracker: The updated agent task tracker. + """ + params = UpdateAgentTaskTrackerParams( + tracker_id=tracker_id, + last_processed_event_id=last_processed_event_id, + status=status, + status_reason=status_reason, + trace_id=trace_id, + parent_span_id=parent_span_id, + ) + if in_temporal_workflow(): + return await ActivityHelpers.execute_activity( + activity_name=AgentTaskTrackerActivityName.UPDATE_AGENT_TASK_TRACKER, + request=params, + response_type=AgentTaskTracker, + start_to_close_timeout=start_to_close_timeout, + retry_policy=retry_policy, + heartbeat_timeout=heartbeat_timeout, + ) + else: + return await self._agent_task_tracker_service.update_agent_task_tracker( + tracker_id=tracker_id, + last_processed_event_id=last_processed_event_id, + status=status, + status_reason=status_reason, + trace_id=trace_id, + parent_span_id=parent_span_id, + ) diff --git a/src/agentex/lib/adk/_modules/agents.py b/src/agentex/lib/adk/_modules/agents.py new file mode 100644 index 000000000..5e1bbe0e0 --- /dev/null +++ b/src/agentex/lib/adk/_modules/agents.py @@ -0,0 +1,77 @@ +from datetime import timedelta +from typing import Optional + +from agentex.lib.core.temporal.activities.adk.agents_activities import AgentsActivityName, GetAgentParams +from temporalio.common import RetryPolicy + +from agentex import AsyncAgentex +from agentex.lib.core.services.adk.agents import AgentsService +from agentex.lib.core.temporal.activities.activity_helpers import ActivityHelpers +from agentex.lib.core.tracing.tracer import AsyncTracer +from agentex.types.agent import Agent +from agentex.lib.utils.logging import make_logger +from agentex.lib.utils.temporal import in_temporal_workflow + +logger = make_logger(__name__) + +DEFAULT_RETRY_POLICY = RetryPolicy(maximum_attempts=1) + + +class AgentsModule: + """ + Module for managing agents in Agentex. + Provides high-level async methods for retrieving, listing, and deleting agents. + """ + + def __init__( + self, + agents_service: Optional[AgentsService] = None, + ): + if agents_service is None: + agentex_client = AsyncAgentex() + tracer = AsyncTracer(agentex_client) + self._agents_service = AgentsService(agentex_client=agentex_client, tracer=tracer) + else: + self._agents_service = agents_service + + async def get( + self, + *, + agent_id: Optional[str] = None, + agent_name: Optional[str] = None, + trace_id: Optional[str] = None, + parent_span_id: Optional[str] = None, + start_to_close_timeout: timedelta = timedelta(seconds=5), + heartbeat_timeout: timedelta = timedelta(seconds=5), + retry_policy: RetryPolicy = DEFAULT_RETRY_POLICY, + ) -> Agent: + """ + Get an agent by ID or name. + Args: + agent_id: The ID of the agent to retrieve. + agent_name: The name of the agent to retrieve. + Returns: + The agent entry. + """ + params = GetAgentParams( + agent_id=agent_id, + agent_name=agent_name, + trace_id=trace_id, + parent_span_id=parent_span_id, + ) + if in_temporal_workflow(): + return await ActivityHelpers.execute_activity( + activity_name=AgentsActivityName.GET_AGENT, + request=params, + response_type=Agent, + start_to_close_timeout=start_to_close_timeout, + retry_policy=retry_policy, + heartbeat_timeout=heartbeat_timeout, + ) + else: + return await self._agents_service.get_agent( + agent_id=agent_id, + agent_name=agent_name, + trace_id=trace_id, + parent_span_id=parent_span_id, + ) diff --git a/src/agentex/lib/adk/_modules/events.py b/src/agentex/lib/adk/_modules/events.py new file mode 100644 index 000000000..529db4c3c --- /dev/null +++ b/src/agentex/lib/adk/_modules/events.py @@ -0,0 +1,141 @@ +from datetime import timedelta + +from temporalio.common import RetryPolicy + +from agentex import AsyncAgentex +from agentex.lib.core.services.adk.events import EventsService +from agentex.lib.core.temporal.activities.activity_helpers import ActivityHelpers +from agentex.lib.core.temporal.activities.adk.events_activities import ( + EventsActivityName, + GetEventParams, + ListEventsParams, +) +from agentex.lib.core.tracing.tracer import AsyncTracer +from agentex.types.event import Event +from agentex.lib.utils.logging import make_logger +from agentex.lib.utils.temporal import in_temporal_workflow + +logger = make_logger(__name__) + +# Default retry policy for all events operations +DEFAULT_RETRY_POLICY = RetryPolicy(maximum_attempts=1) + + +class EventsModule: + """ + Module for managing events in Agentex. + Provides high-level async methods for retrieving and listing events. + """ + + def __init__( + self, + events_service: EventsService | None = None, + ): + if events_service is None: + agentex_client = AsyncAgentex() + tracer = AsyncTracer(agentex_client) + self._events_service = EventsService( + agentex_client=agentex_client, tracer=tracer + ) + else: + self._events_service = events_service + + async def get( + self, + event_id: str, + trace_id: str | None = None, + parent_span_id: str | None = None, + start_to_close_timeout: timedelta = timedelta(seconds=5), + heartbeat_timeout: timedelta = timedelta(seconds=5), + retry_policy: RetryPolicy = DEFAULT_RETRY_POLICY, + ) -> Event | None: + """ + Get an event by ID. + + Args: + event_id (str): The ID of the event. + trace_id (Optional[str]): The trace ID for tracing. + parent_span_id (Optional[str]): The parent span ID for tracing. + start_to_close_timeout (timedelta): The start to close timeout. + heartbeat_timeout (timedelta): The heartbeat timeout. + retry_policy (RetryPolicy): The retry policy. + + Returns: + Optional[Event]: The event if found, None otherwise. + """ + params = GetEventParams( + event_id=event_id, + trace_id=trace_id, + parent_span_id=parent_span_id, + ) + if in_temporal_workflow(): + return await ActivityHelpers.execute_activity( + activity_name=EventsActivityName.GET_EVENT, + request=params, + response_type=Event, + start_to_close_timeout=start_to_close_timeout, + retry_policy=retry_policy, + heartbeat_timeout=heartbeat_timeout, + ) + else: + return await self._events_service.get_event( + event_id=event_id, + trace_id=trace_id, + parent_span_id=parent_span_id, + ) + + async def list_events( + self, + task_id: str, + agent_id: str, + last_processed_event_id: str | None = None, + limit: int | None = None, + trace_id: str | None = None, + parent_span_id: str | None = None, + start_to_close_timeout: timedelta = timedelta(seconds=5), + heartbeat_timeout: timedelta = timedelta(seconds=5), + retry_policy: RetryPolicy = DEFAULT_RETRY_POLICY, + ) -> list[Event]: + """ + List events for a specific task and agent. + + Args: + task_id (str): The ID of the task. + agent_id (str): The ID of the agent. + last_processed_event_id (Optional[str]): Optional event ID to get events after this ID. + limit (Optional[int]): Optional limit on number of results. + trace_id (Optional[str]): The trace ID for tracing. + parent_span_id (Optional[str]): The parent span ID for tracing. + start_to_close_timeout (timedelta): The start to close timeout. + heartbeat_timeout (timedelta): The heartbeat timeout. + retry_policy (RetryPolicy): The retry policy. + + Returns: + List[Event]: List of events ordered by sequence_id. + """ + params = ListEventsParams( + task_id=task_id, + agent_id=agent_id, + last_processed_event_id=last_processed_event_id, + limit=limit, + trace_id=trace_id, + parent_span_id=parent_span_id, + ) + if in_temporal_workflow(): + return await ActivityHelpers.execute_activity( + activity_name=EventsActivityName.LIST_EVENTS, + request=params, + response_type=list[Event], + start_to_close_timeout=start_to_close_timeout, + retry_policy=retry_policy, + heartbeat_timeout=heartbeat_timeout, + ) + else: + return await self._events_service.list_events( + task_id=task_id, + agent_id=agent_id, + last_processed_event_id=last_processed_event_id, + limit=limit, + trace_id=trace_id, + parent_span_id=parent_span_id, + ) diff --git a/src/agentex/lib/adk/_modules/messages.py b/src/agentex/lib/adk/_modules/messages.py new file mode 100644 index 000000000..24d7f0f07 --- /dev/null +++ b/src/agentex/lib/adk/_modules/messages.py @@ -0,0 +1,285 @@ +from datetime import timedelta + +from temporalio.common import RetryPolicy + +from agentex import AsyncAgentex +from agentex.lib.core.adapters.streams.adapter_redis import RedisEventStreamRepository +from agentex.lib.core.services.adk.messages import MessagesService +from agentex.lib.core.services.adk.streaming import StreamingService +from agentex.lib.core.temporal.activities.activity_helpers import ActivityHelpers +from agentex.lib.core.temporal.activities.adk.messages_activities import ( + CreateMessageParams, + CreateMessagesBatchParams, + ListMessagesParams, + MessagesActivityName, + UpdateMessageParams, + UpdateMessagesBatchParams, +) +from agentex.lib.core.tracing.tracer import AsyncTracer +from agentex.types.task_message import TaskMessage, TaskMessageContent +from agentex.lib.utils.logging import make_logger +from agentex.lib.utils.temporal import in_temporal_workflow + +logger = make_logger(__name__) + +# Default retry policy for all message operations +DEFAULT_RETRY_POLICY = RetryPolicy(maximum_attempts=1) + + +class MessagesModule: + """ + Module for managing task messages in Agentex. + Provides high-level async methods for creating, retrieving, updating, and deleting messages. + """ + + def __init__( + self, + messages_service: MessagesService | None = None, + ): + if messages_service is None: + agentex_client = AsyncAgentex() + stream_repository = RedisEventStreamRepository() + streaming_service = StreamingService( + agentex_client=agentex_client, + stream_repository=stream_repository, + ) + tracer = AsyncTracer(agentex_client) + self._messages_service = MessagesService( + agentex_client=agentex_client, + streaming_service=streaming_service, + tracer=tracer, + ) + else: + self._messages_service = messages_service + + async def create( + self, + task_id: str, + content: TaskMessageContent, + emit_updates: bool = True, + trace_id: str | None = None, + parent_span_id: str | None = None, + start_to_close_timeout: timedelta = timedelta(seconds=5), + heartbeat_timeout: timedelta = timedelta(seconds=5), + retry_policy: RetryPolicy = DEFAULT_RETRY_POLICY, + ) -> TaskMessage: + """ + Create a new message for a task. + + Args: + task_id (str): The ID of the task. + message (TaskMessage): The message to create. + trace_id (Optional[str]): The trace ID for tracing. + parent_span_id (Optional[str]): The parent span ID for tracing. + start_to_close_timeout (timedelta): The start to close timeout. + heartbeat_timeout (timedelta): The heartbeat timeout. + retry_policy (RetryPolicy): The retry policy. + + Returns: + TaskMessageEntity: The created message. + """ + params = CreateMessageParams( + trace_id=trace_id, + parent_span_id=parent_span_id, + task_id=task_id, + content=content, + emit_updates=emit_updates, + ) + if in_temporal_workflow(): + return await ActivityHelpers.execute_activity( + activity_name=MessagesActivityName.CREATE_MESSAGE, + request=params, + response_type=TaskMessage, + start_to_close_timeout=start_to_close_timeout, + retry_policy=retry_policy, + heartbeat_timeout=heartbeat_timeout, + ) + else: + return await self._messages_service.create_message( + task_id=task_id, + content=content, + emit_updates=emit_updates, + ) + + async def update( + self, + task_id: str, + message_id: str, + content: TaskMessageContent, + trace_id: str | None = None, + parent_span_id: str | None = None, + start_to_close_timeout: timedelta = timedelta(seconds=5), + heartbeat_timeout: timedelta = timedelta(seconds=5), + retry_policy: RetryPolicy = DEFAULT_RETRY_POLICY, + ) -> TaskMessage: + """ + Update a message for a task. + + Args: + task_id (str): The ID of the task. + message_id (str): The ID of the message. + message (TaskMessage): The message to update. + start_to_close_timeout (timedelta): The start to close timeout. + heartbeat_timeout (timedelta): The heartbeat timeout. + retry_policy (RetryPolicy): The retry policy. + + Returns: + TaskMessageEntity: The updated message. + """ + params = UpdateMessageParams( + task_id=task_id, + message_id=message_id, + content=content, + trace_id=trace_id, + parent_span_id=parent_span_id, + ) + if in_temporal_workflow(): + return await ActivityHelpers.execute_activity( + activity_name=MessagesActivityName.UPDATE_MESSAGE, + request=params, + response_type=TaskMessage, + start_to_close_timeout=start_to_close_timeout, + retry_policy=retry_policy, + heartbeat_timeout=heartbeat_timeout, + ) + else: + return await self._messages_service.update_message( + task_id=task_id, + message_id=message_id, + content=content, + ) + + async def create_batch( + self, + task_id: str, + contents: list[TaskMessageContent], + emit_updates: bool = True, + trace_id: str | None = None, + parent_span_id: str | None = None, + start_to_close_timeout: timedelta = timedelta(seconds=5), + heartbeat_timeout: timedelta = timedelta(seconds=5), + retry_policy: RetryPolicy = DEFAULT_RETRY_POLICY, + ) -> list[TaskMessage]: + """ + Create a batch of messages for a task. + + Args: + task_id (str): The ID of the task. + messages (List[TaskMessage]): The messages to create. + start_to_close_timeout (timedelta): The start to close timeout. + heartbeat_timeout (timedelta): The heartbeat timeout. + retry_policy (RetryPolicy): The retry policy. + + Returns: + List[TaskMessageEntity]: The created messages. + """ + params = CreateMessagesBatchParams( + task_id=task_id, + contents=contents, + emit_updates=emit_updates, + trace_id=trace_id, + parent_span_id=parent_span_id, + ) + if in_temporal_workflow(): + return await ActivityHelpers.execute_activity( + activity_name=MessagesActivityName.CREATE_MESSAGES_BATCH, + request=params, + response_type=list[TaskMessage], + start_to_close_timeout=start_to_close_timeout, + retry_policy=retry_policy, + heartbeat_timeout=heartbeat_timeout, + ) + else: + return await self._messages_service.create_messages_batch( + task_id=task_id, + contents=contents, + emit_updates=emit_updates, + ) + + async def update_batch( + self, + task_id: str, + updates: dict[str, TaskMessageContent], + trace_id: str | None = None, + parent_span_id: str | None = None, + start_to_close_timeout: timedelta = timedelta(seconds=5), + heartbeat_timeout: timedelta = timedelta(seconds=5), + retry_policy: RetryPolicy = DEFAULT_RETRY_POLICY, + ) -> list[TaskMessage]: + """ + Update a batch of messages for a task. + + Args: + task_id (str): The ID of the task. + updates (Dict[str, TaskMessage]): The updates to apply to the messages. + start_to_close_timeout (timedelta): The start to close timeout. + heartbeat_timeout (timedelta): The heartbeat timeout. + retry_policy (RetryPolicy): The retry policy. + + Returns: + List[TaskMessageEntity]: The updated messages. + """ + params = UpdateMessagesBatchParams( + task_id=task_id, + updates=updates, + trace_id=trace_id, + parent_span_id=parent_span_id, + ) + if in_temporal_workflow(): + return await ActivityHelpers.execute_activity( + activity_name=MessagesActivityName.UPDATE_MESSAGES_BATCH, + request=params, + response_type=list[TaskMessage], + start_to_close_timeout=start_to_close_timeout, + retry_policy=retry_policy, + heartbeat_timeout=heartbeat_timeout, + ) + else: + return await self._messages_service.update_messages_batch( + task_id=task_id, + updates=updates, + ) + + async def list( + self, + task_id: str, + limit: int | None = None, + trace_id: str | None = None, + parent_span_id: str | None = None, + start_to_close_timeout: timedelta = timedelta(seconds=5), + heartbeat_timeout: timedelta = timedelta(seconds=5), + retry_policy: RetryPolicy = DEFAULT_RETRY_POLICY, + ) -> list[TaskMessage]: + """ + List messages for a task. + + Args: + task_id (str): The ID of the task. + limit (Optional[int]): The maximum number of messages to return. + start_to_close_timeout (timedelta): The start to close timeout. + heartbeat_timeout (timedelta): The heartbeat timeout. + retry_policy (RetryPolicy): The retry policy. + + Returns: + List[TaskMessageEntity]: The list of messages. + """ + params = ListMessagesParams( + task_id=task_id, + limit=limit, + trace_id=trace_id, + parent_span_id=parent_span_id, + ) + if in_temporal_workflow(): + return await ActivityHelpers.execute_activity( + activity_name=MessagesActivityName.LIST_MESSAGES, + request=params, + response_type=list[TaskMessage], + start_to_close_timeout=start_to_close_timeout, + retry_policy=retry_policy, + heartbeat_timeout=heartbeat_timeout, + ) + else: + return await self._messages_service.list_messages( + task_id=task_id, + limit=limit, + ) diff --git a/src/agentex/lib/adk/_modules/state.py b/src/agentex/lib/adk/_modules/state.py new file mode 100644 index 000000000..c13a6b59c --- /dev/null +++ b/src/agentex/lib/adk/_modules/state.py @@ -0,0 +1,291 @@ +from datetime import timedelta +from typing import Any + +from pydantic import BaseModel +from temporalio.common import RetryPolicy + +from agentex import AsyncAgentex +from agentex.lib.core.services.adk.state import StateService +from agentex.lib.core.temporal.activities.activity_helpers import ActivityHelpers +from agentex.lib.core.temporal.activities.adk.state_activities import ( + CreateStateParams, + DeleteStateParams, + GetStateParams, + StateActivityName, + UpdateStateParams, +) +from agentex.lib.core.tracing.tracer import AsyncTracer +from agentex.types.state import State +from agentex.lib.utils.logging import make_logger +from agentex.lib.utils.temporal import in_temporal_workflow + +logger = make_logger(__name__) + +# Default retry policy for all state operations +DEFAULT_RETRY_POLICY = RetryPolicy(maximum_attempts=1) + + +class StateModule: + """ + Module for managing task state in Agentex. + Provides high-level async methods for creating, retrieving, updating, and deleting state. + """ + + def __init__( + self, + state_service: StateService | None = None, + ): + if state_service is None: + agentex_client = AsyncAgentex() + tracer = AsyncTracer(agentex_client) + self._state_service = StateService( + agentex_client=agentex_client, tracer=tracer + ) + else: + self._state_service = state_service + + async def create( + self, + task_id: str, + agent_id: str, + state: dict[str, Any] | BaseModel, + trace_id: str | None = None, + parent_span_id: str | None = None, + start_to_close_timeout: timedelta = timedelta(seconds=5), + heartbeat_timeout: timedelta = timedelta(seconds=5), + retry_policy: RetryPolicy = DEFAULT_RETRY_POLICY, + ) -> State: + """ + Create a new state for a task and agent. + + Args: + task_id (str): The ID of the task. + agent_id (str): The ID of the agent. + state (Dict[str, Any]): The state to create. + trace_id (Optional[str]): The trace ID for tracing. + parent_span_id (Optional[str]): The parent span ID for tracing. + start_to_close_timeout (timedelta): The start to close timeout. + heartbeat_timeout (timedelta): The heartbeat timeout. + retry_policy (RetryPolicy): The retry policy. + + Returns: + State: The created state. + """ + state_dict = state.model_dump() if isinstance(state, BaseModel) else state + params = CreateStateParams( + task_id=task_id, + agent_id=agent_id, + state=state_dict, + trace_id=trace_id, + parent_span_id=parent_span_id, + ) + if in_temporal_workflow(): + return await ActivityHelpers.execute_activity( + activity_name=StateActivityName.CREATE_STATE, + request=params, + response_type=State, + start_to_close_timeout=start_to_close_timeout, + retry_policy=retry_policy, + heartbeat_timeout=heartbeat_timeout, + ) + else: + return await self._state_service.create_state( + task_id=task_id, + agent_id=agent_id, + state=state_dict, + trace_id=trace_id, + parent_span_id=parent_span_id, + ) + + async def get( + self, + state_id: str, + trace_id: str | None = None, + parent_span_id: str | None = None, + start_to_close_timeout: timedelta = timedelta(seconds=5), + heartbeat_timeout: timedelta = timedelta(seconds=5), + retry_policy: RetryPolicy = DEFAULT_RETRY_POLICY, + ) -> State | None: + """ + Get a state by ID. + + Args: + state_id (str): The ID of the state. + trace_id (Optional[str]): The trace ID for tracing. + parent_span_id (Optional[str]): The parent span ID for tracing. + start_to_close_timeout (timedelta): The start to close timeout. + heartbeat_timeout (timedelta): The heartbeat timeout. + retry_policy (RetryPolicy): The retry policy. + + Returns: + Optional[State]: The state if found, None otherwise. + """ + params = GetStateParams( + state_id=state_id, + trace_id=trace_id, + parent_span_id=parent_span_id, + ) + if in_temporal_workflow(): + return await ActivityHelpers.execute_activity( + activity_name=StateActivityName.GET_STATE, + request=params, + response_type=State, + start_to_close_timeout=start_to_close_timeout, + retry_policy=retry_policy, + heartbeat_timeout=heartbeat_timeout, + ) + else: + return await self._state_service.get_state( + state_id=state_id, + trace_id=trace_id, + parent_span_id=parent_span_id, + ) + + async def get_by_task_and_agent( + self, + task_id: str, + agent_id: str, + trace_id: str | None = None, + parent_span_id: str | None = None, + start_to_close_timeout: timedelta = timedelta(seconds=5), + heartbeat_timeout: timedelta = timedelta(seconds=5), + retry_policy: RetryPolicy = DEFAULT_RETRY_POLICY, + ) -> State | None: + """ + Get a state by task and agent ID. A state is uniquely identified by task and the agent that created it. + + Args: + task_id (str): The ID of the task. + agent_id (str): The ID of the agent. + trace_id (Optional[str]): The trace ID for tracing. + parent_span_id (Optional[str]): The parent span ID for tracing. + start_to_close_timeout (timedelta): The start to close timeout. + heartbeat_timeout (timedelta): The heartbeat timeout. + retry_policy (RetryPolicy): The retry policy. + + Returns: + Optional[State]: The state if found, None otherwise. + """ + params = GetStateParams( + task_id=task_id, + agent_id=agent_id, + trace_id=trace_id, + parent_span_id=parent_span_id, + ) + if in_temporal_workflow(): + return await ActivityHelpers.execute_activity( + activity_name=StateActivityName.GET_STATE, + request=params, + response_type=State, + start_to_close_timeout=start_to_close_timeout, + retry_policy=retry_policy, + heartbeat_timeout=heartbeat_timeout, + ) + else: + return await self._state_service.get_state( + task_id=task_id, + agent_id=agent_id, + trace_id=trace_id, + parent_span_id=parent_span_id, + ) + + async def update( + self, + state_id: str, + task_id: str, + agent_id: str, + state: dict[str, Any] | BaseModel, + trace_id: str | None = None, + parent_span_id: str | None = None, + start_to_close_timeout: timedelta = timedelta(seconds=5), + heartbeat_timeout: timedelta = timedelta(seconds=5), + retry_policy: RetryPolicy = DEFAULT_RETRY_POLICY, + ) -> State: + """ + Update a state by ID. + + Args: + state_id (str): The ID of the state. + task_id (str): The ID of the task. + agent_id (str): The ID of the agent. + state (Dict[str, Any]): The state to update. + trace_id (Optional[str]): The trace ID for tracing. + parent_span_id (Optional[str]): The parent span ID for tracing. + start_to_close_timeout (timedelta): The start to close timeout. + heartbeat_timeout (timedelta): The heartbeat timeout. + retry_policy (RetryPolicy): The retry policy. + + Returns: + State: The updated state. + """ + state_dict = state.model_dump() if isinstance(state, BaseModel) else state + params = UpdateStateParams( + state_id=state_id, + task_id=task_id, + agent_id=agent_id, + state=state_dict, + trace_id=trace_id, + parent_span_id=parent_span_id, + ) + if in_temporal_workflow(): + return await ActivityHelpers.execute_activity( + activity_name=StateActivityName.UPDATE_STATE, + request=params, + response_type=State, + start_to_close_timeout=start_to_close_timeout, + retry_policy=retry_policy, + heartbeat_timeout=heartbeat_timeout, + ) + else: + return await self._state_service.update_state( + state_id=state_id, + task_id=task_id, + agent_id=agent_id, + state=state_dict, + trace_id=trace_id, + parent_span_id=parent_span_id, + ) + + async def delete( + self, + state_id: str, + trace_id: str | None = None, + parent_span_id: str | None = None, + start_to_close_timeout: timedelta = timedelta(seconds=5), + heartbeat_timeout: timedelta = timedelta(seconds=5), + retry_policy: RetryPolicy = DEFAULT_RETRY_POLICY, + ) -> State: + """ + Delete a state by ID. + + Args: + state_id (str): The ID of the state. + trace_id (Optional[str]): The trace ID for tracing. + parent_span_id (Optional[str]): The parent span ID for tracing. + start_to_close_timeout (timedelta): The start to close timeout. + heartbeat_timeout (timedelta): The heartbeat timeout. + retry_policy (RetryPolicy): The retry policy. + + Returns: + State: The deleted state. + """ + params = DeleteStateParams( + state_id=state_id, + trace_id=trace_id, + parent_span_id=parent_span_id, + ) + if in_temporal_workflow(): + return await ActivityHelpers.execute_activity( + activity_name=StateActivityName.DELETE_STATE, + request=params, + response_type=State, + start_to_close_timeout=start_to_close_timeout, + retry_policy=retry_policy, + heartbeat_timeout=heartbeat_timeout, + ) + else: + return await self._state_service.delete_state( + state_id=state_id, + trace_id=trace_id, + parent_span_id=parent_span_id, + ) diff --git a/src/agentex/lib/adk/_modules/streaming.py b/src/agentex/lib/adk/_modules/streaming.py new file mode 100644 index 000000000..589384ed4 --- /dev/null +++ b/src/agentex/lib/adk/_modules/streaming.py @@ -0,0 +1,75 @@ +from temporalio.common import RetryPolicy + +from agentex import AsyncAgentex +from agentex.lib.core.adapters.streams.adapter_redis import RedisEventStreamRepository +from agentex.lib.core.services.adk.streaming import ( + StreamingService, + StreamingTaskMessageContext, +) +from agentex.types.task_message_content import TaskMessageContent +from agentex.lib.utils.logging import make_logger +from agentex.lib.utils.temporal import in_temporal_workflow + +logger = make_logger(__name__) + +DEFAULT_RETRY_POLICY = RetryPolicy(maximum_attempts=1) + + +class StreamingModule: + """ + Module for streaming content to clients in Agentex. + + This interface wraps around the StreamingService and provides a high-level API + for streaming events to clients, supporting both synchronous and asynchronous + (Temporal workflow) contexts. + """ + + def __init__(self, streaming_service: StreamingService | None = None): + """ + Initialize the streaming interface. + + Args: + streaming_service (Optional[StreamingService]): Optional StreamingService instance. If not provided, + a new service will be created with default parameters. + """ + if streaming_service is None: + stream_repository = RedisEventStreamRepository() + agentex_client = AsyncAgentex() + self._streaming_service = StreamingService( + agentex_client=agentex_client, + stream_repository=stream_repository, + ) + else: + self._streaming_service = streaming_service + + def streaming_task_message_context( + self, + task_id: str, + initial_content: TaskMessageContent, + ) -> StreamingTaskMessageContext: + """ + Create a streaming context for managing TaskMessage lifecycle. + + This is a context manager that automatically creates a TaskMessage, sends START event, + and sends DONE event when the context exits. Perfect for simple streaming scenarios. + + Args: + task_id: The ID of the task + initial_content: The initial content for the TaskMessage + agentex_client: The agentex client for creating/updating messages + + Returns: + StreamingTaskMessageContext: Context manager for streaming operations + """ + # Note: We don't support Temporal activities for streaming context methods yet + # since they involve complex state management across multiple activity calls + if in_temporal_workflow(): + logger.warning( + "Streaming context methods are not yet supported in Temporal workflows. " + "You should wrap the entire streaming context in an activity. All nondeterministic network calls should be wrapped in an activity and generators cannot operate across activities and workflows." + ) + + return self._streaming_service.streaming_task_message_context( + task_id=task_id, + initial_content=initial_content, + ) diff --git a/src/agentex/lib/adk/_modules/tasks.py b/src/agentex/lib/adk/_modules/tasks.py new file mode 100644 index 000000000..8b8f949a7 --- /dev/null +++ b/src/agentex/lib/adk/_modules/tasks.py @@ -0,0 +1,124 @@ +from datetime import timedelta + +from temporalio.common import RetryPolicy + +from agentex import AsyncAgentex +from agentex.lib.core.services.adk.tasks import TasksService +from agentex.lib.core.temporal.activities.activity_helpers import ActivityHelpers +from agentex.lib.core.temporal.activities.adk.tasks_activities import ( + DeleteTaskParams, + GetTaskParams, + TasksActivityName, +) +from agentex.lib.core.tracing.tracer import AsyncTracer +from agentex.types.task import Task +from agentex.lib.utils.logging import make_logger +from agentex.lib.utils.temporal import in_temporal_workflow + +logger = make_logger(__name__) + +DEFAULT_RETRY_POLICY = RetryPolicy(maximum_attempts=1) + + +class TasksModule: + """ + Module for managing tasks in Agentex. + Provides high-level async methods for retrieving, listing, and deleting tasks. + """ + + def __init__( + self, + tasks_service: TasksService | None = None, + ): + if tasks_service is None: + agentex_client = AsyncAgentex() + tracer = AsyncTracer(agentex_client) + self._tasks_service = TasksService( + agentex_client=agentex_client, tracer=tracer + ) + else: + self._tasks_service = tasks_service + + async def get( + self, + *, + task_id: str | None = None, + task_name: str | None = None, + trace_id: str | None = None, + parent_span_id: str | None = None, + start_to_close_timeout: timedelta = timedelta(seconds=5), + heartbeat_timeout: timedelta = timedelta(seconds=5), + retry_policy: RetryPolicy = DEFAULT_RETRY_POLICY, + ) -> Task: + """ + Get a task by ID or name. + Args: + task_id: The ID of the task to retrieve. + task_name: The name of the task to retrieve. + Returns: + The task entry. + """ + params = GetTaskParams( + task_id=task_id, + task_name=task_name, + trace_id=trace_id, + parent_span_id=parent_span_id, + ) + if in_temporal_workflow(): + return await ActivityHelpers.execute_activity( + activity_name=TasksActivityName.GET_TASK, + request=params, + response_type=Task, + start_to_close_timeout=start_to_close_timeout, + retry_policy=retry_policy, + heartbeat_timeout=heartbeat_timeout, + ) + else: + return await self._tasks_service.get_task( + task_id=task_id, + task_name=task_name, + trace_id=trace_id, + parent_span_id=parent_span_id, + ) + + async def delete( + self, + *, + task_id: str | None = None, + task_name: str | None = None, + trace_id: str | None = None, + parent_span_id: str | None = None, + start_to_close_timeout: timedelta = timedelta(seconds=5), + heartbeat_timeout: timedelta = timedelta(seconds=5), + retry_policy: RetryPolicy = DEFAULT_RETRY_POLICY, + ) -> Task: + """ + Delete a task by ID or name. + Args: + task_id: The ID of the task to delete. + task_name: The name of the task to delete. + Returns: + The deleted task entry. + """ + params = DeleteTaskParams( + task_id=task_id, + task_name=task_name, + trace_id=trace_id, + parent_span_id=parent_span_id, + ) + if in_temporal_workflow(): + return await ActivityHelpers.execute_activity( + activity_name=TasksActivityName.DELETE_TASK, + request=params, + response_type=Task, + start_to_close_timeout=start_to_close_timeout, + retry_policy=retry_policy, + heartbeat_timeout=heartbeat_timeout, + ) + else: + return await self._tasks_service.delete_task( + task_id=task_id, + task_name=task_name, + trace_id=trace_id, + parent_span_id=parent_span_id, + ) diff --git a/src/agentex/lib/adk/_modules/tracing.py b/src/agentex/lib/adk/_modules/tracing.py new file mode 100644 index 000000000..138f25c93 --- /dev/null +++ b/src/agentex/lib/adk/_modules/tracing.py @@ -0,0 +1,194 @@ +from collections.abc import AsyncGenerator +from contextlib import asynccontextmanager +from datetime import timedelta +from typing import Any + +from temporalio.common import RetryPolicy + +from agentex import AsyncAgentex +from agentex.lib.core.services.adk.tracing import TracingService +from agentex.lib.core.temporal.activities.activity_helpers import ActivityHelpers +from agentex.lib.core.temporal.activities.adk.tracing_activities import ( + EndSpanParams, + StartSpanParams, + TracingActivityName, +) +from agentex.lib.core.tracing.tracer import AsyncTracer +from agentex.types.span import Span +from agentex.lib.utils.logging import make_logger +from agentex.lib.utils.model_utils import BaseModel +from agentex.lib.utils.temporal import in_temporal_workflow + +logger = make_logger(__name__) + +DEFAULT_RETRY_POLICY = RetryPolicy(maximum_attempts=1) + + +class TracingModule: + """ + Module for managing tracing and span operations in Agentex. + Provides high-level async methods for starting, ending, and managing spans for distributed tracing. + """ + + def __init__(self, tracing_service: TracingService | None = None): + """ + Initialize the tracing interface. + + Args: + tracing_activities (Optional[TracingActivities]): Optional pre-configured tracing activities. If None, will be auto-initialized. + """ + if tracing_service is None: + agentex_client = AsyncAgentex() + tracer = AsyncTracer(agentex_client) + self._tracing_service = TracingService(tracer=tracer) + else: + self._tracing_service = tracing_service + + @asynccontextmanager + async def span( + self, + trace_id: str, + name: str, + input: list[Any] | dict[str, Any] | BaseModel | None = None, + data: list[Any] | dict[str, Any] | BaseModel | None = None, + parent_id: str | None = None, + start_to_close_timeout: timedelta = timedelta(seconds=5), + heartbeat_timeout: timedelta = timedelta(seconds=5), + retry_policy: RetryPolicy = DEFAULT_RETRY_POLICY, + ) -> AsyncGenerator[Span | None, None]: + """ + Async context manager for creating and automatically closing a span. + Yields the started span object. The span is automatically ended when the context exits. + + If trace_id is falsy, acts as a no-op context manager. + + Args: + trace_id (str): The trace ID for the span. + name (str): The name of the span. + input (Union[List, Dict, BaseModel]): The input for the span. + parent_id (Optional[str]): The parent span ID for the span. + data (Optional[Union[List, Dict, BaseModel]]): The data for the span. + start_to_close_timeout (timedelta): The start to close timeout for the span. + heartbeat_timeout (timedelta): The heartbeat timeout for the span. + retry_policy (RetryPolicy): The retry policy for the span. + + Returns: + AsyncGenerator[Optional[Span], None]: An async generator that yields the started span object. + """ + if not trace_id: + yield None + return + + span: Span | None = await self.start_span( + trace_id=trace_id, + name=name, + input=input, + parent_id=parent_id, + data=data, + start_to_close_timeout=start_to_close_timeout, + heartbeat_timeout=heartbeat_timeout, + retry_policy=retry_policy, + ) + try: + yield span + finally: + if span: + await self.end_span( + trace_id=trace_id, + span=span, + start_to_close_timeout=start_to_close_timeout, + heartbeat_timeout=heartbeat_timeout, + retry_policy=retry_policy, + ) + + async def start_span( + self, + trace_id: str, + name: str, + input: list[Any] | dict[str, Any] | BaseModel | None = None, + parent_id: str | None = None, + data: list[Any] | dict[str, Any] | BaseModel | None = None, + start_to_close_timeout: timedelta = timedelta(seconds=5), + heartbeat_timeout: timedelta = timedelta(seconds=1), + retry_policy: RetryPolicy = DEFAULT_RETRY_POLICY, + ) -> Span | None: + """ + Start a new span in the trace. + + Args: + trace_id (str): The trace ID for the span. + name (str): The name of the span. + input (Union[List, Dict, BaseModel]): The input for the span. + parent_id (Optional[str]): The parent span ID for the span. + data (Optional[Union[List, Dict, BaseModel]]): The data for the span. + start_to_close_timeout (timedelta): The start to close timeout for the span. + heartbeat_timeout (timedelta): The heartbeat timeout for the span. + retry_policy (RetryPolicy): The retry policy for the span. + + Returns: + Span: The started span object. + """ + params = StartSpanParams( + trace_id=trace_id, + parent_id=parent_id, + name=name, + input=input, + data=data, + ) + if in_temporal_workflow(): + return await ActivityHelpers.execute_activity( + activity_name=TracingActivityName.START_SPAN, + request=params, + response_type=Span, + start_to_close_timeout=start_to_close_timeout, + retry_policy=retry_policy, + heartbeat_timeout=heartbeat_timeout, + ) + else: + return await self._tracing_service.start_span( + trace_id=trace_id, + name=name, + input=input, + parent_id=parent_id, + data=data, + ) + + async def end_span( + self, + trace_id: str, + span: Span, + start_to_close_timeout: timedelta = timedelta(seconds=5), + heartbeat_timeout: timedelta = timedelta(seconds=1), + retry_policy: RetryPolicy = DEFAULT_RETRY_POLICY, + ) -> Span: + """ + End an existing span in the trace. + + Args: + trace_id (str): The trace ID for the span. + span (Span): The span to end. + start_to_close_timeout (timedelta): The start to close timeout for the span. + heartbeat_timeout (timedelta): The heartbeat timeout for the span. + retry_policy (RetryPolicy): The retry policy for the span. + + Returns: + Span: The ended span object. + """ + params = EndSpanParams( + trace_id=trace_id, + span=span, + ) + if in_temporal_workflow(): + return await ActivityHelpers.execute_activity( + activity_name=TracingActivityName.END_SPAN, + request=params, + response_type=Span, + start_to_close_timeout=start_to_close_timeout, + retry_policy=retry_policy, + heartbeat_timeout=heartbeat_timeout, + ) + else: + return await self._tracing_service.end_span( + trace_id=trace_id, + span=span, + ) diff --git a/src/agentex/lib/adk/providers/__init__.py b/src/agentex/lib/adk/providers/__init__.py new file mode 100644 index 000000000..cf3696b82 --- /dev/null +++ b/src/agentex/lib/adk/providers/__init__.py @@ -0,0 +1,9 @@ +from agentex.lib.adk.providers._modules.litellm import LiteLLMModule +from agentex.lib.adk.providers._modules.openai import OpenAIModule +from agentex.lib.adk.providers._modules.sgp import SGPModule + +openai = OpenAIModule() +litellm = LiteLLMModule() +sgp = SGPModule() + +__all__ = ["openai", "litellm", "sgp"] diff --git a/src/agentex/lib/adk/providers/_modules/__init__.py b/src/agentex/lib/adk/providers/_modules/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/src/agentex/lib/adk/providers/_modules/litellm.py b/src/agentex/lib/adk/providers/_modules/litellm.py new file mode 100644 index 000000000..f638e308c --- /dev/null +++ b/src/agentex/lib/adk/providers/_modules/litellm.py @@ -0,0 +1,232 @@ +from collections.abc import AsyncGenerator +from datetime import timedelta + +from temporalio.common import RetryPolicy + +from agentex import AsyncAgentex +from agentex.lib.core.adapters.llm.adapter_litellm import LiteLLMGateway +from agentex.lib.core.adapters.streams.adapter_redis import RedisEventStreamRepository +from agentex.lib.core.services.adk.providers.litellm import LiteLLMService +from agentex.lib.core.services.adk.streaming import StreamingService +from agentex.lib.core.temporal.activities.activity_helpers import ActivityHelpers +from agentex.lib.core.temporal.activities.adk.providers.litellm_activities import ( + ChatCompletionAutoSendParams, + ChatCompletionParams, + ChatCompletionStreamAutoSendParams, + LiteLLMActivityName, +) +from agentex.lib.core.tracing.tracer import AsyncTracer +from agentex.lib.types.llm_messages import Completion, LLMConfig +from agentex.types.task_message import TaskMessage +from agentex.lib.utils.logging import make_logger +from agentex.lib.utils.temporal import in_temporal_workflow + +logger = make_logger(__name__) + +# Default retry policy for all LiteLLM operations +DEFAULT_RETRY_POLICY = RetryPolicy(maximum_attempts=1) + + +class LiteLLMModule: + """ + Module for managing LiteLLM agent operations in Agentex. + Provides high-level methods for chat completion, streaming, agentic streaming. + """ + + def __init__( + self, + litellm_service: LiteLLMService | None = None, + ): + if litellm_service is None: + # Create default service + agentex_client = AsyncAgentex() + stream_repository = RedisEventStreamRepository() + streaming_service = StreamingService( + agentex_client=agentex_client, + stream_repository=stream_repository, + ) + litellm_gateway = LiteLLMGateway() + tracer = AsyncTracer(agentex_client) + self._litellm_service = LiteLLMService( + agentex_client=agentex_client, + llm_gateway=litellm_gateway, + streaming_service=streaming_service, + tracer=tracer, + ) + else: + self._litellm_service = litellm_service + + async def chat_completion( + self, + llm_config: LLMConfig, + trace_id: str | None = None, + parent_span_id: str | None = None, + start_to_close_timeout: timedelta = timedelta(seconds=120), + heartbeat_timeout: timedelta = timedelta(seconds=120), + retry_policy: RetryPolicy = DEFAULT_RETRY_POLICY, + ) -> Completion: + """ + Perform a chat completion using LiteLLM. + + Args: + llm_config (LLMConfig): The configuration for the LLM. + trace_id (Optional[str]): The trace ID for tracing. + parent_span_id (Optional[str]): The parent span ID for tracing. + start_to_close_timeout (timedelta): The start to close timeout. + heartbeat_timeout (timedelta): The heartbeat timeout. + retry_policy (RetryPolicy): The retry policy. + + Returns: + Completion: An OpenAI compatible Completion object + """ + if in_temporal_workflow(): + params = ChatCompletionParams( + trace_id=trace_id, parent_span_id=parent_span_id, llm_config=llm_config + ) + return await ActivityHelpers.execute_activity( + activity_name=LiteLLMActivityName.CHAT_COMPLETION, + request=params, + response_type=Completion, + start_to_close_timeout=start_to_close_timeout, + heartbeat_timeout=heartbeat_timeout, + retry_policy=retry_policy, + ) + else: + return await self._litellm_service.chat_completion( + llm_config=llm_config, + trace_id=trace_id, + parent_span_id=parent_span_id, + ) + + async def chat_completion_auto_send( + self, + task_id: str, + llm_config: LLMConfig, + trace_id: str | None = None, + parent_span_id: str | None = None, + start_to_close_timeout: timedelta = timedelta(seconds=120), + heartbeat_timeout: timedelta = timedelta(seconds=120), + retry_policy: RetryPolicy = DEFAULT_RETRY_POLICY, + ) -> TaskMessage | None: + """ + Chat completion with automatic TaskMessage creation. + + Args: + task_id (str): The ID of the task. + llm_config (LLMConfig): The configuration for the LLM (must have stream=False). + trace_id (Optional[str]): The trace ID for tracing. + parent_span_id (Optional[str]): The parent span ID for tracing. + start_to_close_timeout (timedelta): The start to close timeout. + heartbeat_timeout (timedelta): The heartbeat timeout. + retry_policy (RetryPolicy): The retry policy. + + Returns: + TaskMessage: The final TaskMessage + """ + if in_temporal_workflow(): + # Use streaming activity with stream=False for non-streaming auto-send + params = ChatCompletionAutoSendParams( + trace_id=trace_id, + parent_span_id=parent_span_id, + task_id=task_id, + llm_config=llm_config, + ) + return await ActivityHelpers.execute_activity( + activity_name=LiteLLMActivityName.CHAT_COMPLETION_AUTO_SEND, + request=params, + response_type=TaskMessage, + start_to_close_timeout=start_to_close_timeout, + heartbeat_timeout=heartbeat_timeout, + retry_policy=retry_policy, + ) + else: + return await self._litellm_service.chat_completion_auto_send( + task_id=task_id, + llm_config=llm_config, + trace_id=trace_id, + parent_span_id=parent_span_id, + ) + + async def chat_completion_stream( + self, + llm_config: LLMConfig, + trace_id: str | None = None, + parent_span_id: str | None = None, + ) -> AsyncGenerator[Completion, None]: + """ + Stream chat completion chunks using LiteLLM. + + DEFAULT: Returns raw streaming chunks for manual handling. + + NOTE: This method does NOT work in Temporal workflows! + Temporal activities cannot return generators. Use chat_completion_stream_auto_send() instead. + + Args: + llm_config (LLMConfig): The configuration for the LLM (must have stream=True). + trace_id (Optional[str]): The trace ID for tracing. + parent_span_id (Optional[str]): The parent span ID for tracing. + start_to_close_timeout (timedelta): The start to close timeout. + heartbeat_timeout (timedelta): The heartbeat timeout. + retry_policy (RetryPolicy): The retry policy. + + Returns: + AsyncGenerator[Completion, None]: Generator yielding completion chunks + + Raises: + ValueError: If called from within a Temporal workflow + """ + # Delegate to service - it handles temporal workflow checks + async for chunk in self._litellm_service.chat_completion_stream( + llm_config=llm_config, + trace_id=trace_id, + parent_span_id=parent_span_id, + ): + yield chunk + + async def chat_completion_stream_auto_send( + self, + task_id: str, + llm_config: LLMConfig, + trace_id: str | None = None, + parent_span_id: str | None = None, + start_to_close_timeout: timedelta = timedelta(seconds=120), + heartbeat_timeout: timedelta = timedelta(seconds=120), + retry_policy: RetryPolicy = DEFAULT_RETRY_POLICY, + ) -> TaskMessage | None: + """ + Stream chat completion with automatic TaskMessage creation and streaming. + + Args: + task_id (str): The ID of the task to run the agent for. + llm_config (LLMConfig): The configuration for the LLM (must have stream=True). + trace_id (Optional[str]): The trace ID for tracing. + parent_span_id (Optional[str]): The parent span ID for tracing. + start_to_close_timeout (timedelta): The start to close timeout. + heartbeat_timeout (timedelta): The heartbeat timeout. + retry_policy (RetryPolicy): The retry policy. + + Returns: + TaskMessage: The final TaskMessage after streaming is complete + """ + if in_temporal_workflow(): + params = ChatCompletionStreamAutoSendParams( + trace_id=trace_id, + parent_span_id=parent_span_id, + task_id=task_id, + llm_config=llm_config, + ) + return await ActivityHelpers.execute_activity( + activity_name=LiteLLMActivityName.CHAT_COMPLETION_STREAM_AUTO_SEND, + request=params, + response_type=TaskMessage, + start_to_close_timeout=start_to_close_timeout, + heartbeat_timeout=heartbeat_timeout, + retry_policy=retry_policy, + ) + else: + return await self._litellm_service.chat_completion_stream_auto_send( + task_id=task_id, + llm_config=llm_config, + trace_id=trace_id, + parent_span_id=parent_span_id, + ) diff --git a/src/agentex/lib/adk/providers/_modules/openai.py b/src/agentex/lib/adk/providers/_modules/openai.py new file mode 100644 index 000000000..e9f2dd68e --- /dev/null +++ b/src/agentex/lib/adk/providers/_modules/openai.py @@ -0,0 +1,416 @@ +from datetime import timedelta +from typing import Any, Literal + +from agents import Agent, RunResult, RunResultStreaming +from agents.agent import StopAtTools, ToolsToFinalOutputFunction +from agents.agent_output import AgentOutputSchemaBase +from agents.model_settings import ModelSettings +from agents.tool import Tool +from mcp import StdioServerParameters +from temporalio.common import RetryPolicy + +from agentex import AsyncAgentex +from agentex.lib.core.adapters.streams.adapter_redis import RedisEventStreamRepository +from agentex.lib.core.services.adk.providers.openai import OpenAIService +from agentex.lib.core.services.adk.streaming import StreamingService +from agentex.lib.core.temporal.activities.activity_helpers import ActivityHelpers +from agentex.lib.core.temporal.activities.adk.providers.openai_activities import ( + OpenAIActivityName, + RunAgentAutoSendParams, + RunAgentParams, + RunAgentStreamedAutoSendParams, +) +from agentex.lib.core.tracing.tracer import AsyncTracer +from agentex.lib.types.agent_results import ( + SerializableRunResult, + SerializableRunResultStreaming, +) +from agentex.lib.utils.logging import make_logger +from agentex.lib.utils.temporal import in_temporal_workflow + +logger = make_logger(__name__) + +# Default retry policy for all OpenAI operations +DEFAULT_RETRY_POLICY = RetryPolicy(maximum_attempts=1) + + +class OpenAIModule: + """ + Module for managing OpenAI agent operations in Agentex. + Provides high-level methods for running agents with and without streaming. + """ + + def __init__( + self, + openai_service: OpenAIService | None = None, + ): + if openai_service is None: + # Create default service + agentex_client = AsyncAgentex() + stream_repository = RedisEventStreamRepository() + streaming_service = StreamingService( + agentex_client=agentex_client, + stream_repository=stream_repository, + ) + tracer = AsyncTracer(agentex_client) + self._openai_service = OpenAIService( + agentex_client=agentex_client, + streaming_service=streaming_service, + tracer=tracer, + ) + else: + self._openai_service = openai_service + + async def run_agent( + self, + input_list: list[dict[str, Any]], + mcp_server_params: list[StdioServerParameters], + agent_name: str, + agent_instructions: str, + trace_id: str | None = None, + parent_span_id: str | None = None, + start_to_close_timeout: timedelta = timedelta(seconds=600), + heartbeat_timeout: timedelta = timedelta(seconds=600), + retry_policy: RetryPolicy = DEFAULT_RETRY_POLICY, + handoff_description: str | None = None, + handoffs: list[Agent] | None = None, + model: str | None = None, + model_settings: ModelSettings | None = None, + tools: list[Tool] | None = None, + output_type: type[Any] | AgentOutputSchemaBase | None = None, + tool_use_behavior: ( + Literal["run_llm_again", "stop_on_first_tool"] + | StopAtTools + | ToolsToFinalOutputFunction + ) = "run_llm_again", + ) -> SerializableRunResult | RunResult: + """ + Run an agent without streaming or TaskMessage creation. + + DEFAULT: No TaskMessage creation, returns only the result. + + Args: + input_list: List of input data for the agent. + mcp_server_params: MCP server parameters for the agent. + agent_name: The name of the agent to run. + agent_instructions: Instructions for the agent. + trace_id: Optional trace ID for tracing. + parent_span_id: Optional parent span for tracing. + start_to_close_timeout: Maximum time allowed for the operation. + heartbeat_timeout: Maximum time between heartbeats. + retry_policy: Policy for retrying failed operations. + handoff_description: Optional description of the handoff. + handoffs: Optional list of handoffs. + model: Optional model to use. + model_settings: Optional model settings. + tools: Optional list of tools. + output_type: Optional output type. + tool_use_behavior: Optional tool use behavior. + + Returns: + Union[SerializableRunResult, RunResult]: SerializableRunResult when in Temporal, RunResult otherwise. + """ + if in_temporal_workflow(): + params = RunAgentParams( + trace_id=trace_id, + parent_span_id=parent_span_id, + input_list=input_list, + mcp_server_params=mcp_server_params, + agent_name=agent_name, + agent_instructions=agent_instructions, + handoff_description=handoff_description, + handoffs=handoffs, + model=model, + model_settings=model_settings, + tools=tools, + output_type=output_type, + tool_use_behavior=tool_use_behavior, + ) + return await ActivityHelpers.execute_activity( + activity_name=OpenAIActivityName.RUN_AGENT, + request=params, + response_type=SerializableRunResult, + start_to_close_timeout=start_to_close_timeout, + heartbeat_timeout=heartbeat_timeout, + retry_policy=retry_policy, + ) + else: + return await self._openai_service.run_agent( + input_list=input_list, + mcp_server_params=mcp_server_params, + agent_name=agent_name, + agent_instructions=agent_instructions, + trace_id=trace_id, + parent_span_id=parent_span_id, + handoff_description=handoff_description, + handoffs=handoffs, + model=model, + model_settings=model_settings, + tools=tools, + output_type=output_type, + tool_use_behavior=tool_use_behavior, + ) + + async def run_agent_auto_send( + self, + task_id: str, + input_list: list[dict[str, Any]], + mcp_server_params: list[StdioServerParameters], + agent_name: str, + agent_instructions: str, + trace_id: str | None = None, + parent_span_id: str | None = None, + start_to_close_timeout: timedelta = timedelta(seconds=600), + heartbeat_timeout: timedelta = timedelta(seconds=600), + retry_policy: RetryPolicy = DEFAULT_RETRY_POLICY, + handoff_description: str | None = None, + handoffs: list[Agent] | None = None, + model: str | None = None, + model_settings: ModelSettings | None = None, + tools: list[Tool] | None = None, + output_type: type[Any] | AgentOutputSchemaBase | None = None, + tool_use_behavior: ( + Literal["run_llm_again", "stop_on_first_tool"] + | StopAtTools + | ToolsToFinalOutputFunction + ) = "run_llm_again", + ) -> SerializableRunResult | RunResult: + """ + Run an agent with automatic TaskMessage creation. + + Args: + task_id: The ID of the task to run the agent for. + input_list: List of input data for the agent. + mcp_server_params: MCP server parameters for the agent. + agent_name: The name of the agent to run. + agent_instructions: Instructions for the agent. + trace_id: Optional trace ID for tracing. + parent_span_id: Optional parent span for tracing. + start_to_close_timeout: Maximum time allowed for the operation. + heartbeat_timeout: Maximum time between heartbeats. + retry_policy: Policy for retrying failed operations. + handoff_description: Optional description of the handoff. + handoffs: Optional list of handoffs. + model: Optional model to use. + model_settings: Optional model settings. + tools: Optional list of tools. + output_type: Optional output type. + tool_use_behavior: Optional tool use behavior. + + Returns: + Union[SerializableRunResult, RunResult]: SerializableRunResult when in Temporal, RunResult otherwise. + """ + if in_temporal_workflow(): + params = RunAgentAutoSendParams( + trace_id=trace_id, + parent_span_id=parent_span_id, + task_id=task_id, + input_list=input_list, + mcp_server_params=mcp_server_params, + agent_name=agent_name, + agent_instructions=agent_instructions, + handoff_description=handoff_description, + handoffs=handoffs, + model=model, + model_settings=model_settings, + tools=tools, + output_type=output_type, + tool_use_behavior=tool_use_behavior, + ) + return await ActivityHelpers.execute_activity( + activity_name=OpenAIActivityName.RUN_AGENT_AUTO_SEND, + request=params, + response_type=SerializableRunResult, + start_to_close_timeout=start_to_close_timeout, + heartbeat_timeout=heartbeat_timeout, + retry_policy=retry_policy, + ) + else: + return await self._openai_service.run_agent_auto_send( + task_id=task_id, + input_list=input_list, + mcp_server_params=mcp_server_params, + agent_name=agent_name, + agent_instructions=agent_instructions, + trace_id=trace_id, + parent_span_id=parent_span_id, + handoff_description=handoff_description, + handoffs=handoffs, + model=model, + model_settings=model_settings, + tools=tools, + output_type=output_type, + tool_use_behavior=tool_use_behavior, + ) + + async def run_agent_streamed( + self, + input_list: list[dict[str, Any]], + mcp_server_params: list[StdioServerParameters], + agent_name: str, + agent_instructions: str, + trace_id: str | None = None, + parent_span_id: str | None = None, + handoff_description: str | None = None, + handoffs: list[Agent] | None = None, + model: str | None = None, + model_settings: ModelSettings | None = None, + tools: list[Tool] | None = None, + output_type: type[Any] | AgentOutputSchemaBase | None = None, + tool_use_behavior: ( + Literal["run_llm_again", "stop_on_first_tool"] + | StopAtTools + | ToolsToFinalOutputFunction + ) = "run_llm_again", + ) -> RunResultStreaming: + """ + Run an agent with streaming enabled but no TaskMessage creation. + + DEFAULT: No TaskMessage creation, returns only the result. + + NOTE: This method does NOT work in Temporal workflows! + Use run_agent_streamed_auto_send() instead for Temporal workflows. + + Args: + input_list: List of input data for the agent. + mcp_server_params: MCP server parameters for the agent. + agent_name: The name of the agent to run. + agent_instructions: Instructions for the agent. + trace_id: Optional trace ID for tracing. + parent_span_id: Optional parent span for tracing. + start_to_close_timeout: Maximum time allowed for the operation. + heartbeat_timeout: Maximum time between heartbeats. + retry_policy: Policy for retrying failed operations. + handoff_description: Optional description of the handoff. + handoffs: Optional list of handoffs. + model: Optional model to use. + model_settings: Optional model settings. + tools: Optional list of tools. + output_type: Optional output type. + tool_use_behavior: Optional tool use behavior. + + Returns: + RunResultStreaming: The result of the agent run with streaming. + + Raises: + ValueError: If called from within a Temporal workflow + """ + # Temporal workflows should use the auto_send variant + if in_temporal_workflow(): + raise ValueError( + "run_agent_streamed() cannot be used in Temporal workflows. " + "Use run_agent_streamed_auto_send() instead, which properly handles " + "TaskMessage creation and streaming through the streaming service." + ) + + return await self._openai_service.run_agent_streamed( + input_list=input_list, + mcp_server_params=mcp_server_params, + agent_name=agent_name, + agent_instructions=agent_instructions, + trace_id=trace_id, + parent_span_id=parent_span_id, + handoff_description=handoff_description, + handoffs=handoffs, + model=model, + model_settings=model_settings, + tools=tools, + output_type=output_type, + tool_use_behavior=tool_use_behavior, + ) + + async def run_agent_streamed_auto_send( + self, + task_id: str, + input_list: list[dict[str, Any]], + mcp_server_params: list[StdioServerParameters], + agent_name: str, + agent_instructions: str, + trace_id: str | None = None, + parent_span_id: str | None = None, + start_to_close_timeout: timedelta = timedelta(seconds=600), + heartbeat_timeout: timedelta = timedelta(seconds=600), + retry_policy: RetryPolicy = DEFAULT_RETRY_POLICY, + handoff_description: str | None = None, + handoffs: list[Agent] | None = None, + model: str | None = None, + model_settings: ModelSettings | None = None, + tools: list[Tool] | None = None, + output_type: type[Any] | AgentOutputSchemaBase | None = None, + tool_use_behavior: ( + Literal["run_llm_again", "stop_on_first_tool"] + | StopAtTools + | ToolsToFinalOutputFunction + ) = "run_llm_again", + mcp_timeout_seconds: int | None = None, + ) -> SerializableRunResultStreaming | RunResultStreaming: + """ + Run an agent with streaming enabled and automatic TaskMessage creation. + + Args: + task_id: The ID of the task to run the agent for. + input_list: List of input data for the agent. + mcp_server_params: MCP server parameters for the agent. + agent_name: The name of the agent to run. + agent_instructions: Instructions for the agent. + trace_id: Optional trace ID for tracing. + parent_span_id: Optional parent span for tracing. + start_to_close_timeout: Maximum time allowed for the operation. + heartbeat_timeout: Maximum time between heartbeats. + retry_policy: Policy for retrying failed operations. + handoff_description: Optional description of the handoff. + handoffs: Optional list of handoffs. + model: Optional model to use. + model_settings: Optional model settings. + tools: Optional list of tools. + output_type: Optional output type. + tool_use_behavior: Optional tool use behavior. + mcp_timeout_seconds: Optional param to set the timeout threshold for the MCP servers. Defaults to 5 seconds. + + Returns: + Union[SerializableRunResultStreaming, RunResultStreaming]: SerializableRunResultStreaming when in Temporal, RunResultStreaming otherwise. + """ + if in_temporal_workflow(): + params = RunAgentStreamedAutoSendParams( + trace_id=trace_id, + parent_span_id=parent_span_id, + task_id=task_id, + input_list=input_list, + mcp_server_params=mcp_server_params, + agent_name=agent_name, + agent_instructions=agent_instructions, + handoff_description=handoff_description, + handoffs=handoffs, + model=model, + model_settings=model_settings, + tools=tools, + output_type=output_type, + tool_use_behavior=tool_use_behavior, + mcp_timeout_seconds=mcp_timeout_seconds, + ) + return await ActivityHelpers.execute_activity( + activity_name=OpenAIActivityName.RUN_AGENT_STREAMED_AUTO_SEND, + request=params, + response_type=SerializableRunResultStreaming, + start_to_close_timeout=start_to_close_timeout, + heartbeat_timeout=heartbeat_timeout, + retry_policy=retry_policy, + ) + else: + return await self._openai_service.run_agent_streamed_auto_send( + task_id=task_id, + input_list=input_list, + mcp_server_params=mcp_server_params, + agent_name=agent_name, + agent_instructions=agent_instructions, + trace_id=trace_id, + parent_span_id=parent_span_id, + handoff_description=handoff_description, + handoffs=handoffs, + model=model, + model_settings=model_settings, + tools=tools, + output_type=output_type, + tool_use_behavior=tool_use_behavior, + mcp_timeout_seconds=mcp_timeout_seconds, + ) diff --git a/src/agentex/lib/adk/providers/_modules/sgp.py b/src/agentex/lib/adk/providers/_modules/sgp.py new file mode 100644 index 000000000..66ccf37c4 --- /dev/null +++ b/src/agentex/lib/adk/providers/_modules/sgp.py @@ -0,0 +1,85 @@ +from datetime import timedelta + +from scale_gp import SGPClient, SGPClientError +from temporalio.common import RetryPolicy + +from agentex import AsyncAgentex +from agentex.lib.core.services.adk.providers.sgp import SGPService +from agentex.lib.core.temporal.activities.activity_helpers import ActivityHelpers +from agentex.lib.core.temporal.activities.adk.providers.sgp_activities import ( + DownloadFileParams, + FileContentResponse, + SGPActivityName, +) +from agentex.lib.core.tracing.tracer import AsyncTracer +from agentex.lib.utils.logging import make_logger +from agentex.lib.utils.temporal import in_temporal_workflow + +logger = make_logger(__name__) + +DEFAULT_RETRY_POLICY = RetryPolicy(maximum_attempts=1) + + +class SGPModule: + """ + Module for managing SGP agent operations in Agentex. + Provides high-level methods for chat completion, streaming, agentic streaming, and message classification. + """ + + def __init__( + self, + sgp_service: SGPService | None = None, + ): + if sgp_service is None: + try: + sgp_client = SGPClient() + agentex_client = AsyncAgentex() + tracer = AsyncTracer(agentex_client) + self._sgp_service = SGPService(sgp_client=sgp_client, tracer=tracer) + except SGPClientError: + self._sgp_service = None + else: + self._sgp_service = sgp_service + + async def download_file_content( + self, + params: DownloadFileParams, + start_to_close_timeout: timedelta = timedelta(seconds=30), + heartbeat_timeout: timedelta = timedelta(seconds=30), + retry_policy: RetryPolicy = DEFAULT_RETRY_POLICY, + ) -> FileContentResponse: + """ + Download the content of a file from SGP. + + Args: + params (DownloadFileParams): The parameters for the download file content activity. + start_to_close_timeout (timedelta): The start to close timeout. + heartbeat_timeout (timedelta): The heartbeat timeout. + retry_policy (RetryPolicy): The retry policy. + + Returns: + FileContentResponse: The content of the file + """ + if self._sgp_service is None: + raise ValueError( + "SGP activities are disabled because the SGP client could not be initialized. Please check that the SGP_API_KEY environment variable is set." + ) + + params = DownloadFileParams( + file_id=params.file_id, + filename=params.filename, + ) + if in_temporal_workflow(): + return await ActivityHelpers.execute_activity( + activity_name=SGPActivityName.DOWNLOAD_FILE_CONTENT, + request=params, + response_type=FileContentResponse, + start_to_close_timeout=start_to_close_timeout, + heartbeat_timeout=heartbeat_timeout, + retry_policy=retry_policy, + ) + else: + return await self._sgp_service.download_file_content( + file_id=params.file_id, + filename=params.filename, + ) diff --git a/src/agentex/lib/adk/utils/__init__.py b/src/agentex/lib/adk/utils/__init__.py new file mode 100644 index 000000000..c190cb6e7 --- /dev/null +++ b/src/agentex/lib/adk/utils/__init__.py @@ -0,0 +1,5 @@ +from agentex.lib.adk.utils._modules.templating import TemplatingModule + +__all__ = ["templating"] + +templating = TemplatingModule() diff --git a/src/agentex/lib/adk/utils/_modules/__init__.py b/src/agentex/lib/adk/utils/_modules/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/src/agentex/lib/adk/utils/_modules/templating.py b/src/agentex/lib/adk/utils/_modules/templating.py new file mode 100644 index 000000000..8b2108c99 --- /dev/null +++ b/src/agentex/lib/adk/utils/_modules/templating.py @@ -0,0 +1,94 @@ +from datetime import timedelta +from typing import Any + +from temporalio.common import RetryPolicy + +from agentex import AsyncAgentex +from agentex.lib.core.services.adk.utils.templating import TemplatingService +from agentex.lib.core.temporal.activities.activity_helpers import ActivityHelpers +from agentex.lib.core.temporal.activities.adk.utils.templating_activities import ( + JinjaActivityName, + RenderJinjaParams, +) +from agentex.lib.core.tracing.tracer import AsyncTracer +from agentex.lib.utils.logging import make_logger +from agentex.lib.utils.temporal import in_temporal_workflow + +logger = make_logger(__name__) + +DEFAULT_RETRY_POLICY = RetryPolicy(maximum_attempts=1) + + +class TemplatingModule: + """ + Module for managing templating operations in Agentex. + + This interface provides high-level methods for rendering Jinja templates, abstracting away + the underlying activity and workflow execution. It supports both synchronous and asynchronous + (Temporal workflow) contexts. + """ + + def __init__( + self, + templating_service: TemplatingService | None = None, + ): + """ + Initialize the templating interface. + + Args: + templating_service (Optional[TemplatingService]): Optional pre-configured templating service. If None, will be auto-initialized. + """ + if templating_service is None: + agentex_client = AsyncAgentex() + tracer = AsyncTracer(agentex_client) + self._templating_service = TemplatingService(tracer=tracer) + else: + self._templating_service = templating_service + + async def render_jinja( + self, + trace_id: str, + template: str, + variables: dict[str, Any], + parent_span_id: str | None = None, + start_to_close_timeout: timedelta = timedelta(seconds=10), + heartbeat_timeout: timedelta = timedelta(seconds=10), + retry_policy: RetryPolicy = DEFAULT_RETRY_POLICY, + ) -> str: + """ + Render a Jinja template. + + Args: + trace_id (str): Unique identifier for tracing and correlation. + template (str): The Jinja template string to render. + variables (Dict[str, Any]): Variables to use in the template. + parent_span_id (Optional[str]): Optional parent span for tracing. + start_to_close_timeout (timedelta): Maximum time allowed for the operation. + heartbeat_timeout (timedelta): Maximum time between heartbeats. + retry_policy (RetryPolicy): Policy for retrying failed operations. + + Returns: + str: The rendered template as a string. + """ + render_jinja_params = RenderJinjaParams( + trace_id=trace_id, + parent_span_id=parent_span_id, + template=template, + variables=variables, + ) + if in_temporal_workflow(): + return await ActivityHelpers.execute_activity( + activity_name=JinjaActivityName.RENDER_JINJA, + request=render_jinja_params, + response_type=str, + start_to_close_timeout=start_to_close_timeout, + heartbeat_timeout=heartbeat_timeout, + retry_policy=retry_policy, + ) + else: + return await self._templating_service.render_jinja( + template=template, + variables=variables, + trace_id=trace_id, + parent_span_id=parent_span_id, + ) diff --git a/src/agentex/lib/cli/__init__.py b/src/agentex/lib/cli/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/src/agentex/lib/cli/commands/__init__.py b/src/agentex/lib/cli/commands/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/src/agentex/lib/cli/commands/agents.py b/src/agentex/lib/cli/commands/agents.py new file mode 100644 index 000000000..c3e5899e5 --- /dev/null +++ b/src/agentex/lib/cli/commands/agents.py @@ -0,0 +1,258 @@ +import builtins +from pathlib import Path + +import questionary +import typer +from rich import print_json +from rich.console import Console +from rich.panel import Panel + +from agentex.lib.cli.handlers.agent_handlers import ( + build_agent, + run_agent, +) +from agentex.lib.cli.handlers.deploy_handlers import ( + DeploymentError, + HelmError, + InputDeployOverrides, + deploy_agent, +) +from agentex.lib.cli.utils.cli_utils import handle_questionary_cancellation +from agentex.lib.cli.utils.kubectl_utils import ( + check_and_switch_cluster_context, + validate_namespace, +) +from agentex import Agentex +from agentex.lib.sdk.config.agent_manifest import AgentManifest +from agentex.lib.utils.logging import make_logger + +logger = make_logger(__name__) +console = Console() + +agents = typer.Typer() + + +@agents.command() +def get( + agent_id: str = typer.Argument(..., help="ID of the agent to get"), +): + """ + Get the agent with the given name. + """ + logger.info(f"Getting agent with ID: {agent_id}") + client = Agentex() + agent = client.agents.retrieve(agent_id=agent_id) + logger.info(f"Agent retrieved: {agent}") + print_json(data=agent.to_dict()) + + +@agents.command() +def list(): + """ + List all agents. + """ + logger.info("Listing all agents") + client = Agentex() + agents = client.agents.list() + logger.info(f"Agents retrieved: {agents}") + print_json(data=[agent.to_dict() for agent in agents]) + + +@agents.command() +def delete( + agent_name: str = typer.Argument(..., help="Name of the agent to delete"), +): + """ + Delete the agent with the given name. + """ + logger.info(f"Deleting agent with name: {agent_name}") + client = Agentex() + client.agents.delete_by_name(agent_name=agent_name) + logger.info(f"Agent deleted: {agent_name}") + + +@agents.command() +def build( + manifest: str = typer.Option(..., help="Path to the manifest you want to use"), + registry: str | None = typer.Option( + None, help="Registry URL for pushing the built image" + ), + repository_name: str | None = typer.Option( + None, help="Repository name to use for the built image" + ), + push: bool = typer.Option(False, help="Whether to push the image to the registry"), + secret: str | None = typer.Option( + None, + help="Docker build secret in the format 'id=secret-id,src=path-to-secret-file'", + ), + tag: str | None = typer.Option( + None, help="Image tag to use (defaults to 'latest')" + ), + build_arg: builtins.list[str] | None = typer.Option( # noqa: B008 + None, + help="Docker build argument in the format 'KEY=VALUE' (can be used multiple times)", + ), +): + """ + Build an agent image locally from the given manifest. + """ + typer.echo(f"Building agent image from manifest: {manifest}") + + try: + image_url = build_agent( + manifest_path=manifest, + registry_url=registry, + repository_name=repository_name, + push=push, + secret=secret, + tag=tag, + build_args=build_arg, + ) + if image_url: + typer.echo(f"Successfully built image: {image_url}") + else: + typer.echo("No registry provided, image was not built") + except Exception as e: + typer.echo(f"Error building agent image: {str(e)}", err=True) + logger.exception("Error building agent image") + raise typer.Exit(1) from e + + +@agents.command() +def run( + manifest: str = typer.Option(..., help="Path to the manifest you want to use"), +): + """ + Run an agent locally from the given manifest. + """ + typer.echo(f"Running agent from manifest: {manifest}") + try: + run_agent(manifest_path=manifest) + except Exception as e: + typer.echo(f"Error running agent: {str(e)}", err=True) + logger.exception("Error running agent") + raise typer.Exit(1) from e + + +@agents.command() +def deploy( + cluster: str = typer.Option( + ..., help="Target cluster name (must match kubectl context)" + ), + manifest: str = typer.Option("manifest.yaml", help="Path to the manifest file"), + namespace: str | None = typer.Option( + None, + help="Kubernetes namespace to deploy to (required in non-interactive mode)", + ), + tag: str | None = typer.Option(None, help="Override the image tag for deployment"), + repository: str | None = typer.Option( + None, help="Override the repository for deployment" + ), + override_file: str | None = typer.Option( + None, help="Path to override configuration file" + ), + interactive: bool = typer.Option( + True, "--interactive/--no-interactive", help="Enable interactive prompts" + ), +): + """Deploy an agent to a Kubernetes cluster using Helm""" + + console.print( + Panel.fit("🚀 [bold blue]Deploy Agent[/bold blue]", border_style="blue") + ) + + try: + # Validate manifest exists + manifest_path = Path(manifest) + if not manifest_path.exists(): + console.print(f"[red]Error:[/red] Manifest file not found: {manifest}") + raise typer.Exit(1) + + # In non-interactive mode, require namespace + if not interactive and not namespace: + console.print( + "[red]Error:[/red] --namespace is required in non-interactive mode" + ) + raise typer.Exit(1) + + # Get namespace if not provided (only in interactive mode) + if not namespace: + namespace = questionary.text( + "Enter Kubernetes namespace:", default="default" + ).ask() + namespace = handle_questionary_cancellation(namespace, "namespace input") + + if not namespace: + console.print("Deployment cancelled") + raise typer.Exit(0) + + # Validate override file exists if provided + if override_file: + override_path = Path(override_file) + if not override_path.exists(): + console.print( + f"[red]Error:[/red] Override file not found: {override_file}" + ) + raise typer.Exit(1) + + # Load manifest for credential validation + manifest_obj = AgentManifest.from_yaml(str(manifest_path)) + + # Confirm deployment (only in interactive mode) + console.print("\n[bold]Deployment Summary:[/bold]") + console.print(f" Manifest: {manifest}") + console.print(f" Cluster: {cluster}") + console.print(f" Namespace: {namespace}") + if tag: + console.print(f" Image Tag: {tag}") + if override_file: + console.print(f" Override File: {override_file}") + + if interactive: + proceed = questionary.confirm("Proceed with deployment?").ask() + proceed = handle_questionary_cancellation( + proceed, "deployment confirmation" + ) + + if not proceed: + console.print("Deployment cancelled") + raise typer.Exit(0) + else: + console.print("Proceeding with deployment (non-interactive mode)") + + check_and_switch_cluster_context(cluster) + if not validate_namespace(namespace, cluster): + console.print( + f"[red]Error:[/red] Namespace '{namespace}' does not exist in cluster '{cluster}'" + ) + raise typer.Exit(1) + + deploy_overrides = InputDeployOverrides(repository=repository, image_tag=tag) + + # Deploy agent + deploy_agent( + manifest_path=str(manifest_path), + cluster_name=cluster, + namespace=namespace, + deploy_overrides=deploy_overrides, + override_file_path=override_file, + ) + + # Use the already loaded manifest object + release_name = f"{manifest_obj.agent.name}-{cluster}" + + console.print( + "\n[bold green]🎉 Deployment completed successfully![/bold green]" + ) + console.print("\nTo check deployment status:") + console.print(f" kubectl get pods -n {namespace}") + console.print(f" helm status {release_name} -n {namespace}") + + except (DeploymentError, HelmError) as e: + console.print(f"[red]Deployment failed:[/red] {str(e)}") + logger.exception("Deployment failed") + raise typer.Exit(1) from e + except Exception as e: + console.print(f"[red]Unexpected error:[/red] {str(e)}") + logger.exception("Unexpected error during deployment") + raise typer.Exit(1) from e diff --git a/src/agentex/lib/cli/commands/init.py b/src/agentex/lib/cli/commands/init.py new file mode 100644 index 000000000..bf8ec9d2c --- /dev/null +++ b/src/agentex/lib/cli/commands/init.py @@ -0,0 +1,241 @@ +from enum import Enum +from pathlib import Path + +import questionary +from jinja2 import Environment, FileSystemLoader +from rich.console import Console +from rich.panel import Panel +from rich.table import Table + +from agentex.lib.utils.logging import make_logger + +logger = make_logger(__name__) +console = Console() + +# Get the templates directory relative to this file +TEMPLATES_DIR = Path(__file__).parent.parent / "templates" + + +class TemplateType(str, Enum): + TEMPORAL = "temporal" + DEFAULT = "default" + SYNC = "sync" + + +def render_template( + template_path: str, context: dict, template_type: TemplateType +) -> str: + """Render a template with the given context""" + env = Environment(loader=FileSystemLoader(TEMPLATES_DIR / template_type.value)) + template = env.get_template(template_path) + return template.render(**context) + + +def create_project_structure( + path: Path, context: dict, template_type: TemplateType, use_uv: bool +): + """Create the project structure from templates""" + # Create project directory + project_dir: Path = path / context["project_name"] + project_dir.mkdir(parents=True, exist_ok=True) + + # Create project/code directory + code_dir: Path = project_dir / "project" + code_dir.mkdir(parents=True, exist_ok=True) + + # Create __init__.py + (code_dir / "__init__.py").touch() + + # Define project files based on template type + project_files = { + TemplateType.TEMPORAL: ["acp.py", "workflow.py", "run_worker.py"], + TemplateType.DEFAULT: ["acp.py"], + TemplateType.SYNC: ["acp.py"], + }[template_type] + + # Create project/code files + for template in project_files: + template_path = f"project/{template}.j2" + output_path = code_dir / template + output_path.write_text(render_template(template_path, context, template_type)) + + # Create root files + root_templates = { + ".dockerignore.j2": ".dockerignore", + "manifest.yaml.j2": "manifest.yaml", + "README.md.j2": "README.md", + } + + # Add package management file based on uv choice + if use_uv: + root_templates["pyproject.toml.j2"] = "pyproject.toml" + root_templates["Dockerfile-uv.j2"] = "Dockerfile" + else: + root_templates["requirements.txt.j2"] = "requirements.txt" + root_templates["Dockerfile.j2"] = "Dockerfile" + + for template, output in root_templates.items(): + output_path = project_dir / output + output_path.write_text(render_template(template, context, template_type)) + + console.print(f"\n[green]✓[/green] Created project structure at: {project_dir}") + + +def get_project_context(answers: dict, project_path: Path, manifest_root: Path) -> dict: + """Get the project context from user answers""" + # Use agent_directory_name as project_name + project_name = answers["agent_directory_name"].replace("-", "_") + + # Now, this is actually the exact same as the project_name because we changed the build root to be ../ + project_path_from_build_root = project_name + + # Calculate the agentex-sdk path relative to the project + agentex_py_path = Path(__file__).parent.parent.parent.parent.resolve() + try: + agentex_py_path_relative = agentex_py_path.relative_to(project_path.resolve()) + agentex_py_path_str = str(agentex_py_path_relative) + except ValueError: + # If agentex-sdk is not under the project path, use absolute path + agentex_py_path_str = str(agentex_py_path) + logger.warning( + f"agentex-sdk path {agentex_py_path} is not under project path {project_path}. " + f"Using absolute path for editable install." + ) + + return { + **answers, + "project_name": project_name, + "workflow_class": "".join( + word.capitalize() for word in answers["agent_name"].split("-") + ) + + "Workflow", + "workflow_name": answers["agent_name"], + "queue_name": project_name + "_queue", + "project_path_from_build_root": project_path_from_build_root, + "agentex_py_path": agentex_py_path_str, + } + + +def init(): + """Initialize a new agent project""" + console.print( + Panel.fit( + "🤖 [bold blue]Initialize New Agent Project[/bold blue]", + border_style="blue", + ) + ) + + # Use a Rich table for template descriptions + table = Table(show_header=True, header_style="bold magenta") + table.add_column("Template", style="cyan", no_wrap=True) + table.add_column("Description", style="white") + table.add_row( + "[bold cyan]Agentic - ACP Only[/bold cyan]", + "A simple synchronous agent that handles tasks directly. Best for straightforward agents that don't need long-running operations.", + ) + table.add_row( + "[bold cyan]Agentic - Temporal[/bold cyan]", + "An asynchronous agent powered by Temporal workflows. Best for agents that need to handle long-running tasks, retries, or complex state management.", + ) + table.add_row( + "[bold cyan]Sync ACP[/bold cyan]", + "A synchronous agent that handles tasks directly. The difference is that this Sync ACP will be required to respond with the results in the same call as the input.Best for straightforward agents that don't need long-running operations.", + ) + console.print() + console.print(table) + console.print() + + def validate_agent_name(text: str) -> bool | str: + """Validate agent name follows required format""" + is_valid = len(text) >= 1 and text.replace("-", "").isalnum() and text.islower() + if not is_valid: + return "Invalid name. Use only lowercase letters, numbers, and hyphens. Examples: 'my-agent', 'newsbot'" + return True + + # Gather project information + template_type = questionary.select( + "What type of template would you like to create?", + choices=[ + {"name": "Agentic - ACP Only", "value": TemplateType.DEFAULT}, + {"name": "Agentic - Temporal", "value": TemplateType.TEMPORAL}, + {"name": "Sync ACP", "value": TemplateType.SYNC}, + ], + ).ask() + if not template_type: + return + + project_path = questionary.path( + "Where would you like to create your project?", default="." + ).ask() + if not project_path: + return + + agent_name = questionary.text( + "What's your agent name? (letters, numbers, and hyphens only)", + validate=validate_agent_name, + ).ask() + if not agent_name: + return + + agent_directory_name = questionary.text( + "What do you want to name the project folder for your agent?", + default=agent_name, + ).ask() + if not agent_directory_name: + return + + description = questionary.text( + "Provide a brief description of your agent:", default="An AgentEx agent" + ).ask() + if not description: + return + + use_uv = questionary.select( + "Would you like to use uv for package management?", + choices=[ + {"name": "Yes (Recommended)", "value": True}, + {"name": "No", "value": False}, + ], + ).ask() + + answers = { + "template_type": template_type, + "project_path": project_path, + "agent_name": agent_name, + "agent_directory_name": agent_directory_name, + "description": description, + "use_uv": use_uv, + } + + # Derive all names from agent_directory_name and path + project_path = Path(answers["project_path"]).resolve() + manifest_root = Path("../../") + + # Get project context + context = get_project_context(answers, project_path, manifest_root) + context["template_type"] = answers["template_type"].value + context["use_uv"] = answers["use_uv"] + + # Create project structure + create_project_structure( + project_path, context, answers["template_type"], answers["use_uv"] + ) + + # Show next steps + console.print("\n[bold green]✨ Project created successfully![/bold green]") + console.print("\n[bold]Next steps:[/bold]") + console.print(f"1. cd {project_path}/{context['project_name']}") + console.print("2. Review and customize the generated files") + console.print("3. Update the container registry in manifest.yaml") + + if answers["template_type"] == TemplateType.TEMPORAL: + console.print("4. Run locally:") + console.print(" agentex agents run --manifest manifest.yaml") + else: + console.print("4. Run locally:") + console.print(" agentex agents run --manifest manifest.yaml") + + console.print("5. Deploy your agent:") + console.print( + " agentex agents deploy --cluster your-cluster --namespace your-namespace" + ) diff --git a/src/agentex/lib/cli/commands/main.py b/src/agentex/lib/cli/commands/main.py new file mode 100644 index 000000000..608634304 --- /dev/null +++ b/src/agentex/lib/cli/commands/main.py @@ -0,0 +1,33 @@ +import typer + +from agentex.lib.cli.commands.agents import agents +from agentex.lib.cli.commands.init import init +from agentex.lib.cli.commands.secrets import secrets +from agentex.lib.cli.commands.tasks import tasks +from agentex.lib.cli.commands.uv import uv + +# Create the main Typer application +app = typer.Typer( + context_settings={"help_option_names": ["-h", "--help"], "max_content_width": 800}, + pretty_exceptions_show_locals=False, + pretty_exceptions_enable=False, + add_completion=False, +) + +# Add the subcommands +app.add_typer(agents, name="agents", help="Get, list, run, build, and deploy agents") +app.add_typer(tasks, name="tasks", help="Get, list, and delete tasks") +app.add_typer(secrets, name="secrets", help="Sync, get, list, and delete secrets") +app.add_typer( + uv, name="uv", help="Wrapper for uv command with AgentEx-specific enhancements" +) + +# Add init command with documentation +app.command( + help="Initialize a new agent project with a template", + epilog="Example: agentex init --template temporal my-agent", +)(init) + + +if __name__ == "__main__": + app() diff --git a/src/agentex/lib/cli/commands/secrets.py b/src/agentex/lib/cli/commands/secrets.py new file mode 100644 index 000000000..2aa671b4d --- /dev/null +++ b/src/agentex/lib/cli/commands/secrets.py @@ -0,0 +1,169 @@ +from pathlib import Path + +import questionary +import typer +from rich import print_json +from rich.console import Console +from rich.panel import Panel + +from agentex.lib.cli.handlers.secret_handlers import ( + delete_secret, + get_kubernetes_secrets_by_type, + get_secret, + sync_secrets, +) +from agentex.lib.cli.utils.cli_utils import handle_questionary_cancellation +from agentex.lib.cli.utils.kubectl_utils import ( + check_and_switch_cluster_context, + validate_namespace, +) +from agentex.lib.sdk.config.agent_manifest import AgentManifest +from agentex.lib.utils.logging import make_logger + +logger = make_logger(__name__) +console = Console() + +secrets = typer.Typer() + + +@secrets.command() +def list( + namespace: str = typer.Option( + "agentex-agents", help="Kubernetes namespace to list secrets from" + ), + cluster: str | None = typer.Option( + None, help="Cluster context to use (defaults to current context)" + ), +): + """List names of available secrets""" + logger.info(f"Listing secrets in namespace: {namespace}") + + if cluster: + check_and_switch_cluster_context(cluster) + if not validate_namespace(namespace, cluster): + console.print( + f"[red]Error:[/red] Namespace '{namespace}' does not exist in cluster '{cluster}'" + ) + raise typer.Exit(1) + + secrets_list = get_kubernetes_secrets_by_type(namespace=namespace, context=cluster) + print_json(data=secrets_list) + + +@secrets.command() +def get( + name: str = typer.Argument(..., help="Name of the secret to get"), + namespace: str = typer.Option( + "agentex-agents", help="Kubernetes namespace for the secret" + ), + cluster: str | None = typer.Option( + None, help="Cluster context to use (defaults to current context)" + ), +): + """Get details about a secret""" + logger.info(f"Getting secret: {name} from namespace: {namespace}") + + if cluster: + check_and_switch_cluster_context(cluster) + if not validate_namespace(namespace, cluster): + console.print( + f"[red]Error:[/red] Namespace '{namespace}' does not exist in cluster '{cluster}'" + ) + raise typer.Exit(1) + + secret = get_secret(name=name, namespace=namespace, context=cluster) + print_json(data=secret) + + +@secrets.command() +def delete( + name: str = typer.Argument(..., help="Name of the secret to delete"), + namespace: str = typer.Option( + "agentex-agents", help="Kubernetes namespace for the secret" + ), + cluster: str | None = typer.Option( + None, help="Cluster context to use (defaults to current context)" + ), +): + """Delete a secret""" + logger.info(f"Deleting secret: {name} from namespace: {namespace}") + + if cluster: + check_and_switch_cluster_context(cluster) + if not validate_namespace(namespace, cluster): + console.print( + f"[red]Error:[/red] Namespace '{namespace}' does not exist in cluster '{cluster}'" + ) + raise typer.Exit(1) + + delete_secret(name=name, namespace=namespace, context=cluster) + + +@secrets.command() +def sync( + manifest: str = typer.Option(..., help="Path to the manifest file"), + # TODO: should cluster be here or be in manifest as well? + cluster: str = typer.Option(..., "--cluster", help="Cluster to sync secrets to"), + interactive: bool = typer.Option( + True, "--interactive/--no-interactive", help="Enable interactive prompts" + ), + namespace: str | None = typer.Option( + None, + help="Kubernetes namespace to deploy to (required in non-interactive mode)", + ), + values: str = typer.Option(None, "--values", help="Path to the values file"), +): + """Sync secrets from the cluster to the local environment""" + console.print( + Panel.fit("🚀 [bold blue]Sync Secrets[/bold blue]", border_style="blue") + ) + + manifest_path = Path(manifest) + if not manifest_path.exists(): + console.print(f"[red]Error:[/red] Manifest file not found: {manifest}") + raise typer.Exit(1) + + # In non-interactive mode, require namespace + if not interactive and not namespace: + console.print( + "[red]Error:[/red] --namespace is required in non-interactive mode" + ) + raise typer.Exit(1) + + # Get namespace if not provided (only in interactive mode) + if not namespace: + namespace = questionary.text( + "Enter Kubernetes namespace:", default="default" + ).ask() + namespace = handle_questionary_cancellation(namespace, "namespace input") + + if not namespace: + console.print("Deployment cancelled") + raise typer.Exit(0) + + if values: + values_path = Path(values) + if not values_path.exists(): + console.print(f"[red]Error:[/red] Values file not found: {values_path}") + raise typer.Exit(1) + + # Validate cluster and namespace + check_and_switch_cluster_context(cluster) + if not validate_namespace(namespace, cluster): + console.print( + f"[red]Error:[/red] Namespace '{namespace}' does not exist in cluster '{cluster}'" + ) + raise typer.Exit(1) + + agent_manifest = AgentManifest.from_yaml(file_path=manifest) + + # Always call sync_secrets - it will handle the case of no credentials + sync_secrets( + manifest_obj=agent_manifest, + cluster=cluster, + namespace=namespace, + interactive=interactive, + values_path=str(values) if values else None, + ) + + console.print("[green]Successfully synced secrets[/green]") diff --git a/src/agentex/lib/cli/commands/tasks.py b/src/agentex/lib/cli/commands/tasks.py new file mode 100644 index 000000000..55fc127e8 --- /dev/null +++ b/src/agentex/lib/cli/commands/tasks.py @@ -0,0 +1,46 @@ +import typer +from rich import print_json + +from agentex import Agentex +from agentex.lib.utils.logging import make_logger + +logger = make_logger(__name__) + +tasks = typer.Typer() + + +@tasks.command() +def get( + task_id: str = typer.Argument(..., help="ID of the task to get"), +): + """ + Get the task with the given ID. + """ + logger.info(f"Getting task: {task_id}") + client = Agentex() + task = client.tasks.retrieve(task_id=task_id) + print(f"Full Task {task_id}:") + print_json(data=task.to_dict()) + + +@tasks.command() +def list(): + """ + List all tasks. + """ + client = Agentex() + tasks = client.tasks.list() + print_json(data=[task.to_dict() for task in tasks]) + + +@tasks.command() +def delete( + task_id: str = typer.Argument(..., help="ID of the task to delete"), +): + """ + Delete the task with the given ID. + """ + logger.info(f"Deleting task: {task_id}") + client = Agentex() + client.tasks.delete(task_id=task_id) + logger.info(f"Task deleted: {task_id}") diff --git a/src/agentex/lib/cli/commands/uv.py b/src/agentex/lib/cli/commands/uv.py new file mode 100644 index 000000000..bb0b1c45c --- /dev/null +++ b/src/agentex/lib/cli/commands/uv.py @@ -0,0 +1,197 @@ +import os +import subprocess +import sys + +import typer + +from agentex.lib.utils.logging import make_logger + +logger = make_logger(__name__) + + +def get_codeartifact_index_url() -> str | None: + """Get CodeArtifact index URL with authentication token""" + try: + # CodeArtifact configuration + CODEARTIFACT_DOMAIN = "scale" + CODEARTIFACT_OWNER = "307185671274" + CODEARTIFACT_REGION = "us-west-2" + CODEARTIFACT_REPO = "scale-pypi" + + # Fetch the authentication token + result = subprocess.run( + [ + "aws", + "codeartifact", + "get-authorization-token", + "--domain", + CODEARTIFACT_DOMAIN, + "--domain-owner", + CODEARTIFACT_OWNER, + "--region", + CODEARTIFACT_REGION, + "--query", + "authorizationToken", + "--output", + "text", + ], + capture_output=True, + text=True, + check=True, + ) + + token = result.stdout.strip() + if token: + index_url = f"https://aws:{token}@{CODEARTIFACT_DOMAIN}-{CODEARTIFACT_OWNER}.d.codeartifact.{CODEARTIFACT_REGION}.amazonaws.com/pypi/{CODEARTIFACT_REPO}/simple/" + logger.info("Successfully obtained CodeArtifact token") + return index_url + else: + logger.warning("Failed to obtain CodeArtifact token") + return None + + except subprocess.CalledProcessError as e: + logger.warning(f"Failed to fetch CodeArtifact token: {e}") + return None + except FileNotFoundError: + logger.warning("AWS CLI not found. Install it to use CodeArtifact integration.") + return None + + +uv = typer.Typer( + help="Wrapper for uv command with AgentEx-specific enhancements", + context_settings={"help_option_names": ["-h", "--help"]}, +) + +sync_args = typer.Argument(None, help="Additional arguments to pass to uv sync") + + +@uv.command() +def sync( + ctx: typer.Context, + index: str | None = typer.Option( + None, "--index", "-i", help="UV index URL to use for sync" + ), + group: str | None = typer.Option( + None, + "--group", + "-g", + help="Include dependencies from the specified dependency group", + ), + args: list[str] = sync_args, +): + """Sync dependencies with optional UV_INDEX support""" + args = args or [] + + # Check if help was requested + if "--help" in args or "-h" in args: + # Show our custom help instead of passing to uv + typer.echo(ctx.get_help()) + return + + if index: + os.environ["UV_INDEX_URL"] = index + logger.info(f"Using provided UV_INDEX_URL: {index}") + else: + # Try to get CodeArtifact index URL if no index provided + codeartifact_url = get_codeartifact_index_url() + if codeartifact_url: + os.environ["UV_INDEX_URL"] = codeartifact_url + logger.info("Using CodeArtifact UV_INDEX_URL") + else: + logger.info("No index URL provided, using default PyPI") + + # Build the uv sync command + cmd = ["uv", "sync"] + + # Add group if specified + if group: + cmd.extend(["--group", group]) + logger.info(f"Using dependency group: {group}") + + # Add any additional arguments + cmd.extend(args) + + try: + result = subprocess.run(cmd, check=True) + sys.exit(result.returncode) + except subprocess.CalledProcessError as e: + logger.error(f"uv sync failed with exit code {e.returncode}") + sys.exit(e.returncode) + except FileNotFoundError: + logger.error("uv command not found. Please install uv first.") + sys.exit(1) + + +add_args = typer.Argument(None, help="Additional arguments to pass to uv add") + + +@uv.command() +def add( + ctx: typer.Context, + index: str | None = typer.Option( + None, "--index", "-i", help="UV index URL to use for add" + ), + args: list[str] = add_args, +): + """Add dependencies with optional UV_INDEX support""" + + args = args or [] + + # Check if help was requested + if "--help" in args or "-h" in args: + # Show our custom help instead of passing to uv + typer.echo(ctx.get_help()) + return + + if index: + os.environ["UV_INDEX_URL"] = index + logger.info(f"Using provided UV_INDEX_URL: {index}") + else: + # Try to get CodeArtifact index URL if no index provided + codeartifact_url = get_codeartifact_index_url() + if codeartifact_url: + os.environ["UV_INDEX_URL"] = codeartifact_url + logger.info("Using CodeArtifact UV_INDEX_URL") + else: + logger.info("No index URL provided, using default PyPI") + + # Build the uv add command + cmd = ["uv", "add"] + (args or []) + + try: + result = subprocess.run(cmd, check=True) + sys.exit(result.returncode) + except subprocess.CalledProcessError as e: + logger.error(f"uv add failed with exit code {e.returncode}") + sys.exit(e.returncode) + except FileNotFoundError: + logger.error("uv command not found. Please install uv first.") + sys.exit(1) + + +run_args = typer.Argument(None, help="Arguments to pass to uv") + + +@uv.command() +def run( + ctx: typer.Context, + args: list[str] = run_args, +): + """Run any uv command with arguments""" + if not args: + # If no arguments provided, show help + typer.echo(ctx.get_help()) + return + + # Build the uv command + cmd = ["uv"] + args + + try: + result = subprocess.run(cmd, check=True) + sys.exit(result.returncode) + except subprocess.CalledProcessError as e: + logger.error(f"uv command failed with exit code {e.returncode}") + sys.exit(e.returncode) + except FileNotFoundError: + logger.error("uv command not found. Please install uv first.") + sys.exit(1) diff --git a/src/agentex/lib/cli/handlers/__init__.py b/src/agentex/lib/cli/handlers/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/src/agentex/lib/cli/handlers/agent_handlers.py b/src/agentex/lib/cli/handlers/agent_handlers.py new file mode 100644 index 000000000..2e95dba73 --- /dev/null +++ b/src/agentex/lib/cli/handlers/agent_handlers.py @@ -0,0 +1,135 @@ +from __future__ import annotations + +from pathlib import Path + +from python_on_whales import DockerException, docker +from rich.console import Console + +from agentex.lib.cli.handlers.run_handlers import RunError +from agentex.lib.cli.handlers.run_handlers import run_agent as _run_agent +from agentex.lib.sdk.config.agent_manifest import AgentManifest +from agentex.lib.utils.logging import make_logger + +logger = make_logger(__name__) +console = Console() + + +class DockerBuildError(Exception): + """An error occurred during docker build""" + + +def build_agent( + manifest_path: str, + registry_url: str, + repository_name: str, + push: bool = False, + secret: str = None, + tag: str = None, + build_args: list[str] = None, +) -> str: + """Build the agent locally and optionally push to registry + + Args: + manifest_path: Path to the agent manifest file + registry_url: Registry URL for pushing the image + push: Whether to push the image to the registry + secret: Docker build secret in format 'id=secret-id,src=path-to-secret-file' + tag: Image tag to use (defaults to 'latest') + build_args: List of Docker build arguments in format 'KEY=VALUE' + + Returns: + The image URL + """ + agent_manifest = AgentManifest.from_yaml(file_path=manifest_path) + build_context_root = ( + Path(manifest_path).parent / agent_manifest.build.context.root + ).resolve() + + repository_name = repository_name or agent_manifest.agent.name + + # Prepare image name + if registry_url: + image_name = f"{registry_url}/{repository_name}" + else: + image_name = repository_name + + if tag: + image_name = f"{image_name}:{tag}" + else: + image_name = f"{image_name}:latest" + + with agent_manifest.context_manager(build_context_root) as build_context: + logger.info(f"Building image {image_name} locally...") + + # Log build context information for debugging + logger.info(f"Build context path: {build_context.path}") + logger.info( + f"Dockerfile path: {build_context.path / build_context.dockerfile_path}" + ) + + try: + # Prepare build arguments + docker_build_kwargs = { + "context_path": str(build_context.path), + "file": str(build_context.path / build_context.dockerfile_path), + "tags": [image_name], + "platforms": ["linux/amd64"], + } + + # Add Docker build args if provided + if build_args: + docker_build_args = {} + for arg in build_args: + if "=" in arg: + key, value = arg.split("=", 1) + docker_build_args[key] = value + else: + logger.warning( + f"Invalid build arg format: {arg}. Expected KEY=VALUE" + ) + + if docker_build_args: + docker_build_kwargs["build_args"] = docker_build_args + logger.info(f"Using build args: {list(docker_build_args.keys())}") + + # Add secret if provided + if secret: + docker_build_kwargs["secrets"] = [secret] + + if push: + # Build and push in one step for multi-platform builds + logger.info("Building and pushing image...") + docker_build_kwargs["push"] = ( + True # Push directly after build for multi-platform + ) + docker.buildx.build(**docker_build_kwargs) + + logger.info(f"Successfully built and pushed {image_name}") + else: + # Build only + logger.info("Building image...") + docker.buildx.build(**docker_build_kwargs) + + logger.info(f"Successfully built {image_name}") + + except DockerException as error: + error_msg = error.stderr if error.stderr else str(error) + action = "build or push" if push else "build" + logger.error(f"{action.capitalize()} failed: {error_msg}", exc_info=True) + raise DockerBuildError( + f"Docker {action} failed: {error_msg}\n" + f"Build context: {build_context.path}\n" + f"Dockerfile path: {build_context.dockerfile_path}" + ) from error + + return image_name + + +def run_agent(manifest_path: str): + """Run an agent locally from the given manifest""" + import asyncio + + try: + asyncio.run(_run_agent(manifest_path)) + except RunError as e: + raise RuntimeError(str(e)) from e diff --git a/src/agentex/lib/cli/handlers/deploy_handlers.py b/src/agentex/lib/cli/handlers/deploy_handlers.py new file mode 100644 index 000000000..feaf6b0d9 --- /dev/null +++ b/src/agentex/lib/cli/handlers/deploy_handlers.py @@ -0,0 +1,351 @@ +import os +import subprocess +import tempfile +from pathlib import Path +from typing import Any + +import yaml +from pydantic import BaseModel, Field +from rich.console import Console + +from agentex.lib.cli.utils.exceptions import DeploymentError, HelmError +from agentex.lib.cli.utils.kubectl_utils import check_and_switch_cluster_context +from agentex.lib.sdk.config.agent_config import AgentConfig +from agentex.lib.sdk.config.agent_manifest import AgentManifest +from agentex.lib.sdk.config.deployment_config import ClusterConfig +from agentex.lib.utils.logging import make_logger + +logger = make_logger(__name__) +console = Console() + +TEMPORAL_WORKER_KEY = "temporal-worker" +AGENTEX_AGENTS_HELM_CHART_VERSION = "0.1.2-v2-beta" + + +class InputDeployOverrides(BaseModel): + repository: str | None = Field( + default=None, description="Override the repository for deployment" + ) + image_tag: str | None = Field( + default=None, description="Override the image tag for deployment" + ) + + +def check_helm_installed() -> bool: + """Check if helm is installed and available""" + try: + result = subprocess.run( + ["helm", "version", "--short"], capture_output=True, text=True, check=True + ) + logger.info(f"Helm version: {result.stdout.strip()}") + return True + except (subprocess.CalledProcessError, FileNotFoundError): + return False + + +def add_helm_repo() -> None: + """Add the agentex helm repository if not already added""" + try: + # Check if repo already exists + result = subprocess.run( + ["helm", "repo", "list"], capture_output=True, text=True, check=True + ) + + if "scale-egp" not in result.stdout: + console.print("Adding agentex helm repository...") + subprocess.run( + [ + "helm", + "repo", + "add", + "scale-egp", + "https://scale-egp-helm-charts-us-west-2.s3.amazonaws.com/charts", + ], + check=True, + ) + else: + logger.info("Helm repository already exists. Running update...") + + subprocess.run(["helm", "repo", "update"], check=True) + console.print("[green]✓[/green] Helm repository update successfully") + + except subprocess.CalledProcessError as e: + raise HelmError(f"Failed to add helm repository: {e}") from e + + +def load_override_config(override_file_path: str | None = None) -> ClusterConfig | None: + """Load override configuration from specified file path""" + if not override_file_path: + return None + + override_path = Path(override_file_path) + if not override_path.exists(): + raise DeploymentError(f"Override file not found: {override_file_path}") + + try: + with open(override_path) as f: + config_data = yaml.safe_load(f) + return ClusterConfig(**config_data) if config_data else None + except Exception as e: + raise DeploymentError( + f"Failed to load override config from {override_file_path}: {e}" + ) from e + + +def merge_deployment_configs( + manifest: AgentManifest, + cluster_config: ClusterConfig | None, + deploy_overrides: InputDeployOverrides, +) -> dict[str, Any]: + agent_config: AgentConfig = manifest.agent + + """Merge global deployment config with cluster-specific overrides into helm values""" + if not manifest.deployment: + raise DeploymentError("No deployment configuration found in manifest") + + repository = deploy_overrides.repository or manifest.deployment.image.repository + image_tag = deploy_overrides.image_tag or manifest.deployment.image.tag + + if not repository or not image_tag: + raise DeploymentError("Repository and image tag are required") + + # Start with global configuration + helm_values = { + "global": { + "image": { + "repository": repository, + "tag": image_tag, + "pullPolicy": "IfNotPresent", + }, + "agent": { + "name": manifest.agent.name, + "description": manifest.agent.description, + "acp_type": manifest.agent.acp_type, + }, + }, + "replicaCount": manifest.deployment.global_config.replicaCount, + "resources": { + "requests": { + "cpu": manifest.deployment.global_config.resources.requests.cpu, + "memory": manifest.deployment.global_config.resources.requests.memory, + }, + "limits": { + "cpu": manifest.deployment.global_config.resources.limits.cpu, + "memory": manifest.deployment.global_config.resources.limits.memory, + }, + }, + } + + # Handle temporal configuration using new helper methods + if agent_config.is_temporal_agent(): + temporal_config = agent_config.get_temporal_workflow_config() + if temporal_config: + helm_values[TEMPORAL_WORKER_KEY] = {} + helm_values["global"]["workflow"] = { + "name": temporal_config.name, + "taskQueue": temporal_config.queue_name, + } + helm_values[TEMPORAL_WORKER_KEY]["enabled"] = True + + secret_env_vars = [] + if agent_config.credentials: + for credential in agent_config.credentials: + secret_env_vars.append( + { + "name": credential.env_var_name, + "secretName": credential.secret_name, + "secretKey": credential.secret_key, + } + ) + + helm_values["secretEnvVars"] = secret_env_vars + if TEMPORAL_WORKER_KEY in helm_values: + helm_values[TEMPORAL_WORKER_KEY]["secretEnvVars"] = secret_env_vars + + # Set the agent_config env vars first to the helm values and so then it can be overriden by the cluster config + if agent_config.env: + helm_values["env"] = agent_config.env + if TEMPORAL_WORKER_KEY in helm_values: + helm_values[TEMPORAL_WORKER_KEY]["env"] = agent_config.env + + if manifest.deployment and manifest.deployment.imagePullSecrets: + pull_secrets = [ + pull_secret.to_dict() + for pull_secret in manifest.deployment.imagePullSecrets + ] + helm_values["global"]["imagePullSecrets"] = pull_secrets + # TODO: Remove this once i bump the chart version again + helm_values["imagePullSecrets"] = pull_secrets + + # Apply cluster-specific overrides + if cluster_config: + if cluster_config.image: + if cluster_config.image.repository: + helm_values["global"]["image"]["repository"] = ( + cluster_config.image.repository + ) + if cluster_config.image.tag: + helm_values["global"]["image"]["tag"] = cluster_config.image.tag + + if cluster_config.replicaCount is not None: + helm_values["replicaCount"] = cluster_config.replicaCount + + if cluster_config.resources: + if cluster_config.resources.requests: + helm_values["resources"]["requests"].update( + { + "cpu": cluster_config.resources.requests.cpu, + "memory": cluster_config.resources.requests.memory, + } + ) + if cluster_config.resources.limits: + helm_values["resources"]["limits"].update( + { + "cpu": cluster_config.resources.limits.cpu, + "memory": cluster_config.resources.limits.memory, + } + ) + + if cluster_config.env: + helm_values["env"] = cluster_config.env + + # Apply additional arbitrary overrides + if cluster_config.additional_overrides: + _deep_merge(helm_values, cluster_config.additional_overrides) + + return helm_values + + +def _deep_merge(base_dict: dict[str, Any], override_dict: dict[str, Any]) -> None: + """Deep merge override_dict into base_dict""" + for key, value in override_dict.items(): + if ( + key in base_dict + and isinstance(base_dict[key], dict) + and isinstance(value, dict) + ): + _deep_merge(base_dict[key], value) + else: + base_dict[key] = value + + +def create_helm_values_file(helm_values: dict[str, Any]) -> str: + """Create a temporary helm values file""" + with tempfile.NamedTemporaryFile(mode="w", suffix=".yaml", delete=False) as f: + yaml.dump(helm_values, f, default_flow_style=False) + return f.name + + +def deploy_agent( + manifest_path: str, + cluster_name: str, + namespace: str, + deploy_overrides: InputDeployOverrides, + override_file_path: str | None = None, +) -> None: + """Deploy an agent using helm""" + + # Validate prerequisites + if not check_helm_installed(): + raise DeploymentError("Helm is not installed. Please install helm first.") + + # Switch to the specified cluster context + check_and_switch_cluster_context(cluster_name) + + manifest = AgentManifest.from_yaml(file_path=manifest_path) + override_config = load_override_config(override_file_path) + + # Provide feedback about override configuration + if override_config: + console.print(f"[green]✓[/green] Using override config: {override_file_path}") + else: + console.print( + "[yellow]ℹ[/yellow] No override config specified, using global defaults" + ) + + # Add helm repository/update + add_helm_repo() + + # Merge configurations + helm_values = merge_deployment_configs(manifest, override_config, deploy_overrides) + + # Create values file + values_file = create_helm_values_file(helm_values) + + try: + agent_name = manifest.agent.name + release_name = agent_name + + console.print( + f"Deploying agent [bold]{agent_name}[/bold] to cluster [bold]{cluster_name}[/bold] in namespace [bold]{namespace}[/bold]" + ) + + # Check if release exists + try: + subprocess.run( + ["helm", "status", release_name, "-n", namespace], + capture_output=True, + check=True, + ) + + # Release exists, do upgrade + console.print("Existing deployment found, upgrading...") + command = [ + "helm", + "upgrade", + release_name, + "scale-egp/agentex-agent", + "--version", + AGENTEX_AGENTS_HELM_CHART_VERSION, + "-f", + values_file, + "-n", + namespace, + "--atomic", + "--timeout", + "10m", + ] + console.print(f"[blue]ℹ[/blue] Running command: {' '.join(command)}") + subprocess.run(command, check=True) + console.print("[green]✓[/green] Agent upgraded successfully") + + except subprocess.CalledProcessError: + # Release doesn't exist, do install + console.print("Installing new deployment...") + command = [ + "helm", + "install", + release_name, + "scale-egp/agentex-agent", + "--version", + AGENTEX_AGENTS_HELM_CHART_VERSION, + "-f", + values_file, + "-n", + namespace, + "--create-namespace", + "--atomic", + "--timeout", + "10m", + ] + console.print(f"[blue]ℹ[/blue] Running command: {' '.join(command)}") + subprocess.run(command, check=True) + console.print("[green]✓[/green] Agent deployed successfully") + + # Show success message with helpful commands + console.print("\n[green]🎉 Deployment completed successfully![/green]") + console.print( + f"[blue]Check deployment status:[/blue] helm status {release_name} -n {namespace}" + ) + console.print( + f"[blue]View logs:[/blue] kubectl logs -l app.kubernetes.io/name=agentex-agent -n {namespace}" + ) + + except subprocess.CalledProcessError as e: + raise HelmError( + f"Helm deployment failed: {e}\n" + f"Note: Due to --atomic flag, any partial deployment has been automatically rolled back." + ) from e + finally: + # Clean up values file + os.unlink(values_file) diff --git a/src/agentex/lib/cli/handlers/run_handlers.py b/src/agentex/lib/cli/handlers/run_handlers.py new file mode 100644 index 000000000..d113d8037 --- /dev/null +++ b/src/agentex/lib/cli/handlers/run_handlers.py @@ -0,0 +1,355 @@ +import asyncio +import os +import signal +import sys +from pathlib import Path + +from rich.console import Console +from rich.panel import Panel + +from agentex.lib.sdk.config.agent_config import AgentConfig +from agentex.lib.sdk.config.agent_manifest import AgentManifest +from agentex.lib.utils.logging import make_logger + +logger = make_logger(__name__) +console = Console() + + +class RunError(Exception): + """An error occurred during agent run""" + + +class ProcessManager: + """Manages multiple subprocesses with proper cleanup""" + + def __init__(self): + self.processes: list[asyncio.subprocess.Process] = [] + self.shutdown_event = asyncio.Event() + + def add_process(self, process: asyncio.subprocess.Process): + """Add a process to be managed""" + self.processes.append(process) + + async def wait_for_shutdown(self): + """Wait for shutdown signal""" + await self.shutdown_event.wait() + + def shutdown(self): + """Signal shutdown and terminate all processes""" + self.shutdown_event.set() + + async def cleanup_processes(self): + """Clean up all processes""" + if not self.processes: + return + + console.print("\n[yellow]Shutting down processes...[/yellow]") + + # Send SIGTERM to all processes + for process in self.processes: + if process.returncode is None: # Process is still running + try: + process.terminate() + except ProcessLookupError: + pass # Process already terminated + + # Wait for graceful shutdown + try: + await asyncio.wait_for( + asyncio.gather(*[p.wait() for p in self.processes], return_exceptions=True), + timeout=5.0, + ) + except TimeoutError: + # Force kill if not terminated gracefully + for process in self.processes: + if process.returncode is None: + try: + process.kill() + await process.wait() + except ProcessLookupError: + pass + + console.print("[green]All processes stopped[/green]") + + +def resolve_and_validate_path(base_path: Path, configured_path: str, file_type: str) -> Path: + """Resolve and validate a configured path""" + path_obj = Path(configured_path) + + if path_obj.is_absolute(): + # Absolute path - use as-is + resolved_path = path_obj + else: + # Relative path - resolve relative to manifest directory + resolved_path = (base_path / configured_path).resolve() + + # Validate the file exists + if not resolved_path.exists(): + raise RunError( + f"{file_type} file not found: {resolved_path}\n" + f" Configured path: {configured_path}\n" + f" Resolved from manifest: {base_path}" + ) + + # Validate it's actually a file + if not resolved_path.is_file(): + raise RunError(f"{file_type} path is not a file: {resolved_path}") + + return resolved_path + + +def validate_path_security(resolved_path: Path, manifest_dir: Path) -> None: + """Basic security validation for resolved paths""" + try: + # Ensure the resolved path is accessible + resolved_path.resolve() + + # Optional: Add warnings for paths that go too far up + try: + # Check if path goes more than 3 levels up from manifest + relative_to_manifest = resolved_path.relative_to(manifest_dir.parent.parent.parent) + if str(relative_to_manifest).startswith(".."): + logger.warning( + f"Path goes significantly outside project structure: {resolved_path}" + ) + except ValueError: + # Path is outside the tree - that's okay, just log it + logger.info(f"Using path outside manifest directory tree: {resolved_path}") + + except Exception as e: + raise RunError(f"Path resolution failed: {resolved_path} - {str(e)}") from e + + +def get_file_paths(manifest: AgentManifest, manifest_path: str) -> dict[str, Path]: + """Get resolved file paths from manifest configuration""" + manifest_dir = Path(manifest_path).parent.resolve() + + # Use configured paths or fall back to defaults for backward compatibility + if manifest.local_development and manifest.local_development.paths: + paths_config = manifest.local_development.paths + + # Resolve ACP path + acp_path = resolve_and_validate_path(manifest_dir, paths_config.acp, "ACP server") + validate_path_security(acp_path, manifest_dir) + + # Resolve worker path if specified + worker_path = None + if paths_config.worker: + worker_path = resolve_and_validate_path( + manifest_dir, paths_config.worker, "Temporal worker" + ) + validate_path_security(worker_path, manifest_dir) + else: + # Backward compatibility: use old hardcoded structure + project_dir = manifest_dir / "project" + acp_path = project_dir / "acp.py" + worker_path = project_dir / "run_worker.py" if is_temporal_agent(manifest) else None + + # Validate backward compatibility paths + if not acp_path.exists(): + raise RunError(f"ACP file not found: {acp_path}") + + if worker_path and not worker_path.exists(): + raise RunError(f"Worker file not found: {worker_path}") + + return { + "acp": acp_path, + "worker": worker_path, + "acp_dir": acp_path.parent, + "worker_dir": worker_path.parent if worker_path else None, + } + + +def create_agent_environment(manifest: AgentManifest) -> dict[str, str]: + """Create environment variables for agent processes without modifying os.environ""" + # Start with current environment + env = dict(os.environ) + + agent_config: AgentConfig = manifest.agent + + # TODO: Combine this logic with the deploy_handlers so that we can reuse the env vars + env_vars = { + "ENVIRONMENT": "development", + "TEMPORAL_ADDRESS": "localhost:7233", + "REDIS_URL": "redis://localhost:6379", + "AGENT_NAME": manifest.agent.name, + "ACP_TYPE": manifest.agent.acp_type, + "ACP_URL": f"http://{manifest.local_development.agent.host_address}", + "ACP_PORT": str(manifest.local_development.agent.port), + } + + # Add description if available + if manifest.agent.description: + env_vars["AGENT_DESCRIPTION"] = manifest.agent.description + + # Add temporal-specific variables if this is a temporal agent + if manifest.agent.is_temporal_agent(): + temporal_config = manifest.agent.get_temporal_workflow_config() + if temporal_config: + env_vars["WORKFLOW_NAME"] = temporal_config.name + env_vars["WORKFLOW_TASK_QUEUE"] = temporal_config.queue_name + + if agent_config.env: + for key, value in agent_config.env.items(): + env_vars[key] = value + + env.update(env_vars) + + return env + + +async def start_acp_server( + acp_path: Path, port: int, env: dict[str, str] +) -> asyncio.subprocess.Process: + """Start the ACP server process""" + cmd = [ + sys.executable, + "-m", + "uvicorn", + f"{acp_path.parent.name}.acp:acp", + "--reload", + "--port", + str(port), + "--host", + "0.0.0.0", + ] + + console.print(f"[blue]Starting ACP server from {acp_path} on port {port}...[/blue]") + return await asyncio.create_subprocess_exec( + *cmd, + cwd=acp_path.parent.parent, + env=env, + stdout=asyncio.subprocess.PIPE, + stderr=asyncio.subprocess.STDOUT, + ) + + +async def start_temporal_worker( + worker_path: Path, env: dict[str, str] +) -> asyncio.subprocess.Process: + """Start the temporal worker process""" + cmd = [sys.executable, "-m", "run_worker"] + + console.print(f"[blue]Starting Temporal worker from {worker_path}...[/blue]") + + return await asyncio.create_subprocess_exec( + *cmd, + cwd=worker_path.parent, + env=env, + stdout=asyncio.subprocess.PIPE, + stderr=asyncio.subprocess.STDOUT, + ) + + +def is_temporal_agent(manifest: AgentManifest) -> bool: + """Check if this is a temporal agent""" + return manifest.agent.is_temporal_agent() + + +async def stream_process_output(process: asyncio.subprocess.Process, prefix: str): + """Stream process output with prefix""" + try: + while True: + line = await process.stdout.readline() + if not line: + break + decoded_line = line.decode("utf-8").rstrip() + if decoded_line: # Only print non-empty lines + console.print(f"[dim]{prefix}:[/dim] {decoded_line}") + except Exception as e: + logger.debug(f"Output streaming ended for {prefix}: {e}") + + +async def run_agent(manifest_path: str): + """Run an agent locally from the given manifest""" + + # Validate manifest exists + manifest_file = Path(manifest_path) + + if not manifest_file.exists(): + raise RunError(f"Manifest file not found: {manifest_path}") + + # Parse manifest + try: + manifest = AgentManifest.from_yaml(file_path=manifest_path) + except Exception as e: + raise RunError(f"Failed to parse manifest: {str(e)}") from e + + # Get and validate file paths + try: + file_paths = get_file_paths(manifest, manifest_path) + except Exception as e: + raise RunError(str(e)) from e + + # Check if temporal agent and validate worker file + if is_temporal_agent(manifest): + if not file_paths["worker"]: + raise RunError("Temporal agent requires a worker file path to be configured") + + # Create environment for subprocesses + agent_env = create_agent_environment(manifest) + + # Setup process manager + process_manager = ProcessManager() + + # Setup signal handlers for graceful shutdown + def signal_handler(signum, frame): + console.print(f"\n[yellow]Received signal {signum}, shutting down...[/yellow]") + process_manager.shutdown() + + signal.signal(signal.SIGINT, signal_handler) + signal.signal(signal.SIGTERM, signal_handler) + + try: + console.print( + Panel.fit( + f"🚀 [bold blue]Running Agent: {manifest.agent.name}[/bold blue]", + border_style="blue", + ) + ) + + # Start ACP server + acp_process = await start_acp_server( + file_paths["acp"], manifest.local_development.agent.port, agent_env + ) + process_manager.add_process(acp_process) + + # Start output streaming for ACP + acp_output_task = asyncio.create_task(stream_process_output(acp_process, "ACP")) + + tasks = [acp_output_task] + + # Start temporal worker if needed + if is_temporal_agent(manifest): + worker_process = await start_temporal_worker(file_paths["worker"], agent_env) + process_manager.add_process(worker_process) + + # Start output streaming for worker + worker_output_task = asyncio.create_task( + stream_process_output(worker_process, "WORKER") + ) + tasks.append(worker_output_task) + + console.print( + f"\n[green]✓ Agent running at: http://localhost:{manifest.local_development.agent.port}[/green]" + ) + console.print("[dim]Press Ctrl+C to stop[/dim]\n") + + # Wait for shutdown signal + await process_manager.wait_for_shutdown() + + # Cancel output streaming tasks + for task in tasks: + task.cancel() + try: + await task + except asyncio.CancelledError: + pass + + except Exception as e: + logger.exception("Error running agent") + raise RunError(f"Failed to run agent: {str(e)}") from e + + finally: + # Ensure cleanup happens + await process_manager.cleanup_processes() diff --git a/src/agentex/lib/cli/handlers/secret_handlers.py b/src/agentex/lib/cli/handlers/secret_handlers.py new file mode 100644 index 000000000..ef68ce5d6 --- /dev/null +++ b/src/agentex/lib/cli/handlers/secret_handlers.py @@ -0,0 +1,670 @@ +import base64 +import json +from collections import defaultdict +from pathlib import Path +from typing import Any + +import questionary +import typer +import yaml +from kubernetes.client.rest import ApiException +from rich.console import Console + +from agentex.lib.cli.utils.cli_utils import handle_questionary_cancellation +from agentex.lib.cli.utils.kubectl_utils import get_k8s_client +from agentex.lib.cli.utils.kubernetes_secrets_utils import ( + KUBERNETES_SECRET_TO_MANIFEST_KEY, + KUBERNETES_SECRET_TYPE_DOCKERCONFIGJSON, + KUBERNETES_SECRET_TYPE_OPAQUE, + VALID_SECRET_TYPES, + create_image_pull_secret_with_data, + create_secret_with_data, + get_secret_data, + update_image_pull_secret_with_data, + update_secret_with_data, +) +from agentex.lib.sdk.config.agent_config import AgentConfig +from agentex.lib.sdk.config.agent_manifest import AgentManifest +from agentex.lib.sdk.config.deployment_config import ( + DeploymentConfig, + ImagePullSecretConfig, + InjectedSecretsValues, +) +from agentex.lib.types.credentials import CredentialMapping +from agentex.lib.utils.logging import make_logger + +logger = make_logger(__name__) +console = Console() + + +# TODO: parse this into a Pydantic model. +def load_values_file(values_path: str) -> dict[str, dict[str, str]]: + """Load and parse the values file (YAML/JSON)""" + try: + path = Path(values_path) + content = path.read_text() + + if path.suffix.lower() in [".yaml", ".yml"]: + data = yaml.safe_load(content) + elif path.suffix.lower() == ".json": + data = json.loads(content) + else: + # Try YAML first, then JSON + try: + data = yaml.safe_load(content) + except yaml.YAMLError: + data = json.loads(content) + return InjectedSecretsValues.model_validate(data).model_dump() + + except Exception as e: + raise RuntimeError( + f"Failed to load values file '{values_path}': {str(e)}" + ) from e + + +def interactive_secret_input(secret_name: str, secret_key: str) -> str: + """Prompt user for secret value with appropriate input method""" + console.print( + f"\n[bold]Enter value for secret '[cyan]{secret_name}[/cyan]' key '[cyan]{secret_key}[/cyan]':[/bold]" + ) + + input_type = questionary.select( + "What type of value is this?", + choices=[ + "Simple text", + "Sensitive/password (hidden input)", + "Multi-line text", + "JSON/YAML content", + "Read from file", + ], + ).ask() + + input_type = handle_questionary_cancellation(input_type, "secret input") + + if input_type == "Sensitive/password (hidden input)": + result = questionary.password("Enter value (input will be hidden):").ask() + return handle_questionary_cancellation(result, "password input") + + elif input_type == "Multi-line text": + console.print( + "[yellow]Enter multi-line text (press Ctrl+D when finished):[/yellow]" + ) + lines = [] + try: + while True: + line = input() + lines.append(line) + except EOFError: + pass + except KeyboardInterrupt: + console.print("[yellow]Multi-line input cancelled by user[/yellow]") + raise typer.Exit(0) # noqa + return "\n".join(lines) + + elif input_type == "JSON/YAML content": + value = questionary.text("Enter JSON/YAML content:").ask() + value = handle_questionary_cancellation(value, "JSON/YAML input") + # Validate JSON/YAML format + try: + json.loads(value) + except json.JSONDecodeError: + try: + yaml.safe_load(value) + except yaml.YAMLError: + console.print( + "[yellow]Warning: Content doesn't appear to be valid JSON or YAML[/yellow]" + ) + return value + + elif input_type == "Read from file": + file_path = questionary.path("Enter file path:").ask() + file_path = handle_questionary_cancellation(file_path, "file path input") + try: + return Path(file_path).read_text().strip() + except Exception as e: + console.print(f"[red]Error reading file: {e}[/red]") + manual_value = questionary.text("Enter value manually:").ask() + return handle_questionary_cancellation(manual_value, "manual value input") + + else: # Simple text + result = questionary.text("Enter value:").ask() + return handle_questionary_cancellation(result, "text input") + + +def get_secret(name: str, namespace: str, context: str | None = None) -> dict: + """Get details about a secret""" + v1 = get_k8s_client(context) + + try: + secret = v1.read_namespaced_secret(name=name, namespace=namespace) + return { + "name": secret.metadata.name, + "namespace": namespace, + "created": secret.metadata.creation_timestamp.isoformat(), + "exists": True, + } + except ApiException as e: + if e.status == 404: + console.print( + f"[red]Error: Secret '{name}' not found in namespace '{namespace}'[/red]" + ) + return {"name": name, "namespace": namespace, "exists": False} + raise RuntimeError(f"Failed to get secret: {str(e)}") from e + + +def delete_secret(name: str, namespace: str, context: str | None = None) -> None: + """Delete a secret""" + v1 = get_k8s_client(context) + + try: + v1.delete_namespaced_secret(name=name, namespace=namespace) + console.print( + f"[green]Deleted secret '{name}' from namespace '{namespace}'[/green]" + ) + except ApiException as e: + if e.status == 404: + console.print( + f"[red]Error: Secret '{name}' not found in namespace '{namespace}'[/red]" + ) + else: + console.print(f"[red]Error deleting secret: {e.reason}[/red]") + raise RuntimeError(f"Failed to delete secret: {str(e)}") from e + + +def get_kubernetes_secrets_by_type( + namespace: str, context: str | None = None +) -> dict[str, list[dict]]: + """List metadata about secrets in the namespace""" + v1 = get_k8s_client(context) + + try: + secrets = v1.list_namespaced_secret(namespace=namespace) + secret_type_to_secret = defaultdict(list) + for secret in secrets.items: + if secret.type in VALID_SECRET_TYPES: + secret_type_to_secret[secret.type].append( + { + "name": secret.metadata.name, + "namespace": namespace, + "created": secret.metadata.creation_timestamp.isoformat(), + } + ) + + return secret_type_to_secret + except ApiException as e: + console.print( + f"[red]Error listing secrets in namespace '{namespace}': {e.reason}[/red]" + ) + raise RuntimeError(f"Failed to list secrets: {str(e)}") from e + + # NOTE: This corresponds with KUBERNETES_SECRET_TYPE_OPAQUE + + +def sync_user_defined_secrets( + manifest_obj: AgentManifest, + found_secrets: list[dict], + values_data: dict[str, Any], + cluster: str, + namespace: str, + interactive: bool, + changes: dict[str, list[str]], +) -> None: + """Sync user defined secrets between manifest, cluster, and values file""" + console.print( + f"[bold]Syncing user defined secrets to cluster: {cluster} namespace: {namespace}[/bold]" + ) + + # Get the secrets from the cluster using the specified namespace and cluster context + cluster_secret_names = {secret["name"] for secret in found_secrets} + # Get the secrets from the manifest + agent_config: AgentConfig = manifest_obj.agent + manifest_credentials: list[CredentialMapping] = agent_config.credentials or [] + + if not manifest_credentials: + console.print("[yellow]No credentials found in manifest[/yellow]") + return + + # Build required secrets map from manifest + required_secrets = {} # {secret_name: {secret_key: env_var_name}} + for cred in manifest_credentials: + if cred.secret_name not in required_secrets: + required_secrets[cred.secret_name] = {} + required_secrets[cred.secret_name][cred.secret_key] = cred.env_var_name + + # Process each required secret + for secret_name, required_keys in required_secrets.items(): + current_secret_data = get_secret_data(secret_name, namespace, cluster) + new_secret_data = {} + secret_needs_update = False + + # Process each required key in this secret + for secret_key, _ in required_keys.items(): + current_value = current_secret_data.get(secret_key) + + # Get the new value + if ( + values_data + and secret_name in values_data + and secret_key in values_data[secret_name] + ): + new_value = values_data[secret_name][secret_key] + elif interactive: + if current_value: + console.print( + f"[blue]Secret '{secret_name}' key '{secret_key}' already exists[/blue]" + ) + update_choice = questionary.select( + "What would you like to do?", + choices=[ + "Keep current value", + "Update with new value", + "Show current value", + ], + ).ask() + update_choice = handle_questionary_cancellation( + update_choice, "secret update choice" + ) + + if update_choice == "Show current value": + console.print(f"Current value: [dim]{current_value}[/dim]") + update_choice = questionary.select( + "What would you like to do?", + choices=["Keep current value", "Update with new value"], + ).ask() + update_choice = handle_questionary_cancellation( + update_choice, "secret update choice" + ) + + if update_choice == "Update with new value": + new_value = interactive_secret_input(secret_name, secret_key) + else: + new_value = current_value + else: + console.print( + f"[yellow]Secret '{secret_name}' key '{secret_key}' does not exist[/yellow]" + ) + new_value = interactive_secret_input(secret_name, secret_key) + else: + raise RuntimeError( + f"No value provided for secret '{secret_name}' key '{secret_key}'. Provide values file or use interactive mode." + ) + + # Must be a string because kubernetes always expects a + new_value = str(new_value) + new_secret_data[secret_key] = new_value + + # Check if value changed + if current_value != new_value: + secret_needs_update = True + else: + changes["noop"].append( + f"Secret '{secret_name}' key '{secret_key}' is up to date" + ) + + # Determine action needed + if secret_name not in cluster_secret_names: + changes["create"].append( + f"Create secret '{secret_name}' with keys: {list(required_keys.keys())}" + ) + create_secret_with_data(secret_name, new_secret_data, namespace, cluster) + elif secret_needs_update: + changes["update"].append(f"Update secret '{secret_name}' (values changed)") + update_secret_with_data(secret_name, new_secret_data, namespace, cluster) + + # Handle orphaned secrets (in cluster but not in manifest) + orphaned_secrets = cluster_secret_names - set(required_secrets.keys()) + if orphaned_secrets: + console.print( + f"\n[yellow]Warning: Found {len(orphaned_secrets)} secrets in cluster not defined in manifest:[/yellow]" + ) + for secret in orphaned_secrets: + console.print(f" - {secret}") + + +def create_dockerconfigjson_string( + registry: str, username: str, password: str, email: str | None = None +) -> str: + """Create raw dockerconfigjson string data for use with Kubernetes string_data field""" + # Create the auth field (base64 encoded username:password) + auth_string = f"{username}:{password}" + auth_b64 = base64.b64encode(auth_string.encode("utf-8")).decode("utf-8") + + # Build the auth entry + auth_entry = {"username": username, "password": password, "auth": auth_b64} + + # Only include email if provided + if email: + auth_entry["email"] = email + + # Create the full dockerconfig structure + docker_config = {"auths": {registry: auth_entry}} + + # Return raw JSON string (Kubernetes will handle base64 encoding when using string_data) + return json.dumps(docker_config) + + +def parse_dockerconfigjson_data(input_data: str) -> dict[str, dict[str, str]]: + """Parse existing dockerconfigjson data to extract registry credentials""" + try: + # Decode base64 + config = json.loads(input_data) + + # Extract auths section + auths = config.get("auths", {}) + + # Convert to comparable format: {registry: {username, password, email}} + parsed_auths = {} + for registry, auth_data in auths.items(): + # Try to decode the base64 auth field first + username = "" + password = "" + if "auth" in auth_data: + try: + auth_b64 = auth_data["auth"] + username_password = base64.b64decode(auth_b64).decode("utf-8") + if ":" in username_password: + username, password = username_password.split(":", 1) + except Exception: + pass + + # Fall back to direct username/password fields if auth decode failed + if not username: + username = auth_data.get("username", "") + if not password: + password = auth_data.get("password", "") + + parsed_auths[registry] = { + "username": username, + "password": password, + "email": auth_data.get("email", ""), + } + + return parsed_auths + except Exception: + return {} # If parsing fails, assume empty/invalid + + +def credentials_changed( + current_auths: dict[str, dict[str, str]], + new_registry: str, + new_username: str, + new_password: str, + new_email: str = "", +) -> bool: + """Check if credentials have actually changed""" + + # If registry doesn't exist in current, it's a change + if new_registry not in current_auths: + return True + + current_creds = current_auths[new_registry] + # Compare each field + if ( + current_creds.get("username", "") != new_username + or current_creds.get("password", "") != new_password + or current_creds.get("email", "") != (new_email or "") + ): + return True + else: + return False # No changes detected + + +def interactive_image_pull_secret_input(secret_name: str) -> dict[str, str]: + """Prompt user for image pull secret values""" + console.print( + f"\n[bold]Configure image pull secret '[cyan]{secret_name}[/cyan]':[/bold]" + ) + + registry = questionary.text( + "Registry URL (e.g., docker.io, gcr.io, your-registry.com):", + default="docker.io", + ).ask() + registry = handle_questionary_cancellation(registry, "registry input") + + username = questionary.text("Username:").ask() + username = handle_questionary_cancellation(username, "username input") + + password = questionary.password("Password (input will be hidden):").ask() + password = handle_questionary_cancellation(password, "password input") + + email_choice = questionary.confirm( + "Do you want to include an email address? (optional)" + ).ask() + email_choice = handle_questionary_cancellation(email_choice, "email choice") + email = "" + if email_choice: + email = questionary.text("Email address:").ask() or "" + if email is None: # Handle None from questionary + email = "" + + return { + "registry": registry, + "username": username, + "password": password, + "email": email, + } + + +def sync_image_pull_secrets( + manifest_obj: AgentManifest, + found_dockerconfigjson_secrets: list[dict], + values_data: dict[str, Any], + cluster: str, + namespace: str, + interactive: bool, + changes: dict[str, list[str]], +) -> None: + """Sync image pull secrets between manifest, cluster, and values file""" + console.print( + f"[bold]Syncing image pull secrets to cluster: {cluster} namespace: {namespace}[/bold]" + ) + + # Get the secrets of type KUBERNETES_SECRET_TYPE_DOCKERCONFIGJSON + cluster_dockerconfigjson_secret_names = { + secret["name"] for secret in found_dockerconfigjson_secrets + } + + # Get the secrets from the manifest + deployment_config: DeploymentConfig = manifest_obj.deployment + manifest_image_pull_secrets: list[ImagePullSecretConfig] = ( + deployment_config.imagePullSecrets or [] + ) + + if not manifest_image_pull_secrets: + logger.info("No image pull secrets found in manifest") + return + + # Get image pull secrets from values data + image_pull_values = values_data + + # Process each required image pull secret + for pull_secret in manifest_image_pull_secrets: + secret_name = pull_secret.name + current_secret_data = get_secret_data(secret_name, namespace, cluster) + + # Get new values + new_registry = "" + new_username = "" + new_password = "" + new_email = "" + + if secret_name in image_pull_values: + # Get values from values file + secret_config = image_pull_values[secret_name] + new_registry = secret_config.get("registry", "") + new_username = secret_config.get("username", "") + new_password = secret_config.get("password", "") + new_email = secret_config.get("email", "") + + if not new_registry or not new_username or not new_password: + raise RuntimeError( + f"Incomplete image pull secret configuration for '{secret_name}'. " + f"Required: registry, username, password. Optional: email" + ) + elif interactive: + # Get values interactively + if secret_name in cluster_dockerconfigjson_secret_names: + console.print( + f"[blue]Image pull secret '{secret_name}' already exists[/blue]" + ) + update_choice = questionary.select( + "What would you like to do?", + choices=["Keep current credentials", "Update with new credentials"], + ).ask() + update_choice = handle_questionary_cancellation( + update_choice, "image pull secret update choice" + ) + + if update_choice == "Keep current credentials": + continue # Skip this secret + + console.print( + f"[yellow]Image pull secret '{secret_name}' needs configuration[/yellow]" + ) + creds = interactive_image_pull_secret_input(secret_name) + new_registry = creds["registry"] + new_username = creds["username"] + new_password = creds["password"] + new_email = creds["email"] + else: + raise RuntimeError( + f"No configuration provided for image pull secret '{secret_name}'. " + f"Provide values file or use interactive mode." + ) + + # Check if update is needed + secret_needs_update = False + action = "" + + if secret_name not in cluster_dockerconfigjson_secret_names: + # Secret doesn't exist, needs creation + secret_needs_update = True + action = "create" + else: + # Secret exists, check if values changed + current_dockerconfig = current_secret_data.get(".dockerconfigjson", {}) + current_auths = parse_dockerconfigjson_data(current_dockerconfig) + if credentials_changed( + current_auths, new_registry, new_username, new_password, new_email + ): + secret_needs_update = True + action = "update" + else: + changes["noop"].append( + f"Secret '{secret_name}' key '{secret_name}' is up to date" + ) + + # Only perform action if update is needed + if secret_needs_update: + dockerconfig_string = create_dockerconfigjson_string( + new_registry, new_username, new_password, new_email + ) + secret_data = {".dockerconfigjson": dockerconfig_string} + + if action == "create": + changes[action].append( + f"Create image pull secret '{secret_name}' for registry '{new_registry}'" + ) + create_image_pull_secret_with_data( + secret_name, secret_data, namespace, cluster + ) + elif action == "update": + changes[action].append( + f"Update image pull secret '{secret_name}' (credentials changed)" + ) + update_image_pull_secret_with_data( + secret_name, secret_data, namespace, cluster + ) + + +def print_changes_summary(change_type: str, changes: dict[str, list[str]]) -> None: + # Show summary + console.print(f"\n[bold]Sync Summary for {change_type}:[/bold]") + if changes["create"]: + console.print("[green]Created:[/green]") + for change in changes["create"]: + console.print(f" ✓ {change}") + + if changes["update"]: + console.print("[yellow]Updated:[/yellow]") + for change in changes["update"]: + console.print(f" ⚠ {change}") + + if changes["noop"]: + console.print("[yellow]No changes:[/yellow]") + for change in changes["noop"]: + console.print(f" ✓ {change}") + del changes["noop"] + + if not any(changes.values()): + console.print( + f"[green]✓ All secrets are already in sync for {change_type}[/green]" + ) + + console.print("") + + +def sync_secrets( + manifest_obj: AgentManifest, + cluster: str, + namespace: str, + interactive: bool, + values_path: str | None, +) -> None: + """Sync secrets between manifest, cluster, and values file""" + logger.info(f"Syncing secrets to cluster: {cluster} namespace: {namespace}") + + # Load values from file if provided + values_data = {} + if values_path: + try: + # TODO: Convert this to a pydantic model to validate the values file + values_data = load_values_file(values_path) + console.print(f"[green]Loaded values from {values_path}[/green]") + except Exception as e: + console.print(f"[red]Error loading values file: {e}[/red]") + raise + + # Get the secrets from the cluster using the specified namespace and cluster context + cluster_secrets_by_type = get_kubernetes_secrets_by_type( + namespace=namespace, context=cluster + ) + + # Track changes for summary + changes = {"create": [], "update": [], "noop": []} + + sync_user_defined_secrets( + manifest_obj, + cluster_secrets_by_type[KUBERNETES_SECRET_TYPE_OPAQUE], + values_data.get( + KUBERNETES_SECRET_TO_MANIFEST_KEY[KUBERNETES_SECRET_TYPE_OPAQUE], {} + ), + cluster, + namespace, + interactive, + changes, + ) + + print_changes_summary("User Defined Secrets", changes) + + # Track changes for summary + changes = {"create": [], "update": [], "noop": []} + + sync_image_pull_secrets( + manifest_obj, + cluster_secrets_by_type[KUBERNETES_SECRET_TYPE_DOCKERCONFIGJSON], + values_data.get( + KUBERNETES_SECRET_TO_MANIFEST_KEY[KUBERNETES_SECRET_TYPE_DOCKERCONFIGJSON], + {}, + ), + cluster, + namespace, + interactive, + changes, + ) + + print_changes_summary("Image Pull Secrets", changes) + + console.print( + f"\n[green]Secret sync completed for cluster '{cluster}' namespace '{namespace}'[/green]" + ) diff --git a/src/agentex/lib/cli/templates/default/.dockerignore.j2 b/src/agentex/lib/cli/templates/default/.dockerignore.j2 new file mode 100644 index 000000000..15b178c77 --- /dev/null +++ b/src/agentex/lib/cli/templates/default/.dockerignore.j2 @@ -0,0 +1,46 @@ +# Python +__pycache__/ +*.py[cod] +*$py.class +*.so +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +*.egg-info/ +.installed.cfg +*.egg + +# Environments +.env** +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# IDE +.idea/ +.vscode/ +*.swp +*.swo + +# Git +.git +.gitignore + +# Misc +.DS_Store + +# CodeArtifact configuration +.codeartifact-pip-conf diff --git a/src/agentex/lib/cli/templates/default/Dockerfile-uv.j2 b/src/agentex/lib/cli/templates/default/Dockerfile-uv.j2 new file mode 100644 index 000000000..e17d369b5 --- /dev/null +++ b/src/agentex/lib/cli/templates/default/Dockerfile-uv.j2 @@ -0,0 +1,45 @@ +# syntax=docker/dockerfile:1.3 +FROM python:3.12-slim +COPY --from=ghcr.io/astral-sh/uv:0.6.4 /uv /uvx /bin/ + +# Install system dependencies +RUN apt-get update && apt-get install -y \ + htop \ + vim \ + curl \ + tar \ + python3-dev \ + postgresql-client \ + build-essential \ + libpq-dev \ + gcc \ + cmake \ + netcat-openbsd \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* + +RUN uv pip install --system --upgrade pip setuptools wheel + +ENV UV_HTTP_TIMEOUT=1000 + +# Copy just the pyproject.toml file to optimize caching +COPY {{ project_path_from_build_root }}/pyproject.toml /app/{{ project_path_from_build_root }}/pyproject.toml + +WORKDIR /app/{{ project_path_from_build_root }} + +# Install the required Python packages using uv +RUN --mount=type=secret,id=codeartifact-pip-conf,target=/etc/pip.conf \ + export UV_INDEX_URL=$(grep -E "^index-url" /etc/pip.conf | cut -d'=' -f2- | xargs) && \ + export UV_EXTRA_INDEX_URL=$(grep -E "^extra-index-url" /etc/pip.conf | cut -d'=' -f2- | xargs || echo "") && \ + uv pip install --system . + +# Copy the project code +COPY {{ project_path_from_build_root }}/project /app/{{ project_path_from_build_root }}/project + +WORKDIR /app/{{ project_path_from_build_root }}/project + +# Set environment variables +ENV PYTHONPATH=/app + +# Run the agent using uvicorn +CMD ["uvicorn", "acp:acp", "--host", "0.0.0.0", "--port", "8000"] \ No newline at end of file diff --git a/src/agentex/lib/cli/templates/default/Dockerfile.j2 b/src/agentex/lib/cli/templates/default/Dockerfile.j2 new file mode 100644 index 000000000..d8dcad439 --- /dev/null +++ b/src/agentex/lib/cli/templates/default/Dockerfile.j2 @@ -0,0 +1,45 @@ +# syntax=docker/dockerfile:1.3 +FROM python:3.12-slim +COPY --from=ghcr.io/astral-sh/uv:0.6.4 /uv /uvx /bin/ + +# Install system dependencies +RUN apt-get update && apt-get install -y \ + htop \ + vim \ + curl \ + tar \ + python3-dev \ + postgresql-client \ + build-essential \ + libpq-dev \ + gcc \ + cmake \ + netcat-openbsd \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* + +RUN uv pip install --system --upgrade pip setuptools wheel + +ENV UV_HTTP_TIMEOUT=1000 + +# Copy just the requirements file to optimize caching +COPY {{ project_path_from_build_root }}/requirements.txt /app/{{ project_path_from_build_root }}/requirements.txt + +WORKDIR /app/{{ project_path_from_build_root }} + +# Install the required Python packages +RUN --mount=type=secret,id=codeartifact-pip-conf,target=/etc/pip.conf \ + export UV_INDEX_URL=$(grep -E "^index-url" /etc/pip.conf | cut -d'=' -f2- | xargs) && \ + export UV_EXTRA_INDEX_URL=$(grep -E "^extra-index-url" /etc/pip.conf | cut -d'=' -f2- | xargs || echo "") && \ + uv pip install --system -r requirements.txt + +# Copy the project code +COPY {{ project_path_from_build_root }}/project /app/{{ project_path_from_build_root }}/project + +WORKDIR /app/{{ project_path_from_build_root }}/project + +# Set environment variables +ENV PYTHONPATH=/app + +# Run the agent using uvicorn +CMD ["uvicorn", "acp:acp", "--host", "0.0.0.0", "--port", "8000"] \ No newline at end of file diff --git a/src/agentex/lib/cli/templates/default/README.md.j2 b/src/agentex/lib/cli/templates/default/README.md.j2 new file mode 100644 index 000000000..5ce149aad --- /dev/null +++ b/src/agentex/lib/cli/templates/default/README.md.j2 @@ -0,0 +1,199 @@ +# {{ agent_name }} - AgentEx Starter Template + +This is a generic starter template for building agents with the AgentEx framework. It provides a basic implementation of the Agent 2 Client Protocol (ACP) to help you get started quickly. + +## What You'll Learn + +- **Tasks**: A task is a grouping mechanism for related messages. Think of it as a conversation thread or a session. +- **Messages**: Messages are communication objects within a task. They can contain text, data, or instructions. +- **ACP Events**: The agent responds to four main events: + - `task_received`: When a new task is created + - `task_message_received`: When a message is sent within a task + - `task_approved`: When a task is approved + - `task_canceled`: When a task is canceled + +## Running the Agent + +1. Run the agent locally: +```bash +agentex agents run --manifest manifest.yaml +``` + +The agent will start on port 8000 and print messages whenever it receives any of the ACP events. + +## What's Inside + +This template: +- Sets up a basic ACP server +- Handles each of the required ACP events with simple print statements +- Provides a foundation for building more complex agents + +## Next Steps + +For more advanced agent development, check out the AgentEx tutorials: + +- **Tutorials 00-08**: Learn about building synchronous agents with ACP +- **Tutorials 09-10**: Learn how to use Temporal to power asynchronous agents + - Tutorial 09: Basic Temporal workflow setup + - Tutorial 10: Advanced Temporal patterns and best practices + +These tutorials will help you understand: +- How to handle long-running tasks +- Implementing state machines +- Managing complex workflows +- Best practices for async agent development + +## The Manifest File + +The `manifest.yaml` file is your agent's configuration file. It defines: +- How your agent should be built and packaged +- What files are included in your agent's Docker image +- Your agent's name and description +- Local development settings (like the port your agent runs on) + +This file is essential for both local development and deployment of your agent. + +## Project Structure + +``` +{{ project_name }}/ +├── project/ # Your agent's code +│ ├── __init__.py +│ └── acp.py # ACP server and event handlers +├── Dockerfile # Container definition +├── manifest.yaml # Deployment config +{% if use_uv %} +└── pyproject.toml # Dependencies (uv) +{% else %} +└── requirements.txt # Dependencies (pip) +{% endif %} +``` + +## Development + +### 1. Customize Event Handlers +- Modify the handlers in `acp.py` to implement your agent's logic +- Add your own tools and capabilities +- Implement custom state management + +### 2. Manage Dependencies + +{% if use_uv %} +You chose **uv** for package management. Here's how to work with dependencies: + +```bash +# Add new dependencies +agentex uv add requests openai anthropic + +# Install/sync dependencies +agentex uv sync + +# Run commands with uv +uv run agentex agents run --manifest manifest.yaml +``` + +**Benefits of uv:** +- Faster dependency resolution and installation +- Better dependency isolation +- Integrated CodeArtifact support +- Modern Python packaging standards + +{% else %} +You chose **pip** for package management. Here's how to work with dependencies: + +```bash +# Edit requirements.txt manually to add dependencies +echo "requests" >> requirements.txt +echo "openai" >> requirements.txt + +# Install dependencies +pip install -r requirements.txt +``` + +**Benefits of pip:** +- Familiar workflow for most Python developers +- Simple requirements.txt management +- Wide compatibility +{% endif %} + +### 3. Configure Credentials +Options: +1. Add any required credentials to your manifest.yaml via the `env` section +2. Export them in your shell: `export OPENAI_API_KEY=...` +3. For local development, create a `.env.local` file in the project directory + +```python +import os +from dotenv import load_dotenv + +if os.environ.get("ENVIRONMENT") == "development": + load_dotenv() +``` + +## Local Development + + +### 1. Start the Agentex Backend +```bash +# Navigate to the backend directory +cd agentex + +# Start all services using Docker Compose +make dev + +# Optional: In a separate terminal, use lazydocker for a better UI (everything should say "healthy") +lzd +``` + +### 2. Setup Your Agent's requirements/pyproject.toml +```bash +agentex uv sync [--group editable-apy] +source .venv/bin/activate + +# OR +conda create -n {{ project_name }} python=3.12 +conda activate {{ project_name }} +pip install -r requirements.txt +``` +### 3. Run Your Agent +```bash +# From this directory +export ENVIRONMENT=development && [uv run] agentex agents run --manifest manifest.yaml +``` + +### 4. Interact with Your Agent + +Option 0: CLI (deprecated - to be replaced once a new CLI is implemented - please use the web UI for now!) +```bash +# Submit a task via CLI +agentex tasks submit --agent {{ agent_name }} --task "Your task here" +``` + +Option 1: Web UI +```bash +# Start the local web interface +cd agentex-web +make dev + +# Then open http://localhost:3000 in your browser to chat with your agent +``` + +## Development Tips + +### Environment Variables +- Set environment variables in project/.env for any required credentials +- Or configure them in the manifest.yaml under the `env` section +- The `.env` file is automatically loaded in development mode + +### To build the agent Docker image locally (normally not necessary): + +1. First, set up CodeArtifact authentication: +```bash +../../setup-build-codeartifact.sh +``` + +2. Build the agent image: +```bash +agentex agents build --manifest manifest.yaml --secret 'id=codeartifact-pip-conf,src=.codeartifact-pip-conf' +``` + diff --git a/src/agentex/lib/cli/templates/default/deploy/example.yaml.j2 b/src/agentex/lib/cli/templates/default/deploy/example.yaml.j2 new file mode 100644 index 000000000..d4874d5ba --- /dev/null +++ b/src/agentex/lib/cli/templates/default/deploy/example.yaml.j2 @@ -0,0 +1,55 @@ +# Example Override Configuration +# ============================= +# This file shows how to override deployment settings from the global defaults in manifest.yaml. +# You can create multiple override files for different environments (e.g., staging.yaml, prod.yaml, dev.yaml) +# Only specify values that differ from the global defaults in manifest.yaml + +# Override image tag +# image: +# tag: "v1.2.3" + +# Override replica count +# replicaCount: 2 + +# Environment-specific environment variables +# env: +# - name: LOG_LEVEL +# value: "DEBUG" +# - name: ENVIRONMENT +# value: "staging" + +# Override resource requirements +# resources: +# requests: +# cpu: "250m" +# memory: "512Mi" +# limits: +# cpu: "500m" +# memory: "1Gi" + +# Advanced: Additional helm chart value overrides +# Use this for any helm chart values not covered by the simple options above +# additional_overrides: +# autoscaling: +# enabled: true +# minReplicas: 2 +# maxReplicas: 10 +# targetCPUUtilizationPercentage: 70 +# +# service: +# type: LoadBalancer +# +# ingress: +# enabled: true +# annotations: +# kubernetes.io/ingress.class: "nginx" +# hosts: +# - host: {{ agent_name }}.example.com +# paths: +# - path: / +# pathType: Prefix + +# To use this configuration: +# 1. Copy this file to a new file (e.g., staging.yaml, prod.yaml) +# 2. Uncomment and modify the values you want to override +# 3. Deploy with: agentex agents deploy --cluster your-cluster --namespace your-namespace --override-file staging.yaml \ No newline at end of file diff --git a/src/agentex/lib/cli/templates/default/manifest.yaml.j2 b/src/agentex/lib/cli/templates/default/manifest.yaml.j2 new file mode 100644 index 000000000..6f7df0414 --- /dev/null +++ b/src/agentex/lib/cli/templates/default/manifest.yaml.j2 @@ -0,0 +1,116 @@ +# Agent Manifest Configuration +# --------------------------- +# This file defines how your agent should be built and deployed. + +# Build Configuration +# ------------------ +# The build config defines what gets packaged into your agent's Docker image. +# This same configuration is used whether building locally or remotely. +# +# When building: +# 1. All files from include_paths are collected into a build context +# 2. The context is filtered by dockerignore rules +# 3. The Dockerfile uses this context to build your agent's image +# 4. The image is pushed to a registry and used to run your agent +build: + context: + # Root directory for the build context + root: ../ # Keep this as the default root + + # Paths to include in the Docker build context + # Must include: + # - Your agent's directory (your custom agent code) + # These paths are collected and sent to the Docker daemon for building + include_paths: + - {{ project_path_from_build_root }} + + # Path to your agent's Dockerfile + # This defines how your agent's image is built from the context + # Relative to the root directory + dockerfile: {{ project_path_from_build_root }}/Dockerfile + + # Path to your agent's .dockerignore + # Filters unnecessary files from the build context + # Helps keep build context small and builds fast + dockerignore: {{ project_path_from_build_root }}/.dockerignore + + +# Local Development Configuration +# ----------------------------- +# Only used when running the agent locally +local_development: + agent: + port: 8000 # Port where your local ACP server is running + host_address: host.docker.internal # Host address for Docker networking (host.docker.internal for Docker, localhost for direct) + + # File paths for local development (relative to this manifest.yaml) + paths: + # Path to ACP server file + # Examples: + # project/acp.py (standard) + # src/server.py (custom structure) + # ../shared/acp.py (shared across projects) + # /absolute/path/acp.py (absolute path) + acp: project/acp.py + + +# Agent Configuration +# ----------------- +agent: + acp_type: agentic + + # Unique name for your agent + # Used for task routing and monitoring + name: {{ agent_name }} + + # Description of what your agent does + # Helps with documentation and discovery + description: {{ description }} + + # Temporal workflow configuration + # Set enabled: true to use Temporal workflows for long-running tasks + temporal: + enabled: false + + # Optional: Credentials mapping + # Maps Kubernetes secrets to environment variables + # Common credentials include: + # credentials: + # - env_var_name: OPENAI_API_KEY + # secret_name: openai-api-key + # secret_key: api-key + + # Optional: Set Environment variables for running your agent locally as well + # as for deployment later on + # env: + # OPENAI_API_KEY: "" + # OPENAI_BASE_URL: "" + # OPENAI_ORG_ID: "" + +# Deployment Configuration +# ----------------------- +# Configuration for deploying your agent to Kubernetes clusters +deployment: + # Container image configuration + image: + repository: "" # Update with your container registry + tag: "latest" # Default tag, should be versioned in production + + # Global deployment settings that apply to all clusters + # These can be overridden in cluster-specific files (deploy/*.yaml) + global: + agent: + name: "{{ agent_name }}" + description: "{{ description }}" + + # Default replica count + replicaCount: 1 + + # Default resource requirements + resources: + requests: + cpu: "500m" + memory: "1Gi" + limits: + cpu: "1000m" + memory: "2Gi" \ No newline at end of file diff --git a/src/agentex/lib/cli/templates/default/project/acp.py.j2 b/src/agentex/lib/cli/templates/default/project/acp.py.j2 new file mode 100644 index 000000000..e68dbea02 --- /dev/null +++ b/src/agentex/lib/cli/templates/default/project/acp.py.j2 @@ -0,0 +1,29 @@ +from agentex.lib.sdk.fastacp.fastacp import FastACP +from agentex.lib.types.fastacp import AgenticACPConfig +from agentex.lib.types.acp import SendEventParams, CancelTaskParams, CreateTaskParams + + +# Create an ACP server +acp = FastACP.create( + acp_type="agentic", + config=AgenticACPConfig(type="base") +) + + +@acp.on_task_event_send +async def handle_task_event_send(params: SendEventParams): + # For this tutorial, we print the parameters sent to the handler + # so you can see where and how messages within a task are handled + print(f"Hello world! I just received this message: {params}") + +@acp.on_task_cancel +async def handle_task_canceled(params: CancelTaskParams): + # For this tutorial, we print the parameters sent to the handler + # so you can see where and how task cancellation is handled + print(f"Hello world! Task canceled: {params.task.id}") + +@acp.on_task_create +async def handle_task_create(params: CreateTaskParams): + # For this tutorial, we print the parameters sent to the handler + # so you can see where and how task creation is handled + print(f"Hello world! Task created: {params.task.id}") diff --git a/src/agentex/lib/cli/templates/default/pyproject.toml.j2 b/src/agentex/lib/cli/templates/default/pyproject.toml.j2 new file mode 100644 index 000000000..3230dbecf --- /dev/null +++ b/src/agentex/lib/cli/templates/default/pyproject.toml.j2 @@ -0,0 +1,41 @@ +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[project] +name = "{{ project_name }}" +version = "0.1.0" +description = "{{ description }}" +readme = "README.md" +requires-python = ">=3.12" +dependencies = [ + "agentex-sdk", + "scale-gp", +] + +[project.optional-dependencies] +dev = [ + "pytest", + "black", + "isort", + "flake8", +] + +[dependency-groups] +editable-apy = [ + "agentex-sdk @ file://{{ agentex_py_path }}", +] + +[tool.hatch.build.targets.wheel] +packages = ["project"] + +[tool.black] +line-length = 88 +target-version = ['py312'] + +[tool.isort] +profile = "black" +line_length = 88 + +[[tool.uv.index]] +url = "https://scale-307185671274.d.codeartifact.us-west-2.amazonaws.com/pypi/scale-pypi/simple/" \ No newline at end of file diff --git a/src/agentex/lib/cli/templates/default/requirements.txt.j2 b/src/agentex/lib/cli/templates/default/requirements.txt.j2 new file mode 100644 index 000000000..0b8ae19b3 --- /dev/null +++ b/src/agentex/lib/cli/templates/default/requirements.txt.j2 @@ -0,0 +1,5 @@ +# Install agentex-sdk from local path +agentex-sdk + +# Scale GenAI Platform Python SDK +scale-gp diff --git "a/src/agentex/lib/cli/templates/deploy/Screenshot 2025-03-19 at 10.36.57\342\200\257AM.png" "b/src/agentex/lib/cli/templates/deploy/Screenshot 2025-03-19 at 10.36.57\342\200\257AM.png" new file mode 100644 index 0000000000000000000000000000000000000000..ef18c6e811be270c43f75f2f13373b8952d92e39 GIT binary patch literal 3133708 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

D0Rr|~oKijYr?!!YS!HgNQ{okqH62I`%{o{-1 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μbl$r3)$cSSEE3C?Qh_Z! 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 z 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�VYwe-YfzR%tEyl-uae%(OY9!>@B;!WjpNadtZ_ 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
vX}iBlMZN_LkO`_46^O`ZJ}W#NQ_(aWZ+ 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�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 z�UJHqn1qF$6f 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 z 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 z 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⪚2!4xYR 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%0AcAoB5&X-f%v3|kQ1*oMd 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�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

? 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

+5r%mdPEiwA18C0w`?Q4 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

h|pIh6Q9*O8Qi zTLPU(Yz39A;e7XdAdmbQj9^A)m26SM$vTF}Kvd%;zv3heJ4WK|)fasKB)4qAe9-8+AHBz!Q}KbD?xjc7Zr99)pQyW@ZL=*HjL zAW0jX+(ua=-dm~xX*DB|B>kA$D|G@&;d7#!{~QLR9Wg=b@1th78>8uTIX#iCV2^8o z<)-j6jvFNTLhDh4Q;y@kAp(W6FqgA(0>KErEMs|J?N((Cyw(y`%KdhE*kb~LL0NWD zXOU{_#LkN>4V6H=M`)8ba+4x^VIsAaaW3Duj8jDwY!SEAXORA4~ZRw;EDwtWor*Ss)dcp z<9^g3FZbhO&Yb}$FvVFE(u-Y9XUi~HW%w5U6aTK7Ps3~m%8hys(=c^&Sr#Rlv!tl+ zx7HCDM~|fWW8ZY3r&pJn4sj|h%l4STc1`yVqefWV6Vs8Q^b>unE^Ja_YwmAw5ytoy za^8Kuv9|^aC=YBk6=hdhu(al}JVf?$GbJt&p$u<3m_s7GBuac6YJ5LZ7ag2DJ8!FS z|M`cF%*T(4u-ua!@ZrYtb4_OjiagF9%QGMr|{^6wUz5V!Pw@vePr|Dve zZ@|}ik44jHpP~yJZm8)-_L#aNBxy`#czHv5zUlbFy8Xa(EVq2(?f|B}X_Sq+Y%wml z>)bOXPLD?+{Zb>a=QYKg;JOP$Zr=<)dP(&9qAl%!M27WkmWiH3TAViYCm8m}{;_-B z69(!UoAUSiA2qM#f7QG-RuB;UkloGKz7D|Q0jZjawhsYB?EL8Mx8=$HZVA<`xG$&J zU!Euo;Ds?M>U2^%^@kpzVuxd#wR{dHPd7xPW?7RGa2nz_m;YDND_=WWww~O&_3gmY z&qLG~m3LwB)*$?IaAqE<&v@+jOrxHKLABUGMXY?xl^PSgzfI8tEWX#_UqrOJ0KSEs zKlkfi%@wSx1wW+R^6=J?bnSkjfE@0C4)U?bB0XXt|E~yaPnmU z-8v(mt3Miq$DNg{2LPq+*8D|i1|4WI6<>_#jlJmjuBPX@99(O?o^fU&bNiMD^2_%1 zdE4^ORDB-o8d@nL|I?m(Y*axDn{ z(=@n<=FrZN>yU?!o$u*Oc@1XPnZ0mmI`4x)TkjN|Zwl2PWwww91T){dh;$T)^kTo2 zl`RFoJJ$U7lnwKv@j%HkhwEdv+HS#CzQhR`v6 zt_SohA>~#K2P_M8My>=#rOGcQG=v{!`lJN#F7amVht#?^Lwb{?_FHwBSeBqK{tB`{ zKpS;XNjm;uqYH;^-5Q)wyKIy38?AEY=f0~Ihl|45p9`MV!k+b+aTqFI>WMF{#eyzd zrQTvH$4_gcwHfSG%-^N1TfVeOsrg!cJ{3Q;Q8qikxn|>p?>(}7<4;<6pb0Ch8?*E% z>|N)TxsA=h4GT$W!o(dB2kV=#9x^7t<2n0!GZ2~U1eWh zusl?CI5rVf#^-PA#3{YrEB0J;gSb_dJ{-7fTHl(k=qlX2lBUA=u=f`kc<#f6Y{~aY zuG%*`>k9v)DfrhXpSQb^qK)^YGN5xxvMLD-1wr`}GS&&^G%ymuuh!A^y7bvP7w)?U zu2$KD-s~9>Tr7+Hp3y#=A(TC0uAGRdeWBk6MhjDN6{HVqv>+9*B_u2jEE?^S+sPN_ zvckL!PBVVUh~32>uph0B_%nY`aaD2oH`pL7`m%n5>wUI;QIC{e4^+3jUZqATdO7zMED3s}Y1}A?d6wW|+>eK@9pbJw zJK)o3cJo&m;quyhJE5w_2cHqB12JlI8RXt&I{_(HBjsaJ(9la5Jh~8COmKK z9y3K`y~X0xPvhG*=VLjf&zo?EwKjJOY{VtenzZKyC;17QrkzbdI?X=un6jMzo9arO zX+g!2=dEQ`(L(Q+nHW}|A8dmDtt37oMw6&?LQ~;3h5fK4umb_9HJ8hBCn(@tsdG0% zhoh?(nq$(Vs2%VZd}fGwfy*VdAY6@Ww78Y8g*Fp;z~*nW)xYP2i-TG9vbNg6LEK9u zj!BMmg=2l)#MM~0_vIMyPL0aOl`_Dw<$N3R zco;Mc_Ed*TRfXT%%RPm4>G;V6EY>e=5xip`F1hc^FmPttmc zQkH(tul3tAOb%q*f~p6wjD^#Ar%ShbvTcATXafh>e~3)6vHGfp4GTZ(e6m#4)G2jo%hkU8!1XlzW$~39h-jWXSn{<+h9boRoF<3$_Ov%>_|?SH%eVg*zYBwmMM1&1s|ygL6hl z$GgV#inXm9ssc)Gl$gnIAIX8= zm{75Qbf6S)5$LOq&Lc+ME9NJWEZ*om0^kn#x(Q{wa2;vLcuz?}`M3Sr)&p%FELGHdjb!#uz?EAEf(p9NY zbLPM^{e5|}#~muovfmARjS_*QipBQiYZJL`0~l?f$i0h} zg>|Rj7}INZ;v6za`>5t-W2^l zon{Grk67{U>(bLUFfgqCOq&6z`OdehNM@z50K1XkbAinLQOzT8^N>x%Gu*3{jDEf0 z^?gUYA0b=jh6F33|5r<1SxhW^^30dv370%yaapO>9MX;9Ps364&IXs@4W>XXu5+o` zU6Wa1wPym!uRPr6BufuD5LudQ9ilejBN8q74M>O*chy|6H70M7svi2X+37hHAqQhI zMSjScCGJY_L+1~J+*ZlRiU$>QVHbPSU-v%sub-hc`$UstweL-DK%y^+j{I*mQ-(hHyo96$}9yd6Vw`>#Y)c zyV{~tsEXNvEEh>MPJOSDqwovY?bm&;`-nuNF7l+HZ$t++oR_(b5E`xySTEYQ$nVL2 zU(ipte91lm!MqwyBr9zc6&2Sy$Dvd%%Py|0r+YxrGSn}@mJ4RGx_OhGs7|z9)3;ca zpG09Ke^fmiai@J7Y5N%7O1^!ux_LMM(7f8N^b*AnQfgdQG5Gc8xkD@8UhIZ@svU?+ z+aWshN+)hdqj%o*5FDpmvr2x*16T`9ISlcx<8(&%oD6CJ-(6wWB2Bwwcoy&IR-1Ka zY6$}Snz4PB7<>qNl@sy9X*H4T&+8tX`d>R(A-c{0?kzb(=r;B;!z=aW1xiRav!(V&-t&;AS zXE%s=Eqwt_yXs^r-P-a&2YP5T-H16A^PQns&GSP2LaTA^IeiIGvXj4~9Qv)CI_4o!kd(4LuwTnxmC({+A3ytuPCj- zyKHtxKbv@cM80lGqSr#b$BZeGnb7eZiKVUzQyNa*yy%&>KdI1C2#YcAkmAUlkOz9_ z=A@;A*b9~PT)7#GILh)*UtrOc4DSLqVZmcZN}^*A#$`#ra{k#Hz7wx7*bPtEU>Sqkjty;`F3$!q3nL=5aJUw!TQcJ$vu-Os!{Ov^Hf+YE>5~IZAIyneqEykUg!!wHWdEy0JlVyUmp4>Qc)F&qQN1xBX67?KBb?lAZ(Ct8bI>+#3_(RR` z&ucE5T|uNAu%%{?!m6R?@|R#T)8KD7>X>OuR~J}%B8{L|ejg1bP+kP;S?G}d`4J98 zff+Bn+K(r}T`&sIEbOG}=L{O0kQpZ!&Z-}la?>}+ZF72^JcGVb6ek&E0O9`Z1nC=7 z?jf;?6sn^gjG{Lu;%S=mb8yC8{eIu5#=a}kxtdt0STJ#!?eha`4#(rjs;Hod;#28x zp!pV1d*p~ z$5a5lN9*iqDv^K>#P08R&)x_xa0*)V+&57OG2x{xurOfCg%{LOq@Ui~O?C5aKxCJ? z_b4x7(9SlFJBDt4MIjThsh&OXvlsnt0pi$GTFC>$adgE~-oO6x;aKf0S0l(b1VToWz;Q6z}ENEBB8ms z?M6swQm1`-=o2gLTn6#>4QF~ZDn_6vl z4nIZP!oaPNs_8H831B?Ur{%uHyL4SMeVbTRFnqq{wRi%E7w8vI$gP%RV<%arDn#>H3L z5A$~o{!mU|Q9Vw!&AC=}x^&mNNptm6?(Bc24!fo~qS@>jOb+VDXzzGzpIA{(&#U~t zS5d?gpZD-BvP+d8ifmP|iPtyMXFzJR2uUwvpOJHCN6)?7k&?FDkJ%cPf7p49ITuZ9 zdy|Wty!~J?9CD#>D}JqdeQ9_*cDJ#^acBIjfbHP5z?83jlD)DN@0Ivr*DVJRx02xJ zLGb5PkLj>4XgWLR!Ma8z$@k&r6yYBqxsaMU1%XO-FCUaX>veFC#qQ;6OPRE>X`tvO z%opVKTsq;EOnH{uAYP(94da=IkG`)0N`zp!J?cTup4eg($WeNk95}SK1I7fe`Hps~ zpfR_U4QJeHtzdhT?HnY^6<5~)OUXNx;SWCyyviGaZa3K%1#4> z@Vdn|#Kvtezy8^sv#7F1y$P@8UF~OO97LA5=i`s>RRDSoJ+Zjbl79@Kt+da0x>j7S z5#sofy$b%z_0@QWhHF@@qxS-Z!-x;>&ke}8GR5E%_d$H_j;tsY>^zs2(+493&NCVCk1E}#CBqN({qRz}a zb?8^xFmNXNp06Sz&*r!zMg(6IcHf!6a3SY(&M0D|fJjlNm~gYF*eCAJo4NDaFMp3( z6F(U=Fy4@8=*x?4&Q}i=Do^upjZhh$uzV5z$FyMk&v*=&~#L1Jy zXsoRl<9HENA2Om(@`Gb9&@;1=)T*}99Pv@&!VH9TXlpC_%Z$Ria?)Mcn>i5F-OW<2Q4}%o_`5}tSxD=sYJqOv| z)tx9By|t)eocOnZcF`RCox>ma8JN%q)B0VW-t>t9B<5e=-~HHC-j?h z6Oy_R7?qDe@d4PVA~Mwj7Eqo^c~n+E8w`87K}ILIu-RI7y1MUp_>Tuogh4iwb*-qQWc_Yl^!+1pkRZ4b35$(K%$HbPzWT{KcceWVK%4mn52>dwETV+O|JL zYzwEV`d#HLBTVXXNr(FNDs3|ie0o=uX>}75uxbtcn(mK?s|zS@_`n*^mD{Bs7W3dJ z-Yj_@i0up?#_jJ37SW+ZI{f424MaJ~Ld%PE-ERWwo)^3A(nkFn`}M)!jJap-#|=Kz zJhQk)QRXW4L}PT<^DWceK)VqG8GiV`hIOv_RFont%D;J<7xW8;735ZM|8-SKKlXS$t)= z6#a1ZvB@C5Ke|xAB$jdK)Ghc`vEP@c4>C|T{+n~-?WZrK>ReaoFekzd<(i>iU+sb} z65R(vP3(;8gn8IrUCK!|qe|_OSYw3=f4)q#;K+NumEp}nMc@B5nUovwlR{U&Ued3gVVUMStglS%WVIfqB7W$XP34-&I`Rto} ztxToSDkVL;^I&H^vo}o`$)ybFf)wnJVOkc6jU%1S9DAsEXm!{4U8E-xifgB-qQsax zJKqa2Y5@|0wkOi}IVpCZL*wy-w?|ETirsF;I2MU-Tg$%nJ1m!|Dh#rBi3qV5O4rVY-!P0WA?tfRn>gdhP1Zcoxl!VUXW zj(~r7w%w7M?3d=GFD_CYb?VZhiS1B#@IWJObZKKIjZvB{ZP_-L$Em~!Dfoc zarf_xfkL{KS(EIv&rp}Ug=Fdj*LPaz+-#lY`hyYjvyq5Ek7RgdZcbRLMH}IZ-u54L zp4?M4)#8`dXFzEXZM5N(7qcYd>=#o{C`kIsLipnN(ITIiZ6|8zO=TTsu>!J+?&Q3y zm{X8;2WL!0jtr!5Lv%a(R za$6uK!qnZ~*VZETpwo7wVowFyzoP3IL<{F+Ggkbpijp9`pY_`t0hF7FBgv@Dz4ajM zu85}%k*<6xO-}lJV`4bNM}@t1Y@k&LHt(H@1nG`R7iF7Buwt*4ls4|TaO7Nm`&VF& z2ro~-$YJ<|S9QWrb>bckUOH{zML9UHeiFH)@ingMul>U3n|HR_vVKT8e+|1b0+SZch+8;Xi zq{GH}kf6#B3=&ba!#< zOC|Gav(VvMtGRV!mAR$sa^pon-Y>2~OwGgDb$J8h+duvj!@XQ{Q%I6F&F_9*CeX+7 zEKbxZ@Z4{=4!pLAazI0fq(f}aMM9fW<^Jrrop$d?ZXRhOFow$5qd1Y@#^Bs zwLdF$sCSUl+CLx(=ev@put@BTY^;hA=yx@VbT~K0L;gPc^Ge5n5kdeFcb%QoF^?{JzjM}biQ4^KFnH# zA(XE-4!aMld;V9jgQ#Ve+N=0Xxy>)$-LKj&FP8c~2K;S1TzT+W z=B>Dq`{^DiS8ZZPa;|_YTczhYowwfUC4wTe3U4rJ;QJrl4h+O&oJOkkXfNluo9Dbp zQGBjY;J8sBoxVz!)Ev~*Vez7u)eL8bkWOuF;_ydUMccC^956R0VKmUZf163Er7RGH z0q4Z=M!^teHdHem{OV3m^Oi)e+BgwKVtv=wBu~3SkoO&b1Ji8ATDyVs-9#adt|;|B zi3`(7xbnD`9PB-gh{%4kBGh+a6QP~Ea%<%p(qnO5?Lzwb;Jn4(Cx?bY`cRbk48?oi6$Lx1IA3&7jca+}R2J)CbJsV(n^uJP8qD0SqIPKnf^z-Z!^M z6MZ}NW@OK(uH2PxI6bR|d9whRM7kOs@i#4ueARCzArDC|o13muV0ugjk#c?RGio`VWrt;k94-ZL1Ew|qb#BdenP1Bponv+=ad!95cpz-cYD}oB(a@*g zj+VI1p1r#0&UEUzXcW94fwY&$iL-7JA^Xv5xCokVUz2xYxI- zjVGdWc-L|MKS@oD4F4rQJtM(T{ftLRBx_gfY`x4Vswkve@~Fii%k_B;!C|=aVtlsVfLnJOhuu052gTb>46r|_L2q!0?L(EJ zIAg~Bxk{0Om~Tt~>~oFz@un_r47mD*K}8g0`aL&<8(fro;25!Z{LGnlD@0DDGgj@g z1{3T>q6e%z_El;%C)tp+mqBB$`Vk+&&_f_{ckH zGmy$_^o|=)IY#ZShUxRk?5)(Hxp;7Q^FWU@HV?;Mhv!u%lOC>2;l*bDddI-lKm^Mq zMm+Dl%`RGBX+^k~T%-qyz{rgF{?Jdr`@=&2=+wf-zL1@JHmRfA@cy+g7x@XK?O!w< z|Go4U)|vIJ`eqm5QCrPkC2}9DH(hEQ;vVyGxYWd;>cKzq>a&d*HM451df>+(Yb6>P zl{#69nS@F@Lk1MazzXS(Y(JQMxsf%dz6!GhoJQ_mwzL6JOl87 zA+^l@`~fvqSN|Z_nUF;bwVP9z4~fHI+*mYIMu*$~p980K;^Rn9uP<3Y27jH{uqrk6$@ZEA8{c`VDAOB znqnWW=`Fs{EN;I(+|v%p;wBA6XKdjc142!{-xDY6S@-@-WXM)Q+-r$^2sogZ%cOee z2r#5cRr0?;rl!IH)!aLh)l4vi}LRvQ7gzWK^i&j~OZ4{cfZ}AzkZ;O5Mr&ZQL58Vu9FjlA zJB$XlWVq?f@uQ|GZfdc29S(MHHHm!&%gVw&186W((cx~XON0j zb;U%Vh4-6Pw)Hn>E;&E0#@G%>2Jj{L%L9{Pbl3ibRDPK0*fM0yExJ*k^t(P!u3o_4)6cYQC8Khc=+kN91H(QVizqSIOc5Y>TErYsk)QJ8X(@W_ZtSn8* zUQCxn3~A-WzZ)i65cJt}?CbrN_Zc6$wy-qhHnpWsxj#R|M#h%!aQeR0<;t=((#uW| zUT!toGUgXgt)--Y=(xUH{9g*M?nk%QYR|mu(K9xs*tb6Z;>X@yT|gHEl5?FoHtx@! z4SzOnwIR~0UGpX?u=LZF?5Xv`W#_AQ;kNnV`Ucqe0b5vak0ax z{C;^w+N8_6L+0*3j7(SRa|-YH4t525PT~3N|9>gGDc(5#;dryBD`Sa(ViITVesmY$ zYt3Sd_AP(>^Z;?5FOaqIgC=hv4dH|}C&j1NSce@TnCkS(#&S;X$x3!kwvTj5N}Q?s zPVaNI0*0tOD2hCoUxXY&+57OqWHW{lm!0`)>;^Y{1Ftu^_>Kp7qJ~kra7QiNKBO?Y z8yshL{+$dNOKW3wwV~9;m)$wJ#=Kqs^0qo6`t){g?z)YLg7TZ(af$kw8n-vaa4;2p zmwrV_kUxrS3q$ozQQsQYiJP6&oemt8VdFhU-VNI3uO6Ehsft7)Ge5lz? zm|1)j!0xhS7((fPR0>oz4I1BirqX@!zFoE{)?0%AW7*>H-&VX)@g!peSOKq(AJ3Mj z@4Z&m<>}LYofXQQqY0LV(ae_B`G>jI5$) zxZT{PSqMP|3DeH8M2y0UpDiweaLCh5F3Jty1#B%Y_z=x|{ttnBZ@A;TQpP6d?9T%*wV|Pm9CWSEy%Xc}ZU0tidF~ zf7xGugL7=Md-Ex=ZKf>?*zn9_Q13#~SJ(ngsmF{^?JqKDwtl-ixq*iS8P$C@T({Vz z&&#EbEE=y)_{6MBW_7Mvchs>QNx5@}W z!t`>gn4Y%?`$oyf4Hmk}0m98d+2BTZcL$ToT+dp6AdL*bYEC0#1!%YJoZB#!dMFOD zqnaCQR<;Sa^FkHiF*@Vqn)Tkez2nRM`|htB2E9W(AQ|wsh(9pdQ>3r)8awM(XxvGW zX*bK>oKz{w3pOAySarpv{U-sn_~6_z{DA1og|p>tM-bCc;uJ1=$T?Cw|Y07yGW>l_7)7 zf?T^Y#UaU_=;gWTs)b2aNaF&{m`!oCAB$3Hfp&2bOdu;#$W%U_vFZc+z(^Hp*~#{` zpPfSPE=%VAoQ!DrXv^C-`{X-`^0xH@-g1G#;TX}-e%4-hvSCxe0quUS6TmKob#A)d zP!wu=L)j-{=ZI=~z*~r4G;@(&GPP`#hK-t`iv0boA zs@3*xTNa5}GDnxp6)&uI{VM6QZcU7$pMR^l%v%!5)sJA99tq*v(KxsXb&3?ay z?;VdVa^L$B!tk|X^lcEuI1--Lzx>)U@Vnt&W<*$9^6zE!&XY+_%Y~sCd!Ks*A+dHm z&A=7r%HpCZI+?j)Db25vswxcm@h{#LGfwA+>=<9+EWK4i)-koBx`D>= z#~UAH%-@(MgorA;CpY}{p1R6o)ey9OqLxr^r@8n@Xu_X{?Oj*A=eNtmyNaZh#j$Wa5|idKyJ0LU@`s!hSm2Sh3W8*N1t!%iYLayZ{6r; z0dgRNVEJwZ-s*fr2A!fZM<5@kMC4m}^~I(Uo77B8qglsgY4hdc1Et1{{OG-+9+`*J+%3Q!wqZ!o!rT!sX z6>gIR`giH5POd(91#NpuLS<+04zX0g0mU@l1E;ddq;5W9LJs*0)#Z0x%?>?wdM2m! zNAo4uM4t*m)4BpCpAjCj?@YKB@-=1jE8ZmS>df}LDH6%NZJf#O|MYc5I5Ld}-1!sT zBMqzuy=(UpNnBjlwJcx4g3^-VsBmxT>7X*K28VEBlZWB?gW)j&z$@=;dHDUd8 zZkE~Dl|h_4MQ!zqUQo6&)vu0hD3TXr{;6sAzY_EW%T%WklBR+)@0J(hwR%Ca;`?i5 z6K+%UJ9Cd7m9-y+#4uoD$wFL<2mAH(+9+6EOz7Zcx>ziFFrw~kiKdx^eRk~w=ia$g zC%y>*oecS6I@kG|P9cKgt$2%8e#<7my{ygzR`{5CEW6InA!BwQk)x(xa!CoyuqT(5A@e;aU`o8J%9LX;)OPk z4@;B=I@dZmBXHA7w;P+QMdEl5ykaM_DlTz7fyq~6*aucAlwPxP&-@2o zcW}&9{4Kf`mZT=PY&WhM$gFf8sTl4|Q{-bN%iNDWgbm|h(_g1+x=~VUI8mdkme03m|DJbrhr*ftx;l${eu{pMeK*_1D~Toy&IM z`kfi9z4*e$e%|9UK^0gFyg={+ItJ#bSt#MgbzoPA1tCUvg=r%;=k{vztX`bD`(j{E!`@|ja@ zCfeb@&iFf4Sn=r!3ZmG~Heh!C)B(%_y75d53cb!9Jd@%nU#lb&*g#;m_H9cWV!WRE zP$%{`X;47AEk?%T%03b@`ofkd&z)jn#EF{6?DO0j?o~8RHnE7`F)ed>Wd)5B%EHfx zFo`xnMAnWmTYM(EsH#%}`s5nAyfbb8N3m!0P@CAdd+###q7dw#jyxOOOJ%M^5oE*- zX#Tskg02H>*=wY2NVv0A_~jVzW3g93>A`##$l)8ifZ3G!1E&FWKevj4JOR1ILmrrW ziwMBuC$TVN8{K%$)z)dzPUQfxT3s2PI>%5{1I{S|=*JO%i3poM%3KsaC9*b(J~I`% zPzch8pGyh*{DAF`L>Uzl_h$tDfrLUvOUJ0qr2mRvQ>e#t446HgK$5cVh`}E@IYf*N zU1-qS>s+n8?_+%jS^`#SG^J`sSyEd}SryfDab&J>diucPTZz&H5isuqqkabedwBlc zSH-1zJKdWzf^M2xY!ywBKtsW1PmeGe1Jqm>|&09>*=nQ(X*I^Kjm zUCdIpbP~$r{$fA+;I^tC7b?>yH#B*L|K%Fzs|b%-KRbDEkbpa?J~(vxrtRrI+Q1_T zKzdf_YK2DQPHaGdGSTlVa~5dil%sGYP#NP$ z;MHOaehM?{Fsgx(ED10dDn)pl5JU7eReOK?VBPy{zf!9)*w~A`phYPdB-r+`nb)w& zFc)!76<{-D&K?>E$aHiu7Nbzy#HANbHu@nQOvjp1K9H-PbzUkv5+$FvV8_~8;pOeJo2h^oaj)d$&?2)@)RNYcQWwl5 z3>PsFNkU39CecTf3kTmI*aBR`#}snlo9Bg4QoObipzuZ@*@U2Isz);Z+URa9be*ZzB6F~oME3B1oAY-CLCEpYU##HzQmvX@Z|q)J$NB>XNc z91C9;lO?i!^`JOH8~B#@#6*!x<|M=%m-x8Ch>{DFlSzst04oM$nhsmD{fKcOB%Oqg zwWkSXF|dIczO*ZmilzU0w!GP^QCXVruMmEjN7TwWnpBClui)k6Ty#HErfjs}chHD+Jda-%0doHBb4hI_Jm&`pOR}9w}nIL$2 zaDHM!?TFJJU-Wsx^Zgde3#E~>16Jk7bRz@z zJdZGTbh5L;6URq}tV%6VO}>o#^3aJUBp;2&gRQZ`Ig&}Zz@JMo77Ze>9{?V8P}rwx z6Jl0-*xN%50=BzJ#8c5;SwM068AlY+$7~@B97sM%IG@RlUAC*h6JJmyENsPT7tTtGwhEPf*OLB(aiv z0)JeW8;?FaGYbLTvBGoauEb#n<%y~N80|+|#3vioya)Yi(=g*q+Kf*D!Y#tD$xGi4 z3RWRI^)aaT3?#vMm|F5Gj8!M?KfUl@*BE*kE-&e|+vsc%2)yjbS(MK4{I#d#0scV0 zeSfwl=2Gn;wHiKE*M+bc{%-l5HS70}opVZZpou~2&-g=(uzbvV9UL+&dZ>xMV`&|_ zFkd=|ZwS09yl`(gd1FJpQObl|?mM4ldBHv^y%PO7C^4LoTIl5C9Lu`Ajv*R<4oVzSXf-gAKe>B4?;)P73 z)3tX4&VLN<_AtoTDTLXTRhOF+Bq-jtGD9U|j#Kj{@m^{axjhOsFK<#+uDS9W09h!= zGYm8pSC-N7YEu=v1y8eWV!&20BG)PlY9e};CUwTEy3K5;Yd z9GaYCYlH&f$N|7p`!IE{YzbikI8`TV?kUP=ao|Djq9R*m_V{htTOJ^;B*D#Q!sRP3h#GR}Zh#+#mLbrQzp>&3lq+ z%I8T_Dc=m4BC37RYLWNt*d|j{B(!D&uKqj77L|~eg4cfGZNcG3tAX(B!~`m_No!gP zAZQ+h9Xs!CGaNx3==UWkTpt3mZ-wf%Xs}z5l?7prM5V+y{XK0vfU%T)BiWtd@7aqD z+;7*?k~EbK5c<6R=?F|b6ox9)n8jb=9oi$lTPh-FP8F!7-nVxzrq3Bc7b29x5%%FYFAR5KVDJVuB{HbE@a}*(&z3z*q_7jKLUN z#JlKm=t@W^dp09==YN-O$E{9#*F7Miyz|G);2El73eQGu^Y^RSdo7c?E^%Rt#E|Am zvsk@QVoqc!&dup)_&N3aK4;# zx}JW!8%cgvASiA2k`WvbWbX~9X{_))HwsM&HNHl=aL82cgG;hc?~1JQ;W4~uQjFWV zd77;!RY(w&jsW!}Rb{a0yc5|0*+P?9 zbXh~NTk`&*iPr%W-udDLO{Y%3l`Pa*ezRGNhbbklT;r|{Dht2d=~%Rx(NeCq)t9sF zuRpv2HEX6fwS(oY0QWIL`V9wEAB60#KUNv3D->{96osY4TM@M^ys5)+_(+HaK^3UN zA}MMo`TIJwka{ag;m=yhV9ixw2f}EhWc#)(!s+#W|ZDo@?wmHdZK@?HWyR>H`z!vxxv2EEM-JY;}xY(b-q3pL__Qu8JSwKF1<)ZY#fDB+P z6t0i1U$S!}hIu9)WbFCSmgipVUDC1fC|v(b0wblDHPm=&AX1%?QZ89C=)Izss1V^NZ>d(mWlM&I6FZU} z^_8>yM^-RDUwS*!^dCD4htDw1F{e%?Iu(i(++-!04^Fvx#H<8}4?w_SsHqtSd_&d`GsCfGy2XFo-*OR2W! zLn`y7R|-jpdrJ4(?QyG!E>eVJ9|VO^m?>!c&d z~e)}<)Ke75^v6(tG`(*ESnw#wvVI)Dy=>_ zzDrknZl1;Lf;m#7KUSt zO4L!5BTTFRkiV0UqOQv$5R{mh6%{f@U+jbzmWl4#-ae4iT2RIpZYoQv3}?jgt^tRl z|MB13iurNfA9z1^KsD|p)(}2@?ucJ-S!mJbvcjxt{-p$ERreTprj!0<)Wcu(u&5Bm zdsP~fMub}>K3<_u+7-%Oqd!F&GIh^$ojXoN|edC+qoqs4n8296`Xx~CL z8Lh6G`qRU!#t?3RCMj?WEBcUvsMXa1`yicP%0>#(67?QT3<(MFXgr7a4e$5Ue2m?O;r7k33JntzmDvrKu3B62 z-|{G-ci6+^i?#%P#!`jcvRDT)vbcrlE+wV7@3E#Jm5^^evlmFL#L`3soJ#8yr=(af zXb)vO8v!QA|D&qgWbHY3%~w2l5^%t_g@!FW z#&#$yS_p+TZ#+ih2_q4sEeYd4ow%FCRij?w7>CMd1$P#FBBWWE*D)c~t}%`c9}9rI z^9h@>)@yb zcggDrvduQML_fI9(uWoWD5lAv3GGo>^Wc-Gz|4!c2{yg2lgMp46%CSUX z^F~1P;TsHwVCdyUMOFiHaMzG15B9~b=S2-iT|n`6!$LSsx@mB5;>tjqbK*@SH|CV$ zXI&Vwdb+KHv|iPfY9YQuI1@nmf~&Tosrf3&vPvrAROu9gwLg1-oYtgL|NY~BCa~9# zGoXV@(GhHk!np4n%zK#kagoJp*zqEbTtJo&)QH;7k-k=?yrQDe|Hq5HGF9Kr zdaZFE1xxbpCf=ziS{@lN5(+)ffQeNh?U2}VhJN@Vo7k^&&q)?*j3i_t?}Xp9%g z6A|vKNK=zFjBL@=x?>kC^1<6|fBlKo#kv#0m*=5Z?9bd-frd8U5&M`9XCSy&#Gz^T zSf${4$6rMU*!B6obiJs zLbu?!5%5dmnqTmbv15>Kix1Bu39(d6U({vzdaUkuX}bFwgqVg+x6j6*bZ zP{PV5y0_1nX&BznSZZrQwP^lC9fq#fjh44|v;)y?ymK%f9DMJ-r*FnI>YMr8n3;o- z4vfL`^NBHRs2CD4Y1fH)TGPKxfnd2>EtPe;wdE8%70bP(+aEtECfpR+kPKgwz8(>9 z&>oPq$>%IMrbr$I-G}!SJ6ZU%(a$M*$Jkx%0YhZ()1h}cJDaYR4+IRCq_b{ZUY)pO z($w#5JGlf5Nc*h%Gsplg9;z+YQ*MLa8kUo--|8cjUp)d24dwLcfD7CuwAlQYBbBQG z@uyZaLl0!Hw8Lc3%)45C#**TpjPen)obeyo78702Eig_}G$_dad%&EU9`4)-^r zo}Icknf>k1>wGNE`)m173)%&kNV2;tIAS4?s&_%j0k*L)^_JEhAQa$qOu5U0(^}ZB zZeDv1zWtuM`xtPfF<6(JfJfGJ;&Cbz)n(D$sBW~n^tMhSv%RV$hH$|h4qlO=GxYAo zXO6?J%FK<-b@$*aW3)O#>>T{K^t5W_UH5Y84VBAeDFtQgr#EF&Y7<*eCXar3?Oa2C z8ew^p_Ysh(6vR^<{r$_JU?L=MaK)%zH%Z%EQN%Iuv-p(Eps;x2dvkF%Y7g%+##r|h z(9@t6LLq^BeqJEvIH1xDF_hsjDzYef{b93YVBGhw973OzRGc$Ozr-gW?!K5?{rcf# zY4+cA9q8F}o*IUUL2A|JUbeeP`WJeYc-t8G*~4W`*Cxp*X|-C3LTeH@DZ63QUK+;K zdO$T8e{Ph+9HUd1llVU6k{1~G`I9?k;h0Sn`QopI_>;GdCmx#&toj3Y7R0=e_E*hQ zhTLqdp}1m$Bu>!|14ZmfRpXY0)XCr0YHw{AS2|+ydzx}n{u|Um zuQ{iDZRZob3sQEG%8S&Bwlqh3`w!|;<+5`5;lfqfd}4;}eo6<2rd03~ter_|KUulf zYO=_joUqjH9U0!Sf44SWGvcSyURMW8=g`x`X3s5e;NhLi<_1vr>;lI z%PiPaA+W3~!rysx(`8XyXr*Da{>VQfZFRFyf|{CYyL)Vp{l1f)foFgAMcL^y5l}h+ zN!=r=#eH5_Uhb7)kvgcl$hp)-KR8& z>ksx}n7IjV5FX9+2KfGurxJmXch*(Aln$mwu)EWQO_bOVIs#+qs40 zj7how3BY5l1v4?iRmn*?F+p0WzU)!+=8sMnRg>dpFH@Ol$2QD_AdRa!nv2(MdT_S; zRyZL|GW1J20rQqAOzLJ>;faG^ONSZhRJ~!j1=WRK*Znm|McwofJR8Na1Q)~SwS>PRnjJU^Zy9rR^k6qt*W zZ%_w3C%T;KL>YWVxAS!J^%)X7Mei7#zy{1|u^TqFF@el`U*uo8+EB!sPx3PR?1%u$vG6#TS+&J*lcyq+u+N{h$fMC; zQ$Xy+aHueYZW4huJBnNTZEa^m)VJ>ec-7JXBPKTu$%5TrsX}cW$KC6~B1+B*z!c;u zE2hb4Zi%rWE)(lUEr#(f>G2DK4PC`kmNWRTya1BgHT_UAx$b>sHzobX&UDvNCx}b} z)){9aEeu_LMy;1vQCNSt7aP&ZC#3mikp)@v$%XLPGDnvm0fI|BK9`DuD|eWHktQ^L!$4OGeE&4t7r z-7Ur70R+j*7RS@I!>W`^GouIq= z-lLP`!|}ya(aRP_cH35e=Ji_1WLY@7K?>B6bU9Bxp7*Z7I? z5DnL$jNS+jw9z55@IgyUOZQuGHEKGR4g|9Em<%Aee|4x6uDb~6flwb~lh@v5Yjq31 z`!iaO@*7?%_s%LiA~n+V=p@4EBiwuX_lG(vhU#&fN-fKhV^ClP;2optoH-&#%7X*v zaij$USpvWE8hdr*-%@iGHT*=*dGJg2G2=H+q$-~fhP~>oq$|_>L>K(`+6}87;?C=$ zc{$|A-Ju9A8oKW)V`Znw;x*&_p8($MSD0`YD_sRDjflZPiQszO4Phv*_n&dn^#dO6 zf?gvdV_cA4w|J#NBd*9-d2!$Q5BQ|fZc3r0*ta%k))y}w>|Se!(yG!aDR|FTSLKA` zy}2yxQs`#6Ga>L_t~d3hKx3g0`%(=Iof@OK)tWZV&r;$ce9SV;UAK)G67hSzcx%JC zMO{ba0`sXYTm7B{Uj(FHHQ$QqXq}>>`!FhaGF8xHZ5gn!3Xaxh5`%jtB_X)uIo-xzQh6Vs5s{@fd+%{030}Wt#P{BLH2T;b>vnS6&afBTI!~7M zYlnSNq2RsUU>tN=Cs>JuxlK|O;fz{%I=`O0avNu&wCTz+!$R-DV;2bVdT~?9JaNsH z>-!#7nUA9f&$oXZSWok^3Nff0ou-ZOyvIN?>%aD!Ix z=#jm4zRv^IL-Kgz*}z!k@8tC2E{s&zFB%)_M8xN(Lc`Zv-j}qY|E|F|S&F2=aq$h~ zXxi}9*?-`aP8bt+Ix0G3DM`7wr+Bpe({j;*nKK}2ikzm+_cJ_=t51DKgV~IB*7cIa zwVEpeq-d#>g)|)YcEQP=ee`$LA~%izZiN+OjDi0~!@_s9-dQ8&@v}*M(OWLP`-34` zW*mo}ksoO3`jIpN*)%NebuD-Wi?R9V5pQJ_C$fx`PDg@Q^kWa6lrgDSmk627fs+kv zA*x}JYkDP9f8|LPMI}v@KMqc&M`BfiszVy&M4-mYAPalDx~9Wr8~VCG;-*0N7~9yN z;(URr%8HX>#is&`yZmqdX^xR|O49zyTxI+g(9HVh#J5R((<71;E18j3GtPc}+QU<>!2~XPH|% zR~-WoA}`h_y4V>}foh@HCK+Abe`HdPld(C`>`w(>@=WZH+>;0)Oz2Oo&bWxWO_rrj z3rI@wbeejkuwx+IG1MCur&0P7@XOJ4O|NDl88s~}Eigss+QBGHiO%E_#&E4&rZK%oF>5-wi7bx|8joDV3W^y0U7r&%I z+iC;wzbus1bvbImR|UP-+JRbn($OS)>YoLrxF~*KfgA~TgO4j^lIj^Ik5k4xYr(^H zprF}UeMu`F^cJn8faK4K2_K_=d<(QV%H6^3lNkP4yq~7~iZIok)xi$JG}A7Hc|wgi zUL}WxyB@{<&HM_|?`Bi&!ie%ba)BgF%c!YXBhUxq6B81{JRkS-ZyWPwr`<;hpT$p2 z?sDUr=504SPljGXBeLB?(R$BC_YJ2iuuACv$?YE94n=i-X?Xc{SybAUT*`~CNWNgZ z^i|k|$xE>^E7U^ic|ekHrCsYu-fzejS}drH@KHT{>1b&a{B%d3t8p0Pv3_Bp<`3cT zOf#zfVfF7$_dW`0d~5i^?MDB@?XH(D4euPB99m_DV~S8Lb!@LM%6>OMJKt?KY$pFp zA`^JL&NxvSs@vZikOZ#yoBV|+sJtXo?(*XHMbut?eC-V=3c{cPOp&!o52UMnU#mUh9)NwVnf%l|AcM8*hIVi7lOqN#q62GzBj%tBMI!9Za zCd$NzQvjx`H0xLTdl2!}z73PUJ?Qh?9q;h3mBEi=(cuB!i0PIB;*R>77GK<>f34%r zYq52@-tGndq)~Jiz~u>S1S3Eduso4MB#b`XIsAKqgty4?#-@%GPbvG09v+hRSBZwc z2k)zc_L)%ec2L8849p@Au)qFJg+JlVvn@Ra*3Ph_^BS?_<1#mL!O5V`zu#w6Yra*6 z@(IdZ)aed>V~>_MmE5LDeU^I z#CCFj*mAumx!rt(Nf5LqqHV=~<=cdylWDt&T!mHwmp=Zq7trrus6X)*YcB`4yuzV2 z_%^oICD7`K+h$}_==t!~_Uh&xQUO$|w6cd5^9)&^uBi8QK&#=>mhU zQ3W0^Zjf}{T|ILLT#y4}0DsjMYcRTRk=6?LWJmFWLiVV->X3GZVDjl!Cao}sk6+IQ z$$7(6T@yi>6hK{ALCEI92I146?jQ=&bK$IH!foi&gZHuzL5dfh)3AgH|E}HLHpAT{ zT2H8KunK;_HL;QH(laVOgXs%`XJo>h_7i%NLdrH3U|BajL2;b88s6HQKB zWto&#M(!~bNfVhZ+wILG$l$?Ceg#v~zR%$jKutU@1bJvkmD@4W-<)QgL*oH#TT(X_LQ$$%lxO*GGdb z-!3~X+a#Y*7q|31x4q_ljxT-!fiN%h>ADk{b|D^d6DRy6tgleKt#HN^61M^KNBh#b z*{0c)kq6bKx_~z%sfK>tA3^%%Reo-c+JuUKu!0L{n-HT$+Q10-B-GUWk9!nlWrHypGAD9y1r2C=4=21cn&*svy1NbmeG9f}jaI04$mum+@y+jxAdm z0!ER-(J}gsCmY(P+zhE+9niagS@!xdP`*{?|Wzv)m zp7TdFt53H#wlzjC8K1S1rxj5k`Td95e1=51R9BgBMILAqk6OXgJ?d(_XQDwR`OKpyBc@r6z`{wpT%hb>6JD>O-V>}u!u3gsf*9vEh z&H>e_>^dLt9Z&N*rK7QoPN!n(CQ*kLDh@$koHoA*uun4>o&=>Ml&diOHPB}s*Bof3!>p4zHu$0 zqZJ?OjOVLtZ?18fFN*hC`7H zk%E)O^Vu$jbBC<|DL99%ru6%{h5pK0KnC=chd6of$%Mi6AKo(d96Bh9%{ST)VoU1# z28av??QtAT2W#4AU1AUFw-O4XbgeqP4ZIZMGqS4DD6Xni-S*f-DJ{c4f|h`cG{<8} zdDnPDX<#ExU)pz7R*=t{Cu9koFp_hrK>`x8OvLysxl#kon#+1)0wJF{Ry=c_57y5; zbJS!1ctrU6y?)<#>(w^Rxw9zE@g%|f$xHNCG|jcVS(qfoTH(bvj^>|scVrSe#4o4% zel%IDw|G5%Nwj>i=LgNl>bOa$jgqIY*YdnY&psQ)ddhoX@IYtOmcx-mlW0Ttt=s$aet)iX=-5xKUEK6Tvk4Z#^><* z9e)ZAN`g85%r)tV8WHEmN#TVVzXJ@g{b?7NhiJ&HGN^MXKv*)xwaxz16WN6mAQWoD z8DB4dW}I%t=3#rgt2XIGPl@tYh|v)MF> zca+=cJ*kV4OnHo-pwzA8zcRMAp;4FZ^26t(o$Owu1= zA%lk5%;wZY5!)GZpvBoGD+g9dq^~=hjKpJp#y0;L8b*4POAZ2BUWpx9M+Kb2&WK@z zNFO%J%>I@V3bLAQtTm$A$Eyvf=Pm&I(}Y2ma{Ja!MfX^=M;~$J*L7u1S2l_KY9kK! zpc#sZEIT|FtCSMRc5%ZCAJXa<8ozi%e|LL+{kq1mjn60Pw_^G1Z}&Bv^1 zaB=q+s-y!=E|o6ZFZ(SXd9IVVN6nl3M@z3uO$ZmcCpFqN0SOeJuZNzXs6S(-+CKEw zL=Q^d<-U;^{b;q1%85@S%0zpbbMK+D@O5Aii6i((qxn)oZ)jH;413sVc33y8M4Eaia0 znEGG`1g;Up^&8I?$5(&+y$~*id-dFy$9{yqkiLh$*Lu=P2{*jWk?k~FhN@EMzQzFs zAvo&4$dp7ii8h(L5OtUp!DY?Z&k$>fBZ~f0h41f5JX~HWkuu@HSDd|GSE%q#8qw-$=eJW25`c2aUV8$c=Kdq?Z3x;z4XYu zQ?v2=w=juS3*?=#bD%_$`LEbD7x3;1R0P@>MienhygGYT;qdyt!%0_pvtEM1@{7!@ zn?9*41!kbqoygJH=d*e+%bQUO82xhPUbfSxxIF`bHv%vgmA8*zI<7o0!mJVwC3r5w zaA>*{;gj`6N)u&{lb5mPMGOdVgSW$RdE?MlNBqwI!}X5;c>ce*o)h=~&Gi}sRfnDu zB#Tog{hj_R{_f)H0_w+(FZQ`}RfbYvb-$j?^GT1_S%c_1Eg&{pbahvJu<}|L4QX-u18M_+wT8=@wa@M ze(x^3#gO{+aGa0n@Vw^I{_!lMYe)@u#l&7~k`39zqHyWWkM}4E^4Jd2YU{`?N1xhN zaL?#4ozfFSgR)ZNEqd7s4rMwL)Y_zqvYA52q%k)Inu|q4Ekgy5ZGFmGD+ejZwn{zo zm=-^yGi&wYHZINV@3U+b9=7RuBn$Vn8~F@{i;*KY_MxVEoO- z`1nA%yN*47d$zQr5dnQVwxKKVT>qjIiI6^dM=*7}9ZCHfc(eG5X7rz|oiAE;-f~BN zaBlDypx+s-ptb^FSot@3;K|i?taD3rPbPC;`{qT+l#J90DI;H>f6(JPfP;_zta3HO z=1l9UD(Ft0rRTWE;lxkP=h(pnb6E@b`skD~T}%6Txe1O75Jz6-k?8n4DfSJsRuWmFoh+-bd*c~5`*}UM*=n2e)JLo3 zq)h^~JRfc$)yXY`I;4_nkg$_{+M(x6go**Jy&pRlzK@4{LB^yp1zV zZzSO|P6tO64po4=P%#Ow;}WR#Ji-NG5XjTUK>&d~&JBZ(4@Px|J+1&NpCe34sJIG@ zbP|Ll@%c)oK2`t1Q7Zw$q-tAT7v^)JL$O>^nnF^8b%pByZC!)f*Ob4i=9=cw2KoO& zW6J}dulA~&Y96&r$71WK*JI1VZG)6|X0h9=Dc9y!hA1?yC2GVXP%G$Mm~4l|P_$ZG;dVG$f;i25ibF#ln>y7V;*&}*C zmHVA5#|=qg{(8K`5gF;rt_}@5j)*0&w7fLNO+D5nL}|>CGNVZ$=$;F>(BNrdaBm}7 zNghJJItM)edq@t|n#niAJ1){{Jl;PIl%3Q|Tnk2oqJ z^}a)5xG#Kk5wwgmO+IEw2%P_-^I^jC{yS9v6nPT4zsW?@Z^GL_g2}FksOnLp78-wR zsGyI}BXD8g_cG0v8r3YDt0%uY;>F3v)vJtx2-#~95sPz3k0$8riYwd>cq<)_RI9$V z&kDLtoFDB|d5C3Bn0*%v?0pb$SPVa2ZB_s%y0ElCk)-M;87q{h1JZRHCOD$&f!F7f z=9TY*UdtUio4Cz-H9a53u`=7p1Q-Wv7A*fOe`g9LNYOs;5jH|D*2=J0ni=#X9RDP{ z=B*36c3t%n{HMq1)w}9WT&r8i88h9>f>n};gKpOJ2uZM0u-Lf$G_wzpBQB`vnX}|z zO`A&zBX_~cw3+hT&xs124;|4*!YHQvIgW`@z+syY>}0V&Z^k76Jt6<$q7m;#sskS= zdNX7)(=-gu68U`mzEwqILd9}9%IIl!`%}NCs-cDJ80+gJI8in8Tfn4rL>BdZmBq4O z)ALF`M>bfug5bV$tIcBS$v*hH80=4P_F2Q&ZJKv;b58!SE~eZ+nfpS+6j zPQzTJHb^4_JEP{R&(ZP<7zBHAv2!y!2&?4#v&br?&{%Ay5albxQ)%2p!;uG!6dCuC z3UQ;t)_B;BQhdq2*0VsGn)HV9=W$j{h7pQ zv8k^|Rc0#+av3*854smB0PgI!pRF@AhWy2PI{vBo&MqyHTvWs~Q7`MHIJj5vfyTK$ z5nuB}NE-1FF!#G!fvKgeS;ee%K1&x%AAQuRYSCGj#mWR9>%QlCTLFOJAgz(b7gnpM zmow8T{VIxqkCIqmikMc)aZ(TQrLkG3hPAa4>gr2_@D}afIQ{xLC_Q+dvvTKxDzkrH z()`CumAI8yM(_4W7ntmdSea`PS-bsiKq7{zIc6rHXd*hliUQaiB`Gx*CyM0a_=Wy0 zWNv~KXi&o$ zQ{_{Ro4g}pMsUxnqhM0n%~Q``_-iLpqN*1e^Q)X;s?YZJ_J7D$yQ&^83mZeOK;+9p z9`klokXm82Twa&Nd)S}0Q-&R@H`;M%5HRaPtbT?)Cq>o!QiUj_b$qg=M`ZB1IMj~v zQ}4s!T8oVkPe_XizTu}4i7*RQw?X)m9@Qewhv3I{uj8Ljp3#xNi5>WqICpsUiD0(c zP90i{1#Cs8y}ftUomB!SVunI?MHWD>II+Q-#ov91)zcge4^Fu5qPf1Ww)Q7<+OIkC z*Ew61alS)2S0G9yb&5a6v&j$f4%{n>#73juo2|r2Q?BCPAOWzun+G&~Ul*>^x_dJf zo8z9QEiy{6sH0VEevD+tB~nJtH6nD;1Ni1ti1yvWP)2@_HXo67>J@k*dp;_vS)Ahy zl%bwYn(-{RQ$8t`n_B0T&W@rj#nMF2jss8mYBiTkMoyOC*AT`CY!=;X*Q}~v%clC7 zSCR~yLo$ZltvPcef9Cu;M^jWuZF{(R5V?DlOIiPisjGp&8NB^1`8P|`H&b?%O(7+F zrkViM{#mDu)GCoN@p*-yJShrB-rj+n*g{Q0N=p{)mAKu2*73a>7 zAKKo>>?Iq4@`Zv94MmH^;~5``@5gOV)o;lUDGMdCS6J3}c#2@tn};ikhw&bgMSL@! z(0GC4>6uG?uhxjP5xB)Mv!wr?`+pJ{i~n(PEoR*hPnEGUd71*f!mXJT*1A7`E8Umk|S!PxldqOcQDr0x&7Y^W(ZJ+#ex3~UAVqB56V68ECL+;&_;Ke&k& zpMvV+WQR-DL@G-8DID!EZ8Qob#+hu1RuEjK^Jk*PL@fFNcnqkuniW$vX!T6BH=a97 zv5c|7kf+f3(ogi$YF#VI_62XAUTcqA?{Fm+jx~S;$w4w}b1fqTsvZpo2;1w)!QSwo znSWmH+-HZb$Sam@L~gy#T}L*O74q$Y<5w4z*Ir0jLjW$aFo^0WChrjB18(eR<8g~}Xy-6z*kTUA)xDRZzP~ z$DW!qmcTq;AEMhk=w>Ybk?_|$GOOtHuxAAKQ<$KP)*5ViSK={wsL$j)4{62m>ihh5 z`sSS=U@qLuM8*H6LIX@SmTJ?7y~u@09r)b7oMUCU*ea6Zqlu~8tj-Za^9FFcTp)3` zr12ZpeMtxy0sVCqujVOV&QV7eM&lO`ZWsL*uxM0+-~H0HS{U2P>egF#n=J4J6SOcYd@~8Yb0Y2?nRVZ zqsj%Kg?zC3R$Fl~Q>Yp~K!4=3Hioek##^D)YoQ=a(A_!^Dz?A=?fzVE1n<6ZXGxN~ z^pr2qdkxdxw;OSjKJ#8;$SsNW+DaN57zaGPXxo{Bc(B^GA(PvOD9hV+nq|JoMBRcf zXTM>n-Y=yNXm4)tFKBBII|Bo>gJn!*&wlf8Y|*vux+C+YjkTb4$!hk)H*Cn#pl%rv zw>nQg5OoF@RFLW-uMb2L?Rypd>=|XKZ!x?xP34c&8GTx|8$XKvYeB{F_qFtuet4;Ut<;f;tfmDA%{;5J%6r|QMvJV(v; zU@r4|{P`i;{D^A(TEKA=Z&g#osq-EtR!MwO%FzUVbjnxsjprp3sVGu=iI0YoP>-bB zGipYRrHw$!R%-0Yfmd@{+gaq*IOHOKyXrG}iQa2m=As6p+KNcJNP2i&g&P|plPXwi z6S{%`>6g9EtA~Hs+g$oRfB250-DG#0;?>((R1(8g-~u~<3v5*VoDDr?JSP?_w31n^YC{sS9E55( zh)v`B+0N`Gj9;zqOkJH#Ks6i%HCj`4@(i zwr%eS-B?m!M5oM-H&3;D?!x0W{Nw6nn|w{<;%HkqYsSvI{auQS7&OhQD*r-b*ou zHa=g16M7wJZFvioT6(P9R&OQCf!0r3kR@d*>!lWSb>Zn9?nTAspypJcjKNXR zXyZDL{`Elzk%%D=rLF$9*WTm9hf~dbkx|j8t5x?~m})egF?v7pOTX(V?a7+Y+SdH| zNF_?s=^7pzY$2Ra*9weydgaQF$*T06j5{N-^#f(%hwISn_LX-ho8iPAFY(j^@?$gR zqB?qOO<5-K&>zy_rHdWfM?G(WBL|!z^<3dZdtb=mPJ8*g^4yOmx7>%76grs$H}rOD zX4KPe>s`AmtGGM6lg3*ouvyzt-Gjr?psP*{KxS zIN}~OPwf92Ve0}iZujHV8oD7#u80?O?_kIIELXcxnXbJrVD{Y}<5eukQ@+3Uo(&+^@fNO=R>|<&&L#HE1D+fcCod!Y-krDc(&6|8x2` z8@>F$3#YipMMcr~T%1S~+5UNPao56&O89oPg#&BjET;?zPaJTPpbK^Cay%Q?c_^~LCpng=k5?J%sdWvY@Z=KHbe6Zf+gRDJK9pB!ZVLTggnJk}D(nj&* zPyPo9W*+F?k7V$9?Det>oaO&QpJ|z(Lgc9gy}}`g$FAZH1P0BVz7>tvF(1a-oLMH! z0!MmYQ=g9nYK%t19#py|itlG!D}DXzpz+rm>7p;{6WW#5RbnyP(EX@lL1&}^lc%#> z)4hR3&^)&GAlhN;XGZ2)TEJ#OM}KRJVH@{FXlNI56{~avk|2e>45r8HEHZcNgm7Pv zA3fF@=5mW_T&3&7q`;nV?pg6{`hb9jTTPY8*mx;tS63wlOC}`cvJXf2f+)zA$PVp? zpJtaYA6^1nTMS73p++G4H#FZ+nbsXWkR+@18uMA1d$(aJ`vB& zL|r*bjei<{j^(kC(h#Bs^;aqg`Qbfm2~i4z+}0AT(v~^a9I>8~-=9TSSNQM-E{4Qp zH$K{ale|1D)MY2(@VEAvs5r&CurEhCzgr$B>1IN~mk|pu$zKVx8b$nsXOQ(wdv~51 zZ6lLy?J(7vNhQ}tVo!oM+i;q#R-=|b5rNu3;FiNXhr;`)*z9IpM{koQm4dNkUBTEw z3S@A@Qfb#ilR@7nsZ!-G*dM>6cy#x;& zZ;%uQW3%xE#m^mYj%>O~g!*5QgO(5Rg8Uak$6+Vx;i~h5j|y#meXjy9ypbAQ`i9VN zNTl{rAqE;b1tvsDZc{drS3>zc@#17bxX$nl65|kxDq^||Ba4bN6Kc|*UD`y`nXlC86K<_jl#0rB z4?&xCF?^lm?}3HUByeK)BGLsCWAHww3v1Hr_l(6`DAuk_KxiTh3Lo`;D(TRG<_K`< zN^M*&q#?|mI;QFcJtQdhL0QZ~&BhH_p~J{;NAWjz_UA=;1HTr0?WU~3f7hi`ft7#t zWNrvL_#@-?m!>DR8%^jtNjFs|l!x_TyCKj!kyG*A9#Q>BVSQhlQnnwAJSy?;-@m2O z@Q<}MFRE96OxGrDxkHIRgLtU>m`17AW^#Rz-+J4qb<={XD(3uM4DEgC~ zaW4hrS?N9^Y;;q~Q!ZB<=j0#_mVU2f2UU^FR@jU2wBA6IOby@vh^_P5KnX8oJU;NU z5LK}Ijg*6zZdZV>hr-PneLNtc^b1acy(1Gq$fT6fkP^D)HRkkD(qW|dy80B-(WTOA zn~A2$I5GcyQw3O+4+QG#E^(_Ziq_}rJxkg=iI<>PZY2aS(mZ}}h(8U0iG9R02vuO` zykFS?E(ec8`^i7`X}kSQXge+0+z1@XownZ*+w2B*?AvVOW{JIx+@GZ1*2H|KG3C!QEJld;tJ`i>n^=@&MmV8`L75isqplA2i-FV zzd8yvZE3{y6vjQ2Z#DUWe*N0|O$bJ>OxV-9Cxo04WtaO( z(&i+m)?@jfuFfDA%lAh;c1&}>_g*nTcl-pAS1QR3DIbgtYV+A%+i=pLv1*pn@T4`}t z$xx&A8doCP`%`Vh1+w--3JD6m8u>>!<}%dEPXR~aSC?Y2%)VOM2&9>Ww(XTi+@yW` zb`As-sf>ZKjlaJkX5+CH1!(X~B#g-T6) z-9-5Y`+l{LwF_Q7y7U^Yb@;vF)!*f!?Y0V?aPxQQN7Soc{BpQ$9hT_65fmPsy}}L7 z$|Si+Q;_4_zEpu~Gl=H&UOFfzCD!o!KXpB3vyy=r2T}`O*2S5OPhE%Qilz(a?S5B( z-w*eRd7t9oNIqD+L$Qt!0|k+u%mr}68TNDcAMgAAgkvTow~Y6f4`nFhe;Xx5(l~=E z3YJcpiix48b`Pq%9yKC2wKuV`%O+E`F1Z%)C5n9 z#9@jriX!jHGn^MX#$Hgu9&bu*!vR@{L z2V#`pRHN|GaP2mOzlk=Uq_(!Lc*LBnF21X>!Dl(i@yg&44+^Aoe`|^FHqqiP$t?X> z;gedk9U)-F3OBAzMF3q*YpB;{mqEt0oTt;JTajE0r~TRmi|k@T#E0$5;B6FdxTseg zzoar2uX;Ww2M0z`xNe0Rs~~o_MMIRyM{WJE#)~FRz98Dc7Og%M9Os^WFPQ_YwQ`qw z)TF;I%v?F>el)1*;YFCRaJ_-y_lA@5GR3|@kO&sJVl!OIIB6+w^N}@WEK*gc-+*8F zsP@e61w`o8-mv+FMB-t*Q63D}qqa7Z0lLL3=ZZ(MJ*P`5T(ZX3-Ecx~Al#dwWZM{vk6EuE++c^f#7~3ulL) zbDSVU^DUevRt9{c2f0UL=HDvbyT^_oCt@x8kFY8+LPhE=4I zYAQlTK~ ztK+n&B9EsBy>E$e!V%VW%_CzI{mIkzbHI^G!(E7{d5kb;7#3TN;TP8<d9^VhOl9{%V-zLrbPBtn@{%iRk0Qo=$zp8Q$WwpMLW%SE72<}dZ3&)JsjLv2D zcjuc+w1aZYcUf2N;cQ#iYmR@{Bg%vY^|+ucFF}4EK#m`buE$(M=x)vX<}p5%r^bgn zK>MwNNS8R;k4)3bt7cwpBy@H)G(^&{a&Bdm)ymF6=IWJ@6gb@XRVIw?u{EaM>(-%>Ec+Ay(e%PNDM2L2dc2TJlB6B%$ArN`V@fX_J$Je5!=*d)`Rugq+kVEH_HgeTdM>rc(DRr3otH}!uk+9gAY|(6>m&FYCtD^~C-5|xy4Wyr2VwScxC%;{ zNXOysN#|0=)93zeU^IG=# zlumjk`BB7t3xvH3XO<0cw#kh<1YgH}BPaN|V&sAshRPq7hE>uVYt z+39SseD4{6AGKI@VWNg2Y*WmK8$F4jDa41NAoQ!irmBtnfCivRSE#>oKnAT@Oh@4H zJZ07;oZ6O_(+z7b8+BdgbjFP?WD*;w8a7swIoh`@vwb!vl2e(@rW-&mM7ewp08*gZ zjjfhcy%AI(=rS7HrGS-%Xn772`{Fci2h4+nL^rWrIsjJA0hZNV~;N^V-;mIeTiFGy} zO*)#4wnD3rO`-vlM%WMSQ?cPW@8{yNM!3NVjxry)Y>Zb3JciKuK#SOP<#xYEJ)J%+{z3qIQC1nRUhX=!eWfRezIfRJNe*CK+>mM_XM@+ipU=HL3$1&96Gd}t*U0eb4m z_OLw42K%A)Y@d|GRZf`K2m%2v30N5`OYKv&L!W-?DctV;D7^Ca+rv77mMf3c4)&PJ zS3|uBO5A+&&EXN;2(AK%Z3URFtDDD|>xgc;1Stesj{@pQ3fsPtTaFdiF9!~^qnTVt z$N@C87cZj!cTz6}(Wk$$C_eGmpCAs^dt!VPHBgr>TZ#*_ZLyAi@cr*cVEoqGZi(*3 z1mM(~k3RaTSADh%T=f88E(HAD@c855D$3%0*0t7jixw@6gq1+2`QEv+0YG$qlo^W_ zFA4hrNoE4XYWbzct(G_C$W^sZ%c?5E{^n*#*T*1*rsFPa0puRBFaQi4Ti&C^&j;TB zeq1KL2k@pdNZRxv&*m>)88!h}FIuq%*EW;Gvk=CU^N3x<_g(^9U!<*_cl;P|{tSP* zS(!>5=F@NMAY*iuBbccMcPI0f;H)t?oGWZgf%j8fKMfILz55ZIi=xg3QVU+eaDhSab|It}-!Bdcspb*#NMP^%rAD7nJtxwa5-ZI)P>DN}zi7Y+XuH z*MP?Q$Ul7nO?F7!Lgd>e;sHz=hg(7b;LRJigf<9@TkpDyG$Dz|r^*Eb^r9w--Zl!4q!~? z=0|IX8*aFkemIr+cn@PS&{yliy4B0c7jAr*JB}ReAkVFF-l<`{NZ#qft)`|X{Nq3V zW3>2t`#XL$YJummUTDP?P%ic0+&Kd<`2cdFpLP`Vn>e1>C3zE>=O#p#P5%NxbcSVw z1dkflldv3JxnyBjx@aE3&`*SWzj{v$;H=x9m20mHMKiIK!GcOV#ZKaDbOYo{)KyjD zstB!X2^@p5-+B{eVs2LkNEnnLkG5`l5)%DPc=^j-2H@9-_2y&Y&O7f2%N8$=GF%s| zl90v-6GT4I--k;z)-Uw)IW@JE;Yv&LG@^-LafODl>Whsn#T)mNc-k`o#lTf&xYJL$vpCp77c3#UTP z;{FTSmWL+3>nz=+8Q)3QugZOiV5TkBak59(7TMeT{oil9)ptOOR(J(JJ>W>knmw7R9zxQ&T5$8jB6;?>q`L z7wI=^*RDdQ^@jRIbr1um!_%9#L&)G#mw0%_gF4HYc3!!N3#B5)blHsj@UrXIgh@2s z>As%O4bh^T*D1LB8&Cc9&@UtwPoAakV6|&MIdrrqx?ZynIEM;utDsPhGC(Kuh)N)} z)bmM*ytbBR#*&sZteYlg+~k&3RAJ3IDbAg_v~?cst6b<~one1*OiJXrPOh6*7k}%* zY|dOPm$_F(9tlCmjX~pG2h1kc%hF|wk(Vm_=sN3gY(Gi)p6)K@W36Q~mb?+1E_gu{U8#+0#LP9qy~h{Yp$R>J%@f%PsTpZ$aJU)V>` zZ=-VOda6NQ|?&F~6>F=0Nl)V~x+{d@XUIl8SSM@9AkKRb^x@Oj8nbvPhAwcFpqBrc^7584X^J?Ol+SRZ#x-?Vy?Ho#1x|KY| zntCDD>;n+Z#tAxv3(_KFm6kV0jvkKnqLRua+EtRx&uqvP_f3ZnA7t*!;5e?uT*ui5 zXU?1z*M*IYS?6&T8l3MYV>KgTWZa@E$oflI*4I^)hQSkE;rswH^BnUj{YV*QpH{JD zGL~5GEfOK4+{^xRj(1(@xuHk%>Ulq2^KZEC@#J&&r0X7?AN-^=;*YHVQhJ`s{+@Nq z3;H_Jv%{TFc^d9o_RB`P?(^wdI;Q7R+WsDT&2#DcaM!#((kJ`=?C(SGPw5Xm|3ZJ8 zc1k1rJ;R+FDa~}R*R#_Y>Hc(nw0pDDO!vRgOJqrEfx-t6?UzmN9( zPkU|X`?7zV)=Tx?pEjRY?!Qt4|F_k^aAU=DaUaY)+tq`M@4Cxa$OsbDuo;w)aT3iY zWCWiafN4_o`$z*aolnQ1nfu>edFegFrJLTJj^2~*Psib&yWF|#^e%VrOL5)2n}^Hg zBVA8N^YT)aJNq5OmHBelN6Xt!^K7~|9aCP0)|uC{?@7NsI&jjp^gEFV>314j0+NxW zV6h&-Ope)vj0}0H{Ex+I12wf|!m?$E@1;0$YM+=GpNa$rsLsBao=pqZ=hhp`b!>tqNWB#Z&+s(4M^k(lBH*Rjyw4%{!#qXK6 z;^|1TWJr=Et0?mGZOPpv_xwjW7Jp@qK4bpPPyEhr^QsoS1ebY9`SHO>8pXWuoGcG7 z^I4xUU+G?t@na$QWb&K&o-*V!l1^@<;=kwK<+JgA(pDqZ@}zYA?fbO2&_zl<{X`c^ z5(1YvZ~g>@><^a5`qLM>Za3m?njN)Tefp1%Y11Zdo_#jH=(#f3Mwxt=c`s$gM30@%zakK^L6@sSu=GcF&E3~`}yv;l2q}i zc5BbUBjFgJSt+ih8g}l8ZU6-hBx?lM1iA%&-LOV2em10P+pB##l`&{tXUIwevp#PX zV_c`?5=-lujn6&{;ISTy6D$bWybIh5$_vCxb~ujJ1Q!rf1JgXaX?2{q;nnSxM1)|M zC7ukB=C~A$)Afu*hht7MBi0XN%Q`eY!OUJ{h~v$6OdDMLgwJT5;yLg2V_w|+3wTJl zNaSdRA`s_CjeqOU@=7i$NBpjvL*MCrUe_wi^gX8rznZ91*m$?Lv_w*(xw$!7v?vz@ zxmqDge6Q~}J>MzO>$ObZMpK@)w;cs!pM2tp@U?rt8m_ta+DOVMS1gCJYCUz`(6~E- z&AJoQ{fM%~VAg_n2D8=0i^NV9F)GZnn!I%J2qc>aEiwF4%U>{4($+c`)IN=Ndd#mDhu*Rs^v}sfL2H^PXU-Rlnv{&rAqc>tF% z1@sd&-gBw{@817|=sNOsKl{44kds7cZfOoLzy0OWWr=~u@4ox3;lsc6-(tOQM(cIq zqNT)o=nAvymxm2cZG<409cJT#NWxff)mQ|M|LBqu;H?U<%2)te6U;0t2@QK1LpOom zb(sR~6XWO%0z`KM{%VyYv2A=MHToqI9BY!GYQhVwX~iZnsHV4bh;?F}2?j|zI6mwn z`tgr|9evDxCa6aqa3o&=`!fZVYIB7 zOfTdZ2W>D+o61jy8IM~(%$ullg)yxma z1}=tg{op~YpadGL!nV!NhD(D3;TK+WM|fhxgW;(Sk44gP@sj1#!=Z5RKYTkZU;pwj zVM;+HUAySZGay4G&-?nYaHI!l$2hNcZg|;kHzD^R#~__IKD&{%%J}fe1OI}R!O8IE zUwRXHx`;(iLnM@EqqHys&@dO*P{zJH3&40Bf~^YxKcDtGO1;h{Zb&JU*{6{!u0!5>_ub*vn{TGCG7jjshamTR z07JEST0mVjwH}1j+{w5=$)o#lC@ab(9^CC%))q(kGl4wlj!4UjQsp4Bz_peu0bL#8 zjf;N6K8jUNAt1eRvz~bJS%|5gu>QImAp3fw70#+PtFbig#%zjqaU;XbcT=qC@;em(l|L*dRl?f}fiVhzjM0mfB(M>FflBVp}TS7AxE01LAWncsP! z9i@mfVFqO?DJ^2%l8em0nziAS@c5HYW1$0xJslE;o;QtHP1a#oH`br%SmZ)3UcGW* zSXnbPdj=6{Z1T+Xr3as+bUgXy$b-x@=?TbuA+H@7o_` zzUQ3#%4StCcvvSxs2)ZuQc^>O4Q047d`jp$&ixYM%3#+NuGd`S>v~m%9oG*{`}T!O zGU z9-*8vPc6Xuqa6i}qLOHlYrk~9n}Cu`v=C-3F^Skr66vm?4ng)i-!Vku98iqao%xh7 z((=#mrZJ<4J^`_3e~{cIvMP1K|7TWE! zRSBe{d!a+!tVgMnLgtJ5`UQ~Hn~^_L$v28pkf{=FhYlWMtx*!!q=#|wHZ^xjoa3Am zT_b7k9jc1d{7#N%=ttzXB9++$)xo9|aKT%Y}CyTvs;=Z7B2e7x7A*Zdpqdp!BvJ?Xl~w2$(A>Di&@{XNnr z`6!GNbR6lvbUwRI(z&1J=zCHceow!%&s{FP zbg%cNe5d2(o*m2e?Dq}#{Lt$uFX=ekGwIyWXVdxNj@kF7w9|38`>&k4QUh0N;Qwq5 zq%oVuse4@iju4Y}+zTaS1caPKJvxCq*;} zIV}Xtx90`W1RN8XYx&&t=o+bn_oO^|USLd6RhK>E**Ns0WmOFTSp>jW3OF;7O}cSr zbit!0UL-9jvt=?J>y!V;q1$llgPk=fMrsFIFm9Ssdl+j*a62vjwd8O|XFL-g?{16K%OL8I33gSi#1Hi zqx&8;3nf=F+LK!2WHwJJUEQ+y-S;Ic7Qb6Q`-p#(Hl|^D>|1W!tz+-=S-;!9@m`+u zeLgR6>pgDhvOnqF>DiQy_n3y`%4?GV5%M89`_bIZqmORi1n`X3ZbL&u)E4dq_;n+y z7O;NfZ3j2^ZXTxtW(ba`Rj9A~SQhdq>7ZLP%OEjey{fgTHl{77b%Y?c<YI-59UHI4G?EXp*lPA_Kq;5J77m)ABh9 zNc)Im-MTSvYM$D+B#3N3^I+a2eq*}GG3Ao-LQ+^#Lb6D=Yu0N%+NtMwPRlwqd$r{I z?zg`aR;*kRmOzf!&RWB4q#b|$7v2!TdgG#;r9C!m*bqMc@xKc9-S@5V_~VbqI<&05 z%XlruOu6p*>i~8)hVOpwdy&|(K6F8L_uaolIZru=Vmt%2IZ?q5E6_Opqu>4gaKjBZ z#`1Lo49x=wF>t$}ksyUGi#`K5ej{nGUAHEVrOjJ513Y!m9)*#lkw|~=!3U#TxcC10 zdn53)e}5C2u2}2<@U*nFgg3tV&47Fmc*xBgZnzv`ne$QA;5gwpqBS8Ua}}!@f-$>T~0eld+*t^ z8_;$uVE){&6xSvaV1m0#iG4MbJ}Xe&hV_7BLkmjBk*8h1Z5hAB+9FwyrL& zPle{R7O{`1`P`3I{fSd524HOkUYB#}Ot|Znx8eTqbola@zk+4K-te~fy&v$~0Q1Cz zf_R-bcXpTy5mR1*l|@}O))p!<0Hy<^S%Uq|Enz?7^3$LBY*@Z(ZFu7w-;67;3|QLC z@#|l{C#;5~`Gq&WDNN3v4(Pu%H0@~&&ph_yuzcMrT#jKWa*-GhGmFFRueh0UCsCOJ z%Cy{QX=%nfaWApUR>jyJ5-%V9=wAR(mWGe~@gFk>cSGWBBgWCoDf<*ayMA0;HZZo1 zp}l@HG8+)frY1mt0;bQcW<8;sIMx&pe}{34 zDM7ZiVQ<*h*Z~2w4+WR;p{8nfn2B4=o~4ypMWWP+uR3k&EOvm$lm7rq-|&jrEON8pBi1ZVA&^w+)=? z3zyEF3b);IJ*2WPIND{VZ#&j z;0d^cU4zAHUTA_~DrY_CI<8??LnNUWW5rrMw<7Fp*cs)-@}SYH~}ty@R`+=6@3KMC)A`#ZwI`nsUY zHRIN8+qNxQf-PUM3bL#h;t4{(sv?qrO|6H*x9C$xaosv+UVWTbjpLTb80kTtIF9zy z=YRI~ug8jFCu0~ljts!Imi^(I-}qXnu3s2due+W)D2in6R%E~m^Lm$Y8G}#xG3aqQ8%sVHTqaOOvkHSj&?gfa& zZ{B+^@65Q`b3HWpbJMSt>&5v%?PD7$Ahf5$bikUAYAN#r9(69qb7f4{_ z@0^;N7*kO~W;}C`v0IESQ~^QKxMO?x-gmweUI~#r8xmep<>s5NgRqzsKK_?~%R1mf zB*@L0b8G{BbOCY4s^%>UN4ifyJj`ZoqIK*=h`H`4^QX|R(XAzAbN!~0!)apOxV~}i zG6}_ilMumYv7pi#=_38ZHJj_NZCkcP^1qfbY8qNkDW|712h1ogiI$xbs(beCj(xBI z`8t1IP1v^S8C>d}j6||)LamzCthp+zTYn8PwhquXU2&b(ck&qDJFz~R6TJ`YM#ePo zHwRg%MUrj?brmc&vSitkux0aB+=LcJa`N~Ig5J}HZLF<&Ap_^t&5vY?bCdnZ^`L7| zV_Ip6Z=XMZ0b+`_R0+=bLiR1=^GFs?f;e)LwcL(p`!?A$hnG= zeAd_p@y!cyjXUVc$oJ<787*TVW9T=oMg2?rv2?WGy0-K8&?7~Q=RJDOzu~^elh56g zu6wk;{G_zw5B|$OpUw?;Oz#`+T1vxf+4p6CAMUvqdTz9IM!WVx(|;lNrT3)c3wh?n z-jnLpclzh=>~oh(Ki%tnDc|XMxo5|6J^OvbJwNn%%1b&9_e?rB^x1TNxMTLcDeZI| z?*1$1uGGMl8u&k318K~raVoyz-(_RSeCR_Tikq?O>gsHc&aE$xx6Wv4gNJul^X^KKq4mydKk9nI5A zRqpI}3|IEcT^}uPKh3l0-gHcP8Cqvv&%P)9_Gq6?*V1nXQabO^KhFueCZO2wiI7R> zjR|v#4f!>z*MINX#JM37Ag)FRsLgDeF61F{W2^|> z5UE)ffn&7y4BTp+S`VfrFl&BvK{F05*KW+~``IMx!t6ZSqifKToB?=|!^T7;M;gIr zC8Gr8{H|pNc+CG|?=7J1s_yme8Fx1#B3N28tNUvH|1*@ zeo}h=o#sUeBP*4N>i`XK4)5yt!ysXfJ9}khf*T3G42bPhqpLCUwF}~rf zw=_;HpLLeXnHeX=^*xoOPrtpIM*3~PFn($e@0-3KB^?Vv!V!YQrUVq)IrP8SF9>6w zUI3`4$s9ovwJS7hrPhLVEPzX;#d51bBbZT)@gkV$SXjPnSp-F`2Z0Mo2c0epN~q1? zSap50zfl{2MH_S0OG@JSi*o{?jqe~?R)n-AGt^A*P`nWnW)&evRse=;E>DfL2&w>3 zc!+nLs*&P&mUwUuurB=i%yiAeu$I|_y7n@| zKc*R5IH#M({lE?Y0rvyjw``5($gB(NM3CI{=TpxTN%jHrGF|K6JgryFqiE_%V9oci zJ=J6yH*Q=w`8IhPmtKlxz4_*w;~eOo z#j+aSaF<bpN6n|Yjl_L-qIV7F4fbSwbo9ibHfX#alw!=V0yLanT< zaM48<@eT`+;?9n7^b=7T07_GUJ$t?vF6iDpn)Xp^V%hSg;f+^ci)KzPxZr{ajQ!;= ze+D4m5bpiSJxIZ>56{2&98#_1N%{0sGjPDb(5Z7LG!vSJ-T+*)0WZ6D>B>C2In13i zJG6%QXb3@479eI9^{3{H^|1`?iJrYa2%S$mEi^r@3C~MK0AEv;v(UUbseOC2tX7As zuDLe+{!f2G6ALXQ>S8DTt_lF;eGfeqPC4x?NW`77-%c7g9&)^DD34zg{gi0hu~nPa z0F0%=^r=(B!dVb@n9@;7x*%F0mtAumz+UC>#g|`2XYnU>=!lg23bfH?A*EXxfEhwm zqKD;ltx!A6`f-l%YTvQXRzrIDmFJ%hmtJxK zWCX+spr2!nP8G+mT6O}dj=4e9tC|98Ub$YiXwwFw={VM_Sx6eAc`Lz$pW8UWjy+aDVp2m(Wz* zMPI2G+Ciwzoxd~;8aSADDjL4}vLA%om0=zAS*>Pv?Eji_oQkAD6S7T^)uF9U4CC{V4$ZxA>W<4@kHmoO4c>aNP~pLZDU% zAAZ~mKSH0ywYLUle!8A}F5_!UbSN!hynM+br2JQeT6G(Tfg{F-Ni*h$dQDnHZLx{t zMu*zft6=J>IGRVp!%y$MGn&-dfVS?m+4CVgN{4&ydo4$?i$u>B zK*mC>&uR~x*tQKO%P=jteRFvAwRgg>Aw$A-*IX6m0PYqL)-76G< zjI0Py3UV6ye1R4XWLZV}QhCV1T7aa*=mQe9gNBcbL|fbATZNA8+dz=jWX^_op%1M9 zoY!Yh5wzM$m=?Z!)^1SSq+pnW-3jkD%-ECJ1o-I(+cK$5DHtY`Kb|S*zBJ7fe^J--*`H(zq@xrd?NI;;T61 z#^x;>qgl9<+jj(1-x~h$-aq0Rb?L}hQ`Ax+GyI8$&uV?2f%ILfvsY1s}}a&@ILdWz6PrwTL)hl zCqWEU1jrr-v9Kw$J-#*LjPZ$9gZtV73TKe!f<&uX4#%I;iGG8C5)SEi@J_{x zm5TF>W+o*x6vmLSP(W%uQj6cR=8qdOJluB2Eur0s5L2r+hw0zU4x`3R3}sm7PQITtQ>AniY*1sXJfwMX+E;U}pY;AX&Z!D9Xqs>}Ygb9;?rrQJD&RY;aid0& z{QB|}{3}8*U&%PvwBMMoN2AeO1~P43==sWP;h4I$qkuujj_qO_e$?xus6ly3=d(gS z)(^=>=XbZJ`5`ORGAYhGNl0h<-M`qbn>nkkgA6N(xw4{!sRF^Iz|T&! zyQ;C@QP{vUTs2Jcx!=*OsOy^hyt1qx?tRp*QIkq7Dz%advF2*-O&>42Nk<_e{F}PvbRGRuUYeENZPK6XS79&7eY4e47C~0?l-F7 zqf7#4Gn#ptXN%lBkuJi_0}MS;(o^Sq(Vn($Q)a}M#y4aI>20BfN!NT z><>4s4tuw;cif9PS;{ZDq=t-E3KSCf|BHr<`{VSnkNl9&;o=|e*$>Gxcifauy5@fV z-}s%*cIN5V-q^g^SWk+O=+iV zUg3}4J6Z!rYvBL32GW>Kqj{|K@$mZW)eLj`TcTEz^JN zy)*OpPrv(jNjtq)3Y)H}EV=8<=b2&BZ?Bo4aQf{)O833`jRz;dBmt#F#CT1_jQ7=$ z+0AD8SPm3LkqDhX11I4+$pnbik+kNK^x>h&u6Wo(id2WjZp_VFJH?vA5%?1Pbn`9< zE0C+b>apX-0@gK+AgqA#WDdub0n0ozW&=VbEg6AQ%OxP{-%4(30?mVf`54ZRe+#7g z9)j0`x&kbkdJuG7#OB^OO4Yj&*OX8>4)q=;jHecWhaw4ry-2rJ#<#~p4xg>s9*@M_ zG10$__XVjfgPJme$mXjr2&R|_a%*BJKY)9xXF4v2j2w+U>z&|q=6}scYM3asXuWyp zB6$25-;eF@{N=~I^77{!_ z;+J4~D!VU`%9)dXdLHxeDUyc<*#q!l+nR>vG_?IKVB&90hABNKu|N?yBujpRq!vqk3aHgxbUJ2W8XWz?FpfC=g#5&`|rn$%ThqA@#y#mtJBoi)|{VU+<9l1HF*j^ zYsE01{-N2I88c@>RJ4iY$$%0h z*>F1VX`f<3jAPoqGz;Qp1)I0aA)AUaUuqA2E%ol0*Gvix6dE;chWV`H!$5pa^#1&d zP^uh~wv4;UXb$ulFfv?t*_Clln7D-^XcmFO*5v_KgCO zW3wVyyb}_j5R%^W5wQ69-S@)PkUYy*;#&aIa0(n~XTKn7AtfPZzFoR7%$zzAf@)(p z1>mv_er5Xh`69GMK;gDqZ;k#t9{9xrQH!Z%i$LGt! z*{7Wx#*Q2mwr^Y;9(&|B5riy2oiAUtIeh#Dnh#qb2{!Ej=&OMlo>^h^h@lY#-G`5l z)$B8xHftOn{Kb#yn>)h`FT4imJ|mjPDUMm66$o)$d_lKx&2`s=S6+XO{l~=cyWjne zJxGPnyVu9zi;q8x68r+1n!qc}*njY$Ux)S`+v6`}T6p;3C-K*?ocXgTq-34g25lrz zS<5$|5up?FEjV~DUA__;7GVf6UmzPWBcyq_>X;Z(d+CK2Uksf)b%MaXg0l`JIb^}$L4(38)bZ`N-4;n%_Z<)Z z>eu+hSpX1UnLcnFdzWJoFxkz%XH)3Y`yUpU*t=SGzIow3P9o-;>JWnrp8Mb?Y|{pMBmZv~1Hhy!OUhVJ_oT zvtjxSsaE|Mv>6vNhp%D$Y+*l!=}6{&}-v*w58YcNR|3Ww>8vja@#nzgG4k+c#*<}C>7Yp%U2YRs&FkSY(T zz7JwfA2LJHpwiUT-u(qa$CFPZE+)kW_Kovd+Y?$x&CQ*d3e&fS8XDisnGZ3)4b92p zBMDNr0&C$O%#Q6qtD5&MUIZvD3f++&c zfc#TtLQ;M+2co4-)LxHd3Ht=sMhS5D9qZQV`$*p$1zDS#GRJKQqsNS6x1}E{6bzWZ z^axGj~Zb$zp%AB+wEz=1IK|zO*PT7j(F+Wu%lEZNi$lj%Y-+uTx zTOI`jG>N>9d9|c|s+dEHmna!p(NAD*!e8ho_3Jl)!0Z_3-^pl)stu`0x-T(%SDW#w zFiE%W-B<%Qg}z^W5&LfYQ%_^&)rS~bKD@hot1@U6>Ho1Lh0tW)wjSSV-$06B{){!nJQNliJ#qwXS1fdZP}K}rMabQ`^X5ZXOpY49 zYRPP&-t;w9pR%3SsbiSH`RJABpJm=H#k%_hf(Vb11lM*Olh4ktjgNldA& zRRD5%E80Hp7Swc6V5k^ceD3edGZ(n$_AKW9$o-Y)EKT;-&dx%!XJaI3B$4XWt{cai zX4>2fxfizomSzpCbx+1^$2)OVcwFk(s$E4 zZ@(3;?QuPGax?nDhA@`BseAe|v`Yo%+^W>2#Fpm(_xU@}DqN1xLQ%|=N#^ZEXv00U zB%dGmXq#y}^Io%h9a>bZ)9lmoL5d#(S*nK2?#*k%*7XQb?A*eh2@4DCL)45xnhxS! zt(-&qknz18bM8rVU(G-5Rek2yPwv0t&4c&TbFZ0agA_OSeSaV7lNskwVGecwhr~6_ z!^J<`vqP2V``l0Yr0aJ{f z?&qm2>6%xZbT4<@bU&|aX4sT=y5<%B=)I#gaI^;gZ)+fp*)&cg#>W2Zh(2T_Wa@Lc z$jZtgWL!j#5;BKw%v8~b4)Nc8Vgp--Bb6gPPghHoI>+}ZVP-nH;~(x>?y&#v@9&a! zdao2VT~l7U>&)kwVbX7}3G_8?`kg@K^xH7r^FZV`lZf$ezuwoGt%OVk4kF7JEa5Q8 z!7o4dkOAQ&Gql^R=_pN>Y5qlD6l`6iq@19uAQX)j$D;>8H{k-c5;GDe9ts3OB})XY z1XTq=eWpabl2slc9M2x|ESFcy<}<-nH~ZSMFH4yudTM9aj$xF7*Ey-?$xK54cM;@@ zl6nHm5-8S(2Uo#+CH6d!?jTL=8&^V7tALVJ9CWuM4OSh=tK9&1HL*uu1%N~%!GnSM zb8d^}*L;?zc2)b;I7#(QC9wa`(T=g+HBBHPlQ#7G5PRNBdJ+l7rOIMlGN*Ydib5K%n>2*YJK!^Pl~N1B!pA`zgOvhLmRd{m*dxp*aHnSv7)CCIs6tT`d0LA}u;u%!a5tdI%#?Qg%yjzi+cP9Kl z%XTpF^u8&r7%ye)510+5MQsy5u@BG}{B2*f9R8isb#3vJek)~{{!aDf)vxhVecHd` zp*AC}=x>SNnz$2$^0|4c9i*hGfScz3G;gsR?FJ9N5+Ol4ac;Ez%l^JR8N{NlKixe9Jl&1QX9d!!FgcOL4wr!QAS&&9)TmK_&X+_$ zUyYbQ|M}06g#Oc?{uIrc3HaI`YQ)&zo z)s9~wK%A+7S$}{OIlgt<@bJSAN5VvtBpa#!0?c3KEi-Ml0u8};04h(xG*RQm4dc7* zWNsTX=Ihu#S6zKIg!nk5?q3ZTTzFyV4iWUh2k%FT`|EG$5jAi6^ywSgweJ`%yX?~N z;4gm_9)0xDNGxd%(l(txZ*C;kFF}HR?wom{X7w64m4>)LL+6z@UX3728vwFu5QB4h zUo~mwaBX^A^JoHX6YI-Ek3Syn`T5U71?KB1vu1@|%!U1ijKG2Vo^bVbJ!qS)(G1!0 z6)QuRbI*%q-;Pwe^{lk8W}E8OtBq86Tju|7Bf+A!&8Hvs3Rm2CW2lcAnhiMfR!V%~ z!lj`M{cPFtZzCBa@FUO@$2(&|JNr1XVot~85c9B3<<*pNZt@z(1#M5IcGnVG}9rw61)1Q(G;9%ESxqChu($4x#ypU zhG(4!zP|a^JJjFYaAudTVOYPu;Y0w;>|?8h@+FIe6^rJC{PfRX{ptb0HGCrM!7L!< zU9xOh7%+HP82R>?HPe1+`fd~n!wbWCAa5tvZbQayO zU%#l8r8Dh&etb`O;)%z?jkJN<537)l{`=pbL)&Q{nqkia63>dnZQ}+FkTS;{6Q<-o z`D$3$o4+X9Xb4RJ=55)yCUiOd5pFy3)T_{A^oV|_-e7vYdy`|^jEUVj&&txgQT zhOd;$7h}iJ9z%=b1wr* zHx1WacP(>T!SKarABBkk)i>YR1C5*$Xje31XxI4*(8xuiy=-~roz2_Ag2l_i{3R>G z;+5+|qvJ4p#hSfw4RbhcSr*NV+BK_%=9u~_!cvnTb8#Cn`*vX8p70Ik*gm1&yL9Oi zx-s7L8=+~nXDE+k%>(z}ALos8)I3Np1=8) z8^e3=z8#jZKWg5rNi+vFclONCz1z9?3OYOV{^)}+fVTAA&N$VLfY3m$T1_8W(>#2(eJ}252wLTG@yTB^^6TcB3Yk^=ujE^Kz`os~{;{ zBP8tCuUj2H`bSU9hhCC1N3(yaM4i+;wp!dLz4GD<2upNABWO`L{R{{g=H(Hr-6c62 zoYVDO_W%1K*0w;t4UXhTVaS=|ScgwJwKHq|7Brxi(f^mDIZ`GHs%U1?HM;-=+n%lK zSqCeHliIcp)24nC$(ZTWrp7&oYlvEG5;GE)o0t#uiB_Tn0x|6C4zTz2i~&DNKgA>( zZ83h#Xsi^h4?nu;CeALU;{HvI*01{ZM~I>s+9u7BT3rpnRuUo_zh@Bm`dnJQS}mPj z5JDxQV9i2IiYjnZwnDkMzgfI^345HKRZyD&x2}VGp}0$NcbDK+tfhtGrC4w%?oLW^ zclYA%uEpK86!!*A2yFg6vuDq_IdkUR=O&qCvc6}%>v?kv78do_?1?P7*%e<5@m()m z7_=AuZ3KG#Ud2;=S7 z(RY^fKz9)D(%}~Q+*euir}*d0G`UNPxsiESLgx~2N(vh0AG?7i=%5dV8>v7?8G30^ zZcm2cW$=FfJ+BG9p`YitNYGeQNm)5coLNkei^c3#@;Gf-qnpu6vp zw9P?91m06dx0l0k&z!B@nLG8pZNPVVyLmrf3hd)vCbE6#KgMj-qe=eako5`tKWNwZ z{}=7@*KaqSE>jxI9asVPc0OIskn>UhP!|aHMPr^zQn}F8xStm!V)JNyS-4EnG(Ilw zoL}T&^?emtmLxrMlz)O?5>U#A&!L|9b>a(p41?Q(vAq+T0^0f(J7b!ec(Jq{1DwE{I+`?tX zh$7qgMA{(YnT2j5=)H@j!}0{dbw}&$(sCee#n-Z(U&s^R-w3E)U@^7M(g^u}DI3by zj?iwhe77@Br^D(ce3>%hU4Mqy8vG5>++obGT3bbso$@dk!DbS@QUgH(G}np&{<*3Q zNsZkVnE&colOUL&P_p;=y9%Dp?@_lv?F=@(Ae{5LvXe{XPTl=(R!f7QbdNQOs_=1i zOrKtkPv|UJLU{@gK&yG1beD^#NFL=-H5>6_yefe`d}co6!@v^S=EemPj)-rW0U`pvH$gk*ofnWENn)9Sf3V9#;7cvJnYL|RqnKav6L zUDG4ATamh3Dh159oTngBSY6K+|RoQ_=G>0J&v_esK{ z1|#7b1#);sGl~WBIOH(K^kJ(KJ*|HuEzCHzk;?B_oGZ=rnwpT=U+?;*%|Tmd3)&hu z+fH8`W(!a(b(q34K7mO_=>-QUdacy7e7l4sZ092)$Q=~wO%ZjPRw3=oDyT4wpa2q7GPY*d$RnXovF+Y6~v|e|FgcC*pld<>i zs?%+g?p3#2;oTftU}{Y_lx=B}>V89RE3vTAMTp^URe2zml$Q@*x#wx0o1RXmSq-HT zoTA_)5P6@)7a>F0q{z~8iMW$7BgMh@wP*Ol(9yYI_0Qk^J} zs`Q3gA$Zu!V_4uxl80-FSJ-O#H|C+%wCd=Z`#M6wR`}qNr%frSq};Q-K40N95 zQoIGB+SADo4Pp=s=tK9sNKDAP9|+@!RgP*Y0?TQcTz(Q^GPeK`w3T8DAA_U)evk;Z z-L$xDhxEu~T1$RhIG;J;AU{ADBkIMT#jw}JoR*C_>e-FyxRk+iRVf=IohRHy7}Fw} zw_WE+ZTfZ{Tx+{tas^|ikueKtL|7Z6WrX`ED;#DF1@v+X&HTr{@^Z>)qKU8ROqWd|o=uFdBnZ$Pb1VB|hp)~;^pCqVNUQTwib1uQ9&;OQd zKqCLK zM?Rtebj^XYH~bpq^rMr9nlIIyFYB zRVi=Bp^z~Yz)b$NgxzphLu*&=L^%lkiPA7IrEV)%Jf|=)O83`bLZI)$1$~8UjZ-oci@QxH_ed9H#tsw8j+^(E*Ui25W(A&6HL@z+_xgTe|+KIOcV#= zP)INcNK{*kygXsaYL4REBV~)Z{UKZ9k80QhwHP?Gp=gKmzZQ@+9Mm~GWC^+H6Sl|Y zZDO}I`mWBEZMr-^9**2D_}&z{jZX@XT-|TE2%j5=2*SVIooMeFdb-7)%BlFCcRu}# zG<_Cs&;uIqW(X`dMF`#+pm#N)D|{Z&)P+W|=(KEfKL{UOHi^Zd;n&nH>&}61U ze?W*)nbCBG(C%b>G-CX1DyuC{1th;X@#ghjC+M<9G0xv)S?mOV{`vSsR-LY1?Obc3)wD(ztZPxPN;_e$Q~Y7wtyb%8j}*SlH&D#_I= zo8D!d%`&Voj4+r#o7~Xtr4RV2iZv8f+`~m)>!o6?X+5P_?$*yDv)TqgFe-|TN4TlWZFWAPRev<(P zmkON-s9>9WpV7^oVJuYh^l`;i-I=e(Ye;;qYvLw`@D40BJ;B~pp?hg1HO`*^@^Pj-YNdfwfy&vmsngD z_`J`YZ98!FvYN}Vuhz>4p|ufmGe5)L7Z|w}mn3aQTx`bKJ}b|(@<=Bipdb?_ zuPg~f^rm>R&T`cjGjv@tv>wrIQ~*-Jj0l2#)-oo2Ux0`Ph$apU1ZnJF9ms=6r5dpD z#fBGidaOlhlqViE4lW&oXb;g&`ycyUk(W9TO__sRLOlkINjZax*;5n}rN&Nf0sd=W)cX$5Uf#Cm`aY_>lkkh*tl86Cd0p$-?cuUV?1nZJ1->dBoER6C95h%0RjP0Ml1 z)D@}xPy@j_MpV00bmiS zYWkz+K-%!dW+y#ZUxsRX{?MO6{M#c-DqPQ=`?O!c&K4H6#+$M%wa-7GCp3TEcAF|U z_x0zWufXfJ-7cE#J}A8dw8*=ja!VNJMaTrW#Xs!}V0yOKw<#9!U-T{u>y3t+W)#7`@Xlo3y+>7(CQtZhRv#44X9QTW_)}T~V zl^O`yM-;_oFsoKveAWhcgW4$hGdL2{IOHX^*M0Wm&OWs_Yh;VX%hz&IX^Ul~n%8D6 zC7)OE@8HK##>kxhLN*VdyTYehirkM+OGdxmWKdk7e7mF3ZNU+VTw&%xF}Knj4GH^O z?GlCj3+y!?WpDA^cv^2U{!M~v*~-Ggbe-yj{4YIk(Os5{stx_P-TJz_F{4O*Lqp+k z%q26KPoS@>?d8&zAXA(UIoHaA-si_>5}r=kV>IApfFhDVW^$Xc~FS^+ks|kKRlp*UG>%) zAMtjke%cAa?Kc4Ez-L26&KnzMG{k$Bi3BALS1i~cj zw!tQJ%B9h9K5!@w@{Sk_K+&1iQ4P3)OX!C%j@Hl{gfkzeeeO9^6Q8849J`v&(J&eA$FNLTn&dFMr z3fUIR6$F-(S#QZ_(U32f_@$DGbE4fRg1ubg6Q19Gym~>xaI!nvxE=%{mWxRHCl2EP z4#WWRB*<6Wgv6YBG2s(GuP%U6*sE^5(Vsd$xytrX@kIrxKlq*JJ&mUFvzm)au^ZV?e$Po=RA(*0%EWLYmSl6B{^Ys8z>l^KcJm;Be65JV!)e| zTZNm)>lwM8VQiy{t1J2*#8BOOnt9J^`-NPH9DDB$vp=lk!N5K}o!@HDvt5H!%KIJp zM+l3O(F773ZC&>LI1QKN%ik-deiDl<@0}nM9#n)mZ~&E#;|j4()jFa~2!_%UX;6>F zYiv$UGAK8XHO*x(bU~QEzv$YGwy=U<*GAs~r({_S;HmS5YOMv!vGd~e#`0C7^#=;11I2Expz$1NiAS?U$?M) z36ryqJSbaZVWSL}jKQ-V3$+CA6)*>1mL#9{hpO=NHZ;dHRnqE9Hud8-a&5c^NmU>| z)7|}X`Lu{5Z&2}fV@2tnT*}~U8Pn;L>u;1Yx2tD2N#u9zKXnbij-%7^5 zn8`=#&duO2B?f;rAUF2jUz|zhb^U%gKhOny_IlcU{To5w!Bk$dcwYK6k9uN0^xc=2 z0|@Fq|3&HY6}nxgk;<({nWM;F{2?Sf&MuASZ+3UOI9k6O?V4(bbw~Ryl5(6(+CB7W zzUE!}FZ%046HnfZ*zdq*yGK4XQTLIToh4%9EleA_^_9zV~1AmM0ffr43uzXG)f1r zHuT>Y#A9IIb6LuF&VEn15RkJkJ!_i>T@w#_EqA zXHs~UQwACo4ujJKvP@`qp&6gqLivWU!i0_e-z55$hMR17#2WPT`2J11qC8bp7iiG1 z+ve?joD$D}C)J<|se#n4~(jr`k`ts&uv*2FE32z#v z*?AhDg_!Nb(os#tThp7SVxig9iQkbVoapd050uFYX^^si<5!Jp9MSy10o5lwPWcYi z^HJv9Cwr0WL4pDMmQC`YtAMAyE|%7v_Da@jf>qpYpXn;lK~g`*4h1MBDyn-xfMl)4 z5xA5azAMp4vFNaK$PcEfl__RKvZz^8W!2gK)RuLBMI) z=FvS@{gM4-rP+P$J$$}uH11o?lPi5n_8f2~>tU@Iz4f$QFg7{m)Zj}-KWPP>lTf|p z@|nq`zF@!F54cp3&w11GPUJcJXw%}ZD|*c%ygDOo)YF<$V}X@$g4gIpYx zTrMmcwM)bKXYyEo3>%_sZ8llZ_2V|AkJOWCCXaoi#^z7B?7riZu zj2jl!eb;WQx1AZTYwRPqAj9%EoWk+jbEZnJKd(UXg=UztUd+xA=5QqJxI~>C94nOv z+>1QU2m2E=6;hq@TTK7g~F~U#f)l0P5 zn&6ByIS{PLGT~4PuuPb9&+R6~?2c7bW5!C{RJ5Y`>@SiO-fgl6zzkYpR`)|b1jDjR zGd-k|52e8TOJZ!td0ivjnvUJ}xG>yS zgR9NNFycgH4R?3@AAhFbVrPV6ERGjQM-dYn|Lv-%cW(i0;s=H9#)FRCcZWbjjX&h? z#ujbqtTPG~LNOM~tV7bZCZKI8tuJZOI@>zF`%RW_aw0^}#r|rix!Jrr3CCo+DYf75 zcTnhr$)e$<$oZ(uiDSwVaSZz7+v0+jZI>qf%r?a9i94uEYhbeXq0du(ZXd3?X>uPY zPcJm;F2vN-(NqlWdo^AFW)_~85B zn1I&SZAQDFx#^m(=Xj;JM*f)^s=~$Aovz&c(XYwdd;S4xHZ@Br){Ff9l0$I2jWj)^Kvu*g! z9d?9HQwa@e>gFDDDg8{WX0>ZC5lLSryxVTGEV;iNgn9Hs9S#z^ht+R$=T!EUmtD7Q zEvZV~r~H8YPq=XL8os9)0m#qXe=5tJ{gfBRKU1s2)o=GCdyZSC=ek^hIKLb5^&~w-*v~aC)mQ@u86yO>KFlD4`AiY#ZxbdaZ-ec^6CZf(gFXZq9bzA1HmSM} zpT#Xt_o7N4`vO!Ekrv|+Z;Zxi70OfIGrk!Q1IRRp5Wd$S8lvuA!@QVp`h4MQo?aMj z71)DLi&&J_oUn?xh&a90TP>dv94H^+D0v@WL@8IVhP#|BH+pb_Y+P$B{bNPj@$LXAp6eM$P zKi2~2Dczv%d*FAv+@tLY5#og7?ZeP>uN0xnDx4!c(1(ea∾#>6Q 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

;d#)Y1?F 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%0A#rK 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 z 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�A8So!GUt6=$8p}DZV!q2vSeW$c8d;{)xj>5 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 z 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

G5{po)N>xnO{nbw#$CnOACd9o+~l!CL|{;bda8# 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∨R%`;4_VR<; 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

&33a5&3XZYnKuw$yG?iP2QTWTFWzEF@iT&iO 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

QY>xh4U|Are{Cp0Smw>^=IZv>(hwjqwmynHN?$l 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

pKDI0Y+SnI2#1zBy%d#(=3wC< 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 z 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%0De2$ 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%0AC?zF20zTaO%&wv4t*^cT;t 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

;c(c}k+pJXs?oi=Jby668MC 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⋘oa%){& zO_T^ADiKmf$Q+!UO`UroBF0(sX|v=(AyL2;?0Fi9rW8~+>cAQ@{reB1w?wm%uFZ%s zYw$R(KD3tt|BX$J)K6K!J9DuIlw8xkNdhi`WSL_8`iQ(VLdN;7;VT1pcP^=~lK$G5 z0>-b2YiTDWy~oB5ho0}lUbzP@5nwjrih1N3mB(I8-N@lplAxS9QNleAK$e;gSYob$ z{dOUJ34#edw79wUqzqj%T~rNwl>^K}30C(^rXZ_D$90q#BZBtO=p+sT=s!An5Te$a zH4=pqr=}=8$nQoVbIOo!Q$t;B0U9+^hS}H}_d1 zIBRK77IA-_8`STzQlkq=IS9$DgN(m(Z>Mct0^!J?L4*$yB~yxiD7(Avx-)%@HAq=H z->j+fy4Srv>SnpmI*6>b?MAZh-#>s|{CK3GbZ_$6&s>{YS}8bRK>|DO*-tddB5dK% z@L}$&jIibC zb;WY*+VYS`Cj`<6`y2PAURwh6)Kk|)ogZss_4Rf`5Sdo4iinvt*o$lE*cwrB#YArPa~3huyQO7m=#7M{QACHax2}B!5dW)Jtw!#dD0?O~(K5Tz zmdzW}$`z}qAH+Hc0l1HQyYF<4Dkn*qN+Qs@yL*tqDEl@kgv>7|tod*Kc1s|;p~=2xdvmf)%*j4G@jCuH`^?|%l=)%ib8LP9D=sc?X>Paz)JU}XvwqdAI+Ch<`0VM$)$$TX=lNcmyJ(7^+H z(?CBm?d>93rZtV37{YmLrcsyw=Q3KEc5f zk;P%q)H8yNwosQNNc)GUQ~$uBG=&_N;8A`iWP`;~>lWcn zERdB4aLm`?Gk9=^p#i4Q;b>E{9iS=$iuSND}YPam0U{DP42Z^6^d zXPNi2gpNSNG4F)cuC*G(MBON>2@#-8*s{l;SKKtzSgCG7d08?$n z@>MItd)4|_?|AcDQXxd)7@&D6gr9|>KZ{qdAj~tK@yv88=|T4I9SHLIJKy_m>LLB$ zGfCz3ir2m-?Ix1&&;R^m)CL(!&wKvwq*uJ+6;UhZd5}N{0HYd7>vZc+Ze@NAhx`T( z>`Tw)ntCn2ozz|zUU*^p{9j*}Zn)uw0L~<2Ui;eDM$MGZP`|}=FGk8-b=6ft-bhM( z44%20sT4(L4>i}b# z(U)WCvP&*bPk;K;0g8x#B)?W7kwrw?Tw` z>XRQ2fc9lCc~N@xt6mj#3%s|wDR_F#HSdd*W#^xNVfrxbF9V3m&Ode0zU(&7HuDRx#ND1~2|L_k%P(A6%SEM(+@eQf1wKWJJNf)mpC?)VHnC?BTBcoTh zf15hS>kH;ioIqQt{iI0AabWx@QqK~YRImpo8=b@|DUi-Op)7Nf_R90WS z{zm5R>GT`06FVYkXG$DBu9bTqI`Q?JZ%#i%$GnE=j`XZvwR{Bx)z#b;8xI(7@p%EO z{re9@WTN%jT9yJ(0-P=dsLCgrFB1W?F;ayJhJWClZMMGe3sb)Fy$Dj*V;wze>L(GiHBZA8%w0m%9&VlCBH=&Zr44lvOu zk`m@uHF7M6uy7r)kM?!%KI*lgGsS#9d0eL$TK-MlGi=5pbinkXu15tJGwY-+Ud$Y9 zsbZbUNk6-D7hs>{(`0yPdriUbQf##AND+=3qZFMlgVb$U%vfPp#;D6-QRxM=$EdS0 zY=qFrX=W_{i&H#MWWMSPK z9;Rjze|_DuN{5t?apP0k+5} zK*{WaBI@I?_U!BFOwAB7txZI3K)_4r3>_Yi+Ay;?3>1|>oT8@{tjDG|laN6S5&3Zh zQsCg&bQ%J%KgM`iEM8qZ25_Da(IO#JT}dq!YJU8G?41XkT~~Fl_l%}jX^N!Ls7z6@ zEZee;d&3pm7?T7W2;hKuU;_aH7)U}7gc5ip0Rss(0UK;5lu!evyI>5ixLb9kk!Dm! zGn(GZ`@VI2iQvhyc}adTFLU7fYVJMvoPE|_d+ojd|5Yq%?p(Q-NTvP5kW-}UG=gLX z=a6C+K7*uy%Mmh>whjAj$}$O=8FUU0o3N!b$PS6(!7kB&ypTx{GOQo0Av47MM(i^g z&KPU-O9ge%N+4QV8mRF{!%dGi!E<*@$n1njpe?4$t)Q(%d5lwP&Mc~B{)1eQ5F7y* zmXJZwAo++q1_X8;(*@aE3Gw0FylY1%V{a{>Z3*AuMAX?CW7@IZg?*Q}l`uBi!l>4z z%(aeT*MZgy>>)B)UG{tl9Km1p9OFndq^ZM5>xxY6Yisu{1Xz|Nv!0d_G6LMr&93|A zLV6UShn)}!J0J+XRs)VtI>i{VB`LZQa9sjm-aJz4q2KlBy3fH4Sx=Zq*jjuLILz@9 zhOWi>AYxok_mIwSKT+$>YZ52QsGqrG3gWT>N2eu3g1Y9Cpc%ju(r5+KO~!fHWA_I} zD{JqSmvgPM7#tjkbCrY98rHsQ-?EjKWYHTwhfUN@x<+#h2(DW*Msj7C2pzwxVt)MD zZMUbt`N)SEztnGv^Cxfu_``JGxzC9d$J!S^_jh0X;+N8QzxzE!jV$vcy7TxGo<+Y8 z&?h)`VY^*Jw{P2tJ`J;O(o#~(i8|}*mXZr3Y%h7r$oes7hV|Tiz(ZjH;r)BPWheoL_L&{G5T%~1dZv+mMmUE3cjV( zmLswU;>EebtOVX`)nSK6+En*II=l@+EK4SybmH;!NfrHCO5be`2Q&8_5<`uUlB-s% z3{poYE29eU$0245X{s-{=wjxB+DK1myA>=9%h70w$BMd23h|;6EfQA zr#c)XPj(#YyC?h2)A>B+kEdu`W~-jg)n?C`mB6e7W+gByfoGBgcJJLaOUOKvI%Kvj z|8)|`Ewpm)xjP+d0d=VF4!llovE+LWNE0k|aqp(e&)smjfpEhlA+w5Nk%MkB0R-;4 z?bg^-x@pmabpad8Ry_0FbnT}Aw>21cu)x>bv<&d6reSfK4;WWRii5puZ12A3z5red z*!=ggIhxC2`W#Z_%$--3cJAs+-FPo<*|G%>t3BYgh2%sY0sO2ZD&{!q#uTS6JU?qH z@uCBaaiI;e%e@6_Gbs`95gRpOXE28VuHsoa%fk&D%!A(mxC)F(K)6BU6A*iW6urPC zEd;&vMB9VsUKe1I8@Ea}D{iO+6a{+Xhy2zQNfJ9Vy!^0~ln=hU@U(Ay&%JW8SN#xn-`tdEWWx?nqNk+ihvCI|%IPPk)hnr$QGll>p2Zmp{)h77L>8gZN0Ih(y0_?G&<(UHrqAzkb#hV4l2KaU0H9WrveJjLs+xipM@NqLf z!Fe9Ej3TT9sRu$v;>8HKrI4>&8GC?NG~{nRUY`=7=25p#YHLYHf}Bhlv>*L9!p$PX zdXHBEj*bJM3G6vWOCt>pY2r{|y?#fqK|bpscE`hf=;3_|pkSIH>j8P~a>jip9?m!a z_$Sz{{&dlEpPNoT@uc*xU;Ec|KctXElR4J~O!i|dU;XMU@b0fqAN$*n2bnPf$@9^7 zzdO=#_^iLU=k9dPKm8N;Ya{~Y0#aM8!LE+uNxz2(oLke@?c36s=boLee8cNV{Wv#W z`}ynASHAK!o^f6}@4R!<+eo){*<~+F_mZ;A^kt7c^boB_2LVjmw{1-?zT|~mdr^85 z*sBd?g}^PCMtFwR5EI&e^>Ep; zB?0;fHhKu`7*(QovY$D3*zW>Ef>L)AEnyuR0TaQ$F~WSmZiT$Qf4;>y&-yp`#pc7SmJxYthFm$tUHNKfW(-axGzqniZP zjBGM8sGWOW_R^Q6KYiV6!-HH~XAP>{HPjD(Ycz;}o1maTzIvn$7)KW0gqZr!hd-2# zJNB6L=}&wTP@D1EMVL4L)AlM?xr)zTdo58p|3;8qLHfwwd@LQddNp><=*gKV3T+gr z;BYk{ZI;$35ef8xv>u?&RC@skmsf`TZA%@X+~u!&We|5pd+p$yGDwbw`iAHqqp3`5 zWD#;b`vn_KvG@7Ue=Z$&{Bh~pFMT2U#YmbDzW)R1hu^Z)Js#gA zmjWyw=K-vjGY_&xa=I2$z*-CvpMsC3BD0Q&H3>}3bLy$5@w;LO(sE=sLp_^bz`U)j zGaykI6AM`Z48-&Na}@R+yH-+yZDd~BwWm93#?%olB#3Uhr6FWComY%($5Q9kO=(%f z+;q$l%OReKRAD~uMdlW}pCTflkhEojxD^mtCCq2d7~t>T9_kGN&`)ER zjrNpGaYD-HHIKEHHDs(gBSxmgHC5CInm-SM!t0u{tRS`T=z{nL(B!H2cvbik)d!t<(6Gi|SMQooq<|M-;_DmgCO~j@1%Pz)^QG2F4%gyE0kQMtO zB3*w-Mi@0@f15UJ=@KHyAuNpq?;+yP$jwOUgr1DCwk>Ad4D>TMq34y@zj^3JHEnl3 z-wgpTxNaM)vp54`#p6JJ4pR3F!Vn!=0%+}gY}7<4aWy!in zzPn#=tXNaXzblvvba2w?!SsyQ%rX_3gpzZHgpBsMudh3zjU-uP{e_Nse1pir5B>FD z)26DppXaV!dvtoiA6*i*R=MGz8Id&~`N&73zbdK8CCR2U!TA@Q2T3x39x_I;{e6AI z^d0H&0Qj4mTaXn56EccOcWkli*es%(ba2dpr4U#~>GrVh*U={;g_wI>S8Uj@E(+JT zwze`3hj236&V3{mCnK%nnl)=eKh{0IE{NEio=65RU%n#N0}|J!ncIo2^!uevP1yd! zSl3KKxVy(91s}SkoRyb#*^JUOB3M1s;lZ_-dT2XL$7)-A4xLlzW}E?z3$pBN;tWdpG8T8XP=~%)RTbyVGu* z16o>^$2={`Q)}c({bEuM;`Bnh>@RJOZMSBP^QEa#ZLcJf^W{>=BFCN%d>!mv${9zl z*lTKR|B>9PD=Mt^KKut z=Ct?oNyk?SQCopdO2}k2WLW283ycuc)@s9kA0uR3YdqCqUq9J#sPCTaH&5qt+x1j! zbN-t>W+gByfmsR6O5pcT0()@!%$tpn`Tgs-*%trq638uPa__k-9BKh|sP7KEj{nZR za^R`&Zl>HANCpUyD7R7T|iB zma)NF&&Jb5`R_0D2V)F4%5C0yo5hDT1$F%18}2y0N+8r=x64_p?FkV&iUzzZ*=!uyQ@}*+{z) z)%#IERIr9W1F+#{vDoLXw2%MuxAIr!zC8TQ*7>~P1H%5;Wa1E!ny)I)i7sxT*xm-8p%7OVoVz&VCA!WLO#!6gp6HjJJc76x{QpGv;crb$1=Hje%ANdSi?)1 z=cYN31=%Y?M!Y!x_idaucN3}APYs?C*hZsdOxKd;RHm-Jywusnb3$(A1Aa_#uf`>f z>6~-UOeddo6lu^%`~o2ZoMU z7yV4V@Y(J2-1&|tizEwVXC!EL2mfuoq9RE-`raBcV?5(H{T1?~RYQQ7qkv!tF+ep7 zF{5(yLoQuiriVtd*k^*29^PLvS)j8D@WZiay%T{_qZ9fdb0z^$C36O_LE4oefGO*5 zbO4H)8m1pFVrY$cPB-ip)6TkRCOx)peE{teK}MaNa`GwZ4hVo>{QOSZJ`KRIENp~! z;0=HF#sIiq^SalC_jC!*{hfdLm(@(8KUv+tE#k=&uM;?nj`Rmqg;7MoF4L977KJfnc2Owptw!41u z3w{sa1|Ys=Yg>BJ3ofO|@4R&76;}XGoljp(LEhZQHU2TYWKGv4f%J`Ud?Ql5yyY!# zNq_W$7pNBLo8SCq5EcR;0z!A){mb}VAjoJD2??V`Jk(>)^Id!BIg&DZRclu^ZQcUF zbW0Fr_Qkq&j{)xNp~ehp!5~8{@@+dLZ7KmP@3`YmYM>BBggxrxUYjOaA!9>5Z>{eb_PkU;ULhe$$)YoF0H&I{WN%qo$zp5X2JvQBQ5BhtWOO z$vO7eW2u+&=P}oX4MB(RxZ@6F^7VAm3CE`^Uj6C-?427;^&_dL7qYfbP%?C%duL;r z^jWk;;AsS#cf&v5ls-kI(AuMpO7DN)`fXUqfzOGqwICgR}z4IOKOl?~>rFXpR9qA8W^ujba zVj8xo^wXdG1j6pqF%~Yp^hMZ~rGTxZd z1VR<$j2`|H)I-=;2_#c0+0UlC)1GXA_&WX6Q~0}-Idu@b$Gzxh?Vq;J^K_W-5Qx^{ zVIL{Ix&WaW&dACdM>tr}heizuXj`*G8|w4*LWBtD>dhWD7DH!BETdPA6fzZ;(G}L5 zDhK4&Viz;sdq^=hHc84O=G=k(T|}miQa52K=^ClUhraFt?42=s6GA2r;-(8{83~zE z$dBel^{iX6HOeSVWhyT4tIyg-u1@iXkVgAtNDE3_$I&%D(C$MbNfAy*S*| z21%2z7XfpvHDuPTISgV%c`zmc@cW6pF@0Kb1+_&W;MJ=sWLyflUQNofx_OWu&c?_x zk99x?={JWVWJax}#`)H?C}sY&hD;ODG*x9dO3|#DLooOdTrjgO6s&vgF z8KJHiQL&G;ucU`#SQ0dJ2z|4UjU==_iUftWQvkZE5-^#2O4LX67bI8_*PKH3W9XgE z9FA?HkZT}dCENzk^lHNEfM?}3PgNaDJZ-qsv3n)JjIPmH;;uCAUa$2*v>z7^3O_D9#=eaZBj zXPFZK>Hb*ywFLW!+FH@W)b70kbjSH&jIw$ z$W!gfT*k6%=S|E-^C7qz8yiEHHt_d6Y?>sT{cMDc_SRHlt_LM&okJw!7B)1Z10(UB zy1AEg)RU#lma*1f8pP6m);~eI(!PkOWF9^8$Rly~SQmRUQxZP*=%Y9y)N{Rs;jpy1 zt&M*#NJhd)JejWSuvN<;e0D>ukn+{B#Pyt?mNhrACt$6QuDg#hC8Bdv^sXTX(Y1B*h_)d(JVYu4{l) zv6j(;IE?66r9O9c?SrJTPADlCd6w-R9Yl6QibFz4KrX;eHa9h~XMh-`9g^Oro;6Z> z5p!E>>+*EpukMdDfJR4eYukd(j;FOp9G;dDE&RhDeve4H;?%sfF)eLeMAzwvLru(I z6EYduTkt<1LM8^=lls>HU|}KL>d7cT!@?Rxq*$$;w8%-q%ey!jJm`Y4dM@{D>AH^#L0ZH-}4> zERIc(ztOu~0!$KW1}{-T>u#8837NfYfcE1xrx$iFeP_LyIYfa}lo#;AYti&okPYP! z4d#O{W|NvdzmXkmM2%WtgHlM8j9!D$UT!Mbu5Pg>jL!v^-1ur!-HZhR!M}lP(nKE{ zT=SG8qY3KR7-@v);(1M5HcUSGET=zm0bw+Ey3sQEfJReze@^1j8*O0I9w0u??0t&Z zteIlUK6P_0_-7$hudkfFhiNI?;M>zv5JGO^#@OVK08matUYYCNG&2)^M=gOM0IYJv zZ%Y8UoGS)A!NR3(|W*5fO}-Qi!?WvUUF&3{dKSX)AYg@ zzc_%heUQo55|Qy`3eF#O)RAcosYLX+)w}jBZ+=S@x7RE8JKyNrP-%QrLrVl^SNtN z^dKPCfNB(wDtEQm-ga4}oMsC%wS0xbjNm)*hab`)XP$YxB0N-kKHyENZ)r z77?^GB2SxTs-64pyD!qmyzOm&p3XYw97dw4x<(+8YXIJRBVt7_?;%Kb0o~RXJhQou zz?DF8XGdp{g6gu-QQ!UUztP4i2&%WFi~sNsqP~*p%hU_g(kO>2p2J8pLF9M8^IcI# z;-)YE3$?RqiGb)q7X|4?kmGxKA5SlO(Tmc#&v{PB$Y_@$2#Rt*cF73mfztAd06a60 z&*+sJY{wMy`3@oxwm?4ZMHVX{EnCqgyuOhi9Sx`k$$-4}vlcL2Q`A+FWFT^lM-FmI zpwJX&^N6Ay!oz*bmUisBjuVg{L_UlR^;7S~8Wkf^uW04U74&@>zn9?506-(>1|j+? zh<04u*g*SgnYSr;UxqzmZra*TLF<80^p)c6tYHR-K9vAcm(M!=^Z<2Bi7L_dXx+69 z*&n1$!qLDQR<5J8eL9}F2dS&8B^stW$Rz8Q%${~j~ zKRv;h0wfM%k4#f0z^_+#88UE2FjWsX4^m{92$4J@MRZKryK`HbS5=x;uWDhwFXgv8 z07w0eDL)It%e)dBYu9i-+HX4`WJZ~P%$B5+glhzekGaZSvI2Xa z$MZ>?SdV052NBFfz2x&*9=5v{!fS|VhvltJF<1Ef%3_fAb}+U}Dj=cI6NzEIAkw8M zqFv_FAJhEaxm1F_lZcn$3F?N75ru^(iG z@Ha+Tl?#gV;TS;l2;)IezZ^2obe4Ol2Qx4X;lY~0H4#FMIm!A&u4UV{Y>hFrU?G4r z|8p(w`p0#TYYW%yMtix=tA|i)!ih;IoNR6uoFAb$`VQJdarh-m!Y;ZBFcM}z^W!k> zR#&afH;q%vJ{*6X`(2OL*4Bq@FjeO;HmMw$ zT#k-rYbKr_dt`kv=N=<877~&1&2N4?{q`UlPn(T3eVWtw&ak-I$|3!8H^iW{inl%oRIQOH)(WKM5&`v1!Kh9wK90&l&BvleB1sjDb=dxr))t z9eb!>iGz~QX4*W7vl8k+=~Q8~>^aPBM$_zsaBpg+o(#{e^PW1fh-jG|>|uH#z^vWn zxYvQB5r+iHzfBuALd3L0|44Loc5aW_bCNW7{_GCYF&0BeH)G!l)3)}_sR=zbHDY}o zb_W^TAGwre5}!KT{ALZAY@g$r!dIr7DDo3W?(f`t?sMP$>_2k&du8B}d(U0(P}lzL zb929Wy6=a&_ETNsP`|ZZPt`VMJbTPaU{(UN68N7ifv2*QhqAN(opO6hLgsyV7ajq? zu!MzCj*Jn|bn)W*Q$5&IegEJ2@U!>+&yzra;D@-}@54eNH;8lZKF*=q?Rma(I_|%f zLq^DCsaV{^`PmQvwt0|U@cQ?BHi>iDcn^_+#GKHQ7lNL3EYLf)cgFbg{w{Xiba}W@ zJ%)U~ZnDDLi}NimsrQ;7j2o6Ec#~I{qK4wZ)(#MK9s$_WD-e`EHt+R}Od`uQ&vn`LDZSj+_kmN65_0jL#{U zo?D1}?ljvJZa3n3r3)aL_CVVc_X~N`Hm>WH z0`T@THZ3;N`wB*9SUnp=HpRBvSUd zTX(Pt+Yi`k0p~tEM)wh^Gz|Du3NTSsfoCF4i6w>n7BADvGB;2}C;-g3QS`Y@6K3w} zTttA46hIYhbfb!<1X1K>o(2bC6J!j(RjdLPA~`bv?U4zL=NcPmwvCOF@eWe_qFGm;uJGek@9Suwg+f!DPuaqKrY^`-{X%U#`@6cqC7d|K1;< z4am~5NMY3{uH*XyndO0sx!(@iL20Z`@Uk&P22tF1%+w8y9?byj^debF?sg>S=-^#Qm7I00f*le=F4 z(!VX7ZCXNgub;7HeW|5Q&EdH_fqp;s*g7IiK8J1GnJ&Nl73n1q9qQiu-uGAOj-TBY z-m}W=g)h7`z4}$Jwt?xAOI`p_M-3K$`ggwL9Y|U|%m;wqPVwQ-q=f)B=bd{V(HhSR zpwD!VrVQ)g`_ln}PbLy)#o>pgVt~3jK#;%r$p211{?U)qe7uGA-W6mnV@yB%@cj@y zJ4t&}5rFj{zvv~{=msKD-bQ-03wS=FgXrU55J@8`BRC(mk$HQTrny<2lxJi4fI( z7j?mVnAXO6IdA&2H>A6mPcEb={hQzX=4hkQP#ZUHjPxmM*RG9cz5MdagBTMq&CM4+ zr_W(Ky{7i>&2N5Fdf7`}3RyrsGrkjKRlghujuqz(RaH=X6!26MwHDyZT3lCO{ps|@ zFMTN;$(r=<{_gJ}Y6NwMLl*{^Cj}w5wQq}hFgiL2B!2Yc|2u%a39hRb{9?dK=gd;T zq|6}z8^=65KvYGxwk2YZK9E$gptv5``vA4B|H2p2eUNBxdFxf_1uuRf5fFRQ#bZER8+qoK_F3=4VM3d+5|8GKpa1-*qo&-o z`KIZT%vN^Va`Iggp)(qKwRrI&bfF6naYF#Mt;<(XgJ2#hNypOT>#ct=mKHWP#=O%D zSngb_e(v0{7n`6xARSUIX>e$BG0p^e`Pd1FWuq>3?%0j|TysDu^>Om}AZwH%$i2$c z+|r8OEVdy_aRcMCDH{T40#1O zP++qLSr2I6Oe@sbPzC7OgATg}$&azPb@OJxSBi!slNGJYaG+o`}R{O1^pSq zCYy532+$y_>31V0BxH)6Kk4(yaqdOmwL{?K5dq;d?M0?5n@M$qOuV***tHc#3k-3+ zE!#SnuQ(Tg+Im1n(^lcwFt3WJjH==wthD8G=(jyY>sZsKtEUf7d+HTIVwPgd%lK|V zZ57d#oQF7_n|rBG)80XPTs##_K~)4Pqbw?jyqRAIalstY+fV8_!#D%2N5IrE-9}AiQ`mq*;HWtkcQSREayANvg>EllKCF%5$-MNZMy}1 zB^}qH|8#I_YHIS0cHk5Px$8)6{Ddw7C|dARI8b$D;b0)CfUkzgT3x0%s@ZPe}spa6M~z?TNP1 zsMfI8D4P4|QOM5TeY=P-E05HCu2qdBcP@6!+CR$6wZG>ZIVr&r{f16^SX;(5lk=&O zLlOzrj*)DX+)@tOd&i7Xs|`3QeCu1^CPL<2>A4qNm=-ff-gx6pLC7>WHz#YLoqzuM zF;7~vOyJ*n&3Y@&O&|X7hw1;iSWCDDTMT()9i>s)*$>fMggrHtqU5i(%Q?Wv9c{S) zzbO^Rh6jlF>JGc_`psH#Iy+dC#pn^!C^xk%3kS1^N+e3e^`QjN{+`}g4@$ggJbiZO zL?dGS+xxkeRcExZBdkwthk9g`jXKf5GmoPO61juei+=Q2+frG{dWF7nZgdP-Bge6` zWC>1g%op9vRok&6l3+#=PC(8qTfCI$nTE7^%a+(*HLqBX{*2IPgE1dDzZeO#=I~YQ z8L$TsG8;B*pbd*yH(Be4y&3&%TXoW_tF4RZ6dg<4D~)oG5!Qku=466x zWC=GNQB67$Xzxyc_Oo%y>*m^I_OsuXKyDH9+n?wDb^-QGKh$@R+`IoiRJ(IyB{#VJTR9v^ z$mmfkAfku&78dS;bZ(HAE^16Ycq^B(cy;sUXKuROKnOs%Q1;%rYr5!lbEhYli+C69 z`$@wymyLvxH-hZ~7Og8*MJ<+l@J2S((k?bX7BbBP0GY$aa+2Lq4Usl8cv!iKDP(bO zL`X3U=ryZWk?Nv4zy*N?_Q)(eS)BfwknwLx7=M~AQgi*DlYugGqvVD>1D`S(<`&?B zOUEGsRVCR#!{QKYxrO`N0*gn=Lhn-RV5N{Ngy1xDP=`yo`pW&s_^AvfR3MzAJq zE+?AW%#EMKh(yUGAU|bGqRmrm&`gKJe**Y%!#Bl-&D1kAo9p5wjEA#;xkXI#@{OPX zc;uQT#dxpM9zlH5Yx&AN(TQf_UeU(r-{|0wp#Z9$d$vs=f7*>U=UPw4s4r`g@R%XL z2|VYfNaNu%ng(l{=fo*DfK_#2oN*v&;WHz6ij`Keb416ZBS_Q3=1wru6g3hRu`8r+ zjNH-VRGPqzo;!Sr3;xe}+{+D;eHi`BS%@c(dN2}o5`acWO%csAfz0%>pX7$4JZ=x3 z+ui*Xga;3vn6?};p0G2;X%{KdcM&C1UR_Ut)r9~)%5)lFvOb-8+KFlTvIPmOo~SbK zOKKFJ+xj?CLIPJM09Za$W*;)LPh!a^p0Fp#AO{q91;SCN4W0|A_92Q0)a03r}s0O%+2IE}6t)#OHh9P&&ut3*)4 zJ|dc^7+^}`D+nY$i&S-d>2u^F&umjZn{2PB{IgU!^gCYkdj0B2tY@n=jpo-ch&~k* zvyCN?g8Vo@d_kLxco<4Q`SC5J3L}aDk7uJXjz8|WkfRYFKl;%RW1I+H{QcklEd}98 zTf#HH_O-7C*u(CTe(}Z|Zw#G^=*^`s)%fqk5$Z>*#7;SYU;9O--0Qh=7eUQ!d`J^sLh_mH;cSAe;Vk*4Gi zNm;dIadUd-yWW>hKkZb&Wom|CTh(ui*PE(L?^JEMcKw4N{2=LIo)CDG&k1?D7vbfS61 zD_)U)`qQ6=EI#s)kKhIUoajpd678G7{*ChPpWAM`C7pN9S+O28XT1fd)dlA&pVjLN;#qgbbVA{s%=Z#e_Oti1Z33Hr@CVPQ z7R?pEK2O`Cy;jd8^CHa>x@j9EGy}ZF<}0JmUHkd)-nLNqo8I&$(&VfSPhSBp0VU^2 zNvNwo`N?!QBvJ!p)dxQGp)4gDc34|%O%$&wSR~os4bay`0qB|BTSkKVSJe?$mh$a{#Fl;9?HbjfV%+pcRU#QXhl*GRLi+o90z$8vv1MPyfI;L>kdC)NvVNt~BCy3}Akk ze@pnyW&JQpw48*Z&tC>PebiB_nO7&$rVSe*xB!S5FQx~TD72`(B#gi_CWpSEwq1a* z)Wkq%d>*4XgUsePuC1&?Q(b8kgiaRJV}YE}=JgQCCqOx`mReZArjl&h1IJqp4jtCt zu{MJJaKxI!18BEilBBUuX+$J37nmYb!r1X*S}xO-&E*-4HgOF$$%M3z_H_}dG>xry zePBfHd;oT%a@RoI$v-(phDHFuk-=u_3i_M{j1!6aN$hN~!~ktuw15aH<`L@#guP`~ zn{C*po#0YjifbrV+}+(up~a=RTW}hnK!Kt`id%u=?k8{fxCwC;+o%7nO0QMq#tZE^`5ENnd0f=Z zOx{kiJX>4pr0>cT5!=74@)kGZ-ks~v77(PCR!?}g&p_7E zqd@%GxChb_Cg$(Y)~Xeq4YgU38jOt~n&K&+0&dSCH?x8Y&t(jB%K7!7$*YzGkHs*P zY%zwf3v{If@umS*4h}BAQgHtDG;t`m4=_brnvy9BMeT~gWd|!^n;E^zv=4tp-hkhm zJ1bg!uk(3iqg|>E>}yjlfSV4pNMYj6e+Zx_qz&+-o@bAL`an&9eK;jj7BhiCVzj2+Nz2#Wn$bb{}N{kZR+HulOE9-#D zvg$$6SJ5RFBH&O;$H9o?6d7pm>R7-LFr&J|PMs7^hFzqbHR^AIG}mfq(Ei4qYty$m zaQiJik=$9{i}rOZV{_0%CtNZYlKX!)FV-}W&===IpU%@AYy*0z&uuW%L%seU+IB~y zc=S9bJq@5P@;wdV{9A56lF)6Jfa$roJ-BW|8LgIm?JjpCJ{k=<8jm5o zc;by{ef0~mp_y2~Dx9nXMOfdsg^rF6fH&}DXCh$FUbG)g#;ufUy{XY!p{%qV)mXz< z_BcKR*p49wv#mAm&u_)5sX(bNBJTh$84SgHti12J<`q;|xP*<&*~soXGJ3r>a&vbT ztpBy{M0ZymagKip|51R`wAsVRj4Y+Y*_s*@5$CJ%VFT0P+ql|@FSF1v(zQ$53RJz$ zJ-P%Ls2oh1yP^@D8Q9r@60_2P<+f|Ei)I=uiF~k!E!0I7Vi9ufe~o>PD3xb0Br>i7 z<$(Q=bcg<~nI&y<>C)0)cP~QlL80h@5n9N-}UFb;J2! zr$06iR#~A6C`73zE((HUkPC78`M$xvgbVT}@W$Atj1f%wTyRYB0)^N4?x_5nw#K<| zF9`OEXK^GfukJI^bh*syOJFrUp#-l`3r$%$+3;tK%}9ND(Ei@lU@fZ?*?I z>I4Me@d1-U7@uSkOMs8mzo=_QmNoAhEW$DvCylMPiK7FtmR9xx>%A>1KW`AjdRTwei z3n(~{N-!4>O&zuD%xmvHzRx~Vi?&L=c8v@KV_sM|^8O=~T z3`}y5or^I6fZiaLm%d?po5-JkUyQZKG=R1E7@6;^rNw3iuI|3M6VQd_UQEW}cxmNn z<^Apc^Lg#aF}IWqa#q|mTfh+9R5D5oLoy#9FgxwVX<+52dQI5ia*k?=k`J%hU7NQcw65iEH6X} zyvqTJy8fuU(eMl%lW8Rh@Fo{GBff;pKFt-K8m$nK-y)Oe^IZ{FG1uqk`$!u<_9=9v z@e!lomuRyNNr3fC!DkGQK8ps@%FeroH7&D_W9*o6k-g3nKi930`Kk=dCjmWEa(KsC ztgAY6mYXa-qcZ?&-WZHSH(H?W_WX#=iGg2$es=_P5~!TFec8zHgqhqVR=IIeo11*u z^Sm*U3WfRw+p_l8cSY~Um7iLf0La})g6BkL>G$FSJ;bq}SKaz>_ENhatpU;@j)c6n zS?-F#c8IYtK7TF-5J|vg#xO0Xbr0aV?QD{L*jeDqmzMs0$%LR}tuZEUueMCI!gDAK z)hEOj0x+IU@FI(t>j6(VPbzNECfFL+s?=)L*rBK&14!)R_=6}mz_v{QssGf+mGTxQE+?eFMB&oZk+a-*N z@~Sqr9Jv6FFUOtE#RRHmcO$8rtFDY}N)`hFm^&Efi$QUWLAEbTn&IBNLVaNeuM5qd z{~cdG-*ig_ml0`+(;qv6pj-KQxn7=KzriXoN3z~r9hcLW=c(P|4waZuddT|}A{PFc zs_#SZvJe6}lZGS8y?nUItFtE1C9Kx>X62?ItX!wBwPV}7s#uvbID`7yG>tRp4?D2u zp7H7Xl`9COZd*`%<7L)Dv+~G*?E1#Ue~(s%ir2@zDraE=ISzR8Lg#ONb^>RNNbNeb zmSnKZaPLo>MO#FZ+4@Bo#jA55%YAw_NZWU*m5)5yXJnFTYn2&nNuyjEhb`vqz1i4F z!V7SPWnB>Dbp>0mo+!%>E8 zh;^30)PCPb%ks#syy}O0^>+DwhHgg(7vMtS&a0-OOYrkR>k`tmqU~XXZf#rwE>N-h z?VzCYTkQO@d8ElSQz;UzRBE-}ij(eKb6L*56;AA{Tv!*26|Gr_Ks?GVmSIvpk6w{;LcVWsn#sAu0g( zVt@+>)Wiwzv07A@;}g0PSx0(@5T>c!6N|{#4zwbg--ZN6igTMpb1a{KxHe|CvlyEK zeI>~bgme|WGMr0er!kEQ4}wx&99JEBmtE57OL zHEv_L{u7)2yrtP2CigUJBS!P6{$3Gs<~onw1;?EkBL7WpUlsW|AuqLqheFA3fmG-G zt|}?|qPb~(&d5b&{&CZGhTZg;dGC9wSx(pEHkXps&-tdEG+Z;$xX$zM)#}VLgkq`U zh=nbB7($Q8cc|mwuF4<*a!i7ZWybNWV5ZdGyfbOgtCBNL5=L+&eax5UpxB~S;6-jw ziM^NxEBg;Uv{H+;YNSJ-Sl-^zjKsOp($aEFu|vL=oc%$?h3*NCIkhu{(XOk5i$Sis zEI)Q+^sMOEP$%kx?Eckl1{ zl#Az>bFVh>UspwV#*}^`cF=DV#^HW5N;ayul=&ESsDg%jo(ckB-;E} z7qZusG-j!bOH0#8_y0oRSrJJTQ^~Weyb|!Y^aUx_5u#_F@yIZ*tbnc6++zV7Smys7 zzmj{tG+haG4?p`OZp;2ATcaOT{)GkFVm@}^1|!q*-@Iz|=?2%nSVh3^MsQqSjt1T+ z4Q&a&51%+$nkS*8p0ULc6%ydo)bV9MUY;YMq!p4yLSEIPQ)Kwp`*4B>b=@BMuAM4f z^CzHX?;O&HMmp@26XP%ZN_wh|-G8m^$Cz#CCfdn!1nsYfpf{D0`;iSXu}tJ-3&QFE z;h3WAU_C`qjJAW?In^_>88R~Jg5oaeNYfu7hkwE6LYb8;O`}NDu+P-Kx6PSKLcfrB zCF4EZkhg7SW8(@@q{af-eUBo}Jiy~Cx0=#@u|Ka|)$e`}5-6DCT74mtcy~4619p17 zSIf*z7s(>bJhW#sdqZcpJPhU%`W=FWBuhy7bxXsi-Wdx`Xs}65c0gCiB)CY-=U5q0 zUI>NSt5N$FYDy0UQ{t1$X~f8an=S(Kts+rBF-8nFnpS76hpPhKbfC0$y?i7E1Egc1 z-@GMchDxMHqK%|}s685q02o@dd2JgrwdW6`ICD$z7(~u>z>j@kcNWq`(36}Un888k9CB8oqJ$(b@i^a+h_gF}SG@}+@4aswJ_xP34>dLXgJwSiDdm1E*I3&vR= z;NoZLbZGX|u$stiz{9d_Vi-8N410t~NRpc}T#1M#Ibyi@{3RTi@GE zqoqip@~FYr#o!SkxOluQTnnkC|LAHTor}#~f_>dx8niPhWl85kXr{PxYvOHnzm-NN zkN!aCadj)WlGIHiJZ;1utgxM*MUw1E##`fCWB=*0jo7^3hm3pTg05heFIeMYh=)yh z`{YnZM)g}CS#F0&3e&4U^wuZ7e`v^`h(!0fS}SuVAR)-cSqbCF|n8@5p z+yB65H3tE3dArDif4?g+tEZB{g-{Ij8_`twg2UV-oh6Gl08wx;ykO zXGz`-m!FkYsTOB@qm}w=V)RJvTTSXw3Rc7`S5i}F%i9Uiuc`g#Vx!@0qlA=6S1F#R zOE$Q>GYa@grX07zyP%tv@ls>@faM?tNSp_l^YVFKM(~+9c$Olz+IM?froo=}dZXi0 z;ZPI_dkq9SO>$9V$?B}%{iP%+yVTx*sApRhErYcYtyV&DR(dDTwH-L?{r=G8BuF=E z)(WfwoJAp+2e62KOZ8RqeWAqUu2uxJMK%sU&&K8$td-UT6U)1e$srTj^8{ZQFu!HO zA>He^Cfpc(6zU-xX8bkak6EO6M0Z|9S*IHBeUL`>yDXM>TE)%KeAZ%{w1U*Gy1e}N zF}IOL1PZKiqmpBM*H7#6YgmkZa7=P`Z&kYNh@o6jG-09lF%{YnNy)5Yx=q7(No{ga zt3+{r$R!wg79K3zaO&mEvG=b=Ax^9y9Mo@Qn29_~OguNCf}}>6_ED2ke5{}D6Pi#WH#WEf<0`I7(&HVB-r& z$Y@m||68q4g?$mJ+heL0c{}zY26BKBi+3fHAz*HFK53xBG3@*P#}sTr+t0U+veVY8 zQ2YJ$3b7T8Y^o*%F6q{X!}FeR8+ zZTeM`DkAz*8l-x8)MsCsDSJZUrW0C5DVcjvYY|C#G(Kq_WEfVJDi>T*Ud1&U8E4b9 z6I9XL5_j`nsv*5A+`jy}Wq^e?^6k~6u6D@NB27FK&V`POQQ!9ADms3hVj`B(OPH;^USW7(;Be# zBhmfJ^dg})#56v4rnv76F`&Ii$@$tSSqEQL+`o+}vdj*R)rZU`9F{9uR{!(O>`U7# zekrSkgf>95;7!VqvKeXX57toU75q`rIXlZ)cT9?-)T24~K@2*$#0}BNxS!lggJ8b@ zo8g72De{9f#L6tsMB{@ZXU6?vb|wKNj_c^>yxZFa7~#%wy#rlCgTe7Z!yiSDGM_3E zW2skDwpG9gxu9C=vBC0>obWqe#ba(t#O>D3{L8TC>3k5)IV~cQ?8EmsiFn*NOsywO z`=3GUw2)AEvWe!f(6%hwD?2Gdi0KFh$X{;9MtPCQtUEMc5qbFQswQnBf>={PGF5(>d1s=dAsY9oC(fcLnc7L(yMLfJc2ZlZ;tSM(xW~It#G>9V3aj@}n*1^I zYkNDf&|E7VHq6Y7p4;2kEio7?KaqpNQmuR^KCvO1HQf3f9>nN6i~`<>ulsi4D)IFB zhS_ELU+N=0ci!v5J)yDC!>7vzA}epk-O*UeNPhVkRG7x!WRpIP@H{W=ghEVK-CLtz zc1N59!a}OaCI8o6mW$0UT1JA2E-s_qfS4~OlsblCsoY`e3gk4!9hvtPRIZko>AV17 zH3#M;7CWr!s_C^eR@S)}>r>*ajFyWS)yP+UcK|ix`AcAW)?Zb3NN-$8H<5Ev-f#!Eb9tdIlvf^;#SIfh zsGkrONwr7=5%-9lRahtu!T$Xu{61YnmlzH@D##$2hb3!CY5*&x(7*j}+H|Hm!IQ~v6e0S?ep!xjXRB&C zb+xS1!T8jcVPnFq69X(e;_4$gRSExQg*1Qcl=+JXpJk!-)VZokYmv_C{Y;7%W8g3| zjJK^V6Zo|waNs&jt8+GKx0w7F$7`*P)Bm&D=aP1ri7Cy&Z}TMj82?c7%qs6_fe<*sGC0!3X)N(#$FKtBO7 zXomukXr(SxT!zngOHylCg|9YcE(#Xob-W;#w*D09JU<_uSuBXhHE44FE4%f}3&{Dj zckse5aq|m%1_Q1|@~-1L=OJND{63E?Bp{$|FPv-2n~@-5#;5B}0MJ7%kIi2cdoW+z zO!%a&X9SaYc^mvNRigI&59-jDcXMtDh4>4;aIv-Y2}Yc>rw4?lOCV=Z*M{ef#iLb% ziNwxebG`84U^G{kFhT@T{mtDj@K%Y&45+iU6GIS5RHP3cdfyaLE;<-7J1VUxHzm7|$-xdg_ogq{q8*r&^iEQ^p zdwg};*uYnLG0(cpF&(W}b4HA)Q3nc)7AS!zxsZ=b48vC4LFY-ibd8G|GBlmo9&oFU z8m{78kp1k}lb7{?gpskeMO>9nK_{c#>~5mmBf~6d2qZ5vu)d)kfi;QdQTN(Qb@Ei~`*%#wZ1?jR@L6{uTeFBm09n@2y5Dj1~1fL-K@{}L)Plm>J3V;kKmNLp0T?^ z;dVN9i7;S&hp((XI`!=v>ebM_&_W$bBou6hSi2l0+ReXRPe=Of#_rqS_x{@EW?tXK z1G{`CyDEb(6=e7^$29W-keZ5e_)N&(h(-e7HbCEldVM7q&U>s&j^Bz5>9{90_@j`F_7wm8dQ9Ncmtyaf=H ztM*An9m73SFT$t(ceBVgUJl1FcRYA>q0c!=ch0b=)a`>Seg{nQp_2ivX)_abpZGjr zUNTIDQPQp5Gny14HWVBxl!*UP(nL3Js*=7cfj2F#;L-Q_Mv?hFDfeQ|ZKX{hzt7~K z^a1vC>(vk{o2U8c&!8nZ!4Ik#T0u0J<+0m>ZQ!*RN(!`#4bCJU%D#t-}0IXkL|cnHe`3+J4u0q zSYaK-tbMM%CzVz&(&l@MAR6*cGou5pSaP$3=2gUb$l!wy(X-Vrx5H8url-aL? zd=)`vfJ!Dl5G%sux#a1QScGt24~{evnxuPYiEghi(BJ9x_Af_B{0X;1W?UqdNFGzz zzeFW48Qo_itRV@jc`TfQB zjD8?hl;zk%d_ePQ$CNUp^FahS z7?WIjG)E&^+(z>O=2YG7K2D}Bu$xu7Kl|hH@t2be2+5T4L+DIw+dDJ8_!tnd)cWhV zP@R4N=O^Btw8O)~D#E?Pj7W2XUrrHgz_>(9c;g!&k=5 zf=KU^pQPE4J;TK&!;3+Yfgnfb*eK6GoPJhf>V3O>xJ2LnweWjPTV{9#9y(51d;L=O zEjU{i`tS*Tx$?W*uD>%415Uou$Ztn~;UW+?=2&~azAb(zS1_z2=k{|5xafBEPW4>B zeg9c0V3xZZH+!BOCxne*!$v2C)#%}7j|M%b9M|{%b#sN09(px*X#2v*1f}e6_4$e) zy~vyp{{LNCq0uW1wXnMDh>DAo1;>TO5b(Otk;)8>AumIrXF`O$gSoy8(X06l=vuqu znL>jMCfvQ_;lbssua+y)GYUE(?9vnFzMFST*ppXmX?VLug4yL*1?S9`vmj0lkmaGsKCq9!jFSkBV%LaE@?>ox* zoF)mMt*!O;>Y!95@3>rY>I;;ggp`737*!+eOKD_{y&9+fR`r;>8{P04?Ifz(Mj^=; zZ{+c+>t)Mp_y+a6!Solm*uMB6uM?z)D_yCvpQ+@zUYc5XvP7*W4u3Z(0-+Y)8 z3xkMF)*lJRiGurjq#rEUaD_IWv%j#8@T-}ii-cx9RZ53tsuxUmlxrQFpjf^QbL#v` z5M2IgpD9LN);JC*D%Y<(qMqn&{kcup3kUgatagPbCmnC8DGDv47a8Q8X=1LXn7y;8 z4NhwptFeRx4~koXlRf1?%jH|=9ka=ZVI&wk?SV8R^QU$N^b029+2 z4RA4pXB_Ikqfc^K+Z3_)5oCv27)!@r85^A8zwXQiAQ1%!UdEZOw()k%GkrvvXQDpt ze$nIUiW!)!pQRO9J#K&LQZ@qF6?W<#hwve(NdVFnL1ZfY!Q(^hl_-a+3b|0tC|!l0 z!Q=5#U2zv}(^c6^)7V_CWWh$x^%`XHwUZ}}A>`6K|r zTb?7eDw<$c^(oQ2Eg8Diab*$Zet)S#+ zohrx<1(J{nl=bSGC|YI+?wyaSI1U&mE3o8YQT=CG03P}%Y)y!*T~*y``q?(QY7X^2 z2nq_yE-%Z{)KhXB!GnyM6J6j4jX2-FHWq$ja%A z@#1WqPp}v96|WPCy+x^QQjGg=^_D46+H(~L=PJ|+)Si9YZ)9Q zu5L2!9T>8MNK3u^y^(Q=M7}JKj#esZlYknpv=`~PQHS~h!BWG?hQS(@aThXyl3v`A zvJ0U&+#Us`_N;llTR4Kh;0tpIIE>rl)I#*rv z1%WL#+BroAA8b*}E5Fn08;vXQKG8nz?F9NW)Cb=K1>pw6=mdh-UyOl&(kTU+1wR&m8WGG#9Q^G#*T>AqB zU7-)6@%Lq*?NkAHc*HlFck?ZQLUBltiofc5j?Pp%eqID5);xYQzV>hp0Z0Dv97th_ z?1UN%B8T$@)*)XW?Z?~lWkY$hwf1>s?7XCMyPI8>G#ZTYnjC2^UT={Tyg^KC z;>6v!hq5klpvsVh6dhw?W~;7CVt zj+AeLqNKCQ))h~%3;pksX8s#wX&A$o(NZ(yIm(OdYsK?C3d({fD7Racr-pMw@>Chp zy`pAjTWMPpu3nlG2Z1)~GOSJfq5Vc7Hw{-U;2>+$u#VVmjl}{}XsHKv3iFWusVO2k zd6A<4k4kG_8?s`&_`a7dyp^nz-CQy|BKAAgLPR#L)hh%Ro*=&2q4snGnr4sbjBzZyL zckvWY`Cn}D%gMfko%+sBiL4;R7R(Fh@t>($j-4$3{R0xZa#Z1vE73Owa2BKNK&Nh$ zXiYlNle7V?R*DU)SdwAu2Y+id_6thZhZ<`|%eWamBBF{F-|*JLKJYRHk9EH}x#iEW zd45MTI4!lgF{8+9(K)K}DiW|JdfZ?dOkYoUAm(jS&k~G6dd0oV%_U3io_A)R{I@P% ztxNj~yhT&5tLZ2H(nf|)b!pC&TsH6Lz@ta}CWqHxm)r;ZMUgLoC!eaSJ{=3n7GWUk zj2Jcz?24K`)O_9d(gEufq9w6_S98POjahOqxgSw1UL{z5vPhi$3hmlZ?)9re2OWR} zV=dmVDzYB$v`rkKLYvt2s-!sy4=OlL+y1zuwP`&tPkrp67#Pw#YVc>p-10Y;@H7@q zX`eii-9f*}RrJG!#z7~x{5v;%cl0BZ=j+2>F}@Y6yK+CSmg}bVb!i%~sSqU}r}@8^ zR4;G;cW<8a9MN{I7qG&eGpf&hicgky!H2Js{0a(#5_p0`_XjL#DdkmCCMG5pJUNiX z?VXKNu4{X4z}Rm&9qoG$A`MZTKBBBF%X6A`2$Qb4OguKPXPQQ4XH)w=wk3Sh9kMM(~5MfrQH~m-V~eI&))acDT_O5MTEzu!c}T(~MW%dd#Z* zp|r&e$HqoC>deVgj*m`~g{jcj^W1EN@ z3vdsb-sDiS-Z98_LB3rZKbGJv!4ST1+z{?!flyW|3f{NzYU%H*Eu>Z}^9l)OIZJ{O zdR!>_?&)8h#wAR~!%1MWRs_y+f-X6&guIP;JMt7LdA!>bipuqaw7%kv)vjvDzG9>k zy+lOjUHScXUfaI^xGw{uyom8Pp6+eoAdJ z>hWZ-7dM;yHu`&`XzaNja-Hq`m1byh+>5EA=x*h|8 ziI=C~hrfboB{=GgH78fI^nNUz7U&5�qG)6hge=soJbW@}sxPibI$9^fOW_Jm**) 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

`d`dIiwP&s1J0 zz)3PwtLf8VrG|R?j-gUi+SM`HrdA$xbTmVZkjaNFTmYI^5Ww1_VV^M-C^OKPI2jt~ ziLBz|6V?$ya5{hQop3_9tH6%GviH&)k z$`c(!Y)KjxVXNA__I^nv)*08|&`2X`vhtOZkthg4hUy(N+`SH^4;ztAE5)wBT)2+i z{LgZ3MMMF)Z}N{ux3C>u5)T?mSCLPQb{wAaqqnS7SAh7e(-~zBq`);S{ooQnWwlWvYp2#W?9E8j7b3!T(==v8j`0^ zN4S5g5&#Ytk=$rcrvTJDA!9znzbPG3!u5R`K35{bxpCY+`u2NV+iCLo=U*`=$VM_g z-pli6&mdCHsAg&ppjmskV9hIwS473ib8NJoDwR&a_KC?^NaWL4Hv%mJ@P#~QWOObn zOIn$Wno26r0B*HWWk81S-KTc}@=F0s7D1S0!mj!OQhT~sdt{4`kBlbvC0PNywO>st z-IX*UN7#}=KC6@r-hC=9uL_f?@sXqyTguE&bFUSQ&1O>9m=4mU9)GMI2;eF&r~RK| zN4FqNTX~;5clx;YD|)v~W9#MgPw7hLsj`}$n1T>{MFk$RdH7?k#A~;o)5_{LeFSO& zx2T}xntC8~%qZV?@8deGR;2O)I$$5F1PD@Y z@B>Jl`?Yd%0=O-$X~427_INV70hs3@QyL+q%b5?hLmopOu{{cmKu@DfcE2*Ma}Fmi-K$ zw~sH{MXF9&!V>O9g43Q(O4M1QVFPRX^PDmN+JQ1^o(Uvl1Q)}{uwUrATrXDs*_-7A z-|u_s-vny4amjWG5drpF{F{M-q~MxyIPPsL5T5!Y&j&9UquYq;RjvV~hm6CB|(2T~%F9!*~1--%IKDC4sQLbpZKq#<*3y z^pwJ<=x6i^N>NHec-;c#J5;K<#+AGCtg*Jb8w81C;Q2_<+Nv4PFYebp-CcYxi7bcb zS%Q`EvZB%onG?vfY#%HtqaiDN4{b*ht$;I_q{KDSp01&gHItAb>pqiNbh^W5=o4$K zXkk1hN%Y~_b7}T__Gg~V{)Cxx)`E~>?JMcz`OO3kE9dfVAwk7neNF$Kfq_28rkHAi zRY=nF@Vh5`_qjp%U_LYd4nJVR4aUS5K=B1c z758U#69Ymo95VjdUy8T}_e9UM=X{1XW#vExq~#U!cE)<)f>2aFO3Lt~ldqpsb@CO- z{Jbx7yR$_locG5(nQ+jEk4xhd@*qHKkt?l)81cRHS##&ivFH37KwZ1>taOv;<9zF5 zJTqAN>%C}aCNNkP{`jjelfV3nf1T7rx|HI>CFDE1yOK-JE4O$~1?#V#&$s%<$^*~x zPuR15{-b}(g4ieFrY*UJO`8bNfbZ`gz7u`BnmH4mc#Vu@C5c;(y~LECZRN-zzQFT? z$txw?tJPXNBud#!umS(uj4b9AgwJ38#s8i>|HbDJSdcKRSEY2rE*MAWwX%u|aQ5$> zfgy(-Io33JyyO`|f}FD&XTKfxfMxc}-l4n6qYu8FeCy*s3_@t1#1(5ets>Vhn;|zGhfDT& z6O-)!d4f%rmRr?oMU=^0R9dk+JUInSI4=U9oL*hy7P9*d;6%yk6QUw0co|x`+oiP*O4TWYEQ>L zC;@7GvB%h1omfoVXHt#fs(#CJtjRBumdZWHzQ$Zel_H<31f)J7pEYf@ljBiGvR)nQ z;beC+$q;+BbM7)p>u(4d*4+P>kRf(q|FJ?QoClxn=Vtwu%hjv-+lPPiaq~Uv({hB& z-;Pl3U%3&;jX-V$awG7Mc?5QeY4iH}`q=-zdAK)w%S`<1BuB{nW1jxpz5Tioa1H!@ zkN6Y8h-bB)}er^fiJz58t;4KFc5=t^o@+0dNJ?_XtP?A_O4U);A&> zRBdHR2M@~X44aK*c5lc60U$I2rtNZgFCptT-I0pm(EwIS4+B2|dx4%Rf-dDL>H$6s zfDRAP_$NEcV8w>?vz_PDV-`Lmr*?oPT z06t0|j1WW;tP|L#+aYRN8v(&K0wnhJ2Ji-P0t6+10;TluPzJ$Z#d|ZDX+Ss~s*cp>4jlfi2P`9{X=<1f<2LH#gQHlje|9 zYDT{AUf8I=|KiIhfXEBU!?zwJ_wNrA#hE#O#C=XjHlO$4R}-K_8TN9iR8VFqBvT}I zym#$RnI%aCfwUDef>-ISaSQOHjB84#&^{+)S+s0x`;h0a0_KtR&fjfb-AeOxVs834 zpqb7Xw9u=lsi}r}&j!@Ejn-$|=D{ZD9kV!@f8ISb~@~&0Z%9-yT7wjCU#I zoAWKvSOaiT%-ni?YuL)%+&uSk$~tX|N+Cf&LA!m{nDRRT0?LX*{a7c`a~Wi) z{F~&aa$NWB+`-pYCG(k`eexyQtPpH~lHGkhNq0A35Lx>>n>3K$g47;;mDDm8 zZ&HyV7&A4$4q$T-(wF+1>MFoLe7(fE6_@&?6q({?+%G`9&n_$i7#Amx-WW<6AzF{H zhfhEGH1>xNKX@0rva*RUZ1dC4pHPLy#_kEx>&Ex zK^)m<#JymRs<>l(^|wEIH};4F_Q0>7JPn&0zI{6YIl+lb9c-E+ccuse@7wjdIkWubo4SZI*oyN`;R)^3W9VyY3rM2*7+HC-IT&+#4t?IC< zLSG_LA+UE%&j4ySV!aD&hGZ6dguPhI3eN-F*T1+|9x}cHs8RKRpK$Jqv3ZjilrL-| zGhCwZ7W?Klm60n{SGYHuC9h*Y9qx8l8E=XfYIj_ro-*L=-hpc0LE3qlJVHK7Y4*C>7Pr}~oR$}ZFxhdDJdvXcV zUsiue$VlQ!?nxecmhgRRAw!#+Ya+Q}*$Q3uHm|{|E@hqUHR$=U3L><@vm|T83S^TZ zq7vG@lR@Dd0RBO8!1>P}R<#l|``Zv4KTk$pApOdI)XW;1VO}e_PeE_*MJX-&uqba; z%)VEJjB7Q-e$VYYNhyS}`C6TSL{a#M0-Ve3HEQ z>T&Yu-W$m&*XugD{osCb$owsDZzc!qr%i3Ccwd%bRD!+y`s-xm@n`h(D8^UyA?4f1 z90sB5=?3)v|u9@RewFo;@$0a`tvlFJUd%r_3r3tI3sYRkE#` zvB~HBH2LaTvbD6BtY_wv70zgROssw1tdh18P+fgB743Y;K+T1sg)VHv=U>}a%v7{X~FX4E^R}tr)V%DNRXOoaBS=U9e zKj@o`dupkkvpVF6SSAm`U~zUP`N@y|J!j_q|=*Kr-c1gzat^+Im~@B z=9kZ7Xv5|tRH9lBc~N`!tWf#n8LNSFgo&-jNZPm+?Iy1n!?>0tWc0D_^OBxcsa8`3 zWA)epB<&h!SJzNGXIo`1Jri1C`^nFLPW;yqUy|gWyAGLO_rV&H)2yhkArZqQGb``> zOzl!zP-VdHUb8V=6(peqvVO&?AZ^I8tj2HUVLykQCARR(Y0h2MBrFy2H`iiR$>8$} zekobzT5!STK|F;c!`l6vn|S)>JHL*HfAewk-M{;F^Yh<*tv}!VEnb-WPi_QqBaj<` z+z8}G;J0`L_DC?v`&ER@jbxddwFgNL3_je1ecWuUH{bo;%|?0i-QVRNxe@qn9D#4z z_20dI59R^`*|Q{vM}OoPoRt+*iYVJFK(OTiFn5)p-r&|u$TC2P0;D5~DhYZC(9H%@ z(#eCmfrx=^ApnsFb)^UFm*C$#RI6PtfYQKWT6qYA%?^OSRRDHB+u+xR;d5k@*HfNv zkZy+iy*p?&1JaF;O(#Qx-5k6Dpvmf0S|rupNhV!wG!_;N7X-0l!>qD--bdiV5_t)T zCIHs@rp5rV1hCBn^!V`5fTO0RIah6&NgnnzP7& zW7v2dy7Z7%_Qmn%;oF1Ac_0@wF&|*qB|(A`4=s=qHj5Rk7ChKTV#_fzpiwf*$_*b& z5CDQxW}7u~y|pwFuA-;KHUP`yG>y!;Psgr?09)e0>Y|a6u>b&y0h|Oy1cJ?u-U1*h z;kg3+5?N+t3g$T;j<@8C)f86*Z7Zu=0scs^w6&$VCW5T6jf<#aF%VMs8+fuPxU5(&;*DFLX2f_{DzTN2P|B8b$k50tbaP!#x5Dn-3| zE0F|KtPE0C%WJP7;MVUS^Zd zB_wELhTqimLXbUX+O{IEXKw>vBjC3Ms3IU>X1EPu?cGrZxNriXGe!n~QzH#h{z{9b80NfrIY24J57@bK+^zze{|b+Wo4M5@Vht^#n81odYFX0!19 zQtr*lft7_Nt_8V{0Km!ufa`$(74Y$~8kHXsZ1x!<`yJn4^_I3;S4~wzQ!Up(Ujzss z!Hzaahe~{m&lwpV3;&}X4Gs=+e>NJM zadS3(#b#KWg5tinp!vq;dZNrzBb6{_evggK#F%J*%96Oo)JYex?gNa`r@eUjDnO!i zIvxIFZf-Ha3VoWO^YT(A)|lD!_SO)jSDt2kVj_U&4?ldA{OE^2hscFEgY;ATUQj}k z%PJy2Q#-BzylcV^3g`Gewhi*PJy3Ih0Rq_ zb-1#2ko@eYpCtd)Kly#C!>%Dsrjc8D7SHdcs^k^`{V9Vjm@DZSGAe*&HX2@AnhlVu zvzzREWOQa1*2sRRUl7+Xz-=W$3X-YOEMNTOv&T=90xAw9vje!PC{BAbj{vqMOPibo{~ui5LMNzD?!5pvik>yhGIRx9vkES zAT|M5Kl%JiBUH8l+ZWM!ceGiv_tLEz6q&{Shn z{Ui$rs_G-R$a0>WoewavrnZslxE6d<0oQWKd(()XYp{v8Qi=8wYho|zqVJSH+n9Z7 zYMOoI2)pQnBdnmZU8HO>^Gis%*|!5w8{0a;cPnq!KvF{kdyS-qDbF0jm$J#%9m2ASn}Qm8j>&9p{5R$n#P@5XM0=R{Yvm(o?+(Q2CT9$mQ1l)CAkEvSTC#fa+C^GIo z{0sqT_sm_+Gb#2R0bq$UeY9sVt0iQlDgpWJLFD<$UN%SAP&Kw!%6NHp*x?Mm$~ox@ z`)pu6)RDZi3EA-3&wmDZzY>yWSAgiAAZ=dn_)MC4cnK{+r~%!#9&t#>;hYLdF4WqX|E8h3$;L8cCM%OU=E5$)n%< z9+mPWy8LoaQR>gVB_#N;Rre6(0j=usoUKi3cb4I49UJ`d~APzU-%vO-+9jaJDY1%Y(biGKFgWhY4R+C)%Gyzn+ycrn;XV zZ0@O^RU~+WtmJwmd9@SI^4_QNY9{V^4sNBoQh&Qig`dPu4MctuKHBSY9wk!jBV%Qj zNkLXe+P}^3p4BA&Yq9ex&Va7jnVI=GOX$BP4<%Ex#B{dDpw*ko3QO8d5%*P+u%_}s zGYM3e#68DU$Q*F(ZTKML9sN?QYwXi_C)+~?g2s8mZgPZ7m_+VBxe>^XKyCzbBaj<` zUpWG{W61kegv_7*>7OPaeDFblk~f5m0hpVx-)|n@{I>_Fo5wf*ee=8A_uL5lwv50x z?fUOtv*vI1Y}h#e4yz}y^)-G4A;Whw{mejHBb!xXMXpg_P+qP*<=S~Yzg$3F<%DQrp!tWfr1bJZtoC*5d(UEZ$?)E0Ebdj^Yg2K z!JB}4r6E&P2DpsA4^7?|0_ZdwPcWzkkh+qfLn#@XrYjXB!C-$2vxu)D)oPJl&<9$b zVh|&^q6JvFAi$x#3DeK70JHRu%)9b9RaI1S6xcx3Y7z({0yzWZd;k(jnR4dNY96Ji zS_Q2Lo~%p|Ze_pY>v<6q8u+rZWFtY!Y( zJ`M=dtyobXT_DBZxh9&LsKS6mT3A?)J*bM;NN@>+TS3uEzoXZq^T?E-RnI-`?=#-? zOzP|HrmCVPfS|Qi2(t_o4oK6a07&cwVda>>yhPArT@B*&2tff8r6-^UN`}^VBLx4c^ zG~&HqQvJ0Gc%v<~K$IB#&qMl|3EXTCA0Cox8yo8}cCOodNLF1i-_Kvn1fk-XT4B+G zEqXmRa~E(*r`ni1vb(XZpF%PSMBKT1mvL`n9#2DNZk=`5)z!s)*))BYm6IU%(-Uh- ziLfS!R>492%kttP_F4eY*#;0tGjKo(K~-gul%u+P4*+FlBUz%#MCl)8*aZF@2LTP6 zO`BmF#4-|YRtp{DM_iMK0FPEN>5J>?8Xz!gVvJ5r@5Kg`jCzLu?CT#0KtsSh8c$=Z zt`&XXAToMY=xpr*hK!9-`2+E7vvQ^l-?AQLVpKe`zFl`_6aN%hF)qy!skwCa5fFMFaR({j)Kd z*E3~=gydu0uvh?LD+}>U?tyZnaahW1)`R!nkh3)AD8@Cbxv21L&L@v1O~>yW8WM70 zeoT!?=%vbBC-f=_f@8J=^r!bkaNhvZWF7R$(ilMMPka>f*8Y=YSqIbie?)3-$Cloq z21AX`GZ?#+tK@4(Rbgh%YeBr9nFhKCJ3a>citXpKPx}+D{AM4mWML_%VN-WnK4P+! zvK{BUrE14}a-*spvg?(HO#uXT*E)@CiIyidW8>#++Q<1Y^mqbBuk#T^fpVA=I>@Vn z;)wTq)mSpqF;8E`Bf!3=^S6{MLJ;cnvMdWPp)=lt&hzu=!DzDAmd_SeB?j{nK%PW<=#t0nto0Zn+Kuw56)|lVwqKNv z3!+q4>Uq+MKgUUCaxEXy?g2knSHLaoDG&{YV&6l9a1Te#D8RR~itm7x%Btdo?(Nx5 z+jx%@C;RA9V5DWY<%1o@RBqfal$4NRKysyf-P0i&Gxwec=6fg9MZGoqisIyndb__5 ziyP#y7}oFWPY`P+s8h|`MUDeoYc%YiLpBK&eO~>oU~Z#9#c{S<^5tP=y+ECD_SL7r zQzlnx{Bax{)ThF;kOwWW-e%rKI&gNp|8qgY6yXjCONE^+-n{9bdusmn8va&m(6=LM!x9I`Vr<0Wp&N3!c618iM~fEXUKTb%Tf?X6ae4SwtJFe{%yrLZ zmC3s}n1j6XNmPSIxBnXqMN>n=$bYh!<|%frywBi$aTJz!K!6r5){@6nnnR429|Gs&?8x$M*qQ#44Wp8%Jxxoh`fx6K-3ku+G z|IcrJm_%Uv4U5?r%>4AjOt?D^0D$F~(0hAdt3}Gz#b&=Nxoo|`ioSIS; z=@D>pBTdbk#+Zd2#t0PSo?D8kdTZ`ofbLGpp$vwrudI?1ar%}GC=Rk()%E|e_!JyZ zf49$h{I|^JS{!SHQjfW6JmxbZ_X-DJNxZa7kwAF;URyyks6DJ4I=P&7@umNM$6hR{ zFW7#);-}E=mxq?f@6H|1fB^|7|Bjox(dCYtXQb89)^hXl|DM>Ew+O5EM340dc>~T^ z0ua8}tKo#nP<&@};1e7DITE*L6#WkQAdb9yp4J58;O6=JT~Dr)Acrfm`#;OSzEDKL zZ>R?X^3T4!ZXxt1jjB3H>_KsNME~G~-pR zP(f#!-=J%mlVDZ<{3IEv!KC2!!m{A71?|8Q1~VpdM*U8u6PGB?uC9s0AE}oqp&M$F z27c7FGjx`MDD*>^>^pR-l0g*!kl~=RAfvX)jTLav5pZqCyZySE^iHa9fgT!B&CEiN zJ`geKuoR}j(?)uKoUlW7}uB%D*eub~T`LdXP=e+B)a>@XW)EK(wC|<+GDZOZu5^!#;z4%D#KY@0BlY9>28f-#q6e2 z1T~idAk;|ZB^4z>tHW~Ygpq1qIc_O}2K0RO64B-37)2*ss`r9#n=!j_mB<~HCWa19 z4F@RSH6@vnkB|fI7`kj5r3I4G99~zkC>UD`bXzb=7aVK6WvkyMxoGkMLU-ya0|$rn69mX0&7ZzDSQ&j#ji*qJAkg3pN(wr^D#+L&V3wVh~3i zgc86QqY)3H?`9IY28Y(b%qeJ?Y`N}tp7`B6wzXZ$4Y-c3*y*8^l|H#usOh|S#|cbI zspYZX8cvy~(-A!A-;A_^VCg!X<7MDmJD3es;=?i~ge zwt*2a-#M}Q<|e%ez}Jwd6y;dOuMKp8)^+nYp((|0YInICfYJza)n}v}AosYRR#9_R zGJ!79_|p0C@NjM%u=4BIiV&T^DN~RQuxSc_Q3SdS>Nr0?M@hrQ!=*3yOPV_z{UxcU zarDP0KlXx#v_UzK*$0d!ifAK1$ME3wwH$zsNC^MBy*Ilbi&Mql91@qqNbTDy#a3 z24l3w`E0e*MKMJnz_L$ckmK@9OPl@$-|={MTW&4z(C;(4QlFvx_H66hlnag?bO@>z zfg0MwTFWe0otY^SPWenhs)!M zn8ks@0xC1vq`#mO%2+8WB=6IklEeZ8h>=rDQ^B~-6~c++scB0n*R}XxVvk>GI0gHj z-Wod(Z5_zW8(J~hTKARu+gZs^@L=;B9@e9}Smz`@2KtX#Hw-Qwu)`n3JOgP_>Jbwn z=90o9(hAvrmL3Acg~{;Tly_R!B+|BJR4=R8eZNSQ)yF6UeJkY(EJu{^sSLnIb;_2o zBpNeA}-F(n?x}k&1Le+TBeBa?u+O3CD_YJP%1FomEP}jWCG3-=K;A6Mn7%4FUXJ&epPQqBsMEm8VBxhn zx+Kz_1NPtf!Rh`q3CzFvt^6x=V|LYePrNwSALslezelRIj?;GY*rrEqeL`f;VG85w!ClLEt0bl!tZFH^u&Jv!$JPz4b4{Xx;LT~t zfsnSB1%WQ6{3Z4bNA>)`qxA<_NV*iJp{-`u4Nh|eBVsc8?@_e6*{v$C*Sk;2GQ$T)wE4*O}q^# zld;*hPR~@iTDvObl!6}P_Jr{aSe}|{$cgvkIh{94a9}i; zfRj+iUXhe<%8u=YU+aUPaZ{%yspAGCBYf5{*D;Q@MUT-epZIthaT(HvFMi=sLIYn# zh!_@=#9N{LNK#8M%BV2g-S$!odLC<}aGjLLM-#2HEzx6^=l1EK!tw)`4Q*)*dFF?M zDT$YTXy0REZ5rL#gF7C7KP5S+#)iCmGuFZpSy8N*6k|<&u==-$qOmGKxY_+l!k!~k zjQk2X>pv>sy_Fcjv8nnAx8!+^JVuMyR;R%bu@We*4I>!|RT7!%#SBf@ow*@eFd}fh z9DKTvd>k%}#maMsuzWY|RFrtS*iPJ_XETnVO$@10_>jm%?Dv67gbKIw)cUNuspDn4 z<6=z3klVvFxSj9`n|G8?yTDYnMcmfON8KIP{pO>cHq5EiGCwVVAYtdivxTLdBA|7B_BO&wJa-IO*+;|z*1lg+NN)avh`r-?J^a|I ztH7be*|>IW%yKKR{8PLV-FAqvkZq>8r@qvvN%Lp=vRs(E?+-+{E}@qUD@jeqfdSKM zi`+4vl6G0%cs1%E?L(Gp{5F@8^*VtPm*gL1!I{jNgQabXcbd!Y&ewPj1=$a3np@PJ z`e-*=gL)J*Rm&6GAbMG*f~jOq+r=0OR+Zjs3jcp%z5%q$_y0zh-Im?|XAw##1njhD zbdhVz{=x|LpZO;4)%jG!xZ=tiLH1J)KeHq6X#=un@aHxD0iiKKm)6BwaAALMVC?!pE7p!QfuY}0QkD9_Q zz9ad(K|&oT>d=VC>NdCO?Ib zo=`_ee$wUiL?(Uy4uU0keRkppoc#;@IH`)Nf&Xuq{9V^eK!DPlP z-<<_*ErDVYWJ^gXUkcMv5Rec$FVHMtPB{wv;f*>GF4#NM$#NHT|<&O+Cbo+vNIV@&;Uo*-6Go`Qr1PaoS{7CvJ3JBrlu7uMm zqt24wrx(3y<`WfqY5xrsAesUU>Cbjhek1xN(tI38Ng9kQEGsyTj36!F+G*wPdMJirTe4ITLd&wpVzxEv55Wmp<*`I zV2+xD74#-qz`jRq^vM6w7vi9~ASf(!LMG)RzTCk#a0&kO3aF;ex24PbK9Gl-oFda2 zKCh+l{sQadTWf0)%*5g-Rlk3#Ewx$BzhW4kTp_<2nrfiX2(i( zz`C{gQ$g_By4}7&@V)||Zx94B($|kVxKx&6c*srf84|3heVbB9+~u^@FiPN8$7est zSs2q51*#BN|5O+qjeTKWvU<0;4DY-pWvZYAoKnpak4SlSfa>f~%E~EgOMcLOlkjk$ zw&ezxFT41Avfo@IB^2NMxxzP8>39kV$SF+;+!z&F#yQh&%|MI!yMz{v5&pc)G5waP z{i)qhpkO4Ss}hh5Xf{v0W0A#~P&&ri8b!Ug)TR(^1}SlDbd#NKi}}mFtw* zMeJ;2^wkoNPol;gIk_NRugetBz{_^Ya&nkO|b6c#8~Zf5LjTm~&GOr|ThB*6=O%FzFV zv-*0swjn?{ADc*9JAIDtXOza16H`~791->oktp)PDf-AIJRPXNMb8?MqMV z^xv_1>^-mr*nWuA%+VMf7Jl=Z`O@2z6qCzhOdQ7EZ}TJ_uq`6WUSF?pG<>th)f4xx z>I-iIZx+S3;LVs(T|ZjPbN>&3rbZUH4%jlvj;YP)>Nq&f(7 zQN3Da+Vv1Cj&Ef>dKu&!v-3&cP&HQ`3%q>B+Y56_`yI!)Xl#Z>sP>~(S z+B>hikx8Sr?1?`l{TANb`Kd(lk*v1?!3KTVu3h@AW~6R3_HXlRN=jZ$!_@I@AY)FI z|B63u<0KiRfosKoQK(1uRQaExwbOk+X~?3Wx45wC!((PX&}er&PRBqVF+ZJkJ~Ia*7JG*ULueYS%BRSi^pzwBU zzoDNAy9R*bqdEhzD5U&I8t-2REay@E8n_my8xd2{Il$XK85#_*44T4nXg=in1cDv#D6}TLdpxg)TK{6l0__t%kwf5&7J66 z8V|G8WRg@P8n0scvWpAJX28cy3QR5Anaua8D(f*GT#?STk&!66(z`5Kl8(RIi=x~k zZS?)}CA!2NVg)Lk>stOEoA#5gbNFm5d0_|4c2RGxCS56UmTkOAe#^N!|3oYk2HSeo z6Hdylmi@}9W9{ut{PFS6ac{cwR{^UlIyK3|Rk@aNXh#^5W9~vz%sW_#f%x z7sKxGDT)@|{TJSLtrvzXKlPXJQn}oy1L?*y{F~K4CZoK`34|ky%*BP>`IebUP(i~S>)z=EHIILhF%CsfW$+Y|46#GV@C!;Wieu}+-SsBH|Ch%N_S z@A7Dl-BQ0*?ziWL@yaT7sB5}~sQ~`6&}}XMy3qPqWD^vA$2h=H_wNeu4;!F8?o%jjX(=ZPT1K~#TYbq z$%n!zTF?hBp#wsK-mlQ$q(D{0Dk;+I8xl~{5ICK_Gx)0c!KoaND1`r-XGh0Psk(bb zrotzfNjicOYB!SYfj7S(ikU2kQj$1_m0u<%#UX9Y@m?9sl@iBJ2OEcBy|nHd95LB^ zlQsMy=;&?j6h7tvP7GQ!S}{`uNFDMAr+y@eznaL`xM}*L9QjMIF(%z^BnZUk1wShbILse(dtS? z2TIE;^4ua0PB*P6`#Sw!5|IK!=E7>AD?Cqi2~o;=vnTrRRZsK*W7fO6aut;hQt*iv z8JucV##C9JpPC>A1;g~?d0*3aODi(b4Drat#l*TANO&5{#GI4I&7x{(JKoh@-l9+c z^eo37#B*fEre+lHc>-DCSZ{A{F<}1|**QLre!HJu}rM3tN)VPgL zOx~-`WsdO^eNe5Y+-)T&59+y6A^?>`>U7dmRIS0eDCP+JN#+r;t5&)cO)2F#M+Yg; z$RBF`o-ZC#3k&_G_;f%(A1~&L8h2jOCAB@4OfSwmNfja~$4k!liK7>7Fr?GulzbHh z6wQR?HkGf|Hax5aK>T_DUEvQc0Q?ib=eMd0Uz)61W&2lCJrjCd=IWd48&-pg@DV>f zC{RV8^_4r`NFEb5YNIf#4R_@EZGr z-I~As6E()yy)sB)(O?{4;^9#A2G`j1J@nmLALK9-D{dLm6TpS4W~LANw;r0Ee<<8Y z9JwQ;h^EH!I`kxOPicLrQ*2(Fwc(lV+mD3MQr8=n0CU|)gFf+NUg@%@mgBIQSEX$s z5jaOi$BZ119kEXCQBznnQZgb6)$CY;oFsb|(K!=fK3#JJYPdXo?5M;_e|@FPWK_ZF zzF2Ruy{IqqVY>Mo$JNu7bR%e`Lw4!i)pF@GfNbpyWTXqCQS`^%R- zvqvFC)k1GsPdk&euGRO*()@8UN=bsqmWhDu$R;lDaq;{u=(-f9-iR7+`FX3N+*V-gayzNFifOnZ&Wgy^`N zOEI<^TdQ;uwQLksRT1bi8Rr!yj(i`v+tFIxr3L+QU;BD0f&14#@m@@e_t9p*>8NTn{v@re~^TA}(!6b;ZyQ}kd zn)I?Azs0wz{S1TM826Fio!#f-r=@4d4l&$~+K$g#qT0;GKb^!Q=&uGf500j0sYwQ| z(YVxZ*pT*zW}1V33I=OaH|ZO@>i%iQ#}4ls9M`?CeC`pNM(q#5N?4lR9(g(a@_@f& z3Muu247$5U&4Lm ze1eAWm#B5qtCF^jfIGb>75Ihju8RI{*${n55Ka%5>RC@)q!kS_a_O_8yd8yKAC1-= zlAj%ZdwaJ#e8m+haS(aEQDQJa{~_CM%#7$-cR)XV?Pd(?!s05!_sA!bZ+75MKYd<9 zjc^Y2x&qZ4i!=W3neQ)4wAO-WEDJ9FX7m@*4H<-Ak-Ir-IjLs~67D1H(!`gR^^0LH z+|7PZ(!8KK?WpzzJ*CJw`)O}eiImpa@30hn?dz6MHr(Hh01GrUK2r7#G`4in>922XQF`Zz%j$}OYvbX%| z_j|kwr?pW=Ip`z;>B=eo)ZA!-ti+Gxt!fT@;Bz3I{Ci$#L*>{MFE zW$mb)LO+UQ@k5D7jYLAP#I}k}Vc;Wfv%>$r+ZUomNpe5;e@XAoXt0IC@LbK@3jPY) zl*}fi;X{SBy9mNW;4}Ex%yO`dD1TH?0Th>BNUUbD-+FI z4T6p1dtD3UO@bT7Aj0H!;k>;1kT8m-A>49}P;-1l+|>&V`=V%8R}5+l()II0M--nP z`gY2H2f6@%RKO-9BodEa2SSTOg!_4t!dFqTtB|ApfKy-K}!&oO1N^wo7;GO zkM&Dd5r(wCQT0QqxU7l)B4RXy%ut@Kw`vk!q%h69an1%Hs2kORe#CU4(pA#IA;H~& z2n=+#uO|QCwhb}=3>8IL%cdt0%*6y^OCVz-<}M&7B&{OsfEzZ?dyhAO@6q>VK%1=a z$A&46=N{%Bt~V&`?|oBkK4Li(3Y6A^1JD)jP3V4>Qq+z7ovZ|6*2(-jcz;|mPZ!ap zlc2?|*wwR7MwgUu>TFk-*)1%tP=%++fXWhx6Pzbo3$Xb}^vatv?VmKkF8M62yvyh| zRtr0>?k}-psXp)?B|!O%ob!~wl5iKtU$evJvt3+3;uLttUNDD*1}HZa3<^wgGS5zE zq$4o0j-!^O)g62`Y7?*~d}wrLk<(@Blw^unq<5dP!whbj{zT>ZwljY3SujcuO;|1k zWNFguNWK5!TE8b3iNMQvnMrcs{T0AFI?C0ThHbilT^!}GDw`2#1hyogFxZOu4o9@p z{$(TM#O{if(pwqq`fc|zP~5R=yENs{m)(9wMsVl4*B1_4n&F`f%zdsRT>bVwZuipX z(_WDx7?m2Rc%1Yc6%*2LaFc0{rev>~7MdpKxW(a)sML^F4*Z)UU;6q7S2tPrx2D zZO&^0pje}xD(T;fpL&0L-z+UIT2do{pcm!OG!XfjR`U0;G;A?-etsjuq%TO@>N9$n zk5kIK*Z(+}l^NWILxYbXyL-DJ7j~>_S4+QOSeRTN8JjIjwHK&nvt5xF3@;jla|OC+ zQSJeJazj;_cXz*$;WwsPIFz#!>sN&RQ02oTk;a>CwPFKw=j9y%fTr|^4Os6#^f@Ld z#*}mw?i+M{Z;0LMG#(}-inW9*2ATf!ItuYkZ^z2m+uwEnM2c`t!$=Xbjc9ZPY$pP0 zK?MzdDCYf3rtCq1hX8wgT0EBMga!5NcA4oST1ibrOl;imoGqI1*J}P}>p3!|h0XY- zCDj4a9Wdmvyj4O65~dxsQ^(Tx{YQsoC4~zH$RV|X%V2t0lHhTn;U?P5_t!FAZH**& zLE%_JMxisJv}i zE4JU2|8^NGj_UK}%pVGnG{Aa}B(IF;YJg<4GCp`(4RQ<7pRu)eCW-4xl1rv5+c$i# zlfV`H4x3p>a2{Fk2K(&8cf`!C+7q+>D}xUtVJR_V|F8@?5mS#eLXq#lb|mQ6W&D}x zkGjcNrFs)cTl+r;pD=X>(m!93H*y}-gzRzL4ydYyW=*vocc^$^PoWQr_(8u}I&+`q zRaJ%V|FDj&loqr4fd8?u^q0>`otaFVlg#3qZB$f8fVF%AySCN4(G}4I{hv9lYM|bW zx$W6v&%;HPt=2ErW#C!a+4%AwH8x2pF7pVOL8!sefsL-G;p&vsYe;v1RUWfG_D~Yr zzuoQeaXtljnwjsT&)LauMqi@+Xddy6%cBC_7Tu)Xa$I(;A3?8$wA$hYm?>7WucyA4 z@u=%E87nLg%(vuk)T!r$ID5p`b!POE7Yi8S`@_Z6!2L2u9KNVCmQz7CG~1^^e$QwQ zCI;j1dlA5=ZV9Ahw`Zs5jIu5kqUA}X3*$igHk9FD*;JsC9%(sFj^KY)an+PJcgd_- zH2bCMavmg$CR$u|~3j8U*+ zb|wW%yfd@(PYaEc2_0mit`vruK17F-kh*4AKA9j^zc)7H{qI($40@5Xlz(Rk!2~oe zcrSQx@zlAyP?8KMV?PVm?zL}IYNjdesJw9}BePJb8IknIGueU?ZM6ORyzeI$ZvN)@ zkh+cTw7d)$lzJ#^Y{HtOOIt=?%~bnt8Go*t|GGLn9L!$n#WWA<^^2XUdXdNbb%+tu_nB7UP+bd_u%=QFoQ0WDwkB!)d!;EMGI zY?jN?<4Ve348E@TjLXG!KAy%GRLyWf;W|sB1bqJpXmo9bl*?T@KA&wUL2QKkmg1#a z?kb3)UVb%6$UH^^pZt2=(JQGM+TOYppDw#OxD_+BZw)ix%JeLjyZ9+?Z`PS5-fZUv!^{|WdA`|caIUx)y)k7GYpVlSI} z3`Ku=O=rAKfoJ(5a`hkJSX?DNCSS4<@!qGUrUpD#GN8LU({Xnfkalr#hzI-I zd29A$(@1tZSnYZL)kb-fKmM8%nV9kUR%3cqYYtyME$1c_En=Op(kmO9aSPqKa=bNS zm?0&Z-Tv+VD=k0DK0)ksj43TkYmkv6?!0*^bZ~IPM)Fak78t0dLTy2!Koih}IBsk| zFZRy1P=!E~T^io#^^A5zR;oV~f$Dj4H2l^d!yFr{NtYg`6_m7$L~C6~*n-Vgn#)@x zrsMb3+=hLeih4T3q71FDkyne(vmDi}ad_ir7phQkl^_Gx^_%5}=3vPgW+u%T(Tn3s zp7ly%$beWGYlC$ab=mKsoqyKy_+bFTvJt+Saij|a*se9@-E!b=8xp_M0 zQYtNHFhaQt78!+r|1Z5dG2;e`DsF8(u*+Vt|4uG3jwwf)WVpjb-+fa=$g#Nm6`IuWmQD6DeN!$ir&^ zeqlG5`(j56_4ypN&O!v~M$ST&CRLAsH-)Tx<@4h=e$kal{*uWh-wZSG!pON@$wfOQ zCgznKfsv9@XIFFjptYOOB>u)(G7T=&hBV2l^e>|5XfH5Rr|77S!W9T;S0ru_NU9;r z#XXY%tWdC<#{rb0Ki-ym)=2q-SgEfLf4O*AH3~{&c315$@6mK;mT#a^SimXKF|5P4 zh@l4JbRSENqbXv5aK1l(P&$^HVey>JZ-6}|8&f-=b}xV`<{LC05N3H0kGBv(YISW7 zBtsXtGhaV#-s|>=Erl*w5M}-gu1wcWH{kI6-{7N=RgSt7l%2D_v=(O9SrMSfn$gJ% zAGKjUWKi4@zn+sA=X|^E;r??7tuJ+)XCStmKcX5nNNeRK@T=yQ9uaQ4ZRI8-b*dat%PQRJTbTj$JkHblU+TPHBECk!bH9pu1J1?*@sTDZmRx24whz?f>r5=D|8oCYV~fnNVrz1*EeRHgh8nfc@Z~&t`gMp z-$xL#QLYC1>ys70ai|>n-7HOtUJ#>ok|FL&XZv%b`3o!?Ay8?#J*jGbSl-#m(X}^l zg_iYcDKn$ke4thCYK_}KpK!5N@dyWb_U1O^fC2w)YPzqt4CL4J}BFn zGMV|`fEM2Nff7bLTaVDBQ+&_zD$;-N-JZO;mK2l{gsglAKt)#S{nG38U?deX1DL)y z)d7f<7eRAEE5+>`^^*NYfV=`?HereNlL_TQzphX;|Hh#*F5qV>ebK64Bhev-La~d7 z9?&N+%9=KND6ZF8HkEYge1vIheW$#UJ(ebhR3fa_t&oans3tA!h2cWJ1uw6+KteCo z0FRRf;f9|8<^W(GOfLL7$V1O~oY&3KKg^G6(PwWqs686fG@6+>i)NNIWnKpr%W)4I}$&6Ap5SZNO`sUFMf$%zu}Oo z4T*V(#zQFJ)5=wS5mD5U)?1bZdL=4D2AxryVL6x+zNf#)R#{#KZ02`7{6kLk+K9)f z$?U}R-8X282+S^nF#|vb8IjrO)>I3bU3Oyq>btx%-Dnb??wJyr1XC2Bi-iS=@@)&v zTXrx6B%Au~M{Crm=m4;rOkEd*@9nOZLoN!UJ@|n!2Pqb_C*T(uqLk{Z^%);b?9i0D zjkUJJceuUrnZ4mdq5y0022JtPxkIsoFX$>~!l9|Y`9v|O%dnvKZMwW) z)Z9VWM}V>-@~bgmMabg2%EeF+e~;4v1s|@@+1F!#jO9GYgvD7f?LFiw>T$`bW2WW` zkK70%M=w~O?SlKSb%tu=~}|xL{HOqkvC(l?Lz53TB2I>0=R24I!y3!z~A)AC(O4y*hWTi^*MSMqe_vleHEXA zL~U+zg6#x;-yL`UY@-Vd#?MTf!-NsA9u#VF(^g+zNB9G@)sA?xiL8`ETF9~{Usn`0 z1PXj;_$6RjD|H6c$-O%u2EeUtjpXO$NIMIEudT_G+-BXWT`vu zCJ3bVUmBxGvBNe#yNcDLJ;Yz_&^TCyK7#~Xmv`;Oqq9yIi5=t(=p)6EHjaJ%zV8>W zX^(IXh`tTXQQP4u?gN zlZWK7TC6_4LP-@hYhA%p?C`_`i+~@Ikv#0pYCqz`03*>9t$+~&#-%z~==$E$tJx!% zPwEd8Q#5$fNtJHYTOC5AgFxDy@-qwQVQHu*JDbM%i3#~Vi*tN)QLAU}{p9#1o6^T+ z5wQFdGd<((2hJT~QtA0~{sA7O@K(I|%y~G8u{-M9u%=&$0ti1qd64bqgRxKJ>w zZpjJ1193GiuzUQ|l1YHo!RhU@9D#RB?qqgIZ>CenAZToUY4mZctwqSr#?%r%a?P{- z`|e8BLcRiwYuYyR7r5F((08Y7Oe3x7z|E|cM6B_$eaNt~;OR?BmUu$v=rv`Iw;49g^Zy#lS=fbHxJ&Y12U=w2PP&^WX$2GVI z0ZWW?>Gms*B)e2K3A?|b(Q5C~hZYkN@|&SRkiPlqiK_0@zAs$y+)N=RLbG}mlzUV( zSQJ{DOJdZY(YYgg!fJKT96wMo^EEUzvC#ToII>4M^L1!XCJn4SegjeVk%^}&D}~(( zJa9jWE1?pb~R%`IZpo#rT6RD4_U`Lj`ef*7g>KO*F8AcQ|h?G%Hk>QAh;$9rl{uC$v3ty%Ra zciM^{_~w(?0rPe1Of{URY|R!8tsz$IQ#AX1bQ5W(KgetsZiSQZ zgH*o}&F}FbU-~shfylC8`lPN)JU;Ib-ti()=UAS_$BRW+(>F~vP$SW)Yoe#?mzH%7 zAL8ucay$>U62X^wc{lSXzsmJE+{H0k!wzDhzPb2T!wNL<{))bRDDJZZuo>ACci@Tu zqOA?z@_hs?x97^Ck6B+R^6J64y;GAf=yp=z>NoiW9{M4UamwD>(CfYW5<6FgFKqReHfq} zgmV?glR0Nz6-y_>(0w4fJTQdUZHYgM&KJas-d1sFTYEu?vg#!xE6HxJ^^*QbJD|4yn1iD2g1s+uS$BDI&kaumXc!YC$wb>SUtw{TA@EFHO>j|-umq_(0rLOS5qzI zbr27j0yW*_NTF-+u3knaVF2Eqt;&bWP8;NBodgE4t-jZg_fSw|tw7%?j0x*Tn8ycp zB+W{D*1wy>brQ0zEisNjsUzV>x4zodH!{En1D9uJ&;}IYT5?@_%DGO}Tsw3kP|wzL z2RPJR^X)HbtI&+w9Ro%*>l6fvrN|Y-3M0I+7AQ6Fz)r=)_GfBJ3iTr;4QgtpxBXC`Omo=^dK*jw^$@=``8`M4sPAA(kD zd713T5TU<90aTH=jA_Jlq}4o(0x5fn^C+bwAWvfmFN9!-&N2w|C)Y^6$v3mOK=Z}d z1`qFyX@*!nKn761Y5SOi z^RZ}aXlP(1IAZ?*t}T7;>+UEztw8}w>1x{70w-BMZh5fZxOywTAE6ZaP(f75o0BpU zo<64i!on=B9pV!{SS|U9ir*(vrvzUjzoBjqN%0v{mSl~7t%)>^|h zK>1${vI^j&LIlQ9BKLW9sVD+wewMJHrSCM@y{4jSm7dgp*xbg{|ELw@5_Ei9bWJ@l zCxRI&$iDxk#jqH%0C+ABnC-Mc5OdRIoEcLUsXoi;}{@m zRFc~cHg(W2VRBi-o5;iOYt_2>Gi1of=i@0@d(lpFtU)1jsPaKdgsN)$=6u_tHE3o? zqvNidYUk06C23%GHvBDIo@k{)$f=IB3Ze1&sLl6=cXx~O@N(@(d~EzLecy|2BPjk1 zB#F;mY+O0b{hmm?y%JP}y*u}(TR_=?KKNHlM?h!%K1s5un#A3`?e)yq)!2#6hVdU( ze-uggx3ANj90*r#-uIXX@d$5tiH{_Opq;s;qd5?m2f$uMXbv)DI^KyO@V*|99Jied zA~^x>()eF~>C-wA2p|GGa>Pp^W{3DI?SccFpdK&!;qn1*@zR)C^7X$%?)uKgty4U8BQ+#- zvcZ00<5)oU;2~QsKbgz1gEy996z2EA7+!-*RdM3$=dTk2HV!6cmWRocd2(24SkhuE z?o|~qwz03Sn{RMnF!9GC9zcUuDf93!Qx8|Lc7p1=qDdaIBg?VGNQ|QjW(_%}z%D_{ zeKB4z;PR4ZMwi)`QQfP%eech|)?~3Y@9xgShi@0=HUly>J>)rkJ1-eeZ5m{G?l#$B ziBnNWJj#XONoD@b3Hocc<~5kIe`qh&487tq9Asy0ktn`O4P(}#UYN7uY+zd+9@3d< zfr&Nsw&eAYwel-TFNhY+?;-X_buCT%Zlr6w?33uK=NT30N=LE^aK|Kuij~9WC7lBc z!B#sEsg{=3YpV7q@?ZhP2aw67ye?@vfu(Nil(cTd^*v5)gL1rpfWg=In1t0mccXpw zs@%KXf@1bNvXI|x0mN=t#W7;traS?CO3i{i?g+Z-q^~BoT^bcHCiSlUi$17(SBa0s z#zjs=kYpuYJcr)0>5O-4i`SCl8bgk^UdZFwfVK4bf=EIp3);BtD?GmpYUjS?L9)Pmza^CfBOh_39g=u^Y=ihvZH{wg zrC9YGA?5{!!;V~nE;)|AB5vnhC}3Y6dtvAEcC$Yr)(3pO zRmMAGW1po`oX%BkpT|xkhTJM`9BSM-{J$If3WdNlMc>RU;Owi0YmP7^{~NsKt*3FBwwRz)#p71!3_f|A|cgy|_s9Vt7( z(>wg)=iK25<=CJ%yM^fP2)#EE8b`8zMfDkrjrVL%1d@MNfjaQrlN&>^v&Q+&R>3;4 zhQ+$Xp09}}Nmj**h{Y9l@eXVtdx}KIrl=^v>Dqdbv;Q4J0J>a_F%!8xL^R!;GA2q@ zHVE_r2FoGhkm7($Q%V6jiLFbq2`b%zC$*cTBD|#h}!2*FFAf@Fv&5U z*7Lw>Zcehr`xQHOVQGVkr4xOzFB@bZ0z0%jH=0L>%JM(#kYVC3!&3Ka4M&!uHD305 zdPSOeH`W8S%+?H-t;7|J4fEzkvh5JPG>?;Vm^1L4qIg%;2G~pr(!6|a`NDPE22pEY zBPh0ACSi^?#dGH`uzgB&KZN#J6ZRu7?KsHrUgX|LPuA?67vZS#)<=Eg?`q&;@QHj-Yp{9rH*POo%kw(i0T<1Lg2iAAT89w zoX(Q4#3anmF&Wd9eMAF@*@F@S6?5+aE_=U*^-#|Efx_ADul5yF>k*Mw6Gbs0C|-h8 z4|KqFM+qCkW^ng+j;@`lO;rMZph0U}4({87pPEVIC3;1 zSkt!RUaNy^U2Mf?$>Cig#UPIE?P$YNtGpQsNTC9luEP~-B1tlY{v4x;d_TkD zbEP-MJfpb9Y)fh4)#oFR4=VzR3{j;C9R5f*@Qz1cc+S1*t$YA}zykxI)T`afBRl{N zoH^*l^7p6_n_%UlS)9`3+mAs~cDCQ>St-8V{l=Nu+T#Ey0XYYn=>06~ysD(x%7~!u zAnG{GQqojGne~NIxE7-k`i3z!6;Hv0J*n?|Cpo%F*MCJNC+Je2Y;07F3*2kd((w}vxH+ZxHy9v(_apC0 zbH~V|v4c7|;F+I~hVAR^2KK9*^I6c~4e)h(Xw0-(toVzhmo}Y@b&I%1BL^?YYn2)$ z&oz9v1aktz#MbSuoV;jjwFwdw?v2u4!3fh=jb!Mu;!O+$tO@J|Vhkz~(D~GKxNa7h zIqj7n&Z=I#wieUpyF2H^Cv*;f_fsVWWNV|!?Wm48$|{{m=Ux;tCJ z-|6bb#*g&*7SiE?Zb2EiL1;T@LZ$XjC|UGBr9J*$i~w_<>mcR-#no9qG#U3@cpFGJ zN(-aArE5wz0t!gO2ubONAt)%_9nwgTZUm$|MwfJVjC^_C_~rd8?(;pL>%I;MT#7ok zelsTx$@Y5%SfN&wJX&t;lE9#|*YbNu{1H;5{afNUIx3n`D;4IKPPSKR7`8$nz4D9& z0RATGoTX1>RD^TZx0vyzsq95fa+g|S+qYkueoxq0!xMoEkx>A7fNyQJ!*AYr`%n7P zO8Af-llH3j(R6F`pWlRc&r>I$Sk7P>W%7-dWByS-)KN?vZAYy{v)iXRKwtFwv+cmR z)GG0|jm40~)5PtoAQO3GWo1V#bTblh>V*G21Tb(c%@O_uSMSRgU$d{sArKvryyJUL z{wRFHjk9G3Hs1NqY5{m(ICS?OzB@Vy-BHFy9h~<@F()&#|A~(w>O(pBHKC-@Zg>)w ziU08ja#<4XR!bZm{L)8Xkp2{ar@6e|bAGY6ValPu9z*2?yEnxT5 znSsL8mNV=|K%q?F3bjv~Br*YO)VL*7;3V3IT;^=pa?Lp4A$>oDL(SvNU*LzIG+!yU zefA3txsG~l8YgUHgAZECE&c+eA0)a6bnIDOkH~Xh-LIZ+YY{kKw2&W|*~M+_^5;*H z#6?NA;Krz24#ec0TAcL<+=urZm1*1MHCnMnCVTjmUX`x+tPi92r)gU!eqA&$q<$_j z1t=g_cgKrX!{DyYTCOrXz7R?v$Nv7-tQCWEMzhO7?$4nG_8ucIg&DUOGS`H2gBHV6gos{n0A_8j;12a&C`=?wUn<<{tsiXvBs=zU8feM z%jh&W4LorX|3w1>zM*t1`m<(A`If50aFIXfEF_B&a}iyI=?iC#xm0=3=Bq33a>FNf zOq;)QK4J-5^$c2d;Dng@;xa6=v7fIWlpP(7hcdt^uPi^3VRjdSV+^?^FMfP%pPpVQ z$%$%xV6-jg1=yC5Twi;{ZjZ{L)ChX5rdM6io-B{g^|U7OkTehdp|f>PdVr_4zfTFH zakg(l*TZE@Zc+IbiTVToPeAVnFJa8_HwpeqsC)QZTMR2(hdt^B7<_sMvBWgj4#arf$A+9gOLUi|uIdAS0=BzDdc#royW)vq!Ztzu4H z;HQ4KPe@?v%evN)`3sS@r0!jT)sn~e{XFbNi`56cIZM#DpV^i?jeop6HU=YtF-oxf zZ*sF3iz7z>minK7yX2!5BSy6CfBh7*ks`5kA1l3RaEPzbcRQ>;offXUl$L_|8vkPw{PYSxpv0GwC%|?+r=cBzqsn?VDj`X|Yzy)__Lt zejs5in)G$xBRy;GuB?%nemNnHWG{c5)iQBg&I)dpg`;S{?`Xw*r9>QqD%G9cr02-! z{ldd^qe9_)l{ryN!}7QecbCpw5cJCzu!7FvMtJKWmMUg@k;B*ckKap@jUwjrWx~2+ zr3zCf-HD2rbVqOhh?W-;tZaMrK2ul|6eH0C& zt3Fy)nlGGxpY^&#O6(6lJ8j8IHAtWDt+6XsfAHLzyyz)ZrYlH+NCeFQ!Gi`PlBSzVD4DJP$eg7$wA z(Ac!(L$j>#F!ioqlx&J?-Riwh7)V1pj#dreq^hiox<8!{9lE7ntXdg6shx_icHOxf z&ILGN=M@at}?8U4i* zC+)dphyXr`!=gV@2%q#RIs`rBKb2Q|8T~57&8WmZCp*&}vz>TpI?Zt28RIkfj-xbG z6q|fnY1f{3d;2{vf@3SA+V{5>9M|{7NVpNI$cu*|hVxZ!0z-LeGoTpdOUmdYBA(Yo zl?W8GR90(nHb5Dc`)-V9u@Q`;=J`{(`l0ZR=tlO@GT0amWo*!BmdJtbiv6(gO}^Ci)Zj}+R8 z;6y7^B>@A^`jknZKj(n40tRL%g&q62IijdTn?0LL*8rfrnugl6$UQ$~X~`Z|;P|^F z&KF>SiaI>t4c)}BwB#dPjVB1t)3ScZ6)V^NIDog^jDu}NE}U{$W}twz`;D{X z4S$bsGWmfEPBN;}5RSlD6k8lxKPdJ1rx1UE;0of}6hz3<>MQYT{y}dwq@6fi9z2+i z%8L@S)=mCJ3j|x z#TIR~e_nl+sjYdTF|78%j2;_ep(v&p`;m@`*J@bz_Eaq`^CV($D)sz;OGuSc3l~6Ha=YS z-}Zh*Z|9?L*?B`%ZO=SpBBE55@diitntU?DR+rxY)mK_%xs~>OWlfuG|Ul?)|0*Nd3gZ<7c7)jl2O@<>JiU=+^C7kVUusV5&SJ znZ@FhrHtj(`=a_(q;7^`o`Ic>{q>V9^zV1ck~+lqdObdsIdFvz!Jt52g*g>N>Hc2) z<{W!LrBtjGq~|-i*{S zwSmdiW@~d{+0pfT}maclgVI9UG;#$Gs8&Mr)>>yCaDPZ>}*x zd7P1`<^2dPA=CTG$w^T0#1KWZLYx2nPa_rietQPviNh=0#+(6*M5k}F(jdn6N)AO2 zcc2ly=^O^xH*Pmvfwvrc&G>j~4TAamS8?x+s&S$@LdAurC=}uPZ9i zJ9Rp1DltAOqkQL5P$j>Ln4C%kTjlL&2O%<5AWWq8&zL8k#4_ z$#?6$`tPN-b`D5QzIn@Gp}pp(xf#d$PBsmR0WE6Vw-Y8KG~iYRRV<|F(rc z!bQ}5YslFpxT`1)pKFn7lu;h;GMXk^UTCxHsRxRv5HU_<)6^BDfg!Bw9gNtOP4(M$ zA29&BNr!3G(T)fq^Rf?j@jXOSyaQnc`1?(yUknoqIC?LUF1M#UP7Hcibk&^=7#P5# z0X0|0iqmE_dh1~=e~L;zTWqj(t8@Xtdmr`DR{C0Zp_;(_mbO}hvaFS$$Ctfvm)ZHQ zC!%@oCz#Ngi@(+>pQbPVP-2o||FcU;-49>+Wnbhp((c%@PKyV^kgjRO_ru}~*ay~# zKB4oF&FnfTZdocj(@M3`9lr@DBB($eKRZL!ptrbCq$IfQd$+HKdNV|Qg(^oQNdQ>! zybkqeH{YW;bAIf;r6u;xZif~)j->M+$KgVj^*CHj0_<06Sn1e(3P<@4P`SX8OZu3~ zGJUsvd*NL;9Erm)*LCzVmuS2B<6~-}+YZapFpoFr%cb49?x`L+NA6c2&%CGa|A_`C zdr>wf*|^&8uk;XOG7?)DKK5+)#2d9a8bC9-xIU_tdYz?Jv^iwlnyp#S*$(jN@zcJ% z(!RwnzWUt;?i#W;$FuPhQ(7u0k=I`^;I8fwr7B+Yc{<2?SiZh`Z=wRN9D3^mBKPbW z7ZK+ZhdT6+$vR_bRFUK`i(#XAk@I>Y?~%MoX<=&dudCUgYz=RQXN)7xdgS#d`(JK! zIV?5kEl`#~xol;<_#|bn82MB&1ti~n3^oB;pv)y#tH<}rLdhJ7AL`&^eUWO5Wm8!= zjJAZLpEFe3QD2bRcK<$o7f*|x5mLkGXI0@UTg>yAL}L#dxN6fj8JJuPtF>?D*xkBK zdl6wRZEWYy(LvjOS_IDZi^(0)@>&w5UgNCB^kS{Fi6%a5b(cvL)w1y86HgjK2wgRw zi+DIJrW`!`>Z`sR{alpvzPA?1btElcHZp9OzCSCf`pDp9wZD^reBBm4La#L2URzRX z;vYNO>bpBpnV&09iatJKw1Y~NbSOI5)3WYoYj71>%B1{<_fFrc$_n^$D?KEEyHz`p zVUC`y%VxkV(Xifr&DR!Wq222{<#>X7yF1H^gC*(+3+h(raGatW2cV z0!uuH{$Qq>x+arXXY&O~-NvZ9EXL99qM*#iuMH7;C^S|5>Q(>zB3tv1%*t11Irv8H zNT0fj%vPbcla)28>g^%_QR=|x)b=f+WMvbsz(&+9qMJgx!1h|`9L>`yjR(dV4GzFW zt}l5}<=^>?0jT|u=%#|yx%%-_!J~a}_zU66!SDBqlwx{V+@SkF&JPmCH(|!cy1EMm zw;L11kQBIrH%%pd#u8|ePUmH7wQya6fSI}Tw!0oVXU{ud0+Jgo6wFK-azT^b*&ha?ub$>=-vs(O;>gC z*%()Mu5w}&x_;%>WNIK3qc!4<{CDl|C^G~4M8Kf*pyK~o)Ma(+QjC7$*z>udbgPd@ zAEqC>F&qUw9xNCy9UBQo*qkhs0(}!M0oH(l`Z_{)g+@4e5*z!*A_bsqcslxna}DzP zAOvX1jUor5fMMw=jW&;P4fdd&+?T2fMOzx1kby7>^Gk6E%%_5m+B%>y|9U2RQX*;d zshF_hV;O-%PJ%Lql=-HaQuwP}X)nmkwR{-B6Tg-OzvKUGSqwN)7!`j5tz^$uAc^9j zWOSFj+t4K}(w}cYi+nZQoL~JmQ`YriFKK}NgEQ;cmVDr8e!t8caVlpKG81cqk0?%U z5+3DsAQSwTO9!Qi#ay-4w$L77N|p@g5!kS>iT6yo(vG+vzmgANxDK@w{Hngj399b; zM}%(y9yZ*M4FroRx^gZ-7%DN-OjC&Hh~_ZGT0d}J;@X$jCk$87c6M970^h-%fCPuw zvpkQkq{44Es%ZHr4u1K)X{|;x?p4cDU$R@F+vGKaOfMr!4 zAEj^EmB%(M;Hs3vFi2=`)UkXChCNzI-sZV$cB^wY3Cs@GWP^A?zE0?6J>BH?)Wk9+ z5P-Coo7`ObmW)2n$LgrZeam=BkF_XW#05xcu_dqEN=r-p-N%n|AWxU?B%%nspf( z04P*uPK%86awx{v^(T&OH(g=;tj14_Uq4PDTok=AZquHu^*{ncR%~e*Ua;mxVUY#j z&CUAXj$*nx8rMh#J=-4jX7uC_%yWCrdBfk~hH`bXSAIg3MmHTA8n~PHVjDy48_AhLr4|hpzvHe3Ku?>((L?K13X{0mK5MVsSfZc4pkHLo}K`({9_NFRvVf#WWzWk}|*zXw55A8P9 zw*QI$#6U}Ir2Ydfe@6o6?O+7S>+vz%$MaW|v@R zV^_fE#Ym&<1ZZ`+n)?UqS ziNX1IU?PX|QjfkjM3PDcLz)&HYFUzLM>=Z!JmZaY9j4twt+c1GBGG`ZVnuUGX*&@8nu_~6B03rqRB zI<6ZeYUX7UCBiu^B+sN3c7uk4%BAt*LM}r^f?wMV4sMM}lC8@le96gG{fmd>n^K2M z!@g)3VUr!ZNIn?d`rpfJ=)<*Tc|o%KVuY>2IkuZ~yR5$mcwV zzWHwL06K6w)8UU^i2V^LJcu`LoHB(7M*O%H!zf2kVp!V_(*?&`%^>g(iJ)r+!jDIK z_Er9GuAm}#p6ZX%<-0H!!}!mWAD=%Z%ieeMwflr;VT6;t=sI@5Zgn zEt&^v?qE%@Sg?<{_OF|0Aj3BQXX52Y3O37N9K<9z7FTwu#lhR|91}v#flvb_?fM?@ zp7CTd_jb)_f;6*|i!aa^_u={5?=?27K5ds~%^!K8D%8HFwv+uo@0 zA{0L&lQr9}6lFT|2TADx?5v3u@6}>x;^#PvJ{vw>Wt)7%cnHZDr}vCJI^`ET!`DAM zzCWEEe3N+qVO8UMHQPm_pESW~%d=4ccq1u?*bW+~Hwug9)d45Ce?VxqC;V+$SsoJ| zFp$w{lJz#Y@_Mo^nka)m-u5n!+}e&O{aAv?by# zuHk`)9v&|US@539kEXUmvvxxSKmqN|*?v;UGVEH}pjzXbmXzGEk(axlnpvaP+HFmB?cB7C;3*%+Jj0{Vg z-`($F<4sjiH4v1eoA7wn__zH`su_jSZiKT*Vg~tI(5RV>8O;^m4`7+iMvgaN2!+vhKA!f-P}h11v$ z2~%+H7f3NM0JS6m;jj-dte}nu246Slh1Rj@qYx{Tr)fj!i$QLq_*ksdZagH7ewGlI05d5@;?R@+n)-OM^^SJ|lCydR( z^Q(^T02v8B9t-?sP2cElAVbZ&}T?URU2Nk_{ufi zFHqnPJarvLoIO;YNng@yiLJ{9pA>=Qme8pg+)4|gx|l2M@kxBS+BR*!0Dr)YGCY$!z((B zB=+@cu{#ipeHiVM;SVt5BrHh3Ui&8}iqCR^H)Dr`0MQFfg?a+4k$08j%PV^7PydX4 zGdaZCnZ)Ojc=bQ$@6Tq8Be!4UTZ_85i*#7&XNlY~^Hm13iC! z$y=bS-Q`^gjMq*ygEqc#?}>f{x>y9ZDsclXlyDA1I|x#CAN?nJ=TzuSD^{ACDy1~Z zi?DdMbkZr^SU`IR%vm3=HV0vg@<7&Ibkz2h1FBV2aK0^sGME=kA@T||xiUh5xw<21 z(|J7KSate~R9)_(TJu}8m@VxkO$SKncwpKVC3=k>W*l@78UIT%v@#6|Iun%i4IbiK zFLr-S4E?u){HN{r3~$psu4ldSGh}V1D13>i_j_#mKNo;Jv($i*ti1<9;|gCpe%j=I z+DV9Mq3&Bz{wU=DOQSIYcSUt;do)XZInEfUF*xB##43%@s*6^*?dX}uUljBQkTdG+ zJ>uUM|2Y_K7$5-$oQH`pdhofD(0=0(r@9#}j1KaGFi1up*spH44y*xJfp6^kJn7MD z#-oUwVQ$`m*{2zQ&BMAPW!471M!)UaW@T55+PQps47g7#-){+gd<<*9Iq%3o>Dsng zY3=aPGZ?{KwNlS0?^bh}9QD7dUb_yj^5Nq2_^xFCKJ^sh&NG6l+*1fI2^&ti-#pzK zoFU9Yzeaama^zBR4^5j+SOAXu4xYaq0rv*}>uZeIW#`jQlVwY@z4>;yn{B6@E#3~X zTt?pzNm5yT`#meGj~z-Mnu|G>%BRekV=T|t9|_?)e^SC@rQfMXTIn34lw?UpKnIpD zR<2_lqME2rd|7zN0ZNFih&bj^4i2~SiSiL4pSY(6-`y=T?Ch*Mc-oQ$U+OWERc5ze zi}~y=W$gJnVZ$Gtl`>z2uize0p5@XY+nq6qydE~cAK&Wm3vL=3ZxZiWbOV^Zp6#M z7TBw9o4zl$8*8ZVWBAoMXgsSqhJw&#PlYN(rhIfBHBeg)Wc*qPc_MI<1O!48dpLC@ zdtjMt57&Y`NvggI?fofbqLib)%*k?TgdotTXi0=6yozu~fqdU&|FzVX;>wI<_mFOq z;8w4Xq-Ofi&@Y(B=!`>NyqBEGPmz~Dx@g$H4f+pNBP9E9?Ddl*&x`rY2%9Kv((FiX zAATK^V?(9HL{7&w`G$uL&coyD6b^g8r2PLNrVzsC`l00_}8|Hw14*7tRt8Nr;Om>Lr>#*oe`u%}|M` zSg(HS*+{UoN#C+ILN)Oxhc`KID1LA(pTh`^7AQ&;n}hOp?7UPqoYHvbUP;o;k#CZe zA$EvqAH$wMs?kAtpW0Rxu2yYZ9W_>0OP_emapqG}3VO6fkN&TB?yB;r z3N6Z{Gq_{z;IB~CkVAX%(d8}y1?J5(4=8D$(+2(P#bha=W%yaN=)8mBLuBSmy%3U9 zZ+qm1e9jx0H?uo!)1B+a_9StI+gvAL8LITWj91lgI$KA&_k>bVrsP2Z$Fr1ygnpv@ zB>j3(_FY4lKd#iYjcLsnGkzK4d98@2dlaOe5H`$tB!<6N(1T>h8?L}@l$SKRqqDzI zhHT@Muu|)*JVDz2Phs=lk)^#ImAYQaz{Ojw@BV>Nxc#jD6X=QHT~8Uk6mg!!9=$hq&#zJ<8`8?k3fX_=s=Acm#i#G-P;k%zYRw>^xJ^AwSdvuDro)}pi;PXWlrJdR+@z1HA1^Bmk# zijy^{A#n`Suc;e$7q|)3@tI!*Sj$$IEw>7hT%%Olzc-#_HbZ+BZf4?m)S9~V1mm)e zVX~gU`z-Q%sl~C#K1&PatS$5{S1?_iXIf}6@8JQ>a+L({u09}W$8ct|kKoo`lsJSn zg4`WUX%>W=8>TK>cAzx3?4*dQh+Z6P(j{wp>E&D*-4%2tfHW+>Lp~1!WHO(3Og^er z&{?3u)VUQ}G7YC#l$QIZg0tEklXEDZbTCtEx-jPw5fu*5BT-5#eO5)U%rPza;D?%3 zGl{<90e6{QbD_#XG`4@Syv|@afcUI0MB3Q1wJobbwyU6c?e>!MKUqE6C;bKaw;;NaqfH%@35t?`? zi`YD`UhA#|zB7XObf9R$s2h580b2GP*Y!^M3wT^=2Y!wN2NQyXmk^LWq@Yx>&ZZS* zZ#U4|`8^Wgk7W zpDT}x^1-^A&-Re%m&LksIebm&+c{EF$bW^qSjO3Ql$E6{HzT(Iji0HK{{Ivp>|lmy z34$|!!aV@?6&4JQ4Cl-5V-%qMO@(o@sOwA2eSl5&w+S0q7EpT%9ZU-whzOr-gRw&Y z3@Q;%G`|-t;GNfCN>s3xTr(srp*8O>-JUtdJTOWsmm_-dvs(U9UXj)ub;ta;Cw%w_ zCwk&zQ&IZREnnR;A#P5jnf;!@a(z_(a~R66C{Aj9VdVJHH=m4Flm_U^2uhRZ?p|lW zZ{NxGTb(Bxm?#FhMP;Uh3*>0}R}hTXf-n$X!j6yT#GrIzaVX`rH^lPcd|T>nR2KI9 z5cD;(kF*n85@8=TMx8~q1W?ixklJNrSrV&H=~vi=TU&}2jBflIO0VX+d7UDBM@LcT zxFF(-{ZzU!kUD}vH)s{8=+=0L+EN$=Hq?_>s;4ahC_~_^SWAC;l|ZdjfV`nHeIy4s z%~=uVV&3DyzQTk>dQy{L8hY6O(nQgrSfy??J&g~C?kYT{6wCj_x%)Q}=e+aA$@m&^ z!Z%(cyP&q{T%y2$oAyU;3o^fndl$bo^~VkM3FO{&mV{P-m_As~K)51rFs#RRztbwq zkI(n?8#bx9AAuN59SrYVueQS1Q93?5p&e;7%eqdJ?rk&y8q@tDoE!O=Bd@UP5g5^e z>bEkt!atUDw8-__01P6)#t?*@Y|Z;!fM4fFMPY*p^z7`W$F9!}++{rst9u%G^?SDY z^e+A^(#85h4J@kpn63^7NuiUD%cy;=ujY=1N-?ur$=}!Vg7-ZEa4!YKV8;E*4`O8t zaK?^E0TQ~$Z9Q!RUes{PcfDcKIfI3gBsORlv|ai$Gfo3HVJsVpPNVK=Su@@wOAgw|yv!g*Ac}V_ zAe!@5-aSig{+N>AR=l1Yd$yVvL|2)WyMUZU1qK6bEnW2`{(WbIaSKH|0eB zs2$1l0~of$|BmZ-vEHTK<5O{zlsGx5>y7%;cSKKslnCS#!H8|Gk5Ija-7Q`7E!)}f zRg&#$@qVdEfrpLb^bggI=SnqCs!v-{4o1z>x2I!Z|C+$#+`Wpy*!_{yx#4K_*9Xm&K6pq2xey-&O$<2~!u0SNlR%s-Mx@ zZB^|@vpIY02bPl>Nl)Qds;K8nb{lW0e#5^m%-72-Uiw529}0cc`PjRXsh)&L_%n=v zJ~w5~srWDURJMgExKlDf)HgEzq^xhYW+drHP4zDWm&OY}+n?H$^6ygmeOcaK!#M9w ziz<#lzRRl(UnYDxb&2TSYUj-yKHY$fAlx^sBGVCrBjKr_>3I3vxIX!ILweYYW&|v9mYY5ysF4#tG>K~|J;IHFozgVjtz|;JbE745|0iPgk&OHGi{(|oB&s?9dbgxX;5#PAE(NkaAGkMQ_ zMar3oR_a2TzRZJYV3xFp0(5Ef$zgatD{@dPN(MmsaNbaOfdt4tXLRiP zwdLw32w;C4FxwG@7v-lP+~l)d{4&ma2IFTjPS}}*HR`xml+AWcl{G2PK;)ds96){d z2JcNK+#{Ych7)BLtWL>DX$=X+g_E9iZ!K6t(*q~Aa7|GZ=Mf(Db*9cwgl@X+FjNRO z@+E}baxozKlpLm!z zGjEd8v$y4El^)cc+W{TPI7F)aT$cXC!OiK$jT$q7EqIw@l3?Uy_&&wnG6ox-3|$;^ zbK3+0k8-zatH>_vzWRqiCSa_)(04xQ?9DE}71|CErtST8Y3Zl+ zbS60@zXFP7;K@l5C-FwoE}}d%{pAa6ncO5iDReFXFc9kMxAM3#;|DdQmApcG$1*AV zk#Fqkg){h-JTgX!al-t4%=Jf_sZsphRcN)XjT9hcWG{@DK*GjuhjBp~!?s-ze`%Y3 z@M>KMCayrZ{if9M0Qq7Ar{k?)C`#YlT(y6@LwbKg0BR`8U3>>oEpCgZ`-$<>{!^L5 zH;z5qb|}#jZcE&s-Y2Tk4NBOKk;yDZKNTsbDKra#c)b^2sBW^+u+Pux*t2I1CYhaf3fPNuw>Tcy16Ro2Wl6S9 z-HnnwUZ_9$&UP1O`BMR%SlTsSUQG7YbTk<#OMci0==L%{KWOCdrTT5;l}k6Y6c$iG zf1st&dF0#uaPaKfKPkA|Vok~DA^U>1Gj&)v8jThBEFAC!Nu9Ku&Zj?$ic=Izr0K-0 z!@pg)u%Uk}uyThuV7wsQ+D92cDv8=0^u6!r10;p|@m&Ock$=Z(rKsama&FR!Kj)9x@tgb|lU4*av! zs2VN%)^lyDe{)UBok54uJNi(8O-~)c+EsUMzU*Q|y6Q319}zNo^U?b>5At20f4b@2 z#xox8%jFU}DrDt(`eFf8Vwl^#6tXc?H?ti;N*X1r-G9_ab3Gu2qrWb{(`qF#Km&LZ zLZzl-ia+y4f(XIYMRt?-2`f;vlNSbOh4Y<-bW2PrZYEyN(xp*28NP`EK?hjps9$FE zST8^XN|NO(`XV{@7O`yV7duXrzc2o{9pFHYml4jl_QUzwsRDoJ`*hCH-+kz(bN?1S z*Yx2{d)M?J%Yj}W-=A0f1mwaaS*hyOu00v;zzX`+{Nug)Hd>Q9kL3_Ayb~^dT@%!& z`Z^eyck#m!H~o%LTeuynaCFcmj?|k7uQ}994?}OJG4%0HD_oOSr)!De_b6|A9D*A8 zp9;la^4+V#Plw$4s}M=7k`nq)eXvL}8Yzg`A%*Q)=ATGZ;v0u3ina@fvv;8Czqo|` zTiRLUcfan23-Ldp3_1vso~1xLzz$UwT%L(M3H4Xy%}(nGIkG=Qd;7k!C8sH zZf_=aMBO=)_~BAWBAb~nDobD)gnQ*CH-8oUBnmn;BLC$(f$+67rn*|6>#03du}_A3 z_QywHH<+jOtQcu5AW=je9M1W4#^|%KwND z9d9qu1TBR5KeRucrF|1h5RU%)FIp>jpr+3wQPJY-Elnjt$uKX&nUG|huD-4|aG6{e z^@bAcitUX3IZer`6>xn0Gnw=2<9pcsq+nnUJ}~6Df4?maRSl6SNjVfvgM_))F3Jjj zO7}@*;jwsU8L%)EO0Y!H*Org_M;oWi{(Tx3gkx33XWH%~+JRp-il#Z^m{siyf1kd- zEI)e+v5rQ=l^_5PYOu2ffIFn?c*WRnb3RUY!65XVZ4d$2LAtu;-f89oR~i2C3*9BW z>}K*9#;*%op)G{yf--{gfI8s!I$G^LW?o$K1v0O>4HT#yjDU(hw#)~BVxMfc2*tLy z&At6qMNcUMi0)YH6Wl&B#R&|$4XrtyUl2xljK+Hw+e};Y!*)0N;~tvfhQMPb_$;*k zmHy2|T$FrIL|v$MyVLqD;Lmcae)E^Di(c$P^$a|Py@Lokf~WJ*r@_vAWl}U+m*01^ z!dGZ}#jhSpi~|G&t8L8LGir4&imJ%K+TPU#ynai%Qg~yK)S_xm8}08yae@OLY!Qq; z@2-CGTfrP`C$!MpMU`bSDaPBiP@Ng~V>crKnyA@*YOAwh7fWt}0XBAnw@8AWoGg0V z{9~V`;sc7+y%R#HX@}b(NSj8Y(!uqVax5SUyJ!mx z-v@j2Mf8^(83sox(NQQ*Kf6^OCw`V^4LAbJbWr{pGlwwGk$%D6MYYRG8&HE}1+M#| z)0x^IUj0)HziS@oU95;FkH#o&Y|`w}6-A96*BLJnynv$hX*mZyjJXjO!$HxG_0^a# zGT6JRqO%|v!~zN^c1;tPm8G{q&rV!+#BW*3^1H>2mws1-E~W7GKuHmPs6Qz8TWY3U zIEdA7S7cxCgWy*8c=6Qxt1r6~`90eR>nxR*7Sga^T2o*2j4T-Xf9hlPp$lu^)|Ctm z2EpED58`hBgRb{1-q7*g1YKja=ez;x!G2`7ecK1#^pW{v=?+?rd-w$;Q^S4W%+~NT z3BmhYPBX@=nd^Sz09Z!od%}6ju#f1PONNaLWCi;V2Z!lsx4q~NOK=weGk``0P6WwW z$e_=y!6gcN9K_S&+SrNtO9AI`U0<&rG&gY99@&(IT}MkQDJmJS-t-du;Ne-+(0q8LDIlS z*u+G9-`3@|b}VMpt~?tz7$J@mS}AV3?q~9CkLLl8xqt~e7-gDHMY@ybhIjslOwv>O z0r%(?q@Cys4lS&~+WTtL#-z-4!f%5fRyyjS;42Tra2%eek*@wn%e=XxzD<0jE~?QH(vv8GMM9+*ml*9dG)zGOUYCXbt+kl9%%DeIay_7Dvwk? zuQ*Fp#g6#(=$<*Sr2imiE$f~yZ%5`71gms-|JW}YQcmun*A#+BW6e1ixOyG^(bZd= zD{IN)oclf`#JW%fzaPB+$HjJ_QhME_?X7`J-2%whA|8(@zukg74&{L$uZA{_DnGrc zcPydJ9OvfRl%T)!Q#9Un!kUXEIXU+P|67I7Pbv9*T((3mVJj6B)hJ~&rSETuY>VG6 z=Sv?iZzI_(5?S2T}Uor4qC2g6`pIG{(h&lmlzos(ZB4= z5c-vKIV}ABqsA5|Xb>W)B8WQ!#;nDRxw-O_c^g*QJNHw>4eB7LeV2LqK~qc7)IZTT zdf`Hg1n+Cr7E=g3ellR6zMDp3tZf>BeUEacs;IRY>4I`;&L(SB?m#FqU#C1*0yV*n z(1lCAO`l((5-ULE%CQ`PYnHo1MGLhQ%q$vqa92vS(;gzgbb(yzsZR-L{2>E3BrtyX zFSFQEl)0xwNip98ll=;KF12j3oCd4Yb!9DL**99?d>J7xHmE^TRC%_lC#CgSeIKn2 zb}UeU@Y<)FDHYm@rfIUnN#K#*I1+ogW>Ckl&@w}AVFWt95kP&N6XKsT**DP^re2R{ z15&VY9TjJbYv7;6qTo}f&+E^65^QUx_ZQ3~gF7E$&pAesU;XoUT@bNE%x^6#TM( zE0Y3kCgu!-GywmiQ2yvs>EADW@yf()i--+1ri@1%nXe0G8qz}-W>4l8Ls#Q(pPtW< zTn3nV%Zt@^6bWu4l7i!eMDxx=fBy`K*-9lEOGhO<1pn+Pr*B{BJ*A~ z*XXTrSmXd@?HclLMLPv0A>i!v@856q_Tu)Djvh-(&6i~?Eq>^*-9ePTT5@Sm)`bn8 z6?FTyz)Gls5q;dRVe-{0z4s38%!1Q`E)Y4&R0@elX873Fr(jChJQKS0__DL9$LjWS zj_b_J`On0-Cv6@TU3<+lEO*hqc6oLquutnl-vtkI4)CVXO{z3W1S9(d7?PdAf^sks z%9Y}&mDE)gN!|8w_r#I zISg6QlOCQB;C1dz_dA*g?`I~UTS+GWoZd#flJe$vOJM3T90PU&!cFB>9nMqgR5bEc%cUTi9>(k@KUsj%yZdz6Q1h`qi z_WP>ocbDV`mFc}NOwC;m=WAo$R&g%rhd*nH(P9_bHP07ZwkMJx%gZRSIFxuiz)UKA z*UHQ0zMvinz{UyYoN03y%$?`K6))0RYLq^9o;j+|+y1@g`Ug>An?`1HN@u{_dHH)R zJf|G)J!F*VjbZL{wz62&J=3|}wqUFz;Hb#dVV5)nIC%Dx0OSU8*3oy^{D^mPOx_~e zl(XzRcC$1;t7oF^TwI@>X*!pc8n$ixLmm$d#q?itfh@e%HqQFLb)iSO4u@fMrDgne zmC$745zx3>uZFWn&Wtc)Z?}o9G?MCoD5((@eilaQf@ z8a2FuB(S!Yh#IOs6CY1}Sc+(uJld-?xJCy*H$u0Y+yT5wYSdExc54dxAy>yMX`{Nh z;KpRBHZk99j<8(d=m@d%>{+erj*;Yqr+tawebvBHy08=73W-Q!S*BEg{}8dV@?e+L zfME363tcLx7hkjIsb;p@Ci5h@H$B$tFY7L6AnTt6)RTJVKq!a{m#Gq)(sT4sRhp_+vN~aZm-YPmX(uxEci4B5@n*=#A^^ox|>i zv@TDcNypvc;WhK9_+KnqcE`(xb28)+$cFuyis@cOkAx7A0bOav544kWlpR5u293W3IEsEkpj$3 zTXI*S8($IuU#(@Hiy>EEsEaGN$x3SN04l5BPo9(!ew2Fl)^j>Yq92&(u@_41uWnS8_oIV-GC)ZIxO3l_v#ItF&w;#766E`x4!|$S# zWWyS0zKLN!9y-wGYsW{iH9o32HNDHZ$$Ae^H6ZJdz%>qb2W=^4a<%X{uaoxN$7e(z zm#mL7A2Pk*ee^29c{d}XFfsO59dN!svu|lhHz_A_@SS7Y+nx`s4(QeR0>NuVx`re7 z!{fam4<@DE8NTQ|tNK+cx;C(B4{Yr&QHs_TllI=gCp-7_e7qL>2YZ~>S0@qD_6^XHpVD5uHoMH zrs{Lxo;vhR&7>|g^+c{&ZjJen9}x8)XGKo07;MeM8D@35`b?fkCi2cRb7>{)>tWo_ zZqsr)UN(YKWB00$x3qJA>~8jKj+bz@lh?Ll8G+))*>(2Y2>hsFbBjEmKEDuE5`8aE z`2FH+=-4=APQcUVXCADg=G+~-qp!exiSeaKe=OI>n1A%iKQC*l7x$ao|7a++&|4Nc?RJgarw)V6YXHC30e0`?=s2vU7HT-)DV|_2 z)8`q4DKGbTK{#>bQcul^0dD^F5S8H09hPVT&5@802CuD&s#`yaSu;XO+W{*(^LLeZ zOxNgM>9Ie)A<<&_8DkA8kUu%o#CD)=&Q_-%?uePB6^J%XN)(zCUeV#u&Qp!dXg!Zx&0 zN#o)}(>?H@xPRJE=ykijvTa@OoEqOUM3TY^xvESR=(XbM0U0ikozb@SxYEK5=E-z3UdKkLC z`5#RA_(Qs*2XAt4WVV;~(pSSK^l6{UdId7L+PM-(5YRp$oG_nmDxGPCrR`_^fBhd| zy5wZ-2CV%P$BP=gnAat_0DM~T27D3;=8Ag|_l&`ZU^6l3;75O6{{U5SiEIOqwfPtZ z$?{iFI}Y0=bwSki3_9~sBc}cO-g@(3FSh?i-2E!`*gE@Pda8@NTt3UM{F=e<3f!Z0 z?N|187>$th;0LsKYMUpr<#Uyqr)3P4Y-r{6B~{(`m5F|%&7wy&OV&-#edQ-KGbl!# z!ulzQ*Gqgm;`{Ku*w zKryTTTkCz*2!>gDBqCwC^Hdqwo96Dq9pBs2-qPA?OG-<1_B;Ft{>=X<6h3{3q6sNpdpW7j(q zW|JwrG=kQR@7Z=w}8dAWfO~?UE9;ypA&NQN9biAsNF+PVc?^jiq@$Dx?_2nxjXE7OMF2+#!5H zD<{aWHqRO8W*DtaskHGo{reQBa;-!V4G^b#wt_pPS7j?Dju=!9Ww{=ie-RBcIy8J4 zb*R(Jya-)xmKQvDS{TLn-{RW@B^HnIwE&Tur!9nGeYvNBmABiM`NTr~FWdV~T5qye zpr62A=!^Hmg#@4+wk@F^f3hGnRZl_N;$TuAzz+DxNQzsR$)}!F#Myr-_#{m()jWSL z>V|b(AN!xL@SYu>DGpECa}oH47Rv;Q2lZ+lU~4kjxt*LjsTzKYE9utnb!-f6D@)!! zEjS7caSH+b?kvwpzwUE=Z!$#SOO#>#y;Eba2#fQW?Q5aG3_M2CsdWnhz;l|Hp?P># zYX)zss2LW@<3L*YR{`d)jxofP5+jpj%rZQ>!XoeyhJ&v`cD}*P;O5vX_d-{w-HPrs zSnefiw(q~>!{T}h&iL6$rkAv1zb}CAC$qNOVsZX=`&gZ2u5mkdPI~FhNr@Q>rVq7C zMOjZA73@lk8{(uK(OdNs94p5A9QRG(;8`{&5}@OMM9rB2a7T-rBtI{ayjTO5rI21|5&fL2Ophu5zbF~7#<8* zXmpU);C{x?rdvEKlRbIin(*=NH3@6K3|Tw=#r;wE@?(U>0<6bW)UrPNk_~vhw=ne! z2vuynBgoH^43Y;tnLV(9FhX2r*Itm9pZZdwvkpZP-KU;0KpsI|R)>>fw%x3SB3n1C<8Z}+8!Bzf&>`l@a@f!*?%b8oUy>M~ zeREZdD(63ju%(hRflUVPfls3}q3+r%dFS=a%7!%xKWo);0AgRN7xN)7t-sHGg{<05 z?zge(`M`Xp$D-G+MbM%rlg*j=)6A!*1p`^;!j9`Fx1UpWN1j=5u;k!y&6C#_5kTSL zZwHJK0&r#F=bd*y$?2RjWK=L;H2SZ;3i^Z|Vo6IpEJ(%19+|}4T$0bLVa8TjBDsBx z?EBFYe@a`6_Ei=H<}M@VV)b-S^@3;sVZs-uFK=!*2YL*?u0K!zi)p<>FjzPEJqg z?N_wgb~W{l{f)mIT%cOvG)xiMAd#};QdqUf-oBi!Twk2_&{S;qP*kJNVCg|N zL1nVLoY`e&Pw1%277X&PQF3`2lb|HqE9%FGESEj+y6v3R1~W0sokC6txVAr=TBOqn znXxTsrm#t``zxjX!(wuk4!Mq}xBs~9)8$q6wp=>l-=Ni@(8`N8|3#F7yoP&KSZ39DljBJ5tYsPnMRbo>QoxM6D>m zs37GIO2;jA^Tu&*(VU?hi=OhxgOySs7cS{-eKYTd?AY^_wXw0sMNy^+L(!CZ>7>w` zNkB~iJD?6_HB%hV;dt-r)BdLA%r?TU`h|CvOBG<9bDUaY8i;Ul31tQX%j)TM@9@cV z*&=!6kdk{eBkqSZi%zJ)`eXrVLNvC z?%$h-)KyNFVGA^@`5>3i{*Pdw@N&dvqOM8KLp?LdsOw=l`kJRf%CrMtX(1QNh(ygg zJ5>|$`*%ygVobfU7L!P1Yv-JoD`vD{DR?YZnpKCBcyfUM>;w|Nx{4L;T#Q>ZIhoBgXvoT zaw^KpDx~0Nzo&4gId?HR312Ok=%3NC2k@O`k#c^m=&oB*KEWb_JpY{j7QPi$UzVW& zHMI(N+2Rt3`m$Ba{W*AhdTGy$ZiazVh7p&X$(Xho!o%sQ|E>3Y>KfCPlF8B7^2WvSAaDUfocYO|B76BEl2`p_hKO)3I4d?X zV8}s7%={O4+UwGQ@l!`yo)a{ZrOacPm8I@GUGlbe;721`RH;|E0bWEi?QOG9fx^#& zzSQea9vAH|l~hp6jESS=#8XtpHr$qP^>e=!x)H24M!muKk=kV7z_)n(56FXqGr?}% zL=&!k{*H7H8B}OBEQL!yPruz_5iNwUM0@2On39-7RnLvFtak5XSHEwFw$PmO$jTC3 z6eP9s@M{CWw~YLYYoX!YybyaO!%tYY(~pVzD1v81`bo`jwHvAY4-a(OdxaC^Dsoo-T0;P>iWw9k)KRdF!Qwb8kvHgvdcu75 z^+IgQ8~V|)x*i&7+JdYy4o#Y|_kK!(ZwuS4MM)`LD#w6$5kksl^d zqr+9N)z|tM1(F>5V-hwORIhBX;NH-lnrY&K2taNz`|-cvizv`~{aSC%OA*vu5mHNC?r; zL5BUfHsdVa>=C1rPS>*X5SvgCGVA3od+OB+^#zIV?_;vz=`~pxNdL8>aigH+(wtri zXlZ80iHpJeKJZ!K^w%8>3&_xBDO=kgVSa0W5G1nh5PMj@R9(;J-PI(mDgH` zw61=LHW3sZpj$KQuwVBR0B82EK5x-}#Z=q_iG(NJU(UYmTMK<*IC((84huV$Nes*ua2$j8j6hk)G~6GQ~s#kH)hFr$0ieNU3OK`iF$WZlV&o!oDn8(vc5 zf^J{Tg;TN>o=Lb>uDEIzla}VY_Rp0=xFqk|#vDx1-8meY9M+$C8nR`Vt}ti5SwEEy zx4}0bhd^@28Z~MjKsE1>V!dlTOImUh8F^Mrc23UP4Z!4fPHbh?|C1C!3eumKbAv8- z@fR)0Le4@k^PL_8SLOX-4)P`CzmSEACMvSIsNAeSd97xV{O4itmuwpiVZh(51SLv++bw*j zgI;3zCglNDRe`kfM{P>uX(?%%c$lQRX-BOyOvjzg8W04Wo7oAOS;C!ehxarG_QyAB zbc!y2Ms$kmR6s>A0ED)J!Gi}63XY-z-8&AT%F7mM1@S2&eRPdA&4RD^eu!#xYF)(6 zQF>C`bqP=U&oLVY3*7Af4Uqi__(IVrU4St-+?@}j>}uc%+iGBhqKk@gN~<&F$HO3t47*cWvi>J5X$X%?*}pq9XCEwpO1Q>k2P0wJp+uI!)B={ zID6R_*AE@Y2N{%6l-H8ql6g{p|Naf6(srdZCA89-$cbSlreBF`dC&KyvPMR{(0S!3 zh_L3#zY9GYoul3!H&xf2ihtvdDE8RB-vMMFrb%{MQ#cj2?Z}z?*Fz&$Ss_fX|m=3i(A&qklS~o#6uROt|gnGluz@KnBJgdyf<-e^48laHzlUZEGF^?H~j9_hZginM5+~=4_e%ZhDaEaWGFZ&lD_JBBI zniqm628o0!KU^%p_Kp#29W+|uRvIKe0%`7}daKRbD^pZBWlFtQ9$FO6jOrEB!q$Nb z06V+1N#5i%qfo>V;uN%N<8Z`a-37i5_I@IP24w0e*Xs#b);t7_O*$iFUXjCXPs6Q7gLWS?Rd>;Cvd-L+lnLd$D$Lv!s~tc0UCi8lSw?;+z%AtmBd z6?QxxK6zKeqhP0y&EWirE-nk=gsE)(Ar1KjcMw6*6sO|eGzean$iV~Tgdfzdrd>#~eZ+#2M_vh>;3 zRKj@;_^ie!I+dt>Ihx23email@mRx$Uu?<7@a?bdoEto`dRai&F>&{;RMP1uWbW}7HoSU^F!wN@0x3A1_F^$gxn25>)8=RWXw`13W zt=h&|9_qi`Z$LnlMBi`sdXD z&C0;y1WB$jVT~mR_MQFDir+Luw3`WkbCDv!PT|c02QL7b5tkJ?a8p6#r9s!L7PSnS zeP<9&67%^RwRBGrt?W@66YVGTPsOcwzA8Reg#d0pnm@TWOoC;q|D$a37`gn6YzzwS$YN$}gF=+9cp%kfC9LsXoPihd zPm=XtFs0;(O;i7QeOo6jnc<6p+>M+)XFC^%&K|V5pF~zZSjI7O4T^X1ljSjVXG0(} z_`m}Wdjd8!F3ZB-lXI#fGZ(xhC|}JU)5V=C4Xa5yVy2(Fr&!4p1bSQzZaoaw38H4V z){@+h!mU=OKJ>EUODyQbK?<~oLH9{NBBqRZT#gK5=_S}7(-ntzyn~boZ2Sh|5zVZ4&K_cxfOwn z4v^C6AY>9>f;sk`fpcE@*X6K5xFn+~n+7Y5{pRrh%L2gN$x&PP=G)dy-pm~c0EMd67&KVd~yAp+OctXt>0kPajK={dMx&$-l;}DN4cMY zQm&qRR3Q=~@Qq+t0p-ysKYlcj2exy>z3AZ3i!1Ifo}=kD7*P0Ujo8BM+4|Hj1tR%vk+sq8?JC!|PTPeJk z*Y?o&*@rZh{eiD?4_7jctd~{lMvI3q7H@APXL?b_!=BeU!M@IJ&o&kTM7}-JsDmC% zSzPybOkYne3V)U7GirITC*@+1rZOtaGnq+fh@c*u=87|*HUO|2{&aHw!iR=Tn20|h z9y2!UV|JO73cw1ELr};ncPA+ZsPF%Q5r?WiZaC&van><_{Rj@@R>;#>oNR0yhVI_a zh^WooR5)Fp$&?upavX>TfLIA=57=p)gC%!Y&sqpt1ILK7N3`E`&DZKSKuus?yG%&UKKZ_a2_rkyb;{<{04Jj}x%p{_oKcF=_pO z;8i-I>b12;h^EGN-S-(HO}5{UggdvE6T$q;58j`%hAH!7?q+J8LR;Ig(BwFUCmf0Y zIpKqBi8~GWiI~~$`d;Hpeb5#qIIzgqzEf{UBts;whmxH?K9Ebd`B$au_jW;c)?x*L z4Fz8X{$Z`=8<}6FE0(>UGbgN%Dnah#>=QDvz;B1&Gi2?bH-@jS1=HB=NkIXm-8y#_ zgUij2oVDDfKkSV*akb;eXiC#Ps@F?;1@=3lCn zF?So4Oe^FAVG-via?a}-?GL<=M>z3hGT>A~r}Oz;yd9MHe0I(_u{VLdr$!eB6`T8x zMZ*)Q)v9GrO;zIOoBYyCO{|XSfyL5CKMn_(ckf59^oj4ML&~t2oU#)TQC}HwJ16A$ zD8xMrqn95Uo)S0q4CTFbi}g=#0e(hFByy8H48NW~7crUn$T>OTKkjz70x2=TH^%7U z^VpLo-yW5A$K>c9e8z9xvjYwd`+Jvzij5k8#YkDC@|Stk3t8t1K1wR;_6CXZm+Grw z;b*e}D|(l;nH^)a9Ty&^G_TQN?K2k}4INs}$69$0+l9J!SHt>C`PGB{StwpJm5tjg z1r6*XKG^q5eU1UV>d>F&;oPD)Bu`F)3wS?=cjOsWSl^di0b1V{D9I_1uCuYM-*$$i z4(e@P4=vHm8RXy=d`$)K0N-pt-#AF_O&luMGWg)N6J$F10qxv+G@y0@(Ksi=gdwZDpy_cl{D$TeoTQ@L4|BJuruidjM=AmS{? zD?0uzWa>)WnH&W<*5;mLB&%CMqoHgpLg}he3 z$49|Wo(<@;uw)?hVzhkDU5`hA1QJla;TCSE(hQPlyCwfG?2cIsd+M!10>;O0QKQ2Z zUhAY})8@OnBzW!QN&O%hjtM%TTv^g0N0{`*l@GAPFPfE3b`c0m@23!+Ce83uRlJ3= zgCuqDPV zZ;a^M_`{YIgML;eL-ClUVlpf-lx9{*tXKXZ^zj*lENI?0sI6nI=AttHKw>ykw%UG$ z4absY@M*j$AZPX8c}RG^{Msce$Vk@j-M>#HK3shXijRAE_>DzrXOl1C4rPN91q?~x zVOVdS`(9aNGO3mPdh#wPD(M0ePmxp*hzr%`|=8(w6TR4l$|AfZzX|GIs3+?~^Gx_!z zS>*-@dESF;-IKjs?cim2%y69n9>*LPT3P*!tfA>jPH&O64)rrW@%g&iZJ2Ix5}vAvs2nnwMexY-P!+wI=4RI`tPbw{tN~m5Yi)3CGWytY)k6;& z@}5YGnm?pzv@HBwe|v~xZj_%0+@2n}69O5h&Yu*^8|sw16r-FX4R%D>p+4e@nT(db zpT!}vBm~Fnfx()kirv3iaj-hWTKc*;meSx8;~o!j(f zr)bvw1NMhykc54$2?L)H>)KjfJ^b~mr-5Ql-*M0fZP(V82c(T^~z*QMD zL+lgJqw*H;a6S$F^9n^;4L@?C$>rbed}5BpI2n*f&6lYj(Na-V*)>$BsJK%U=#Ay5 zRzE{>{>{3*CAs;tW>+Ew9&%)1v(czc!MD-1U_9d%_i%qGmzI$#mcsIXo=_M36SLE6 z2fKnao9XiUvA4r$%c|e5=0?X)g^!*NnTW|Tl^sqMh7a{m{z&DzJehXrv`u{AIl<9{9ZzOe~B% z7YX~foT$7hP0IRvy1%0?rS^C(l1r@shCt@EUub%u`9-<6!<7r!%{O>9M4y8Y7ANC)35 z4Q-}J9-~goI!-pL+78!ciLH6e4hCSz==oPh4$#wkd*>uV^xU8T6dT^Uch+%vM(Ueq z{hRn|pi+3goj;Vi_G~n<-&3vb$)&y2dEVt8@cS?{Tl)#~K0cY87t2+o>wxr=0SC4DU=xFsSwg~(Mn6L?irXI^ zOqfDY$A>MDlhq6h8m2{yS+l(7{M=9a*LwdpP2&{okB+Z$q&^=8X5dA>(Xr3!yG#K^ z10|-3bcCzh(HgB4&5wff<%6-Y+fJvofp@Sy;*>3{ujt-6#~B{#Rvup9k2N!;2{B%3 zq1#5#`qk9ubaP+5K)k5rEQ%^-zT2_OI#Br0HYaen;UE!{gUpXH(j|ugLP_)lktq@r zH@qJOG>QmVyB=5}uuXUSJtPRM4BN)l;C1w;PIBH#Z+}Ce?@xd6`D4|W*(&A@U$3$v zRNt2+TZUoOi^9e2(UNml>3K4svw!zQ6iC%?r#9aE zyqlr1KTp!a#ndfb5yX>yv8pYgZQ>^=ph3C-y_cMiicJ<8Pg2aYd|BGD8LhBZYqfaI zJ7f}Ux56N`Fetr1TTB`H?_pEH1+99j1dosisx9Ds2;(1moz>LoXo6&4uPo)8h#oJB z?|oGH#vJ3*I~!_j9|<_j{7DL!qDS?h4_*V~R7XvVT$(o5n4fPvorqFwRNx|Ex!b+ZOzyKPaRoX&Pz} z6Y}K3WyfRO%m2M>e@=tv1e50Pri`*heO5|nZ;odE%yzCVu-kJpGV$4P-p+7ExxTHT zRXh)3op$=2Ji2&)Ss~Dk&uQ>zUURi)x{7bBt=y);uy^Hvy= zE3#_73tp~#kDtr><4`6ZA8Eq+L)SkcAzpckKh$*)lDlUm0ub%kI=|~-`RUQyd${Cn zU4ev-fSva{o1XI{|AiVE^kyb#>7p>XlRtW;s7B)^-6ypn%J6%)L~x7q8q{B0@^V{( zVRsTG3v%WqY2P)@wUr3gt=(QO|5*SV7f%mc$mXkhu*DY|^|cuhR^*#`MA{kAh#Fjj zb8FSt>zlNd<2AC@H>LP$qti0gT&5pJyv9Ti3l2gasp*P|tAdhiFQ2ME8W+w`k%gc7 z{E&BP6h2DQ>z^K?<6ilF`z^0Ad3WM^h!@8kt(&{!7 znF${faudD`m0)3l(q$fS2=i@26#G6m;JT5E2-Q!(>DdC~BOkumx?~On($L>tmd8vm z`#N2fK;uqs%@)j6zXx|)NYK_Rk~*sTPu=D*Vuz}6qa`pHe|R)Y<1{mEviKgWpFm>l zT=T;RnK^Rdm(BoeosxTZ&q(<=Ehtr#c1rp~B8-hX={G0O9ilH^rhC>|Q{~p&1Djs# zv(3nip_#Ia6?&5~OVP}*(1ltFzs8f4|1dMKu>lJJVtA*W3kV3JH<(*y*DLbd z&)3Knj2Ni=CNl07TN@n&?IhxkP@u_O4)GtXX`8bF{|f`yAh0A*`*P3O>6QZCPk>1E zq>Xo}Q zsEI^RzYV)-24HMcl+pPdCh75NcA8S$;K=D>j>{W8LqoRw8FzC@r$?d0lr; z&_AA8^|{2==@qzhD)@VYk;f+?@EwI^vm4tkr3;+jXASk>g3Jm&=3 z&V#jt*ydsDKkM;BeW?!$kXqgw{iH)S*1o{n%iy1aZ4|9`t-%s0YhI&Ric>p& zFrFT4KpXKj3qAk6k1^tYM&CH}!N9=3fcdTlyxq-1iVGq)cvl@K8ALF}G5V)pDzu-z z7NpiLFU*^1a*lyTZw|_gUK+Dhi-6>qDt?P;&u0ri0O9HXqGM*09zHb6`IQ>f!lq zo#C_ds4zaQ8-V8WG3&ZW2Vnkb+tuITPTUN&Sf#ZFYr<)nwEuap6SPjkne@4S&gKf> z_#9NpXr=s}G4t@dGVH73^LFgVFn+!-;wu>06BDu70XhITS4>OESQ0#H{p1ReFAo-J z`A2vRsdrD<`k;e$b~zR-w{L@UWcsbf$P+b}0fkpGTU>+=V9KqhI+oJ~ePk_K7oH>y zu5X36R^xN9!Kw3hH^VyvU{Trv#>E2K{+LN3bhohsJFUQ{xDYF{BWfe41Y)X+kA;Y5 zY|$bF6?U8?*Ge+MU!X^m(`Wm3%00C2%i@k6+q^uerCF+h8wyNs^{pHW{rt~oO+8ed zau9l`+;WsD|0l>a=Q%%Ko(bI#e|c_8H22lEEbW9Qn{&#tYd#WysO|%|t^0HfyWY^% zZQ;Z&RKkbRPU6FiO~gGn_guqn%MHdXJ@izqlg$bvocf&?et5wpuvgi8cVJwI*5z_K zmh++^T+Sf`d+x}u6Dk-#7)0j-HB{@&GU@B}x)7#C1eI@{+z(yEuX$W?x3aV`ar3c( zh9`o9toL7=0xmVK(Qr|jB0FxMh9g8H1S8Bj%1NGp={_oy^fMG}E+*#{Gm2lLt3KgZ z`_Zo^Vc|9E&Z@hRL@5bB)f@ZIS0X9#r2B~J`ttm^bM8gkO?mhD(aIGRuc8=Q1KwV@ zz9oxxbk1WiT}+H`Qz$#3QNDk?TWNPpwhj|D{R@f}wC-Am}rArTq_kGwOlQ|goI;=l_W+nWTg;52qwk|I0 z1i`{5aQBUWjB1<~CCUl|lKkK&$=i=7RnVAcsVdg0T;zgP3u)?NbkUk78TqoNLa72S zY_l$4r$Sdjk*F+Yv)-3fQp39`lr^6vumUdYtFUVU9p5}!yqeqX@P5096ugq;`0j_U zo23UBiYITa?BFpsM;&4Fk;9~T6V_Xkg;)^|78j7D3$w%(%_Ne4XBs%ABlUDi9#070 z?&KOMvpM_>a?L407j13OjE#ppJB@f`dnNi9sBFcm2wM-Dy#}%vz`JoZ;w?~|Evqr; zg8E)CO;`NG%*tB3uq0{sNrr59hmmIIunWIv?v}%xAe>UBy6hv%1V=XQOsv64`M?yH zmAVLunFKSft1k?zxT~4^ww}(|*DQi^%_)kRM|VRLspP^hbX@&HfX{1a6L-qeeP6f??;~qm0MeIh4-b z3bS;la|rm<%ULZ=XWOZJbC@b;QQ8qth1Hhr6hw0j;j}t9s2mFumihp+SDyKjSBE`Q z5d2kBJ0751Qc?Fqo%gHM>uVeC-CJP*3dfX$2m&scG*~yYsnAguKx5nFImwY{)9XMl zMKR*q5JnM);@sT|?;!uH>=6s0xRbt@sS`}B%t{s-^-`DP@pLIli2e6 zxc)Nd05^bxy+m)UCTmi$z{+RB(Fnd%4SdyJWKNr)y{MD;ZNJRS*t+mzOT}w}OOW}6 z?qyJrWj`XIosu=;MZc01zXLCkYHxbajaDwfg!Y-GKm@nh%*v}c<;|FNY3YZzid&%y zgm_-xF-u?h<5SuVK}y*j!{7}{!QR7-sx3_{)E{MfVte`W^g9xha{X#45PW@pp~GwA zbG(epElBpXe{;sc3lvM%U-zk0Yt~HVrnCMD9h$3gvzc+kTaGE^WlB{sPIBj(^^pV$ zqxFyV*&1OsXaLk40M&c2JBM@H!b1nY=4g8~{|*llOW1DG$(|{aQ3ar+)z5>I;2vc_ zRSTQq4S%eVdq-bv84$VhYA!O`na)rKg5y;j7QNcLYp#^DS}1nNe@(%;?$Z>A&ki%fXTKPlx{gn7EF&5ZMQlq5 zkfrB4q6*f20{Z+OUkT_nmdDz}3yX9o4eoq${f+1TSgpQ6=yFJUiUnt`*96BhL<)Dh zIWFGQ;i3;G&Ih?bYz68seTbU-qhnnad^Viz=cjYM@8s)2fbb*I)$)102RxieTa0h4 z+Z%8=U)`YWjHy&doIX*n3I7AXMQA6VZVB1wb&WzuZd8Jgckbn>A>V)%*7D#7eO-wy zQ2n)m=q3=nZhiFg)yr9v<*&c5br!f8Gy@{#lrw(>YV z4&0trru&UZPl9vhyDk*6!IHfc9d>ZPNy0$4qt}Cg?OeZnY;Ww)sQ9T{#o}yV+@+7e z)E=e(6cNXe&$YOIv;GG;p)F)?;H)5rWO{6fB+)ycHLfQYWpt44st+2vF`T&=o+o_0 zu!Pgau%z6)lRH?}A39PII(75q*$ z>daIXs1yCHa?@rg8!}ykr(&w~8h)1L(bvqbvnS*mG=DR!>FosW5zpY=(=L0GsI#fn z`9>Z&YrO9hU$(8fJQF{1%9^dg(D5$LDfwyd&l)J09)@Szi*wv*Z93;oF_dVqAZ7C< zbT6=wPx-0sASqF&< zmtOYr97kgTuhrt~1{sLAtOBcCzN6v`5|Ej;<4u(%l&i>OR-c-jEEmrB`U~aY=J7z5O=j<=;32XpC z{H%I}!S&SeAiMCtA+o-R!$|JJNm4d3zv{P3D zJJkB28aCf~{|+jG^kRi9A&xbazUX>K8_-`WRf(r!8Z;z**&wJ0;V;p+`Ih&(4>{fw z;r}9JWBc$3(;7w^dn(M&ZM_zGaVBXq!==4FD6sWH+lnUP-&O>H=pXbPYTq<-v%YTm za$o_`V3jT!LeVbx=S^xR{IBPHIS)o zyuu?Khys)qnI|U5b`#>c79%i%;A2o~)t9;aE^y%wwqx{{ANi%jNomJ;&MUVk8UvfW zc%-wIh&*2=0=aoa9kOx)MJCA?YJ%T2dSqx8dH@BT>lX>m?rA3vOu3>N??v-cwj*{A zCTt|^KcfhI|~b)kcPs~WnYSu(`sH4~9oa1S4UcLzR7oiHRY zIO7wjmVBbgq$c2hL@oY|E1WTS_&0yLS?=2FU_+ke0wJ#F@Vej$Ci_ACmNvCFx4SX)7TzCgjm|QY&mW$QsFswtM@m)_1n$rb!sdnr73RNN~W64hXtjwxha+b_y;p@ z8q&M65@BlB6NYCk9>Xr%(_9~1@=Cpa29n$Z;w%=r==Ey<@ZM_B&eo4vo<10y=i?l9 zptEz<5s$4AKh#bl`BbU?F4fEna}QRXEB##FNozZ7pC!>0Wu~4#D(&+=nkm~gd(QPP zt%->Vdq)GPRFQM8`&Lg-9OuEElh;s9$&yFBUuXKdKGUkIjyOq`%+u1&a~{;9trjPO z9eD)=WHs{>08y3N#MPDUVAJ_K`_UPj->!xUV|>|=GrxxSoe>AJnCAbomwttEJU^md zPh3_!jt`#@Zv%lqM@+I0-R{-)h%Bb<>%P2lK3PdrP+iU4*PyzUIe>7zPiXX9?a?B?MLs4@Z@pFhPS&rbuQBOYy*N|$ z*V-;hwRK1TFI*LaJmniaC%>{>bzb&~asQHBJmS3|GF}^0rUlj(%x=2vjIe9Awec{J zn^YlMk+O<;A62upeIxuqu}6ji8wK=62{gyW?5W!O%F}~<0{<}kcBb{cFBwW6C&c)U z%}qma&t^u=T~*RZ9q$&{0XFaa@L`z9jJ`hSAAPf9Y95Q@eyY_U{ubo$7%F#sV9cuS zj(Pm>rQQBp`Ax~Z0>i{WF}5VOiMCXj;tx;7w7T1D*UgsYLHEQ)DZDZ@$fCs4*9w}W z+HC$`dKTZ2_n7Qspj9d2dt2k@`vUV3?b)5o%e+d(L4)+Xxz^Bsr8!W?!}#oH$aKCh z%ZO26wzG4A(!%3OYVR(kHsg#4TB(JOjC|bOcDm{dl{G!$pW$a4D`UPvkLE!38{b=p z$&gXT>qY*LyfO49yHq|7F<2s>$%qQPm!2@8c>xyaxi#I{0d^=VrZO6gAO{`fnJ_c0 ztc1^`{O6v>$hW0BzZ9g3_OnfB-I)4(z4@#6P40(^MZ7<<(ZO{M4J9X5s3%RgTU*de z{Hect7b>pZwm~L95mV7Je_S(03%$I-36Yn(ZPA=6p8YfY)=N_L_-79`>)xc%GhAa( z0S)vfgzvMq{}#}Wklj*g&42jCT1`p75QeTcDWliauSjJrD9fsrNdKDNs{>LTTi{&; z%)4-}-sf#I*0?IREuu{ipwhMEh^*9EyO86%S-y04lYaaks@}vK>OcJd&N>OBQWyr6 zn3Q#h8M_o^t$a$d#xTe-jAiUwQ5jnZ8C!}(*6iz$eVIX#ea2WuwvoZuZ{PE~@87w< z|G@j4_c`y^`+8m1^?W{_xsk{r4w*n@j{|iT783@;$fkKzC&;3fr$0o2PcUr2a#=XY zWQl~f*}&+EI=?J^YeUxYZ_8BOuTa|HoEc3)TkqsPej4GpBSqsuqH5D}-uqVMrhJ}g z35D%nWvVL{?}K}zG+#c@lGM1uxyWLIqZt^$Y43A{r^8REkxOK0711UKSE3N^ph9$Y z{9VnpK&Ws^b9?B{#YG==Z6B{QPrVGIR@GN$`9>h{_fK97Je>0j90dR#t}eOvFWDN? zIAup|4_}**UJw4;cpBZF9zW~hP`ah4R>Uf04Jf!mj->uKevGm@sG#l&kK24o?=M*y z`_#w0rB!hikk_}`p5pDJm&^r&T|84ItH2NA``WN&yg@udRjN12P+y4pslJSTA5}5e z`Kc)7&sKR2tsw^}BJ_495hQbE)Ae^&=$FwzHOCodccF`hW-`O!plCE}8Um)OXy>sJ zq8KhB8qSID&KzIb(OoZ2$Fv{YRP*C@7C;(i--wnoj@%cnLy?M)^WO)RmMBJBAZo(C z6d-llTR^-sH(u4$ML&=z8MdR#s$bvIZ{6|1M2So#vxqe%3PB~FK@_4aTa0piyIN;h zNl?3e|E#LuK&Ksv+CQ1WgFCF%1JPV31SU`y+hiD5;Yn#QEp&I}|5WAwDbKA0CKl-E znDAaWSNaYRlwpt|ZWEO^@SaDE8m%#XZ#%kdBzR{R8xGY~2;cQ@RH{&_-1F*`Ki3mu zq)h4Q%Aa(^$n(oC4tPZ+%67Kwx>i^Hj(+?Eck{dF^4;`!Q~Sxv@}-}Kmls_Mr0u&q zCv9{;gkgCx`}VIQUXKKt;pS$_$;ceffJC>ri%~**j#Ny3rpD3W{ql5xm{?4>i_YK` z8cur!gnV1QRyjHZ)CCF#3zhEoPxU=}bG4W-3hKP!a9`f(sPn$7i&fF&tffl-!+C+< zgSF6$6UbmZw|$B!jwLd&tz4b2tIQwu>Ba(aN_OjJ+~*;$bDr)B-LS7#GK2cQj}IS$ zjqWv&V%z%)oiGkp&~MTkc)EUpA%=^lgP+ty-{k3LyQ&#J-__SZ|j1gpp| zy}MGK-Vk8YL&4&VIoL#|*TsdPn60o!$5-sr#jJ)@qHyOHi0HPewK9 z(pmY@#L*^IW2+UUpGzj12v00E9MGrL3Vw{Vh&qRB`(92J2qpJo_E`ZziIdNcGmpp* z#B-B<$bS;*u2K79Ymg>MRh5#IoA#AIaJH7X0`S?+bTv;XO*u6i{q5YRv<4D?mXA%m zKPVn3&o3tu!_v^3!4~a((Lcv#AY)5Nx;6Ota4!JpuGV=$_Qn}L;|VXt*UCNNUS8Bl zCGes$uPvE%NS7~~)G^)A*JE4v-~Jh?jTIhRABrVrlguUM&8k7Vf2&EzN+QzUrFU9k zpz_p4_rdy3DW&He6Cqaz@b6fEY3g*_1F9bug*xuH$u2IXA3U52M!|rgUJrJt{dH7% zKQboXdXGVgHz;9y>WD<%(gBogp9%od`yEVZp#|%yxhu4D{+F?Ne$>w^m1BLI;&KXt z$Uh9m-A&d^&xPI;m8+|-YJ8z6-(3&FGAa7DA4mmLgRiQ)g{~HSR&u#`(YR~KOx3sh zod08E-v#E$ssZ$t0z^e*Fqk-ccyMs=F2t;~_f4Hp$c6tVlQbZox-y2HN77j!*Tzr3 zWLP6NKPRVA!h3gJi^dA+l@#7F1%Ug8 zn3L1s{2|W%P zwdJqy;4m66B91%=1a<62@Ys(BuEpEePIF3%HtdbJz>sKOwcZej@#;b`1e~j1n4TvE z2EM4rD){N)epPU!T&mQY=c?&?)}PfW;%s-#?-IAE#2X)FNA4Y25M0L;Cmay-y|(R zudsM(D1oMxXU3Dliwmii?a1Cyrb)%L*2_FZ8oF)s5D;9#^gZg3&2DB08l%tGYoOi# zrQ?UcwK+J11)|~=AS(lD5I?|61(Qps68W0iH*3WNWB~Lc%*a%{bu@0 z_Ag1`hdrUm!c4j=sp{-?Bh?d2Rs=zT4CJwqV@9*X@9x0|d(~Jmq0=-c@N#f?baQt! zv}NZzW@3gg9iX1^UOv@!ZZz5Rx(Ri3D&|-6+!sH@+qxWUiFaYqIo39-uTC|oAK(qy zJ=!2f%9n=k6StoLSTl<`7O%BWS*bOtuS6Wsw7oT&rPRUG+M2^B7{p$4anWLk+)MOY zV4m3kIberrC!A)3FJHAMyGo;mRiRYg$I{JeIPBDSa?*jh{h9-q_0PxPp;oP=2RiGt z@TTb2;p+Zy>lX@Vna7pKlfo(?=DCqaJyBr8gj)ov`uI8~^SH46-T^c;D1A75OW8vl zlYFs-VLzUcBgypoXkJQqRIxf@qA4v#jOwr9?tUg0>N<2-z7*5RNeh68wz06=uPfN9p= zQ83_UK`k7UTG`KUi34KK*-+4Do%?P$eoc#P4t}ne+%n@p{TRvJRF@vJhtCMXGl!Do zHFeo^1aPSQOr^!8Okd!{M_C4)Q(`UXXb^RVMQ28p%fR>{fygV}pP9(ShtKGJ+@oOs zF~b)dh;mv|uHBrf5%xgi&gp-`bWOF!=&7apx0&OwE?zT@llD80V*S;)B?FM9ycN5s zLHhN_*7aZudm277(1;5N<+aCMURAt>OA}Jt;{;$jU{2(AQ0KB8I9R1>`DdLH=JiN8 z6BoP9nqd6`BKUasrf!wLf4;A>T5Ynh4BJPdUQ2UUZpKb0<^Dg*Y#h6BcDu8IP$RRW z8}5&?Uif*CtrGwep^uXWUn2dqFw*LECLGU=Kjp(J^TRhUblX|>z4DsymOrvGAac9) zd=BKO{wcpC#`vw`M7zG!jJ?`OyP|u_Rpf+AHK>5#9tG>RKycT{$jEPN$s2Ldg}E%q8$DnUxl)t=5)TiL!!a&?AXpZ6fI1gXKLaK? zSLlBjh%bI0-z3@cMf9ku{EfqUWyD3k;J+Wr*s#Q6{4CFP7(C5j%CPb#{Awj>6FZaOpd-?+J=#rtn3TCC#m_DyH5JRd<*pD|kwXR*V zNLW}-Q4zO^D|6Gg|HM?Mh5o_Bxfj*$YeYXFx3~Kvk$5L5^cFB6J}xe5$CC>=gK~}i zWI+zKvn$37WHOPI`DR|-s?a(ac}t!CD*}?IQ0i=6>}p|_%(wMs*!I~NonoAr`nnj> zqu94QMzmXBGKQ6(3!1dp$`Af3@A-5Kl8&6`35GfIyqabE=wOv7O~J#D1&v0*!G|QP zaZvD_GR4TqD1Um8L}@tpQSvq*)myK~kES{ODKmanPdDlgMf#rKJ^`&}4j%)3 zWGfCZQXRh~8GQK<5m=0Psv2$*kP@e-N+@QcztbA6cI%lpYS{HOl7ZK-*-dxNB}7)! z?wEj*B8LPeh#T;r;jZ}<_uh-9e)g746WtD5t{zBOkSsc)-A3suL_A33ZP4%Mm%4W6 z9`_;~)=}4KUUFrErRK_BpH4EfZcPh}U*}h?_J~=%9mvCYWH(NoTkUyEG2!LQfuqYiS0;u$fMi6gW z98!bpb)2iX{cXl?gyLUV_vYq4I*nC{GVV=v*hsBQbd&;#+vg4u^60mQgx{!LCMRSHhS^JAC zjdslyRD_VnCyk-Y++gDiX=c_jSx@S@Me(;S=G-x+ zW!l+Y5Zqqm=O{e&Ms%OPY>P5K$HTY50NNNB1fE4#f5`6KW2s6c%JFdMNDnGB@8qbZJ#-|$E zAKcTv`7+giPJvKtk16-IjVN0z$=n`ilKW9LRt|J1qs8dRTIlnSpd(Og)~$kXvwdH$ zGrRA6*}tthTq!pG4FM9SRkxOgC4}BGe+qDe0v6bYnh|oa<5P zxU_Rn&mDcxU;0XmgX3@Q99oGM;=UzdwL3Rh7S!H_Ie5Tuv_cuUBaU1LW56&yflqp+|4DNEZbSC}uhNFB3owRM5g|8p^7&>(%^x;!t`jmlj!!Z* zS$-`Ai|kq)Y^#cOMSUpm(t7bsu6MK}%?Mwp!aYdZiYw(-f?Q(hV$aad)uVaF7ppxcEzf zBGCg1&*l)k}rZ~RuCJRfLeAD5LS6PaiqNim+KeQp^w&o3=3Ec~b$ z0DZpgY^j~w(^Ghp2cKXu2t(!lVp`%vj+3;YGEjhSPEt;#LghU%V~MyMx@o)tIHxSt zqMBJMa6e@zZ8T9>hn;GMkqx8dX?x=`J@ul)2pMf8? zgGLm}K8kgH*lT;cM={0RwP4`+!R<~(AC4kn9*c`5$i}Fh0m*;iMEsGSe2%^C)55r_ zF}CPE&x`1|?#J>xhkbRi$kw?P#YT8e43ZkoLsMJ21S#UlB85?|IPbfzzt!e%bOKJ+ zcyPzA^UuJZz)Fb;mL&YBR;TJ>+zHlTreD|{E3El^2o>0gc!gd)DAQsGKiXb35BI$(_r`97yrAd-uj>&zvF4^ zd2zJo-}rdll;kg14P2e%>f}_53KCN>E9+f$_~-c-LD$2b=sRVq?iwvKd0%Hi#EXQz zbVGb4J*tn46A;l5C~#*+4qccHIdDU4=?<*bv>g4Q>M7$?cYTHkmYbRVAIRifdLDgz zVDQvaXIk)P_ouTD{p)HCqV~0Ba#-Cd0XG(MhCZYx>MhY3-Ip6=zizxl2t781W8*|M zKLpwizT!zq4-^cVmV{9sR0N#1)t|CgFDpVr2cd%@0X_&P8<V+Qv$NZ0x3A& zq$G9lHm#UOZS6dsW{X79{yeOB$iC?-W0qxNyFAI68k36qQ=qxCp157dhjjEtu2;>m z`fXPFt1fUwi&vU^EM9zbzMnyB=P_{a3G+ES?U0!pn`6X#|BZq=P}k4WsWh`+*DK0~ zs?qp11dOIf`g^_G%N()c1Hs)#3l~eyL2Jt7Y+iB-CbFr-8TNgBm>*r75DauL*l{Q% z>VdPGhU{_SxEP-{xIHY`M0Ae`XQs*wOB~EU4qeoGT3j<~uF|@(&nmWm`ZEFzQnd~^ zg2R%e{CNhcupoU8l9kGEU{-kh1j#DECcASOqCToJFfa+=Av%*rN{@F6z{#_;@6Gg; zIt{$6K{pe7OBMY!ueQ~$I4pDBZ>zn)Nm=Eimep)^@6`EzJx%mOcWl4=+f|KsNqk(W zYhTaUFp}c*&}DOOafYb4*e|P(I-C4V_;h(K*^?sKpmsarye`t{7Wjrt^`zvJ?VE}z zRw|Zq9LMHc9=gWKNw$wq<*m5>+y}#qM`+6># z&{5esCj&RX8QCKfoS4&C#d2p+g_UVds<~@;h}5EJecBG$&AeP2PntK3aM$ zQpCN_|1eeQtB=skxbm1+psL`WhuTKE26?iP{FOg*X3c!)o`l}e)kA{0#%XA&;1DNb z`~^4YicF|q&UL@;)MAo&#W*#-`z4*-@_DFDlZ*Z@P`ou$%n>_Bdt`e|pciM@KxF zAFnJk8~qCzQl88+6|^K?SfoHr z@KormOzsT$=w(@&^!6&JKIkDjB+*NRN2L3i$NJ(cu?on;ySi-O5Z;`MXVQ?AxOl z8|MNLd4oQzDK);Cy zo~-SSmThz6q#v8A&jto6tGT=4PtX2rrxMcUWRyQ3EoNyV+)RiNOpde9x)81WTu;D0 z;n4uq_gy@?0k3zm%kVq*0sj{!tX37oyzU#~rh3B7M+;os~@jzS~6HH!#gaGYRXSLKiT%ngRpd3f*+9+e7aVRvp+1zY(DiW zSMi9Y*&DP>_~(D$BRkm8_BR&2_wU<=ZZ(-cc^mg(m&9$!h#9#I#CCa#A4F2xoA`0% z9ig6fK(;s?Nt>S_ltMuzd}&}-4d&AGCqH?RwmR1l!xm#O^V>pHH2cj}sS!kZ#3_iG z03K>@KY;EkC-y8dV<=={e8iDFW|L?)vqT5*Oq{*(G4DAE3hrlGrzt$6bMwf!G+(gK z`lPig`Twy1%Hw5kow-m)=PLDF7b56ocg2eqZn{sqFniW`Oc(h%kP~DZbF738M<6Pw zoa%pEd|&7|`fU-|=D@^9sc?y}+WEw|k)W6BS&y>bBuyNW(28!lytSKnWR2H@qo!o3 zNPf)X+37NTCYwxXbM|J*B^CQAJJZmR=fKE@Oi9`7tfyK;ent&H-3UDNV^TSs$uU%wT1)tx3R_D zA##AhvQ*FRr{hVipjOAs@_f|OQ>=!Qtdt1I_@PFeVYqHZeR5r%P4|T?4Ze^Z3oy{B z;xB7s&rG>Jw8EDyo+q+&;cwF5_61at)+n#r#|9DB0FILcqI=$l#omsd>la}<9&69dyKaez9q6yKVh&}9Y$h#-3$iQ(GQy(quVs3( zd7RS^F|*UGODUWu`^}U4)$|zALENKHYg%NJ1fiB3;g7Krf7Uo1YxnzXjvsIBh8O^X z-tkj;ygMuyd`DF8MhIyUgcJ|TQt^Q@MJC%Dvj6#Fkjk=RND^8PN^1oz?Pe&iBkM1Z z*C&-{{L4SMX!-c@`@B@C_R78VcG-~4n7Kz4Y`(NsNM?**ys+x~*^Jwl2reGq`CDJ9 zp7yn$Eq>hF9d<~x2yy^pqC~yE2&d09yP=UvsSn$^_u6Wh6DL+oZJ#>}t1wHU@?CM; zTDs?9MB)KT7gD#vBvrAvTH0M0Lm^wD7~>-;R7(0_3YDjT6fdIw9=;xfp2Rb!1K?Gn z8qx}y_S(>7(#BD*D;46}2tHoZrXA@l$8O2d~0)-i!dYDxAVbO`4 z-Iacd76LDlB}II&)+9b5*)F;AP5&Mn|5)kmpgF69Jo_ZQbAWjZzOi9w-OFCPb30yM zr6ncFSSfMTS4)BEFl3EH*d}AsCFT1kF$c+2BP}w68o~&+!sAc0xNZe-x;scMvcC?nOHhFm_I3;-4 zbyO#HJdZGlNLriCK4@3kecA$CyD|BCkcFjgOE&Ncz>XB+a1TV$1E~gX(%zjZ&{2>z zz4$6CB%zKdkI*9N6e>g)&>FXgriL0gT$ak7>tiHUSI)oLKF7_r3!d_1EIqIdV@Y34 z_gV&e)s+Z-H(-*12P5 zY~L^b43;d*SRIlY=ok}HdX|@zn^nD2mGQ~sbYbb&*`f0F%ERSoS~wSY>oz~ry)6Yl zZBkaFiRNvPoOAZl%B3fL2SPIrK0Us_HLb>25zIeNE+ue~H2>j6r%nDxP4@p*WlcY> zL#G}n2zn|@b%wLJ`MMptJ#`&)`x?4BVucFj(wSZgEfpaBr1@ue9gT*#`GNpg?bDvr z^5vhISf=5Ij(eMb%a$rSUEP~D)H6_`;~YX2$veR&u=w#tu_(#f!%nRi0x9JQMk-5DaCy4GH0gz_oIZTLySW^8 zEeLcQEDe6Y|4USlQw;m4ow(pSj9g*J$-v-}uugmzF*9Z)I-Jd8UjaaX1;Xy}r3x(_ z|NNNau*`EIa~@GWq7tj-&q4@tI)aW!u@VY7BW@Oiv7xI6oft_M( z`cHLTe$dq!>&_~F&r5=YW!r*m&>-SYHTOPL0$(UnT|c|;iqMPto#Yj_Y69YnyWGeX z(pjY?tdq)Xi(FqukqdeEvf3|XxeK#m1moLw^Ko%O<$V4B)CO53-0`BI(-H`qZGs{c?NCO!*8_ULQ*Ch07Qwq9*=!58Px;1NkSnb4V z1Fq7GZv&~1Ah zlnNG{5z=T)HR1q=U-3RqQpNEyGL$)O&p{RahDkngzO{H>#LuZ^D-~*ziN*sW1%cUm z;xsX}iC!K~`6#;oECyDVtr;pfvDlnNed4{T+UP$0(I7XwNeZGCv@uboPUzfH2R|d# z_dL8VJ2Tr9s7FOz4=#zv{tOpre3nE7&^G#2H4v{$+B_Jq)kuU)RXB@HfpDEGbEG#A z=P}W!5qx|6J#N$c$q7jdNzek9l5c_RoQ#i?l_&V8on*9im^n<6q>}^3=B}XYkF}V2 zC(&LwjerE#NWGz=6^a&x?#thi6+Sh7xogS=Tt0Oi)VmyTc*R z2tKEKO8q^{0ridhF*4Qsxyl1EQ*%$Y7R&zo8y$Dq^5MH1syV$uu(X3$wC4Ao2y@l? zuvKn$z6ELWd5xx}NdE5h$9@qvvPNV>c+;u?&fYFbg<%?}phY~%RDv5e9eJf_NYeYC zVKa#@o}@tVWowBRvjIwl5w4yYv@r)%=+f&>-)(;WK~G9K_3TTLfP*>VLAT&`1#qwK zBwsXiBGDkAt?3FQ*i{kLIX(!wb>IJ%_m?Df9TsoGE0^O@8%3{kStSu3lB`=pEJmQ} zt`3VGv*yvWU?%BU(R?uheVI{(Sy}{`wA)$e`~$qNVrZx<&m{zkEZaZlBE@%3lxVT&t>-)zVDwKe zxYxHTbO@5UW_{_fQP982!_VVvT_r&;@1x(u_VvD>6L)PgGFmWav7KuxNw?o$G#w9Y zZLh@YJ?)10Po-VqkZ3oU;P9>sy>XISt$MTeKA|{XM?{0|@XtkrkSGTgJvbty|7pnd z!ouNVLTu|ZnJ_|&gEGf;uSQh?+Uf&+HY7K#QNR3NNcU~?ZT>9cqtL}Q_1e@g;$;#) zk=9flKN8zPm?O`>ZwUOC-O<_(>Rqn_o0TJyh68e!FNm=>m>I~e0Ua!{k`xwzLz{!Y zG$lqFuYR0{3lI@{K7Z4XSb~3C4ZMvv4-o8+P~54?0+~Gh)JpG+-4U7fS*(c5`R*AN z#fvpi{o$W{@QuW<-f^Mo#6_cF1<*qKN~`9e+tn89_;axa*6lWo;}GDYW&C&4tw2Es z9^q9(SrEnmh z`&%iJ3z~5#dT^NR7g8L*zID1MxA}Qy?|-fdv#DYPfu~#-JJ~5yHc>TU-CNHjOy&$P z%Gp}VU4st^+(cl-?pz5^bRL<4nNSi2%1rF~M+@s&?F1sg7O|d09GBvUkx{U~=^Fe! z^cqXNX~t}aKcUvqbv3>+lYHfS3+@b8m_U)z%ETm2;UWmXzkqdcmDl)vkx!1aiuftO zqITM+F9BH014Yrwn){KIyP;SypdNvAMq|KAHST@B2|rWAv!i=oc2dg)#0DD{@oC#0 z3_!GOEnG~n>#3^EXxEZ=Py=AOW}gtaD-Y|fjs;NI9eI;B$%$|8AOLeqqbcn|(o3LU+`Twe;Nze#CT{91vzAz|wSL}s zLn9+yrQPT*A@k-$Enzihz!;_{XwsJ!1%Y?am(%McCz+7|dukGL9By0?`8rNcM7R}R zV6w#~rgssXE1aHkG|DUXk@w*5@8!QqI8K4EK1L@+PMN3nvtPA485P0{n6otfaEnq{ zI(UJ$T+mWjcXLyx)G0ay9CEO;zTVjF{M2|~=|*e$O%&6Z$DH>CLn08^+UESgMA56} zzm^Q1Oep+8D)+BL>gT$;m*RR(tfOv{19xP4R{F861r72a4{p#3kvMDbrN1s{vkzxT z&(^O!x`VhfwwpGD3ZsxBe6jp<1+dX&9X~|Rdwn{x65YmCN$gZzY7WX7>7oDnyhvk*f5f7 z7}|h`3qOkkXS@lSy2M}`MRLj_e6I%&iz1$mg5k1Aw9_Zea8`4N-F0bXJgTVk6#xyf z0bHaL3$$u<&R_-)Sud#-=6q&7=7dumt{ozwDI^dG%2Q4OIf!^g(8QWy>@mup+s`NZccf|WBaIUh4Oppnn zC9=}W1h2(2CrOZiw#4Q}R(KmEvW?%NY6!w}#aI_ak=%2ZO&2ESB=P)=`BzmEGu$m< zdS$KPAC){_1a`=ctX5HbPw)NxuxMAZazK0IP+Ln+mM5#>cTOj5iA_jB_4|Aj0C}9T zPI|`k;_o_F_`wnL4$)21yxmx%aa>Uj%u*Y!eO68q_>;!6lS8{^~jCvyq)K# zmdEm)A0#9G`Qz%DqpFQ0#j@GQ7az~|mTj||(RcHI1YewH;v=w{B*&^kRh|a7@tD7or9?!oZf|=k zDa#Qr%v7#F&#sZM-Gm-M+=9rjG=2@Luo(xBXZ%>BWgD^+M801yQfIoR{nWeUz^tN1 z`AX9pWxPe;2ZXVtn?q;;SAkbaPs_JqSHNR^Q>BXAdK|rz95>EAbwY|N!v0L%)=N!q z&q&^yxSUyzEbEc00Q`8WasSH5KCz~%6n$fm9?Wq?eE>H#B(d^KO~pORYr z_q=);QDe8-Z+Ss5*IDlKeZfB2lGFUxsEJ8(zO(au`fdJ>!VKO9bpM%H1as)eYCD6AN`Err+)=?zg8^wE%f`77`*_yYp8| z9dJV%m}8#^PsRiGI2P~yPo?0;S7p}|yq%azIioarG!p^g4btHRwC=Qi2tT$TkvGYB zuJpw5-D+vokM?Nj8e09u&Pn1jkte>-gMBkVOL>H@b!%StJ?8fGy4 zXU^Odtv`)RAvnN21Zz$J+0o`eOWZKHG7O9DV-Rgtq=t3(E~MWze%AH{i5kE}nHoQ? z9flw)%gL|BdTbb5h9Ci5L53O&@8Qjbw)=|JNG`)4wyV85I`TXCeB818&&n2Le`DUxn5_ znrfVU#y5gUz?Yl6PO44EG#Bl8m`nS69Cue}hG$lPCqgV1$7L%$yu6-H|yMjR zhb1ZKwrEi2R?L4qV-D&KQS>W5jdR#qB8)YLZWq}+QEjR5-U6RsJ3Jf3gRbi6hBEM{ zax_2EW%QLLDvMuMqVtyAaa&u^kjV*dj+d8`9vQZt^dm!3BV1_X zWu2O-^@0)kQQ5iaO=#A_;kL)&0;{AR7l2*FCG!NgQ(&BVPVIoX{b*Q~bbUiKnEr@O z3D)0JsDw`R3I2HS7Iq{Q{jcvFtgy~qgZ{3xE>Flj-;Zvfe7x@05-V2Hqe99#`CC-_ zEpwBV$o6DxG)oUMkZc|CvObbGgfMeF6`T+Vye8VIU{ZfBHuc> z$9vuo-y)HdS~X|)wwAKT-dc$}pK|Xf;m{8a?#xT8s{@FppeI{s{&>}=x=}l?fXt6; zicH2M7bV{4MZu;?UpfllqM9LU=nVqyBPWTBExsYSLyktaN2?l0ur0UF{tew~oyEM; z;c=%)Tj#3cBHT0UDx4ebr(uCRu0!Em#L!V7G>`k)(3_Hfs#8S%{hu3{q0qpnnv^<_ zh{#`TtkI1%}BZufZpoB}GP|xo${(ohR|$eZB6#LvhXj zQn9H?ie<3E!5-|`(A2&z!F{&**2ZVLLuZ)5V6d^WxWoPkBy%O02}0SX)7g)Q5TAZ( zf7~|MxjwxtyuvDcCd58c)UCTDWa~!naWuSR zAl%6v!6v+2D63)~7%*LbrW7%3W3%C;_W}RydpW)69QNAp@Bx307;N*4|Bu6e z>L-q(YY(}CCi~_@8(FhYZ{AB)+gL8L(cs2FUB*4FUw^VVoVxAADo0-g6e~C0J+{7^ z-PHR6v{Jk~hZBj>wRUJOnS14A4_bEGkBWU$O| zLEwK=i9Vtm4#qposCcE)J0~wC+pFKJ<5yb6d1Fe%0qeGH8xb-ntVwrqh2^atVnYL_ zfEkJLG&#-Nn+boAKXpV?X|7z7P=)HV2DC04*QzF}<2e>cz}K>D*2yxae4FMp=1L&A zR+GJ$cK?Gz?z66dq#-YQ_Yk7%tYv+YoS(~LMkP1iGj#j{jXfIbT7nF|h?z>=p2Lim zSOK4^yRTn)G75AX(vvVcv1P6qQl&=*W_S0Jvce};xVTme+b=2G1)iOkELt?qauj|i zomkb$lwpxB27mmV5b(xt*&@j27TP=Eg(gV^JFcD{9j>sy#S-mUTb{M$I}k6c2p!b-ZIIycNB)@PC0eeC^cy={LcXW z+=u#&Lv_0_9HWsy+30)p@-rh=EKa^xj{JtP-&RxitFi#?>QbQ~sF$H35HLe|Wk*Cs zr98TTgtRxPdv@li3h4ZN{S92YUwL)R*L2?02%#&S_lox&e(rF}Mnj*0dG*=8KIqp~AN zt3OMi4NK#fw{2}r+jY*A4x!B7_Ji=pcI2LUI>;)1aprT$L8RVpWKy!qo80cihLii}>7}>wR{{ewqYft|N}~v9a-;XP$gmFfyK(?I1N> zz%2}K3w!|ZaG5#3XpYeWht66@AhB6h@$Emjynr_(hZ0 z6P>g_-%|)vSIHDoHf4qo9N)t~P0NPv^$|l9JtSX@(wFP1Y_x1KumvSMjBLU6saWh% zI#v^Z)B8`#^NmHWY_K2Vw=-rCW3E||)X#*&DKq*NpnaabkG@KQj_0Y#;^C#_Y~X7a zNFe^KCivbK2cIDz+jz7shQtXt=RdZ1Sd(kBzjN$FmtKnGu_h(|G>DL4VTs%ZW>G8` z=mi!(+Ba-Jj|c|ia&{*r&Lc$V0*83{0?o#n@mo#>(g1FeZQ=O#7F&+S(Q_1hO#G}> z@5{GjC(|A0tF_)PrcMCj?kY0(5=*#WC23bmK zJLxxsq9P_uAtuRKb^Q;fl!rXACC1SjlPX98t|aLXUD8rx4t%coHxjA?8zA0Qh2Ah_ zk=bNM=5Mp8Z|1j#{j(`B$-X&3e7pbIk9ekeqO^`I>JV?O8&VS`YMiNJ6+9<-D3+5a zZCzviiODL8{S+6Q*}O5T@KOX;)vibTGX0G4Dro!OiN|=wRk@j)LE#1&3h52o_cJDQ z$1TBwr0ZzWAe#0v&(>&mm{1z^+wAFZjhueuIdwZ#g3uu!XUw>-bp9FXZ|Bs&xo;o> zxO<`d{<>?oiefe=Y1;q*TpyoJf43?OBZ`Iu@mklJeJL!ltb2^VQBmfRZA+M>5%1uc z$BvFvRkN>mFM&etdbrI*c?{q&-WQ*_&)`fZ(d%HQM0fI)6&`oYH88p8glg0T!* zfT=#=kp5tF`8OjVZ z#`2SZGbQi~&^;g=KgXeV z|F~b_#2l?0s@m8=?~!-@&S$6^67-G!XA=CRWjQM@gOe;=K;nI9pu}r+a?Zp8= zsCA0cyVWMlRk^SKO}9UXbam<$l@=_ooTj73Jx_nf%)BGz(H;n_|21=St2G8F*Nv5n zk4_o?aK)NNV&P$#hlB&gGpL=AqVc5HC`MeClFg4-p|DYiaO~K!2j+`d*1b|h%zs<$ z4Qm0~%EX>#%q#25#a^vI((rqxDcryIh+njbsbdvI3+9uG45oV$``tR0WxXH^4LG?NSp0jk5yEUIukfV1h zmS#;&fiOD1M_#(`{?B&R)dzW{J)=ctFB3PD*YrPJcQjnlf!F+p671z0}=a64QNN#}m#Sd^PPj2Y#ZD+6`E_T_0?VfI>-3Dny&$Mc!r zrFTYBYkSKGnEiIy2z%QCM7Nk~M02j_R8O=l31Kj^Wx}YGAx-SilKLIf z5fx_5oKoxgOc`|?htypk#785sH*|>;H=Zv)^P6xvKx+Wth!kv}^zz@$ueH@5yl&=3 zYR$)yzDSx^%hP;WpxS2t%l91$V$l>#*h>xFOC2l?Jz8;P{#`ozpN$Z6MpX7cXXPW! zh3R$GQ*w*?i`J+aq}8!m_F>JeSM}GujDaGfl1srE7I+>)&*0-;PN`1+T7?W>_Rq1E zNGy{sQ#*e7&LEEvB1#;|qZ2{C`8^9y`3!3xe;~6VXNiS_b$Za-$Ff$9md4gmEC3La zvp_({_+f-L!cuqO4+8`DoXyW(@wAqk5STZ<9v9ygj$u4hI*{$XaT#X!Ff3c%Krc-Q zw%udPtQuY9FBigkv80n+UnZA*G6SZdzbOccak8fro>`fO{TG1lb%8oKbj~?F?)n&+ z$@^amR;@F258ktA%**~A+4&Mz3*eRef2ca|Xg2@&?c1tS+M21LrLAh!E{Q!_iW)^* zn_AIo2{B@?S`~W}dwtccy(Luat@el=6hZ9u_?_pR=lq`k?{oimf9}uwdSBP;QgK7! z(#SWrz;*qXW&~m8<>^+)Yj6wD3t6^sdE~lb?*U9g$|VL%7D7$J4_aD55B?jt=OuKk zj4pJ11r z6Sfhkq?uT^@>*33(Y%gX0rY7O#gEvZ42uPGG-MKwBoj~TX)!88C8@Q{+ebgHAxC@n zI#KjS(M(EWD2G`g|2^iGsBK&YAs+0oBOvfsMRD+#s170)Gxgw%|KVDucH@ln?H)P2 z?dL@e*uJor-ObL)1f@H_j9bL5daf}#D&O7HM=1J;s-F{(>ExY z<5smAL$aqc=E(L}dL;#4Q8~u;XLsW!%d_e!5&%ABB5ik33LtY7%}I!kZ_{}cv>?dz z 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

?`&@XTmJJA^mZou-V`h2K{Eo>dYp^vuLJ6E_W z>i0OM9}I4R3Ss6`lYBxNxPeTtcG(>Z{IK?PaA!)Cfj__gIi1AszKBM!=-x**Y@AXG zUV?(KKj1rNqLp6`7b0P^iUbNPd@p9~s){0@p$ zXq!;gFuwcIxtu$6kk0x|E~H8S(w9N0v9JgB%?wL4whdKP+RN?%^LJtZDuz$kW0Lnm zr!HplwCS0Lq7oGR=EbFDj%9Qdmzhv>PBl^`(+fZMiN(*s5?7nBjfDa9xzd=7l)AFy z>$~yJDZOD757^mb0tu;70q2;zTT91NT9@}P(BA)l)_$Myj;JZ;{ro>s`-c!W?ByZ; zcsKj3DAI;Cl5)h&D|=U`+Gl;>!x}8PXm) z?-s~`{WYH^0te(XG`d|bEpFG~(pW#5k?TW^TBQU-RDiRY9wIg$KaXt8!=7~CJGSO* z)p@*l%JS%AkK03>4^8};b7pcG%3J5DL!*{U7YhNU1s>&SFf<@m z)=^D9@V_4*AgzKhTH&jJ(xY4HR!~q{2aN7+rKCX`Mt4hz)Bu6eW3+UP7&&6psLSu3 zbMHC#{`dU3^E^ABe!t#pyPQQhD*Z#1ZKtxhqi)Ae-WMTVv&%Hxlr)2dE*u5O_q1Gh zY*bvSG+!`#VfkoK?hYAY^pSoNS8q&ysXx(cwM>bXGV=XzQ<88pj8sWl$GZ0wa5SqR6F6T6^07=P6#EJnXb2_qN#E$MEEM$kh?ZUUKQ~V9mR;HB=%r!U zxVW0gxz%Ynxjzz5{n^G$(DNFea1WEmsz&1_?bi#4oI|dJEzkAzNwcF;VWp)LYP!Jv z#K)(a=u15&3bQGgioTd=F%Cd?7`@d=&~!Lr)zOf_%w{-0

{67gJy2usQim{s4^> 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

nAVc7O0@8^LJ%hRQfpXeXqODOCp@mgcXdfR;=3v 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

y#F}=GeH-7&scPq|r~A1} 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 requirements.txt +echo "openai" >> requirements.txt + +# Install dependencies +pip install -r requirements.txt +``` + +**Benefits of pip:** +- Familiar workflow for most Python developers +- Simple requirements.txt management +- Wide compatibility +{% endif %} + +### 3. Configure Credentials +Options: +1. Add any required credentials to your manifest.yaml via the `env` section +2. Export them in your shell: `export OPENAI_API_KEY=...` +3. For local development, create a `.env.local` file in the project directory + +## Local Development + +### 1. Start the Agentex Backend +```bash +# Navigate to the backend directory +cd agentex + +# Start all services using Docker Compose +make dev + +# Optional: In a separate terminal, use lazydocker for a better UI (everything should say "healthy") +lzd +``` + +### 3. Run Your Agent +```bash +# From this directory +export ENVIRONMENT=development && agentex agents run --manifest manifest.yaml +``` + +### 4. Interact with Your Agent + +**Option 1: Web UI (Recommended)** +```bash +# Start the local web interface +cd agentex-web +make dev + +# Then open http://localhost:3000 in your browser to chat with your agent +``` + +**Option 2: CLI (Deprecated)** +```bash +# Submit a task via CLI +agentex tasks submit --agent {{ agent_name }} --task "Your task here" +``` + +## Development Tips + +### Environment Variables +- Set environment variables in project/.env for any required credentials +- Or configure them in the manifest.yaml under the `env` section +- The `.env` file is automatically loaded in development mode + +### Local Testing +- Use `export ENVIRONMENT=development` before running your agent +- This enables local service discovery and debugging features +- Your agent will automatically connect to locally running services + +### Sync ACP Considerations +- Responses must be immediate (no long-running operations) +- Use streaming for longer responses +- Keep processing lightweight and fast +- Consider caching for frequently accessed data + +### Debugging +- Check agent logs in the terminal where you ran the agent +- Use the web UI to inspect task history and responses +- Monitor backend services with `lzd` (LazyDocker) +- Test response times and optimize for speed + +### To build the agent Docker image locally (normally not necessary): + +1. First, set up CodeArtifact authentication: +```bash +../../setup-build-codeartifact.sh +``` + +2. Build the agent image: +```bash +agentex agents build --manifest manifest.yaml --secret 'id=codeartifact-pip-conf,src=.codeartifact-pip-conf' +``` +{% if use_uv %} +```bash +# Build with uv +agentex agents build --manifest manifest.yaml --push +``` +{% else %} +```bash +# Build with pip +agentex agents build --manifest manifest.yaml --push +``` +{% endif %} + + +## Advanced Features + +### Streaming Responses +Handle long responses with streaming: + +```python +# In project/acp.py +@acp.on_message_send +async def handle_message_send(params: SendMessageParams): + # For streaming responses + async def stream_response(): + for chunk in generate_response_chunks(): + yield TaskMessageUpdate( + content=chunk, + is_complete=False + ) + yield TaskMessageUpdate( + content="", + is_complete=True + ) + + return stream_response() +``` + +### Custom Response Logic +Add sophisticated response generation: + +```python +# In project/acp.py +@acp.on_message_send +async def handle_message_send(params: SendMessageParams): + # Analyze input + user_message = params.content.content + + # Generate response + response = await generate_intelligent_response(user_message) + + return TextContent( + author=MessageAuthor.AGENT, + content=response + ) +``` + +### Integration with External Services +{% if use_uv %} +```bash +# Add service clients +agentex uv add httpx requests-oauthlib + +# Add AI/ML libraries +agentex uv add openai anthropic transformers + +# Add fast processing libraries +agentex uv add numpy pandas +``` +{% else %} +```bash +# Add to requirements.txt +echo "httpx" >> requirements.txt +echo "openai" >> requirements.txt +echo "numpy" >> requirements.txt +pip install -r requirements.txt +``` +{% endif %} + +## Troubleshooting + +### Common Issues + +1. **Agent not appearing in web UI** + - Check if agent is running on port 8000 + - Verify `ENVIRONMENT=development` is set + - Check agent logs for errors + +2. **Slow response times** + - Profile your message handling code + - Consider caching expensive operations + - Optimize database queries and API calls + +3. **Dependency issues** +{% if use_uv %} + - Run `agentex uv sync` to ensure all dependencies are installed + - Check if CodeArtifact authentication is working +{% else %} + - Run `pip install -r requirements.txt` + - Check if all dependencies are correctly listed in requirements.txt +{% endif %} + +4. **Port conflicts** + - Check if another service is using port 8000 + - Use `lsof -i :8000` to find conflicting processes + +Happy building with Sync ACP! 🚀⚡ \ No newline at end of file diff --git a/src/agentex/lib/cli/templates/sync/deploy/example.yaml.j2 b/src/agentex/lib/cli/templates/sync/deploy/example.yaml.j2 new file mode 100644 index 000000000..d4874d5ba --- /dev/null +++ b/src/agentex/lib/cli/templates/sync/deploy/example.yaml.j2 @@ -0,0 +1,55 @@ +# Example Override Configuration +# ============================= +# This file shows how to override deployment settings from the global defaults in manifest.yaml. +# You can create multiple override files for different environments (e.g., staging.yaml, prod.yaml, dev.yaml) +# Only specify values that differ from the global defaults in manifest.yaml + +# Override image tag +# image: +# tag: "v1.2.3" + +# Override replica count +# replicaCount: 2 + +# Environment-specific environment variables +# env: +# - name: LOG_LEVEL +# value: "DEBUG" +# - name: ENVIRONMENT +# value: "staging" + +# Override resource requirements +# resources: +# requests: +# cpu: "250m" +# memory: "512Mi" +# limits: +# cpu: "500m" +# memory: "1Gi" + +# Advanced: Additional helm chart value overrides +# Use this for any helm chart values not covered by the simple options above +# additional_overrides: +# autoscaling: +# enabled: true +# minReplicas: 2 +# maxReplicas: 10 +# targetCPUUtilizationPercentage: 70 +# +# service: +# type: LoadBalancer +# +# ingress: +# enabled: true +# annotations: +# kubernetes.io/ingress.class: "nginx" +# hosts: +# - host: {{ agent_name }}.example.com +# paths: +# - path: / +# pathType: Prefix + +# To use this configuration: +# 1. Copy this file to a new file (e.g., staging.yaml, prod.yaml) +# 2. Uncomment and modify the values you want to override +# 3. Deploy with: agentex agents deploy --cluster your-cluster --namespace your-namespace --override-file staging.yaml \ No newline at end of file diff --git a/src/agentex/lib/cli/templates/sync/manifest.yaml.j2 b/src/agentex/lib/cli/templates/sync/manifest.yaml.j2 new file mode 100644 index 000000000..213849abe --- /dev/null +++ b/src/agentex/lib/cli/templates/sync/manifest.yaml.j2 @@ -0,0 +1,116 @@ +# Agent Manifest Configuration +# --------------------------- +# This file defines how your agent should be built and deployed. + +# Build Configuration +# ------------------ +# The build config defines what gets packaged into your agent's Docker image. +# This same configuration is used whether building locally or remotely. +# +# When building: +# 1. All files from include_paths are collected into a build context +# 2. The context is filtered by dockerignore rules +# 3. The Dockerfile uses this context to build your agent's image +# 4. The image is pushed to a registry and used to run your agent +build: + context: + # Root directory for the build context + root: ../ # Keep this as the default root + + # Paths to include in the Docker build context + # Must include: + # - Your agent's directory (your custom agent code) + # These paths are collected and sent to the Docker daemon for building + include_paths: + - {{ project_path_from_build_root }} + + # Path to your agent's Dockerfile + # This defines how your agent's image is built from the context + # Relative to the root directory + dockerfile: {{ project_path_from_build_root }}/Dockerfile + + # Path to your agent's .dockerignore + # Filters unnecessary files from the build context + # Helps keep build context small and builds fast + dockerignore: {{ project_path_from_build_root }}/.dockerignore + + +# Local Development Configuration +# ----------------------------- +# Only used when running the agent locally +local_development: + agent: + port: 8000 # Port where your local ACP server is running + host_address: host.docker.internal # Host address for Docker networking (host.docker.internal for Docker, localhost for direct) + + # File paths for local development (relative to this manifest.yaml) + paths: + # Path to ACP server file + # Examples: + # project/acp.py (standard) + # src/server.py (custom structure) + # ../shared/acp.py (shared across projects) + # /absolute/path/acp.py (absolute path) + acp: project/acp.py + + +# Agent Configuration +# ----------------- +agent: + acp_type: sync + # Unique name for your agent + # Used for task routing and monitoring + name: {{ agent_name }} + + # Description of what your agent does + # Helps with documentation and discovery + description: {{ description }} + + # Temporal workflow configuration + # Set enabled: true to use Temporal workflows for long-running tasks + temporal: + enabled: false + + # Optional: Credentials mapping + # Maps Kubernetes secrets to environment variables + # Common credentials include: + # credentials: + # - env_var_name: OPENAI_API_KEY + # secret_name: openai-api-key + # secret_key: api-key + + # Optional: Set Environment variables for running your agent locally as well + # as for deployment later on + # env: + # OPENAI_API_KEY: "" + # OPENAI_BASE_URL: "" + # OPENAI_ORG_ID: "" + + +# Deployment Configuration +# ----------------------- +# Configuration for deploying your agent to Kubernetes clusters +deployment: + # Container image configuration + image: + repository: "" # Update with your container registry + tag: "latest" # Default tag, should be versioned in production + + # Global deployment settings that apply to all clusters + # These can be overridden in cluster-specific files (deploy/*.yaml) + global: + agent: + name: "{{ agent_name }}" + description: "{{ description }}" + + # Default replica count + replicaCount: 1 + + # Default resource requirements + resources: + requests: + cpu: "500m" + memory: "1Gi" + limits: + cpu: "1000m" + memory: "2Gi" \ No newline at end of file diff --git a/src/agentex/lib/cli/templates/sync/project/acp.py.j2 b/src/agentex/lib/cli/templates/sync/project/acp.py.j2 new file mode 100644 index 000000000..d990f5c5d --- /dev/null +++ b/src/agentex/lib/cli/templates/sync/project/acp.py.j2 @@ -0,0 +1,27 @@ +from typing import AsyncGenerator, Union +from agentex.lib.sdk.fastacp.fastacp import FastACP +from agentex.lib.types.acp import SendMessageParams + +from agentex.lib.types.task_message_updates import TaskMessageUpdate +from agentex.types.task_messages import TaskMessageContent, TextContent +from agentex.lib.utils.logging import make_logger + +logger = make_logger(__name__) + + +# Create an ACP server +acp = FastACP.create( + acp_type="sync", +) + + +@acp.on_message_send +async def handle_message_send( + params: SendMessageParams +) -> Union[TaskMessageContent, AsyncGenerator[TaskMessageUpdate, None]]: + """Default message handler with streaming support""" + return TextContent( + author="agent", + content=f"Hello! I've received your message. Here's a generic response, but in future tutorials we'll see how you can get me to intelligently respond to your message. This is what I heard you say: {params.content.content}", + ) + diff --git a/src/agentex/lib/cli/templates/sync/pyproject.toml.j2 b/src/agentex/lib/cli/templates/sync/pyproject.toml.j2 new file mode 100644 index 000000000..3230dbecf --- /dev/null +++ b/src/agentex/lib/cli/templates/sync/pyproject.toml.j2 @@ -0,0 +1,41 @@ +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[project] +name = "{{ project_name }}" +version = "0.1.0" +description = "{{ description }}" +readme = "README.md" +requires-python = ">=3.12" +dependencies = [ + "agentex-sdk", + "scale-gp", +] + +[project.optional-dependencies] +dev = [ + "pytest", + "black", + "isort", + "flake8", +] + +[dependency-groups] +editable-apy = [ + "agentex-sdk @ file://{{ agentex_py_path }}", +] + +[tool.hatch.build.targets.wheel] +packages = ["project"] + +[tool.black] +line-length = 88 +target-version = ['py312'] + +[tool.isort] +profile = "black" +line_length = 88 + +[[tool.uv.index]] +url = "https://scale-307185671274.d.codeartifact.us-west-2.amazonaws.com/pypi/scale-pypi/simple/" \ No newline at end of file diff --git a/src/agentex/lib/cli/templates/sync/requirements.txt.j2 b/src/agentex/lib/cli/templates/sync/requirements.txt.j2 new file mode 100644 index 000000000..0b8ae19b3 --- /dev/null +++ b/src/agentex/lib/cli/templates/sync/requirements.txt.j2 @@ -0,0 +1,5 @@ +# Install agentex-sdk from local path +agentex-sdk + +# Scale GenAI Platform Python SDK +scale-gp diff --git a/src/agentex/lib/cli/templates/temporal/.dockerignore.j2 b/src/agentex/lib/cli/templates/temporal/.dockerignore.j2 new file mode 100644 index 000000000..4521d8465 --- /dev/null +++ b/src/agentex/lib/cli/templates/temporal/.dockerignore.j2 @@ -0,0 +1,46 @@ +# Python +__pycache__/ +*.py[cod] +*$py.class +*.so +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +*.egg-info/ +.installed.cfg +*.egg + +# Environments +.env** +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# IDE +.idea/ +.vscode/ +*.swp +*.swo + +# Git +.git +.gitignore + +# Misc +.DS_Store + +# CodeArtifact configuration +.codeartifact-pip-conf \ No newline at end of file diff --git a/src/agentex/lib/cli/templates/temporal/Dockerfile-uv.j2 b/src/agentex/lib/cli/templates/temporal/Dockerfile-uv.j2 new file mode 100644 index 000000000..1980a0fae --- /dev/null +++ b/src/agentex/lib/cli/templates/temporal/Dockerfile-uv.j2 @@ -0,0 +1,51 @@ +# syntax=docker/dockerfile:1.3 +FROM python:3.12-slim +COPY --from=ghcr.io/astral-sh/uv:0.6.4 /uv /uvx /bin/ + +# Install system dependencies +RUN apt-get update && apt-get install -y \ + htop \ + vim \ + curl \ + tar \ + python3-dev \ + postgresql-client \ + build-essential \ + libpq-dev \ + gcc \ + cmake \ + netcat-openbsd \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* + +# Install tctl (Temporal CLI) +RUN curl -L https://github.com/temporalio/tctl/releases/download/v1.18.1/tctl_1.18.1_linux_arm64.tar.gz -o /tmp/tctl.tar.gz && \ + tar -xzf /tmp/tctl.tar.gz -C /usr/local/bin && \ + chmod +x /usr/local/bin/tctl && \ + rm /tmp/tctl.tar.gz + +RUN uv pip install --system --upgrade pip setuptools wheel + +ENV UV_HTTP_TIMEOUT=1000 + +# Copy just the pyproject.toml file to optimize caching +COPY {{ project_path_from_build_root }}/pyproject.toml /app/{{ project_path_from_build_root }}/pyproject.toml + +WORKDIR /app/{{ project_path_from_build_root }} + +# Install the required Python packages using uv +RUN --mount=type=secret,id=codeartifact-pip-conf,target=/etc/pip.conf \ + export UV_INDEX_URL=$(grep -E "^index-url" /etc/pip.conf | cut -d'=' -f2- | xargs) && \ + export UV_EXTRA_INDEX_URL=$(grep -E "^extra-index-url" /etc/pip.conf | cut -d'=' -f2- | xargs || echo "") && \ + uv pip install --system . + +# Copy the project code +COPY {{ project_path_from_build_root }}/project /app/{{ project_path_from_build_root }}/project + +WORKDIR /app/{{ project_path_from_build_root }}/project + +# Run the ACP server using uvicorn +CMD ["uvicorn", "acp:acp", "--host", "0.0.0.0", "--port", "8000"] + +# When we deploy the worker, we will replace the CMD with the following +# CMD ["python", "-m", "run_worker"] \ No newline at end of file diff --git a/src/agentex/lib/cli/templates/temporal/Dockerfile.j2 b/src/agentex/lib/cli/templates/temporal/Dockerfile.j2 new file mode 100644 index 000000000..63bcfeef3 --- /dev/null +++ b/src/agentex/lib/cli/templates/temporal/Dockerfile.j2 @@ -0,0 +1,51 @@ +# syntax=docker/dockerfile:1.3 +FROM python:3.12-slim +COPY --from=ghcr.io/astral-sh/uv:0.6.4 /uv /uvx /bin/ + +# Install system dependencies +RUN apt-get update && apt-get install -y \ + htop \ + vim \ + curl \ + tar \ + python3-dev \ + postgresql-client \ + build-essential \ + libpq-dev \ + gcc \ + cmake \ + netcat-openbsd \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* + +# Install tctl (Temporal CLI) +RUN curl -L https://github.com/temporalio/tctl/releases/download/v1.18.1/tctl_1.18.1_linux_arm64.tar.gz -o /tmp/tctl.tar.gz && \ + tar -xzf /tmp/tctl.tar.gz -C /usr/local/bin && \ + chmod +x /usr/local/bin/tctl && \ + rm /tmp/tctl.tar.gz + +RUN uv pip install --system --upgrade pip setuptools wheel + +ENV UV_HTTP_TIMEOUT=1000 + +# Copy just the requirements file to optimize caching +COPY {{ project_path_from_build_root }}/requirements.txt /app/{{ project_path_from_build_root }}/requirements.txt + +WORKDIR /app/{{ project_path_from_build_root }} + +# Install the required Python packages +RUN --mount=type=secret,id=codeartifact-pip-conf,target=/etc/pip.conf \ + export UV_INDEX_URL=$(grep -E "^index-url" /etc/pip.conf | cut -d'=' -f2- | xargs) && \ + export UV_EXTRA_INDEX_URL=$(grep -E "^extra-index-url" /etc/pip.conf | cut -d'=' -f2- | xargs || echo "") && \ + uv pip install --system -r requirements.txt + +# Copy the project code +COPY {{ project_path_from_build_root }}/project /app/{{ project_path_from_build_root }}/project + +WORKDIR /app/{{ project_path_from_build_root }}/project + +# Run the ACP server using uvicorn +CMD ["uvicorn", "acp:acp", "--host", "0.0.0.0", "--port", "8000"] + +# When we deploy the worker, we will replace the CMD with the following +# CMD ["python", "-m", "run_worker"] \ No newline at end of file diff --git a/src/agentex/lib/cli/templates/temporal/README.md.j2 b/src/agentex/lib/cli/templates/temporal/README.md.j2 new file mode 100644 index 000000000..536658845 --- /dev/null +++ b/src/agentex/lib/cli/templates/temporal/README.md.j2 @@ -0,0 +1,323 @@ +# {{ agent_name }} - AgentEx Temporal Agent Template + +This is a starter template for building asynchronous agents with the AgentEx framework and Temporal. It provides a basic implementation of the Agent 2 Client Protocol (ACP) with Temporal workflow support to help you get started quickly. + +## What You'll Learn + +- **Tasks**: A task is a grouping mechanism for related messages. Think of it as a conversation thread or a session. +- **Messages**: Messages are communication objects within a task. They can contain text, data, or instructions. +- **ACP Events**: The agent responds to four main events: + - `task_received`: When a new task is created + - `task_message_received`: When a message is sent within a task + - `task_approved`: When a task is approved + - `task_canceled`: When a task is canceled +- **Temporal Workflows**: Long-running processes that can handle complex state management and async operations + +## Running the Agent + +1. Run the agent locally: +```bash +agentex agents run --manifest manifest.yaml +``` + +The agent will start on port 8000 and print messages whenever it receives any of the ACP events. + +## What's Inside + +This template: +- Sets up a basic ACP server with Temporal integration +- Handles each of the required ACP events +- Provides a foundation for building complex async agents +- Includes Temporal workflow and activity definitions + +## Next Steps + +For more advanced agent development, check out the AgentEx tutorials: + +- **Tutorials 00-08**: Learn about building synchronous agents with ACP +- **Tutorials 09-10**: Learn how to use Temporal to power asynchronous agents + - Tutorial 09: Basic Temporal workflow setup + - Tutorial 10: Advanced Temporal patterns and best practices + +These tutorials will help you understand: +- How to handle long-running tasks +- Implementing state machines +- Managing complex workflows +- Best practices for async agent development + +## The Manifest File + +The `manifest.yaml` file is your agent's configuration file. It defines: +- How your agent should be built and packaged +- What files are included in your agent's Docker image +- Your agent's name and description +- Local development settings (like the port your agent runs on) +- Temporal worker configuration + +This file is essential for both local development and deployment of your agent. + +## Project Structure + +``` +{{ project_name }}/ +├── project/ # Your agent's code +│ ├── __init__.py +│ ├── acp.py # ACP server and event handlers +│ ├── workflow.py # Temporal workflow definitions +│ ├── activities.py # Temporal activity definitions +│ └── run_worker.py # Temporal worker setup +├── Dockerfile # Container definition +├── manifest.yaml # Deployment config +{% if use_uv %} +└── pyproject.toml # Dependencies (uv) +{% else %} +└── requirements.txt # Dependencies (pip) +{% endif %} +``` + +## Development + +### 1. Customize Event Handlers +- Modify the handlers in `acp.py` to implement your agent's logic +- Add your own tools and capabilities +- Implement custom state management + +### 2. Develop Temporal Workflows +- Edit `workflow.py` to define your agent's async workflow logic +- Modify `activities.py` to add custom activities +- Use `run_worker.py` to configure the Temporal worker + +### 3. Manage Dependencies + +{% if use_uv %} +You chose **uv** for package management. Here's how to work with dependencies: + +```bash +# Add new dependencies +agentex uv add requests openai anthropic + +# Add Temporal-specific dependencies (already included) +agentex uv add temporalio + +# Install/sync dependencies +agentex uv sync + +# Run commands with uv +uv run agentex agents run --manifest manifest.yaml +``` + +**Benefits of uv:** +- Faster dependency resolution and installation +- Better dependency isolation +- Integrated CodeArtifact support +- Modern Python packaging standards + +{% else %} +You chose **pip** for package management. Here's how to work with dependencies: + +```bash +# Probably create a conda env for your agent. +# Optionally add agentex-sdk editable installation + +# Edit requirements.txt manually to add dependencies +echo "requests" >> requirements.txt +echo "openai" >> requirements.txt + +# Temporal dependencies are already included +# temporalio is already in requirements.txt + +# Install dependencies +pip install -r requirements.txt +``` + +**Benefits of pip:** +- Familiar workflow for most Python developers +- Simple requirements.txt management +- Wide compatibility +{% endif %} + +### 4. Configure Credentials +- Add any required credentials to your manifest.yaml +- For local development, create a `.env` file in the project directory +- Use `load_dotenv()` only in development mode: + +```python +import os +from dotenv import load_dotenv + +if os.environ.get("ENVIRONMENT") == "development": + load_dotenv() +``` + +## Local Development + +### 1. Start the Agentex Backend +```bash +# Navigate to the backend directory +cd agentex + +# Start all services using Docker Compose +make dev + +# Optional: In a separate terminal, use lazydocker for a better UI (everything should say "healthy") +lzd +``` + +### 2. Setup Your Agent's requirements/pyproject.toml +```bash +agentex uv sync [--group editable-apy] +source .venv/bin/activate + +# OR +conda create -n {{ project_name }} python=3.12 +conda activate {{ project_name }} +pip install -r requirements.txt +``` +### 3. Run Your Agent +```bash +# From this directory +export ENVIRONMENT=development && [uv run] agentex agents run --manifest manifest.yaml +``` +4. **Interact with your agent** + +Option 0: CLI (deprecated - to be replaced once a new CLI is implemented - please use the web UI for now!) +```bash +# Submit a task via CLI +agentex tasks submit --agent {{ agent_name }} --task "Your task here" +``` + +Option 1: Web UI +```bash +# Start the local web interface +cd agentex-web +make dev + +# Then open http://localhost:3000 in your browser to chat with your agent +``` + +## Development Tips + +### Environment Variables +- Set environment variables in project/.env for any required credentials +- Or configure them in the manifest.yaml under the `env` section +- The `.env` file is automatically loaded in development mode + +### Local Testing +- Use `export ENVIRONMENT=development` before running your agent +- This enables local service discovery and debugging features +- Your agent will automatically connect to locally running services + +### Temporal-Specific Tips +- Monitor workflows in the Temporal Web UI at http://localhost:8080 +- Use the Temporal CLI for advanced workflow management +- Check workflow logs for debugging async operations + +### Debugging +- Check agent logs in the terminal where you ran the agent +- Use the web UI to inspect task history and responses +- Monitor backend services with `lzd` (LazyDocker) +- Use Temporal Web UI for workflow debugging + +### To build the agent Docker image locally (normally not necessary): + +1. First, set up CodeArtifact authentication: +```bash +../../setup-build-codeartifact.sh +``` + +2. Build the agent image: +```bash +agentex agents build --manifest manifest.yaml --secret 'id=codeartifact-pip-conf,src=.codeartifact-pip-conf' +``` + +## Advanced Features + +### Temporal Workflows +Extend your agent with sophisticated async workflows: + +```python +# In project/workflow.py +@workflow.defn +class MyWorkflow(BaseWorkflow): + async def complex_operation(self): + # Multi-step async operations + # Error handling and retries + # State management + pass +``` + +### Custom Activities +Add custom activities for external operations: + +```python +# In project/activities.py +@activity.defn +async def call_external_api(data): + # HTTP requests, database operations, etc. + pass +``` + +### Integration with External Services +{% if use_uv %} +```bash +# Add service clients +agentex uv add httpx requests-oauthlib + +# Add AI/ML libraries +agentex uv add openai anthropic transformers + +# Add database clients +agentex uv add asyncpg redis +``` +{% else %} +```bash +# Add to requirements.txt +echo "httpx" >> requirements.txt +echo "openai" >> requirements.txt +echo "asyncpg" >> requirements.txt +pip install -r requirements.txt +``` +{% endif %} + +## Troubleshooting + +### Common Issues + +1. **Agent not appearing in web UI** + - Check if agent is running on port 8000 + - Verify `ENVIRONMENT=development` is set + - Check agent logs for errors + +2. **Temporal workflow issues** + - Check Temporal Web UI at http://localhost:8080 + - Verify Temporal server is running in backend services + - Check workflow logs for specific errors + +3. **Dependency issues** +{% if use_uv %} + - Run `agentex uv sync` to ensure all dependencies are installed + - Check if CodeArtifact authentication is working + - Verify temporalio is properly installed +{% else %} + - Run `pip install -r requirements.txt` + - Check if all dependencies are correctly listed in requirements.txt + - Verify temporalio is installed correctly +{% endif %} + +4. **Port conflicts** + - Check if another service is using port 8000 + - Use `lsof -i :8000` to find conflicting processes + +### Temporal-Specific Troubleshooting + +1. **Workflow not starting** + - Check if Temporal server is running (`docker ps`) + - Verify task queue configuration in `run_worker.py` + - Check workflow registration in the worker + +2. **Activity failures** + - Check activity logs in the console + - Verify activity registration + - Check for timeout issues + +Happy building with Temporal! 🚀⚡ \ No newline at end of file diff --git a/src/agentex/lib/cli/templates/temporal/deploy/example.yaml.j2 b/src/agentex/lib/cli/templates/temporal/deploy/example.yaml.j2 new file mode 100644 index 000000000..d4874d5ba --- /dev/null +++ b/src/agentex/lib/cli/templates/temporal/deploy/example.yaml.j2 @@ -0,0 +1,55 @@ +# Example Override Configuration +# ============================= +# This file shows how to override deployment settings from the global defaults in manifest.yaml. +# You can create multiple override files for different environments (e.g., staging.yaml, prod.yaml, dev.yaml) +# Only specify values that differ from the global defaults in manifest.yaml + +# Override image tag +# image: +# tag: "v1.2.3" + +# Override replica count +# replicaCount: 2 + +# Environment-specific environment variables +# env: +# - name: LOG_LEVEL +# value: "DEBUG" +# - name: ENVIRONMENT +# value: "staging" + +# Override resource requirements +# resources: +# requests: +# cpu: "250m" +# memory: "512Mi" +# limits: +# cpu: "500m" +# memory: "1Gi" + +# Advanced: Additional helm chart value overrides +# Use this for any helm chart values not covered by the simple options above +# additional_overrides: +# autoscaling: +# enabled: true +# minReplicas: 2 +# maxReplicas: 10 +# targetCPUUtilizationPercentage: 70 +# +# service: +# type: LoadBalancer +# +# ingress: +# enabled: true +# annotations: +# kubernetes.io/ingress.class: "nginx" +# hosts: +# - host: {{ agent_name }}.example.com +# paths: +# - path: / +# pathType: Prefix + +# To use this configuration: +# 1. Copy this file to a new file (e.g., staging.yaml, prod.yaml) +# 2. Uncomment and modify the values you want to override +# 3. Deploy with: agentex agents deploy --cluster your-cluster --namespace your-namespace --override-file staging.yaml \ No newline at end of file diff --git a/src/agentex/lib/cli/templates/temporal/manifest.yaml.j2 b/src/agentex/lib/cli/templates/temporal/manifest.yaml.j2 new file mode 100644 index 000000000..20f763692 --- /dev/null +++ b/src/agentex/lib/cli/templates/temporal/manifest.yaml.j2 @@ -0,0 +1,137 @@ +# Agent Manifest Configuration +# --------------------------- +# This file defines how your agent should be built and deployed. + +# Build Configuration +# ------------------ +# The build config defines what gets packaged into your agent's Docker image. +# This same configuration is used whether building locally or remotely. +# +# When building: +# 1. All files from include_paths are collected into a build context +# 2. The context is filtered by dockerignore rules +# 3. The Dockerfile uses this context to build your agent's image +# 4. The image is pushed to a registry and used to run your agent +build: + context: + # Root directory for the build context + root: ../ # Keep this as the default root + + # Paths to include in the Docker build context + # Must include: + # - Your agent's directory (your custom agent code) + # These paths are collected and sent to the Docker daemon for building + include_paths: + - {{ project_path_from_build_root }} + + # Path to your agent's Dockerfile + # This defines how your agent's image is built from the context + # Relative to the root directory + dockerfile: {{ project_path_from_build_root }}/Dockerfile + + # Path to your agent's .dockerignore + # Filters unnecessary files from the build context + # Helps keep build context small and builds fast + dockerignore: {{ project_path_from_build_root }}/.dockerignore + + +# Local Development Configuration +# ----------------------------- +# Only used when running the agent locally +local_development: + agent: + port: 8000 # Port where your local ACP server is running + host_address: host.docker.internal # Host address for Docker networking (host.docker.internal for Docker, localhost for direct) + + # File paths for local development (relative to this manifest.yaml) + paths: + # Path to ACP server file + # Examples: + # project/acp.py (standard) + # src/server.py (custom structure) + # ../shared/acp.py (shared across projects) + # /absolute/path/acp.py (absolute path) + acp: project/acp.py + + # Path to temporal worker file + # Examples: + # project/run_worker.py (standard) + # workers/temporal.py (custom structure) + # ../shared/worker.py (shared across projects) + worker: project/run_worker.py + + +# Agent Configuration +# ----------------- +agent: + # Type of agent - either sync or agentic + acp_type: agentic + + # Unique name for your agent + # Used for task routing and monitoring + name: {{ agent_name }} + + # Description of what your agent does + # Helps with documentation and discovery + description: {{ description }} + + # Temporal workflow configuration + # This enables your agent to run as a Temporal workflow for long-running tasks + temporal: + enabled: true + workflows: + # Name of the workflow class + # Must match the @workflow.defn name in your workflow.py + - name: {{ workflow_name }} + + # Queue name for task distribution + # Used by Temporal to route tasks to your agent + # Convention: _task_queue + queue_name: {{ queue_name }} + + # Optional: Credentials mapping + # Maps Kubernetes secrets to environment variables + # Common credentials include: + # credentials: + # - env_var_name: OPENAI_API_KEY + # secret_name: openai-api-key + # secret_key: api-key + + # Optional: Set Environment variables for running your agent locally as well + # as for deployment later on + # env: + # OPENAI_API_KEY: "" + # OPENAI_BASE_URL: "" + # OPENAI_ORG_ID: "" + + +# Deployment Configuration +# ----------------------- +# Configuration for deploying your agent to Kubernetes clusters +deployment: + # Container image configuration + image: + repository: "" # Update with your container registry + tag: "latest" # Default tag, should be versioned in production + + imagePullSecrets: + - name: my-registry-secret # Update with your image pull secret name + + # Global deployment settings that apply to all clusters + # These can be overridden using --override-file with custom configuration files + global: + agent: + name: "{{ agent_name }}" + description: "{{ description }}" + + # Default replica count + replicaCount: 1 + + # Default resource requirements + resources: + requests: + cpu: "500m" + memory: "1Gi" + limits: + cpu: "1000m" + memory: "2Gi" \ No newline at end of file diff --git a/src/agentex/lib/cli/templates/temporal/project/acp.py.j2 b/src/agentex/lib/cli/templates/temporal/project/acp.py.j2 new file mode 100644 index 000000000..6e4cb2f52 --- /dev/null +++ b/src/agentex/lib/cli/templates/temporal/project/acp.py.j2 @@ -0,0 +1,30 @@ +import os +from agentex.lib.sdk.fastacp.fastacp import FastACP +from agentex.lib.types.fastacp import TemporalACPConfig + + +# Create the ACP server +acp = FastACP.create( + acp_type="agentic", + config=TemporalACPConfig( + # When deployed to the cluster, the Temporal address will automatically be set to the cluster address + # For local development, we set the address manually to talk to the local Temporal service set up via docker compose + type="temporal", + temporal_address=os.getenv("TEMPORAL_ADDRESS", "localhost:7233") + ) +) + + +# Notice that we don't need to register any handlers when we use type="temporal" +# If you look at the code in agentex.sdk.fastacp.impl.temporal_acp +# You can see that these handlers are automatically registered when the ACP is created + +# @acp.on_task_create +# This will be handled by the method in your workflow that is decorated with @workflow.run + +# @acp.on_task_event_send +# This will be handled by the method in your workflow that is decorated with @workflow.signal(name=SignalName.RECEIVE_MESSAGE) + +# @acp.on_task_cancel +# This does not need to be handled by your workflow. +# It is automatically handled by the temporal client which cancels the workflow directly \ No newline at end of file diff --git a/src/agentex/lib/cli/templates/temporal/project/run_worker.py.j2 b/src/agentex/lib/cli/templates/temporal/project/run_worker.py.j2 new file mode 100644 index 000000000..6f1fa8e7e --- /dev/null +++ b/src/agentex/lib/cli/templates/temporal/project/run_worker.py.j2 @@ -0,0 +1,33 @@ +import asyncio +import os + +from agentex.lib.core.temporal.activities import get_all_activities +from agentex.lib.core.temporal.workers.worker import AgentexWorker +from agentex.lib.utils.logging import make_logger +from agentex.lib.environment_variables import EnvironmentVariables + +from workflow import {{ workflow_class }} + + +environment_variables = EnvironmentVariables.refresh() + +logger = make_logger(__name__) + + +async def main(): + task_queue_name = environment_variables.WORKFLOW_TASK_QUEUE + if task_queue_name is None: + raise ValueError("WORKFLOW_TASK_QUEUE is not set") + + # Create a worker with automatic tracing + worker = AgentexWorker( + task_queue=task_queue_name, + ) + + await worker.run( + activities=get_all_activities(), + workflow={{ workflow_class }}, + ) + +if __name__ == "__main__": + asyncio.run(main()) \ No newline at end of file diff --git a/src/agentex/lib/cli/templates/temporal/project/workflow.py.j2 b/src/agentex/lib/cli/templates/temporal/project/workflow.py.j2 new file mode 100644 index 000000000..2a0aa9c87 --- /dev/null +++ b/src/agentex/lib/cli/templates/temporal/project/workflow.py.j2 @@ -0,0 +1,66 @@ +import json + +from temporalio import workflow + +from agentex.lib import adk +from agentex.lib.types.acp import CreateTaskParams, SendEventParams +from agentex.lib.core.temporal.workflows.workflow import BaseWorkflow +from agentex.lib.core.temporal.types.workflow import SignalName +from agentex.lib.utils.logging import make_logger +from agentex.types.task_message import TextContent +from agentex.lib.environment_variables import EnvironmentVariables + +environment_variables = EnvironmentVariables.refresh() + +if environment_variables.WORKFLOW_NAME is None: + raise ValueError("Environment variable WORKFLOW_NAME is not set") + +if environment_variables.AGENT_NAME is None: + raise ValueError("Environment variable AGENT_NAME is not set") + +logger = make_logger(__name__) + +@workflow.defn(name=environment_variables.WORKFLOW_NAME) +class {{ workflow_class }}(BaseWorkflow): + """ + Minimal async workflow template for AgentEx Temporal agents. + """ + def __init__(self): + super().__init__(display_name=environment_variables.AGENT_NAME) + self._complete_task = False + + @workflow.signal(name=SignalName.RECEIVE_EVENT) + async def on_task_event_send(self, params: SendEventParams) -> None: + logger.info(f"Received task message instruction: {params}") + + # 2. Echo back the client's message to show it in the UI. This is not done by default so the agent developer has full control over what is shown to the user. + await adk.messages.create(task_id=params.task.id, content=params.event.content) + + # 3. Send a simple response message. + # In future tutorials, this is where we'll add more sophisticated response logic. + await adk.messages.create( + task_id=params.task.id, + content=TextContent( + author="agent", + content=f"Hello! I've received your message. I can't respond right now, but in future tutorials we'll see how you can get me to intelligently respond to your message.", + ), + ) + + @workflow.run + async def on_task_create(self, params: CreateTaskParams) -> str: + logger.info(f"Received task create params: {params}") + + # 1. Acknowledge that the task has been created. + await adk.messages.create( + task_id=params.task.id, + content=TextContent( + author="agent", + content=f"Hello! I've received your task. Normally you can do some state initialization here, or just pass and do nothing until you get your first event. For now I'm just acknowledging that I've received a task with the following params:\n\n{json.dumps(params.params, indent=2)}.\n\nYou should only see this message once, when the task is created. All subsequent events will be handled by the `on_task_event_send` handler.", + ), + ) + + await workflow.wait_condition( + lambda: self._complete_task, + timeout=None, # Set a timeout if you want to prevent the task from running indefinitely. Generally this is not needed. Temporal can run hundreds of millions of workflows in parallel and more. Only do this if you have a specific reason to do so. + ) + return "Task completed" diff --git a/src/agentex/lib/cli/templates/temporal/pyproject.toml.j2 b/src/agentex/lib/cli/templates/temporal/pyproject.toml.j2 new file mode 100644 index 000000000..5a4c873e8 --- /dev/null +++ b/src/agentex/lib/cli/templates/temporal/pyproject.toml.j2 @@ -0,0 +1,42 @@ +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[project] +name = "{{ project_name }}" +version = "0.1.0" +description = "{{ description }}" +readme = "README.md" +requires-python = ">=3.12" +dependencies = [ + "agentex-sdk", + "scale-gp", + "temporalio", +] + +[project.optional-dependencies] +dev = [ + "pytest", + "black", + "isort", + "flake8", +] + +[dependency-groups] +editable-apy = [ + "agentex-sdk @ file://{{ agentex_py_path }}", +] + +[tool.hatch.build.targets.wheel] +packages = ["project"] + +[tool.black] +line-length = 88 +target-version = ['py312'] + +[tool.isort] +profile = "black" +line_length = 88 + +[[tool.uv.index]] +url = "https://scale-307185671274.d.codeartifact.us-west-2.amazonaws.com/pypi/scale-pypi/simple/" \ No newline at end of file diff --git a/src/agentex/lib/cli/templates/temporal/requirements.txt.j2 b/src/agentex/lib/cli/templates/temporal/requirements.txt.j2 new file mode 100644 index 000000000..0b8ae19b3 --- /dev/null +++ b/src/agentex/lib/cli/templates/temporal/requirements.txt.j2 @@ -0,0 +1,5 @@ +# Install agentex-sdk from local path +agentex-sdk + +# Scale GenAI Platform Python SDK +scale-gp diff --git a/src/agentex/lib/cli/utils/cli_utils.py b/src/agentex/lib/cli/utils/cli_utils.py new file mode 100644 index 000000000..46be43759 --- /dev/null +++ b/src/agentex/lib/cli/utils/cli_utils.py @@ -0,0 +1,14 @@ +import typer +from rich.console import Console + +console = Console() + + +def handle_questionary_cancellation( + result: str | None, operation: str = "operation" +) -> str: + """Handle questionary cancellation by checking for None and exiting gracefully""" + if result is None: + console.print(f"[yellow]{operation.capitalize()} cancelled by user[/yellow]") + raise typer.Exit(0) + return result diff --git a/src/agentex/lib/cli/utils/credential_utils.py b/src/agentex/lib/cli/utils/credential_utils.py new file mode 100644 index 000000000..fae4dea6d --- /dev/null +++ b/src/agentex/lib/cli/utils/credential_utils.py @@ -0,0 +1,103 @@ +import subprocess + +from rich.console import Console +from rich.prompt import Confirm, Prompt + +from agentex.lib.types.credentials import CredentialMapping + +console = Console() + + +def check_secret_exists(secret_name: str, namespace: str) -> bool: + """Check if a Kubernetes secret exists in the given namespace.""" + try: + result = subprocess.run( + ["kubectl", "get", "secret", secret_name, "-n", namespace], + capture_output=True, + text=True, + check=False, + ) + return result.returncode == 0 + except Exception: + return False + + +def create_env_var_secret(credential: CredentialMapping, namespace: str) -> bool: + """Create a generic secret for environment variable credentials.""" + console.print( + f"[yellow]Secret '{credential.secret_name}' not found in namespace '{namespace}'[/yellow]" + ) + + if not Confirm.ask( + f"Would you like to create the secret '{credential.secret_name}'?" + ): + return False + + # Prompt for the secret value + secret_value = Prompt.ask( + f"Enter the value for '{credential.secret_key}'", password=True + ) + + try: + # Create the secret using kubectl + subprocess.run( + [ + "kubectl", + "create", + "secret", + "generic", + credential.secret_name, + f"--from-literal={credential.secret_key}={secret_value}", + "-n", + namespace, + ], + capture_output=True, + text=True, + check=True, + ) + + console.print( + f"[green]✓ Created secret '{credential.secret_name}' in namespace '{namespace}'[/green]" + ) + return True + + except subprocess.CalledProcessError as e: + console.print(f"[red]✗ Failed to create secret: {e.stderr}[/red]") + return False + + +# def create_image_pull_secret(credential: ImagePullCredential, namespace: str) -> bool: +# """Create an image pull secret with interactive prompts.""" +# console.print(f"[yellow]Image pull secret '{credential.secret_name}' not found in namespace '{namespace}'[/yellow]") + +# if not Confirm.ask(f"Would you like to create the image pull secret '{credential.secret_name}'?"): +# return False + +# # Prompt for registry details +# registry_server = Prompt.ask("Docker registry server (e.g., docker.io, gcr.io)") +# username = Prompt.ask("Username") +# password = Prompt.ask("Password", password=True) +# email = Prompt.ask("Email (optional)", default="") + +# try: +# # Create the image pull secret using kubectl +# cmd = [ +# "kubectl", "create", "secret", "docker-registry", +# credential.secret_name, +# f"--docker-server={registry_server}", +# f"--docker-username={username}", +# f"--docker-password={password}", +# "-n", namespace +# ] + +# if email: +# cmd.append(f"--docker-email={email}") + +# result = subprocess.run(cmd, capture_output=True, text=True, check=True) + +# console.print(f"[green]✓ Created image pull secret '{credential.secret_name}' in namespace '{namespace}'[/green]") +# return True + +# except subprocess.CalledProcessError as e: +# console.print(f"[red]✗ Failed to create image pull secret: {e.stderr}[/red]") +# return False diff --git a/src/agentex/lib/cli/utils/exceptions.py b/src/agentex/lib/cli/utils/exceptions.py new file mode 100644 index 000000000..efd41b6c5 --- /dev/null +++ b/src/agentex/lib/cli/utils/exceptions.py @@ -0,0 +1,6 @@ +class HelmError(Exception): + """An error occurred during helm operations""" + + +class DeploymentError(Exception): + """An error occurred during deployment""" diff --git a/src/agentex/lib/cli/utils/kubectl_utils.py b/src/agentex/lib/cli/utils/kubectl_utils.py new file mode 100644 index 000000000..abdcf2bf7 --- /dev/null +++ b/src/agentex/lib/cli/utils/kubectl_utils.py @@ -0,0 +1,135 @@ +import subprocess + +from kubernetes import client, config +from kubernetes.client.rest import ApiException +from rich.console import Console + +from agentex.lib.cli.utils.exceptions import DeploymentError +from agentex.lib.utils.logging import make_logger + +logger = make_logger(__name__) +console = Console() + + +class KubernetesClientManager: + """Manages Kubernetes clients for different contexts""" + + def __init__(self): + self._clients: dict[str, client.CoreV1Api] = {} + + def get_client(self, context: str | None = None) -> client.CoreV1Api: + """Get a Kubernetes client for the specified context""" + if context is None: + context = get_current_context() + + if context not in self._clients: + try: + # Load config for specific context + config.load_kube_config(context=context) + self._clients[context] = client.CoreV1Api() + logger.info(f"Created Kubernetes client for context: {context}") + except Exception as e: + raise DeploymentError( + f"Failed to create Kubernetes client for context '{context}': {e}" + ) from e + + return self._clients[context] + + def clear_cache(self): + """Clear cached clients (useful when contexts change)""" + self._clients.clear() + + +def get_current_context() -> str: + """Get the current kubectl context""" + try: + contexts, active_context = config.list_kube_config_contexts() + if active_context is None: + raise DeploymentError("No active kubectl context found") + return active_context["name"] + except Exception as e: + raise DeploymentError(f"Failed to get current kubectl context: {e}") from e + + +# Global client manager instance +_client_manager = KubernetesClientManager() + + +def list_available_contexts() -> list[str]: + """List all available kubectl contexts""" + try: + contexts, _ = config.list_kube_config_contexts() + return [ctx["name"] for ctx in contexts] + except Exception as e: + raise DeploymentError(f"Failed to list kubectl contexts: {e}") from e + + +def validate_cluster_context(cluster_name: str) -> bool: + """Check if a cluster name corresponds to an available kubectl context""" + try: + available_contexts = list_available_contexts() + return cluster_name in available_contexts + except DeploymentError: + return False + + +def switch_kubectl_context(cluster_name: str) -> None: + """Switch to the specified kubectl context""" + try: + # Use subprocess for context switching as it's a local kubeconfig operation + subprocess.run( + ["kubectl", "config", "use-context", cluster_name], + capture_output=True, + text=True, + check=True, + ) + # Clear client cache since context changed + _client_manager.clear_cache() + logger.info(f"Switched to kubectl context: {cluster_name}") + except (subprocess.CalledProcessError, FileNotFoundError) as e: + raise DeploymentError( + f"Failed to switch to kubectl context '{cluster_name}': {e}" + ) from e + + +def validate_namespace(namespace: str, context: str | None = None) -> bool: + """Check if a namespace exists in the specified cluster context""" + try: + k8s_client = _client_manager.get_client(context) + k8s_client.read_namespace(name=namespace) + return True + except ApiException as e: + if e.status == 404: + return False + raise DeploymentError(f"Failed to validate namespace '{namespace}': {e}") from e + except Exception as e: + raise DeploymentError(f"Failed to validate namespace '{namespace}': {e}") from e + + +def check_and_switch_cluster_context(cluster_name: str) -> None: + """Check and switch to the specified kubectl context""" + # Validate cluster context + if not validate_cluster_context(cluster_name): + available_contexts = list_available_contexts() + raise DeploymentError( + f"Cluster '{cluster_name}' not found in kubectl contexts.\n" + f"Available contexts: {', '.join(available_contexts)}\n" + f"Please ensure you have a valid kubeconfig for this cluster." + ) + + # Switch to the specified cluster context + current_context = get_current_context() + if current_context != cluster_name: + console.print( + f"[blue]ℹ[/blue] Switching from context '{current_context}' to '{cluster_name}'" + ) + switch_kubectl_context(cluster_name) + else: + console.print( + f"[blue]ℹ[/blue] Using current kubectl context: [bold]{cluster_name}[/bold]" + ) + + +def get_k8s_client(context: str | None = None) -> client.CoreV1Api: + """Get a Kubernetes client for the specified context (or current context if None)""" + return _client_manager.get_client(context) diff --git a/src/agentex/lib/cli/utils/kubernetes_secrets_utils.py b/src/agentex/lib/cli/utils/kubernetes_secrets_utils.py new file mode 100644 index 000000000..12a843bf8 --- /dev/null +++ b/src/agentex/lib/cli/utils/kubernetes_secrets_utils.py @@ -0,0 +1,185 @@ +import base64 + +from kubernetes import client +from kubernetes.client.rest import ApiException +from rich.console import Console + +from agentex.lib.cli.utils.kubectl_utils import get_k8s_client +from agentex.lib.utils.logging import make_logger + +logger = make_logger(__name__) +console = Console() + +KUBERNETES_SECRET_TYPE_OPAQUE = "Opaque" +KUBERNETES_SECRET_TYPE_DOCKERCONFIGJSON = "kubernetes.io/dockerconfigjson" +KUBERNETES_SECRET_TYPE_BASIC_AUTH = "kubernetes.io/basic-auth" +KUBERNETES_SECRET_TYPE_TLS = "kubernetes.io/tls" + +VALID_SECRET_TYPES = [ + KUBERNETES_SECRET_TYPE_OPAQUE, + KUBERNETES_SECRET_TYPE_DOCKERCONFIGJSON, + KUBERNETES_SECRET_TYPE_BASIC_AUTH, + KUBERNETES_SECRET_TYPE_TLS, +] + +KUBERNETES_SECRET_TO_MANIFEST_KEY = { + KUBERNETES_SECRET_TYPE_OPAQUE: "credentials", + KUBERNETES_SECRET_TYPE_DOCKERCONFIGJSON: "imagePullSecrets", +} + + +def _create_secret_object( + name: str, data: dict[str, str], secret_type: str = KUBERNETES_SECRET_TYPE_OPAQUE +) -> client.V1Secret: + """Helper to create a V1Secret object with multiple key-value pairs""" + return client.V1Secret( + metadata=client.V1ObjectMeta(name=name), + type=secret_type, + string_data=data, # Use string_data for automatic base64 encoding + ) + + +def create_secret_with_data( + name: str, data: dict[str, str], namespace: str, context: str | None = None +) -> None: + """Create a new Kubernetes secret with multiple key-value pairs""" + v1 = get_k8s_client(context) + + try: + # Check if secret exists + v1.read_namespaced_secret(name=name, namespace=namespace) + console.print( + f"[red]Error: Secret '{name}' already exists in namespace '{namespace}'[/red]" + ) + return + except ApiException as e: + if e.status != 404: # If error is not "Not Found" + raise + + # Create the secret + secret = _create_secret_object(name, data) + + try: + v1.create_namespaced_secret(namespace=namespace, body=secret) + console.print( + f"[green]Created secret '{name}' in namespace '{namespace}' with {len(data)} keys[/green]" + ) + except ApiException as e: + console.print(f"[red]Error creating secret: {e.reason}[/red]") + raise RuntimeError(f"Failed to create secret: {str(e)}") from e + + +def update_secret_with_data( + name: str, data: dict[str, str], namespace: str, context: str | None = None +) -> None: + """Create or update a Kubernetes secret with multiple key-value pairs""" + v1 = get_k8s_client(context) + secret = _create_secret_object(name, data) + + try: + # Try to update first + v1.replace_namespaced_secret(name=name, namespace=namespace, body=secret) + console.print( + f"[green]Updated secret '{name}' in namespace '{namespace}' with {len(data)} keys[/green]" + ) + except ApiException as e: + if e.status == 404: + # Secret doesn't exist, create it + try: + v1.create_namespaced_secret(namespace=namespace, body=secret) + console.print( + f"[green]Created secret '{name}' in namespace '{namespace}' with {len(data)} keys[/green]" + ) + except ApiException as create_error: + console.print( + f"[red]Error creating secret: {create_error.reason}[/red]" + ) + raise RuntimeError( + f"Failed to create secret: {str(create_error)}" + ) from create_error + else: + console.print(f"[red]Error updating secret: {e.reason}[/red]") + raise RuntimeError(f"Failed to update secret: {str(e)}") from e + + +def create_image_pull_secret_with_data( + name: str, data: dict[str, str], namespace: str, context: str | None = None +) -> None: + """Create a new Kubernetes image pull secret with dockerconfigjson type""" + v1 = get_k8s_client(context) + + try: + # Check if secret exists + v1.read_namespaced_secret(name=name, namespace=namespace) + console.print( + f"[red]Error: Secret '{name}' already exists in namespace '{namespace}'[/red]" + ) + return + except ApiException as e: + if e.status != 404: # If error is not "Not Found" + raise + + # Create the secret with dockerconfigjson type + secret = _create_secret_object(name, data, KUBERNETES_SECRET_TYPE_DOCKERCONFIGJSON) + + try: + v1.create_namespaced_secret(namespace=namespace, body=secret) + console.print( + f"[green]Created image pull secret '{name}' in namespace '{namespace}' with {len(data)} keys[/green]" + ) + except ApiException as e: + console.print(f"[red]Error creating image pull secret: {e.reason}[/red]") + raise RuntimeError(f"Failed to create image pull secret: {str(e)}") from e + + +def update_image_pull_secret_with_data( + name: str, data: dict[str, str], namespace: str, context: str | None = None +) -> None: + """Create or update a Kubernetes image pull secret with dockerconfigjson type""" + v1 = get_k8s_client(context) + secret = _create_secret_object(name, data, KUBERNETES_SECRET_TYPE_DOCKERCONFIGJSON) + + try: + # Try to update first + v1.replace_namespaced_secret(name=name, namespace=namespace, body=secret) + console.print( + f"[green]Updated image pull secret '{name}' in namespace '{namespace}' with {len(data)} keys[/green]" + ) + except ApiException as e: + if e.status == 404: + # Secret doesn't exist, create it + try: + v1.create_namespaced_secret(namespace=namespace, body=secret) + console.print( + f"[green]Created image pull secret '{name}' in namespace '{namespace}' with {len(data)} keys[/green]" + ) + except ApiException as create_error: + console.print( + f"[red]Error creating image pull secret: {create_error.reason}[/red]" + ) + raise RuntimeError( + f"Failed to create image pull secret: {str(create_error)}" + ) from create_error + else: + console.print(f"[red]Error updating image pull secret: {e.reason}[/red]") + raise RuntimeError(f"Failed to update image pull secret: {str(e)}") from e + + +def get_secret_data( + name: str, namespace: str, context: str | None = None +) -> dict[str, str]: + """Get the actual data from a secret""" + v1 = get_k8s_client(context) + try: + secret = v1.read_namespaced_secret(name=name, namespace=namespace) + if secret.data: + # Decode base64 data + return { + key: base64.b64decode(value).decode("utf-8") + for key, value in secret.data.items() + } + return {} + except ApiException as e: + if e.status == 404: + return {} + raise RuntimeError(f"Failed to get secret data: {str(e)}") from e diff --git a/src/agentex/lib/core/__init__.py b/src/agentex/lib/core/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/src/agentex/lib/core/adapters/__init__.py b/src/agentex/lib/core/adapters/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/src/agentex/lib/core/adapters/llm/__init__.py b/src/agentex/lib/core/adapters/llm/__init__.py new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/src/agentex/lib/core/adapters/llm/__init__.py @@ -0,0 +1 @@ + diff --git a/src/agentex/lib/core/adapters/llm/adapter_litellm.py b/src/agentex/lib/core/adapters/llm/adapter_litellm.py new file mode 100644 index 000000000..cbd69585e --- /dev/null +++ b/src/agentex/lib/core/adapters/llm/adapter_litellm.py @@ -0,0 +1,46 @@ +from collections.abc import AsyncGenerator, Generator + +import litellm as llm + +from agentex.lib.core.adapters.llm.port import LLMGateway +from agentex.lib.types.llm_messages import Completion +from agentex.lib.utils.logging import make_logger + +logger = make_logger(__name__) + + +class LiteLLMGateway(LLMGateway): + def completion(self, *args, **kwargs) -> Completion: + if kwargs.get("stream", True): + raise ValueError( + "Please use self.completion_stream instead of self.completion to stream responses" + ) + + response = llm.completion(*args, **kwargs) + return Completion.model_validate(response) + + def completion_stream(self, *args, **kwargs) -> Generator[Completion, None, None]: + if not kwargs.get("stream"): + raise ValueError("To use streaming, please set stream=True in the kwargs") + + for chunk in llm.completion(*args, **kwargs): + yield Completion.model_validate(chunk) + + async def acompletion(self, *args, **kwargs) -> Completion: + if kwargs.get("stream", True): + raise ValueError( + "Please use self.acompletion_stream instead of self.acompletion to stream responses" + ) + + # Return a single completion for non-streaming + response = await llm.acompletion(*args, **kwargs) + return Completion.model_validate(response) + + async def acompletion_stream( + self, *args, **kwargs + ) -> AsyncGenerator[Completion, None]: + if not kwargs.get("stream"): + raise ValueError("To use streaming, please set stream=True in the kwargs") + + async for chunk in await llm.acompletion(*args, **kwargs): + yield Completion.model_validate(chunk) diff --git a/src/agentex/lib/core/adapters/llm/adapter_sgp.py b/src/agentex/lib/core/adapters/llm/adapter_sgp.py new file mode 100644 index 000000000..a14e66a29 --- /dev/null +++ b/src/agentex/lib/core/adapters/llm/adapter_sgp.py @@ -0,0 +1,55 @@ +import os +from collections.abc import AsyncGenerator, Generator + +from scale_gp import AsyncSGPClient, SGPClient + +from agentex.lib.core.adapters.llm.port import LLMGateway +from agentex.lib.types.llm_messages import Completion +from agentex.lib.utils.logging import make_logger + +logger = make_logger(__name__) + + +class SGPLLMGateway(LLMGateway): + def __init__(self, sgp_api_key: str | None = None): + self.sync_client = SGPClient(api_key=os.environ.get("SGP_API_KEY", sgp_api_key)) + self.async_client = AsyncSGPClient( + api_key=os.environ.get("SGP_API_KEY", sgp_api_key) + ) + + def completion(self, *args, **kwargs) -> Completion: + if kwargs.get("stream", True): + raise ValueError( + "Please use self.completion_stream instead of self.completion to stream responses" + ) + + response = self.sync_client.beta.chat.completions.create(*args, **kwargs) + return Completion.model_validate(response) + + def completion_stream(self, *args, **kwargs) -> Generator[Completion, None, None]: + if not kwargs.get("stream"): + raise ValueError("To use streaming, please set stream=True in the kwargs") + + for chunk in self.sync_client.beta.chat.completions.create(*args, **kwargs): + yield Completion.model_validate(chunk) + + async def acompletion(self, *args, **kwargs) -> Completion: + if kwargs.get("stream", True): + raise ValueError( + "Please use self.acompletion_stream instead of self.acompletion to stream responses" + ) + + # Return a single completion for non-streaming + response = await self.async_client.beta.chat.completions.create(*args, **kwargs) + return Completion.model_validate(response) + + async def acompletion_stream( + self, *args, **kwargs + ) -> AsyncGenerator[Completion, None]: + if not kwargs.get("stream"): + raise ValueError("To use streaming, please set stream=True in the kwargs") + + async for chunk in await self.async_client.beta.chat.completions.create( + *args, **kwargs + ): + yield Completion.model_validate(chunk) diff --git a/src/agentex/lib/core/adapters/llm/port.py b/src/agentex/lib/core/adapters/llm/port.py new file mode 100644 index 000000000..f9eeebeb0 --- /dev/null +++ b/src/agentex/lib/core/adapters/llm/port.py @@ -0,0 +1,24 @@ +from abc import ABC, abstractmethod +from collections.abc import AsyncGenerator, Generator + +from agentex.lib.types.llm_messages import Completion + + +class LLMGateway(ABC): + @abstractmethod + def completion(self, *args, **kwargs) -> Completion: + raise NotImplementedError + + @abstractmethod + def completion_stream(self, *args, **kwargs) -> Generator[Completion, None, None]: + raise NotImplementedError + + @abstractmethod + async def acompletion(self, *args, **kwargs) -> Completion: + raise NotImplementedError + + @abstractmethod + async def acompletion_stream( + self, *args, **kwargs + ) -> AsyncGenerator[Completion, None]: + raise NotImplementedError diff --git a/src/agentex/lib/core/adapters/streams/adapter_redis.py b/src/agentex/lib/core/adapters/streams/adapter_redis.py new file mode 100644 index 000000000..83ac9c396 --- /dev/null +++ b/src/agentex/lib/core/adapters/streams/adapter_redis.py @@ -0,0 +1,128 @@ +import asyncio +import json +import os +from collections.abc import AsyncIterator +from typing import Annotated, Any + +import redis.asyncio as redis +from fastapi import Depends + +from agentex.lib.core.adapters.streams.port import EventStreamRepository +from agentex.lib.utils.logging import make_logger + +logger = make_logger(__name__) + + +class RedisEventStreamRepository(EventStreamRepository): + """ + A simplified Redis implementation of the EventStreamRepository interface. + Optimized for text/JSON streaming with SSE. + """ + + def __init__(self, redis_url: str | None = None): + # Get Redis URL from environment if not provided + self.redis_url = redis_url or os.environ.get( + "REDIS_URL", "redis://localhost:6379" + ) + self.redis = redis.from_url(self.redis_url) + + async def send_event(self, topic: str, event: dict[str, Any]) -> str: + """ + Send an event to a Redis stream. + + Args: + topic: The stream topic/name + event: The event data (will be JSON serialized) + + Returns: + The message ID from Redis + """ + try: + # Simple JSON serialization + event_json = json.dumps(event) + + # # Uncomment to debug + # logger.info(f"Sending event to Redis stream {topic}: {event_json}") + + # Add to Redis stream with a reasonable max length + message_id = await self.redis.xadd( + name=topic, + fields={"data": event_json}, + ) + + return message_id + except Exception as e: + logger.error(f"Error publishing to Redis stream {topic}: {e}") + raise + + async def subscribe( + self, topic: str, last_id: str = "$" + ) -> AsyncIterator[dict[str, Any]]: + """ + Subscribe to a Redis stream and yield events as they come in. + + Args: + topic: The stream topic to subscribe to + last_id: Where to start reading from: + "$" = only new messages (default) + "0" = all messages from the beginning + "" = messages after the specified ID + + Yields: + Parsed event data + """ + + current_id = last_id + + while True: + try: + # Read new messages with a reasonable block time + streams = {topic: current_id} + response = await self.redis.xread( + streams=streams, + count=10, # Get up to 10 messages at a time (reduces overprocessing) + block=2000, # Wait up to 2 seconds for new messages + ) + + if response: + for _, messages in response: + for message_id, fields in messages: + # Update the last_id for next iteration + current_id = message_id + + # Extract and parse the JSON data + if b"data" in fields: + try: + data_str = fields[b"data"].decode("utf-8") + event = json.loads(data_str) + yield event + except Exception as e: + logger.warning( + f"Failed to parse event from Redis stream: {e}" + ) + + # Small sleep to prevent tight loops + await asyncio.sleep(0.01) + + except Exception as e: + logger.error(f"Error reading from Redis stream: {e}") + await asyncio.sleep(1) # Back off on errors + + async def cleanup_stream(self, topic: str) -> None: + """ + Clean up a Redis stream. + + Args: + topic: The stream topic to clean up + """ + try: + await self.redis.delete(topic) + logger.info(f"Cleaned up Redis stream: {topic}") + except Exception as e: + logger.error(f"Error cleaning up Redis stream {topic}: {e}") + raise + + +DRedisEventStreamRepository = Annotated[ + RedisEventStreamRepository | None, Depends(RedisEventStreamRepository) +] diff --git a/src/agentex/lib/core/adapters/streams/port.py b/src/agentex/lib/core/adapters/streams/port.py new file mode 100644 index 000000000..4fff08f52 --- /dev/null +++ b/src/agentex/lib/core/adapters/streams/port.py @@ -0,0 +1,50 @@ +from abc import ABC, abstractmethod +from collections.abc import AsyncIterator +from typing import Any + + +class EventStreamRepository(ABC): + """ + Interface for event streaming repositories. + Used to publish and subscribe to event streams. + """ + + @abstractmethod + async def send_event(self, topic: str, event: dict[str, Any]) -> str: + """ + Send an event to a stream. + + Args: + topic: The stream topic/name + event: The event data + + Returns: + The message ID or other identifier + """ + raise NotImplementedError + + @abstractmethod + async def subscribe( + self, topic: str, last_id: str = "$" + ) -> AsyncIterator[dict[str, Any]]: + """ + Subscribe to a stream and yield events as they come in. + + Args: + topic: The stream topic to subscribe to + last_id: Where to start reading from + + Yields: + Event data + """ + raise NotImplementedError + + @abstractmethod + async def cleanup_stream(self, topic: str) -> None: + """ + Clean up a stream. + + Args: + topic: The stream topic to clean up + """ + raise NotImplementedError diff --git a/src/agentex/lib/core/clients/__init__.py b/src/agentex/lib/core/clients/__init__.py new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/src/agentex/lib/core/clients/__init__.py @@ -0,0 +1 @@ + diff --git a/src/agentex/lib/core/clients/temporal/__init__.py b/src/agentex/lib/core/clients/temporal/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/src/agentex/lib/core/clients/temporal/temporal_client.py b/src/agentex/lib/core/clients/temporal/temporal_client.py new file mode 100644 index 000000000..16137eb7a --- /dev/null +++ b/src/agentex/lib/core/clients/temporal/temporal_client.py @@ -0,0 +1,181 @@ +from collections.abc import Callable +from datetime import timedelta +from typing import Any + +from temporalio.client import Client, WorkflowExecutionStatus +from temporalio.common import RetryPolicy as TemporalRetryPolicy +from temporalio.common import WorkflowIDReusePolicy +from temporalio.service import RPCError, RPCStatusCode + +from agentex.lib.core.clients.temporal.types import ( + DuplicateWorkflowPolicy, + RetryPolicy, + TaskStatus, + WorkflowState, +) +from agentex.lib.core.clients.temporal.utils import get_temporal_client +from agentex.lib.utils.logging import make_logger +from agentex.lib.utils.model_utils import BaseModel + +logger = make_logger(__name__) + +DEFAULT_RETRY_POLICY = RetryPolicy(maximum_attempts=1) + + +TEMPORAL_STATUS_TO_UPLOAD_STATUS_AND_REASON = { + # TODO: Support canceled status + WorkflowExecutionStatus.CANCELED: WorkflowState( + status=TaskStatus.CANCELED, + reason="Task canceled by the user.", + is_terminal=True, + ), + WorkflowExecutionStatus.COMPLETED: WorkflowState( + status=TaskStatus.COMPLETED, + reason="Task completed successfully.", + is_terminal=True, + ), + WorkflowExecutionStatus.FAILED: WorkflowState( + status=TaskStatus.FAILED, + reason="Task encountered terminal failure. " + "Please contact support if retrying does not resolve the issue.", + is_terminal=True, + ), + WorkflowExecutionStatus.RUNNING: WorkflowState( + status=TaskStatus.RUNNING, + reason="Task is running.", + is_terminal=False, + ), + WorkflowExecutionStatus.TERMINATED: WorkflowState( + status=TaskStatus.CANCELED, + reason="Task canceled by the user.", + is_terminal=True, + ), + WorkflowExecutionStatus.TIMED_OUT: WorkflowState( + status=TaskStatus.FAILED, + reason="Task timed out. Please contact support if retrying does not resolve the issue", + is_terminal=True, + ), + WorkflowExecutionStatus.CONTINUED_AS_NEW: WorkflowState( + status=TaskStatus.RUNNING, + reason="Task is running.", + is_terminal=False, + ), +} + +DUPLICATE_POLICY_TO_ID_REUSE_POLICY = { + DuplicateWorkflowPolicy.ALLOW_DUPLICATE: WorkflowIDReusePolicy.ALLOW_DUPLICATE, + DuplicateWorkflowPolicy.ALLOW_DUPLICATE_FAILED_ONLY: WorkflowIDReusePolicy.ALLOW_DUPLICATE_FAILED_ONLY, + DuplicateWorkflowPolicy.REJECT_DUPLICATE: WorkflowIDReusePolicy.REJECT_DUPLICATE, + DuplicateWorkflowPolicy.TERMINATE_IF_RUNNING: WorkflowIDReusePolicy.TERMINATE_IF_RUNNING, +} + + +class TemporalClient: + def __init__(self, temporal_client: Client | None = None): + self._client: Client = temporal_client + + @classmethod + async def create(cls, temporal_address: str): + if temporal_address in [ + "false", + "False", + "null", + "None", + "", + "undefined", + False, + None, + ]: + _client = None + else: + _client = await get_temporal_client(temporal_address) + return cls(_client) + + async def setup(self, temporal_address: str): + self._client = await self._get_temporal_client( + temporal_address=temporal_address + ) + + async def _get_temporal_client(self, temporal_address: str) -> Client: + if temporal_address in [ + "false", + "False", + "null", + "None", + "", + "undefined", + False, + None, + ]: + return None + else: + return await get_temporal_client(temporal_address) + + async def start_workflow( + self, + *args: Any, + duplicate_policy: DuplicateWorkflowPolicy = DuplicateWorkflowPolicy.ALLOW_DUPLICATE, + retry_policy: RetryPolicy = DEFAULT_RETRY_POLICY, + task_timeout: timedelta = timedelta(seconds=10), + execution_timeout: timedelta = timedelta(seconds=86400), + **kwargs: Any, + ) -> str: + temporal_retry_policy = TemporalRetryPolicy( + **retry_policy.model_dump(exclude_unset=True) + ) + workflow_handle = await self._client.start_workflow( + *args, + retry_policy=temporal_retry_policy, + task_timeout=task_timeout, + execution_timeout=execution_timeout, + id_reuse_policy=DUPLICATE_POLICY_TO_ID_REUSE_POLICY[duplicate_policy], + **kwargs, + ) + return workflow_handle.id + + async def send_signal( + self, + workflow_id: str, + signal: str | Callable[[dict[str, Any] | list[Any] | str | int | float | bool | BaseModel], Any], + payload: dict[str, Any] | list[Any] | str | int | float | bool | BaseModel, + ) -> None: + handle = self._client.get_workflow_handle(workflow_id=workflow_id) + await handle.signal(signal, payload) + + async def query_workflow( + self, + workflow_id: str, + query: str | Callable[[dict[str, Any] | list[Any] | str | int | float | bool | BaseModel], Any], + ) -> Any: + """ + Submit a query to a workflow by name and return the results. + + Args: + workflow_id: The ID of the workflow to query + query: The name of the query or a callable query function + + Returns: + The result of the query + """ + handle = self._client.get_workflow_handle(workflow_id=workflow_id) + return await handle.query(query) + + async def get_workflow_status(self, workflow_id: str) -> WorkflowState: + try: + handle = self._client.get_workflow_handle(workflow_id=workflow_id) + description = await handle.describe() + return TEMPORAL_STATUS_TO_UPLOAD_STATUS_AND_REASON[description.status] + except RPCError as e: + if e.status == RPCStatusCode.NOT_FOUND: + return WorkflowState( + status="NOT_FOUND", + reason="Workflow not found", + is_terminal=True, + ) + raise + + async def terminate_workflow(self, workflow_id: str) -> None: + return await self._client.get_workflow_handle(workflow_id).terminate() + + async def cancel_workflow(self, workflow_id: str) -> None: + return await self._client.get_workflow_handle(workflow_id).cancel() diff --git a/src/agentex/lib/core/clients/temporal/types.py b/src/agentex/lib/core/clients/temporal/types.py new file mode 100644 index 000000000..91f3db540 --- /dev/null +++ b/src/agentex/lib/core/clients/temporal/types.py @@ -0,0 +1,47 @@ +from datetime import timedelta +from enum import Enum + +from pydantic import Field + +from agentex.lib.utils.model_utils import BaseModel + + +class WorkflowState(BaseModel): + status: str + is_terminal: bool + reason: str | None = None + + +class RetryPolicy(BaseModel): + initial_interval: timedelta = Field( + timedelta(seconds=1), + description="Backoff interval for the first retry. Default 1s.", + ) + backoff_coefficient: float = Field( + 2.0, + description="Coefficient to multiply previous backoff interval by to get new interval. Default 2.0.", + ) + maximum_interval: timedelta | None = Field( + None, + description="Maximum backoff interval between retries. Default 100x :py:attr:`initial_interval`.", + ) + maximum_attempts: int = Field( + 0, + description="Maximum number of attempts. If 0, the default, there is no maximum.", + ) + + +class DuplicateWorkflowPolicy(str, Enum): + ALLOW_DUPLICATE = "ALLOW_DUPLICATE" + ALLOW_DUPLICATE_FAILED_ONLY = "ALLOW_DUPLICATE_FAILED_ONLY" + REJECT_DUPLICATE = "REJECT_DUPLICATE" + TERMINATE_IF_RUNNING = "TERMINATE_IF_RUNNING" + + +class TaskStatus(str, Enum): + CANCELED = "CANCELED" + COMPLETED = "COMPLETED" + FAILED = "FAILED" + RUNNING = "RUNNING" + TERMINATED = "TERMINATED" + TIMED_OUT = "TIMED_OUT" diff --git a/src/agentex/lib/core/clients/temporal/utils.py b/src/agentex/lib/core/clients/temporal/utils.py new file mode 100644 index 000000000..5e4116766 --- /dev/null +++ b/src/agentex/lib/core/clients/temporal/utils.py @@ -0,0 +1,56 @@ +from temporalio.client import Client +from temporalio.contrib.pydantic import pydantic_data_converter +from temporalio.runtime import OpenTelemetryConfig, Runtime, TelemetryConfig + +# class DateTimeJSONEncoder(AdvancedJSONEncoder): +# def default(self, o: Any) -> Any: +# if isinstance(o, datetime.datetime): +# return o.isoformat() +# return super().default(o) + + +# class DateTimeJSONTypeConverter(JSONTypeConverter): +# def to_typed_value( +# self, hint: Type, value: Any +# ) -> Union[Optional[Any], _JSONTypeConverterUnhandled]: +# if hint == datetime.datetime: +# return datetime.datetime.fromisoformat(value) +# return JSONTypeConverter.Unhandled + + +# class DateTimePayloadConverter(CompositePayloadConverter): +# def __init__(self) -> None: +# json_converter = JSONPlainPayloadConverter( +# encoder=DateTimeJSONEncoder, +# custom_type_converters=[DateTimeJSONTypeConverter()], +# ) +# super().__init__( +# *[ +# c if not isinstance(c, JSONPlainPayloadConverter) else json_converter +# for c in DefaultPayloadConverter.default_encoding_payload_converters +# ] +# ) + + +# custom_data_converter = dataclasses.replace( +# DataConverter.default, +# payload_converter_class=DateTimePayloadConverter, +# ) + + +async def get_temporal_client(temporal_address: str, metrics_url: str = None) -> Client: + if not metrics_url: + client = await Client.connect( + target_host=temporal_address, + # data_converter=custom_data_converter, + data_converter=pydantic_data_converter, + ) + else: + runtime = Runtime(telemetry=TelemetryConfig(metrics=OpenTelemetryConfig(url=metrics_url))) + client = await Client.connect( + target_host=temporal_address, + # data_converter=custom_data_converter, + data_converter=pydantic_data_converter, + runtime=runtime, + ) + return client diff --git a/src/agentex/lib/core/services/__init__.py b/src/agentex/lib/core/services/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/src/agentex/lib/core/services/adk/__init__.py b/src/agentex/lib/core/services/adk/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/src/agentex/lib/core/services/adk/acp/__init__.py b/src/agentex/lib/core/services/adk/acp/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/src/agentex/lib/core/services/adk/acp/acp.py b/src/agentex/lib/core/services/adk/acp/acp.py new file mode 100644 index 000000000..dc7ad147b --- /dev/null +++ b/src/agentex/lib/core/services/adk/acp/acp.py @@ -0,0 +1,210 @@ +from typing import Any, cast + +from agentex import AsyncAgentex +from agentex.lib.core.tracing.tracer import AsyncTracer +from agentex.lib.utils.logging import make_logger +from agentex.lib.utils.temporal import heartbeat_if_in_workflow +from agentex.types.event import Event +from agentex.types.task import Task +from agentex.types.task_message import TaskMessage +from agentex.types.task_message_content import TaskMessageContent +from agentex.types.task_message_content_param import TaskMessageContentParam + +logger = make_logger(__name__) + + +class ACPService: + def __init__( + self, + agentex_client: AsyncAgentex, + tracer: AsyncTracer, + ): + self._agentex_client = agentex_client + self._tracer = tracer + + async def task_create( + self, + name: str | None = None, + agent_id: str | None = None, + agent_name: str | None = None, + params: dict[str, Any] | None = None, + trace_id: str | None = None, + parent_span_id: str | None = None, + ) -> Task: + trace = self._tracer.trace(trace_id=trace_id) + async with trace.span( + parent_id=parent_span_id, + name="task_create", + input={ + "name": name, + "agent_id": agent_id, + "agent_name": agent_name, + "params": params, + }, + ) as span: + heartbeat_if_in_workflow("task create") + if agent_name: + json_rpc_response = await self._agentex_client.agents.rpc_by_name( + agent_name=agent_name, + method="task/create", + params={ + "name": name, + "params": params, + }, + ) + elif agent_id: + json_rpc_response = await self._agentex_client.agents.rpc( + agent_id=agent_id, + method="task/create", + params={ + "name": name, + "params": params, + }, + ) + else: + raise ValueError("Either agent_name or agent_id must be provided") + + task_entry = Task.model_validate(json_rpc_response["result"]) + if span: + span.output = task_entry.model_dump() + return task_entry + + async def message_send( + self, + content: TaskMessageContent, + agent_id: str | None = None, + agent_name: str | None = None, + task_id: str | None = None, + task_name: str | None = None, + trace_id: str | None = None, + parent_span_id: str | None = None, + ) -> TaskMessage: + trace = self._tracer.trace(trace_id=trace_id) + async with trace.span( + parent_id=parent_span_id, + name="message_send", + input={ + "agent_id": agent_id, + "agent_name": agent_name, + "task_id": task_id, + "task_name": task_name, + "message": content, + }, + ) as span: + heartbeat_if_in_workflow("message send") + if agent_name: + json_rpc_response = await self._agentex_client.agents.rpc_by_name( + agent_name=agent_name, + method="message/send", + params={ + "task_id": task_id, + "content": cast(TaskMessageContentParam, content.model_dump()), + "stream": False, + }, + ) + elif agent_id: + json_rpc_response = await self._agentex_client.agents.rpc( + agent_id=agent_id, + method="message/send", + params={ + "task_id": task_id, + "content": cast(TaskMessageContentParam, content.model_dump()), + "stream": False, + }, + ) + else: + raise ValueError("Either agent_name or agent_id must be provided") + + task_message = TaskMessage.model_validate(json_rpc_response["result"]) + if span: + span.output = task_message.model_dump() + return task_message + + async def event_send( + self, + content: TaskMessageContent, + agent_id: str | None = None, + agent_name: str | None = None, + task_id: str | None = None, + task_name: str | None = None, + trace_id: str | None = None, + parent_span_id: str | None = None, + ) -> Event: + trace = self._tracer.trace(trace_id=trace_id) + async with trace.span( + parent_id=parent_span_id, + name="event_send", + input={ + "agent_id": agent_id, + "agent_name": agent_name, + "task_id": task_id, + "content": content, + }, + ) as span: + heartbeat_if_in_workflow("event send") + if agent_name: + json_rpc_response = await self._agentex_client.agents.rpc_by_name( + agent_name=agent_name, + method="event/send", + params={ + "task_name": task_name, + "content": cast(TaskMessageContentParam, content.model_dump()), + }, + ) + elif agent_id: + json_rpc_response = await self._agentex_client.agents.rpc( + agent_id=agent_id, + method="event/send", + params={ + "task_id": task_id, + "content": cast(TaskMessageContentParam, content.model_dump()), + }, + ) + else: + raise ValueError("Either agent_name or agent_id must be provided") + + event_entry = Event.model_validate(json_rpc_response["result"]) + if span: + span.output = event_entry.model_dump() + return event_entry + + async def task_cancel( + self, + task_id: str | None = None, + task_name: str | None = None, + trace_id: str | None = None, + parent_span_id: str | None = None, + ) -> Task: + trace = self._tracer.trace(trace_id=trace_id) + async with trace.span( + parent_id=parent_span_id, + name="task_cancel", + input={ + "task_id": task_id, + "task_name": task_name, + }, + ) as span: + heartbeat_if_in_workflow("task cancel") + if task_name: + json_rpc_response = await self._agentex_client.agents.rpc_by_name( + agent_name=task_name, + method="task/cancel", + params={ + "task_name": task_name, + }, + ) + elif task_id: + json_rpc_response = await self._agentex_client.agents.rpc( + agent_id=task_id, + method="task/cancel", + params={ + "task_id": task_id, + }, + ) + else: + raise ValueError("Either task_name or task_id must be provided") + + task_entry = Task.model_validate(json_rpc_response["result"]) + if span: + span.output = task_entry.model_dump() + return task_entry diff --git a/src/agentex/lib/core/services/adk/agent_task_tracker.py b/src/agentex/lib/core/services/adk/agent_task_tracker.py new file mode 100644 index 000000000..ad9dc42c6 --- /dev/null +++ b/src/agentex/lib/core/services/adk/agent_task_tracker.py @@ -0,0 +1,85 @@ +from agentex import AsyncAgentex +from agentex.lib.core.tracing.tracer import AsyncTracer +from agentex.lib.utils.logging import make_logger +from agentex.types.agent_task_tracker import AgentTaskTracker + +logger = make_logger(__name__) + + +class AgentTaskTrackerService: + def __init__( + self, agentex_client: AsyncAgentex, tracer: AsyncTracer, + ): + self._agentex_client = agentex_client + self._tracer = tracer + + async def get_agent_task_tracker( + self, + tracker_id: str, + trace_id: str | None = None, + parent_span_id: str | None = None, + ) -> AgentTaskTracker: + trace = self._tracer.trace(trace_id) + async with trace.span( + parent_id=parent_span_id, + name="get_agent_task_tracker", + input={"tracker_id": tracker_id}, + ) as span: + tracker = await self._agentex_client.tracker.retrieve( + tracker_id + ) + if span: + span.output = tracker.model_dump() + return tracker + + async def get_by_task_and_agent( + self, + task_id: str, + agent_id: str, + trace_id: str | None = None, + parent_span_id: str | None = None, + ) -> AgentTaskTracker | None: + trace = self._tracer.trace(trace_id) + async with trace.span( + parent_id=parent_span_id, + name="get_by_task_and_agent", + input={"task_id": task_id, "agent_id": agent_id}, + ) as span: + trackers = await self._agentex_client.tracker.list( + task_id=task_id, + agent_id=agent_id, + ) + tracker = trackers[0] if trackers else None + if span: + span.output = tracker.model_dump() if tracker else None + return tracker + + async def update_agent_task_tracker( + self, + tracker_id: str, + last_processed_event_id: str | None = None, + status: str | None = None, + status_reason: str | None = None, + trace_id: str | None = None, + parent_span_id: str | None = None, + ) -> AgentTaskTracker: + trace = self._tracer.trace(trace_id) + async with trace.span( + parent_id=parent_span_id, + name="update_agent_task_tracker", + input={ + "tracker_id": tracker_id, + "last_processed_event_id": last_processed_event_id, + "status": status, + "status_reason": status_reason, + }, + ) as span: + tracker = await self._agentex_client.tracker.update( + tracker_id=tracker_id, + last_processed_event_id=last_processed_event_id, + status=status, + status_reason=status_reason, + ) + if span: + span.output = tracker.model_dump() + return tracker diff --git a/src/agentex/lib/core/services/adk/agents.py b/src/agentex/lib/core/services/adk/agents.py new file mode 100644 index 000000000..7600c7bee --- /dev/null +++ b/src/agentex/lib/core/services/adk/agents.py @@ -0,0 +1,43 @@ +from typing import Optional + +from agentex import AsyncAgentex +from agentex.lib.core.tracing.tracer import AsyncTracer +from agentex.types.agent import Agent +from agentex.lib.utils.logging import make_logger +from agentex.lib.utils.temporal import heartbeat_if_in_workflow + +logger = make_logger(__name__) + + +class AgentsService: + def __init__( + self, + agentex_client: AsyncAgentex, + tracer: AsyncTracer, + ): + self._agentex_client = agentex_client + self._tracer = tracer + + async def get_agent( + self, + agent_id: Optional[str] = None, + agent_name: Optional[str] = None, + trace_id: Optional[str] = None, + parent_span_id: Optional[str] = None, + ) -> Agent: + trace = self._tracer.trace(trace_id) + async with trace.span( + parent_id=parent_span_id, + name="get_agent", + input={"agent_id": agent_id, "agent_name": agent_name}, + ) as span: + heartbeat_if_in_workflow("get agent") + if agent_id: + agent = await self._agentex_client.agents.retrieve(agent_id=agent_id) + elif agent_name: + agent = await self._agentex_client.agents.retrieve_by_name(agent_name=agent_name) + else: + raise ValueError("Either agent_id or agent_name must be provided") + if span: + span.output = agent.model_dump() + return agent diff --git a/src/agentex/lib/core/services/adk/events.py b/src/agentex/lib/core/services/adk/events.py new file mode 100644 index 000000000..839946049 --- /dev/null +++ b/src/agentex/lib/core/services/adk/events.py @@ -0,0 +1,61 @@ +from agentex import AsyncAgentex +from agentex.lib.core.tracing.tracer import AsyncTracer +from agentex.types.event import Event +from agentex.lib.utils.logging import make_logger + +logger = make_logger(__name__) + + +class EventsService: + def __init__( + self, agentex_client: AsyncAgentex, tracer: AsyncTracer + ): + self._agentex_client = agentex_client + self._tracer = tracer + + async def get_event( + self, + event_id: str, + trace_id: str | None = None, + parent_span_id: str | None = None, + ) -> Event | None: + trace = self._tracer.trace(trace_id) + async with trace.span( + parent_id=parent_span_id, + name="get_event", + input={"event_id": event_id}, + ) as span: + event = await self._agentex_client.events.retrieve(event_id=event_id) + if span: + span.output = event.model_dump() + return event + + async def list_events( + self, + task_id: str, + agent_id: str, + last_processed_event_id: str | None = None, + limit: int | None = None, + trace_id: str | None = None, + parent_span_id: str | None = None, + ) -> list[Event]: + trace = self._tracer.trace(trace_id) + async with trace.span( + parent_id=parent_span_id, + name="list_events", + input={ + "task_id": task_id, + "agent_id": agent_id, + "last_processed_event_id": last_processed_event_id, + "limit": limit, + }, + ) as span: + events = await self._agentex_client.events.list( + task_id=task_id, + agent_id=agent_id, + last_processed_event_id=last_processed_event_id, + limit=limit, + ) + if span: + span.output = [event.model_dump() for event in events] + return events diff --git a/src/agentex/lib/core/services/adk/messages.py b/src/agentex/lib/core/services/adk/messages.py new file mode 100644 index 000000000..f6f1ce6e9 --- /dev/null +++ b/src/agentex/lib/core/services/adk/messages.py @@ -0,0 +1,164 @@ +import asyncio +from typing import Any, Coroutine, cast + +from agentex import AsyncAgentex +from agentex.lib.core.services.adk.streaming import StreamingService +from agentex.lib.core.tracing.tracer import AsyncTracer +from agentex.lib.types.task_message_updates import StreamTaskMessageFull, TaskMessageUpdate +from agentex.types.task_message import TaskMessage, TaskMessageContent +from agentex.lib.utils.logging import make_logger +from agentex.lib.utils.temporal import heartbeat_if_in_workflow +from agentex.types.task_message_content_param import TaskMessageContentParam + +logger = make_logger(__name__) + + +class MessagesService: + def __init__( + self, + agentex_client: AsyncAgentex, + streaming_service: StreamingService, + tracer: AsyncTracer, + ): + self._agentex_client = agentex_client + self._streaming_service = streaming_service + self._tracer = tracer + + async def create_message( + self, + task_id: str, + content: TaskMessageContent, + emit_updates: bool = True, + trace_id: str | None = None, + parent_span_id: str | None = None, + ) -> TaskMessage: + trace = self._tracer.trace(trace_id) + async with trace.span( + parent_id=parent_span_id, + name="create_message", + input={"task_id": task_id, "message": content}, + ) as span: + heartbeat_if_in_workflow("create message") + task_message = await self._agentex_client.messages.create( + task_id=task_id, + content=content.model_dump(), + ) + if emit_updates: + await self._emit_updates([task_message]) + if span: + span.output = task_message.model_dump() + return task_message + + async def update_message( + self, + task_id: str, + message_id: str, + content: TaskMessageContent, + trace_id: str | None = None, + parent_span_id: str | None = None, + ) -> TaskMessage: + trace = self._tracer.trace(trace_id) + async with trace.span( + parent_id=parent_span_id, + name="update_message", + input={ + "task_id": task_id, + "message_id": message_id, + "message": content, + }, + ) as span: + heartbeat_if_in_workflow("update message") + task_message = await self._agentex_client.messages.update( + task_id=task_id, + message_id=message_id, + content=content.model_dump(), + ) + if span: + span.output = task_message.model_dump() + return task_message + + async def create_messages_batch( + self, + task_id: str, + contents: list[TaskMessageContent], + emit_updates: bool = True, + trace_id: str | None = None, + parent_span_id: str | None = None, + ) -> list[TaskMessage]: + trace = self._tracer.trace(trace_id) + async with trace.span( + parent_id=parent_span_id, + name="create_messages_batch", + input={"task_id": task_id, "messages": contents}, + ) as span: + heartbeat_if_in_workflow("create messages batch") + task_messages = await self._agentex_client.messages.batch.create( + task_id=task_id, + contents=[content.model_dump() for content in contents], + ) + if emit_updates: + await self._emit_updates(task_messages) + if span: + span.output = [task_message.model_dump() for task_message in task_messages] + return task_messages + + async def update_messages_batch( + self, + task_id: str, + updates: dict[str, TaskMessageContent], + trace_id: str | None = None, + parent_span_id: str | None = None, + ) -> list[TaskMessage]: + trace = self._tracer.trace(trace_id) + async with trace.span( + parent_id=parent_span_id, + name="update_messages_batch", + input={"task_id": task_id, "updates": updates}, + ) as span: + heartbeat_if_in_workflow("update messages batch") + task_messages = await self._agentex_client.messages.batch.update( + task_id=task_id, + updates={ + message_id: content.model_dump() + for message_id, content in updates.items() + }, + ) + if span: + span.output = [task_message.model_dump() for task_message in task_messages] + return task_messages + + async def list_messages( + self, + task_id: str, + limit: int | None = None, + trace_id: str | None = None, + parent_span_id: str | None = None, + ) -> list[TaskMessage]: + trace = self._tracer.trace(trace_id) + async with trace.span( + parent_id=parent_span_id, + name="list_messages", + input={"task_id": task_id, "limit": limit}, + ) as span: + heartbeat_if_in_workflow("list messages") + task_messages = await self._agentex_client.messages.list( + task_id=task_id, + limit=limit, + ) + if span: + span.output = [task_message.model_dump() for task_message in task_messages] + return task_messages + + async def _emit_updates(self, task_messages: list[TaskMessage]) -> None: + stream_update_handlers: list[Coroutine[Any, Any, TaskMessageUpdate | None]] = [] + for task_message in task_messages: + stream_update_handler = self._streaming_service.stream_update( + update=StreamTaskMessageFull( + type="full", + parent_task_message=task_message, + content=task_message.content, + ) + ) + stream_update_handlers.append(stream_update_handler) + + await asyncio.gather(*stream_update_handlers) diff --git a/src/agentex/lib/core/services/adk/providers/__init__.py b/src/agentex/lib/core/services/adk/providers/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/src/agentex/lib/core/services/adk/providers/litellm.py b/src/agentex/lib/core/services/adk/providers/litellm.py new file mode 100644 index 000000000..06999812a --- /dev/null +++ b/src/agentex/lib/core/services/adk/providers/litellm.py @@ -0,0 +1,256 @@ +from collections.abc import AsyncGenerator + +from agentex import AsyncAgentex +from agentex.lib.core.adapters.llm.adapter_litellm import LiteLLMGateway +from agentex.lib.core.services.adk.streaming import StreamingService +from agentex.lib.core.tracing.tracer import AsyncTracer +from agentex.lib.types.llm_messages import ( + Completion, + LLMConfig, +) +from agentex.lib.types.task_message_updates import ( + StreamTaskMessageDelta, + StreamTaskMessageFull, + TextDelta, +) +from agentex.types.task_message import TaskMessage +from agentex.types.task_message_content import TextContent +from agentex.lib.utils import logging +from agentex.lib.utils.completions import concat_completion_chunks +from agentex.lib.utils.temporal import heartbeat_if_in_workflow + +logger = logging.make_logger(__name__) + + +class LiteLLMService: + def __init__( + self, + agentex_client: AsyncAgentex, + streaming_service: StreamingService, + tracer: AsyncTracer, + llm_gateway: LiteLLMGateway | None = None, + ): + self.agentex_client = agentex_client + self.llm_gateway = llm_gateway + self.streaming_service = streaming_service + self.tracer = tracer + + async def chat_completion( + self, + llm_config: LLMConfig, + trace_id: str | None = None, + parent_span_id: str | None = None, + ) -> Completion: + trace = self.tracer.trace(trace_id) + async with trace.span( + parent_id=parent_span_id, + name="chat_completion", + input=llm_config.model_dump(), + ) as span: + heartbeat_if_in_workflow("chat completion") + if self.llm_gateway is None: + raise ValueError("LLM Gateway is not set") + completion = await self.llm_gateway.acompletion(**llm_config.model_dump()) + if span: + span.output = completion.model_dump() + return completion + + async def chat_completion_auto_send( + self, + task_id: str, + llm_config: LLMConfig, + trace_id: str | None = None, + parent_span_id: str | None = None, + ) -> TaskMessage | None: + """ + Chat completion with automatic TaskMessage creation. This does not stream the completion. To stream use chat_completion_stream_auto_send. + + Args: + task_id (str): The ID of the task to run the agent for. + llm_config (LLMConfig): The configuration for the LLM (must have stream=True). + + Returns: + TaskMessage: A TaskMessage object + """ + + if llm_config.stream: + raise ValueError( + "LLM config must not have stream=True. To stream use `chat_completion_stream` or `chat_completion_stream_auto_send`." + ) + + if self.llm_gateway is None: + raise ValueError("LLM Gateway is not set") + + trace = self.tracer.trace(trace_id) + async with trace.span( + parent_id=parent_span_id, + name="chat_completion_auto_send", + input=llm_config.model_dump(), + ) as span: + heartbeat_if_in_workflow("chat completion auto send") + + async with self.streaming_service.streaming_task_message_context( + task_id=task_id, + initial_content=TextContent( + author="agent", + content="", + format="markdown", + ), + ) as streaming_context: + completion = await self.llm_gateway.acompletion(**llm_config.model_dump()) + if ( + completion.choices + and len(completion.choices) > 0 + and completion.choices[0].message + ): + final_content = TextContent( + author="agent", + content=completion.choices[0].message.content or "", + format="markdown", + ) + await streaming_context.stream_update( + update=StreamTaskMessageFull( + parent_task_message=streaming_context.task_message, + content=final_content, + ), + ) + else: + raise ValueError("No completion message returned from LLM") + + if span: + if streaming_context.task_message: + span.output = streaming_context.task_message.model_dump() + return streaming_context.task_message if streaming_context.task_message else None + + async def chat_completion_stream( + self, + llm_config: LLMConfig, + trace_id: str | None = None, + parent_span_id: str | None = None, + ) -> AsyncGenerator[Completion, None]: + """ + Stream chat completion chunks using LiteLLM. + + Args: + llm_config (LLMConfig): The configuration for the LLM (must have stream=True). + trace_id (Optional[str]): The trace ID for tracing. + parent_span_id (Optional[str]): The parent span ID for tracing. + + Returns: + AsyncGenerator[Completion, None]: Generator yielding completion chunks + + Raises: + ValueError: If called from within a Temporal workflow or if stream=False + """ + if not llm_config.stream: + raise ValueError("LLM config must have stream=True for streaming") + + if self.llm_gateway is None: + raise ValueError("LLM Gateway is not set") + + trace = self.tracer.trace(trace_id) + async with trace.span( + parent_id=parent_span_id, + name="chat_completion_stream", + input=llm_config.model_dump(), + ) as span: + # Direct streaming outside temporal - yield each chunk as it comes + chunks: list[Completion] = [] + async for chunk in self.llm_gateway.acompletion_stream( + **llm_config.model_dump() + ): + chunks.append(chunk) + yield chunk + if span: + span.output = concat_completion_chunks(chunks).model_dump() + + async def chat_completion_stream_auto_send( + self, + task_id: str, + llm_config: LLMConfig, + trace_id: str | None = None, + parent_span_id: str | None = None, + ) -> TaskMessage | None: + """ + Stream chat completion with automatic TaskMessage creation and streaming. + + Args: + task_id (str): The ID of the task to run the agent for. + llm_config (LLMConfig): The configuration for the LLM (must have stream=True). + + Returns: + TaskMessage: A TaskMessage object + """ + heartbeat_if_in_workflow("chat completion stream") + + if self.llm_gateway is None: + raise ValueError("LLM Gateway is not set") + + if not llm_config.stream: + llm_config.stream = True + + trace = self.tracer.trace(trace_id) + async with trace.span( + parent_id=parent_span_id, + name="chat_completion_stream", + input=llm_config.model_dump(), + ) as span: + # Use streaming context manager + async with self.streaming_service.streaming_task_message_context( + task_id=task_id, + initial_content=TextContent( + author="agent", + content="", + format="markdown", + ), + ) as streaming_context: + # Get the streaming response + chunks = [] + async for response in self.llm_gateway.acompletion_stream( + **llm_config.model_dump() + ): + heartbeat_if_in_workflow("chat completion streaming") + if ( + response.choices + and len(response.choices) > 0 + and response.choices[0].delta + ): + delta = response.choices[0].delta.content + if delta: + # Stream the chunk via the context manager + await streaming_context.stream_update( + update=StreamTaskMessageDelta( + parent_task_message=streaming_context.task_message, + delta=TextDelta(text_delta=delta), + ), + ) + heartbeat_if_in_workflow("content chunk streamed") + + # Store the chunk for final message assembly + chunks.append(response) + + # Update the final message content + complete_message = concat_completion_chunks(chunks) + if ( + complete_message + and complete_message.choices + and complete_message.choices[0].message + ): + final_content = TextContent( + author="agent", + content=complete_message.choices[0].message.content or "", + ) + await streaming_context.stream_update( + update=StreamTaskMessageFull( + parent_task_message=streaming_context.task_message, + content=final_content, + ), + ) + + heartbeat_if_in_workflow("chat completion stream complete") + + if span: + if streaming_context.task_message: + span.output = streaming_context.task_message.model_dump() + + return streaming_context.task_message if streaming_context.task_message else None diff --git a/src/agentex/lib/core/services/adk/providers/openai.py b/src/agentex/lib/core/services/adk/providers/openai.py new file mode 100644 index 000000000..02604865c --- /dev/null +++ b/src/agentex/lib/core/services/adk/providers/openai.py @@ -0,0 +1,723 @@ +# Standard library imports +import json +from contextlib import AsyncExitStack, asynccontextmanager +from typing import Any, Literal + +from agents import Agent, Runner, RunResult, RunResultStreaming +from agents.agent import StopAtTools, ToolsToFinalOutputFunction +from agents.mcp import MCPServerStdio +from mcp import StdioServerParameters +from openai.types.responses import ( + ResponseCompletedEvent, + ResponseFunctionToolCall, + ResponseOutputItemDoneEvent, + ResponseTextDeltaEvent, +) +from pydantic import BaseModel + +# Local imports +from agentex import AsyncAgentex +from agentex.lib.core.services.adk.streaming import ( + StreamingService, + StreamingTaskMessageContext, +) +from agentex.lib.core.tracing.tracer import AsyncTracer +from agentex.lib.types.task_message_updates import ( + StreamTaskMessageDelta, + StreamTaskMessageFull, + TextDelta, +) +from agentex.types.task_message_content import ( + TextContent, + ToolRequestContent, + ToolResponseContent, +) +from agentex.lib.utils import logging +from agentex.lib.utils.mcp import redact_mcp_server_params +from agentex.lib.utils.temporal import heartbeat_if_in_workflow + +logger = logging.make_logger(__name__) + + +@asynccontextmanager +async def mcp_server_context( + mcp_server_params: list[StdioServerParameters], + mcp_timeout_seconds: int | None = None, +): + """Context manager for MCP servers.""" + servers = [] + for params in mcp_server_params: + server = MCPServerStdio( + name=f"Server: {params.command}", + params=params.model_dump(), + cache_tools_list=True, + client_session_timeout_seconds=mcp_timeout_seconds, + ) + servers.append(server) + + async with AsyncExitStack() as stack: + for server in servers: + await stack.enter_async_context(server) + yield servers + + +class OpenAIService: + """Service for OpenAI agent operations using the agents library.""" + + def __init__( + self, + agentex_client: AsyncAgentex | None = None, + streaming_service: StreamingService | None = None, + tracer: AsyncTracer | None = None, + ): + self.agentex_client = agentex_client + self.streaming_service = streaming_service + self.tracer = tracer + + async def run_agent( + self, + input_list: list[dict[str, Any]], + mcp_server_params: list[StdioServerParameters], + agent_name: str, + agent_instructions: str, + trace_id: str | None = None, + parent_span_id: str | None = None, + handoff_description: str | None = None, + handoffs: list[BaseModel] | None = None, + model: str | None = None, + model_settings: BaseModel | None = None, + tools: list[BaseModel] | None = None, + output_type: type[Any] | None = None, + tool_use_behavior: ( + Literal["run_llm_again", "stop_on_first_tool"] + | StopAtTools + | ToolsToFinalOutputFunction + ) = "run_llm_again", + mcp_timeout_seconds: int | None = None, + ) -> RunResult: + """ + Run an agent without streaming or TaskMessage creation. + + Args: + input_list: List of input data for the agent. + mcp_server_params: MCP server parameters for the agent. + agent_name: The name of the agent to run. + agent_instructions: Instructions for the agent. + trace_id: Optional trace ID for tracing. + parent_span_id: Optional parent span ID for tracing. + handoff_description: Optional description of the handoff. + handoffs: Optional list of handoffs. + model: Optional model to use. + model_settings: Optional model settings. + tools: Optional list of tools. + output_type: Optional output type. + tool_use_behavior: Optional tool use behavior. + mcp_timeout_seconds: Optional param to set the timeout threshold for the MCP servers. Defaults to 5 seconds. + + Returns: + SerializableRunResult: The result of the agent run. + """ + redacted_params = redact_mcp_server_params(mcp_server_params) + + trace = self.tracer.trace(trace_id) + async with trace.span( + parent_id=parent_span_id, + name="run_agent", + input={ + "input_list": input_list, + "mcp_server_params": redacted_params, + "agent_name": agent_name, + "agent_instructions": agent_instructions, + "handoff_description": handoff_description, + "handoffs": handoffs, + "model": model, + "model_settings": model_settings, + "tools": tools, + "output_type": output_type, + "tool_use_behavior": tool_use_behavior, + }, + ) as span: + heartbeat_if_in_workflow("run agent") + + async with mcp_server_context( + mcp_server_params, mcp_timeout_seconds + ) as servers: + tools = [tool.to_oai_function_tool() for tool in tools] if tools else [] + handoffs = ( + [Agent(**handoff.model_dump()) for handoff in handoffs] + if handoffs + else [] + ) + + agent_kwargs = { + "name": agent_name, + "instructions": agent_instructions, + "mcp_servers": servers, + "handoff_description": handoff_description, + "handoffs": handoffs, + "model": model, + "tools": tools, + "output_type": output_type, + "tool_use_behavior": tool_use_behavior, + } + if model_settings is not None: + agent_kwargs["model_settings"] = ( + model_settings.to_oai_model_settings() + ) + + agent = Agent(**agent_kwargs) + + # Run without streaming + result = await Runner.run(starting_agent=agent, input=input_list) + + if span: + span.output = { + "new_items": [ + item.raw_item.model_dump() + if isinstance(item.raw_item, BaseModel) + else item.raw_item + for item in result.new_items + ], + "final_output": result.final_output, + } + + return result + + async def run_agent_auto_send( + self, + task_id: str, + input_list: list[dict[str, Any]], + mcp_server_params: list[StdioServerParameters], + agent_name: str, + agent_instructions: str, + trace_id: str | None = None, + parent_span_id: str | None = None, + handoff_description: str | None = None, + handoffs: list[BaseModel] | None = None, + model: str | None = None, + model_settings: BaseModel | None = None, + tools: list[BaseModel] | None = None, + output_type: type[Any] | None = None, + tool_use_behavior: ( + Literal["run_llm_again", "stop_on_first_tool"] + | StopAtTools + | ToolsToFinalOutputFunction + ) = "run_llm_again", + mcp_timeout_seconds: int | None = None, + ) -> RunResult: + """ + Run an agent with automatic TaskMessage creation. + + Args: + task_id: The ID of the task to run the agent for. + input_list: List of input data for the agent. + mcp_server_params: MCP server parameters for the agent. + agent_name: The name of the agent to run. + agent_instructions: Instructions for the agent. + trace_id: Optional trace ID for tracing. + parent_span_id: Optional parent span ID for tracing. + handoff_description: Optional description of the handoff. + handoffs: Optional list of handoffs. + model: Optional model to use. + model_settings: Optional model settings. + tools: Optional list of tools. + output_type: Optional output type. + tool_use_behavior: Optional tool use behavior. + mcp_timeout_seconds: Optional param to set the timeout threshold for the MCP servers. Defaults to 5 seconds. + + Returns: + SerializableRunResult: The result of the agent run. + """ + if self.streaming_service is None: + raise ValueError("StreamingService must be available for auto_send methods") + if self.agentex_client is None: + raise ValueError("Agentex client must be provided for auto_send methods") + + redacted_params = redact_mcp_server_params(mcp_server_params) + + trace = self.tracer.trace(trace_id) + async with trace.span( + parent_id=parent_span_id, + name="run_agent_auto_send", + input={ + "task_id": task_id, + "input_list": input_list, + "mcp_server_params": redacted_params, + "agent_name": agent_name, + "agent_instructions": agent_instructions, + "handoff_description": handoff_description, + "handoffs": handoffs, + "model": model, + "model_settings": model_settings, + "tools": tools, + "output_type": output_type, + "tool_use_behavior": tool_use_behavior, + }, + ) as span: + heartbeat_if_in_workflow("run agent auto send") + + async with mcp_server_context( + mcp_server_params, mcp_timeout_seconds + ) as servers: + tools = [tool.to_oai_function_tool() for tool in tools] if tools else [] + handoffs = ( + [Agent(**handoff.model_dump()) for handoff in handoffs] + if handoffs + else [] + ) + agent_kwargs = { + "name": agent_name, + "instructions": agent_instructions, + "mcp_servers": servers, + "handoff_description": handoff_description, + "handoffs": handoffs, + "model": model, + "tools": tools, + "output_type": output_type, + "tool_use_behavior": tool_use_behavior, + } + if model_settings is not None: + agent_kwargs["model_settings"] = ( + model_settings.to_oai_model_settings() + ) + + agent = Agent(**agent_kwargs) + + # Run without streaming + result = await Runner.run(starting_agent=agent, input=input_list) + + if span: + span.output = { + "new_items": [ + item.raw_item.model_dump() + if isinstance(item.raw_item, BaseModel) + else item.raw_item + for item in result.new_items + ], + "final_output": result.final_output, + } + + tool_call_map: dict[str, ResponseFunctionToolCall] = {} + + for item in result.new_items: + if item.type == "message_output_item": + text_content = TextContent( + author="agent", + content=item.raw_item.content[0].text, + ) + # Create message for the final result using streaming context + async with ( + self.streaming_service.streaming_task_message_context( + task_id=task_id, + initial_content=text_content, + ) as streaming_context + ): + await streaming_context.stream_update( + update=StreamTaskMessageFull( + parent_task_message=streaming_context.task_message, + content=text_content, + ), + ) + + elif item.type == "tool_call_item": + tool_call_map[item.raw_item.call_id] = item.raw_item + + tool_request_content = ToolRequestContent( + author="agent", + tool_call_id=item.raw_item.call_id, + name=item.raw_item.name, + arguments=json.loads(item.raw_item.arguments), + ) + + # Create tool request using streaming context + async with ( + self.streaming_service.streaming_task_message_context( + task_id=task_id, + initial_content=tool_request_content, + ) as streaming_context + ): + await streaming_context.stream_update( + update=StreamTaskMessageFull( + parent_task_message=streaming_context.task_message, + content=tool_request_content, + ), + ) + + elif item.type == "tool_call_output_item": + tool_output_item = item.raw_item + + tool_response_content = ToolResponseContent( + author="agent", + tool_call_id=tool_output_item["call_id"], + name=tool_call_map[tool_output_item["call_id"]].name, + content=tool_output_item["output"], + ) + # Create tool response using streaming context + async with ( + self.streaming_service.streaming_task_message_context( + task_id=task_id, + initial_content=tool_response_content, + ) as streaming_context + ): + await streaming_context.stream_update( + update=StreamTaskMessageFull( + parent_task_message=streaming_context.task_message, + content=tool_response_content, + ), + ) + + # Convert to serializable result + return result + + async def run_agent_streamed( + self, + input_list: list[dict[str, Any]], + mcp_server_params: list[StdioServerParameters], + agent_name: str, + agent_instructions: str, + trace_id: str | None = None, + parent_span_id: str | None = None, + handoff_description: str | None = None, + handoffs: list[BaseModel] | None = None, + model: str | None = None, + model_settings: BaseModel | None = None, + tools: list[BaseModel] | None = None, + output_type: type[Any] | None = None, + tool_use_behavior: ( + Literal["run_llm_again", "stop_on_first_tool"] + | StopAtTools + | ToolsToFinalOutputFunction + ) = "run_llm_again", + mcp_timeout_seconds: int | None = None, + ) -> RunResultStreaming: + """ + Run an agent with streaming enabled but no TaskMessage creation. + + Args: + input_list: List of input data for the agent. + mcp_server_params: MCP server parameters for the agent. + agent_name: The name of the agent to run. + agent_instructions: Instructions for the agent. + trace_id: Optional trace ID for tracing. + parent_span_id: Optional parent span ID for tracing. + handoff_description: Optional description of the handoff. + handoffs: Optional list of handoffs. + model: Optional model to use. + model_settings: Optional model settings. + tools: Optional list of tools. + output_type: Optional output type. + tool_use_behavior: Optional tool use behavior. + mcp_timeout_seconds: Optional param to set the timeout threshold for the MCP servers. Defaults to 5 seconds. + + Returns: + RunResultStreaming: The result of the agent run with streaming. + """ + trace = self.tracer.trace(trace_id) + redacted_params = redact_mcp_server_params(mcp_server_params) + + async with trace.span( + parent_id=parent_span_id, + name="run_agent_streamed", + input={ + "input_list": input_list, + "mcp_server_params": redacted_params, + "agent_name": agent_name, + "agent_instructions": agent_instructions, + "handoff_description": handoff_description, + "handoffs": handoffs, + "model": model, + "model_settings": model_settings, + "tools": tools, + "output_type": output_type, + "tool_use_behavior": tool_use_behavior, + }, + ) as span: + heartbeat_if_in_workflow("run agent streamed") + + async with mcp_server_context( + mcp_server_params, mcp_timeout_seconds + ) as servers: + tools = [tool.to_oai_function_tool() for tool in tools] if tools else [] + handoffs = ( + [Agent(**handoff.model_dump()) for handoff in handoffs] + if handoffs + else [] + ) + agent_kwargs = { + "name": agent_name, + "instructions": agent_instructions, + "mcp_servers": servers, + "handoff_description": handoff_description, + "handoffs": handoffs, + "model": model, + "tools": tools, + "output_type": output_type, + "tool_use_behavior": tool_use_behavior, + } + if model_settings is not None: + agent_kwargs["model_settings"] = ( + model_settings.to_oai_model_settings() + ) + + agent = Agent(**agent_kwargs) + + # Run with streaming (but no TaskMessage creation) + result = Runner.run_streamed(starting_agent=agent, input=input_list) + + if span: + span.output = { + "new_items": [ + item.raw_item.model_dump() + if isinstance(item.raw_item, BaseModel) + else item.raw_item + for item in result.new_items + ], + "final_output": result.final_output, + } + + return result + + async def run_agent_streamed_auto_send( + self, + task_id: str, + input_list: list[dict[str, Any]], + mcp_server_params: list[StdioServerParameters], + agent_name: str, + agent_instructions: str, + trace_id: str | None = None, + parent_span_id: str | None = None, + handoff_description: str | None = None, + handoffs: list[BaseModel] | None = None, + model: str | None = None, + model_settings: BaseModel | None = None, + tools: list[BaseModel] | None = None, + output_type: type[Any] | None = None, + tool_use_behavior: ( + Literal["run_llm_again", "stop_on_first_tool"] + | StopAtTools + | ToolsToFinalOutputFunction + ) = "run_llm_again", + mcp_timeout_seconds: int | None = None, + ) -> RunResultStreaming: + """ + Run an agent with streaming enabled and automatic TaskMessage creation. + + Args: + task_id: The ID of the task to run the agent for. + input_list: List of input data for the agent. + mcp_server_params: MCP server parameters for the agent. + agent_name: The name of the agent to run. + agent_instructions: Instructions for the agent. + trace_id: Optional trace ID for tracing. + parent_span_id: Optional parent span ID for tracing. + handoff_description: Optional description of the handoff. + handoffs: Optional list of handoffs. + model: Optional model to use. + model_settings: Optional model settings. + tools: Optional list of tools. + output_type: Optional output type. + tool_use_behavior: Optional tool use behavior. + mcp_timeout_seconds: Optional param to set the timeout threshold for the MCP servers. Defaults to 5 seconds. + + Returns: + RunResultStreaming: The result of the agent run with streaming. + """ + if self.streaming_service is None: + raise ValueError("StreamingService must be available for auto_send methods") + if self.agentex_client is None: + raise ValueError("Agentex client must be provided for auto_send methods") + + tool_call_map: dict[str, ResponseFunctionToolCall] = {} + + trace = self.tracer.trace(trace_id) + redacted_params = redact_mcp_server_params(mcp_server_params) + + async with trace.span( + parent_id=parent_span_id, + name="run_agent_streamed_auto_send", + input={ + "task_id": task_id, + "input_list": input_list, + "mcp_server_params": redacted_params, + "agent_name": agent_name, + "agent_instructions": agent_instructions, + "handoff_description": handoff_description, + "handoffs": handoffs, + "model": model, + "model_settings": model_settings, + "tools": tools, + "output_type": output_type, + "tool_use_behavior": tool_use_behavior, + }, + ) as span: + heartbeat_if_in_workflow("run agent streamed auto send") + + async with mcp_server_context( + mcp_server_params, mcp_timeout_seconds + ) as servers: + tools = [tool.to_oai_function_tool() for tool in tools] if tools else [] + handoffs = ( + [Agent(**handoff.model_dump()) for handoff in handoffs] + if handoffs + else [] + ) + agent_kwargs = { + "name": agent_name, + "instructions": agent_instructions, + "mcp_servers": servers, + "handoff_description": handoff_description, + "handoffs": handoffs, + "model": model, + "tools": tools, + "output_type": output_type, + "tool_use_behavior": tool_use_behavior, + } + if model_settings is not None: + agent_kwargs["model_settings"] = ( + model_settings.to_oai_model_settings() + ) + + agent = Agent(**agent_kwargs) + + # Run with streaming + result = Runner.run_streamed(starting_agent=agent, input=input_list) + + item_id_to_streaming_context: dict[ + str, StreamingTaskMessageContext + ] = {} + unclosed_item_ids: set[str] = set() + + try: + # Process streaming events with TaskMessage creation + async for event in result.stream_events(): + heartbeat_if_in_workflow( + "processing stream event with auto send" + ) + + if event.type == "run_item_stream_event": + if event.item.type == "tool_call_item": + tool_call_item = event.item.raw_item + tool_call_map[tool_call_item.call_id] = tool_call_item + + tool_request_content = ToolRequestContent( + author="agent", + tool_call_id=tool_call_item.call_id, + name=tool_call_item.name, + arguments=json.loads(tool_call_item.arguments), + ) + + # Create tool request using streaming context (immediate completion) + async with ( + self.streaming_service.streaming_task_message_context( + task_id=task_id, + initial_content=tool_request_content, + ) as streaming_context + ): + # The message has already been persisted, but we still need to send an upda + await streaming_context.stream_update( + update=StreamTaskMessageFull( + parent_task_message=streaming_context.task_message, + content=tool_request_content, + ), + ) + + elif event.item.type == "tool_call_output_item": + tool_output_item = event.item.raw_item + + tool_response_content = ToolResponseContent( + author="agent", + tool_call_id=tool_output_item["call_id"], + name=tool_call_map[ + tool_output_item["call_id"] + ].name, + content=tool_output_item["output"], + ) + + # Create tool response using streaming context (immediate completion) + async with ( + self.streaming_service.streaming_task_message_context( + task_id=task_id, + initial_content=tool_response_content, + ) as streaming_context + ): + # The message has already been persisted, but we still need to send an update + await streaming_context.stream_update( + update=StreamTaskMessageFull( + parent_task_message=streaming_context.task_message, + content=tool_response_content, + ), + ) + + elif event.type == "raw_response_event": + if isinstance(event.data, ResponseTextDeltaEvent): + # Handle text delta + item_id = event.data.item_id + + # Check if we already have a streaming context for this item + if item_id not in item_id_to_streaming_context: + # Create a new streaming context for this item + streaming_context = self.streaming_service.streaming_task_message_context( + task_id=task_id, + initial_content=TextContent( + author="agent", + content="", + ), + ) + # Open the streaming context + item_id_to_streaming_context[ + item_id + ] = await streaming_context.open() + unclosed_item_ids.add(item_id) + else: + streaming_context = item_id_to_streaming_context[ + item_id + ] + + # Stream the delta through the streaming service + await streaming_context.stream_update( + update=StreamTaskMessageDelta( + parent_task_message=streaming_context.task_message, + delta=TextDelta(text_delta=event.data.delta), + ), + ) + + elif isinstance(event.data, ResponseOutputItemDoneEvent): + # Handle item completion + item_id = event.data.item.id + + # Finish the streaming context (sends DONE event and updates message) + if item_id in item_id_to_streaming_context: + streaming_context = item_id_to_streaming_context[ + item_id + ] + await streaming_context.close() + unclosed_item_ids.remove(item_id) + + elif isinstance(event.data, ResponseCompletedEvent): + # All items complete, finish all remaining streaming contexts for this session + for item_id in unclosed_item_ids: + streaming_context = item_id_to_streaming_context[ + item_id + ] + await streaming_context.close() + unclosed_item_ids.remove(item_id) + + finally: + # Cleanup: ensure all streaming contexts for this session are properly finished + for item_id in unclosed_item_ids: + streaming_context = item_id_to_streaming_context[item_id] + await streaming_context.close() + unclosed_item_ids.remove(item_id) + + if span: + span.output = { + "new_items": [ + item.raw_item.model_dump() + if isinstance(item.raw_item, BaseModel) + else item.raw_item + for item in result.new_items + ], + "final_output": result.final_output, + } + + return result diff --git a/src/agentex/lib/core/services/adk/providers/sgp.py b/src/agentex/lib/core/services/adk/providers/sgp.py new file mode 100644 index 000000000..4fbbd9f0c --- /dev/null +++ b/src/agentex/lib/core/services/adk/providers/sgp.py @@ -0,0 +1,99 @@ +import base64 +import os +import tempfile + +from scale_gp import SGPClient + +from agentex.lib.core.tracing.tracer import AsyncTracer +from agentex.lib.types.files import FileContentResponse +from agentex.lib.utils.logging import make_logger +from agentex.lib.utils.temporal import heartbeat_if_in_workflow + +logger = make_logger(__name__) + + +class SGPService: + def __init__(self, sgp_client: SGPClient, tracer: AsyncTracer): + self.sgp_client = sgp_client + self.tracer = tracer + + async def download_file_content( + self, + file_id: str, + filename: str, + trace_id: str | None = None, + parent_span_id: str | None = None, + ) -> FileContentResponse: + """ + Download file content from SGP. + + Args: + file_id: The ID of the file to download. + filename: The filename of the file to download. + trace_id: The trace ID for tracing. + parent_span_id: The parent span ID for tracing. + + Returns: + FileContentResponse with mime_type and base64_content for constructing LLM input. + """ + trace = self.tracer.trace(trace_id) + async with trace.span( + parent_id=parent_span_id, + name="download_file_content", + input={"file_id": file_id, "filename": filename}, + ) as span: + logger.info(f"Downloading file content for file_id: {file_id}") + heartbeat_if_in_workflow("downloading file content") + + # Get the SGP response + response = self.sgp_client.beta.files.content(file_id) + heartbeat_if_in_workflow("file content downloaded") + + # Determine mime type based on file extension + mime_type = "application/pdf" # Default + file_extension = os.path.splitext(filename)[1].lower() + if file_extension: + if file_extension == ".pdf": + mime_type = "application/pdf" + elif file_extension in [".doc", ".docx"]: + mime_type = "application/msword" + elif file_extension in [".txt", ".text"]: + mime_type = "text/plain" + elif file_extension in [".png"]: + mime_type = "image/png" + elif file_extension in [".jpg", ".jpeg"]: + mime_type = "image/jpeg" + + # Use a named temporary file - simpler approach + with tempfile.NamedTemporaryFile(suffix=file_extension) as temp_file: + heartbeat_if_in_workflow(f"saving to temp file: {temp_file.name}") + + # Use write_to_file method if available + if hasattr(response, "write_to_file"): + response.write_to_file(temp_file.name) + else: + # Fallback to direct writing + content_bytes = response.read() + temp_file.write(content_bytes) + temp_file.flush() + + # Seek to beginning of file for reading + temp_file.seek(0) + + # Read the file in binary mode - exactly like the example + data = temp_file.read() + + # Encode to base64 + base64_content = base64.b64encode(data).decode("utf-8") + + result = FileContentResponse( + mime_type=mime_type, base64_content=base64_content + ) + + # Record metadata for tracing + span.output = { + "file_id": file_id, + "mime_type": result.mime_type, + "content_size": len(result.base64_content), + } + return result diff --git a/src/agentex/lib/core/services/adk/state.py b/src/agentex/lib/core/services/adk/state.py new file mode 100644 index 000000000..e27ee41fb --- /dev/null +++ b/src/agentex/lib/core/services/adk/state.py @@ -0,0 +1,120 @@ +from typing import Any, Dict + +from agentex import AsyncAgentex +from agentex.lib.core.tracing.tracer import AsyncTracer +from agentex.types.state import State +from agentex.lib.utils.logging import make_logger + +logger = make_logger(__name__) + + +class StateService: + def __init__( + self, agentex_client: AsyncAgentex, tracer: AsyncTracer + ): + self._agentex_client = agentex_client + self._tracer = tracer + + async def create_state( + self, + task_id: str, + agent_id: str, + state: dict[str, Any], + trace_id: str | None = None, + parent_span_id: str | None = None, + ) -> State: + trace = self._tracer.trace(trace_id) + async with trace.span( + parent_id=parent_span_id, + name="create_state", + input={"task_id": task_id, "agent_id": agent_id, "state": state}, + ) as span: + state_model = await self._agentex_client.states.create( + task_id=task_id, + agent_id=agent_id, + state=state, + ) + if span: + span.output = state_model.model_dump() + return state_model + + async def get_state( + self, + state_id: str | None = None, + task_id: str | None = None, + agent_id: str | None = None, + trace_id: str | None = None, + parent_span_id: str | None = None, + ) -> State | None: + trace = self._tracer.trace(trace_id) if self._tracer else None + async with trace.span( + parent_id=parent_span_id, + name="get_state", + input={ + "state_id": state_id, + "task_id": task_id, + "agent_id": agent_id, + }, + ) as span: + if state_id: + state = await self._agentex_client.states.retrieve(state_id=state_id) + elif task_id and agent_id: + states = await self._agentex_client.states.list( + task_id=task_id, + agent_id=agent_id, + ) + state = states[0] if states else None + else: + raise ValueError( + "Must provide either state_id or both task_id and agent_id" + ) + if span: + span.output = state.model_dump() if state else None + return state + + async def update_state( + self, + state_id: str, + task_id: str, + agent_id: str, + state: Dict[str, object], + trace_id: str | None = None, + parent_span_id: str | None = None, + ) -> State: + trace = self._tracer.trace(trace_id) + async with trace.span( + parent_id=parent_span_id, + name="update_state", + input={ + "state_id": state_id, + "task_id": task_id, + "agent_id": agent_id, + "state": state, + }, + ) as span: + state_model = await self._agentex_client.states.update( + state_id=state_id, + task_id=task_id, + agent_id=agent_id, + state=state, + ) + if span: + span.output = state_model.model_dump() + return state_model + + async def delete_state( + self, + state_id: str, + trace_id: str | None = None, + parent_span_id: str | None = None, + ) -> State: + trace = self._tracer.trace(trace_id) + async with trace.span( + parent_id=parent_span_id, + name="delete_state", + input={"state_id": state_id}, + ) as span: + state = await self._agentex_client.states.delete(state_id) + if span: + span.output = state.model_dump() + return state diff --git a/src/agentex/lib/core/services/adk/streaming.py b/src/agentex/lib/core/services/adk/streaming.py new file mode 100644 index 000000000..c89fa74da --- /dev/null +++ b/src/agentex/lib/core/services/adk/streaming.py @@ -0,0 +1,262 @@ +import json +from typing import Literal, cast + +from agentex import AsyncAgentex +from agentex.lib.core.adapters.streams.port import EventStreamRepository +from agentex.lib.types.task_message_updates import ( + TaskMessageDelta, + TaskMessageUpdate, + TextDelta, + DataDelta, + ToolRequestDelta, + ToolResponseDelta, + StreamTaskMessage, + StreamTaskMessageStart, + StreamTaskMessageDelta, + StreamTaskMessageFull, + StreamTaskMessageDone, +) +from agentex.lib.utils.logging import make_logger +from agentex.types.data_content import DataContent +from agentex.types.task_message import ( + TaskMessage, + TaskMessageContent, +) +from agentex.types.task_message_content_param import TaskMessageContentParam +from agentex.types.text_content import TextContent +from agentex.types.tool_request_content import ToolRequestContent +from agentex.types.tool_response_content import ToolResponseContent + +logger = make_logger(__name__) + + +def _get_stream_topic(task_id: str) -> str: + return f"task:{task_id}" + + +class DeltaAccumulator: + def __init__(self): + self._accumulated_deltas: list[TaskMessageDelta] = [] + self._delta_type: Literal["text", "data", "tool_request", "tool_response"] | None = None + + def add_delta(self, delta: TaskMessageDelta): + if self._delta_type is None: + if delta.type == "text": + self._delta_type = "text" + elif delta.type == "data": + self._delta_type = "data" + elif delta.type == "tool_request": + self._delta_type = "tool_request" + elif delta.type == "tool_response": + self._delta_type = "tool_response" + else: + raise ValueError(f"Unknown delta type: {delta.type}") + else: + if self._delta_type != delta.type: + raise ValueError( + f"Delta type mismatch: {self._delta_type} != {delta.type}" + ) + + self._accumulated_deltas.append(delta) + + def convert_to_content(self) -> TaskMessageContent: + if self._delta_type == "text": + # Type assertion: we know all deltas are TextDelta when _delta_type is TEXT + text_deltas = [delta for delta in self._accumulated_deltas if isinstance(delta, TextDelta)] + text_content_str = "".join( + [delta.text_delta or "" for delta in text_deltas] + ) + return TextContent( + author="agent", + content=text_content_str, + ) + elif self._delta_type == "data": + # Type assertion: we know all deltas are DataDelta when _delta_type is DATA + data_deltas = [delta for delta in self._accumulated_deltas if isinstance(delta, DataDelta)] + data_content_str = "".join( + [delta.data_delta or "" for delta in data_deltas] + ) + try: + data = json.loads(data_content_str) + except json.JSONDecodeError as e: + raise ValueError( + f"Accumulated data content is not valid JSON: {data_content_str}" + ) from e + return DataContent( + author="agent", + data=data, + ) + elif self._delta_type == "tool_request": + # Type assertion: we know all deltas are ToolRequestDelta when _delta_type is TOOL_REQUEST + tool_request_deltas = [delta for delta in self._accumulated_deltas if isinstance(delta, ToolRequestDelta)] + arguments_content_str = "".join( + [delta.arguments_delta or "" for delta in tool_request_deltas] + ) + try: + arguments = json.loads(arguments_content_str) + except json.JSONDecodeError as e: + raise ValueError( + f"Accumulated tool request arguments is not valid JSON: {arguments_content_str}" + ) from e + return ToolRequestContent( + author="agent", + tool_call_id=tool_request_deltas[0].tool_call_id, + name=tool_request_deltas[0].name, + arguments=arguments, + ) + elif self._delta_type == "tool_response": + # Type assertion: we know all deltas are ToolResponseDelta when _delta_type is TOOL_RESPONSE + tool_response_deltas = [delta for delta in self._accumulated_deltas if isinstance(delta, ToolResponseDelta)] + tool_response_content_str = "".join( + [delta.tool_response_delta or "" for delta in tool_response_deltas] + ) + return ToolResponseContent( + author="agent", + tool_call_id=tool_response_deltas[0].tool_call_id, + name=tool_response_deltas[0].name, + content=tool_response_content_str, + ) + else: + raise ValueError(f"Unknown delta type: {self._delta_type}") + + +class StreamingTaskMessageContext: + def __init__( + self, + task_id: str, + initial_content: TaskMessageContent, + agentex_client: AsyncAgentex, + streaming_service: "StreamingService", + ): + self.task_id = task_id + self.initial_content = initial_content + self.task_message: TaskMessage | None = None + self._agentex_client = agentex_client + self._streaming_service = streaming_service + self._is_closed = False + self._delta_accumulator = DeltaAccumulator() + + async def __aenter__(self) -> "StreamingTaskMessageContext": + return await self.open() + + async def __aexit__(self, exc_type, exc_val, exc_tb): + return await self.close() + + async def open(self) -> "StreamingTaskMessageContext": + self._is_closed = False + + self.task_message = await self._agentex_client.messages.create( + task_id=self.task_id, + content=self.initial_content.model_dump(), + streaming_status="IN_PROGRESS", + ) + + # Send the START event + start_event = StreamTaskMessageStart( + parent_task_message=self.task_message, + content=self.initial_content, + ) + await self._streaming_service.stream_update(start_event) + + return self + + async def close(self) -> TaskMessage: + """Close the streaming context.""" + if not self.task_message: + raise ValueError("Context not properly initialized - no task message") + + if self._is_closed: + return self.task_message # Already done + + # Send the DONE event + done_event = StreamTaskMessageDone(parent_task_message=self.task_message) + await self._streaming_service.stream_update(done_event) + + # Update the task message with the final content + if self._delta_accumulator._accumulated_deltas: + self.task_message.content = self._delta_accumulator.convert_to_content() + + await self._agentex_client.messages.update( + task_id=self.task_id, + message_id=self.task_message.id, + content=self.task_message.content.model_dump(), + streaming_status="DONE", + ) + + # Mark the context as done + self._is_closed = True + return self.task_message + + async def stream_update( + self, update: StreamTaskMessage + ) -> StreamTaskMessage | None: + """Stream an update to the repository.""" + if self._is_closed: + raise ValueError("Context is already done") + + if not self.task_message: + raise ValueError("Context not properly initialized - no task message") + + if isinstance(update, StreamTaskMessageDelta): + if update.delta is not None: + self._delta_accumulator.add_delta(update.delta) + + result = await self._streaming_service.stream_update(update) + + if isinstance(update, StreamTaskMessageDone): + await self.close() + return update + elif isinstance(update, StreamTaskMessageFull): + await self._agentex_client.messages.update( + task_id=self.task_id, + message_id=update.parent_task_message.id, + content=update.content.model_dump(), + streaming_status="DONE", + ) + self._is_closed = True + return result + + +class StreamingService: + def __init__( + self, + agentex_client: AsyncAgentex, + stream_repository: EventStreamRepository, + ): + self._agentex_client = agentex_client + self._stream_repository = stream_repository + + def streaming_task_message_context( + self, + task_id: str, + initial_content: TaskMessageContent, + ) -> StreamingTaskMessageContext: + return StreamingTaskMessageContext( + task_id=task_id, + initial_content=initial_content, + agentex_client=self._agentex_client, + streaming_service=self, + ) + + async def stream_update( + self, update: TaskMessageUpdate + ) -> TaskMessageUpdate | None: + """ + Stream an update to the repository. + + Args: + update: The update to stream + + Returns: + True if event was streamed successfully, False otherwise + """ + stream_topic = _get_stream_topic(update.parent_task_message.task_id) + + try: + await self._stream_repository.send_event( + topic=stream_topic, event=update.model_dump(mode="json") # type: ignore + ) + return update + except Exception as e: + logger.exception(f"Failed to stream event: {e}") + return None diff --git a/src/agentex/lib/core/services/adk/tasks.py b/src/agentex/lib/core/services/adk/tasks.py new file mode 100644 index 000000000..af4b8fbfd --- /dev/null +++ b/src/agentex/lib/core/services/adk/tasks.py @@ -0,0 +1,69 @@ +from agentex import AsyncAgentex +from agentex.lib.core.tracing.tracer import AsyncTracer +from agentex.types.task import Task +from agentex.lib.utils.logging import make_logger +from agentex.lib.utils.temporal import heartbeat_if_in_workflow + +logger = make_logger(__name__) + + +class TasksService: + def __init__( + self, + agentex_client: AsyncAgentex, + tracer: AsyncTracer, + ): + self._agentex_client = agentex_client + self._tracer = tracer + + async def get_task( + self, + task_id: str | None = None, + task_name: str | None = None, + trace_id: str | None = None, + parent_span_id: str | None = None, + ) -> Task: + trace = self._tracer.trace(trace_id) + async with trace.span( + parent_id=parent_span_id, + name="get_task", + input={"task_id": task_id, "task_name": task_name}, + ) as span: + heartbeat_if_in_workflow("get task") + if not task_id and not task_name: + raise ValueError("Either task_id or task_name must be provided.") + if task_id: + task_model = await self._agentex_client.tasks.retrieve(task_id=task_id) + elif task_name: + task_model = await self._agentex_client.tasks.retrieve_by_name(task_name=task_name) + else: + raise ValueError("Either task_id or task_name must be provided.") + if span: + span.output = task_model.model_dump() + return task_model + + async def delete_task( + self, + task_id: str | None = None, + task_name: str | None = None, + trace_id: str | None = None, + parent_span_id: str | None = None, + ) -> Task: + trace = self._tracer.trace(trace_id) if self._tracer else None + async with trace.span( + parent_id=parent_span_id, + name="delete_task", + input={"task_id": task_id, "task_name": task_name}, + ) as span: + heartbeat_if_in_workflow("delete task") + if not task_id and not task_name: + raise ValueError("Either task_id or task_name must be provided.") + if task_id: + task_model = await self._agentex_client.tasks.delete(task_id=task_id) + elif task_name: + task_model = await self._agentex_client.tasks.delete_by_name(task_name=task_name) + else: + raise ValueError("Either task_id or task_name must be provided.") + if span: + span.output = task_model.model_dump() + return task_model diff --git a/src/agentex/lib/core/services/adk/tracing.py b/src/agentex/lib/core/services/adk/tracing.py new file mode 100644 index 000000000..0de69d210 --- /dev/null +++ b/src/agentex/lib/core/services/adk/tracing.py @@ -0,0 +1,36 @@ +from typing import Any +from agentex.lib.core.tracing.tracer import AsyncTracer +from agentex.types.span import Span +from agentex.lib.utils.logging import make_logger +from agentex.lib.utils.model_utils import BaseModel +from agentex.lib.utils.temporal import heartbeat_if_in_workflow + +logger = make_logger(__name__) + + +class TracingService: + def __init__(self, tracer: AsyncTracer): + self._tracer = tracer + + async def start_span( + self, + trace_id: str, + name: str, + parent_id: str | None = None, + input: list[Any] | dict[str, Any] | BaseModel | None = None, + data: list[Any] | dict[str, Any] | BaseModel | None = None, + ) -> Span | None: + trace = self._tracer.trace(trace_id) + async with trace.span( + parent_id=parent_id, + name=name, + input=input or {}, + data=data, + ) as span: + heartbeat_if_in_workflow("start span") + return span if span else None + + async def end_span(self, trace_id: str, span: Span) -> Span: + trace = self._tracer.trace(trace_id) + await trace.end_span(span) + return span diff --git a/src/agentex/lib/core/services/adk/utils/__init__.py b/src/agentex/lib/core/services/adk/utils/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/src/agentex/lib/core/services/adk/utils/templating.py b/src/agentex/lib/core/services/adk/utils/templating.py new file mode 100644 index 000000000..b9bf01b66 --- /dev/null +++ b/src/agentex/lib/core/services/adk/utils/templating.py @@ -0,0 +1,58 @@ +from datetime import datetime +from typing import Any + +from jinja2 import BaseLoader, Environment + +from agentex.lib.core.tracing.tracer import AsyncTracer +from agentex.lib.utils.temporal import heartbeat_if_in_workflow + +# Create a Jinja environment +JINJA_ENV = Environment( + loader=BaseLoader(), + trim_blocks=True, + lstrip_blocks=True, + extensions=["jinja2.ext.do"], +) + + +class TemplatingService: + def __init__(self, tracer: AsyncTracer | None = None): + self.tracer = tracer + + async def render_jinja( + self, + template: str, + variables: dict[str, Any], + trace_id: str | None = None, + parent_span_id: str | None = None, + ) -> str: + """ + Activity that renders a Jinja template with the provided data. + + Args: + template: The template string to render. + variables: The variables to render the template with. + trace_id: The trace ID for tracing. + parent_span_id: The parent span ID for tracing. + + Returns: + The rendered template as a string + """ + trace = self.tracer.trace(trace_id) + async with trace.span( + parent_id=parent_span_id, + name="render_jinja", + input={"template": template, "variables": variables}, + ) as span: + heartbeat_if_in_workflow("render jinja") + global_variables = { + "datetime": datetime, + } + jinja_template = JINJA_ENV.from_string(template, globals=global_variables) + try: + rendered_template = jinja_template.render(variables) + if span: + span.output = {"jinja_output": rendered_template} + return rendered_template + except Exception as e: + raise ValueError(f"Error rendering Jinja template: {str(e)}") from e diff --git a/src/agentex/lib/core/temporal/__init__.py b/src/agentex/lib/core/temporal/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/src/agentex/lib/core/temporal/activities/__init__.py b/src/agentex/lib/core/temporal/activities/__init__.py new file mode 100644 index 000000000..d8d76053d --- /dev/null +++ b/src/agentex/lib/core/temporal/activities/__init__.py @@ -0,0 +1,207 @@ +from scale_gp import SGPClient, SGPClientError + +from agentex import AsyncAgentex +from agentex.lib.core.adapters.llm.adapter_litellm import LiteLLMGateway +from agentex.lib.core.adapters.streams.adapter_redis import RedisEventStreamRepository +from agentex.lib.core.services.adk.acp.acp import ACPService +from agentex.lib.core.services.adk.agent_task_tracker import AgentTaskTrackerService +from agentex.lib.core.services.adk.events import EventsService +from agentex.lib.core.services.adk.messages import MessagesService +from agentex.lib.core.services.adk.providers.litellm import LiteLLMService +from agentex.lib.core.services.adk.providers.openai import OpenAIService +from agentex.lib.core.services.adk.providers.sgp import SGPService +from agentex.lib.core.services.adk.state import StateService +from agentex.lib.core.services.adk.streaming import StreamingService +from agentex.lib.core.services.adk.tasks import TasksService +from agentex.lib.core.services.adk.tracing import TracingService +from agentex.lib.core.services.adk.utils.templating import TemplatingService +from agentex.lib.core.temporal.activities.adk.acp.acp_activities import ACPActivities +from agentex.lib.core.temporal.activities.adk.agent_task_tracker_activities import ( + AgentTaskTrackerActivities, +) +from agentex.lib.core.temporal.activities.adk.events_activities import EventsActivities +from agentex.lib.core.temporal.activities.adk.messages_activities import MessagesActivities +from agentex.lib.core.temporal.activities.adk.providers.litellm_activities import ( + LiteLLMActivities, +) +from agentex.lib.core.temporal.activities.adk.providers.openai_activities import ( + OpenAIActivities, +) +from agentex.lib.core.temporal.activities.adk.providers.sgp_activities import SGPActivities +from agentex.lib.core.temporal.activities.adk.state_activities import StateActivities +from agentex.lib.core.temporal.activities.adk.streaming_activities import ( + StreamingActivities, +) +from agentex.lib.core.temporal.activities.adk.tasks_activities import TasksActivities +from agentex.lib.core.temporal.activities.adk.tracing_activities import TracingActivities +from agentex.lib.core.temporal.activities.adk.utils.templating_activities import ( + TemplatingActivities, +) +from agentex.lib.core.tracing import AsyncTracer + + +def get_all_activities(sgp_client=None): + """ + Returns a list of all standard activity functions that can be directly passed to worker.run(). + + Args: + sgp_client: Optional SGP client instance. If not provided, SGP activities will not be included. + + Returns: + list: A list of activity functions ready to be passed to worker.run() + """ + # Initialize common dependencies + try: + sgp_client = SGPClient() + except SGPClientError: + sgp_client = None + + llm_gateway = LiteLLMGateway() + stream_repository = RedisEventStreamRepository() + agentex_client = AsyncAgentex() + tracer = AsyncTracer(agentex_client) + + # Services + + ## ADK + streaming_service = StreamingService( + agentex_client=agentex_client, + stream_repository=stream_repository, + ) + messages_service = MessagesService( + agentex_client=agentex_client, + streaming_service=streaming_service, + tracer=tracer, + ) + events_service = EventsService( + agentex_client=agentex_client, + tracer=tracer, + ) + agent_task_tracker_service = AgentTaskTrackerService( + agentex_client=agentex_client, + tracer=tracer, + ) + state_service = StateService( + agentex_client=agentex_client, + tracer=tracer, + ) + tasks_service = TasksService( + agentex_client=agentex_client, + tracer=tracer, + ) + tracing_service = TracingService( + tracer=tracer, + ) + + ## ACP + acp_service = ACPService( + agentex_client=agentex_client, + tracer=tracer, + ) + + ## Providers + litellm_service = LiteLLMService( + agentex_client=agentex_client, + llm_gateway=llm_gateway, + streaming_service=streaming_service, + tracer=tracer, + ) + openai_service = OpenAIService( + agentex_client=agentex_client, + streaming_service=streaming_service, + tracer=tracer, + ) + sgp_service = None + if sgp_client is not None: + sgp_service = SGPService( + sgp_client=sgp_client, + tracer=tracer, + ) + + ## Utils + templating_service = TemplatingService( + tracer=tracer, + ) + + # ADK + + ## Core activities + messages_activities = MessagesActivities(messages_service=messages_service) + events_activities = EventsActivities(events_service=events_service) + agent_task_tracker_activities = AgentTaskTrackerActivities( + agent_task_tracker_service=agent_task_tracker_service + ) + state_activities = StateActivities(state_service=state_service) + streaming_activities = StreamingActivities(streaming_service=streaming_service) + tasks_activities = TasksActivities(tasks_service=tasks_service) + tracing_activities = TracingActivities(tracing_service=tracing_service) + + ## ACP + acp_activities = ACPActivities(acp_service=acp_service) + + ## Providers + litellm_activities = LiteLLMActivities(litellm_service=litellm_service) + openai_activities = OpenAIActivities(openai_service=openai_service) + if sgp_client is not None: + sgp_activities = SGPActivities(sgp_service=sgp_service) + else: + sgp_activities = None + + ## Utils + templating_activities = TemplatingActivities(templating_service=templating_service) + + # Build list of standard activities + activities = [ + # Core activities + ## Messages activities + messages_activities.create_message, + messages_activities.update_message, + messages_activities.create_messages_batch, + messages_activities.update_messages_batch, + messages_activities.list_messages, + ## Events activities + events_activities.get_event, + events_activities.list_events, + ## Agent Task Tracker activities + agent_task_tracker_activities.get_agent_task_tracker, + agent_task_tracker_activities.get_agent_task_tracker_by_task_and_agent, + agent_task_tracker_activities.update_agent_task_tracker, + ## State activities + state_activities.create_state, + state_activities.get_state, + state_activities.update_state, + state_activities.delete_state, + ## Streaming activities + streaming_activities.stream_update, + ## Tasks activities + tasks_activities.get_task, + tasks_activities.delete_task, + ## Tracing activities + tracing_activities.start_span, + tracing_activities.end_span, + # ACP activities + acp_activities.task_create, + acp_activities.message_send, + acp_activities.event_send, + acp_activities.task_cancel, + # Providers + ## LiteLLM activities + litellm_activities.chat_completion, + litellm_activities.chat_completion_auto_send, + litellm_activities.chat_completion_stream_auto_send, + ## OpenAI activities + openai_activities.run_agent, + openai_activities.run_agent_auto_send, + openai_activities.run_agent_streamed_auto_send, + # Utils + templating_activities.render_jinja, + ] + + # SGP activities + if sgp_client is not None: + sgp_all_activities = [ + sgp_activities.download_file_content, + ] + activities.extend(sgp_all_activities) + + return activities diff --git a/src/agentex/lib/core/temporal/activities/activity_helpers.py b/src/agentex/lib/core/temporal/activities/activity_helpers.py new file mode 100644 index 000000000..82e83c534 --- /dev/null +++ b/src/agentex/lib/core/temporal/activities/activity_helpers.py @@ -0,0 +1,37 @@ +from datetime import timedelta +from typing import Any, TypeVar + +from pydantic import TypeAdapter +from temporalio import workflow +from temporalio.common import RetryPolicy + +from agentex.lib.utils.model_utils import BaseModel + +T = TypeVar("T", bound="BaseModel") + + +class ActivityHelpers: + @staticmethod + async def execute_activity( + activity_name: str, + request: BaseModel | str | int | float | bool | dict[str, Any] | list[Any], + response_type: Any, + start_to_close_timeout: timedelta | None = None, + heartbeat_timeout: timedelta | None = None, + retry_policy: RetryPolicy | None = None, + ) -> Any: + if start_to_close_timeout is None: + start_to_close_timeout = timedelta(seconds=10) + if retry_policy is None: + retry_policy = RetryPolicy(maximum_attempts=0) + + response = await workflow.execute_activity( + activity=activity_name, + arg=request, + start_to_close_timeout=start_to_close_timeout, + retry_policy=retry_policy, + heartbeat_timeout=heartbeat_timeout, + ) + + adapter = TypeAdapter(response_type) + return adapter.validate_python(response) diff --git a/src/agentex/lib/core/temporal/activities/adk/__init__.py b/src/agentex/lib/core/temporal/activities/adk/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/src/agentex/lib/core/temporal/activities/adk/acp/__init__.py b/src/agentex/lib/core/temporal/activities/adk/acp/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/src/agentex/lib/core/temporal/activities/adk/acp/acp_activities.py b/src/agentex/lib/core/temporal/activities/adk/acp/acp_activities.py new file mode 100644 index 000000000..ebd23cc22 --- /dev/null +++ b/src/agentex/lib/core/temporal/activities/adk/acp/acp_activities.py @@ -0,0 +1,86 @@ +from enum import Enum +from typing import Any + +from temporalio import activity + +from agentex.lib.core.services.adk.acp.acp import ACPService +from agentex.types.event import Event +from agentex.types.task_message import TaskMessage +from agentex.types.task_message_content import TaskMessageContent +from agentex.types.task import Task +from agentex.lib.types.tracing import BaseModelWithTraceParams +from agentex.lib.utils.logging import make_logger + +logger = make_logger(__name__) + + +class ACPActivityName(str, Enum): + TASK_CREATE = "task-create" + MESSAGE_SEND = "message-send" + EVENT_SEND = "event-send" + TASK_CANCEL = "task-cancel" + + +class TaskCreateParams(BaseModelWithTraceParams): + name: str | None = None + agent_id: str | None = None + agent_name: str | None = None + params: dict[str, Any] | None = None + + +class MessageSendParams(BaseModelWithTraceParams): + agent_id: str | None = None + agent_name: str | None = None + task_id: str | None = None + content: TaskMessageContent + + +class EventSendParams(BaseModelWithTraceParams): + agent_id: str | None = None + agent_name: str | None = None + task_id: str | None = None + content: TaskMessageContent + + +class TaskCancelParams(BaseModelWithTraceParams): + task_id: str | None = None + task_name: str | None = None + + +class ACPActivities: + def __init__(self, acp_service: ACPService): + self._acp_service = acp_service + + @activity.defn(name=ACPActivityName.TASK_CREATE) + async def task_create(self, params: TaskCreateParams) -> Task: + return await self._acp_service.task_create( + name=params.name, + agent_id=params.agent_id, + agent_name=params.agent_name, + params=params.params, + ) + + @activity.defn(name=ACPActivityName.MESSAGE_SEND) + async def message_send(self, params: MessageSendParams) -> TaskMessage: + return await self._acp_service.message_send( + agent_id=params.agent_id, + agent_name=params.agent_name, + task_id=params.task_id, + content=params.content, + ) + + @activity.defn(name=ACPActivityName.EVENT_SEND) + async def event_send(self, params: EventSendParams) -> Event: + return await self._acp_service.event_send( + agent_id=params.agent_id, + agent_name=params.agent_name, + task_id=params.task_id, + content=params.content, + ) + + @activity.defn(name=ACPActivityName.TASK_CANCEL) + async def task_cancel(self, params: TaskCancelParams) -> Task: + return await self._acp_service.task_cancel( + task_id=params.task_id, + task_name=params.task_name, + ) diff --git a/src/agentex/lib/core/temporal/activities/adk/agent_task_tracker_activities.py b/src/agentex/lib/core/temporal/activities/adk/agent_task_tracker_activities.py new file mode 100644 index 000000000..5bd974d58 --- /dev/null +++ b/src/agentex/lib/core/temporal/activities/adk/agent_task_tracker_activities.py @@ -0,0 +1,76 @@ +from enum import Enum + +from temporalio import activity + +from agentex.lib.core.services.adk.agent_task_tracker import AgentTaskTrackerService +from agentex.lib.types.tracing import BaseModelWithTraceParams +from agentex.lib.utils.logging import make_logger +from agentex.types.agent_task_tracker import AgentTaskTracker + +logger = make_logger(__name__) + + +class AgentTaskTrackerActivityName(str, Enum): + GET_AGENT_TASK_TRACKER = "get-agent-task-tracker" + GET_AGENT_TASK_TRACKER_BY_TASK_AND_AGENT = ( + "get-agent-task-tracker-by-task-and-agent" + ) + UPDATE_AGENT_TASK_TRACKER = "update-agent-task-tracker" + + +class GetAgentTaskTrackerParams(BaseModelWithTraceParams): + tracker_id: str + + +class GetAgentTaskTrackerByTaskAndAgentParams(BaseModelWithTraceParams): + task_id: str + agent_id: str + + +class UpdateAgentTaskTrackerParams(BaseModelWithTraceParams): + tracker_id: str + last_processed_event_id: str | None + status: str | None + status_reason: str | None + + +class AgentTaskTrackerActivities: + def __init__(self, agent_task_tracker_service: AgentTaskTrackerService): + self._agent_task_tracker_service = agent_task_tracker_service + + @activity.defn(name=AgentTaskTrackerActivityName.GET_AGENT_TASK_TRACKER) + async def get_agent_task_tracker( + self, params: GetAgentTaskTrackerParams + ) -> AgentTaskTracker: + return await self._agent_task_tracker_service.get_agent_task_tracker( + tracker_id=params.tracker_id, + trace_id=params.trace_id, + parent_span_id=params.parent_span_id, + ) + + @activity.defn( + name=AgentTaskTrackerActivityName.GET_AGENT_TASK_TRACKER_BY_TASK_AND_AGENT + ) + async def get_agent_task_tracker_by_task_and_agent( + self, + params: GetAgentTaskTrackerByTaskAndAgentParams, + ) -> AgentTaskTracker | None: + return await self._agent_task_tracker_service.get_by_task_and_agent( + task_id=params.task_id, + agent_id=params.agent_id, + trace_id=params.trace_id, + parent_span_id=params.parent_span_id, + ) + + @activity.defn(name=AgentTaskTrackerActivityName.UPDATE_AGENT_TASK_TRACKER) + async def update_agent_task_tracker( + self, params: UpdateAgentTaskTrackerParams + ) -> AgentTaskTracker: + return await self._agent_task_tracker_service.update_agent_task_tracker( + tracker_id=params.tracker_id, + last_processed_event_id=params.last_processed_event_id, + status=params.status, + status_reason=params.status_reason, + trace_id=params.trace_id, + parent_span_id=params.parent_span_id, + ) diff --git a/src/agentex/lib/core/temporal/activities/adk/agents_activities.py b/src/agentex/lib/core/temporal/activities/adk/agents_activities.py new file mode 100644 index 000000000..ad51b72eb --- /dev/null +++ b/src/agentex/lib/core/temporal/activities/adk/agents_activities.py @@ -0,0 +1,35 @@ +from enum import Enum +from typing import Optional + +from agentex.lib.core.services.adk.agents import AgentsService +from agentex.types.agent import Agent +from temporalio import activity + +from agentex.lib.types.tracing import BaseModelWithTraceParams +from agentex.lib.utils.logging import make_logger + +logger = make_logger(__name__) + + +class AgentsActivityName(str, Enum): + GET_AGENT = "get-agent" + + +class GetAgentParams(BaseModelWithTraceParams): + agent_id: Optional[str] = None + agent_name: Optional[str] = None + + +class AgentsActivities: + def __init__(self, agents_service: AgentsService): + self._agents_service = agents_service + + @activity.defn(name=AgentsActivityName.GET_AGENT) + async def get_agent(self, params: GetAgentParams) -> Agent | None: + return await self._agents_service.get_agent( + agent_id=params.agent_id, + agent_name=params.agent_name, + trace_id=params.trace_id, + parent_span_id=params.parent_span_id, + ) + diff --git a/src/agentex/lib/core/temporal/activities/adk/events_activities.py b/src/agentex/lib/core/temporal/activities/adk/events_activities.py new file mode 100644 index 000000000..224bd1a60 --- /dev/null +++ b/src/agentex/lib/core/temporal/activities/adk/events_activities.py @@ -0,0 +1,50 @@ +from enum import Enum + +from temporalio import activity + +from agentex.lib.core.services.adk.events import EventsService +from agentex.types.event import Event +from agentex.lib.types.tracing import BaseModelWithTraceParams +from agentex.lib.utils.logging import make_logger + +logger = make_logger(__name__) + + +class EventsActivityName(str, Enum): + GET_EVENT = "get-event" + LIST_EVENTS = "list-events" + + +class GetEventParams(BaseModelWithTraceParams): + event_id: str + + +class ListEventsParams(BaseModelWithTraceParams): + task_id: str + agent_id: str + last_processed_event_id: str | None = None + limit: int | None = None + + +class EventsActivities: + def __init__(self, events_service: EventsService): + self._events_service = events_service + + @activity.defn(name=EventsActivityName.GET_EVENT) + async def get_event(self, params: GetEventParams) -> Event | None: + return await self._events_service.get_event( + event_id=params.event_id, + trace_id=params.trace_id, + parent_span_id=params.parent_span_id, + ) + + @activity.defn(name=EventsActivityName.LIST_EVENTS) + async def list_events(self, params: ListEventsParams) -> list[Event]: + return await self._events_service.list_events( + task_id=params.task_id, + agent_id=params.agent_id, + last_processed_event_id=params.last_processed_event_id, + limit=params.limit, + trace_id=params.trace_id, + parent_span_id=params.parent_span_id, + ) diff --git a/src/agentex/lib/core/temporal/activities/adk/messages_activities.py b/src/agentex/lib/core/temporal/activities/adk/messages_activities.py new file mode 100644 index 000000000..8fdad8ddd --- /dev/null +++ b/src/agentex/lib/core/temporal/activities/adk/messages_activities.py @@ -0,0 +1,94 @@ +from enum import Enum + +from temporalio import activity + +from agentex.lib.core.services.adk.messages import MessagesService +from agentex.types.task_message import TaskMessage +from agentex.types.task_message_content import TaskMessageContent +from agentex.lib.types.tracing import BaseModelWithTraceParams +from agentex.lib.utils.logging import make_logger + +logger = make_logger(__name__) + + +class MessagesActivityName(str, Enum): + CREATE_MESSAGE = "create-message" + UPDATE_MESSAGE = "update-message" + CREATE_MESSAGES_BATCH = "create-messages-batch" + UPDATE_MESSAGES_BATCH = "update-messages-batch" + LIST_MESSAGES = "list-messages" + + +class CreateMessageParams(BaseModelWithTraceParams): + task_id: str + content: TaskMessageContent + emit_updates: bool = True + + +class UpdateMessageParams(BaseModelWithTraceParams): + task_id: str + message_id: str + content: TaskMessageContent + + +class CreateMessagesBatchParams(BaseModelWithTraceParams): + task_id: str + contents: list[TaskMessageContent] + emit_updates: bool = True + + +class UpdateMessagesBatchParams(BaseModelWithTraceParams): + task_id: str + updates: dict[str, TaskMessageContent] + + +class ListMessagesParams(BaseModelWithTraceParams): + task_id: str + limit: int | None = None + + +class MessagesActivities: + def __init__(self, messages_service: MessagesService): + self._messages_service = messages_service + + @activity.defn(name=MessagesActivityName.CREATE_MESSAGE) + async def create_message(self, params: CreateMessageParams) -> TaskMessage: + return await self._messages_service.create_message( + task_id=params.task_id, + content=params.content, + emit_updates=params.emit_updates, + ) + + @activity.defn(name=MessagesActivityName.UPDATE_MESSAGE) + async def update_message(self, params: UpdateMessageParams) -> TaskMessage: + return await self._messages_service.update_message( + task_id=params.task_id, + message_id=params.message_id, + content=params.content, + ) + + @activity.defn(name=MessagesActivityName.CREATE_MESSAGES_BATCH) + async def create_messages_batch( + self, params: CreateMessagesBatchParams + ) -> list[TaskMessage]: + return await self._messages_service.create_messages_batch( + task_id=params.task_id, + contents=params.contents, + emit_updates=params.emit_updates, + ) + + @activity.defn(name=MessagesActivityName.UPDATE_MESSAGES_BATCH) + async def update_messages_batch( + self, params: UpdateMessagesBatchParams + ) -> list[TaskMessage]: + return await self._messages_service.update_messages_batch( + task_id=params.task_id, + updates=params.updates, + ) + + @activity.defn(name=MessagesActivityName.LIST_MESSAGES) + async def list_messages(self, params: ListMessagesParams) -> list[TaskMessage]: + return await self._messages_service.list_messages( + task_id=params.task_id, + limit=params.limit, + ) diff --git a/src/agentex/lib/core/temporal/activities/adk/providers/__init__.py b/src/agentex/lib/core/temporal/activities/adk/providers/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/src/agentex/lib/core/temporal/activities/adk/providers/litellm_activities.py b/src/agentex/lib/core/temporal/activities/adk/providers/litellm_activities.py new file mode 100644 index 000000000..70bb3c734 --- /dev/null +++ b/src/agentex/lib/core/temporal/activities/adk/providers/litellm_activities.py @@ -0,0 +1,71 @@ +from enum import Enum + +from temporalio import activity + +from agentex.lib.core.services.adk.providers.litellm import LiteLLMService +from agentex.lib.types.llm_messages import Completion, LLMConfig +from agentex.types.task_message import TaskMessage +from agentex.lib.types.tracing import BaseModelWithTraceParams +from agentex.lib.utils import logging + +logger = logging.make_logger(__name__) + + +class LiteLLMActivityName(str, Enum): + CHAT_COMPLETION = "chat-completion" + CHAT_COMPLETION_AUTO_SEND = "chat-completion-auto-send" + # Note: CHAT_COMPLETION_STREAM is not supported in Temporal due to generator limitations + CHAT_COMPLETION_STREAM_AUTO_SEND = "chat-completion-stream-auto-send" + + +class ChatCompletionParams(BaseModelWithTraceParams): + llm_config: LLMConfig + + +class ChatCompletionAutoSendParams(BaseModelWithTraceParams): + task_id: str + llm_config: LLMConfig + + +class ChatCompletionStreamAutoSendParams(BaseModelWithTraceParams): + task_id: str + llm_config: LLMConfig + + +class LiteLLMActivities: + def __init__(self, litellm_service: LiteLLMService): + self._litellm_service = litellm_service + + @activity.defn(name=LiteLLMActivityName.CHAT_COMPLETION) + async def chat_completion(self, params: ChatCompletionParams) -> Completion: + return await self._litellm_service.chat_completion( + llm_config=params.llm_config, + trace_id=params.trace_id, + parent_span_id=params.parent_span_id, + ) + + @activity.defn(name=LiteLLMActivityName.CHAT_COMPLETION_AUTO_SEND) + async def chat_completion_auto_send(self, params: ChatCompletionAutoSendParams) -> TaskMessage | None: + """ + Activity for non-streaming chat completion with automatic TaskMessage creation. + """ + return await self._litellm_service.chat_completion_auto_send( + task_id=params.task_id, + llm_config=params.llm_config, + trace_id=params.trace_id, + parent_span_id=params.parent_span_id, + ) + + @activity.defn(name=LiteLLMActivityName.CHAT_COMPLETION_STREAM_AUTO_SEND) + async def chat_completion_stream_auto_send( + self, params: ChatCompletionStreamAutoSendParams + ) -> TaskMessage | None: + """ + Activity for streaming chat completion with automatic TaskMessage creation. + """ + return await self._litellm_service.chat_completion_stream_auto_send( + task_id=params.task_id, + llm_config=params.llm_config, + trace_id=params.trace_id, + parent_span_id=params.parent_span_id, + ) diff --git a/src/agentex/lib/core/temporal/activities/adk/providers/openai_activities.py b/src/agentex/lib/core/temporal/activities/adk/providers/openai_activities.py new file mode 100644 index 000000000..4abd9a396 --- /dev/null +++ b/src/agentex/lib/core/temporal/activities/adk/providers/openai_activities.py @@ -0,0 +1,210 @@ +# Standard library imports +from collections.abc import Callable +from contextlib import AsyncExitStack, asynccontextmanager +from enum import Enum +from typing import Any, Literal + +from agents import RunResult, RunResultStreaming +from agents.mcp import MCPServerStdio, MCPServerStdioParams +from agents.model_settings import ModelSettings as OAIModelSettings +from agents.tool import FunctionTool as OAIFunctionTool +from mcp import StdioServerParameters +from openai.types.responses.response_includable import ResponseIncludable +from openai.types.shared.reasoning import Reasoning +from temporalio import activity + +from agentex.lib.core.services.adk.providers.openai import OpenAIService + +# Local imports +from agentex.lib.types.agent_results import ( + SerializableRunResult, + SerializableRunResultStreaming, +) + +# Third-party imports +from agentex.lib.types.tracing import BaseModelWithTraceParams +from agentex.lib.utils import logging + +logger = logging.make_logger(__name__) + + +class OpenAIActivityName(str, Enum): + """Names of OpenAI agent activities.""" + + RUN_AGENT = "run_agent" + RUN_AGENT_AUTO_SEND = "run_agent_auto_send" + # Note: RUN_AGENT_STREAMED is not supported in Temporal due to generator limitations + RUN_AGENT_STREAMED_AUTO_SEND = "run_agent_streamed_auto_send" + + +class FunctionTool(BaseModelWithTraceParams): + name: str + description: str + params_json_schema: dict[str, Any] + on_invoke_tool: Callable[[dict[str, Any]], Any] + strict_json_schema: bool = True + is_enabled: bool = True + + def to_oai_function_tool(self) -> OAIFunctionTool: + return OAIFunctionTool(**self.model_dump(exclude=["trace_id", "parent_span_id"])) + + +class ModelSettings(BaseModelWithTraceParams): + temperature: float | None = None + top_p: float | None = None + frequency_penalty: float | None = None + presence_penalty: float | None = None + tool_choice: Literal["auto", "required", "none"] | str | None = None + parallel_tool_calls: bool | None = None + truncation: Literal["auto", "disabled"] | None = None + max_tokens: int | None = None + reasoning: Reasoning | None = None + metadata: dict[str, str] | None = None + store: bool | None = None + include_usage: bool | None = None + response_include: list[ResponseIncludable] | None = None + extra_body: dict[str, str] | None = None + extra_headers: dict[str, str] | None = None + extra_args: dict[str, Any] | None = None + + def to_oai_model_settings(self) -> OAIModelSettings: + return OAIModelSettings(**self.model_dump(exclude=["trace_id", "parent_span_id"])) + + +class RunAgentParams(BaseModelWithTraceParams): + """Parameters for running an agent without streaming.""" + + input_list: list[dict] + mcp_server_params: list[StdioServerParameters] + agent_name: str + agent_instructions: str + handoff_description: str | None = None + handoffs: list["RunAgentParams"] | None = None + model: str | None = None + model_settings: ModelSettings | None = None + tools: list[FunctionTool] | None = None + output_type: Any = None + tool_use_behavior: Literal["run_llm_again", "stop_on_first_tool"] = "run_llm_again" + mcp_timeout_seconds: int | None = None + + +class RunAgentAutoSendParams(RunAgentParams): + """Parameters for running an agent with automatic TaskMessage creation.""" + + task_id: str + + +class RunAgentStreamedAutoSendParams(RunAgentParams): + """Parameters for running an agent with streaming and automatic TaskMessage creation.""" + + task_id: str + + +@asynccontextmanager +async def mcp_server_context(mcp_server_params: list[StdioServerParameters]): + """Context manager for MCP servers.""" + servers: list[MCPServerStdio] = [] + for params in mcp_server_params: + server = MCPServerStdio( + name=f"Server: {params.command}", + params=MCPServerStdioParams(**params.model_dump()), + cache_tools_list=True, + client_session_timeout_seconds=60, + ) + servers.append(server) + + async with AsyncExitStack() as stack: + for server in servers: + await stack.enter_async_context(server) + yield servers + + +class OpenAIActivities: + """Activities for OpenAI agent operations.""" + + def __init__(self, openai_service: OpenAIService): + self._openai_service = openai_service + + @activity.defn(name=OpenAIActivityName.RUN_AGENT) + async def run_agent(self, params: RunAgentParams) -> SerializableRunResult: + """Run an agent without streaming or TaskMessage creation.""" + result = await self._openai_service.run_agent( + input_list=params.input_list, + mcp_server_params=params.mcp_server_params, + agent_name=params.agent_name, + agent_instructions=params.agent_instructions, + trace_id=params.trace_id, + parent_span_id=params.parent_span_id, + handoff_description=params.handoff_description, + handoffs=params.handoffs, + model=params.model, + model_settings=params.model_settings, + tools=params.tools, + output_type=params.output_type, + tool_use_behavior=params.tool_use_behavior, + ) + return self._to_serializable_run_result(result) + + @activity.defn(name=OpenAIActivityName.RUN_AGENT_AUTO_SEND) + async def run_agent_auto_send( + self, params: RunAgentAutoSendParams + ) -> SerializableRunResult: + """Run an agent with automatic TaskMessage creation.""" + result = await self._openai_service.run_agent_auto_send( + task_id=params.task_id, + input_list=params.input_list, + mcp_server_params=params.mcp_server_params, + agent_name=params.agent_name, + agent_instructions=params.agent_instructions, + trace_id=params.trace_id, + parent_span_id=params.parent_span_id, + handoff_description=params.handoff_description, + handoffs=params.handoffs, + model=params.model, + model_settings=params.model_settings, + tools=params.tools, + output_type=params.output_type, + tool_use_behavior=params.tool_use_behavior, + ) + return self._to_serializable_run_result(result) + + @activity.defn(name=OpenAIActivityName.RUN_AGENT_STREAMED_AUTO_SEND) + async def run_agent_streamed_auto_send( + self, params: RunAgentStreamedAutoSendParams + ) -> SerializableRunResultStreaming: + """Run an agent with streaming and automatic TaskMessage creation.""" + result = await self._openai_service.run_agent_streamed_auto_send( + task_id=params.task_id, + input_list=params.input_list, + mcp_server_params=params.mcp_server_params, + agent_name=params.agent_name, + agent_instructions=params.agent_instructions, + trace_id=params.trace_id, + parent_span_id=params.parent_span_id, + handoff_description=params.handoff_description, + handoffs=params.handoffs, + model=params.model, + model_settings=params.model_settings, + tools=params.tools, + output_type=params.output_type, + tool_use_behavior=params.tool_use_behavior, + ) + return self._to_serializable_run_result_streaming(result) + + @staticmethod + def _to_serializable_run_result(result: RunResult) -> SerializableRunResult: + """Convert RunResult to SerializableRunResult.""" + return SerializableRunResult( + final_output=result.final_output, + final_input_list=result.to_input_list(), + ) + + @staticmethod + def _to_serializable_run_result_streaming( + result: RunResultStreaming, + ) -> SerializableRunResultStreaming: + """Convert RunResultStreaming to SerializableRunResultStreaming.""" + return SerializableRunResultStreaming( + final_output=result.final_output, + final_input_list=result.to_input_list(), + ) diff --git a/src/agentex/lib/core/temporal/activities/adk/providers/sgp_activities.py b/src/agentex/lib/core/temporal/activities/adk/providers/sgp_activities.py new file mode 100644 index 000000000..98e93af6c --- /dev/null +++ b/src/agentex/lib/core/temporal/activities/adk/providers/sgp_activities.py @@ -0,0 +1,42 @@ +from enum import Enum + +from temporalio import activity + +from agentex.lib.core.services.adk.providers.sgp import SGPService +from agentex.lib.types.files import FileContentResponse +from agentex.lib.types.tracing import BaseModelWithTraceParams +from agentex.lib.utils.logging import make_logger + +logger = make_logger(__name__) + + +class SGPActivityName(str, Enum): + DOWNLOAD_FILE_CONTENT = "download-file-content" + + +class DownloadFileParams(BaseModelWithTraceParams): + file_id: str + filename: str + + +class SGPActivities: + def __init__(self, sgp_service: SGPService): + self.sgp_service = sgp_service + + @activity.defn(name=SGPActivityName.DOWNLOAD_FILE_CONTENT) + async def download_file_content(self, params: DownloadFileParams) -> FileContentResponse: + """ + Download file content from SGP. + + Args: + params: DownloadFileParams containing file_id and filename. + + Returns: + FileContentResponse with mime_type and base64_content for constructing LLM input. + """ + return await self.sgp_service.download_file_content( + file_id=params.file_id, + filename=params.filename, + trace_id=params.trace_id, + parent_span_id=params.parent_span_id, + ) diff --git a/src/agentex/lib/core/temporal/activities/adk/state_activities.py b/src/agentex/lib/core/temporal/activities/adk/state_activities.py new file mode 100644 index 000000000..4b892c94c --- /dev/null +++ b/src/agentex/lib/core/temporal/activities/adk/state_activities.py @@ -0,0 +1,85 @@ +from enum import Enum +from typing import Any + +from temporalio import activity + +from agentex.lib.core.services.adk.state import StateService +from agentex.types.state import State +from agentex.lib.types.tracing import BaseModelWithTraceParams +from agentex.lib.utils.logging import make_logger + +logger = make_logger(__name__) + + +class StateActivityName(str, Enum): + CREATE_STATE = "create-state" + GET_STATE = "get-state" + UPDATE_STATE = "update-state" + DELETE_STATE = "delete-state" + + +class CreateStateParams(BaseModelWithTraceParams): + task_id: str + agent_id: str + state: dict[str, Any] + + +class GetStateParams(BaseModelWithTraceParams): + state_id: str | None = None + task_id: str | None = None + agent_id: str | None = None + + +class UpdateStateParams(BaseModelWithTraceParams): + state_id: str + task_id: str + agent_id: str + state: dict[str, Any] + + +class DeleteStateParams(BaseModelWithTraceParams): + state_id: str + + +class StateActivities: + def __init__(self, state_service: StateService): + self._state_service = state_service + + @activity.defn(name=StateActivityName.CREATE_STATE) + async def create_state(self, params: CreateStateParams) -> State: + return await self._state_service.create_state( + task_id=params.task_id, + agent_id=params.agent_id, + state=params.state, + trace_id=params.trace_id, + parent_span_id=params.parent_span_id, + ) + + @activity.defn(name=StateActivityName.GET_STATE) + async def get_state(self, params: GetStateParams) -> State | None: + return await self._state_service.get_state( + state_id=params.state_id, + task_id=params.task_id, + agent_id=params.agent_id, + trace_id=params.trace_id, + parent_span_id=params.parent_span_id, + ) + + @activity.defn(name=StateActivityName.UPDATE_STATE) + async def update_state(self, params: UpdateStateParams) -> State: + return await self._state_service.update_state( + state_id=params.state_id, + task_id=params.task_id, + agent_id=params.agent_id, + state=params.state, + trace_id=params.trace_id, + parent_span_id=params.parent_span_id, + ) + + @activity.defn(name=StateActivityName.DELETE_STATE) + async def delete_state(self, params: DeleteStateParams) -> State: + return await self._state_service.delete_state( + state_id=params.state_id, + trace_id=params.trace_id, + parent_span_id=params.parent_span_id, + ) diff --git a/src/agentex/lib/core/temporal/activities/adk/streaming_activities.py b/src/agentex/lib/core/temporal/activities/adk/streaming_activities.py new file mode 100644 index 000000000..2c977f5d3 --- /dev/null +++ b/src/agentex/lib/core/temporal/activities/adk/streaming_activities.py @@ -0,0 +1,33 @@ +from enum import Enum + +from temporalio import activity + +from agentex.lib.core.services.adk.streaming import StreamingService +from agentex.lib.types.task_message_updates import TaskMessageUpdate +from agentex.lib.utils.logging import make_logger +from agentex.lib.utils.model_utils import BaseModel +from agentex.lib.utils.temporal import heartbeat_if_in_workflow + +logger = make_logger(__name__) + + +class StreamingActivityName(str, Enum): + STREAM_UPDATE = "stream-update" + + +class StreamUpdateParams(BaseModel): + update: TaskMessageUpdate + + +class StreamingActivities: + """ + Temporal activities for streaming events to clients (ADK pattern). + """ + + def __init__(self, streaming_service: StreamingService): + self._streaming_service = streaming_service + + @activity.defn(name=StreamingActivityName.STREAM_UPDATE) + async def stream_update(self, params: StreamUpdateParams) -> TaskMessageUpdate | None: + heartbeat_if_in_workflow("stream update") + return await self._streaming_service.stream_update(update=params.update) diff --git a/src/agentex/lib/core/temporal/activities/adk/tasks_activities.py b/src/agentex/lib/core/temporal/activities/adk/tasks_activities.py new file mode 100644 index 000000000..6ce72a936 --- /dev/null +++ b/src/agentex/lib/core/temporal/activities/adk/tasks_activities.py @@ -0,0 +1,48 @@ +from enum import Enum + +from temporalio import activity + +from agentex.lib.core.services.adk.tasks import TasksService +from agentex.types.task import Task +from agentex.lib.types.tracing import BaseModelWithTraceParams +from agentex.lib.utils.logging import make_logger + +logger = make_logger(__name__) + + +class TasksActivityName(str, Enum): + GET_TASK = "get-task" + DELETE_TASK = "delete-task" + + +class GetTaskParams(BaseModelWithTraceParams): + task_id: str | None = None + task_name: str | None = None + + +class DeleteTaskParams(BaseModelWithTraceParams): + task_id: str | None = None + task_name: str | None = None + + +class TasksActivities: + def __init__(self, tasks_service: TasksService): + self._tasks_service = tasks_service + + @activity.defn(name=TasksActivityName.GET_TASK) + async def get_task(self, params: GetTaskParams) -> Task | None: + return await self._tasks_service.get_task( + task_id=params.task_id, + task_name=params.task_name, + trace_id=params.trace_id, + parent_span_id=params.parent_span_id, + ) + + @activity.defn(name=TasksActivityName.DELETE_TASK) + async def delete_task(self, params: DeleteTaskParams) -> Task: + return await self._tasks_service.delete_task( + task_id=params.task_id, + task_name=params.task_name, + trace_id=params.trace_id, + parent_span_id=params.parent_span_id, + ) diff --git a/src/agentex/lib/core/temporal/activities/adk/tracing_activities.py b/src/agentex/lib/core/temporal/activities/adk/tracing_activities.py new file mode 100644 index 000000000..56bde068c --- /dev/null +++ b/src/agentex/lib/core/temporal/activities/adk/tracing_activities.py @@ -0,0 +1,55 @@ +from enum import Enum +from typing import Any + +from temporalio import activity + +from agentex.lib.core.services.adk.tracing import TracingService +from agentex.types.span import Span +from agentex.lib.utils.logging import make_logger +from agentex.lib.utils.model_utils import BaseModel + +logger = make_logger(__name__) + + +class TracingActivityName(str, Enum): + START_SPAN = "start-span" + END_SPAN = "end-span" + + +class StartSpanParams(BaseModel): + trace_id: str + parent_id: str | None = None + name: str + input: list[Any] | dict[str, Any] | BaseModel | None = None + data: list[Any] | dict[str, Any] | BaseModel | None = None + + +class EndSpanParams(BaseModel): + trace_id: str + span: Span + + +class TracingActivities: + """ + Temporal activities for tracing (spans), ADK pattern. + """ + + def __init__(self, tracing_service: TracingService): + self._tracing_service = tracing_service + + @activity.defn(name=TracingActivityName.START_SPAN) + async def start_span(self, params: StartSpanParams) -> Span | None: + return await self._tracing_service.start_span( + trace_id=params.trace_id, + parent_id=params.parent_id, + name=params.name, + input=params.input, + data=params.data, + ) + + @activity.defn(name=TracingActivityName.END_SPAN) + async def end_span(self, params: EndSpanParams) -> Span: + return await self._tracing_service.end_span( + trace_id=params.trace_id, + span=params.span, + ) diff --git a/src/agentex/lib/core/temporal/activities/adk/utils/__init__.py b/src/agentex/lib/core/temporal/activities/adk/utils/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/src/agentex/lib/core/temporal/activities/adk/utils/templating_activities.py b/src/agentex/lib/core/temporal/activities/adk/utils/templating_activities.py new file mode 100644 index 000000000..3c284c7a7 --- /dev/null +++ b/src/agentex/lib/core/temporal/activities/adk/utils/templating_activities.py @@ -0,0 +1,41 @@ +from enum import Enum +from typing import Any + +from temporalio import activity + +from agentex.lib.core.services.adk.utils.templating import TemplatingService +from agentex.lib.types.tracing import BaseModelWithTraceParams + + +class JinjaActivityName(str, Enum): + RENDER_JINJA = "render-jinja" + + +class RenderJinjaParams(BaseModelWithTraceParams): + """Parameters for the Jinja activity""" + + template: str + variables: dict[str, Any] + + +class TemplatingActivities: + def __init__(self, templating_service: TemplatingService): + self.templating_service = templating_service + + @activity.defn(name=JinjaActivityName.RENDER_JINJA) + async def render_jinja(self, params: RenderJinjaParams) -> str: + """ + Activity that renders a Jinja template with the provided data. + + Args: + params: JinjaParams containing the data and template string + + Returns: + The rendered template as a string + """ + return await self.templating_service.render_jinja( + template=params.template, + variables=params.variables, + trace_id=params.trace_id, + parent_span_id=params.parent_span_id, + ) diff --git a/src/agentex/lib/core/temporal/services/__init__.py b/src/agentex/lib/core/temporal/services/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/src/agentex/lib/core/temporal/services/temporal_task_service.py b/src/agentex/lib/core/temporal/services/temporal_task_service.py new file mode 100644 index 000000000..0671af0ef --- /dev/null +++ b/src/agentex/lib/core/temporal/services/temporal_task_service.py @@ -0,0 +1,69 @@ +from agentex.lib.core.clients.temporal.temporal_client import TemporalClient +from agentex.lib.core.clients.temporal.types import WorkflowState +from agentex.lib.core.temporal.types.workflow import SignalName +from agentex.lib.environment_variables import EnvironmentVariables +from agentex.lib.types.acp import CreateTaskParams +from agentex.lib.types.acp import SendEventParams +from agentex.types.agent import Agent +from agentex.types.event import Event +from agentex.types.task import Task + + +class TemporalTaskService: + """ + Submits Agent agent_tasks to the async runtime for execution. + """ + + def __init__( + self, + temporal_client: TemporalClient, + env_vars: EnvironmentVariables, + ): + self._temporal_client = temporal_client + self._env_vars = env_vars + + async def submit_task(self, agent: Agent, task: Task) -> str: + """ + Submit a task to the async runtime for execution. + + returns the workflow ID of the temporal workflow + """ + return await self._temporal_client.start_workflow( + workflow=self._env_vars.WORKFLOW_NAME, + arg=CreateTaskParams( + agent=agent, + task=task, + params=None, + ), + id=task.id, + task_queue=self._env_vars.WORKFLOW_TASK_QUEUE, + ) + + async def get_state(self, task_id: str) -> WorkflowState: + """ + Get the task state from the async runtime. + """ + return await self._temporal_client.get_workflow_status( + workflow_id=task_id, + ) + + async def send_event(self, agent: Agent, task: Task, event: Event) -> None: + return await self._temporal_client.send_signal( + workflow_id=task.id, + signal=SignalName.RECEIVE_EVENT.value, + payload=SendEventParams( + agent=agent, + task=task, + event=event, + ).model_dump(), + ) + + async def cancel(self, task_id: str) -> None: + return await self._temporal_client.cancel_workflow( + workflow_id=task_id, + ) + + async def terminate(self, task_id: str) -> None: + return await self._temporal_client.terminate_workflow( + workflow_id=task_id, + ) diff --git a/src/agentex/lib/core/temporal/types/__init__.py b/src/agentex/lib/core/temporal/types/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/src/agentex/lib/core/temporal/types/workflow.py b/src/agentex/lib/core/temporal/types/workflow.py new file mode 100644 index 000000000..973bb52c2 --- /dev/null +++ b/src/agentex/lib/core/temporal/types/workflow.py @@ -0,0 +1,5 @@ +from enum import Enum + + +class SignalName(str, Enum): + RECEIVE_EVENT = "receive_event" diff --git a/src/agentex/lib/core/temporal/workers/__init__.py b/src/agentex/lib/core/temporal/workers/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/src/agentex/lib/core/temporal/workers/worker.py b/src/agentex/lib/core/temporal/workers/worker.py new file mode 100644 index 000000000..b3411d9ea --- /dev/null +++ b/src/agentex/lib/core/temporal/workers/worker.py @@ -0,0 +1,162 @@ +import dataclasses +import datetime +import os +import uuid +from collections.abc import Callable +from concurrent.futures import ThreadPoolExecutor +from typing import Any + +from aiohttp import web +from temporalio.client import Client +from temporalio.converter import ( + AdvancedJSONEncoder, + CompositePayloadConverter, + DataConverter, + DefaultPayloadConverter, + JSONPlainPayloadConverter, + JSONTypeConverter, + _JSONTypeConverterUnhandled, +) +from temporalio.runtime import OpenTelemetryConfig, Runtime, TelemetryConfig +from temporalio.worker import ( + UnsandboxedWorkflowRunner, + Worker, +) + +from agentex.lib.utils.logging import make_logger + +logger = make_logger(__name__) + + +class DateTimeJSONEncoder(AdvancedJSONEncoder): + def default(self, o: Any) -> Any: + if isinstance(o, datetime.datetime): + return o.isoformat() + return super().default(o) + + +class DateTimeJSONTypeConverter(JSONTypeConverter): + def to_typed_value( + self, hint: type, value: Any + ) -> Any | None | _JSONTypeConverterUnhandled: + if hint == datetime.datetime: + return datetime.datetime.fromisoformat(value) + return JSONTypeConverter.Unhandled + + +class DateTimePayloadConverter(CompositePayloadConverter): + def __init__(self) -> None: + json_converter = JSONPlainPayloadConverter( + encoder=DateTimeJSONEncoder, + custom_type_converters=[DateTimeJSONTypeConverter()], + ) + super().__init__( + *[ + c if not isinstance(c, JSONPlainPayloadConverter) else json_converter + for c in DefaultPayloadConverter.default_encoding_payload_converters + ] + ) + + +custom_data_converter = dataclasses.replace( + DataConverter.default, + payload_converter_class=DateTimePayloadConverter, +) + + +async def get_temporal_client(temporal_address: str, metrics_url: str = None) -> Client: + if not metrics_url: + client = await Client.connect( + target_host=temporal_address, data_converter=custom_data_converter + ) + else: + runtime = Runtime( + telemetry=TelemetryConfig(metrics=OpenTelemetryConfig(url=metrics_url)) + ) + client = await Client.connect( + target_host=temporal_address, + data_converter=custom_data_converter, + runtime=runtime, + ) + return client + + +class AgentexWorker: + def __init__( + self, + task_queue, + max_workers: int = 10, + max_concurrent_activities: int = 10, + health_check_port: int = 80, + ): + self.task_queue = task_queue + self.activity_handles = [] + self.max_workers = max_workers + self.max_concurrent_activities = max_concurrent_activities + self.health_check_server_running = False + self.healthy = False + self.health_check_port = health_check_port + + async def run( + self, + activities: list[Callable], + workflow: type, + ): + await self.start_health_check_server() + temporal_client = await get_temporal_client( + temporal_address=os.environ.get("TEMPORAL_ADDRESS", "localhost:7233"), + ) + worker = Worker( + client=temporal_client, + task_queue=self.task_queue, + activity_executor=ThreadPoolExecutor(max_workers=self.max_workers), + workflows=[workflow], + activities=activities, + workflow_runner=UnsandboxedWorkflowRunner(), + max_concurrent_activities=self.max_concurrent_activities, + build_id=str(uuid.uuid4()), + ) + + logger.info(f"Starting workers for task queue: {self.task_queue}") + # Eagerly set the worker status to healthy + self.healthy = True + logger.info(f"Running workers for task queue: {self.task_queue}") + await worker.run() + + async def _health_check(self): + return web.json_response(self.healthy) + + async def start_health_check_server(self): + if not self.health_check_server_running: + app = web.Application() + app.router.add_get("/readyz", lambda request: self._health_check()) + + # Disable access logging + runner = web.AppRunner(app, access_log=None) + await runner.setup() + + try: + site = web.TCPSite(runner, "0.0.0.0", self.health_check_port) + await site.start() + logger.info( + f"Health check server running on http://0.0.0.0:{self.health_check_port}/readyz" + ) + self.health_check_server_running = True + except OSError as e: + logger.error( + f"Failed to start health check server on port {self.health_check_port}: {e}" + ) + # Try alternative port if default fails + try: + alt_port = self.health_check_port + 1 + site = web.TCPSite(runner, "0.0.0.0", alt_port) + await site.start() + logger.info( + f"Health check server running on alternative port http://0.0.0.0:{alt_port}/readyz" + ) + self.health_check_server_running = True + except OSError as e: + logger.error( + f"Failed to start health check server on alternative port {alt_port}: {e}" + ) + raise diff --git a/src/agentex/lib/core/temporal/workflows/workflow.py b/src/agentex/lib/core/temporal/workflows/workflow.py new file mode 100644 index 000000000..37325ee87 --- /dev/null +++ b/src/agentex/lib/core/temporal/workflows/workflow.py @@ -0,0 +1,26 @@ +from abc import ABC, abstractmethod + +from temporalio import workflow + +from agentex.lib.core.temporal.types.workflow import SignalName +from agentex.lib.types.acp import CreateTaskParams, SendEventParams +from agentex.lib.utils.logging import make_logger + +logger = make_logger(__name__) + + +class BaseWorkflow(ABC): + def __init__( + self, + display_name: str, + ): + self.display_name = display_name + + @abstractmethod + @workflow.signal(name=SignalName.RECEIVE_EVENT) + async def on_task_event_send(self, params: SendEventParams) -> None: + raise NotImplementedError + + @abstractmethod + async def on_task_create(self, params: CreateTaskParams) -> None: + raise NotImplementedError diff --git a/src/agentex/lib/core/tracing/__init__.py b/src/agentex/lib/core/tracing/__init__.py new file mode 100644 index 000000000..f2f495f2f --- /dev/null +++ b/src/agentex/lib/core/tracing/__init__.py @@ -0,0 +1,5 @@ +from agentex.lib.core.tracing.trace import AsyncTrace, Trace +from agentex.lib.core.tracing.tracer import AsyncTracer, Tracer +from agentex.types.span import Span + +__all__ = ["Trace", "AsyncTrace", "Span", "Tracer", "AsyncTracer"] diff --git a/src/agentex/lib/core/tracing/processors/agentex_tracing_processor.py b/src/agentex/lib/core/tracing/processors/agentex_tracing_processor.py new file mode 100644 index 000000000..7630f5faf --- /dev/null +++ b/src/agentex/lib/core/tracing/processors/agentex_tracing_processor.py @@ -0,0 +1,117 @@ +from typing import Any, Dict, override + +from agentex import Agentex, AsyncAgentex +from agentex.lib.core.tracing.processors.tracing_processor_interface import ( + AsyncTracingProcessor, + SyncTracingProcessor, +) +from agentex.types.span import Span +from agentex.lib.types.tracing import AgentexTracingProcessorConfig + + +class AgentexSyncTracingProcessor(SyncTracingProcessor): + def __init__(self, config: AgentexTracingProcessorConfig): + self.client = Agentex() + + @override + def on_span_start(self, span: Span) -> None: + self.client.spans.create( + name=span.name, + start_time=span.start_time, + end_time=span.end_time, + trace_id=span.trace_id, + id=span.id, + data=span.data, + input=span.input, + output=span.output, + parent_id=span.parent_id, + ) + + @override + def on_span_end(self, span: Span) -> None: + update: Dict[str, Any] = {} + if span.trace_id: + update["trace_id"] = span.trace_id + if span.name: + update["name"] = span.name + if span.parent_id: + update["parent_id"] = span.parent_id + if span.start_time: + update["start_time"] = span.start_time.isoformat() + if span.end_time is not None: + update["end_time"] = span.end_time.isoformat() + if span.input is not None: + update["input"] = span.input + if span.output is not None: + update["output"] = span.output + if span.data is not None: + update["data"] = span.data + + self.client.spans.update( + span.id, + **span.model_dump( + mode="json", + exclude={"id"}, + exclude_defaults=True, + exclude_none=True, + exclude_unset=True, + ), + ) + + @override + def shutdown(self) -> None: + pass + + +class AgentexAsyncTracingProcessor(AsyncTracingProcessor): + def __init__(self, config: AgentexTracingProcessorConfig): + self.client = AsyncAgentex() + + @override + async def on_span_start(self, span: Span) -> None: + await self.client.spans.create( + name=span.name, + start_time=span.start_time, + end_time=span.end_time, + id=span.id, + trace_id=span.trace_id, + parent_id=span.parent_id, + input=span.input, + output=span.output, + data=span.data, + ) + + @override + async def on_span_end(self, span: Span) -> None: + update: Dict[str, Any] = {} + if span.trace_id: + update["trace_id"] = span.trace_id + if span.name: + update["name"] = span.name + if span.parent_id: + update["parent_id"] = span.parent_id + if span.start_time: + update["start_time"] = span.start_time.isoformat() + if span.end_time: + update["end_time"] = span.end_time.isoformat() + if span.input: + update["input"] = span.input + if span.output: + update["output"] = span.output + if span.data: + update["data"] = span.data + + await self.client.spans.update( + span.id, + **span.model_dump( + mode="json", + exclude={"id"}, + exclude_defaults=True, + exclude_none=True, + exclude_unset=True, + ), + ) + + @override + async def shutdown(self) -> None: + pass diff --git a/src/agentex/lib/core/tracing/processors/sgp_tracing_processor.py b/src/agentex/lib/core/tracing/processors/sgp_tracing_processor.py new file mode 100644 index 000000000..f614f78e9 --- /dev/null +++ b/src/agentex/lib/core/tracing/processors/sgp_tracing_processor.py @@ -0,0 +1,119 @@ +from typing import override + +import scale_gp_beta.lib.tracing as tracing +from scale_gp_beta import AsyncSGPClient, SGPClient +from scale_gp_beta.lib.tracing import create_span, flush_queue +from scale_gp_beta.lib.tracing.span import Span as SGPSpan + +from agentex.lib.core.tracing.processors.tracing_processor_interface import ( + AsyncTracingProcessor, + SyncTracingProcessor, +) +from agentex.types.span import Span +from agentex.lib.types.tracing import SGPTracingProcessorConfig +from agentex.lib.utils.logging import make_logger + +logger = make_logger(__name__) + + +class SGPSyncTracingProcessor(SyncTracingProcessor): + def __init__(self, config: SGPTracingProcessorConfig): + disabled = config.sgp_api_key == "" or config.sgp_account_id == "" + tracing.init( + SGPClient(api_key=config.sgp_api_key, account_id=config.sgp_account_id), + disabled=disabled, + ) + self._spans: dict[str, SGPSpan] = {} + + @override + def on_span_start(self, span: Span) -> None: + sgp_span = create_span( + name=span.name, + span_id=span.id, + parent_id=span.parent_id, + trace_id=span.trace_id, + input=span.input, + output=span.output, + metadata=span.data, + ) + sgp_span.start_time = span.start_time.isoformat() + sgp_span.flush(blocking=False) + + self._spans[span.id] = sgp_span + + @override + def on_span_end(self, span: Span) -> None: + sgp_span = self._spans.get(span.id) + if sgp_span is None: + logger.warning( + f"Span {span.id} not found in stored spans, skipping span end" + ) + return + + sgp_span.output = span.output + sgp_span.metadata = span.data + sgp_span.end_time = span.end_time.isoformat() + sgp_span.flush(blocking=False) + + @override + def shutdown(self) -> None: + self._spans.clear() + flush_queue() + + +class SGPAsyncTracingProcessor(AsyncTracingProcessor): + def __init__(self, config: SGPTracingProcessorConfig): + self.disabled = config.sgp_api_key == "" or config.sgp_account_id == "" + self._spans: dict[str, SGPSpan] = {} + self.sgp_async_client = ( + AsyncSGPClient(api_key=config.sgp_api_key, account_id=config.sgp_account_id) + if not self.disabled + else None + ) + + @override + async def on_span_start(self, span: Span) -> None: + sgp_span = create_span( + name=span.name, + span_id=span.id, + parent_id=span.parent_id, + trace_id=span.trace_id, + input=span.input, + output=span.output, + metadata=span.data, + ) + sgp_span.start_time = span.start_time.isoformat() + + if self.disabled: + return + await self.sgp_async_client.spans.upsert_batch( + items=[sgp_span.to_request_params()] + ) + + self._spans[span.id] = sgp_span + + @override + async def on_span_end(self, span: Span) -> None: + sgp_span = self._spans.get(span.id) + if sgp_span is None: + logger.warning( + f"Span {span.id} not found in stored spans, skipping span end" + ) + return + + sgp_span.output = span.output + sgp_span.metadata = span.data + sgp_span.end_time = span.end_time.isoformat() + + if self.disabled: + return + await self.sgp_async_client.spans.upsert_batch( + items=[sgp_span.to_request_params()] + ) + + @override + async def shutdown(self) -> None: + await self.sgp_async_client.spans.upsert_batch( + items=[sgp_span.to_request_params() for sgp_span in self._spans.values()] + ) + self._spans.clear() diff --git a/src/agentex/lib/core/tracing/processors/tracing_processor_interface.py b/src/agentex/lib/core/tracing/processors/tracing_processor_interface.py new file mode 100644 index 000000000..7b7cc7181 --- /dev/null +++ b/src/agentex/lib/core/tracing/processors/tracing_processor_interface.py @@ -0,0 +1,40 @@ +from abc import ABC, abstractmethod + +from agentex.lib.types.tracing import TracingProcessorConfig +from agentex.types.span import Span + + +class SyncTracingProcessor(ABC): + @abstractmethod + def __init__(self, config: TracingProcessorConfig): + pass + + @abstractmethod + def on_span_start(self, span: Span) -> None: + pass + + @abstractmethod + def on_span_end(self, span: Span) -> None: + pass + + @abstractmethod + def shutdown(self) -> None: + pass + + +class AsyncTracingProcessor(ABC): + @abstractmethod + def __init__(self, config: TracingProcessorConfig): + pass + + @abstractmethod + async def on_span_start(self, span: Span) -> None: + pass + + @abstractmethod + async def on_span_end(self, span: Span) -> None: + pass + + @abstractmethod + async def shutdown(self) -> None: + pass diff --git a/src/agentex/lib/core/tracing/trace.py b/src/agentex/lib/core/tracing/trace.py new file mode 100644 index 000000000..6547dd439 --- /dev/null +++ b/src/agentex/lib/core/tracing/trace.py @@ -0,0 +1,311 @@ +import asyncio +from contextlib import asynccontextmanager, contextmanager +from datetime import UTC, datetime +from typing import Any, AsyncGenerator +import uuid + +from pydantic import BaseModel + +from agentex import Agentex, AsyncAgentex +from agentex.lib.core.tracing.processors.tracing_processor_interface import ( + AsyncTracingProcessor, + SyncTracingProcessor, +) +from agentex.lib.utils.logging import make_logger +from agentex.lib.utils.model_utils import recursive_model_dump +from agentex.types.span import Span + +logger = make_logger(__name__) + + +class Trace: + """ + Trace is a wrapper around the Agentex API for tracing. + It provides a context manager for spans and a way to start and end spans. + It also provides a way to get spans by ID and list all spans in a trace. + """ + + def __init__( + self, + processors: list[SyncTracingProcessor], + client: Agentex, + trace_id: str | None = None, + ): + """ + Initialize a new trace with the specified trace ID. + + Args: + trace_id: Required trace ID to use for this trace. + processors: Optional list of tracing processors to use for this trace. + """ + self.processors = processors + self.client = client + self.trace_id = trace_id + + def start_span( + self, + name: str, + parent_id: str | None = None, + input: dict[str, Any] | list[dict[str, Any]] | BaseModel | None = None, + data: dict[str, Any] | list[dict[str, Any]] | BaseModel | None = None, + ) -> Span: + """ + Start a new span and register it with the API. + + Args: + name: Name of the span. + parent_id: Optional parent span ID. + input: Optional input data for the span. + data: Optional additional data for the span. + + Returns: + The newly created span. + """ + + if not self.trace_id: + raise ValueError("Trace ID is required to start a span") + + # Create a span using the client's spans resource + start_time = datetime.now(UTC) + + serialized_input = recursive_model_dump(input) if input else None + serialized_data = recursive_model_dump(data) if data else None + id = str(uuid.uuid4()) + + span = Span( + id=id, + trace_id=self.trace_id, + name=name, + parent_id=parent_id, + start_time=start_time, + input=serialized_input, + data=serialized_data, + ) + + for processor in self.processors: + processor.on_span_start(span) + + return span + + def end_span( + self, + span: Span, + ) -> Span: + """ + End a span by updating it with any changes made to the span object. + + Args: + span: The span object to update. + + Returns: + The updated span. + """ + if span.end_time is None: + span.end_time = datetime.now(UTC) + + span.input = recursive_model_dump(span.input) if span.input else None + span.output = recursive_model_dump(span.output) if span.output else None + span.data = recursive_model_dump(span.data) if span.data else None + + for processor in self.processors: + processor.on_span_end(span) + + return span + + def get_span(self, span_id: str) -> Span: + """ + Get a span by ID. + + Args: + span_id: The ID of the span to get. + + Returns: + The requested span. + """ + # Query from Agentex API + span = self.client.spans.retrieve(span_id) + return span + + def list_spans(self) -> list[Span]: + """ + List all spans in this trace. + + Returns: + List of spans in this trace. + """ + # Query from Agentex API + spans = self.client.spans.list(trace_id=self.trace_id) + return spans + + @contextmanager + def span( + self, + name: str, + parent_id: str | None = None, + input: dict[str, Any] | list[dict[str, Any]] | BaseModel | None = None, + data: dict[str, Any] | list[dict[str, Any]] | BaseModel | None = None, + ): + """ + Context manager for spans. + If trace_id is falsy, acts as a no-op context manager. + """ + if not self.trace_id: + yield None + return + span = self.start_span(name, parent_id, input, data) + try: + yield span + finally: + self.end_span(span) + + +class AsyncTrace: + """ + AsyncTrace is a wrapper around the Agentex API for tracing. + It provides a context manager for spans and a way to start and end spans. + It also provides a way to get spans by ID and list all spans in a trace. + """ + + def __init__( + self, + processors: list[AsyncTracingProcessor], + client: AsyncAgentex, + trace_id: str | None = None, + ): + """ + Initialize a new trace with the specified trace ID. + + Args: + trace_id: Required trace ID to use for this trace. + processors: Optional list of tracing processors to use for this trace. + """ + self.processors = processors + self.client = client + self.trace_id = trace_id + + async def start_span( + self, + name: str, + parent_id: str | None = None, + input: dict[str, Any] | list[dict[str, Any]] | BaseModel | None = None, + data: dict[str, Any] | list[dict[str, Any]] | BaseModel | None = None, + ) -> Span: + """ + Start a new span and register it with the API. + + Args: + name: Name of the span. + parent_id: Optional parent span ID. + input: Optional input data for the span. + data: Optional additional data for the span. + + Returns: + The newly created span. + """ + if not self.trace_id: + raise ValueError("Trace ID is required to start a span") + + # Create a span using the client's spans resource + start_time = datetime.now(UTC) + + serialized_input = recursive_model_dump(input) if input else None + serialized_data = recursive_model_dump(data) if data else None + id = str(uuid.uuid4()) + + span = Span( + id=id, + trace_id=self.trace_id, + name=name, + parent_id=parent_id, + start_time=start_time, + input=serialized_input, + data=serialized_data, + ) + + if self.processors: + await asyncio.gather( + *[processor.on_span_start(span) for processor in self.processors] + ) + + return span + + async def end_span( + self, + span: Span, + ) -> Span: + """ + End a span by updating it with any changes made to the span object. + + Args: + span: The span object to update. + + Returns: + The updated span. + """ + if span.end_time is None: + span.end_time = datetime.now(UTC) + + span.input = recursive_model_dump(span.input) if span.input else None + span.output = recursive_model_dump(span.output) if span.output else None + span.data = recursive_model_dump(span.data) if span.data else None + + if self.processors: + await asyncio.gather( + *[processor.on_span_end(span) for processor in self.processors] + ) + + return span + + async def get_span(self, span_id: str) -> Span: + """ + Get a span by ID. + + Args: + span_id: The ID of the span to get. + + Returns: + The requested span. + """ + # Query from Agentex API + span = await self.client.spans.retrieve(span_id) + return span + + async def list_spans(self) -> list[Span]: + """ + List all spans in this trace. + + Returns: + List of spans in this trace. + """ + # Query from Agentex API + spans = await self.client.spans.list(trace_id=self.trace_id) + return spans + + @asynccontextmanager + async def span( + self, + name: str, + parent_id: str | None = None, + input: dict[str, Any] | list[dict[str, Any]] | BaseModel | None = None, + data: dict[str, Any] | list[dict[str, Any]] | BaseModel | None = None, + ) -> AsyncGenerator[Span | None, None]: + """ + Context manager for spans. + + Args: + name: Name of the span. + parent_id: Optional parent span ID. + input: Optional input data for the span. + data: Optional additional data for the span. + + Yields: + The span object. + """ + if not self.trace_id: + yield None + return + span = await self.start_span(name, parent_id, input, data) + try: + yield span + finally: + await self.end_span(span) diff --git a/src/agentex/lib/core/tracing/tracer.py b/src/agentex/lib/core/tracing/tracer.py new file mode 100644 index 000000000..806d32ee3 --- /dev/null +++ b/src/agentex/lib/core/tracing/tracer.py @@ -0,0 +1,70 @@ +from agentex import Agentex, AsyncAgentex +from agentex.lib.core.tracing.trace import AsyncTrace, Trace +from agentex.lib.core.tracing.tracing_processor_manager import ( + get_async_tracing_processors, + get_sync_tracing_processors, +) + + +class Tracer: + """ + Tracer is the main entry point for tracing in Agentex. + It manages the client connection and creates traces. + """ + + def __init__(self, client: Agentex): + """ + Initialize a new sync tracer with the provided client. + + Args: + client: Agentex client instance used for API communication. + """ + self.client = client + + def trace(self, trace_id: str | None = None) -> Trace: + """ + Create a new trace with the given trace ID. + + Args: + trace_id: The trace ID to use. + + Returns: + A new Trace instance. + """ + return Trace( + processors=get_sync_tracing_processors(), + client=self.client, + trace_id=trace_id, + ) + + +class AsyncTracer: + """ + AsyncTracer is the async version of Tracer. + It manages the async client connection and creates async traces. + """ + + def __init__(self, client: AsyncAgentex): + """ + Initialize a new async tracer with the provided client. + + Args: + client: AsyncAgentex client instance used for API communication. + """ + self.client = client + + def trace(self, trace_id: str | None = None) -> AsyncTrace: + """ + Create a new trace with the given trace ID. + + Args: + trace_id: The trace ID to use. + + Returns: + A new AsyncTrace instance. + """ + return AsyncTrace( + processors=get_async_tracing_processors(), + client=self.client, + trace_id=trace_id, + ) diff --git a/src/agentex/lib/core/tracing/tracing_processor_manager.py b/src/agentex/lib/core/tracing/tracing_processor_manager.py new file mode 100644 index 000000000..ffbfc6b1c --- /dev/null +++ b/src/agentex/lib/core/tracing/tracing_processor_manager.py @@ -0,0 +1,62 @@ +from threading import Lock + +from agentex.lib.core.tracing.processors.agentex_tracing_processor import ( + AgentexAsyncTracingProcessor, + AgentexSyncTracingProcessor, +) +from agentex.lib.core.tracing.processors.sgp_tracing_processor import ( + SGPAsyncTracingProcessor, + SGPSyncTracingProcessor, +) +from agentex.lib.core.tracing.processors.tracing_processor_interface import ( + AsyncTracingProcessor, + SyncTracingProcessor, +) +from agentex.lib.types.tracing import AgentexTracingProcessorConfig, TracingProcessorConfig + + +class TracingProcessorManager: + def __init__(self): + # Mapping of processor config type to processor class + self.sync_config_registry: dict[str, type[SyncTracingProcessor]] = { + "agentex": AgentexSyncTracingProcessor, + "sgp": SGPSyncTracingProcessor, + } + self.async_config_registry: dict[str, type[AsyncTracingProcessor]] = { + "agentex": AgentexAsyncTracingProcessor, + "sgp": SGPAsyncTracingProcessor, + } + # Cache for processors + self.sync_processors: list[SyncTracingProcessor] = [] + self.async_processors: list[AsyncTracingProcessor] = [] + self.lock = Lock() + + def add_processor_config(self, processor_config: TracingProcessorConfig) -> None: + with self.lock: + sync_processor = self.sync_config_registry[processor_config.type] + async_processor = self.async_config_registry[processor_config.type] + self.sync_processors.append(sync_processor(processor_config)) + self.async_processors.append(async_processor(processor_config)) + + def set_processor_configs(self, processor_configs: list[TracingProcessorConfig]): + with self.lock: + for processor_config in processor_configs: + self.add_processor_config(processor_config) + + def get_sync_processors(self) -> list[SyncTracingProcessor]: + return self.sync_processors + + def get_async_processors(self) -> list[AsyncTracingProcessor]: + return self.async_processors + + +# Global instance +GLOBAL_TRACING_PROCESSOR_MANAGER = TracingProcessorManager() + +add_tracing_processor_config = GLOBAL_TRACING_PROCESSOR_MANAGER.add_processor_config +set_tracing_processor_configs = GLOBAL_TRACING_PROCESSOR_MANAGER.set_processor_configs +get_sync_tracing_processors = GLOBAL_TRACING_PROCESSOR_MANAGER.get_sync_processors +get_async_tracing_processors = GLOBAL_TRACING_PROCESSOR_MANAGER.get_async_processors + +# Add the Agentex tracing processor by default +add_tracing_processor_config(AgentexTracingProcessorConfig()) diff --git a/src/agentex/lib/environment_variables.py b/src/agentex/lib/environment_variables.py new file mode 100644 index 000000000..2030fa483 --- /dev/null +++ b/src/agentex/lib/environment_variables.py @@ -0,0 +1,87 @@ +from __future__ import annotations + +import os +from enum import Enum +from pathlib import Path + +from dotenv import load_dotenv + +from agentex.lib.utils.model_utils import BaseModel + +PROJECT_ROOT = Path(__file__).resolve().parents[2] + + +class EnvVarKeys(str, Enum): + ENVIRONMENT = "ENVIRONMENT" + TEMPORAL_ADDRESS = "TEMPORAL_ADDRESS" + REDIS_URL = "REDIS_URL" + AGENTEX_BASE_URL = "AGENTEX_BASE_URL" + # Agent Identifiers + AGENT_NAME = "AGENT_NAME" + AGENT_DESCRIPTION = "AGENT_DESCRIPTION" + AGENT_ID = "AGENT_ID" + # ACP Configuration + ACP_URL = "ACP_URL" + ACP_PORT = "ACP_PORT" + ACP_TYPE = "ACP_TYPE" + # Workflow Configuraiton + WORKFLOW_NAME = "WORKFLOW_NAME" + WORKFLOW_TASK_QUEUE = "WORKFLOW_TASK_QUEUE" + + +class Environment(str, Enum): + DEV = "development" + STAGING = "staging" + PROD = "production" + + +refreshed_environment_variables = None + + +class EnvironmentVariables(BaseModel): + ENVIRONMENT: str = Environment.DEV + TEMPORAL_ADDRESS: str | None = "localhost:7233" + REDIS_URL: str | None = None + AGENTEX_BASE_URL: str | None = "http://localhost:5003" + # Agent Identifiers + AGENT_NAME: str + AGENT_DESCRIPTION: str | None = None + AGENT_ID: str | None = None + ACP_TYPE: str | None = "agentic" + # ACP Configuration + ACP_URL: str + ACP_PORT: int = 8000 + # Workflow Configuration + WORKFLOW_TASK_QUEUE: str | None = None + WORKFLOW_NAME: str | None = None + + @classmethod + def refresh(cls) -> EnvironmentVariables | None: + global refreshed_environment_variables + if refreshed_environment_variables is not None: + return refreshed_environment_variables + + if os.environ.get(EnvVarKeys.ENVIRONMENT) == Environment.DEV: + # Load global .env file first + global_env_path = PROJECT_ROOT / ".env" + if global_env_path.exists(): + print(f"Loading global environment variables FROM: {global_env_path}") + load_dotenv(dotenv_path=global_env_path, override=False) + + # Load local project .env.local file (takes precedence) + local_env_path = Path.cwd().parent / ".env.local" + if local_env_path.exists(): + print(f"Loading local environment variables FROM: {local_env_path}") + load_dotenv(dotenv_path=local_env_path, override=True) + + # Create kwargs dict with environment variables, using None for missing values + # Pydantic will use the default values when None is passed for optional fields + kwargs = {} + for key in EnvVarKeys: + env_value = os.environ.get(key.value) + if env_value is not None: + kwargs[key.value] = env_value + + environment_variables = EnvironmentVariables(**kwargs) + refreshed_environment_variables = environment_variables + return refreshed_environment_variables diff --git a/src/agentex/lib/py.typed b/src/agentex/lib/py.typed new file mode 100644 index 000000000..e69de29bb diff --git a/src/agentex/lib/sdk/__init__.py b/src/agentex/lib/sdk/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/src/agentex/lib/sdk/config/__init__.py b/src/agentex/lib/sdk/config/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/src/agentex/lib/sdk/config/agent_config.py b/src/agentex/lib/sdk/config/agent_config.py new file mode 100644 index 000000000..164ed12fd --- /dev/null +++ b/src/agentex/lib/sdk/config/agent_config.py @@ -0,0 +1,61 @@ +from typing import Any, Literal + +from pydantic import Field + +from agentex.lib.types.agent_configs import TemporalConfig, TemporalWorkflowConfig +from agentex.lib.types.credentials import CredentialMapping +from agentex.lib.utils.logging import make_logger +from agentex.lib.utils.model_utils import BaseModel + +logger = make_logger(__name__) + + +class AgentConfig(BaseModel): + name: str = Field( + ..., + description="The name of the agent.", + pattern=r"^[a-z0-9-]+$", + ) + acp_type: Literal["sync", "agentic"] = Field(..., description="The type of agent.") + description: str = Field(..., description="The description of the agent.") + env: dict[str, str] | None = Field( + default=None, description="Environment variables to set directly in the agent deployment" + ) + credentials: list[CredentialMapping | dict[str, Any]] | None = Field( + default=None, + description="List of credential mappings to mount to the agent deployment. Supports both legacy format and new typed credentials.", + ) + temporal: TemporalConfig | None = Field( + default=None, description="Temporal workflow configuration for this agent" + ) + + def is_temporal_agent(self) -> bool: + """Check if this agent uses Temporal workflows""" + # Check temporal config with enabled flag + if self.temporal and self.temporal.enabled: + return True + return False + + def get_temporal_workflow_config(self) -> TemporalWorkflowConfig | None: + """Get temporal workflow configuration, checking both new and legacy formats""" + # Check new workflows list first + if self.temporal and self.temporal.enabled and self.temporal.workflows: + return self.temporal.workflows[0] # Return first workflow for backward compatibility + + # Check legacy single workflow + if self.temporal and self.temporal.enabled and self.temporal.workflow: + return self.temporal.workflow + + return None + + def get_temporal_workflows(self) -> list[TemporalWorkflowConfig]: + """Get all temporal workflow configurations""" + # Check new workflows list first + if self.temporal and self.temporal.enabled and self.temporal.workflows: + return self.temporal.workflows + + # Check legacy single workflow + if self.temporal and self.temporal.enabled and self.temporal.workflow: + return [self.temporal.workflow] + + return [] diff --git a/src/agentex/lib/sdk/config/agent_manifest.py b/src/agentex/lib/sdk/config/agent_manifest.py new file mode 100644 index 000000000..77733c782 --- /dev/null +++ b/src/agentex/lib/sdk/config/agent_manifest.py @@ -0,0 +1,219 @@ +from __future__ import annotations + +import io +import shutil +import subprocess +import tarfile +import tempfile +import time +from collections.abc import Iterator +from contextlib import contextmanager +from pathlib import Path +from typing import IO, Any + +from pydantic import Field + +from agentex.lib.sdk.config.agent_config import AgentConfig +from agentex.lib.sdk.config.build_config import BuildConfig +from agentex.lib.sdk.config.deployment_config import DeploymentConfig +from agentex.lib.sdk.config.local_development_config import LocalDevelopmentConfig +from agentex.lib.utils.logging import make_logger +from agentex.lib.utils.model_utils import BaseModel + +logger = make_logger(__name__) + + +class AgentManifest(BaseModel): + """ + Represents a manifest file that describes how to build and deploy an agent. + """ + + build: BuildConfig + agent: AgentConfig + local_development: LocalDevelopmentConfig | None = Field( + default=None, description="Configuration for local development" + ) + deployment: DeploymentConfig | None = Field( + default=None, description="Deployment configuration for the agent" + ) + + def context_manager(self, build_context_root: Path) -> BuildContextManager: + """ + Creates a build context manager + """ + return BuildContextManager( + agent_manifest=self, build_context_root=build_context_root + ) + + +class BuildContextManager: + """ + A gateway used to manage the build context for a docker image + """ + + def __init__(self, agent_manifest: AgentManifest, build_context_root: Path): + self.agent_manifest = agent_manifest + self.build_context_root = build_context_root + self._temp_dir: tempfile.TemporaryDirectory | None = None + + self.path: Path | None = None + self.dockerfile_path = "Dockerfile" + self.dockerignore_path = ".dockerignore" + self.directory_paths: list[Path] = [] + + def __enter__(self) -> BuildContextManager: + self._temp_dir = tempfile.TemporaryDirectory() + self.path = Path(self._temp_dir.name) + + dockerfile_path = ( + self.build_context_root / self.agent_manifest.build.context.dockerfile + ) + self.add_dockerfile(root_path=self.path, dockerfile_path=dockerfile_path) + + ignore_patterns = [] + if self.agent_manifest.build.context.dockerignore: + dockerignore_path = ( + self.build_context_root / self.agent_manifest.build.context.dockerignore + ) + self.add_dockerignore( + root_path=self.path, dockerignore_path=dockerignore_path + ) + ignore_patterns = _extract_dockerignore_patterns(dockerignore_path) + + for directory in self.agent_manifest.build.context.include_paths: + directory_path = self.build_context_root / directory + self.add_directory( + root_path=self.path, + directory_path=directory_path, + context_root=self.build_context_root, + ignore_patterns=ignore_patterns, + ) + + return self + + def __exit__(self, exc_type: Any, exc_val: Any, exc_tb: Any) -> None: + if self._temp_dir: + self._temp_dir.cleanup() + + def add_dockerfile(self, root_path: Path, dockerfile_path: Path) -> None: + """ + Copies a dockerfile to the temporary context directory root + """ + shutil.copy2(dockerfile_path, root_path / self.dockerfile_path) + + def add_dockerignore(self, root_path: Path, dockerignore_path: Path) -> None: + """ + Copies a dockerignore to the temporary context directory root + """ + shutil.copy2(str(dockerignore_path), root_path / self.dockerignore_path) + + def add_directory( + self, + root_path: Path, + directory_path: Path, + context_root: Path, + ignore_patterns: list[str] | None = None, + ) -> None: + """ + Copies a directory to the temporary context directory root while maintaining its relative + path to the context root. + """ + directory_copy_start_time = time.time() + last_log_time = directory_copy_start_time + + def copy_function_with_progress(src, dst): + nonlocal directory_copy_start_time + nonlocal last_log_time + logger.info(f"Adding {src} to build context...") + shutil.copy2(src, dst) + current_time = time.time() + time_elapsed = current_time - directory_copy_start_time + + if time_elapsed > 1 and current_time - last_log_time >= 1: + logger.info( + f"Time elapsed copying ({directory_path}): {time_elapsed} " + f"seconds" + ) + last_log_time = current_time + if time_elapsed > 5: + logger.warning( + f"This may take a while... " + f"Consider adding {directory_path} or {src} to your .dockerignore file." + ) + + directory_path_relative_to_root = directory_path.relative_to(context_root) + all_ignore_patterns = [f"{root_path}*"] + if ignore_patterns: + all_ignore_patterns += ignore_patterns + shutil.copytree( + src=directory_path, + dst=root_path / directory_path_relative_to_root, + ignore=shutil.ignore_patterns(*all_ignore_patterns), + dirs_exist_ok=True, + copy_function=copy_function_with_progress, + ) + self.directory_paths.append(directory_path_relative_to_root) + + @contextmanager + def zip_stream(self, root_path: Path | None = None) -> Iterator[IO[bytes]]: + """ + Creates a tar archive of the temporary context directory + and returns a stream of the archive. + """ + if not root_path: + raise ValueError("root_path must be provided") + context = str(root_path.absolute()) + folders_to_include = "." + tar_command = ["tar", "-C", context, "-cf", "-"] + tar_command.extend(folders_to_include) + + logger.info(f"Creating archive: {' '.join(tar_command)}") + + with subprocess.Popen( + tar_command, + stdout=subprocess.PIPE, + stderr=subprocess.DEVNULL, + ) as proc: + assert proc.stdout is not None + try: + yield proc.stdout + finally: + pass + + @staticmethod + @contextmanager + def zipped(root_path: Path | None = None) -> Iterator[IO[bytes]]: + """ + Creates a tar.gz archive of the temporary context directory + and returns a stream of the archive. + """ + if not root_path: + raise ValueError("root_path must be provided") + + tar_buffer = io.BytesIO() + + with tarfile.open(fileobj=tar_buffer, mode="w:gz") as tar_file: + for path in Path(root_path).rglob( + "*" + ): # Recursively add files to the tar.gz + if path.is_file(): # Ensure that we're only adding files + tar_file.add(path, arcname=path.relative_to(root_path)) + + tar_buffer.seek(0) # Reset the buffer position to the beginning + yield tar_buffer + + +def _extract_dockerignore_patterns(dockerignore_path: Path) -> list[str]: + """ + Extracts glob patterns to ignore from the dockerignore into a list of patterns + :param dockerignore_path: Path to the dockerignore to extract patterns from + :return: List of glob patterns to ignore + :rtype: List[str] + """ + ignore_patterns = [] + with open(dockerignore_path) as file: + for line in file: + ignored_filepath = line.split("#", 1)[0].strip() + if ignored_filepath: + ignore_patterns.append(ignored_filepath) + return ignore_patterns diff --git a/src/agentex/lib/sdk/config/build_config.py b/src/agentex/lib/sdk/config/build_config.py new file mode 100644 index 000000000..5b8d994bb --- /dev/null +++ b/src/agentex/lib/sdk/config/build_config.py @@ -0,0 +1,35 @@ +from pydantic import Field + +from agentex.lib.utils.model_utils import BaseModel + + +class BuildContext(BaseModel): + """ + Represents the context in which the Docker image should be built. + """ + + root: str = Field( + ..., + description="The root directory of the build context. Should be specified relative to the location of the " + "build config file.", + ) + include_paths: list[str] = Field( + default_factory=list, + description="The paths to include in the build context. Should be specified relative to the root directory.", + ) + dockerfile: str = Field( + ..., + description="The path to the Dockerfile. Should be specified relative to the root directory.", + ) + dockerignore: str | None = Field( + None, + description="The path to the .dockerignore file. Should be specified relative to the root directory.", + ) + + +class BuildConfig(BaseModel): + """ + Represents a configuration for building the action as a Docker image. + """ + + context: BuildContext diff --git a/src/agentex/lib/sdk/config/deployment_config.py b/src/agentex/lib/sdk/config/deployment_config.py new file mode 100644 index 000000000..7972dbdae --- /dev/null +++ b/src/agentex/lib/sdk/config/deployment_config.py @@ -0,0 +1,117 @@ +from typing import Any + +from pydantic import Field + +from agentex.lib.utils.model_utils import BaseModel + + +class ImageConfig(BaseModel): + """Configuration for container images""" + + repository: str = Field(..., description="Container image repository URL") + tag: str = Field(default="latest", description="Container image tag") + + +class ImagePullSecretConfig(BaseModel): + """Configuration for image pull secrets""" + + name: str = Field(..., description="Name of the image pull secret") + + +class ResourceRequirements(BaseModel): + """Resource requirements for containers""" + + cpu: str = Field( + default="500m", description="CPU request/limit (e.g., '500m', '1')" + ) + memory: str = Field( + default="1Gi", description="Memory request/limit (e.g., '1Gi', '512Mi')" + ) + + +class ResourceConfig(BaseModel): + """Resource configuration for containers""" + + requests: ResourceRequirements = Field( + default_factory=ResourceRequirements, description="Resource requests" + ) + limits: ResourceRequirements = Field( + default_factory=ResourceRequirements, description="Resource limits" + ) + + +class GlobalDeploymentConfig(BaseModel): + """Global deployment configuration that applies to all clusters""" + + agent: dict[str, str] = Field( + default_factory=dict, description="Agent metadata (name, description)" + ) + replicaCount: int = Field(default=1, description="Number of replicas to deploy") + resources: ResourceConfig = Field( + default_factory=ResourceConfig, description="Resource requirements" + ) + + +class DeploymentConfig(BaseModel): + """Main deployment configuration in the manifest""" + + image: ImageConfig = Field(..., description="Container image configuration") + imagePullSecrets: list[ImagePullSecretConfig] | None = Field( + default=None, description="Image pull secrets to use for the deployment" + ) + global_config: GlobalDeploymentConfig = Field( + default_factory=GlobalDeploymentConfig, + description="Global deployment settings", + alias="global", + ) + + class Config: + validate_by_name = True + + +class ClusterConfig(BaseModel): + """Per-cluster deployment overrides""" + + image: ImageConfig | None = Field( + default=None, description="Cluster-specific image overrides" + ) + replicaCount: int | None = Field( + default=None, description="Cluster-specific replica count" + ) + resources: ResourceConfig | None = Field( + default=None, description="Cluster-specific resource overrides" + ) + env: list[dict[str, str]] | None = Field( + default=None, description="Additional environment variables for this cluster" + ) + # Allow additional arbitrary overrides for advanced users + additional_overrides: dict[str, Any] | None = Field( + default=None, description="Additional helm chart value overrides" + ) + + +class InjectedImagePullSecretValues(BaseModel): + """Values for image pull secrets""" + + registry: str = Field(..., description="Registry of the image pull secret") + username: str = Field(..., description="Username of the image pull secret") + password: str = Field(..., description="Password of the image pull secret") + email: str | None = Field( + default=None, description="Email of the image pull secret" + ) + + +class InjectedSecretsValues(BaseModel): + """Values for injected secrets""" + + # Defined as a dictionary because the names need to be unique + credentials: dict[str, Any] = Field( + default_factory=dict, description="Secrets to inject into the deployment" + ) + imagePullSecrets: dict[str, InjectedImagePullSecretValues] = Field( + default_factory=dict, + description="Image pull secrets to inject into the deployment", + ) + + class Config: + validate_by_name = True diff --git a/src/agentex/lib/sdk/config/local_development_config.py b/src/agentex/lib/sdk/config/local_development_config.py new file mode 100644 index 000000000..72532c6f5 --- /dev/null +++ b/src/agentex/lib/sdk/config/local_development_config.py @@ -0,0 +1,56 @@ +from pathlib import Path + +from pydantic import Field, validator + +from agentex.lib.utils.model_utils import BaseModel + + +class LocalAgentConfig(BaseModel): + """Configuration for local agent development""" + + port: int = Field( + ..., + description="The port where the agent's ACP server is running locally", + gt=0, + lt=65536, + ) + host_address: str = Field( + default="host.docker.internal", + description="The host address where the agent's ACP server can be reached (e.g., host.docker.internal for Docker, localhost for direct)", + ) + + +class LocalPathsConfig(BaseModel): + """Configuration for local file paths""" + + acp: str = Field( + default="project/acp.py", + description="Path to the ACP server file. Can be relative to manifest directory or absolute.", + ) + worker: str | None = Field( + default=None, + description="Path to the temporal worker file. Can be relative to manifest directory or absolute. (only for temporal agents)", + ) + + @validator("acp", "worker") + def validate_path_format(cls, v): + """Validate that the path is a reasonable format""" + if v is None: + return v + + # Convert to Path to validate format + try: + Path(v) + except Exception as e: + raise ValueError(f"Invalid path format: {v}") from e + + return v + + +class LocalDevelopmentConfig(BaseModel): + """Configuration for local development environment""" + + agent: LocalAgentConfig = Field(..., description="Local agent configuration") + paths: LocalPathsConfig | None = Field( + default=None, description="File paths for local development" + ) diff --git a/src/agentex/lib/sdk/config/project_config.py b/src/agentex/lib/sdk/config/project_config.py new file mode 100644 index 000000000..9b91ce2c4 --- /dev/null +++ b/src/agentex/lib/sdk/config/project_config.py @@ -0,0 +1,103 @@ +import os +import re +from pathlib import Path +from typing import Any, TypeVar + +import yaml +from jinja2 import BaseLoader, Environment, StrictUndefined, TemplateError + +T = TypeVar("T") + + +class ConfigResolutionError(Exception): + def __init__(self, message: str) -> None: + super().__init__(message) + self.status_code = 400 + + +def _preprocess_template(template_str: str) -> str: + # Replace $env. and $variables. with unique internal names + return template_str.replace("{{ $env.", "{{ __special_env__.").replace( + "{{ $variables.", "{{ __special_variables__." + ) + + +def _extract_variables_section(raw_config_str: str) -> str: + # Use regex to extract the variables: ... block (YAML top-level) + match = re.search( + r"(^variables:.*?)(^config:|\Z)", raw_config_str, re.DOTALL | re.MULTILINE + ) + if not match: + return "" + return match.group(1) + + +def ProjectConfigLoader( + config_path: str, model: type[T] | None = None, env_path: str | None = None +) -> dict[str, Any] | T: + config_path = Path(config_path) + env_path = Path(env_path) if env_path else config_path.parent / ".env" + env = _load_env(env_path) + raw_config_str = _load_file_as_str(config_path) + raw_config_str = _preprocess_template(raw_config_str) + + # Extract and render only the variables section + variables_section_str = _extract_variables_section(raw_config_str) + env_context = {"__special_env__": env, "__special_variables__": {}} + try: + env_only_template = Environment( + loader=BaseLoader(), + undefined=StrictUndefined, + keep_trailing_newline=True, + autoescape=False, + ).from_string(variables_section_str) + rendered_variables_yaml = env_only_template.render(**env_context) + variables_dict = yaml.safe_load(rendered_variables_yaml).get("variables", {}) + except Exception as e: + raise ConfigResolutionError(f"Error rendering variables with $env: {e}") from e + # Second pass: render the whole config with both __special_env__ and resolved __special_variables__ + full_context = {"__special_env__": env, "__special_variables__": variables_dict} + rendered_config_str = _jinja_render(raw_config_str, full_context) + try: + rendered_config = yaml.safe_load(rendered_config_str) + except Exception as e: + raise ConfigResolutionError(f"Error loading rendered YAML: {e}") from e + if "config" not in rendered_config: + raise ConfigResolutionError("Missing 'config' section in config file.") + config_section = rendered_config["config"] + if model is not None: + return model(**config_section) + return config_section + + +def _load_env(env_path: Path) -> dict[str, str]: + env = dict(os.environ) + if env_path.exists(): + with open(env_path) as f: + for line in f: + line = line.strip() + if not line or line.startswith("#"): + continue + if "=" in line: + k, v = line.split("=", 1) + env[k.strip()] = v.strip() + return env + + +def _load_file_as_str(path: Path) -> str: + with open(path) as f: + return f.read() + + +def _jinja_render(template_str: str, context: dict) -> str: + try: + env = Environment( + loader=BaseLoader(), + undefined=StrictUndefined, + keep_trailing_newline=True, + autoescape=False, + ) + template = env.from_string(template_str) + return template.render(**context) + except TemplateError as e: + raise ConfigResolutionError(f"Jinja template error: {e}") from e diff --git a/src/agentex/lib/sdk/fastacp/__init__.py b/src/agentex/lib/sdk/fastacp/__init__.py new file mode 100644 index 000000000..b69863798 --- /dev/null +++ b/src/agentex/lib/sdk/fastacp/__init__.py @@ -0,0 +1,3 @@ +from agentex.lib.sdk.fastacp.fastacp import FastACP + +__all__ = ["FastACP"] diff --git a/src/agentex/lib/sdk/fastacp/base/base_acp_server.py b/src/agentex/lib/sdk/fastacp/base/base_acp_server.py new file mode 100644 index 000000000..746a1af0b --- /dev/null +++ b/src/agentex/lib/sdk/fastacp/base/base_acp_server.py @@ -0,0 +1,406 @@ +import asyncio +import inspect +from collections.abc import AsyncGenerator, Awaitable, Callable +from contextlib import asynccontextmanager +from typing import Any + +import httpx +import uvicorn +from fastapi import FastAPI, Request +from fastapi.responses import StreamingResponse +from pydantic import TypeAdapter, ValidationError + +# from agentex.lib.sdk.fastacp.types import BaseACPConfig +from agentex.lib.environment_variables import EnvironmentVariables +from agentex.lib.types.acp import ( + PARAMS_MODEL_BY_METHOD, + RPC_SYNC_METHODS, + CancelTaskParams, + CreateTaskParams, + RPCMethod, + SendEventParams, + SendMessageParams, +) +from agentex.lib.types.json_rpc import JSONRPCError, JSONRPCRequest, JSONRPCResponse +from agentex.lib.types.task_message_updates import StreamTaskMessageFull, TaskMessageUpdate +from agentex.types.task_message_content import TaskMessageContent +from agentex.lib.utils.logging import make_logger +from agentex.lib.utils.model_utils import BaseModel + +logger = make_logger(__name__) + +# Create a TypeAdapter for TaskMessageUpdate validation +task_message_update_adapter = TypeAdapter(TaskMessageUpdate) + + +class BaseACPServer(FastAPI): + """ + AsyncAgentACP provides RPC-style hooks for agent events and commands asynchronously. + All methods follow JSON-RPC 2.0 format. + + Available methods: + - event/send → Send a message to a task + - task/cancel → Cancel a task + - task/approve → Approve a task + """ + + def __init__(self): + super().__init__(lifespan=self.get_lifespan_function()) + + self.get("/healthz")(self._healthz) + self.post("/api")(self._handle_jsonrpc) + + # Method handlers + self._handlers: dict[RPCMethod, Callable] = {} + + @classmethod + def create(cls): + """Create and initialize BaseACPServer instance""" + instance = cls() + instance._setup_handlers() + return instance + + def _setup_handlers(self): + """Set up default handlers - override in subclasses""" + # Base class has no default handlers + pass + + def get_lifespan_function(self): + @asynccontextmanager + async def lifespan_context(app: FastAPI): + env_vars = EnvironmentVariables.refresh() + if env_vars.AGENTEX_BASE_URL: + await self._register_agent(env_vars) + else: + logger.warning("AGENTEX_BASE_URL not set, skipping agent registration") + + yield + + return lifespan_context + + async def _healthz(self): + """Health check endpoint""" + return {"status": "healthy"} + + def _wrap_handler(self, fn: Callable[..., Awaitable[Any]]): + """Wraps handler functions to provide JSON-RPC 2.0 response format""" + + async def wrapper(*args, **kwargs) -> Any: + return await fn(*args, **kwargs) + + return wrapper + + async def _handle_jsonrpc(self, request: Request): + """Main JSON-RPC endpoint handler""" + rpc_request = None + try: + data = await request.json() + rpc_request = JSONRPCRequest(**data) + + # Check if method is valid first + try: + method = RPCMethod(rpc_request.method) + except ValueError: + logger.error(f"Method {rpc_request.method} was invalid") + return JSONRPCResponse( + id=rpc_request.id, + error=JSONRPCError( + code=-32601, message=f"Method {rpc_request.method} not found" + ), + ) + + if method not in self._handlers or self._handlers[method] is None: + logger.error(f"Method {method} not found on existing ACP server") + return JSONRPCResponse( + id=rpc_request.id, + error=JSONRPCError( + code=-32601, message=f"Method {method} not found" + ), + ) + + # Parse params into appropriate model based on method + params_model = PARAMS_MODEL_BY_METHOD[method] + params = params_model.model_validate(rpc_request.params) + + if method in RPC_SYNC_METHODS: + handler = self._handlers[method] + result = await handler(params) + + if rpc_request.id is None: + # Seems like you should return None for notifications + return None + else: + # Handle streaming vs non-streaming for MESSAGE_SEND + if method == RPCMethod.MESSAGE_SEND and isinstance( + result, AsyncGenerator + ): + return await self._handle_streaming_response( + rpc_request.id, result + ) + else: + if isinstance(result, BaseModel): + result = result.model_dump() + return JSONRPCResponse(id=rpc_request.id, result=result) + else: + # If this is a notification (no request ID), process in background and return immediately + if rpc_request.id is None: + asyncio.create_task(self._process_notification(method, params)) + return JSONRPCResponse(id=None) + + # For regular requests, start processing in background but return immediately + asyncio.create_task( + self._process_request(rpc_request.id, method, params) + ) + + # Return immediate acknowledgment + return JSONRPCResponse( + id=rpc_request.id, result={"status": "processing"} + ) + + except Exception as e: + logger.error(f"Error handling JSON-RPC request: {e}", exc_info=True) + request_id = None + if rpc_request is not None: + request_id = rpc_request.id + return JSONRPCResponse( + id=request_id, + error=JSONRPCError(code=-32603, message=str(e)).model_dump(), + ) + + async def _handle_streaming_response( + self, request_id: int | str, async_gen: AsyncGenerator + ): + """Handle streaming response by formatting TaskMessageUpdate objects as JSON-RPC stream""" + + async def generate_json_rpc_stream(): + try: + async for chunk in async_gen: + # Each chunk should be a TaskMessageUpdate object + # Validate using Pydantic's TypeAdapter to ensure it's a proper TaskMessageUpdate + try: + # This will validate that chunk conforms to the TaskMessageUpdate union type + validated_chunk = task_message_update_adapter.validate_python( + chunk + ) + # Use mode="json" to properly serialize datetime objects + chunk_data = validated_chunk.model_dump(mode="json") + except ValidationError as e: + raise TypeError( + f"Streaming chunks must be TaskMessageUpdate objects. Validation error: {e}" + ) from e + except Exception as e: + raise TypeError( + f"Streaming chunks must be TaskMessageUpdate objects, got {type(chunk)}: {e}" + ) from e + + # Wrap in JSON-RPC response format + response = JSONRPCResponse(id=request_id, result=chunk_data) + # Use model_dump_json() which handles datetime serialization automatically + yield f"{response.model_dump_json()}\n" + + except Exception as e: + logger.error(f"Error in streaming response: {e}", exc_info=True) + error_response = JSONRPCResponse( + id=request_id, + error=JSONRPCError(code=-32603, message=str(e)).model_dump(), + ) + yield f"{error_response.model_dump_json()}\n" + + return StreamingResponse( + generate_json_rpc_stream(), + media_type="application/x-ndjson", # Newline Delimited JSON + headers={ + "Cache-Control": "no-cache", + "Connection": "keep-alive", + "X-Accel-Buffering": "no", # Disable nginx buffering + }, + ) + + async def _process_notification(self, method: RPCMethod, params: Any): + """Process a notification (request with no ID) in the background""" + try: + handler = self._handlers[method] + await handler(params) + except Exception as e: + logger.error(f"Error processing notification {method}: {e}", exc_info=True) + + async def _process_request( + self, request_id: int | str, method: RPCMethod, params: Any + ): + """Process a request in the background""" + try: + handler = self._handlers[method] + await handler(params) + # Note: In a real implementation, you might want to store the result somewhere + # or notify the client through a different mechanism + logger.info( + f"Successfully processed request {request_id} for method {method}" + ) + except Exception as e: + logger.error( + f"Error processing request {request_id} for method {method}: {e}", + exc_info=True, + ) + + """ + Define all possible decorators to be overriden and implemented by each ACP implementation + Then the users can override the default handlers by implementing their own handlers + + ACP Type: Agentic + Decorators: + - on_task_create + - on_task_event_send + - on_task_cancel + + ACP Type: Sync + Decorators: + - on_message_send + """ + + # Type: Agentic + def on_task_create(self, fn: Callable[[CreateTaskParams], Awaitable[Any]]): + """Handle task/init method""" + wrapped = self._wrap_handler(fn) + self._handlers[RPCMethod.TASK_CREATE] = wrapped + return fn + + # Type: Agentic + def on_task_event_send(self, fn: Callable[[SendEventParams], Awaitable[Any]]): + """Handle event/send method""" + + async def wrapped_handler(params: SendEventParams): + # # # Send message to client first most of the time + # ## But, sometimes you may want to process the message first + # ## and then send a message to the client + # await agentex.interactions.send_messages_to_client( + # task_id=params.task_id, + # messages=[params.message] + # ) + return await fn(params) + + wrapped = self._wrap_handler(wrapped_handler) + self._handlers[RPCMethod.EVENT_SEND] = wrapped + return fn + + # Type: Agentic + def on_task_cancel(self, fn: Callable[[CancelTaskParams], Awaitable[Any]]): + """Handle task/cancel method""" + wrapped = self._wrap_handler(fn) + self._handlers[RPCMethod.TASK_CANCEL] = wrapped + return fn + + # Type: Sync + def on_message_send( + self, + fn: Callable[ + [SendMessageParams], + Awaitable[list[TaskMessageContent] | AsyncGenerator[TaskMessageUpdate, None]], + ], + ): + """Handle message/send method - supports both single and streaming responses + + For non-streaming: return a single TaskMessage + For streaming: return an AsyncGenerator that yields TaskMessageUpdate objects + """ + + async def message_send_wrapper(params: SendMessageParams): + """Special wrapper for message_send that handles both regular async functions and async generators""" + # Check if the function is an async generator function + + # Regardless of whether the Agent developer implemented an Async generator or not, we will always turn the function into an async generator and yield SSE events back tot he Agentex server so there is only one way for it to process the response. Then, based on the client's desire to stream or not, the Agentex server will either yield back the async generator objects directly (if streaming) or aggregate the content into a list of TaskMessageContents and to dispatch to the client. This basically gives the Agentex server the flexibility to handle both cases itself. + + if inspect.isasyncgenfunction(fn): + # The client wants streaming, an async generator already streams the content, so just return it + return fn(params) + else: + # The client wants streaming, but the function is not an async generator, so we turn it into one and yield each TaskMessageContent as a StreamTaskMessageFull which will be streamed to the client by the Agentex server. + task_message_content_response = await fn(params) + if isinstance(task_message_content_response, list): + task_message_content_list = task_message_content_response + else: + task_message_content_list = [task_message_content_response] + + async def async_generator(task_message_content_list: list[TaskMessageContent]): + for i, task_message_content in enumerate(task_message_content_list): + yield StreamTaskMessageFull(index=i, content=task_message_content) + + return async_generator(task_message_content_list) + + self._handlers[RPCMethod.MESSAGE_SEND] = message_send_wrapper + return fn + + """ + End of Decorators + """ + + """ + ACP Server Lifecycle Methods + """ + + def run(self, host: str = "0.0.0.0", port: int = 8000, **kwargs): + """Start the Uvicorn server for async handlers.""" + uvicorn.run(self, host=host, port=port, **kwargs) + + async def _register_agent(self, env_vars: EnvironmentVariables): + """Register this agent with the Agentex server""" + # Build the agent's own URL + full_acp_url = f"{env_vars.ACP_URL.rstrip('/')}:{env_vars.ACP_PORT}" + + description = ( + env_vars.AGENT_DESCRIPTION + or f"Generic description for agent: {env_vars.AGENT_NAME}" + ) + # Prepare registration data + registration_data = { + "name": env_vars.AGENT_NAME, + "description": description, + "acp_url": full_acp_url, + "acp_type": env_vars.ACP_TYPE, + } + + if env_vars.AGENT_ID: + registration_data["agent_id"] = env_vars.AGENT_ID + + # Make the registration request + registration_url = f"{env_vars.AGENTEX_BASE_URL.rstrip('/')}/agents/register" + # Retry logic with configurable attempts and delay + max_retries = 3 + base_delay = 5 # seconds + last_exception = None + + attempt = 0 + while attempt < max_retries: + try: + async with httpx.AsyncClient() as client: + response = await client.post( + registration_url, json=registration_data, timeout=30.0 + ) + if response.status_code == 200: + logger.info( + f"Successfully registered agent '{env_vars.AGENT_NAME}' with Agentex server with acp_url: {full_acp_url}. Registration data: {registration_data}" + ) + return # Success, exit the retry loop + else: + error_msg = f"Failed to register agent. Status: {response.status_code}, Response: {response.text}" + logger.error(error_msg) + last_exception = Exception( + f"Failed to startup agent: {response.text}" + ) + + except Exception as e: + logger.error( + f"Exception during agent registration attempt {attempt + 1}: {e}" + ) + last_exception = e + attempt += 1 + if attempt < max_retries: + delay = (attempt) * base_delay # 5, 10, 15 seconds + logger.info( + f"Retrying in {delay} seconds... (attempt {attempt}/{max_retries})" + ) + await asyncio.sleep(delay) + + # If we get here, all retries failed + raise last_exception or Exception( + f"Failed to register agent after {max_retries} attempts" + ) diff --git a/src/agentex/lib/sdk/fastacp/fastacp.py b/src/agentex/lib/sdk/fastacp/fastacp.py new file mode 100644 index 000000000..493e9b491 --- /dev/null +++ b/src/agentex/lib/sdk/fastacp/fastacp.py @@ -0,0 +1,74 @@ +from typing import Literal +from agentex.lib.sdk.fastacp.base.base_acp_server import BaseACPServer +from agentex.lib.sdk.fastacp.impl.agentic_base_acp import AgenticBaseACP +from agentex.lib.sdk.fastacp.impl.sync_acp import SyncACP +from agentex.lib.sdk.fastacp.impl.temporal_acp import TemporalACP +from agentex.lib.types.fastacp import ( + AgenticACPConfig, + BaseACPConfig, + SyncACPConfig, +) + +# Add new mappings between ACP types and configs here +# Add new mappings between ACP types and implementations here +AGENTIC_ACP_IMPLEMENTATIONS: dict[Literal["temporal", "base"], type[BaseACPServer]] = { + "temporal": TemporalACP, + "base": AgenticBaseACP, +} + + +class FastACP: + """Factory for creating FastACP instances + + Supports two main ACP types: + - "sync": Simple synchronous ACP implementation + - "agentic": Advanced ACP with sub-types "base" or "temporal" (requires config) + """ + + @staticmethod + # Note: the config is optional and not used right now but is there to be extended in the future + def create_sync_acp(config: SyncACPConfig | None = None, **kwargs) -> SyncACP: + """Create a SyncACP instance""" + return SyncACP.create(**kwargs) + + @staticmethod + def create_agentic_acp(config: AgenticACPConfig, **kwargs) -> BaseACPServer: + """Create an agentic ACP instance (base or temporal) + + Args: + config: AgenticACPConfig with type="base" or type="temporal" + **kwargs: Additional configuration parameters + """ + # Get implementation class + implementation_class = AGENTIC_ACP_IMPLEMENTATIONS[config.type] + # Handle temporal-specific configuration + if config.type == "temporal": + # Extract temporal_address from config if it's a TemporalACPConfig + temporal_config = kwargs.copy() + if hasattr(config, "temporal_address"): + temporal_config["temporal_address"] = config.temporal_address + return implementation_class.create(**temporal_config) + else: + return implementation_class.create(**kwargs) + + @staticmethod + def create( + acp_type: Literal["sync", "agentic"], config: BaseACPConfig | None = None, **kwargs + ) -> BaseACPServer | SyncACP | AgenticBaseACP | TemporalACP: + """Main factory method to create any ACP type + + Args: + acp_type: Type of ACP to create ("sync" or "agentic") + config: Configuration object. Required for agentic type. + **kwargs: Additional configuration parameters + """ + + if acp_type == "sync": + sync_config = config if isinstance(config, SyncACPConfig) else None + return FastACP.create_sync_acp(sync_config, **kwargs) + elif acp_type == "agentic": + if config is None: + config = AgenticACPConfig(type="base") + if not isinstance(config, AgenticACPConfig): + raise ValueError("AgenticACPConfig is required for agentic ACP type") + return FastACP.create_agentic_acp(config, **kwargs) diff --git a/src/agentex/lib/sdk/fastacp/impl/agentic_base_acp.py b/src/agentex/lib/sdk/fastacp/impl/agentic_base_acp.py new file mode 100644 index 000000000..52311ccc0 --- /dev/null +++ b/src/agentex/lib/sdk/fastacp/impl/agentic_base_acp.py @@ -0,0 +1,72 @@ +from typing import Any +from typing_extensions import override +from agentex import AsyncAgentex +from agentex.lib.sdk.fastacp.base.base_acp_server import BaseACPServer +from agentex.lib.types.acp import ( + CancelTaskParams, + CreateTaskParams, + SendEventParams, +) +from agentex.lib.utils.logging import make_logger + +logger = make_logger(__name__) + + +class AgenticBaseACP(BaseACPServer): + """ + AgenticBaseACP implementation - a synchronous ACP that provides basic functionality + without any special async orchestration like Temporal. + + This implementation provides simple synchronous processing of tasks + and is suitable for basic agent implementations. + """ + + def __init__(self): + super().__init__() + self._setup_handlers() + self._agentex_client = AsyncAgentex() + + @classmethod + @override + def create(cls, **kwargs: Any) -> "AgenticBaseACP": + """Create and initialize SyncACP instance + + Args: + **kwargs: Configuration parameters (unused in sync implementation) + + Returns: + Initialized SyncACP instance + """ + logger.info("Initializing AgenticBaseACP instance") + instance = cls() + logger.info("AgenticBaseACP instance initialized with default handlers") + return instance + + @override + def _setup_handlers(self): + """Set up default handlers for sync operations""" + + @self.on_task_create + async def handle_create_task(params: CreateTaskParams) -> None: # type: ignore[unused-function] + """Default create task handler - logs the task""" + logger.info(f"AgenticBaseACP creating task {params.task.id}") + + @self.on_task_event_send + async def handle_event_send(params: SendEventParams) -> None: # type: ignore[unused-function] + """Default event handler - logs the event""" + logger.info( + f"AgenticBaseACP received event for task {params.task.id}: {params.event.id}," + f"content: {params.event.content}" + ) + # TODO: Implement event handling logic here + + # Implement cursor commit logic here + await self._agentex_client.tracker.update( + tracker_id=params.task.id, + last_processed_event_id=params.event.id, + ) + + @self.on_task_cancel + async def handle_cancel(params: CancelTaskParams) -> None: # type: ignore[unused-function] + """Default cancel handler - logs the cancellation""" + logger.info(f"AgenticBaseACP canceling task {params.task.id}") diff --git a/src/agentex/lib/sdk/fastacp/impl/sync_acp.py b/src/agentex/lib/sdk/fastacp/impl/sync_acp.py new file mode 100644 index 000000000..71187f4da --- /dev/null +++ b/src/agentex/lib/sdk/fastacp/impl/sync_acp.py @@ -0,0 +1,109 @@ +from collections.abc import AsyncGenerator +from typing import Any, override + +from agentex.lib.sdk.fastacp.base.base_acp_server import BaseACPServer +from agentex.lib.types.acp import SendMessageParams +from agentex.lib.types.task_message_updates import ( + StreamTaskMessageDelta, + StreamTaskMessageFull, + TaskMessageUpdate, + TextDelta, +) +from agentex.types.task_message_content import TaskMessageContent, TextContent +from agentex.lib.utils.logging import make_logger + +logger = make_logger(__name__) + + +class SyncACP(BaseACPServer): + """ + SyncACP provides synchronous request-response style communication. + Handlers execute and return responses immediately. + + The SyncACP automatically creates input and output messages, so handlers + don't need to manually create TaskMessage objects via the Agentex API. All that needs + to be done is return the output message via TaskMessageContent objects. + + Usage: + acp = SyncACP() + + @acp.on_message_send + async def handle_message(params: SendMessageParams) -> TaskMessageContent: + # Process message and return response + pass + + acp.run() + """ + + def __init__(self): + super().__init__() + self._setup_handlers() + + @classmethod + @override + def create(cls, **kwargs: Any) -> "SyncACP": + """Create and initialize SyncACP instance + + Args: + **kwargs: Configuration parameters (unused in sync implementation) + + Returns: + Initialized SyncACP instance + """ + logger.info("Creating SyncACP instance") + instance = cls() + logger.info("SyncACP instance created with default handlers") + return instance + + @override + def _setup_handlers(self): + """Set up default handlers for sync operations""" + + @self.on_message_send + async def handle_message_send( # type: ignore[unused-function] + params: SendMessageParams + ) -> TaskMessageContent | AsyncGenerator[TaskMessageUpdate, None]: + """Default message handler with TaskMessageUpdate streaming support + + For streaming, the SyncACP server automatically creates the input and output + messages, so we just return TaskMessageUpdate objects with parent_task_message=None + """ + logger.info( + f"SyncACP received message for task {params.task.id}: {params.content}" + ) + + if params.stream: + # Return streaming response + async def stream_response(): + # Example: Stream 3 chunks + full_message = "" + for i in range(3): + data = f"Streaming chunk {i+1}: Processing your request...\n" + full_message += data + yield StreamTaskMessageDelta( + type="delta", + index=0, + delta=TextDelta( + text_delta=f"Streaming chunk {i+1}: Processing your request...\n" + ), + ) + + # Final response + yield StreamTaskMessageFull( + type="full", + index=0, + content=TextContent( + author="agent", + content=full_message, + format="markdown", + ), + ) + + return stream_response() + else: + # Return single response for non-streaming + return TextContent( + author="agent", + content=f"Processed message for task {params.task.id}", + format="markdown", + ) diff --git a/src/agentex/lib/sdk/fastacp/impl/temporal_acp.py b/src/agentex/lib/sdk/fastacp/impl/temporal_acp.py new file mode 100644 index 000000000..f2ec2a732 --- /dev/null +++ b/src/agentex/lib/sdk/fastacp/impl/temporal_acp.py @@ -0,0 +1,97 @@ +from contextlib import asynccontextmanager +from typing import AsyncGenerator, Callable + +from fastapi import FastAPI + +from agentex.lib.core.clients.temporal.temporal_client import TemporalClient +from agentex.lib.core.temporal.services.temporal_task_service import TemporalTaskService +from agentex.lib.environment_variables import EnvironmentVariables +from agentex.lib.sdk.fastacp.base.base_acp_server import BaseACPServer +from agentex.lib.types.acp import ( + CancelTaskParams, + CreateTaskParams, + SendEventParams, +) +from agentex.lib.utils.logging import make_logger + +logger = make_logger(__name__) + + +class TemporalACP(BaseACPServer): + """ + Temporal-specific implementation of AsyncAgentACP. + Uses TaskService to forward operations to temporal workflows. + """ + + def __init__( + self, temporal_address: str, temporal_task_service: TemporalTaskService | None = None + ): + super().__init__() + self._temporal_task_service = temporal_task_service + self._temporal_address = temporal_address + + @classmethod + def create(cls, temporal_address: str) -> "TemporalACP": + logger.info("Initializing TemporalACP instance") + + # Create instance without temporal client initially + temporal_acp = cls(temporal_address=temporal_address) + temporal_acp._setup_handlers() + logger.info("TemporalACP instance initialized now") + return temporal_acp + + # This is to override the lifespan function of the base + def get_lifespan_function(self) -> Callable[[FastAPI], AsyncGenerator[None, None]]: + @asynccontextmanager + async def lifespan(app: FastAPI): + # Create temporal client during startup + if self._temporal_address is None: + raise ValueError("Temporal address is not set") + + if self._temporal_task_service is None: + env_vars = EnvironmentVariables.refresh() + temporal_client = await TemporalClient.create( + temporal_address=self._temporal_address + ) + self._temporal_task_service = TemporalTaskService( + temporal_client=temporal_client, + env_vars=env_vars, + ) + + # Call parent lifespan for agent registration + async with super().get_lifespan_function()(app): + yield + + return lifespan + + def _setup_handlers(self): + """Set up the handlers for temporal workflow operations""" + + @self.on_task_create + async def handle_task_create(params: CreateTaskParams) -> None: + """Default create task handler - logs the task""" + logger.info(f"TemporalACP received task create rpc call for task {params.task.id}") + await self._temporal_task_service.submit_task(agent=params.agent, task=params.task) + + @self.on_task_event_send + async def handle_event_send(params: SendEventParams) -> None: + """Forward messages to running workflows via TaskService""" + try: + await self._temporal_task_service.send_event( + agent=params.agent, + task=params.task, + event=params.event, + ) + + except Exception as e: + logger.error(f"Failed to send message: {e}") + raise + + @self.on_task_cancel + async def handle_cancel(params: CancelTaskParams) -> None: + """Cancel running workflows via TaskService""" + try: + await self._temporal_task_service.cancel(task_id=params.task.id) + except Exception as e: + logger.error(f"Failed to cancel task: {e}") + raise diff --git a/src/agentex/lib/sdk/fastacp/tests/README.md b/src/agentex/lib/sdk/fastacp/tests/README.md new file mode 100644 index 000000000..4f5c6f9b1 --- /dev/null +++ b/src/agentex/lib/sdk/fastacp/tests/README.md @@ -0,0 +1,297 @@ +# BaseACPServer Test Suite + +This directory contains comprehensive tests for the `BaseACPServer` and its implementations (`SyncACP`, `AgenticBaseACP`, and `TemporalACP`). + +## Test Structure + +The test suite is organized into several categories: + +### 1. Core Unit Tests (`test_base_acp_server.py`) +- **TestBaseACPServerInitialization**: Server initialization and setup +- **TestHealthCheckEndpoint**: Health check endpoint functionality +- **TestJSONRPCEndpointCore**: Basic JSON-RPC endpoint functionality +- **TestHandlerRegistration**: Handler registration and management +- **TestBackgroundProcessing**: Background task processing +- **TestErrorHandling**: Basic error handling scenarios + +### 2. JSON-RPC Endpoint Tests (`test_json_rpc_endpoints.py`) +- **TestJSONRPCMethodHandling**: Method routing and execution +- **TestJSONRPCParameterValidation**: Parameter parsing and validation +- **TestJSONRPCResponseFormat**: Response formatting compliance +- **TestJSONRPCErrorCodes**: JSON-RPC 2.0 error code compliance +- **TestJSONRPCConcurrency**: Concurrent request handling + +### 3. Integration Tests (`test_server_integration.py`) +- **TestServerLifecycle**: Server startup, running, and shutdown +- **TestHTTPClientIntegration**: Real HTTP client interactions +- **TestHandlerExecutionIntegration**: Handler execution in server environment +- **TestServerPerformance**: Performance characteristics + +### 4. Implementation Tests (`test_implementations.py`) +- **TestSyncACP**: SyncACP-specific functionality +- **TestAgenticBaseACP**: AgenticBaseACP-specific functionality +- **TestTemporalACP**: TemporalACP-specific functionality +- **TestImplementationComparison**: Differences between implementations +- **TestImplementationErrorHandling**: Implementation-specific error handling + +### 5. Error Handling Tests (`test_error_handling.py`) +- **TestMalformedRequestHandling**: Invalid and malformed requests +- **TestHandlerErrorHandling**: Handler-level error scenarios +- **TestServerErrorHandling**: Server-level error handling +- **TestEdgeCases**: Edge cases and boundary conditions + +## Running Tests + +### Prerequisites + +Install test dependencies: +```bash +pip install pytest pytest-asyncio httpx pytest-cov pytest-xdist +``` + +### Basic Usage + +Run all tests: +```bash +python run_tests.py +``` + +Run specific test categories: +```bash +python run_tests.py --category unit +python run_tests.py --category integration +python run_tests.py --category implementations +python run_tests.py --category error +``` + +### Advanced Options + +Run with coverage: +```bash +python run_tests.py --coverage +``` + +Run in parallel: +```bash +python run_tests.py --parallel 4 +``` + +Run with increased verbosity: +```bash +python run_tests.py -vv +``` + +Stop on first failure: +```bash +python run_tests.py --failfast +``` + +Run only failed tests from last run: +```bash +python run_tests.py --lf +``` + +### Quick Test Options + +For development, use these quick test commands: + +```bash +# Quick smoke tests +python run_tests.py smoke + +# Quick development tests +python run_tests.py quick + +# Performance tests only +python run_tests.py perf +``` + +### Direct pytest Usage + +You can also run tests directly with pytest: + +```bash +# Run all tests +pytest + +# Run specific test file +pytest test_base_acp_server.py + +# Run specific test class +pytest test_base_acp_server.py::TestBaseACPServerInitialization + +# Run specific test method +pytest test_base_acp_server.py::TestBaseACPServerInitialization::test_base_acp_server_init + +# Run with markers +pytest -m "not slow" +``` + +## Test Configuration + +### Fixtures (`conftest.py`) + +The test suite uses several fixtures: + +- **`free_port`**: Provides a free port for testing +- **`sample_task`**, **`sample_message`**: Sample data objects +- **`base_acp_server`**, **`sync_acp`**, **`agentic_base_acp`**, **`mock_temporal_acp`**: Server instances +- **`test_server_runner`**: Manages server lifecycle for integration tests +- **`jsonrpc_client_factory`**: Creates JSON-RPC test clients +- **`mock_env_vars`**: Mocked environment variables + +### Test Utilities + +- **`TestServerRunner`**: Manages server startup/shutdown for integration tests +- **`JSONRPCTestClient`**: Simplified JSON-RPC client for testing +- **`find_free_port()`**: Utility to find available ports + +## Test Categories Explained + +### Unit Tests +Focus on individual components in isolation: +- Server initialization +- Handler registration +- Basic endpoint functionality +- Parameter validation + +### Integration Tests +Test components working together: +- Full server lifecycle +- Real HTTP requests +- Handler execution in server context +- Performance characteristics + +### Implementation Tests +Test specific ACP implementations: +- SyncACP behavior +- AgenticBaseACP send_event functionality +- TemporalACP workflow integration +- Implementation differences + +### Error Handling Tests +Comprehensive error scenarios: +- Malformed JSON-RPC requests +- Handler exceptions +- Server error recovery +- Edge cases and boundary conditions + +## Writing New Tests + +### Test Naming Convention +- Test files: `test_*.py` +- Test classes: `Test*` +- Test methods: `test_*` + +### Async Test Example +```python +@pytest.mark.asyncio +async def test_my_async_functionality(self, base_acp_server): + # Your async test code here + result = await some_async_operation() + assert result is not None +``` + +### Integration Test Example +```python +@pytest.mark.asyncio +async def test_server_integration(self, base_acp_server, free_port, test_server_runner): + runner = test_server_runner(base_acp_server, free_port) + await runner.start() + + try: + # Test server functionality + async with httpx.AsyncClient() as client: + response = await client.get(f"http://127.0.0.1:{free_port}/healthz") + assert response.status_code == 200 + finally: + await runner.stop() +``` + +### Handler Test Example +```python +@pytest.mark.asyncio +async def test_custom_handler(self, base_acp_server): + handler_called = False + + @base_acp_server.on_task_event_send + async def test_handler(params: SendEventParams): + nonlocal handler_called + handler_called = True + return {"handled": True} + + # Test handler execution + params = SendEventParams(...) + result = await base_acp_server._handlers[RPCMethod.EVENT_SEND](params) + + assert handler_called is True + assert result["handled"] is True +``` + +## Continuous Integration + +The test suite is designed to work well in CI environments: + +- Tests are isolated and don't interfere with each other +- Ports are dynamically allocated to avoid conflicts +- Background tasks are properly cleaned up +- Timeouts are reasonable for CI environments + +### CI Configuration Example + +```yaml +# .github/workflows/test.yml +name: Tests +on: [push, pull_request] +jobs: + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-python@v2 + with: + python-version: '3.9' + - run: pip install -r requirements.txt + - run: pip install pytest pytest-asyncio httpx pytest-cov + - run: cd agentex/sdk/fastacp/tests && python run_tests.py --coverage +``` + +## Troubleshooting + +### Common Issues + +1. **Port conflicts**: Tests use dynamic port allocation, but if you see port conflicts, try running tests sequentially: + ```bash + python run_tests.py --parallel 1 + ``` + +2. **Async test failures**: Make sure all async tests are marked with `@pytest.mark.asyncio` + +3. **Handler not found errors**: Ensure handlers are properly registered before testing + +4. **Timeout issues**: Some tests have built-in delays for background processing. If tests are flaky, increase sleep times in test code. + +### Debug Mode + +Run tests with maximum verbosity and no capture: +```bash +pytest -vvv -s --tb=long +``` + +### Memory Issues + +If you encounter memory issues with large tests: +```bash +python run_tests.py --markers "not memory_intensive" +``` + +## Contributing + +When adding new tests: + +1. Follow the existing test structure and naming conventions +2. Add appropriate docstrings explaining what the test does +3. Use fixtures for common setup +4. Clean up resources properly (especially in integration tests) +5. Add tests to the appropriate category in `run_tests.py` +6. Update this README if adding new test categories or significant functionality \ No newline at end of file diff --git a/src/agentex/lib/sdk/fastacp/tests/conftest.py b/src/agentex/lib/sdk/fastacp/tests/conftest.py new file mode 100644 index 000000000..59b9e1013 --- /dev/null +++ b/src/agentex/lib/sdk/fastacp/tests/conftest.py @@ -0,0 +1,307 @@ +import asyncio +import socket +import time +from typing import Any +from unittest.mock import AsyncMock, patch + +import httpx +import pytest +import pytest_asyncio +import uvicorn + +from agentex.lib.sdk.fastacp.base.base_acp_server import BaseACPServer +from agentex.lib.sdk.fastacp.impl.agentic_base_acp import AgenticBaseACP +from agentex.lib.sdk.fastacp.impl.sync_acp import SyncACP +from agentex.lib.sdk.fastacp.impl.temporal_acp import TemporalACP +from agentex.lib.types.acp import ( + CancelTaskParams, + CreateTaskParams, + SendMessageParams, +) +from agentex.lib.types.json_rpc import JSONRPCRequest +from agentex.types.agent import Agent +from agentex.types.task_message import TaskMessageContent +from agentex.types.task_message_content import TextContent +from agentex.types.task import Task + +# Configure pytest-asyncio +pytest_plugins = ("pytest_asyncio",) + + +def find_free_port() -> int: + """Find a free port for testing""" + with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: + s.bind(("", 0)) + s.listen(1) + port = s.getsockname()[1] + return port + + +@pytest.fixture +def free_port() -> int: + """Fixture that provides a free port for testing""" + return find_free_port() + + +@pytest.fixture +def sample_task() -> Task: + """Fixture that provides a sample Task object""" + return Task( + id="test-task-123", agent_id="test-agent-456", status=TaskStatus.RUNNING + ) + + +@pytest.fixture +def sample_message_content() -> TaskMessageContent: + """Fixture that provides a sample TaskMessage object""" + return TextContent( + type="text", + author="user", + content="Hello, this is a test message", + ) + + +@pytest.fixture +def sample_send_message_params( + sample_task: Task, sample_message_content: TaskMessageContent +) -> SendMessageParams: + """Fixture that provides sample SendMessageParams""" + return SendMessageParams( + agent=Agent( + id="test-agent-456", + name="test-agent", + description="test-agent", + acp_type="sync", + ), + task=sample_task, + content=sample_message_content, + stream=False, + ) + + +@pytest.fixture +def sample_cancel_task_params() -> CancelTaskParams: + """Fixture that provides sample CancelTaskParams""" + return CancelTaskParams( + agent=Agent(id="test-agent-456", name="test-agent", description="test-agent", acp_type="sync"), + task=Task(id="test-task-123", agent_id="test-agent-456", status="running"), + ) + + +@pytest.fixture +def sample_create_task_params(sample_task: Task) -> CreateTaskParams: + """Fixture that provides sample CreateTaskParams""" + return CreateTaskParams( + agent=Agent(id="test-agent-456", name="test-agent", description="test-agent", acp_type="sync"), + task=sample_task, + params={}, + ) + + +class TestServerRunner: + """Utility class for running test servers""" + + def __init__(self, app: BaseACPServer, port: int): + self.app = app + self.port = port + self.server = None + self.server_task = None + + async def start(self): + """Start the server in a background task""" + config = uvicorn.Config( + app=self.app, + host="127.0.0.1", + port=self.port, + log_level="error", # Reduce noise in tests + ) + self.server = uvicorn.Server(config) + self.server_task = asyncio.create_task(self.server.serve()) + + # Wait for server to be ready + await self._wait_for_server() + + async def stop(self): + """Stop the server""" + if self.server: + self.server.should_exit = True + if self.server_task: + try: + await asyncio.wait_for(self.server_task, timeout=5.0) + except TimeoutError: + self.server_task.cancel() + try: + await self.server_task + except asyncio.CancelledError: + pass + + async def _wait_for_server(self, timeout: float = 10.0): + """Wait for server to be ready to accept connections""" + start_time = time.time() + while time.time() - start_time < timeout: + try: + async with httpx.AsyncClient() as client: + response = await client.get(f"http://127.0.0.1:{self.port}/healthz") + if response.status_code == 200: + return + except (httpx.ConnectError, httpx.ConnectTimeout): + await asyncio.sleep(0.1) + raise TimeoutError(f"Server did not start within {timeout} seconds") + + +@pytest_asyncio.fixture +async def test_server_runner(): + """Fixture that provides a TestServerRunner factory""" + runners = [] + + def create_runner(app: BaseACPServer, port: int) -> TestServerRunner: + runner = TestServerRunner(app, port) + runners.append(runner) + return runner + + yield create_runner + + # Cleanup all runners + for runner in runners: + await runner.stop() + + +@pytest.fixture +def base_acp_server(): + """Fixture that provides a BaseACPServer instance for sync tests""" + with patch.dict( + "os.environ", {"AGENTEX_BASE_URL": ""} + ): # Disable agent registration + server = BaseACPServer() + return server + + +@pytest_asyncio.fixture +async def async_base_acp_server(): + """Fixture that provides a BaseACPServer instance for async tests""" + with patch.dict( + "os.environ", {"AGENTEX_BASE_URL": ""} + ): # Disable agent registration + server = BaseACPServer.create() + return server + + +@pytest.fixture +def sync_acp_server(): + """Fixture that provides a SyncACP instance for sync tests""" + with patch.dict( + "os.environ", {"AGENTEX_BASE_URL": ""} + ): # Disable agent registration + server = SyncACP() + return server + + +@pytest_asyncio.fixture +async def async_sync_acp_server(): + """Fixture that provides a SyncACP instance for async tests""" + with patch.dict( + "os.environ", {"AGENTEX_BASE_URL": ""} + ): # Disable agent registration + server = await SyncACP.create() + return server + + +@pytest.fixture +def agentic_base_acp_server(): + """Fixture that provides an AgenticBaseACP instance for sync tests""" + with patch.dict( + "os.environ", {"AGENTEX_BASE_URL": ""} + ): # Disable agent registration + server = AgenticBaseACP() + return server + + +@pytest_asyncio.fixture +async def async_agentic_base_acp_server(): + """Fixture that provides an AgenticBaseACP instance for async tests""" + with patch.dict( + "os.environ", {"AGENTEX_BASE_URL": ""} + ): # Disable agent registration + server = await AgenticBaseACP.create() + return server + + +@pytest_asyncio.fixture +async def mock_temporal_acp_server(): + """Fixture that provides a mocked TemporalACP instance""" + with patch.dict( + "os.environ", {"AGENTEX_BASE_URL": ""} + ): # Disable agent registration + with patch( + "agentex.sdk.fastacp.impl.temporal_acp.TemporalClient" + ) as mock_temporal_client: + with patch( + "agentex.sdk.fastacp.impl.temporal_acp.AsyncAgentexClient" + ) as mock_agentex_client: + # Mock the temporal client creation + mock_temporal_client.create.return_value = AsyncMock() + mock_agentex_client.return_value = AsyncMock() + + server = await TemporalACP.create(temporal_address="localhost:7233") + return server + + +class JSONRPCTestClient: + """Test client for making JSON-RPC requests""" + + def __init__(self, base_url: str): + self.base_url = base_url + + async def call_method( + self, method: str, params: dict[str, Any], request_id: str | None = "test-1" + ) -> dict[str, Any]: + """Make a JSON-RPC method call""" + request = JSONRPCRequest(method=method, params=params, id=request_id) + + async with httpx.AsyncClient() as client: + response = await client.post( + f"{self.base_url}/api", + json=request.model_dump(), + headers={"Content-Type": "application/json"}, + ) + return response.json() + + async def send_notification( + self, method: str, params: dict[str, Any] + ) -> dict[str, Any]: + """Send a JSON-RPC notification (no ID)""" + return await self.call_method(method, params, request_id=None) + + async def health_check(self) -> dict[str, Any]: + """Check server health""" + async with httpx.AsyncClient() as client: + response = await client.get(f"{self.base_url}/healthz") + return response.json() + + +@pytest.fixture +def jsonrpc_client_factory(): + """Fixture that provides a JSONRPCTestClient factory""" + + def create_client(base_url: str) -> JSONRPCTestClient: + return JSONRPCTestClient(base_url) + + return create_client + + +# Mock environment variables for testing +@pytest.fixture +def mock_env_vars(): + """Fixture that mocks environment variables""" + env_vars = { + "AGENTEX_BASE_URL": "", # Disable agent registration by default + "AGENT_NAME": "test-agent", + "AGENT_DESCRIPTION": "Test agent description", + "ACP_URL": "http://localhost", + "ACP_PORT": "8000", + "WORKFLOW_NAME": "test-workflow", + "WORKFLOW_TASK_QUEUE": "test-queue", + } + + with patch.dict("os.environ", env_vars): + yield env_vars diff --git a/src/agentex/lib/sdk/fastacp/tests/pytest.ini b/src/agentex/lib/sdk/fastacp/tests/pytest.ini new file mode 100644 index 000000000..c36f46f20 --- /dev/null +++ b/src/agentex/lib/sdk/fastacp/tests/pytest.ini @@ -0,0 +1,10 @@ +[tool:pytest] +asyncio_mode = auto +addopts = -v --tb=short +testpaths = . +python_files = test_*.py +python_classes = Test* +python_functions = test_* +filterwarnings = + ignore::DeprecationWarning + ignore::PytestDeprecationWarning \ No newline at end of file diff --git a/src/agentex/lib/sdk/fastacp/tests/run_tests.py b/src/agentex/lib/sdk/fastacp/tests/run_tests.py new file mode 100644 index 000000000..eb08d9c12 --- /dev/null +++ b/src/agentex/lib/sdk/fastacp/tests/run_tests.py @@ -0,0 +1,227 @@ +#!/usr/bin/env python3 +""" +Test runner for BaseACPServer and implementations. + +This script provides various options for running the test suite: +- Run all tests +- Run specific test categories +- Run with different verbosity levels +- Generate coverage reports +- Run performance tests +""" + +import argparse +import subprocess +import sys +from pathlib import Path + + +def run_command(cmd, description=""): + """Run a command and return the result""" + if description: + print(f"\n{'='*60}") + print(f"Running: {description}") + print(f"Command: {' '.join(cmd)}") + print(f"{'='*60}") + + result = subprocess.run(cmd, capture_output=True, text=True, check=False) + + if result.stdout: + print(result.stdout) + if result.stderr: + print(result.stderr, file=sys.stderr) + + return result.returncode == 0 + + +def main(): + parser = argparse.ArgumentParser(description="Run BaseACPServer tests") + parser.add_argument( + "--category", + choices=["unit", "integration", "implementations", "error", "all"], + default="all", + help="Test category to run", + ) + parser.add_argument( + "--verbose", + "-v", + action="count", + default=0, + help="Increase verbosity (use -v, -vv, or -vvv)", + ) + parser.add_argument("--coverage", action="store_true", help="Run with coverage reporting") + parser.add_argument( + "--parallel", "-n", type=int, help="Run tests in parallel (number of workers)" + ) + parser.add_argument( + "--markers", "-m", help="Run tests with specific markers (e.g., 'not slow')" + ) + parser.add_argument("--failfast", "-x", action="store_true", help="Stop on first failure") + parser.add_argument( + "--lf", + "--last-failed", + action="store_true", + help="Run only tests that failed in the last run", + ) + parser.add_argument( + "--collect-only", action="store_true", help="Only collect tests, don't run them" + ) + + args = parser.parse_args() + + # Base pytest command + cmd = ["python", "-m", "pytest"] + + # Add test files based on category + test_files = { + "unit": ["test_base_acp_server.py", "test_json_rpc_endpoints.py"], + "integration": ["test_server_integration.py"], + "implementations": ["test_implementations.py"], + "error": ["test_error_handling.py"], + "all": [ + "test_base_acp_server.py", + "test_json_rpc_endpoints.py", + "test_server_integration.py", + "test_implementations.py", + "test_error_handling.py", + ], + } + + # Add test files to command + for test_file in test_files[args.category]: + cmd.append(test_file) + + # Add verbosity + if args.verbose: + cmd.append("-" + "v" * min(args.verbose, 3)) + + # Add coverage + if args.coverage: + cmd.extend( + [ + "--cov=agentex.sdk.fastacp", + "--cov-report=html", + "--cov-report=term-missing", + "--cov-branch", + ] + ) + + # Add parallel execution + if args.parallel: + cmd.extend(["-n", str(args.parallel)]) + + # Add markers + if args.markers: + cmd.extend(["-m", args.markers]) + + # Add fail fast + if args.failfast: + cmd.append("-x") + + # Add last failed + if args.lf: + cmd.append("--lf") + + # Add collect only + if args.collect_only: + cmd.append("--collect-only") + + # Add other useful options + cmd.extend( + [ + "--tb=short", # Shorter traceback format + "--strict-markers", # Strict marker checking + "--disable-warnings", # Disable warnings for cleaner output + ] + ) + + # Change to test directory + test_dir = Path(__file__).parent + original_cwd = Path.cwd() + + try: + import os + + os.chdir(test_dir) + + # Run the tests + success = run_command(cmd, f"Running {args.category} tests") + + if success: + print(f"\n✅ All {args.category} tests passed!") + if args.coverage: + print("📊 Coverage report generated in htmlcov/") + else: + print(f"\n❌ Some {args.category} tests failed!") + return 1 + + finally: + os.chdir(original_cwd) + + return 0 + + +def run_quick_tests(): + """Run a quick subset of tests for development""" + cmd = [ + "python", + "-m", + "pytest", + "test_base_acp_server.py::TestBaseACPServerInitialization", + "test_json_rpc_endpoints.py::TestJSONRPCMethodHandling", + "-v", + "--tb=short", + ] + + return run_command(cmd, "Running quick development tests") + + +def run_smoke_tests(): + """Run smoke tests to verify basic functionality""" + cmd = [ + "python", + "-m", + "pytest", + "-m", + "not slow", + "-x", # Stop on first failure + "--tb=line", + "test_base_acp_server.py::TestBaseACPServerInitialization::test_base_acp_server_init", + "test_base_acp_server.py::TestHealthCheckEndpoint::test_health_check_endpoint", + "test_json_rpc_endpoints.py::TestJSONRPCMethodHandling::test_message_received_method_routing", + ] + + return run_command(cmd, "Running smoke tests") + + +def run_performance_tests(): + """Run performance-focused tests""" + cmd = [ + "python", + "-m", + "pytest", + "test_server_integration.py::TestServerPerformance", + "test_error_handling.py::TestServerErrorHandling::test_server_handles_concurrent_errors", + "-v", + "--tb=short", + ] + + return run_command(cmd, "Running performance tests") + + +if __name__ == "__main__": + # Check if specific test type is requested via environment + test_type = ( + sys.argv[1] if len(sys.argv) > 1 and sys.argv[1] in ["quick", "smoke", "perf"] else None + ) + + if test_type == "quick": + success = run_quick_tests() + elif test_type == "smoke": + success = run_smoke_tests() + elif test_type == "perf": + success = run_performance_tests() + else: + success = main() + + sys.exit(0 if success else 1) diff --git a/src/agentex/lib/sdk/fastacp/tests/test_base_acp_server.py b/src/agentex/lib/sdk/fastacp/tests/test_base_acp_server.py new file mode 100644 index 000000000..b0f26a811 --- /dev/null +++ b/src/agentex/lib/sdk/fastacp/tests/test_base_acp_server.py @@ -0,0 +1,450 @@ +import asyncio +from unittest.mock import patch + +import pytest +from fastapi.testclient import TestClient + +from agentex.lib.sdk.fastacp.base.base_acp_server import BaseACPServer +from agentex.lib.types.acp import ( + CancelTaskParams, + RPCMethod, + SendEventParams, +) + + +class TestBaseACPServerInitialization: + """Test BaseACPServer initialization and setup""" + + def test_base_acp_server_init(self): + """Test BaseACPServer initialization sets up routes correctly""" + with patch.dict("os.environ", {"AGENTEX_BASE_URL": ""}): + server = BaseACPServer() + + # Check that FastAPI routes are set up + routes = [route.path for route in server.routes] + assert "/healthz" in routes + assert "/api" in routes + + # Check that handlers dict is initialized + assert hasattr(server, "_handlers") + assert isinstance(server._handlers, dict) + + def test_base_acp_server_create_classmethod(self): + """Test BaseACPServer.create() class method""" + with patch.dict("os.environ", {"AGENTEX_BASE_URL": ""}): + server = BaseACPServer.create() + + assert isinstance(server, BaseACPServer) + assert hasattr(server, "_handlers") + + def test_lifespan_function_setup(self): + """Test that lifespan function is properly configured""" + with patch.dict("os.environ", {"AGENTEX_BASE_URL": ""}): + server = BaseACPServer() + + # Check that lifespan is configured + assert server.router.lifespan_context is not None + + +class TestHealthCheckEndpoint: + """Test health check endpoint functionality""" + + def test_health_check_endpoint(self, base_acp_server): + """Test GET /healthz endpoint returns correct response""" + client = TestClient(base_acp_server) + + response = client.get("/healthz") + + assert response.status_code == 200 + assert response.json() == {"status": "healthy"} + + def test_health_check_content_type(self, base_acp_server): + """Test health check returns JSON content type""" + client = TestClient(base_acp_server) + + response = client.get("/healthz") + + assert response.headers["content-type"] == "application/json" + + +class TestJSONRPCEndpointCore: + """Test core JSON-RPC endpoint functionality""" + + def test_jsonrpc_endpoint_exists(self, base_acp_server): + """Test POST /api endpoint exists""" + client = TestClient(base_acp_server) + + # Send a basic request to check endpoint exists + response = client.post("/api", json={}) + + # Should not return 404 (endpoint exists) + assert response.status_code != 404 + + def test_jsonrpc_malformed_request(self, base_acp_server): + """Test JSON-RPC endpoint handles malformed requests""" + client = TestClient(base_acp_server) + + # Send malformed JSON + response = client.post("/api", json={"invalid": "request"}) + + assert response.status_code == 200 + data = response.json() + assert "error" in data + assert data["jsonrpc"] == "2.0" + + def test_jsonrpc_method_not_found(self, base_acp_server): + """Test JSON-RPC method not found error""" + client = TestClient(base_acp_server) + + request = { + "jsonrpc": "2.0", + "method": "nonexistent/method", + "params": {}, + "id": "test-1", + } + + response = client.post("/api", json=request) + + assert response.status_code == 200 + data = response.json() + assert "error" in data + assert data["error"]["code"] == -32601 # Method not found + assert data["id"] == "test-1" + + def test_jsonrpc_valid_request_structure(self, base_acp_server): + """Test JSON-RPC request parsing with valid structure""" + client = TestClient(base_acp_server) + + # Add a mock handler for testing + async def mock_handler(params): + return {"status": "success"} + + base_acp_server._handlers[RPCMethod.EVENT_SEND] = mock_handler + + request = { + "jsonrpc": "2.0", + "method": "event/send", + "params": { + "task": {"id": "test-task", "agent_id": "test-agent", "status": "RUNNING"}, + "message": { + "type": "text", + "author": "user", + "content": "test message", + }, + }, + "id": "test-1", + } + + response = client.post("/api", json=request) + + assert response.status_code == 200 + data = response.json() + assert data["jsonrpc"] == "2.0" + assert data["id"] == "test-1" + print("DATA", data) + # Should return immediate acknowledgment + assert data["result"]["status"] == "processing" + + +class TestHandlerRegistration: + """Test handler registration and management""" + + def test_on_task_event_send_decorator(self): + """Test on_task_event_send decorator registration""" + with patch.dict("os.environ", {"AGENTEX_BASE_URL": ""}): + server = BaseACPServer() + + @server.on_task_event_send + async def test_handler(params: SendEventParams): + return {"test": "response"} + + # Check handler is registered + assert RPCMethod.EVENT_SEND in server._handlers + assert server._handlers[RPCMethod.EVENT_SEND] is not None + + def test_cancel_task_decorator(self): + """Test cancel_task decorator registration""" + with patch.dict("os.environ", {"AGENTEX_BASE_URL": ""}): + server = BaseACPServer() + + @server.on_task_cancel + async def test_handler(params: CancelTaskParams): + return {"test": "response"} + + # Check handler is registered + assert RPCMethod.TASK_CANCEL in server._handlers + assert server._handlers[RPCMethod.TASK_CANCEL] is not None + + @pytest.mark.asyncio + async def test_handler_wrapper_functionality(self): + """Test that handler wrapper works correctly""" + with patch.dict("os.environ", {"AGENTEX_BASE_URL": ""}): + server = BaseACPServer() + + # Create a test handler + async def test_handler(params): + return {"handler_called": True, "params_received": True} + + # Wrap the handler + wrapped = server._wrap_handler(test_handler) + + # Test the wrapped handler + result = await wrapped({"test": "params"}) + assert result["handler_called"] is True + assert result["params_received"] is True + + +class TestBackgroundProcessing: + """Test background processing functionality""" + + @pytest.mark.asyncio + async def test_notification_processing(self, async_base_acp_server): + """Test notification processing (requests with no ID)""" + # Add a mock handler + handler_called = False + received_params = None + + async def mock_handler(params): + nonlocal handler_called, received_params + handler_called = True + received_params = params + return {"status": "processed"} + + async_base_acp_server._handlers[RPCMethod.EVENT_SEND] = mock_handler + + client = TestClient(async_base_acp_server) + + request = { + "jsonrpc": "2.0", + "method": "event/send", + "params": { + "task": {"id": "test-task", "agent_id": "test-agent", "status": "RUNNING"}, + "message": { + "type": "text", + "author": "user", + "content": "test message", + }, + }, + # No ID = notification + } + + response = client.post("/api", json=request) + + assert response.status_code == 200 + data = response.json() + assert data["id"] is None # Notification response + + # Give background task time to execute + await asyncio.sleep(0.1) + + # Handler should have been called + assert handler_called is True + assert received_params is not None + + @pytest.mark.asyncio + async def test_request_processing_with_id(self, async_base_acp_server): + """Test request processing with ID returns immediate acknowledgment""" + + # Add a mock handler + async def mock_handler(params): + return {"status": "processed"} + + async_base_acp_server._handlers[RPCMethod.TASK_CANCEL] = mock_handler + + client = TestClient(async_base_acp_server) + + request = { + "jsonrpc": "2.0", + "method": "task/cancel", + "params": {"task_id": "test-task-123"}, + "id": "test-request-1", + } + + response = client.post("/api", json=request) + + assert response.status_code == 200 + data = response.json() + assert data["jsonrpc"] == "2.0" + assert data["id"] == "test-request-1" + assert data["result"]["status"] == "processing" # Immediate acknowledgment + + +class TestSynchronousRPCMethods: + """Test synchronous RPC methods that return results immediately""" + + def test_send_message_synchronous_response(self, base_acp_server): + """Test that MESSAGE_SEND method returns handler result synchronously""" + client = TestClient(base_acp_server) + + # Add a mock handler that returns a specific result + async def mock_execute_handler(params): + return { + "task_id": params.task.id, + "message_content": params.message.content, + "status": "executed_synchronously", + "custom_data": {"processed": True, "timestamp": "2024-01-01T12:00:00Z"}, + } + + base_acp_server._handlers[RPCMethod.MESSAGE_SEND] = mock_execute_handler + + request = { + "jsonrpc": "2.0", + "method": "message/send", + "params": { + "task": {"id": "test-task-123", "agent_id": "test-agent", "status": "RUNNING"}, + "message": { + "type": "text", + "author": "user", + "content": "Execute this task please", + }, + }, + "id": "test-execute-1", + } + + response = client.post("/api", json=request) + + assert response.status_code == 200 + data = response.json() + + # Verify JSON-RPC structure + assert data["jsonrpc"] == "2.0" + assert data["id"] == "test-execute-1" + assert "result" in data + assert data.get("error") is None + + # Verify the handler's result is returned directly (not "processing" status) + result = data["result"] + assert result["task_id"] == "test-task-123" + assert result["message_content"] == "Execute this task please" + assert result["status"] == "executed_synchronously" + assert result["custom_data"]["processed"] is True + assert result["custom_data"]["timestamp"] == "2024-01-01T12:00:00Z" + + # Verify it's NOT the async "processing" response + assert result.get("status") != "processing" + + def test_create_task_async_response(self, base_acp_server): + """Test that TASK_CREATE method returns processing status (async behavior)""" + client = TestClient(base_acp_server) + + # Add a mock handler for init task + async def mock_init_handler(params): + return { + "task_id": params.task.id, + "status": "initialized", + } + + base_acp_server._handlers[RPCMethod.TASK_CREATE] = mock_init_handler + + request = { + "jsonrpc": "2.0", + "method": "task/create", + "params": { + "task": {"id": "test-task-456", "agent_id": "test-agent", "status": "RUNNING"} + }, + "id": "test-init-1", + } + + response = client.post("/api", json=request) + + assert response.status_code == 200 + data = response.json() + + # Verify JSON-RPC structure + assert data["jsonrpc"] == "2.0" + assert data["id"] == "test-init-1" + assert "result" in data + assert data.get("error") is None + + # Verify it returns async "processing" status (not the handler's result) + result = data["result"] + assert result["status"] == "processing" + + # Verify it's NOT the handler's actual result + assert result.get("status") != "initialized" + + +class TestErrorHandling: + """Test error handling scenarios""" + + def test_invalid_json_request(self, base_acp_server): + """Test handling of invalid JSON in request body""" + client = TestClient(base_acp_server) + + # Send invalid JSON + response = client.post( + "/api", content="invalid json", headers={"Content-Type": "application/json"} + ) + + assert response.status_code == 200 + data = response.json() + assert "error" in data + assert data["jsonrpc"] == "2.0" + + def test_missing_required_fields(self, base_acp_server): + """Test handling of requests missing required JSON-RPC fields""" + client = TestClient(base_acp_server) + + # Missing method field + request = {"jsonrpc": "2.0", "params": {}, "id": "test-1"} + + response = client.post("/api", json=request) + + assert response.status_code == 200 + data = response.json() + assert "error" in data + + def test_invalid_method_enum(self, base_acp_server): + """Test handling of invalid method names""" + client = TestClient(base_acp_server) + + request = { + "jsonrpc": "2.0", + "method": "invalid/method/name", + "params": {}, + "id": "test-1", + } + + response = client.post("/api", json=request) + + assert response.status_code == 200 + data = response.json() + assert "error" in data + assert data["error"]["code"] == -32601 # Method not found + + @pytest.mark.asyncio + async def test_handler_exception_handling(self, async_base_acp_server): + """Test that handler exceptions are properly handled""" + + # Add a handler that raises an exception + async def failing_handler(params): + raise ValueError("Test exception") + + async_base_acp_server._handlers[RPCMethod.EVENT_SEND] = failing_handler + + client = TestClient(async_base_acp_server) + + request = { + "jsonrpc": "2.0", + "method": "event/send", + "params": { + "task": {"id": "test-task", "agent_id": "test-agent", "status": "RUNNING"}, + "message": { + "type": "text", + "author": "user", + "content": "test message", + }, + }, + "id": "test-1", + } + + response = client.post("/api", json=request) + + # Should still return immediate acknowledgment + assert response.status_code == 200 + data = response.json() + assert data["result"]["status"] == "processing" + + # Give background task time to fail + await asyncio.sleep(0.1) + # Exception should be logged but not crash the server diff --git a/src/agentex/lib/sdk/fastacp/tests/test_fastacp_factory.py b/src/agentex/lib/sdk/fastacp/tests/test_fastacp_factory.py new file mode 100644 index 000000000..62bdc1256 --- /dev/null +++ b/src/agentex/lib/sdk/fastacp/tests/test_fastacp_factory.py @@ -0,0 +1,344 @@ +import asyncio +from unittest.mock import AsyncMock, MagicMock, patch + +import pytest + +from agentex.lib.sdk.fastacp.base.base_acp_server import BaseACPServer +from agentex.lib.sdk.fastacp.fastacp import FastACP +from agentex.lib.sdk.fastacp.impl.agentic_base_acp import AgenticBaseACP +from agentex.lib.sdk.fastacp.impl.sync_acp import SyncACP +from agentex.lib.sdk.fastacp.impl.temporal_acp import TemporalACP +from agentex.lib.types.fastacp import ( + AgenticACPConfig, + AgenticBaseACPConfig, + SyncACPConfig, + TemporalACPConfig, +) + + +class TestFastACPInitialization: + """Test FastACP basic functionality""" + + def test_factory_class_exists(self): + """Test that FastACP class exists and is properly structured""" + assert hasattr(FastACP, "create") + assert hasattr(FastACP, "create_sync_acp") + assert hasattr(FastACP, "create_agentic_acp") + + +class TestSyncACPCreation: + """Test SyncACP creation through factory""" + + @pytest.mark.asyncio + async def test_create_sync_acp_direct_method(self): + """Test creating SyncACP using direct method""" + with patch.dict("os.environ", {"AGENTEX_BASE_URL": ""}): + sync_acp = FastACP.create_sync_acp() + + assert isinstance(sync_acp, SyncACP) + assert isinstance(sync_acp, BaseACPServer) + assert hasattr(sync_acp, "_handlers") + + @pytest.mark.asyncio + async def test_create_sync_acp_with_config(self): + """Test creating SyncACP with configuration""" + with patch.dict("os.environ", {"AGENTEX_BASE_URL": ""}): + config = SyncACPConfig() + sync_acp = FastACP.create_sync_acp(config=config) + + assert isinstance(sync_acp, SyncACP) + + @pytest.mark.asyncio + async def test_create_sync_acp_via_generic_create(self): + """Test creating SyncACP via generic create method""" + with patch.dict("os.environ", {"AGENTEX_BASE_URL": ""}): + sync_acp = FastACP.create("sync") + + assert isinstance(sync_acp, SyncACP) + + @pytest.mark.asyncio + async def test_create_sync_acp_via_generic_create_with_config(self): + """Test creating SyncACP via generic create method with config""" + with patch.dict("os.environ", {"AGENTEX_BASE_URL": ""}): + config = SyncACPConfig() + sync_acp = FastACP.create("sync", config=config) + + assert isinstance(sync_acp, SyncACP) + + @pytest.mark.asyncio + async def test_create_sync_acp_with_enum(self): + """Test creating SyncACP using ACPType enum""" + with patch.dict("os.environ", {"AGENTEX_BASE_URL": ""}): + sync_acp = FastACP.create("sync") + + assert isinstance(sync_acp, SyncACP) + + @pytest.mark.asyncio + async def test_create_sync_acp_with_kwargs(self): + """Test creating SyncACP with additional kwargs""" + with patch.dict("os.environ", {"AGENTEX_BASE_URL": ""}): + sync_acp = FastACP.create_sync_acp(custom_param="test_value") + + assert isinstance(sync_acp, SyncACP) + + +class TestAgenticBaseACPCreation: + """Test AgenticBaseACP creation through factory""" + + @pytest.mark.asyncio + async def test_create_agentic_base_acp_direct_method(self): + """Test creating AgenticBaseACP using direct method""" + with patch.dict("os.environ", {"AGENTEX_BASE_URL": ""}): + config = AgenticACPConfig(type="base") + agentic_acp = FastACP.create_agentic_acp(config=config) + + assert isinstance(agentic_acp, AgenticBaseACP) + assert isinstance(agentic_acp, BaseACPServer) + + @pytest.mark.asyncio + async def test_create_agentic_base_acp_with_specific_config(self): + """Test creating AgenticBaseACP with AgenticBaseACPConfig""" + with patch.dict("os.environ", {"AGENTEX_BASE_URL": ""}): + config = AgenticBaseACPConfig(type="base") + agentic_acp = FastACP.create_agentic_acp(config=config) + + assert isinstance(agentic_acp, AgenticBaseACP) + + @pytest.mark.asyncio + async def test_create_agentic_base_acp_via_generic_create(self): + """Test creating AgenticBaseACP via generic create method""" + with patch.dict("os.environ", {"AGENTEX_BASE_URL": ""}): + config = AgenticACPConfig(type="base") + agentic_acp = FastACP.create("agentic", config=config) + + assert isinstance(agentic_acp, AgenticBaseACP) + + @pytest.mark.asyncio + async def test_create_agentic_base_acp_with_enum(self): + """Test creating AgenticBaseACP using ACPType enum""" + with patch.dict("os.environ", {"AGENTEX_BASE_URL": ""}): + config = AgenticACPConfig(type="base") + agentic_acp = FastACP.create("agentic", config=config) + + assert isinstance(agentic_acp, AgenticBaseACP) + + +class TestAgenticTemporalACPCreation: + """Test AgenticTemporalACP (TemporalACP) creation through factory""" + + @pytest.mark.asyncio + async def test_create_temporal_acp_direct_method(self): + """Test creating TemporalACP using direct method""" + with patch.dict("os.environ", {"AGENTEX_BASE_URL": ""}): + config = AgenticACPConfig(type="temporal") + + # Mock the TemporalACP.create method since it requires temporal dependencies + with patch.object(TemporalACP, "create", new_callable=AsyncMock) as mock_create: + mock_temporal_instance = MagicMock(spec=TemporalACP) + mock_create.return_value = mock_temporal_instance + + temporal_acp = FastACP.create_agentic_acp(config=config) + + assert temporal_acp == mock_temporal_instance + mock_create.assert_called_once() + + @pytest.mark.asyncio + async def test_create_temporal_acp_with_temporal_config(self): + """Test creating TemporalACP with TemporalACPConfig""" + with patch.dict("os.environ", {"AGENTEX_BASE_URL": ""}): + config = TemporalACPConfig(type="temporal", temporal_address="localhost:7233") + + with patch.object(TemporalACP, "create", new_callable=AsyncMock) as mock_create: + mock_temporal_instance = MagicMock(spec=TemporalACP) + mock_create.return_value = mock_temporal_instance + + temporal_acp = FastACP.create_agentic_acp(config=config) + + assert temporal_acp == mock_temporal_instance + # Verify temporal_address was passed + mock_create.assert_called_once_with(temporal_address="localhost:7233") + + @pytest.mark.asyncio + async def test_create_temporal_acp_via_generic_create(self): + """Test creating TemporalACP via generic create method""" + with patch.dict("os.environ", {"AGENTEX_BASE_URL": ""}): + config = AgenticACPConfig(type="temporal") + + with patch.object(TemporalACP, "create", new_callable=AsyncMock) as mock_create: + mock_temporal_instance = MagicMock(spec=TemporalACP) + mock_create.return_value = mock_temporal_instance + + temporal_acp = FastACP.create("agentic", config=config) + + assert temporal_acp == mock_temporal_instance + + @pytest.mark.asyncio + async def test_create_temporal_acp_with_custom_address(self): + """Test creating TemporalACP with custom temporal address""" + with patch.dict("os.environ", {"AGENTEX_BASE_URL": ""}): + config = TemporalACPConfig(type="temporal", temporal_address="custom-temporal:9999") + + with patch.object(TemporalACP, "create", new_callable=AsyncMock) as mock_create: + mock_temporal_instance = MagicMock(spec=TemporalACP) + mock_create.return_value = mock_temporal_instance + + FastACP.create_agentic_acp(config=config) + + mock_create.assert_called_once_with(temporal_address="custom-temporal:9999") + + +class TestConfigurationValidation: + """Test configuration validation and error handling""" + + @pytest.mark.asyncio + async def test_agentic_requires_config(self): + """Test that agentic ACP creation requires configuration""" + with patch.dict("os.environ", {"AGENTEX_BASE_URL": ""}): + with pytest.raises(ValueError, match="AgenticACPConfig is required"): + FastACP.create("agentic") + + @pytest.mark.asyncio + async def test_agentic_requires_correct_config_type(self): + """Test that agentic ACP creation requires AgenticACPConfig type""" + with patch.dict("os.environ", {"AGENTEX_BASE_URL": ""}): + sync_config = SyncACPConfig() + + with pytest.raises(ValueError, match="AgenticACPConfig is required"): + FastACP.create("agentic", config=sync_config) + + @pytest.mark.asyncio + async def test_agentic_direct_method_requires_config(self): + """Test that direct agentic method requires configuration""" + with patch.dict("os.environ", {"AGENTEX_BASE_URL": ""}): + # This should raise TypeError since config is required parameter + with pytest.raises(TypeError): + FastACP.create_agentic_acp() + + def test_invalid_acp_type_string(self): + """Test that invalid ACP type string raises ValueError""" + with patch.dict("os.environ", {"AGENTEX_BASE_URL": ""}): + with pytest.raises(ValueError): + asyncio.run(FastACP.create("invalid_type")) + + def test_invalid_agentic_type_in_config(self): + """Test that invalid agentic type in config raises ValueError""" + with patch.dict("os.environ", {"AGENTEX_BASE_URL": ""}): + # This should raise ValueError during config creation + with pytest.raises(ValueError): + AgenticACPConfig(type="invalid_agentic_type") + + @pytest.mark.asyncio + async def test_unsupported_acp_type_enum(self): + """Test handling of unsupported ACP type enum values""" + with patch.dict("os.environ", {"AGENTEX_BASE_URL": ""}): + # Create a mock enum value that's not supported + with patch("agentex.sdk.fastacp.fastacp.ACPType") as mock_enum: + mock_enum.SYNC = "sync" + mock_enum.AGENTIC = "agentic" + unsupported_type = "unsupported" + + with pytest.raises(ValueError, match="Unsupported ACP type"): + FastACP.create(unsupported_type) + + +class TestErrorHandling: + """Test error handling scenarios""" + + @pytest.mark.asyncio + async def test_sync_acp_creation_failure(self): + """Test handling of SyncACP creation failure""" + with patch.dict("os.environ", {"AGENTEX_BASE_URL": ""}): + with patch.object(SyncACP, "create", side_effect=Exception("Creation failed")): + with pytest.raises(Exception, match="Creation failed"): + FastACP.create_sync_acp() + + @pytest.mark.asyncio + async def test_agentic_acp_creation_failure(self): + """Test handling of AgenticACP creation failure""" + with patch.dict("os.environ", {"AGENTEX_BASE_URL": ""}): + config = AgenticACPConfig(type="base") + + with patch.object(AgenticBaseACP, "create", side_effect=Exception("Creation failed")): + with pytest.raises(Exception, match="Creation failed"): + FastACP.create_agentic_acp(config=config) + + @pytest.mark.asyncio + async def test_temporal_acp_creation_failure(self): + """Test handling of TemporalACP creation failure""" + with patch.dict("os.environ", {"AGENTEX_BASE_URL": ""}): + config = AgenticACPConfig(type="temporal") + + with patch.object( + TemporalACP, "create", side_effect=Exception("Temporal connection failed") + ): + with pytest.raises(Exception, match="Temporal connection failed"): + FastACP.create_agentic_acp(config=config) + + +class TestIntegrationScenarios: + """Test integration scenarios and real-world usage patterns""" + + @pytest.mark.asyncio + async def test_create_all_acp_types(self): + """Test creating all supported ACP types""" + with patch.dict("os.environ", {"AGENTEX_BASE_URL": ""}): + # Create SyncACP + sync_acp = FastACP.create("sync") + assert isinstance(sync_acp, SyncACP) + + # Create AgenticBaseACP + base_config = AgenticACPConfig(type="base") + agentic_base = FastACP.create("agentic", config=base_config) + assert isinstance(agentic_base, AgenticBaseACP) + + # Create TemporalACP (mocked) + temporal_config = AgenticACPConfig(type="temporal") + with patch.object(TemporalACP, "create", new_callable=AsyncMock) as mock_create: + mock_temporal_instance = MagicMock(spec=TemporalACP) + mock_create.return_value = mock_temporal_instance + + temporal_acp = FastACP.create("agentic", config=temporal_config) + assert temporal_acp == mock_temporal_instance + + @pytest.mark.asyncio + async def test_configuration_driven_creation(self): + """Test configuration-driven ACP creation""" + with patch.dict("os.environ", {"AGENTEX_BASE_URL": ""}): + configs = [ + ("sync", None), + ("agentic", AgenticACPConfig(type="base")), + ("agentic", TemporalACPConfig(type="temporal", temporal_address="localhost:7233")), + ] + + created_acps = [] + + for acp_type, config in configs: + if acp_type == "agentic" and config.type == "temporal": + # Mock temporal creation + with patch.object(TemporalACP, "create", new_callable=AsyncMock) as mock_create: + mock_temporal_instance = MagicMock(spec=TemporalACP) + mock_create.return_value = mock_temporal_instance + + acp = FastACP.create(acp_type, config=config) + created_acps.append(acp) + else: + acp = FastACP.create(acp_type, config=config) + created_acps.append(acp) + + assert len(created_acps) == 3 + assert isinstance(created_acps[0], SyncACP) + assert isinstance(created_acps[1], AgenticBaseACP) + # Third one is mocked TemporalACP + + @pytest.mark.asyncio + async def test_factory_with_custom_kwargs(self): + """Test factory methods with custom keyword arguments""" + with patch.dict("os.environ", {"AGENTEX_BASE_URL": ""}): + # Test sync with kwargs + sync_acp = FastACP.create_sync_acp(custom_param="test") + assert isinstance(sync_acp, SyncACP) + + # Test agentic base with kwargs + config = AgenticACPConfig(type="base") + agentic_acp = FastACP.create_agentic_acp(config=config, custom_param="test") + assert isinstance(agentic_acp, AgenticBaseACP) diff --git a/src/agentex/lib/sdk/fastacp/tests/test_integration.py b/src/agentex/lib/sdk/fastacp/tests/test_integration.py new file mode 100644 index 000000000..dad390034 --- /dev/null +++ b/src/agentex/lib/sdk/fastacp/tests/test_integration.py @@ -0,0 +1,477 @@ +import asyncio +from unittest.mock import AsyncMock, MagicMock, patch + +import httpx +import pytest + +from agentex.lib.sdk.fastacp.impl.agentic_base_acp import AgenticBaseACP +from agentex.lib.sdk.fastacp.impl.sync_acp import SyncACP +from agentex.lib.sdk.fastacp.impl.temporal_acp import TemporalACP +from agentex.lib.types.acp import ( + CancelTaskParams, + CreateTaskParams, + RPCMethod, + SendEventParams, +) + + +class TestImplementationBehavior: + """Test specific behavior differences between ACP implementations""" + + @pytest.mark.asyncio() + async def test_sync_acp_default_handlers(self): + """Test SyncACP has expected default handlers""" + with patch.dict("os.environ", {"AGENTEX_BASE_URL": ""}): + sync_acp = SyncACP.create() + + # Should have send_message_message handler by default + assert RPCMethod.MESSAGE_SEND in sync_acp._handlers + + @pytest.mark.asyncio() + async def test_agentic_acp_default_handlers(self): + """Test AgenticBaseACP has expected default handlers""" + with patch.dict("os.environ", {"AGENTEX_BASE_URL": ""}): + agentic_acp = AgenticBaseACP.create() + + # Should have create, message, and cancel handlers by default + assert RPCMethod.TASK_CREATE in agentic_acp._handlers + assert RPCMethod.EVENT_SEND in agentic_acp._handlers + assert RPCMethod.TASK_CANCEL in agentic_acp._handlers + + @pytest.mark.asyncio() + async def test_temporal_acp_creation_with_mocked_client(self): + """Test TemporalACP creation with mocked temporal client""" + with patch.dict("os.environ", {"AGENTEX_BASE_URL": ""}): + with patch.object(TemporalACP, "create", new_callable=AsyncMock) as mock_create: + mock_temporal_instance = MagicMock(spec=TemporalACP) + mock_temporal_instance._handlers = {} + mock_temporal_instance.temporal_client = MagicMock() + mock_create.return_value = mock_temporal_instance + + temporal_acp = await TemporalACP.create() + + assert temporal_acp == mock_temporal_instance + assert hasattr(temporal_acp, "temporal_client") + + +class TestRealWorldScenarios: + """Test real-world usage scenarios and integration""" + + @pytest.mark.asyncio() + async def test_message_handling_workflow(self, sync_acp, free_port, test_server_runner): + """Test complete message handling workflow""" + messages_received = [] + + @sync_acp.on_task_event_send + async def message_handler(params: SendEventParams): + messages_received.append( + { + "task_id": params.task.id, + "message_content": params.message.content, + "author": params.message.author, + } + ) + return {"processed": True} + + runner = test_server_runner(sync_acp, free_port) + await runner.start() + + # Send multiple messages + async with httpx.AsyncClient() as client: + for i in range(3): + request_data = { + "jsonrpc": "2.0", + "method": "event/send", + "params": { + "task": { + "id": f"workflow-task-{i}", + "agent_id": "workflow-agent", + "status": "RUNNING", + }, + "message": { + "type": "text", + "author": "user", + "content": f"Workflow message {i}", + }, + }, + "id": f"workflow-{i}", + } + + response = await client.post(f"http://127.0.0.1:{free_port}/api", json=request_data) + assert response.status_code == 200 + + # Give background tasks time to process + await asyncio.sleep(0.2) + + # Verify all messages were processed + assert len(messages_received) == 3 + for i, msg in enumerate(messages_received): + assert msg["task_id"] == f"workflow-task-{i}" + assert msg["message_content"] == f"Workflow message {i}" + assert msg["author"] == "user" + + await runner.stop() + + @pytest.mark.asyncio() + async def test_task_lifecycle_management(self, agentic_base_acp, free_port, test_server_runner): + """Test complete task lifecycle: create -> message -> cancel""" + task_events = [] + + @agentic_base_acp.on_task_create + async def create_handler(params: CreateTaskParams): + task_events.append(("created", params.task.id)) + + @agentic_base_acp.on_task_event_send + async def message_handler(params: SendEventParams): + task_events.append(("message", params.task.id)) + + @agentic_base_acp.on_task_cancel + async def cancel_handler(params: CancelTaskParams): + task_events.append(("cancelled", params.task_id)) + + runner = test_server_runner(agentic_base_acp, free_port) + await runner.start() + + async with httpx.AsyncClient() as client: + # Create task + create_request = { + "jsonrpc": "2.0", + "method": "task/create", + "params": { + "task": { + "id": "lifecycle-task", + "agent_id": "lifecycle-agent", + "status": "RUNNING", + } + }, + "id": "create-1", + } + + response = await client.post(f"http://127.0.0.1:{free_port}/api", json=create_request) + assert response.status_code == 200 + + # Send message + message_request = { + "jsonrpc": "2.0", + "method": "event/send", + "params": { + "task": { + "id": "lifecycle-task", + "agent_id": "lifecycle-agent", + "status": "RUNNING", + }, + "message": { + "type": "text", + "author": "user", + "content": "Lifecycle test message", + }, + }, + "id": "message-1", + } + + response = await client.post(f"http://127.0.0.1:{free_port}/api", json=message_request) + assert response.status_code == 200 + + # Cancel task + cancel_request = { + "jsonrpc": "2.0", + "method": "task/cancel", + "params": {"task_id": "lifecycle-task"}, + "id": "cancel-1", + } + + response = await client.post(f"http://127.0.0.1:{free_port}/api", json=cancel_request) + assert response.status_code == 200 + + # Give background tasks time to process + await asyncio.sleep(0.2) + + # Verify task lifecycle events + assert len(task_events) == 3 + assert task_events[0] == ("created", "lifecycle-task") + assert task_events[1] == ("message", "lifecycle-task") + assert task_events[2] == ("cancelled", "lifecycle-task") + + await runner.stop() + + +class TestErrorRecovery: + """Test error handling and recovery scenarios""" + + @pytest.mark.asyncio() + async def test_server_resilience_to_handler_failures( + self, sync_acp, free_port, test_server_runner + ): + """Test server continues working after handler failures""" + failure_count = 0 + success_count = 0 + + @sync_acp.on_task_event_send + async def unreliable_handler(params: SendEventParams): + nonlocal failure_count, success_count + if "fail" in params.message.content: + failure_count += 1 + raise RuntimeError("Simulated handler failure") + else: + success_count += 1 + return {"success": True} + + runner = test_server_runner(sync_acp, free_port) + await runner.start() + + async with httpx.AsyncClient() as client: + # Send failing request + fail_request = { + "jsonrpc": "2.0", + "method": "event/send", + "params": { + "task": {"id": "fail-task", "agent_id": "test-agent", "status": "RUNNING"}, + "message": {"type": "text", "author": "user", "content": "This should fail"}, + }, + "id": "fail-1", + } + + response = await client.post(f"http://127.0.0.1:{free_port}/api", json=fail_request) + assert response.status_code == 200 # Server should still respond + + # Send successful request after failure + success_request = { + "jsonrpc": "2.0", + "method": "event/send", + "params": { + "task": {"id": "success-task", "agent_id": "test-agent", "status": "RUNNING"}, + "message": {"type": "text", "author": "user", "content": "This should succeed"}, + }, + "id": "success-1", + } + + response = await client.post(f"http://127.0.0.1:{free_port}/api", json=success_request) + assert response.status_code == 200 + + # Verify server is still healthy + health_response = await client.get(f"http://127.0.0.1:{free_port}/healthz") + assert health_response.status_code == 200 + + # Give background tasks time to process + await asyncio.sleep(0.2) + + assert failure_count == 1 + assert success_count == 1 + + await runner.stop() + + @pytest.mark.asyncio() + async def test_concurrent_request_handling(self, sync_acp, free_port, test_server_runner): + """Test handling multiple concurrent requests""" + processed_requests = [] + + @sync_acp.on_task_event_send + async def concurrent_handler(params: SendEventParams): + # Simulate some processing time + await asyncio.sleep(0.05) + processed_requests.append(params.task.id) + return {"processed": params.task.id} + + runner = test_server_runner(sync_acp, free_port) + await runner.start() + + # Send multiple concurrent requests + async def send_request(client, task_id): + request_data = { + "jsonrpc": "2.0", + "method": "event/send", + "params": { + "task": {"id": task_id, "agent_id": "concurrent-agent", "status": "RUNNING"}, + "message": { + "type": "text", + "author": "user", + "content": f"Concurrent message for {task_id}", + }, + }, + "id": f"concurrent-{task_id}", + } + + return await client.post(f"http://127.0.0.1:{free_port}/api", json=request_data) + + async with httpx.AsyncClient() as client: + # Send 5 concurrent requests + tasks = [send_request(client, f"task-{i}") for i in range(5)] + responses = await asyncio.gather(*tasks) + + # All should return immediate acknowledgment + for response in responses: + assert response.status_code == 200 + data = response.json() + assert data["result"]["status"] == "processing" + + # Give background tasks time to complete + await asyncio.sleep(0.3) + + # All requests should have been processed + assert len(processed_requests) == 5 + assert set(processed_requests) == {f"task-{i}" for i in range(5)} + + await runner.stop() + + +class TestSpecialCases: + """Test edge cases and special scenarios""" + + @pytest.mark.asyncio() + async def test_notification_vs_request_behavior(self, sync_acp, free_port, test_server_runner): + """Test difference between notifications (no ID) and requests (with ID)""" + notifications_received = 0 + requests_received = 0 + + @sync_acp.on_task_event_send + async def tracking_handler(params: SendEventParams): + nonlocal notifications_received, requests_received + if "notification" in params.message.content: + notifications_received += 1 + else: + requests_received += 1 + return {"handled": True} + + runner = test_server_runner(sync_acp, free_port) + await runner.start() + + async with httpx.AsyncClient() as client: + # Send notification (no ID) + notification_data = { + "jsonrpc": "2.0", + "method": "event/send", + "params": { + "task": { + "id": "notification-task", + "agent_id": "test-agent", + "status": "RUNNING", + }, + "message": { + "type": "text", + "author": "user", + "content": "This is a notification", + }, + }, + # Note: no "id" field + } + + notification_response = await client.post( + f"http://127.0.0.1:{free_port}/api", json=notification_data + ) + assert notification_response.status_code == 200 + notification_result = notification_response.json() + assert notification_result["id"] is None + + # Send regular request (with ID) + request_data = { + "jsonrpc": "2.0", + "method": "event/send", + "params": { + "task": {"id": "request-task", "agent_id": "test-agent", "status": "RUNNING"}, + "message": {"type": "text", "author": "user", "content": "This is a request"}, + }, + "id": "request-1", + } + + request_response = await client.post( + f"http://127.0.0.1:{free_port}/api", json=request_data + ) + assert request_response.status_code == 200 + request_result = request_response.json() + assert request_result["id"] == "request-1" + assert request_result["result"]["status"] == "processing" + + # Give background tasks time to process + await asyncio.sleep(0.1) + + assert notifications_received == 1 + assert requests_received == 1 + + await runner.stop() + + @pytest.mark.asyncio() + async def test_unicode_message_handling(self, sync_acp, free_port, test_server_runner): + """Test handling of unicode characters in messages""" + received_message = None + + @sync_acp.on_task_event_send + async def unicode_handler(params: SendEventParams): + nonlocal received_message + received_message = params.message.content + return {"unicode_handled": True} + + runner = test_server_runner(sync_acp, free_port) + await runner.start() + + unicode_text = "Hello 世界 🌍 émojis 🚀 and special chars: \n\t\r" + + async with httpx.AsyncClient() as client: + request_data = { + "jsonrpc": "2.0", + "method": "event/send", + "params": { + "task": { + "id": "unicode-task", + "agent_id": "unicode-agent", + "status": "RUNNING", + }, + "message": {"type": "text", "author": "user", "content": unicode_text}, + }, + "id": "unicode-test", + } + + response = await client.post(f"http://127.0.0.1:{free_port}/api", json=request_data) + + assert response.status_code == 200 + + # Give background task time to process + await asyncio.sleep(0.1) + + assert received_message == unicode_text + + await runner.stop() + + +class TestImplementationIsolation: + """Test that different implementations don't interfere with each other""" + + @pytest.mark.asyncio() + async def test_handler_isolation_between_implementations(self): + """Test handlers registered on one implementation don't affect others""" + with patch.dict("os.environ", {"AGENTEX_BASE_URL": ""}): + sync_acp = SyncACP.create() + agentic_acp = AgenticBaseACP.create() + + sync_handled = False + agentic_handled = False + + @sync_acp.on_task_event_send + async def sync_handler(params: SendEventParams): + nonlocal sync_handled + sync_handled = True + return {"sync": True} + + @agentic_acp.on_task_event_send + async def agentic_handler(params: SendEventParams): + nonlocal agentic_handled + agentic_handled = True + return {"agentic": True} + + # Create test parameters + message_params = SendEventParams( + task={"id": "isolation-test-task", "agent_id": "test-agent", "status": "RUNNING"}, + message={"type": "text", "author": "user", "content": "Isolation test"}, + ) + + # Execute sync handler + sync_result = await sync_acp._handlers[RPCMethod.EVENT_SEND](message_params) + assert sync_handled is True + assert agentic_handled is False + assert sync_result == {"sync": True} + + # Reset and execute agentic handler + sync_handled = False + agentic_result = await agentic_acp._handlers[RPCMethod.EVENT_SEND](message_params) + assert sync_handled is False + assert agentic_handled is True + assert agentic_result == {"agentic": True} diff --git a/src/agentex/lib/sdk/state_machine/__init__.py b/src/agentex/lib/sdk/state_machine/__init__.py new file mode 100644 index 000000000..9f247d547 --- /dev/null +++ b/src/agentex/lib/sdk/state_machine/__init__.py @@ -0,0 +1,6 @@ +from .noop_workflow import NoOpWorkflow +from .state import State +from .state_machine import StateMachine +from .state_workflow import StateWorkflow + +__all__ = ["StateMachine", "StateWorkflow", "State", "NoOpWorkflow"] diff --git a/src/agentex/lib/sdk/state_machine/noop_workflow.py b/src/agentex/lib/sdk/state_machine/noop_workflow.py new file mode 100644 index 000000000..aa6fe59a2 --- /dev/null +++ b/src/agentex/lib/sdk/state_machine/noop_workflow.py @@ -0,0 +1,21 @@ +from pydantic import BaseModel + +from agentex.lib.sdk.state_machine.state_workflow import StateWorkflow +from agentex.lib.utils.logging import make_logger +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from agentex.lib.sdk.state_machine import StateMachine + +logger = make_logger(__name__) + + +class NoOpWorkflow(StateWorkflow): + """ + Workflow that does nothing. This is commonly used as a terminal state. + """ + + async def execute( + self, state_machine: "StateMachine", state_machine_data: BaseModel | None = None + ) -> str: + pass diff --git a/src/agentex/lib/sdk/state_machine/state.py b/src/agentex/lib/sdk/state_machine/state.py new file mode 100644 index 000000000..6ddddc0c0 --- /dev/null +++ b/src/agentex/lib/sdk/state_machine/state.py @@ -0,0 +1,10 @@ +from pydantic import BaseModel, ConfigDict + +from agentex.lib.sdk.state_machine.state_workflow import StateWorkflow + + +class State(BaseModel): + model_config = ConfigDict(arbitrary_types_allowed=True) + + name: str + workflow: StateWorkflow diff --git a/src/agentex/lib/sdk/state_machine/state_machine.py b/src/agentex/lib/sdk/state_machine/state_machine.py new file mode 100644 index 000000000..7ca54b7bc --- /dev/null +++ b/src/agentex/lib/sdk/state_machine/state_machine.py @@ -0,0 +1,189 @@ +from abc import ABC, abstractmethod +from typing import Any, Generic, TypeVar + +from agentex.lib import adk +from agentex.lib.sdk.state_machine.state import State +from agentex.lib.sdk.state_machine.state_workflow import StateWorkflow +from agentex.lib.utils.model_utils import BaseModel + +T = TypeVar("T", bound=BaseModel) + + +class StateMachine(ABC, Generic[T]): + def __init__( + self, + initial_state: str, + states: list[State], + task_id: str | None = None, + state_machine_data: T | None = None, + trace_transitions: bool = False, + ): + self._task_id = task_id + self._state_map: dict[str, State] = {state.name: state for state in states} + self.state_machine_data = state_machine_data + self._initial_state = initial_state + self._trace_transitions = trace_transitions + + # Validate that initial state exists + if initial_state not in self._state_map: + raise ValueError(f"Initial state '{initial_state}' not found in states") + self._current_state = self._state_map[initial_state] + + def set_task_id(self, task_id: str): + self._task_id = task_id + + def get_current_state(self) -> str: + return self._current_state.name + + def get_current_workflow(self) -> StateWorkflow: + """ + Get the workflow of the current state. + + Returns: + The workflow of the current state + + Raises: + ValueError: If the current state is not found in the state map + """ + current_state = self._state_map.get(self.get_current_state()) + if not current_state: + raise ValueError(f"State {self.get_current_state()} not found") + return current_state.workflow + + async def transition(self, target_state_name: str): + if not self._state_map.get(target_state_name): + raise ValueError(f"State {target_state_name} not found") + self._current_state = self._state_map[target_state_name] + + def get_state_machine_data(self) -> T: + return self.state_machine_data + + @abstractmethod + async def terminal_condition(self) -> bool: + pass + + # Overwrite this if you want to add more logic to the state machine + async def run(self): + while not await self.terminal_condition(): + await self.step() + + async def step(self) -> str: + current_state_name = self.get_current_state() + current_state = self._state_map.get(current_state_name) + + if self._trace_transitions: + if self._task_id is None: + raise ValueError( + "Task ID is must be set before tracing can be enabled" + ) + span = await adk.tracing.start_span( + trace_id=self._task_id, + name="state_transition", + input=self.state_machine_data.model_dump(), + data={"input_state": current_state_name}, + ) + + next_state_name = await current_state.workflow.execute( + state_machine=self, state_machine_data=self.state_machine_data + ) + + if self._trace_transitions: + if self._task_id is None: + raise ValueError( + "Task ID is must be set before tracing can be enabled" + ) + span.output = self.state_machine_data.model_dump() + span.data["output_state"] = next_state_name + await adk.tracing.end_span(trace_id=self._task_id, span=span) + + await self.transition(next_state_name) + + return next_state_name + + async def reset_to_initial_state(self): + """ + Reset the state machine to its initial state. + """ + if self._trace_transitions: + if self._task_id is None: + raise ValueError( + "Task ID is must be set before tracing can be enabled" + ) + span = await adk.tracing.start_span( + trace_id=self._task_id, + name="state_transition_reset", + input={"input_state": self.get_current_state()}, + ) + + await self.transition(self._initial_state) + + if self._trace_transitions: + span.output = {"output_state": self._initial_state} + await adk.tracing.end_span(trace_id=self._task_id, span=span) + + def dump(self) -> dict[str, Any]: + """ + Save the current state of the state machine to a serializable dictionary. + This includes the current state, task_id, state machine data, and initial state. + + Returns: + Dict[str, Any]: A dictionary containing the serialized state machine state + """ + return { + "task_id": self._task_id, + "current_state": self.get_current_state(), + "initial_state": self._initial_state, + "state_machine_data": self.state_machine_data.model_dump(mode="json") + if self.state_machine_data + else None, + "trace_transitions": self._trace_transitions, + } + + @classmethod + async def load(cls, data: dict[str, Any], states: list[State]) -> "StateMachine[T]": + """ + Load a state machine from a previously saved dictionary. + + Args: + data: The dictionary containing the saved state machine state + states: List of all possible states + + Returns: + StateMachine: A new state machine instance restored to the saved state + + Raises: + ValueError: If the data is invalid or missing required fields + """ + try: + task_id = data.get("task_id") + current_state_name = data.get("current_state") + initial_state = data.get("initial_state") + state_machine_data_dict = data.get("state_machine_data") + trace_transitions = data.get("trace_transitions") + + if initial_state is None: + raise ValueError("Initial state not found in saved data") + + # Reconstruct the state machine data into its Pydantic model + state_machine_data = None + if state_machine_data_dict is not None: + # Get the actual model type from the class's type parameters + model_type = cls.__orig_bases__[0].__args__[0] + state_machine_data = model_type.model_validate(state_machine_data_dict) + + # Create a new instance + instance = cls( + initial_state=initial_state, + states=states, + task_id=task_id, + state_machine_data=state_machine_data, + trace_transitions=trace_transitions, + ) + + # If there's a saved state, transition to it + if current_state_name: + await instance.transition(target_state_name=current_state_name) + + return instance + except Exception as e: + raise ValueError(f"Failed to restore state machine: {str(e)}") from e diff --git a/src/agentex/lib/sdk/state_machine/state_workflow.py b/src/agentex/lib/sdk/state_machine/state_workflow.py new file mode 100644 index 000000000..403d23cd9 --- /dev/null +++ b/src/agentex/lib/sdk/state_machine/state_workflow.py @@ -0,0 +1,16 @@ +from abc import ABC, abstractmethod +from typing import TYPE_CHECKING + +from pydantic import BaseModel + +# Import StateMachine only for type checking to avoid circular imports +if TYPE_CHECKING: + from agentex.lib.sdk.state_machine import StateMachine + + +class StateWorkflow(ABC): + @abstractmethod + async def execute( + self, state_machine: "StateMachine", state_machine_data: BaseModel | None = None + ) -> str: + pass diff --git a/src/agentex/lib/sdk/utils/__init__.py b/src/agentex/lib/sdk/utils/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/src/agentex/lib/sdk/utils/messages.py b/src/agentex/lib/sdk/utils/messages.py new file mode 100644 index 000000000..98dd7cb95 --- /dev/null +++ b/src/agentex/lib/sdk/utils/messages.py @@ -0,0 +1,223 @@ +import json +from abc import ABC, abstractmethod +from typing import Any, Literal, override + +from agentex.lib.types.llm_messages import ( + AssistantMessage, + Message, + ToolCall, + ToolCallRequest, + ToolMessage, + UserMessage, +) +from agentex.types.data_content import DataContent +from agentex.types.task_message import TaskMessage +from agentex.types.text_content import TextContent +from agentex.types.tool_request_content import ToolRequestContent +from agentex.types.tool_response_content import ToolResponseContent + + +class TaskMessageConverter(ABC): + """ + Abstract base class for converting a specific type of TaskMessage to an LLM Message. + + Each converter should be responsible for one content type. + """ + + @abstractmethod + def convert(self, task_message: TaskMessage) -> Message: + """ + Convert a TaskMessage to an LLM Message. + + Args: + task_message: The TaskMessage to convert + + Returns: + A Message (Pydantic model) + """ + pass + + +class DefaultTextContentConverter(TaskMessageConverter): + """Converter for TEXT content type.""" + + @override + def convert(self, task_message: TaskMessage) -> Message: + """Convert TEXT content to UserMessage or AssistantMessage based on author.""" + if not isinstance(task_message.content, TextContent): + raise ValueError(f"Expected TextContent, got {type(task_message.content)}") + content = task_message.content + if content.author == "user": + return UserMessage(content=content.content) + else: # AGENT or custom author + return AssistantMessage(content=content.content) + + +class DefaultToolRequestConverter(TaskMessageConverter): + """Converter for TOOL_REQUEST content type.""" + + @override + def convert(self, task_message: TaskMessage) -> Message: + """Convert TOOL_REQUEST content to AssistantMessage with tool_calls.""" + if not isinstance(task_message.content, ToolRequestContent): + raise ValueError(f"Expected ToolRequestContent, got {type(task_message.content)}") + + content = task_message.content + + # Ensure arguments are properly JSON serialized + arguments_str = json.dumps(content.arguments) + + tool_call = ToolCallRequest( + id=content.tool_call_id, + function=ToolCall(name=content.name, arguments=arguments_str), + ) + return AssistantMessage(content=None, tool_calls=[tool_call]) + + +class DefaultToolResponseConverter(TaskMessageConverter): + """Converter for TOOL_RESPONSE content type.""" + + @override + def convert(self, task_message: TaskMessage) -> Message: + """Convert TOOL_RESPONSE content to ToolMessage.""" + if not isinstance(task_message.content, ToolResponseContent): + raise ValueError(f"Expected ToolResponseContent, got {type(task_message.content)}") + + content = task_message.content + return ToolMessage( + content=str(content.content), + tool_call_id=content.tool_call_id, + name=content.name, + ) + + +class DefaultDataContentConverter(TaskMessageConverter): + """Converter for DATA content type.""" + + @override + def convert(self, task_message: TaskMessage) -> Message: + """Convert DATA content to UserMessage or AssistantMessage based on author.""" + if not isinstance(task_message.content, DataContent): + raise ValueError(f"Expected DataContent, got {type(task_message.content)}") + + content = task_message.content + content_str = str(content.data) + if content.author == "user": + return UserMessage(content=content_str) + else: # AGENT or custom author + return AssistantMessage(content=content_str) + + +class DefaultUnknownContentConverter(TaskMessageConverter): + """Converter for unknown content types.""" + + @override + def convert(self, task_message: TaskMessage) -> Message: + """Convert unknown content types to AssistantMessage with fallback text.""" + + content = task_message.content + fallback_content = f"Unknown message type: {content.type}" + return AssistantMessage(content=fallback_content) + + +def convert_task_message_to_llm_messages( + task_message: TaskMessage, + output_mode: Literal["pydantic", "dict"] = "pydantic", + text_converter: TaskMessageConverter | None = None, + tool_request_converter: TaskMessageConverter | None = None, + tool_response_converter: TaskMessageConverter | None = None, + data_converter: TaskMessageConverter | None = None, + unknown_converter: TaskMessageConverter | None = None, +) -> Message | dict[str, Any]: + """ + Convert a TaskMessage to an LLM Message format. + + Args: + task_message: The TaskMessage to convert + output_mode: Whether to return a Pydantic model or dict + text_converter: Optional converter for TEXT content. Uses DefaultTextContentConverter if None. + tool_request_converter: Optional converter for TOOL_REQUEST content. Uses DefaultToolRequestConverter if None. + tool_response_converter: Optional converter for TOOL_RESPONSE content. Uses DefaultToolResponseConverter if None. + data_converter: Optional converter for DATA content. Uses DefaultDataContentConverter if None. + unknown_converter: Optional converter for unknown content. Uses DefaultUnknownContentConverter if None. + + Returns: + Either a Message (Pydantic model) or dict representation + """ + content = task_message.content + + # Get the appropriate converter for this content type + if content.type == "text": + converter = ( + text_converter + if text_converter is not None + else DefaultTextContentConverter() + ) + elif content.type == "tool_request": + converter = ( + tool_request_converter + if tool_request_converter is not None + else DefaultToolRequestConverter() + ) + elif content.type == "tool_response": + converter = ( + tool_response_converter + if tool_response_converter is not None + else DefaultToolResponseConverter() + ) + elif content.type == "data": + converter = ( + data_converter + if data_converter is not None + else DefaultDataContentConverter() + ) + else: + converter = ( + unknown_converter + if unknown_converter is not None + else DefaultUnknownContentConverter() + ) + + message = converter.convert(task_message) + + if output_mode == "dict": + return message.model_dump() + return message + + +def convert_task_messages_to_llm_messages( + task_messages: list[TaskMessage], + output_mode: Literal["pydantic", "dict"] = "pydantic", + text_converter: TaskMessageConverter | None = None, + tool_request_converter: TaskMessageConverter | None = None, + tool_response_converter: TaskMessageConverter | None = None, + data_converter: TaskMessageConverter | None = None, + unknown_converter: TaskMessageConverter | None = None, +) -> list[Message | dict[str, Any]]: + """ + Convert a list of TaskMessages to LLM Message format. + + Args: + task_messages: List of TaskMessages to convert + output_mode: Whether to return Pydantic models or dicts + text_converter: Optional converter for TEXT content. Uses DefaultTextContentConverter if None. + tool_request_converter: Optional converter for TOOL_REQUEST content. Uses DefaultToolRequestConverter if None. + tool_response_converter: Optional converter for TOOL_RESPONSE content. Uses DefaultToolResponseConverter if None. + data_converter: Optional converter for DATA content. Uses DefaultDataContentConverter if None. + unknown_converter: Optional converter for unknown content. Uses DefaultUnknownContentConverter if None. + + Returns: + List of either Messages (Pydantic models) or dicts + """ + return [ + convert_task_message_to_llm_messages( + task_message, + output_mode, + text_converter, + tool_request_converter, + tool_response_converter, + data_converter, + unknown_converter, + ) + for task_message in task_messages + ] diff --git a/src/agentex/lib/types/__init__.py b/src/agentex/lib/types/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/src/agentex/lib/types/acp.py b/src/agentex/lib/types/acp.py new file mode 100644 index 000000000..4ec008c87 --- /dev/null +++ b/src/agentex/lib/types/acp.py @@ -0,0 +1,94 @@ +from enum import Enum +from typing import Any + +from pydantic import BaseModel, Field + +from agentex.types.agent import Agent +from agentex.types.event import Event +from agentex.types.task_message_content import TaskMessageContent +from agentex.types.task import Task + + +class RPCMethod(str, Enum): + """Available JSON-RPC methods for agent communication.""" + + EVENT_SEND = "event/send" + MESSAGE_SEND = "message/send" + TASK_CANCEL = "task/cancel" + TASK_CREATE = "task/create" + + +class CreateTaskParams(BaseModel): + """Parameters for task/create method. + + Attributes: + agent: The agent that the task was sent to. + task: The task to be created. + params: The parameters for the task as inputted by the user. + """ + + agent: Agent = Field(..., description="The agent that the task was sent to") + task: Task = Field(..., description="The task to be created") + params: dict[str, Any] | None = Field( + None, + description="The parameters for the task as inputted by the user", + ) + + +class SendMessageParams(BaseModel): + """Parameters for message/send method. + + Attributes: + agent: The agent that the message was sent to. + task: The task that the message was sent to. + content: The message that was sent to the agent. + stream: Whether to stream the message back to the agentex server from the agent. + """ + + agent: Agent = Field(..., description="The agent that the message was sent to") + task: Task = Field(..., description="The task that the message was sent to") + content: TaskMessageContent = Field( + ..., description="The message that was sent to the agent" + ) + stream: bool = Field( + False, + description="Whether to stream the message back to the agentex server from the agent", + ) + + +class SendEventParams(BaseModel): + """Parameters for event/send method. + + Attributes: + agent: The agent that the event was sent to. + task: The task that the message was sent to. + event: The event that was sent to the agent. + """ + + agent: Agent = Field(..., description="The agent that the event was sent to") + task: Task = Field(..., description="The task that the message was sent to") + event: Event = Field(..., description="The event that was sent to the agent") + + +class CancelTaskParams(BaseModel): + """Parameters for task/cancel method. + + Attributes: + agent: The agent that the task was sent to. + task: The task that was cancelled. + """ + + agent: Agent = Field(..., description="The agent that the task was sent to") + task: Task = Field(..., description="The task that was cancelled") + + +RPC_SYNC_METHODS = [ + RPCMethod.MESSAGE_SEND, +] + +PARAMS_MODEL_BY_METHOD: dict[RPCMethod, type[BaseModel]] = { + RPCMethod.EVENT_SEND: SendEventParams, + RPCMethod.TASK_CANCEL: CancelTaskParams, + RPCMethod.MESSAGE_SEND: SendMessageParams, + RPCMethod.TASK_CREATE: CreateTaskParams, +} diff --git a/src/agentex/lib/types/agent_configs.py b/src/agentex/lib/types/agent_configs.py new file mode 100644 index 000000000..8d9548a84 --- /dev/null +++ b/src/agentex/lib/types/agent_configs.py @@ -0,0 +1,79 @@ +from pydantic import BaseModel, Field, model_validator, validator + + +class TemporalWorkflowConfig(BaseModel): + """ + Configuration for the temporal workflow that defines the agent. + + Attributes: + name: The name of the temporal workflow that defines the agent. + queue_name: The name of the temporal queue to send tasks to. + """ + + name: str = Field( + ..., description="The name of the temporal workflow that defines the agent." + ) + queue_name: str = Field( + ..., description="The name of the temporal queue to send tasks to." + ) + + +# TODO: Remove this class when we remove the agentex agents create +class TemporalWorkerConfig(BaseModel): + """ + Configuration for temporal worker deployment + + Attributes: + image: The image to use for the temporal worker + workflow: The temporal workflow configuration + """ + + image: str | None = Field( + default=None, description="Image to use for the temporal worker" + ) + workflow: TemporalWorkflowConfig | None = Field( + default=None, + description="Configuration for the temporal workflow that defines the agent. Only required for agents that leverage Temporal.", + ) + + +class TemporalConfig(BaseModel): + """ + Simplified temporal configuration for agents + + Attributes: + enabled: Whether this agent uses Temporal workflows + workflow: The temporal workflow configuration + workflows: The list of temporal workflow configurations + """ + + enabled: bool = Field( + default=False, description="Whether this agent uses Temporal workflows" + ) + workflow: TemporalWorkflowConfig | None = Field( + default=None, + description="Temporal workflow configuration. Required when enabled=True. (deprecated: use workflows instead)", + ) + workflows: list[TemporalWorkflowConfig] | None = Field( + default=None, + description="List of temporal workflow configurations. Used when enabled=true.", + ) + + @validator("workflows") + def validate_workflows_not_empty(cls, v): + """Ensure workflows list is not empty when provided""" + if v is not None and len(v) == 0: + raise ValueError("workflows list cannot be empty when provided") + return v + + @model_validator(mode="after") + def validate_temporal_config_when_enabled(self): + """Validate that workflow configuration exists when enabled=true""" + if self.enabled: + # Must have either workflow (legacy) or workflows (new) + if not self.workflow and (not self.workflows or len(self.workflows) == 0): + raise ValueError( + "When temporal.enabled=true, either 'workflow' or 'workflows' must be provided and non-empty" + ) + + return self diff --git a/src/agentex/lib/types/agent_results.py b/src/agentex/lib/types/agent_results.py new file mode 100644 index 000000000..9b3703e0c --- /dev/null +++ b/src/agentex/lib/types/agent_results.py @@ -0,0 +1,29 @@ +from typing import Any + +from pydantic import BaseModel + + +class SerializableRunResult(BaseModel): + """ + Serializable version of RunResult. + + Attributes: + final_output: The final output of the run. + final_input_list: The final input list of the run. + """ + + final_output: Any + final_input_list: list[dict[str, Any]] + + +class SerializableRunResultStreaming(BaseModel): + """ + Serializable version of RunResultStreaming. + + Attributes: + final_output: The final output of the run. + final_input_list: The final input list of the run. + """ + + final_output: Any + final_input_list: list[dict[str, Any]] diff --git a/src/agentex/lib/types/credentials.py b/src/agentex/lib/types/credentials.py new file mode 100644 index 000000000..719165128 --- /dev/null +++ b/src/agentex/lib/types/credentials.py @@ -0,0 +1,34 @@ +from pydantic import BaseModel, Field + + +class CredentialMapping(BaseModel): + """Maps a Kubernetes secret to an environment variable in the agent container. + + This allows agents to securely access credentials stored in Kubernetes secrets + by mapping them to environment variables. For example, you can map a secret + containing an API key to an environment variable that your agent code expects. + + Example: + A mapping of {"env_var_name": "OPENAI_API_KEY", + "secret_name": "ai-credentials", + "secret_key": "openai-key"} + will make the value from the "openai-key" field in the "ai-credentials" + Kubernetes secret available to the agent as OPENAI_API_KEY environment variable. + + Attributes: + env_var_name: The name of the environment variable that will be available to the agent + secret_name: The name of the Kubernetes secret containing the credential + secret_key: The key within the Kubernetes secret that contains the credential value + """ + + env_var_name: str = Field( + ..., + description="Name of the environment variable that will be available to the agent", + ) + secret_name: str = Field( + ..., description="Name of the Kubernetes secret containing the credential" + ) + secret_key: str = Field( + ..., + description="Key within the Kubernetes secret that contains the credential value", + ) diff --git a/src/agentex/lib/types/fastacp.py b/src/agentex/lib/types/fastacp.py new file mode 100644 index 000000000..743e7e4a4 --- /dev/null +++ b/src/agentex/lib/types/fastacp.py @@ -0,0 +1,61 @@ +from typing import Literal + +from pydantic import BaseModel, Field + + +class BaseACPConfig(BaseModel): + """ + Base configuration for all ACP implementations + + Attributes: + type: The type of ACP implementation + """ + + pass + + +class SyncACPConfig(BaseACPConfig): + """ + Configuration for SyncACP implementation + + Attributes: + type: The type of ACP implementation + """ + + pass + + +class AgenticACPConfig(BaseACPConfig): + """ + Base class for agentic ACP configurations + + Attributes: + type: The type of ACP implementation + """ + + type: Literal["temporal", "base"] = Field(..., frozen=True) + + +class TemporalACPConfig(AgenticACPConfig): + """ + Configuration for TemporalACP implementation + + Attributes: + type: The type of ACP implementation + temporal_address: The address of the temporal server + """ + + type: Literal["temporal"] = Field(default="temporal", frozen=True) + temporal_address: str = Field( + default="temporal-frontend.temporal.svc.cluster.local:7233", frozen=True + ) + + +class AgenticBaseACPConfig(AgenticACPConfig): + """Configuration for AgenticBaseACP implementation + + Attributes: + type: The type of ACP implementation + """ + + type: Literal["base"] = Field(default="base", frozen=True) diff --git a/src/agentex/lib/types/files.py b/src/agentex/lib/types/files.py new file mode 100644 index 000000000..ddf104dd2 --- /dev/null +++ b/src/agentex/lib/types/files.py @@ -0,0 +1,13 @@ +from agentex.lib.utils.model_utils import BaseModel + + +class FileContentResponse(BaseModel): + """Response model for downloaded file content. + + Attributes: + mime_type: The MIME type of the file + base64_content: The base64 encoded content of the file + """ + + mime_type: str + base64_content: str diff --git a/src/agentex/lib/types/json_rpc.py b/src/agentex/lib/types/json_rpc.py new file mode 100644 index 000000000..15db316d8 --- /dev/null +++ b/src/agentex/lib/types/json_rpc.py @@ -0,0 +1,49 @@ +from typing import Any, Literal + +from agentex.lib.utils.model_utils import BaseModel + + +class JSONRPCError(BaseModel): + """JSON-RPC 2.0 Error + + Attributes: + code: The error code + message: The error message + data: The error data + """ + + code: int + message: str + data: Any | None = None + + +class JSONRPCRequest(BaseModel): + """JSON-RPC 2.0 Request + + Attributes: + jsonrpc: The JSON-RPC version + method: The method to call + params: The parameters for the request + id: The ID of the request + """ + + jsonrpc: Literal["2.0"] = "2.0" + method: str + params: dict[str, Any] + id: int | str | None = None + + +class JSONRPCResponse(BaseModel): + """JSON-RPC 2.0 Response + + Attributes: + jsonrpc: The JSON-RPC version + result: The result of the request + error: The error of the request + id: The ID of the request + """ + + jsonrpc: Literal["2.0"] = "2.0" + result: dict[str, Any] | None = None + error: JSONRPCError | None = None + id: int | str | None = None diff --git a/src/agentex/lib/types/llm_messages.py b/src/agentex/lib/types/llm_messages.py new file mode 100644 index 000000000..fa23a047e --- /dev/null +++ b/src/agentex/lib/types/llm_messages.py @@ -0,0 +1,354 @@ +from typing import Any, Literal + +try: + from typing import Annotated +except ImportError: + from typing import Annotated +from pydantic import Field + +from agentex.lib.utils.model_utils import BaseModel + + +class LLMConfig(BaseModel): + """ + LLMConfig is the configuration for the LLM. + + Attributes: + model: The model to use + messages: The messages to send to the LLM + temperature: The temperature to use + top_p: The top_p to use + n: The number of completions to generate + stream: Whether to stream the completions + stream_options: The options for the stream + stop: The stop sequence to use + max_tokens: The maximum number of tokens to generate + max_completion_tokens: The maximum number of tokens to generate for the completion + presence_penalty: The presence penalty to use + frequency_penalty: The frequency penalty to use + logit_bias: The logit bias to use + response_format: The response format to use + seed: The seed to use + tools: The tools to use + tool_choice: The tool choice to use + parallel_tool_calls: Whether to allow parallel tool calls + logprobs: Whether to return log probabilities + top_logprobs: The number of top log probabilities to return + """ + + model: str + messages: list = [] + temperature: float | None = None + top_p: float | None = None + n: int | None = None + stream: bool | None = None + stream_options: dict | None = None + stop: str | list | None = None + max_tokens: int | None = None + max_completion_tokens: int | None = None + presence_penalty: float | None = None + frequency_penalty: float | None = None + logit_bias: dict | None = None + response_format: dict | type[BaseModel] | str | None = None + seed: int | None = None + tools: list | None = None + tool_choice: str | None = None + parallel_tool_calls: bool | None = None + logprobs: bool | None = None + top_logprobs: int | None = None + + +class ContentPartText(BaseModel): + """ + ContentPartText is the text content of the message. + + Attributes: + text: The text content. + type: The type of the content part. + """ + + text: str = Field(..., description="The text content.") + type: Literal["text"] = Field( + default="text", description="The type of the content part." + ) + + +class ImageURL(BaseModel): + """ + ImageURL is the URL of the image. + + Attributes: + url: The URL of the image. + detail: The detail level of the image. + """ + + url: str = Field( + ..., description="Either a URL of the image or the base64 encoded image data." + ) + detail: Literal["auto", "low", "high"] = Field( + ..., + description="""Specifies the detail level of the image. + +Learn more in the +[Vision guide](https://platform.openai.com/docs/guides/vision/low-or-high-fidelity-image-understanding). +""", + ) + + +class ContentPartImage(BaseModel): + """ + ContentPartImage is the image content of the message. + + Attributes: + image_url: The URL of the image. + type: The type of the content part. + """ + + image_url: ImageURL = Field(..., description="The image URL.") + type: Literal["image_url"] = Field(..., description="The type of the content part.") + + +class FileContent(BaseModel): + """ + FileContent is the file content of the message. + + Attributes: + filename: The name of the file. + file_data: The base64 encoded file data with MIME type, e.g., 'data:application/pdf;base64,...' + """ + + filename: str = Field(..., description="The name of the file.") + file_data: str = Field( + ..., + description="The base64 encoded file data with MIME type, e.g., 'data:application/pdf;base64,...'", + ) + + +class ContentPartFile(BaseModel): + """ + ContentPartFile is the file content of the message. + + Attributes: + file: The file content. + type: The type of the content part. + """ + + file: FileContent = Field(..., description="The file content.") + type: Literal["file"] = Field( + default="file", description="The type of the content part." + ) + + +ContentPart = ContentPartText | ContentPartImage | ContentPartFile + + +class SystemMessage(BaseModel): + """ + SystemMessage is the system message of the message. + + Attributes: + role: The role of the messages author, in this case `system`. + content: The contents of the system message. + """ + + role: Literal["system"] = Field( + default="system", + description="The role of the messages author, in this case `system`.", + ) + content: str = Field(..., description="The contents of the system message.") + + +class UserMessage(BaseModel): + """ + UserMessage is the user message of the message. + + Attributes: + role: The role of the messages author, in this case `user`. + content: The contents of the user message. + """ + + role: Literal["user"] = Field( + default="user", + description="The role of the messages author, in this case `user`.", + ) + content: str | list[ContentPart] = Field( + ..., + description="The contents of the user message. Can be a string or a list of content parts.", + ) + + +class ToolCall(BaseModel): + """ + ToolCall is the tool call of the message. + + Attributes: + name: The name of the function to call. + arguments: The arguments to call the function with, as generated by the model in JSON format. + """ + + name: str | None = Field( + default=None, description="The name of the function to call." + ) + arguments: str | None = Field( + default=None, + description=""" +The arguments to call the function with, as generated by the model in JSON +format. Note that the model does not always generate valid JSON, and may +hallucinate parameters not defined by your function schema. Validate the +arguments in your code before calling your function. +""", + ) + + +class ToolCallRequest(BaseModel): + """ + ToolCallRequest is the tool call request of the message. + + Attributes: + type: The type of the tool. Currently, only `function` is supported. + id: The ID of the tool call request. + function: The function that the model is requesting. + index: The index of the tool call request. + """ + + type: Literal["function"] = Field( + default="function", + description="The type of the tool. Currently, only `function` is supported.", + ) + id: str | None = Field(default=None, description="The ID of the tool call request.") + function: ToolCall = Field( + ..., description="The function that the model is requesting." + ) + index: int | None = None + + +class AssistantMessage(BaseModel): + """ + AssistantMessage is the assistant message of the message. + + Attributes: + role: The role of the messages author, in this case `assistant`. + content: The contents of the assistant message. + tool_calls: The tool calls generated by the model, such as function calls. + parsed: The parsed content of the message to a specific type + """ + + role: Literal["assistant"] = Field( + default="assistant", + description="The role of the messages author, in this case `assistant`.", + ) + content: str | None = Field( + default=None, + description="""The contents of the assistant message. + +Required unless `tool_calls` or `function_call` is specified. +""", + ) + tool_calls: list[ToolCallRequest] | None = Field( + default=None, + description="The tool calls generated by the model, such as function calls.", + ) + parsed: Any | None = Field( + default=None, description="The parsed content of the message to a specific type" + ) + + +class ToolMessage(BaseModel): + """ + ToolMessage is the tool message of the message. + + Attributes: + role: The role of the messages author, in this case `tool`. + content: The contents of the tool message. + tool_call_id: The tool call that this message is responding to. + name: The name of the tool called. + is_error: Whether the tool call was successful. + """ + + role: Literal["tool"] = Field( + default="tool", + description="The role of the messages author, in this case `tool`.", + ) + content: str | list[ContentPart] = Field( + ..., description="The contents of the tool message." + ) + tool_call_id: str = Field( + ..., description="Tool call that this message is responding to." + ) + # name is optional based on OAI API defined here for chat_completion_input: https://platform.openai.com/docs/api-reference/chat/create + name: str | None = Field(default=None, description="The name of the tool called.") + is_error: bool | None = Field( + default=None, description="Whether the tool call was successful." + ) + + +Message = Annotated[ + SystemMessage | UserMessage | AssistantMessage | ToolMessage, + Field(discriminator="role"), +] + + +class Delta(BaseModel): + """ + Delta is the delta of the message. + + Attributes: + content: The content of the delta. + role: The role of the delta. + tool_calls: The tool calls of the delta. + """ + + content: str | None = Field(default=None) + role: str | None = Field(default=None) + tool_calls: list[ToolCallRequest] | None = Field(default=None) + + +class Choice(BaseModel): + """ + Choice is the choice of the message. + + Attributes: + index: The index of the choice. + finish_reason: The finish reason of the choice. + message: The message of the choice. + delta: The delta of the choice. + """ + + index: int + finish_reason: Literal["stop", "length", "content_filter", "tool_calls"] | None = ( + None + ) + message: AssistantMessage | None = None + delta: Delta | None = None + + +class Usage(BaseModel): + """ + Usage is the usage of the message. + + Attributes: + prompt_tokens: The number of prompt tokens. + completion_tokens: The number of completion tokens. + total_tokens: The total number of tokens. + """ + + prompt_tokens: int + completion_tokens: int + total_tokens: int + + +class Completion(BaseModel): + """ + Completion is the completion of the message. + + Attributes: + choices: The choices of the completion. + created: The created time of the completion. + model: The model of the completion. + usage: The usage of the completion. + """ + + choices: list[Choice] + created: int | None = None + model: str | None = None + usage: Usage | None = None diff --git a/src/agentex/lib/types/task_message_updates.py b/src/agentex/lib/types/task_message_updates.py new file mode 100644 index 000000000..0030acde9 --- /dev/null +++ b/src/agentex/lib/types/task_message_updates.py @@ -0,0 +1,171 @@ +from enum import Enum +from typing import Annotated, Literal + +from pydantic import Field, model_validator + +from agentex.types.task_message import TaskMessage +from agentex.types.task_message_content import TaskMessageContent +from agentex.lib.utils.model_utils import BaseModel + + +class BaseTaskMessageDelta(BaseModel): + """ + Base class for all delta updates + + Attributes: + type: The type of delta update + """ + + type: Literal["text", "data", "tool_request", "tool_response"] + + +class TextDelta(BaseTaskMessageDelta): + """ + Delta for text updates + + Attributes: + type: The type of delta update + text_delta: The delta for the text + """ + + type: Literal["text"] = "text" + text_delta: str | None = "" + + +class DataDelta(BaseTaskMessageDelta): + """ + Delta for data updates + + Attributes: + type: The type of delta update + data_delta: The delta for the data + """ + + type: Literal["data"] = "data" + data_delta: str | None = "" + + +class ToolRequestDelta(BaseTaskMessageDelta): + """ + Delta for tool request updates + + Attributes: + type: The type of delta update + name: The name of the tool + arguments_delta: The delta for the arguments + """ + + type: Literal["tool_request"] = "tool_request" + tool_call_id: str + name: str + arguments_delta: str | None = "" + + +class ToolResponseDelta(BaseTaskMessageDelta): + """ + Delta for tool response updates + + Attributes: + type: The type of delta update + tool_response_delta: The delta for the tool response + """ + + type: Literal["tool_response"] = "tool_response" + tool_call_id: str + name: str + tool_response_delta: str | None = "" + + +TaskMessageDelta = Annotated[ + TextDelta | DataDelta | ToolRequestDelta | ToolResponseDelta, + Field(discriminator="type"), +] + + +class StreamTaskMessage(BaseModel): + """Base class for all task message stream events + + Attributes: + type: The type of task message update + parent_task_message: The parent task message + index: The index of the task message + """ + + type: Literal["start", "delta", "full", "done"] + # Used for streaming chunks to a direct parent_task_message + parent_task_message: TaskMessage | None = None + # Used to correlate chunks of different task messages with each other + # directly in the Sync ACP case + index: int | None = None + + @model_validator(mode="after") + def validate_message_correlation(self): + """Ensure exactly one of index or parent_task_message is set""" + has_parent = self.parent_task_message is not None + has_index = self.index is not None + + if not has_parent and not has_index: + raise ValueError("Either 'index' or 'parent_task_message' must be set") + + if has_parent and has_index: + raise ValueError( + "Cannot set both 'index' and 'parent_task_message' - only one is allowed" + ) + + return self + + +# Everything is streamed as a partial json blob, except for text. +class StreamTaskMessageStart(StreamTaskMessage): + """Event for starting a streaming message + + Attributes: + type: The type of task message update + content: The content of the task message + """ + + type: Literal["start"] = "start" + content: TaskMessageContent + + +class StreamTaskMessageDelta(StreamTaskMessage): + """Event for streaming chunks of content + + Attributes: + type: The type of task message update + delta: The delta of the task message + """ + + type: Literal["delta"] = "delta" + delta: TaskMessageDelta | None = None + + +class StreamTaskMessageFull(StreamTaskMessage): + """Event for streaming the full content + + Attributes: + type: The type of task message update + content: The content of the task message + """ + + type: Literal["full"] = "full" + content: TaskMessageContent + + +class StreamTaskMessageDone(StreamTaskMessage): + """Event for indicating the task is done + + Attributes: + type: The type of task message update + """ + + type: Literal["done"] = "done" + + +TaskMessageUpdate = Annotated[ + StreamTaskMessageStart + | StreamTaskMessageDelta + | StreamTaskMessageFull + | StreamTaskMessageDone, + Field(discriminator="type"), +] diff --git a/src/agentex/lib/types/tracing.py b/src/agentex/lib/types/tracing.py new file mode 100644 index 000000000..f9a0af3d5 --- /dev/null +++ b/src/agentex/lib/types/tracing.py @@ -0,0 +1,34 @@ +from typing import Annotated, Literal + +from pydantic import Field + +from agentex.lib.utils.model_utils import BaseModel + + +class BaseModelWithTraceParams(BaseModel): + """ + Base model with trace parameters. + + Attributes: + trace_id: The trace ID + parent_span_id: The parent span ID + """ + + trace_id: str | None = None + parent_span_id: str | None = None + + +class AgentexTracingProcessorConfig(BaseModel): + type: Literal["agentex"] = "agentex" + + +class SGPTracingProcessorConfig(BaseModel): + type: Literal["sgp"] = "sgp" + sgp_api_key: str + sgp_account_id: str + + +TracingProcessorConfig = Annotated[ + AgentexTracingProcessorConfig | SGPTracingProcessorConfig, + Field(discriminator="type"), +] diff --git a/src/agentex/lib/utils/__init__.py b/src/agentex/lib/utils/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/src/agentex/lib/utils/completions.py b/src/agentex/lib/utils/completions.py new file mode 100644 index 000000000..89114dcb8 --- /dev/null +++ b/src/agentex/lib/utils/completions.py @@ -0,0 +1,131 @@ +from copy import deepcopy +from functools import reduce, singledispatch +from typing import Any + +from agentex.lib.types.llm_messages import ( + Choice, + Completion, + Delta, + ToolCall, + ToolCallRequest, +) + + +@singledispatch +def _concat_chunks(a: None, b: Any): + return b + + +@_concat_chunks.register +def _(a: Completion, b: Completion) -> Completion: + a.choices = [_concat_chunks(*c) for c in zip(a.choices, b.choices, strict=False)] + return a + + +@_concat_chunks.register +def _(a: Choice, b: Choice) -> Choice: + if hasattr(a, "index") and hasattr(b, "index"): + assert a.index == b.index + + if hasattr(a, "delta") and hasattr(b, "delta"): + a.delta = _concat_chunks(a.delta, b.delta) + + a.finish_reason = a.finish_reason or b.finish_reason + return a + + +@_concat_chunks.register +def _(a: Delta, b: Delta) -> Delta: + a.content = a.content + b.content if a.content and b.content else a.content or b.content + + if hasattr(a, "tool_calls") and hasattr(b, "tool_calls") and a.tool_calls and b.tool_calls: + # Group tool calls by index + grouped_tool_calls = {} + for tool_call in a.tool_calls + b.tool_calls: + if tool_call.index not in grouped_tool_calls: + grouped_tool_calls[tool_call.index] = tool_call + else: + grouped_tool_calls[tool_call.index] = _concat_chunks( + grouped_tool_calls[tool_call.index], tool_call + ) + + a.tool_calls = list(grouped_tool_calls.values()) + elif hasattr(b, "tool_calls") and b.tool_calls: + a.tool_calls = b.tool_calls + + return a + + +@_concat_chunks.register +def _(a: ToolCallRequest, b: ToolCallRequest) -> ToolCallRequest: + # Preserve id from either a or b, with preference for a + id_val = a.id if a.id is not None else b.id + + # Use index from either a or b, with preference for a's index + index_val = a.index if hasattr(a, "index") and a.index is not None else b.index + + # Concatenate the function part + function_val = ( + _concat_chunks(a.function, b.function) + if a.function and b.function + else a.function or b.function + ) + + # Set all properties + a.id = id_val + a.index = index_val + a.function = function_val + + return a + + +@_concat_chunks.register +def _(a: ToolCall, b: ToolCall) -> ToolCall: + # Preserve name from either a or b, with preference for a + name_val = a.name or b.name + + # Concatenate arguments string + args_val = "" + if a.arguments is not None and b.arguments is not None: + args_val = a.arguments + b.arguments + else: + args_val = a.arguments or b.arguments + + # Set all properties + a.name = name_val + a.arguments = args_val + + return a + + +def concat_completion_chunks(chunks: list[Completion]) -> Completion: + """ + Accumulates all chunks returned from a streaming completion call into a `Completion` message. + This is useful when you stream responses from an LLM and want to keep track of the context (i.e. previous messages + current message). + + Args: + chunks: list of completion chunks returned from streamed completion + Returns: + Completion: same as type returned from non-streaming completion + + + + To implement `concat_completion_chunks` we first implement a binary `_concat_chunks` function for each + type. Using `singledispatch` to dispatch the call to the appropriate function based on the type of the first argument. + Each nested type is then concatenated. We can then use reduce to accumulate the entire stream into a single a + single `CompletionChunk`. Finally we convert the type to the appropriate non-streaming type `Completion` and return it. + """ + if not chunks: + return None + + chunks_copy = chunks.copy() + chunks_copy[0] = deepcopy(chunks_copy[0]) # _concat_chunks mutates first argument + accumulated_chunks = reduce(_concat_chunks, chunks_copy) + + data = accumulated_chunks.model_dump() + data["object"] = "chat.completion" + choices = data["choices"] + for choice in choices: + choice["message"] = choice.pop("delta") + + return Completion.model_validate(data) diff --git a/src/agentex/lib/utils/console.py b/src/agentex/lib/utils/console.py new file mode 100644 index 000000000..17f89198a --- /dev/null +++ b/src/agentex/lib/utils/console.py @@ -0,0 +1,14 @@ +from rich import box +from rich.console import Console +from rich.table import Table + +console = Console() + + +def print_section(name: str, contents: list[str], subtitle: str | None = None): + console.print() + table = Table(box=box.SQUARE, caption=subtitle, show_header=False, expand=True) + table.title = name + table.add_column(name, style="dim", width=12) + table.add_row(*contents) + console.print(table) diff --git a/src/agentex/lib/utils/io.py b/src/agentex/lib/utils/io.py new file mode 100644 index 000000000..11e2378a7 --- /dev/null +++ b/src/agentex/lib/utils/io.py @@ -0,0 +1,29 @@ +from typing import Any + +import yaml +from yaml.scanner import ScannerError + + +class InvalidYAMLError(ValueError): + """ + Raised when trying to red a YAML file, but the file is not formatted correctly. + """ + + +def load_yaml_file(file_path: str) -> dict[str, Any]: + """ + Loads a YAML file from the specified path. + + :param file_path: The path of the YAML file to load. + :type file_path: str + :return: The contents of the YAML file. + :rtype: dict + """ + try: + with open(file_path) as file: + yaml_dict = yaml.safe_load(file) + return yaml_dict + except ScannerError as error: + raise InvalidYAMLError( + f"The following file is not in valid YAML format: {file_path}" + ) from error diff --git a/src/agentex/lib/utils/iterables.py b/src/agentex/lib/utils/iterables.py new file mode 100644 index 000000000..31a275964 --- /dev/null +++ b/src/agentex/lib/utils/iterables.py @@ -0,0 +1,14 @@ +from collections.abc import AsyncGenerator +from typing import Any + + +async def async_enumerate( + aiterable: AsyncGenerator, start: int = 0 +) -> AsyncGenerator[tuple[int, Any], None]: + """ + Enumerate an async generator. + """ + i = start + async for item in aiterable: + yield i, item + i += 1 diff --git a/src/agentex/lib/utils/json_schema.py b/src/agentex/lib/utils/json_schema.py new file mode 100644 index 000000000..da34b6d4b --- /dev/null +++ b/src/agentex/lib/utils/json_schema.py @@ -0,0 +1,23 @@ +from typing import Any + +import jsonref +from jsonschema import validate as schema_validation + + +def resolve_refs(schema: dict) -> dict: + """ + Resolve JSON references in a schema. + """ + resolved = jsonref.replace_refs(schema, proxies=False, lazy_load=False) + serializable = { + "type": resolved.get("type"), + "properties": resolved.get("properties"), + "required": list(resolved.get("required", [])), + "additionalProperties": resolved.get("additionalProperties", False), + } + return serializable + + +def validate_payload(json_schema: dict[str, Any], payload: dict[str, Any]) -> None: + """Validate the payload against the JSON schema.""" + schema_validation(instance=payload, schema=json_schema) diff --git a/src/agentex/lib/utils/logging.py b/src/agentex/lib/utils/logging.py new file mode 100644 index 000000000..26d9abcdd --- /dev/null +++ b/src/agentex/lib/utils/logging.py @@ -0,0 +1,31 @@ +import logging + +from rich.console import Console +from rich.logging import RichHandler + + +def make_logger(name: str): + """ + Creates a logger object with a RichHandler to print colored text. + :param name: The name of the module to create the logger for. + :return: A logger object. + """ + # Create a console object to print colored text + console = Console() + + # Create a logger object with the name of the current module + logger = logging.getLogger(name) + + # Set the global log level to INFO + logger.setLevel(logging.INFO) + + # Add the RichHandler to the logger to print colored text + handler = RichHandler( + console=console, + show_level=False, + show_path=False, + show_time=False, + ) + logger.addHandler(handler) + + return logger diff --git a/src/agentex/lib/utils/mcp.py b/src/agentex/lib/utils/mcp.py new file mode 100644 index 000000000..b95126a6b --- /dev/null +++ b/src/agentex/lib/utils/mcp.py @@ -0,0 +1,17 @@ +from typing import Any +from mcp import StdioServerParameters + + +def redact_mcp_server_params( + mcp_server_params: list[StdioServerParameters], +) -> list[dict[str, Any]]: + """Redact MCP server params for logging.""" + return [ + { + **{k: v for k, v in server_param.model_dump().items() if k != "env"}, + "env": dict.fromkeys(server_param.env, "********") + if server_param.env + else None, + } + for server_param in mcp_server_params + ] diff --git a/src/agentex/lib/utils/model_utils.py b/src/agentex/lib/utils/model_utils.py new file mode 100644 index 000000000..a4f68c845 --- /dev/null +++ b/src/agentex/lib/utils/model_utils.py @@ -0,0 +1,46 @@ +from collections.abc import Iterable, Mapping +from typing import Any, TypeVar + +from pydantic import BaseModel as PydanticBaseModel +from pydantic import ConfigDict + +from agentex.lib.utils.io import load_yaml_file + +T = TypeVar("T", bound="BaseModel") + + +class BaseModel(PydanticBaseModel): + model_config = ConfigDict(from_attributes=True, populate_by_name=True) + + @classmethod + def from_yaml(cls: type[T], file_path: str) -> T: + """ + Returns an instance of this class by deserializing from a YAML file. + + :param file_path: The path to the YAML file. + :return: An instance of this class. + """ + yaml_dict = load_yaml_file(file_path=file_path) + class_object = cls.model_validate(yaml_dict) + return class_object + + def to_json(self, *args, **kwargs) -> str: + return self.model_dump_json(*args, **kwargs) + + def to_dict(self, *args, **kwargs) -> dict[str, Any]: + return recursive_model_dump(self) + + +def recursive_model_dump(obj: Any) -> Any: + if isinstance(obj, PydanticBaseModel): + # Serialize BaseModel to dict + return obj.model_dump(mode="json") + elif isinstance(obj, Mapping): + # Recursively serialize dictionary values + return {k: recursive_model_dump(v) for k, v in obj.items()} + elif isinstance(obj, Iterable) and not isinstance(obj, str | bytes): + # Recursively serialize items in lists, tuples, sets, etc. + return [recursive_model_dump(item) for item in obj] + else: + # Return primitive types as-is + return obj diff --git a/src/agentex/lib/utils/parsing.py b/src/agentex/lib/utils/parsing.py new file mode 100644 index 000000000..ecb61206a --- /dev/null +++ b/src/agentex/lib/utils/parsing.py @@ -0,0 +1,15 @@ +from urllib.parse import urlsplit, urlunsplit + + +def remove_query_params(url): + split_url = urlsplit(url) + scheme, netloc, path, query, fragment = split_url + + if query: + query = '' + else: + amp_index = path.find('&') + if amp_index != -1: + path = path[:amp_index] + + return urlunsplit((scheme, netloc, path, query, fragment)) diff --git a/src/agentex/lib/utils/regex.py b/src/agentex/lib/utils/regex.py new file mode 100644 index 000000000..c760b10dd --- /dev/null +++ b/src/agentex/lib/utils/regex.py @@ -0,0 +1,6 @@ +import re + + +def camel_to_snake(camel_case_str: str) -> str: + # Substitute capital letters with an underscore followed by the lowercase letter + return re.sub(r'(? NameResource: - return NameResource(self._client) - @cached_property def with_raw_response(self) -> AgentsResourceWithRawResponse: """ @@ -160,12 +150,78 @@ def delete( cast_to=Agent, ) + def delete_by_name( + self, + agent_name: str, + *, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> Agent: + """ + Delete an agent by its unique name. + + Args: + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + if not agent_name: + raise ValueError(f"Expected a non-empty value for `agent_name` but received {agent_name!r}") + return self._delete( + f"/agents/name/{agent_name}", + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=Agent, + ) + + def retrieve_by_name( + self, + agent_name: str, + *, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> Agent: + """ + Get an agent by its unique name. + + Args: + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + if not agent_name: + raise ValueError(f"Expected a non-empty value for `agent_name` but received {agent_name!r}") + return self._get( + f"/agents/name/{agent_name}", + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=Agent, + ) + def rpc( self, agent_id: str, *, method: Literal["event/send", "task/create", "message/send", "task/cancel"], - params: agent_rpc_params.Params, + params: AgentRpcParams, id: Union[int, str, None] | NotGiven = NOT_GIVEN, jsonrpc: Literal["2.0"] | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. @@ -174,11 +230,13 @@ def rpc( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> object: + ) -> AgentRpcResponse: """ Handle JSON-RPC requests for an agent by its unique ID. Args: + params: The parameters for the agent RPC request + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -203,15 +261,59 @@ def rpc( options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), - cast_to=object, + cast_to=AgentRpcResponse, ) + def rpc_by_name( + self, + agent_name: str, + *, + method: Literal["event/send", "task/create", "message/send", "task/cancel"], + params: AgentRpcParams, + id: Union[int, str, None] | NotGiven = NOT_GIVEN, + jsonrpc: Literal["2.0"] | NotGiven = NOT_GIVEN, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> AgentRpcResponse: + """ + Handle JSON-RPC requests for an agent by its unique name. + + Args: + params: The parameters for the agent RPC request -class AsyncAgentsResource(AsyncAPIResource): - @cached_property - def name(self) -> AsyncNameResource: - return AsyncNameResource(self._client) + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + timeout: Override the client-level default timeout for this request, in seconds + """ + if not agent_name: + raise ValueError(f"Expected a non-empty value for `agent_name` but received {agent_name!r}") + return self._post( + f"/agents/name/{agent_name}/rpc", + body=maybe_transform( + { + "method": method, + "params": params, + "id": id, + "jsonrpc": jsonrpc, + }, + agent_rpc_by_name_params.AgentRpcByNameParams, + ), + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=AgentRpcResponse, + ) + + +class AsyncAgentsResource(AsyncAPIResource): @cached_property def with_raw_response(self) -> AsyncAgentsResourceWithRawResponse: """ @@ -334,12 +436,78 @@ async def delete( cast_to=Agent, ) + async def delete_by_name( + self, + agent_name: str, + *, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> Agent: + """ + Delete an agent by its unique name. + + Args: + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + if not agent_name: + raise ValueError(f"Expected a non-empty value for `agent_name` but received {agent_name!r}") + return await self._delete( + f"/agents/name/{agent_name}", + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=Agent, + ) + + async def retrieve_by_name( + self, + agent_name: str, + *, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> Agent: + """ + Get an agent by its unique name. + + Args: + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + if not agent_name: + raise ValueError(f"Expected a non-empty value for `agent_name` but received {agent_name!r}") + return await self._get( + f"/agents/name/{agent_name}", + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=Agent, + ) + async def rpc( self, agent_id: str, *, method: Literal["event/send", "task/create", "message/send", "task/cancel"], - params: agent_rpc_params.Params, + params: AgentRpcParams, id: Union[int, str, None] | NotGiven = NOT_GIVEN, jsonrpc: Literal["2.0"] | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. @@ -348,11 +516,13 @@ async def rpc( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> object: + ) -> AgentRpcResponse: """ Handle JSON-RPC requests for an agent by its unique ID. Args: + params: The parameters for the agent RPC request + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -377,7 +547,55 @@ async def rpc( options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), - cast_to=object, + cast_to=AgentRpcResponse, + ) + + async def rpc_by_name( + self, + agent_name: str, + *, + method: Literal["event/send", "task/create", "message/send", "task/cancel"], + params: AgentRpcParams, + id: Union[int, str, None] | NotGiven = NOT_GIVEN, + jsonrpc: Literal["2.0"] | NotGiven = NOT_GIVEN, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> AgentRpcResponse: + """ + Handle JSON-RPC requests for an agent by its unique name. + + Args: + params: The parameters for the agent RPC request + + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + if not agent_name: + raise ValueError(f"Expected a non-empty value for `agent_name` but received {agent_name!r}") + return await self._post( + f"/agents/name/{agent_name}/rpc", + body=await async_maybe_transform( + { + "method": method, + "params": params, + "id": id, + "jsonrpc": jsonrpc, + }, + agent_rpc_by_name_params.AgentRpcByNameParams, + ), + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=AgentRpcResponse, ) @@ -394,13 +612,18 @@ def __init__(self, agents: AgentsResource) -> None: self.delete = to_raw_response_wrapper( agents.delete, ) + self.delete_by_name = to_raw_response_wrapper( + agents.delete_by_name, + ) + self.retrieve_by_name = to_raw_response_wrapper( + agents.retrieve_by_name, + ) self.rpc = to_raw_response_wrapper( agents.rpc, ) - - @cached_property - def name(self) -> NameResourceWithRawResponse: - return NameResourceWithRawResponse(self._agents.name) + self.rpc_by_name = to_raw_response_wrapper( + agents.rpc_by_name, + ) class AsyncAgentsResourceWithRawResponse: @@ -416,13 +639,18 @@ def __init__(self, agents: AsyncAgentsResource) -> None: self.delete = async_to_raw_response_wrapper( agents.delete, ) + self.delete_by_name = async_to_raw_response_wrapper( + agents.delete_by_name, + ) + self.retrieve_by_name = async_to_raw_response_wrapper( + agents.retrieve_by_name, + ) self.rpc = async_to_raw_response_wrapper( agents.rpc, ) - - @cached_property - def name(self) -> AsyncNameResourceWithRawResponse: - return AsyncNameResourceWithRawResponse(self._agents.name) + self.rpc_by_name = async_to_raw_response_wrapper( + agents.rpc_by_name, + ) class AgentsResourceWithStreamingResponse: @@ -438,13 +666,18 @@ def __init__(self, agents: AgentsResource) -> None: self.delete = to_streamed_response_wrapper( agents.delete, ) + self.delete_by_name = to_streamed_response_wrapper( + agents.delete_by_name, + ) + self.retrieve_by_name = to_streamed_response_wrapper( + agents.retrieve_by_name, + ) self.rpc = to_streamed_response_wrapper( agents.rpc, ) - - @cached_property - def name(self) -> NameResourceWithStreamingResponse: - return NameResourceWithStreamingResponse(self._agents.name) + self.rpc_by_name = to_streamed_response_wrapper( + agents.rpc_by_name, + ) class AsyncAgentsResourceWithStreamingResponse: @@ -460,10 +693,15 @@ def __init__(self, agents: AsyncAgentsResource) -> None: self.delete = async_to_streamed_response_wrapper( agents.delete, ) + self.delete_by_name = async_to_streamed_response_wrapper( + agents.delete_by_name, + ) + self.retrieve_by_name = async_to_streamed_response_wrapper( + agents.retrieve_by_name, + ) self.rpc = async_to_streamed_response_wrapper( agents.rpc, ) - - @cached_property - def name(self) -> AsyncNameResourceWithStreamingResponse: - return AsyncNameResourceWithStreamingResponse(self._agents.name) + self.rpc_by_name = async_to_streamed_response_wrapper( + agents.rpc_by_name, + ) diff --git a/src/agentex/resources/agents/__init__.py b/src/agentex/resources/agents/__init__.py deleted file mode 100644 index 374345e0f..000000000 --- a/src/agentex/resources/agents/__init__.py +++ /dev/null @@ -1,33 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from .name import ( - NameResource, - AsyncNameResource, - NameResourceWithRawResponse, - AsyncNameResourceWithRawResponse, - NameResourceWithStreamingResponse, - AsyncNameResourceWithStreamingResponse, -) -from .agents import ( - AgentsResource, - AsyncAgentsResource, - AgentsResourceWithRawResponse, - AsyncAgentsResourceWithRawResponse, - AgentsResourceWithStreamingResponse, - AsyncAgentsResourceWithStreamingResponse, -) - -__all__ = [ - "NameResource", - "AsyncNameResource", - "NameResourceWithRawResponse", - "AsyncNameResourceWithRawResponse", - "NameResourceWithStreamingResponse", - "AsyncNameResourceWithStreamingResponse", - "AgentsResource", - "AsyncAgentsResource", - "AgentsResourceWithRawResponse", - "AsyncAgentsResourceWithRawResponse", - "AgentsResourceWithStreamingResponse", - "AsyncAgentsResourceWithStreamingResponse", -] diff --git a/src/agentex/resources/agents/name.py b/src/agentex/resources/agents/name.py deleted file mode 100644 index 8906f03e4..000000000 --- a/src/agentex/resources/agents/name.py +++ /dev/null @@ -1,350 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from __future__ import annotations - -from typing import Union -from typing_extensions import Literal - -import httpx - -from ..._types import NOT_GIVEN, Body, Query, Headers, NotGiven -from ..._utils import maybe_transform, async_maybe_transform -from ..._compat import cached_property -from ..._resource import SyncAPIResource, AsyncAPIResource -from ..._response import ( - to_raw_response_wrapper, - to_streamed_response_wrapper, - async_to_raw_response_wrapper, - async_to_streamed_response_wrapper, -) -from ...types.agent import Agent -from ..._base_client import make_request_options -from ...types.agents import name_rpc_params - -__all__ = ["NameResource", "AsyncNameResource"] - - -class NameResource(SyncAPIResource): - @cached_property - def with_raw_response(self) -> NameResourceWithRawResponse: - """ - This property can be used as a prefix for any HTTP method call to return - the raw response object instead of the parsed content. - - For more information, see https://www.github.com/scaleapi/agentex-python#accessing-raw-response-data-eg-headers - """ - return NameResourceWithRawResponse(self) - - @cached_property - def with_streaming_response(self) -> NameResourceWithStreamingResponse: - """ - An alternative to `.with_raw_response` that doesn't eagerly read the response body. - - For more information, see https://www.github.com/scaleapi/agentex-python#with_streaming_response - """ - return NameResourceWithStreamingResponse(self) - - def retrieve( - self, - agent_name: str, - *, - # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. - # The extra values given here take precedence over values defined on the client or passed to this method. - extra_headers: Headers | None = None, - extra_query: Query | None = None, - extra_body: Body | None = None, - timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> Agent: - """ - Get an agent by its unique name. - - Args: - extra_headers: Send extra headers - - extra_query: Add additional query parameters to the request - - extra_body: Add additional JSON properties to the request - - timeout: Override the client-level default timeout for this request, in seconds - """ - if not agent_name: - raise ValueError(f"Expected a non-empty value for `agent_name` but received {agent_name!r}") - return self._get( - f"/agents/name/{agent_name}", - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=Agent, - ) - - def delete( - self, - agent_name: str, - *, - # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. - # The extra values given here take precedence over values defined on the client or passed to this method. - extra_headers: Headers | None = None, - extra_query: Query | None = None, - extra_body: Body | None = None, - timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> Agent: - """ - Delete an agent by its unique name. - - Args: - extra_headers: Send extra headers - - extra_query: Add additional query parameters to the request - - extra_body: Add additional JSON properties to the request - - timeout: Override the client-level default timeout for this request, in seconds - """ - if not agent_name: - raise ValueError(f"Expected a non-empty value for `agent_name` but received {agent_name!r}") - return self._delete( - f"/agents/name/{agent_name}", - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=Agent, - ) - - def rpc( - self, - agent_name: str, - *, - method: Literal["event/send", "task/create", "message/send", "task/cancel"], - params: name_rpc_params.Params, - id: Union[int, str, None] | NotGiven = NOT_GIVEN, - jsonrpc: Literal["2.0"] | NotGiven = NOT_GIVEN, - # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. - # The extra values given here take precedence over values defined on the client or passed to this method. - extra_headers: Headers | None = None, - extra_query: Query | None = None, - extra_body: Body | None = None, - timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> object: - """ - Handle JSON-RPC requests for an agent by its unique name. - - Args: - extra_headers: Send extra headers - - extra_query: Add additional query parameters to the request - - extra_body: Add additional JSON properties to the request - - timeout: Override the client-level default timeout for this request, in seconds - """ - if not agent_name: - raise ValueError(f"Expected a non-empty value for `agent_name` but received {agent_name!r}") - return self._post( - f"/agents/name/{agent_name}/rpc", - body=maybe_transform( - { - "method": method, - "params": params, - "id": id, - "jsonrpc": jsonrpc, - }, - name_rpc_params.NameRpcParams, - ), - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=object, - ) - - -class AsyncNameResource(AsyncAPIResource): - @cached_property - def with_raw_response(self) -> AsyncNameResourceWithRawResponse: - """ - This property can be used as a prefix for any HTTP method call to return - the raw response object instead of the parsed content. - - For more information, see https://www.github.com/scaleapi/agentex-python#accessing-raw-response-data-eg-headers - """ - return AsyncNameResourceWithRawResponse(self) - - @cached_property - def with_streaming_response(self) -> AsyncNameResourceWithStreamingResponse: - """ - An alternative to `.with_raw_response` that doesn't eagerly read the response body. - - For more information, see https://www.github.com/scaleapi/agentex-python#with_streaming_response - """ - return AsyncNameResourceWithStreamingResponse(self) - - async def retrieve( - self, - agent_name: str, - *, - # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. - # The extra values given here take precedence over values defined on the client or passed to this method. - extra_headers: Headers | None = None, - extra_query: Query | None = None, - extra_body: Body | None = None, - timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> Agent: - """ - Get an agent by its unique name. - - Args: - extra_headers: Send extra headers - - extra_query: Add additional query parameters to the request - - extra_body: Add additional JSON properties to the request - - timeout: Override the client-level default timeout for this request, in seconds - """ - if not agent_name: - raise ValueError(f"Expected a non-empty value for `agent_name` but received {agent_name!r}") - return await self._get( - f"/agents/name/{agent_name}", - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=Agent, - ) - - async def delete( - self, - agent_name: str, - *, - # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. - # The extra values given here take precedence over values defined on the client or passed to this method. - extra_headers: Headers | None = None, - extra_query: Query | None = None, - extra_body: Body | None = None, - timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> Agent: - """ - Delete an agent by its unique name. - - Args: - extra_headers: Send extra headers - - extra_query: Add additional query parameters to the request - - extra_body: Add additional JSON properties to the request - - timeout: Override the client-level default timeout for this request, in seconds - """ - if not agent_name: - raise ValueError(f"Expected a non-empty value for `agent_name` but received {agent_name!r}") - return await self._delete( - f"/agents/name/{agent_name}", - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=Agent, - ) - - async def rpc( - self, - agent_name: str, - *, - method: Literal["event/send", "task/create", "message/send", "task/cancel"], - params: name_rpc_params.Params, - id: Union[int, str, None] | NotGiven = NOT_GIVEN, - jsonrpc: Literal["2.0"] | NotGiven = NOT_GIVEN, - # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. - # The extra values given here take precedence over values defined on the client or passed to this method. - extra_headers: Headers | None = None, - extra_query: Query | None = None, - extra_body: Body | None = None, - timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> object: - """ - Handle JSON-RPC requests for an agent by its unique name. - - Args: - extra_headers: Send extra headers - - extra_query: Add additional query parameters to the request - - extra_body: Add additional JSON properties to the request - - timeout: Override the client-level default timeout for this request, in seconds - """ - if not agent_name: - raise ValueError(f"Expected a non-empty value for `agent_name` but received {agent_name!r}") - return await self._post( - f"/agents/name/{agent_name}/rpc", - body=await async_maybe_transform( - { - "method": method, - "params": params, - "id": id, - "jsonrpc": jsonrpc, - }, - name_rpc_params.NameRpcParams, - ), - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=object, - ) - - -class NameResourceWithRawResponse: - def __init__(self, name: NameResource) -> None: - self._name = name - - self.retrieve = to_raw_response_wrapper( - name.retrieve, - ) - self.delete = to_raw_response_wrapper( - name.delete, - ) - self.rpc = to_raw_response_wrapper( - name.rpc, - ) - - -class AsyncNameResourceWithRawResponse: - def __init__(self, name: AsyncNameResource) -> None: - self._name = name - - self.retrieve = async_to_raw_response_wrapper( - name.retrieve, - ) - self.delete = async_to_raw_response_wrapper( - name.delete, - ) - self.rpc = async_to_raw_response_wrapper( - name.rpc, - ) - - -class NameResourceWithStreamingResponse: - def __init__(self, name: NameResource) -> None: - self._name = name - - self.retrieve = to_streamed_response_wrapper( - name.retrieve, - ) - self.delete = to_streamed_response_wrapper( - name.delete, - ) - self.rpc = to_streamed_response_wrapper( - name.rpc, - ) - - -class AsyncNameResourceWithStreamingResponse: - def __init__(self, name: AsyncNameResource) -> None: - self._name = name - - self.retrieve = async_to_streamed_response_wrapper( - name.retrieve, - ) - self.delete = async_to_streamed_response_wrapper( - name.delete, - ) - self.rpc = async_to_streamed_response_wrapper( - name.rpc, - ) diff --git a/src/agentex/resources/echo.py b/src/agentex/resources/echo.py deleted file mode 100644 index 5966357a9..000000000 --- a/src/agentex/resources/echo.py +++ /dev/null @@ -1,162 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from __future__ import annotations - -import httpx - -from ..types import echo_send_params -from .._types import NOT_GIVEN, Body, Query, Headers, NotGiven -from .._utils import maybe_transform, async_maybe_transform -from .._compat import cached_property -from .._resource import SyncAPIResource, AsyncAPIResource -from .._response import ( - to_raw_response_wrapper, - to_streamed_response_wrapper, - async_to_raw_response_wrapper, - async_to_streamed_response_wrapper, -) -from .._base_client import make_request_options - -__all__ = ["EchoResource", "AsyncEchoResource"] - - -class EchoResource(SyncAPIResource): - @cached_property - def with_raw_response(self) -> EchoResourceWithRawResponse: - """ - This property can be used as a prefix for any HTTP method call to return - the raw response object instead of the parsed content. - - For more information, see https://www.github.com/scaleapi/agentex-python#accessing-raw-response-data-eg-headers - """ - return EchoResourceWithRawResponse(self) - - @cached_property - def with_streaming_response(self) -> EchoResourceWithStreamingResponse: - """ - An alternative to `.with_raw_response` that doesn't eagerly read the response body. - - For more information, see https://www.github.com/scaleapi/agentex-python#with_streaming_response - """ - return EchoResourceWithStreamingResponse(self) - - def send( - self, - *, - message: str, - # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. - # The extra values given here take precedence over values defined on the client or passed to this method. - extra_headers: Headers | None = None, - extra_query: Query | None = None, - extra_body: Body | None = None, - timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> object: - """ - Echo - - Args: - extra_headers: Send extra headers - - extra_query: Add additional query parameters to the request - - extra_body: Add additional JSON properties to the request - - timeout: Override the client-level default timeout for this request, in seconds - """ - return self._post( - "/echo", - body=maybe_transform({"message": message}, echo_send_params.EchoSendParams), - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=object, - ) - - -class AsyncEchoResource(AsyncAPIResource): - @cached_property - def with_raw_response(self) -> AsyncEchoResourceWithRawResponse: - """ - This property can be used as a prefix for any HTTP method call to return - the raw response object instead of the parsed content. - - For more information, see https://www.github.com/scaleapi/agentex-python#accessing-raw-response-data-eg-headers - """ - return AsyncEchoResourceWithRawResponse(self) - - @cached_property - def with_streaming_response(self) -> AsyncEchoResourceWithStreamingResponse: - """ - An alternative to `.with_raw_response` that doesn't eagerly read the response body. - - For more information, see https://www.github.com/scaleapi/agentex-python#with_streaming_response - """ - return AsyncEchoResourceWithStreamingResponse(self) - - async def send( - self, - *, - message: str, - # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. - # The extra values given here take precedence over values defined on the client or passed to this method. - extra_headers: Headers | None = None, - extra_query: Query | None = None, - extra_body: Body | None = None, - timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> object: - """ - Echo - - Args: - extra_headers: Send extra headers - - extra_query: Add additional query parameters to the request - - extra_body: Add additional JSON properties to the request - - timeout: Override the client-level default timeout for this request, in seconds - """ - return await self._post( - "/echo", - body=await async_maybe_transform({"message": message}, echo_send_params.EchoSendParams), - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=object, - ) - - -class EchoResourceWithRawResponse: - def __init__(self, echo: EchoResource) -> None: - self._echo = echo - - self.send = to_raw_response_wrapper( - echo.send, - ) - - -class AsyncEchoResourceWithRawResponse: - def __init__(self, echo: AsyncEchoResource) -> None: - self._echo = echo - - self.send = async_to_raw_response_wrapper( - echo.send, - ) - - -class EchoResourceWithStreamingResponse: - def __init__(self, echo: EchoResource) -> None: - self._echo = echo - - self.send = to_streamed_response_wrapper( - echo.send, - ) - - -class AsyncEchoResourceWithStreamingResponse: - def __init__(self, echo: AsyncEchoResource) -> None: - self._echo = echo - - self.send = async_to_streamed_response_wrapper( - echo.send, - ) diff --git a/src/agentex/resources/messages/batch.py b/src/agentex/resources/messages/batch.py index 478c2df5f..584126639 100644 --- a/src/agentex/resources/messages/batch.py +++ b/src/agentex/resources/messages/batch.py @@ -18,6 +18,7 @@ ) from ..._base_client import make_request_options from ...types.messages import batch_create_params, batch_update_params +from ...types.task_message_content_param import TaskMessageContentParam from ...types.messages.batch_create_response import BatchCreateResponse from ...types.messages.batch_update_response import BatchUpdateResponse @@ -47,7 +48,7 @@ def with_streaming_response(self) -> BatchResourceWithStreamingResponse: def create( self, *, - contents: Iterable[batch_create_params.Content], + contents: Iterable[TaskMessageContentParam], task_id: str, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. @@ -87,7 +88,7 @@ def update( self, *, task_id: str, - updates: Dict[str, batch_update_params.Updates], + updates: Dict[str, TaskMessageContentParam], # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -146,7 +147,7 @@ def with_streaming_response(self) -> AsyncBatchResourceWithStreamingResponse: async def create( self, *, - contents: Iterable[batch_create_params.Content], + contents: Iterable[TaskMessageContentParam], task_id: str, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. @@ -186,7 +187,7 @@ async def update( self, *, task_id: str, - updates: Dict[str, batch_update_params.Updates], + updates: Dict[str, TaskMessageContentParam], # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, diff --git a/src/agentex/resources/messages/messages.py b/src/agentex/resources/messages/messages.py index 7745cf76d..b7f78c941 100644 --- a/src/agentex/resources/messages/messages.py +++ b/src/agentex/resources/messages/messages.py @@ -3,6 +3,7 @@ from __future__ import annotations from typing import Optional +from typing_extensions import Literal import httpx @@ -14,7 +15,7 @@ BatchResourceWithStreamingResponse, AsyncBatchResourceWithStreamingResponse, ) -from ...types import StreamingStatus, message_list_params, message_create_params, message_update_params +from ...types import message_list_params, message_create_params, message_update_params from ..._types import NOT_GIVEN, Body, Query, Headers, NotGiven from ..._utils import maybe_transform, async_maybe_transform from ..._compat import cached_property @@ -27,8 +28,8 @@ ) from ..._base_client import make_request_options from ...types.task_message import TaskMessage -from ...types.streaming_status import StreamingStatus from ...types.message_list_response import MessageListResponse +from ...types.task_message_content_param import TaskMessageContentParam __all__ = ["MessagesResource", "AsyncMessagesResource"] @@ -60,9 +61,9 @@ def with_streaming_response(self) -> MessagesResourceWithStreamingResponse: def create( self, *, - content: message_create_params.Content, + content: TaskMessageContentParam, task_id: str, - streaming_status: Optional[StreamingStatus] | NotGiven = NOT_GIVEN, + streaming_status: Optional[Literal["IN_PROGRESS", "DONE"]] | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -135,9 +136,9 @@ def update( self, message_id: str, *, - content: message_update_params.Content, + content: TaskMessageContentParam, task_id: str, - streaming_status: Optional[StreamingStatus] | NotGiven = NOT_GIVEN, + streaming_status: Optional[Literal["IN_PROGRESS", "DONE"]] | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -245,9 +246,9 @@ def with_streaming_response(self) -> AsyncMessagesResourceWithStreamingResponse: async def create( self, *, - content: message_create_params.Content, + content: TaskMessageContentParam, task_id: str, - streaming_status: Optional[StreamingStatus] | NotGiven = NOT_GIVEN, + streaming_status: Optional[Literal["IN_PROGRESS", "DONE"]] | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -320,9 +321,9 @@ async def update( self, message_id: str, *, - content: message_update_params.Content, + content: TaskMessageContentParam, task_id: str, - streaming_status: Optional[StreamingStatus] | NotGiven = NOT_GIVEN, + streaming_status: Optional[Literal["IN_PROGRESS", "DONE"]] | NotGiven = NOT_GIVEN, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, diff --git a/src/agentex/resources/tasks/tasks.py b/src/agentex/resources/tasks.py similarity index 58% rename from src/agentex/resources/tasks/tasks.py rename to src/agentex/resources/tasks.py index ba8161ed2..936ee66cf 100644 --- a/src/agentex/resources/tasks/tasks.py +++ b/src/agentex/resources/tasks.py @@ -4,36 +4,24 @@ import httpx -from .name import ( - NameResource, - AsyncNameResource, - NameResourceWithRawResponse, - AsyncNameResourceWithRawResponse, - NameResourceWithStreamingResponse, - AsyncNameResourceWithStreamingResponse, -) -from ..._types import NOT_GIVEN, Body, Query, Headers, NotGiven -from ..._compat import cached_property -from ..._resource import SyncAPIResource, AsyncAPIResource -from ..._response import ( +from .._types import NOT_GIVEN, Body, Query, Headers, NotGiven +from .._compat import cached_property +from .._resource import SyncAPIResource, AsyncAPIResource +from .._response import ( to_raw_response_wrapper, to_streamed_response_wrapper, async_to_raw_response_wrapper, async_to_streamed_response_wrapper, ) -from ..._streaming import Stream, AsyncStream -from ...types.task import Task -from ..._base_client import make_request_options -from ...types.task_list_response import TaskListResponse +from .._streaming import Stream, AsyncStream +from ..types.task import Task +from .._base_client import make_request_options +from ..types.task_list_response import TaskListResponse __all__ = ["TasksResource", "AsyncTasksResource"] class TasksResource(SyncAPIResource): - @cached_property - def name(self) -> NameResource: - return NameResource(self._client) - @cached_property def with_raw_response(self) -> TasksResourceWithRawResponse: """ @@ -138,6 +126,72 @@ def delete( cast_to=Task, ) + def delete_by_name( + self, + task_name: str, + *, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> Task: + """ + Delete a task by its unique name. + + Args: + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + if not task_name: + raise ValueError(f"Expected a non-empty value for `task_name` but received {task_name!r}") + return self._delete( + f"/tasks/name/{task_name}", + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=Task, + ) + + def retrieve_by_name( + self, + task_name: str, + *, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> Task: + """ + Get a task by its unique name. + + Args: + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + if not task_name: + raise ValueError(f"Expected a non-empty value for `task_name` but received {task_name!r}") + return self._get( + f"/tasks/name/{task_name}", + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=Task, + ) + def stream_events( self, task_id: str, @@ -173,12 +227,43 @@ def stream_events( stream_cls=Stream[object], ) + def stream_events_by_name( + self, + task_name: str, + *, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> Stream[object]: + """ + Stream events for a task by its unique name. + + Args: + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + if not task_name: + raise ValueError(f"Expected a non-empty value for `task_name` but received {task_name!r}") + return self._get( + f"/tasks/name/{task_name}/stream", + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=object, + stream=True, + stream_cls=Stream[object], + ) -class AsyncTasksResource(AsyncAPIResource): - @cached_property - def name(self) -> AsyncNameResource: - return AsyncNameResource(self._client) +class AsyncTasksResource(AsyncAPIResource): @cached_property def with_raw_response(self) -> AsyncTasksResourceWithRawResponse: """ @@ -283,6 +368,72 @@ async def delete( cast_to=Task, ) + async def delete_by_name( + self, + task_name: str, + *, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> Task: + """ + Delete a task by its unique name. + + Args: + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + if not task_name: + raise ValueError(f"Expected a non-empty value for `task_name` but received {task_name!r}") + return await self._delete( + f"/tasks/name/{task_name}", + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=Task, + ) + + async def retrieve_by_name( + self, + task_name: str, + *, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> Task: + """ + Get a task by its unique name. + + Args: + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + if not task_name: + raise ValueError(f"Expected a non-empty value for `task_name` but received {task_name!r}") + return await self._get( + f"/tasks/name/{task_name}", + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=Task, + ) + async def stream_events( self, task_id: str, @@ -318,6 +469,41 @@ async def stream_events( stream_cls=AsyncStream[object], ) + async def stream_events_by_name( + self, + task_name: str, + *, + # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. + # The extra values given here take precedence over values defined on the client or passed to this method. + extra_headers: Headers | None = None, + extra_query: Query | None = None, + extra_body: Body | None = None, + timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, + ) -> AsyncStream[object]: + """ + Stream events for a task by its unique name. + + Args: + extra_headers: Send extra headers + + extra_query: Add additional query parameters to the request + + extra_body: Add additional JSON properties to the request + + timeout: Override the client-level default timeout for this request, in seconds + """ + if not task_name: + raise ValueError(f"Expected a non-empty value for `task_name` but received {task_name!r}") + return await self._get( + f"/tasks/name/{task_name}/stream", + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=object, + stream=True, + stream_cls=AsyncStream[object], + ) + class TasksResourceWithRawResponse: def __init__(self, tasks: TasksResource) -> None: @@ -332,13 +518,18 @@ def __init__(self, tasks: TasksResource) -> None: self.delete = to_raw_response_wrapper( tasks.delete, ) + self.delete_by_name = to_raw_response_wrapper( + tasks.delete_by_name, + ) + self.retrieve_by_name = to_raw_response_wrapper( + tasks.retrieve_by_name, + ) self.stream_events = to_raw_response_wrapper( tasks.stream_events, ) - - @cached_property - def name(self) -> NameResourceWithRawResponse: - return NameResourceWithRawResponse(self._tasks.name) + self.stream_events_by_name = to_raw_response_wrapper( + tasks.stream_events_by_name, + ) class AsyncTasksResourceWithRawResponse: @@ -354,13 +545,18 @@ def __init__(self, tasks: AsyncTasksResource) -> None: self.delete = async_to_raw_response_wrapper( tasks.delete, ) + self.delete_by_name = async_to_raw_response_wrapper( + tasks.delete_by_name, + ) + self.retrieve_by_name = async_to_raw_response_wrapper( + tasks.retrieve_by_name, + ) self.stream_events = async_to_raw_response_wrapper( tasks.stream_events, ) - - @cached_property - def name(self) -> AsyncNameResourceWithRawResponse: - return AsyncNameResourceWithRawResponse(self._tasks.name) + self.stream_events_by_name = async_to_raw_response_wrapper( + tasks.stream_events_by_name, + ) class TasksResourceWithStreamingResponse: @@ -376,13 +572,18 @@ def __init__(self, tasks: TasksResource) -> None: self.delete = to_streamed_response_wrapper( tasks.delete, ) + self.delete_by_name = to_streamed_response_wrapper( + tasks.delete_by_name, + ) + self.retrieve_by_name = to_streamed_response_wrapper( + tasks.retrieve_by_name, + ) self.stream_events = to_streamed_response_wrapper( tasks.stream_events, ) - - @cached_property - def name(self) -> NameResourceWithStreamingResponse: - return NameResourceWithStreamingResponse(self._tasks.name) + self.stream_events_by_name = to_streamed_response_wrapper( + tasks.stream_events_by_name, + ) class AsyncTasksResourceWithStreamingResponse: @@ -398,10 +599,15 @@ def __init__(self, tasks: AsyncTasksResource) -> None: self.delete = async_to_streamed_response_wrapper( tasks.delete, ) + self.delete_by_name = async_to_streamed_response_wrapper( + tasks.delete_by_name, + ) + self.retrieve_by_name = async_to_streamed_response_wrapper( + tasks.retrieve_by_name, + ) self.stream_events = async_to_streamed_response_wrapper( tasks.stream_events, ) - - @cached_property - def name(self) -> AsyncNameResourceWithStreamingResponse: - return AsyncNameResourceWithStreamingResponse(self._tasks.name) + self.stream_events_by_name = async_to_streamed_response_wrapper( + tasks.stream_events_by_name, + ) diff --git a/src/agentex/resources/tasks/__init__.py b/src/agentex/resources/tasks/__init__.py deleted file mode 100644 index 5a9c81b08..000000000 --- a/src/agentex/resources/tasks/__init__.py +++ /dev/null @@ -1,33 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from .name import ( - NameResource, - AsyncNameResource, - NameResourceWithRawResponse, - AsyncNameResourceWithRawResponse, - NameResourceWithStreamingResponse, - AsyncNameResourceWithStreamingResponse, -) -from .tasks import ( - TasksResource, - AsyncTasksResource, - TasksResourceWithRawResponse, - AsyncTasksResourceWithRawResponse, - TasksResourceWithStreamingResponse, - AsyncTasksResourceWithStreamingResponse, -) - -__all__ = [ - "NameResource", - "AsyncNameResource", - "NameResourceWithRawResponse", - "AsyncNameResourceWithRawResponse", - "NameResourceWithStreamingResponse", - "AsyncNameResourceWithStreamingResponse", - "TasksResource", - "AsyncTasksResource", - "TasksResourceWithRawResponse", - "AsyncTasksResourceWithRawResponse", - "TasksResourceWithStreamingResponse", - "AsyncTasksResourceWithStreamingResponse", -] diff --git a/src/agentex/resources/tasks/name.py b/src/agentex/resources/tasks/name.py deleted file mode 100644 index 7cef42eb4..000000000 --- a/src/agentex/resources/tasks/name.py +++ /dev/null @@ -1,324 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from __future__ import annotations - -import httpx - -from ..._types import NOT_GIVEN, Body, Query, Headers, NotGiven -from ..._compat import cached_property -from ..._resource import SyncAPIResource, AsyncAPIResource -from ..._response import ( - to_raw_response_wrapper, - to_streamed_response_wrapper, - async_to_raw_response_wrapper, - async_to_streamed_response_wrapper, -) -from ..._streaming import Stream, AsyncStream -from ...types.task import Task -from ..._base_client import make_request_options - -__all__ = ["NameResource", "AsyncNameResource"] - - -class NameResource(SyncAPIResource): - @cached_property - def with_raw_response(self) -> NameResourceWithRawResponse: - """ - This property can be used as a prefix for any HTTP method call to return - the raw response object instead of the parsed content. - - For more information, see https://www.github.com/scaleapi/agentex-python#accessing-raw-response-data-eg-headers - """ - return NameResourceWithRawResponse(self) - - @cached_property - def with_streaming_response(self) -> NameResourceWithStreamingResponse: - """ - An alternative to `.with_raw_response` that doesn't eagerly read the response body. - - For more information, see https://www.github.com/scaleapi/agentex-python#with_streaming_response - """ - return NameResourceWithStreamingResponse(self) - - def retrieve( - self, - task_name: str, - *, - # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. - # The extra values given here take precedence over values defined on the client or passed to this method. - extra_headers: Headers | None = None, - extra_query: Query | None = None, - extra_body: Body | None = None, - timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> Task: - """ - Get a task by its unique name. - - Args: - extra_headers: Send extra headers - - extra_query: Add additional query parameters to the request - - extra_body: Add additional JSON properties to the request - - timeout: Override the client-level default timeout for this request, in seconds - """ - if not task_name: - raise ValueError(f"Expected a non-empty value for `task_name` but received {task_name!r}") - return self._get( - f"/tasks/name/{task_name}", - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=Task, - ) - - def delete( - self, - task_name: str, - *, - # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. - # The extra values given here take precedence over values defined on the client or passed to this method. - extra_headers: Headers | None = None, - extra_query: Query | None = None, - extra_body: Body | None = None, - timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> Task: - """ - Delete a task by its unique name. - - Args: - extra_headers: Send extra headers - - extra_query: Add additional query parameters to the request - - extra_body: Add additional JSON properties to the request - - timeout: Override the client-level default timeout for this request, in seconds - """ - if not task_name: - raise ValueError(f"Expected a non-empty value for `task_name` but received {task_name!r}") - return self._delete( - f"/tasks/name/{task_name}", - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=Task, - ) - - def stream_events( - self, - task_name: str, - *, - # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. - # The extra values given here take precedence over values defined on the client or passed to this method. - extra_headers: Headers | None = None, - extra_query: Query | None = None, - extra_body: Body | None = None, - timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> Stream[object]: - """ - Stream events for a task by its unique name. - - Args: - extra_headers: Send extra headers - - extra_query: Add additional query parameters to the request - - extra_body: Add additional JSON properties to the request - - timeout: Override the client-level default timeout for this request, in seconds - """ - if not task_name: - raise ValueError(f"Expected a non-empty value for `task_name` but received {task_name!r}") - return self._get( - f"/tasks/name/{task_name}/stream", - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=object, - stream=True, - stream_cls=Stream[object], - ) - - -class AsyncNameResource(AsyncAPIResource): - @cached_property - def with_raw_response(self) -> AsyncNameResourceWithRawResponse: - """ - This property can be used as a prefix for any HTTP method call to return - the raw response object instead of the parsed content. - - For more information, see https://www.github.com/scaleapi/agentex-python#accessing-raw-response-data-eg-headers - """ - return AsyncNameResourceWithRawResponse(self) - - @cached_property - def with_streaming_response(self) -> AsyncNameResourceWithStreamingResponse: - """ - An alternative to `.with_raw_response` that doesn't eagerly read the response body. - - For more information, see https://www.github.com/scaleapi/agentex-python#with_streaming_response - """ - return AsyncNameResourceWithStreamingResponse(self) - - async def retrieve( - self, - task_name: str, - *, - # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. - # The extra values given here take precedence over values defined on the client or passed to this method. - extra_headers: Headers | None = None, - extra_query: Query | None = None, - extra_body: Body | None = None, - timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> Task: - """ - Get a task by its unique name. - - Args: - extra_headers: Send extra headers - - extra_query: Add additional query parameters to the request - - extra_body: Add additional JSON properties to the request - - timeout: Override the client-level default timeout for this request, in seconds - """ - if not task_name: - raise ValueError(f"Expected a non-empty value for `task_name` but received {task_name!r}") - return await self._get( - f"/tasks/name/{task_name}", - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=Task, - ) - - async def delete( - self, - task_name: str, - *, - # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. - # The extra values given here take precedence over values defined on the client or passed to this method. - extra_headers: Headers | None = None, - extra_query: Query | None = None, - extra_body: Body | None = None, - timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> Task: - """ - Delete a task by its unique name. - - Args: - extra_headers: Send extra headers - - extra_query: Add additional query parameters to the request - - extra_body: Add additional JSON properties to the request - - timeout: Override the client-level default timeout for this request, in seconds - """ - if not task_name: - raise ValueError(f"Expected a non-empty value for `task_name` but received {task_name!r}") - return await self._delete( - f"/tasks/name/{task_name}", - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=Task, - ) - - async def stream_events( - self, - task_name: str, - *, - # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. - # The extra values given here take precedence over values defined on the client or passed to this method. - extra_headers: Headers | None = None, - extra_query: Query | None = None, - extra_body: Body | None = None, - timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> AsyncStream[object]: - """ - Stream events for a task by its unique name. - - Args: - extra_headers: Send extra headers - - extra_query: Add additional query parameters to the request - - extra_body: Add additional JSON properties to the request - - timeout: Override the client-level default timeout for this request, in seconds - """ - if not task_name: - raise ValueError(f"Expected a non-empty value for `task_name` but received {task_name!r}") - return await self._get( - f"/tasks/name/{task_name}/stream", - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=object, - stream=True, - stream_cls=AsyncStream[object], - ) - - -class NameResourceWithRawResponse: - def __init__(self, name: NameResource) -> None: - self._name = name - - self.retrieve = to_raw_response_wrapper( - name.retrieve, - ) - self.delete = to_raw_response_wrapper( - name.delete, - ) - self.stream_events = to_raw_response_wrapper( - name.stream_events, - ) - - -class AsyncNameResourceWithRawResponse: - def __init__(self, name: AsyncNameResource) -> None: - self._name = name - - self.retrieve = async_to_raw_response_wrapper( - name.retrieve, - ) - self.delete = async_to_raw_response_wrapper( - name.delete, - ) - self.stream_events = async_to_raw_response_wrapper( - name.stream_events, - ) - - -class NameResourceWithStreamingResponse: - def __init__(self, name: NameResource) -> None: - self._name = name - - self.retrieve = to_streamed_response_wrapper( - name.retrieve, - ) - self.delete = to_streamed_response_wrapper( - name.delete, - ) - self.stream_events = to_streamed_response_wrapper( - name.stream_events, - ) - - -class AsyncNameResourceWithStreamingResponse: - def __init__(self, name: AsyncNameResource) -> None: - self._name = name - - self.retrieve = async_to_streamed_response_wrapper( - name.retrieve, - ) - self.delete = async_to_streamed_response_wrapper( - name.delete, - ) - self.stream_events = async_to_streamed_response_wrapper( - name.stream_events, - ) diff --git a/src/agentex/types/__init__.py b/src/agentex/types/__init__.py index 17dc3aa2e..26d1ecc8e 100644 --- a/src/agentex/types/__init__.py +++ b/src/agentex/types/__init__.py @@ -8,32 +8,38 @@ from .event import Event as Event from .state import State as State from .acp_type import AcpType as AcpType +from .data_delta import DataDelta as DataDelta +from .text_delta import TextDelta as TextDelta from .data_content import DataContent as DataContent from .task_message import TaskMessage as TaskMessage from .text_content import TextContent as TextContent from .message_style import MessageStyle as MessageStyle from .message_author import MessageAuthor as MessageAuthor from .agent_rpc_params import AgentRpcParams as AgentRpcParams -from .echo_send_params import EchoSendParams as EchoSendParams +from .agent_rpc_result import AgentRpcResult as AgentRpcResult from .span_list_params import SpanListParams as SpanListParams -from .streaming_status import StreamingStatus as StreamingStatus from .agent_list_params import AgentListParams as AgentListParams from .event_list_params import EventListParams as EventListParams from .state_list_params import StateListParams as StateListParams +from .agent_rpc_response import AgentRpcResponse as AgentRpcResponse from .agent_task_tracker import AgentTaskTracker as AgentTaskTracker from .data_content_param import DataContentParam as DataContentParam from .span_create_params import SpanCreateParams as SpanCreateParams from .span_list_response import SpanListResponse as SpanListResponse from .span_update_params import SpanUpdateParams as SpanUpdateParams from .task_list_response import TaskListResponse as TaskListResponse +from .task_message_delta import TaskMessageDelta as TaskMessageDelta from .text_content_param import TextContentParam as TextContentParam +from .tool_request_delta import ToolRequestDelta as ToolRequestDelta from .agent_list_response import AgentListResponse as AgentListResponse from .event_list_response import EventListResponse as EventListResponse from .message_list_params import MessageListParams as MessageListParams from .state_create_params import StateCreateParams as StateCreateParams from .state_list_response import StateListResponse as StateListResponse from .state_update_params import StateUpdateParams as StateUpdateParams +from .tool_response_delta import ToolResponseDelta as ToolResponseDelta from .tracker_list_params import TrackerListParams as TrackerListParams +from .task_message_content import TaskMessageContent as TaskMessageContent from .tool_request_content import ToolRequestContent as ToolRequestContent from .message_create_params import MessageCreateParams as MessageCreateParams from .message_list_response import MessageListResponse as MessageListResponse @@ -41,5 +47,7 @@ from .tool_response_content import ToolResponseContent as ToolResponseContent from .tracker_list_response import TrackerListResponse as TrackerListResponse from .tracker_update_params import TrackerUpdateParams as TrackerUpdateParams +from .agent_rpc_by_name_params import AgentRpcByNameParams as AgentRpcByNameParams +from .task_message_content_param import TaskMessageContentParam as TaskMessageContentParam from .tool_request_content_param import ToolRequestContentParam as ToolRequestContentParam from .tool_response_content_param import ToolResponseContentParam as ToolResponseContentParam diff --git a/src/agentex/types/agent_rpc_by_name_params.py b/src/agentex/types/agent_rpc_by_name_params.py new file mode 100644 index 000000000..5be189d7a --- /dev/null +++ b/src/agentex/types/agent_rpc_by_name_params.py @@ -0,0 +1,21 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing import Union +from typing_extensions import Literal, Required, TypedDict + +from .agent_rpc_params import AgentRpcParams + +__all__ = ["AgentRpcByNameParams"] + + +class AgentRpcByNameParams(TypedDict, total=False): + method: Required[Literal["event/send", "task/create", "message/send", "task/cancel"]] + + params: Required[AgentRpcParams] + """The parameters for the agent RPC request""" + + id: Union[int, str, None] + + jsonrpc: Literal["2.0"] diff --git a/src/agentex/types/agent_rpc_params.py b/src/agentex/types/agent_rpc_params.py index 2c79a7a90..5082b18cb 100644 --- a/src/agentex/types/agent_rpc_params.py +++ b/src/agentex/types/agent_rpc_params.py @@ -3,36 +3,14 @@ from __future__ import annotations from typing import Dict, Union, Optional -from typing_extensions import Literal, Required, TypeAlias, TypedDict +from typing_extensions import Required, TypeAlias, TypedDict -from .data_content_param import DataContentParam -from .text_content_param import TextContentParam -from .tool_request_content_param import ToolRequestContentParam -from .tool_response_content_param import ToolResponseContentParam +from .task_message_content_param import TaskMessageContentParam -__all__ = [ - "AgentRpcParams", - "Params", - "ParamsCreateTaskRequest", - "ParamsCancelTaskRequest", - "ParamsSendMessageRequest", - "ParamsSendMessageRequestContent", - "ParamsSendEventRequest", - "ParamsSendEventRequestContent", -] +__all__ = ["AgentRpcParams", "CreateTaskRequest", "CancelTaskRequest", "SendMessageRequest", "SendEventRequest"] -class AgentRpcParams(TypedDict, total=False): - method: Required[Literal["event/send", "task/create", "message/send", "task/cancel"]] - - params: Required[Params] - - id: Union[int, str, None] - - jsonrpc: Literal["2.0"] - - -class ParamsCreateTaskRequest(TypedDict, total=False): +class CreateTaskRequest(TypedDict, total=False): name: Optional[str] """The name of the task to create""" @@ -40,7 +18,7 @@ class ParamsCreateTaskRequest(TypedDict, total=False): """The parameters for the task""" -class ParamsCancelTaskRequest(TypedDict, total=False): +class CancelTaskRequest(TypedDict, total=False): task_id: Optional[str] """The ID of the task to cancel. Either this or task_name must be provided.""" @@ -48,13 +26,8 @@ class ParamsCancelTaskRequest(TypedDict, total=False): """The name of the task to cancel. Either this or task_id must be provided.""" -ParamsSendMessageRequestContent: TypeAlias = Union[ - TextContentParam, DataContentParam, ToolRequestContentParam, ToolResponseContentParam -] - - -class ParamsSendMessageRequest(TypedDict, total=False): - content: Required[ParamsSendMessageRequestContent] +class SendMessageRequest(TypedDict, total=False): + content: Required[TaskMessageContentParam] """The message that was sent to the agent""" stream: bool @@ -64,13 +37,8 @@ class ParamsSendMessageRequest(TypedDict, total=False): """The ID of the task that the message was sent to""" -ParamsSendEventRequestContent: TypeAlias = Union[ - TextContentParam, DataContentParam, ToolRequestContentParam, ToolResponseContentParam -] - - -class ParamsSendEventRequest(TypedDict, total=False): - content: Optional[ParamsSendEventRequestContent] +class SendEventRequest(TypedDict, total=False): + content: Optional[TaskMessageContentParam] """The content to send to the event""" task_id: Optional[str] @@ -80,6 +48,4 @@ class ParamsSendEventRequest(TypedDict, total=False): """The name of the task that the event was sent to""" -Params: TypeAlias = Union[ - ParamsCreateTaskRequest, ParamsCancelTaskRequest, ParamsSendMessageRequest, ParamsSendEventRequest -] +AgentRpcParams: TypeAlias = Union[CreateTaskRequest, CancelTaskRequest, SendMessageRequest, SendEventRequest] diff --git a/src/agentex/types/agent_rpc_params1.py b/src/agentex/types/agent_rpc_params1.py new file mode 100644 index 000000000..3eae8b683 --- /dev/null +++ b/src/agentex/types/agent_rpc_params1.py @@ -0,0 +1,21 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing import Union +from typing_extensions import Literal, Required, TypedDict + +from . import agent_rpc_params + +__all__ = ["AgentRpcParams"] + + +class AgentRpcParams(TypedDict, total=False): + method: Required[Literal["event/send", "task/create", "message/send", "task/cancel"]] + + params: Required[agent_rpc_params.AgentRpcParams] + """The parameters for the agent RPC request""" + + id: Union[int, str, None] + + jsonrpc: Literal["2.0"] diff --git a/src/agentex/types/agent_rpc_response.py b/src/agentex/types/agent_rpc_response.py new file mode 100644 index 000000000..e9995e801 --- /dev/null +++ b/src/agentex/types/agent_rpc_response.py @@ -0,0 +1,20 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing import Union, Optional +from typing_extensions import Literal + +from .._models import BaseModel +from .agent_rpc_result import AgentRpcResult + +__all__ = ["AgentRpcResponse"] + + +class AgentRpcResponse(BaseModel): + result: Optional[AgentRpcResult] = None + """The result of the agent RPC request""" + + id: Union[int, str, None] = None + + error: Optional[object] = None + + jsonrpc: Optional[Literal["2.0"]] = None diff --git a/src/agentex/types/agent_rpc_result.py b/src/agentex/types/agent_rpc_result.py new file mode 100644 index 000000000..63e30a5df --- /dev/null +++ b/src/agentex/types/agent_rpc_result.py @@ -0,0 +1,90 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing import List, Union, Optional +from typing_extensions import Literal, TypeAlias + +from .task import Task +from .event import Event +from .._models import BaseModel +from .task_message import TaskMessage +from .task_message_delta import TaskMessageDelta +from .task_message_content import TaskMessageContent + +__all__ = [ + "AgentRpcResult", + "StreamTaskMessageStart", + "StreamTaskMessageDelta", + "StreamTaskMessageFull", + "StreamTaskMessageDone", +] + + +class StreamTaskMessageStart(BaseModel): + content: TaskMessageContent + + index: Optional[int] = None + + parent_task_message: Optional[TaskMessage] = None + """Represents a message in the agent system. + + This entity is used to store messages in MongoDB, with each message associated + with a specific task. + """ + + type: Optional[Literal["start"]] = None + + +class StreamTaskMessageDelta(BaseModel): + delta: Optional[TaskMessageDelta] = None + """Delta for text updates""" + + index: Optional[int] = None + + parent_task_message: Optional[TaskMessage] = None + """Represents a message in the agent system. + + This entity is used to store messages in MongoDB, with each message associated + with a specific task. + """ + + type: Optional[Literal["delta"]] = None + + +class StreamTaskMessageFull(BaseModel): + content: TaskMessageContent + + index: Optional[int] = None + + parent_task_message: Optional[TaskMessage] = None + """Represents a message in the agent system. + + This entity is used to store messages in MongoDB, with each message associated + with a specific task. + """ + + type: Optional[Literal["full"]] = None + + +class StreamTaskMessageDone(BaseModel): + index: Optional[int] = None + + parent_task_message: Optional[TaskMessage] = None + """Represents a message in the agent system. + + This entity is used to store messages in MongoDB, with each message associated + with a specific task. + """ + + type: Optional[Literal["done"]] = None + + +AgentRpcResult: TypeAlias = Union[ + List[TaskMessage], + StreamTaskMessageStart, + StreamTaskMessageDelta, + StreamTaskMessageFull, + StreamTaskMessageDone, + Task, + Event, + None, +] diff --git a/src/agentex/types/agents/__init__.py b/src/agentex/types/agents/__init__.py deleted file mode 100644 index 6b2986a26..000000000 --- a/src/agentex/types/agents/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from __future__ import annotations - -from .name_rpc_params import NameRpcParams as NameRpcParams diff --git a/src/agentex/types/agents/name_rpc_params.py b/src/agentex/types/agents/name_rpc_params.py deleted file mode 100644 index 6a68b0ba6..000000000 --- a/src/agentex/types/agents/name_rpc_params.py +++ /dev/null @@ -1,85 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from __future__ import annotations - -from typing import Dict, Union, Optional -from typing_extensions import Literal, Required, TypeAlias, TypedDict - -from ..data_content_param import DataContentParam -from ..text_content_param import TextContentParam -from ..tool_request_content_param import ToolRequestContentParam -from ..tool_response_content_param import ToolResponseContentParam - -__all__ = [ - "NameRpcParams", - "Params", - "ParamsCreateTaskRequest", - "ParamsCancelTaskRequest", - "ParamsSendMessageRequest", - "ParamsSendMessageRequestContent", - "ParamsSendEventRequest", - "ParamsSendEventRequestContent", -] - - -class NameRpcParams(TypedDict, total=False): - method: Required[Literal["event/send", "task/create", "message/send", "task/cancel"]] - - params: Required[Params] - - id: Union[int, str, None] - - jsonrpc: Literal["2.0"] - - -class ParamsCreateTaskRequest(TypedDict, total=False): - name: Optional[str] - """The name of the task to create""" - - params: Optional[Dict[str, object]] - """The parameters for the task""" - - -class ParamsCancelTaskRequest(TypedDict, total=False): - task_id: Optional[str] - """The ID of the task to cancel. Either this or task_name must be provided.""" - - task_name: Optional[str] - """The name of the task to cancel. Either this or task_id must be provided.""" - - -ParamsSendMessageRequestContent: TypeAlias = Union[ - TextContentParam, DataContentParam, ToolRequestContentParam, ToolResponseContentParam -] - - -class ParamsSendMessageRequest(TypedDict, total=False): - content: Required[ParamsSendMessageRequestContent] - """The message that was sent to the agent""" - - stream: bool - """Whether to stream the response message back to the client""" - - task_id: Optional[str] - """The ID of the task that the message was sent to""" - - -ParamsSendEventRequestContent: TypeAlias = Union[ - TextContentParam, DataContentParam, ToolRequestContentParam, ToolResponseContentParam -] - - -class ParamsSendEventRequest(TypedDict, total=False): - content: Optional[ParamsSendEventRequestContent] - """The content to send to the event""" - - task_id: Optional[str] - """The ID of the task that the event was sent to""" - - task_name: Optional[str] - """The name of the task that the event was sent to""" - - -Params: TypeAlias = Union[ - ParamsCreateTaskRequest, ParamsCancelTaskRequest, ParamsSendMessageRequest, ParamsSendEventRequest -] diff --git a/src/agentex/types/data_content.py b/src/agentex/types/data_content.py index 2ed340454..5cb479921 100644 --- a/src/agentex/types/data_content.py +++ b/src/agentex/types/data_content.py @@ -20,11 +20,11 @@ class DataContent(BaseModel): data: Dict[str, object] """The contents of the data message.""" - style: Optional[MessageStyle] = None + style: MessageStyle = "static" """The style of the message. This is used by the client to determine how to display the message. """ - type: Optional[Literal["data"]] = None + type: Literal["data"] = "data" """The type of the message, in this case `data`.""" diff --git a/src/agentex/types/data_delta.py b/src/agentex/types/data_delta.py new file mode 100644 index 000000000..e30c12e71 --- /dev/null +++ b/src/agentex/types/data_delta.py @@ -0,0 +1,14 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing import Optional +from typing_extensions import Literal + +from .._models import BaseModel + +__all__ = ["DataDelta"] + + +class DataDelta(BaseModel): + data_delta: Optional[str] = None + + type: Optional[Literal["data"]] = None diff --git a/src/agentex/types/echo_send_params.py b/src/agentex/types/echo_send_params.py deleted file mode 100644 index 3e237817e..000000000 --- a/src/agentex/types/echo_send_params.py +++ /dev/null @@ -1,11 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from __future__ import annotations - -from typing_extensions import Required, TypedDict - -__all__ = ["EchoSendParams"] - - -class EchoSendParams(TypedDict, total=False): - message: Required[str] diff --git a/src/agentex/types/event.py b/src/agentex/types/event.py index 3f1e5997d..9a544cb66 100644 --- a/src/agentex/types/event.py +++ b/src/agentex/types/event.py @@ -1,21 +1,12 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -from typing import Union, Optional +from typing import Optional from datetime import datetime -from typing_extensions import Annotated, TypeAlias -from .._utils import PropertyInfo from .._models import BaseModel -from .data_content import DataContent -from .text_content import TextContent -from .tool_request_content import ToolRequestContent -from .tool_response_content import ToolResponseContent +from .task_message_content import TaskMessageContent -__all__ = ["Event", "Content"] - -Content: TypeAlias = Annotated[ - Union[TextContent, DataContent, ToolRequestContent, ToolResponseContent, None], PropertyInfo(discriminator="type") -] +__all__ = ["Event"] class Event(BaseModel): @@ -31,7 +22,7 @@ class Event(BaseModel): task_id: str """The UUID of the task that the event belongs to""" - content: Optional[Content] = None + content: Optional[TaskMessageContent] = None """The content of the event""" created_at: Optional[datetime] = None diff --git a/src/agentex/types/message_create_params.py b/src/agentex/types/message_create_params.py index 06ec3727a..787715ec6 100644 --- a/src/agentex/types/message_create_params.py +++ b/src/agentex/types/message_create_params.py @@ -2,24 +2,17 @@ from __future__ import annotations -from typing import Union, Optional -from typing_extensions import Required, TypeAlias, TypedDict +from typing import Optional +from typing_extensions import Literal, Required, TypedDict -from .streaming_status import StreamingStatus -from .data_content_param import DataContentParam -from .text_content_param import TextContentParam -from .tool_request_content_param import ToolRequestContentParam -from .tool_response_content_param import ToolResponseContentParam +from .task_message_content_param import TaskMessageContentParam -__all__ = ["MessageCreateParams", "Content"] +__all__ = ["MessageCreateParams"] class MessageCreateParams(TypedDict, total=False): - content: Required[Content] + content: Required[TaskMessageContentParam] task_id: Required[str] - streaming_status: Optional[StreamingStatus] - - -Content: TypeAlias = Union[TextContentParam, DataContentParam, ToolRequestContentParam, ToolResponseContentParam] + streaming_status: Optional[Literal["IN_PROGRESS", "DONE"]] diff --git a/src/agentex/types/message_update_params.py b/src/agentex/types/message_update_params.py index bc5305b8e..ea3dbaf89 100644 --- a/src/agentex/types/message_update_params.py +++ b/src/agentex/types/message_update_params.py @@ -2,24 +2,17 @@ from __future__ import annotations -from typing import Union, Optional -from typing_extensions import Required, TypeAlias, TypedDict +from typing import Optional +from typing_extensions import Literal, Required, TypedDict -from .streaming_status import StreamingStatus -from .data_content_param import DataContentParam -from .text_content_param import TextContentParam -from .tool_request_content_param import ToolRequestContentParam -from .tool_response_content_param import ToolResponseContentParam +from .task_message_content_param import TaskMessageContentParam -__all__ = ["MessageUpdateParams", "Content"] +__all__ = ["MessageUpdateParams"] class MessageUpdateParams(TypedDict, total=False): - content: Required[Content] + content: Required[TaskMessageContentParam] task_id: Required[str] - streaming_status: Optional[StreamingStatus] - - -Content: TypeAlias = Union[TextContentParam, DataContentParam, ToolRequestContentParam, ToolResponseContentParam] + streaming_status: Optional[Literal["IN_PROGRESS", "DONE"]] diff --git a/src/agentex/types/messages/batch_create_params.py b/src/agentex/types/messages/batch_create_params.py index c09c69a9e..0a0153aea 100644 --- a/src/agentex/types/messages/batch_create_params.py +++ b/src/agentex/types/messages/batch_create_params.py @@ -2,21 +2,15 @@ from __future__ import annotations -from typing import Union, Iterable -from typing_extensions import Required, TypeAlias, TypedDict +from typing import Iterable +from typing_extensions import Required, TypedDict -from ..data_content_param import DataContentParam -from ..text_content_param import TextContentParam -from ..tool_request_content_param import ToolRequestContentParam -from ..tool_response_content_param import ToolResponseContentParam +from ..task_message_content_param import TaskMessageContentParam -__all__ = ["BatchCreateParams", "Content"] +__all__ = ["BatchCreateParams"] class BatchCreateParams(TypedDict, total=False): - contents: Required[Iterable[Content]] + contents: Required[Iterable[TaskMessageContentParam]] task_id: Required[str] - - -Content: TypeAlias = Union[TextContentParam, DataContentParam, ToolRequestContentParam, ToolResponseContentParam] diff --git a/src/agentex/types/messages/batch_update_params.py b/src/agentex/types/messages/batch_update_params.py index 68f24f8d7..c25e46f6c 100644 --- a/src/agentex/types/messages/batch_update_params.py +++ b/src/agentex/types/messages/batch_update_params.py @@ -2,21 +2,15 @@ from __future__ import annotations -from typing import Dict, Union -from typing_extensions import Required, TypeAlias, TypedDict +from typing import Dict +from typing_extensions import Required, TypedDict -from ..data_content_param import DataContentParam -from ..text_content_param import TextContentParam -from ..tool_request_content_param import ToolRequestContentParam -from ..tool_response_content_param import ToolResponseContentParam +from ..task_message_content_param import TaskMessageContentParam -__all__ = ["BatchUpdateParams", "Updates"] +__all__ = ["BatchUpdateParams"] class BatchUpdateParams(TypedDict, total=False): task_id: Required[str] - updates: Required[Dict[str, Updates]] - - -Updates: TypeAlias = Union[TextContentParam, DataContentParam, ToolRequestContentParam, ToolResponseContentParam] + updates: Required[Dict[str, TaskMessageContentParam]] diff --git a/src/agentex/types/streaming_status.py b/src/agentex/types/streaming_status.py deleted file mode 100644 index 196d78815..000000000 --- a/src/agentex/types/streaming_status.py +++ /dev/null @@ -1,7 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from typing_extensions import Literal, TypeAlias - -__all__ = ["StreamingStatus"] - -StreamingStatus: TypeAlias = Literal["IN_PROGRESS", "DONE"] diff --git a/src/agentex/types/task_message.py b/src/agentex/types/task_message.py index 686ade7d6..b5938cc8e 100644 --- a/src/agentex/types/task_message.py +++ b/src/agentex/types/task_message.py @@ -1,36 +1,33 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -from typing import Union, Optional +from typing import Optional from datetime import datetime -from typing_extensions import Annotated, TypeAlias +from typing_extensions import Literal -from .._utils import PropertyInfo from .._models import BaseModel -from .data_content import DataContent -from .text_content import TextContent -from .streaming_status import StreamingStatus -from .tool_request_content import ToolRequestContent -from .tool_response_content import ToolResponseContent +from .task_message_content import TaskMessageContent -__all__ = ["TaskMessage", "Content"] - -Content: TypeAlias = Annotated[ - Union[TextContent, DataContent, ToolRequestContent, ToolResponseContent], PropertyInfo(discriminator="type") -] +__all__ = ["TaskMessage"] class TaskMessage(BaseModel): - id: str - """The task message's unique id""" + content: TaskMessageContent + """The content of the message. - content: Content - - created_at: datetime - """The timestamp when the message was created""" + This content is not OpenAI compatible. These are messages that are meant to be + displayed to the user. + """ task_id: str + """ID of the task this message belongs to""" + + id: Optional[str] = None + """The task message's unique id""" + + created_at: Optional[datetime] = None + """The timestamp when the message was created""" - streaming_status: Optional[StreamingStatus] = None + streaming_status: Optional[Literal["IN_PROGRESS", "DONE"]] = None updated_at: Optional[datetime] = None """The timestamp when the message was last updated""" diff --git a/src/agentex/types/task_message_content.py b/src/agentex/types/task_message_content.py new file mode 100644 index 000000000..126992b40 --- /dev/null +++ b/src/agentex/types/task_message_content.py @@ -0,0 +1,16 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing import Union +from typing_extensions import Annotated, TypeAlias + +from .._utils import PropertyInfo +from .data_content import DataContent +from .text_content import TextContent +from .tool_request_content import ToolRequestContent +from .tool_response_content import ToolResponseContent + +__all__ = ["TaskMessageContent"] + +TaskMessageContent: TypeAlias = Annotated[ + Union[TextContent, DataContent, ToolRequestContent, ToolResponseContent], PropertyInfo(discriminator="type") +] diff --git a/src/agentex/types/task_message_content_param.py b/src/agentex/types/task_message_content_param.py new file mode 100644 index 000000000..6991c64e7 --- /dev/null +++ b/src/agentex/types/task_message_content_param.py @@ -0,0 +1,17 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing import Union +from typing_extensions import TypeAlias + +from .data_content_param import DataContentParam +from .text_content_param import TextContentParam +from .tool_request_content_param import ToolRequestContentParam +from .tool_response_content_param import ToolResponseContentParam + +__all__ = ["TaskMessageContentParam"] + +TaskMessageContentParam: TypeAlias = Union[ + TextContentParam, DataContentParam, ToolRequestContentParam, ToolResponseContentParam +] diff --git a/src/agentex/types/task_message_delta.py b/src/agentex/types/task_message_delta.py new file mode 100644 index 000000000..5a477e5a3 --- /dev/null +++ b/src/agentex/types/task_message_delta.py @@ -0,0 +1,16 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing import Union +from typing_extensions import Annotated, TypeAlias + +from .._utils import PropertyInfo +from .data_delta import DataDelta +from .text_delta import TextDelta +from .tool_request_delta import ToolRequestDelta +from .tool_response_delta import ToolResponseDelta + +__all__ = ["TaskMessageDelta"] + +TaskMessageDelta: TypeAlias = Annotated[ + Union[TextDelta, DataDelta, ToolRequestDelta, ToolResponseDelta], PropertyInfo(discriminator="type") +] diff --git a/src/agentex/types/tasks/__init__.py b/src/agentex/types/tasks/__init__.py deleted file mode 100644 index f8ee8b14b..000000000 --- a/src/agentex/types/tasks/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from __future__ import annotations diff --git a/src/agentex/types/text_content.py b/src/agentex/types/text_content.py index c96c797f8..f4586698d 100644 --- a/src/agentex/types/text_content.py +++ b/src/agentex/types/text_content.py @@ -37,17 +37,17 @@ class TextContent(BaseModel): attachments: Optional[List[Attachment]] = None """Optional list of file attachments with structured metadata.""" - format: Optional[Literal["markdown", "plain", "code"]] = None + format: Literal["markdown", "plain", "code"] = "plain" """The format of the message. This is used by the client to determine how to display the message. """ - style: Optional[MessageStyle] = None + style: MessageStyle = "static" """The style of the message. This is used by the client to determine how to display the message. """ - type: Optional[Literal["text"]] = None + type: Literal["text"] = "text" """The type of the message, in this case `text`.""" diff --git a/src/agentex/types/text_delta.py b/src/agentex/types/text_delta.py new file mode 100644 index 000000000..29a60cfd2 --- /dev/null +++ b/src/agentex/types/text_delta.py @@ -0,0 +1,14 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing import Optional +from typing_extensions import Literal + +from .._models import BaseModel + +__all__ = ["TextDelta"] + + +class TextDelta(BaseModel): + text_delta: Optional[str] = None + + type: Optional[Literal["text"]] = None diff --git a/src/agentex/types/tool_request_content.py b/src/agentex/types/tool_request_content.py index 66128630a..4fd52eb8f 100644 --- a/src/agentex/types/tool_request_content.py +++ b/src/agentex/types/tool_request_content.py @@ -26,11 +26,11 @@ class ToolRequestContent(BaseModel): tool_call_id: str """The ID of the tool call that is being requested.""" - style: Optional[MessageStyle] = None + style: MessageStyle = "static" """The style of the message. This is used by the client to determine how to display the message. """ - type: Optional[Literal["tool_request"]] = None + type: Literal["tool_request"] = "tool_request" """The type of the message, in this case `tool_request`.""" diff --git a/src/agentex/types/tool_request_delta.py b/src/agentex/types/tool_request_delta.py new file mode 100644 index 000000000..7877dfdde --- /dev/null +++ b/src/agentex/types/tool_request_delta.py @@ -0,0 +1,18 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing import Optional +from typing_extensions import Literal + +from .._models import BaseModel + +__all__ = ["ToolRequestDelta"] + + +class ToolRequestDelta(BaseModel): + name: str + + tool_call_id: str + + arguments_delta: Optional[str] = None + + type: Optional[Literal["tool_request"]] = None diff --git a/src/agentex/types/tool_response_content.py b/src/agentex/types/tool_response_content.py index f6ba15b72..7f72443cc 100644 --- a/src/agentex/types/tool_response_content.py +++ b/src/agentex/types/tool_response_content.py @@ -26,11 +26,11 @@ class ToolResponseContent(BaseModel): tool_call_id: str """The ID of the tool call that is being responded to.""" - style: Optional[MessageStyle] = None + style: MessageStyle = "static" """The style of the message. This is used by the client to determine how to display the message. """ - type: Optional[Literal["tool_response"]] = None + type: Literal["tool_response"] = "tool_response" """The type of the message, in this case `tool_response`.""" diff --git a/src/agentex/types/tool_response_delta.py b/src/agentex/types/tool_response_delta.py new file mode 100644 index 000000000..383770db9 --- /dev/null +++ b/src/agentex/types/tool_response_delta.py @@ -0,0 +1,18 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing import Optional +from typing_extensions import Literal + +from .._models import BaseModel + +__all__ = ["ToolResponseDelta"] + + +class ToolResponseDelta(BaseModel): + name: str + + tool_call_id: str + + content_delta: Optional[str] = None + + type: Optional[Literal["tool_response"]] = None diff --git a/src/agentex_sdk/lib/.keep b/src/agentex_sdk/lib/.keep deleted file mode 100644 index 5e2c99fdb..000000000 --- a/src/agentex_sdk/lib/.keep +++ /dev/null @@ -1,4 +0,0 @@ -File generated from our OpenAPI spec by Stainless. - -This directory can be used to store custom files to expand the SDK. -It is ignored by Stainless code generation and its content (other than this keep file) won't be touched. \ No newline at end of file diff --git a/tests/api_resources/agents/__init__.py b/tests/api_resources/agents/__init__.py deleted file mode 100644 index fd8019a9a..000000000 --- a/tests/api_resources/agents/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. diff --git a/tests/api_resources/agents/test_name.py b/tests/api_resources/agents/test_name.py deleted file mode 100644 index a16fe4477..000000000 --- a/tests/api_resources/agents/test_name.py +++ /dev/null @@ -1,322 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from __future__ import annotations - -import os -from typing import Any, cast - -import pytest - -from agentex import Agentex, AsyncAgentex -from tests.utils import assert_matches_type -from agentex.types import Agent - -base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010") - - -class TestName: - parametrize = pytest.mark.parametrize("client", [False, True], indirect=True, ids=["loose", "strict"]) - - @pytest.mark.skip() - @parametrize - def test_method_retrieve(self, client: Agentex) -> None: - name = client.agents.name.retrieve( - "agent_name", - ) - assert_matches_type(Agent, name, path=["response"]) - - @pytest.mark.skip() - @parametrize - def test_raw_response_retrieve(self, client: Agentex) -> None: - response = client.agents.name.with_raw_response.retrieve( - "agent_name", - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - name = response.parse() - assert_matches_type(Agent, name, path=["response"]) - - @pytest.mark.skip() - @parametrize - def test_streaming_response_retrieve(self, client: Agentex) -> None: - with client.agents.name.with_streaming_response.retrieve( - "agent_name", - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - name = response.parse() - assert_matches_type(Agent, name, path=["response"]) - - assert cast(Any, response.is_closed) is True - - @pytest.mark.skip() - @parametrize - def test_path_params_retrieve(self, client: Agentex) -> None: - with pytest.raises(ValueError, match=r"Expected a non-empty value for `agent_name` but received ''"): - client.agents.name.with_raw_response.retrieve( - "", - ) - - @pytest.mark.skip() - @parametrize - def test_method_delete(self, client: Agentex) -> None: - name = client.agents.name.delete( - "agent_name", - ) - assert_matches_type(Agent, name, path=["response"]) - - @pytest.mark.skip() - @parametrize - def test_raw_response_delete(self, client: Agentex) -> None: - response = client.agents.name.with_raw_response.delete( - "agent_name", - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - name = response.parse() - assert_matches_type(Agent, name, path=["response"]) - - @pytest.mark.skip() - @parametrize - def test_streaming_response_delete(self, client: Agentex) -> None: - with client.agents.name.with_streaming_response.delete( - "agent_name", - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - name = response.parse() - assert_matches_type(Agent, name, path=["response"]) - - assert cast(Any, response.is_closed) is True - - @pytest.mark.skip() - @parametrize - def test_path_params_delete(self, client: Agentex) -> None: - with pytest.raises(ValueError, match=r"Expected a non-empty value for `agent_name` but received ''"): - client.agents.name.with_raw_response.delete( - "", - ) - - @pytest.mark.skip() - @parametrize - def test_method_rpc(self, client: Agentex) -> None: - name = client.agents.name.rpc( - agent_name="agent_name", - method="event/send", - params={}, - ) - assert_matches_type(object, name, path=["response"]) - - @pytest.mark.skip() - @parametrize - def test_method_rpc_with_all_params(self, client: Agentex) -> None: - name = client.agents.name.rpc( - agent_name="agent_name", - method="event/send", - params={ - "name": "name", - "params": {"foo": "bar"}, - }, - id=0, - jsonrpc="2.0", - ) - assert_matches_type(object, name, path=["response"]) - - @pytest.mark.skip() - @parametrize - def test_raw_response_rpc(self, client: Agentex) -> None: - response = client.agents.name.with_raw_response.rpc( - agent_name="agent_name", - method="event/send", - params={}, - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - name = response.parse() - assert_matches_type(object, name, path=["response"]) - - @pytest.mark.skip() - @parametrize - def test_streaming_response_rpc(self, client: Agentex) -> None: - with client.agents.name.with_streaming_response.rpc( - agent_name="agent_name", - method="event/send", - params={}, - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - name = response.parse() - assert_matches_type(object, name, path=["response"]) - - assert cast(Any, response.is_closed) is True - - @pytest.mark.skip() - @parametrize - def test_path_params_rpc(self, client: Agentex) -> None: - with pytest.raises(ValueError, match=r"Expected a non-empty value for `agent_name` but received ''"): - client.agents.name.with_raw_response.rpc( - agent_name="", - method="event/send", - params={}, - ) - - -class TestAsyncName: - parametrize = pytest.mark.parametrize( - "async_client", [False, True, {"http_client": "aiohttp"}], indirect=True, ids=["loose", "strict", "aiohttp"] - ) - - @pytest.mark.skip() - @parametrize - async def test_method_retrieve(self, async_client: AsyncAgentex) -> None: - name = await async_client.agents.name.retrieve( - "agent_name", - ) - assert_matches_type(Agent, name, path=["response"]) - - @pytest.mark.skip() - @parametrize - async def test_raw_response_retrieve(self, async_client: AsyncAgentex) -> None: - response = await async_client.agents.name.with_raw_response.retrieve( - "agent_name", - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - name = await response.parse() - assert_matches_type(Agent, name, path=["response"]) - - @pytest.mark.skip() - @parametrize - async def test_streaming_response_retrieve(self, async_client: AsyncAgentex) -> None: - async with async_client.agents.name.with_streaming_response.retrieve( - "agent_name", - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - name = await response.parse() - assert_matches_type(Agent, name, path=["response"]) - - assert cast(Any, response.is_closed) is True - - @pytest.mark.skip() - @parametrize - async def test_path_params_retrieve(self, async_client: AsyncAgentex) -> None: - with pytest.raises(ValueError, match=r"Expected a non-empty value for `agent_name` but received ''"): - await async_client.agents.name.with_raw_response.retrieve( - "", - ) - - @pytest.mark.skip() - @parametrize - async def test_method_delete(self, async_client: AsyncAgentex) -> None: - name = await async_client.agents.name.delete( - "agent_name", - ) - assert_matches_type(Agent, name, path=["response"]) - - @pytest.mark.skip() - @parametrize - async def test_raw_response_delete(self, async_client: AsyncAgentex) -> None: - response = await async_client.agents.name.with_raw_response.delete( - "agent_name", - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - name = await response.parse() - assert_matches_type(Agent, name, path=["response"]) - - @pytest.mark.skip() - @parametrize - async def test_streaming_response_delete(self, async_client: AsyncAgentex) -> None: - async with async_client.agents.name.with_streaming_response.delete( - "agent_name", - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - name = await response.parse() - assert_matches_type(Agent, name, path=["response"]) - - assert cast(Any, response.is_closed) is True - - @pytest.mark.skip() - @parametrize - async def test_path_params_delete(self, async_client: AsyncAgentex) -> None: - with pytest.raises(ValueError, match=r"Expected a non-empty value for `agent_name` but received ''"): - await async_client.agents.name.with_raw_response.delete( - "", - ) - - @pytest.mark.skip() - @parametrize - async def test_method_rpc(self, async_client: AsyncAgentex) -> None: - name = await async_client.agents.name.rpc( - agent_name="agent_name", - method="event/send", - params={}, - ) - assert_matches_type(object, name, path=["response"]) - - @pytest.mark.skip() - @parametrize - async def test_method_rpc_with_all_params(self, async_client: AsyncAgentex) -> None: - name = await async_client.agents.name.rpc( - agent_name="agent_name", - method="event/send", - params={ - "name": "name", - "params": {"foo": "bar"}, - }, - id=0, - jsonrpc="2.0", - ) - assert_matches_type(object, name, path=["response"]) - - @pytest.mark.skip() - @parametrize - async def test_raw_response_rpc(self, async_client: AsyncAgentex) -> None: - response = await async_client.agents.name.with_raw_response.rpc( - agent_name="agent_name", - method="event/send", - params={}, - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - name = await response.parse() - assert_matches_type(object, name, path=["response"]) - - @pytest.mark.skip() - @parametrize - async def test_streaming_response_rpc(self, async_client: AsyncAgentex) -> None: - async with async_client.agents.name.with_streaming_response.rpc( - agent_name="agent_name", - method="event/send", - params={}, - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - name = await response.parse() - assert_matches_type(object, name, path=["response"]) - - assert cast(Any, response.is_closed) is True - - @pytest.mark.skip() - @parametrize - async def test_path_params_rpc(self, async_client: AsyncAgentex) -> None: - with pytest.raises(ValueError, match=r"Expected a non-empty value for `agent_name` but received ''"): - await async_client.agents.name.with_raw_response.rpc( - agent_name="", - method="event/send", - params={}, - ) diff --git a/tests/api_resources/tasks/__init__.py b/tests/api_resources/tasks/__init__.py deleted file mode 100644 index fd8019a9a..000000000 --- a/tests/api_resources/tasks/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. diff --git a/tests/api_resources/tasks/test_name.py b/tests/api_resources/tasks/test_name.py deleted file mode 100644 index cb0006592..000000000 --- a/tests/api_resources/tasks/test_name.py +++ /dev/null @@ -1,274 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from __future__ import annotations - -import os -from typing import Any, cast - -import pytest - -from agentex import Agentex, AsyncAgentex -from tests.utils import assert_matches_type -from agentex.types import Task - -base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010") - - -class TestName: - parametrize = pytest.mark.parametrize("client", [False, True], indirect=True, ids=["loose", "strict"]) - - @pytest.mark.skip() - @parametrize - def test_method_retrieve(self, client: Agentex) -> None: - name = client.tasks.name.retrieve( - "task_name", - ) - assert_matches_type(Task, name, path=["response"]) - - @pytest.mark.skip() - @parametrize - def test_raw_response_retrieve(self, client: Agentex) -> None: - response = client.tasks.name.with_raw_response.retrieve( - "task_name", - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - name = response.parse() - assert_matches_type(Task, name, path=["response"]) - - @pytest.mark.skip() - @parametrize - def test_streaming_response_retrieve(self, client: Agentex) -> None: - with client.tasks.name.with_streaming_response.retrieve( - "task_name", - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - name = response.parse() - assert_matches_type(Task, name, path=["response"]) - - assert cast(Any, response.is_closed) is True - - @pytest.mark.skip() - @parametrize - def test_path_params_retrieve(self, client: Agentex) -> None: - with pytest.raises(ValueError, match=r"Expected a non-empty value for `task_name` but received ''"): - client.tasks.name.with_raw_response.retrieve( - "", - ) - - @pytest.mark.skip() - @parametrize - def test_method_delete(self, client: Agentex) -> None: - name = client.tasks.name.delete( - "task_name", - ) - assert_matches_type(Task, name, path=["response"]) - - @pytest.mark.skip() - @parametrize - def test_raw_response_delete(self, client: Agentex) -> None: - response = client.tasks.name.with_raw_response.delete( - "task_name", - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - name = response.parse() - assert_matches_type(Task, name, path=["response"]) - - @pytest.mark.skip() - @parametrize - def test_streaming_response_delete(self, client: Agentex) -> None: - with client.tasks.name.with_streaming_response.delete( - "task_name", - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - name = response.parse() - assert_matches_type(Task, name, path=["response"]) - - assert cast(Any, response.is_closed) is True - - @pytest.mark.skip() - @parametrize - def test_path_params_delete(self, client: Agentex) -> None: - with pytest.raises(ValueError, match=r"Expected a non-empty value for `task_name` but received ''"): - client.tasks.name.with_raw_response.delete( - "", - ) - - @pytest.mark.skip() - @parametrize - def test_method_stream_events(self, client: Agentex) -> None: - name_stream = client.tasks.name.stream_events( - "task_name", - ) - name_stream.response.close() - - @pytest.mark.skip() - @parametrize - def test_raw_response_stream_events(self, client: Agentex) -> None: - response = client.tasks.name.with_raw_response.stream_events( - "task_name", - ) - - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - stream = response.parse() - stream.close() - - @pytest.mark.skip() - @parametrize - def test_streaming_response_stream_events(self, client: Agentex) -> None: - with client.tasks.name.with_streaming_response.stream_events( - "task_name", - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - stream = response.parse() - stream.close() - - assert cast(Any, response.is_closed) is True - - @pytest.mark.skip() - @parametrize - def test_path_params_stream_events(self, client: Agentex) -> None: - with pytest.raises(ValueError, match=r"Expected a non-empty value for `task_name` but received ''"): - client.tasks.name.with_raw_response.stream_events( - "", - ) - - -class TestAsyncName: - parametrize = pytest.mark.parametrize( - "async_client", [False, True, {"http_client": "aiohttp"}], indirect=True, ids=["loose", "strict", "aiohttp"] - ) - - @pytest.mark.skip() - @parametrize - async def test_method_retrieve(self, async_client: AsyncAgentex) -> None: - name = await async_client.tasks.name.retrieve( - "task_name", - ) - assert_matches_type(Task, name, path=["response"]) - - @pytest.mark.skip() - @parametrize - async def test_raw_response_retrieve(self, async_client: AsyncAgentex) -> None: - response = await async_client.tasks.name.with_raw_response.retrieve( - "task_name", - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - name = await response.parse() - assert_matches_type(Task, name, path=["response"]) - - @pytest.mark.skip() - @parametrize - async def test_streaming_response_retrieve(self, async_client: AsyncAgentex) -> None: - async with async_client.tasks.name.with_streaming_response.retrieve( - "task_name", - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - name = await response.parse() - assert_matches_type(Task, name, path=["response"]) - - assert cast(Any, response.is_closed) is True - - @pytest.mark.skip() - @parametrize - async def test_path_params_retrieve(self, async_client: AsyncAgentex) -> None: - with pytest.raises(ValueError, match=r"Expected a non-empty value for `task_name` but received ''"): - await async_client.tasks.name.with_raw_response.retrieve( - "", - ) - - @pytest.mark.skip() - @parametrize - async def test_method_delete(self, async_client: AsyncAgentex) -> None: - name = await async_client.tasks.name.delete( - "task_name", - ) - assert_matches_type(Task, name, path=["response"]) - - @pytest.mark.skip() - @parametrize - async def test_raw_response_delete(self, async_client: AsyncAgentex) -> None: - response = await async_client.tasks.name.with_raw_response.delete( - "task_name", - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - name = await response.parse() - assert_matches_type(Task, name, path=["response"]) - - @pytest.mark.skip() - @parametrize - async def test_streaming_response_delete(self, async_client: AsyncAgentex) -> None: - async with async_client.tasks.name.with_streaming_response.delete( - "task_name", - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - name = await response.parse() - assert_matches_type(Task, name, path=["response"]) - - assert cast(Any, response.is_closed) is True - - @pytest.mark.skip() - @parametrize - async def test_path_params_delete(self, async_client: AsyncAgentex) -> None: - with pytest.raises(ValueError, match=r"Expected a non-empty value for `task_name` but received ''"): - await async_client.tasks.name.with_raw_response.delete( - "", - ) - - @pytest.mark.skip() - @parametrize - async def test_method_stream_events(self, async_client: AsyncAgentex) -> None: - name_stream = await async_client.tasks.name.stream_events( - "task_name", - ) - await name_stream.response.aclose() - - @pytest.mark.skip() - @parametrize - async def test_raw_response_stream_events(self, async_client: AsyncAgentex) -> None: - response = await async_client.tasks.name.with_raw_response.stream_events( - "task_name", - ) - - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - stream = await response.parse() - await stream.close() - - @pytest.mark.skip() - @parametrize - async def test_streaming_response_stream_events(self, async_client: AsyncAgentex) -> None: - async with async_client.tasks.name.with_streaming_response.stream_events( - "task_name", - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - stream = await response.parse() - await stream.close() - - assert cast(Any, response.is_closed) is True - - @pytest.mark.skip() - @parametrize - async def test_path_params_stream_events(self, async_client: AsyncAgentex) -> None: - with pytest.raises(ValueError, match=r"Expected a non-empty value for `task_name` but received ''"): - await async_client.tasks.name.with_raw_response.stream_events( - "", - ) diff --git a/tests/api_resources/test_agents.py b/tests/api_resources/test_agents.py index de1055f79..7cb793750 100644 --- a/tests/api_resources/test_agents.py +++ b/tests/api_resources/test_agents.py @@ -9,7 +9,11 @@ from agentex import Agentex, AsyncAgentex from tests.utils import assert_matches_type -from agentex.types import Agent, AgentListResponse +from agentex.types import ( + Agent, + AgentRpcResponse, + AgentListResponse, +) base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010") @@ -137,6 +141,90 @@ def test_path_params_delete(self, client: Agentex) -> None: "", ) + @pytest.mark.skip() + @parametrize + def test_method_delete_by_name(self, client: Agentex) -> None: + agent = client.agents.delete_by_name( + "agent_name", + ) + assert_matches_type(Agent, agent, path=["response"]) + + @pytest.mark.skip() + @parametrize + def test_raw_response_delete_by_name(self, client: Agentex) -> None: + response = client.agents.with_raw_response.delete_by_name( + "agent_name", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + agent = response.parse() + assert_matches_type(Agent, agent, path=["response"]) + + @pytest.mark.skip() + @parametrize + def test_streaming_response_delete_by_name(self, client: Agentex) -> None: + with client.agents.with_streaming_response.delete_by_name( + "agent_name", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + agent = response.parse() + assert_matches_type(Agent, agent, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @pytest.mark.skip() + @parametrize + def test_path_params_delete_by_name(self, client: Agentex) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `agent_name` but received ''"): + client.agents.with_raw_response.delete_by_name( + "", + ) + + @pytest.mark.skip() + @parametrize + def test_method_retrieve_by_name(self, client: Agentex) -> None: + agent = client.agents.retrieve_by_name( + "agent_name", + ) + assert_matches_type(Agent, agent, path=["response"]) + + @pytest.mark.skip() + @parametrize + def test_raw_response_retrieve_by_name(self, client: Agentex) -> None: + response = client.agents.with_raw_response.retrieve_by_name( + "agent_name", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + agent = response.parse() + assert_matches_type(Agent, agent, path=["response"]) + + @pytest.mark.skip() + @parametrize + def test_streaming_response_retrieve_by_name(self, client: Agentex) -> None: + with client.agents.with_streaming_response.retrieve_by_name( + "agent_name", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + agent = response.parse() + assert_matches_type(Agent, agent, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @pytest.mark.skip() + @parametrize + def test_path_params_retrieve_by_name(self, client: Agentex) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `agent_name` but received ''"): + client.agents.with_raw_response.retrieve_by_name( + "", + ) + @pytest.mark.skip() @parametrize def test_method_rpc(self, client: Agentex) -> None: @@ -145,7 +233,7 @@ def test_method_rpc(self, client: Agentex) -> None: method="event/send", params={}, ) - assert_matches_type(object, agent, path=["response"]) + assert_matches_type(AgentRpcResponse, agent, path=["response"]) @pytest.mark.skip() @parametrize @@ -160,7 +248,7 @@ def test_method_rpc_with_all_params(self, client: Agentex) -> None: id=0, jsonrpc="2.0", ) - assert_matches_type(object, agent, path=["response"]) + assert_matches_type(AgentRpcResponse, agent, path=["response"]) @pytest.mark.skip() @parametrize @@ -174,7 +262,7 @@ def test_raw_response_rpc(self, client: Agentex) -> None: assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" agent = response.parse() - assert_matches_type(object, agent, path=["response"]) + assert_matches_type(AgentRpcResponse, agent, path=["response"]) @pytest.mark.skip() @parametrize @@ -188,7 +276,7 @@ def test_streaming_response_rpc(self, client: Agentex) -> None: assert response.http_request.headers.get("X-Stainless-Lang") == "python" agent = response.parse() - assert_matches_type(object, agent, path=["response"]) + assert_matches_type(AgentRpcResponse, agent, path=["response"]) assert cast(Any, response.is_closed) is True @@ -202,6 +290,71 @@ def test_path_params_rpc(self, client: Agentex) -> None: params={}, ) + @pytest.mark.skip() + @parametrize + def test_method_rpc_by_name(self, client: Agentex) -> None: + agent = client.agents.rpc_by_name( + agent_name="agent_name", + method="event/send", + params={}, + ) + assert_matches_type(AgentRpcResponse, agent, path=["response"]) + + @pytest.mark.skip() + @parametrize + def test_method_rpc_by_name_with_all_params(self, client: Agentex) -> None: + agent = client.agents.rpc_by_name( + agent_name="agent_name", + method="event/send", + params={ + "name": "name", + "params": {"foo": "bar"}, + }, + id=0, + jsonrpc="2.0", + ) + assert_matches_type(AgentRpcResponse, agent, path=["response"]) + + @pytest.mark.skip() + @parametrize + def test_raw_response_rpc_by_name(self, client: Agentex) -> None: + response = client.agents.with_raw_response.rpc_by_name( + agent_name="agent_name", + method="event/send", + params={}, + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + agent = response.parse() + assert_matches_type(AgentRpcResponse, agent, path=["response"]) + + @pytest.mark.skip() + @parametrize + def test_streaming_response_rpc_by_name(self, client: Agentex) -> None: + with client.agents.with_streaming_response.rpc_by_name( + agent_name="agent_name", + method="event/send", + params={}, + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + agent = response.parse() + assert_matches_type(AgentRpcResponse, agent, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @pytest.mark.skip() + @parametrize + def test_path_params_rpc_by_name(self, client: Agentex) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `agent_name` but received ''"): + client.agents.with_raw_response.rpc_by_name( + agent_name="", + method="event/send", + params={}, + ) + class TestAsyncAgents: parametrize = pytest.mark.parametrize( @@ -328,6 +481,90 @@ async def test_path_params_delete(self, async_client: AsyncAgentex) -> None: "", ) + @pytest.mark.skip() + @parametrize + async def test_method_delete_by_name(self, async_client: AsyncAgentex) -> None: + agent = await async_client.agents.delete_by_name( + "agent_name", + ) + assert_matches_type(Agent, agent, path=["response"]) + + @pytest.mark.skip() + @parametrize + async def test_raw_response_delete_by_name(self, async_client: AsyncAgentex) -> None: + response = await async_client.agents.with_raw_response.delete_by_name( + "agent_name", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + agent = await response.parse() + assert_matches_type(Agent, agent, path=["response"]) + + @pytest.mark.skip() + @parametrize + async def test_streaming_response_delete_by_name(self, async_client: AsyncAgentex) -> None: + async with async_client.agents.with_streaming_response.delete_by_name( + "agent_name", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + agent = await response.parse() + assert_matches_type(Agent, agent, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @pytest.mark.skip() + @parametrize + async def test_path_params_delete_by_name(self, async_client: AsyncAgentex) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `agent_name` but received ''"): + await async_client.agents.with_raw_response.delete_by_name( + "", + ) + + @pytest.mark.skip() + @parametrize + async def test_method_retrieve_by_name(self, async_client: AsyncAgentex) -> None: + agent = await async_client.agents.retrieve_by_name( + "agent_name", + ) + assert_matches_type(Agent, agent, path=["response"]) + + @pytest.mark.skip() + @parametrize + async def test_raw_response_retrieve_by_name(self, async_client: AsyncAgentex) -> None: + response = await async_client.agents.with_raw_response.retrieve_by_name( + "agent_name", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + agent = await response.parse() + assert_matches_type(Agent, agent, path=["response"]) + + @pytest.mark.skip() + @parametrize + async def test_streaming_response_retrieve_by_name(self, async_client: AsyncAgentex) -> None: + async with async_client.agents.with_streaming_response.retrieve_by_name( + "agent_name", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + agent = await response.parse() + assert_matches_type(Agent, agent, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @pytest.mark.skip() + @parametrize + async def test_path_params_retrieve_by_name(self, async_client: AsyncAgentex) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `agent_name` but received ''"): + await async_client.agents.with_raw_response.retrieve_by_name( + "", + ) + @pytest.mark.skip() @parametrize async def test_method_rpc(self, async_client: AsyncAgentex) -> None: @@ -336,7 +573,7 @@ async def test_method_rpc(self, async_client: AsyncAgentex) -> None: method="event/send", params={}, ) - assert_matches_type(object, agent, path=["response"]) + assert_matches_type(AgentRpcResponse, agent, path=["response"]) @pytest.mark.skip() @parametrize @@ -351,7 +588,7 @@ async def test_method_rpc_with_all_params(self, async_client: AsyncAgentex) -> N id=0, jsonrpc="2.0", ) - assert_matches_type(object, agent, path=["response"]) + assert_matches_type(AgentRpcResponse, agent, path=["response"]) @pytest.mark.skip() @parametrize @@ -365,7 +602,7 @@ async def test_raw_response_rpc(self, async_client: AsyncAgentex) -> None: assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" agent = await response.parse() - assert_matches_type(object, agent, path=["response"]) + assert_matches_type(AgentRpcResponse, agent, path=["response"]) @pytest.mark.skip() @parametrize @@ -379,7 +616,7 @@ async def test_streaming_response_rpc(self, async_client: AsyncAgentex) -> None: assert response.http_request.headers.get("X-Stainless-Lang") == "python" agent = await response.parse() - assert_matches_type(object, agent, path=["response"]) + assert_matches_type(AgentRpcResponse, agent, path=["response"]) assert cast(Any, response.is_closed) is True @@ -392,3 +629,68 @@ async def test_path_params_rpc(self, async_client: AsyncAgentex) -> None: method="event/send", params={}, ) + + @pytest.mark.skip() + @parametrize + async def test_method_rpc_by_name(self, async_client: AsyncAgentex) -> None: + agent = await async_client.agents.rpc_by_name( + agent_name="agent_name", + method="event/send", + params={}, + ) + assert_matches_type(AgentRpcResponse, agent, path=["response"]) + + @pytest.mark.skip() + @parametrize + async def test_method_rpc_by_name_with_all_params(self, async_client: AsyncAgentex) -> None: + agent = await async_client.agents.rpc_by_name( + agent_name="agent_name", + method="event/send", + params={ + "name": "name", + "params": {"foo": "bar"}, + }, + id=0, + jsonrpc="2.0", + ) + assert_matches_type(AgentRpcResponse, agent, path=["response"]) + + @pytest.mark.skip() + @parametrize + async def test_raw_response_rpc_by_name(self, async_client: AsyncAgentex) -> None: + response = await async_client.agents.with_raw_response.rpc_by_name( + agent_name="agent_name", + method="event/send", + params={}, + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + agent = await response.parse() + assert_matches_type(AgentRpcResponse, agent, path=["response"]) + + @pytest.mark.skip() + @parametrize + async def test_streaming_response_rpc_by_name(self, async_client: AsyncAgentex) -> None: + async with async_client.agents.with_streaming_response.rpc_by_name( + agent_name="agent_name", + method="event/send", + params={}, + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + agent = await response.parse() + assert_matches_type(AgentRpcResponse, agent, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @pytest.mark.skip() + @parametrize + async def test_path_params_rpc_by_name(self, async_client: AsyncAgentex) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `agent_name` but received ''"): + await async_client.agents.with_raw_response.rpc_by_name( + agent_name="", + method="event/send", + params={}, + ) diff --git a/tests/api_resources/test_client.py b/tests/api_resources/test_client.py deleted file mode 100644 index 82802d718..000000000 --- a/tests/api_resources/test_client.py +++ /dev/null @@ -1,79 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from __future__ import annotations - -import os -from typing import Any, cast - -import pytest - -from agentex import Agentex, AsyncAgentex -from tests.utils import assert_matches_type - -base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010") - - -class TestClient: - parametrize = pytest.mark.parametrize("client", [False, True], indirect=True, ids=["loose", "strict"]) - - @pytest.mark.skip() - @parametrize - def test_method_get_root(self, client: Agentex) -> None: - client_ = client.get_root() - assert_matches_type(object, client_, path=["response"]) - - @pytest.mark.skip() - @parametrize - def test_raw_response_get_root(self, client: Agentex) -> None: - response = client.with_raw_response.get_root() - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - client_ = response.parse() - assert_matches_type(object, client_, path=["response"]) - - @pytest.mark.skip() - @parametrize - def test_streaming_response_get_root(self, client: Agentex) -> None: - with client.with_streaming_response.get_root() as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - client_ = response.parse() - assert_matches_type(object, client_, path=["response"]) - - assert cast(Any, response.is_closed) is True - - -class TestAsyncClient: - parametrize = pytest.mark.parametrize( - "async_client", [False, True, {"http_client": "aiohttp"}], indirect=True, ids=["loose", "strict", "aiohttp"] - ) - - @pytest.mark.skip() - @parametrize - async def test_method_get_root(self, async_client: AsyncAgentex) -> None: - client = await async_client.get_root() - assert_matches_type(object, client, path=["response"]) - - @pytest.mark.skip() - @parametrize - async def test_raw_response_get_root(self, async_client: AsyncAgentex) -> None: - response = await async_client.with_raw_response.get_root() - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - client = await response.parse() - assert_matches_type(object, client, path=["response"]) - - @pytest.mark.skip() - @parametrize - async def test_streaming_response_get_root(self, async_client: AsyncAgentex) -> None: - async with async_client.with_streaming_response.get_root() as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - client = await response.parse() - assert_matches_type(object, client, path=["response"]) - - assert cast(Any, response.is_closed) is True diff --git a/tests/api_resources/test_echo.py b/tests/api_resources/test_echo.py deleted file mode 100644 index 1a40d73f3..000000000 --- a/tests/api_resources/test_echo.py +++ /dev/null @@ -1,91 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from __future__ import annotations - -import os -from typing import Any, cast - -import pytest - -from agentex import Agentex, AsyncAgentex -from tests.utils import assert_matches_type - -base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010") - - -class TestEcho: - parametrize = pytest.mark.parametrize("client", [False, True], indirect=True, ids=["loose", "strict"]) - - @pytest.mark.skip() - @parametrize - def test_method_send(self, client: Agentex) -> None: - echo = client.echo.send( - message="message", - ) - assert_matches_type(object, echo, path=["response"]) - - @pytest.mark.skip() - @parametrize - def test_raw_response_send(self, client: Agentex) -> None: - response = client.echo.with_raw_response.send( - message="message", - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - echo = response.parse() - assert_matches_type(object, echo, path=["response"]) - - @pytest.mark.skip() - @parametrize - def test_streaming_response_send(self, client: Agentex) -> None: - with client.echo.with_streaming_response.send( - message="message", - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - echo = response.parse() - assert_matches_type(object, echo, path=["response"]) - - assert cast(Any, response.is_closed) is True - - -class TestAsyncEcho: - parametrize = pytest.mark.parametrize( - "async_client", [False, True, {"http_client": "aiohttp"}], indirect=True, ids=["loose", "strict", "aiohttp"] - ) - - @pytest.mark.skip() - @parametrize - async def test_method_send(self, async_client: AsyncAgentex) -> None: - echo = await async_client.echo.send( - message="message", - ) - assert_matches_type(object, echo, path=["response"]) - - @pytest.mark.skip() - @parametrize - async def test_raw_response_send(self, async_client: AsyncAgentex) -> None: - response = await async_client.echo.with_raw_response.send( - message="message", - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - echo = await response.parse() - assert_matches_type(object, echo, path=["response"]) - - @pytest.mark.skip() - @parametrize - async def test_streaming_response_send(self, async_client: AsyncAgentex) -> None: - async with async_client.echo.with_streaming_response.send( - message="message", - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - echo = await response.parse() - assert_matches_type(object, echo, path=["response"]) - - assert cast(Any, response.is_closed) is True diff --git a/tests/api_resources/test_tasks.py b/tests/api_resources/test_tasks.py index 060f051cf..0c9af1b4e 100644 --- a/tests/api_resources/test_tasks.py +++ b/tests/api_resources/test_tasks.py @@ -129,6 +129,90 @@ def test_path_params_delete(self, client: Agentex) -> None: "", ) + @pytest.mark.skip() + @parametrize + def test_method_delete_by_name(self, client: Agentex) -> None: + task = client.tasks.delete_by_name( + "task_name", + ) + assert_matches_type(Task, task, path=["response"]) + + @pytest.mark.skip() + @parametrize + def test_raw_response_delete_by_name(self, client: Agentex) -> None: + response = client.tasks.with_raw_response.delete_by_name( + "task_name", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + task = response.parse() + assert_matches_type(Task, task, path=["response"]) + + @pytest.mark.skip() + @parametrize + def test_streaming_response_delete_by_name(self, client: Agentex) -> None: + with client.tasks.with_streaming_response.delete_by_name( + "task_name", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + task = response.parse() + assert_matches_type(Task, task, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @pytest.mark.skip() + @parametrize + def test_path_params_delete_by_name(self, client: Agentex) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `task_name` but received ''"): + client.tasks.with_raw_response.delete_by_name( + "", + ) + + @pytest.mark.skip() + @parametrize + def test_method_retrieve_by_name(self, client: Agentex) -> None: + task = client.tasks.retrieve_by_name( + "task_name", + ) + assert_matches_type(Task, task, path=["response"]) + + @pytest.mark.skip() + @parametrize + def test_raw_response_retrieve_by_name(self, client: Agentex) -> None: + response = client.tasks.with_raw_response.retrieve_by_name( + "task_name", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + task = response.parse() + assert_matches_type(Task, task, path=["response"]) + + @pytest.mark.skip() + @parametrize + def test_streaming_response_retrieve_by_name(self, client: Agentex) -> None: + with client.tasks.with_streaming_response.retrieve_by_name( + "task_name", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + task = response.parse() + assert_matches_type(Task, task, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @pytest.mark.skip() + @parametrize + def test_path_params_retrieve_by_name(self, client: Agentex) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `task_name` but received ''"): + client.tasks.with_raw_response.retrieve_by_name( + "", + ) + @pytest.mark.skip() @parametrize def test_method_stream_events(self, client: Agentex) -> None: @@ -170,6 +254,47 @@ def test_path_params_stream_events(self, client: Agentex) -> None: "", ) + @pytest.mark.skip() + @parametrize + def test_method_stream_events_by_name(self, client: Agentex) -> None: + task_stream = client.tasks.stream_events_by_name( + "task_name", + ) + task_stream.response.close() + + @pytest.mark.skip() + @parametrize + def test_raw_response_stream_events_by_name(self, client: Agentex) -> None: + response = client.tasks.with_raw_response.stream_events_by_name( + "task_name", + ) + + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + stream = response.parse() + stream.close() + + @pytest.mark.skip() + @parametrize + def test_streaming_response_stream_events_by_name(self, client: Agentex) -> None: + with client.tasks.with_streaming_response.stream_events_by_name( + "task_name", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + stream = response.parse() + stream.close() + + assert cast(Any, response.is_closed) is True + + @pytest.mark.skip() + @parametrize + def test_path_params_stream_events_by_name(self, client: Agentex) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `task_name` but received ''"): + client.tasks.with_raw_response.stream_events_by_name( + "", + ) + class TestAsyncTasks: parametrize = pytest.mark.parametrize( @@ -288,6 +413,90 @@ async def test_path_params_delete(self, async_client: AsyncAgentex) -> None: "", ) + @pytest.mark.skip() + @parametrize + async def test_method_delete_by_name(self, async_client: AsyncAgentex) -> None: + task = await async_client.tasks.delete_by_name( + "task_name", + ) + assert_matches_type(Task, task, path=["response"]) + + @pytest.mark.skip() + @parametrize + async def test_raw_response_delete_by_name(self, async_client: AsyncAgentex) -> None: + response = await async_client.tasks.with_raw_response.delete_by_name( + "task_name", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + task = await response.parse() + assert_matches_type(Task, task, path=["response"]) + + @pytest.mark.skip() + @parametrize + async def test_streaming_response_delete_by_name(self, async_client: AsyncAgentex) -> None: + async with async_client.tasks.with_streaming_response.delete_by_name( + "task_name", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + task = await response.parse() + assert_matches_type(Task, task, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @pytest.mark.skip() + @parametrize + async def test_path_params_delete_by_name(self, async_client: AsyncAgentex) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `task_name` but received ''"): + await async_client.tasks.with_raw_response.delete_by_name( + "", + ) + + @pytest.mark.skip() + @parametrize + async def test_method_retrieve_by_name(self, async_client: AsyncAgentex) -> None: + task = await async_client.tasks.retrieve_by_name( + "task_name", + ) + assert_matches_type(Task, task, path=["response"]) + + @pytest.mark.skip() + @parametrize + async def test_raw_response_retrieve_by_name(self, async_client: AsyncAgentex) -> None: + response = await async_client.tasks.with_raw_response.retrieve_by_name( + "task_name", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + task = await response.parse() + assert_matches_type(Task, task, path=["response"]) + + @pytest.mark.skip() + @parametrize + async def test_streaming_response_retrieve_by_name(self, async_client: AsyncAgentex) -> None: + async with async_client.tasks.with_streaming_response.retrieve_by_name( + "task_name", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + task = await response.parse() + assert_matches_type(Task, task, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @pytest.mark.skip() + @parametrize + async def test_path_params_retrieve_by_name(self, async_client: AsyncAgentex) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `task_name` but received ''"): + await async_client.tasks.with_raw_response.retrieve_by_name( + "", + ) + @pytest.mark.skip() @parametrize async def test_method_stream_events(self, async_client: AsyncAgentex) -> None: @@ -328,3 +537,44 @@ async def test_path_params_stream_events(self, async_client: AsyncAgentex) -> No await async_client.tasks.with_raw_response.stream_events( "", ) + + @pytest.mark.skip() + @parametrize + async def test_method_stream_events_by_name(self, async_client: AsyncAgentex) -> None: + task_stream = await async_client.tasks.stream_events_by_name( + "task_name", + ) + await task_stream.response.aclose() + + @pytest.mark.skip() + @parametrize + async def test_raw_response_stream_events_by_name(self, async_client: AsyncAgentex) -> None: + response = await async_client.tasks.with_raw_response.stream_events_by_name( + "task_name", + ) + + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + stream = await response.parse() + await stream.close() + + @pytest.mark.skip() + @parametrize + async def test_streaming_response_stream_events_by_name(self, async_client: AsyncAgentex) -> None: + async with async_client.tasks.with_streaming_response.stream_events_by_name( + "task_name", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + stream = await response.parse() + await stream.close() + + assert cast(Any, response.is_closed) is True + + @pytest.mark.skip() + @parametrize + async def test_path_params_stream_events_by_name(self, async_client: AsyncAgentex) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `task_name` but received ''"): + await async_client.tasks.with_raw_response.stream_events_by_name( + "", + ) diff --git a/tests/conftest.py b/tests/conftest.py index d08e65cf6..b6e6697ea 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -45,8 +45,6 @@ def pytest_collection_modifyitems(items: list[pytest.Function]) -> None: base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010") -api_key = "My API Key" - @pytest.fixture(scope="session") def client(request: FixtureRequest) -> Iterator[Agentex]: @@ -54,7 +52,7 @@ def client(request: FixtureRequest) -> Iterator[Agentex]: if not isinstance(strict, bool): raise TypeError(f"Unexpected fixture parameter type {type(strict)}, expected {bool}") - with Agentex(base_url=base_url, api_key=api_key, _strict_response_validation=strict) as client: + with Agentex(base_url=base_url, _strict_response_validation=strict) as client: yield client @@ -78,7 +76,5 @@ async def async_client(request: FixtureRequest) -> AsyncIterator[AsyncAgentex]: else: raise TypeError(f"Unexpected fixture parameter type {type(param)}, expected bool or dict") - async with AsyncAgentex( - base_url=base_url, api_key=api_key, _strict_response_validation=strict, http_client=http_client - ) as client: + async with AsyncAgentex(base_url=base_url, _strict_response_validation=strict, http_client=http_client) as client: yield client diff --git a/tests/test_client.py b/tests/test_client.py index bb8ce7ed5..2fe22ed91 100644 --- a/tests/test_client.py +++ b/tests/test_client.py @@ -37,7 +37,6 @@ from .utils import update_env base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010") -api_key = "My API Key" def _get_params(client: BaseClient[Any, Any]) -> dict[str, str]: @@ -59,7 +58,7 @@ def _get_open_connections(client: Agentex | AsyncAgentex) -> int: class TestAgentex: - client = Agentex(base_url=base_url, api_key=api_key, _strict_response_validation=True) + client = Agentex(base_url=base_url, _strict_response_validation=True) @pytest.mark.respx(base_url=base_url) def test_raw_response(self, respx_mock: MockRouter) -> None: @@ -85,10 +84,6 @@ def test_copy(self) -> None: copied = self.client.copy() assert id(copied) != id(self.client) - copied = self.client.copy(api_key="another My API Key") - assert copied.api_key == "another My API Key" - assert self.client.api_key == "My API Key" - def test_copy_default_options(self) -> None: # options that have a default are overridden correctly copied = self.client.copy(max_retries=7) @@ -106,9 +101,7 @@ def test_copy_default_options(self) -> None: assert isinstance(self.client.timeout, httpx.Timeout) def test_copy_default_headers(self) -> None: - client = Agentex( - base_url=base_url, api_key=api_key, _strict_response_validation=True, default_headers={"X-Foo": "bar"} - ) + client = Agentex(base_url=base_url, _strict_response_validation=True, default_headers={"X-Foo": "bar"}) assert client.default_headers["X-Foo"] == "bar" # does not override the already given value when not specified @@ -140,9 +133,7 @@ def test_copy_default_headers(self) -> None: client.copy(set_default_headers={}, default_headers={"X-Foo": "Bar"}) def test_copy_default_query(self) -> None: - client = Agentex( - base_url=base_url, api_key=api_key, _strict_response_validation=True, default_query={"foo": "bar"} - ) + client = Agentex(base_url=base_url, _strict_response_validation=True, default_query={"foo": "bar"}) assert _get_params(client)["foo"] == "bar" # does not override the already given value when not specified @@ -266,7 +257,7 @@ def test_request_timeout(self) -> None: assert timeout == httpx.Timeout(100.0) def test_client_timeout_option(self) -> None: - client = Agentex(base_url=base_url, api_key=api_key, _strict_response_validation=True, timeout=httpx.Timeout(0)) + client = Agentex(base_url=base_url, _strict_response_validation=True, timeout=httpx.Timeout(0)) request = client._build_request(FinalRequestOptions(method="get", url="/foo")) timeout = httpx.Timeout(**request.extensions["timeout"]) # type: ignore @@ -275,9 +266,7 @@ def test_client_timeout_option(self) -> None: def test_http_client_timeout_option(self) -> None: # custom timeout given to the httpx client should be used with httpx.Client(timeout=None) as http_client: - client = Agentex( - base_url=base_url, api_key=api_key, _strict_response_validation=True, http_client=http_client - ) + client = Agentex(base_url=base_url, _strict_response_validation=True, http_client=http_client) request = client._build_request(FinalRequestOptions(method="get", url="/foo")) timeout = httpx.Timeout(**request.extensions["timeout"]) # type: ignore @@ -285,9 +274,7 @@ def test_http_client_timeout_option(self) -> None: # no timeout given to the httpx client should not use the httpx default with httpx.Client() as http_client: - client = Agentex( - base_url=base_url, api_key=api_key, _strict_response_validation=True, http_client=http_client - ) + client = Agentex(base_url=base_url, _strict_response_validation=True, http_client=http_client) request = client._build_request(FinalRequestOptions(method="get", url="/foo")) timeout = httpx.Timeout(**request.extensions["timeout"]) # type: ignore @@ -295,9 +282,7 @@ def test_http_client_timeout_option(self) -> None: # explicitly passing the default timeout currently results in it being ignored with httpx.Client(timeout=HTTPX_DEFAULT_TIMEOUT) as http_client: - client = Agentex( - base_url=base_url, api_key=api_key, _strict_response_validation=True, http_client=http_client - ) + client = Agentex(base_url=base_url, _strict_response_validation=True, http_client=http_client) request = client._build_request(FinalRequestOptions(method="get", url="/foo")) timeout = httpx.Timeout(**request.extensions["timeout"]) # type: ignore @@ -306,24 +291,16 @@ def test_http_client_timeout_option(self) -> None: async def test_invalid_http_client(self) -> None: with pytest.raises(TypeError, match="Invalid `http_client` arg"): async with httpx.AsyncClient() as http_client: - Agentex( - base_url=base_url, - api_key=api_key, - _strict_response_validation=True, - http_client=cast(Any, http_client), - ) + Agentex(base_url=base_url, _strict_response_validation=True, http_client=cast(Any, http_client)) def test_default_headers_option(self) -> None: - client = Agentex( - base_url=base_url, api_key=api_key, _strict_response_validation=True, default_headers={"X-Foo": "bar"} - ) + client = Agentex(base_url=base_url, _strict_response_validation=True, default_headers={"X-Foo": "bar"}) request = client._build_request(FinalRequestOptions(method="get", url="/foo")) assert request.headers.get("x-foo") == "bar" assert request.headers.get("x-stainless-lang") == "python" client2 = Agentex( base_url=base_url, - api_key=api_key, _strict_response_validation=True, default_headers={ "X-Foo": "stainless", @@ -334,29 +311,8 @@ def test_default_headers_option(self) -> None: assert request.headers.get("x-foo") == "stainless" assert request.headers.get("x-stainless-lang") == "my-overriding-header" - def test_validate_headers(self) -> None: - client = Agentex(base_url=base_url, api_key=api_key, _strict_response_validation=True) - request = client._build_request(FinalRequestOptions(method="get", url="/foo")) - assert request.headers.get("Authorization") == f"Bearer {api_key}" - - with update_env(**{"AGENTEX_SDK_API_KEY": Omit()}): - client2 = Agentex(base_url=base_url, api_key=None, _strict_response_validation=True) - - with pytest.raises( - TypeError, - match="Could not resolve authentication method. Expected the api_key to be set. Or for the `Authorization` headers to be explicitly omitted", - ): - client2._build_request(FinalRequestOptions(method="get", url="/foo")) - - request2 = client2._build_request( - FinalRequestOptions(method="get", url="/foo", headers={"Authorization": Omit()}) - ) - assert request2.headers.get("Authorization") is None - def test_default_query_option(self) -> None: - client = Agentex( - base_url=base_url, api_key=api_key, _strict_response_validation=True, default_query={"query_param": "bar"} - ) + client = Agentex(base_url=base_url, _strict_response_validation=True, default_query={"query_param": "bar"}) request = client._build_request(FinalRequestOptions(method="get", url="/foo")) url = httpx.URL(request.url) assert dict(url.params) == {"query_param": "bar"} @@ -555,7 +511,7 @@ class Model(BaseModel): assert response.foo == 2 def test_base_url_setter(self) -> None: - client = Agentex(base_url="https://example.com/from_init", api_key=api_key, _strict_response_validation=True) + client = Agentex(base_url="https://example.com/from_init", _strict_response_validation=True) assert client.base_url == "https://example.com/from_init/" client.base_url = "https://example.com/from_setter" # type: ignore[assignment] @@ -564,16 +520,23 @@ def test_base_url_setter(self) -> None: def test_base_url_env(self) -> None: with update_env(AGENTEX_BASE_URL="http://localhost:5000/from/env"): - client = Agentex(api_key=api_key, _strict_response_validation=True) + client = Agentex(_strict_response_validation=True) assert client.base_url == "http://localhost:5000/from/env/" + # explicit environment arg requires explicitness + with update_env(AGENTEX_BASE_URL="http://localhost:5000/from/env"): + with pytest.raises(ValueError, match=r"you must pass base_url=None"): + Agentex(_strict_response_validation=True, environment="production") + + client = Agentex(base_url=None, _strict_response_validation=True, environment="production") + assert str(client.base_url).startswith("http://localhost:5003") + @pytest.mark.parametrize( "client", [ - Agentex(base_url="http://localhost:5000/custom/path/", api_key=api_key, _strict_response_validation=True), + Agentex(base_url="http://localhost:5000/custom/path/", _strict_response_validation=True), Agentex( base_url="http://localhost:5000/custom/path/", - api_key=api_key, _strict_response_validation=True, http_client=httpx.Client(), ), @@ -593,10 +556,9 @@ def test_base_url_trailing_slash(self, client: Agentex) -> None: @pytest.mark.parametrize( "client", [ - Agentex(base_url="http://localhost:5000/custom/path/", api_key=api_key, _strict_response_validation=True), + Agentex(base_url="http://localhost:5000/custom/path/", _strict_response_validation=True), Agentex( base_url="http://localhost:5000/custom/path/", - api_key=api_key, _strict_response_validation=True, http_client=httpx.Client(), ), @@ -616,10 +578,9 @@ def test_base_url_no_trailing_slash(self, client: Agentex) -> None: @pytest.mark.parametrize( "client", [ - Agentex(base_url="http://localhost:5000/custom/path/", api_key=api_key, _strict_response_validation=True), + Agentex(base_url="http://localhost:5000/custom/path/", _strict_response_validation=True), Agentex( base_url="http://localhost:5000/custom/path/", - api_key=api_key, _strict_response_validation=True, http_client=httpx.Client(), ), @@ -637,7 +598,7 @@ def test_absolute_request_url(self, client: Agentex) -> None: assert request.url == "https://myapi.com/foo" def test_copied_client_does_not_close_http(self) -> None: - client = Agentex(base_url=base_url, api_key=api_key, _strict_response_validation=True) + client = Agentex(base_url=base_url, _strict_response_validation=True) assert not client.is_closed() copied = client.copy() @@ -648,7 +609,7 @@ def test_copied_client_does_not_close_http(self) -> None: assert not client.is_closed() def test_client_context_manager(self) -> None: - client = Agentex(base_url=base_url, api_key=api_key, _strict_response_validation=True) + client = Agentex(base_url=base_url, _strict_response_validation=True) with client as c2: assert c2 is client assert not c2.is_closed() @@ -669,7 +630,7 @@ class Model(BaseModel): def test_client_max_retries_validation(self) -> None: with pytest.raises(TypeError, match=r"max_retries cannot be None"): - Agentex(base_url=base_url, api_key=api_key, _strict_response_validation=True, max_retries=cast(Any, None)) + Agentex(base_url=base_url, _strict_response_validation=True, max_retries=cast(Any, None)) @pytest.mark.respx(base_url=base_url) def test_received_text_for_expected_json(self, respx_mock: MockRouter) -> None: @@ -678,12 +639,12 @@ class Model(BaseModel): respx_mock.get("/foo").mock(return_value=httpx.Response(200, text="my-custom-format")) - strict_client = Agentex(base_url=base_url, api_key=api_key, _strict_response_validation=True) + strict_client = Agentex(base_url=base_url, _strict_response_validation=True) with pytest.raises(APIResponseValidationError): strict_client.get("/foo", cast_to=Model) - client = Agentex(base_url=base_url, api_key=api_key, _strict_response_validation=False) + client = Agentex(base_url=base_url, _strict_response_validation=False) response = client.get("/foo", cast_to=Model) assert isinstance(response, str) # type: ignore[unreachable] @@ -711,7 +672,7 @@ class Model(BaseModel): ) @mock.patch("time.time", mock.MagicMock(return_value=1696004797)) def test_parse_retry_after_header(self, remaining_retries: int, retry_after: str, timeout: float) -> None: - client = Agentex(base_url=base_url, api_key=api_key, _strict_response_validation=True) + client = Agentex(base_url=base_url, _strict_response_validation=True) headers = httpx.Headers({"retry-after": retry_after}) options = FinalRequestOptions(method="get", url="/foo", max_retries=3) @@ -721,20 +682,20 @@ def test_parse_retry_after_header(self, remaining_retries: int, retry_after: str @mock.patch("agentex._base_client.BaseClient._calculate_retry_timeout", _low_retry_timeout) @pytest.mark.respx(base_url=base_url) def test_retrying_timeout_errors_doesnt_leak(self, respx_mock: MockRouter, client: Agentex) -> None: - respx_mock.post("/echo").mock(side_effect=httpx.TimeoutException("Test timeout error")) + respx_mock.get("/agents/agent_id").mock(side_effect=httpx.TimeoutException("Test timeout error")) with pytest.raises(APITimeoutError): - client.echo.with_streaming_response.send(message="message").__enter__() + client.agents.with_streaming_response.retrieve("agent_id").__enter__() assert _get_open_connections(self.client) == 0 @mock.patch("agentex._base_client.BaseClient._calculate_retry_timeout", _low_retry_timeout) @pytest.mark.respx(base_url=base_url) def test_retrying_status_errors_doesnt_leak(self, respx_mock: MockRouter, client: Agentex) -> None: - respx_mock.post("/echo").mock(return_value=httpx.Response(500)) + respx_mock.get("/agents/agent_id").mock(return_value=httpx.Response(500)) with pytest.raises(APIStatusError): - client.echo.with_streaming_response.send(message="message").__enter__() + client.agents.with_streaming_response.retrieve("agent_id").__enter__() assert _get_open_connections(self.client) == 0 @pytest.mark.parametrize("failures_before_success", [0, 2, 4]) @@ -761,9 +722,9 @@ def retry_handler(_request: httpx.Request) -> httpx.Response: return httpx.Response(500) return httpx.Response(200) - respx_mock.post("/echo").mock(side_effect=retry_handler) + respx_mock.get("/agents/agent_id").mock(side_effect=retry_handler) - response = client.echo.with_raw_response.send(message="message") + response = client.agents.with_raw_response.retrieve("agent_id") assert response.retries_taken == failures_before_success assert int(response.http_request.headers.get("x-stainless-retry-count")) == failures_before_success @@ -785,10 +746,10 @@ def retry_handler(_request: httpx.Request) -> httpx.Response: return httpx.Response(500) return httpx.Response(200) - respx_mock.post("/echo").mock(side_effect=retry_handler) + respx_mock.get("/agents/agent_id").mock(side_effect=retry_handler) - response = client.echo.with_raw_response.send( - message="message", extra_headers={"x-stainless-retry-count": Omit()} + response = client.agents.with_raw_response.retrieve( + "agent_id", extra_headers={"x-stainless-retry-count": Omit()} ) assert len(response.http_request.headers.get_list("x-stainless-retry-count")) == 0 @@ -810,11 +771,9 @@ def retry_handler(_request: httpx.Request) -> httpx.Response: return httpx.Response(500) return httpx.Response(200) - respx_mock.post("/echo").mock(side_effect=retry_handler) + respx_mock.get("/agents/agent_id").mock(side_effect=retry_handler) - response = client.echo.with_raw_response.send( - message="message", extra_headers={"x-stainless-retry-count": "42"} - ) + response = client.agents.with_raw_response.retrieve("agent_id", extra_headers={"x-stainless-retry-count": "42"}) assert response.http_request.headers.get("x-stainless-retry-count") == "42" @@ -869,7 +828,7 @@ def test_follow_redirects_disabled(self, respx_mock: MockRouter) -> None: class TestAsyncAgentex: - client = AsyncAgentex(base_url=base_url, api_key=api_key, _strict_response_validation=True) + client = AsyncAgentex(base_url=base_url, _strict_response_validation=True) @pytest.mark.respx(base_url=base_url) @pytest.mark.asyncio @@ -897,10 +856,6 @@ def test_copy(self) -> None: copied = self.client.copy() assert id(copied) != id(self.client) - copied = self.client.copy(api_key="another My API Key") - assert copied.api_key == "another My API Key" - assert self.client.api_key == "My API Key" - def test_copy_default_options(self) -> None: # options that have a default are overridden correctly copied = self.client.copy(max_retries=7) @@ -918,9 +873,7 @@ def test_copy_default_options(self) -> None: assert isinstance(self.client.timeout, httpx.Timeout) def test_copy_default_headers(self) -> None: - client = AsyncAgentex( - base_url=base_url, api_key=api_key, _strict_response_validation=True, default_headers={"X-Foo": "bar"} - ) + client = AsyncAgentex(base_url=base_url, _strict_response_validation=True, default_headers={"X-Foo": "bar"}) assert client.default_headers["X-Foo"] == "bar" # does not override the already given value when not specified @@ -952,9 +905,7 @@ def test_copy_default_headers(self) -> None: client.copy(set_default_headers={}, default_headers={"X-Foo": "Bar"}) def test_copy_default_query(self) -> None: - client = AsyncAgentex( - base_url=base_url, api_key=api_key, _strict_response_validation=True, default_query={"foo": "bar"} - ) + client = AsyncAgentex(base_url=base_url, _strict_response_validation=True, default_query={"foo": "bar"}) assert _get_params(client)["foo"] == "bar" # does not override the already given value when not specified @@ -1078,9 +1029,7 @@ async def test_request_timeout(self) -> None: assert timeout == httpx.Timeout(100.0) async def test_client_timeout_option(self) -> None: - client = AsyncAgentex( - base_url=base_url, api_key=api_key, _strict_response_validation=True, timeout=httpx.Timeout(0) - ) + client = AsyncAgentex(base_url=base_url, _strict_response_validation=True, timeout=httpx.Timeout(0)) request = client._build_request(FinalRequestOptions(method="get", url="/foo")) timeout = httpx.Timeout(**request.extensions["timeout"]) # type: ignore @@ -1089,9 +1038,7 @@ async def test_client_timeout_option(self) -> None: async def test_http_client_timeout_option(self) -> None: # custom timeout given to the httpx client should be used async with httpx.AsyncClient(timeout=None) as http_client: - client = AsyncAgentex( - base_url=base_url, api_key=api_key, _strict_response_validation=True, http_client=http_client - ) + client = AsyncAgentex(base_url=base_url, _strict_response_validation=True, http_client=http_client) request = client._build_request(FinalRequestOptions(method="get", url="/foo")) timeout = httpx.Timeout(**request.extensions["timeout"]) # type: ignore @@ -1099,9 +1046,7 @@ async def test_http_client_timeout_option(self) -> None: # no timeout given to the httpx client should not use the httpx default async with httpx.AsyncClient() as http_client: - client = AsyncAgentex( - base_url=base_url, api_key=api_key, _strict_response_validation=True, http_client=http_client - ) + client = AsyncAgentex(base_url=base_url, _strict_response_validation=True, http_client=http_client) request = client._build_request(FinalRequestOptions(method="get", url="/foo")) timeout = httpx.Timeout(**request.extensions["timeout"]) # type: ignore @@ -1109,9 +1054,7 @@ async def test_http_client_timeout_option(self) -> None: # explicitly passing the default timeout currently results in it being ignored async with httpx.AsyncClient(timeout=HTTPX_DEFAULT_TIMEOUT) as http_client: - client = AsyncAgentex( - base_url=base_url, api_key=api_key, _strict_response_validation=True, http_client=http_client - ) + client = AsyncAgentex(base_url=base_url, _strict_response_validation=True, http_client=http_client) request = client._build_request(FinalRequestOptions(method="get", url="/foo")) timeout = httpx.Timeout(**request.extensions["timeout"]) # type: ignore @@ -1120,24 +1063,16 @@ async def test_http_client_timeout_option(self) -> None: def test_invalid_http_client(self) -> None: with pytest.raises(TypeError, match="Invalid `http_client` arg"): with httpx.Client() as http_client: - AsyncAgentex( - base_url=base_url, - api_key=api_key, - _strict_response_validation=True, - http_client=cast(Any, http_client), - ) + AsyncAgentex(base_url=base_url, _strict_response_validation=True, http_client=cast(Any, http_client)) def test_default_headers_option(self) -> None: - client = AsyncAgentex( - base_url=base_url, api_key=api_key, _strict_response_validation=True, default_headers={"X-Foo": "bar"} - ) + client = AsyncAgentex(base_url=base_url, _strict_response_validation=True, default_headers={"X-Foo": "bar"}) request = client._build_request(FinalRequestOptions(method="get", url="/foo")) assert request.headers.get("x-foo") == "bar" assert request.headers.get("x-stainless-lang") == "python" client2 = AsyncAgentex( base_url=base_url, - api_key=api_key, _strict_response_validation=True, default_headers={ "X-Foo": "stainless", @@ -1148,29 +1083,8 @@ def test_default_headers_option(self) -> None: assert request.headers.get("x-foo") == "stainless" assert request.headers.get("x-stainless-lang") == "my-overriding-header" - def test_validate_headers(self) -> None: - client = AsyncAgentex(base_url=base_url, api_key=api_key, _strict_response_validation=True) - request = client._build_request(FinalRequestOptions(method="get", url="/foo")) - assert request.headers.get("Authorization") == f"Bearer {api_key}" - - with update_env(**{"AGENTEX_SDK_API_KEY": Omit()}): - client2 = AsyncAgentex(base_url=base_url, api_key=None, _strict_response_validation=True) - - with pytest.raises( - TypeError, - match="Could not resolve authentication method. Expected the api_key to be set. Or for the `Authorization` headers to be explicitly omitted", - ): - client2._build_request(FinalRequestOptions(method="get", url="/foo")) - - request2 = client2._build_request( - FinalRequestOptions(method="get", url="/foo", headers={"Authorization": Omit()}) - ) - assert request2.headers.get("Authorization") is None - def test_default_query_option(self) -> None: - client = AsyncAgentex( - base_url=base_url, api_key=api_key, _strict_response_validation=True, default_query={"query_param": "bar"} - ) + client = AsyncAgentex(base_url=base_url, _strict_response_validation=True, default_query={"query_param": "bar"}) request = client._build_request(FinalRequestOptions(method="get", url="/foo")) url = httpx.URL(request.url) assert dict(url.params) == {"query_param": "bar"} @@ -1369,9 +1283,7 @@ class Model(BaseModel): assert response.foo == 2 def test_base_url_setter(self) -> None: - client = AsyncAgentex( - base_url="https://example.com/from_init", api_key=api_key, _strict_response_validation=True - ) + client = AsyncAgentex(base_url="https://example.com/from_init", _strict_response_validation=True) assert client.base_url == "https://example.com/from_init/" client.base_url = "https://example.com/from_setter" # type: ignore[assignment] @@ -1380,18 +1292,23 @@ def test_base_url_setter(self) -> None: def test_base_url_env(self) -> None: with update_env(AGENTEX_BASE_URL="http://localhost:5000/from/env"): - client = AsyncAgentex(api_key=api_key, _strict_response_validation=True) + client = AsyncAgentex(_strict_response_validation=True) assert client.base_url == "http://localhost:5000/from/env/" + # explicit environment arg requires explicitness + with update_env(AGENTEX_BASE_URL="http://localhost:5000/from/env"): + with pytest.raises(ValueError, match=r"you must pass base_url=None"): + AsyncAgentex(_strict_response_validation=True, environment="production") + + client = AsyncAgentex(base_url=None, _strict_response_validation=True, environment="production") + assert str(client.base_url).startswith("http://localhost:5003") + @pytest.mark.parametrize( "client", [ - AsyncAgentex( - base_url="http://localhost:5000/custom/path/", api_key=api_key, _strict_response_validation=True - ), + AsyncAgentex(base_url="http://localhost:5000/custom/path/", _strict_response_validation=True), AsyncAgentex( base_url="http://localhost:5000/custom/path/", - api_key=api_key, _strict_response_validation=True, http_client=httpx.AsyncClient(), ), @@ -1411,12 +1328,9 @@ def test_base_url_trailing_slash(self, client: AsyncAgentex) -> None: @pytest.mark.parametrize( "client", [ - AsyncAgentex( - base_url="http://localhost:5000/custom/path/", api_key=api_key, _strict_response_validation=True - ), + AsyncAgentex(base_url="http://localhost:5000/custom/path/", _strict_response_validation=True), AsyncAgentex( base_url="http://localhost:5000/custom/path/", - api_key=api_key, _strict_response_validation=True, http_client=httpx.AsyncClient(), ), @@ -1436,12 +1350,9 @@ def test_base_url_no_trailing_slash(self, client: AsyncAgentex) -> None: @pytest.mark.parametrize( "client", [ - AsyncAgentex( - base_url="http://localhost:5000/custom/path/", api_key=api_key, _strict_response_validation=True - ), + AsyncAgentex(base_url="http://localhost:5000/custom/path/", _strict_response_validation=True), AsyncAgentex( base_url="http://localhost:5000/custom/path/", - api_key=api_key, _strict_response_validation=True, http_client=httpx.AsyncClient(), ), @@ -1459,7 +1370,7 @@ def test_absolute_request_url(self, client: AsyncAgentex) -> None: assert request.url == "https://myapi.com/foo" async def test_copied_client_does_not_close_http(self) -> None: - client = AsyncAgentex(base_url=base_url, api_key=api_key, _strict_response_validation=True) + client = AsyncAgentex(base_url=base_url, _strict_response_validation=True) assert not client.is_closed() copied = client.copy() @@ -1471,7 +1382,7 @@ async def test_copied_client_does_not_close_http(self) -> None: assert not client.is_closed() async def test_client_context_manager(self) -> None: - client = AsyncAgentex(base_url=base_url, api_key=api_key, _strict_response_validation=True) + client = AsyncAgentex(base_url=base_url, _strict_response_validation=True) async with client as c2: assert c2 is client assert not c2.is_closed() @@ -1493,9 +1404,7 @@ class Model(BaseModel): async def test_client_max_retries_validation(self) -> None: with pytest.raises(TypeError, match=r"max_retries cannot be None"): - AsyncAgentex( - base_url=base_url, api_key=api_key, _strict_response_validation=True, max_retries=cast(Any, None) - ) + AsyncAgentex(base_url=base_url, _strict_response_validation=True, max_retries=cast(Any, None)) @pytest.mark.respx(base_url=base_url) @pytest.mark.asyncio @@ -1505,12 +1414,12 @@ class Model(BaseModel): respx_mock.get("/foo").mock(return_value=httpx.Response(200, text="my-custom-format")) - strict_client = AsyncAgentex(base_url=base_url, api_key=api_key, _strict_response_validation=True) + strict_client = AsyncAgentex(base_url=base_url, _strict_response_validation=True) with pytest.raises(APIResponseValidationError): await strict_client.get("/foo", cast_to=Model) - client = AsyncAgentex(base_url=base_url, api_key=api_key, _strict_response_validation=False) + client = AsyncAgentex(base_url=base_url, _strict_response_validation=False) response = await client.get("/foo", cast_to=Model) assert isinstance(response, str) # type: ignore[unreachable] @@ -1539,7 +1448,7 @@ class Model(BaseModel): @mock.patch("time.time", mock.MagicMock(return_value=1696004797)) @pytest.mark.asyncio async def test_parse_retry_after_header(self, remaining_retries: int, retry_after: str, timeout: float) -> None: - client = AsyncAgentex(base_url=base_url, api_key=api_key, _strict_response_validation=True) + client = AsyncAgentex(base_url=base_url, _strict_response_validation=True) headers = httpx.Headers({"retry-after": retry_after}) options = FinalRequestOptions(method="get", url="/foo", max_retries=3) @@ -1551,20 +1460,20 @@ async def test_parse_retry_after_header(self, remaining_retries: int, retry_afte async def test_retrying_timeout_errors_doesnt_leak( self, respx_mock: MockRouter, async_client: AsyncAgentex ) -> None: - respx_mock.post("/echo").mock(side_effect=httpx.TimeoutException("Test timeout error")) + respx_mock.get("/agents/agent_id").mock(side_effect=httpx.TimeoutException("Test timeout error")) with pytest.raises(APITimeoutError): - await async_client.echo.with_streaming_response.send(message="message").__aenter__() + await async_client.agents.with_streaming_response.retrieve("agent_id").__aenter__() assert _get_open_connections(self.client) == 0 @mock.patch("agentex._base_client.BaseClient._calculate_retry_timeout", _low_retry_timeout) @pytest.mark.respx(base_url=base_url) async def test_retrying_status_errors_doesnt_leak(self, respx_mock: MockRouter, async_client: AsyncAgentex) -> None: - respx_mock.post("/echo").mock(return_value=httpx.Response(500)) + respx_mock.get("/agents/agent_id").mock(return_value=httpx.Response(500)) with pytest.raises(APIStatusError): - await async_client.echo.with_streaming_response.send(message="message").__aenter__() + await async_client.agents.with_streaming_response.retrieve("agent_id").__aenter__() assert _get_open_connections(self.client) == 0 @pytest.mark.parametrize("failures_before_success", [0, 2, 4]) @@ -1592,9 +1501,9 @@ def retry_handler(_request: httpx.Request) -> httpx.Response: return httpx.Response(500) return httpx.Response(200) - respx_mock.post("/echo").mock(side_effect=retry_handler) + respx_mock.get("/agents/agent_id").mock(side_effect=retry_handler) - response = await client.echo.with_raw_response.send(message="message") + response = await client.agents.with_raw_response.retrieve("agent_id") assert response.retries_taken == failures_before_success assert int(response.http_request.headers.get("x-stainless-retry-count")) == failures_before_success @@ -1617,10 +1526,10 @@ def retry_handler(_request: httpx.Request) -> httpx.Response: return httpx.Response(500) return httpx.Response(200) - respx_mock.post("/echo").mock(side_effect=retry_handler) + respx_mock.get("/agents/agent_id").mock(side_effect=retry_handler) - response = await client.echo.with_raw_response.send( - message="message", extra_headers={"x-stainless-retry-count": Omit()} + response = await client.agents.with_raw_response.retrieve( + "agent_id", extra_headers={"x-stainless-retry-count": Omit()} ) assert len(response.http_request.headers.get_list("x-stainless-retry-count")) == 0 @@ -1643,10 +1552,10 @@ def retry_handler(_request: httpx.Request) -> httpx.Response: return httpx.Response(500) return httpx.Response(200) - respx_mock.post("/echo").mock(side_effect=retry_handler) + respx_mock.get("/agents/agent_id").mock(side_effect=retry_handler) - response = await client.echo.with_raw_response.send( - message="message", extra_headers={"x-stainless-retry-count": "42"} + response = await client.agents.with_raw_response.retrieve( + "agent_id", extra_headers={"x-stainless-retry-count": "42"} ) assert response.http_request.headers.get("x-stainless-retry-count") == "42" diff --git a/uv.lock b/uv.lock new file mode 100644 index 000000000..25a6958b0 --- /dev/null +++ b/uv.lock @@ -0,0 +1,2149 @@ +version = 1 +revision = 1 +requires-python = ">=3.12, <4" + +[[package]] +name = "agentex" +version = "0.0.1a0" +source = { editable = "." } +dependencies = [ + { name = "aiohttp" }, + { name = "anyio" }, + { name = "distro" }, + { name = "fastapi" }, + { name = "httpx" }, + { name = "ipykernel" }, + { name = "jinja2" }, + { name = "jsonref" }, + { name = "jsonschema" }, + { name = "kubernetes" }, + { name = "litellm" }, + { name = "mcp", extra = ["cli"] }, + { name = "openai-agents" }, + { name = "pydantic" }, + { name = "pytest" }, + { name = "pytest-asyncio" }, + { name = "python-on-whales" }, + { name = "pyyaml" }, + { name = "questionary" }, + { name = "redis" }, + { name = "rich" }, + { name = "scale-gp" }, + { name = "scale-gp-beta" }, + { name = "sniffio" }, + { name = "temporalio" }, + { name = "typer" }, + { name = "typing-extensions" }, + { name = "tzdata" }, + { name = "tzlocal" }, + { name = "uvicorn" }, +] + +[package.optional-dependencies] +aiohttp = [ + { name = "aiohttp" }, + { name = "httpx-aiohttp" }, +] +dev = [ + { name = "ruff" }, +] + +[package.metadata] +requires-dist = [ + { name = "aiohttp", specifier = ">=3.10.10,<4" }, + { name = "aiohttp", marker = "extra == 'aiohttp'" }, + { name = "anyio", specifier = ">=3.5.0,<5" }, + { name = "distro", specifier = ">=1.7.0,<2" }, + { name = "fastapi", specifier = ">=0.115.0,<0.116" }, + { name = "httpx", specifier = ">=0.27.2,<0.28" }, + { name = "httpx-aiohttp", marker = "extra == 'aiohttp'", specifier = ">=0.1.8" }, + { name = "ipykernel", specifier = ">=6.29.5" }, + { name = "jinja2", specifier = ">=3.1.3,<4" }, + { name = "jsonref", specifier = ">=1.1.0,<2" }, + { name = "jsonschema", specifier = ">=4.23.0,<5" }, + { name = "kubernetes", specifier = ">=25.0.0,<29.0.0" }, + { name = "litellm", specifier = ">=1.66.0,<2" }, + { name = "mcp", extras = ["cli"], specifier = ">=1.4.1" }, + { name = "openai-agents", specifier = ">=0.0.7" }, + { name = "pydantic", specifier = ">=2.0.0,<3" }, + { name = "pytest", specifier = ">=8.4.0" }, + { name = "pytest-asyncio", specifier = ">=1.0.0" }, + { name = "python-on-whales", specifier = ">=0.73.0,<0.74" }, + { name = "pyyaml", specifier = ">=6.0.2,<7" }, + { name = "questionary", specifier = ">=2.0.1,<3" }, + { name = "redis", specifier = ">=5.2.0,<6" }, + { name = "rich", specifier = ">=13.9.2,<14" }, + { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.3.4" }, + { name = "scale-gp", specifier = ">=0.1.0a59" }, + { name = "scale-gp-beta", specifier = "==0.1.0a20" }, + { name = "sniffio" }, + { name = "temporalio", specifier = ">=1.10.0,<2" }, + { name = "typer", specifier = ">=0.16,<0.17" }, + { name = "typing-extensions", specifier = ">=4.10,<5" }, + { name = "tzdata", specifier = ">=2025.2" }, + { name = "tzlocal", specifier = ">=5.3.1" }, + { name = "uvicorn", specifier = ">=0.31.1" }, +] +provides-extras = ["aiohttp", "dev"] + +[[package]] +name = "aiohappyeyeballs" +version = "2.6.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/26/30/f84a107a9c4331c14b2b586036f40965c128aa4fee4dda5d3d51cb14ad54/aiohappyeyeballs-2.6.1.tar.gz", hash = "sha256:c3f9d0113123803ccadfdf3f0faa505bc78e6a72d1cc4806cbd719826e943558", size = 22760 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0f/15/5bf3b99495fb160b63f95972b81750f18f7f4e02ad051373b669d17d44f2/aiohappyeyeballs-2.6.1-py3-none-any.whl", hash = "sha256:f349ba8f4b75cb25c99c5c2d84e997e485204d2902a9597802b0371f09331fb8", size = 15265 }, +] + +[[package]] +name = "aiohttp" +version = "3.12.14" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohappyeyeballs" }, + { name = "aiosignal" }, + { name = "attrs" }, + { name = "frozenlist" }, + { name = "multidict" }, + { name = "propcache" }, + { name = "yarl" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e6/0b/e39ad954107ebf213a2325038a3e7a506be3d98e1435e1f82086eec4cde2/aiohttp-3.12.14.tar.gz", hash = "sha256:6e06e120e34d93100de448fd941522e11dafa78ef1a893c179901b7d66aa29f2", size = 7822921 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c3/0d/29026524e9336e33d9767a1e593ae2b24c2b8b09af7c2bd8193762f76b3e/aiohttp-3.12.14-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:a0ecbb32fc3e69bc25efcda7d28d38e987d007096cbbeed04f14a6662d0eee22", size = 701055 }, + { url = "https://files.pythonhosted.org/packages/0a/b8/a5e8e583e6c8c1056f4b012b50a03c77a669c2e9bf012b7cf33d6bc4b141/aiohttp-3.12.14-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:0400f0ca9bb3e0b02f6466421f253797f6384e9845820c8b05e976398ac1d81a", size = 475670 }, + { url = "https://files.pythonhosted.org/packages/29/e8/5202890c9e81a4ec2c2808dd90ffe024952e72c061729e1d49917677952f/aiohttp-3.12.14-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a56809fed4c8a830b5cae18454b7464e1529dbf66f71c4772e3cfa9cbec0a1ff", size = 468513 }, + { url = "https://files.pythonhosted.org/packages/23/e5/d11db8c23d8923d3484a27468a40737d50f05b05eebbb6288bafcb467356/aiohttp-3.12.14-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:27f2e373276e4755691a963e5d11756d093e346119f0627c2d6518208483fb6d", size = 1715309 }, + { url = "https://files.pythonhosted.org/packages/53/44/af6879ca0eff7a16b1b650b7ea4a827301737a350a464239e58aa7c387ef/aiohttp-3.12.14-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:ca39e433630e9a16281125ef57ece6817afd1d54c9f1bf32e901f38f16035869", size = 1697961 }, + { url = "https://files.pythonhosted.org/packages/bb/94/18457f043399e1ec0e59ad8674c0372f925363059c276a45a1459e17f423/aiohttp-3.12.14-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9c748b3f8b14c77720132b2510a7d9907a03c20ba80f469e58d5dfd90c079a1c", size = 1753055 }, + { url = "https://files.pythonhosted.org/packages/26/d9/1d3744dc588fafb50ff8a6226d58f484a2242b5dd93d8038882f55474d41/aiohttp-3.12.14-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f0a568abe1b15ce69d4cc37e23020720423f0728e3cb1f9bcd3f53420ec3bfe7", size = 1799211 }, + { url = "https://files.pythonhosted.org/packages/73/12/2530fb2b08773f717ab2d249ca7a982ac66e32187c62d49e2c86c9bba9b4/aiohttp-3.12.14-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9888e60c2c54eaf56704b17feb558c7ed6b7439bca1e07d4818ab878f2083660", size = 1718649 }, + { url = "https://files.pythonhosted.org/packages/b9/34/8d6015a729f6571341a311061b578e8b8072ea3656b3d72329fa0faa2c7c/aiohttp-3.12.14-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3006a1dc579b9156de01e7916d38c63dc1ea0679b14627a37edf6151bc530088", size = 1634452 }, + { url = "https://files.pythonhosted.org/packages/ff/4b/08b83ea02595a582447aeb0c1986792d0de35fe7a22fb2125d65091cbaf3/aiohttp-3.12.14-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:aa8ec5c15ab80e5501a26719eb48a55f3c567da45c6ea5bb78c52c036b2655c7", size = 1695511 }, + { url = "https://files.pythonhosted.org/packages/b5/66/9c7c31037a063eec13ecf1976185c65d1394ded4a5120dd5965e3473cb21/aiohttp-3.12.14-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:39b94e50959aa07844c7fe2206b9f75d63cc3ad1c648aaa755aa257f6f2498a9", size = 1716967 }, + { url = "https://files.pythonhosted.org/packages/ba/02/84406e0ad1acb0fb61fd617651ab6de760b2d6a31700904bc0b33bd0894d/aiohttp-3.12.14-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:04c11907492f416dad9885d503fbfc5dcb6768d90cad8639a771922d584609d3", size = 1657620 }, + { url = "https://files.pythonhosted.org/packages/07/53/da018f4013a7a179017b9a274b46b9a12cbeb387570f116964f498a6f211/aiohttp-3.12.14-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:88167bd9ab69bb46cee91bd9761db6dfd45b6e76a0438c7e884c3f8160ff21eb", size = 1737179 }, + { url = "https://files.pythonhosted.org/packages/49/e8/ca01c5ccfeaafb026d85fa4f43ceb23eb80ea9c1385688db0ef322c751e9/aiohttp-3.12.14-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:791504763f25e8f9f251e4688195e8b455f8820274320204f7eafc467e609425", size = 1765156 }, + { url = "https://files.pythonhosted.org/packages/22/32/5501ab525a47ba23c20613e568174d6c63aa09e2caa22cded5c6ea8e3ada/aiohttp-3.12.14-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:2785b112346e435dd3a1a67f67713a3fe692d288542f1347ad255683f066d8e0", size = 1724766 }, + { url = "https://files.pythonhosted.org/packages/06/af/28e24574801fcf1657945347ee10df3892311c2829b41232be6089e461e7/aiohttp-3.12.14-cp312-cp312-win32.whl", hash = "sha256:15f5f4792c9c999a31d8decf444e79fcfd98497bf98e94284bf390a7bb8c1729", size = 422641 }, + { url = "https://files.pythonhosted.org/packages/98/d5/7ac2464aebd2eecac38dbe96148c9eb487679c512449ba5215d233755582/aiohttp-3.12.14-cp312-cp312-win_amd64.whl", hash = "sha256:3b66e1a182879f579b105a80d5c4bd448b91a57e8933564bf41665064796a338", size = 449316 }, + { url = "https://files.pythonhosted.org/packages/06/48/e0d2fa8ac778008071e7b79b93ab31ef14ab88804d7ba71b5c964a7c844e/aiohttp-3.12.14-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:3143a7893d94dc82bc409f7308bc10d60285a3cd831a68faf1aa0836c5c3c767", size = 695471 }, + { url = "https://files.pythonhosted.org/packages/8d/e7/f73206afa33100804f790b71092888f47df65fd9a4cd0e6800d7c6826441/aiohttp-3.12.14-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:3d62ac3d506cef54b355bd34c2a7c230eb693880001dfcda0bf88b38f5d7af7e", size = 473128 }, + { url = "https://files.pythonhosted.org/packages/df/e2/4dd00180be551a6e7ee979c20fc7c32727f4889ee3fd5b0586e0d47f30e1/aiohttp-3.12.14-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:48e43e075c6a438937c4de48ec30fa8ad8e6dfef122a038847456bfe7b947b63", size = 465426 }, + { url = "https://files.pythonhosted.org/packages/de/dd/525ed198a0bb674a323e93e4d928443a680860802c44fa7922d39436b48b/aiohttp-3.12.14-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:077b4488411a9724cecc436cbc8c133e0d61e694995b8de51aaf351c7578949d", size = 1704252 }, + { url = "https://files.pythonhosted.org/packages/d8/b1/01e542aed560a968f692ab4fc4323286e8bc4daae83348cd63588e4f33e3/aiohttp-3.12.14-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:d8c35632575653f297dcbc9546305b2c1133391089ab925a6a3706dfa775ccab", size = 1685514 }, + { url = "https://files.pythonhosted.org/packages/b3/06/93669694dc5fdabdc01338791e70452d60ce21ea0946a878715688d5a191/aiohttp-3.12.14-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6b8ce87963f0035c6834b28f061df90cf525ff7c9b6283a8ac23acee6502afd4", size = 1737586 }, + { url = "https://files.pythonhosted.org/packages/a5/3a/18991048ffc1407ca51efb49ba8bcc1645961f97f563a6c480cdf0286310/aiohttp-3.12.14-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f0a2cf66e32a2563bb0766eb24eae7e9a269ac0dc48db0aae90b575dc9583026", size = 1786958 }, + { url = "https://files.pythonhosted.org/packages/30/a8/81e237f89a32029f9b4a805af6dffc378f8459c7b9942712c809ff9e76e5/aiohttp-3.12.14-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cdea089caf6d5cde975084a884c72d901e36ef9c2fd972c9f51efbbc64e96fbd", size = 1709287 }, + { url = "https://files.pythonhosted.org/packages/8c/e3/bd67a11b0fe7fc12c6030473afd9e44223d456f500f7cf526dbaa259ae46/aiohttp-3.12.14-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8a7865f27db67d49e81d463da64a59365ebd6b826e0e4847aa111056dcb9dc88", size = 1622990 }, + { url = "https://files.pythonhosted.org/packages/83/ba/e0cc8e0f0d9ce0904e3cf2d6fa41904e379e718a013c721b781d53dcbcca/aiohttp-3.12.14-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0ab5b38a6a39781d77713ad930cb5e7feea6f253de656a5f9f281a8f5931b086", size = 1676015 }, + { url = "https://files.pythonhosted.org/packages/d8/b3/1e6c960520bda094c48b56de29a3d978254637ace7168dd97ddc273d0d6c/aiohttp-3.12.14-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:9b3b15acee5c17e8848d90a4ebc27853f37077ba6aec4d8cb4dbbea56d156933", size = 1707678 }, + { url = "https://files.pythonhosted.org/packages/0a/19/929a3eb8c35b7f9f076a462eaa9830b32c7f27d3395397665caa5e975614/aiohttp-3.12.14-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:e4c972b0bdaac167c1e53e16a16101b17c6d0ed7eac178e653a07b9f7fad7151", size = 1650274 }, + { url = "https://files.pythonhosted.org/packages/22/e5/81682a6f20dd1b18ce3d747de8eba11cbef9b270f567426ff7880b096b48/aiohttp-3.12.14-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:7442488b0039257a3bdbc55f7209587911f143fca11df9869578db6c26feeeb8", size = 1726408 }, + { url = "https://files.pythonhosted.org/packages/8c/17/884938dffaa4048302985483f77dfce5ac18339aad9b04ad4aaa5e32b028/aiohttp-3.12.14-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:f68d3067eecb64c5e9bab4a26aa11bd676f4c70eea9ef6536b0a4e490639add3", size = 1759879 }, + { url = "https://files.pythonhosted.org/packages/95/78/53b081980f50b5cf874359bde707a6eacd6c4be3f5f5c93937e48c9d0025/aiohttp-3.12.14-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:f88d3704c8b3d598a08ad17d06006cb1ca52a1182291f04979e305c8be6c9758", size = 1708770 }, + { url = "https://files.pythonhosted.org/packages/ed/91/228eeddb008ecbe3ffa6c77b440597fdf640307162f0c6488e72c5a2d112/aiohttp-3.12.14-cp313-cp313-win32.whl", hash = "sha256:a3c99ab19c7bf375c4ae3debd91ca5d394b98b6089a03231d4c580ef3c2ae4c5", size = 421688 }, + { url = "https://files.pythonhosted.org/packages/66/5f/8427618903343402fdafe2850738f735fd1d9409d2a8f9bcaae5e630d3ba/aiohttp-3.12.14-cp313-cp313-win_amd64.whl", hash = "sha256:3f8aad695e12edc9d571f878c62bedc91adf30c760c8632f09663e5f564f4baa", size = 448098 }, +] + +[[package]] +name = "aiosignal" +version = "1.4.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "frozenlist" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/61/62/06741b579156360248d1ec624842ad0edf697050bbaf7c3e46394e106ad1/aiosignal-1.4.0.tar.gz", hash = "sha256:f47eecd9468083c2029cc99945502cb7708b082c232f9aca65da147157b251c7", size = 25007 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fb/76/641ae371508676492379f16e2fa48f4e2c11741bd63c48be4b12a6b09cba/aiosignal-1.4.0-py3-none-any.whl", hash = "sha256:053243f8b92b990551949e63930a839ff0cf0b0ebbe0597b0f3fb19e1a0fe82e", size = 7490 }, +] + +[[package]] +name = "annotated-types" +version = "0.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ee/67/531ea369ba64dcff5ec9c3402f9f51bf748cec26dde048a2f973a4eea7f5/annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89", size = 16081 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53", size = 13643 }, +] + +[[package]] +name = "anyio" +version = "4.9.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "idna" }, + { name = "sniffio" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/95/7d/4c1bd541d4dffa1b52bd83fb8527089e097a106fc90b467a7313b105f840/anyio-4.9.0.tar.gz", hash = "sha256:673c0c244e15788651a4ff38710fea9675823028a6f08a5eda409e0c9840a028", size = 190949 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a1/ee/48ca1a7c89ffec8b6a0c5d02b89c305671d5ffd8d3c94acf8b8c408575bb/anyio-4.9.0-py3-none-any.whl", hash = "sha256:9f76d541cad6e36af7beb62e978876f3b41e3e04f2c1fbf0884604c0a9c4d93c", size = 100916 }, +] + +[[package]] +name = "appnope" +version = "0.1.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/35/5d/752690df9ef5b76e169e68d6a129fa6d08a7100ca7f754c89495db3c6019/appnope-0.1.4.tar.gz", hash = "sha256:1de3860566df9caf38f01f86f65e0e13e379af54f9e4bee1e66b48f2efffd1ee", size = 4170 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/81/29/5ecc3a15d5a33e31b26c11426c45c501e439cb865d0bff96315d86443b78/appnope-0.1.4-py2.py3-none-any.whl", hash = "sha256:502575ee11cd7a28c0205f379b525beefebab9d161b7c964670864014ed7213c", size = 4321 }, +] + +[[package]] +name = "asttokens" +version = "3.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/4a/e7/82da0a03e7ba5141f05cce0d302e6eed121ae055e0456ca228bf693984bc/asttokens-3.0.0.tar.gz", hash = "sha256:0dcd8baa8d62b0c1d118b399b2ddba3c4aff271d0d7a9e0d4c1681c79035bbc7", size = 61978 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/25/8a/c46dcc25341b5bce5472c718902eb3d38600a903b14fa6aeecef3f21a46f/asttokens-3.0.0-py3-none-any.whl", hash = "sha256:e3078351a059199dd5138cb1c706e6430c05eff2ff136af5eb4790f9d28932e2", size = 26918 }, +] + +[[package]] +name = "attrs" +version = "25.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/5a/b0/1367933a8532ee6ff8d63537de4f1177af4bff9f3e829baf7331f595bb24/attrs-25.3.0.tar.gz", hash = "sha256:75d7cefc7fb576747b2c81b4442d4d4a1ce0900973527c011d1030fd3bf4af1b", size = 812032 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/77/06/bb80f5f86020c4551da315d78b3ab75e8228f89f0162f2c3a819e407941a/attrs-25.3.0-py3-none-any.whl", hash = "sha256:427318ce031701fea540783410126f03899a97ffc6f61596ad581ac2e40e3bc3", size = 63815 }, +] + +[[package]] +name = "cachetools" +version = "5.5.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6c/81/3747dad6b14fa2cf53fcf10548cf5aea6913e96fab41a3c198676f8948a5/cachetools-5.5.2.tar.gz", hash = "sha256:1a661caa9175d26759571b2e19580f9d6393969e5dfca11fdb1f947a23e640d4", size = 28380 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/72/76/20fa66124dbe6be5cafeb312ece67de6b61dd91a0247d1ea13db4ebb33c2/cachetools-5.5.2-py3-none-any.whl", hash = "sha256:d26a22bcc62eb95c3beabd9f1ee5e820d3d2704fe2967cbe350e20c8ffcd3f0a", size = 10080 }, +] + +[[package]] +name = "certifi" +version = "2025.7.14" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b3/76/52c535bcebe74590f296d6c77c86dabf761c41980e1347a2422e4aa2ae41/certifi-2025.7.14.tar.gz", hash = "sha256:8ea99dbdfaaf2ba2f9bac77b9249ef62ec5218e7c2b2e903378ed5fccf765995", size = 163981 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4f/52/34c6cf5bb9285074dc3531c437b3919e825d976fde097a7a73f79e726d03/certifi-2025.7.14-py3-none-any.whl", hash = "sha256:6b31f564a415d79ee77df69d757bb49a5bb53bd9f756cbbe24394ffd6fc1f4b2", size = 162722 }, +] + +[[package]] +name = "cffi" +version = "1.17.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pycparser" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/fc/97/c783634659c2920c3fc70419e3af40972dbaf758daa229a7d6ea6135c90d/cffi-1.17.1.tar.gz", hash = "sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824", size = 516621 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5a/84/e94227139ee5fb4d600a7a4927f322e1d4aea6fdc50bd3fca8493caba23f/cffi-1.17.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:805b4371bf7197c329fcb3ead37e710d1bca9da5d583f5073b799d5c5bd1eee4", size = 183178 }, + { url = "https://files.pythonhosted.org/packages/da/ee/fb72c2b48656111c4ef27f0f91da355e130a923473bf5ee75c5643d00cca/cffi-1.17.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:733e99bc2df47476e3848417c5a4540522f234dfd4ef3ab7fafdf555b082ec0c", size = 178840 }, + { url = "https://files.pythonhosted.org/packages/cc/b6/db007700f67d151abadf508cbfd6a1884f57eab90b1bb985c4c8c02b0f28/cffi-1.17.1-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1257bdabf294dceb59f5e70c64a3e2f462c30c7ad68092d01bbbfb1c16b1ba36", size = 454803 }, + { url = "https://files.pythonhosted.org/packages/1a/df/f8d151540d8c200eb1c6fba8cd0dfd40904f1b0682ea705c36e6c2e97ab3/cffi-1.17.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da95af8214998d77a98cc14e3a3bd00aa191526343078b530ceb0bd710fb48a5", size = 478850 }, + { url = "https://files.pythonhosted.org/packages/28/c0/b31116332a547fd2677ae5b78a2ef662dfc8023d67f41b2a83f7c2aa78b1/cffi-1.17.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d63afe322132c194cf832bfec0dc69a99fb9bb6bbd550f161a49e9e855cc78ff", size = 485729 }, + { url = "https://files.pythonhosted.org/packages/91/2b/9a1ddfa5c7f13cab007a2c9cc295b70fbbda7cb10a286aa6810338e60ea1/cffi-1.17.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f79fc4fc25f1c8698ff97788206bb3c2598949bfe0fef03d299eb1b5356ada99", size = 471256 }, + { url = "https://files.pythonhosted.org/packages/b2/d5/da47df7004cb17e4955df6a43d14b3b4ae77737dff8bf7f8f333196717bf/cffi-1.17.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b62ce867176a75d03a665bad002af8e6d54644fad99a3c70905c543130e39d93", size = 479424 }, + { url = "https://files.pythonhosted.org/packages/0b/ac/2a28bcf513e93a219c8a4e8e125534f4f6db03e3179ba1c45e949b76212c/cffi-1.17.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:386c8bf53c502fff58903061338ce4f4950cbdcb23e2902d86c0f722b786bbe3", size = 484568 }, + { url = "https://files.pythonhosted.org/packages/d4/38/ca8a4f639065f14ae0f1d9751e70447a261f1a30fa7547a828ae08142465/cffi-1.17.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4ceb10419a9adf4460ea14cfd6bc43d08701f0835e979bf821052f1805850fe8", size = 488736 }, + { url = "https://files.pythonhosted.org/packages/86/c5/28b2d6f799ec0bdecf44dced2ec5ed43e0eb63097b0f58c293583b406582/cffi-1.17.1-cp312-cp312-win32.whl", hash = "sha256:a08d7e755f8ed21095a310a693525137cfe756ce62d066e53f502a83dc550f65", size = 172448 }, + { url = "https://files.pythonhosted.org/packages/50/b9/db34c4755a7bd1cb2d1603ac3863f22bcecbd1ba29e5ee841a4bc510b294/cffi-1.17.1-cp312-cp312-win_amd64.whl", hash = "sha256:51392eae71afec0d0c8fb1a53b204dbb3bcabcb3c9b807eedf3e1e6ccf2de903", size = 181976 }, + { url = "https://files.pythonhosted.org/packages/8d/f8/dd6c246b148639254dad4d6803eb6a54e8c85c6e11ec9df2cffa87571dbe/cffi-1.17.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f3a2b4222ce6b60e2e8b337bb9596923045681d71e5a082783484d845390938e", size = 182989 }, + { url = "https://files.pythonhosted.org/packages/8b/f1/672d303ddf17c24fc83afd712316fda78dc6fce1cd53011b839483e1ecc8/cffi-1.17.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0984a4925a435b1da406122d4d7968dd861c1385afe3b45ba82b750f229811e2", size = 178802 }, + { url = "https://files.pythonhosted.org/packages/0e/2d/eab2e858a91fdff70533cab61dcff4a1f55ec60425832ddfdc9cd36bc8af/cffi-1.17.1-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d01b12eeeb4427d3110de311e1774046ad344f5b1a7403101878976ecd7a10f3", size = 454792 }, + { url = "https://files.pythonhosted.org/packages/75/b2/fbaec7c4455c604e29388d55599b99ebcc250a60050610fadde58932b7ee/cffi-1.17.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:706510fe141c86a69c8ddc029c7910003a17353970cff3b904ff0686a5927683", size = 478893 }, + { url = "https://files.pythonhosted.org/packages/4f/b7/6e4a2162178bf1935c336d4da8a9352cccab4d3a5d7914065490f08c0690/cffi-1.17.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de55b766c7aa2e2a3092c51e0483d700341182f08e67c63630d5b6f200bb28e5", size = 485810 }, + { url = "https://files.pythonhosted.org/packages/c7/8a/1d0e4a9c26e54746dc08c2c6c037889124d4f59dffd853a659fa545f1b40/cffi-1.17.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c59d6e989d07460165cc5ad3c61f9fd8f1b4796eacbd81cee78957842b834af4", size = 471200 }, + { url = "https://files.pythonhosted.org/packages/26/9f/1aab65a6c0db35f43c4d1b4f580e8df53914310afc10ae0397d29d697af4/cffi-1.17.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd398dbc6773384a17fe0d3e7eeb8d1a21c2200473ee6806bb5e6a8e62bb73dd", size = 479447 }, + { url = "https://files.pythonhosted.org/packages/5f/e4/fb8b3dd8dc0e98edf1135ff067ae070bb32ef9d509d6cb0f538cd6f7483f/cffi-1.17.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:3edc8d958eb099c634dace3c7e16560ae474aa3803a5df240542b305d14e14ed", size = 484358 }, + { url = "https://files.pythonhosted.org/packages/f1/47/d7145bf2dc04684935d57d67dff9d6d795b2ba2796806bb109864be3a151/cffi-1.17.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:72e72408cad3d5419375fc87d289076ee319835bdfa2caad331e377589aebba9", size = 488469 }, + { url = "https://files.pythonhosted.org/packages/bf/ee/f94057fa6426481d663b88637a9a10e859e492c73d0384514a17d78ee205/cffi-1.17.1-cp313-cp313-win32.whl", hash = "sha256:e03eab0a8677fa80d646b5ddece1cbeaf556c313dcfac435ba11f107ba117b5d", size = 172475 }, + { url = "https://files.pythonhosted.org/packages/7c/fc/6a8cb64e5f0324877d503c854da15d76c1e50eb722e320b15345c4d0c6de/cffi-1.17.1-cp313-cp313-win_amd64.whl", hash = "sha256:f6a16c31041f09ead72d69f583767292f750d24913dadacf5756b966aacb3f1a", size = 182009 }, +] + +[[package]] +name = "charset-normalizer" +version = "3.4.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e4/33/89c2ced2b67d1c2a61c19c6751aa8902d46ce3dacb23600a283619f5a12d/charset_normalizer-3.4.2.tar.gz", hash = "sha256:5baececa9ecba31eff645232d59845c07aa030f0c81ee70184a90d35099a0e63", size = 126367 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d7/a4/37f4d6035c89cac7930395a35cc0f1b872e652eaafb76a6075943754f095/charset_normalizer-3.4.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0c29de6a1a95f24b9a1aa7aefd27d2487263f00dfd55a77719b530788f75cff7", size = 199936 }, + { url = "https://files.pythonhosted.org/packages/ee/8a/1a5e33b73e0d9287274f899d967907cd0bf9c343e651755d9307e0dbf2b3/charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cddf7bd982eaa998934a91f69d182aec997c6c468898efe6679af88283b498d3", size = 143790 }, + { url = "https://files.pythonhosted.org/packages/66/52/59521f1d8e6ab1482164fa21409c5ef44da3e9f653c13ba71becdd98dec3/charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fcbe676a55d7445b22c10967bceaaf0ee69407fbe0ece4d032b6eb8d4565982a", size = 153924 }, + { url = "https://files.pythonhosted.org/packages/86/2d/fb55fdf41964ec782febbf33cb64be480a6b8f16ded2dbe8db27a405c09f/charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d41c4d287cfc69060fa91cae9683eacffad989f1a10811995fa309df656ec214", size = 146626 }, + { url = "https://files.pythonhosted.org/packages/8c/73/6ede2ec59bce19b3edf4209d70004253ec5f4e319f9a2e3f2f15601ed5f7/charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4e594135de17ab3866138f496755f302b72157d115086d100c3f19370839dd3a", size = 148567 }, + { url = "https://files.pythonhosted.org/packages/09/14/957d03c6dc343c04904530b6bef4e5efae5ec7d7990a7cbb868e4595ee30/charset_normalizer-3.4.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cf713fe9a71ef6fd5adf7a79670135081cd4431c2943864757f0fa3a65b1fafd", size = 150957 }, + { url = "https://files.pythonhosted.org/packages/0d/c8/8174d0e5c10ccebdcb1b53cc959591c4c722a3ad92461a273e86b9f5a302/charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a370b3e078e418187da8c3674eddb9d983ec09445c99a3a263c2011993522981", size = 145408 }, + { url = "https://files.pythonhosted.org/packages/58/aa/8904b84bc8084ac19dc52feb4f5952c6df03ffb460a887b42615ee1382e8/charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a955b438e62efdf7e0b7b52a64dc5c3396e2634baa62471768a64bc2adb73d5c", size = 153399 }, + { url = "https://files.pythonhosted.org/packages/c2/26/89ee1f0e264d201cb65cf054aca6038c03b1a0c6b4ae998070392a3ce605/charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:7222ffd5e4de8e57e03ce2cef95a4c43c98fcb72ad86909abdfc2c17d227fc1b", size = 156815 }, + { url = "https://files.pythonhosted.org/packages/fd/07/68e95b4b345bad3dbbd3a8681737b4338ff2c9df29856a6d6d23ac4c73cb/charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:bee093bf902e1d8fc0ac143c88902c3dfc8941f7ea1d6a8dd2bcb786d33db03d", size = 154537 }, + { url = "https://files.pythonhosted.org/packages/77/1a/5eefc0ce04affb98af07bc05f3bac9094513c0e23b0562d64af46a06aae4/charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:dedb8adb91d11846ee08bec4c8236c8549ac721c245678282dcb06b221aab59f", size = 149565 }, + { url = "https://files.pythonhosted.org/packages/37/a0/2410e5e6032a174c95e0806b1a6585eb21e12f445ebe239fac441995226a/charset_normalizer-3.4.2-cp312-cp312-win32.whl", hash = "sha256:db4c7bf0e07fc3b7d89ac2a5880a6a8062056801b83ff56d8464b70f65482b6c", size = 98357 }, + { url = "https://files.pythonhosted.org/packages/6c/4f/c02d5c493967af3eda9c771ad4d2bbc8df6f99ddbeb37ceea6e8716a32bc/charset_normalizer-3.4.2-cp312-cp312-win_amd64.whl", hash = "sha256:5a9979887252a82fefd3d3ed2a8e3b937a7a809f65dcb1e068b090e165bbe99e", size = 105776 }, + { url = "https://files.pythonhosted.org/packages/ea/12/a93df3366ed32db1d907d7593a94f1fe6293903e3e92967bebd6950ed12c/charset_normalizer-3.4.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:926ca93accd5d36ccdabd803392ddc3e03e6d4cd1cf17deff3b989ab8e9dbcf0", size = 199622 }, + { url = "https://files.pythonhosted.org/packages/04/93/bf204e6f344c39d9937d3c13c8cd5bbfc266472e51fc8c07cb7f64fcd2de/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eba9904b0f38a143592d9fc0e19e2df0fa2e41c3c3745554761c5f6447eedabf", size = 143435 }, + { url = "https://files.pythonhosted.org/packages/22/2a/ea8a2095b0bafa6c5b5a55ffdc2f924455233ee7b91c69b7edfcc9e02284/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3fddb7e2c84ac87ac3a947cb4e66d143ca5863ef48e4a5ecb83bd48619e4634e", size = 153653 }, + { url = "https://files.pythonhosted.org/packages/b6/57/1b090ff183d13cef485dfbe272e2fe57622a76694061353c59da52c9a659/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98f862da73774290f251b9df8d11161b6cf25b599a66baf087c1ffe340e9bfd1", size = 146231 }, + { url = "https://files.pythonhosted.org/packages/e2/28/ffc026b26f441fc67bd21ab7f03b313ab3fe46714a14b516f931abe1a2d8/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c9379d65defcab82d07b2a9dfbfc2e95bc8fe0ebb1b176a3190230a3ef0e07c", size = 148243 }, + { url = "https://files.pythonhosted.org/packages/c0/0f/9abe9bd191629c33e69e47c6ef45ef99773320e9ad8e9cb08b8ab4a8d4cb/charset_normalizer-3.4.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e635b87f01ebc977342e2697d05b56632f5f879a4f15955dfe8cef2448b51691", size = 150442 }, + { url = "https://files.pythonhosted.org/packages/67/7c/a123bbcedca91d5916c056407f89a7f5e8fdfce12ba825d7d6b9954a1a3c/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:1c95a1e2902a8b722868587c0e1184ad5c55631de5afc0eb96bc4b0d738092c0", size = 145147 }, + { url = "https://files.pythonhosted.org/packages/ec/fe/1ac556fa4899d967b83e9893788e86b6af4d83e4726511eaaad035e36595/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ef8de666d6179b009dce7bcb2ad4c4a779f113f12caf8dc77f0162c29d20490b", size = 153057 }, + { url = "https://files.pythonhosted.org/packages/2b/ff/acfc0b0a70b19e3e54febdd5301a98b72fa07635e56f24f60502e954c461/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:32fc0341d72e0f73f80acb0a2c94216bd704f4f0bce10aedea38f30502b271ff", size = 156454 }, + { url = "https://files.pythonhosted.org/packages/92/08/95b458ce9c740d0645feb0e96cea1f5ec946ea9c580a94adfe0b617f3573/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:289200a18fa698949d2b39c671c2cc7a24d44096784e76614899a7ccf2574b7b", size = 154174 }, + { url = "https://files.pythonhosted.org/packages/78/be/8392efc43487ac051eee6c36d5fbd63032d78f7728cb37aebcc98191f1ff/charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4a476b06fbcf359ad25d34a057b7219281286ae2477cc5ff5e3f70a246971148", size = 149166 }, + { url = "https://files.pythonhosted.org/packages/44/96/392abd49b094d30b91d9fbda6a69519e95802250b777841cf3bda8fe136c/charset_normalizer-3.4.2-cp313-cp313-win32.whl", hash = "sha256:aaeeb6a479c7667fbe1099af9617c83aaca22182d6cf8c53966491a0f1b7ffb7", size = 98064 }, + { url = "https://files.pythonhosted.org/packages/e9/b0/0200da600134e001d91851ddc797809e2fe0ea72de90e09bec5a2fbdaccb/charset_normalizer-3.4.2-cp313-cp313-win_amd64.whl", hash = "sha256:aa6af9e7d59f9c12b33ae4e9450619cf2488e2bbe9b44030905877f0b2324980", size = 105641 }, + { url = "https://files.pythonhosted.org/packages/20/94/c5790835a017658cbfabd07f3bfb549140c3ac458cfc196323996b10095a/charset_normalizer-3.4.2-py3-none-any.whl", hash = "sha256:7f56930ab0abd1c45cd15be65cc741c28b1c9a34876ce8c17a2fa107810c0af0", size = 52626 }, +] + +[[package]] +name = "click" +version = "8.2.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/60/6c/8ca2efa64cf75a977a0d7fac081354553ebe483345c734fb6b6515d96bbc/click-8.2.1.tar.gz", hash = "sha256:27c491cc05d968d271d5a1db13e3b5a184636d9d930f148c50b038f0d0646202", size = 286342 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/85/32/10bb5764d90a8eee674e9dc6f4db6a0ab47c8c4d0d83c27f7c39ac415a4d/click-8.2.1-py3-none-any.whl", hash = "sha256:61a3265b914e850b85317d0b3109c7f8cd35a670f963866005d6ef1d5175a12b", size = 102215 }, +] + +[[package]] +name = "colorama" +version = "0.4.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335 }, +] + +[[package]] +name = "comm" +version = "0.2.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e9/a8/fb783cb0abe2b5fded9f55e5703015cdf1c9c85b3669087c538dd15a6a86/comm-0.2.2.tar.gz", hash = "sha256:3fd7a84065306e07bea1773df6eb8282de51ba82f77c72f9c85716ab11fe980e", size = 6210 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e6/75/49e5bfe642f71f272236b5b2d2691cf915a7283cc0ceda56357b61daa538/comm-0.2.2-py3-none-any.whl", hash = "sha256:e6fb86cb70ff661ee8c9c14e7d36d6de3b4066f1441be4063df9c5009f0a64d3", size = 7180 }, +] + +[[package]] +name = "debugpy" +version = "1.8.15" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/8c/8b/3a9a28ddb750a76eaec445c7f4d3147ea2c579a97dbd9e25d39001b92b21/debugpy-1.8.15.tar.gz", hash = "sha256:58d7a20b7773ab5ee6bdfb2e6cf622fdf1e40c9d5aef2857d85391526719ac00", size = 1643279 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ab/4a/4508d256e52897f5cdfee6a6d7580974811e911c6d01321df3264508a5ac/debugpy-1.8.15-cp312-cp312-macosx_14_0_universal2.whl", hash = "sha256:3dcc7225cb317469721ab5136cda9ff9c8b6e6fb43e87c9e15d5b108b99d01ba", size = 2511197 }, + { url = "https://files.pythonhosted.org/packages/99/8d/7f6ef1097e7fecf26b4ef72338d08e41644a41b7ee958a19f494ffcffc29/debugpy-1.8.15-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:047a493ca93c85ccede1dbbaf4e66816794bdc214213dde41a9a61e42d27f8fc", size = 4229517 }, + { url = "https://files.pythonhosted.org/packages/3f/e8/e8c6a9aa33a9c9c6dacbf31747384f6ed2adde4de2e9693c766bdf323aa3/debugpy-1.8.15-cp312-cp312-win32.whl", hash = "sha256:b08e9b0bc260cf324c890626961dad4ffd973f7568fbf57feb3c3a65ab6b6327", size = 5276132 }, + { url = "https://files.pythonhosted.org/packages/e9/ad/231050c6177b3476b85fcea01e565dac83607b5233d003ff067e2ee44d8f/debugpy-1.8.15-cp312-cp312-win_amd64.whl", hash = "sha256:e2a4fe357c92334272eb2845fcfcdbec3ef9f22c16cf613c388ac0887aed15fa", size = 5317645 }, + { url = "https://files.pythonhosted.org/packages/28/70/2928aad2310726d5920b18ed9f54b9f06df5aa4c10cf9b45fa18ff0ab7e8/debugpy-1.8.15-cp313-cp313-macosx_14_0_universal2.whl", hash = "sha256:f5e01291ad7d6649aed5773256c5bba7a1a556196300232de1474c3c372592bf", size = 2495538 }, + { url = "https://files.pythonhosted.org/packages/9e/c6/9b8ffb4ca91fac8b2877eef63c9cc0e87dd2570b1120054c272815ec4cd0/debugpy-1.8.15-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:94dc0f0d00e528d915e0ce1c78e771475b2335b376c49afcc7382ee0b146bab6", size = 4221874 }, + { url = "https://files.pythonhosted.org/packages/55/8a/9b8d59674b4bf489318c7c46a1aab58e606e583651438084b7e029bf3c43/debugpy-1.8.15-cp313-cp313-win32.whl", hash = "sha256:fcf0748d4f6e25f89dc5e013d1129ca6f26ad4da405e0723a4f704583896a709", size = 5275949 }, + { url = "https://files.pythonhosted.org/packages/72/83/9e58e6fdfa8710a5e6ec06c2401241b9ad48b71c0a7eb99570a1f1edb1d3/debugpy-1.8.15-cp313-cp313-win_amd64.whl", hash = "sha256:73c943776cb83e36baf95e8f7f8da765896fd94b05991e7bc162456d25500683", size = 5317720 }, + { url = "https://files.pythonhosted.org/packages/07/d5/98748d9860e767a1248b5e31ffa7ce8cb7006e97bf8abbf3d891d0a8ba4e/debugpy-1.8.15-py2.py3-none-any.whl", hash = "sha256:bce2e6c5ff4f2e00b98d45e7e01a49c7b489ff6df5f12d881c67d2f1ac635f3d", size = 5282697 }, +] + +[[package]] +name = "decorator" +version = "5.2.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/43/fa/6d96a0978d19e17b68d634497769987b16c8f4cd0a7a05048bec693caa6b/decorator-5.2.1.tar.gz", hash = "sha256:65f266143752f734b0a7cc83c46f4618af75b8c5911b00ccb61d0ac9b6da0360", size = 56711 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4e/8c/f3147f5c4b73e7550fe5f9352eaa956ae838d5c51eb58e7a25b9f3e2643b/decorator-5.2.1-py3-none-any.whl", hash = "sha256:d316bb415a2d9e2d2b3abcc4084c6502fc09240e292cd76a76afc106a1c8e04a", size = 9190 }, +] + +[[package]] +name = "distro" +version = "1.9.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/fc/f8/98eea607f65de6527f8a2e8885fc8015d3e6f5775df186e443e0964a11c3/distro-1.9.0.tar.gz", hash = "sha256:2fa77c6fd8940f116ee1d6b94a2f90b13b5ea8d019b98bc8bafdcabcdd9bdbed", size = 60722 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/12/b3/231ffd4ab1fc9d679809f356cebee130ac7daa00d6d6f3206dd4fd137e9e/distro-1.9.0-py3-none-any.whl", hash = "sha256:7bffd925d65168f85027d8da9af6bddab658135b840670a223589bc0c8ef02b2", size = 20277 }, +] + +[[package]] +name = "executing" +version = "2.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/91/50/a9d80c47ff289c611ff12e63f7c5d13942c65d68125160cefd768c73e6e4/executing-2.2.0.tar.gz", hash = "sha256:5d108c028108fe2551d1a7b2e8b713341e2cb4fc0aa7dcf966fa4327a5226755", size = 978693 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7b/8f/c4d9bafc34ad7ad5d8dc16dd1347ee0e507a52c3adb6bfa8887e1c6a26ba/executing-2.2.0-py2.py3-none-any.whl", hash = "sha256:11387150cad388d62750327a53d3339fad4888b39a6fe233c3afbb54ecffd3aa", size = 26702 }, +] + +[[package]] +name = "fastapi" +version = "0.115.14" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pydantic" }, + { name = "starlette" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ca/53/8c38a874844a8b0fa10dd8adf3836ac154082cf88d3f22b544e9ceea0a15/fastapi-0.115.14.tar.gz", hash = "sha256:b1de15cdc1c499a4da47914db35d0e4ef8f1ce62b624e94e0e5824421df99739", size = 296263 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/53/50/b1222562c6d270fea83e9c9075b8e8600b8479150a18e4516a6138b980d1/fastapi-0.115.14-py3-none-any.whl", hash = "sha256:6c0c8bf9420bd58f565e585036d971872472b4f7d3f6c73b698e10cffdefb3ca", size = 95514 }, +] + +[[package]] +name = "filelock" +version = "3.18.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/0a/10/c23352565a6544bdc5353e0b15fc1c563352101f30e24bf500207a54df9a/filelock-3.18.0.tar.gz", hash = "sha256:adbc88eabb99d2fec8c9c1b229b171f18afa655400173ddc653d5d01501fb9f2", size = 18075 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4d/36/2a115987e2d8c300a974597416d9de88f2444426de9571f4b59b2cca3acc/filelock-3.18.0-py3-none-any.whl", hash = "sha256:c401f4f8377c4464e6db25fff06205fd89bdd83b65eb0488ed1b160f780e21de", size = 16215 }, +] + +[[package]] +name = "frozenlist" +version = "1.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/79/b1/b64018016eeb087db503b038296fd782586432b9c077fc5c7839e9cb6ef6/frozenlist-1.7.0.tar.gz", hash = "sha256:2e310d81923c2437ea8670467121cc3e9b0f76d3043cc1d2331d56c7fb7a3a8f", size = 45078 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ef/a2/c8131383f1e66adad5f6ecfcce383d584ca94055a34d683bbb24ac5f2f1c/frozenlist-1.7.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:3dbf9952c4bb0e90e98aec1bd992b3318685005702656bc6f67c1a32b76787f2", size = 81424 }, + { url = "https://files.pythonhosted.org/packages/4c/9d/02754159955088cb52567337d1113f945b9e444c4960771ea90eb73de8db/frozenlist-1.7.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:1f5906d3359300b8a9bb194239491122e6cf1444c2efb88865426f170c262cdb", size = 47952 }, + { url = "https://files.pythonhosted.org/packages/01/7a/0046ef1bd6699b40acd2067ed6d6670b4db2f425c56980fa21c982c2a9db/frozenlist-1.7.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3dabd5a8f84573c8d10d8859a50ea2dec01eea372031929871368c09fa103478", size = 46688 }, + { url = "https://files.pythonhosted.org/packages/d6/a2/a910bafe29c86997363fb4c02069df4ff0b5bc39d33c5198b4e9dd42d8f8/frozenlist-1.7.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aa57daa5917f1738064f302bf2626281a1cb01920c32f711fbc7bc36111058a8", size = 243084 }, + { url = "https://files.pythonhosted.org/packages/64/3e/5036af9d5031374c64c387469bfcc3af537fc0f5b1187d83a1cf6fab1639/frozenlist-1.7.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:c193dda2b6d49f4c4398962810fa7d7c78f032bf45572b3e04dd5249dff27e08", size = 233524 }, + { url = "https://files.pythonhosted.org/packages/06/39/6a17b7c107a2887e781a48ecf20ad20f1c39d94b2a548c83615b5b879f28/frozenlist-1.7.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bfe2b675cf0aaa6d61bf8fbffd3c274b3c9b7b1623beb3809df8a81399a4a9c4", size = 248493 }, + { url = "https://files.pythonhosted.org/packages/be/00/711d1337c7327d88c44d91dd0f556a1c47fb99afc060ae0ef66b4d24793d/frozenlist-1.7.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8fc5d5cda37f62b262405cf9652cf0856839c4be8ee41be0afe8858f17f4c94b", size = 244116 }, + { url = "https://files.pythonhosted.org/packages/24/fe/74e6ec0639c115df13d5850e75722750adabdc7de24e37e05a40527ca539/frozenlist-1.7.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b0d5ce521d1dd7d620198829b87ea002956e4319002ef0bc8d3e6d045cb4646e", size = 224557 }, + { url = "https://files.pythonhosted.org/packages/8d/db/48421f62a6f77c553575201e89048e97198046b793f4a089c79a6e3268bd/frozenlist-1.7.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:488d0a7d6a0008ca0db273c542098a0fa9e7dfaa7e57f70acef43f32b3f69dca", size = 241820 }, + { url = "https://files.pythonhosted.org/packages/1d/fa/cb4a76bea23047c8462976ea7b7a2bf53997a0ca171302deae9d6dd12096/frozenlist-1.7.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:15a7eaba63983d22c54d255b854e8108e7e5f3e89f647fc854bd77a237e767df", size = 236542 }, + { url = "https://files.pythonhosted.org/packages/5d/32/476a4b5cfaa0ec94d3f808f193301debff2ea42288a099afe60757ef6282/frozenlist-1.7.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:1eaa7e9c6d15df825bf255649e05bd8a74b04a4d2baa1ae46d9c2d00b2ca2cb5", size = 249350 }, + { url = "https://files.pythonhosted.org/packages/8d/ba/9a28042f84a6bf8ea5dbc81cfff8eaef18d78b2a1ad9d51c7bc5b029ad16/frozenlist-1.7.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:e4389e06714cfa9d47ab87f784a7c5be91d3934cd6e9a7b85beef808297cc025", size = 225093 }, + { url = "https://files.pythonhosted.org/packages/bc/29/3a32959e68f9cf000b04e79ba574527c17e8842e38c91d68214a37455786/frozenlist-1.7.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:73bd45e1488c40b63fe5a7df892baf9e2a4d4bb6409a2b3b78ac1c6236178e01", size = 245482 }, + { url = "https://files.pythonhosted.org/packages/80/e8/edf2f9e00da553f07f5fa165325cfc302dead715cab6ac8336a5f3d0adc2/frozenlist-1.7.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:99886d98e1643269760e5fe0df31e5ae7050788dd288947f7f007209b8c33f08", size = 249590 }, + { url = "https://files.pythonhosted.org/packages/1c/80/9a0eb48b944050f94cc51ee1c413eb14a39543cc4f760ed12657a5a3c45a/frozenlist-1.7.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:290a172aae5a4c278c6da8a96222e6337744cd9c77313efe33d5670b9f65fc43", size = 237785 }, + { url = "https://files.pythonhosted.org/packages/f3/74/87601e0fb0369b7a2baf404ea921769c53b7ae00dee7dcfe5162c8c6dbf0/frozenlist-1.7.0-cp312-cp312-win32.whl", hash = "sha256:426c7bc70e07cfebc178bc4c2bf2d861d720c4fff172181eeb4a4c41d4ca2ad3", size = 39487 }, + { url = "https://files.pythonhosted.org/packages/0b/15/c026e9a9fc17585a9d461f65d8593d281fedf55fbf7eb53f16c6df2392f9/frozenlist-1.7.0-cp312-cp312-win_amd64.whl", hash = "sha256:563b72efe5da92e02eb68c59cb37205457c977aa7a449ed1b37e6939e5c47c6a", size = 43874 }, + { url = "https://files.pythonhosted.org/packages/24/90/6b2cebdabdbd50367273c20ff6b57a3dfa89bd0762de02c3a1eb42cb6462/frozenlist-1.7.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ee80eeda5e2a4e660651370ebffd1286542b67e268aa1ac8d6dbe973120ef7ee", size = 79791 }, + { url = "https://files.pythonhosted.org/packages/83/2e/5b70b6a3325363293fe5fc3ae74cdcbc3e996c2a11dde2fd9f1fb0776d19/frozenlist-1.7.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:d1a81c85417b914139e3a9b995d4a1c84559afc839a93cf2cb7f15e6e5f6ed2d", size = 47165 }, + { url = "https://files.pythonhosted.org/packages/f4/25/a0895c99270ca6966110f4ad98e87e5662eab416a17e7fd53c364bf8b954/frozenlist-1.7.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cbb65198a9132ebc334f237d7b0df163e4de83fb4f2bdfe46c1e654bdb0c5d43", size = 45881 }, + { url = "https://files.pythonhosted.org/packages/19/7c/71bb0bbe0832793c601fff68cd0cf6143753d0c667f9aec93d3c323f4b55/frozenlist-1.7.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dab46c723eeb2c255a64f9dc05b8dd601fde66d6b19cdb82b2e09cc6ff8d8b5d", size = 232409 }, + { url = "https://files.pythonhosted.org/packages/c0/45/ed2798718910fe6eb3ba574082aaceff4528e6323f9a8570be0f7028d8e9/frozenlist-1.7.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:6aeac207a759d0dedd2e40745575ae32ab30926ff4fa49b1635def65806fddee", size = 225132 }, + { url = "https://files.pythonhosted.org/packages/ba/e2/8417ae0f8eacb1d071d4950f32f229aa6bf68ab69aab797b72a07ea68d4f/frozenlist-1.7.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bd8c4e58ad14b4fa7802b8be49d47993182fdd4023393899632c88fd8cd994eb", size = 237638 }, + { url = "https://files.pythonhosted.org/packages/f8/b7/2ace5450ce85f2af05a871b8c8719b341294775a0a6c5585d5e6170f2ce7/frozenlist-1.7.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:04fb24d104f425da3540ed83cbfc31388a586a7696142004c577fa61c6298c3f", size = 233539 }, + { url = "https://files.pythonhosted.org/packages/46/b9/6989292c5539553dba63f3c83dc4598186ab2888f67c0dc1d917e6887db6/frozenlist-1.7.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6a5c505156368e4ea6b53b5ac23c92d7edc864537ff911d2fb24c140bb175e60", size = 215646 }, + { url = "https://files.pythonhosted.org/packages/72/31/bc8c5c99c7818293458fe745dab4fd5730ff49697ccc82b554eb69f16a24/frozenlist-1.7.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8bd7eb96a675f18aa5c553eb7ddc24a43c8c18f22e1f9925528128c052cdbe00", size = 232233 }, + { url = "https://files.pythonhosted.org/packages/59/52/460db4d7ba0811b9ccb85af996019f5d70831f2f5f255f7cc61f86199795/frozenlist-1.7.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:05579bf020096fe05a764f1f84cd104a12f78eaab68842d036772dc6d4870b4b", size = 227996 }, + { url = "https://files.pythonhosted.org/packages/ba/c9/f4b39e904c03927b7ecf891804fd3b4df3db29b9e487c6418e37988d6e9d/frozenlist-1.7.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:376b6222d114e97eeec13d46c486facd41d4f43bab626b7c3f6a8b4e81a5192c", size = 242280 }, + { url = "https://files.pythonhosted.org/packages/b8/33/3f8d6ced42f162d743e3517781566b8481322be321b486d9d262adf70bfb/frozenlist-1.7.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:0aa7e176ebe115379b5b1c95b4096fb1c17cce0847402e227e712c27bdb5a949", size = 217717 }, + { url = "https://files.pythonhosted.org/packages/3e/e8/ad683e75da6ccef50d0ab0c2b2324b32f84fc88ceee778ed79b8e2d2fe2e/frozenlist-1.7.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:3fbba20e662b9c2130dc771e332a99eff5da078b2b2648153a40669a6d0e36ca", size = 236644 }, + { url = "https://files.pythonhosted.org/packages/b2/14/8d19ccdd3799310722195a72ac94ddc677541fb4bef4091d8e7775752360/frozenlist-1.7.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:f3f4410a0a601d349dd406b5713fec59b4cee7e71678d5b17edda7f4655a940b", size = 238879 }, + { url = "https://files.pythonhosted.org/packages/ce/13/c12bf657494c2fd1079a48b2db49fa4196325909249a52d8f09bc9123fd7/frozenlist-1.7.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e2cdfaaec6a2f9327bf43c933c0319a7c429058e8537c508964a133dffee412e", size = 232502 }, + { url = "https://files.pythonhosted.org/packages/d7/8b/e7f9dfde869825489382bc0d512c15e96d3964180c9499efcec72e85db7e/frozenlist-1.7.0-cp313-cp313-win32.whl", hash = "sha256:5fc4df05a6591c7768459caba1b342d9ec23fa16195e744939ba5914596ae3e1", size = 39169 }, + { url = "https://files.pythonhosted.org/packages/35/89/a487a98d94205d85745080a37860ff5744b9820a2c9acbcdd9440bfddf98/frozenlist-1.7.0-cp313-cp313-win_amd64.whl", hash = "sha256:52109052b9791a3e6b5d1b65f4b909703984b770694d3eb64fad124c835d7cba", size = 43219 }, + { url = "https://files.pythonhosted.org/packages/56/d5/5c4cf2319a49eddd9dd7145e66c4866bdc6f3dbc67ca3d59685149c11e0d/frozenlist-1.7.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:a6f86e4193bb0e235ef6ce3dde5cbabed887e0b11f516ce8a0f4d3b33078ec2d", size = 84345 }, + { url = "https://files.pythonhosted.org/packages/a4/7d/ec2c1e1dc16b85bc9d526009961953df9cec8481b6886debb36ec9107799/frozenlist-1.7.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:82d664628865abeb32d90ae497fb93df398a69bb3434463d172b80fc25b0dd7d", size = 48880 }, + { url = "https://files.pythonhosted.org/packages/69/86/f9596807b03de126e11e7d42ac91e3d0b19a6599c714a1989a4e85eeefc4/frozenlist-1.7.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:912a7e8375a1c9a68325a902f3953191b7b292aa3c3fb0d71a216221deca460b", size = 48498 }, + { url = "https://files.pythonhosted.org/packages/5e/cb/df6de220f5036001005f2d726b789b2c0b65f2363b104bbc16f5be8084f8/frozenlist-1.7.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9537c2777167488d539bc5de2ad262efc44388230e5118868e172dd4a552b146", size = 292296 }, + { url = "https://files.pythonhosted.org/packages/83/1f/de84c642f17c8f851a2905cee2dae401e5e0daca9b5ef121e120e19aa825/frozenlist-1.7.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:f34560fb1b4c3e30ba35fa9a13894ba39e5acfc5f60f57d8accde65f46cc5e74", size = 273103 }, + { url = "https://files.pythonhosted.org/packages/88/3c/c840bfa474ba3fa13c772b93070893c6e9d5c0350885760376cbe3b6c1b3/frozenlist-1.7.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:acd03d224b0175f5a850edc104ac19040d35419eddad04e7cf2d5986d98427f1", size = 292869 }, + { url = "https://files.pythonhosted.org/packages/a6/1c/3efa6e7d5a39a1d5ef0abeb51c48fb657765794a46cf124e5aca2c7a592c/frozenlist-1.7.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f2038310bc582f3d6a09b3816ab01737d60bf7b1ec70f5356b09e84fb7408ab1", size = 291467 }, + { url = "https://files.pythonhosted.org/packages/4f/00/d5c5e09d4922c395e2f2f6b79b9a20dab4b67daaf78ab92e7729341f61f6/frozenlist-1.7.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b8c05e4c8e5f36e5e088caa1bf78a687528f83c043706640a92cb76cd6999384", size = 266028 }, + { url = "https://files.pythonhosted.org/packages/4e/27/72765be905619dfde25a7f33813ac0341eb6b076abede17a2e3fbfade0cb/frozenlist-1.7.0-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:765bb588c86e47d0b68f23c1bee323d4b703218037765dcf3f25c838c6fecceb", size = 284294 }, + { url = "https://files.pythonhosted.org/packages/88/67/c94103a23001b17808eb7dd1200c156bb69fb68e63fcf0693dde4cd6228c/frozenlist-1.7.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:32dc2e08c67d86d0969714dd484fd60ff08ff81d1a1e40a77dd34a387e6ebc0c", size = 281898 }, + { url = "https://files.pythonhosted.org/packages/42/34/a3e2c00c00f9e2a9db5653bca3fec306349e71aff14ae45ecc6d0951dd24/frozenlist-1.7.0-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:c0303e597eb5a5321b4de9c68e9845ac8f290d2ab3f3e2c864437d3c5a30cd65", size = 290465 }, + { url = "https://files.pythonhosted.org/packages/bb/73/f89b7fbce8b0b0c095d82b008afd0590f71ccb3dee6eee41791cf8cd25fd/frozenlist-1.7.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:a47f2abb4e29b3a8d0b530f7c3598badc6b134562b1a5caee867f7c62fee51e3", size = 266385 }, + { url = "https://files.pythonhosted.org/packages/cd/45/e365fdb554159462ca12df54bc59bfa7a9a273ecc21e99e72e597564d1ae/frozenlist-1.7.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:3d688126c242a6fabbd92e02633414d40f50bb6002fa4cf995a1d18051525657", size = 288771 }, + { url = "https://files.pythonhosted.org/packages/00/11/47b6117002a0e904f004d70ec5194fe9144f117c33c851e3d51c765962d0/frozenlist-1.7.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:4e7e9652b3d367c7bd449a727dc79d5043f48b88d0cbfd4f9f1060cf2b414104", size = 288206 }, + { url = "https://files.pythonhosted.org/packages/40/37/5f9f3c3fd7f7746082ec67bcdc204db72dad081f4f83a503d33220a92973/frozenlist-1.7.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:1a85e345b4c43db8b842cab1feb41be5cc0b10a1830e6295b69d7310f99becaf", size = 282620 }, + { url = "https://files.pythonhosted.org/packages/0b/31/8fbc5af2d183bff20f21aa743b4088eac4445d2bb1cdece449ae80e4e2d1/frozenlist-1.7.0-cp313-cp313t-win32.whl", hash = "sha256:3a14027124ddb70dfcee5148979998066897e79f89f64b13328595c4bdf77c81", size = 43059 }, + { url = "https://files.pythonhosted.org/packages/bb/ed/41956f52105b8dbc26e457c5705340c67c8cc2b79f394b79bffc09d0e938/frozenlist-1.7.0-cp313-cp313t-win_amd64.whl", hash = "sha256:3bf8010d71d4507775f658e9823210b7427be36625b387221642725b515dcf3e", size = 47516 }, + { url = "https://files.pythonhosted.org/packages/ee/45/b82e3c16be2182bff01179db177fe144d58b5dc787a7d4492c6ed8b9317f/frozenlist-1.7.0-py3-none-any.whl", hash = "sha256:9a5af342e34f7e97caf8c995864c7a396418ae2859cc6fdf1b1073020d516a7e", size = 13106 }, +] + +[[package]] +name = "fsspec" +version = "2025.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/8b/02/0835e6ab9cfc03916fe3f78c0956cfcdb6ff2669ffa6651065d5ebf7fc98/fsspec-2025.7.0.tar.gz", hash = "sha256:786120687ffa54b8283d942929540d8bc5ccfa820deb555a2b5d0ed2b737bf58", size = 304432 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2f/e0/014d5d9d7a4564cf1c40b5039bc882db69fd881111e03ab3657ac0b218e2/fsspec-2025.7.0-py3-none-any.whl", hash = "sha256:8b012e39f63c7d5f10474de957f3ab793b47b45ae7d39f2fb735f8bbe25c0e21", size = 199597 }, +] + +[[package]] +name = "google-auth" +version = "2.40.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cachetools" }, + { name = "pyasn1-modules" }, + { name = "rsa" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/9e/9b/e92ef23b84fa10a64ce4831390b7a4c2e53c0132568d99d4ae61d04c8855/google_auth-2.40.3.tar.gz", hash = "sha256:500c3a29adedeb36ea9cf24b8d10858e152f2412e3ca37829b3fa18e33d63b77", size = 281029 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/17/63/b19553b658a1692443c62bd07e5868adaa0ad746a0751ba62c59568cd45b/google_auth-2.40.3-py2.py3-none-any.whl", hash = "sha256:1370d4593e86213563547f97a92752fc658456fe4514c809544f330fed45a7ca", size = 216137 }, +] + +[[package]] +name = "griffe" +version = "1.7.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a9/3e/5aa9a61f7c3c47b0b52a1d930302992229d191bf4bc76447b324b731510a/griffe-1.7.3.tar.gz", hash = "sha256:52ee893c6a3a968b639ace8015bec9d36594961e156e23315c8e8e51401fa50b", size = 395137 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/58/c6/5c20af38c2a57c15d87f7f38bee77d63c1d2a3689f74fefaf35915dd12b2/griffe-1.7.3-py3-none-any.whl", hash = "sha256:c6b3ee30c2f0f17f30bcdef5068d6ab7a2a4f1b8bf1a3e74b56fffd21e1c5f75", size = 129303 }, +] + +[[package]] +name = "h11" +version = "0.16.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/01/ee/02a2c011bdab74c6fb3c75474d40b3052059d95df7e73351460c8588d963/h11-0.16.0.tar.gz", hash = "sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1", size = 101250 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86", size = 37515 }, +] + +[[package]] +name = "hf-xet" +version = "1.1.5" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ed/d4/7685999e85945ed0d7f0762b686ae7015035390de1161dcea9d5276c134c/hf_xet-1.1.5.tar.gz", hash = "sha256:69ebbcfd9ec44fdc2af73441619eeb06b94ee34511bbcf57cd423820090f5694", size = 495969 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/00/89/a1119eebe2836cb25758e7661d6410d3eae982e2b5e974bcc4d250be9012/hf_xet-1.1.5-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:f52c2fa3635b8c37c7764d8796dfa72706cc4eded19d638331161e82b0792e23", size = 2687929 }, + { url = "https://files.pythonhosted.org/packages/de/5f/2c78e28f309396e71ec8e4e9304a6483dcbc36172b5cea8f291994163425/hf_xet-1.1.5-cp37-abi3-macosx_11_0_arm64.whl", hash = "sha256:9fa6e3ee5d61912c4a113e0708eaaef987047616465ac7aa30f7121a48fc1af8", size = 2556338 }, + { url = "https://files.pythonhosted.org/packages/6d/2f/6cad7b5fe86b7652579346cb7f85156c11761df26435651cbba89376cd2c/hf_xet-1.1.5-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc874b5c843e642f45fd85cda1ce599e123308ad2901ead23d3510a47ff506d1", size = 3102894 }, + { url = "https://files.pythonhosted.org/packages/d0/54/0fcf2b619720a26fbb6cc941e89f2472a522cd963a776c089b189559447f/hf_xet-1.1.5-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:dbba1660e5d810bd0ea77c511a99e9242d920790d0e63c0e4673ed36c4022d18", size = 3002134 }, + { url = "https://files.pythonhosted.org/packages/f3/92/1d351ac6cef7c4ba8c85744d37ffbfac2d53d0a6c04d2cabeba614640a78/hf_xet-1.1.5-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:ab34c4c3104133c495785d5d8bba3b1efc99de52c02e759cf711a91fd39d3a14", size = 3171009 }, + { url = "https://files.pythonhosted.org/packages/c9/65/4b2ddb0e3e983f2508528eb4501288ae2f84963586fbdfae596836d5e57a/hf_xet-1.1.5-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:83088ecea236d5113de478acb2339f92c95b4fb0462acaa30621fac02f5a534a", size = 3279245 }, + { url = "https://files.pythonhosted.org/packages/f0/55/ef77a85ee443ae05a9e9cba1c9f0dd9241eb42da2aeba1dc50f51154c81a/hf_xet-1.1.5-cp37-abi3-win_amd64.whl", hash = "sha256:73e167d9807d166596b4b2f0b585c6d5bd84a26dea32843665a8b58f6edba245", size = 2738931 }, +] + +[[package]] +name = "httpcore" +version = "1.0.9" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "h11" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/06/94/82699a10bca87a5556c9c59b5963f2d039dbd239f25bc2a63907a05a14cb/httpcore-1.0.9.tar.gz", hash = "sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8", size = 85484 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl", hash = "sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55", size = 78784 }, +] + +[[package]] +name = "httpx" +version = "0.27.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "certifi" }, + { name = "httpcore" }, + { name = "idna" }, + { name = "sniffio" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/78/82/08f8c936781f67d9e6b9eeb8a0c8b4e406136ea4c3d1f89a5db71d42e0e6/httpx-0.27.2.tar.gz", hash = "sha256:f7c2be1d2f3c3c3160d441802406b206c2b76f5947b11115e6df10c6c65e66c2", size = 144189 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/56/95/9377bcb415797e44274b51d46e3249eba641711cf3348050f76ee7b15ffc/httpx-0.27.2-py3-none-any.whl", hash = "sha256:7bb2708e112d8fdd7829cd4243970f0c223274051cb35ee80c03301ee29a3df0", size = 76395 }, +] + +[[package]] +name = "httpx-aiohttp" +version = "0.1.8" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohttp" }, + { name = "httpx" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/37/19/ae2d2bf1f57fdd23c8ad83675599fb5c407fa13bc20e90f00cffa4dea3aa/httpx_aiohttp-0.1.8.tar.gz", hash = "sha256:756c5e74cdb568c3248ba63fe82bfe8bbe64b928728720f7eaac64b3cf46f308", size = 25401 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/54/7a/514c484b88cc4ebbcd2e27e92b86019c0c5bb920582f5fbb10b7e6c78574/httpx_aiohttp-0.1.8-py3-none-any.whl", hash = "sha256:b7bd958d1331f3759a38a0ba22ad29832cb63ca69498c17735228055bf78fa7e", size = 6180 }, +] + +[[package]] +name = "httpx-sse" +version = "0.4.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6e/fa/66bd985dd0b7c109a3bcb89272ee0bfb7e2b4d06309ad7b38ff866734b2a/httpx_sse-0.4.1.tar.gz", hash = "sha256:8f44d34414bc7b21bf3602713005c5df4917884f76072479b21f68befa4ea26e", size = 12998 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/25/0a/6269e3473b09aed2dab8aa1a600c70f31f00ae1349bee30658f7e358a159/httpx_sse-0.4.1-py3-none-any.whl", hash = "sha256:cba42174344c3a5b06f255ce65b350880f962d99ead85e776f23c6618a377a37", size = 8054 }, +] + +[[package]] +name = "huggingface-hub" +version = "0.33.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "filelock" }, + { name = "fsspec" }, + { name = "hf-xet", marker = "platform_machine == 'aarch64' or platform_machine == 'amd64' or platform_machine == 'arm64' or platform_machine == 'x86_64'" }, + { name = "packaging" }, + { name = "pyyaml" }, + { name = "requests" }, + { name = "tqdm" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/4b/9e/9366b7349fc125dd68b9d384a0fea84d67b7497753fe92c71b67e13f47c4/huggingface_hub-0.33.4.tar.gz", hash = "sha256:6af13478deae120e765bfd92adad0ae1aec1ad8c439b46f23058ad5956cbca0a", size = 426674 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/46/7b/98daa50a2db034cab6cd23a3de04fa2358cb691593d28e9130203eb7a805/huggingface_hub-0.33.4-py3-none-any.whl", hash = "sha256:09f9f4e7ca62547c70f8b82767eefadd2667f4e116acba2e3e62a5a81815a7bb", size = 515339 }, +] + +[[package]] +name = "idna" +version = "3.10" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f1/70/7703c29685631f5a7590aa73f1f1d3fa9a380e654b86af429e0934a32f7d/idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9", size = 190490 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3", size = 70442 }, +] + +[[package]] +name = "importlib-metadata" +version = "8.7.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "zipp" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/76/66/650a33bd90f786193e4de4b3ad86ea60b53c89b669a5c7be931fac31cdb0/importlib_metadata-8.7.0.tar.gz", hash = "sha256:d13b81ad223b890aa16c5471f2ac3056cf76c5f10f82d6f9292f0b415f389000", size = 56641 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/20/b0/36bd937216ec521246249be3bf9855081de4c5e06a0c9b4219dbeda50373/importlib_metadata-8.7.0-py3-none-any.whl", hash = "sha256:e5dd1551894c77868a30651cef00984d50e1002d06942a7101d34870c5f02afd", size = 27656 }, +] + +[[package]] +name = "iniconfig" +version = "2.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f2/97/ebf4da567aa6827c909642694d71c9fcf53e5b504f2d96afea02718862f3/iniconfig-2.1.0.tar.gz", hash = "sha256:3abbd2e30b36733fee78f9c7f7308f2d0050e88f0087fd25c2645f63c773e1c7", size = 4793 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2c/e1/e6716421ea10d38022b952c159d5161ca1193197fb744506875fbb87ea7b/iniconfig-2.1.0-py3-none-any.whl", hash = "sha256:9deba5723312380e77435581c6bf4935c94cbfab9b1ed33ef8d238ea168eb760", size = 6050 }, +] + +[[package]] +name = "ipykernel" +version = "6.29.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "appnope", marker = "sys_platform == 'darwin'" }, + { name = "comm" }, + { name = "debugpy" }, + { name = "ipython" }, + { name = "jupyter-client" }, + { name = "jupyter-core" }, + { name = "matplotlib-inline" }, + { name = "nest-asyncio" }, + { name = "packaging" }, + { name = "psutil" }, + { name = "pyzmq" }, + { name = "tornado" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e9/5c/67594cb0c7055dc50814b21731c22a601101ea3b1b50a9a1b090e11f5d0f/ipykernel-6.29.5.tar.gz", hash = "sha256:f093a22c4a40f8828f8e330a9c297cb93dcab13bd9678ded6de8e5cf81c56215", size = 163367 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/94/5c/368ae6c01c7628438358e6d337c19b05425727fbb221d2a3c4303c372f42/ipykernel-6.29.5-py3-none-any.whl", hash = "sha256:afdb66ba5aa354b09b91379bac28ae4afebbb30e8b39510c9690afb7a10421b5", size = 117173 }, +] + +[[package]] +name = "ipython" +version = "9.4.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, + { name = "decorator" }, + { name = "ipython-pygments-lexers" }, + { name = "jedi" }, + { name = "matplotlib-inline" }, + { name = "pexpect", marker = "sys_platform != 'emscripten' and sys_platform != 'win32'" }, + { name = "prompt-toolkit" }, + { name = "pygments" }, + { name = "stack-data" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/54/80/406f9e3bde1c1fd9bf5a0be9d090f8ae623e401b7670d8f6fdf2ab679891/ipython-9.4.0.tar.gz", hash = "sha256:c033c6d4e7914c3d9768aabe76bbe87ba1dc66a92a05db6bfa1125d81f2ee270", size = 4385338 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/63/f8/0031ee2b906a15a33d6bfc12dd09c3dfa966b3cb5b284ecfb7549e6ac3c4/ipython-9.4.0-py3-none-any.whl", hash = "sha256:25850f025a446d9b359e8d296ba175a36aedd32e83ca9b5060430fe16801f066", size = 611021 }, +] + +[[package]] +name = "ipython-pygments-lexers" +version = "1.1.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pygments" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ef/4c/5dd1d8af08107f88c7f741ead7a40854b8ac24ddf9ae850afbcf698aa552/ipython_pygments_lexers-1.1.1.tar.gz", hash = "sha256:09c0138009e56b6854f9535736f4171d855c8c08a563a0dcd8022f78355c7e81", size = 8393 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d9/33/1f075bf72b0b747cb3288d011319aaf64083cf2efef8354174e3ed4540e2/ipython_pygments_lexers-1.1.1-py3-none-any.whl", hash = "sha256:a9462224a505ade19a605f71f8fa63c2048833ce50abc86768a0d81d876dc81c", size = 8074 }, +] + +[[package]] +name = "jedi" +version = "0.19.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "parso" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/72/3a/79a912fbd4d8dd6fbb02bf69afd3bb72cf0c729bb3063c6f4498603db17a/jedi-0.19.2.tar.gz", hash = "sha256:4770dc3de41bde3966b02eb84fbcf557fb33cce26ad23da12c742fb50ecb11f0", size = 1231287 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c0/5a/9cac0c82afec3d09ccd97c8b6502d48f165f9124db81b4bcb90b4af974ee/jedi-0.19.2-py2.py3-none-any.whl", hash = "sha256:a8ef22bde8490f57fe5c7681a3c83cb58874daf72b4784de3cce5b6ef6edb5b9", size = 1572278 }, +] + +[[package]] +name = "jinja2" +version = "3.1.6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markupsafe" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/df/bf/f7da0350254c0ed7c72f3e33cef02e048281fec7ecec5f032d4aac52226b/jinja2-3.1.6.tar.gz", hash = "sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d", size = 245115 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67", size = 134899 }, +] + +[[package]] +name = "jiter" +version = "0.10.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ee/9d/ae7ddb4b8ab3fb1b51faf4deb36cb48a4fbbd7cb36bad6a5fca4741306f7/jiter-0.10.0.tar.gz", hash = "sha256:07a7142c38aacc85194391108dc91b5b57093c978a9932bd86a36862759d9500", size = 162759 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6d/b5/348b3313c58f5fbfb2194eb4d07e46a35748ba6e5b3b3046143f3040bafa/jiter-0.10.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:1e274728e4a5345a6dde2d343c8da018b9d4bd4350f5a472fa91f66fda44911b", size = 312262 }, + { url = "https://files.pythonhosted.org/packages/9c/4a/6a2397096162b21645162825f058d1709a02965606e537e3304b02742e9b/jiter-0.10.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7202ae396446c988cb2a5feb33a543ab2165b786ac97f53b59aafb803fef0744", size = 320124 }, + { url = "https://files.pythonhosted.org/packages/2a/85/1ce02cade7516b726dd88f59a4ee46914bf79d1676d1228ef2002ed2f1c9/jiter-0.10.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:23ba7722d6748b6920ed02a8f1726fb4b33e0fd2f3f621816a8b486c66410ab2", size = 345330 }, + { url = "https://files.pythonhosted.org/packages/75/d0/bb6b4f209a77190ce10ea8d7e50bf3725fc16d3372d0a9f11985a2b23eff/jiter-0.10.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:371eab43c0a288537d30e1f0b193bc4eca90439fc08a022dd83e5e07500ed026", size = 369670 }, + { url = "https://files.pythonhosted.org/packages/a0/f5/a61787da9b8847a601e6827fbc42ecb12be2c925ced3252c8ffcb56afcaf/jiter-0.10.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6c675736059020365cebc845a820214765162728b51ab1e03a1b7b3abb70f74c", size = 489057 }, + { url = "https://files.pythonhosted.org/packages/12/e4/6f906272810a7b21406c760a53aadbe52e99ee070fc5c0cb191e316de30b/jiter-0.10.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0c5867d40ab716e4684858e4887489685968a47e3ba222e44cde6e4a2154f959", size = 389372 }, + { url = "https://files.pythonhosted.org/packages/e2/ba/77013b0b8ba904bf3762f11e0129b8928bff7f978a81838dfcc958ad5728/jiter-0.10.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:395bb9a26111b60141757d874d27fdea01b17e8fac958b91c20128ba8f4acc8a", size = 352038 }, + { url = "https://files.pythonhosted.org/packages/67/27/c62568e3ccb03368dbcc44a1ef3a423cb86778a4389e995125d3d1aaa0a4/jiter-0.10.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6842184aed5cdb07e0c7e20e5bdcfafe33515ee1741a6835353bb45fe5d1bd95", size = 391538 }, + { url = "https://files.pythonhosted.org/packages/c0/72/0d6b7e31fc17a8fdce76164884edef0698ba556b8eb0af9546ae1a06b91d/jiter-0.10.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:62755d1bcea9876770d4df713d82606c8c1a3dca88ff39046b85a048566d56ea", size = 523557 }, + { url = "https://files.pythonhosted.org/packages/2f/09/bc1661fbbcbeb6244bd2904ff3a06f340aa77a2b94e5a7373fd165960ea3/jiter-0.10.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:533efbce2cacec78d5ba73a41756beff8431dfa1694b6346ce7af3a12c42202b", size = 514202 }, + { url = "https://files.pythonhosted.org/packages/1b/84/5a5d5400e9d4d54b8004c9673bbe4403928a00d28529ff35b19e9d176b19/jiter-0.10.0-cp312-cp312-win32.whl", hash = "sha256:8be921f0cadd245e981b964dfbcd6fd4bc4e254cdc069490416dd7a2632ecc01", size = 211781 }, + { url = "https://files.pythonhosted.org/packages/9b/52/7ec47455e26f2d6e5f2ea4951a0652c06e5b995c291f723973ae9e724a65/jiter-0.10.0-cp312-cp312-win_amd64.whl", hash = "sha256:a7c7d785ae9dda68c2678532a5a1581347e9c15362ae9f6e68f3fdbfb64f2e49", size = 206176 }, + { url = "https://files.pythonhosted.org/packages/2e/b0/279597e7a270e8d22623fea6c5d4eeac328e7d95c236ed51a2b884c54f70/jiter-0.10.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:e0588107ec8e11b6f5ef0e0d656fb2803ac6cf94a96b2b9fc675c0e3ab5e8644", size = 311617 }, + { url = "https://files.pythonhosted.org/packages/91/e3/0916334936f356d605f54cc164af4060e3e7094364add445a3bc79335d46/jiter-0.10.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cafc4628b616dc32530c20ee53d71589816cf385dd9449633e910d596b1f5c8a", size = 318947 }, + { url = "https://files.pythonhosted.org/packages/6a/8e/fd94e8c02d0e94539b7d669a7ebbd2776e51f329bb2c84d4385e8063a2ad/jiter-0.10.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:520ef6d981172693786a49ff5b09eda72a42e539f14788124a07530f785c3ad6", size = 344618 }, + { url = "https://files.pythonhosted.org/packages/6f/b0/f9f0a2ec42c6e9c2e61c327824687f1e2415b767e1089c1d9135f43816bd/jiter-0.10.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:554dedfd05937f8fc45d17ebdf298fe7e0c77458232bcb73d9fbbf4c6455f5b3", size = 368829 }, + { url = "https://files.pythonhosted.org/packages/e8/57/5bbcd5331910595ad53b9fd0c610392ac68692176f05ae48d6ce5c852967/jiter-0.10.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5bc299da7789deacf95f64052d97f75c16d4fc8c4c214a22bf8d859a4288a1c2", size = 491034 }, + { url = "https://files.pythonhosted.org/packages/9b/be/c393df00e6e6e9e623a73551774449f2f23b6ec6a502a3297aeeece2c65a/jiter-0.10.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5161e201172de298a8a1baad95eb85db4fb90e902353b1f6a41d64ea64644e25", size = 388529 }, + { url = "https://files.pythonhosted.org/packages/42/3e/df2235c54d365434c7f150b986a6e35f41ebdc2f95acea3036d99613025d/jiter-0.10.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2e2227db6ba93cb3e2bf67c87e594adde0609f146344e8207e8730364db27041", size = 350671 }, + { url = "https://files.pythonhosted.org/packages/c6/77/71b0b24cbcc28f55ab4dbfe029f9a5b73aeadaba677843fc6dc9ed2b1d0a/jiter-0.10.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:15acb267ea5e2c64515574b06a8bf393fbfee6a50eb1673614aa45f4613c0cca", size = 390864 }, + { url = "https://files.pythonhosted.org/packages/6a/d3/ef774b6969b9b6178e1d1e7a89a3bd37d241f3d3ec5f8deb37bbd203714a/jiter-0.10.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:901b92f2e2947dc6dfcb52fd624453862e16665ea909a08398dde19c0731b7f4", size = 522989 }, + { url = "https://files.pythonhosted.org/packages/0c/41/9becdb1d8dd5d854142f45a9d71949ed7e87a8e312b0bede2de849388cb9/jiter-0.10.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:d0cb9a125d5a3ec971a094a845eadde2db0de85b33c9f13eb94a0c63d463879e", size = 513495 }, + { url = "https://files.pythonhosted.org/packages/9c/36/3468e5a18238bdedae7c4d19461265b5e9b8e288d3f86cd89d00cbb48686/jiter-0.10.0-cp313-cp313-win32.whl", hash = "sha256:48a403277ad1ee208fb930bdf91745e4d2d6e47253eedc96e2559d1e6527006d", size = 211289 }, + { url = "https://files.pythonhosted.org/packages/7e/07/1c96b623128bcb913706e294adb5f768fb7baf8db5e1338ce7b4ee8c78ef/jiter-0.10.0-cp313-cp313-win_amd64.whl", hash = "sha256:75f9eb72ecb640619c29bf714e78c9c46c9c4eaafd644bf78577ede459f330d4", size = 205074 }, + { url = "https://files.pythonhosted.org/packages/54/46/caa2c1342655f57d8f0f2519774c6d67132205909c65e9aa8255e1d7b4f4/jiter-0.10.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:28ed2a4c05a1f32ef0e1d24c2611330219fed727dae01789f4a335617634b1ca", size = 318225 }, + { url = "https://files.pythonhosted.org/packages/43/84/c7d44c75767e18946219ba2d703a5a32ab37b0bc21886a97bc6062e4da42/jiter-0.10.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:14a4c418b1ec86a195f1ca69da8b23e8926c752b685af665ce30777233dfe070", size = 350235 }, + { url = "https://files.pythonhosted.org/packages/01/16/f5a0135ccd968b480daad0e6ab34b0c7c5ba3bc447e5088152696140dcb3/jiter-0.10.0-cp313-cp313t-win_amd64.whl", hash = "sha256:d7bfed2fe1fe0e4dda6ef682cee888ba444b21e7a6553e03252e4feb6cf0adca", size = 207278 }, + { url = "https://files.pythonhosted.org/packages/1c/9b/1d646da42c3de6c2188fdaa15bce8ecb22b635904fc68be025e21249ba44/jiter-0.10.0-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:5e9251a5e83fab8d87799d3e1a46cb4b7f2919b895c6f4483629ed2446f66522", size = 310866 }, + { url = "https://files.pythonhosted.org/packages/ad/0e/26538b158e8a7c7987e94e7aeb2999e2e82b1f9d2e1f6e9874ddf71ebda0/jiter-0.10.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:023aa0204126fe5b87ccbcd75c8a0d0261b9abdbbf46d55e7ae9f8e22424eeb8", size = 318772 }, + { url = "https://files.pythonhosted.org/packages/7b/fb/d302893151caa1c2636d6574d213e4b34e31fd077af6050a9c5cbb42f6fb/jiter-0.10.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3c189c4f1779c05f75fc17c0c1267594ed918996a231593a21a5ca5438445216", size = 344534 }, + { url = "https://files.pythonhosted.org/packages/01/d8/5780b64a149d74e347c5128d82176eb1e3241b1391ac07935693466d6219/jiter-0.10.0-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:15720084d90d1098ca0229352607cd68256c76991f6b374af96f36920eae13c4", size = 369087 }, + { url = "https://files.pythonhosted.org/packages/e8/5b/f235a1437445160e777544f3ade57544daf96ba7e96c1a5b24a6f7ac7004/jiter-0.10.0-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e4f2fb68e5f1cfee30e2b2a09549a00683e0fde4c6a2ab88c94072fc33cb7426", size = 490694 }, + { url = "https://files.pythonhosted.org/packages/85/a9/9c3d4617caa2ff89cf61b41e83820c27ebb3f7b5fae8a72901e8cd6ff9be/jiter-0.10.0-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ce541693355fc6da424c08b7edf39a2895f58d6ea17d92cc2b168d20907dee12", size = 388992 }, + { url = "https://files.pythonhosted.org/packages/68/b1/344fd14049ba5c94526540af7eb661871f9c54d5f5601ff41a959b9a0bbd/jiter-0.10.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:31c50c40272e189d50006ad5c73883caabb73d4e9748a688b216e85a9a9ca3b9", size = 351723 }, + { url = "https://files.pythonhosted.org/packages/41/89/4c0e345041186f82a31aee7b9d4219a910df672b9fef26f129f0cda07a29/jiter-0.10.0-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:fa3402a2ff9815960e0372a47b75c76979d74402448509ccd49a275fa983ef8a", size = 392215 }, + { url = "https://files.pythonhosted.org/packages/55/58/ee607863e18d3f895feb802154a2177d7e823a7103f000df182e0f718b38/jiter-0.10.0-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:1956f934dca32d7bb647ea21d06d93ca40868b505c228556d3373cbd255ce853", size = 522762 }, + { url = "https://files.pythonhosted.org/packages/15/d0/9123fb41825490d16929e73c212de9a42913d68324a8ce3c8476cae7ac9d/jiter-0.10.0-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:fcedb049bdfc555e261d6f65a6abe1d5ad68825b7202ccb9692636c70fcced86", size = 513427 }, + { url = "https://files.pythonhosted.org/packages/d8/b3/2bd02071c5a2430d0b70403a34411fc519c2f227da7b03da9ba6a956f931/jiter-0.10.0-cp314-cp314-win32.whl", hash = "sha256:ac509f7eccca54b2a29daeb516fb95b6f0bd0d0d8084efaf8ed5dfc7b9f0b357", size = 210127 }, + { url = "https://files.pythonhosted.org/packages/03/0c/5fe86614ea050c3ecd728ab4035534387cd41e7c1855ef6c031f1ca93e3f/jiter-0.10.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:5ed975b83a2b8639356151cef5c0d597c68376fc4922b45d0eb384ac058cfa00", size = 318527 }, + { url = "https://files.pythonhosted.org/packages/b3/4a/4175a563579e884192ba6e81725fc0448b042024419be8d83aa8a80a3f44/jiter-0.10.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3aa96f2abba33dc77f79b4cf791840230375f9534e5fac927ccceb58c5e604a5", size = 354213 }, +] + +[[package]] +name = "jsonref" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/aa/0d/c1f3277e90ccdb50d33ed5ba1ec5b3f0a242ed8c1b1a85d3afeb68464dca/jsonref-1.1.0.tar.gz", hash = "sha256:32fe8e1d85af0fdefbebce950af85590b22b60f9e95443176adbde4e1ecea552", size = 8814 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0c/ec/e1db9922bceb168197a558a2b8c03a7963f1afe93517ddd3cf99f202f996/jsonref-1.1.0-py3-none-any.whl", hash = "sha256:590dc7773df6c21cbf948b5dac07a72a251db28b0238ceecce0a2abfa8ec30a9", size = 9425 }, +] + +[[package]] +name = "jsonschema" +version = "4.25.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "jsonschema-specifications" }, + { name = "referencing" }, + { name = "rpds-py" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/d5/00/a297a868e9d0784450faa7365c2172a7d6110c763e30ba861867c32ae6a9/jsonschema-4.25.0.tar.gz", hash = "sha256:e63acf5c11762c0e6672ffb61482bdf57f0876684d8d249c0fe2d730d48bc55f", size = 356830 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fe/54/c86cd8e011fe98803d7e382fd67c0df5ceab8d2b7ad8c5a81524f791551c/jsonschema-4.25.0-py3-none-any.whl", hash = "sha256:24c2e8da302de79c8b9382fee3e76b355e44d2a4364bb207159ce10b517bd716", size = 89184 }, +] + +[[package]] +name = "jsonschema-specifications" +version = "2025.4.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "referencing" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bf/ce/46fbd9c8119cfc3581ee5643ea49464d168028cfb5caff5fc0596d0cf914/jsonschema_specifications-2025.4.1.tar.gz", hash = "sha256:630159c9f4dbea161a6a2205c3011cc4f18ff381b189fff48bb39b9bf26ae608", size = 15513 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/01/0e/b27cdbaccf30b890c40ed1da9fd4a3593a5cf94dae54fb34f8a4b74fcd3f/jsonschema_specifications-2025.4.1-py3-none-any.whl", hash = "sha256:4653bffbd6584f7de83a67e0d620ef16900b390ddc7939d56684d6c81e33f1af", size = 18437 }, +] + +[[package]] +name = "jupyter-client" +version = "8.6.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jupyter-core" }, + { name = "python-dateutil" }, + { name = "pyzmq" }, + { name = "tornado" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/71/22/bf9f12fdaeae18019a468b68952a60fe6dbab5d67cd2a103cac7659b41ca/jupyter_client-8.6.3.tar.gz", hash = "sha256:35b3a0947c4a6e9d589eb97d7d4cd5e90f910ee73101611f01283732bd6d9419", size = 342019 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/11/85/b0394e0b6fcccd2c1eeefc230978a6f8cb0c5df1e4cd3e7625735a0d7d1e/jupyter_client-8.6.3-py3-none-any.whl", hash = "sha256:e8a19cc986cc45905ac3362915f410f3af85424b4c0905e94fa5f2cb08e8f23f", size = 106105 }, +] + +[[package]] +name = "jupyter-core" +version = "5.8.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "platformdirs" }, + { name = "pywin32", marker = "platform_python_implementation != 'PyPy' and sys_platform == 'win32'" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/99/1b/72906d554acfeb588332eaaa6f61577705e9ec752ddb486f302dafa292d9/jupyter_core-5.8.1.tar.gz", hash = "sha256:0a5f9706f70e64786b75acba995988915ebd4601c8a52e534a40b51c95f59941", size = 88923 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2f/57/6bffd4b20b88da3800c5d691e0337761576ee688eb01299eae865689d2df/jupyter_core-5.8.1-py3-none-any.whl", hash = "sha256:c28d268fc90fb53f1338ded2eb410704c5449a358406e8a948b75706e24863d0", size = 28880 }, +] + +[[package]] +name = "kubernetes" +version = "28.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "google-auth" }, + { name = "oauthlib" }, + { name = "python-dateutil" }, + { name = "pyyaml" }, + { name = "requests" }, + { name = "requests-oauthlib" }, + { name = "six" }, + { name = "urllib3" }, + { name = "websocket-client" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/3c/5e/d27f39f447137a9a3d1f31142c77ce74bcedfda7dafe922d725c7ef2da33/kubernetes-28.1.0.tar.gz", hash = "sha256:1468069a573430fb1cb5ad22876868f57977930f80a6749405da31cd6086a7e9", size = 817854 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f5/6a/1f69c2d8b1ff03f8d8e10d801f4ac3016ed4c1b00aa9795732c6ec900bba/kubernetes-28.1.0-py2.py3-none-any.whl", hash = "sha256:10f56f8160dcb73647f15fafda268e7f60cf7dbc9f8e46d52fcd46d3beb0c18d", size = 1566315 }, +] + +[[package]] +name = "litellm" +version = "1.74.6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohttp" }, + { name = "click" }, + { name = "httpx" }, + { name = "importlib-metadata" }, + { name = "jinja2" }, + { name = "jsonschema" }, + { name = "openai" }, + { name = "pydantic" }, + { name = "python-dotenv" }, + { name = "tiktoken" }, + { name = "tokenizers" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/06/e6/286741f91cdc6c14614a1b60696c265d6b83e784e978512d852d4dc29872/litellm-1.74.6.tar.gz", hash = "sha256:297ad20bb51ab0c3f7f0d5b442954b02eec382adfaf17f730827d02f51b944b1", size = 9423274 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cf/2d/bcfd998134d35445e9bdcbfe999081892b84eb34901863717b3ac456344e/litellm-1.74.6-py3-none-any.whl", hash = "sha256:d2581bc5d4d6427b265496ff662eb14f673e904faaf33c8c4d37a29a051af772", size = 8646736 }, +] + +[[package]] +name = "markdown-it-py" +version = "3.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mdurl" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/38/71/3b932df36c1a044d397a1f92d1cf91ee0a503d91e470cbd670aa66b07ed0/markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb", size = 74596 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/42/d7/1ec15b46af6af88f19b8e5ffea08fa375d433c998b8a7639e76935c14f1f/markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1", size = 87528 }, +] + +[[package]] +name = "markupsafe" +version = "3.0.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b2/97/5d42485e71dfc078108a86d6de8fa46db44a1a9295e89c5d6d4a06e23a62/markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0", size = 20537 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/22/09/d1f21434c97fc42f09d290cbb6350d44eb12f09cc62c9476effdb33a18aa/MarkupSafe-3.0.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf", size = 14274 }, + { url = "https://files.pythonhosted.org/packages/6b/b0/18f76bba336fa5aecf79d45dcd6c806c280ec44538b3c13671d49099fdd0/MarkupSafe-3.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225", size = 12348 }, + { url = "https://files.pythonhosted.org/packages/e0/25/dd5c0f6ac1311e9b40f4af06c78efde0f3b5cbf02502f8ef9501294c425b/MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028", size = 24149 }, + { url = "https://files.pythonhosted.org/packages/f3/f0/89e7aadfb3749d0f52234a0c8c7867877876e0a20b60e2188e9850794c17/MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8", size = 23118 }, + { url = "https://files.pythonhosted.org/packages/d5/da/f2eeb64c723f5e3777bc081da884b414671982008c47dcc1873d81f625b6/MarkupSafe-3.0.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c", size = 22993 }, + { url = "https://files.pythonhosted.org/packages/da/0e/1f32af846df486dce7c227fe0f2398dc7e2e51d4a370508281f3c1c5cddc/MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557", size = 24178 }, + { url = "https://files.pythonhosted.org/packages/c4/f6/bb3ca0532de8086cbff5f06d137064c8410d10779c4c127e0e47d17c0b71/MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22", size = 23319 }, + { url = "https://files.pythonhosted.org/packages/a2/82/8be4c96ffee03c5b4a034e60a31294daf481e12c7c43ab8e34a1453ee48b/MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48", size = 23352 }, + { url = "https://files.pythonhosted.org/packages/51/ae/97827349d3fcffee7e184bdf7f41cd6b88d9919c80f0263ba7acd1bbcb18/MarkupSafe-3.0.2-cp312-cp312-win32.whl", hash = "sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30", size = 15097 }, + { url = "https://files.pythonhosted.org/packages/c1/80/a61f99dc3a936413c3ee4e1eecac96c0da5ed07ad56fd975f1a9da5bc630/MarkupSafe-3.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87", size = 15601 }, + { url = "https://files.pythonhosted.org/packages/83/0e/67eb10a7ecc77a0c2bbe2b0235765b98d164d81600746914bebada795e97/MarkupSafe-3.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd", size = 14274 }, + { url = "https://files.pythonhosted.org/packages/2b/6d/9409f3684d3335375d04e5f05744dfe7e9f120062c9857df4ab490a1031a/MarkupSafe-3.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430", size = 12352 }, + { url = "https://files.pythonhosted.org/packages/d2/f5/6eadfcd3885ea85fe2a7c128315cc1bb7241e1987443d78c8fe712d03091/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094", size = 24122 }, + { url = "https://files.pythonhosted.org/packages/0c/91/96cf928db8236f1bfab6ce15ad070dfdd02ed88261c2afafd4b43575e9e9/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396", size = 23085 }, + { url = "https://files.pythonhosted.org/packages/c2/cf/c9d56af24d56ea04daae7ac0940232d31d5a8354f2b457c6d856b2057d69/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79", size = 22978 }, + { url = "https://files.pythonhosted.org/packages/2a/9f/8619835cd6a711d6272d62abb78c033bda638fdc54c4e7f4272cf1c0962b/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a", size = 24208 }, + { url = "https://files.pythonhosted.org/packages/f9/bf/176950a1792b2cd2102b8ffeb5133e1ed984547b75db47c25a67d3359f77/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca", size = 23357 }, + { url = "https://files.pythonhosted.org/packages/ce/4f/9a02c1d335caabe5c4efb90e1b6e8ee944aa245c1aaaab8e8a618987d816/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c", size = 23344 }, + { url = "https://files.pythonhosted.org/packages/ee/55/c271b57db36f748f0e04a759ace9f8f759ccf22b4960c270c78a394f58be/MarkupSafe-3.0.2-cp313-cp313-win32.whl", hash = "sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1", size = 15101 }, + { url = "https://files.pythonhosted.org/packages/29/88/07df22d2dd4df40aba9f3e402e6dc1b8ee86297dddbad4872bd5e7b0094f/MarkupSafe-3.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f", size = 15603 }, + { url = "https://files.pythonhosted.org/packages/62/6a/8b89d24db2d32d433dffcd6a8779159da109842434f1dd2f6e71f32f738c/MarkupSafe-3.0.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c", size = 14510 }, + { url = "https://files.pythonhosted.org/packages/7a/06/a10f955f70a2e5a9bf78d11a161029d278eeacbd35ef806c3fd17b13060d/MarkupSafe-3.0.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb", size = 12486 }, + { url = "https://files.pythonhosted.org/packages/34/cf/65d4a571869a1a9078198ca28f39fba5fbb910f952f9dbc5220afff9f5e6/MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c", size = 25480 }, + { url = "https://files.pythonhosted.org/packages/0c/e3/90e9651924c430b885468b56b3d597cabf6d72be4b24a0acd1fa0e12af67/MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d", size = 23914 }, + { url = "https://files.pythonhosted.org/packages/66/8c/6c7cf61f95d63bb866db39085150df1f2a5bd3335298f14a66b48e92659c/MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe", size = 23796 }, + { url = "https://files.pythonhosted.org/packages/bb/35/cbe9238ec3f47ac9a7c8b3df7a808e7cb50fe149dc7039f5f454b3fba218/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5", size = 25473 }, + { url = "https://files.pythonhosted.org/packages/e6/32/7621a4382488aa283cc05e8984a9c219abad3bca087be9ec77e89939ded9/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a", size = 24114 }, + { url = "https://files.pythonhosted.org/packages/0d/80/0985960e4b89922cb5a0bac0ed39c5b96cbc1a536a99f30e8c220a996ed9/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9", size = 24098 }, + { url = "https://files.pythonhosted.org/packages/82/78/fedb03c7d5380df2427038ec8d973587e90561b2d90cd472ce9254cf348b/MarkupSafe-3.0.2-cp313-cp313t-win32.whl", hash = "sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6", size = 15208 }, + { url = "https://files.pythonhosted.org/packages/4f/65/6079a46068dfceaeabb5dcad6d674f5f5c61a6fa5673746f42a9f4c233b3/MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f", size = 15739 }, +] + +[[package]] +name = "matplotlib-inline" +version = "0.1.7" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/99/5b/a36a337438a14116b16480db471ad061c36c3694df7c2084a0da7ba538b7/matplotlib_inline-0.1.7.tar.gz", hash = "sha256:8423b23ec666be3d16e16b60bdd8ac4e86e840ebd1dd11a30b9f117f2fa0ab90", size = 8159 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8f/8e/9ad090d3553c280a8060fbf6e24dc1c0c29704ee7d1c372f0c174aa59285/matplotlib_inline-0.1.7-py3-none-any.whl", hash = "sha256:df192d39a4ff8f21b1895d72e6a13f5fcc5099f00fa84384e0ea28c2cc0653ca", size = 9899 }, +] + +[[package]] +name = "mcp" +version = "1.12.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "httpx" }, + { name = "httpx-sse" }, + { name = "jsonschema" }, + { name = "pydantic" }, + { name = "pydantic-settings" }, + { name = "python-multipart" }, + { name = "pywin32", marker = "sys_platform == 'win32'" }, + { name = "sse-starlette" }, + { name = "starlette" }, + { name = "uvicorn", marker = "sys_platform != 'emscripten'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/45/94/caa0f4754e2437f7033068989f13fee784856f95870c786b0b5c2c0f511e/mcp-1.12.0.tar.gz", hash = "sha256:853f6b17a3f31ea6e2f278c2ec7d3b38457bc80c7c2c675260dd7f04a6fd0e70", size = 424678 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ed/da/c7eaab6a58f1034de115b7902141ad8f81b4f3bbf7dc0cc267594947a4d7/mcp-1.12.0-py3-none-any.whl", hash = "sha256:19a498b2bf273283e463b4dd1ed83f791fbba5c25bfa16b8b34cfd5571673e7f", size = 158470 }, +] + +[package.optional-dependencies] +cli = [ + { name = "python-dotenv" }, + { name = "typer" }, +] + +[[package]] +name = "mdurl" +version = "0.1.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d6/54/cfe61301667036ec958cb99bd3efefba235e65cdeb9c84d24a8293ba1d90/mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba", size = 8729 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", size = 9979 }, +] + +[[package]] +name = "multidict" +version = "6.6.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/3d/2c/5dad12e82fbdf7470f29bff2171484bf07cb3b16ada60a6589af8f376440/multidict-6.6.3.tar.gz", hash = "sha256:798a9eb12dab0a6c2e29c1de6f3468af5cb2da6053a20dfa3344907eed0937cc", size = 101006 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0e/a0/6b57988ea102da0623ea814160ed78d45a2645e4bbb499c2896d12833a70/multidict-6.6.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:056bebbeda16b2e38642d75e9e5310c484b7c24e3841dc0fb943206a72ec89d6", size = 76514 }, + { url = "https://files.pythonhosted.org/packages/07/7a/d1e92665b0850c6c0508f101f9cf0410c1afa24973e1115fe9c6a185ebf7/multidict-6.6.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:e5f481cccb3c5c5e5de5d00b5141dc589c1047e60d07e85bbd7dea3d4580d63f", size = 45394 }, + { url = "https://files.pythonhosted.org/packages/52/6f/dd104490e01be6ef8bf9573705d8572f8c2d2c561f06e3826b081d9e6591/multidict-6.6.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:10bea2ee839a759ee368b5a6e47787f399b41e70cf0c20d90dfaf4158dfb4e55", size = 43590 }, + { url = "https://files.pythonhosted.org/packages/44/fe/06e0e01b1b0611e6581b7fd5a85b43dacc08b6cea3034f902f383b0873e5/multidict-6.6.3-cp312-cp312-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:2334cfb0fa9549d6ce2c21af2bfbcd3ac4ec3646b1b1581c88e3e2b1779ec92b", size = 237292 }, + { url = "https://files.pythonhosted.org/packages/ce/71/4f0e558fb77696b89c233c1ee2d92f3e1d5459070a0e89153c9e9e804186/multidict-6.6.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b8fee016722550a2276ca2cb5bb624480e0ed2bd49125b2b73b7010b9090e888", size = 258385 }, + { url = "https://files.pythonhosted.org/packages/e3/25/cca0e68228addad24903801ed1ab42e21307a1b4b6dd2cf63da5d3ae082a/multidict-6.6.3-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:e5511cb35f5c50a2db21047c875eb42f308c5583edf96bd8ebf7d770a9d68f6d", size = 242328 }, + { url = "https://files.pythonhosted.org/packages/6e/a3/46f2d420d86bbcb8fe660b26a10a219871a0fbf4d43cb846a4031533f3e0/multidict-6.6.3-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:712b348f7f449948e0a6c4564a21c7db965af900973a67db432d724619b3c680", size = 268057 }, + { url = "https://files.pythonhosted.org/packages/9e/73/1c743542fe00794a2ec7466abd3f312ccb8fad8dff9f36d42e18fb1ec33e/multidict-6.6.3-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:e4e15d2138ee2694e038e33b7c3da70e6b0ad8868b9f8094a72e1414aeda9c1a", size = 269341 }, + { url = "https://files.pythonhosted.org/packages/a4/11/6ec9dcbe2264b92778eeb85407d1df18812248bf3506a5a1754bc035db0c/multidict-6.6.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8df25594989aebff8a130f7899fa03cbfcc5d2b5f4a461cf2518236fe6f15961", size = 256081 }, + { url = "https://files.pythonhosted.org/packages/9b/2b/631b1e2afeb5f1696846d747d36cda075bfdc0bc7245d6ba5c319278d6c4/multidict-6.6.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:159ca68bfd284a8860f8d8112cf0521113bffd9c17568579e4d13d1f1dc76b65", size = 253581 }, + { url = "https://files.pythonhosted.org/packages/bf/0e/7e3b93f79efeb6111d3bf9a1a69e555ba1d07ad1c11bceb56b7310d0d7ee/multidict-6.6.3-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:e098c17856a8c9ade81b4810888c5ad1914099657226283cab3062c0540b0643", size = 250750 }, + { url = "https://files.pythonhosted.org/packages/ad/9e/086846c1d6601948e7de556ee464a2d4c85e33883e749f46b9547d7b0704/multidict-6.6.3-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:67c92ed673049dec52d7ed39f8cf9ebbadf5032c774058b4406d18c8f8fe7063", size = 251548 }, + { url = "https://files.pythonhosted.org/packages/8c/7b/86ec260118e522f1a31550e87b23542294880c97cfbf6fb18cc67b044c66/multidict-6.6.3-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:bd0578596e3a835ef451784053cfd327d607fc39ea1a14812139339a18a0dbc3", size = 262718 }, + { url = "https://files.pythonhosted.org/packages/8c/bd/22ce8f47abb0be04692c9fc4638508b8340987b18691aa7775d927b73f72/multidict-6.6.3-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:346055630a2df2115cd23ae271910b4cae40f4e336773550dca4889b12916e75", size = 259603 }, + { url = "https://files.pythonhosted.org/packages/07/9c/91b7ac1691be95cd1f4a26e36a74b97cda6aa9820632d31aab4410f46ebd/multidict-6.6.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:555ff55a359302b79de97e0468e9ee80637b0de1fce77721639f7cd9440b3a10", size = 251351 }, + { url = "https://files.pythonhosted.org/packages/6f/5c/4d7adc739884f7a9fbe00d1eac8c034023ef8bad71f2ebe12823ca2e3649/multidict-6.6.3-cp312-cp312-win32.whl", hash = "sha256:73ab034fb8d58ff85c2bcbadc470efc3fafeea8affcf8722855fb94557f14cc5", size = 41860 }, + { url = "https://files.pythonhosted.org/packages/6a/a3/0fbc7afdf7cb1aa12a086b02959307848eb6bcc8f66fcb66c0cb57e2a2c1/multidict-6.6.3-cp312-cp312-win_amd64.whl", hash = "sha256:04cbcce84f63b9af41bad04a54d4cc4e60e90c35b9e6ccb130be2d75b71f8c17", size = 45982 }, + { url = "https://files.pythonhosted.org/packages/b8/95/8c825bd70ff9b02462dc18d1295dd08d3e9e4eb66856d292ffa62cfe1920/multidict-6.6.3-cp312-cp312-win_arm64.whl", hash = "sha256:0f1130b896ecb52d2a1e615260f3ea2af55fa7dc3d7c3003ba0c3121a759b18b", size = 43210 }, + { url = "https://files.pythonhosted.org/packages/52/1d/0bebcbbb4f000751fbd09957257903d6e002943fc668d841a4cf2fb7f872/multidict-6.6.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:540d3c06d48507357a7d57721e5094b4f7093399a0106c211f33540fdc374d55", size = 75843 }, + { url = "https://files.pythonhosted.org/packages/07/8f/cbe241b0434cfe257f65c2b1bcf9e8d5fb52bc708c5061fb29b0fed22bdf/multidict-6.6.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:9c19cea2a690f04247d43f366d03e4eb110a0dc4cd1bbeee4d445435428ed35b", size = 45053 }, + { url = "https://files.pythonhosted.org/packages/32/d2/0b3b23f9dbad5b270b22a3ac3ea73ed0a50ef2d9a390447061178ed6bdb8/multidict-6.6.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7af039820cfd00effec86bda5d8debef711a3e86a1d3772e85bea0f243a4bd65", size = 43273 }, + { url = "https://files.pythonhosted.org/packages/fd/fe/6eb68927e823999e3683bc49678eb20374ba9615097d085298fd5b386564/multidict-6.6.3-cp313-cp313-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:500b84f51654fdc3944e936f2922114349bf8fdcac77c3092b03449f0e5bc2b3", size = 237124 }, + { url = "https://files.pythonhosted.org/packages/e7/ab/320d8507e7726c460cb77117848b3834ea0d59e769f36fdae495f7669929/multidict-6.6.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f3fc723ab8a5c5ed6c50418e9bfcd8e6dceba6c271cee6728a10a4ed8561520c", size = 256892 }, + { url = "https://files.pythonhosted.org/packages/76/60/38ee422db515ac69834e60142a1a69111ac96026e76e8e9aa347fd2e4591/multidict-6.6.3-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:94c47ea3ade005b5976789baaed66d4de4480d0a0bf31cef6edaa41c1e7b56a6", size = 240547 }, + { url = "https://files.pythonhosted.org/packages/27/fb/905224fde2dff042b030c27ad95a7ae744325cf54b890b443d30a789b80e/multidict-6.6.3-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:dbc7cf464cc6d67e83e136c9f55726da3a30176f020a36ead246eceed87f1cd8", size = 266223 }, + { url = "https://files.pythonhosted.org/packages/76/35/dc38ab361051beae08d1a53965e3e1a418752fc5be4d3fb983c5582d8784/multidict-6.6.3-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:900eb9f9da25ada070f8ee4a23f884e0ee66fe4e1a38c3af644256a508ad81ca", size = 267262 }, + { url = "https://files.pythonhosted.org/packages/1f/a3/0a485b7f36e422421b17e2bbb5a81c1af10eac1d4476f2ff92927c730479/multidict-6.6.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7c6df517cf177da5d47ab15407143a89cd1a23f8b335f3a28d57e8b0a3dbb884", size = 254345 }, + { url = "https://files.pythonhosted.org/packages/b4/59/bcdd52c1dab7c0e0d75ff19cac751fbd5f850d1fc39172ce809a74aa9ea4/multidict-6.6.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:4ef421045f13879e21c994b36e728d8e7d126c91a64b9185810ab51d474f27e7", size = 252248 }, + { url = "https://files.pythonhosted.org/packages/bb/a4/2d96aaa6eae8067ce108d4acee6f45ced5728beda55c0f02ae1072c730d1/multidict-6.6.3-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:6c1e61bb4f80895c081790b6b09fa49e13566df8fbff817da3f85b3a8192e36b", size = 250115 }, + { url = "https://files.pythonhosted.org/packages/25/d2/ed9f847fa5c7d0677d4f02ea2c163d5e48573de3f57bacf5670e43a5ffaa/multidict-6.6.3-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:e5e8523bb12d7623cd8300dbd91b9e439a46a028cd078ca695eb66ba31adee3c", size = 249649 }, + { url = "https://files.pythonhosted.org/packages/1f/af/9155850372563fc550803d3f25373308aa70f59b52cff25854086ecb4a79/multidict-6.6.3-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:ef58340cc896219e4e653dade08fea5c55c6df41bcc68122e3be3e9d873d9a7b", size = 261203 }, + { url = "https://files.pythonhosted.org/packages/36/2f/c6a728f699896252cf309769089568a33c6439626648843f78743660709d/multidict-6.6.3-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:fc9dc435ec8699e7b602b94fe0cd4703e69273a01cbc34409af29e7820f777f1", size = 258051 }, + { url = "https://files.pythonhosted.org/packages/d0/60/689880776d6b18fa2b70f6cc74ff87dd6c6b9b47bd9cf74c16fecfaa6ad9/multidict-6.6.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9e864486ef4ab07db5e9cb997bad2b681514158d6954dd1958dfb163b83d53e6", size = 249601 }, + { url = "https://files.pythonhosted.org/packages/75/5e/325b11f2222a549019cf2ef879c1f81f94a0d40ace3ef55cf529915ba6cc/multidict-6.6.3-cp313-cp313-win32.whl", hash = "sha256:5633a82fba8e841bc5c5c06b16e21529573cd654f67fd833650a215520a6210e", size = 41683 }, + { url = "https://files.pythonhosted.org/packages/b1/ad/cf46e73f5d6e3c775cabd2a05976547f3f18b39bee06260369a42501f053/multidict-6.6.3-cp313-cp313-win_amd64.whl", hash = "sha256:e93089c1570a4ad54c3714a12c2cef549dc9d58e97bcded193d928649cab78e9", size = 45811 }, + { url = "https://files.pythonhosted.org/packages/c5/c9/2e3fe950db28fb7c62e1a5f46e1e38759b072e2089209bc033c2798bb5ec/multidict-6.6.3-cp313-cp313-win_arm64.whl", hash = "sha256:c60b401f192e79caec61f166da9c924e9f8bc65548d4246842df91651e83d600", size = 43056 }, + { url = "https://files.pythonhosted.org/packages/3a/58/aaf8114cf34966e084a8cc9517771288adb53465188843d5a19862cb6dc3/multidict-6.6.3-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:02fd8f32d403a6ff13864b0851f1f523d4c988051eea0471d4f1fd8010f11134", size = 82811 }, + { url = "https://files.pythonhosted.org/packages/71/af/5402e7b58a1f5b987a07ad98f2501fdba2a4f4b4c30cf114e3ce8db64c87/multidict-6.6.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:f3aa090106b1543f3f87b2041eef3c156c8da2aed90c63a2fbed62d875c49c37", size = 48304 }, + { url = "https://files.pythonhosted.org/packages/39/65/ab3c8cafe21adb45b24a50266fd747147dec7847425bc2a0f6934b3ae9ce/multidict-6.6.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:e924fb978615a5e33ff644cc42e6aa241effcf4f3322c09d4f8cebde95aff5f8", size = 46775 }, + { url = "https://files.pythonhosted.org/packages/49/ba/9fcc1b332f67cc0c0c8079e263bfab6660f87fe4e28a35921771ff3eea0d/multidict-6.6.3-cp313-cp313t-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:b9fe5a0e57c6dbd0e2ce81ca66272282c32cd11d31658ee9553849d91289e1c1", size = 229773 }, + { url = "https://files.pythonhosted.org/packages/a4/14/0145a251f555f7c754ce2dcbcd012939bbd1f34f066fa5d28a50e722a054/multidict-6.6.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b24576f208793ebae00280c59927c3b7c2a3b1655e443a25f753c4611bc1c373", size = 250083 }, + { url = "https://files.pythonhosted.org/packages/9e/d4/d5c0bd2bbb173b586c249a151a26d2fb3ec7d53c96e42091c9fef4e1f10c/multidict-6.6.3-cp313-cp313t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:135631cb6c58eac37d7ac0df380294fecdc026b28837fa07c02e459c7fb9c54e", size = 228980 }, + { url = "https://files.pythonhosted.org/packages/21/32/c9a2d8444a50ec48c4733ccc67254100c10e1c8ae8e40c7a2d2183b59b97/multidict-6.6.3-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:274d416b0df887aef98f19f21578653982cfb8a05b4e187d4a17103322eeaf8f", size = 257776 }, + { url = "https://files.pythonhosted.org/packages/68/d0/14fa1699f4ef629eae08ad6201c6b476098f5efb051b296f4c26be7a9fdf/multidict-6.6.3-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:e252017a817fad7ce05cafbe5711ed40faeb580e63b16755a3a24e66fa1d87c0", size = 256882 }, + { url = "https://files.pythonhosted.org/packages/da/88/84a27570fbe303c65607d517a5f147cd2fc046c2d1da02b84b17b9bdc2aa/multidict-6.6.3-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2e4cc8d848cd4fe1cdee28c13ea79ab0ed37fc2e89dd77bac86a2e7959a8c3bc", size = 247816 }, + { url = "https://files.pythonhosted.org/packages/1c/60/dca352a0c999ce96a5d8b8ee0b2b9f729dcad2e0b0c195f8286269a2074c/multidict-6.6.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9e236a7094b9c4c1b7585f6b9cca34b9d833cf079f7e4c49e6a4a6ec9bfdc68f", size = 245341 }, + { url = "https://files.pythonhosted.org/packages/50/ef/433fa3ed06028f03946f3993223dada70fb700f763f70c00079533c34578/multidict-6.6.3-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:e0cb0ab69915c55627c933f0b555a943d98ba71b4d1c57bc0d0a66e2567c7471", size = 235854 }, + { url = "https://files.pythonhosted.org/packages/1b/1f/487612ab56fbe35715320905215a57fede20de7db40a261759690dc80471/multidict-6.6.3-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:81ef2f64593aba09c5212a3d0f8c906a0d38d710a011f2f42759704d4557d3f2", size = 243432 }, + { url = "https://files.pythonhosted.org/packages/da/6f/ce8b79de16cd885c6f9052c96a3671373d00c59b3ee635ea93e6e81b8ccf/multidict-6.6.3-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:b9cbc60010de3562545fa198bfc6d3825df430ea96d2cc509c39bd71e2e7d648", size = 252731 }, + { url = "https://files.pythonhosted.org/packages/bb/fe/a2514a6aba78e5abefa1624ca85ae18f542d95ac5cde2e3815a9fbf369aa/multidict-6.6.3-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:70d974eaaa37211390cd02ef93b7e938de564bbffa866f0b08d07e5e65da783d", size = 247086 }, + { url = "https://files.pythonhosted.org/packages/8c/22/b788718d63bb3cce752d107a57c85fcd1a212c6c778628567c9713f9345a/multidict-6.6.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:3713303e4a6663c6d01d648a68f2848701001f3390a030edaaf3fc949c90bf7c", size = 243338 }, + { url = "https://files.pythonhosted.org/packages/22/d6/fdb3d0670819f2228f3f7d9af613d5e652c15d170c83e5f1c94fbc55a25b/multidict-6.6.3-cp313-cp313t-win32.whl", hash = "sha256:639ecc9fe7cd73f2495f62c213e964843826f44505a3e5d82805aa85cac6f89e", size = 47812 }, + { url = "https://files.pythonhosted.org/packages/b6/d6/a9d2c808f2c489ad199723197419207ecbfbc1776f6e155e1ecea9c883aa/multidict-6.6.3-cp313-cp313t-win_amd64.whl", hash = "sha256:9f97e181f344a0ef3881b573d31de8542cc0dbc559ec68c8f8b5ce2c2e91646d", size = 53011 }, + { url = "https://files.pythonhosted.org/packages/f2/40/b68001cba8188dd267590a111f9661b6256debc327137667e832bf5d66e8/multidict-6.6.3-cp313-cp313t-win_arm64.whl", hash = "sha256:ce8b7693da41a3c4fde5871c738a81490cea5496c671d74374c8ab889e1834fb", size = 45254 }, + { url = "https://files.pythonhosted.org/packages/d8/30/9aec301e9772b098c1f5c0ca0279237c9766d94b97802e9888010c64b0ed/multidict-6.6.3-py3-none-any.whl", hash = "sha256:8db10f29c7541fc5da4defd8cd697e1ca429db743fa716325f236079b96f775a", size = 12313 }, +] + +[[package]] +name = "nest-asyncio" +version = "1.6.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/83/f8/51569ac65d696c8ecbee95938f89d4abf00f47d58d48f6fbabfe8f0baefe/nest_asyncio-1.6.0.tar.gz", hash = "sha256:6f172d5449aca15afd6c646851f4e31e02c598d553a667e38cafa997cfec55fe", size = 7418 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a0/c4/c2971a3ba4c6103a3d10c4b0f24f461ddc027f0f09763220cf35ca1401b3/nest_asyncio-1.6.0-py3-none-any.whl", hash = "sha256:87af6efd6b5e897c81050477ef65c62e2b2f35d51703cae01aff2905b1852e1c", size = 5195 }, +] + +[[package]] +name = "nexus-rpc" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ef/66/540687556bd28cf1ec370cc6881456203dfddb9dab047b8979c6865b5984/nexus_rpc-1.1.0.tar.gz", hash = "sha256:d65ad6a2f54f14e53ebe39ee30555eaeb894102437125733fb13034a04a44553", size = 77383 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bf/2f/9e9d0dcaa4c6ffa22b7aa31069a8a264c753ff8027b36af602cce038c92f/nexus_rpc-1.1.0-py3-none-any.whl", hash = "sha256:d1b007af2aba186a27e736f8eaae39c03aed05b488084ff6c3d1785c9ba2ad38", size = 27743 }, +] + +[[package]] +name = "oauthlib" +version = "3.3.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/0b/5f/19930f824ffeb0ad4372da4812c50edbd1434f678c90c2733e1188edfc63/oauthlib-3.3.1.tar.gz", hash = "sha256:0f0f8aa759826a193cf66c12ea1af1637f87b9b4622d46e866952bb022e538c9", size = 185918 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/be/9c/92789c596b8df838baa98fa71844d84283302f7604ed565dafe5a6b5041a/oauthlib-3.3.1-py3-none-any.whl", hash = "sha256:88119c938d2b8fb88561af5f6ee0eec8cc8d552b7bb1f712743136eb7523b7a1", size = 160065 }, +] + +[[package]] +name = "openai" +version = "1.97.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "distro" }, + { name = "httpx" }, + { name = "jiter" }, + { name = "pydantic" }, + { name = "sniffio" }, + { name = "tqdm" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e0/c6/b8d66e4f3b95493a8957065b24533333c927dc23817abe397f13fe589c6e/openai-1.97.0.tar.gz", hash = "sha256:0be349569ccaa4fb54f97bb808423fd29ccaeb1246ee1be762e0c81a47bae0aa", size = 493850 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8a/91/1f1cf577f745e956b276a8b1d3d76fa7a6ee0c2b05db3b001b900f2c71db/openai-1.97.0-py3-none-any.whl", hash = "sha256:a1c24d96f4609f3f7f51c9e1c2606d97cc6e334833438659cfd687e9c972c610", size = 764953 }, +] + +[[package]] +name = "openai-agents" +version = "0.2.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "griffe" }, + { name = "mcp" }, + { name = "openai" }, + { name = "pydantic" }, + { name = "requests" }, + { name = "types-requests" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/45/e2/b23f1076fb16f672d8dced4e4fa055e0ee824b35c1b11c2c23106ce8d99d/openai_agents-0.2.2.tar.gz", hash = "sha256:8a40971db5113be8f1a5842f30cd9f5ebec29848124f64f95820b6d52096241c", size = 1453555 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d5/00/5ab04ee5d49eebc08e835d79cbaf0cbde1fef7aff8c3f1bbb9e967c9ff23/openai_agents-0.2.2-py3-none-any.whl", hash = "sha256:cff8a2556c8e69e05aff3ab9eb40ceff05494c60297a682964dbc8e5309a3686", size = 161083 }, +] + +[[package]] +name = "packaging" +version = "25.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a1/d4/1fc4078c65507b51b96ca8f8c3ba19e6a61c8253c72794544580a7b6c24d/packaging-25.0.tar.gz", hash = "sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f", size = 165727 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/20/12/38679034af332785aac8774540895e234f4d07f7545804097de4b666afd8/packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484", size = 66469 }, +] + +[[package]] +name = "parso" +version = "0.8.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/66/94/68e2e17afaa9169cf6412ab0f28623903be73d1b32e208d9e8e541bb086d/parso-0.8.4.tar.gz", hash = "sha256:eb3a7b58240fb99099a345571deecc0f9540ea5f4dd2fe14c2a99d6b281ab92d", size = 400609 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c6/ac/dac4a63f978e4dcb3c6d3a78c4d8e0192a113d288502a1216950c41b1027/parso-0.8.4-py2.py3-none-any.whl", hash = "sha256:a418670a20291dacd2dddc80c377c5c3791378ee1e8d12bffc35420643d43f18", size = 103650 }, +] + +[[package]] +name = "pexpect" +version = "4.9.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "ptyprocess" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/42/92/cc564bf6381ff43ce1f4d06852fc19a2f11d180f23dc32d9588bee2f149d/pexpect-4.9.0.tar.gz", hash = "sha256:ee7d41123f3c9911050ea2c2dac107568dc43b2d3b0c7557a33212c398ead30f", size = 166450 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl", hash = "sha256:7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523", size = 63772 }, +] + +[[package]] +name = "platformdirs" +version = "4.3.8" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/fe/8b/3c73abc9c759ecd3f1f7ceff6685840859e8070c4d947c93fae71f6a0bf2/platformdirs-4.3.8.tar.gz", hash = "sha256:3d512d96e16bcb959a814c9f348431070822a6496326a4be0911c40b5a74c2bc", size = 21362 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fe/39/979e8e21520d4e47a0bbe349e2713c0aac6f3d853d0e5b34d76206c439aa/platformdirs-4.3.8-py3-none-any.whl", hash = "sha256:ff7059bb7eb1179e2685604f4aaf157cfd9535242bd23742eadc3c13542139b4", size = 18567 }, +] + +[[package]] +name = "pluggy" +version = "1.6.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f9/e2/3e91f31a7d2b083fe6ef3fa267035b518369d9511ffab804f839851d2779/pluggy-1.6.0.tar.gz", hash = "sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3", size = 69412 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746", size = 20538 }, +] + +[[package]] +name = "prompt-toolkit" +version = "3.0.51" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "wcwidth" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bb/6e/9d084c929dfe9e3bfe0c6a47e31f78a25c54627d64a66e884a8bf5474f1c/prompt_toolkit-3.0.51.tar.gz", hash = "sha256:931a162e3b27fc90c86f1b48bb1fb2c528c2761475e57c9c06de13311c7b54ed", size = 428940 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ce/4f/5249960887b1fbe561d9ff265496d170b55a735b76724f10ef19f9e40716/prompt_toolkit-3.0.51-py3-none-any.whl", hash = "sha256:52742911fde84e2d423e2f9a4cf1de7d7ac4e51958f648d9540e0fb8db077b07", size = 387810 }, +] + +[[package]] +name = "propcache" +version = "0.3.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a6/16/43264e4a779dd8588c21a70f0709665ee8f611211bdd2c87d952cfa7c776/propcache-0.3.2.tar.gz", hash = "sha256:20d7d62e4e7ef05f221e0db2856b979540686342e7dd9973b815599c7057e168", size = 44139 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a8/42/9ca01b0a6f48e81615dca4765a8f1dd2c057e0540f6116a27dc5ee01dfb6/propcache-0.3.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:8de106b6c84506b31c27168582cd3cb3000a6412c16df14a8628e5871ff83c10", size = 73674 }, + { url = "https://files.pythonhosted.org/packages/af/6e/21293133beb550f9c901bbece755d582bfaf2176bee4774000bd4dd41884/propcache-0.3.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:28710b0d3975117239c76600ea351934ac7b5ff56e60953474342608dbbb6154", size = 43570 }, + { url = "https://files.pythonhosted.org/packages/0c/c8/0393a0a3a2b8760eb3bde3c147f62b20044f0ddac81e9d6ed7318ec0d852/propcache-0.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce26862344bdf836650ed2487c3d724b00fbfec4233a1013f597b78c1cb73615", size = 43094 }, + { url = "https://files.pythonhosted.org/packages/37/2c/489afe311a690399d04a3e03b069225670c1d489eb7b044a566511c1c498/propcache-0.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bca54bd347a253af2cf4544bbec232ab982f4868de0dd684246b67a51bc6b1db", size = 226958 }, + { url = "https://files.pythonhosted.org/packages/9d/ca/63b520d2f3d418c968bf596839ae26cf7f87bead026b6192d4da6a08c467/propcache-0.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:55780d5e9a2ddc59711d727226bb1ba83a22dd32f64ee15594b9392b1f544eb1", size = 234894 }, + { url = "https://files.pythonhosted.org/packages/11/60/1d0ed6fff455a028d678df30cc28dcee7af77fa2b0e6962ce1df95c9a2a9/propcache-0.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:035e631be25d6975ed87ab23153db6a73426a48db688070d925aa27e996fe93c", size = 233672 }, + { url = "https://files.pythonhosted.org/packages/37/7c/54fd5301ef38505ab235d98827207176a5c9b2aa61939b10a460ca53e123/propcache-0.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ee6f22b6eaa39297c751d0e80c0d3a454f112f5c6481214fcf4c092074cecd67", size = 224395 }, + { url = "https://files.pythonhosted.org/packages/ee/1a/89a40e0846f5de05fdc6779883bf46ba980e6df4d2ff8fb02643de126592/propcache-0.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7ca3aee1aa955438c4dba34fc20a9f390e4c79967257d830f137bd5a8a32ed3b", size = 212510 }, + { url = "https://files.pythonhosted.org/packages/5e/33/ca98368586c9566a6b8d5ef66e30484f8da84c0aac3f2d9aec6d31a11bd5/propcache-0.3.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7a4f30862869fa2b68380d677cc1c5fcf1e0f2b9ea0cf665812895c75d0ca3b8", size = 222949 }, + { url = "https://files.pythonhosted.org/packages/ba/11/ace870d0aafe443b33b2f0b7efdb872b7c3abd505bfb4890716ad7865e9d/propcache-0.3.2-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:b77ec3c257d7816d9f3700013639db7491a434644c906a2578a11daf13176251", size = 217258 }, + { url = "https://files.pythonhosted.org/packages/5b/d2/86fd6f7adffcfc74b42c10a6b7db721d1d9ca1055c45d39a1a8f2a740a21/propcache-0.3.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:cab90ac9d3f14b2d5050928483d3d3b8fb6b4018893fc75710e6aa361ecb2474", size = 213036 }, + { url = "https://files.pythonhosted.org/packages/07/94/2d7d1e328f45ff34a0a284cf5a2847013701e24c2a53117e7c280a4316b3/propcache-0.3.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:0b504d29f3c47cf6b9e936c1852246c83d450e8e063d50562115a6be6d3a2535", size = 227684 }, + { url = "https://files.pythonhosted.org/packages/b7/05/37ae63a0087677e90b1d14710e532ff104d44bc1efa3b3970fff99b891dc/propcache-0.3.2-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:ce2ac2675a6aa41ddb2a0c9cbff53780a617ac3d43e620f8fd77ba1c84dcfc06", size = 234562 }, + { url = "https://files.pythonhosted.org/packages/a4/7c/3f539fcae630408d0bd8bf3208b9a647ccad10976eda62402a80adf8fc34/propcache-0.3.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:62b4239611205294cc433845b914131b2a1f03500ff3c1ed093ed216b82621e1", size = 222142 }, + { url = "https://files.pythonhosted.org/packages/7c/d2/34b9eac8c35f79f8a962546b3e97e9d4b990c420ee66ac8255d5d9611648/propcache-0.3.2-cp312-cp312-win32.whl", hash = "sha256:df4a81b9b53449ebc90cc4deefb052c1dd934ba85012aa912c7ea7b7e38b60c1", size = 37711 }, + { url = "https://files.pythonhosted.org/packages/19/61/d582be5d226cf79071681d1b46b848d6cb03d7b70af7063e33a2787eaa03/propcache-0.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:7046e79b989d7fe457bb755844019e10f693752d169076138abf17f31380800c", size = 41479 }, + { url = "https://files.pythonhosted.org/packages/dc/d1/8c747fafa558c603c4ca19d8e20b288aa0c7cda74e9402f50f31eb65267e/propcache-0.3.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ca592ed634a73ca002967458187109265e980422116c0a107cf93d81f95af945", size = 71286 }, + { url = "https://files.pythonhosted.org/packages/61/99/d606cb7986b60d89c36de8a85d58764323b3a5ff07770a99d8e993b3fa73/propcache-0.3.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:9ecb0aad4020e275652ba3975740f241bd12a61f1a784df044cf7477a02bc252", size = 42425 }, + { url = "https://files.pythonhosted.org/packages/8c/96/ef98f91bbb42b79e9bb82bdd348b255eb9d65f14dbbe3b1594644c4073f7/propcache-0.3.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7f08f1cc28bd2eade7a8a3d2954ccc673bb02062e3e7da09bc75d843386b342f", size = 41846 }, + { url = "https://files.pythonhosted.org/packages/5b/ad/3f0f9a705fb630d175146cd7b1d2bf5555c9beaed54e94132b21aac098a6/propcache-0.3.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d1a342c834734edb4be5ecb1e9fb48cb64b1e2320fccbd8c54bf8da8f2a84c33", size = 208871 }, + { url = "https://files.pythonhosted.org/packages/3a/38/2085cda93d2c8b6ec3e92af2c89489a36a5886b712a34ab25de9fbca7992/propcache-0.3.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8a544caaae1ac73f1fecfae70ded3e93728831affebd017d53449e3ac052ac1e", size = 215720 }, + { url = "https://files.pythonhosted.org/packages/61/c1/d72ea2dc83ac7f2c8e182786ab0fc2c7bd123a1ff9b7975bee671866fe5f/propcache-0.3.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:310d11aa44635298397db47a3ebce7db99a4cc4b9bbdfcf6c98a60c8d5261cf1", size = 215203 }, + { url = "https://files.pythonhosted.org/packages/af/81/b324c44ae60c56ef12007105f1460d5c304b0626ab0cc6b07c8f2a9aa0b8/propcache-0.3.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4c1396592321ac83157ac03a2023aa6cc4a3cc3cfdecb71090054c09e5a7cce3", size = 206365 }, + { url = "https://files.pythonhosted.org/packages/09/73/88549128bb89e66d2aff242488f62869014ae092db63ccea53c1cc75a81d/propcache-0.3.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8cabf5b5902272565e78197edb682017d21cf3b550ba0460ee473753f28d23c1", size = 196016 }, + { url = "https://files.pythonhosted.org/packages/b9/3f/3bdd14e737d145114a5eb83cb172903afba7242f67c5877f9909a20d948d/propcache-0.3.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0a2f2235ac46a7aa25bdeb03a9e7060f6ecbd213b1f9101c43b3090ffb971ef6", size = 205596 }, + { url = "https://files.pythonhosted.org/packages/0f/ca/2f4aa819c357d3107c3763d7ef42c03980f9ed5c48c82e01e25945d437c1/propcache-0.3.2-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:92b69e12e34869a6970fd2f3da91669899994b47c98f5d430b781c26f1d9f387", size = 200977 }, + { url = "https://files.pythonhosted.org/packages/cd/4a/e65276c7477533c59085251ae88505caf6831c0e85ff8b2e31ebcbb949b1/propcache-0.3.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:54e02207c79968ebbdffc169591009f4474dde3b4679e16634d34c9363ff56b4", size = 197220 }, + { url = "https://files.pythonhosted.org/packages/7c/54/fc7152e517cf5578278b242396ce4d4b36795423988ef39bb8cd5bf274c8/propcache-0.3.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:4adfb44cb588001f68c5466579d3f1157ca07f7504fc91ec87862e2b8e556b88", size = 210642 }, + { url = "https://files.pythonhosted.org/packages/b9/80/abeb4a896d2767bf5f1ea7b92eb7be6a5330645bd7fb844049c0e4045d9d/propcache-0.3.2-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:fd3e6019dc1261cd0291ee8919dd91fbab7b169bb76aeef6c716833a3f65d206", size = 212789 }, + { url = "https://files.pythonhosted.org/packages/b3/db/ea12a49aa7b2b6d68a5da8293dcf50068d48d088100ac016ad92a6a780e6/propcache-0.3.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4c181cad81158d71c41a2bce88edce078458e2dd5ffee7eddd6b05da85079f43", size = 205880 }, + { url = "https://files.pythonhosted.org/packages/d1/e5/9076a0bbbfb65d1198007059c65639dfd56266cf8e477a9707e4b1999ff4/propcache-0.3.2-cp313-cp313-win32.whl", hash = "sha256:8a08154613f2249519e549de2330cf8e2071c2887309a7b07fb56098f5170a02", size = 37220 }, + { url = "https://files.pythonhosted.org/packages/d3/f5/b369e026b09a26cd77aa88d8fffd69141d2ae00a2abaaf5380d2603f4b7f/propcache-0.3.2-cp313-cp313-win_amd64.whl", hash = "sha256:e41671f1594fc4ab0a6dec1351864713cb3a279910ae8b58f884a88a0a632c05", size = 40678 }, + { url = "https://files.pythonhosted.org/packages/a4/3a/6ece377b55544941a08d03581c7bc400a3c8cd3c2865900a68d5de79e21f/propcache-0.3.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:9a3cf035bbaf035f109987d9d55dc90e4b0e36e04bbbb95af3055ef17194057b", size = 76560 }, + { url = "https://files.pythonhosted.org/packages/0c/da/64a2bb16418740fa634b0e9c3d29edff1db07f56d3546ca2d86ddf0305e1/propcache-0.3.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:156c03d07dc1323d8dacaa221fbe028c5c70d16709cdd63502778e6c3ccca1b0", size = 44676 }, + { url = "https://files.pythonhosted.org/packages/36/7b/f025e06ea51cb72c52fb87e9b395cced02786610b60a3ed51da8af017170/propcache-0.3.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:74413c0ba02ba86f55cf60d18daab219f7e531620c15f1e23d95563f505efe7e", size = 44701 }, + { url = "https://files.pythonhosted.org/packages/a4/00/faa1b1b7c3b74fc277f8642f32a4c72ba1d7b2de36d7cdfb676db7f4303e/propcache-0.3.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f066b437bb3fa39c58ff97ab2ca351db465157d68ed0440abecb21715eb24b28", size = 276934 }, + { url = "https://files.pythonhosted.org/packages/74/ab/935beb6f1756e0476a4d5938ff44bf0d13a055fed880caf93859b4f1baf4/propcache-0.3.2-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f1304b085c83067914721e7e9d9917d41ad87696bf70f0bc7dee450e9c71ad0a", size = 278316 }, + { url = "https://files.pythonhosted.org/packages/f8/9d/994a5c1ce4389610838d1caec74bdf0e98b306c70314d46dbe4fcf21a3e2/propcache-0.3.2-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ab50cef01b372763a13333b4e54021bdcb291fc9a8e2ccb9c2df98be51bcde6c", size = 282619 }, + { url = "https://files.pythonhosted.org/packages/2b/00/a10afce3d1ed0287cef2e09506d3be9822513f2c1e96457ee369adb9a6cd/propcache-0.3.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fad3b2a085ec259ad2c2842666b2a0a49dea8463579c606426128925af1ed725", size = 265896 }, + { url = "https://files.pythonhosted.org/packages/2e/a8/2aa6716ffa566ca57c749edb909ad27884680887d68517e4be41b02299f3/propcache-0.3.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:261fa020c1c14deafd54c76b014956e2f86991af198c51139faf41c4d5e83892", size = 252111 }, + { url = "https://files.pythonhosted.org/packages/36/4f/345ca9183b85ac29c8694b0941f7484bf419c7f0fea2d1e386b4f7893eed/propcache-0.3.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:46d7f8aa79c927e5f987ee3a80205c987717d3659f035c85cf0c3680526bdb44", size = 268334 }, + { url = "https://files.pythonhosted.org/packages/3e/ca/fcd54f78b59e3f97b3b9715501e3147f5340167733d27db423aa321e7148/propcache-0.3.2-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:6d8f3f0eebf73e3c0ff0e7853f68be638b4043c65a70517bb575eff54edd8dbe", size = 255026 }, + { url = "https://files.pythonhosted.org/packages/8b/95/8e6a6bbbd78ac89c30c225210a5c687790e532ba4088afb8c0445b77ef37/propcache-0.3.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:03c89c1b14a5452cf15403e291c0ccd7751d5b9736ecb2c5bab977ad6c5bcd81", size = 250724 }, + { url = "https://files.pythonhosted.org/packages/ee/b0/0dd03616142baba28e8b2d14ce5df6631b4673850a3d4f9c0f9dd714a404/propcache-0.3.2-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:0cc17efde71e12bbaad086d679ce575268d70bc123a5a71ea7ad76f70ba30bba", size = 268868 }, + { url = "https://files.pythonhosted.org/packages/c5/98/2c12407a7e4fbacd94ddd32f3b1e3d5231e77c30ef7162b12a60e2dd5ce3/propcache-0.3.2-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:acdf05d00696bc0447e278bb53cb04ca72354e562cf88ea6f9107df8e7fd9770", size = 271322 }, + { url = "https://files.pythonhosted.org/packages/35/91/9cb56efbb428b006bb85db28591e40b7736847b8331d43fe335acf95f6c8/propcache-0.3.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:4445542398bd0b5d32df908031cb1b30d43ac848e20470a878b770ec2dcc6330", size = 265778 }, + { url = "https://files.pythonhosted.org/packages/9a/4c/b0fe775a2bdd01e176b14b574be679d84fc83958335790f7c9a686c1f468/propcache-0.3.2-cp313-cp313t-win32.whl", hash = "sha256:f86e5d7cd03afb3a1db8e9f9f6eff15794e79e791350ac48a8c924e6f439f394", size = 41175 }, + { url = "https://files.pythonhosted.org/packages/a4/ff/47f08595e3d9b5e149c150f88d9714574f1a7cbd89fe2817158a952674bf/propcache-0.3.2-cp313-cp313t-win_amd64.whl", hash = "sha256:9704bedf6e7cbe3c65eca4379a9b53ee6a83749f047808cbb5044d40d7d72198", size = 44857 }, + { url = "https://files.pythonhosted.org/packages/cc/35/cc0aaecf278bb4575b8555f2b137de5ab821595ddae9da9d3cd1da4072c7/propcache-0.3.2-py3-none-any.whl", hash = "sha256:98f1ec44fb675f5052cccc8e609c46ed23a35a1cfd18545ad4e29002d858a43f", size = 12663 }, +] + +[[package]] +name = "protobuf" +version = "5.29.5" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/43/29/d09e70352e4e88c9c7a198d5645d7277811448d76c23b00345670f7c8a38/protobuf-5.29.5.tar.gz", hash = "sha256:bc1463bafd4b0929216c35f437a8e28731a2b7fe3d98bb77a600efced5a15c84", size = 425226 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5f/11/6e40e9fc5bba02988a214c07cf324595789ca7820160bfd1f8be96e48539/protobuf-5.29.5-cp310-abi3-win32.whl", hash = "sha256:3f1c6468a2cfd102ff4703976138844f78ebd1fb45f49011afc5139e9e283079", size = 422963 }, + { url = "https://files.pythonhosted.org/packages/81/7f/73cefb093e1a2a7c3ffd839e6f9fcafb7a427d300c7f8aef9c64405d8ac6/protobuf-5.29.5-cp310-abi3-win_amd64.whl", hash = "sha256:3f76e3a3675b4a4d867b52e4a5f5b78a2ef9565549d4037e06cf7b0942b1d3fc", size = 434818 }, + { url = "https://files.pythonhosted.org/packages/dd/73/10e1661c21f139f2c6ad9b23040ff36fee624310dc28fba20d33fdae124c/protobuf-5.29.5-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:e38c5add5a311f2a6eb0340716ef9b039c1dfa428b28f25a7838ac329204a671", size = 418091 }, + { url = "https://files.pythonhosted.org/packages/6c/04/98f6f8cf5b07ab1294c13f34b4e69b3722bb609c5b701d6c169828f9f8aa/protobuf-5.29.5-cp38-abi3-manylinux2014_aarch64.whl", hash = "sha256:fa18533a299d7ab6c55a238bf8629311439995f2e7eca5caaff08663606e9015", size = 319824 }, + { url = "https://files.pythonhosted.org/packages/85/e4/07c80521879c2d15f321465ac24c70efe2381378c00bf5e56a0f4fbac8cd/protobuf-5.29.5-cp38-abi3-manylinux2014_x86_64.whl", hash = "sha256:63848923da3325e1bf7e9003d680ce6e14b07e55d0473253a690c3a8b8fd6e61", size = 319942 }, + { url = "https://files.pythonhosted.org/packages/7e/cc/7e77861000a0691aeea8f4566e5d3aa716f2b1dece4a24439437e41d3d25/protobuf-5.29.5-py3-none-any.whl", hash = "sha256:6cf42630262c59b2d8de33954443d94b746c952b01434fc58a417fdbd2e84bd5", size = 172823 }, +] + +[[package]] +name = "psutil" +version = "7.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/2a/80/336820c1ad9286a4ded7e845b2eccfcb27851ab8ac6abece774a6ff4d3de/psutil-7.0.0.tar.gz", hash = "sha256:7be9c3eba38beccb6495ea33afd982a44074b78f28c434a1f51cc07fd315c456", size = 497003 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ed/e6/2d26234410f8b8abdbf891c9da62bee396583f713fb9f3325a4760875d22/psutil-7.0.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:101d71dc322e3cffd7cea0650b09b3d08b8e7c4109dd6809fe452dfd00e58b25", size = 238051 }, + { url = "https://files.pythonhosted.org/packages/04/8b/30f930733afe425e3cbfc0e1468a30a18942350c1a8816acfade80c005c4/psutil-7.0.0-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:39db632f6bb862eeccf56660871433e111b6ea58f2caea825571951d4b6aa3da", size = 239535 }, + { url = "https://files.pythonhosted.org/packages/2a/ed/d362e84620dd22876b55389248e522338ed1bf134a5edd3b8231d7207f6d/psutil-7.0.0-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1fcee592b4c6f146991ca55919ea3d1f8926497a713ed7faaf8225e174581e91", size = 275004 }, + { url = "https://files.pythonhosted.org/packages/bf/b9/b0eb3f3cbcb734d930fdf839431606844a825b23eaf9a6ab371edac8162c/psutil-7.0.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b1388a4f6875d7e2aff5c4ca1cc16c545ed41dd8bb596cefea80111db353a34", size = 277986 }, + { url = "https://files.pythonhosted.org/packages/eb/a2/709e0fe2f093556c17fbafda93ac032257242cabcc7ff3369e2cb76a97aa/psutil-7.0.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5f098451abc2828f7dc6b58d44b532b22f2088f4999a937557b603ce72b1993", size = 279544 }, + { url = "https://files.pythonhosted.org/packages/50/e6/eecf58810b9d12e6427369784efe814a1eec0f492084ce8eb8f4d89d6d61/psutil-7.0.0-cp37-abi3-win32.whl", hash = "sha256:ba3fcef7523064a6c9da440fc4d6bd07da93ac726b5733c29027d7dc95b39d99", size = 241053 }, + { url = "https://files.pythonhosted.org/packages/50/1b/6921afe68c74868b4c9fa424dad3be35b095e16687989ebbb50ce4fceb7c/psutil-7.0.0-cp37-abi3-win_amd64.whl", hash = "sha256:4cf3d4eb1aa9b348dec30105c55cd9b7d4629285735a102beb4441e38db90553", size = 244885 }, +] + +[[package]] +name = "ptyprocess" +version = "0.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/20/e5/16ff212c1e452235a90aeb09066144d0c5a6a8c0834397e03f5224495c4e/ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220", size = 70762 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35", size = 13993 }, +] + +[[package]] +name = "pure-eval" +version = "0.2.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/cd/05/0a34433a064256a578f1783a10da6df098ceaa4a57bbeaa96a6c0352786b/pure_eval-0.2.3.tar.gz", hash = "sha256:5f4e983f40564c576c7c8635ae88db5956bb2229d7e9237d03b3c0b0190eaf42", size = 19752 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8e/37/efad0257dc6e593a18957422533ff0f87ede7c9c6ea010a2177d738fb82f/pure_eval-0.2.3-py3-none-any.whl", hash = "sha256:1db8e35b67b3d218d818ae653e27f06c3aa420901fa7b081ca98cbedc874e0d0", size = 11842 }, +] + +[[package]] +name = "pyasn1" +version = "0.6.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ba/e9/01f1a64245b89f039897cb0130016d79f77d52669aae6ee7b159a6c4c018/pyasn1-0.6.1.tar.gz", hash = "sha256:6f580d2bdd84365380830acf45550f2511469f673cb4a5ae3857a3170128b034", size = 145322 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c8/f1/d6a797abb14f6283c0ddff96bbdd46937f64122b8c925cab503dd37f8214/pyasn1-0.6.1-py3-none-any.whl", hash = "sha256:0d632f46f2ba09143da3a8afe9e33fb6f92fa2320ab7e886e2d0f7672af84629", size = 83135 }, +] + +[[package]] +name = "pyasn1-modules" +version = "0.4.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pyasn1" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e9/e6/78ebbb10a8c8e4b61a59249394a4a594c1a7af95593dc933a349c8d00964/pyasn1_modules-0.4.2.tar.gz", hash = "sha256:677091de870a80aae844b1ca6134f54652fa2c8c5a52aa396440ac3106e941e6", size = 307892 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/47/8d/d529b5d697919ba8c11ad626e835d4039be708a35b0d22de83a269a6682c/pyasn1_modules-0.4.2-py3-none-any.whl", hash = "sha256:29253a9207ce32b64c3ac6600edc75368f98473906e8fd1043bd6b5b1de2c14a", size = 181259 }, +] + +[[package]] +name = "pycparser" +version = "2.22" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/1d/b2/31537cf4b1ca988837256c910a668b553fceb8f069bedc4b1c826024b52c/pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6", size = 172736 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/13/a3/a812df4e2dd5696d1f351d58b8fe16a405b234ad2886a0dab9183fb78109/pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc", size = 117552 }, +] + +[[package]] +name = "pydantic" +version = "2.11.7" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "annotated-types" }, + { name = "pydantic-core" }, + { name = "typing-extensions" }, + { name = "typing-inspection" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/00/dd/4325abf92c39ba8623b5af936ddb36ffcfe0beae70405d456ab1fb2f5b8c/pydantic-2.11.7.tar.gz", hash = "sha256:d989c3c6cb79469287b1569f7447a17848c998458d49ebe294e975b9baf0f0db", size = 788350 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6a/c0/ec2b1c8712ca690e5d61979dee872603e92b8a32f94cc1b72d53beab008a/pydantic-2.11.7-py3-none-any.whl", hash = "sha256:dde5df002701f6de26248661f6835bbe296a47bf73990135c7d07ce741b9623b", size = 444782 }, +] + +[[package]] +name = "pydantic-core" +version = "2.33.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ad/88/5f2260bdfae97aabf98f1778d43f69574390ad787afb646292a638c923d4/pydantic_core-2.33.2.tar.gz", hash = "sha256:7cb8bc3605c29176e1b105350d2e6474142d7c1bd1d9327c4a9bdb46bf827acc", size = 435195 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/18/8a/2b41c97f554ec8c71f2a8a5f85cb56a8b0956addfe8b0efb5b3d77e8bdc3/pydantic_core-2.33.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:a7ec89dc587667f22b6a0b6579c249fca9026ce7c333fc142ba42411fa243cdc", size = 2009000 }, + { url = "https://files.pythonhosted.org/packages/a1/02/6224312aacb3c8ecbaa959897af57181fb6cf3a3d7917fd44d0f2917e6f2/pydantic_core-2.33.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3c6db6e52c6d70aa0d00d45cdb9b40f0433b96380071ea80b09277dba021ddf7", size = 1847996 }, + { url = "https://files.pythonhosted.org/packages/d6/46/6dcdf084a523dbe0a0be59d054734b86a981726f221f4562aed313dbcb49/pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e61206137cbc65e6d5256e1166f88331d3b6238e082d9f74613b9b765fb9025", size = 1880957 }, + { url = "https://files.pythonhosted.org/packages/ec/6b/1ec2c03837ac00886ba8160ce041ce4e325b41d06a034adbef11339ae422/pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:eb8c529b2819c37140eb51b914153063d27ed88e3bdc31b71198a198e921e011", size = 1964199 }, + { url = "https://files.pythonhosted.org/packages/2d/1d/6bf34d6adb9debd9136bd197ca72642203ce9aaaa85cfcbfcf20f9696e83/pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c52b02ad8b4e2cf14ca7b3d918f3eb0ee91e63b3167c32591e57c4317e134f8f", size = 2120296 }, + { url = "https://files.pythonhosted.org/packages/e0/94/2bd0aaf5a591e974b32a9f7123f16637776c304471a0ab33cf263cf5591a/pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:96081f1605125ba0855dfda83f6f3df5ec90c61195421ba72223de35ccfb2f88", size = 2676109 }, + { url = "https://files.pythonhosted.org/packages/f9/41/4b043778cf9c4285d59742281a769eac371b9e47e35f98ad321349cc5d61/pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f57a69461af2a5fa6e6bbd7a5f60d3b7e6cebb687f55106933188e79ad155c1", size = 2002028 }, + { url = "https://files.pythonhosted.org/packages/cb/d5/7bb781bf2748ce3d03af04d5c969fa1308880e1dca35a9bd94e1a96a922e/pydantic_core-2.33.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:572c7e6c8bb4774d2ac88929e3d1f12bc45714ae5ee6d9a788a9fb35e60bb04b", size = 2100044 }, + { url = "https://files.pythonhosted.org/packages/fe/36/def5e53e1eb0ad896785702a5bbfd25eed546cdcf4087ad285021a90ed53/pydantic_core-2.33.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:db4b41f9bd95fbe5acd76d89920336ba96f03e149097365afe1cb092fceb89a1", size = 2058881 }, + { url = "https://files.pythonhosted.org/packages/01/6c/57f8d70b2ee57fc3dc8b9610315949837fa8c11d86927b9bb044f8705419/pydantic_core-2.33.2-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:fa854f5cf7e33842a892e5c73f45327760bc7bc516339fda888c75ae60edaeb6", size = 2227034 }, + { url = "https://files.pythonhosted.org/packages/27/b9/9c17f0396a82b3d5cbea4c24d742083422639e7bb1d5bf600e12cb176a13/pydantic_core-2.33.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:5f483cfb75ff703095c59e365360cb73e00185e01aaea067cd19acffd2ab20ea", size = 2234187 }, + { url = "https://files.pythonhosted.org/packages/b0/6a/adf5734ffd52bf86d865093ad70b2ce543415e0e356f6cacabbc0d9ad910/pydantic_core-2.33.2-cp312-cp312-win32.whl", hash = "sha256:9cb1da0f5a471435a7bc7e439b8a728e8b61e59784b2af70d7c169f8dd8ae290", size = 1892628 }, + { url = "https://files.pythonhosted.org/packages/43/e4/5479fecb3606c1368d496a825d8411e126133c41224c1e7238be58b87d7e/pydantic_core-2.33.2-cp312-cp312-win_amd64.whl", hash = "sha256:f941635f2a3d96b2973e867144fde513665c87f13fe0e193c158ac51bfaaa7b2", size = 1955866 }, + { url = "https://files.pythonhosted.org/packages/0d/24/8b11e8b3e2be9dd82df4b11408a67c61bb4dc4f8e11b5b0fc888b38118b5/pydantic_core-2.33.2-cp312-cp312-win_arm64.whl", hash = "sha256:cca3868ddfaccfbc4bfb1d608e2ccaaebe0ae628e1416aeb9c4d88c001bb45ab", size = 1888894 }, + { url = "https://files.pythonhosted.org/packages/46/8c/99040727b41f56616573a28771b1bfa08a3d3fe74d3d513f01251f79f172/pydantic_core-2.33.2-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:1082dd3e2d7109ad8b7da48e1d4710c8d06c253cbc4a27c1cff4fbcaa97a9e3f", size = 2015688 }, + { url = "https://files.pythonhosted.org/packages/3a/cc/5999d1eb705a6cefc31f0b4a90e9f7fc400539b1a1030529700cc1b51838/pydantic_core-2.33.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f517ca031dfc037a9c07e748cefd8d96235088b83b4f4ba8939105d20fa1dcd6", size = 1844808 }, + { url = "https://files.pythonhosted.org/packages/6f/5e/a0a7b8885c98889a18b6e376f344da1ef323d270b44edf8174d6bce4d622/pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0a9f2c9dd19656823cb8250b0724ee9c60a82f3cdf68a080979d13092a3b0fef", size = 1885580 }, + { url = "https://files.pythonhosted.org/packages/3b/2a/953581f343c7d11a304581156618c3f592435523dd9d79865903272c256a/pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2b0a451c263b01acebe51895bfb0e1cc842a5c666efe06cdf13846c7418caa9a", size = 1973859 }, + { url = "https://files.pythonhosted.org/packages/e6/55/f1a813904771c03a3f97f676c62cca0c0a4138654107c1b61f19c644868b/pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ea40a64d23faa25e62a70ad163571c0b342b8bf66d5fa612ac0dec4f069d916", size = 2120810 }, + { url = "https://files.pythonhosted.org/packages/aa/c3/053389835a996e18853ba107a63caae0b9deb4a276c6b472931ea9ae6e48/pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0fb2d542b4d66f9470e8065c5469ec676978d625a8b7a363f07d9a501a9cb36a", size = 2676498 }, + { url = "https://files.pythonhosted.org/packages/eb/3c/f4abd740877a35abade05e437245b192f9d0ffb48bbbbd708df33d3cda37/pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fdac5d6ffa1b5a83bca06ffe7583f5576555e6c8b3a91fbd25ea7780f825f7d", size = 2000611 }, + { url = "https://files.pythonhosted.org/packages/59/a7/63ef2fed1837d1121a894d0ce88439fe3e3b3e48c7543b2a4479eb99c2bd/pydantic_core-2.33.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:04a1a413977ab517154eebb2d326da71638271477d6ad87a769102f7c2488c56", size = 2107924 }, + { url = "https://files.pythonhosted.org/packages/04/8f/2551964ef045669801675f1cfc3b0d74147f4901c3ffa42be2ddb1f0efc4/pydantic_core-2.33.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:c8e7af2f4e0194c22b5b37205bfb293d166a7344a5b0d0eaccebc376546d77d5", size = 2063196 }, + { url = "https://files.pythonhosted.org/packages/26/bd/d9602777e77fc6dbb0c7db9ad356e9a985825547dce5ad1d30ee04903918/pydantic_core-2.33.2-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:5c92edd15cd58b3c2d34873597a1e20f13094f59cf88068adb18947df5455b4e", size = 2236389 }, + { url = "https://files.pythonhosted.org/packages/42/db/0e950daa7e2230423ab342ae918a794964b053bec24ba8af013fc7c94846/pydantic_core-2.33.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:65132b7b4a1c0beded5e057324b7e16e10910c106d43675d9bd87d4f38dde162", size = 2239223 }, + { url = "https://files.pythonhosted.org/packages/58/4d/4f937099c545a8a17eb52cb67fe0447fd9a373b348ccfa9a87f141eeb00f/pydantic_core-2.33.2-cp313-cp313-win32.whl", hash = "sha256:52fb90784e0a242bb96ec53f42196a17278855b0f31ac7c3cc6f5c1ec4811849", size = 1900473 }, + { url = "https://files.pythonhosted.org/packages/a0/75/4a0a9bac998d78d889def5e4ef2b065acba8cae8c93696906c3a91f310ca/pydantic_core-2.33.2-cp313-cp313-win_amd64.whl", hash = "sha256:c083a3bdd5a93dfe480f1125926afcdbf2917ae714bdb80b36d34318b2bec5d9", size = 1955269 }, + { url = "https://files.pythonhosted.org/packages/f9/86/1beda0576969592f1497b4ce8e7bc8cbdf614c352426271b1b10d5f0aa64/pydantic_core-2.33.2-cp313-cp313-win_arm64.whl", hash = "sha256:e80b087132752f6b3d714f041ccf74403799d3b23a72722ea2e6ba2e892555b9", size = 1893921 }, + { url = "https://files.pythonhosted.org/packages/a4/7d/e09391c2eebeab681df2b74bfe6c43422fffede8dc74187b2b0bf6fd7571/pydantic_core-2.33.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:61c18fba8e5e9db3ab908620af374db0ac1baa69f0f32df4f61ae23f15e586ac", size = 1806162 }, + { url = "https://files.pythonhosted.org/packages/f1/3d/847b6b1fed9f8ed3bb95a9ad04fbd0b212e832d4f0f50ff4d9ee5a9f15cf/pydantic_core-2.33.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95237e53bb015f67b63c91af7518a62a8660376a6a0db19b89acc77a4d6199f5", size = 1981560 }, + { url = "https://files.pythonhosted.org/packages/6f/9a/e73262f6c6656262b5fdd723ad90f518f579b7bc8622e43a942eec53c938/pydantic_core-2.33.2-cp313-cp313t-win_amd64.whl", hash = "sha256:c2fc0a768ef76c15ab9238afa6da7f69895bb5d1ee83aeea2e3509af4472d0b9", size = 1935777 }, +] + +[[package]] +name = "pydantic-settings" +version = "2.10.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pydantic" }, + { name = "python-dotenv" }, + { name = "typing-inspection" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/68/85/1ea668bbab3c50071ca613c6ab30047fb36ab0da1b92fa8f17bbc38fd36c/pydantic_settings-2.10.1.tar.gz", hash = "sha256:06f0062169818d0f5524420a360d632d5857b83cffd4d42fe29597807a1614ee", size = 172583 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/58/f0/427018098906416f580e3cf1366d3b1abfb408a0652e9f31600c24a1903c/pydantic_settings-2.10.1-py3-none-any.whl", hash = "sha256:a60952460b99cf661dc25c29c0ef171721f98bfcb52ef8d9ea4c943d7c8cc796", size = 45235 }, +] + +[[package]] +name = "pygments" +version = "2.19.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b0/77/a5b8c569bf593b0140bde72ea885a803b82086995367bf2037de0159d924/pygments-2.19.2.tar.gz", hash = "sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887", size = 4968631 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c7/21/705964c7812476f378728bdf590ca4b771ec72385c533964653c68e86bdc/pygments-2.19.2-py3-none-any.whl", hash = "sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b", size = 1225217 }, +] + +[[package]] +name = "pyjwt" +version = "2.9.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/fb/68/ce067f09fca4abeca8771fe667d89cc347d1e99da3e093112ac329c6020e/pyjwt-2.9.0.tar.gz", hash = "sha256:7e1e5b56cc735432a7369cbfa0efe50fa113ebecdc04ae6922deba8b84582d0c", size = 78825 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/79/84/0fdf9b18ba31d69877bd39c9cd6052b47f3761e9910c15de788e519f079f/PyJWT-2.9.0-py3-none-any.whl", hash = "sha256:3b02fb0f44517787776cf48f2ae25d8e14f300e6d7545a4315cee571a415e850", size = 22344 }, +] + +[[package]] +name = "pytest" +version = "8.4.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, + { name = "iniconfig" }, + { name = "packaging" }, + { name = "pluggy" }, + { name = "pygments" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/08/ba/45911d754e8eba3d5a841a5ce61a65a685ff1798421ac054f85aa8747dfb/pytest-8.4.1.tar.gz", hash = "sha256:7c67fd69174877359ed9371ec3af8a3d2b04741818c51e5e99cc1742251fa93c", size = 1517714 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/29/16/c8a903f4c4dffe7a12843191437d7cd8e32751d5de349d45d3fe69544e87/pytest-8.4.1-py3-none-any.whl", hash = "sha256:539c70ba6fcead8e78eebbf1115e8b589e7565830d7d006a8723f19ac8a0afb7", size = 365474 }, +] + +[[package]] +name = "pytest-asyncio" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pytest" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/4e/51/f8794af39eeb870e87a8c8068642fc07bce0c854d6865d7dd0f2a9d338c2/pytest_asyncio-1.1.0.tar.gz", hash = "sha256:796aa822981e01b68c12e4827b8697108f7205020f24b5793b3c41555dab68ea", size = 46652 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c7/9d/bf86eddabf8c6c9cb1ea9a869d6873b46f105a5d292d3a6f7071f5b07935/pytest_asyncio-1.1.0-py3-none-any.whl", hash = "sha256:5fe2d69607b0bd75c656d1211f969cadba035030156745ee09e7d71740e58ecf", size = 15157 }, +] + +[[package]] +name = "python-dateutil" +version = "2.9.0.post0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "six" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/66/c0/0c8b6ad9f17a802ee498c46e004a0eb49bc148f2fd230864601a86dcf6db/python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 342432 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427", size = 229892 }, +] + +[[package]] +name = "python-dotenv" +version = "1.1.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f6/b0/4bc07ccd3572a2f9df7e6782f52b0c6c90dcbb803ac4a167702d7d0dfe1e/python_dotenv-1.1.1.tar.gz", hash = "sha256:a8a6399716257f45be6a007360200409fce5cda2661e3dec71d23dc15f6189ab", size = 41978 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5f/ed/539768cf28c661b5b068d66d96a2f155c4971a5d55684a514c1a0e0dec2f/python_dotenv-1.1.1-py3-none-any.whl", hash = "sha256:31f23644fe2602f88ff55e1f5c79ba497e01224ee7737937930c448e4d0e24dc", size = 20556 }, +] + +[[package]] +name = "python-multipart" +version = "0.0.20" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f3/87/f44d7c9f274c7ee665a29b885ec97089ec5dc034c7f3fafa03da9e39a09e/python_multipart-0.0.20.tar.gz", hash = "sha256:8dd0cab45b8e23064ae09147625994d090fa46f5b0d1e13af944c331a7fa9d13", size = 37158 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/45/58/38b5afbc1a800eeea951b9285d3912613f2603bdf897a4ab0f4bd7f405fc/python_multipart-0.0.20-py3-none-any.whl", hash = "sha256:8a62d3a8335e06589fe01f2a3e178cdcc632f3fbe0d492ad9ee0ec35aab1f104", size = 24546 }, +] + +[[package]] +name = "python-on-whales" +version = "0.73.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pydantic" }, + { name = "requests" }, + { name = "tqdm" }, + { name = "typer" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/40/c3/f57dd3e7d20af8a0399bb87471eac4698e0686b04073eef4bc291204a709/python_on_whales-0.73.0.tar.gz", hash = "sha256:c76bf3633550e5c948fb4215918364f45efaddb2e09df5ddd169132f7ffdc249", size = 112019 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d4/e9/ea125eb8954f64e76485aec5c63ca6a5b977e0127a5f3896993f1692166e/python_on_whales-0.73.0-py3-none-any.whl", hash = "sha256:66f31749c2544a0aacb4e3ba03772c2e9227235ea1aecd58aa7a4cdcf26f559a", size = 118125 }, +] + +[[package]] +name = "pywin32" +version = "311" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e7/ab/01ea1943d4eba0f850c3c61e78e8dd59757ff815ff3ccd0a84de5f541f42/pywin32-311-cp312-cp312-win32.whl", hash = "sha256:750ec6e621af2b948540032557b10a2d43b0cee2ae9758c54154d711cc852d31", size = 8706543 }, + { url = "https://files.pythonhosted.org/packages/d1/a8/a0e8d07d4d051ec7502cd58b291ec98dcc0c3fff027caad0470b72cfcc2f/pywin32-311-cp312-cp312-win_amd64.whl", hash = "sha256:b8c095edad5c211ff31c05223658e71bf7116daa0ecf3ad85f3201ea3190d067", size = 9495040 }, + { url = "https://files.pythonhosted.org/packages/ba/3a/2ae996277b4b50f17d61f0603efd8253cb2d79cc7ae159468007b586396d/pywin32-311-cp312-cp312-win_arm64.whl", hash = "sha256:e286f46a9a39c4a18b319c28f59b61de793654af2f395c102b4f819e584b5852", size = 8710102 }, + { url = "https://files.pythonhosted.org/packages/a5/be/3fd5de0979fcb3994bfee0d65ed8ca9506a8a1260651b86174f6a86f52b3/pywin32-311-cp313-cp313-win32.whl", hash = "sha256:f95ba5a847cba10dd8c4d8fefa9f2a6cf283b8b88ed6178fa8a6c1ab16054d0d", size = 8705700 }, + { url = "https://files.pythonhosted.org/packages/e3/28/e0a1909523c6890208295a29e05c2adb2126364e289826c0a8bc7297bd5c/pywin32-311-cp313-cp313-win_amd64.whl", hash = "sha256:718a38f7e5b058e76aee1c56ddd06908116d35147e133427e59a3983f703a20d", size = 9494700 }, + { url = "https://files.pythonhosted.org/packages/04/bf/90339ac0f55726dce7d794e6d79a18a91265bdf3aa70b6b9ca52f35e022a/pywin32-311-cp313-cp313-win_arm64.whl", hash = "sha256:7b4075d959648406202d92a2310cb990fea19b535c7f4a78d3f5e10b926eeb8a", size = 8709318 }, + { url = "https://files.pythonhosted.org/packages/c9/31/097f2e132c4f16d99a22bfb777e0fd88bd8e1c634304e102f313af69ace5/pywin32-311-cp314-cp314-win32.whl", hash = "sha256:b7a2c10b93f8986666d0c803ee19b5990885872a7de910fc460f9b0c2fbf92ee", size = 8840714 }, + { url = "https://files.pythonhosted.org/packages/90/4b/07c77d8ba0e01349358082713400435347df8426208171ce297da32c313d/pywin32-311-cp314-cp314-win_amd64.whl", hash = "sha256:3aca44c046bd2ed8c90de9cb8427f581c479e594e99b5c0bb19b29c10fd6cb87", size = 9656800 }, + { url = "https://files.pythonhosted.org/packages/c0/d2/21af5c535501a7233e734b8af901574572da66fcc254cb35d0609c9080dd/pywin32-311-cp314-cp314-win_arm64.whl", hash = "sha256:a508e2d9025764a8270f93111a970e1d0fbfc33f4153b388bb649b7eec4f9b42", size = 8932540 }, +] + +[[package]] +name = "pyyaml" +version = "6.0.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/54/ed/79a089b6be93607fa5cdaedf301d7dfb23af5f25c398d5ead2525b063e17/pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e", size = 130631 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/86/0c/c581167fc46d6d6d7ddcfb8c843a4de25bdd27e4466938109ca68492292c/PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab", size = 183873 }, + { url = "https://files.pythonhosted.org/packages/a8/0c/38374f5bb272c051e2a69281d71cba6fdb983413e6758b84482905e29a5d/PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725", size = 173302 }, + { url = "https://files.pythonhosted.org/packages/c3/93/9916574aa8c00aa06bbac729972eb1071d002b8e158bd0e83a3b9a20a1f7/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5", size = 739154 }, + { url = "https://files.pythonhosted.org/packages/95/0f/b8938f1cbd09739c6da569d172531567dbcc9789e0029aa070856f123984/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425", size = 766223 }, + { url = "https://files.pythonhosted.org/packages/b9/2b/614b4752f2e127db5cc206abc23a8c19678e92b23c3db30fc86ab731d3bd/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476", size = 767542 }, + { url = "https://files.pythonhosted.org/packages/d4/00/dd137d5bcc7efea1836d6264f049359861cf548469d18da90cd8216cf05f/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48", size = 731164 }, + { url = "https://files.pythonhosted.org/packages/c9/1f/4f998c900485e5c0ef43838363ba4a9723ac0ad73a9dc42068b12aaba4e4/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b", size = 756611 }, + { url = "https://files.pythonhosted.org/packages/df/d1/f5a275fdb252768b7a11ec63585bc38d0e87c9e05668a139fea92b80634c/PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4", size = 140591 }, + { url = "https://files.pythonhosted.org/packages/0c/e8/4f648c598b17c3d06e8753d7d13d57542b30d56e6c2dedf9c331ae56312e/PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8", size = 156338 }, + { url = "https://files.pythonhosted.org/packages/ef/e3/3af305b830494fa85d95f6d95ef7fa73f2ee1cc8ef5b495c7c3269fb835f/PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba", size = 181309 }, + { url = "https://files.pythonhosted.org/packages/45/9f/3b1c20a0b7a3200524eb0076cc027a970d320bd3a6592873c85c92a08731/PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1", size = 171679 }, + { url = "https://files.pythonhosted.org/packages/7c/9a/337322f27005c33bcb656c655fa78325b730324c78620e8328ae28b64d0c/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133", size = 733428 }, + { url = "https://files.pythonhosted.org/packages/a3/69/864fbe19e6c18ea3cc196cbe5d392175b4cf3d5d0ac1403ec3f2d237ebb5/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484", size = 763361 }, + { url = "https://files.pythonhosted.org/packages/04/24/b7721e4845c2f162d26f50521b825fb061bc0a5afcf9a386840f23ea19fa/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5", size = 759523 }, + { url = "https://files.pythonhosted.org/packages/2b/b2/e3234f59ba06559c6ff63c4e10baea10e5e7df868092bf9ab40e5b9c56b6/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc", size = 726660 }, + { url = "https://files.pythonhosted.org/packages/fe/0f/25911a9f080464c59fab9027482f822b86bf0608957a5fcc6eaac85aa515/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652", size = 751597 }, + { url = "https://files.pythonhosted.org/packages/14/0d/e2c3b43bbce3cf6bd97c840b46088a3031085179e596d4929729d8d68270/PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183", size = 140527 }, + { url = "https://files.pythonhosted.org/packages/fa/de/02b54f42487e3d3c6efb3f89428677074ca7bf43aae402517bc7cca949f3/PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563", size = 156446 }, +] + +[[package]] +name = "pyzmq" +version = "27.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cffi", marker = "implementation_name == 'pypy'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f1/06/50a4e9648b3e8b992bef8eb632e457307553a89d294103213cfd47b3da69/pyzmq-27.0.0.tar.gz", hash = "sha256:b1f08eeb9ce1510e6939b6e5dcd46a17765e2333daae78ecf4606808442e52cf", size = 280478 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/93/a7/9ad68f55b8834ede477842214feba6a4c786d936c022a67625497aacf61d/pyzmq-27.0.0-cp312-abi3-macosx_10_15_universal2.whl", hash = "sha256:cbabc59dcfaac66655c040dfcb8118f133fb5dde185e5fc152628354c1598e52", size = 1305438 }, + { url = "https://files.pythonhosted.org/packages/ba/ee/26aa0f98665a22bc90ebe12dced1de5f3eaca05363b717f6fb229b3421b3/pyzmq-27.0.0-cp312-abi3-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:cb0ac5179cba4b2f94f1aa208fbb77b62c4c9bf24dd446278b8b602cf85fcda3", size = 895095 }, + { url = "https://files.pythonhosted.org/packages/cf/85/c57e7ab216ecd8aa4cc7e3b83b06cc4e9cf45c87b0afc095f10cd5ce87c1/pyzmq-27.0.0-cp312-abi3-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:53a48f0228eab6cbf69fde3aa3c03cbe04e50e623ef92ae395fce47ef8a76152", size = 651826 }, + { url = "https://files.pythonhosted.org/packages/69/9a/9ea7e230feda9400fb0ae0d61d7d6ddda635e718d941c44eeab22a179d34/pyzmq-27.0.0-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:111db5f395e09f7e775f759d598f43cb815fc58e0147623c4816486e1a39dc22", size = 839750 }, + { url = "https://files.pythonhosted.org/packages/08/66/4cebfbe71f3dfbd417011daca267539f62ed0fbc68105357b68bbb1a25b7/pyzmq-27.0.0-cp312-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:c8878011653dcdc27cc2c57e04ff96f0471e797f5c19ac3d7813a245bcb24371", size = 1641357 }, + { url = "https://files.pythonhosted.org/packages/ac/f6/b0f62578c08d2471c791287149cb8c2aaea414ae98c6e995c7dbe008adfb/pyzmq-27.0.0-cp312-abi3-musllinux_1_2_i686.whl", hash = "sha256:c0ed2c1f335ba55b5fdc964622254917d6b782311c50e138863eda409fbb3b6d", size = 2020281 }, + { url = "https://files.pythonhosted.org/packages/37/b9/4f670b15c7498495da9159edc374ec09c88a86d9cd5a47d892f69df23450/pyzmq-27.0.0-cp312-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:e918d70862d4cfd4b1c187310015646a14e1f5917922ab45b29f28f345eeb6be", size = 1877110 }, + { url = "https://files.pythonhosted.org/packages/66/31/9dee25c226295b740609f0d46db2fe972b23b6f5cf786360980524a3ba92/pyzmq-27.0.0-cp312-abi3-win32.whl", hash = "sha256:88b4e43cab04c3c0f0d55df3b1eef62df2b629a1a369b5289a58f6fa8b07c4f4", size = 559297 }, + { url = "https://files.pythonhosted.org/packages/9b/12/52da5509800f7ff2d287b2f2b4e636e7ea0f001181cba6964ff6c1537778/pyzmq-27.0.0-cp312-abi3-win_amd64.whl", hash = "sha256:dce4199bf5f648a902ce37e7b3afa286f305cd2ef7a8b6ec907470ccb6c8b371", size = 619203 }, + { url = "https://files.pythonhosted.org/packages/93/6d/7f2e53b19d1edb1eb4f09ec7c3a1f945ca0aac272099eab757d15699202b/pyzmq-27.0.0-cp312-abi3-win_arm64.whl", hash = "sha256:56e46bbb85d52c1072b3f809cc1ce77251d560bc036d3a312b96db1afe76db2e", size = 551927 }, + { url = "https://files.pythonhosted.org/packages/19/62/876b27c4ff777db4ceba1c69ea90d3c825bb4f8d5e7cd987ce5802e33c55/pyzmq-27.0.0-cp313-cp313t-macosx_10_15_universal2.whl", hash = "sha256:c36ad534c0c29b4afa088dc53543c525b23c0797e01b69fef59b1a9c0e38b688", size = 1340826 }, + { url = "https://files.pythonhosted.org/packages/43/69/58ef8f4f59d3bcd505260c73bee87b008850f45edca40ddaba54273c35f4/pyzmq-27.0.0-cp313-cp313t-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:67855c14173aec36395d7777aaba3cc527b393821f30143fd20b98e1ff31fd38", size = 897283 }, + { url = "https://files.pythonhosted.org/packages/43/15/93a0d0396700a60475ad3c5d42c5f1c308d3570bc94626b86c71ef9953e0/pyzmq-27.0.0-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8617c7d43cd8ccdb62aebe984bfed77ca8f036e6c3e46dd3dddda64b10f0ab7a", size = 660567 }, + { url = "https://files.pythonhosted.org/packages/0e/b3/fe055513e498ca32f64509abae19b9c9eb4d7c829e02bd8997dd51b029eb/pyzmq-27.0.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:67bfbcbd0a04c575e8103a6061d03e393d9f80ffdb9beb3189261e9e9bc5d5e9", size = 847681 }, + { url = "https://files.pythonhosted.org/packages/b6/4f/ff15300b00b5b602191f3df06bbc8dd4164e805fdd65bb77ffbb9c5facdc/pyzmq-27.0.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:5cd11d46d7b7e5958121b3eaf4cd8638eff3a720ec527692132f05a57f14341d", size = 1650148 }, + { url = "https://files.pythonhosted.org/packages/c4/6f/84bdfff2a224a6f26a24249a342e5906993c50b0761e311e81b39aef52a7/pyzmq-27.0.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:b801c2e40c5aa6072c2f4876de8dccd100af6d9918d4d0d7aa54a1d982fd4f44", size = 2023768 }, + { url = "https://files.pythonhosted.org/packages/64/39/dc2db178c26a42228c5ac94a9cc595030458aa64c8d796a7727947afbf55/pyzmq-27.0.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:20d5cb29e8c5f76a127c75b6e7a77e846bc4b655c373baa098c26a61b7ecd0ef", size = 1885199 }, + { url = "https://files.pythonhosted.org/packages/c7/21/dae7b06a1f8cdee5d8e7a63d99c5d129c401acc40410bef2cbf42025e26f/pyzmq-27.0.0-cp313-cp313t-win32.whl", hash = "sha256:a20528da85c7ac7a19b7384e8c3f8fa707841fd85afc4ed56eda59d93e3d98ad", size = 575439 }, + { url = "https://files.pythonhosted.org/packages/eb/bc/1709dc55f0970cf4cb8259e435e6773f9946f41a045c2cb90e870b7072da/pyzmq-27.0.0-cp313-cp313t-win_amd64.whl", hash = "sha256:d8229f2efece6a660ee211d74d91dbc2a76b95544d46c74c615e491900dc107f", size = 639933 }, +] + +[[package]] +name = "questionary" +version = "2.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "prompt-toolkit" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a8/b8/d16eb579277f3de9e56e5ad25280fab52fc5774117fb70362e8c2e016559/questionary-2.1.0.tar.gz", hash = "sha256:6302cdd645b19667d8f6e6634774e9538bfcd1aad9be287e743d96cacaf95587", size = 26775 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ad/3f/11dd4cd4f39e05128bfd20138faea57bec56f9ffba6185d276e3107ba5b2/questionary-2.1.0-py3-none-any.whl", hash = "sha256:44174d237b68bc828e4878c763a9ad6790ee61990e0ae72927694ead57bab8ec", size = 36747 }, +] + +[[package]] +name = "redis" +version = "5.3.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pyjwt" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/71/dd/2b37032f4119dff2a2f9bbcaade03221b100ba26051bb96e275de3e5db7a/redis-5.3.0.tar.gz", hash = "sha256:8d69d2dde11a12dc85d0dbf5c45577a5af048e2456f7077d87ad35c1c81c310e", size = 4626288 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/45/b0/aa601efe12180ba492b02e270554877e68467e66bda5d73e51eaa8ecc78a/redis-5.3.0-py3-none-any.whl", hash = "sha256:f1deeca1ea2ef25c1e4e46b07f4ea1275140526b1feea4c6459c0ec27a10ef83", size = 272836 }, +] + +[[package]] +name = "referencing" +version = "0.36.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "rpds-py" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/2f/db/98b5c277be99dd18bfd91dd04e1b759cad18d1a338188c936e92f921c7e2/referencing-0.36.2.tar.gz", hash = "sha256:df2e89862cd09deabbdba16944cc3f10feb6b3e6f18e902f7cc25609a34775aa", size = 74744 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c1/b1/3baf80dc6d2b7bc27a95a67752d0208e410351e3feb4eb78de5f77454d8d/referencing-0.36.2-py3-none-any.whl", hash = "sha256:e8699adbbf8b5c7de96d8ffa0eb5c158b3beafce084968e2ea8bb08c6794dcd0", size = 26775 }, +] + +[[package]] +name = "regex" +version = "2024.11.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/8e/5f/bd69653fbfb76cf8604468d3b4ec4c403197144c7bfe0e6a5fc9e02a07cb/regex-2024.11.6.tar.gz", hash = "sha256:7ab159b063c52a0333c884e4679f8d7a85112ee3078fe3d9004b2dd875585519", size = 399494 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ba/30/9a87ce8336b172cc232a0db89a3af97929d06c11ceaa19d97d84fa90a8f8/regex-2024.11.6-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:52fb28f528778f184f870b7cf8f225f5eef0a8f6e3778529bdd40c7b3920796a", size = 483781 }, + { url = "https://files.pythonhosted.org/packages/01/e8/00008ad4ff4be8b1844786ba6636035f7ef926db5686e4c0f98093612add/regex-2024.11.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:fdd6028445d2460f33136c55eeb1f601ab06d74cb3347132e1c24250187500d9", size = 288455 }, + { url = "https://files.pythonhosted.org/packages/60/85/cebcc0aff603ea0a201667b203f13ba75d9fc8668fab917ac5b2de3967bc/regex-2024.11.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:805e6b60c54bf766b251e94526ebad60b7de0c70f70a4e6210ee2891acb70bf2", size = 284759 }, + { url = "https://files.pythonhosted.org/packages/94/2b/701a4b0585cb05472a4da28ee28fdfe155f3638f5e1ec92306d924e5faf0/regex-2024.11.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b85c2530be953a890eaffde05485238f07029600e8f098cdf1848d414a8b45e4", size = 794976 }, + { url = "https://files.pythonhosted.org/packages/4b/bf/fa87e563bf5fee75db8915f7352e1887b1249126a1be4813837f5dbec965/regex-2024.11.6-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bb26437975da7dc36b7efad18aa9dd4ea569d2357ae6b783bf1118dabd9ea577", size = 833077 }, + { url = "https://files.pythonhosted.org/packages/a1/56/7295e6bad94b047f4d0834e4779491b81216583c00c288252ef625c01d23/regex-2024.11.6-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:abfa5080c374a76a251ba60683242bc17eeb2c9818d0d30117b4486be10c59d3", size = 823160 }, + { url = "https://files.pythonhosted.org/packages/fb/13/e3b075031a738c9598c51cfbc4c7879e26729c53aa9cca59211c44235314/regex-2024.11.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b7fa6606c2881c1db9479b0eaa11ed5dfa11c8d60a474ff0e095099f39d98e", size = 796896 }, + { url = "https://files.pythonhosted.org/packages/24/56/0b3f1b66d592be6efec23a795b37732682520b47c53da5a32c33ed7d84e3/regex-2024.11.6-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0c32f75920cf99fe6b6c539c399a4a128452eaf1af27f39bce8909c9a3fd8cbe", size = 783997 }, + { url = "https://files.pythonhosted.org/packages/f9/a1/eb378dada8b91c0e4c5f08ffb56f25fcae47bf52ad18f9b2f33b83e6d498/regex-2024.11.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:982e6d21414e78e1f51cf595d7f321dcd14de1f2881c5dc6a6e23bbbbd68435e", size = 781725 }, + { url = "https://files.pythonhosted.org/packages/83/f2/033e7dec0cfd6dda93390089864732a3409246ffe8b042e9554afa9bff4e/regex-2024.11.6-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a7c2155f790e2fb448faed6dd241386719802296ec588a8b9051c1f5c481bc29", size = 789481 }, + { url = "https://files.pythonhosted.org/packages/83/23/15d4552ea28990a74e7696780c438aadd73a20318c47e527b47a4a5a596d/regex-2024.11.6-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:149f5008d286636e48cd0b1dd65018548944e495b0265b45e1bffecce1ef7f39", size = 852896 }, + { url = "https://files.pythonhosted.org/packages/e3/39/ed4416bc90deedbfdada2568b2cb0bc1fdb98efe11f5378d9892b2a88f8f/regex-2024.11.6-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:e5364a4502efca094731680e80009632ad6624084aff9a23ce8c8c6820de3e51", size = 860138 }, + { url = "https://files.pythonhosted.org/packages/93/2d/dd56bb76bd8e95bbce684326302f287455b56242a4f9c61f1bc76e28360e/regex-2024.11.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0a86e7eeca091c09e021db8eb72d54751e527fa47b8d5787caf96d9831bd02ad", size = 787692 }, + { url = "https://files.pythonhosted.org/packages/0b/55/31877a249ab7a5156758246b9c59539abbeba22461b7d8adc9e8475ff73e/regex-2024.11.6-cp312-cp312-win32.whl", hash = "sha256:32f9a4c643baad4efa81d549c2aadefaeba12249b2adc5af541759237eee1c54", size = 262135 }, + { url = "https://files.pythonhosted.org/packages/38/ec/ad2d7de49a600cdb8dd78434a1aeffe28b9d6fc42eb36afab4a27ad23384/regex-2024.11.6-cp312-cp312-win_amd64.whl", hash = "sha256:a93c194e2df18f7d264092dc8539b8ffb86b45b899ab976aa15d48214138e81b", size = 273567 }, + { url = "https://files.pythonhosted.org/packages/90/73/bcb0e36614601016552fa9344544a3a2ae1809dc1401b100eab02e772e1f/regex-2024.11.6-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a6ba92c0bcdf96cbf43a12c717eae4bc98325ca3730f6b130ffa2e3c3c723d84", size = 483525 }, + { url = "https://files.pythonhosted.org/packages/0f/3f/f1a082a46b31e25291d830b369b6b0c5576a6f7fb89d3053a354c24b8a83/regex-2024.11.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:525eab0b789891ac3be914d36893bdf972d483fe66551f79d3e27146191a37d4", size = 288324 }, + { url = "https://files.pythonhosted.org/packages/09/c9/4e68181a4a652fb3ef5099e077faf4fd2a694ea6e0f806a7737aff9e758a/regex-2024.11.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:086a27a0b4ca227941700e0b31425e7a28ef1ae8e5e05a33826e17e47fbfdba0", size = 284617 }, + { url = "https://files.pythonhosted.org/packages/fc/fd/37868b75eaf63843165f1d2122ca6cb94bfc0271e4428cf58c0616786dce/regex-2024.11.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bde01f35767c4a7899b7eb6e823b125a64de314a8ee9791367c9a34d56af18d0", size = 795023 }, + { url = "https://files.pythonhosted.org/packages/c4/7c/d4cd9c528502a3dedb5c13c146e7a7a539a3853dc20209c8e75d9ba9d1b2/regex-2024.11.6-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b583904576650166b3d920d2bcce13971f6f9e9a396c673187f49811b2769dc7", size = 833072 }, + { url = "https://files.pythonhosted.org/packages/4f/db/46f563a08f969159c5a0f0e722260568425363bea43bb7ae370becb66a67/regex-2024.11.6-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1c4de13f06a0d54fa0d5ab1b7138bfa0d883220965a29616e3ea61b35d5f5fc7", size = 823130 }, + { url = "https://files.pythonhosted.org/packages/db/60/1eeca2074f5b87df394fccaa432ae3fc06c9c9bfa97c5051aed70e6e00c2/regex-2024.11.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3cde6e9f2580eb1665965ce9bf17ff4952f34f5b126beb509fee8f4e994f143c", size = 796857 }, + { url = "https://files.pythonhosted.org/packages/10/db/ac718a08fcee981554d2f7bb8402f1faa7e868c1345c16ab1ebec54b0d7b/regex-2024.11.6-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0d7f453dca13f40a02b79636a339c5b62b670141e63efd511d3f8f73fba162b3", size = 784006 }, + { url = "https://files.pythonhosted.org/packages/c2/41/7da3fe70216cea93144bf12da2b87367590bcf07db97604edeea55dac9ad/regex-2024.11.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:59dfe1ed21aea057a65c6b586afd2a945de04fc7db3de0a6e3ed5397ad491b07", size = 781650 }, + { url = "https://files.pythonhosted.org/packages/a7/d5/880921ee4eec393a4752e6ab9f0fe28009435417c3102fc413f3fe81c4e5/regex-2024.11.6-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:b97c1e0bd37c5cd7902e65f410779d39eeda155800b65fc4d04cc432efa9bc6e", size = 789545 }, + { url = "https://files.pythonhosted.org/packages/dc/96/53770115e507081122beca8899ab7f5ae28ae790bfcc82b5e38976df6a77/regex-2024.11.6-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:f9d1e379028e0fc2ae3654bac3cbbef81bf3fd571272a42d56c24007979bafb6", size = 853045 }, + { url = "https://files.pythonhosted.org/packages/31/d3/1372add5251cc2d44b451bd94f43b2ec78e15a6e82bff6a290ef9fd8f00a/regex-2024.11.6-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:13291b39131e2d002a7940fb176e120bec5145f3aeb7621be6534e46251912c4", size = 860182 }, + { url = "https://files.pythonhosted.org/packages/ed/e3/c446a64984ea9f69982ba1a69d4658d5014bc7a0ea468a07e1a1265db6e2/regex-2024.11.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4f51f88c126370dcec4908576c5a627220da6c09d0bff31cfa89f2523843316d", size = 787733 }, + { url = "https://files.pythonhosted.org/packages/2b/f1/e40c8373e3480e4f29f2692bd21b3e05f296d3afebc7e5dcf21b9756ca1c/regex-2024.11.6-cp313-cp313-win32.whl", hash = "sha256:63b13cfd72e9601125027202cad74995ab26921d8cd935c25f09c630436348ff", size = 262122 }, + { url = "https://files.pythonhosted.org/packages/45/94/bc295babb3062a731f52621cdc992d123111282e291abaf23faa413443ea/regex-2024.11.6-cp313-cp313-win_amd64.whl", hash = "sha256:2b3361af3198667e99927da8b84c1b010752fa4b1115ee30beaa332cabc3ef1a", size = 273545 }, +] + +[[package]] +name = "requests" +version = "2.32.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "charset-normalizer" }, + { name = "idna" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e1/0a/929373653770d8a0d7ea76c37de6e41f11eb07559b103b1c02cafb3f7cf8/requests-2.32.4.tar.gz", hash = "sha256:27d0316682c8a29834d3264820024b62a36942083d52caf2f14c0591336d3422", size = 135258 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7c/e4/56027c4a6b4ae70ca9de302488c5ca95ad4a39e190093d6c1a8ace08341b/requests-2.32.4-py3-none-any.whl", hash = "sha256:27babd3cda2a6d50b30443204ee89830707d396671944c998b5975b031ac2b2c", size = 64847 }, +] + +[[package]] +name = "requests-oauthlib" +version = "2.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "oauthlib" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/42/f2/05f29bc3913aea15eb670be136045bf5c5bbf4b99ecb839da9b422bb2c85/requests-oauthlib-2.0.0.tar.gz", hash = "sha256:b3dffaebd884d8cd778494369603a9e7b58d29111bf6b41bdc2dcd87203af4e9", size = 55650 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3b/5d/63d4ae3b9daea098d5d6f5da83984853c1bbacd5dc826764b249fe119d24/requests_oauthlib-2.0.0-py2.py3-none-any.whl", hash = "sha256:7dd8a5c40426b779b0868c404bdef9768deccf22749cde15852df527e6269b36", size = 24179 }, +] + +[[package]] +name = "rich" +version = "13.9.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markdown-it-py" }, + { name = "pygments" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ab/3a/0316b28d0761c6734d6bc14e770d85506c986c85ffb239e688eeaab2c2bc/rich-13.9.4.tar.gz", hash = "sha256:439594978a49a09530cff7ebc4b5c7103ef57baf48d5ea3184f21d9a2befa098", size = 223149 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/19/71/39c7c0d87f8d4e6c020a393182060eaefeeae6c01dab6a84ec346f2567df/rich-13.9.4-py3-none-any.whl", hash = "sha256:6049d5e6ec054bf2779ab3358186963bac2ea89175919d699e378b99738c2a90", size = 242424 }, +] + +[[package]] +name = "rpds-py" +version = "0.26.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a5/aa/4456d84bbb54adc6a916fb10c9b374f78ac840337644e4a5eda229c81275/rpds_py-0.26.0.tar.gz", hash = "sha256:20dae58a859b0906f0685642e591056f1e787f3a8b39c8e8749a45dc7d26bdb0", size = 27385 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ea/86/90eb87c6f87085868bd077c7a9938006eb1ce19ed4d06944a90d3560fce2/rpds_py-0.26.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:894514d47e012e794f1350f076c427d2347ebf82f9b958d554d12819849a369d", size = 363933 }, + { url = "https://files.pythonhosted.org/packages/63/78/4469f24d34636242c924626082b9586f064ada0b5dbb1e9d096ee7a8e0c6/rpds_py-0.26.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:fc921b96fa95a097add244da36a1d9e4f3039160d1d30f1b35837bf108c21136", size = 350447 }, + { url = "https://files.pythonhosted.org/packages/ad/91/c448ed45efdfdade82348d5e7995e15612754826ea640afc20915119734f/rpds_py-0.26.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e1157659470aa42a75448b6e943c895be8c70531c43cb78b9ba990778955582", size = 384711 }, + { url = "https://files.pythonhosted.org/packages/ec/43/e5c86fef4be7f49828bdd4ecc8931f0287b1152c0bb0163049b3218740e7/rpds_py-0.26.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:521ccf56f45bb3a791182dc6b88ae5f8fa079dd705ee42138c76deb1238e554e", size = 400865 }, + { url = "https://files.pythonhosted.org/packages/55/34/e00f726a4d44f22d5c5fe2e5ddd3ac3d7fd3f74a175607781fbdd06fe375/rpds_py-0.26.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9def736773fd56b305c0eef698be5192c77bfa30d55a0e5885f80126c4831a15", size = 517763 }, + { url = "https://files.pythonhosted.org/packages/52/1c/52dc20c31b147af724b16104500fba13e60123ea0334beba7b40e33354b4/rpds_py-0.26.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cdad4ea3b4513b475e027be79e5a0ceac8ee1c113a1a11e5edc3c30c29f964d8", size = 406651 }, + { url = "https://files.pythonhosted.org/packages/2e/77/87d7bfabfc4e821caa35481a2ff6ae0b73e6a391bb6b343db2c91c2b9844/rpds_py-0.26.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:82b165b07f416bdccf5c84546a484cc8f15137ca38325403864bfdf2b5b72f6a", size = 386079 }, + { url = "https://files.pythonhosted.org/packages/e3/d4/7f2200c2d3ee145b65b3cddc4310d51f7da6a26634f3ac87125fd789152a/rpds_py-0.26.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d04cab0a54b9dba4d278fe955a1390da3cf71f57feb78ddc7cb67cbe0bd30323", size = 421379 }, + { url = "https://files.pythonhosted.org/packages/ae/13/9fdd428b9c820869924ab62236b8688b122baa22d23efdd1c566938a39ba/rpds_py-0.26.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:79061ba1a11b6a12743a2b0f72a46aa2758613d454aa6ba4f5a265cc48850158", size = 562033 }, + { url = "https://files.pythonhosted.org/packages/f3/e1/b69686c3bcbe775abac3a4c1c30a164a2076d28df7926041f6c0eb5e8d28/rpds_py-0.26.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:f405c93675d8d4c5ac87364bb38d06c988e11028a64b52a47158a355079661f3", size = 591639 }, + { url = "https://files.pythonhosted.org/packages/5c/c9/1e3d8c8863c84a90197ac577bbc3d796a92502124c27092413426f670990/rpds_py-0.26.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:dafd4c44b74aa4bed4b250f1aed165b8ef5de743bcca3b88fc9619b6087093d2", size = 557105 }, + { url = "https://files.pythonhosted.org/packages/9f/c5/90c569649057622959f6dcc40f7b516539608a414dfd54b8d77e3b201ac0/rpds_py-0.26.0-cp312-cp312-win32.whl", hash = "sha256:3da5852aad63fa0c6f836f3359647870e21ea96cf433eb393ffa45263a170d44", size = 223272 }, + { url = "https://files.pythonhosted.org/packages/7d/16/19f5d9f2a556cfed454eebe4d354c38d51c20f3db69e7b4ce6cff904905d/rpds_py-0.26.0-cp312-cp312-win_amd64.whl", hash = "sha256:cf47cfdabc2194a669dcf7a8dbba62e37a04c5041d2125fae0233b720da6f05c", size = 234995 }, + { url = "https://files.pythonhosted.org/packages/83/f0/7935e40b529c0e752dfaa7880224771b51175fce08b41ab4a92eb2fbdc7f/rpds_py-0.26.0-cp312-cp312-win_arm64.whl", hash = "sha256:20ab1ae4fa534f73647aad289003f1104092890849e0266271351922ed5574f8", size = 223198 }, + { url = "https://files.pythonhosted.org/packages/6a/67/bb62d0109493b12b1c6ab00de7a5566aa84c0e44217c2d94bee1bd370da9/rpds_py-0.26.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:696764a5be111b036256c0b18cd29783fab22154690fc698062fc1b0084b511d", size = 363917 }, + { url = "https://files.pythonhosted.org/packages/4b/f3/34e6ae1925a5706c0f002a8d2d7f172373b855768149796af87bd65dcdb9/rpds_py-0.26.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1e6c15d2080a63aaed876e228efe4f814bc7889c63b1e112ad46fdc8b368b9e1", size = 350073 }, + { url = "https://files.pythonhosted.org/packages/75/83/1953a9d4f4e4de7fd0533733e041c28135f3c21485faaef56a8aadbd96b5/rpds_py-0.26.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:390e3170babf42462739a93321e657444f0862c6d722a291accc46f9d21ed04e", size = 384214 }, + { url = "https://files.pythonhosted.org/packages/48/0e/983ed1b792b3322ea1d065e67f4b230f3b96025f5ce3878cc40af09b7533/rpds_py-0.26.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7da84c2c74c0f5bc97d853d9e17bb83e2dcafcff0dc48286916001cc114379a1", size = 400113 }, + { url = "https://files.pythonhosted.org/packages/69/7f/36c0925fff6f660a80be259c5b4f5e53a16851f946eb080351d057698528/rpds_py-0.26.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4c5fe114a6dd480a510b6d3661d09d67d1622c4bf20660a474507aaee7eeeee9", size = 515189 }, + { url = "https://files.pythonhosted.org/packages/13/45/cbf07fc03ba7a9b54662c9badb58294ecfb24f828b9732970bd1a431ed5c/rpds_py-0.26.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3100b3090269f3a7ea727b06a6080d4eb7439dca4c0e91a07c5d133bb1727ea7", size = 406998 }, + { url = "https://files.pythonhosted.org/packages/6c/b0/8fa5e36e58657997873fd6a1cf621285ca822ca75b4b3434ead047daa307/rpds_py-0.26.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2c03c9b0c64afd0320ae57de4c982801271c0c211aa2d37f3003ff5feb75bb04", size = 385903 }, + { url = "https://files.pythonhosted.org/packages/4b/f7/b25437772f9f57d7a9fbd73ed86d0dcd76b4c7c6998348c070d90f23e315/rpds_py-0.26.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5963b72ccd199ade6ee493723d18a3f21ba7d5b957017607f815788cef50eaf1", size = 419785 }, + { url = "https://files.pythonhosted.org/packages/a7/6b/63ffa55743dfcb4baf2e9e77a0b11f7f97ed96a54558fcb5717a4b2cd732/rpds_py-0.26.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:9da4e873860ad5bab3291438525cae80169daecbfafe5657f7f5fb4d6b3f96b9", size = 561329 }, + { url = "https://files.pythonhosted.org/packages/2f/07/1f4f5e2886c480a2346b1e6759c00278b8a69e697ae952d82ae2e6ee5db0/rpds_py-0.26.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:5afaddaa8e8c7f1f7b4c5c725c0070b6eed0228f705b90a1732a48e84350f4e9", size = 590875 }, + { url = "https://files.pythonhosted.org/packages/cc/bc/e6639f1b91c3a55f8c41b47d73e6307051b6e246254a827ede730624c0f8/rpds_py-0.26.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4916dc96489616a6f9667e7526af8fa693c0fdb4f3acb0e5d9f4400eb06a47ba", size = 556636 }, + { url = "https://files.pythonhosted.org/packages/05/4c/b3917c45566f9f9a209d38d9b54a1833f2bb1032a3e04c66f75726f28876/rpds_py-0.26.0-cp313-cp313-win32.whl", hash = "sha256:2a343f91b17097c546b93f7999976fd6c9d5900617aa848c81d794e062ab302b", size = 222663 }, + { url = "https://files.pythonhosted.org/packages/e0/0b/0851bdd6025775aaa2365bb8de0697ee2558184c800bfef8d7aef5ccde58/rpds_py-0.26.0-cp313-cp313-win_amd64.whl", hash = "sha256:0a0b60701f2300c81b2ac88a5fb893ccfa408e1c4a555a77f908a2596eb875a5", size = 234428 }, + { url = "https://files.pythonhosted.org/packages/ed/e8/a47c64ed53149c75fb581e14a237b7b7cd18217e969c30d474d335105622/rpds_py-0.26.0-cp313-cp313-win_arm64.whl", hash = "sha256:257d011919f133a4746958257f2c75238e3ff54255acd5e3e11f3ff41fd14256", size = 222571 }, + { url = "https://files.pythonhosted.org/packages/89/bf/3d970ba2e2bcd17d2912cb42874107390f72873e38e79267224110de5e61/rpds_py-0.26.0-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:529c8156d7506fba5740e05da8795688f87119cce330c244519cf706a4a3d618", size = 360475 }, + { url = "https://files.pythonhosted.org/packages/82/9f/283e7e2979fc4ec2d8ecee506d5a3675fce5ed9b4b7cb387ea5d37c2f18d/rpds_py-0.26.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:f53ec51f9d24e9638a40cabb95078ade8c99251945dad8d57bf4aabe86ecee35", size = 346692 }, + { url = "https://files.pythonhosted.org/packages/e3/03/7e50423c04d78daf391da3cc4330bdb97042fc192a58b186f2d5deb7befd/rpds_py-0.26.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ab504c4d654e4a29558eaa5bb8cea5fdc1703ea60a8099ffd9c758472cf913f", size = 379415 }, + { url = "https://files.pythonhosted.org/packages/57/00/d11ee60d4d3b16808432417951c63df803afb0e0fc672b5e8d07e9edaaae/rpds_py-0.26.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fd0641abca296bc1a00183fe44f7fced8807ed49d501f188faa642d0e4975b83", size = 391783 }, + { url = "https://files.pythonhosted.org/packages/08/b3/1069c394d9c0d6d23c5b522e1f6546b65793a22950f6e0210adcc6f97c3e/rpds_py-0.26.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:69b312fecc1d017b5327afa81d4da1480f51c68810963a7336d92203dbb3d4f1", size = 512844 }, + { url = "https://files.pythonhosted.org/packages/08/3b/c4fbf0926800ed70b2c245ceca99c49f066456755f5d6eb8863c2c51e6d0/rpds_py-0.26.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c741107203954f6fc34d3066d213d0a0c40f7bb5aafd698fb39888af277c70d8", size = 402105 }, + { url = "https://files.pythonhosted.org/packages/1c/b0/db69b52ca07413e568dae9dc674627a22297abb144c4d6022c6d78f1e5cc/rpds_py-0.26.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc3e55a7db08dc9a6ed5fb7103019d2c1a38a349ac41901f9f66d7f95750942f", size = 383440 }, + { url = "https://files.pythonhosted.org/packages/4c/e1/c65255ad5b63903e56b3bb3ff9dcc3f4f5c3badde5d08c741ee03903e951/rpds_py-0.26.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9e851920caab2dbcae311fd28f4313c6953993893eb5c1bb367ec69d9a39e7ed", size = 412759 }, + { url = "https://files.pythonhosted.org/packages/e4/22/bb731077872377a93c6e93b8a9487d0406c70208985831034ccdeed39c8e/rpds_py-0.26.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:dfbf280da5f876d0b00c81f26bedce274e72a678c28845453885a9b3c22ae632", size = 556032 }, + { url = "https://files.pythonhosted.org/packages/e0/8b/393322ce7bac5c4530fb96fc79cc9ea2f83e968ff5f6e873f905c493e1c4/rpds_py-0.26.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:1cc81d14ddfa53d7f3906694d35d54d9d3f850ef8e4e99ee68bc0d1e5fed9a9c", size = 585416 }, + { url = "https://files.pythonhosted.org/packages/49/ae/769dc372211835bf759319a7aae70525c6eb523e3371842c65b7ef41c9c6/rpds_py-0.26.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:dca83c498b4650a91efcf7b88d669b170256bf8017a5db6f3e06c2bf031f57e0", size = 554049 }, + { url = "https://files.pythonhosted.org/packages/6b/f9/4c43f9cc203d6ba44ce3146246cdc38619d92c7bd7bad4946a3491bd5b70/rpds_py-0.26.0-cp313-cp313t-win32.whl", hash = "sha256:4d11382bcaf12f80b51d790dee295c56a159633a8e81e6323b16e55d81ae37e9", size = 218428 }, + { url = "https://files.pythonhosted.org/packages/7e/8b/9286b7e822036a4a977f2f1e851c7345c20528dbd56b687bb67ed68a8ede/rpds_py-0.26.0-cp313-cp313t-win_amd64.whl", hash = "sha256:ff110acded3c22c033e637dd8896e411c7d3a11289b2edf041f86663dbc791e9", size = 231524 }, + { url = "https://files.pythonhosted.org/packages/55/07/029b7c45db910c74e182de626dfdae0ad489a949d84a468465cd0ca36355/rpds_py-0.26.0-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:da619979df60a940cd434084355c514c25cf8eb4cf9a508510682f6c851a4f7a", size = 364292 }, + { url = "https://files.pythonhosted.org/packages/13/d1/9b3d3f986216b4d1f584878dca15ce4797aaf5d372d738974ba737bf68d6/rpds_py-0.26.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:ea89a2458a1a75f87caabefe789c87539ea4e43b40f18cff526052e35bbb4fdf", size = 350334 }, + { url = "https://files.pythonhosted.org/packages/18/98/16d5e7bc9ec715fa9668731d0cf97f6b032724e61696e2db3d47aeb89214/rpds_py-0.26.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:feac1045b3327a45944e7dcbeb57530339f6b17baff154df51ef8b0da34c8c12", size = 384875 }, + { url = "https://files.pythonhosted.org/packages/f9/13/aa5e2b1ec5ab0e86a5c464d53514c0467bec6ba2507027d35fc81818358e/rpds_py-0.26.0-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b818a592bd69bfe437ee8368603d4a2d928c34cffcdf77c2e761a759ffd17d20", size = 399993 }, + { url = "https://files.pythonhosted.org/packages/17/03/8021810b0e97923abdbab6474c8b77c69bcb4b2c58330777df9ff69dc559/rpds_py-0.26.0-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1a8b0dd8648709b62d9372fc00a57466f5fdeefed666afe3fea5a6c9539a0331", size = 516683 }, + { url = "https://files.pythonhosted.org/packages/dc/b1/da8e61c87c2f3d836954239fdbbfb477bb7b54d74974d8f6fcb34342d166/rpds_py-0.26.0-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6d3498ad0df07d81112aa6ec6c95a7e7b1ae00929fb73e7ebee0f3faaeabad2f", size = 408825 }, + { url = "https://files.pythonhosted.org/packages/38/bc/1fc173edaaa0e52c94b02a655db20697cb5fa954ad5a8e15a2c784c5cbdd/rpds_py-0.26.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:24a4146ccb15be237fdef10f331c568e1b0e505f8c8c9ed5d67759dac58ac246", size = 387292 }, + { url = "https://files.pythonhosted.org/packages/7c/eb/3a9bb4bd90867d21916f253caf4f0d0be7098671b6715ad1cead9fe7bab9/rpds_py-0.26.0-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a9a63785467b2d73635957d32a4f6e73d5e4df497a16a6392fa066b753e87387", size = 420435 }, + { url = "https://files.pythonhosted.org/packages/cd/16/e066dcdb56f5632713445271a3f8d3d0b426d51ae9c0cca387799df58b02/rpds_py-0.26.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:de4ed93a8c91debfd5a047be327b7cc8b0cc6afe32a716bbbc4aedca9e2a83af", size = 562410 }, + { url = "https://files.pythonhosted.org/packages/60/22/ddbdec7eb82a0dc2e455be44c97c71c232983e21349836ce9f272e8a3c29/rpds_py-0.26.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:caf51943715b12af827696ec395bfa68f090a4c1a1d2509eb4e2cb69abbbdb33", size = 590724 }, + { url = "https://files.pythonhosted.org/packages/2c/b4/95744085e65b7187d83f2fcb0bef70716a1ea0a9e5d8f7f39a86e5d83424/rpds_py-0.26.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:4a59e5bc386de021f56337f757301b337d7ab58baa40174fb150accd480bc953", size = 558285 }, + { url = "https://files.pythonhosted.org/packages/37/37/6309a75e464d1da2559446f9c811aa4d16343cebe3dbb73701e63f760caa/rpds_py-0.26.0-cp314-cp314-win32.whl", hash = "sha256:92c8db839367ef16a662478f0a2fe13e15f2227da3c1430a782ad0f6ee009ec9", size = 223459 }, + { url = "https://files.pythonhosted.org/packages/d9/6f/8e9c11214c46098b1d1391b7e02b70bb689ab963db3b19540cba17315291/rpds_py-0.26.0-cp314-cp314-win_amd64.whl", hash = "sha256:b0afb8cdd034150d4d9f53926226ed27ad15b7f465e93d7468caaf5eafae0d37", size = 236083 }, + { url = "https://files.pythonhosted.org/packages/47/af/9c4638994dd623d51c39892edd9d08e8be8220a4b7e874fa02c2d6e91955/rpds_py-0.26.0-cp314-cp314-win_arm64.whl", hash = "sha256:ca3f059f4ba485d90c8dc75cb5ca897e15325e4e609812ce57f896607c1c0867", size = 223291 }, + { url = "https://files.pythonhosted.org/packages/4d/db/669a241144460474aab03e254326b32c42def83eb23458a10d163cb9b5ce/rpds_py-0.26.0-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:5afea17ab3a126006dc2f293b14ffc7ef3c85336cf451564a0515ed7648033da", size = 361445 }, + { url = "https://files.pythonhosted.org/packages/3b/2d/133f61cc5807c6c2fd086a46df0eb8f63a23f5df8306ff9f6d0fd168fecc/rpds_py-0.26.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:69f0c0a3df7fd3a7eec50a00396104bb9a843ea6d45fcc31c2d5243446ffd7a7", size = 347206 }, + { url = "https://files.pythonhosted.org/packages/05/bf/0e8fb4c05f70273469eecf82f6ccf37248558526a45321644826555db31b/rpds_py-0.26.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:801a71f70f9813e82d2513c9a96532551fce1e278ec0c64610992c49c04c2dad", size = 380330 }, + { url = "https://files.pythonhosted.org/packages/d4/a8/060d24185d8b24d3923322f8d0ede16df4ade226a74e747b8c7c978e3dd3/rpds_py-0.26.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:df52098cde6d5e02fa75c1f6244f07971773adb4a26625edd5c18fee906fa84d", size = 392254 }, + { url = "https://files.pythonhosted.org/packages/b9/7b/7c2e8a9ee3e6bc0bae26bf29f5219955ca2fbb761dca996a83f5d2f773fe/rpds_py-0.26.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9bc596b30f86dc6f0929499c9e574601679d0341a0108c25b9b358a042f51bca", size = 516094 }, + { url = "https://files.pythonhosted.org/packages/75/d6/f61cafbed8ba1499b9af9f1777a2a199cd888f74a96133d8833ce5eaa9c5/rpds_py-0.26.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9dfbe56b299cf5875b68eb6f0ebaadc9cac520a1989cac0db0765abfb3709c19", size = 402889 }, + { url = "https://files.pythonhosted.org/packages/92/19/c8ac0a8a8df2dd30cdec27f69298a5c13e9029500d6d76718130f5e5be10/rpds_py-0.26.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ac64f4b2bdb4ea622175c9ab7cf09444e412e22c0e02e906978b3b488af5fde8", size = 384301 }, + { url = "https://files.pythonhosted.org/packages/41/e1/6b1859898bc292a9ce5776016c7312b672da00e25cec74d7beced1027286/rpds_py-0.26.0-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:181ef9b6bbf9845a264f9aa45c31836e9f3c1f13be565d0d010e964c661d1e2b", size = 412891 }, + { url = "https://files.pythonhosted.org/packages/ef/b9/ceb39af29913c07966a61367b3c08b4f71fad841e32c6b59a129d5974698/rpds_py-0.26.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:49028aa684c144ea502a8e847d23aed5e4c2ef7cadfa7d5eaafcb40864844b7a", size = 557044 }, + { url = "https://files.pythonhosted.org/packages/2f/27/35637b98380731a521f8ec4f3fd94e477964f04f6b2f8f7af8a2d889a4af/rpds_py-0.26.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:e5d524d68a474a9688336045bbf76cb0def88549c1b2ad9dbfec1fb7cfbe9170", size = 585774 }, + { url = "https://files.pythonhosted.org/packages/52/d9/3f0f105420fecd18551b678c9a6ce60bd23986098b252a56d35781b3e7e9/rpds_py-0.26.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:c1851f429b822831bd2edcbe0cfd12ee9ea77868f8d3daf267b189371671c80e", size = 554886 }, + { url = "https://files.pythonhosted.org/packages/6b/c5/347c056a90dc8dd9bc240a08c527315008e1b5042e7a4cf4ac027be9d38a/rpds_py-0.26.0-cp314-cp314t-win32.whl", hash = "sha256:7bdb17009696214c3b66bb3590c6d62e14ac5935e53e929bcdbc5a495987a84f", size = 219027 }, + { url = "https://files.pythonhosted.org/packages/75/04/5302cea1aa26d886d34cadbf2dc77d90d7737e576c0065f357b96dc7a1a6/rpds_py-0.26.0-cp314-cp314t-win_amd64.whl", hash = "sha256:f14440b9573a6f76b4ee4770c13f0b5921f71dde3b6fcb8dabbefd13b7fe05d7", size = 232821 }, +] + +[[package]] +name = "rsa" +version = "4.9.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pyasn1" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/da/8a/22b7beea3ee0d44b1916c0c1cb0ee3af23b700b6da9f04991899d0c555d4/rsa-4.9.1.tar.gz", hash = "sha256:e7bdbfdb5497da4c07dfd35530e1a902659db6ff241e39d9953cad06ebd0ae75", size = 29034 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/64/8d/0133e4eb4beed9e425d9a98ed6e081a55d195481b7632472be1af08d2f6b/rsa-4.9.1-py3-none-any.whl", hash = "sha256:68635866661c6836b8d39430f97a996acbd61bfa49406748ea243539fe239762", size = 34696 }, +] + +[[package]] +name = "ruff" +version = "0.12.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/9b/ce/8d7dbedede481245b489b769d27e2934730791a9a82765cb94566c6e6abd/ruff-0.12.4.tar.gz", hash = "sha256:13efa16df6c6eeb7d0f091abae50f58e9522f3843edb40d56ad52a5a4a4b6873", size = 5131435 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ae/9f/517bc5f61bad205b7f36684ffa5415c013862dee02f55f38a217bdbe7aa4/ruff-0.12.4-py3-none-linux_armv6l.whl", hash = "sha256:cb0d261dac457ab939aeb247e804125a5d521b21adf27e721895b0d3f83a0d0a", size = 10188824 }, + { url = "https://files.pythonhosted.org/packages/28/83/691baae5a11fbbde91df01c565c650fd17b0eabed259e8b7563de17c6529/ruff-0.12.4-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:55c0f4ca9769408d9b9bac530c30d3e66490bd2beb2d3dae3e4128a1f05c7442", size = 10884521 }, + { url = "https://files.pythonhosted.org/packages/d6/8d/756d780ff4076e6dd035d058fa220345f8c458391f7edfb1c10731eedc75/ruff-0.12.4-py3-none-macosx_11_0_arm64.whl", hash = "sha256:a8224cc3722c9ad9044da7f89c4c1ec452aef2cfe3904365025dd2f51daeae0e", size = 10277653 }, + { url = "https://files.pythonhosted.org/packages/8d/97/8eeee0f48ece153206dce730fc9e0e0ca54fd7f261bb3d99c0a4343a1892/ruff-0.12.4-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e9949d01d64fa3672449a51ddb5d7548b33e130240ad418884ee6efa7a229586", size = 10485993 }, + { url = "https://files.pythonhosted.org/packages/49/b8/22a43d23a1f68df9b88f952616c8508ea6ce4ed4f15353b8168c48b2d7e7/ruff-0.12.4-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:be0593c69df9ad1465e8a2d10e3defd111fdb62dcd5be23ae2c06da77e8fcffb", size = 10022824 }, + { url = "https://files.pythonhosted.org/packages/cd/70/37c234c220366993e8cffcbd6cadbf332bfc848cbd6f45b02bade17e0149/ruff-0.12.4-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a7dea966bcb55d4ecc4cc3270bccb6f87a337326c9dcd3c07d5b97000dbff41c", size = 11524414 }, + { url = "https://files.pythonhosted.org/packages/14/77/c30f9964f481b5e0e29dd6a1fae1f769ac3fd468eb76fdd5661936edd262/ruff-0.12.4-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:afcfa3ab5ab5dd0e1c39bf286d829e042a15e966b3726eea79528e2e24d8371a", size = 12419216 }, + { url = "https://files.pythonhosted.org/packages/6e/79/af7fe0a4202dce4ef62c5e33fecbed07f0178f5b4dd9c0d2fcff5ab4a47c/ruff-0.12.4-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c057ce464b1413c926cdb203a0f858cd52f3e73dcb3270a3318d1630f6395bb3", size = 11976756 }, + { url = "https://files.pythonhosted.org/packages/09/d1/33fb1fc00e20a939c305dbe2f80df7c28ba9193f7a85470b982815a2dc6a/ruff-0.12.4-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e64b90d1122dc2713330350626b10d60818930819623abbb56535c6466cce045", size = 11020019 }, + { url = "https://files.pythonhosted.org/packages/64/f4/e3cd7f7bda646526f09693e2e02bd83d85fff8a8222c52cf9681c0d30843/ruff-0.12.4-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2abc48f3d9667fdc74022380b5c745873499ff827393a636f7a59da1515e7c57", size = 11277890 }, + { url = "https://files.pythonhosted.org/packages/5e/d0/69a85fb8b94501ff1a4f95b7591505e8983f38823da6941eb5b6badb1e3a/ruff-0.12.4-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:2b2449dc0c138d877d629bea151bee8c0ae3b8e9c43f5fcaafcd0c0d0726b184", size = 10348539 }, + { url = "https://files.pythonhosted.org/packages/16/a0/91372d1cb1678f7d42d4893b88c252b01ff1dffcad09ae0c51aa2542275f/ruff-0.12.4-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:56e45bb11f625db55f9b70477062e6a1a04d53628eda7784dce6e0f55fd549eb", size = 10009579 }, + { url = "https://files.pythonhosted.org/packages/23/1b/c4a833e3114d2cc0f677e58f1df6c3b20f62328dbfa710b87a1636a5e8eb/ruff-0.12.4-py3-none-musllinux_1_2_i686.whl", hash = "sha256:478fccdb82ca148a98a9ff43658944f7ab5ec41c3c49d77cd99d44da019371a1", size = 10942982 }, + { url = "https://files.pythonhosted.org/packages/ff/ce/ce85e445cf0a5dd8842f2f0c6f0018eedb164a92bdf3eda51984ffd4d989/ruff-0.12.4-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:0fc426bec2e4e5f4c4f182b9d2ce6a75c85ba9bcdbe5c6f2a74fcb8df437df4b", size = 11343331 }, + { url = "https://files.pythonhosted.org/packages/35/cf/441b7fc58368455233cfb5b77206c849b6dfb48b23de532adcc2e50ccc06/ruff-0.12.4-py3-none-win32.whl", hash = "sha256:4de27977827893cdfb1211d42d84bc180fceb7b72471104671c59be37041cf93", size = 10267904 }, + { url = "https://files.pythonhosted.org/packages/ce/7e/20af4a0df5e1299e7368d5ea4350412226afb03d95507faae94c80f00afd/ruff-0.12.4-py3-none-win_amd64.whl", hash = "sha256:fe0b9e9eb23736b453143d72d2ceca5db323963330d5b7859d60d101147d461a", size = 11209038 }, + { url = "https://files.pythonhosted.org/packages/11/02/8857d0dfb8f44ef299a5dfd898f673edefb71e3b533b3b9d2db4c832dd13/ruff-0.12.4-py3-none-win_arm64.whl", hash = "sha256:0618ec4442a83ab545e5b71202a5c0ed7791e8471435b94e655b570a5031a98e", size = 10469336 }, +] + +[[package]] +name = "scale-gp" +version = "0.1.0a59" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "distro" }, + { name = "httpx" }, + { name = "pydantic" }, + { name = "sniffio" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c3/3e/c944564757c0a737937c3c87ef61ccfd5138bbe5201fa93edc704124a297/scale_gp-0.1.0a59.tar.gz", hash = "sha256:b7c1e6edb431824f44b8ed2e49969345465e45a1978c1ab6462a7db6d8718f1a", size = 408472 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/13/7c/de71f2853d062535a762157eb9bc0c180fee160447039f074cbefe495728/scale_gp-0.1.0a59-py3-none-any.whl", hash = "sha256:841846c83e4760e14b76ac2a9b44d40a3e9800ad8505f9d24fef11d981466e35", size = 545196 }, +] + +[[package]] +name = "scale-gp-beta" +version = "0.1.0a20" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "distro" }, + { name = "httpx" }, + { name = "pydantic" }, + { name = "sniffio" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/86/2b/a6a373ec8d33fad8b553182aa1ceade94434752c935a4ce16ca84d188c0f/scale_gp_beta-0.1.0a20.tar.gz", hash = "sha256:a2be5c1afcb9171d3c2d6f15b45f4512105c79ab12be8e7ef5a22167ac77fb88", size = 157799 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/af/12/55f47289a0ae1065e4115bc8018b2f01df0b6560b07bacfc0dcf6c3bdcbe/scale_gp_beta-0.1.0a20-py3-none-any.whl", hash = "sha256:482385ee6c3b912aecf70795948ac45b215a4d19feba60f67d6e10c4312440c6", size = 157906 }, +] + +[[package]] +name = "shellingham" +version = "1.5.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/58/15/8b3609fd3830ef7b27b655beb4b4e9c62313a4e8da8c676e142cc210d58e/shellingham-1.5.4.tar.gz", hash = "sha256:8dbca0739d487e5bd35ab3ca4b36e11c4078f3a234bfce294b0a0291363404de", size = 10310 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e0/f9/0595336914c5619e5f28a1fb793285925a8cd4b432c9da0a987836c7f822/shellingham-1.5.4-py2.py3-none-any.whl", hash = "sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686", size = 9755 }, +] + +[[package]] +name = "six" +version = "1.17.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81", size = 34031 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050 }, +] + +[[package]] +name = "sniffio" +version = "1.3.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a2/87/a6771e1546d97e7e041b6ae58d80074f81b7d5121207425c964ddf5cfdbd/sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc", size = 20372 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", size = 10235 }, +] + +[[package]] +name = "sse-starlette" +version = "2.4.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/07/3e/eae74d8d33e3262bae0a7e023bb43d8bdd27980aa3557333f4632611151f/sse_starlette-2.4.1.tar.gz", hash = "sha256:7c8a800a1ca343e9165fc06bbda45c78e4c6166320707ae30b416c42da070926", size = 18635 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e4/f1/6c7eaa8187ba789a6dd6d74430307478d2a91c23a5452ab339b6fbe15a08/sse_starlette-2.4.1-py3-none-any.whl", hash = "sha256:08b77ea898ab1a13a428b2b6f73cfe6d0e607a7b4e15b9bb23e4a37b087fd39a", size = 10824 }, +] + +[[package]] +name = "stack-data" +version = "0.6.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "asttokens" }, + { name = "executing" }, + { name = "pure-eval" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/28/e3/55dcc2cfbc3ca9c29519eb6884dd1415ecb53b0e934862d3559ddcb7e20b/stack_data-0.6.3.tar.gz", hash = "sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9", size = 44707 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl", hash = "sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695", size = 24521 }, +] + +[[package]] +name = "starlette" +version = "0.46.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ce/20/08dfcd9c983f6a6f4a1000d934b9e6d626cff8d2eeb77a89a68eef20a2b7/starlette-0.46.2.tar.gz", hash = "sha256:7f7361f34eed179294600af672f565727419830b54b7b084efe44bb82d2fccd5", size = 2580846 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8b/0c/9d30a4ebeb6db2b25a841afbb80f6ef9a854fc3b41be131d249a977b4959/starlette-0.46.2-py3-none-any.whl", hash = "sha256:595633ce89f8ffa71a015caed34a5b2dc1c0cdb3f0f1fbd1e69339cf2abeec35", size = 72037 }, +] + +[[package]] +name = "temporalio" +version = "1.14.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "nexus-rpc" }, + { name = "protobuf" }, + { name = "types-protobuf" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/40/23/ef5ed581d26112e21c4a6d4ddc2c4eaa5700c0d70b53b07566553e9b7d90/temporalio-1.14.1.tar.gz", hash = "sha256:b240cf56f64add65beb75bd18aa854ac35bdc2505097af5af1e235d611190a9d", size = 1607639 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bd/66/6dc4f5a647a9901cf19e012c442173574babdc879ccaf4cb166662a23ef0/temporalio-1.14.1-cp39-abi3-macosx_10_12_x86_64.whl", hash = "sha256:ebde00b59af72e512e5837445e4b5b8aa445431d57a71bbeb57a5ba8a93ac8be", size = 12508009 }, + { url = "https://files.pythonhosted.org/packages/bb/dc/654ebcc92c658180576127ac6dc047fab43b7730f39df4439645e91577fb/temporalio-1.14.1-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:3c21cff8fdc60fbcc9acd91e6c119b0b5f9de7671fe806459f00d68bd4ecae78", size = 12091653 }, + { url = "https://files.pythonhosted.org/packages/8a/58/7fc3a7bde275c059e42d0279c54e8e66642b67be8eda21b31347f4277186/temporalio-1.14.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9f984b503ae741213fe71128d6193076f3267691561ff3c55dbe798f92e6ee1b", size = 12451995 }, + { url = "https://files.pythonhosted.org/packages/98/12/14f6a7a1f4aebb7d846469f5c1cd165cce55b793ded6ce5fc315bd83e28f/temporalio-1.14.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:830cb1a820624a5e64f6c874b5aca6ad9eb841295407dd2011074159a2d28bdb", size = 12688904 }, + { url = "https://files.pythonhosted.org/packages/b4/ed/c09f1ca41d5ed9f9a777a0ddd5bc225f8300bab8b42bc6751195566706fb/temporalio-1.14.1-cp39-abi3-win_amd64.whl", hash = "sha256:ad4e6a16b42bb34aebec62fb8bbe8f64643d8268ed6d7db337dfe98a76799bb0", size = 12758696 }, +] + +[[package]] +name = "tiktoken" +version = "0.9.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "regex" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ea/cf/756fedf6981e82897f2d570dd25fa597eb3f4459068ae0572d7e888cfd6f/tiktoken-0.9.0.tar.gz", hash = "sha256:d02a5ca6a938e0490e1ff957bc48c8b078c88cb83977be1625b1fd8aac792c5d", size = 35991 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cf/e5/21ff33ecfa2101c1bb0f9b6df750553bd873b7fb532ce2cb276ff40b197f/tiktoken-0.9.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:e88f121c1c22b726649ce67c089b90ddda8b9662545a8aeb03cfef15967ddd03", size = 1065073 }, + { url = "https://files.pythonhosted.org/packages/8e/03/a95e7b4863ee9ceec1c55983e4cc9558bcfd8f4f80e19c4f8a99642f697d/tiktoken-0.9.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a6600660f2f72369acb13a57fb3e212434ed38b045fd8cc6cdd74947b4b5d210", size = 1008075 }, + { url = "https://files.pythonhosted.org/packages/40/10/1305bb02a561595088235a513ec73e50b32e74364fef4de519da69bc8010/tiktoken-0.9.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:95e811743b5dfa74f4b227927ed86cbc57cad4df859cb3b643be797914e41794", size = 1140754 }, + { url = "https://files.pythonhosted.org/packages/1b/40/da42522018ca496432ffd02793c3a72a739ac04c3794a4914570c9bb2925/tiktoken-0.9.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:99376e1370d59bcf6935c933cb9ba64adc29033b7e73f5f7569f3aad86552b22", size = 1196678 }, + { url = "https://files.pythonhosted.org/packages/5c/41/1e59dddaae270ba20187ceb8aa52c75b24ffc09f547233991d5fd822838b/tiktoken-0.9.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:badb947c32739fb6ddde173e14885fb3de4d32ab9d8c591cbd013c22b4c31dd2", size = 1259283 }, + { url = "https://files.pythonhosted.org/packages/5b/64/b16003419a1d7728d0d8c0d56a4c24325e7b10a21a9dd1fc0f7115c02f0a/tiktoken-0.9.0-cp312-cp312-win_amd64.whl", hash = "sha256:5a62d7a25225bafed786a524c1b9f0910a1128f4232615bf3f8257a73aaa3b16", size = 894897 }, + { url = "https://files.pythonhosted.org/packages/7a/11/09d936d37f49f4f494ffe660af44acd2d99eb2429d60a57c71318af214e0/tiktoken-0.9.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:2b0e8e05a26eda1249e824156d537015480af7ae222ccb798e5234ae0285dbdb", size = 1064919 }, + { url = "https://files.pythonhosted.org/packages/80/0e/f38ba35713edb8d4197ae602e80837d574244ced7fb1b6070b31c29816e0/tiktoken-0.9.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:27d457f096f87685195eea0165a1807fae87b97b2161fe8c9b1df5bd74ca6f63", size = 1007877 }, + { url = "https://files.pythonhosted.org/packages/fe/82/9197f77421e2a01373e27a79dd36efdd99e6b4115746ecc553318ecafbf0/tiktoken-0.9.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2cf8ded49cddf825390e36dd1ad35cd49589e8161fdcb52aa25f0583e90a3e01", size = 1140095 }, + { url = "https://files.pythonhosted.org/packages/f2/bb/4513da71cac187383541facd0291c4572b03ec23c561de5811781bbd988f/tiktoken-0.9.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cc156cb314119a8bb9748257a2eaebd5cc0753b6cb491d26694ed42fc7cb3139", size = 1195649 }, + { url = "https://files.pythonhosted.org/packages/fa/5c/74e4c137530dd8504e97e3a41729b1103a4ac29036cbfd3250b11fd29451/tiktoken-0.9.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:cd69372e8c9dd761f0ab873112aba55a0e3e506332dd9f7522ca466e817b1b7a", size = 1258465 }, + { url = "https://files.pythonhosted.org/packages/de/a8/8f499c179ec900783ffe133e9aab10044481679bb9aad78436d239eee716/tiktoken-0.9.0-cp313-cp313-win_amd64.whl", hash = "sha256:5ea0edb6f83dc56d794723286215918c1cde03712cbbafa0348b33448faf5b95", size = 894669 }, +] + +[[package]] +name = "tokenizers" +version = "0.21.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "huggingface-hub" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ab/2d/b0fce2b8201635f60e8c95990080f58461cc9ca3d5026de2e900f38a7f21/tokenizers-0.21.2.tar.gz", hash = "sha256:fdc7cffde3e2113ba0e6cc7318c40e3438a4d74bbc62bf04bcc63bdfb082ac77", size = 351545 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1d/cc/2936e2d45ceb130a21d929743f1e9897514691bec123203e10837972296f/tokenizers-0.21.2-cp39-abi3-macosx_10_12_x86_64.whl", hash = "sha256:342b5dfb75009f2255ab8dec0041287260fed5ce00c323eb6bab639066fef8ec", size = 2875206 }, + { url = "https://files.pythonhosted.org/packages/6c/e6/33f41f2cc7861faeba8988e7a77601407bf1d9d28fc79c5903f8f77df587/tokenizers-0.21.2-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:126df3205d6f3a93fea80c7a8a266a78c1bd8dd2fe043386bafdd7736a23e45f", size = 2732655 }, + { url = "https://files.pythonhosted.org/packages/33/2b/1791eb329c07122a75b01035b1a3aa22ad139f3ce0ece1b059b506d9d9de/tokenizers-0.21.2-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4a32cd81be21168bd0d6a0f0962d60177c447a1aa1b1e48fa6ec9fc728ee0b12", size = 3019202 }, + { url = "https://files.pythonhosted.org/packages/05/15/fd2d8104faa9f86ac68748e6f7ece0b5eb7983c7efc3a2c197cb98c99030/tokenizers-0.21.2-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8bd8999538c405133c2ab999b83b17c08b7fc1b48c1ada2469964605a709ef91", size = 2934539 }, + { url = "https://files.pythonhosted.org/packages/a5/2e/53e8fd053e1f3ffbe579ca5f9546f35ac67cf0039ed357ad7ec57f5f5af0/tokenizers-0.21.2-cp39-abi3-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5e9944e61239b083a41cf8fc42802f855e1dca0f499196df37a8ce219abac6eb", size = 3248665 }, + { url = "https://files.pythonhosted.org/packages/00/15/79713359f4037aa8f4d1f06ffca35312ac83629da062670e8830917e2153/tokenizers-0.21.2-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:514cd43045c5d546f01142ff9c79a96ea69e4b5cda09e3027708cb2e6d5762ab", size = 3451305 }, + { url = "https://files.pythonhosted.org/packages/38/5f/959f3a8756fc9396aeb704292777b84f02a5c6f25c3fc3ba7530db5feb2c/tokenizers-0.21.2-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b1b9405822527ec1e0f7d8d2fdb287a5730c3a6518189c968254a8441b21faae", size = 3214757 }, + { url = "https://files.pythonhosted.org/packages/c5/74/f41a432a0733f61f3d21b288de6dfa78f7acff309c6f0f323b2833e9189f/tokenizers-0.21.2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fed9a4d51c395103ad24f8e7eb976811c57fbec2af9f133df471afcd922e5020", size = 3121887 }, + { url = "https://files.pythonhosted.org/packages/3c/6a/bc220a11a17e5d07b0dfb3b5c628621d4dcc084bccd27cfaead659963016/tokenizers-0.21.2-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:2c41862df3d873665ec78b6be36fcc30a26e3d4902e9dd8608ed61d49a48bc19", size = 9091965 }, + { url = "https://files.pythonhosted.org/packages/6c/bd/ac386d79c4ef20dc6f39c4706640c24823dca7ebb6f703bfe6b5f0292d88/tokenizers-0.21.2-cp39-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:ed21dc7e624e4220e21758b2e62893be7101453525e3d23264081c9ef9a6d00d", size = 9053372 }, + { url = "https://files.pythonhosted.org/packages/63/7b/5440bf203b2a5358f074408f7f9c42884849cd9972879e10ee6b7a8c3b3d/tokenizers-0.21.2-cp39-abi3-musllinux_1_2_i686.whl", hash = "sha256:0e73770507e65a0e0e2a1affd6b03c36e3bc4377bd10c9ccf51a82c77c0fe365", size = 9298632 }, + { url = "https://files.pythonhosted.org/packages/a4/d2/faa1acac3f96a7427866e94ed4289949b2524f0c1878512516567d80563c/tokenizers-0.21.2-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:106746e8aa9014a12109e58d540ad5465b4c183768ea96c03cbc24c44d329958", size = 9470074 }, + { url = "https://files.pythonhosted.org/packages/d8/a5/896e1ef0707212745ae9f37e84c7d50269411aef2e9ccd0de63623feecdf/tokenizers-0.21.2-cp39-abi3-win32.whl", hash = "sha256:cabda5a6d15d620b6dfe711e1af52205266d05b379ea85a8a301b3593c60e962", size = 2330115 }, + { url = "https://files.pythonhosted.org/packages/13/c3/cc2755ee10be859c4338c962a35b9a663788c0c0b50c0bdd8078fb6870cf/tokenizers-0.21.2-cp39-abi3-win_amd64.whl", hash = "sha256:58747bb898acdb1007f37a7bbe614346e98dc28708ffb66a3fd50ce169ac6c98", size = 2509918 }, +] + +[[package]] +name = "tornado" +version = "6.5.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/51/89/c72771c81d25d53fe33e3dca61c233b665b2780f21820ba6fd2c6793c12b/tornado-6.5.1.tar.gz", hash = "sha256:84ceece391e8eb9b2b95578db65e920d2a61070260594819589609ba9bc6308c", size = 509934 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/77/89/f4532dee6843c9e0ebc4e28d4be04c67f54f60813e4bf73d595fe7567452/tornado-6.5.1-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:d50065ba7fd11d3bd41bcad0825227cc9a95154bad83239357094c36708001f7", size = 441948 }, + { url = "https://files.pythonhosted.org/packages/15/9a/557406b62cffa395d18772e0cdcf03bed2fff03b374677348eef9f6a3792/tornado-6.5.1-cp39-abi3-macosx_10_9_x86_64.whl", hash = "sha256:9e9ca370f717997cb85606d074b0e5b247282cf5e2e1611568b8821afe0342d6", size = 440112 }, + { url = "https://files.pythonhosted.org/packages/55/82/7721b7319013a3cf881f4dffa4f60ceff07b31b394e459984e7a36dc99ec/tornado-6.5.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b77e9dfa7ed69754a54c89d82ef746398be82f749df69c4d3abe75c4d1ff4888", size = 443672 }, + { url = "https://files.pythonhosted.org/packages/7d/42/d11c4376e7d101171b94e03cef0cbce43e823ed6567ceda571f54cf6e3ce/tornado-6.5.1-cp39-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:253b76040ee3bab8bcf7ba9feb136436a3787208717a1fb9f2c16b744fba7331", size = 443019 }, + { url = "https://files.pythonhosted.org/packages/7d/f7/0c48ba992d875521ac761e6e04b0a1750f8150ae42ea26df1852d6a98942/tornado-6.5.1-cp39-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:308473f4cc5a76227157cdf904de33ac268af770b2c5f05ca6c1161d82fdd95e", size = 443252 }, + { url = "https://files.pythonhosted.org/packages/89/46/d8d7413d11987e316df4ad42e16023cd62666a3c0dfa1518ffa30b8df06c/tornado-6.5.1-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:caec6314ce8a81cf69bd89909f4b633b9f523834dc1a352021775d45e51d9401", size = 443930 }, + { url = "https://files.pythonhosted.org/packages/78/b2/f8049221c96a06df89bed68260e8ca94beca5ea532ffc63b1175ad31f9cc/tornado-6.5.1-cp39-abi3-musllinux_1_2_i686.whl", hash = "sha256:13ce6e3396c24e2808774741331638ee6c2f50b114b97a55c5b442df65fd9692", size = 443351 }, + { url = "https://files.pythonhosted.org/packages/76/ff/6a0079e65b326cc222a54720a748e04a4db246870c4da54ece4577bfa702/tornado-6.5.1-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:5cae6145f4cdf5ab24744526cc0f55a17d76f02c98f4cff9daa08ae9a217448a", size = 443328 }, + { url = "https://files.pythonhosted.org/packages/49/18/e3f902a1d21f14035b5bc6246a8c0f51e0eef562ace3a2cea403c1fb7021/tornado-6.5.1-cp39-abi3-win32.whl", hash = "sha256:e0a36e1bc684dca10b1aa75a31df8bdfed656831489bc1e6a6ebed05dc1ec365", size = 444396 }, + { url = "https://files.pythonhosted.org/packages/7b/09/6526e32bf1049ee7de3bebba81572673b19a2a8541f795d887e92af1a8bc/tornado-6.5.1-cp39-abi3-win_amd64.whl", hash = "sha256:908e7d64567cecd4c2b458075589a775063453aeb1d2a1853eedb806922f568b", size = 444840 }, + { url = "https://files.pythonhosted.org/packages/55/a7/535c44c7bea4578e48281d83c615219f3ab19e6abc67625ef637c73987be/tornado-6.5.1-cp39-abi3-win_arm64.whl", hash = "sha256:02420a0eb7bf617257b9935e2b754d1b63897525d8a289c9d65690d580b4dcf7", size = 443596 }, +] + +[[package]] +name = "tqdm" +version = "4.67.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a8/4b/29b4ef32e036bb34e4ab51796dd745cdba7ed47ad142a9f4a1eb8e0c744d/tqdm-4.67.1.tar.gz", hash = "sha256:f8aef9c52c08c13a65f30ea34f4e5aac3fd1a34959879d7e59e63027286627f2", size = 169737 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d0/30/dc54f88dd4a2b5dc8a0279bdd7270e735851848b762aeb1c1184ed1f6b14/tqdm-4.67.1-py3-none-any.whl", hash = "sha256:26445eca388f82e72884e0d580d5464cd801a3ea01e63e5601bdff9ba6a48de2", size = 78540 }, +] + +[[package]] +name = "traitlets" +version = "5.14.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/eb/79/72064e6a701c2183016abbbfedaba506d81e30e232a68c9f0d6f6fcd1574/traitlets-5.14.3.tar.gz", hash = "sha256:9ed0579d3502c94b4b3732ac120375cda96f923114522847de4b3bb98b96b6b7", size = 161621 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/00/c0/8f5d070730d7836adc9c9b6408dec68c6ced86b304a9b26a14df072a6e8c/traitlets-5.14.3-py3-none-any.whl", hash = "sha256:b74e89e397b1ed28cc831db7aea759ba6640cb3de13090ca145426688ff1ac4f", size = 85359 }, +] + +[[package]] +name = "typer" +version = "0.16.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click" }, + { name = "rich" }, + { name = "shellingham" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c5/8c/7d682431efca5fd290017663ea4588bf6f2c6aad085c7f108c5dbc316e70/typer-0.16.0.tar.gz", hash = "sha256:af377ffaee1dbe37ae9440cb4e8f11686ea5ce4e9bae01b84ae7c63b87f1dd3b", size = 102625 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/76/42/3efaf858001d2c2913de7f354563e3a3a2f0decae3efe98427125a8f441e/typer-0.16.0-py3-none-any.whl", hash = "sha256:1f79bed11d4d02d4310e3c1b7ba594183bcedb0ac73b27a9e5f28f6fb5b98855", size = 46317 }, +] + +[[package]] +name = "types-protobuf" +version = "6.30.2.20250703" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/dc/54/d63ce1eee8e93c4d710bbe2c663ec68e3672cf4f2fca26eecd20981c0c5d/types_protobuf-6.30.2.20250703.tar.gz", hash = "sha256:609a974754bbb71fa178fc641f51050395e8e1849f49d0420a6281ed8d1ddf46", size = 62300 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7e/2b/5d0377c3d6e0f49d4847ad2c40629593fee4a5c9ec56eba26a15c708fbc0/types_protobuf-6.30.2.20250703-py3-none-any.whl", hash = "sha256:fa5aff9036e9ef432d703abbdd801b436a249b6802e4df5ef74513e272434e57", size = 76489 }, +] + +[[package]] +name = "types-requests" +version = "2.31.0.6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "types-urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f9/b8/c1e8d39996b4929b918aba10dba5de07a8b3f4c8487bb61bb79882544e69/types-requests-2.31.0.6.tar.gz", hash = "sha256:cd74ce3b53c461f1228a9b783929ac73a666658f223e28ed29753771477b3bd0", size = 15535 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5c/a1/6f8dc74d9069e790d604ddae70cb46dcbac668f1bb08136e7b0f2f5cd3bf/types_requests-2.31.0.6-py3-none-any.whl", hash = "sha256:a2db9cb228a81da8348b49ad6db3f5519452dd20a9c1e1a868c83c5fe88fd1a9", size = 14516 }, +] + +[[package]] +name = "types-urllib3" +version = "1.26.25.14" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/73/de/b9d7a68ad39092368fb21dd6194b362b98a1daeea5dcfef5e1adb5031c7e/types-urllib3-1.26.25.14.tar.gz", hash = "sha256:229b7f577c951b8c1b92c1bc2b2fdb0b49847bd2af6d1cc2a2e3dd340f3bda8f", size = 11239 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/11/7b/3fc711b2efea5e85a7a0bbfe269ea944aa767bbba5ec52f9ee45d362ccf3/types_urllib3-1.26.25.14-py3-none-any.whl", hash = "sha256:9683bbb7fb72e32bfe9d2be6e04875fbe1b3eeec3cbb4ea231435aa7fd6b4f0e", size = 15377 }, +] + +[[package]] +name = "typing-extensions" +version = "4.14.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/98/5a/da40306b885cc8c09109dc2e1abd358d5684b1425678151cdaed4731c822/typing_extensions-4.14.1.tar.gz", hash = "sha256:38b39f4aeeab64884ce9f74c94263ef78f3c22467c8724005483154c26648d36", size = 107673 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b5/00/d631e67a838026495268c2f6884f3711a15a9a2a96cd244fdaea53b823fb/typing_extensions-4.14.1-py3-none-any.whl", hash = "sha256:d1e1e3b58374dc93031d6eda2420a48ea44a36c2b4766a4fdeb3710755731d76", size = 43906 }, +] + +[[package]] +name = "typing-inspection" +version = "0.4.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f8/b1/0c11f5058406b3af7609f121aaa6b609744687f1d158b3c3a5bf4cc94238/typing_inspection-0.4.1.tar.gz", hash = "sha256:6ae134cc0203c33377d43188d4064e9b357dba58cff3185f22924610e70a9d28", size = 75726 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/17/69/cd203477f944c353c31bade965f880aa1061fd6bf05ded0726ca845b6ff7/typing_inspection-0.4.1-py3-none-any.whl", hash = "sha256:389055682238f53b04f7badcb49b989835495a96700ced5dab2d8feae4b26f51", size = 14552 }, +] + +[[package]] +name = "tzdata" +version = "2025.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/95/32/1a225d6164441be760d75c2c42e2780dc0873fe382da3e98a2e1e48361e5/tzdata-2025.2.tar.gz", hash = "sha256:b60a638fcc0daffadf82fe0f57e53d06bdec2f36c4df66280ae79bce6bd6f2b9", size = 196380 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5c/23/c7abc0ca0a1526a0774eca151daeb8de62ec457e77262b66b359c3c7679e/tzdata-2025.2-py2.py3-none-any.whl", hash = "sha256:1a403fada01ff9221ca8044d701868fa132215d84beb92242d9acd2147f667a8", size = 347839 }, +] + +[[package]] +name = "tzlocal" +version = "5.3.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "tzdata", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8b/2e/c14812d3d4d9cd1773c6be938f89e5735a1f11a9f184ac3639b93cef35d5/tzlocal-5.3.1.tar.gz", hash = "sha256:cceffc7edecefea1f595541dbd6e990cb1ea3d19bf01b2809f362a03dd7921fd", size = 30761 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c2/14/e2a54fabd4f08cd7af1c07030603c3356b74da07f7cc056e600436edfa17/tzlocal-5.3.1-py3-none-any.whl", hash = "sha256:eb1a66c3ef5847adf7a834f1be0800581b683b5608e74f86ecbcef8ab91bb85d", size = 18026 }, +] + +[[package]] +name = "urllib3" +version = "1.26.20" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e4/e8/6ff5e6bc22095cfc59b6ea711b687e2b7ed4bdb373f7eeec370a97d7392f/urllib3-1.26.20.tar.gz", hash = "sha256:40c2dc0c681e47eb8f90e7e27bf6ff7df2e677421fd46756da1161c39ca70d32", size = 307380 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/33/cf/8435d5a7159e2a9c83a95896ed596f68cf798005fe107cc655b5c5c14704/urllib3-1.26.20-py2.py3-none-any.whl", hash = "sha256:0ed14ccfbf1c30a9072c7ca157e4319b70d65f623e91e7b32fadb2853431016e", size = 144225 }, +] + +[[package]] +name = "uvicorn" +version = "0.35.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click" }, + { name = "h11" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/5e/42/e0e305207bb88c6b8d3061399c6a961ffe5fbb7e2aa63c9234df7259e9cd/uvicorn-0.35.0.tar.gz", hash = "sha256:bc662f087f7cf2ce11a1d7fd70b90c9f98ef2e2831556dd078d131b96cc94a01", size = 78473 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d2/e2/dc81b1bd1dcfe91735810265e9d26bc8ec5da45b4c0f6237e286819194c3/uvicorn-0.35.0-py3-none-any.whl", hash = "sha256:197535216b25ff9b785e29a0b79199f55222193d47f820816e7da751e9bc8d4a", size = 66406 }, +] + +[[package]] +name = "wcwidth" +version = "0.2.13" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6c/63/53559446a878410fc5a5974feb13d31d78d752eb18aeba59c7fef1af7598/wcwidth-0.2.13.tar.gz", hash = "sha256:72ea0c06399eb286d978fdedb6923a9eb47e1c486ce63e9b4e64fc18303972b5", size = 101301 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl", hash = "sha256:3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859", size = 34166 }, +] + +[[package]] +name = "websocket-client" +version = "1.8.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e6/30/fba0d96b4b5fbf5948ed3f4681f7da2f9f64512e1d303f94b4cc174c24a5/websocket_client-1.8.0.tar.gz", hash = "sha256:3239df9f44da632f96012472805d40a23281a991027ce11d2f45a6f24ac4c3da", size = 54648 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5a/84/44687a29792a70e111c5c477230a72c4b957d88d16141199bf9acb7537a3/websocket_client-1.8.0-py3-none-any.whl", hash = "sha256:17b44cc997f5c498e809b22cdf2d9c7a9e71c02c8cc2b6c56e7c2d1239bfa526", size = 58826 }, +] + +[[package]] +name = "yarl" +version = "1.20.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "idna" }, + { name = "multidict" }, + { name = "propcache" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/3c/fb/efaa23fa4e45537b827620f04cf8f3cd658b76642205162e072703a5b963/yarl-1.20.1.tar.gz", hash = "sha256:d017a4997ee50c91fd5466cef416231bb82177b93b029906cefc542ce14c35ac", size = 186428 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5f/9a/cb7fad7d73c69f296eda6815e4a2c7ed53fc70c2f136479a91c8e5fbdb6d/yarl-1.20.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:bdcc4cd244e58593a4379fe60fdee5ac0331f8eb70320a24d591a3be197b94a9", size = 133667 }, + { url = "https://files.pythonhosted.org/packages/67/38/688577a1cb1e656e3971fb66a3492501c5a5df56d99722e57c98249e5b8a/yarl-1.20.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b29a2c385a5f5b9c7d9347e5812b6f7ab267193c62d282a540b4fc528c8a9d2a", size = 91025 }, + { url = "https://files.pythonhosted.org/packages/50/ec/72991ae51febeb11a42813fc259f0d4c8e0507f2b74b5514618d8b640365/yarl-1.20.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1112ae8154186dfe2de4732197f59c05a83dc814849a5ced892b708033f40dc2", size = 89709 }, + { url = "https://files.pythonhosted.org/packages/99/da/4d798025490e89426e9f976702e5f9482005c548c579bdae792a4c37769e/yarl-1.20.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:90bbd29c4fe234233f7fa2b9b121fb63c321830e5d05b45153a2ca68f7d310ee", size = 352287 }, + { url = "https://files.pythonhosted.org/packages/1a/26/54a15c6a567aac1c61b18aa0f4b8aa2e285a52d547d1be8bf48abe2b3991/yarl-1.20.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:680e19c7ce3710ac4cd964e90dad99bf9b5029372ba0c7cbfcd55e54d90ea819", size = 345429 }, + { url = "https://files.pythonhosted.org/packages/d6/95/9dcf2386cb875b234353b93ec43e40219e14900e046bf6ac118f94b1e353/yarl-1.20.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4a979218c1fdb4246a05efc2cc23859d47c89af463a90b99b7c56094daf25a16", size = 365429 }, + { url = "https://files.pythonhosted.org/packages/91/b2/33a8750f6a4bc224242a635f5f2cff6d6ad5ba651f6edcccf721992c21a0/yarl-1.20.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:255b468adf57b4a7b65d8aad5b5138dce6a0752c139965711bdcb81bc370e1b6", size = 363862 }, + { url = "https://files.pythonhosted.org/packages/98/28/3ab7acc5b51f4434b181b0cee8f1f4b77a65919700a355fb3617f9488874/yarl-1.20.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a97d67108e79cfe22e2b430d80d7571ae57d19f17cda8bb967057ca8a7bf5bfd", size = 355616 }, + { url = "https://files.pythonhosted.org/packages/36/a3/f666894aa947a371724ec7cd2e5daa78ee8a777b21509b4252dd7bd15e29/yarl-1.20.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8570d998db4ddbfb9a590b185a0a33dbf8aafb831d07a5257b4ec9948df9cb0a", size = 339954 }, + { url = "https://files.pythonhosted.org/packages/f1/81/5f466427e09773c04219d3450d7a1256138a010b6c9f0af2d48565e9ad13/yarl-1.20.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:97c75596019baae7c71ccf1d8cc4738bc08134060d0adfcbe5642f778d1dca38", size = 365575 }, + { url = "https://files.pythonhosted.org/packages/2e/e3/e4b0ad8403e97e6c9972dd587388940a032f030ebec196ab81a3b8e94d31/yarl-1.20.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:1c48912653e63aef91ff988c5432832692ac5a1d8f0fb8a33091520b5bbe19ef", size = 365061 }, + { url = "https://files.pythonhosted.org/packages/ac/99/b8a142e79eb86c926f9f06452eb13ecb1bb5713bd01dc0038faf5452e544/yarl-1.20.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:4c3ae28f3ae1563c50f3d37f064ddb1511ecc1d5584e88c6b7c63cf7702a6d5f", size = 364142 }, + { url = "https://files.pythonhosted.org/packages/34/f2/08ed34a4a506d82a1a3e5bab99ccd930a040f9b6449e9fd050320e45845c/yarl-1.20.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c5e9642f27036283550f5f57dc6156c51084b458570b9d0d96100c8bebb186a8", size = 381894 }, + { url = "https://files.pythonhosted.org/packages/92/f8/9a3fbf0968eac704f681726eff595dce9b49c8a25cd92bf83df209668285/yarl-1.20.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:2c26b0c49220d5799f7b22c6838409ee9bc58ee5c95361a4d7831f03cc225b5a", size = 383378 }, + { url = "https://files.pythonhosted.org/packages/af/85/9363f77bdfa1e4d690957cd39d192c4cacd1c58965df0470a4905253b54f/yarl-1.20.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:564ab3d517e3d01c408c67f2e5247aad4019dcf1969982aba3974b4093279004", size = 374069 }, + { url = "https://files.pythonhosted.org/packages/35/99/9918c8739ba271dcd935400cff8b32e3cd319eaf02fcd023d5dcd487a7c8/yarl-1.20.1-cp312-cp312-win32.whl", hash = "sha256:daea0d313868da1cf2fac6b2d3a25c6e3a9e879483244be38c8e6a41f1d876a5", size = 81249 }, + { url = "https://files.pythonhosted.org/packages/eb/83/5d9092950565481b413b31a23e75dd3418ff0a277d6e0abf3729d4d1ce25/yarl-1.20.1-cp312-cp312-win_amd64.whl", hash = "sha256:48ea7d7f9be0487339828a4de0360d7ce0efc06524a48e1810f945c45b813698", size = 86710 }, + { url = "https://files.pythonhosted.org/packages/8a/e1/2411b6d7f769a07687acee88a062af5833cf1966b7266f3d8dfb3d3dc7d3/yarl-1.20.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:0b5ff0fbb7c9f1b1b5ab53330acbfc5247893069e7716840c8e7d5bb7355038a", size = 131811 }, + { url = "https://files.pythonhosted.org/packages/b2/27/584394e1cb76fb771371770eccad35de400e7b434ce3142c2dd27392c968/yarl-1.20.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:14f326acd845c2b2e2eb38fb1346c94f7f3b01a4f5c788f8144f9b630bfff9a3", size = 90078 }, + { url = "https://files.pythonhosted.org/packages/bf/9a/3246ae92d4049099f52d9b0fe3486e3b500e29b7ea872d0f152966fc209d/yarl-1.20.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f60e4ad5db23f0b96e49c018596707c3ae89f5d0bd97f0ad3684bcbad899f1e7", size = 88748 }, + { url = "https://files.pythonhosted.org/packages/a3/25/35afe384e31115a1a801fbcf84012d7a066d89035befae7c5d4284df1e03/yarl-1.20.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:49bdd1b8e00ce57e68ba51916e4bb04461746e794e7c4d4bbc42ba2f18297691", size = 349595 }, + { url = "https://files.pythonhosted.org/packages/28/2d/8aca6cb2cabc8f12efcb82749b9cefecbccfc7b0384e56cd71058ccee433/yarl-1.20.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:66252d780b45189975abfed839616e8fd2dbacbdc262105ad7742c6ae58f3e31", size = 342616 }, + { url = "https://files.pythonhosted.org/packages/0b/e9/1312633d16b31acf0098d30440ca855e3492d66623dafb8e25b03d00c3da/yarl-1.20.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:59174e7332f5d153d8f7452a102b103e2e74035ad085f404df2e40e663a22b28", size = 361324 }, + { url = "https://files.pythonhosted.org/packages/bc/a0/688cc99463f12f7669eec7c8acc71ef56a1521b99eab7cd3abb75af887b0/yarl-1.20.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e3968ec7d92a0c0f9ac34d5ecfd03869ec0cab0697c91a45db3fbbd95fe1b653", size = 359676 }, + { url = "https://files.pythonhosted.org/packages/af/44/46407d7f7a56e9a85a4c207724c9f2c545c060380718eea9088f222ba697/yarl-1.20.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d1a4fbb50e14396ba3d375f68bfe02215d8e7bc3ec49da8341fe3157f59d2ff5", size = 352614 }, + { url = "https://files.pythonhosted.org/packages/b1/91/31163295e82b8d5485d31d9cf7754d973d41915cadce070491778d9c9825/yarl-1.20.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:11a62c839c3a8eac2410e951301309426f368388ff2f33799052787035793b02", size = 336766 }, + { url = "https://files.pythonhosted.org/packages/b4/8e/c41a5bc482121f51c083c4c2bcd16b9e01e1cf8729e380273a952513a21f/yarl-1.20.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:041eaa14f73ff5a8986b4388ac6bb43a77f2ea09bf1913df7a35d4646db69e53", size = 364615 }, + { url = "https://files.pythonhosted.org/packages/e3/5b/61a3b054238d33d70ea06ebba7e58597891b71c699e247df35cc984ab393/yarl-1.20.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:377fae2fef158e8fd9d60b4c8751387b8d1fb121d3d0b8e9b0be07d1b41e83dc", size = 360982 }, + { url = "https://files.pythonhosted.org/packages/df/a3/6a72fb83f8d478cb201d14927bc8040af901811a88e0ff2da7842dd0ed19/yarl-1.20.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:1c92f4390e407513f619d49319023664643d3339bd5e5a56a3bebe01bc67ec04", size = 369792 }, + { url = "https://files.pythonhosted.org/packages/7c/af/4cc3c36dfc7c077f8dedb561eb21f69e1e9f2456b91b593882b0b18c19dc/yarl-1.20.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:d25ddcf954df1754ab0f86bb696af765c5bfaba39b74095f27eececa049ef9a4", size = 382049 }, + { url = "https://files.pythonhosted.org/packages/19/3a/e54e2c4752160115183a66dc9ee75a153f81f3ab2ba4bf79c3c53b33de34/yarl-1.20.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:909313577e9619dcff8c31a0ea2aa0a2a828341d92673015456b3ae492e7317b", size = 384774 }, + { url = "https://files.pythonhosted.org/packages/9c/20/200ae86dabfca89060ec6447649f219b4cbd94531e425e50d57e5f5ac330/yarl-1.20.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:793fd0580cb9664548c6b83c63b43c477212c0260891ddf86809e1c06c8b08f1", size = 374252 }, + { url = "https://files.pythonhosted.org/packages/83/75/11ee332f2f516b3d094e89448da73d557687f7d137d5a0f48c40ff211487/yarl-1.20.1-cp313-cp313-win32.whl", hash = "sha256:468f6e40285de5a5b3c44981ca3a319a4b208ccc07d526b20b12aeedcfa654b7", size = 81198 }, + { url = "https://files.pythonhosted.org/packages/ba/ba/39b1ecbf51620b40ab402b0fc817f0ff750f6d92712b44689c2c215be89d/yarl-1.20.1-cp313-cp313-win_amd64.whl", hash = "sha256:495b4ef2fea40596bfc0affe3837411d6aa3371abcf31aac0ccc4bdd64d4ef5c", size = 86346 }, + { url = "https://files.pythonhosted.org/packages/43/c7/669c52519dca4c95153c8ad96dd123c79f354a376346b198f438e56ffeb4/yarl-1.20.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:f60233b98423aab21d249a30eb27c389c14929f47be8430efa7dbd91493a729d", size = 138826 }, + { url = "https://files.pythonhosted.org/packages/6a/42/fc0053719b44f6ad04a75d7f05e0e9674d45ef62f2d9ad2c1163e5c05827/yarl-1.20.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:6f3eff4cc3f03d650d8755c6eefc844edde99d641d0dcf4da3ab27141a5f8ddf", size = 93217 }, + { url = "https://files.pythonhosted.org/packages/4f/7f/fa59c4c27e2a076bba0d959386e26eba77eb52ea4a0aac48e3515c186b4c/yarl-1.20.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:69ff8439d8ba832d6bed88af2c2b3445977eba9a4588b787b32945871c2444e3", size = 92700 }, + { url = "https://files.pythonhosted.org/packages/2f/d4/062b2f48e7c93481e88eff97a6312dca15ea200e959f23e96d8ab898c5b8/yarl-1.20.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3cf34efa60eb81dd2645a2e13e00bb98b76c35ab5061a3989c7a70f78c85006d", size = 347644 }, + { url = "https://files.pythonhosted.org/packages/89/47/78b7f40d13c8f62b499cc702fdf69e090455518ae544c00a3bf4afc9fc77/yarl-1.20.1-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:8e0fe9364ad0fddab2688ce72cb7a8e61ea42eff3c7caeeb83874a5d479c896c", size = 323452 }, + { url = "https://files.pythonhosted.org/packages/eb/2b/490d3b2dc66f52987d4ee0d3090a147ea67732ce6b4d61e362c1846d0d32/yarl-1.20.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8f64fbf81878ba914562c672024089e3401974a39767747691c65080a67b18c1", size = 346378 }, + { url = "https://files.pythonhosted.org/packages/66/ad/775da9c8a94ce925d1537f939a4f17d782efef1f973039d821cbe4bcc211/yarl-1.20.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f6342d643bf9a1de97e512e45e4b9560a043347e779a173250824f8b254bd5ce", size = 353261 }, + { url = "https://files.pythonhosted.org/packages/4b/23/0ed0922b47a4f5c6eb9065d5ff1e459747226ddce5c6a4c111e728c9f701/yarl-1.20.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:56dac5f452ed25eef0f6e3c6a066c6ab68971d96a9fb441791cad0efba6140d3", size = 335987 }, + { url = "https://files.pythonhosted.org/packages/3e/49/bc728a7fe7d0e9336e2b78f0958a2d6b288ba89f25a1762407a222bf53c3/yarl-1.20.1-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c7d7f497126d65e2cad8dc5f97d34c27b19199b6414a40cb36b52f41b79014be", size = 329361 }, + { url = "https://files.pythonhosted.org/packages/93/8f/b811b9d1f617c83c907e7082a76e2b92b655400e61730cd61a1f67178393/yarl-1.20.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:67e708dfb8e78d8a19169818eeb5c7a80717562de9051bf2413aca8e3696bf16", size = 346460 }, + { url = "https://files.pythonhosted.org/packages/70/fd/af94f04f275f95da2c3b8b5e1d49e3e79f1ed8b6ceb0f1664cbd902773ff/yarl-1.20.1-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:595c07bc79af2494365cc96ddeb772f76272364ef7c80fb892ef9d0649586513", size = 334486 }, + { url = "https://files.pythonhosted.org/packages/84/65/04c62e82704e7dd0a9b3f61dbaa8447f8507655fd16c51da0637b39b2910/yarl-1.20.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:7bdd2f80f4a7df852ab9ab49484a4dee8030023aa536df41f2d922fd57bf023f", size = 342219 }, + { url = "https://files.pythonhosted.org/packages/91/95/459ca62eb958381b342d94ab9a4b6aec1ddec1f7057c487e926f03c06d30/yarl-1.20.1-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:c03bfebc4ae8d862f853a9757199677ab74ec25424d0ebd68a0027e9c639a390", size = 350693 }, + { url = "https://files.pythonhosted.org/packages/a6/00/d393e82dd955ad20617abc546a8f1aee40534d599ff555ea053d0ec9bf03/yarl-1.20.1-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:344d1103e9c1523f32a5ed704d576172d2cabed3122ea90b1d4e11fe17c66458", size = 355803 }, + { url = "https://files.pythonhosted.org/packages/9e/ed/c5fb04869b99b717985e244fd93029c7a8e8febdfcffa06093e32d7d44e7/yarl-1.20.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:88cab98aa4e13e1ade8c141daeedd300a4603b7132819c484841bb7af3edce9e", size = 341709 }, + { url = "https://files.pythonhosted.org/packages/24/fd/725b8e73ac2a50e78a4534ac43c6addf5c1c2d65380dd48a9169cc6739a9/yarl-1.20.1-cp313-cp313t-win32.whl", hash = "sha256:b121ff6a7cbd4abc28985b6028235491941b9fe8fe226e6fdc539c977ea1739d", size = 86591 }, + { url = "https://files.pythonhosted.org/packages/94/c3/b2e9f38bc3e11191981d57ea08cab2166e74ea770024a646617c9cddd9f6/yarl-1.20.1-cp313-cp313t-win_amd64.whl", hash = "sha256:541d050a355bbbc27e55d906bc91cb6fe42f96c01413dd0f4ed5a5240513874f", size = 93003 }, + { url = "https://files.pythonhosted.org/packages/b4/2d/2345fce04cfd4bee161bf1e7d9cdc702e3e16109021035dbb24db654a622/yarl-1.20.1-py3-none-any.whl", hash = "sha256:83b8eb083fe4683c6115795d9fc1cfaf2cbbefb19b3a1cb68f6527460f483a77", size = 46542 }, +] + +[[package]] +name = "zipp" +version = "3.23.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e3/02/0f2892c661036d50ede074e376733dca2ae7c6eb617489437771209d4180/zipp-3.23.0.tar.gz", hash = "sha256:a07157588a12518c9d4034df3fbbee09c814741a33ff63c05fa29d26a2404166", size = 25547 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2e/54/647ade08bf0db230bfea292f893923872fd20be6ac6f53b2b936ba839d75/zipp-3.23.0-py3-none-any.whl", hash = "sha256:071652d6115ed432f5ce1d34c336c0adfd6a884660d1e9712a256d3d3bd4b14e", size = 10276 }, +] From fe600f36e92be182beb8a4d4821747af7f507e93 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 22 Jul 2025 01:32:56 +0000 Subject: [PATCH 2/2] release: 0.1.0-alpha.1 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 8 ++++++++ pyproject.toml | 2 +- src/agentex/_version.py | 2 +- 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 55f722d91..ba6c34836 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.0.1-alpha.1" + ".": "0.1.0-alpha.1" } \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index e2079d6e0..da9e4e1c1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## 0.1.0-alpha.1 (2025-07-22) + +Full Changelog: [v0.0.1-alpha.1...v0.1.0-alpha.1](https://github.com/scaleapi/agentex-python/compare/v0.0.1-alpha.1...v0.1.0-alpha.1) + +### Features + +* **api:** manual updates ([06f5fe1](https://github.com/scaleapi/agentex-python/commit/06f5fe115ace5ec4ca8149cd0afa6207b193a04c)) + ## 0.0.1-alpha.1 (2025-07-22) Full Changelog: [v0.0.1-alpha.0...v0.0.1-alpha.1](https://github.com/scaleapi/agentex-python/compare/v0.0.1-alpha.0...v0.0.1-alpha.1) diff --git a/pyproject.toml b/pyproject.toml index 4afd3b8d1..3784b5ce5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "agentex" -version = "0.0.1-alpha.1" +version = "0.1.0-alpha.1" description = "The official Python library for the agentex API" dynamic = ["readme"] license = "Apache-2.0" diff --git a/src/agentex/_version.py b/src/agentex/_version.py index 3b76e3fed..5afa0a716 100644 --- a/src/agentex/_version.py +++ b/src/agentex/_version.py @@ -1,4 +1,4 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. __title__ = "agentex" -__version__ = "0.0.1-alpha.1" # x-release-please-version +__version__ = "0.1.0-alpha.1" # x-release-please-version