agno 1.8.1__py3-none-any.whl → 2.0.0__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 +19 -27
- agno/agent/agent.py +3143 -4170
- agno/api/agent.py +11 -67
- agno/api/api.py +5 -46
- agno/api/evals.py +8 -19
- agno/api/os.py +17 -0
- agno/api/routes.py +6 -41
- agno/api/schemas/__init__.py +9 -0
- agno/api/schemas/agent.py +5 -21
- agno/api/schemas/evals.py +7 -16
- agno/api/schemas/os.py +14 -0
- agno/api/schemas/team.py +5 -21
- agno/api/schemas/utils.py +21 -0
- agno/api/schemas/workflows.py +11 -7
- agno/api/settings.py +53 -0
- agno/api/team.py +11 -66
- 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/db/__init__.py +24 -0
- agno/db/base.py +245 -0
- agno/db/dynamo/__init__.py +3 -0
- agno/db/dynamo/dynamo.py +1743 -0
- agno/db/dynamo/schemas.py +278 -0
- agno/db/dynamo/utils.py +684 -0
- agno/db/firestore/__init__.py +3 -0
- agno/db/firestore/firestore.py +1432 -0
- agno/db/firestore/schemas.py +130 -0
- agno/db/firestore/utils.py +278 -0
- agno/db/gcs_json/__init__.py +3 -0
- agno/db/gcs_json/gcs_json_db.py +1001 -0
- agno/db/gcs_json/utils.py +194 -0
- agno/db/in_memory/__init__.py +3 -0
- agno/db/in_memory/in_memory_db.py +882 -0
- agno/db/in_memory/utils.py +172 -0
- agno/db/json/__init__.py +3 -0
- agno/db/json/json_db.py +1045 -0
- agno/db/json/utils.py +196 -0
- agno/db/migrations/v1_to_v2.py +162 -0
- agno/db/mongo/__init__.py +3 -0
- agno/db/mongo/mongo.py +1416 -0
- agno/db/mongo/schemas.py +77 -0
- agno/db/mongo/utils.py +204 -0
- agno/db/mysql/__init__.py +3 -0
- agno/db/mysql/mysql.py +1719 -0
- agno/db/mysql/schemas.py +124 -0
- agno/db/mysql/utils.py +297 -0
- agno/db/postgres/__init__.py +3 -0
- agno/db/postgres/postgres.py +1710 -0
- agno/db/postgres/schemas.py +124 -0
- agno/db/postgres/utils.py +280 -0
- agno/db/redis/__init__.py +3 -0
- agno/db/redis/redis.py +1367 -0
- agno/db/redis/schemas.py +109 -0
- agno/db/redis/utils.py +288 -0
- agno/db/schemas/__init__.py +3 -0
- agno/db/schemas/evals.py +33 -0
- agno/db/schemas/knowledge.py +40 -0
- agno/db/schemas/memory.py +46 -0
- agno/db/singlestore/__init__.py +3 -0
- agno/db/singlestore/schemas.py +116 -0
- agno/db/singlestore/singlestore.py +1712 -0
- agno/db/singlestore/utils.py +326 -0
- agno/db/sqlite/__init__.py +3 -0
- agno/db/sqlite/schemas.py +119 -0
- agno/db/sqlite/sqlite.py +1676 -0
- agno/db/sqlite/utils.py +268 -0
- agno/db/utils.py +88 -0
- agno/eval/__init__.py +14 -0
- agno/eval/accuracy.py +154 -48
- agno/eval/performance.py +88 -23
- agno/eval/reliability.py +73 -20
- agno/eval/utils.py +23 -13
- agno/integrations/discord/__init__.py +3 -0
- agno/{app → integrations}/discord/client.py +15 -11
- agno/knowledge/__init__.py +2 -2
- agno/{document → knowledge}/chunking/agentic.py +2 -2
- agno/{document → knowledge}/chunking/document.py +2 -2
- agno/{document → knowledge}/chunking/fixed.py +3 -3
- agno/{document → knowledge}/chunking/markdown.py +2 -2
- agno/{document → knowledge}/chunking/recursive.py +2 -2
- agno/{document → knowledge}/chunking/row.py +2 -2
- agno/knowledge/chunking/semantic.py +59 -0
- agno/knowledge/chunking/strategy.py +121 -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/{embedder → knowledge/embedder}/aws_bedrock.py +127 -1
- agno/{embedder → knowledge/embedder}/azure_openai.py +65 -1
- agno/{embedder → knowledge/embedder}/base.py +6 -0
- agno/{embedder → knowledge/embedder}/cohere.py +72 -1
- agno/{embedder → knowledge/embedder}/fastembed.py +17 -1
- agno/{embedder → knowledge/embedder}/fireworks.py +1 -1
- agno/{embedder → knowledge/embedder}/google.py +74 -1
- agno/{embedder → knowledge/embedder}/huggingface.py +36 -2
- agno/{embedder → knowledge/embedder}/jina.py +48 -2
- agno/knowledge/embedder/langdb.py +22 -0
- agno/knowledge/embedder/mistral.py +139 -0
- agno/{embedder → knowledge/embedder}/nebius.py +1 -1
- agno/{embedder → knowledge/embedder}/ollama.py +54 -3
- agno/knowledge/embedder/openai.py +223 -0
- agno/{embedder → knowledge/embedder}/sentence_transformer.py +16 -1
- agno/{embedder → knowledge/embedder}/together.py +1 -1
- agno/{embedder → knowledge/embedder}/voyageai.py +49 -1
- agno/knowledge/knowledge.py +1551 -0
- agno/knowledge/reader/__init__.py +7 -0
- agno/{document → knowledge}/reader/arxiv_reader.py +32 -4
- agno/knowledge/reader/base.py +88 -0
- agno/{document → knowledge}/reader/csv_reader.py +47 -65
- agno/knowledge/reader/docx_reader.py +83 -0
- agno/{document → knowledge}/reader/firecrawl_reader.py +42 -21
- agno/{document → knowledge}/reader/json_reader.py +30 -9
- agno/{document → knowledge}/reader/markdown_reader.py +58 -9
- agno/{document → knowledge}/reader/pdf_reader.py +71 -126
- agno/knowledge/reader/reader_factory.py +268 -0
- agno/knowledge/reader/s3_reader.py +101 -0
- agno/{document → knowledge}/reader/text_reader.py +31 -10
- agno/knowledge/reader/url_reader.py +128 -0
- agno/knowledge/reader/web_search_reader.py +366 -0
- agno/{document → knowledge}/reader/website_reader.py +37 -10
- agno/knowledge/reader/wikipedia_reader.py +59 -0
- agno/knowledge/reader/youtube_reader.py +78 -0
- agno/knowledge/remote_content/remote_content.py +88 -0
- agno/{reranker → knowledge/reranker}/base.py +1 -1
- agno/{reranker → knowledge/reranker}/cohere.py +2 -2
- agno/{reranker → knowledge/reranker}/infinity.py +2 -2
- agno/{reranker → knowledge/reranker}/sentence_transformer.py +2 -2
- agno/knowledge/types.py +30 -0
- agno/knowledge/utils.py +169 -0
- agno/media.py +269 -268
- agno/memory/__init__.py +2 -10
- agno/memory/manager.py +1003 -148
- agno/models/aimlapi/__init__.py +2 -2
- agno/models/aimlapi/aimlapi.py +6 -6
- agno/models/anthropic/claude.py +131 -131
- agno/models/aws/bedrock.py +110 -182
- agno/models/aws/claude.py +64 -18
- agno/models/azure/ai_foundry.py +73 -23
- agno/models/base.py +346 -290
- agno/models/cerebras/cerebras.py +84 -27
- agno/models/cohere/chat.py +106 -98
- agno/models/google/gemini.py +105 -46
- agno/models/groq/groq.py +97 -35
- agno/models/huggingface/huggingface.py +92 -27
- agno/models/ibm/watsonx.py +72 -13
- agno/models/litellm/chat.py +85 -13
- agno/models/message.py +46 -151
- agno/models/meta/llama.py +85 -49
- agno/models/metrics.py +120 -0
- agno/models/mistral/mistral.py +90 -21
- agno/models/ollama/__init__.py +0 -2
- agno/models/ollama/chat.py +85 -47
- agno/models/openai/chat.py +154 -37
- agno/models/openai/responses.py +178 -105
- agno/models/perplexity/perplexity.py +26 -2
- agno/models/portkey/portkey.py +0 -7
- agno/models/response.py +15 -9
- agno/models/utils.py +20 -0
- agno/models/vercel/__init__.py +2 -2
- agno/models/vercel/v0.py +1 -1
- agno/models/vllm/__init__.py +2 -2
- agno/models/vllm/vllm.py +3 -3
- agno/models/xai/xai.py +10 -10
- agno/os/__init__.py +3 -0
- agno/os/app.py +497 -0
- agno/os/auth.py +47 -0
- agno/os/config.py +103 -0
- agno/os/interfaces/agui/__init__.py +3 -0
- agno/os/interfaces/agui/agui.py +31 -0
- agno/{app/agui/async_router.py → os/interfaces/agui/router.py} +16 -16
- agno/{app → os/interfaces}/agui/utils.py +77 -33
- agno/os/interfaces/base.py +21 -0
- agno/os/interfaces/slack/__init__.py +3 -0
- agno/{app/slack/async_router.py → os/interfaces/slack/router.py} +3 -5
- agno/os/interfaces/slack/slack.py +32 -0
- agno/os/interfaces/whatsapp/__init__.py +3 -0
- agno/{app/whatsapp/async_router.py → os/interfaces/whatsapp/router.py} +4 -7
- agno/os/interfaces/whatsapp/whatsapp.py +29 -0
- agno/os/mcp.py +235 -0
- agno/os/router.py +1400 -0
- agno/os/routers/__init__.py +3 -0
- agno/os/routers/evals/__init__.py +3 -0
- agno/os/routers/evals/evals.py +393 -0
- agno/os/routers/evals/schemas.py +142 -0
- agno/os/routers/evals/utils.py +161 -0
- agno/os/routers/knowledge/__init__.py +3 -0
- agno/os/routers/knowledge/knowledge.py +850 -0
- agno/os/routers/knowledge/schemas.py +118 -0
- agno/os/routers/memory/__init__.py +3 -0
- agno/os/routers/memory/memory.py +410 -0
- agno/os/routers/memory/schemas.py +58 -0
- agno/os/routers/metrics/__init__.py +3 -0
- agno/os/routers/metrics/metrics.py +178 -0
- agno/os/routers/metrics/schemas.py +47 -0
- agno/os/routers/session/__init__.py +3 -0
- agno/os/routers/session/session.py +536 -0
- agno/os/schema.py +945 -0
- agno/{app/playground → os}/settings.py +7 -15
- agno/os/utils.py +270 -0
- agno/reasoning/azure_ai_foundry.py +4 -4
- agno/reasoning/deepseek.py +4 -4
- agno/reasoning/default.py +6 -11
- agno/reasoning/groq.py +4 -4
- agno/reasoning/helpers.py +4 -6
- agno/reasoning/ollama.py +4 -4
- agno/reasoning/openai.py +4 -4
- agno/run/agent.py +633 -0
- agno/run/base.py +53 -77
- agno/run/cancel.py +81 -0
- agno/run/team.py +243 -96
- agno/run/workflow.py +550 -12
- agno/session/__init__.py +10 -0
- agno/session/agent.py +244 -0
- agno/session/summary.py +225 -0
- agno/session/team.py +262 -0
- agno/{storage/session/v2 → session}/workflow.py +47 -24
- agno/team/__init__.py +15 -16
- agno/team/team.py +3260 -4824
- agno/tools/agentql.py +14 -5
- agno/tools/airflow.py +9 -4
- agno/tools/api.py +7 -3
- agno/tools/apify.py +2 -46
- agno/tools/arxiv.py +8 -3
- agno/tools/aws_lambda.py +7 -5
- agno/tools/aws_ses.py +7 -1
- agno/tools/baidusearch.py +4 -1
- agno/tools/bitbucket.py +4 -4
- agno/tools/brandfetch.py +14 -11
- agno/tools/bravesearch.py +4 -1
- agno/tools/brightdata.py +43 -23
- agno/tools/browserbase.py +13 -4
- agno/tools/calcom.py +12 -10
- agno/tools/calculator.py +10 -27
- agno/tools/cartesia.py +20 -17
- agno/tools/{clickup_tool.py → clickup.py} +12 -25
- agno/tools/confluence.py +8 -8
- agno/tools/crawl4ai.py +7 -1
- agno/tools/csv_toolkit.py +9 -8
- agno/tools/dalle.py +22 -12
- agno/tools/daytona.py +13 -16
- agno/tools/decorator.py +6 -3
- agno/tools/desi_vocal.py +17 -8
- agno/tools/discord.py +11 -8
- agno/tools/docker.py +30 -42
- agno/tools/duckdb.py +34 -53
- agno/tools/duckduckgo.py +8 -7
- agno/tools/e2b.py +62 -62
- agno/tools/eleven_labs.py +36 -29
- agno/tools/email.py +4 -1
- agno/tools/evm.py +7 -1
- agno/tools/exa.py +19 -14
- agno/tools/fal.py +30 -30
- agno/tools/file.py +9 -8
- agno/tools/financial_datasets.py +25 -44
- agno/tools/firecrawl.py +22 -22
- agno/tools/function.py +127 -18
- agno/tools/giphy.py +23 -11
- agno/tools/github.py +48 -126
- agno/tools/gmail.py +45 -61
- agno/tools/google_bigquery.py +7 -6
- agno/tools/google_maps.py +11 -26
- agno/tools/googlesearch.py +7 -2
- agno/tools/googlesheets.py +21 -17
- agno/tools/hackernews.py +9 -5
- agno/tools/jina.py +5 -4
- agno/tools/jira.py +18 -9
- agno/tools/knowledge.py +31 -32
- agno/tools/linear.py +19 -34
- agno/tools/linkup.py +5 -1
- agno/tools/local_file_system.py +8 -5
- agno/tools/lumalab.py +32 -20
- agno/tools/mcp.py +1 -2
- agno/tools/mem0.py +18 -12
- agno/tools/memori.py +14 -10
- agno/tools/mlx_transcribe.py +3 -2
- agno/tools/models/azure_openai.py +33 -15
- agno/tools/models/gemini.py +59 -32
- agno/tools/models/groq.py +30 -23
- agno/tools/models/nebius.py +28 -12
- agno/tools/models_labs.py +40 -16
- agno/tools/moviepy_video.py +7 -6
- agno/tools/neo4j.py +10 -8
- agno/tools/newspaper.py +7 -2
- agno/tools/newspaper4k.py +8 -3
- agno/tools/openai.py +58 -32
- agno/tools/openbb.py +12 -11
- agno/tools/opencv.py +63 -47
- agno/tools/openweather.py +14 -12
- agno/tools/pandas.py +11 -3
- agno/tools/postgres.py +4 -12
- agno/tools/pubmed.py +4 -1
- agno/tools/python.py +9 -22
- agno/tools/reasoning.py +35 -27
- agno/tools/reddit.py +11 -26
- agno/tools/replicate.py +55 -42
- agno/tools/resend.py +4 -1
- agno/tools/scrapegraph.py +15 -14
- agno/tools/searxng.py +10 -23
- agno/tools/serpapi.py +6 -3
- agno/tools/serper.py +13 -4
- agno/tools/shell.py +9 -2
- agno/tools/slack.py +12 -11
- agno/tools/sleep.py +3 -2
- agno/tools/spider.py +24 -4
- agno/tools/sql.py +7 -6
- agno/tools/tavily.py +6 -4
- agno/tools/telegram.py +12 -4
- agno/tools/todoist.py +11 -31
- agno/tools/toolkit.py +1 -1
- agno/tools/trafilatura.py +22 -6
- agno/tools/trello.py +9 -22
- agno/tools/twilio.py +10 -3
- agno/tools/user_control_flow.py +6 -1
- agno/tools/valyu.py +34 -5
- agno/tools/visualization.py +19 -28
- agno/tools/webbrowser.py +4 -3
- agno/tools/webex.py +11 -7
- agno/tools/website.py +15 -46
- agno/tools/webtools.py +12 -4
- agno/tools/whatsapp.py +5 -9
- agno/tools/wikipedia.py +20 -13
- agno/tools/x.py +14 -13
- agno/tools/yfinance.py +13 -40
- agno/tools/youtube.py +26 -20
- agno/tools/zendesk.py +7 -2
- agno/tools/zep.py +10 -7
- agno/tools/zoom.py +10 -9
- agno/utils/common.py +1 -19
- agno/utils/events.py +100 -123
- agno/utils/gemini.py +32 -2
- agno/utils/knowledge.py +29 -0
- agno/utils/log.py +54 -4
- agno/utils/mcp.py +68 -10
- agno/utils/media.py +39 -0
- agno/utils/message.py +12 -1
- agno/utils/models/aws_claude.py +1 -1
- agno/utils/models/claude.py +47 -4
- agno/utils/models/cohere.py +1 -1
- agno/utils/models/mistral.py +8 -7
- agno/utils/models/schema_utils.py +3 -3
- agno/utils/models/watsonx.py +1 -1
- agno/utils/openai.py +1 -1
- agno/utils/pprint.py +33 -32
- agno/utils/print_response/agent.py +779 -0
- agno/utils/print_response/team.py +1669 -0
- agno/utils/print_response/workflow.py +1451 -0
- agno/utils/prompts.py +14 -14
- agno/utils/reasoning.py +87 -0
- agno/utils/response.py +42 -42
- agno/utils/streamlit.py +481 -0
- agno/utils/string.py +8 -22
- agno/utils/team.py +50 -0
- agno/utils/timer.py +2 -2
- agno/vectordb/base.py +33 -21
- agno/vectordb/cassandra/cassandra.py +287 -23
- agno/vectordb/chroma/chromadb.py +482 -59
- agno/vectordb/clickhouse/clickhousedb.py +270 -63
- agno/vectordb/couchbase/couchbase.py +309 -29
- agno/vectordb/lancedb/lance_db.py +360 -21
- agno/vectordb/langchaindb/__init__.py +5 -0
- agno/vectordb/langchaindb/langchaindb.py +145 -0
- agno/vectordb/lightrag/__init__.py +5 -0
- agno/vectordb/lightrag/lightrag.py +374 -0
- agno/vectordb/llamaindex/llamaindexdb.py +127 -0
- agno/vectordb/milvus/milvus.py +242 -32
- agno/vectordb/mongodb/mongodb.py +200 -24
- agno/vectordb/pgvector/pgvector.py +319 -37
- agno/vectordb/pineconedb/pineconedb.py +221 -27
- agno/vectordb/qdrant/qdrant.py +334 -14
- agno/vectordb/singlestore/singlestore.py +286 -29
- agno/vectordb/surrealdb/surrealdb.py +187 -7
- agno/vectordb/upstashdb/upstashdb.py +342 -26
- agno/vectordb/weaviate/weaviate.py +227 -165
- agno/workflow/__init__.py +17 -13
- agno/workflow/{v2/condition.py → condition.py} +135 -32
- agno/workflow/{v2/loop.py → loop.py} +115 -28
- agno/workflow/{v2/parallel.py → parallel.py} +138 -108
- agno/workflow/{v2/router.py → router.py} +133 -32
- agno/workflow/{v2/step.py → step.py} +207 -49
- agno/workflow/{v2/steps.py → steps.py} +147 -66
- agno/workflow/types.py +482 -0
- agno/workflow/workflow.py +2410 -696
- agno-2.0.0.dist-info/METADATA +494 -0
- agno-2.0.0.dist-info/RECORD +515 -0
- agno-2.0.0.dist-info/licenses/LICENSE +201 -0
- agno/agent/metrics.py +0 -107
- agno/api/app.py +0 -35
- agno/api/playground.py +0 -92
- agno/api/schemas/app.py +0 -12
- agno/api/schemas/playground.py +0 -22
- agno/api/schemas/user.py +0 -35
- agno/api/schemas/workspace.py +0 -46
- agno/api/user.py +0 -160
- agno/api/workflows.py +0 -33
- agno/api/workspace.py +0 -175
- agno/app/agui/__init__.py +0 -3
- agno/app/agui/app.py +0 -17
- agno/app/agui/sync_router.py +0 -120
- agno/app/base.py +0 -186
- agno/app/discord/__init__.py +0 -3
- agno/app/fastapi/__init__.py +0 -3
- agno/app/fastapi/app.py +0 -107
- agno/app/fastapi/async_router.py +0 -457
- agno/app/fastapi/sync_router.py +0 -448
- agno/app/playground/app.py +0 -228
- agno/app/playground/async_router.py +0 -1050
- agno/app/playground/deploy.py +0 -249
- agno/app/playground/operator.py +0 -183
- agno/app/playground/schemas.py +0 -220
- agno/app/playground/serve.py +0 -55
- agno/app/playground/sync_router.py +0 -1042
- agno/app/playground/utils.py +0 -46
- agno/app/settings.py +0 -15
- agno/app/slack/__init__.py +0 -3
- agno/app/slack/app.py +0 -19
- agno/app/slack/sync_router.py +0 -92
- agno/app/utils.py +0 -54
- agno/app/whatsapp/__init__.py +0 -3
- agno/app/whatsapp/app.py +0 -15
- agno/app/whatsapp/sync_router.py +0 -197
- agno/cli/auth_server.py +0 -249
- agno/cli/config.py +0 -274
- agno/cli/console.py +0 -88
- agno/cli/credentials.py +0 -23
- agno/cli/entrypoint.py +0 -571
- agno/cli/operator.py +0 -357
- agno/cli/settings.py +0 -96
- agno/cli/ws/ws_cli.py +0 -817
- agno/constants.py +0 -13
- agno/document/__init__.py +0 -5
- agno/document/chunking/semantic.py +0 -45
- agno/document/chunking/strategy.py +0 -31
- agno/document/reader/__init__.py +0 -5
- agno/document/reader/base.py +0 -47
- agno/document/reader/docx_reader.py +0 -60
- agno/document/reader/gcs/pdf_reader.py +0 -44
- agno/document/reader/s3/pdf_reader.py +0 -59
- agno/document/reader/s3/text_reader.py +0 -63
- agno/document/reader/url_reader.py +0 -59
- agno/document/reader/youtube_reader.py +0 -58
- agno/embedder/__init__.py +0 -5
- agno/embedder/langdb.py +0 -80
- agno/embedder/mistral.py +0 -82
- agno/embedder/openai.py +0 -78
- agno/file/__init__.py +0 -5
- 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 -702
- agno/knowledge/arxiv.py +0 -33
- agno/knowledge/combined.py +0 -36
- agno/knowledge/csv.py +0 -144
- agno/knowledge/csv_url.py +0 -124
- agno/knowledge/document.py +0 -223
- agno/knowledge/docx.py +0 -137
- agno/knowledge/firecrawl.py +0 -34
- agno/knowledge/gcs/__init__.py +0 -0
- agno/knowledge/gcs/base.py +0 -39
- agno/knowledge/gcs/pdf.py +0 -125
- agno/knowledge/json.py +0 -137
- agno/knowledge/langchain.py +0 -71
- agno/knowledge/light_rag.py +0 -273
- agno/knowledge/llamaindex.py +0 -66
- agno/knowledge/markdown.py +0 -154
- agno/knowledge/pdf.py +0 -164
- agno/knowledge/pdf_bytes.py +0 -42
- agno/knowledge/pdf_url.py +0 -148
- agno/knowledge/s3/__init__.py +0 -0
- agno/knowledge/s3/base.py +0 -64
- agno/knowledge/s3/pdf.py +0 -33
- agno/knowledge/s3/text.py +0 -34
- agno/knowledge/text.py +0 -141
- agno/knowledge/url.py +0 -46
- agno/knowledge/website.py +0 -179
- agno/knowledge/wikipedia.py +0 -32
- agno/knowledge/youtube.py +0 -35
- agno/memory/agent.py +0 -423
- agno/memory/classifier.py +0 -104
- agno/memory/db/__init__.py +0 -5
- 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 -22
- agno/memory/row.py +0 -36
- agno/memory/summarizer.py +0 -201
- agno/memory/summary.py +0 -19
- agno/memory/team.py +0 -415
- agno/memory/v2/__init__.py +0 -2
- agno/memory/v2/db/__init__.py +0 -1
- agno/memory/v2/db/base.py +0 -42
- agno/memory/v2/db/firestore.py +0 -339
- agno/memory/v2/db/mongodb.py +0 -196
- agno/memory/v2/db/postgres.py +0 -214
- agno/memory/v2/db/redis.py +0 -187
- agno/memory/v2/db/schema.py +0 -54
- agno/memory/v2/db/sqlite.py +0 -209
- agno/memory/v2/manager.py +0 -437
- agno/memory/v2/memory.py +0 -1097
- agno/memory/v2/schema.py +0 -55
- agno/memory/v2/summarizer.py +0 -215
- agno/memory/workflow.py +0 -38
- agno/models/ollama/tools.py +0 -430
- agno/models/qwen/__init__.py +0 -5
- agno/playground/__init__.py +0 -10
- agno/playground/deploy.py +0 -3
- agno/playground/playground.py +0 -3
- agno/playground/serve.py +0 -3
- agno/playground/settings.py +0 -3
- agno/reranker/__init__.py +0 -0
- agno/run/response.py +0 -467
- agno/run/v2/__init__.py +0 -0
- agno/run/v2/workflow.py +0 -567
- agno/storage/__init__.py +0 -0
- agno/storage/agent/__init__.py +0 -0
- agno/storage/agent/dynamodb.py +0 -1
- agno/storage/agent/json.py +0 -1
- agno/storage/agent/mongodb.py +0 -1
- agno/storage/agent/postgres.py +0 -1
- agno/storage/agent/singlestore.py +0 -1
- agno/storage/agent/sqlite.py +0 -1
- agno/storage/agent/yaml.py +0 -1
- agno/storage/base.py +0 -60
- agno/storage/dynamodb.py +0 -673
- agno/storage/firestore.py +0 -297
- agno/storage/gcs_json.py +0 -261
- agno/storage/in_memory.py +0 -234
- agno/storage/json.py +0 -237
- agno/storage/mongodb.py +0 -328
- agno/storage/mysql.py +0 -685
- agno/storage/postgres.py +0 -682
- agno/storage/redis.py +0 -336
- agno/storage/session/__init__.py +0 -16
- agno/storage/session/agent.py +0 -64
- agno/storage/session/team.py +0 -63
- agno/storage/session/v2/__init__.py +0 -5
- agno/storage/session/workflow.py +0 -61
- agno/storage/singlestore.py +0 -606
- agno/storage/sqlite.py +0 -646
- agno/storage/workflow/__init__.py +0 -0
- agno/storage/workflow/mongodb.py +0 -1
- agno/storage/workflow/postgres.py +0 -1
- agno/storage/workflow/sqlite.py +0 -1
- agno/storage/yaml.py +0 -241
- agno/tools/thinking.py +0 -73
- 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/workflow/v2/__init__.py +0 -21
- agno/workflow/v2/types.py +0 -357
- agno/workflow/v2/workflow.py +0 -3312
- agno/workspace/__init__.py +0 -0
- agno/workspace/config.py +0 -325
- agno/workspace/enums.py +0 -6
- agno/workspace/helpers.py +0 -52
- agno/workspace/operator.py +0 -757
- agno/workspace/settings.py +0 -158
- agno-1.8.1.dist-info/METADATA +0 -982
- agno-1.8.1.dist-info/RECORD +0 -566
- agno-1.8.1.dist-info/entry_points.txt +0 -3
- agno-1.8.1.dist-info/licenses/LICENSE +0 -375
- /agno/{app → db/migrations}/__init__.py +0 -0
- /agno/{app/playground/__init__.py → db/schemas/metrics.py} +0 -0
- /agno/{cli → integrations}/__init__.py +0 -0
- /agno/{cli/ws → knowledge/chunking}/__init__.py +0 -0
- /agno/{document/chunking → knowledge/remote_content}/__init__.py +0 -0
- /agno/{document/reader/gcs → knowledge/reranker}/__init__.py +0 -0
- /agno/{document/reader/s3 → os/interfaces}/__init__.py +0 -0
- /agno/{app → os/interfaces}/slack/security.py +0 -0
- /agno/{app → os/interfaces}/whatsapp/security.py +0 -0
- /agno/{file/local → utils/print_response}/__init__.py +0 -0
- /agno/{infra → vectordb/llamaindex}/__init__.py +0 -0
- {agno-1.8.1.dist-info → agno-2.0.0.dist-info}/WHEEL +0 -0
- {agno-1.8.1.dist-info → agno-2.0.0.dist-info}/top_level.txt +0 -0
agno/cli/entrypoint.py
DELETED
|
@@ -1,571 +0,0 @@
|
|
|
1
|
-
"""Agno cli
|
|
2
|
-
|
|
3
|
-
This is the entrypoint for the `agno` cli application.
|
|
4
|
-
"""
|
|
5
|
-
|
|
6
|
-
from typing import Optional
|
|
7
|
-
|
|
8
|
-
import typer
|
|
9
|
-
|
|
10
|
-
from agno.cli.ws.ws_cli import ws_cli
|
|
11
|
-
from agno.utils.log import set_log_level_to_debug
|
|
12
|
-
|
|
13
|
-
agno_cli = typer.Typer(
|
|
14
|
-
help="""\b
|
|
15
|
-
Agno is a model-agnostic framework for building AI Agents.
|
|
16
|
-
\b
|
|
17
|
-
Usage:
|
|
18
|
-
1. Run `ag ws create` to create a new workspace
|
|
19
|
-
2. Run `ag ws up` to start the workspace
|
|
20
|
-
3. Run `ag ws down` to stop the workspace
|
|
21
|
-
""",
|
|
22
|
-
no_args_is_help=True,
|
|
23
|
-
add_completion=False,
|
|
24
|
-
invoke_without_command=True,
|
|
25
|
-
options_metavar="\b",
|
|
26
|
-
subcommand_metavar="[COMMAND] [OPTIONS]",
|
|
27
|
-
pretty_exceptions_show_locals=False,
|
|
28
|
-
)
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
@agno_cli.command(short_help="Setup your account")
|
|
32
|
-
def setup(
|
|
33
|
-
print_debug_log: bool = typer.Option(
|
|
34
|
-
False,
|
|
35
|
-
"-d",
|
|
36
|
-
"--debug",
|
|
37
|
-
help="Print debug logs.",
|
|
38
|
-
),
|
|
39
|
-
):
|
|
40
|
-
"""
|
|
41
|
-
\b
|
|
42
|
-
Setup Agno on your machine
|
|
43
|
-
"""
|
|
44
|
-
if print_debug_log:
|
|
45
|
-
set_log_level_to_debug()
|
|
46
|
-
|
|
47
|
-
from agno.cli.operator import initialize_agno
|
|
48
|
-
|
|
49
|
-
initialize_agno(login=True)
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
@agno_cli.command(short_help="Initialize Agno, use -r to reset")
|
|
53
|
-
def init(
|
|
54
|
-
reset: bool = typer.Option(False, "--reset", "-r", help="Reset Agno", show_default=True),
|
|
55
|
-
print_debug_log: bool = typer.Option(
|
|
56
|
-
False,
|
|
57
|
-
"-d",
|
|
58
|
-
"--debug",
|
|
59
|
-
help="Print debug logs.",
|
|
60
|
-
),
|
|
61
|
-
login: bool = typer.Option(False, "--login", "-l", help="Login with agno.com", show_default=True),
|
|
62
|
-
):
|
|
63
|
-
"""
|
|
64
|
-
\b
|
|
65
|
-
Initialize Agno, use -r to reset
|
|
66
|
-
|
|
67
|
-
\b
|
|
68
|
-
Examples:
|
|
69
|
-
* `ag init` -> Initializing Agno
|
|
70
|
-
* `ag init -r` -> Reset Agno
|
|
71
|
-
"""
|
|
72
|
-
if print_debug_log:
|
|
73
|
-
set_log_level_to_debug()
|
|
74
|
-
|
|
75
|
-
from agno.cli.operator import initialize_agno
|
|
76
|
-
|
|
77
|
-
initialize_agno(reset=reset, login=login)
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
@agno_cli.command(short_help="Reset Agno installation")
|
|
81
|
-
def reset(
|
|
82
|
-
print_debug_log: bool = typer.Option(
|
|
83
|
-
False,
|
|
84
|
-
"-d",
|
|
85
|
-
"--debug",
|
|
86
|
-
help="Print debug logs.",
|
|
87
|
-
),
|
|
88
|
-
):
|
|
89
|
-
"""
|
|
90
|
-
\b
|
|
91
|
-
Reset the existing Agno configuration
|
|
92
|
-
"""
|
|
93
|
-
if print_debug_log:
|
|
94
|
-
set_log_level_to_debug()
|
|
95
|
-
|
|
96
|
-
from agno.cli.operator import initialize_agno
|
|
97
|
-
|
|
98
|
-
initialize_agno(reset=True)
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
@agno_cli.command(short_help="Ping Agno servers")
|
|
102
|
-
def ping(
|
|
103
|
-
print_debug_log: bool = typer.Option(
|
|
104
|
-
False,
|
|
105
|
-
"-d",
|
|
106
|
-
"--debug",
|
|
107
|
-
help="Print debug logs.",
|
|
108
|
-
),
|
|
109
|
-
):
|
|
110
|
-
"""Ping the Agno servers and check if you are authenticated"""
|
|
111
|
-
if print_debug_log:
|
|
112
|
-
set_log_level_to_debug()
|
|
113
|
-
|
|
114
|
-
from agno.api.user import user_ping
|
|
115
|
-
from agno.cli.console import print_info
|
|
116
|
-
|
|
117
|
-
ping_success = user_ping()
|
|
118
|
-
if ping_success:
|
|
119
|
-
print_info("Ping successful")
|
|
120
|
-
else:
|
|
121
|
-
print_info("Could not ping Agno servers")
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
@agno_cli.command(short_help="Print Agno config")
|
|
125
|
-
def config(
|
|
126
|
-
print_debug_log: bool = typer.Option(
|
|
127
|
-
False,
|
|
128
|
-
"-d",
|
|
129
|
-
"--debug",
|
|
130
|
-
help="Print debug logs.",
|
|
131
|
-
),
|
|
132
|
-
):
|
|
133
|
-
"""Print your current Agno config"""
|
|
134
|
-
if print_debug_log:
|
|
135
|
-
set_log_level_to_debug()
|
|
136
|
-
|
|
137
|
-
from agno.cli.config import AgnoCliConfig
|
|
138
|
-
from agno.cli.console import log_config_not_available_msg
|
|
139
|
-
from agno.cli.operator import initialize_agno
|
|
140
|
-
|
|
141
|
-
agno_config: Optional[AgnoCliConfig] = AgnoCliConfig.from_saved_config()
|
|
142
|
-
if not agno_config:
|
|
143
|
-
agno_config = initialize_agno()
|
|
144
|
-
if not agno_config:
|
|
145
|
-
log_config_not_available_msg()
|
|
146
|
-
return
|
|
147
|
-
agno_config.print_to_cli(show_all=True)
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
@agno_cli.command(short_help="Set current directory as active workspace")
|
|
151
|
-
def set(
|
|
152
|
-
ws_name: str = typer.Option(None, "-ws", help="Active workspace name"),
|
|
153
|
-
print_debug_log: bool = typer.Option(
|
|
154
|
-
False,
|
|
155
|
-
"-d",
|
|
156
|
-
"--debug",
|
|
157
|
-
help="Print debug logs.",
|
|
158
|
-
),
|
|
159
|
-
):
|
|
160
|
-
"""
|
|
161
|
-
\b
|
|
162
|
-
Set the current directory as the active workspace.
|
|
163
|
-
This command can be run from within the workspace directory
|
|
164
|
-
OR with a -ws flag to set another workspace as primary.
|
|
165
|
-
|
|
166
|
-
\b
|
|
167
|
-
Examples:
|
|
168
|
-
$ `ag ws set` -> Set the current directory as the active Agno workspace
|
|
169
|
-
$ `ag ws set -ws idata` -> Set the workspace named idata as the active Agno workspace
|
|
170
|
-
"""
|
|
171
|
-
from agno.workspace.operator import set_workspace_as_active
|
|
172
|
-
|
|
173
|
-
if print_debug_log:
|
|
174
|
-
set_log_level_to_debug()
|
|
175
|
-
|
|
176
|
-
set_workspace_as_active(ws_dir_name=ws_name)
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
@agno_cli.command(short_help="Start resources defined in a resources.py file")
|
|
180
|
-
def start(
|
|
181
|
-
resources_file: str = typer.Argument(
|
|
182
|
-
"resources.py",
|
|
183
|
-
help="Path to workspace file.",
|
|
184
|
-
show_default=False,
|
|
185
|
-
),
|
|
186
|
-
env_filter: Optional[str] = typer.Option(None, "-e", "--env", metavar="", help="Filter the environment to deploy"),
|
|
187
|
-
infra_filter: Optional[str] = typer.Option(None, "-i", "--infra", metavar="", help="Filter the infra to deploy."),
|
|
188
|
-
group_filter: Optional[str] = typer.Option(
|
|
189
|
-
None, "-g", "--group", metavar="", help="Filter resources using group name."
|
|
190
|
-
),
|
|
191
|
-
name_filter: Optional[str] = typer.Option(None, "-n", "--name", metavar="", help="Filter resource using name."),
|
|
192
|
-
type_filter: Optional[str] = typer.Option(
|
|
193
|
-
None,
|
|
194
|
-
"-t",
|
|
195
|
-
"--type",
|
|
196
|
-
metavar="",
|
|
197
|
-
help="Filter resource using type",
|
|
198
|
-
),
|
|
199
|
-
dry_run: bool = typer.Option(
|
|
200
|
-
False,
|
|
201
|
-
"-dr",
|
|
202
|
-
"--dry-run",
|
|
203
|
-
help="Print resources and exit.",
|
|
204
|
-
),
|
|
205
|
-
auto_confirm: bool = typer.Option(
|
|
206
|
-
False,
|
|
207
|
-
"-y",
|
|
208
|
-
"--yes",
|
|
209
|
-
help="Skip the confirmation before deploying resources.",
|
|
210
|
-
),
|
|
211
|
-
print_debug_log: bool = typer.Option(
|
|
212
|
-
False,
|
|
213
|
-
"-d",
|
|
214
|
-
"--debug",
|
|
215
|
-
help="Print debug logs.",
|
|
216
|
-
),
|
|
217
|
-
force: bool = typer.Option(
|
|
218
|
-
False,
|
|
219
|
-
"-f",
|
|
220
|
-
"--force",
|
|
221
|
-
help="Force",
|
|
222
|
-
),
|
|
223
|
-
pull: Optional[bool] = typer.Option(
|
|
224
|
-
None,
|
|
225
|
-
"-p",
|
|
226
|
-
"--pull",
|
|
227
|
-
help="Pull images where applicable.",
|
|
228
|
-
),
|
|
229
|
-
):
|
|
230
|
-
"""\b
|
|
231
|
-
Start resources defined in a resources.py file
|
|
232
|
-
\b
|
|
233
|
-
Examples:
|
|
234
|
-
> `ag ws start` -> Start resources defined in a resources.py file
|
|
235
|
-
> `ag ws start workspace.py` -> Start resources defined in a workspace.py file
|
|
236
|
-
"""
|
|
237
|
-
if print_debug_log:
|
|
238
|
-
set_log_level_to_debug()
|
|
239
|
-
|
|
240
|
-
from pathlib import Path
|
|
241
|
-
|
|
242
|
-
from agno.cli.config import AgnoCliConfig
|
|
243
|
-
from agno.cli.console import log_config_not_available_msg
|
|
244
|
-
from agno.cli.operator import initialize_agno, start_resources
|
|
245
|
-
|
|
246
|
-
agno_config: Optional[AgnoCliConfig] = AgnoCliConfig.from_saved_config()
|
|
247
|
-
if not agno_config:
|
|
248
|
-
agno_config = initialize_agno()
|
|
249
|
-
if not agno_config:
|
|
250
|
-
log_config_not_available_msg()
|
|
251
|
-
return
|
|
252
|
-
|
|
253
|
-
target_env: Optional[str] = None
|
|
254
|
-
target_infra: Optional[str] = None
|
|
255
|
-
target_group: Optional[str] = None
|
|
256
|
-
target_name: Optional[str] = None
|
|
257
|
-
target_type: Optional[str] = None
|
|
258
|
-
|
|
259
|
-
if env_filter is not None and isinstance(env_filter, str):
|
|
260
|
-
target_env = env_filter
|
|
261
|
-
if infra_filter is not None and isinstance(infra_filter, str):
|
|
262
|
-
target_infra = infra_filter
|
|
263
|
-
if group_filter is not None and isinstance(group_filter, str):
|
|
264
|
-
target_group = group_filter
|
|
265
|
-
if name_filter is not None and isinstance(name_filter, str):
|
|
266
|
-
target_name = name_filter
|
|
267
|
-
if type_filter is not None and isinstance(type_filter, str):
|
|
268
|
-
target_type = type_filter
|
|
269
|
-
|
|
270
|
-
resources_file_path: Path = Path(".").resolve().joinpath(resources_file)
|
|
271
|
-
start_resources(
|
|
272
|
-
agno_config=agno_config,
|
|
273
|
-
resources_file_path=resources_file_path,
|
|
274
|
-
target_env=target_env,
|
|
275
|
-
target_infra=target_infra,
|
|
276
|
-
target_group=target_group,
|
|
277
|
-
target_name=target_name,
|
|
278
|
-
target_type=target_type,
|
|
279
|
-
dry_run=dry_run,
|
|
280
|
-
auto_confirm=auto_confirm,
|
|
281
|
-
force=force,
|
|
282
|
-
pull=pull,
|
|
283
|
-
)
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
@agno_cli.command(short_help="Stop resources defined in a resources.py file")
|
|
287
|
-
def stop(
|
|
288
|
-
resources_file: str = typer.Argument(
|
|
289
|
-
"resources.py",
|
|
290
|
-
help="Path to workspace file.",
|
|
291
|
-
show_default=False,
|
|
292
|
-
),
|
|
293
|
-
env_filter: Optional[str] = typer.Option(None, "-e", "--env", metavar="", help="Filter the environment to deploy"),
|
|
294
|
-
infra_filter: Optional[str] = typer.Option(None, "-i", "--infra", metavar="", help="Filter the infra to deploy."),
|
|
295
|
-
group_filter: Optional[str] = typer.Option(
|
|
296
|
-
None, "-g", "--group", metavar="", help="Filter resources using group name."
|
|
297
|
-
),
|
|
298
|
-
name_filter: Optional[str] = typer.Option(None, "-n", "--name", metavar="", help="Filter using resource name"),
|
|
299
|
-
type_filter: Optional[str] = typer.Option(
|
|
300
|
-
None,
|
|
301
|
-
"-t",
|
|
302
|
-
"--type",
|
|
303
|
-
metavar="",
|
|
304
|
-
help="Filter using resource type",
|
|
305
|
-
),
|
|
306
|
-
dry_run: bool = typer.Option(
|
|
307
|
-
False,
|
|
308
|
-
"-dr",
|
|
309
|
-
"--dry-run",
|
|
310
|
-
help="Print resources and exit.",
|
|
311
|
-
),
|
|
312
|
-
auto_confirm: bool = typer.Option(
|
|
313
|
-
False,
|
|
314
|
-
"-y",
|
|
315
|
-
"--yes",
|
|
316
|
-
help="Skip the confirmation before deploying resources.",
|
|
317
|
-
),
|
|
318
|
-
print_debug_log: bool = typer.Option(
|
|
319
|
-
False,
|
|
320
|
-
"-d",
|
|
321
|
-
"--debug",
|
|
322
|
-
help="Print debug logs.",
|
|
323
|
-
),
|
|
324
|
-
force: bool = typer.Option(
|
|
325
|
-
False,
|
|
326
|
-
"-f",
|
|
327
|
-
"--force",
|
|
328
|
-
help="Force",
|
|
329
|
-
),
|
|
330
|
-
):
|
|
331
|
-
"""\b
|
|
332
|
-
Stop resources defined in a resources.py file
|
|
333
|
-
\b
|
|
334
|
-
Examples:
|
|
335
|
-
> `ag ws stop` -> Stop resources defined in a resources.py file
|
|
336
|
-
> `ag ws stop workspace.py` -> Stop resources defined in a workspace.py file
|
|
337
|
-
"""
|
|
338
|
-
if print_debug_log:
|
|
339
|
-
set_log_level_to_debug()
|
|
340
|
-
|
|
341
|
-
from pathlib import Path
|
|
342
|
-
|
|
343
|
-
from agno.cli.config import AgnoCliConfig
|
|
344
|
-
from agno.cli.console import log_config_not_available_msg
|
|
345
|
-
from agno.cli.operator import initialize_agno, stop_resources
|
|
346
|
-
|
|
347
|
-
agno_config: Optional[AgnoCliConfig] = AgnoCliConfig.from_saved_config()
|
|
348
|
-
if not agno_config:
|
|
349
|
-
agno_config = initialize_agno()
|
|
350
|
-
if not agno_config:
|
|
351
|
-
log_config_not_available_msg()
|
|
352
|
-
return
|
|
353
|
-
|
|
354
|
-
target_env: Optional[str] = None
|
|
355
|
-
target_infra: Optional[str] = None
|
|
356
|
-
target_group: Optional[str] = None
|
|
357
|
-
target_name: Optional[str] = None
|
|
358
|
-
target_type: Optional[str] = None
|
|
359
|
-
|
|
360
|
-
if env_filter is not None and isinstance(env_filter, str):
|
|
361
|
-
target_env = env_filter
|
|
362
|
-
if infra_filter is not None and isinstance(infra_filter, str):
|
|
363
|
-
target_infra = infra_filter
|
|
364
|
-
if group_filter is not None and isinstance(group_filter, str):
|
|
365
|
-
target_group = group_filter
|
|
366
|
-
if name_filter is not None and isinstance(name_filter, str):
|
|
367
|
-
target_name = name_filter
|
|
368
|
-
if type_filter is not None and isinstance(type_filter, str):
|
|
369
|
-
target_type = type_filter
|
|
370
|
-
|
|
371
|
-
resources_file_path: Path = Path(".").resolve().joinpath(resources_file)
|
|
372
|
-
stop_resources(
|
|
373
|
-
agno_config=agno_config,
|
|
374
|
-
resources_file_path=resources_file_path,
|
|
375
|
-
target_env=target_env,
|
|
376
|
-
target_infra=target_infra,
|
|
377
|
-
target_group=target_group,
|
|
378
|
-
target_name=target_name,
|
|
379
|
-
target_type=target_type,
|
|
380
|
-
dry_run=dry_run,
|
|
381
|
-
auto_confirm=auto_confirm,
|
|
382
|
-
force=force,
|
|
383
|
-
)
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
@agno_cli.command(short_help="Update resources defined in a resources.py file")
|
|
387
|
-
def patch(
|
|
388
|
-
resources_file: str = typer.Argument(
|
|
389
|
-
"resources.py",
|
|
390
|
-
help="Path to workspace file.",
|
|
391
|
-
show_default=False,
|
|
392
|
-
),
|
|
393
|
-
env_filter: Optional[str] = typer.Option(None, "-e", "--env", metavar="", help="Filter the environment to deploy"),
|
|
394
|
-
infra_filter: Optional[str] = typer.Option(None, "-i", "--infra", metavar="", help="Filter the infra to deploy."),
|
|
395
|
-
config_filter: Optional[str] = typer.Option(None, "-c", "--config", metavar="", help="Filter the config to deploy"),
|
|
396
|
-
group_filter: Optional[str] = typer.Option(
|
|
397
|
-
None, "-g", "--group", metavar="", help="Filter resources using group name."
|
|
398
|
-
),
|
|
399
|
-
name_filter: Optional[str] = typer.Option(None, "-n", "--name", metavar="", help="Filter using resource name"),
|
|
400
|
-
type_filter: Optional[str] = typer.Option(
|
|
401
|
-
None,
|
|
402
|
-
"-t",
|
|
403
|
-
"--type",
|
|
404
|
-
metavar="",
|
|
405
|
-
help="Filter using resource type",
|
|
406
|
-
),
|
|
407
|
-
dry_run: bool = typer.Option(
|
|
408
|
-
False,
|
|
409
|
-
"-dr",
|
|
410
|
-
"--dry-run",
|
|
411
|
-
help="Print which resources will be deployed and exit.",
|
|
412
|
-
),
|
|
413
|
-
auto_confirm: bool = typer.Option(
|
|
414
|
-
False,
|
|
415
|
-
"-y",
|
|
416
|
-
"--yes",
|
|
417
|
-
help="Skip the confirmation before deploying resources.",
|
|
418
|
-
),
|
|
419
|
-
print_debug_log: bool = typer.Option(
|
|
420
|
-
False,
|
|
421
|
-
"-d",
|
|
422
|
-
"--debug",
|
|
423
|
-
help="Print debug logs.",
|
|
424
|
-
),
|
|
425
|
-
force: bool = typer.Option(
|
|
426
|
-
False,
|
|
427
|
-
"-f",
|
|
428
|
-
"--force",
|
|
429
|
-
help="Force",
|
|
430
|
-
),
|
|
431
|
-
):
|
|
432
|
-
"""\b
|
|
433
|
-
Update resources defined in a resources.py file
|
|
434
|
-
\b
|
|
435
|
-
Examples:
|
|
436
|
-
> `ag ws patch` -> Update resources defined in a resources.py file
|
|
437
|
-
> `ag ws patch workspace.py` -> Update resources defined in a workspace.py file
|
|
438
|
-
"""
|
|
439
|
-
if print_debug_log:
|
|
440
|
-
set_log_level_to_debug()
|
|
441
|
-
|
|
442
|
-
from pathlib import Path
|
|
443
|
-
|
|
444
|
-
from agno.cli.config import AgnoCliConfig
|
|
445
|
-
from agno.cli.console import log_config_not_available_msg
|
|
446
|
-
from agno.cli.operator import initialize_agno, patch_resources
|
|
447
|
-
|
|
448
|
-
agno_config: Optional[AgnoCliConfig] = AgnoCliConfig.from_saved_config()
|
|
449
|
-
if not agno_config:
|
|
450
|
-
agno_config = initialize_agno()
|
|
451
|
-
if not agno_config:
|
|
452
|
-
log_config_not_available_msg()
|
|
453
|
-
return
|
|
454
|
-
|
|
455
|
-
target_env: Optional[str] = None
|
|
456
|
-
target_infra: Optional[str] = None
|
|
457
|
-
target_group: Optional[str] = None
|
|
458
|
-
target_name: Optional[str] = None
|
|
459
|
-
target_type: Optional[str] = None
|
|
460
|
-
|
|
461
|
-
if env_filter is not None and isinstance(env_filter, str):
|
|
462
|
-
target_env = env_filter
|
|
463
|
-
if infra_filter is not None and isinstance(infra_filter, str):
|
|
464
|
-
target_infra = infra_filter
|
|
465
|
-
if group_filter is not None and isinstance(group_filter, str):
|
|
466
|
-
target_group = group_filter
|
|
467
|
-
if name_filter is not None and isinstance(name_filter, str):
|
|
468
|
-
target_name = name_filter
|
|
469
|
-
if type_filter is not None and isinstance(type_filter, str):
|
|
470
|
-
target_type = type_filter
|
|
471
|
-
|
|
472
|
-
resources_file_path: Path = Path(".").resolve().joinpath(resources_file)
|
|
473
|
-
patch_resources(
|
|
474
|
-
agno_config=agno_config,
|
|
475
|
-
resources_file_path=resources_file_path,
|
|
476
|
-
target_env=target_env,
|
|
477
|
-
target_infra=target_infra,
|
|
478
|
-
target_group=target_group,
|
|
479
|
-
target_name=target_name,
|
|
480
|
-
target_type=target_type,
|
|
481
|
-
dry_run=dry_run,
|
|
482
|
-
auto_confirm=auto_confirm,
|
|
483
|
-
force=force,
|
|
484
|
-
)
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
@agno_cli.command(short_help="Restart resources defined in a resources.py file")
|
|
488
|
-
def restart(
|
|
489
|
-
resources_file: str = typer.Argument(
|
|
490
|
-
"resources.py",
|
|
491
|
-
help="Path to workspace file.",
|
|
492
|
-
show_default=False,
|
|
493
|
-
),
|
|
494
|
-
env_filter: Optional[str] = typer.Option(None, "-e", "--env", metavar="", help="Filter the environment to deploy"),
|
|
495
|
-
infra_filter: Optional[str] = typer.Option(None, "-i", "--infra", metavar="", help="Filter the infra to deploy."),
|
|
496
|
-
group_filter: Optional[str] = typer.Option(
|
|
497
|
-
None, "-g", "--group", metavar="", help="Filter resources using group name."
|
|
498
|
-
),
|
|
499
|
-
name_filter: Optional[str] = typer.Option(None, "-n", "--name", metavar="", help="Filter using resource name"),
|
|
500
|
-
type_filter: Optional[str] = typer.Option(
|
|
501
|
-
None,
|
|
502
|
-
"-t",
|
|
503
|
-
"--type",
|
|
504
|
-
metavar="",
|
|
505
|
-
help="Filter using resource type",
|
|
506
|
-
),
|
|
507
|
-
dry_run: bool = typer.Option(
|
|
508
|
-
False,
|
|
509
|
-
"-dr",
|
|
510
|
-
"--dry-run",
|
|
511
|
-
help="Print which resources will be deployed and exit.",
|
|
512
|
-
),
|
|
513
|
-
auto_confirm: bool = typer.Option(
|
|
514
|
-
False,
|
|
515
|
-
"-y",
|
|
516
|
-
"--yes",
|
|
517
|
-
help="Skip the confirmation before deploying resources.",
|
|
518
|
-
),
|
|
519
|
-
print_debug_log: bool = typer.Option(
|
|
520
|
-
False,
|
|
521
|
-
"-d",
|
|
522
|
-
"--debug",
|
|
523
|
-
help="Print debug logs.",
|
|
524
|
-
),
|
|
525
|
-
force: bool = typer.Option(
|
|
526
|
-
False,
|
|
527
|
-
"-f",
|
|
528
|
-
"--force",
|
|
529
|
-
help="Force",
|
|
530
|
-
),
|
|
531
|
-
):
|
|
532
|
-
"""\b
|
|
533
|
-
Restart resources defined in a resources.py file
|
|
534
|
-
\b
|
|
535
|
-
Examples:
|
|
536
|
-
> `ag ws restart` -> Start resources defined in a resources.py file
|
|
537
|
-
> `ag ws restart workspace.py` -> Start resources defined in a workspace.py file
|
|
538
|
-
"""
|
|
539
|
-
from time import sleep
|
|
540
|
-
|
|
541
|
-
from agno.cli.console import print_info
|
|
542
|
-
|
|
543
|
-
stop(
|
|
544
|
-
resources_file=resources_file,
|
|
545
|
-
env_filter=env_filter,
|
|
546
|
-
infra_filter=infra_filter,
|
|
547
|
-
group_filter=group_filter,
|
|
548
|
-
name_filter=name_filter,
|
|
549
|
-
type_filter=type_filter,
|
|
550
|
-
dry_run=dry_run,
|
|
551
|
-
auto_confirm=auto_confirm,
|
|
552
|
-
print_debug_log=print_debug_log,
|
|
553
|
-
force=force,
|
|
554
|
-
)
|
|
555
|
-
print_info("Sleeping for 2 seconds..")
|
|
556
|
-
sleep(2)
|
|
557
|
-
start(
|
|
558
|
-
resources_file=resources_file,
|
|
559
|
-
env_filter=env_filter,
|
|
560
|
-
infra_filter=infra_filter,
|
|
561
|
-
group_filter=group_filter,
|
|
562
|
-
name_filter=name_filter,
|
|
563
|
-
type_filter=type_filter,
|
|
564
|
-
dry_run=dry_run,
|
|
565
|
-
auto_confirm=auto_confirm,
|
|
566
|
-
print_debug_log=print_debug_log,
|
|
567
|
-
force=force,
|
|
568
|
-
)
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
agno_cli.add_typer(ws_cli)
|