agno 0.1.2__py3-none-any.whl → 2.3.13__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- agno/__init__.py +8 -0
- agno/agent/__init__.py +44 -5
- agno/agent/agent.py +10531 -2975
- agno/api/agent.py +14 -53
- agno/api/api.py +7 -46
- agno/api/evals.py +22 -0
- agno/api/os.py +17 -0
- agno/api/routes.py +6 -25
- agno/api/schemas/__init__.py +9 -0
- agno/api/schemas/agent.py +6 -9
- agno/api/schemas/evals.py +16 -0
- agno/api/schemas/os.py +14 -0
- agno/api/schemas/team.py +10 -10
- agno/api/schemas/utils.py +21 -0
- agno/api/schemas/workflows.py +16 -0
- agno/api/settings.py +53 -0
- agno/api/team.py +22 -26
- agno/api/workflow.py +28 -0
- agno/cloud/aws/base.py +214 -0
- agno/cloud/aws/s3/__init__.py +2 -0
- agno/cloud/aws/s3/api_client.py +43 -0
- agno/cloud/aws/s3/bucket.py +195 -0
- agno/cloud/aws/s3/object.py +57 -0
- agno/compression/__init__.py +3 -0
- agno/compression/manager.py +247 -0
- agno/culture/__init__.py +3 -0
- agno/culture/manager.py +956 -0
- agno/db/__init__.py +24 -0
- agno/db/async_postgres/__init__.py +3 -0
- agno/db/base.py +946 -0
- agno/db/dynamo/__init__.py +3 -0
- agno/db/dynamo/dynamo.py +2781 -0
- agno/db/dynamo/schemas.py +442 -0
- agno/db/dynamo/utils.py +743 -0
- agno/db/firestore/__init__.py +3 -0
- agno/db/firestore/firestore.py +2379 -0
- agno/db/firestore/schemas.py +181 -0
- agno/db/firestore/utils.py +376 -0
- agno/db/gcs_json/__init__.py +3 -0
- agno/db/gcs_json/gcs_json_db.py +1791 -0
- agno/db/gcs_json/utils.py +228 -0
- agno/db/in_memory/__init__.py +3 -0
- agno/db/in_memory/in_memory_db.py +1312 -0
- agno/db/in_memory/utils.py +230 -0
- agno/db/json/__init__.py +3 -0
- agno/db/json/json_db.py +1777 -0
- agno/db/json/utils.py +230 -0
- agno/db/migrations/manager.py +199 -0
- agno/db/migrations/v1_to_v2.py +635 -0
- agno/db/migrations/versions/v2_3_0.py +938 -0
- agno/db/mongo/__init__.py +17 -0
- agno/db/mongo/async_mongo.py +2760 -0
- agno/db/mongo/mongo.py +2597 -0
- agno/db/mongo/schemas.py +119 -0
- agno/db/mongo/utils.py +276 -0
- agno/db/mysql/__init__.py +4 -0
- agno/db/mysql/async_mysql.py +2912 -0
- agno/db/mysql/mysql.py +2923 -0
- agno/db/mysql/schemas.py +186 -0
- agno/db/mysql/utils.py +488 -0
- agno/db/postgres/__init__.py +4 -0
- agno/db/postgres/async_postgres.py +2579 -0
- agno/db/postgres/postgres.py +2870 -0
- agno/db/postgres/schemas.py +187 -0
- agno/db/postgres/utils.py +442 -0
- agno/db/redis/__init__.py +3 -0
- agno/db/redis/redis.py +2141 -0
- agno/db/redis/schemas.py +159 -0
- agno/db/redis/utils.py +346 -0
- agno/db/schemas/__init__.py +4 -0
- agno/db/schemas/culture.py +120 -0
- agno/db/schemas/evals.py +34 -0
- agno/db/schemas/knowledge.py +40 -0
- agno/db/schemas/memory.py +61 -0
- agno/db/singlestore/__init__.py +3 -0
- agno/db/singlestore/schemas.py +179 -0
- agno/db/singlestore/singlestore.py +2877 -0
- agno/db/singlestore/utils.py +384 -0
- agno/db/sqlite/__init__.py +4 -0
- agno/db/sqlite/async_sqlite.py +2911 -0
- agno/db/sqlite/schemas.py +181 -0
- agno/db/sqlite/sqlite.py +2908 -0
- agno/db/sqlite/utils.py +429 -0
- agno/db/surrealdb/__init__.py +3 -0
- agno/db/surrealdb/metrics.py +292 -0
- agno/db/surrealdb/models.py +334 -0
- agno/db/surrealdb/queries.py +71 -0
- agno/db/surrealdb/surrealdb.py +1908 -0
- agno/db/surrealdb/utils.py +147 -0
- agno/db/utils.py +118 -0
- agno/eval/__init__.py +24 -0
- agno/eval/accuracy.py +666 -276
- agno/eval/agent_as_judge.py +861 -0
- agno/eval/base.py +29 -0
- agno/eval/performance.py +779 -0
- agno/eval/reliability.py +241 -62
- agno/eval/utils.py +120 -0
- agno/exceptions.py +143 -1
- agno/filters.py +354 -0
- agno/guardrails/__init__.py +6 -0
- agno/guardrails/base.py +19 -0
- agno/guardrails/openai.py +144 -0
- agno/guardrails/pii.py +94 -0
- agno/guardrails/prompt_injection.py +52 -0
- agno/hooks/__init__.py +3 -0
- agno/hooks/decorator.py +164 -0
- agno/integrations/discord/__init__.py +3 -0
- agno/integrations/discord/client.py +203 -0
- agno/knowledge/__init__.py +5 -1
- agno/{document → knowledge}/chunking/agentic.py +22 -14
- agno/{document → knowledge}/chunking/document.py +2 -2
- agno/{document → knowledge}/chunking/fixed.py +7 -6
- agno/knowledge/chunking/markdown.py +151 -0
- agno/{document → knowledge}/chunking/recursive.py +15 -3
- agno/knowledge/chunking/row.py +39 -0
- agno/knowledge/chunking/semantic.py +91 -0
- agno/knowledge/chunking/strategy.py +165 -0
- agno/knowledge/content.py +74 -0
- agno/knowledge/document/__init__.py +5 -0
- agno/{document → knowledge/document}/base.py +12 -2
- agno/knowledge/embedder/__init__.py +5 -0
- agno/knowledge/embedder/aws_bedrock.py +343 -0
- agno/knowledge/embedder/azure_openai.py +210 -0
- agno/{embedder → knowledge/embedder}/base.py +8 -0
- agno/knowledge/embedder/cohere.py +323 -0
- agno/knowledge/embedder/fastembed.py +62 -0
- agno/{embedder → knowledge/embedder}/fireworks.py +1 -1
- agno/knowledge/embedder/google.py +258 -0
- agno/knowledge/embedder/huggingface.py +94 -0
- agno/knowledge/embedder/jina.py +182 -0
- agno/knowledge/embedder/langdb.py +22 -0
- agno/knowledge/embedder/mistral.py +206 -0
- agno/knowledge/embedder/nebius.py +13 -0
- agno/knowledge/embedder/ollama.py +154 -0
- agno/knowledge/embedder/openai.py +195 -0
- agno/knowledge/embedder/sentence_transformer.py +63 -0
- agno/{embedder → knowledge/embedder}/together.py +1 -1
- agno/knowledge/embedder/vllm.py +262 -0
- agno/knowledge/embedder/voyageai.py +165 -0
- agno/knowledge/knowledge.py +3006 -0
- agno/knowledge/reader/__init__.py +7 -0
- agno/knowledge/reader/arxiv_reader.py +81 -0
- agno/knowledge/reader/base.py +95 -0
- agno/knowledge/reader/csv_reader.py +164 -0
- agno/knowledge/reader/docx_reader.py +82 -0
- agno/knowledge/reader/field_labeled_csv_reader.py +290 -0
- agno/knowledge/reader/firecrawl_reader.py +201 -0
- agno/knowledge/reader/json_reader.py +88 -0
- agno/knowledge/reader/markdown_reader.py +137 -0
- agno/knowledge/reader/pdf_reader.py +431 -0
- agno/knowledge/reader/pptx_reader.py +101 -0
- agno/knowledge/reader/reader_factory.py +313 -0
- agno/knowledge/reader/s3_reader.py +89 -0
- agno/knowledge/reader/tavily_reader.py +193 -0
- agno/knowledge/reader/text_reader.py +127 -0
- agno/knowledge/reader/web_search_reader.py +325 -0
- agno/knowledge/reader/website_reader.py +455 -0
- agno/knowledge/reader/wikipedia_reader.py +91 -0
- agno/knowledge/reader/youtube_reader.py +78 -0
- agno/knowledge/remote_content/remote_content.py +88 -0
- agno/knowledge/reranker/__init__.py +3 -0
- agno/{reranker → knowledge/reranker}/base.py +1 -1
- agno/{reranker → knowledge/reranker}/cohere.py +2 -2
- agno/knowledge/reranker/infinity.py +195 -0
- agno/knowledge/reranker/sentence_transformer.py +54 -0
- agno/knowledge/types.py +39 -0
- agno/knowledge/utils.py +234 -0
- agno/media.py +439 -95
- agno/memory/__init__.py +16 -3
- agno/memory/manager.py +1474 -123
- agno/memory/strategies/__init__.py +15 -0
- agno/memory/strategies/base.py +66 -0
- agno/memory/strategies/summarize.py +196 -0
- agno/memory/strategies/types.py +37 -0
- agno/models/aimlapi/__init__.py +5 -0
- agno/models/aimlapi/aimlapi.py +62 -0
- agno/models/anthropic/__init__.py +4 -0
- agno/models/anthropic/claude.py +960 -496
- agno/models/aws/__init__.py +15 -0
- agno/models/aws/bedrock.py +686 -451
- agno/models/aws/claude.py +190 -183
- agno/models/azure/__init__.py +18 -1
- agno/models/azure/ai_foundry.py +489 -0
- agno/models/azure/openai_chat.py +89 -40
- agno/models/base.py +2477 -550
- agno/models/cerebras/__init__.py +12 -0
- agno/models/cerebras/cerebras.py +565 -0
- agno/models/cerebras/cerebras_openai.py +131 -0
- agno/models/cohere/__init__.py +4 -0
- agno/models/cohere/chat.py +306 -492
- agno/models/cometapi/__init__.py +5 -0
- agno/models/cometapi/cometapi.py +74 -0
- agno/models/dashscope/__init__.py +5 -0
- agno/models/dashscope/dashscope.py +90 -0
- agno/models/deepinfra/__init__.py +5 -0
- agno/models/deepinfra/deepinfra.py +45 -0
- agno/models/deepseek/__init__.py +4 -0
- agno/models/deepseek/deepseek.py +110 -9
- agno/models/fireworks/__init__.py +4 -0
- agno/models/fireworks/fireworks.py +19 -22
- agno/models/google/__init__.py +3 -7
- agno/models/google/gemini.py +1717 -662
- agno/models/google/utils.py +22 -0
- agno/models/groq/__init__.py +4 -0
- agno/models/groq/groq.py +391 -666
- agno/models/huggingface/__init__.py +4 -0
- agno/models/huggingface/huggingface.py +266 -538
- agno/models/ibm/__init__.py +5 -0
- agno/models/ibm/watsonx.py +432 -0
- agno/models/internlm/__init__.py +3 -0
- agno/models/internlm/internlm.py +20 -3
- agno/models/langdb/__init__.py +1 -0
- agno/models/langdb/langdb.py +60 -0
- agno/models/litellm/__init__.py +14 -0
- agno/models/litellm/chat.py +503 -0
- agno/models/litellm/litellm_openai.py +42 -0
- agno/models/llama_cpp/__init__.py +5 -0
- agno/models/llama_cpp/llama_cpp.py +22 -0
- agno/models/lmstudio/__init__.py +5 -0
- agno/models/lmstudio/lmstudio.py +25 -0
- agno/models/message.py +361 -39
- agno/models/meta/__init__.py +12 -0
- agno/models/meta/llama.py +502 -0
- agno/models/meta/llama_openai.py +79 -0
- agno/models/metrics.py +120 -0
- agno/models/mistral/__init__.py +4 -0
- agno/models/mistral/mistral.py +293 -393
- agno/models/nebius/__init__.py +3 -0
- agno/models/nebius/nebius.py +53 -0
- agno/models/nexus/__init__.py +3 -0
- agno/models/nexus/nexus.py +22 -0
- agno/models/nvidia/__init__.py +4 -0
- agno/models/nvidia/nvidia.py +22 -3
- agno/models/ollama/__init__.py +4 -2
- agno/models/ollama/chat.py +257 -492
- agno/models/openai/__init__.py +7 -0
- agno/models/openai/chat.py +725 -770
- agno/models/openai/like.py +16 -2
- agno/models/openai/responses.py +1121 -0
- agno/models/openrouter/__init__.py +4 -0
- agno/models/openrouter/openrouter.py +62 -5
- agno/models/perplexity/__init__.py +5 -0
- agno/models/perplexity/perplexity.py +203 -0
- agno/models/portkey/__init__.py +3 -0
- agno/models/portkey/portkey.py +82 -0
- agno/models/requesty/__init__.py +5 -0
- agno/models/requesty/requesty.py +69 -0
- agno/models/response.py +177 -7
- agno/models/sambanova/__init__.py +4 -0
- agno/models/sambanova/sambanova.py +23 -4
- agno/models/siliconflow/__init__.py +5 -0
- agno/models/siliconflow/siliconflow.py +42 -0
- agno/models/together/__init__.py +4 -0
- agno/models/together/together.py +21 -164
- agno/models/utils.py +266 -0
- agno/models/vercel/__init__.py +3 -0
- agno/models/vercel/v0.py +43 -0
- agno/models/vertexai/__init__.py +0 -1
- agno/models/vertexai/claude.py +190 -0
- agno/models/vllm/__init__.py +3 -0
- agno/models/vllm/vllm.py +83 -0
- agno/models/xai/__init__.py +2 -0
- agno/models/xai/xai.py +111 -7
- agno/os/__init__.py +3 -0
- agno/os/app.py +1027 -0
- agno/os/auth.py +244 -0
- agno/os/config.py +126 -0
- agno/os/interfaces/__init__.py +1 -0
- agno/os/interfaces/a2a/__init__.py +3 -0
- agno/os/interfaces/a2a/a2a.py +42 -0
- agno/os/interfaces/a2a/router.py +249 -0
- agno/os/interfaces/a2a/utils.py +924 -0
- agno/os/interfaces/agui/__init__.py +3 -0
- agno/os/interfaces/agui/agui.py +47 -0
- agno/os/interfaces/agui/router.py +147 -0
- agno/os/interfaces/agui/utils.py +574 -0
- agno/os/interfaces/base.py +25 -0
- agno/os/interfaces/slack/__init__.py +3 -0
- agno/os/interfaces/slack/router.py +148 -0
- agno/os/interfaces/slack/security.py +30 -0
- agno/os/interfaces/slack/slack.py +47 -0
- agno/os/interfaces/whatsapp/__init__.py +3 -0
- agno/os/interfaces/whatsapp/router.py +210 -0
- agno/os/interfaces/whatsapp/security.py +55 -0
- agno/os/interfaces/whatsapp/whatsapp.py +36 -0
- agno/os/mcp.py +293 -0
- agno/os/middleware/__init__.py +9 -0
- agno/os/middleware/jwt.py +797 -0
- agno/os/router.py +258 -0
- agno/os/routers/__init__.py +3 -0
- agno/os/routers/agents/__init__.py +3 -0
- agno/os/routers/agents/router.py +599 -0
- agno/os/routers/agents/schema.py +261 -0
- agno/os/routers/evals/__init__.py +3 -0
- agno/os/routers/evals/evals.py +450 -0
- agno/os/routers/evals/schemas.py +174 -0
- agno/os/routers/evals/utils.py +231 -0
- agno/os/routers/health.py +31 -0
- agno/os/routers/home.py +52 -0
- agno/os/routers/knowledge/__init__.py +3 -0
- agno/os/routers/knowledge/knowledge.py +1008 -0
- agno/os/routers/knowledge/schemas.py +178 -0
- agno/os/routers/memory/__init__.py +3 -0
- agno/os/routers/memory/memory.py +661 -0
- agno/os/routers/memory/schemas.py +88 -0
- agno/os/routers/metrics/__init__.py +3 -0
- agno/os/routers/metrics/metrics.py +190 -0
- agno/os/routers/metrics/schemas.py +47 -0
- agno/os/routers/session/__init__.py +3 -0
- agno/os/routers/session/session.py +997 -0
- agno/os/routers/teams/__init__.py +3 -0
- agno/os/routers/teams/router.py +512 -0
- agno/os/routers/teams/schema.py +257 -0
- agno/os/routers/traces/__init__.py +3 -0
- agno/os/routers/traces/schemas.py +414 -0
- agno/os/routers/traces/traces.py +499 -0
- agno/os/routers/workflows/__init__.py +3 -0
- agno/os/routers/workflows/router.py +624 -0
- agno/os/routers/workflows/schema.py +75 -0
- agno/os/schema.py +534 -0
- agno/os/scopes.py +469 -0
- agno/{playground → os}/settings.py +7 -15
- agno/os/utils.py +973 -0
- agno/reasoning/anthropic.py +80 -0
- agno/reasoning/azure_ai_foundry.py +67 -0
- agno/reasoning/deepseek.py +63 -0
- agno/reasoning/default.py +97 -0
- agno/reasoning/gemini.py +73 -0
- agno/reasoning/groq.py +71 -0
- agno/reasoning/helpers.py +24 -1
- agno/reasoning/ollama.py +67 -0
- agno/reasoning/openai.py +86 -0
- agno/reasoning/step.py +2 -1
- agno/reasoning/vertexai.py +76 -0
- agno/run/__init__.py +6 -0
- agno/run/agent.py +822 -0
- agno/run/base.py +247 -0
- agno/run/cancel.py +81 -0
- agno/run/requirement.py +181 -0
- agno/run/team.py +767 -0
- agno/run/workflow.py +708 -0
- agno/session/__init__.py +10 -0
- agno/session/agent.py +260 -0
- agno/session/summary.py +265 -0
- agno/session/team.py +342 -0
- agno/session/workflow.py +501 -0
- agno/table.py +10 -0
- agno/team/__init__.py +37 -0
- agno/team/team.py +9536 -0
- agno/tools/__init__.py +7 -0
- agno/tools/agentql.py +120 -0
- agno/tools/airflow.py +22 -12
- agno/tools/api.py +122 -0
- agno/tools/apify.py +276 -83
- agno/tools/{arxiv_toolkit.py → arxiv.py} +20 -12
- agno/tools/aws_lambda.py +28 -7
- agno/tools/aws_ses.py +66 -0
- agno/tools/baidusearch.py +11 -4
- agno/tools/bitbucket.py +292 -0
- agno/tools/brandfetch.py +213 -0
- agno/tools/bravesearch.py +106 -0
- agno/tools/brightdata.py +367 -0
- agno/tools/browserbase.py +209 -0
- agno/tools/calcom.py +32 -23
- agno/tools/calculator.py +24 -37
- agno/tools/cartesia.py +187 -0
- agno/tools/{clickup_tool.py → clickup.py} +17 -28
- agno/tools/confluence.py +91 -26
- agno/tools/crawl4ai.py +139 -43
- agno/tools/csv_toolkit.py +28 -22
- agno/tools/dalle.py +36 -22
- agno/tools/daytona.py +475 -0
- agno/tools/decorator.py +169 -14
- agno/tools/desi_vocal.py +23 -11
- agno/tools/discord.py +32 -29
- agno/tools/docker.py +716 -0
- agno/tools/duckdb.py +76 -81
- agno/tools/duckduckgo.py +43 -40
- agno/tools/e2b.py +703 -0
- agno/tools/eleven_labs.py +65 -54
- agno/tools/email.py +13 -5
- agno/tools/evm.py +129 -0
- agno/tools/exa.py +324 -42
- agno/tools/fal.py +39 -35
- agno/tools/file.py +196 -30
- agno/tools/file_generation.py +356 -0
- agno/tools/financial_datasets.py +288 -0
- agno/tools/firecrawl.py +108 -33
- agno/tools/function.py +960 -122
- agno/tools/giphy.py +34 -12
- agno/tools/github.py +1294 -97
- agno/tools/gmail.py +922 -0
- agno/tools/google_bigquery.py +117 -0
- agno/tools/google_drive.py +271 -0
- agno/tools/google_maps.py +253 -0
- agno/tools/googlecalendar.py +607 -107
- agno/tools/googlesheets.py +377 -0
- agno/tools/hackernews.py +20 -12
- agno/tools/jina.py +24 -14
- agno/tools/jira.py +48 -19
- agno/tools/knowledge.py +218 -0
- agno/tools/linear.py +82 -43
- agno/tools/linkup.py +58 -0
- agno/tools/local_file_system.py +15 -7
- agno/tools/lumalab.py +41 -26
- agno/tools/mcp/__init__.py +10 -0
- agno/tools/mcp/mcp.py +331 -0
- agno/tools/mcp/multi_mcp.py +347 -0
- agno/tools/mcp/params.py +24 -0
- agno/tools/mcp_toolbox.py +284 -0
- agno/tools/mem0.py +193 -0
- agno/tools/memory.py +419 -0
- agno/tools/mlx_transcribe.py +11 -9
- agno/tools/models/azure_openai.py +190 -0
- agno/tools/models/gemini.py +203 -0
- agno/tools/models/groq.py +158 -0
- agno/tools/models/morph.py +186 -0
- agno/tools/models/nebius.py +124 -0
- agno/tools/models_labs.py +163 -82
- agno/tools/moviepy_video.py +18 -13
- agno/tools/nano_banana.py +151 -0
- agno/tools/neo4j.py +134 -0
- agno/tools/newspaper.py +15 -4
- agno/tools/newspaper4k.py +19 -6
- agno/tools/notion.py +204 -0
- agno/tools/openai.py +181 -17
- agno/tools/openbb.py +27 -20
- agno/tools/opencv.py +321 -0
- agno/tools/openweather.py +233 -0
- agno/tools/oxylabs.py +385 -0
- agno/tools/pandas.py +25 -15
- agno/tools/parallel.py +314 -0
- agno/tools/postgres.py +238 -185
- agno/tools/pubmed.py +125 -13
- agno/tools/python.py +48 -35
- agno/tools/reasoning.py +283 -0
- agno/tools/reddit.py +207 -29
- agno/tools/redshift.py +406 -0
- agno/tools/replicate.py +69 -26
- agno/tools/resend.py +11 -6
- agno/tools/scrapegraph.py +179 -19
- agno/tools/searxng.py +23 -31
- agno/tools/serpapi.py +15 -10
- agno/tools/serper.py +255 -0
- agno/tools/shell.py +23 -12
- agno/tools/shopify.py +1519 -0
- agno/tools/slack.py +56 -14
- agno/tools/sleep.py +8 -6
- agno/tools/spider.py +35 -11
- agno/tools/spotify.py +919 -0
- agno/tools/sql.py +34 -19
- agno/tools/tavily.py +158 -8
- agno/tools/telegram.py +18 -8
- agno/tools/todoist.py +218 -0
- agno/tools/toolkit.py +134 -9
- agno/tools/trafilatura.py +388 -0
- agno/tools/trello.py +25 -28
- agno/tools/twilio.py +18 -9
- agno/tools/user_control_flow.py +78 -0
- agno/tools/valyu.py +228 -0
- agno/tools/visualization.py +467 -0
- agno/tools/webbrowser.py +28 -0
- agno/tools/webex.py +76 -0
- agno/tools/website.py +23 -19
- agno/tools/webtools.py +45 -0
- agno/tools/whatsapp.py +286 -0
- agno/tools/wikipedia.py +28 -19
- agno/tools/workflow.py +285 -0
- agno/tools/{twitter.py → x.py} +142 -46
- agno/tools/yfinance.py +41 -39
- agno/tools/youtube.py +34 -17
- agno/tools/zendesk.py +15 -5
- agno/tools/zep.py +454 -0
- agno/tools/zoom.py +86 -37
- agno/tracing/__init__.py +12 -0
- agno/tracing/exporter.py +157 -0
- agno/tracing/schemas.py +276 -0
- agno/tracing/setup.py +111 -0
- agno/utils/agent.py +938 -0
- agno/utils/audio.py +37 -1
- agno/utils/certs.py +27 -0
- agno/utils/code_execution.py +11 -0
- agno/utils/common.py +103 -20
- agno/utils/cryptography.py +22 -0
- agno/utils/dttm.py +33 -0
- agno/utils/events.py +700 -0
- agno/utils/functions.py +107 -37
- agno/utils/gemini.py +426 -0
- agno/utils/hooks.py +171 -0
- agno/utils/http.py +185 -0
- agno/utils/json_schema.py +159 -37
- agno/utils/knowledge.py +36 -0
- agno/utils/location.py +19 -0
- agno/utils/log.py +221 -8
- agno/utils/mcp.py +214 -0
- agno/utils/media.py +335 -14
- agno/utils/merge_dict.py +22 -1
- agno/utils/message.py +77 -2
- agno/utils/models/ai_foundry.py +50 -0
- agno/utils/models/claude.py +373 -0
- agno/utils/models/cohere.py +94 -0
- agno/utils/models/llama.py +85 -0
- agno/utils/models/mistral.py +100 -0
- agno/utils/models/openai_responses.py +140 -0
- agno/utils/models/schema_utils.py +153 -0
- agno/utils/models/watsonx.py +41 -0
- agno/utils/openai.py +257 -0
- agno/utils/pickle.py +1 -1
- agno/utils/pprint.py +124 -8
- agno/utils/print_response/agent.py +930 -0
- agno/utils/print_response/team.py +1914 -0
- agno/utils/print_response/workflow.py +1668 -0
- agno/utils/prompts.py +111 -0
- agno/utils/reasoning.py +108 -0
- agno/utils/response.py +163 -0
- agno/utils/serialize.py +32 -0
- agno/utils/shell.py +4 -4
- agno/utils/streamlit.py +487 -0
- agno/utils/string.py +204 -51
- agno/utils/team.py +139 -0
- agno/utils/timer.py +9 -2
- agno/utils/tokens.py +657 -0
- agno/utils/tools.py +19 -1
- agno/utils/whatsapp.py +305 -0
- agno/utils/yaml_io.py +3 -3
- agno/vectordb/__init__.py +2 -0
- agno/vectordb/base.py +87 -9
- agno/vectordb/cassandra/__init__.py +5 -1
- agno/vectordb/cassandra/cassandra.py +383 -27
- agno/vectordb/chroma/__init__.py +4 -0
- agno/vectordb/chroma/chromadb.py +748 -83
- agno/vectordb/clickhouse/__init__.py +7 -1
- agno/vectordb/clickhouse/clickhousedb.py +554 -53
- agno/vectordb/couchbase/__init__.py +3 -0
- agno/vectordb/couchbase/couchbase.py +1446 -0
- agno/vectordb/lancedb/__init__.py +5 -0
- agno/vectordb/lancedb/lance_db.py +730 -98
- agno/vectordb/langchaindb/__init__.py +5 -0
- agno/vectordb/langchaindb/langchaindb.py +163 -0
- agno/vectordb/lightrag/__init__.py +5 -0
- agno/vectordb/lightrag/lightrag.py +388 -0
- agno/vectordb/llamaindex/__init__.py +3 -0
- agno/vectordb/llamaindex/llamaindexdb.py +166 -0
- agno/vectordb/milvus/__init__.py +3 -0
- agno/vectordb/milvus/milvus.py +966 -78
- agno/vectordb/mongodb/__init__.py +9 -1
- agno/vectordb/mongodb/mongodb.py +1175 -172
- agno/vectordb/pgvector/__init__.py +8 -0
- agno/vectordb/pgvector/pgvector.py +599 -115
- agno/vectordb/pineconedb/__init__.py +5 -1
- agno/vectordb/pineconedb/pineconedb.py +406 -43
- agno/vectordb/qdrant/__init__.py +4 -0
- agno/vectordb/qdrant/qdrant.py +914 -61
- agno/vectordb/redis/__init__.py +9 -0
- agno/vectordb/redis/redisdb.py +682 -0
- agno/vectordb/singlestore/__init__.py +8 -1
- agno/vectordb/singlestore/singlestore.py +771 -0
- agno/vectordb/surrealdb/__init__.py +3 -0
- agno/vectordb/surrealdb/surrealdb.py +663 -0
- agno/vectordb/upstashdb/__init__.py +5 -0
- agno/vectordb/upstashdb/upstashdb.py +718 -0
- agno/vectordb/weaviate/__init__.py +8 -0
- agno/vectordb/weaviate/index.py +15 -0
- agno/vectordb/weaviate/weaviate.py +1009 -0
- agno/workflow/__init__.py +23 -1
- agno/workflow/agent.py +299 -0
- agno/workflow/condition.py +759 -0
- agno/workflow/loop.py +756 -0
- agno/workflow/parallel.py +853 -0
- agno/workflow/router.py +723 -0
- agno/workflow/step.py +1564 -0
- agno/workflow/steps.py +613 -0
- agno/workflow/types.py +556 -0
- agno/workflow/workflow.py +4327 -514
- agno-2.3.13.dist-info/METADATA +639 -0
- agno-2.3.13.dist-info/RECORD +613 -0
- {agno-0.1.2.dist-info → agno-2.3.13.dist-info}/WHEEL +1 -1
- agno-2.3.13.dist-info/licenses/LICENSE +201 -0
- agno/api/playground.py +0 -91
- agno/api/schemas/playground.py +0 -22
- agno/api/schemas/user.py +0 -22
- agno/api/schemas/workspace.py +0 -46
- agno/api/user.py +0 -160
- agno/api/workspace.py +0 -151
- agno/cli/auth_server.py +0 -118
- agno/cli/config.py +0 -275
- agno/cli/console.py +0 -88
- agno/cli/credentials.py +0 -23
- agno/cli/entrypoint.py +0 -571
- agno/cli/operator.py +0 -355
- agno/cli/settings.py +0 -85
- agno/cli/ws/ws_cli.py +0 -817
- agno/constants.py +0 -13
- agno/document/__init__.py +0 -1
- agno/document/chunking/semantic.py +0 -47
- agno/document/chunking/strategy.py +0 -31
- agno/document/reader/__init__.py +0 -1
- agno/document/reader/arxiv_reader.py +0 -41
- agno/document/reader/base.py +0 -22
- agno/document/reader/csv_reader.py +0 -84
- agno/document/reader/docx_reader.py +0 -46
- agno/document/reader/firecrawl_reader.py +0 -99
- agno/document/reader/json_reader.py +0 -43
- agno/document/reader/pdf_reader.py +0 -219
- agno/document/reader/s3/pdf_reader.py +0 -46
- agno/document/reader/s3/text_reader.py +0 -51
- agno/document/reader/text_reader.py +0 -41
- agno/document/reader/website_reader.py +0 -175
- agno/document/reader/youtube_reader.py +0 -50
- agno/embedder/__init__.py +0 -1
- agno/embedder/azure_openai.py +0 -86
- agno/embedder/cohere.py +0 -72
- agno/embedder/fastembed.py +0 -37
- agno/embedder/google.py +0 -73
- agno/embedder/huggingface.py +0 -54
- agno/embedder/mistral.py +0 -80
- agno/embedder/ollama.py +0 -57
- agno/embedder/openai.py +0 -74
- agno/embedder/sentence_transformer.py +0 -38
- agno/embedder/voyageai.py +0 -64
- agno/eval/perf.py +0 -201
- agno/file/__init__.py +0 -1
- agno/file/file.py +0 -16
- agno/file/local/csv.py +0 -32
- agno/file/local/txt.py +0 -19
- agno/infra/app.py +0 -240
- agno/infra/base.py +0 -144
- agno/infra/context.py +0 -20
- agno/infra/db_app.py +0 -52
- agno/infra/resource.py +0 -205
- agno/infra/resources.py +0 -55
- agno/knowledge/agent.py +0 -230
- agno/knowledge/arxiv.py +0 -22
- agno/knowledge/combined.py +0 -22
- agno/knowledge/csv.py +0 -28
- agno/knowledge/csv_url.py +0 -19
- agno/knowledge/document.py +0 -20
- agno/knowledge/docx.py +0 -30
- agno/knowledge/json.py +0 -28
- agno/knowledge/langchain.py +0 -71
- agno/knowledge/llamaindex.py +0 -66
- agno/knowledge/pdf.py +0 -28
- agno/knowledge/pdf_url.py +0 -26
- agno/knowledge/s3/base.py +0 -60
- agno/knowledge/s3/pdf.py +0 -21
- agno/knowledge/s3/text.py +0 -23
- agno/knowledge/text.py +0 -30
- agno/knowledge/website.py +0 -88
- agno/knowledge/wikipedia.py +0 -31
- agno/knowledge/youtube.py +0 -22
- agno/memory/agent.py +0 -392
- agno/memory/classifier.py +0 -104
- agno/memory/db/__init__.py +0 -1
- agno/memory/db/base.py +0 -42
- agno/memory/db/mongodb.py +0 -189
- agno/memory/db/postgres.py +0 -203
- agno/memory/db/sqlite.py +0 -193
- agno/memory/memory.py +0 -15
- agno/memory/row.py +0 -36
- agno/memory/summarizer.py +0 -192
- agno/memory/summary.py +0 -19
- agno/memory/workflow.py +0 -38
- agno/models/google/gemini_openai.py +0 -26
- agno/models/ollama/hermes.py +0 -221
- agno/models/ollama/tools.py +0 -362
- agno/models/vertexai/gemini.py +0 -595
- agno/playground/__init__.py +0 -3
- agno/playground/async_router.py +0 -421
- agno/playground/deploy.py +0 -249
- agno/playground/operator.py +0 -92
- agno/playground/playground.py +0 -91
- agno/playground/schemas.py +0 -76
- agno/playground/serve.py +0 -55
- agno/playground/sync_router.py +0 -405
- agno/reasoning/agent.py +0 -68
- agno/run/response.py +0 -112
- agno/storage/agent/__init__.py +0 -0
- agno/storage/agent/base.py +0 -38
- agno/storage/agent/dynamodb.py +0 -350
- agno/storage/agent/json.py +0 -92
- agno/storage/agent/mongodb.py +0 -228
- agno/storage/agent/postgres.py +0 -367
- agno/storage/agent/session.py +0 -79
- agno/storage/agent/singlestore.py +0 -303
- agno/storage/agent/sqlite.py +0 -357
- agno/storage/agent/yaml.py +0 -93
- agno/storage/workflow/__init__.py +0 -0
- agno/storage/workflow/base.py +0 -40
- agno/storage/workflow/mongodb.py +0 -233
- agno/storage/workflow/postgres.py +0 -366
- agno/storage/workflow/session.py +0 -60
- agno/storage/workflow/sqlite.py +0 -359
- agno/tools/googlesearch.py +0 -88
- agno/utils/defaults.py +0 -57
- agno/utils/filesystem.py +0 -39
- agno/utils/git.py +0 -52
- agno/utils/json_io.py +0 -30
- agno/utils/load_env.py +0 -19
- agno/utils/py_io.py +0 -19
- agno/utils/pyproject.py +0 -18
- agno/utils/resource_filter.py +0 -31
- agno/vectordb/singlestore/s2vectordb.py +0 -390
- agno/vectordb/singlestore/s2vectordb2.py +0 -355
- agno/workspace/__init__.py +0 -0
- agno/workspace/config.py +0 -325
- agno/workspace/enums.py +0 -6
- agno/workspace/helpers.py +0 -48
- agno/workspace/operator.py +0 -758
- agno/workspace/settings.py +0 -63
- agno-0.1.2.dist-info/LICENSE +0 -375
- agno-0.1.2.dist-info/METADATA +0 -502
- agno-0.1.2.dist-info/RECORD +0 -352
- agno-0.1.2.dist-info/entry_points.txt +0 -3
- /agno/{cli → db/migrations}/__init__.py +0 -0
- /agno/{cli/ws → db/migrations/versions}/__init__.py +0 -0
- /agno/{document/chunking/__init__.py → db/schemas/metrics.py} +0 -0
- /agno/{document/reader/s3 → integrations}/__init__.py +0 -0
- /agno/{file/local → knowledge/chunking}/__init__.py +0 -0
- /agno/{infra → knowledge/remote_content}/__init__.py +0 -0
- /agno/{knowledge/s3 → tools/models}/__init__.py +0 -0
- /agno/{reranker → utils/models}/__init__.py +0 -0
- /agno/{storage → utils/print_response}/__init__.py +0 -0
- {agno-0.1.2.dist-info → agno-2.3.13.dist-info}/top_level.txt +0 -0
agno/utils/events.py
ADDED
|
@@ -0,0 +1,700 @@
|
|
|
1
|
+
from typing import Any, Dict, List, Optional, Union
|
|
2
|
+
|
|
3
|
+
from agno.media import Audio, Image
|
|
4
|
+
from agno.models.message import Citations
|
|
5
|
+
from agno.models.response import ToolExecution
|
|
6
|
+
from agno.reasoning.step import ReasoningStep
|
|
7
|
+
from agno.run.agent import (
|
|
8
|
+
MemoryUpdateCompletedEvent,
|
|
9
|
+
MemoryUpdateStartedEvent,
|
|
10
|
+
OutputModelResponseCompletedEvent,
|
|
11
|
+
OutputModelResponseStartedEvent,
|
|
12
|
+
ParserModelResponseCompletedEvent,
|
|
13
|
+
ParserModelResponseStartedEvent,
|
|
14
|
+
PostHookCompletedEvent,
|
|
15
|
+
PostHookStartedEvent,
|
|
16
|
+
PreHookCompletedEvent,
|
|
17
|
+
PreHookStartedEvent,
|
|
18
|
+
ReasoningCompletedEvent,
|
|
19
|
+
ReasoningStartedEvent,
|
|
20
|
+
ReasoningStepEvent,
|
|
21
|
+
RunCancelledEvent,
|
|
22
|
+
RunCompletedEvent,
|
|
23
|
+
RunContentCompletedEvent,
|
|
24
|
+
RunContentEvent,
|
|
25
|
+
RunContinuedEvent,
|
|
26
|
+
RunErrorEvent,
|
|
27
|
+
RunEvent,
|
|
28
|
+
RunInput,
|
|
29
|
+
RunOutput,
|
|
30
|
+
RunOutputEvent,
|
|
31
|
+
RunPausedEvent,
|
|
32
|
+
RunStartedEvent,
|
|
33
|
+
SessionSummaryCompletedEvent,
|
|
34
|
+
SessionSummaryStartedEvent,
|
|
35
|
+
ToolCallCompletedEvent,
|
|
36
|
+
ToolCallStartedEvent,
|
|
37
|
+
)
|
|
38
|
+
from agno.run.requirement import RunRequirement
|
|
39
|
+
from agno.run.team import MemoryUpdateCompletedEvent as TeamMemoryUpdateCompletedEvent
|
|
40
|
+
from agno.run.team import MemoryUpdateStartedEvent as TeamMemoryUpdateStartedEvent
|
|
41
|
+
from agno.run.team import OutputModelResponseCompletedEvent as TeamOutputModelResponseCompletedEvent
|
|
42
|
+
from agno.run.team import OutputModelResponseStartedEvent as TeamOutputModelResponseStartedEvent
|
|
43
|
+
from agno.run.team import ParserModelResponseCompletedEvent as TeamParserModelResponseCompletedEvent
|
|
44
|
+
from agno.run.team import ParserModelResponseStartedEvent as TeamParserModelResponseStartedEvent
|
|
45
|
+
from agno.run.team import PostHookCompletedEvent as TeamPostHookCompletedEvent
|
|
46
|
+
from agno.run.team import PostHookStartedEvent as TeamPostHookStartedEvent
|
|
47
|
+
from agno.run.team import PreHookCompletedEvent as TeamPreHookCompletedEvent
|
|
48
|
+
from agno.run.team import PreHookStartedEvent as TeamPreHookStartedEvent
|
|
49
|
+
from agno.run.team import ReasoningCompletedEvent as TeamReasoningCompletedEvent
|
|
50
|
+
from agno.run.team import ReasoningStartedEvent as TeamReasoningStartedEvent
|
|
51
|
+
from agno.run.team import ReasoningStepEvent as TeamReasoningStepEvent
|
|
52
|
+
from agno.run.team import RunCancelledEvent as TeamRunCancelledEvent
|
|
53
|
+
from agno.run.team import RunCompletedEvent as TeamRunCompletedEvent
|
|
54
|
+
from agno.run.team import RunContentCompletedEvent as TeamRunContentCompletedEvent
|
|
55
|
+
from agno.run.team import RunContentEvent as TeamRunContentEvent
|
|
56
|
+
from agno.run.team import RunErrorEvent as TeamRunErrorEvent
|
|
57
|
+
from agno.run.team import RunStartedEvent as TeamRunStartedEvent
|
|
58
|
+
from agno.run.team import SessionSummaryCompletedEvent as TeamSessionSummaryCompletedEvent
|
|
59
|
+
from agno.run.team import SessionSummaryStartedEvent as TeamSessionSummaryStartedEvent
|
|
60
|
+
from agno.run.team import TeamRunEvent, TeamRunInput, TeamRunOutput, TeamRunOutputEvent
|
|
61
|
+
from agno.run.team import ToolCallCompletedEvent as TeamToolCallCompletedEvent
|
|
62
|
+
from agno.run.team import ToolCallStartedEvent as TeamToolCallStartedEvent
|
|
63
|
+
from agno.session.summary import SessionSummary
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
def create_team_run_started_event(from_run_response: TeamRunOutput) -> TeamRunStartedEvent:
|
|
67
|
+
return TeamRunStartedEvent(
|
|
68
|
+
session_id=from_run_response.session_id,
|
|
69
|
+
team_id=from_run_response.team_id, # type: ignore
|
|
70
|
+
team_name=from_run_response.team_name, # type: ignore
|
|
71
|
+
run_id=from_run_response.run_id,
|
|
72
|
+
model=from_run_response.model, # type: ignore
|
|
73
|
+
model_provider=from_run_response.model_provider, # type: ignore
|
|
74
|
+
)
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
def create_run_started_event(from_run_response: RunOutput) -> RunStartedEvent:
|
|
78
|
+
return RunStartedEvent(
|
|
79
|
+
session_id=from_run_response.session_id,
|
|
80
|
+
agent_id=from_run_response.agent_id, # type: ignore
|
|
81
|
+
agent_name=from_run_response.agent_name, # type: ignore
|
|
82
|
+
run_id=from_run_response.run_id,
|
|
83
|
+
model=from_run_response.model, # type: ignore
|
|
84
|
+
model_provider=from_run_response.model_provider, # type: ignore
|
|
85
|
+
)
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
def create_team_run_completed_event(from_run_response: TeamRunOutput) -> TeamRunCompletedEvent:
|
|
89
|
+
return TeamRunCompletedEvent(
|
|
90
|
+
session_id=from_run_response.session_id,
|
|
91
|
+
team_id=from_run_response.team_id, # type: ignore
|
|
92
|
+
team_name=from_run_response.team_name, # type: ignore
|
|
93
|
+
run_id=from_run_response.run_id,
|
|
94
|
+
content=from_run_response.content, # type: ignore
|
|
95
|
+
content_type=from_run_response.content_type, # type: ignore
|
|
96
|
+
reasoning_content=from_run_response.reasoning_content, # type: ignore
|
|
97
|
+
citations=from_run_response.citations, # type: ignore
|
|
98
|
+
model_provider_data=from_run_response.model_provider_data, # type: ignore
|
|
99
|
+
images=from_run_response.images, # type: ignore
|
|
100
|
+
videos=from_run_response.videos, # type: ignore
|
|
101
|
+
audio=from_run_response.audio, # type: ignore
|
|
102
|
+
response_audio=from_run_response.response_audio, # type: ignore
|
|
103
|
+
references=from_run_response.references, # type: ignore
|
|
104
|
+
additional_input=from_run_response.additional_input, # type: ignore
|
|
105
|
+
reasoning_steps=from_run_response.reasoning_steps, # type: ignore
|
|
106
|
+
reasoning_messages=from_run_response.reasoning_messages, # type: ignore
|
|
107
|
+
member_responses=from_run_response.member_responses, # type: ignore
|
|
108
|
+
metadata=from_run_response.metadata, # type: ignore
|
|
109
|
+
metrics=from_run_response.metrics, # type: ignore
|
|
110
|
+
session_state=from_run_response.session_state, # type: ignore
|
|
111
|
+
)
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
def create_run_completed_event(from_run_response: RunOutput) -> RunCompletedEvent:
|
|
115
|
+
return RunCompletedEvent(
|
|
116
|
+
session_id=from_run_response.session_id,
|
|
117
|
+
agent_id=from_run_response.agent_id, # type: ignore
|
|
118
|
+
agent_name=from_run_response.agent_name, # type: ignore
|
|
119
|
+
run_id=from_run_response.run_id,
|
|
120
|
+
content=from_run_response.content, # type: ignore
|
|
121
|
+
content_type=from_run_response.content_type, # type: ignore
|
|
122
|
+
reasoning_content=from_run_response.reasoning_content, # type: ignore
|
|
123
|
+
citations=from_run_response.citations, # type: ignore
|
|
124
|
+
model_provider_data=from_run_response.model_provider_data, # type: ignore
|
|
125
|
+
images=from_run_response.images, # type: ignore
|
|
126
|
+
videos=from_run_response.videos, # type: ignore
|
|
127
|
+
audio=from_run_response.audio, # type: ignore
|
|
128
|
+
response_audio=from_run_response.response_audio, # type: ignore
|
|
129
|
+
references=from_run_response.references, # type: ignore
|
|
130
|
+
additional_input=from_run_response.additional_input, # type: ignore
|
|
131
|
+
reasoning_steps=from_run_response.reasoning_steps, # type: ignore
|
|
132
|
+
reasoning_messages=from_run_response.reasoning_messages, # type: ignore
|
|
133
|
+
metadata=from_run_response.metadata, # type: ignore
|
|
134
|
+
metrics=from_run_response.metrics, # type: ignore
|
|
135
|
+
session_state=from_run_response.session_state, # type: ignore
|
|
136
|
+
)
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
def create_run_paused_event(
|
|
140
|
+
from_run_response: RunOutput,
|
|
141
|
+
tools: Optional[List[ToolExecution]] = None,
|
|
142
|
+
requirements: Optional[List[RunRequirement]] = None,
|
|
143
|
+
) -> RunPausedEvent:
|
|
144
|
+
return RunPausedEvent(
|
|
145
|
+
session_id=from_run_response.session_id,
|
|
146
|
+
agent_id=from_run_response.agent_id, # type: ignore
|
|
147
|
+
agent_name=from_run_response.agent_name, # type: ignore
|
|
148
|
+
run_id=from_run_response.run_id,
|
|
149
|
+
tools=tools,
|
|
150
|
+
requirements=requirements,
|
|
151
|
+
content=from_run_response.content,
|
|
152
|
+
)
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
def create_run_continued_event(from_run_response: RunOutput) -> RunContinuedEvent:
|
|
156
|
+
return RunContinuedEvent(
|
|
157
|
+
session_id=from_run_response.session_id,
|
|
158
|
+
agent_id=from_run_response.agent_id, # type: ignore
|
|
159
|
+
agent_name=from_run_response.agent_name, # type: ignore
|
|
160
|
+
run_id=from_run_response.run_id,
|
|
161
|
+
)
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
def create_team_run_error_event(from_run_response: TeamRunOutput, error: str) -> TeamRunErrorEvent:
|
|
165
|
+
return TeamRunErrorEvent(
|
|
166
|
+
session_id=from_run_response.session_id,
|
|
167
|
+
team_id=from_run_response.team_id, # type: ignore
|
|
168
|
+
team_name=from_run_response.team_name, # type: ignore
|
|
169
|
+
run_id=from_run_response.run_id,
|
|
170
|
+
content=error,
|
|
171
|
+
)
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
def create_run_error_event(from_run_response: RunOutput, error: str) -> RunErrorEvent:
|
|
175
|
+
return RunErrorEvent(
|
|
176
|
+
session_id=from_run_response.session_id,
|
|
177
|
+
agent_id=from_run_response.agent_id, # type: ignore
|
|
178
|
+
agent_name=from_run_response.agent_name, # type: ignore
|
|
179
|
+
run_id=from_run_response.run_id,
|
|
180
|
+
content=error,
|
|
181
|
+
)
|
|
182
|
+
|
|
183
|
+
|
|
184
|
+
def create_team_run_cancelled_event(from_run_response: TeamRunOutput, reason: str) -> TeamRunCancelledEvent:
|
|
185
|
+
return TeamRunCancelledEvent(
|
|
186
|
+
session_id=from_run_response.session_id,
|
|
187
|
+
team_id=from_run_response.team_id, # type: ignore
|
|
188
|
+
team_name=from_run_response.team_name, # type: ignore
|
|
189
|
+
run_id=from_run_response.run_id,
|
|
190
|
+
reason=reason,
|
|
191
|
+
)
|
|
192
|
+
|
|
193
|
+
|
|
194
|
+
def create_run_cancelled_event(from_run_response: RunOutput, reason: str) -> RunCancelledEvent:
|
|
195
|
+
return RunCancelledEvent(
|
|
196
|
+
session_id=from_run_response.session_id,
|
|
197
|
+
agent_id=from_run_response.agent_id, # type: ignore
|
|
198
|
+
agent_name=from_run_response.agent_name, # type: ignore
|
|
199
|
+
run_id=from_run_response.run_id,
|
|
200
|
+
reason=reason,
|
|
201
|
+
)
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
def create_pre_hook_started_event(
|
|
205
|
+
from_run_response: RunOutput, pre_hook_name: Optional[str] = None, run_input: Optional[RunInput] = None
|
|
206
|
+
) -> PreHookStartedEvent:
|
|
207
|
+
from copy import deepcopy
|
|
208
|
+
|
|
209
|
+
return PreHookStartedEvent(
|
|
210
|
+
session_id=from_run_response.session_id,
|
|
211
|
+
agent_id=from_run_response.agent_id, # type: ignore
|
|
212
|
+
agent_name=from_run_response.agent_name, # type: ignore
|
|
213
|
+
run_id=from_run_response.run_id,
|
|
214
|
+
pre_hook_name=pre_hook_name,
|
|
215
|
+
run_input=deepcopy(run_input),
|
|
216
|
+
)
|
|
217
|
+
|
|
218
|
+
|
|
219
|
+
def create_team_pre_hook_started_event(
|
|
220
|
+
from_run_response: TeamRunOutput, pre_hook_name: Optional[str] = None, run_input: Optional[TeamRunInput] = None
|
|
221
|
+
) -> TeamPreHookStartedEvent:
|
|
222
|
+
from copy import deepcopy
|
|
223
|
+
|
|
224
|
+
return TeamPreHookStartedEvent(
|
|
225
|
+
session_id=from_run_response.session_id,
|
|
226
|
+
team_id=from_run_response.team_id, # type: ignore
|
|
227
|
+
team_name=from_run_response.team_name, # type: ignore
|
|
228
|
+
run_id=from_run_response.run_id,
|
|
229
|
+
pre_hook_name=pre_hook_name,
|
|
230
|
+
run_input=deepcopy(run_input),
|
|
231
|
+
)
|
|
232
|
+
|
|
233
|
+
|
|
234
|
+
def create_pre_hook_completed_event(
|
|
235
|
+
from_run_response: RunOutput, pre_hook_name: Optional[str] = None, run_input: Optional[RunInput] = None
|
|
236
|
+
) -> PreHookCompletedEvent:
|
|
237
|
+
from copy import deepcopy
|
|
238
|
+
|
|
239
|
+
return PreHookCompletedEvent(
|
|
240
|
+
session_id=from_run_response.session_id,
|
|
241
|
+
agent_id=from_run_response.agent_id, # type: ignore
|
|
242
|
+
agent_name=from_run_response.agent_name, # type: ignore
|
|
243
|
+
run_id=from_run_response.run_id,
|
|
244
|
+
pre_hook_name=pre_hook_name,
|
|
245
|
+
run_input=deepcopy(run_input),
|
|
246
|
+
)
|
|
247
|
+
|
|
248
|
+
|
|
249
|
+
def create_team_pre_hook_completed_event(
|
|
250
|
+
from_run_response: TeamRunOutput, pre_hook_name: Optional[str] = None, run_input: Optional[TeamRunInput] = None
|
|
251
|
+
) -> TeamPreHookCompletedEvent:
|
|
252
|
+
from copy import deepcopy
|
|
253
|
+
|
|
254
|
+
return TeamPreHookCompletedEvent(
|
|
255
|
+
session_id=from_run_response.session_id,
|
|
256
|
+
team_id=from_run_response.team_id, # type: ignore
|
|
257
|
+
team_name=from_run_response.team_name, # type: ignore
|
|
258
|
+
run_id=from_run_response.run_id,
|
|
259
|
+
pre_hook_name=pre_hook_name,
|
|
260
|
+
run_input=deepcopy(run_input),
|
|
261
|
+
)
|
|
262
|
+
|
|
263
|
+
|
|
264
|
+
def create_post_hook_started_event(
|
|
265
|
+
from_run_response: RunOutput, post_hook_name: Optional[str] = None
|
|
266
|
+
) -> PostHookStartedEvent:
|
|
267
|
+
return PostHookStartedEvent(
|
|
268
|
+
session_id=from_run_response.session_id,
|
|
269
|
+
agent_id=from_run_response.agent_id, # type: ignore
|
|
270
|
+
agent_name=from_run_response.agent_name, # type: ignore
|
|
271
|
+
run_id=from_run_response.run_id,
|
|
272
|
+
post_hook_name=post_hook_name,
|
|
273
|
+
)
|
|
274
|
+
|
|
275
|
+
|
|
276
|
+
def create_team_post_hook_started_event(
|
|
277
|
+
from_run_response: TeamRunOutput, post_hook_name: Optional[str] = None
|
|
278
|
+
) -> TeamPostHookStartedEvent:
|
|
279
|
+
return TeamPostHookStartedEvent(
|
|
280
|
+
session_id=from_run_response.session_id,
|
|
281
|
+
team_id=from_run_response.team_id, # type: ignore
|
|
282
|
+
team_name=from_run_response.team_name, # type: ignore
|
|
283
|
+
run_id=from_run_response.run_id,
|
|
284
|
+
post_hook_name=post_hook_name,
|
|
285
|
+
)
|
|
286
|
+
|
|
287
|
+
|
|
288
|
+
def create_post_hook_completed_event(
|
|
289
|
+
from_run_response: RunOutput, post_hook_name: Optional[str] = None
|
|
290
|
+
) -> PostHookCompletedEvent:
|
|
291
|
+
return PostHookCompletedEvent(
|
|
292
|
+
session_id=from_run_response.session_id,
|
|
293
|
+
agent_id=from_run_response.agent_id, # type: ignore
|
|
294
|
+
agent_name=from_run_response.agent_name, # type: ignore
|
|
295
|
+
run_id=from_run_response.run_id,
|
|
296
|
+
post_hook_name=post_hook_name,
|
|
297
|
+
)
|
|
298
|
+
|
|
299
|
+
|
|
300
|
+
def create_team_post_hook_completed_event(
|
|
301
|
+
from_run_response: TeamRunOutput, post_hook_name: Optional[str] = None
|
|
302
|
+
) -> TeamPostHookCompletedEvent:
|
|
303
|
+
return TeamPostHookCompletedEvent(
|
|
304
|
+
session_id=from_run_response.session_id,
|
|
305
|
+
team_id=from_run_response.team_id, # type: ignore
|
|
306
|
+
team_name=from_run_response.team_name, # type: ignore
|
|
307
|
+
run_id=from_run_response.run_id,
|
|
308
|
+
post_hook_name=post_hook_name,
|
|
309
|
+
)
|
|
310
|
+
|
|
311
|
+
|
|
312
|
+
def create_memory_update_started_event(from_run_response: RunOutput) -> MemoryUpdateStartedEvent:
|
|
313
|
+
return MemoryUpdateStartedEvent(
|
|
314
|
+
session_id=from_run_response.session_id,
|
|
315
|
+
agent_id=from_run_response.agent_id, # type: ignore
|
|
316
|
+
agent_name=from_run_response.agent_name, # type: ignore
|
|
317
|
+
run_id=from_run_response.run_id,
|
|
318
|
+
)
|
|
319
|
+
|
|
320
|
+
|
|
321
|
+
def create_team_memory_update_started_event(from_run_response: TeamRunOutput) -> TeamMemoryUpdateStartedEvent:
|
|
322
|
+
return TeamMemoryUpdateStartedEvent(
|
|
323
|
+
session_id=from_run_response.session_id,
|
|
324
|
+
team_id=from_run_response.team_id, # type: ignore
|
|
325
|
+
team_name=from_run_response.team_name, # type: ignore
|
|
326
|
+
run_id=from_run_response.run_id,
|
|
327
|
+
)
|
|
328
|
+
|
|
329
|
+
|
|
330
|
+
def create_memory_update_completed_event(from_run_response: RunOutput) -> MemoryUpdateCompletedEvent:
|
|
331
|
+
return MemoryUpdateCompletedEvent(
|
|
332
|
+
session_id=from_run_response.session_id,
|
|
333
|
+
agent_id=from_run_response.agent_id, # type: ignore
|
|
334
|
+
agent_name=from_run_response.agent_name, # type: ignore
|
|
335
|
+
run_id=from_run_response.run_id,
|
|
336
|
+
)
|
|
337
|
+
|
|
338
|
+
|
|
339
|
+
def create_team_memory_update_completed_event(from_run_response: TeamRunOutput) -> TeamMemoryUpdateCompletedEvent:
|
|
340
|
+
return TeamMemoryUpdateCompletedEvent(
|
|
341
|
+
session_id=from_run_response.session_id,
|
|
342
|
+
team_id=from_run_response.team_id, # type: ignore
|
|
343
|
+
team_name=from_run_response.team_name, # type: ignore
|
|
344
|
+
run_id=from_run_response.run_id,
|
|
345
|
+
)
|
|
346
|
+
|
|
347
|
+
|
|
348
|
+
def create_team_session_summary_started_event(
|
|
349
|
+
from_run_response: TeamRunOutput,
|
|
350
|
+
) -> TeamSessionSummaryStartedEvent:
|
|
351
|
+
return TeamSessionSummaryStartedEvent(
|
|
352
|
+
session_id=from_run_response.session_id,
|
|
353
|
+
team_id=from_run_response.team_id, # type: ignore
|
|
354
|
+
team_name=from_run_response.team_name, # type: ignore
|
|
355
|
+
run_id=from_run_response.run_id,
|
|
356
|
+
)
|
|
357
|
+
|
|
358
|
+
|
|
359
|
+
def create_team_session_summary_completed_event(
|
|
360
|
+
from_run_response: TeamRunOutput, session_summary: Optional[SessionSummary] = None
|
|
361
|
+
) -> TeamSessionSummaryCompletedEvent:
|
|
362
|
+
return TeamSessionSummaryCompletedEvent(
|
|
363
|
+
session_id=from_run_response.session_id,
|
|
364
|
+
team_id=from_run_response.team_id, # type: ignore
|
|
365
|
+
team_name=from_run_response.team_name, # type: ignore
|
|
366
|
+
run_id=from_run_response.run_id,
|
|
367
|
+
session_summary=session_summary,
|
|
368
|
+
)
|
|
369
|
+
|
|
370
|
+
|
|
371
|
+
def create_session_summary_started_event(from_run_response: RunOutput) -> SessionSummaryStartedEvent:
|
|
372
|
+
return SessionSummaryStartedEvent(
|
|
373
|
+
session_id=from_run_response.session_id,
|
|
374
|
+
agent_id=from_run_response.agent_id, # type: ignore
|
|
375
|
+
agent_name=from_run_response.agent_name, # type: ignore
|
|
376
|
+
run_id=from_run_response.run_id,
|
|
377
|
+
)
|
|
378
|
+
|
|
379
|
+
|
|
380
|
+
def create_session_summary_completed_event(
|
|
381
|
+
from_run_response: RunOutput, session_summary: Optional[SessionSummary] = None
|
|
382
|
+
) -> SessionSummaryCompletedEvent:
|
|
383
|
+
return SessionSummaryCompletedEvent(
|
|
384
|
+
session_id=from_run_response.session_id,
|
|
385
|
+
agent_id=from_run_response.agent_id, # type: ignore
|
|
386
|
+
agent_name=from_run_response.agent_name, # type: ignore
|
|
387
|
+
run_id=from_run_response.run_id,
|
|
388
|
+
session_summary=session_summary,
|
|
389
|
+
)
|
|
390
|
+
|
|
391
|
+
|
|
392
|
+
def create_reasoning_started_event(from_run_response: RunOutput) -> ReasoningStartedEvent:
|
|
393
|
+
return ReasoningStartedEvent(
|
|
394
|
+
session_id=from_run_response.session_id,
|
|
395
|
+
agent_id=from_run_response.agent_id, # type: ignore
|
|
396
|
+
agent_name=from_run_response.agent_name, # type: ignore
|
|
397
|
+
run_id=from_run_response.run_id,
|
|
398
|
+
)
|
|
399
|
+
|
|
400
|
+
|
|
401
|
+
def create_team_reasoning_started_event(from_run_response: TeamRunOutput) -> TeamReasoningStartedEvent:
|
|
402
|
+
return TeamReasoningStartedEvent(
|
|
403
|
+
session_id=from_run_response.session_id,
|
|
404
|
+
team_id=from_run_response.team_id, # type: ignore
|
|
405
|
+
team_name=from_run_response.team_name, # type: ignore
|
|
406
|
+
run_id=from_run_response.run_id,
|
|
407
|
+
)
|
|
408
|
+
|
|
409
|
+
|
|
410
|
+
def create_reasoning_step_event(
|
|
411
|
+
from_run_response: RunOutput, reasoning_step: ReasoningStep, reasoning_content: str
|
|
412
|
+
) -> ReasoningStepEvent:
|
|
413
|
+
return ReasoningStepEvent(
|
|
414
|
+
session_id=from_run_response.session_id,
|
|
415
|
+
agent_id=from_run_response.agent_id, # type: ignore
|
|
416
|
+
agent_name=from_run_response.agent_name, # type: ignore
|
|
417
|
+
run_id=from_run_response.run_id,
|
|
418
|
+
content=reasoning_step,
|
|
419
|
+
content_type=reasoning_step.__class__.__name__,
|
|
420
|
+
reasoning_content=reasoning_content,
|
|
421
|
+
)
|
|
422
|
+
|
|
423
|
+
|
|
424
|
+
def create_team_reasoning_step_event(
|
|
425
|
+
from_run_response: TeamRunOutput, reasoning_step: ReasoningStep, reasoning_content: str
|
|
426
|
+
) -> TeamReasoningStepEvent:
|
|
427
|
+
return TeamReasoningStepEvent(
|
|
428
|
+
session_id=from_run_response.session_id,
|
|
429
|
+
team_id=from_run_response.team_id, # type: ignore
|
|
430
|
+
team_name=from_run_response.team_name, # type: ignore
|
|
431
|
+
run_id=from_run_response.run_id,
|
|
432
|
+
content=reasoning_step,
|
|
433
|
+
content_type=reasoning_step.__class__.__name__,
|
|
434
|
+
reasoning_content=reasoning_content,
|
|
435
|
+
)
|
|
436
|
+
|
|
437
|
+
|
|
438
|
+
def create_reasoning_completed_event(
|
|
439
|
+
from_run_response: RunOutput, content: Optional[Any] = None, content_type: Optional[str] = None
|
|
440
|
+
) -> ReasoningCompletedEvent:
|
|
441
|
+
return ReasoningCompletedEvent(
|
|
442
|
+
session_id=from_run_response.session_id,
|
|
443
|
+
agent_id=from_run_response.agent_id, # type: ignore
|
|
444
|
+
agent_name=from_run_response.agent_name, # type: ignore
|
|
445
|
+
run_id=from_run_response.run_id,
|
|
446
|
+
content=content,
|
|
447
|
+
content_type=content_type or "str",
|
|
448
|
+
)
|
|
449
|
+
|
|
450
|
+
|
|
451
|
+
def create_team_reasoning_completed_event(
|
|
452
|
+
from_run_response: TeamRunOutput, content: Optional[Any] = None, content_type: Optional[str] = None
|
|
453
|
+
) -> TeamReasoningCompletedEvent:
|
|
454
|
+
return TeamReasoningCompletedEvent(
|
|
455
|
+
session_id=from_run_response.session_id,
|
|
456
|
+
team_id=from_run_response.team_id, # type: ignore
|
|
457
|
+
team_name=from_run_response.team_name, # type: ignore
|
|
458
|
+
run_id=from_run_response.run_id,
|
|
459
|
+
content=content,
|
|
460
|
+
content_type=content_type or "str",
|
|
461
|
+
)
|
|
462
|
+
|
|
463
|
+
|
|
464
|
+
def create_tool_call_started_event(from_run_response: RunOutput, tool: ToolExecution) -> ToolCallStartedEvent:
|
|
465
|
+
return ToolCallStartedEvent(
|
|
466
|
+
session_id=from_run_response.session_id,
|
|
467
|
+
agent_id=from_run_response.agent_id, # type: ignore
|
|
468
|
+
agent_name=from_run_response.agent_name, # type: ignore
|
|
469
|
+
run_id=from_run_response.run_id,
|
|
470
|
+
tool=tool,
|
|
471
|
+
)
|
|
472
|
+
|
|
473
|
+
|
|
474
|
+
def create_team_tool_call_started_event(
|
|
475
|
+
from_run_response: TeamRunOutput, tool: ToolExecution
|
|
476
|
+
) -> TeamToolCallStartedEvent:
|
|
477
|
+
return TeamToolCallStartedEvent(
|
|
478
|
+
session_id=from_run_response.session_id,
|
|
479
|
+
team_id=from_run_response.team_id, # type: ignore
|
|
480
|
+
team_name=from_run_response.team_name, # type: ignore
|
|
481
|
+
run_id=from_run_response.run_id,
|
|
482
|
+
tool=tool,
|
|
483
|
+
)
|
|
484
|
+
|
|
485
|
+
|
|
486
|
+
def create_tool_call_completed_event(
|
|
487
|
+
from_run_response: RunOutput, tool: ToolExecution, content: Optional[Any] = None
|
|
488
|
+
) -> ToolCallCompletedEvent:
|
|
489
|
+
return ToolCallCompletedEvent(
|
|
490
|
+
session_id=from_run_response.session_id,
|
|
491
|
+
agent_id=from_run_response.agent_id, # type: ignore
|
|
492
|
+
agent_name=from_run_response.agent_name, # type: ignore
|
|
493
|
+
run_id=from_run_response.run_id,
|
|
494
|
+
tool=tool,
|
|
495
|
+
content=content,
|
|
496
|
+
images=from_run_response.images,
|
|
497
|
+
videos=from_run_response.videos,
|
|
498
|
+
audio=from_run_response.audio,
|
|
499
|
+
)
|
|
500
|
+
|
|
501
|
+
|
|
502
|
+
def create_team_tool_call_completed_event(
|
|
503
|
+
from_run_response: TeamRunOutput, tool: ToolExecution, content: Optional[Any] = None
|
|
504
|
+
) -> TeamToolCallCompletedEvent:
|
|
505
|
+
return TeamToolCallCompletedEvent(
|
|
506
|
+
session_id=from_run_response.session_id,
|
|
507
|
+
team_id=from_run_response.team_id, # type: ignore
|
|
508
|
+
team_name=from_run_response.team_name, # type: ignore
|
|
509
|
+
run_id=from_run_response.run_id,
|
|
510
|
+
tool=tool,
|
|
511
|
+
content=content,
|
|
512
|
+
images=from_run_response.images,
|
|
513
|
+
videos=from_run_response.videos,
|
|
514
|
+
audio=from_run_response.audio,
|
|
515
|
+
)
|
|
516
|
+
|
|
517
|
+
|
|
518
|
+
def create_run_output_content_event(
|
|
519
|
+
from_run_response: RunOutput,
|
|
520
|
+
content: Optional[Any] = None,
|
|
521
|
+
content_type: Optional[str] = None,
|
|
522
|
+
reasoning_content: Optional[str] = None,
|
|
523
|
+
redacted_reasoning_content: Optional[str] = None,
|
|
524
|
+
model_provider_data: Optional[Dict[str, Any]] = None,
|
|
525
|
+
citations: Optional[Citations] = None,
|
|
526
|
+
response_audio: Optional[Audio] = None,
|
|
527
|
+
image: Optional[Image] = None,
|
|
528
|
+
) -> RunContentEvent:
|
|
529
|
+
thinking_combined = (reasoning_content or "") + (redacted_reasoning_content or "")
|
|
530
|
+
|
|
531
|
+
return RunContentEvent(
|
|
532
|
+
session_id=from_run_response.session_id,
|
|
533
|
+
agent_id=from_run_response.agent_id, # type: ignore
|
|
534
|
+
agent_name=from_run_response.agent_name, # type: ignore
|
|
535
|
+
run_id=from_run_response.run_id,
|
|
536
|
+
content=content,
|
|
537
|
+
content_type=content_type or "str",
|
|
538
|
+
reasoning_content=thinking_combined,
|
|
539
|
+
citations=citations,
|
|
540
|
+
response_audio=response_audio,
|
|
541
|
+
image=image,
|
|
542
|
+
references=from_run_response.references,
|
|
543
|
+
additional_input=from_run_response.additional_input,
|
|
544
|
+
reasoning_steps=from_run_response.reasoning_steps,
|
|
545
|
+
reasoning_messages=from_run_response.reasoning_messages,
|
|
546
|
+
model_provider_data=model_provider_data,
|
|
547
|
+
)
|
|
548
|
+
|
|
549
|
+
|
|
550
|
+
def create_team_run_output_content_event(
|
|
551
|
+
from_run_response: TeamRunOutput,
|
|
552
|
+
content: Optional[Any] = None,
|
|
553
|
+
content_type: Optional[str] = None,
|
|
554
|
+
reasoning_content: Optional[str] = None,
|
|
555
|
+
redacted_reasoning_content: Optional[str] = None,
|
|
556
|
+
citations: Optional[Citations] = None,
|
|
557
|
+
model_provider_data: Optional[Dict[str, Any]] = None,
|
|
558
|
+
response_audio: Optional[Audio] = None,
|
|
559
|
+
image: Optional[Image] = None,
|
|
560
|
+
) -> TeamRunContentEvent:
|
|
561
|
+
thinking_combined = (reasoning_content or "") + (redacted_reasoning_content or "")
|
|
562
|
+
|
|
563
|
+
return TeamRunContentEvent(
|
|
564
|
+
session_id=from_run_response.session_id,
|
|
565
|
+
team_id=from_run_response.team_id, # type: ignore
|
|
566
|
+
team_name=from_run_response.team_name, # type: ignore
|
|
567
|
+
run_id=from_run_response.run_id,
|
|
568
|
+
content=content,
|
|
569
|
+
content_type=content_type or "str",
|
|
570
|
+
reasoning_content=thinking_combined,
|
|
571
|
+
citations=citations,
|
|
572
|
+
model_provider_data=model_provider_data,
|
|
573
|
+
response_audio=response_audio,
|
|
574
|
+
image=image,
|
|
575
|
+
references=from_run_response.references, # type: ignore
|
|
576
|
+
additional_input=from_run_response.additional_input, # type: ignore
|
|
577
|
+
reasoning_steps=from_run_response.reasoning_steps, # type: ignore
|
|
578
|
+
reasoning_messages=from_run_response.reasoning_messages, # type: ignore
|
|
579
|
+
)
|
|
580
|
+
|
|
581
|
+
|
|
582
|
+
def create_run_content_completed_event(
|
|
583
|
+
from_run_response: RunOutput,
|
|
584
|
+
) -> RunContentCompletedEvent:
|
|
585
|
+
return RunContentCompletedEvent(
|
|
586
|
+
session_id=from_run_response.session_id,
|
|
587
|
+
agent_id=from_run_response.agent_id, # type: ignore
|
|
588
|
+
agent_name=from_run_response.agent_name, # type: ignore
|
|
589
|
+
run_id=from_run_response.run_id,
|
|
590
|
+
)
|
|
591
|
+
|
|
592
|
+
|
|
593
|
+
def create_team_run_content_completed_event(
|
|
594
|
+
from_run_response: TeamRunOutput,
|
|
595
|
+
) -> TeamRunContentCompletedEvent:
|
|
596
|
+
return TeamRunContentCompletedEvent(
|
|
597
|
+
session_id=from_run_response.session_id,
|
|
598
|
+
team_id=from_run_response.team_id, # type: ignore
|
|
599
|
+
team_name=from_run_response.team_name, # type: ignore
|
|
600
|
+
run_id=from_run_response.run_id,
|
|
601
|
+
)
|
|
602
|
+
|
|
603
|
+
|
|
604
|
+
def create_parser_model_response_started_event(
|
|
605
|
+
from_run_response: RunOutput,
|
|
606
|
+
) -> ParserModelResponseStartedEvent:
|
|
607
|
+
return ParserModelResponseStartedEvent(
|
|
608
|
+
session_id=from_run_response.session_id,
|
|
609
|
+
agent_id=from_run_response.agent_id, # type: ignore
|
|
610
|
+
agent_name=from_run_response.agent_name, # type: ignore
|
|
611
|
+
run_id=from_run_response.run_id,
|
|
612
|
+
)
|
|
613
|
+
|
|
614
|
+
|
|
615
|
+
def create_parser_model_response_completed_event(
|
|
616
|
+
from_run_response: RunOutput,
|
|
617
|
+
) -> ParserModelResponseCompletedEvent:
|
|
618
|
+
return ParserModelResponseCompletedEvent(
|
|
619
|
+
session_id=from_run_response.session_id,
|
|
620
|
+
agent_id=from_run_response.agent_id, # type: ignore
|
|
621
|
+
agent_name=from_run_response.agent_name, # type: ignore
|
|
622
|
+
run_id=from_run_response.run_id,
|
|
623
|
+
)
|
|
624
|
+
|
|
625
|
+
|
|
626
|
+
def create_team_parser_model_response_started_event(
|
|
627
|
+
from_run_response: TeamRunOutput,
|
|
628
|
+
) -> TeamParserModelResponseStartedEvent:
|
|
629
|
+
return TeamParserModelResponseStartedEvent(
|
|
630
|
+
session_id=from_run_response.session_id,
|
|
631
|
+
team_id=from_run_response.team_id, # type: ignore
|
|
632
|
+
team_name=from_run_response.team_name, # type: ignore
|
|
633
|
+
run_id=from_run_response.run_id,
|
|
634
|
+
)
|
|
635
|
+
|
|
636
|
+
|
|
637
|
+
def create_team_parser_model_response_completed_event(
|
|
638
|
+
from_run_response: TeamRunOutput,
|
|
639
|
+
) -> TeamParserModelResponseCompletedEvent:
|
|
640
|
+
return TeamParserModelResponseCompletedEvent(
|
|
641
|
+
session_id=from_run_response.session_id,
|
|
642
|
+
team_id=from_run_response.team_id, # type: ignore
|
|
643
|
+
team_name=from_run_response.team_name, # type: ignore
|
|
644
|
+
run_id=from_run_response.run_id,
|
|
645
|
+
)
|
|
646
|
+
|
|
647
|
+
|
|
648
|
+
def create_output_model_response_started_event(from_run_response: RunOutput) -> OutputModelResponseStartedEvent:
|
|
649
|
+
return OutputModelResponseStartedEvent(
|
|
650
|
+
session_id=from_run_response.session_id,
|
|
651
|
+
agent_id=from_run_response.agent_id, # type: ignore
|
|
652
|
+
agent_name=from_run_response.agent_name, # type: ignore
|
|
653
|
+
run_id=from_run_response.run_id,
|
|
654
|
+
)
|
|
655
|
+
|
|
656
|
+
|
|
657
|
+
def create_output_model_response_completed_event(from_run_response: RunOutput) -> OutputModelResponseCompletedEvent:
|
|
658
|
+
return OutputModelResponseCompletedEvent(
|
|
659
|
+
session_id=from_run_response.session_id,
|
|
660
|
+
agent_id=from_run_response.agent_id, # type: ignore
|
|
661
|
+
agent_name=from_run_response.agent_name, # type: ignore
|
|
662
|
+
run_id=from_run_response.run_id,
|
|
663
|
+
)
|
|
664
|
+
|
|
665
|
+
|
|
666
|
+
def create_team_output_model_response_started_event(
|
|
667
|
+
from_run_response: TeamRunOutput,
|
|
668
|
+
) -> TeamOutputModelResponseStartedEvent:
|
|
669
|
+
return TeamOutputModelResponseStartedEvent(
|
|
670
|
+
session_id=from_run_response.session_id,
|
|
671
|
+
team_id=from_run_response.team_id, # type: ignore
|
|
672
|
+
team_name=from_run_response.team_name, # type: ignore
|
|
673
|
+
run_id=from_run_response.run_id,
|
|
674
|
+
)
|
|
675
|
+
|
|
676
|
+
|
|
677
|
+
def create_team_output_model_response_completed_event(
|
|
678
|
+
from_run_response: TeamRunOutput,
|
|
679
|
+
) -> TeamOutputModelResponseCompletedEvent:
|
|
680
|
+
return TeamOutputModelResponseCompletedEvent(
|
|
681
|
+
session_id=from_run_response.session_id,
|
|
682
|
+
team_id=from_run_response.team_id, # type: ignore
|
|
683
|
+
team_name=from_run_response.team_name, # type: ignore
|
|
684
|
+
run_id=from_run_response.run_id,
|
|
685
|
+
)
|
|
686
|
+
|
|
687
|
+
|
|
688
|
+
def handle_event(
|
|
689
|
+
event: Union[RunOutputEvent, TeamRunOutputEvent],
|
|
690
|
+
run_response: Union[RunOutput, TeamRunOutput],
|
|
691
|
+
events_to_skip: Optional[List[Union[RunEvent, TeamRunEvent]]] = None,
|
|
692
|
+
store_events: bool = False,
|
|
693
|
+
) -> Union[RunOutputEvent, TeamRunOutputEvent]:
|
|
694
|
+
# We only store events that are not run_response_content events
|
|
695
|
+
events_to_skip = [event.value for event in events_to_skip] if events_to_skip else []
|
|
696
|
+
if store_events and event.event not in events_to_skip:
|
|
697
|
+
if run_response.events is None:
|
|
698
|
+
run_response.events = []
|
|
699
|
+
run_response.events.append(event) # type: ignore
|
|
700
|
+
return event
|