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.
Files changed (255) hide show
  1. agent_starter_pack/agents/README.md +7 -0
  2. agents/langgraph_base_react/template/.templateconfig.yaml → agent_starter_pack/agents/adk_a2a_base/.template/templateconfig.yaml +5 -10
  3. agent_starter_pack/agents/adk_a2a_base/README.md +37 -0
  4. src/deployment_targets/cloud_run/Dockerfile → agent_starter_pack/agents/adk_a2a_base/app/__init__.py +2 -14
  5. agent_starter_pack/agents/adk_a2a_base/app/agent.py +70 -0
  6. agent_starter_pack/agents/adk_a2a_base/notebooks/adk_a2a_app_testing.ipynb +583 -0
  7. agents/crewai_coding_crew/notebooks/evaluating_crewai_agent.ipynb → agent_starter_pack/agents/adk_a2a_base/notebooks/evaluating_adk_agent.ipynb +163 -199
  8. {agents/adk_base → agent_starter_pack/agents/adk_a2a_base}/tests/integration/test_agent.py +2 -2
  9. agents/adk_base/template/.templateconfig.yaml → agent_starter_pack/agents/adk_base/.template/templateconfig.yaml +4 -1
  10. {agents → agent_starter_pack/agents}/adk_base/README.md +1 -1
  11. agent_starter_pack/agents/adk_base/app/__init__.py +17 -0
  12. {agents → agent_starter_pack/agents}/adk_base/app/agent.py +5 -2
  13. {agents → agent_starter_pack/agents}/adk_base/notebooks/adk_app_testing.ipynb +128 -82
  14. agents/langgraph_base_react/notebooks/evaluating_langgraph_agent.ipynb → agent_starter_pack/agents/adk_base/notebooks/evaluating_adk_agent.ipynb +181 -207
  15. agent_starter_pack/agents/adk_base/tests/integration/test_agent.py +58 -0
  16. agents/crewai_coding_crew/template/.templateconfig.yaml → agent_starter_pack/agents/adk_live/.template/templateconfig.yaml +5 -9
  17. agent_starter_pack/agents/adk_live/README.md +32 -0
  18. agent_starter_pack/agents/adk_live/app/__init__.py +17 -0
  19. agent_starter_pack/agents/adk_live/app/agent.py +51 -0
  20. agent_starter_pack/agents/adk_live/tests/unit/test_dummy.py +38 -0
  21. agents/agentic_rag/template/.templateconfig.yaml → agent_starter_pack/agents/agentic_rag/.template/templateconfig.yaml +7 -3
  22. {agents → agent_starter_pack/agents}/agentic_rag/README.md +1 -1
  23. agent_starter_pack/agents/agentic_rag/app/__init__.py +17 -0
  24. {agents → agent_starter_pack/agents}/agentic_rag/app/agent.py +8 -4
  25. {agents → agent_starter_pack/agents}/agentic_rag/notebooks/adk_app_testing.ipynb +128 -82
  26. agent_starter_pack/agents/agentic_rag/notebooks/evaluating_adk_agent.ipynb +1535 -0
  27. {agents → agent_starter_pack/agents}/agentic_rag/tests/integration/test_agent.py +3 -3
  28. agent_starter_pack/agents/langgraph_base/.template/templateconfig.yaml +31 -0
  29. agent_starter_pack/agents/langgraph_base/README.md +30 -0
  30. agent_starter_pack/agents/langgraph_base/app/__init__.py +17 -0
  31. agent_starter_pack/agents/langgraph_base/app/agent.py +34 -0
  32. {agents/crewai_coding_crew → agent_starter_pack/agents/langgraph_base}/notebooks/evaluating_langgraph_agent.ipynb +30 -17
  33. {agents/langgraph_base_react → agent_starter_pack/agents/langgraph_base}/tests/integration/test_agent.py +2 -2
  34. {src → agent_starter_pack}/base_template/.gitignore +5 -3
  35. agent_starter_pack/base_template/GEMINI.md +5 -0
  36. agent_starter_pack/base_template/Makefile +339 -0
  37. agent_starter_pack/base_template/README.md +267 -0
  38. agent_starter_pack/base_template/deployment/README.md +11 -0
  39. {src → agent_starter_pack}/base_template/deployment/terraform/apis.tf +2 -2
  40. {src → agent_starter_pack}/base_template/deployment/terraform/dev/apis.tf +6 -1
  41. {src → agent_starter_pack}/base_template/deployment/terraform/dev/iam.tf +12 -11
  42. {src → agent_starter_pack}/base_template/deployment/terraform/dev/providers.tf +5 -1
  43. {src → agent_starter_pack}/base_template/deployment/terraform/dev/storage.tf +1 -1
  44. {src → agent_starter_pack}/base_template/deployment/terraform/dev/variables.tf +10 -10
  45. agent_starter_pack/base_template/deployment/terraform/dev/{% if cookiecutter.is_adk %}telemetry.tf{% else %}unused_telemetry.tf{% endif %} +193 -0
  46. agent_starter_pack/base_template/deployment/terraform/github.tf +337 -0
  47. {src → agent_starter_pack}/base_template/deployment/terraform/iam.tf +20 -41
  48. {src → agent_starter_pack}/base_template/deployment/terraform/locals.tf +10 -3
  49. {src/resources/setup_cicd → agent_starter_pack/base_template/deployment/terraform}/providers.tf +8 -1
  50. {src → agent_starter_pack}/base_template/deployment/terraform/service_accounts.tf +7 -8
  51. agent_starter_pack/base_template/deployment/terraform/sql/completions.sql +138 -0
  52. {src → agent_starter_pack}/base_template/deployment/terraform/storage.tf +7 -16
  53. {src → agent_starter_pack}/base_template/deployment/terraform/variables.tf +61 -28
  54. {src → agent_starter_pack}/base_template/deployment/terraform/vars/env.tfvars +6 -1
  55. agent_starter_pack/base_template/deployment/terraform/{% if cookiecutter.cicd_runner == 'github_actions' %}wif.tf{% else %}unused_wif.tf{% endif %} +43 -0
  56. 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
  57. agent_starter_pack/base_template/deployment/terraform/{% if cookiecutter.is_adk %}telemetry.tf{% else %}unused_telemetry.tf{% endif %} +206 -0
  58. {src → agent_starter_pack}/base_template/pyproject.toml +24 -37
  59. agent_starter_pack/base_template/{% if cookiecutter.cicd_runner == 'github_actions' %}.github{% else %}unused_github{% endif %}/workflows/deploy-to-prod.yaml +132 -0
  60. agent_starter_pack/base_template/{% if cookiecutter.cicd_runner == 'github_actions' %}.github{% else %}unused_github{% endif %}/workflows/pr_checks.yaml +65 -0
  61. agent_starter_pack/base_template/{% if cookiecutter.cicd_runner == 'github_actions' %}.github{% else %}unused_github{% endif %}/workflows/staging.yaml +259 -0
  62. 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
  63. 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
  64. agent_starter_pack/base_template/{% if cookiecutter.cicd_runner == 'google_cloud_build' %}.cloudbuild{% else %}unused_.cloudbuild{% endif %}/staging.yaml +322 -0
  65. agent_starter_pack/base_template/{{cookiecutter.agent_directory}}/app_utils/telemetry.py +96 -0
  66. {src/base_template/app/utils → agent_starter_pack/base_template/{{cookiecutter.agent_directory}}/app_utils}/typing.py +7 -9
  67. 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
  68. 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
  69. 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
  70. 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
  71. 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
  72. agent_starter_pack/cli/commands/create.py +1256 -0
  73. agent_starter_pack/cli/commands/enhance.py +611 -0
  74. agent_starter_pack/cli/commands/list.py +203 -0
  75. agent_starter_pack/cli/commands/register_gemini_enterprise.py +1070 -0
  76. agent_starter_pack/cli/commands/setup_cicd.py +862 -0
  77. {src → agent_starter_pack}/cli/main.py +10 -2
  78. {src → agent_starter_pack}/cli/utils/cicd.py +139 -48
  79. agent_starter_pack/cli/utils/gcp.py +263 -0
  80. agent_starter_pack/cli/utils/logging.py +103 -0
  81. agent_starter_pack/cli/utils/remote_template.py +677 -0
  82. agent_starter_pack/cli/utils/template.py +1466 -0
  83. {src → agent_starter_pack}/data_ingestion/data_ingestion_pipeline/components/process_data.py +1 -1
  84. {src → agent_starter_pack}/data_ingestion/data_ingestion_pipeline/submit_pipeline.py +20 -6
  85. {src → agent_starter_pack}/data_ingestion/pyproject.toml +1 -0
  86. {src → agent_starter_pack}/data_ingestion/uv.lock +602 -494
  87. agent_starter_pack/deployment_targets/agent_engine/tests/integration/test_agent_engine_app.py +484 -0
  88. agent_starter_pack/deployment_targets/agent_engine/tests/load_test/README.md +84 -0
  89. agent_starter_pack/deployment_targets/agent_engine/tests/load_test/load_test.py +424 -0
  90. agent_starter_pack/deployment_targets/agent_engine/tests/{% if cookiecutter.is_a2a %}helpers.py{% else %}unused_helpers.py{% endif %} +138 -0
  91. agent_starter_pack/deployment_targets/agent_engine/{{cookiecutter.agent_directory}}/agent_engine_app.py +263 -0
  92. agent_starter_pack/deployment_targets/agent_engine/{{cookiecutter.agent_directory}}/app_utils/deploy.py +414 -0
  93. 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
  94. agent_starter_pack/deployment_targets/cloud_run/Dockerfile +51 -0
  95. agent_starter_pack/deployment_targets/cloud_run/deployment/terraform/dev/service.tf +243 -0
  96. agent_starter_pack/deployment_targets/cloud_run/deployment/terraform/service.tf +417 -0
  97. agent_starter_pack/deployment_targets/cloud_run/tests/integration/test_server_e2e.py +705 -0
  98. agent_starter_pack/deployment_targets/cloud_run/tests/load_test/.results/.placeholder +321 -0
  99. agent_starter_pack/deployment_targets/cloud_run/tests/load_test/README.md +165 -0
  100. agent_starter_pack/deployment_targets/cloud_run/tests/load_test/load_test.py +329 -0
  101. agent_starter_pack/deployment_targets/cloud_run/{{cookiecutter.agent_directory}}/fast_api_app.py +556 -0
  102. {src/frontends/live_api_react → agent_starter_pack/frontends/adk_live_react}/frontend/package-lock.json +79 -1044
  103. {src/frontends/live_api_react → agent_starter_pack/frontends/adk_live_react}/frontend/package.json +1 -9
  104. agent_starter_pack/frontends/adk_live_react/frontend/src/App.tsx +65 -0
  105. {src/frontends/live_api_react → agent_starter_pack/frontends/adk_live_react}/frontend/src/components/logger/Logger.tsx +8 -3
  106. {src/frontends/live_api_react → agent_starter_pack/frontends/adk_live_react}/frontend/src/components/logger/logger.scss +26 -0
  107. agent_starter_pack/frontends/adk_live_react/frontend/src/components/side-panel/SidePanel.tsx +516 -0
  108. agent_starter_pack/frontends/adk_live_react/frontend/src/components/side-panel/side-panel.scss +563 -0
  109. agent_starter_pack/frontends/adk_live_react/frontend/src/components/transcription-preview/TranscriptionPreview.tsx +106 -0
  110. agent_starter_pack/frontends/adk_live_react/frontend/src/components/transcription-preview/transcription-preview.scss +150 -0
  111. {src/frontends/live_api_react → agent_starter_pack/frontends/adk_live_react}/frontend/src/hooks/use-live-api.ts +8 -2
  112. {src/frontends/live_api_react → agent_starter_pack/frontends/adk_live_react}/frontend/src/multimodal-live-types.ts +40 -2
  113. {src/frontends/live_api_react → agent_starter_pack/frontends/adk_live_react}/frontend/src/utils/audio-recorder.ts +1 -1
  114. {src/frontends/live_api_react → agent_starter_pack/frontends/adk_live_react}/frontend/src/utils/audio-streamer.ts +1 -1
  115. {src/frontends/live_api_react → agent_starter_pack/frontends/adk_live_react}/frontend/src/utils/multimodal-live-client.ts +210 -24
  116. {src/frontends/live_api_react → agent_starter_pack/frontends/adk_live_react}/frontend/src/utils/utils.ts +27 -5
  117. agent_starter_pack/resources/docs/adk-cheatsheet.md +1628 -0
  118. agent_starter_pack/resources/locks/uv-adk_a2a_base-agent_engine.lock +4966 -0
  119. agent_starter_pack/resources/locks/uv-adk_a2a_base-cloud_run.lock +5011 -0
  120. agent_starter_pack/resources/locks/uv-adk_base-agent_engine.lock +4946 -0
  121. agent_starter_pack/resources/locks/uv-adk_base-cloud_run.lock +4991 -0
  122. agent_starter_pack/resources/locks/uv-adk_live-agent_engine.lock +4963 -0
  123. agent_starter_pack/resources/locks/uv-adk_live-cloud_run.lock +5006 -0
  124. agent_starter_pack/resources/locks/uv-agentic_rag-agent_engine.lock +5487 -0
  125. agent_starter_pack/resources/locks/uv-agentic_rag-cloud_run.lock +5532 -0
  126. agent_starter_pack/resources/locks/uv-langgraph_base-agent_engine.lock +5788 -0
  127. agent_starter_pack/resources/locks/uv-langgraph_base-cloud_run.lock +5811 -0
  128. {src → agent_starter_pack}/utils/generate_locks.py +15 -12
  129. {src → agent_starter_pack}/utils/lock_utils.py +4 -7
  130. {src → agent_starter_pack}/utils/watch_and_rebuild.py +2 -2
  131. agent_starter_pack-0.21.0.dist-info/METADATA +182 -0
  132. agent_starter_pack-0.21.0.dist-info/RECORD +171 -0
  133. agent_starter_pack-0.21.0.dist-info/entry_points.txt +2 -0
  134. llm.txt +362 -0
  135. agent_starter_pack-0.3.3.dist-info/METADATA +0 -164
  136. agent_starter_pack-0.3.3.dist-info/RECORD +0 -176
  137. agent_starter_pack-0.3.3.dist-info/entry_points.txt +0 -2
  138. agents/crewai_coding_crew/README.md +0 -34
  139. agents/crewai_coding_crew/app/agent.py +0 -86
  140. agents/crewai_coding_crew/app/crew/config/agents.yaml +0 -39
  141. agents/crewai_coding_crew/app/crew/config/tasks.yaml +0 -37
  142. agents/crewai_coding_crew/app/crew/crew.py +0 -71
  143. agents/crewai_coding_crew/tests/integration/test_agent.py +0 -47
  144. agents/langgraph_base_react/README.md +0 -9
  145. agents/langgraph_base_react/app/agent.py +0 -73
  146. agents/live_api/README.md +0 -37
  147. agents/live_api/app/agent.py +0 -78
  148. agents/live_api/app/server.py +0 -196
  149. agents/live_api/app/templates.py +0 -51
  150. agents/live_api/app/vector_store.py +0 -55
  151. agents/live_api/template/.templateconfig.yaml +0 -29
  152. agents/live_api/tests/integration/test_server_e2e.py +0 -254
  153. agents/live_api/tests/load_test/load_test.py +0 -40
  154. agents/live_api/tests/unit/test_server.py +0 -143
  155. src/base_template/Makefile +0 -72
  156. src/base_template/README.md +0 -208
  157. src/base_template/app/__init__.py +0 -3
  158. src/base_template/app/utils/tracing.py +0 -155
  159. src/base_template/deployment/README.md +0 -126
  160. src/base_template/deployment/cd/staging.yaml +0 -216
  161. src/base_template/deployment/terraform/dev/log_sinks.tf +0 -63
  162. src/base_template/deployment/terraform/log_sinks.tf +0 -70
  163. src/base_template/deployment/terraform/providers.tf +0 -37
  164. src/cli/commands/create.py +0 -664
  165. src/cli/commands/setup_cicd.py +0 -829
  166. src/cli/utils/gcp.py +0 -117
  167. src/cli/utils/logging.py +0 -51
  168. src/cli/utils/template.py +0 -737
  169. src/deployment_targets/agent_engine/app/agent_engine_app.py +0 -336
  170. src/deployment_targets/agent_engine/notebooks/intro_agent_engine.ipynb +0 -1025
  171. src/deployment_targets/agent_engine/tests/integration/test_agent_engine_app.py +0 -183
  172. src/deployment_targets/agent_engine/tests/load_test/README.md +0 -42
  173. src/deployment_targets/agent_engine/tests/load_test/load_test.py +0 -107
  174. src/deployment_targets/cloud_run/app/server.py +0 -154
  175. src/deployment_targets/cloud_run/tests/integration/test_server_e2e.py +0 -249
  176. src/deployment_targets/cloud_run/tests/load_test/.results/.placeholder +0 -0
  177. src/deployment_targets/cloud_run/tests/load_test/README.md +0 -83
  178. src/deployment_targets/cloud_run/tests/load_test/load_test.py +0 -118
  179. src/deployment_targets/cloud_run/uv.lock +0 -6952
  180. src/frontends/live_api_react/frontend/src/App.tsx +0 -205
  181. src/frontends/live_api_react/frontend/src/components/control-tray/ControlTray.tsx +0 -217
  182. src/frontends/live_api_react/frontend/src/components/control-tray/control-tray.scss +0 -201
  183. src/frontends/live_api_react/frontend/src/components/side-panel/SidePanel.tsx +0 -161
  184. src/frontends/live_api_react/frontend/src/components/side-panel/side-panel.scss +0 -285
  185. src/frontends/streamlit/frontend/side_bar.py +0 -214
  186. src/frontends/streamlit/frontend/streamlit_app.py +0 -265
  187. src/frontends/streamlit/frontend/style/app_markdown.py +0 -37
  188. src/frontends/streamlit/frontend/utils/chat_utils.py +0 -67
  189. src/frontends/streamlit/frontend/utils/local_chat_history.py +0 -125
  190. src/frontends/streamlit/frontend/utils/message_editing.py +0 -59
  191. src/frontends/streamlit/frontend/utils/multimodal_utils.py +0 -217
  192. src/frontends/streamlit/frontend/utils/stream_handler.py +0 -301
  193. src/frontends/streamlit/frontend/utils/title_summary.py +0 -94
  194. src/frontends/streamlit_adk/frontend/side_bar.py +0 -214
  195. src/frontends/streamlit_adk/frontend/streamlit_app.py +0 -314
  196. src/frontends/streamlit_adk/frontend/style/app_markdown.py +0 -37
  197. src/frontends/streamlit_adk/frontend/utils/chat_utils.py +0 -84
  198. src/frontends/streamlit_adk/frontend/utils/local_chat_history.py +0 -110
  199. src/frontends/streamlit_adk/frontend/utils/message_editing.py +0 -61
  200. src/frontends/streamlit_adk/frontend/utils/multimodal_utils.py +0 -223
  201. src/frontends/streamlit_adk/frontend/utils/stream_handler.py +0 -311
  202. src/frontends/streamlit_adk/frontend/utils/title_summary.py +0 -129
  203. src/resources/containers/data_processing/Dockerfile +0 -27
  204. src/resources/containers/e2e-tests/Dockerfile +0 -19
  205. src/resources/idx/.idx/dev.nix +0 -57
  206. src/resources/idx/idx-template.json +0 -21
  207. src/resources/idx/idx-template.nix +0 -26
  208. src/resources/locks/uv-adk_base-agent_engine.lock +0 -5338
  209. src/resources/locks/uv-adk_base-cloud_run.lock +0 -5930
  210. src/resources/locks/uv-agentic_rag-agent_engine.lock +0 -5528
  211. src/resources/locks/uv-agentic_rag-cloud_run.lock +0 -6120
  212. src/resources/locks/uv-crewai_coding_crew-agent_engine.lock +0 -6231
  213. src/resources/locks/uv-crewai_coding_crew-cloud_run.lock +0 -6839
  214. src/resources/locks/uv-langgraph_base_react-agent_engine.lock +0 -5233
  215. src/resources/locks/uv-langgraph_base_react-cloud_run.lock +0 -5862
  216. src/resources/locks/uv-live_api-cloud_run.lock +0 -5832
  217. src/resources/setup_cicd/cicd_variables.tf +0 -41
  218. src/resources/setup_cicd/github.tf +0 -87
  219. {agents → agent_starter_pack/agents}/agentic_rag/app/retrievers.py +0 -0
  220. {agents → agent_starter_pack/agents}/agentic_rag/app/templates.py +0 -0
  221. {src → agent_starter_pack}/base_template/deployment/terraform/dev/vars/env.tfvars +0 -0
  222. {src → agent_starter_pack}/base_template/tests/unit/test_dummy.py +0 -0
  223. {src/deployment_targets/agent_engine/app/utils → agent_starter_pack/base_template/{{cookiecutter.agent_directory}}/app_utils}/gcs.py +0 -0
  224. {src → agent_starter_pack}/cli/utils/__init__.py +0 -0
  225. {src → agent_starter_pack}/cli/utils/datastores.py +0 -0
  226. {src → agent_starter_pack}/cli/utils/version.py +0 -0
  227. {src → agent_starter_pack}/data_ingestion/README.md +0 -0
  228. {src → agent_starter_pack}/data_ingestion/data_ingestion_pipeline/components/ingest_data.py +0 -0
  229. {src → agent_starter_pack}/data_ingestion/data_ingestion_pipeline/pipeline.py +0 -0
  230. {src → agent_starter_pack}/deployment_targets/agent_engine/deployment_metadata.json +0 -0
  231. {src → agent_starter_pack}/deployment_targets/agent_engine/tests/load_test/.results/.placeholder +0 -0
  232. {src/frontends/live_api_react → agent_starter_pack/frontends/adk_live_react}/frontend/public/favicon.ico +0 -0
  233. {src/frontends/live_api_react → agent_starter_pack/frontends/adk_live_react}/frontend/public/index.html +0 -0
  234. {src/frontends/live_api_react → agent_starter_pack/frontends/adk_live_react}/frontend/public/robots.txt +0 -0
  235. {src/frontends/live_api_react → agent_starter_pack/frontends/adk_live_react}/frontend/src/App.scss +0 -0
  236. {src/frontends/live_api_react → agent_starter_pack/frontends/adk_live_react}/frontend/src/App.test.tsx +0 -0
  237. {src/frontends/live_api_react → agent_starter_pack/frontends/adk_live_react}/frontend/src/components/audio-pulse/AudioPulse.tsx +0 -0
  238. {src/frontends/live_api_react → agent_starter_pack/frontends/adk_live_react}/frontend/src/components/audio-pulse/audio-pulse.scss +0 -0
  239. {src/frontends/live_api_react → agent_starter_pack/frontends/adk_live_react}/frontend/src/components/logger/mock-logs.ts +0 -0
  240. {src/frontends/live_api_react → agent_starter_pack/frontends/adk_live_react}/frontend/src/contexts/LiveAPIContext.tsx +0 -0
  241. {src/frontends/live_api_react → agent_starter_pack/frontends/adk_live_react}/frontend/src/hooks/use-media-stream-mux.ts +0 -0
  242. {src/frontends/live_api_react → agent_starter_pack/frontends/adk_live_react}/frontend/src/hooks/use-screen-capture.ts +0 -0
  243. {src/frontends/live_api_react → agent_starter_pack/frontends/adk_live_react}/frontend/src/hooks/use-webcam.ts +0 -0
  244. {src/frontends/live_api_react → agent_starter_pack/frontends/adk_live_react}/frontend/src/index.css +0 -0
  245. {src/frontends/live_api_react → agent_starter_pack/frontends/adk_live_react}/frontend/src/index.tsx +0 -0
  246. {src/frontends/live_api_react → agent_starter_pack/frontends/adk_live_react}/frontend/src/react-app-env.d.ts +0 -0
  247. {src/frontends/live_api_react → agent_starter_pack/frontends/adk_live_react}/frontend/src/reportWebVitals.ts +0 -0
  248. {src/frontends/live_api_react → agent_starter_pack/frontends/adk_live_react}/frontend/src/setupTests.ts +0 -0
  249. {src/frontends/live_api_react → agent_starter_pack/frontends/adk_live_react}/frontend/src/utils/audioworklet-registry.ts +0 -0
  250. {src/frontends/live_api_react → agent_starter_pack/frontends/adk_live_react}/frontend/src/utils/store-logger.ts +0 -0
  251. {src/frontends/live_api_react → agent_starter_pack/frontends/adk_live_react}/frontend/src/utils/worklets/audio-processing.ts +0 -0
  252. {src/frontends/live_api_react → agent_starter_pack/frontends/adk_live_react}/frontend/src/utils/worklets/vol-meter.ts +0 -0
  253. {src/frontends/live_api_react → agent_starter_pack/frontends/adk_live_react}/frontend/tsconfig.json +0 -0
  254. {agent_starter_pack-0.3.3.dist-info → agent_starter_pack-0.21.0.dist-info}/WHEEL +0 -0
  255. {agent_starter_pack-0.3.3.dist-info → agent_starter_pack-0.21.0.dist-info}/licenses/LICENSE +0 -0
