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
@@ -0,0 +1,563 @@
1
+ /**
2
+ * Copyright 2025 Google LLC
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ /* stylelint-disable */
18
+ .console-container {
19
+ display: flex;
20
+ flex-direction: column;
21
+ height: 100vh;
22
+ transition: all 0.2s ease-in;
23
+
24
+ .console-header {
25
+ display: flex;
26
+ justify-content: space-between;
27
+ align-items: center;
28
+ padding: 6px 20px;
29
+ border-bottom: 1px solid var(--Neutral-20);
30
+ background: var(--Neutral-00);
31
+ flex-shrink: 0;
32
+ min-height: 38px;
33
+
34
+ h2 {
35
+ color: var(--Neutral-90, #e1e2e3);
36
+ font-family: "Google Sans";
37
+ font-size: 16px;
38
+ font-style: normal;
39
+ font-weight: 500;
40
+ line-height: 16px;
41
+ margin: 0;
42
+ opacity: 0;
43
+ display: none;
44
+ transition: opacity 0.2s ease-in;
45
+ }
46
+
47
+ .toggle-button {
48
+ background: transparent;
49
+ border: 0;
50
+ cursor: pointer;
51
+ padding: 4px;
52
+ height: 30px;
53
+ width: 30px;
54
+ display: flex;
55
+ align-items: center;
56
+ justify-content: center;
57
+ color: #b4b8bb;
58
+ flex-shrink: 0;
59
+
60
+ svg {
61
+ width: 20px;
62
+ height: 20px;
63
+ }
64
+
65
+ &:hover {
66
+ opacity: 0.7;
67
+ }
68
+ }
69
+ }
70
+
71
+ .console-content {
72
+ display: flex;
73
+ flex-direction: row;
74
+ flex: 1;
75
+ overflow: hidden;
76
+ }
77
+
78
+ &.open {
79
+ .console-header h2 {
80
+ display: block;
81
+ opacity: 1;
82
+ }
83
+
84
+ .side-panel {
85
+ width: 400px;
86
+ }
87
+ }
88
+
89
+ &:not(.open) {
90
+ .console-header {
91
+ padding: 6px 5px;
92
+
93
+ .toggle-button {
94
+ margin: 0 auto;
95
+ }
96
+ }
97
+
98
+ .side-panel {
99
+ width: 40px;
100
+
101
+ .side-panel-container {
102
+ opacity: 0;
103
+ display: none;
104
+ transition: all 0.2s ease-in allow-discrete;
105
+ transition-delay: 0.1s;
106
+ }
107
+
108
+ .connection-settings {
109
+ opacity: 0;
110
+ display: none;
111
+ transition: all 0.2s ease-in allow-discrete;
112
+ }
113
+
114
+ .control-tray {
115
+ opacity: 0;
116
+ display: none;
117
+ transition: all 0.2s ease-in allow-discrete;
118
+
119
+ .actions-nav {
120
+ opacity: 0;
121
+ display: none;
122
+ }
123
+
124
+ .connection-status {
125
+ opacity: 0;
126
+ display: none;
127
+ }
128
+ }
129
+
130
+ .indicators {
131
+ .react-select {
132
+ opacity: 0;
133
+ display: none;
134
+ transition: all 0.2s ease-in allow-discrete;
135
+ }
136
+
137
+ .streaming-indicator {
138
+ width: 30px;
139
+ opacity: 0;
140
+ }
141
+ }
142
+
143
+ .input-container {
144
+ opacity: 0;
145
+ display: none;
146
+ transition: all 0.2s ease-in allow-discrete;
147
+ }
148
+
149
+ .audio-pulse-bottom {
150
+ .pulse-container {
151
+ .pulse-label {
152
+ opacity: 0;
153
+ display: none;
154
+ }
155
+ }
156
+ }
157
+ }
158
+ }
159
+ }
160
+
161
+ .side-panel {
162
+ width: 400px;
163
+ transition: width 0.2s ease-in;
164
+
165
+ .react-select {
166
+ background: var(--Neutral-20);
167
+ color: var(--Neutral-90);
168
+ width: 193px;
169
+ height: 30px;
170
+
171
+ .react-select__single-value {
172
+ color: var(--Neutral-90);
173
+ }
174
+
175
+ .react-select__menu {
176
+ background: var(--Neutral-20);
177
+ color: var(--Neutral-90);
178
+ }
179
+
180
+ .react-select__option {
181
+ }
182
+ .react-select__value-container {
183
+ }
184
+ .react-select__indicators {
185
+ }
186
+ .react-select__option:hover,
187
+ .react-select__option:focus,
188
+ .react-select_option:focus-within {
189
+ background: var(--Neutral-30);
190
+ }
191
+ .react-select__option--is-focused: {
192
+ background: var(--Neutral-30);
193
+ }
194
+ }
195
+ background: var(--Neutral-00);
196
+ display: flex;
197
+ flex-direction: column;
198
+ height: 100vh;
199
+ transition: all 0.2s ease-in;
200
+ font-family: Arial, sans-serif;
201
+ border-right: 1px solid var(--gray-600);
202
+ color: var(--Neutral-90, #e1e2e3);
203
+ font-family: var(--font-family);
204
+ font-size: 13px;
205
+ font-style: normal;
206
+ font-weight: 400;
207
+ line-height: 160%; /* 20.8px */
208
+
209
+ .hidden {
210
+ display: none !important;
211
+ }
212
+
213
+
214
+ .indicators {
215
+ display: flex;
216
+ padding: 24px 25px;
217
+ justify-content: flex-end;
218
+ gap: 21px;
219
+ .streaming-indicator {
220
+ user-select: none;
221
+ border-radius: 4px;
222
+ border: 1px solid var(--Neutral-20, #2a2f31);
223
+ background: var(--Neutral-10, #1c1f21);
224
+ display: flex;
225
+ width: 136px;
226
+ height: 30px;
227
+ padding-left: 4px;
228
+ justify-content: center;
229
+ align-items: center;
230
+ gap: 6px;
231
+ flex-shrink: 0;
232
+ text-align: center;
233
+ font-family: "Space Mono";
234
+ font-size: 14px;
235
+ font-style: normal;
236
+ font-weight: 400;
237
+ line-height: normal;
238
+ transition: width 0.2s ease-in;
239
+
240
+ &.connected {
241
+ color: var(--Blue-500, #0d9c53);
242
+ }
243
+ }
244
+ }
245
+
246
+ .side-panel-container {
247
+ align-self: flex-end;
248
+ width: 400px;
249
+ flex-grow: 1;
250
+ overflow-x: hidden;
251
+ overflow-y: auto;
252
+ /*scrollbar-gutter: stable both-edges;*/
253
+ }
254
+
255
+ .connection-settings {
256
+ border-bottom: 1px solid var(--Neutral-20);
257
+
258
+ .connection-expander {
259
+ background: var(--Neutral-10);
260
+ border: none;
261
+ color: var(--Neutral-90);
262
+ cursor: pointer;
263
+ font-size: 14px;
264
+ font-weight: 500;
265
+ padding: 12px 25px;
266
+ width: 100%;
267
+ text-align: left;
268
+ display: flex;
269
+ justify-content: space-between;
270
+ align-items: center;
271
+
272
+ &:hover {
273
+ background: var(--Neutral-15);
274
+ }
275
+
276
+ span {
277
+ font-size: 12px;
278
+ }
279
+ }
280
+
281
+ .connection-content {
282
+ padding: 0 25px 12px;
283
+ background: var(--Neutral-05);
284
+
285
+ .setting-group {
286
+ margin-bottom: 12px;
287
+
288
+ label {
289
+ display: block;
290
+ color: var(--Neutral-80);
291
+ font-size: 13px;
292
+ margin-bottom: 4px;
293
+ }
294
+
295
+ .setting-input {
296
+ width: 100%;
297
+ background: var(--Neutral-15);
298
+ border: 1px solid var(--Neutral-20);
299
+ border-radius: 4px;
300
+ color: var(--Neutral-90);
301
+ font-size: 13px;
302
+ padding: 8px 12px;
303
+
304
+ &:focus {
305
+ outline: none;
306
+ border-color: var(--Blue-500);
307
+ }
308
+ }
309
+ }
310
+
311
+ .feedback-button {
312
+ background: var(--Neutral-20);
313
+ border: 1px solid var(--Neutral-30);
314
+ border-radius: 4px;
315
+ color: var(--Neutral-90);
316
+ cursor: pointer;
317
+ font-size: 13px;
318
+ padding: 8px 16px;
319
+
320
+ &:hover {
321
+ background: var(--Neutral-25);
322
+ }
323
+ }
324
+ }
325
+ }
326
+
327
+ .control-tray {
328
+ border-bottom: 1px solid var(--Neutral-20);
329
+ padding: 12px 25px;
330
+
331
+ .actions-nav {
332
+ display: flex;
333
+ gap: 8px;
334
+ align-items: center;
335
+ margin-bottom: 8px;
336
+
337
+ .action-button {
338
+ background: var(--Neutral-15);
339
+ border: 1px solid var(--Neutral-20);
340
+ border-radius: 8px;
341
+ color: var(--Neutral-70);
342
+ cursor: pointer;
343
+ display: flex;
344
+ align-items: center;
345
+ justify-content: center;
346
+ height: 40px;
347
+ width: 40px;
348
+ transition: all 0.2s ease;
349
+
350
+ &:hover {
351
+ background: var(--Neutral-20);
352
+ color: var(--Neutral-90);
353
+ }
354
+
355
+ &.connect-toggle {
356
+ background: var(--Blue-600);
357
+ border-color: var(--Blue-600);
358
+ color: white;
359
+
360
+ &:hover {
361
+ background: var(--Blue-700);
362
+ }
363
+
364
+ &.connected {
365
+ background: var(--Red-600);
366
+ border-color: var(--Red-600);
367
+
368
+ &:hover {
369
+ background: var(--Red-700);
370
+ }
371
+ }
372
+ }
373
+
374
+ &.mic-button {
375
+ &:hover {
376
+ color: var(--Blue-500);
377
+ }
378
+ }
379
+
380
+ // Active state for buttons when they're "on"
381
+ &.active {
382
+ background: var(--Blue-600) !important;
383
+ border-color: var(--Blue-600) !important;
384
+ color: white !important;
385
+
386
+ &:hover {
387
+ background: var(--Blue-700) !important;
388
+ border-color: var(--Blue-700) !important;
389
+ }
390
+ }
391
+
392
+ &.no-action {
393
+ cursor: default;
394
+ border-style: dashed;
395
+
396
+ &:hover {
397
+ background: var(--Neutral-15);
398
+ color: var(--Neutral-70);
399
+ }
400
+ }
401
+
402
+ .material-symbols-outlined {
403
+ font-size: 20px;
404
+ }
405
+ }
406
+
407
+ &.disabled .action-button:not(.connect-toggle) {
408
+ opacity: 0.5;
409
+ cursor: not-allowed;
410
+ pointer-events: none;
411
+
412
+ &:hover {
413
+ background: var(--Neutral-15);
414
+ color: var(--Neutral-70);
415
+ }
416
+ }
417
+
418
+ // Ensure connect button is always clickable
419
+ .action-button.connect-toggle {
420
+ pointer-events: auto !important;
421
+ cursor: pointer !important;
422
+ }
423
+ }
424
+
425
+ .connection-status {
426
+ display: flex;
427
+ justify-content: center;
428
+
429
+ .text-indicator {
430
+ color: var(--Neutral-60);
431
+ font-size: 12px;
432
+ font-weight: 500;
433
+
434
+ &.connected {
435
+ color: var(--Blue-500);
436
+ }
437
+ }
438
+ }
439
+ }
440
+
441
+ .audio-pulse-bottom {
442
+ border-top: 1px solid var(--Neutral-20);
443
+ padding: 12px 25px;
444
+ flex-shrink: 0;
445
+ background: var(--Neutral-05);
446
+
447
+ .pulse-container {
448
+ display: flex;
449
+ align-items: center;
450
+ justify-content: center;
451
+ gap: 12px;
452
+
453
+ .pulse-label {
454
+ color: var(--Neutral-80);
455
+ font-size: 12px;
456
+ font-weight: 500;
457
+ text-transform: uppercase;
458
+ letter-spacing: 0.5px;
459
+ }
460
+ }
461
+ }
462
+
463
+ .input-container {
464
+ height: 50px;
465
+ flex-grow: 0;
466
+ flex-shrink: 0;
467
+ border-top: 1px solid var(--Neutral-20);
468
+ padding: 14px 25px;
469
+ overflow: hidden;
470
+
471
+ .input-content {
472
+ position: relative;
473
+ background: var(--Neutral-10);
474
+ border: 1px solid var(--Neutral-15);
475
+ height: 22px;
476
+ border-radius: 10px;
477
+ padding: 11px 18px;
478
+
479
+ .send-button {
480
+ position: absolute;
481
+ top: 50%;
482
+ right: 0;
483
+ transform: translate(0, -50%);
484
+ background: none;
485
+ border: 0;
486
+ color: var(--Neutral-20);
487
+ cursor: pointer;
488
+ transition: color 0.1s ease-in;
489
+ z-index: 2;
490
+
491
+ &:hover {
492
+ color: var(--Neutral-60);
493
+ }
494
+ }
495
+
496
+ .input-area {
497
+ background: none;
498
+ color: var(--Neutral-90);
499
+ field-sizing: content;
500
+ position: absolute;
501
+ top: 0;
502
+ left: 0;
503
+ z-index: 2;
504
+ display: inline-block;
505
+ width: calc(100% - 72px);
506
+ max-height: 20px;
507
+ outline: none;
508
+ --webkit-box-flex: 1;
509
+ flex: 1;
510
+ word-break: break-word;
511
+ overflow: auto;
512
+ padding: 14px 18px;
513
+ border: 0;
514
+ resize: none;
515
+ }
516
+
517
+ .input-content-placeholder {
518
+ position: absolute;
519
+ left: 0;
520
+ top: 0;
521
+ display: flex;
522
+ align-items: center;
523
+ z-index: 1;
524
+ height: 100%;
525
+ width: 100%;
526
+ pointer-events: none;
527
+ user-select: none;
528
+ padding: 0px 18px;
529
+ white-space: pre-wrap;
530
+ }
531
+ }
532
+ }
533
+ }
534
+
535
+ .side-panel-responses,
536
+ .side-panel-requests {
537
+ flex-grow: 1;
538
+ flex-shrink: 1;
539
+ overflow-x: hidden;
540
+ overflow-y: auto;
541
+ width: 100%;
542
+ display: block;
543
+ margin-left: 8px;
544
+ }
545
+
546
+ .top {
547
+ width: 100%;
548
+ flex-grow: 0;
549
+ flex-shrink: 0;
550
+ height: 30px;
551
+ display: flex;
552
+ align-self: flex-end;
553
+ align-items: center;
554
+ transition: all 0.2s ease-in;
555
+ }
556
+ .top button {
557
+ background: transparent;
558
+ border: 0;
559
+ cursor: pointer;
560
+ font-size: 1.25rem;
561
+ line-height: 1.75rem;
562
+ padding: 4px;
563
+ }
@@ -0,0 +1,106 @@
1
+ /**
2
+ * Copyright 2024 Google LLC
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import { useEffect, useRef, useState } from "react";
18
+ import { useLiveAPIContext } from "../../contexts/LiveAPIContext";
19
+ import cn from "classnames";
20
+ import "./transcription-preview.scss";
21
+
22
+ export type TranscriptionPreviewProps = {
23
+ open: boolean;
24
+ };
25
+
26
+ export default function TranscriptionPreview({ open }: TranscriptionPreviewProps) {
27
+ const { client } = useLiveAPIContext();
28
+ const [inputTexts, setInputTexts] = useState<string[]>([]);
29
+ const [outputTexts, setOutputTexts] = useState<string[]>([]);
30
+ const inputRef = useRef<HTMLDivElement>(null);
31
+ const outputRef = useRef<HTMLDivElement>(null);
32
+
33
+ useEffect(() => {
34
+ const handleInputTranscription = (text: string) => {
35
+ setInputTexts((prev) => [...prev, text]);
36
+ // Auto-scroll to bottom
37
+ setTimeout(() => {
38
+ if (inputRef.current) {
39
+ inputRef.current.scrollTop = inputRef.current.scrollHeight;
40
+ }
41
+ }, 0);
42
+ };
43
+
44
+ const handleOutputTranscription = (text: string) => {
45
+ setOutputTexts((prev) => [...prev, text]);
46
+ // Auto-scroll to bottom
47
+ setTimeout(() => {
48
+ if (outputRef.current) {
49
+ outputRef.current.scrollTop = outputRef.current.scrollHeight;
50
+ }
51
+ }, 0);
52
+ };
53
+
54
+ client.on("inputtranscription", handleInputTranscription);
55
+ client.on("outputtranscription", handleOutputTranscription);
56
+
57
+ return () => {
58
+ client.off("inputtranscription", handleInputTranscription);
59
+ client.off("outputtranscription", handleOutputTranscription);
60
+ };
61
+ }, [client]);
62
+
63
+ return (
64
+ <div className={cn("transcription-preview", { open })}>
65
+ <div className="transcription-section input-section">
66
+ <div className="transcription-header">
67
+ <span className="material-symbols-outlined">mic</span>
68
+ <h3>Input</h3>
69
+ </div>
70
+ <div className="transcription-content" ref={inputRef}>
71
+ {inputTexts.length > 0 ? (
72
+ <>
73
+ {inputTexts.map((text, index) => (
74
+ <p key={index} className={index === inputTexts.length - 1 ? "current" : "previous"}>
75
+ {text}
76
+ </p>
77
+ ))}
78
+ </>
79
+ ) : (
80
+ <p className="placeholder">Listening...</p>
81
+ )}
82
+ </div>
83
+ </div>
84
+
85
+ <div className="transcription-section output-section">
86
+ <div className="transcription-header">
87
+ <span className="material-symbols-outlined">volume_up</span>
88
+ <h3>Output</h3>
89
+ </div>
90
+ <div className="transcription-content" ref={outputRef}>
91
+ {outputTexts.length > 0 ? (
92
+ <>
93
+ {outputTexts.map((text, index) => (
94
+ <p key={index} className={index === outputTexts.length - 1 ? "current" : "previous"}>
95
+ {text}
96
+ </p>
97
+ ))}
98
+ </>
99
+ ) : (
100
+ <p className="placeholder">Waiting for response...</p>
101
+ )}
102
+ </div>
103
+ </div>
104
+ </div>
105
+ );
106
+ }