agent-starter-pack 0.3.3__py3-none-any.whl → 0.21.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.
- agent_starter_pack/agents/README.md +7 -0
- agents/langgraph_base_react/template/.templateconfig.yaml → agent_starter_pack/agents/adk_a2a_base/.template/templateconfig.yaml +5 -10
- agent_starter_pack/agents/adk_a2a_base/README.md +37 -0
- src/deployment_targets/cloud_run/Dockerfile → agent_starter_pack/agents/adk_a2a_base/app/__init__.py +2 -14
- agent_starter_pack/agents/adk_a2a_base/app/agent.py +70 -0
- agent_starter_pack/agents/adk_a2a_base/notebooks/adk_a2a_app_testing.ipynb +583 -0
- agents/crewai_coding_crew/notebooks/evaluating_crewai_agent.ipynb → agent_starter_pack/agents/adk_a2a_base/notebooks/evaluating_adk_agent.ipynb +163 -199
- {agents/adk_base → agent_starter_pack/agents/adk_a2a_base}/tests/integration/test_agent.py +2 -2
- agents/adk_base/template/.templateconfig.yaml → agent_starter_pack/agents/adk_base/.template/templateconfig.yaml +4 -1
- {agents → agent_starter_pack/agents}/adk_base/README.md +1 -1
- agent_starter_pack/agents/adk_base/app/__init__.py +17 -0
- {agents → agent_starter_pack/agents}/adk_base/app/agent.py +5 -2
- {agents → agent_starter_pack/agents}/adk_base/notebooks/adk_app_testing.ipynb +128 -82
- agents/langgraph_base_react/notebooks/evaluating_langgraph_agent.ipynb → agent_starter_pack/agents/adk_base/notebooks/evaluating_adk_agent.ipynb +181 -207
- agent_starter_pack/agents/adk_base/tests/integration/test_agent.py +58 -0
- agents/crewai_coding_crew/template/.templateconfig.yaml → agent_starter_pack/agents/adk_live/.template/templateconfig.yaml +5 -9
- agent_starter_pack/agents/adk_live/README.md +32 -0
- agent_starter_pack/agents/adk_live/app/__init__.py +17 -0
- agent_starter_pack/agents/adk_live/app/agent.py +51 -0
- agent_starter_pack/agents/adk_live/tests/unit/test_dummy.py +38 -0
- agents/agentic_rag/template/.templateconfig.yaml → agent_starter_pack/agents/agentic_rag/.template/templateconfig.yaml +7 -3
- {agents → agent_starter_pack/agents}/agentic_rag/README.md +1 -1
- agent_starter_pack/agents/agentic_rag/app/__init__.py +17 -0
- {agents → agent_starter_pack/agents}/agentic_rag/app/agent.py +8 -4
- {agents → agent_starter_pack/agents}/agentic_rag/notebooks/adk_app_testing.ipynb +128 -82
- agent_starter_pack/agents/agentic_rag/notebooks/evaluating_adk_agent.ipynb +1535 -0
- {agents → agent_starter_pack/agents}/agentic_rag/tests/integration/test_agent.py +3 -3
- agent_starter_pack/agents/langgraph_base/.template/templateconfig.yaml +31 -0
- agent_starter_pack/agents/langgraph_base/README.md +30 -0
- agent_starter_pack/agents/langgraph_base/app/__init__.py +17 -0
- agent_starter_pack/agents/langgraph_base/app/agent.py +34 -0
- {agents/crewai_coding_crew → agent_starter_pack/agents/langgraph_base}/notebooks/evaluating_langgraph_agent.ipynb +30 -17
- {agents/langgraph_base_react → agent_starter_pack/agents/langgraph_base}/tests/integration/test_agent.py +2 -2
- {src → agent_starter_pack}/base_template/.gitignore +5 -3
- agent_starter_pack/base_template/GEMINI.md +5 -0
- agent_starter_pack/base_template/Makefile +339 -0
- agent_starter_pack/base_template/README.md +267 -0
- agent_starter_pack/base_template/deployment/README.md +11 -0
- {src → agent_starter_pack}/base_template/deployment/terraform/apis.tf +2 -2
- {src → agent_starter_pack}/base_template/deployment/terraform/dev/apis.tf +6 -1
- {src → agent_starter_pack}/base_template/deployment/terraform/dev/iam.tf +12 -11
- {src → agent_starter_pack}/base_template/deployment/terraform/dev/providers.tf +5 -1
- {src → agent_starter_pack}/base_template/deployment/terraform/dev/storage.tf +1 -1
- {src → agent_starter_pack}/base_template/deployment/terraform/dev/variables.tf +10 -10
- agent_starter_pack/base_template/deployment/terraform/dev/{% if cookiecutter.is_adk %}telemetry.tf{% else %}unused_telemetry.tf{% endif %} +193 -0
- agent_starter_pack/base_template/deployment/terraform/github.tf +337 -0
- {src → agent_starter_pack}/base_template/deployment/terraform/iam.tf +20 -41
- {src → agent_starter_pack}/base_template/deployment/terraform/locals.tf +10 -3
- {src/resources/setup_cicd → agent_starter_pack/base_template/deployment/terraform}/providers.tf +8 -1
- {src → agent_starter_pack}/base_template/deployment/terraform/service_accounts.tf +7 -8
- agent_starter_pack/base_template/deployment/terraform/sql/completions.sql +138 -0
- {src → agent_starter_pack}/base_template/deployment/terraform/storage.tf +7 -16
- {src → agent_starter_pack}/base_template/deployment/terraform/variables.tf +61 -28
- {src → agent_starter_pack}/base_template/deployment/terraform/vars/env.tfvars +6 -1
- agent_starter_pack/base_template/deployment/terraform/{% if cookiecutter.cicd_runner == 'github_actions' %}wif.tf{% else %}unused_wif.tf{% endif %} +43 -0
- src/base_template/deployment/terraform/build_triggers.tf → agent_starter_pack/base_template/deployment/terraform/{% if cookiecutter.cicd_runner == 'google_cloud_build' %}build_triggers.tf{% else %}unused_build_triggers.tf{% endif %} +55 -38
- agent_starter_pack/base_template/deployment/terraform/{% if cookiecutter.is_adk %}telemetry.tf{% else %}unused_telemetry.tf{% endif %} +206 -0
- {src → agent_starter_pack}/base_template/pyproject.toml +24 -37
- agent_starter_pack/base_template/{% if cookiecutter.cicd_runner == 'github_actions' %}.github{% else %}unused_github{% endif %}/workflows/deploy-to-prod.yaml +132 -0
- agent_starter_pack/base_template/{% if cookiecutter.cicd_runner == 'github_actions' %}.github{% else %}unused_github{% endif %}/workflows/pr_checks.yaml +65 -0
- agent_starter_pack/base_template/{% if cookiecutter.cicd_runner == 'github_actions' %}.github{% else %}unused_github{% endif %}/workflows/staging.yaml +259 -0
- src/base_template/deployment/cd/deploy-to-prod.yaml → agent_starter_pack/base_template/{% if cookiecutter.cicd_runner == 'google_cloud_build' %}.cloudbuild{% else %}unused_.cloudbuild{% endif %}/deploy-to-prod.yaml +38 -30
- src/base_template/deployment/ci/pr_checks.yaml → agent_starter_pack/base_template/{% if cookiecutter.cicd_runner == 'google_cloud_build' %}.cloudbuild{% else %}unused_.cloudbuild{% endif %}/pr_checks.yaml +5 -5
- agent_starter_pack/base_template/{% if cookiecutter.cicd_runner == 'google_cloud_build' %}.cloudbuild{% else %}unused_.cloudbuild{% endif %}/staging.yaml +322 -0
- agent_starter_pack/base_template/{{cookiecutter.agent_directory}}/app_utils/telemetry.py +96 -0
- {src/base_template/app/utils → agent_starter_pack/base_template/{{cookiecutter.agent_directory}}/app_utils}/typing.py +7 -9
- agent_starter_pack/base_template/{{cookiecutter.agent_directory}}/app_utils/{% if cookiecutter.is_a2a and cookiecutter.agent_name == 'langgraph_base' %}converters{% else %}unused_converters{% endif %}/__init__.py +25 -0
- agent_starter_pack/base_template/{{cookiecutter.agent_directory}}/app_utils/{% if cookiecutter.is_a2a and cookiecutter.agent_name == 'langgraph_base' %}converters{% else %}unused_converters{% endif %}/part_converter.py +138 -0
- agent_starter_pack/base_template/{{cookiecutter.agent_directory}}/app_utils/{% if cookiecutter.is_a2a and cookiecutter.agent_name == 'langgraph_base' %}executor{% else %}unused_executor{% endif %}/__init__.py +13 -0
- agent_starter_pack/base_template/{{cookiecutter.agent_directory}}/app_utils/{% if cookiecutter.is_a2a and cookiecutter.agent_name == 'langgraph_base' %}executor{% else %}unused_executor{% endif %}/a2a_agent_executor.py +265 -0
- agent_starter_pack/base_template/{{cookiecutter.agent_directory}}/app_utils/{% if cookiecutter.is_a2a and cookiecutter.agent_name == 'langgraph_base' %}executor{% else %}unused_executor{% endif %}/task_result_aggregator.py +152 -0
- agent_starter_pack/cli/commands/create.py +1256 -0
- agent_starter_pack/cli/commands/enhance.py +611 -0
- agent_starter_pack/cli/commands/list.py +203 -0
- agent_starter_pack/cli/commands/register_gemini_enterprise.py +1070 -0
- agent_starter_pack/cli/commands/setup_cicd.py +862 -0
- {src → agent_starter_pack}/cli/main.py +10 -2
- {src → agent_starter_pack}/cli/utils/cicd.py +139 -48
- agent_starter_pack/cli/utils/gcp.py +263 -0
- agent_starter_pack/cli/utils/logging.py +103 -0
- agent_starter_pack/cli/utils/remote_template.py +677 -0
- agent_starter_pack/cli/utils/template.py +1466 -0
- {src → agent_starter_pack}/data_ingestion/data_ingestion_pipeline/components/process_data.py +1 -1
- {src → agent_starter_pack}/data_ingestion/data_ingestion_pipeline/submit_pipeline.py +20 -6
- {src → agent_starter_pack}/data_ingestion/pyproject.toml +1 -0
- {src → agent_starter_pack}/data_ingestion/uv.lock +602 -494
- agent_starter_pack/deployment_targets/agent_engine/tests/integration/test_agent_engine_app.py +484 -0
- agent_starter_pack/deployment_targets/agent_engine/tests/load_test/README.md +84 -0
- agent_starter_pack/deployment_targets/agent_engine/tests/load_test/load_test.py +424 -0
- agent_starter_pack/deployment_targets/agent_engine/tests/{% if cookiecutter.is_a2a %}helpers.py{% else %}unused_helpers.py{% endif %} +138 -0
- agent_starter_pack/deployment_targets/agent_engine/{{cookiecutter.agent_directory}}/agent_engine_app.py +263 -0
- agent_starter_pack/deployment_targets/agent_engine/{{cookiecutter.agent_directory}}/app_utils/deploy.py +414 -0
- agent_starter_pack/deployment_targets/agent_engine/{{cookiecutter.agent_directory}}/app_utils/{% if cookiecutter.is_adk_live %}expose_app.py{% else %}unused_expose_app.py{% endif %} +519 -0
- agent_starter_pack/deployment_targets/cloud_run/Dockerfile +51 -0
- agent_starter_pack/deployment_targets/cloud_run/deployment/terraform/dev/service.tf +243 -0
- agent_starter_pack/deployment_targets/cloud_run/deployment/terraform/service.tf +417 -0
- agent_starter_pack/deployment_targets/cloud_run/tests/integration/test_server_e2e.py +705 -0
- agent_starter_pack/deployment_targets/cloud_run/tests/load_test/.results/.placeholder +321 -0
- agent_starter_pack/deployment_targets/cloud_run/tests/load_test/README.md +165 -0
- agent_starter_pack/deployment_targets/cloud_run/tests/load_test/load_test.py +329 -0
- agent_starter_pack/deployment_targets/cloud_run/{{cookiecutter.agent_directory}}/fast_api_app.py +556 -0
- {src/frontends/live_api_react → agent_starter_pack/frontends/adk_live_react}/frontend/package-lock.json +79 -1044
- {src/frontends/live_api_react → agent_starter_pack/frontends/adk_live_react}/frontend/package.json +1 -9
- agent_starter_pack/frontends/adk_live_react/frontend/src/App.tsx +65 -0
- {src/frontends/live_api_react → agent_starter_pack/frontends/adk_live_react}/frontend/src/components/logger/Logger.tsx +8 -3
- {src/frontends/live_api_react → agent_starter_pack/frontends/adk_live_react}/frontend/src/components/logger/logger.scss +26 -0
- agent_starter_pack/frontends/adk_live_react/frontend/src/components/side-panel/SidePanel.tsx +516 -0
- agent_starter_pack/frontends/adk_live_react/frontend/src/components/side-panel/side-panel.scss +563 -0
- agent_starter_pack/frontends/adk_live_react/frontend/src/components/transcription-preview/TranscriptionPreview.tsx +106 -0
- agent_starter_pack/frontends/adk_live_react/frontend/src/components/transcription-preview/transcription-preview.scss +150 -0
- {src/frontends/live_api_react → agent_starter_pack/frontends/adk_live_react}/frontend/src/hooks/use-live-api.ts +8 -2
- {src/frontends/live_api_react → agent_starter_pack/frontends/adk_live_react}/frontend/src/multimodal-live-types.ts +40 -2
- {src/frontends/live_api_react → agent_starter_pack/frontends/adk_live_react}/frontend/src/utils/audio-recorder.ts +1 -1
- {src/frontends/live_api_react → agent_starter_pack/frontends/adk_live_react}/frontend/src/utils/audio-streamer.ts +1 -1
- {src/frontends/live_api_react → agent_starter_pack/frontends/adk_live_react}/frontend/src/utils/multimodal-live-client.ts +210 -24
- {src/frontends/live_api_react → agent_starter_pack/frontends/adk_live_react}/frontend/src/utils/utils.ts +27 -5
- agent_starter_pack/resources/docs/adk-cheatsheet.md +1628 -0
- agent_starter_pack/resources/locks/uv-adk_a2a_base-agent_engine.lock +4966 -0
- agent_starter_pack/resources/locks/uv-adk_a2a_base-cloud_run.lock +5011 -0
- agent_starter_pack/resources/locks/uv-adk_base-agent_engine.lock +4946 -0
- agent_starter_pack/resources/locks/uv-adk_base-cloud_run.lock +4991 -0
- agent_starter_pack/resources/locks/uv-adk_live-agent_engine.lock +4963 -0
- agent_starter_pack/resources/locks/uv-adk_live-cloud_run.lock +5006 -0
- agent_starter_pack/resources/locks/uv-agentic_rag-agent_engine.lock +5487 -0
- agent_starter_pack/resources/locks/uv-agentic_rag-cloud_run.lock +5532 -0
- agent_starter_pack/resources/locks/uv-langgraph_base-agent_engine.lock +5788 -0
- agent_starter_pack/resources/locks/uv-langgraph_base-cloud_run.lock +5811 -0
- {src → agent_starter_pack}/utils/generate_locks.py +15 -12
- {src → agent_starter_pack}/utils/lock_utils.py +4 -7
- {src → agent_starter_pack}/utils/watch_and_rebuild.py +2 -2
- agent_starter_pack-0.21.0.dist-info/METADATA +182 -0
- agent_starter_pack-0.21.0.dist-info/RECORD +171 -0
- agent_starter_pack-0.21.0.dist-info/entry_points.txt +2 -0
- llm.txt +362 -0
- agent_starter_pack-0.3.3.dist-info/METADATA +0 -164
- agent_starter_pack-0.3.3.dist-info/RECORD +0 -176
- agent_starter_pack-0.3.3.dist-info/entry_points.txt +0 -2
- agents/crewai_coding_crew/README.md +0 -34
- agents/crewai_coding_crew/app/agent.py +0 -86
- agents/crewai_coding_crew/app/crew/config/agents.yaml +0 -39
- agents/crewai_coding_crew/app/crew/config/tasks.yaml +0 -37
- agents/crewai_coding_crew/app/crew/crew.py +0 -71
- agents/crewai_coding_crew/tests/integration/test_agent.py +0 -47
- agents/langgraph_base_react/README.md +0 -9
- agents/langgraph_base_react/app/agent.py +0 -73
- agents/live_api/README.md +0 -37
- agents/live_api/app/agent.py +0 -78
- agents/live_api/app/server.py +0 -196
- agents/live_api/app/templates.py +0 -51
- agents/live_api/app/vector_store.py +0 -55
- agents/live_api/template/.templateconfig.yaml +0 -29
- agents/live_api/tests/integration/test_server_e2e.py +0 -254
- agents/live_api/tests/load_test/load_test.py +0 -40
- agents/live_api/tests/unit/test_server.py +0 -143
- src/base_template/Makefile +0 -72
- src/base_template/README.md +0 -208
- src/base_template/app/__init__.py +0 -3
- src/base_template/app/utils/tracing.py +0 -155
- src/base_template/deployment/README.md +0 -126
- src/base_template/deployment/cd/staging.yaml +0 -216
- src/base_template/deployment/terraform/dev/log_sinks.tf +0 -63
- src/base_template/deployment/terraform/log_sinks.tf +0 -70
- src/base_template/deployment/terraform/providers.tf +0 -37
- src/cli/commands/create.py +0 -664
- src/cli/commands/setup_cicd.py +0 -829
- src/cli/utils/gcp.py +0 -117
- src/cli/utils/logging.py +0 -51
- src/cli/utils/template.py +0 -737
- src/deployment_targets/agent_engine/app/agent_engine_app.py +0 -336
- src/deployment_targets/agent_engine/notebooks/intro_agent_engine.ipynb +0 -1025
- src/deployment_targets/agent_engine/tests/integration/test_agent_engine_app.py +0 -183
- src/deployment_targets/agent_engine/tests/load_test/README.md +0 -42
- src/deployment_targets/agent_engine/tests/load_test/load_test.py +0 -107
- src/deployment_targets/cloud_run/app/server.py +0 -154
- src/deployment_targets/cloud_run/tests/integration/test_server_e2e.py +0 -249
- src/deployment_targets/cloud_run/tests/load_test/.results/.placeholder +0 -0
- src/deployment_targets/cloud_run/tests/load_test/README.md +0 -83
- src/deployment_targets/cloud_run/tests/load_test/load_test.py +0 -118
- src/deployment_targets/cloud_run/uv.lock +0 -6952
- src/frontends/live_api_react/frontend/src/App.tsx +0 -205
- src/frontends/live_api_react/frontend/src/components/control-tray/ControlTray.tsx +0 -217
- src/frontends/live_api_react/frontend/src/components/control-tray/control-tray.scss +0 -201
- src/frontends/live_api_react/frontend/src/components/side-panel/SidePanel.tsx +0 -161
- src/frontends/live_api_react/frontend/src/components/side-panel/side-panel.scss +0 -285
- src/frontends/streamlit/frontend/side_bar.py +0 -214
- src/frontends/streamlit/frontend/streamlit_app.py +0 -265
- src/frontends/streamlit/frontend/style/app_markdown.py +0 -37
- src/frontends/streamlit/frontend/utils/chat_utils.py +0 -67
- src/frontends/streamlit/frontend/utils/local_chat_history.py +0 -125
- src/frontends/streamlit/frontend/utils/message_editing.py +0 -59
- src/frontends/streamlit/frontend/utils/multimodal_utils.py +0 -217
- src/frontends/streamlit/frontend/utils/stream_handler.py +0 -301
- src/frontends/streamlit/frontend/utils/title_summary.py +0 -94
- src/frontends/streamlit_adk/frontend/side_bar.py +0 -214
- src/frontends/streamlit_adk/frontend/streamlit_app.py +0 -314
- src/frontends/streamlit_adk/frontend/style/app_markdown.py +0 -37
- src/frontends/streamlit_adk/frontend/utils/chat_utils.py +0 -84
- src/frontends/streamlit_adk/frontend/utils/local_chat_history.py +0 -110
- src/frontends/streamlit_adk/frontend/utils/message_editing.py +0 -61
- src/frontends/streamlit_adk/frontend/utils/multimodal_utils.py +0 -223
- src/frontends/streamlit_adk/frontend/utils/stream_handler.py +0 -311
- src/frontends/streamlit_adk/frontend/utils/title_summary.py +0 -129
- src/resources/containers/data_processing/Dockerfile +0 -27
- src/resources/containers/e2e-tests/Dockerfile +0 -19
- src/resources/idx/.idx/dev.nix +0 -57
- src/resources/idx/idx-template.json +0 -21
- src/resources/idx/idx-template.nix +0 -26
- src/resources/locks/uv-adk_base-agent_engine.lock +0 -5338
- src/resources/locks/uv-adk_base-cloud_run.lock +0 -5930
- src/resources/locks/uv-agentic_rag-agent_engine.lock +0 -5528
- src/resources/locks/uv-agentic_rag-cloud_run.lock +0 -6120
- src/resources/locks/uv-crewai_coding_crew-agent_engine.lock +0 -6231
- src/resources/locks/uv-crewai_coding_crew-cloud_run.lock +0 -6839
- src/resources/locks/uv-langgraph_base_react-agent_engine.lock +0 -5233
- src/resources/locks/uv-langgraph_base_react-cloud_run.lock +0 -5862
- src/resources/locks/uv-live_api-cloud_run.lock +0 -5832
- src/resources/setup_cicd/cicd_variables.tf +0 -41
- src/resources/setup_cicd/github.tf +0 -87
- {agents → agent_starter_pack/agents}/agentic_rag/app/retrievers.py +0 -0
- {agents → agent_starter_pack/agents}/agentic_rag/app/templates.py +0 -0
- {src → agent_starter_pack}/base_template/deployment/terraform/dev/vars/env.tfvars +0 -0
- {src → agent_starter_pack}/base_template/tests/unit/test_dummy.py +0 -0
- {src/deployment_targets/agent_engine/app/utils → agent_starter_pack/base_template/{{cookiecutter.agent_directory}}/app_utils}/gcs.py +0 -0
- {src → agent_starter_pack}/cli/utils/__init__.py +0 -0
- {src → agent_starter_pack}/cli/utils/datastores.py +0 -0
- {src → agent_starter_pack}/cli/utils/version.py +0 -0
- {src → agent_starter_pack}/data_ingestion/README.md +0 -0
- {src → agent_starter_pack}/data_ingestion/data_ingestion_pipeline/components/ingest_data.py +0 -0
- {src → agent_starter_pack}/data_ingestion/data_ingestion_pipeline/pipeline.py +0 -0
- {src → agent_starter_pack}/deployment_targets/agent_engine/deployment_metadata.json +0 -0
- {src → agent_starter_pack}/deployment_targets/agent_engine/tests/load_test/.results/.placeholder +0 -0
- {src/frontends/live_api_react → agent_starter_pack/frontends/adk_live_react}/frontend/public/favicon.ico +0 -0
- {src/frontends/live_api_react → agent_starter_pack/frontends/adk_live_react}/frontend/public/index.html +0 -0
- {src/frontends/live_api_react → agent_starter_pack/frontends/adk_live_react}/frontend/public/robots.txt +0 -0
- {src/frontends/live_api_react → agent_starter_pack/frontends/adk_live_react}/frontend/src/App.scss +0 -0
- {src/frontends/live_api_react → agent_starter_pack/frontends/adk_live_react}/frontend/src/App.test.tsx +0 -0
- {src/frontends/live_api_react → agent_starter_pack/frontends/adk_live_react}/frontend/src/components/audio-pulse/AudioPulse.tsx +0 -0
- {src/frontends/live_api_react → agent_starter_pack/frontends/adk_live_react}/frontend/src/components/audio-pulse/audio-pulse.scss +0 -0
- {src/frontends/live_api_react → agent_starter_pack/frontends/adk_live_react}/frontend/src/components/logger/mock-logs.ts +0 -0
- {src/frontends/live_api_react → agent_starter_pack/frontends/adk_live_react}/frontend/src/contexts/LiveAPIContext.tsx +0 -0
- {src/frontends/live_api_react → agent_starter_pack/frontends/adk_live_react}/frontend/src/hooks/use-media-stream-mux.ts +0 -0
- {src/frontends/live_api_react → agent_starter_pack/frontends/adk_live_react}/frontend/src/hooks/use-screen-capture.ts +0 -0
- {src/frontends/live_api_react → agent_starter_pack/frontends/adk_live_react}/frontend/src/hooks/use-webcam.ts +0 -0
- {src/frontends/live_api_react → agent_starter_pack/frontends/adk_live_react}/frontend/src/index.css +0 -0
- {src/frontends/live_api_react → agent_starter_pack/frontends/adk_live_react}/frontend/src/index.tsx +0 -0
- {src/frontends/live_api_react → agent_starter_pack/frontends/adk_live_react}/frontend/src/react-app-env.d.ts +0 -0
- {src/frontends/live_api_react → agent_starter_pack/frontends/adk_live_react}/frontend/src/reportWebVitals.ts +0 -0
- {src/frontends/live_api_react → agent_starter_pack/frontends/adk_live_react}/frontend/src/setupTests.ts +0 -0
- {src/frontends/live_api_react → agent_starter_pack/frontends/adk_live_react}/frontend/src/utils/audioworklet-registry.ts +0 -0
- {src/frontends/live_api_react → agent_starter_pack/frontends/adk_live_react}/frontend/src/utils/store-logger.ts +0 -0
- {src/frontends/live_api_react → agent_starter_pack/frontends/adk_live_react}/frontend/src/utils/worklets/audio-processing.ts +0 -0
- {src/frontends/live_api_react → agent_starter_pack/frontends/adk_live_react}/frontend/src/utils/worklets/vol-meter.ts +0 -0
- {src/frontends/live_api_react → agent_starter_pack/frontends/adk_live_react}/frontend/tsconfig.json +0 -0
- {agent_starter_pack-0.3.3.dist-info → agent_starter_pack-0.21.0.dist-info}/WHEEL +0 -0
- {agent_starter_pack-0.3.3.dist-info → agent_starter_pack-0.21.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,336 +0,0 @@
|
|
|
1
|
-
# Copyright 2025 Google LLC
|
|
2
|
-
#
|
|
3
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
-
# you may not use this file except in compliance with the License.
|
|
5
|
-
# You may obtain a copy of the License at
|
|
6
|
-
#
|
|
7
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
-
#
|
|
9
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
-
# See the License for the specific language governing permissions and
|
|
13
|
-
# limitations under the License.
|
|
14
|
-
|
|
15
|
-
# mypy: disable-error-code="attr-defined"
|
|
16
|
-
{%- if "adk" in cookiecutter.tags %}
|
|
17
|
-
import copy
|
|
18
|
-
import datetime
|
|
19
|
-
import json
|
|
20
|
-
import logging
|
|
21
|
-
import os
|
|
22
|
-
from collections.abc import Mapping, Sequence
|
|
23
|
-
from typing import Any
|
|
24
|
-
|
|
25
|
-
import google.auth
|
|
26
|
-
import vertexai
|
|
27
|
-
from google.cloud import logging as google_cloud_logging
|
|
28
|
-
from opentelemetry import trace
|
|
29
|
-
from opentelemetry.sdk.trace import TracerProvider, export
|
|
30
|
-
from vertexai import agent_engines
|
|
31
|
-
from vertexai.preview.reasoning_engines import AdkApp
|
|
32
|
-
|
|
33
|
-
from app.agent import root_agent
|
|
34
|
-
from app.utils.gcs import create_bucket_if_not_exists
|
|
35
|
-
from app.utils.tracing import CloudTraceLoggingSpanExporter
|
|
36
|
-
from app.utils.typing import Feedback
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
class AgentEngineApp(AdkApp):
|
|
40
|
-
def set_up(self) -> None:
|
|
41
|
-
"""Set up logging and tracing for the agent engine app."""
|
|
42
|
-
super().set_up()
|
|
43
|
-
logging_client = google_cloud_logging.Client()
|
|
44
|
-
self.logger = logging_client.logger(__name__)
|
|
45
|
-
provider = TracerProvider()
|
|
46
|
-
processor = export.BatchSpanProcessor(
|
|
47
|
-
CloudTraceLoggingSpanExporter(
|
|
48
|
-
project_id=os.environ.get("GOOGLE_CLOUD_PROJECT")
|
|
49
|
-
)
|
|
50
|
-
)
|
|
51
|
-
provider.add_span_processor(processor)
|
|
52
|
-
trace.set_tracer_provider(provider)
|
|
53
|
-
|
|
54
|
-
def register_feedback(self, feedback: dict[str, Any]) -> None:
|
|
55
|
-
"""Collect and log feedback."""
|
|
56
|
-
feedback_obj = Feedback.model_validate(feedback)
|
|
57
|
-
self.logger.log_struct(feedback_obj.model_dump(), severity="INFO")
|
|
58
|
-
|
|
59
|
-
def register_operations(self) -> Mapping[str, Sequence]:
|
|
60
|
-
"""Registers the operations of the Agent.
|
|
61
|
-
|
|
62
|
-
Extends the base operations to include feedback registration functionality.
|
|
63
|
-
"""
|
|
64
|
-
operations = super().register_operations()
|
|
65
|
-
operations[""] = operations[""] + ["register_feedback"]
|
|
66
|
-
return operations
|
|
67
|
-
|
|
68
|
-
def clone(self) -> "AgentEngineApp":
|
|
69
|
-
"""Returns a clone of the ADK application."""
|
|
70
|
-
template_attributes = self._tmpl_attrs
|
|
71
|
-
return self.__class__(
|
|
72
|
-
agent=copy.deepcopy(template_attributes.get("agent")),
|
|
73
|
-
enable_tracing=template_attributes.get("enable_tracing"),
|
|
74
|
-
session_service_builder=template_attributes.get("session_service_builder"),
|
|
75
|
-
artifact_service_builder=template_attributes.get(
|
|
76
|
-
"artifact_service_builder"
|
|
77
|
-
),
|
|
78
|
-
env_vars=template_attributes.get("env_vars"),
|
|
79
|
-
)
|
|
80
|
-
{%- else %}
|
|
81
|
-
import datetime
|
|
82
|
-
import json
|
|
83
|
-
import logging
|
|
84
|
-
import os
|
|
85
|
-
from collections.abc import Iterable, Mapping, Sequence
|
|
86
|
-
from typing import (
|
|
87
|
-
Any,
|
|
88
|
-
)
|
|
89
|
-
|
|
90
|
-
import google.auth
|
|
91
|
-
import vertexai
|
|
92
|
-
from google.cloud import logging as google_cloud_logging
|
|
93
|
-
from langchain_core.runnables import RunnableConfig
|
|
94
|
-
from traceloop.sdk import Instruments, Traceloop
|
|
95
|
-
from vertexai import agent_engines
|
|
96
|
-
|
|
97
|
-
from app.utils.gcs import create_bucket_if_not_exists
|
|
98
|
-
from app.utils.tracing import CloudTraceLoggingSpanExporter
|
|
99
|
-
from app.utils.typing import Feedback, InputChat, dumpd, ensure_valid_config
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
class AgentEngineApp:
|
|
103
|
-
"""Class for managing agent engine functionality."""
|
|
104
|
-
|
|
105
|
-
def __init__(
|
|
106
|
-
self, project_id: str | None = None, env_vars: dict[str, str] | None = None
|
|
107
|
-
) -> None:
|
|
108
|
-
"""Initialize the AgentEngineApp variables"""
|
|
109
|
-
self.project_id = project_id
|
|
110
|
-
self.env_vars = env_vars if env_vars is not None else {}
|
|
111
|
-
|
|
112
|
-
def set_up(self) -> None:
|
|
113
|
-
"""The set_up method is used to define application initialization logic"""
|
|
114
|
-
import os
|
|
115
|
-
|
|
116
|
-
for k, v in self.env_vars.items():
|
|
117
|
-
os.environ[k] = v
|
|
118
|
-
|
|
119
|
-
# Lazy import agent at setup time to avoid deployment dependencies
|
|
120
|
-
from app.agent import agent
|
|
121
|
-
|
|
122
|
-
logging_client = google_cloud_logging.Client(project=self.project_id)
|
|
123
|
-
self.logger = logging_client.logger(__name__)
|
|
124
|
-
|
|
125
|
-
# Initialize Telemetry
|
|
126
|
-
try:
|
|
127
|
-
Traceloop.init(
|
|
128
|
-
app_name="{{cookiecutter.project_name}}",
|
|
129
|
-
disable_batch=False,
|
|
130
|
-
exporter=CloudTraceLoggingSpanExporter(project_id=self.project_id),
|
|
131
|
-
instruments={Instruments.LANGCHAIN, Instruments.CREW},
|
|
132
|
-
)
|
|
133
|
-
except Exception as e:
|
|
134
|
-
logging.error("Failed to initialize Telemetry: %s", str(e))
|
|
135
|
-
self.runnable = agent
|
|
136
|
-
|
|
137
|
-
# Add any additional variables here that should be included in the tracing logs
|
|
138
|
-
def set_tracing_properties(self, config: RunnableConfig | None) -> None:
|
|
139
|
-
"""Sets tracing association properties for the current request.
|
|
140
|
-
|
|
141
|
-
Args:
|
|
142
|
-
config: Optional RunnableConfig containing request metadata
|
|
143
|
-
"""
|
|
144
|
-
config = ensure_valid_config(config)
|
|
145
|
-
Traceloop.set_association_properties(
|
|
146
|
-
{
|
|
147
|
-
"log_type": "tracing",
|
|
148
|
-
"run_id": str(config["run_id"]),
|
|
149
|
-
"user_id": config["metadata"].pop("user_id", "None"),
|
|
150
|
-
"session_id": config["metadata"].pop("session_id", "None"),
|
|
151
|
-
"commit_sha": os.environ.get("COMMIT_SHA", "None"),
|
|
152
|
-
}
|
|
153
|
-
)
|
|
154
|
-
|
|
155
|
-
def stream_query(
|
|
156
|
-
self,
|
|
157
|
-
*,
|
|
158
|
-
input: str | Mapping,
|
|
159
|
-
config: RunnableConfig | None = None,
|
|
160
|
-
**kwargs: Any,
|
|
161
|
-
) -> Iterable[Any]:
|
|
162
|
-
"""Stream responses from the agent for a given input."""
|
|
163
|
-
|
|
164
|
-
config = ensure_valid_config(config)
|
|
165
|
-
self.set_tracing_properties(config=config)
|
|
166
|
-
# Validate input. We assert the input is a list of messages
|
|
167
|
-
input_chat = InputChat.model_validate(input)
|
|
168
|
-
|
|
169
|
-
for chunk in self.runnable.stream(
|
|
170
|
-
input=input_chat, config=config, **kwargs, stream_mode="messages"
|
|
171
|
-
):
|
|
172
|
-
dumped_chunk = dumpd(chunk)
|
|
173
|
-
yield dumped_chunk
|
|
174
|
-
|
|
175
|
-
def query(
|
|
176
|
-
self,
|
|
177
|
-
*,
|
|
178
|
-
input: str | Mapping,
|
|
179
|
-
config: RunnableConfig | None = None,
|
|
180
|
-
**kwargs: Any,
|
|
181
|
-
) -> Any:
|
|
182
|
-
"""Process a single input and return the agent's response."""
|
|
183
|
-
config = ensure_valid_config(config)
|
|
184
|
-
self.set_tracing_properties(config=config)
|
|
185
|
-
return dumpd(self.runnable.invoke(input=input, config=config, **kwargs))
|
|
186
|
-
|
|
187
|
-
def register_feedback(self, feedback: dict[str, Any]) -> None:
|
|
188
|
-
"""Collect and log feedback."""
|
|
189
|
-
feedback_obj = Feedback.model_validate(feedback)
|
|
190
|
-
self.logger.log_struct(feedback_obj.model_dump(), severity="INFO")
|
|
191
|
-
|
|
192
|
-
def register_operations(self) -> Mapping[str, Sequence]:
|
|
193
|
-
"""Registers the operations of the Agent.
|
|
194
|
-
|
|
195
|
-
This mapping defines how different operation modes (e.g., "", "stream")
|
|
196
|
-
are implemented by specific methods of the Agent. The "default" mode,
|
|
197
|
-
represented by the empty string ``, is associated with the `query` API,
|
|
198
|
-
while the "stream" mode is associated with the `stream_query` API.
|
|
199
|
-
|
|
200
|
-
Returns:
|
|
201
|
-
Mapping[str, Sequence[str]]: A mapping of operation modes to a list
|
|
202
|
-
of method names that implement those operation modes.
|
|
203
|
-
"""
|
|
204
|
-
return {
|
|
205
|
-
"": ["query", "register_feedback"],
|
|
206
|
-
"stream": ["stream_query"],
|
|
207
|
-
}
|
|
208
|
-
{%- endif %}
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
def deploy_agent_engine_app(
|
|
212
|
-
project: str,
|
|
213
|
-
location: str,
|
|
214
|
-
agent_name: str | None = None,
|
|
215
|
-
requirements_file: str = ".requirements.txt",
|
|
216
|
-
extra_packages: list[str] = ["./app"],
|
|
217
|
-
env_vars: dict[str, str] | None = None,
|
|
218
|
-
) -> agent_engines.AgentEngine:
|
|
219
|
-
"""Deploy the agent engine app to Vertex AI."""
|
|
220
|
-
|
|
221
|
-
staging_bucket = f"gs://{project}-agent-engine"
|
|
222
|
-
|
|
223
|
-
create_bucket_if_not_exists(
|
|
224
|
-
bucket_name=staging_bucket, project=project, location=location
|
|
225
|
-
)
|
|
226
|
-
vertexai.init(project=project, location=location, staging_bucket=staging_bucket)
|
|
227
|
-
|
|
228
|
-
# Read requirements
|
|
229
|
-
with open(requirements_file) as f:
|
|
230
|
-
requirements = f.read().strip().split("\n")
|
|
231
|
-
{% if "adk" in cookiecutter.tags %}
|
|
232
|
-
agent_engine = AgentEngineApp(
|
|
233
|
-
agent=root_agent,
|
|
234
|
-
env_vars=env_vars,
|
|
235
|
-
)
|
|
236
|
-
{% else %}
|
|
237
|
-
agent_engine = AgentEngineApp(project_id=project, env_vars=env_vars)
|
|
238
|
-
{% endif %}
|
|
239
|
-
# Common configuration for both create and update operations
|
|
240
|
-
agent_config = {
|
|
241
|
-
"agent_engine": agent_engine,
|
|
242
|
-
"display_name": agent_name,
|
|
243
|
-
"description": "{{cookiecutter.agent_description}}",
|
|
244
|
-
"extra_packages": extra_packages,
|
|
245
|
-
}
|
|
246
|
-
logging.info(f"Agent config: {agent_config}")
|
|
247
|
-
agent_config["requirements"] = requirements
|
|
248
|
-
|
|
249
|
-
# Check if an agent with this name already exists
|
|
250
|
-
existing_agents = list(agent_engines.list(filter=f"display_name={agent_name}"))
|
|
251
|
-
if existing_agents:
|
|
252
|
-
# Update the existing agent with new configuration
|
|
253
|
-
logging.info(f"Updating existing agent: {agent_name}")
|
|
254
|
-
remote_agent = existing_agents[0].update(**agent_config)
|
|
255
|
-
else:
|
|
256
|
-
# Create a new agent if none exists
|
|
257
|
-
logging.info(f"Creating new agent: {agent_name}")
|
|
258
|
-
remote_agent = agent_engines.create(**agent_config)
|
|
259
|
-
|
|
260
|
-
config = {
|
|
261
|
-
"remote_agent_engine_id": remote_agent.resource_name,
|
|
262
|
-
"deployment_timestamp": datetime.datetime.now().isoformat(),
|
|
263
|
-
}
|
|
264
|
-
config_file = "deployment_metadata.json"
|
|
265
|
-
|
|
266
|
-
with open(config_file, "w") as f:
|
|
267
|
-
json.dump(config, f, indent=2)
|
|
268
|
-
|
|
269
|
-
logging.info(f"Agent Engine ID written to {config_file}")
|
|
270
|
-
|
|
271
|
-
return remote_agent
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
if __name__ == "__main__":
|
|
275
|
-
import argparse
|
|
276
|
-
|
|
277
|
-
parser = argparse.ArgumentParser(description="Deploy agent engine app to Vertex AI")
|
|
278
|
-
parser.add_argument(
|
|
279
|
-
"--project",
|
|
280
|
-
default=None,
|
|
281
|
-
help="GCP project ID (defaults to application default credentials)",
|
|
282
|
-
)
|
|
283
|
-
parser.add_argument(
|
|
284
|
-
"--location",
|
|
285
|
-
default="us-central1",
|
|
286
|
-
help="GCP region (defaults to us-central1)",
|
|
287
|
-
)
|
|
288
|
-
parser.add_argument(
|
|
289
|
-
"--agent-name",
|
|
290
|
-
default="{{cookiecutter.project_name}}",
|
|
291
|
-
help="Name for the agent engine",
|
|
292
|
-
)
|
|
293
|
-
parser.add_argument(
|
|
294
|
-
"--requirements-file",
|
|
295
|
-
default=".requirements.txt",
|
|
296
|
-
help="Path to requirements.txt file",
|
|
297
|
-
)
|
|
298
|
-
parser.add_argument(
|
|
299
|
-
"--extra-packages",
|
|
300
|
-
nargs="+",
|
|
301
|
-
default=["./app"],
|
|
302
|
-
help="Additional packages to include",
|
|
303
|
-
)
|
|
304
|
-
parser.add_argument(
|
|
305
|
-
"--set-env-vars",
|
|
306
|
-
help="Comma-separated list of environment variables in KEY=VALUE format",
|
|
307
|
-
)
|
|
308
|
-
args = parser.parse_args()
|
|
309
|
-
|
|
310
|
-
# Parse environment variables if provided
|
|
311
|
-
env_vars = None
|
|
312
|
-
if args.set_env_vars:
|
|
313
|
-
env_vars = {}
|
|
314
|
-
for pair in args.set_env_vars.split(","):
|
|
315
|
-
key, value = pair.split("=", 1)
|
|
316
|
-
env_vars[key] = value
|
|
317
|
-
|
|
318
|
-
if not args.project:
|
|
319
|
-
_, args.project = google.auth.default()
|
|
320
|
-
|
|
321
|
-
print("""
|
|
322
|
-
╔═══════════════════════════════════════════════════════════╗
|
|
323
|
-
║ ║
|
|
324
|
-
║ 🤖 DEPLOYING AGENT TO VERTEX AI AGENT ENGINE 🤖 ║
|
|
325
|
-
║ ║
|
|
326
|
-
╚═══════════════════════════════════════════════════════════╝
|
|
327
|
-
""")
|
|
328
|
-
|
|
329
|
-
deploy_agent_engine_app(
|
|
330
|
-
project=args.project,
|
|
331
|
-
location=args.location,
|
|
332
|
-
agent_name=args.agent_name,
|
|
333
|
-
requirements_file=args.requirements_file,
|
|
334
|
-
extra_packages=args.extra_packages,
|
|
335
|
-
env_vars=env_vars,
|
|
336
|
-
)
|