@@ -1,176 +0,0 @@
1
- agents/adk_base/README.md,sha256=eLf-F9Z4u_mQOchAnUaSrOAHXRSx8wUQN29kkwz1SF4,894
2
- agents/adk_base/app/agent.py,sha256=Dm7dcELj0RbALNI20R9-uEay_RHgej0dPOdQRHA7E-8,2187
3
- agents/adk_base/notebooks/adk_app_testing.ipynb,sha256=sHaW9s1PiclJILKBK5j-W6nx_-g60UVnvITKgZFraME,8591
4
- agents/adk_base/template/.templateconfig.yaml,sha256=m8Qkm1maDIQRDk5GmJlk7_tZT_1ZCn7Cxzo00TzMYmI,836
5
- agents/adk_base/tests/integration/test_agent.py,sha256=1VyshBu44p_PUAQQxV0QROmv6OUGt_m0nDLyaTI77po,1964
6
- agents/agentic_rag/README.md,sha256=mxMLkq6tAghFaDmc2sc2sEQ5vn9kGWdiRxfTykwpLz0,2268
7
- agents/agentic_rag/app/agent.py,sha256=EkbMIjEeyXqK49wIkoW6uWotxyXCIfJpeLCizw2QDZM,3959
8
- agents/agentic_rag/app/retrievers.py,sha256=qfxwSEixMddvAu4FvUTZAFh1Gdp3RPY65s0Wp6gEFVk,4561
9
- agents/agentic_rag/app/templates.py,sha256=8N_uRchwiN7hlH9Y8rdJ1CAtOhpHUWZkXZZ7IU-YJJk,867
10
- agents/agentic_rag/notebooks/adk_app_testing.ipynb,sha256=sHaW9s1PiclJILKBK5j-W6nx_-g60UVnvITKgZFraME,8591
11
- agents/agentic_rag/template/.templateconfig.yaml,sha256=6wznpR27bt_brW0DCT7rq_J5AaLVo6M--dcoG_uFtsU,1111
12
- agents/agentic_rag/tests/integration/test_agent.py,sha256=HbEv2gzC77jrse3RZ0ra_Bcu6zW_7YlrxYWcYfei63M,2107
13
- agents/crewai_coding_crew/README.md,sha256=4No7sfHQVHELARGiT3fWANJzDR0NP48ow4ct3FoPwlA,1672
14
- agents/crewai_coding_crew/app/agent.py,sha256=GcmNrOyRPhnI7LICIV6GvBvcDfA_PKqPsQcOEzAORmY,3269
15
- agents/crewai_coding_crew/app/crew/crew.py,sha256=pqeeJ4txP-gcVT3PKEAw2zZ4x8g4cDlnFFbf0_zZRr4,2000
16
- agents/crewai_coding_crew/app/crew/config/agents.yaml,sha256=Cn9zTcP3C-8MvlV19cYdlxR0iIs2_FOy2gKOJLUpNRo,1154
17
- agents/crewai_coding_crew/app/crew/config/tasks.yaml,sha256=SSFuiSQPhi4dM0V5HdNuMqtN7JJr5RUCMhhBzUkPBpc,1511
18
- agents/crewai_coding_crew/notebooks/evaluating_crewai_agent.ipynb,sha256=ifTn4RfrJeYQ8ell9n6VE65ZEfcnKGkMLFG8RBlPK70,57974
19
- agents/crewai_coding_crew/notebooks/evaluating_langgraph_agent.ipynb,sha256=fb4rTMlA-XCniZyPIP9ni4nvIDmLj9Uq8Saw7WrG0fc,58015
20
- agents/crewai_coding_crew/template/.templateconfig.yaml,sha256=cl2idKg9NZKrkIkDhxCVSiDIJaoDjy5yMVmVc93Nlm8,974
21
- agents/crewai_coding_crew/tests/integration/test_agent.py,sha256=0uvfmM3FSdESIU7ICb2oqABsQqylQU2PE3UBwbpif-A,1629
22
- agents/langgraph_base_react/README.md,sha256=KZQ0e8q9CqnIEiItH9Tc2Ceb2mC3sBcyQUo-ZAmO-zs,482
23
- agents/langgraph_base_react/app/agent.py,sha256=2HsbZaSLpMhJQ21geauKPfavcavPW50lx4WV5dXlvnQ,2514
24
- agents/langgraph_base_react/notebooks/evaluating_langgraph_agent.ipynb,sha256=fb4rTMlA-XCniZyPIP9ni4nvIDmLj9Uq8Saw7WrG0fc,58015
25
- agents/langgraph_base_react/template/.templateconfig.yaml,sha256=MPgKPeG3WilPe7DupN_tArMHWfRPcoGeTToIE_WhQP8,992
26
- agents/langgraph_base_react/tests/integration/test_agent.py,sha256=wg2Y8V4l7dh7rhWy7Z8zioDW5ILRsz7RZJ-mz0AhK3U,1619
27
- agents/live_api/README.md,sha256=eB6e1VAwOsX6d3ns2HgVzdtywKUaZ39-PraKFCjtj7s,3012
28
- agents/live_api/app/agent.py,sha256=KXcc10JU-ytbvDmr8bx6uOGxoVQMckppUa29cQBA8rM,2522
29
- agents/live_api/app/server.py,sha256=L4gcYKu-2gTVHPhHz809Ml-tFFvQ8uUtu4hPJ_y-Nd0,7119
30
- agents/live_api/app/templates.py,sha256=HgA4QGIle4Q-Nr6xAAXk1pTX7eNbZqlQUD9_fbCvDWA,3301
31
- agents/live_api/app/vector_store.py,sha256=AYRSNpfevbVTt-nnWna_dp2pn4T7o1nz9-9wOoWaxsA,2045
32
- agents/live_api/template/.templateconfig.yaml,sha256=8X2NyfZeM47tg-QP6Efz7WR3AKWkDAlvKnYeMFiuMcY,1091
33
- agents/live_api/tests/integration/test_server_e2e.py,sha256=D2VETDIyTD2fQyQ6DXwLr-POSYyVzzzcpIFLt5Ppyx4,8398
34
- agents/live_api/tests/load_test/load_test.py,sha256=HHZyfC4gqiQtZVF_CbbxENGgWQccMLpwMv0IdoQ6cbQ,1275
35
- agents/live_api/tests/unit/test_server.py,sha256=_TjlgQgNkjerIaBGnu8P8_KB8ZlSolDcivALpUOn_Rw,4786
36
- src/base_template/.gitignore,sha256=mJKTZIcVdAFiIUQicRfPNGUg6WvwcfTEC2xbmAaU34g,2579
37
- src/base_template/Makefile,sha256=3fFwDiasX0KBjxO17jqwvXY9IcWZyTBftr-d5wpwiTg,3725
38
- src/base_template/README.md,sha256=0dHYVT8IlG0eMd7dEelAaPyuyk5ZDHnKAvNV8x7TBEA,10397
39
- src/base_template/pyproject.toml,sha256=-B1gk9Yx1OxL88bGH4oklCcSo0zOTm7IxaUbPcIS5rg,2959
40
- src/base_template/app/__init__.py,sha256=UyAgc2l8nkVIUPUzL9hKR7EgzCsc2jSYcOcjHNNmpMU,59
41
- src/base_template/app/utils/tracing.py,sha256=2rv1Ukh2jTBENDwoghCItJ28l-Sjz9gMlzdojlVgJa4,6052
42
- src/base_template/app/utils/typing.py,sha256=DP5OZC3IGvqA1XbvWt8kI3gyAK3ZjzUSL5Ca17wNeLI,4249
43
- src/base_template/deployment/README.md,sha256=XjRRcEiyoobi0YEXybfvtaOi9ecNDU2bVKczv0MUBac,5255
44
- src/base_template/deployment/cd/deploy-to-prod.yaml,sha256=Vzt83DunPF64wVsY96KTGvhxZFHAF5Tze_88KW4O-oo,4297
45
- src/base_template/deployment/cd/staging.yaml,sha256=URqQPOxEv1ngYM7RoIs-iGMZsDdq6wUdmH953sipK_o,7925
46
- src/base_template/deployment/ci/pr_checks.yaml,sha256=7jS9HlRfistS4hhUXMF0tc-5m6g6l9s0rGhq_xP8Tnc,1517
47
- src/base_template/deployment/terraform/apis.tf,sha256=98vqe53RLtFwnQq_9N1widR8J0c1SGqwhCXp_GohITA,1497
48
- src/base_template/deployment/terraform/build_triggers.tf,sha256=_XDFj6kPd21NmEKKRjpqYIa48P8VHCMVG_6thLqrS0Y,6363
49
- src/base_template/deployment/terraform/iam.tf,sha256=-KrOngRch4gKnPkZy0ybQQq0RW5-TI80tJ-VJLg-AdA,5597
50
- src/base_template/deployment/terraform/locals.tf,sha256=mrmOigExLk5g734-2VodDj8qQUTBq20e7FgQD0KUF8E,1390
51
- src/base_template/deployment/terraform/log_sinks.tf,sha256=PP_n3Jr-_EhMy6shVUrx7ztdQic5W3mKPjC0zQSvAjA,2955
52
- src/base_template/deployment/terraform/providers.tf,sha256=LFjFQm8XbhWfQRwBUwhTjHLDWUbHW-IlFg71E0zFHIg,1080
53
- src/base_template/deployment/terraform/service_accounts.tf,sha256=av5UohEL5JmTw4FUMg7DVYjg_8Kg1u9yYUTD3QlGEmo,1689
54
- src/base_template/deployment/terraform/storage.tf,sha256=v1Vo3SS9yUJOJ8QDVyo0sj_YFY-lElRvdsUrxbIzyuI,8639
55
- src/base_template/deployment/terraform/variables.tf,sha256=w_GD6rLPKVeUESi91dEfBZvPccyDM_uNSAOYdYHaYbs,5851
56
- src/base_template/deployment/terraform/dev/apis.tf,sha256=kUXkyN-fB8SKssVBxWKZvtHHFGcz09L4Rz9fPQNPSB8,1337
57
- src/base_template/deployment/terraform/dev/iam.tf,sha256=ZHFs4TMvq6mqD90n8ecXndzW3pyu4EbZO4iJis88BH0,3394
58
- src/base_template/deployment/terraform/dev/log_sinks.tf,sha256=uVdMtDdd8MnxtKhqzVaYqadE11P3r4fs2IdgNecxM4I,2671
59
- src/base_template/deployment/terraform/dev/providers.tf,sha256=1S9jCh48d6ailVZ1e14EHsUUDSp7DyGZGExJwViFCkM,900
60
- src/base_template/deployment/terraform/dev/storage.tf,sha256=1mgLs21SUhfcoRICqd7BqUlEVAVGeN3kMsQ4UAQLOh8,4654
61
- src/base_template/deployment/terraform/dev/variables.tf,sha256=U3UbpWysuSDEZkd94rAN_-XYwoOJXKuMNx3zyE7ULJM,4190
62
- src/base_template/deployment/terraform/dev/vars/env.tfvars,sha256=LoQMjh1AAMR-MGfaSCsVMjdoYTk2T4oS4D9vMH54CdQ,714
63
- src/base_template/deployment/terraform/vars/env.tfvars,sha256=Nze8q1x2Aj6ZUeWC2hDeZWqNUkLp13DgzA_LFmmOzCo,1216
64
- src/base_template/tests/unit/test_dummy.py,sha256=2exfCH8qhkZrLWvK04ZxNTO9MV3fdTbZkJN3uK6zvok,850
65
- src/cli/main.py,sha256=pMsSlNwkrFqHUHHA5U-WMZ4QRquaI_F7OXQt6yxuugE,1688
66
- src/cli/commands/create.py,sha256=J4DH8OFcs8mA1nZLCBLepkCSixdHiL0EYz195M2Lu4o,24156
67
- src/cli/commands/setup_cicd.py,sha256=ghrbX85omEMIdCIYqCLc2eE0NZr2UbHS6sp7UoC9jbE,31421
68
- src/cli/utils/__init__.py,sha256=_cTmsXGPqOtK0q8UW5164QTltbJRJFR_Efxq_BRL1-o,1311
69
- src/cli/utils/cicd.py,sha256=tlz50wI0unRosRZsDpZ5Oh5haMJmNjc9dV0-TPWawKE,27443
70
- src/cli/utils/datastores.py,sha256=gv1V6eDcOEKx4MRNG5C3Y-VfixYq1AzQuaYMLp8QRNo,1058
71
- src/cli/utils/gcp.py,sha256=gVak73MD74sZTXvchZB59KFpoqp-aTIsvcMKvYMkXJE,4062
72
- src/cli/utils/logging.py,sha256=0lHe4EPi1A8sOx9xkA7gS4UNl0GsIyp2ahydkkuCzLY,1570
73
- src/cli/utils/template.py,sha256=HQg_SIruiL52LrjeVr9Nxw7zqq9CC96l78DIGPIJjHw,29099
74
- src/cli/utils/version.py,sha256=F4udQmzniPStqWZFIgnv3Qg3l9non4mfy2An-Oveqmc,2916
75
- src/data_ingestion/README.md,sha256=LNxSQoJW9JozK-TbyGQLj5L_MGWNwrfLk6V6RmQ2oBQ,4032
76
- src/data_ingestion/pyproject.toml,sha256=-1Mf2QB8K70ICQV5UPZDpf-fN3UwEQLVzQyxfakCSTY,445
77
- src/data_ingestion/uv.lock,sha256=HzSD6_IxS2urt49EefD9MvVxBwxW_bJ-k0XltTDT3Vc,144223
78
- src/data_ingestion/data_ingestion_pipeline/pipeline.py,sha256=UAS6dxV954yARP0NdDbCf5kzap3NfmoX52eZ2mZtWXs,3331
79
- src/data_ingestion/data_ingestion_pipeline/submit_pipeline.py,sha256=tWGqL0zUB3V5JxR1SpX7LMjCW5r6JEGnvgF8tAxZ12s,7784
80
- src/data_ingestion/data_ingestion_pipeline/components/ingest_data.py,sha256=QbPmk6V7JPGo5Yc1BhL-1W_t9CXEN0iY5NKaGWlfSbM,10667
81
- src/data_ingestion/data_ingestion_pipeline/components/process_data.py,sha256=3D4CaUV9pBaIU10MogJMQAR00JPVzqjFHN6eL7WM_5Y,22045
82
- src/deployment_targets/agent_engine/deployment_metadata.json,sha256=G_t_n-UNrFsBgH1Xrw5-ZqYzUGwZ4X6ipsIm_yiSq-w,72
83
- src/deployment_targets/agent_engine/app/agent_engine_app.py,sha256=ZBER9DVyVfG6R4IyukgFaVVL-AsbqLmvvBsXAwgv2jk,12032
84
- src/deployment_targets/agent_engine/app/utils/gcs.py,sha256=jKblaWOGQEigw3esaawcfX178shhZi2Fyk0fJSA4T68,1501
85
- src/deployment_targets/agent_engine/notebooks/intro_agent_engine.ipynb,sha256=RE6Gp-bu4bHtNBngfkt_CF5emy5YcOWQ5rMYW_Cv8_w,48809
86
- src/deployment_targets/agent_engine/tests/integration/test_agent_engine_app.py,sha256=3mEHdnenqT1RrQpndnQWZSMnn8kSLH85rPDhbxH6_lk,5978
87
- src/deployment_targets/agent_engine/tests/load_test/README.md,sha256=ckP2eu5_HpOjM390KXNwUk4YWAzWqir3YOTceyoeL64,1441
88
- src/deployment_targets/agent_engine/tests/load_test/load_test.py,sha256=FFCo_LjIZyETb61Eo53qxmg4U7qjT__BPWCYiwBQbhU,3764
89
- src/deployment_targets/agent_engine/tests/load_test/.results/.placeholder,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
90
- src/deployment_targets/cloud_run/Dockerfile,sha256=vedZX0JJW2bymESqB-0LumnkKyr7hcog8NlR0DX8Q74,843
91
- src/deployment_targets/cloud_run/uv.lock,sha256=2RYrR89xDS1FHVb-g2JGZq8zZ-rzbm_jRvehVCYuXRQ,887957
92
- src/deployment_targets/cloud_run/app/server.py,sha256=lqoo_wAi8yvVsC4aoUD4k74UKArci3w1jF3dkwPOyvU,4793
93
- src/deployment_targets/cloud_run/tests/integration/test_server_e2e.py,sha256=dKgFE8ksZz-6IDqMfJjTJcwgywJcN9gpSd9Ni97NjPg,7784
94
- src/deployment_targets/cloud_run/tests/load_test/README.md,sha256=ibuQTghqnZD84ConqsqRxhMOdYhuqoCQA3xiOs5wKqE,2804
95
- src/deployment_targets/cloud_run/tests/load_test/load_test.py,sha256=cOlGaNxx6X3C-eWD0LulXyggqTrTeWZPjnsVn7FtZIs,4082
96
- src/deployment_targets/cloud_run/tests/load_test/.results/.placeholder,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
97
- src/frontends/live_api_react/frontend/package-lock.json,sha256=BRRGo-rI1wxRa_VLm0NlPV9LGUy7kLccKGjSWJLVntE,734245
98
- src/frontends/live_api_react/frontend/package.json,sha256=OBOzzDiDiESPzmbLDlZ6KM1Trit71vXdP692dI-g9Uo,1381
99
- src/frontends/live_api_react/frontend/tsconfig.json,sha256=cyqEhf7-Yydz-PX8_cuF8JpsyC363NDTNkrmCk0sKAo,595
100
- src/frontends/live_api_react/frontend/public/favicon.ico,sha256=FY9oTN01RzaJ2lZ1rCjNXsEfT1gWZJA3fPx0QMBlMCU,15086
101
- src/frontends/live_api_react/frontend/public/index.html,sha256=tOhOQOx5kMi9WhxT-4XAk75tmkoHNCyBM36dgR725TM,2508
102
- src/frontends/live_api_react/frontend/public/robots.txt,sha256=kNJLw79pisHhc3OVAimMzKcq3x9WT6sF9IS4xI0crdI,67
103
- src/frontends/live_api_react/frontend/src/App.scss,sha256=477MjERLsjhhzSS5WvROHfgdLi41F0PeW7zFTIROlH4,3472
104
- src/frontends/live_api_react/frontend/src/App.test.tsx,sha256=l4bj_dLHDggvlcxZZgbhXdR9oIpdCwrGglRWtSqNqUU,869
105
- src/frontends/live_api_react/frontend/src/App.tsx,sha256=5PhZTXo4gwWRvkF5dJTwu4YpWKs43bsLSl1IGXx1edY,7261
106
- src/frontends/live_api_react/frontend/src/index.css,sha256=THy1DxvcOTW4WypzWvYEL_SVAVzda1iPEQ0M6pvgNUo,950
107
- src/frontends/live_api_react/frontend/src/index.tsx,sha256=c3VCNMXzTZInNqpHaQUMPPwZsicO468Ujc5u3jLGLZ8,1150
108
- src/frontends/live_api_react/frontend/src/multimodal-live-types.ts,sha256=J52j9vfza9EyODprh9w29psdBSEygTnXZF8yJIsfsDs,6037
109
- src/frontends/live_api_react/frontend/src/react-app-env.d.ts,sha256=4bU28oZlD8FJ4AdXDQq363Ql9oYd69DhrT-i3nrTDiQ,636
110
- src/frontends/live_api_react/frontend/src/reportWebVitals.ts,sha256=mGju88uviGA8x6soLtI3vm0dgIZVFaN3QQ0603KB5pk,1021
111
- src/frontends/live_api_react/frontend/src/setupTests.ts,sha256=7Iq1rAaeoGzkLb3FhpNU2XlVmnu1O1cS56foEBFISTg,837
112
- src/frontends/live_api_react/frontend/src/components/audio-pulse/AudioPulse.tsx,sha256=lnB4GWVy9HW4nI6YuRes059ywhU-WwZO0K_zvAadUZY,1690
113
- src/frontends/live_api_react/frontend/src/components/audio-pulse/audio-pulse.scss,sha256=L8MzlqHkoJ3B-qnlYD62nGlTTUOkgX5H3yxKVBeHh-c,1346
114
- src/frontends/live_api_react/frontend/src/components/control-tray/ControlTray.tsx,sha256=M9mbTHI4aIR4HV1RrnomDt2dP_zJybBVGeFmrRAUcKA,6875
115
- src/frontends/live_api_react/frontend/src/components/control-tray/control-tray.scss,sha256=pKzOcyA3Xe8CXFpJIeHytBn_7eKcAeGLbL3Q70RsKvM,3976
116
- src/frontends/live_api_react/frontend/src/components/logger/Logger.tsx,sha256=E11x8IaWcCJFtVOml9NSiqZV6OQLfuEjHWc6vm12tVU,6696
117
- src/frontends/live_api_react/frontend/src/components/logger/logger.scss,sha256=0ObbIB4mCYNshL650inZN24-HXPvNBxAvMIVhqc0hdg,2432
118
- src/frontends/live_api_react/frontend/src/components/logger/mock-logs.ts,sha256=7r7bRNowJxdSkDJN2awTX82etfNu7V-ThufCRACYhU0,3293
119
- src/frontends/live_api_react/frontend/src/components/side-panel/SidePanel.tsx,sha256=xGo3fjXFyh8ZOJZAQ_4lARa1W_Rgs2ljkjtWjDR7Cqs,5019
120
- src/frontends/live_api_react/frontend/src/components/side-panel/side-panel.scss,sha256=eobKX4lAUuHhpOhB3VTpm4CDyWO8yySpgTdPUHDlgVc,6097
121
- src/frontends/live_api_react/frontend/src/contexts/LiveAPIContext.tsx,sha256=qBQ6KLxVNCeaydwPtXIiOMFJ04_ETUqU0hRypLkF03M,1383
122
- src/frontends/live_api_react/frontend/src/hooks/use-live-api.ts,sha256=9t2rkByVRmRJkO3Lgi44FxYAuLccKXySCnbokY4erJw,3035
123
- src/frontends/live_api_react/frontend/src/hooks/use-media-stream-mux.ts,sha256=83cmRJlQYoLLy9VDc0GO3e4VBfkKpiEHrvV26Z5rHng,776
124
- src/frontends/live_api_react/frontend/src/hooks/use-screen-capture.ts,sha256=A4UIo8T6yHlIAEEgoyoVOqMNwukkonYjfO8iMwAyjDQ,1977
125
- src/frontends/live_api_react/frontend/src/hooks/use-webcam.ts,sha256=NuTM7meIwaSIg0kB3SusMESaI44GGIX8zM07PvPBPWw,1841
126
- src/frontends/live_api_react/frontend/src/utils/audio-recorder.ts,sha256=JcO69YeM7boSf1gM5VVX6cbLvGRT-dYYJjWUVBJFWbM,3699
127
- src/frontends/live_api_react/frontend/src/utils/audio-streamer.ts,sha256=xgtnrm_jbmKzwUkeCQiv3C7jmU7DfdaJU2su6NLpXCk,8301
128
- src/frontends/live_api_react/frontend/src/utils/audioworklet-registry.ts,sha256=2I1va0WszQ3-SHfSmgp5-ToOSof5H6q-rgFnlf8mGUI,1258
129
- src/frontends/live_api_react/frontend/src/utils/multimodal-live-client.ts,sha256=afOZaVZdPrTFTvZj3m1I463pBqfyd9CI6wvctieoG90,9771
130
- src/frontends/live_api_react/frontend/src/utils/store-logger.ts,sha256=YxS0TjiGntFPIrHVVU14WplpITzzxP2faTeAVOMvbQA,1761
131
- src/frontends/live_api_react/frontend/src/utils/utils.ts,sha256=qQIhLzfyCBLecU0ksQCKIbD3cIflb0hxt0SPZGdYFEo,2457
132
- src/frontends/live_api_react/frontend/src/utils/worklets/audio-processing.ts,sha256=ULgnXphZUfbHkRhGoPT_670WHjzaXJwWgYU0ISQRSXI,1979
133
- src/frontends/live_api_react/frontend/src/utils/worklets/vol-meter.ts,sha256=DEXn9ywn7N_tqKBhQ9eUxvWCWqteyfT-Q0dwjbvjjpY,1780
134
- src/frontends/streamlit/frontend/side_bar.py,sha256=VeyNV2O94uicTajVYS-jMkUAUPMMrQA9o8_lYTurKKc,9025
135
- src/frontends/streamlit/frontend/streamlit_app.py,sha256=O-mF9-0nSL220mZSohKK6QrdSiaRsUJL1o_XeKdj8zo,9868
136
- src/frontends/streamlit/frontend/style/app_markdown.py,sha256=4H9GGlaOIbG_4T4QvHyTMfoeumJze7cZ2VuGIv39wFo,1050
137
- src/frontends/streamlit/frontend/utils/chat_utils.py,sha256=Z0OYQu-14_d9tDmH9Z4Vvi8xpSUEm9vuPZ8wmFgl4sQ,2262
138
- src/frontends/streamlit/frontend/utils/local_chat_history.py,sha256=9wc8L8j4tk10DBPQdV64kdZvqE1fHxC2esK8szid0l8,4741
139
- src/frontends/streamlit/frontend/utils/message_editing.py,sha256=YWoPe2KeWMuL3YVTm0am6MK3kzjEIYVmdkdwTQpmGdQ,2263
140
- src/frontends/streamlit/frontend/utils/multimodal_utils.py,sha256=v6YbCkz_YcnEo-9YvRjwBNt0SzU4M39bYxJGmKk69vE,7313
141
- src/frontends/streamlit/frontend/utils/stream_handler.py,sha256=kRKv7gQDEDsVtJxUsxY5uqCCtR3nQmT1nkZyrQ6Hpsw,12030
142
- src/frontends/streamlit/frontend/utils/title_summary.py,sha256=B0cadS_KPW-tsbABauI4J681aqjEtuKFDa25e9R1WKc,3030
143
- src/frontends/streamlit_adk/frontend/side_bar.py,sha256=VsrIVJkjZPg8AAkVn8Nrn9XN4KasrPVYEKhsZXFqGkU,9053
144
- src/frontends/streamlit_adk/frontend/streamlit_app.py,sha256=0KtzcvVzc8Ge3XJp0nmeZ691RlI22wsU32WUhKoX9LM,12243
145
- src/frontends/streamlit_adk/frontend/style/app_markdown.py,sha256=4H9GGlaOIbG_4T4QvHyTMfoeumJze7cZ2VuGIv39wFo,1050
146
- src/frontends/streamlit_adk/frontend/utils/chat_utils.py,sha256=-Yoh8ly20aSiuf9SYfSIHlPcJ6a5cfdK0rNIJo_p1EE,3095
147
- src/frontends/streamlit_adk/frontend/utils/local_chat_history.py,sha256=GK0GmYrr2jC7UnMu77OPDgIgfrEO22rXk_VoxfDrJcM,4261
148
- src/frontends/streamlit_adk/frontend/utils/message_editing.py,sha256=wt2OMJ4RUMoeJu_mVLMR2s4mxTlxWoQAxlxYXgKCBlc,2453
149
- src/frontends/streamlit_adk/frontend/utils/multimodal_utils.py,sha256=7TV3n36HBQOCv4sC9tEjD2sEXzzBDOuqgXr84QC3Tms,7722
150
- src/frontends/streamlit_adk/frontend/utils/stream_handler.py,sha256=xKwiY1KLWQdDtQ5eVrSkP3uubEAKDiOJNjWHjQiBxLg,12323
151
- src/frontends/streamlit_adk/frontend/utils/title_summary.py,sha256=lmYJUIz99jWY1dTziUao554GJBHFQTzQBRvoEl-x020,4347
152
- src/resources/containers/data_processing/Dockerfile,sha256=VoB9d5yZiiWnqRfWrIq0gGNMzZg-eVy733OgP72ZgO0,950
153
- src/resources/containers/e2e-tests/Dockerfile,sha256=Q_aTyX_iaFY8j06XZkpMuggJnNO5daiLmmrvqaZHMxw,1611
154
- src/resources/idx/idx-template.json,sha256=cLt7jXQ5-16AGl9vxEoXALI6HVUFwGWG5i3v7fGqPvo,792
155
- src/resources/idx/idx-template.nix,sha256=sesHGev_PYtVDg0J5tHkg0OO7IR1Bz2iAtl_if3Ar3M,892
156
- src/resources/idx/.idx/dev.nix,sha256=rT_eW3cp7BluMQakqy_V_RGUu2yoZjymiZmfyN3_PnI,1927
157
- src/resources/locks/uv-adk_base-agent_engine.lock,sha256=G5NhnUl9Tr0X-GbBr21jTdDf5MVGxmWF_OI4AqC4wBM,629284
158
- src/resources/locks/uv-adk_base-cloud_run.lock,sha256=Dq2F08qkB3s2oqazqmLrnNLmgzqNb0UbJdChV0Fq4l0,798495
159
- src/resources/locks/uv-agentic_rag-agent_engine.lock,sha256=NUXZvdoJgzEI5NLoB_hoXgwVimEbXl0ByTMm-yNfNuM,638894
160
- src/resources/locks/uv-agentic_rag-cloud_run.lock,sha256=f8P14yRwvJWB3lyfWCEZzkFpq51WyLYIGa386S3_khE,808105
161
- src/resources/locks/uv-crewai_coding_crew-agent_engine.lock,sha256=cCOpHuY2BK8how94MRgw4EF1q-iBo5aXTv3V1Fr2w90,735316
162
- src/resources/locks/uv-crewai_coding_crew-cloud_run.lock,sha256=yu2Iu6ODcRFKJJ6FLHarsKuyFNOjh1EL6WOIg6fLP3I,912203
163
- src/resources/locks/uv-langgraph_base_react-agent_engine.lock,sha256=jYVXjvTeQ7ppxcmoUvQpjuh5dA9vgNifstKaD2WPsR8,612052
164
- src/resources/locks/uv-langgraph_base_react-cloud_run.lock,sha256=NlN4eNWymUxGAmOJ2rZVPBdicMllXvheS-_foJPe2fU,782545
165
- src/resources/locks/uv-live_api-cloud_run.lock,sha256=0DSriJlsVuTDIiTAqYOHW3yclNyVr-eZUOFTBM47pLQ,785602
166
- src/resources/setup_cicd/cicd_variables.tf,sha256=PMflYe1TzQi63LORHkmeCktTYzXFplJgxffNH4DtuAQ,1244
167
- src/resources/setup_cicd/github.tf,sha256=scTBgeZlCM74N-pzhVKsnTN0PX9a5GboNl1HN3-LlCM,2791
168
- src/resources/setup_cicd/providers.tf,sha256=Km4z6IJt7x7PLaa0kyZbBrO2m3lpuIJZFD5jB7QBfF0,1122
169
- src/utils/generate_locks.py,sha256=xu5IAhGGBPkVQGSJX4kk7_JNDwWJUEaXAHbmaQIohbg,4386
170
- src/utils/lock_utils.py,sha256=_QdzQtgIbCmJ87s046_i1g966slVNmvr3bJDeHbRQSM,2419
171
- src/utils/watch_and_rebuild.py,sha256=vP4yIiA7E_lj5sfQdJUl8TXas6V7msDg8XWUutAC05Q,6679
172
- agent_starter_pack-0.3.3.dist-info/METADATA,sha256=vib_OuCrbGy10-Yc1sK-wZWYJOrgXBPLDkLS_XsuIxk,8828
173
- agent_starter_pack-0.3.3.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
174
- agent_starter_pack-0.3.3.dist-info/entry_points.txt,sha256=U7uCxR7YulIhZ0L8R8Hui0Bsy6J7oyESBeDYJYMrQjA,56
175
- agent_starter_pack-0.3.3.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
176
- agent_starter_pack-0.3.3.dist-info/RECORD,,
@@ -1,2 +0,0 @@
1
- [console_scripts]
2
- agent-starter-pack = src.cli.main:cli
@@ -1,34 +0,0 @@
1
- # CrewAI Coding Crew Agent
2
-
3
- This agent combines CrewAI's collaborative AI capabilities with LangGraph to provide an interactive coding assistant that can understand requirements and generate code solutions through conversation.
4
-
5
- ## Architecture
6
-
7
- The agent implements a conversational interface using LangGraph that coordinates with a CrewAI development team. The workflow consists of:
8
-
9
- 1. A conversational agent that:
10
- - Gathers requirements through natural dialogue
11
- - Clarifies ambiguities by asking follow-up questions
12
- - Delegates actual coding work to the CrewAI development team
13
-
14
- 2. A CrewAI development team consisting of:
15
- - Senior Engineer: Responsible for implementing the code solution
16
- - Chief QA Engineer: Evaluates and validates the implemented code
17
-
18
- ## Key Features
19
-
20
- - **Interactive Requirements Gathering**: Uses LangGraph to maintain a natural conversation flow while collecting and clarifying coding requirements
21
- - **Collaborative AI Development**: Leverages CrewAI's multi-agent system to divide work between specialized AI agents
22
- - **Sequential Processing**: Tasks are processed in order, from requirements gathering to implementation to quality assurance
23
-
24
- ## How It Works
25
-
26
- 1. The LangGraph workflow manages the conversation state and determines when to:
27
- - Continue the conversation to gather more requirements
28
- - Delegate work to the CrewAI development team
29
- - Return results to the user
30
-
31
- 2. When coding is needed, the CrewAI team is activated through a custom tool that:
32
- - Passes requirements to the Senior Engineer agent
33
- - Routes the implementation to the QA Engineer for validation
34
- - Returns the final, validated solution
@@ -1,86 +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="union-attr"
16
- from langchain_core.messages import BaseMessage
17
- from langchain_core.runnables import RunnableConfig
18
- from langchain_core.tools import tool
19
- from langchain_google_vertexai import ChatVertexAI
20
- from langgraph.graph import END, MessagesState, StateGraph
21
- from langgraph.prebuilt import ToolNode
22
-
23
- from .crew.crew import DevCrew
24
-
25
- LOCATION = "us-central1"
26
- LLM = "gemini-2.0-flash-001"
27
-
28
-
29
- @tool
30
- def coding_tool(code_instructions: str) -> str:
31
- """Use this tool to write a python program given a set of requirements and or instructions."""
32
- inputs = {"code_instructions": code_instructions}
33
- return DevCrew().crew().kickoff(inputs=inputs)
34
-
35
-
36
- tools = [coding_tool]
37
-
38
- # 2. Set up the language model
39
- llm = ChatVertexAI(
40
- model=LLM, location=LOCATION, temperature=0, max_tokens=4096, streaming=True
41
- ).bind_tools(tools)
42
-
43
-
44
- # 3. Define workflow components
45
- def should_continue(state: MessagesState) -> str:
46
- """Determines whether to use the crew or end the conversation."""
47
- last_message = state["messages"][-1]
48
- return "dev_crew" if last_message.tool_calls else END
49
-
50
-
51
- def call_model(state: MessagesState, config: RunnableConfig) -> dict[str, BaseMessage]:
52
- """Calls the language model and returns the response."""
53
- system_message = (
54
- "You are an expert Lead Software Engineer Manager.\n"
55
- "Your role is to speak to a user and understand what kind of code they need to "
56
- "build.\n"
57
- "Part of your task is therefore to gather requirements and clarifying ambiguity "
58
- "by asking followup questions. Don't ask all the questions together as the user "
59
- "has a low attention span, rather ask a question at the time.\n"
60
- "Once the problem to solve is clear, you will call your tool for writing the "
61
- "solution.\n"
62
- "Remember, you are an expert in understanding requirements but you cannot code, "
63
- "use your coding tool to generate a solution. Keep the test cases if any, they "
64
- "are useful for the user."
65
- )
66
-
67
- messages_with_system = [{"type": "system", "content": system_message}] + state[
68
- "messages"
69
- ]
70
- # Forward the RunnableConfig object to ensure the agent is capable of streaming the response.
71
- response = llm.invoke(messages_with_system, config)
72
- return {"messages": response}
73
-
74
-
75
- # 4. Create the workflow graph
76
- workflow = StateGraph(MessagesState)
77
- workflow.add_node("agent", call_model)
78
- workflow.add_node("dev_crew", ToolNode(tools))
79
- workflow.set_entry_point("agent")
80
-
81
- # 5. Define graph edges
82
- workflow.add_conditional_edges("agent", should_continue)
83
- workflow.add_edge("dev_crew", "agent")
84
-
85
- # 6. Compile the workflow
86
- agent = workflow.compile()
@@ -1,39 +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
- senior_engineer_agent:
16
- role: >
17
- Senior Software Engineer
18
-
19
-
20
- goal: >
21
- Create software as needed
22
-
23
-
24
- backstory: >
25
- You are a Senior Software Engineer at a leading tech company. You are an expert Python programmer and do your best to produce perfect code.
26
-
27
-
28
- chief_qa_engineer_agent:
29
- role: >
30
- Chief Software Quality Control Engineer
31
-
32
-
33
- goal: >
34
- Ensure that the code does the job that it is supposed to do and that it is error free.
35
-
36
-
37
- backstory: >
38
- You feel that programmers always do only half the job, so you are super dedicate to make high quality code.
39
-
@@ -1,37 +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
- code_task:
16
- description: >
17
- You are helping writing python code. These are the instructions:
18
-
19
- Instructions ------------ {code_instructions}
20
-
21
-
22
- expected_output: >
23
- Your Final answer must be the full python code, only the python code and nothing else.
24
-
25
-
26
- evaluate_task:
27
- description: >
28
- You are helping writing python code. These are the instructions:
29
-
30
- Instructions ------------ {code_instructions}
31
-
32
- You will look over the code to insure that it is complete and does the job that it is supposed to do. You will also check for logic error, syntax errors, missing imports, variable declarations, mismatched brackets and missing test cases. If you find any issue in the code, ask the Senior Software Engineer to fix it by providing them the code and the instructions. Don't fix it yourself.
33
-
34
-
35
- expected_output: >
36
- Your Final answer must be the full python code, only the python code and nothing else.
37
-
@@ -1,71 +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
- from typing import Any
17
-
18
- from crewai import Agent, Crew, Process, Task
19
- from crewai.project import CrewBase, agent, crew, task
20
-
21
-
22
- @CrewBase
23
- class DevCrew:
24
- """Developer crew"""
25
-
26
- agents_config: dict[str, Any]
27
- tasks_config: dict[str, Any]
28
-
29
- llm = "vertex_ai/gemini-2.0-flash-001"
30
-
31
- @agent
32
- def senior_engineer_agent(self) -> Agent:
33
- return Agent(
34
- config=self.agents_config.get("senior_engineer_agent"),
35
- allow_delegation=False,
36
- verbose=True,
37
- llm=self.llm,
38
- )
39
-
40
- @agent
41
- def chief_qa_engineer_agent(self) -> Agent:
42
- return Agent(
43
- config=self.agents_config.get("chief_qa_engineer_agent"),
44
- allow_delegation=True,
45
- verbose=True,
46
- llm=self.llm,
47
- )
48
-
49
- @task
50
- def code_task(self) -> Task:
51
- return Task(
52
- config=self.tasks_config.get("code_task"),
53
- agent=self.senior_engineer_agent(),
54
- )
55
-
56
- @task
57
- def evaluate_task(self) -> Task:
58
- return Task(
59
- config=self.tasks_config.get("evaluate_task"),
60
- agent=self.chief_qa_engineer_agent(),
61
- )
62
-
63
- @crew
64
- def crew(self) -> Crew:
65
- """Creates the Dev Crew"""
66
- return Crew(
67
- agents=self.agents,
68
- tasks=self.tasks,
69
- process=Process.sequential,
70
- verbose=True,
71
- )
@@ -1,47 +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="union-attr"
16
- from app.agent import agent
17
-
18
-
19
- def test_agent_stream() -> None:
20
- """
21
- Integration test for the agent stream functionality.
22
- Tests that the agent returns valid streaming responses.
23
- """
24
- input_dict = {
25
- "messages": [
26
- {"type": "human", "content": "Hi"},
27
- {"type": "ai", "content": "Hi there!"},
28
- {"type": "human", "content": "Write a fibonacci function in python"},
29
- ]
30
- }
31
-
32
- events = [
33
- message for message, _ in agent.stream(input_dict, stream_mode="messages")
34
- ]
35
- # Verify we get a reasonable number of messages
36
- assert len(events) > 0, "Expected at least one message"
37
-
38
- # First message should be an AI message
39
- assert events[0].type == "AIMessageChunk"
40
-
41
- # At least one message should have content
42
- has_content = False
43
- for event in events:
44
- if hasattr(event, "content") and event.content:
45
- has_content = True
46
- break
47
- assert has_content, "Expected at least one message with content"
@@ -1,9 +0,0 @@
1
- # LangGraph Base React Agent
2
-
3
- A minimal example demonstrating how to build a ReAct agent using LangGraph. This agent serves as an excellent starting point for developers looking to implement LangGraph-based solutions.
4
-
5
- ## Key Features
6
-
7
- - **Simple Architecture**: Shows the basic building blocks of a LangGraph agent
8
- - **Streaming Support**: Includes streaming response capability using Vertex AI
9
- - **Sample Tool Integration**: Includes a basic search tool to demonstrate tool usage
@@ -1,73 +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="union-attr"
16
- from langchain_core.messages import BaseMessage
17
- from langchain_core.runnables import RunnableConfig
18
- from langchain_core.tools import tool
19
- from langchain_google_vertexai import ChatVertexAI
20
- from langgraph.graph import END, MessagesState, StateGraph
21
- from langgraph.prebuilt import ToolNode
22
-
23
- LOCATION = "us-central1"
24
- LLM = "gemini-2.0-flash-001"
25
-
26
-
27
- # 1. Define tools
28
- @tool
29
- def search(query: str) -> str:
30
- """Simulates a web search. Use it get information on weather"""
31
- if "sf" in query.lower() or "san francisco" in query.lower():
32
- return "It's 60 degrees and foggy."
33
- return "It's 90 degrees and sunny."
34
-
35
-
36
- tools = [search]
37
-
38
- # 2. Set up the language model
39
- llm = ChatVertexAI(
40
- model=LLM, location=LOCATION, temperature=0, max_tokens=1024, streaming=True
41
- ).bind_tools(tools)
42
-
43
-
44
- # 3. Define workflow components
45
- def should_continue(state: MessagesState) -> str:
46
- """Determines whether to use tools or end the conversation."""
47
- last_message = state["messages"][-1]
48
- return "tools" if last_message.tool_calls else END
49
-
50
-
51
- def call_model(state: MessagesState, config: RunnableConfig) -> dict[str, BaseMessage]:
52
- """Calls the language model and returns the response."""
53
- system_message = "You are a helpful AI assistant."
54
- messages_with_system = [{"type": "system", "content": system_message}] + state[
55
- "messages"
56
- ]
57
- # Forward the RunnableConfig object to ensure the agent is capable of streaming the response.
58
- response = llm.invoke(messages_with_system, config)
59
- return {"messages": response}
60
-
61
-
62
- # 4. Create the workflow graph
63
- workflow = StateGraph(MessagesState)
64
- workflow.add_node("agent", call_model)
65
- workflow.add_node("tools", ToolNode(tools))
66
- workflow.set_entry_point("agent")
67
-
68
- # 5. Define graph edges
69
- workflow.add_conditional_edges("agent", should_continue)
70
- workflow.add_edge("tools", "agent")
71
-
72
- # 6. Compile the workflow
73
- agent = workflow.compile()
agents/live_api/README.md DELETED
@@ -1,37 +0,0 @@
1
- # Multimodal Live Agent
2
-
3
- This pattern showcases a real-time conversational RAG agent powered by Google Gemini. The agent handles audio, video, and text interactions while leveraging tool calling with a vector DB for grounded responses.
4
-
5
- ![live_api_diagram](https://storage.googleapis.com/github-repo/generative-ai/sample-apps/e2e-gen-ai-app-starter-pack/live_api_diagram.png)
6
-
7
- **Key components:**
8
-
9
- - **Python Backend** (in `app/` folder): A production-ready server built with [FastAPI](https://fastapi.tiangolo.com/) and [google-genai](https://googleapis.github.io/python-genai/) that features:
10
-
11
- - **Real-time bidirectional communication** via WebSockets between the frontend and Gemini model
12
- - **Integrated tool calling** with vector database support for contextual document retrieval
13
- - **Production-grade reliability** with retry logic and automatic reconnection capabilities
14
- - **Deployment flexibility** supporting both AI Studio and Vertex AI endpoints
15
- - **Feedback logging endpoint** for collecting user interactions
16
-
17
- - **React Frontend** (in `frontend/` folder): Extends the [Multimodal live API Web Console](https://github.com/google-gemini/multimodal-live-api-web-console), with added features like **custom URLs** and **feedback collection**.
18
-
19
- ![live api demo](https://storage.googleapis.com/github-repo/generative-ai/sample-apps/e2e-gen-ai-app-starter-pack/live_api_pattern_demo.gif)
20
-
21
- Once both the backend and frontend are running, click the play button in the frontend UI to establish a connection with the backend. You can now interact with the Multimodal Live Agent! You can try asking questions such as "Using the tool you have, define Governance in the context MLOPs" to allow the agent to use the [documentation](https://cloud.google.com/architecture/deploy-operate-generative-ai-applications) it was provided to.
22
-
23
- ## Additional Resources for Multimodal Live API
24
-
25
- Explore these resources to learn more about the Multimodal Live API and see examples of its usage:
26
-
27
- - [Project Pastra](https://github.com/heiko-hotz/gemini-multimodal-live-dev-guide/tree/main): a comprehensive developer guide for the Gemini Multimodal Live API.
28
- - [Google Cloud Multimodal Live API demos and samples](https://github.com/GoogleCloudPlatform/generative-ai/tree/main/gemini/multimodal-live-api): Collection of code samples and demo applications leveraging multimodal live API in Vertex AI
29
- - [Gemini 2 Cookbook](https://github.com/google-gemini/cookbook/tree/main/gemini-2): Practical examples and tutorials for working with Gemini 2
30
- - [Multimodal Live API Web Console](https://github.com/google-gemini/multimodal-live-api-web-console): Interactive React-based web interface for testing and experimenting with Gemini Multimodal Live API.
31
-
32
- ## Current Status & Future Work
33
-
34
- This pattern is under active development. Key areas planned for future enhancement include:
35
-
36
- * **Observability:** Implementing comprehensive monitoring and tracing features.
37
- * **Load Testing:** Integrating load testing capabilities.