agent-starter-pack 0.5.3__py3-none-any.whl → 0.6.1__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 (67) hide show
  1. {agent_starter_pack-0.5.3.dist-info → agent_starter_pack-0.6.1.dist-info}/METADATA +1 -1
  2. {agent_starter_pack-0.5.3.dist-info → agent_starter_pack-0.6.1.dist-info}/RECORD +59 -33
  3. agents/adk_base/notebooks/adk_app_testing.ipynb +1 -1
  4. agents/adk_gemini_fullstack/README.md +148 -0
  5. agents/adk_gemini_fullstack/app/agent.py +363 -0
  6. src/frontends/streamlit_adk/frontend/style/app_markdown.py → agents/adk_gemini_fullstack/app/config.py +19 -23
  7. agents/adk_gemini_fullstack/notebooks/adk_app_testing.ipynb +353 -0
  8. agents/adk_gemini_fullstack/notebooks/evaluating_adk_agent.ipynb +1528 -0
  9. agents/adk_gemini_fullstack/template/.templateconfig.yaml +37 -0
  10. agents/adk_gemini_fullstack/tests/integration/test_agent.py +58 -0
  11. agents/agentic_rag/notebooks/adk_app_testing.ipynb +1 -1
  12. src/base_template/Makefile +21 -2
  13. src/base_template/README.md +8 -3
  14. src/base_template/pyproject.toml +1 -4
  15. src/cli/commands/create.py +17 -10
  16. src/cli/utils/template.py +13 -10
  17. src/deployment_targets/cloud_run/app/server.py +7 -1
  18. src/deployment_targets/cloud_run/tests/integration/test_server_e2e.py +1 -1
  19. src/deployment_targets/cloud_run/tests/load_test/.results/.placeholder +321 -0
  20. src/frontends/adk_gemini_fullstack/frontend/components.json +21 -0
  21. src/frontends/adk_gemini_fullstack/frontend/eslint.config.js +28 -0
  22. src/frontends/adk_gemini_fullstack/frontend/index.html +12 -0
  23. src/frontends/adk_gemini_fullstack/frontend/package-lock.json +5829 -0
  24. src/frontends/adk_gemini_fullstack/frontend/package.json +46 -0
  25. src/frontends/adk_gemini_fullstack/frontend/public/vite.svg +1 -0
  26. src/frontends/adk_gemini_fullstack/frontend/src/App.tsx +565 -0
  27. src/frontends/adk_gemini_fullstack/frontend/src/components/ActivityTimeline.tsx +244 -0
  28. src/frontends/adk_gemini_fullstack/frontend/src/components/ChatMessagesView.tsx +419 -0
  29. src/frontends/adk_gemini_fullstack/frontend/src/components/InputForm.tsx +60 -0
  30. src/frontends/adk_gemini_fullstack/frontend/src/components/WelcomeScreen.tsx +56 -0
  31. src/frontends/adk_gemini_fullstack/frontend/src/components/ui/badge.tsx +46 -0
  32. src/frontends/adk_gemini_fullstack/frontend/src/components/ui/button.tsx +59 -0
  33. src/frontends/adk_gemini_fullstack/frontend/src/components/ui/card.tsx +92 -0
  34. src/frontends/adk_gemini_fullstack/frontend/src/components/ui/input.tsx +21 -0
  35. src/frontends/adk_gemini_fullstack/frontend/src/components/ui/scroll-area.tsx +56 -0
  36. src/frontends/adk_gemini_fullstack/frontend/src/components/ui/select.tsx +183 -0
  37. src/frontends/adk_gemini_fullstack/frontend/src/components/ui/tabs.tsx +64 -0
  38. src/frontends/adk_gemini_fullstack/frontend/src/components/ui/textarea.tsx +18 -0
  39. src/frontends/adk_gemini_fullstack/frontend/src/global.css +154 -0
  40. src/frontends/adk_gemini_fullstack/frontend/src/main.tsx +13 -0
  41. src/frontends/adk_gemini_fullstack/frontend/src/utils.ts +7 -0
  42. src/frontends/adk_gemini_fullstack/frontend/src/vite-env.d.ts +1 -0
  43. src/frontends/adk_gemini_fullstack/frontend/tsconfig.json +28 -0
  44. src/frontends/adk_gemini_fullstack/frontend/tsconfig.node.json +24 -0
  45. src/frontends/adk_gemini_fullstack/frontend/vite.config.ts +37 -0
  46. src/resources/locks/uv-adk_base-agent_engine.lock +24 -24
  47. src/resources/locks/uv-adk_base-cloud_run.lock +24 -24
  48. src/resources/locks/uv-adk_gemini_fullstack-agent_engine.lock +3217 -0
  49. src/resources/locks/uv-adk_gemini_fullstack-cloud_run.lock +3513 -0
  50. src/resources/locks/uv-agentic_rag-agent_engine.lock +88 -85
  51. src/resources/locks/uv-agentic_rag-cloud_run.lock +124 -119
  52. src/resources/locks/uv-crewai_coding_crew-agent_engine.lock +94 -91
  53. src/resources/locks/uv-crewai_coding_crew-cloud_run.lock +130 -125
  54. src/resources/locks/uv-langgraph_base_react-agent_engine.lock +91 -88
  55. src/resources/locks/uv-langgraph_base_react-cloud_run.lock +130 -125
  56. src/resources/locks/uv-live_api-cloud_run.lock +121 -116
  57. src/frontends/streamlit_adk/frontend/side_bar.py +0 -214
  58. src/frontends/streamlit_adk/frontend/streamlit_app.py +0 -314
  59. src/frontends/streamlit_adk/frontend/utils/chat_utils.py +0 -84
  60. src/frontends/streamlit_adk/frontend/utils/local_chat_history.py +0 -110
  61. src/frontends/streamlit_adk/frontend/utils/message_editing.py +0 -61
  62. src/frontends/streamlit_adk/frontend/utils/multimodal_utils.py +0 -223
  63. src/frontends/streamlit_adk/frontend/utils/stream_handler.py +0 -311
  64. src/frontends/streamlit_adk/frontend/utils/title_summary.py +0 -129
  65. {agent_starter_pack-0.5.3.dist-info → agent_starter_pack-0.6.1.dist-info}/WHEEL +0 -0
  66. {agent_starter_pack-0.5.3.dist-info → agent_starter_pack-0.6.1.dist-info}/entry_points.txt +0 -0
  67. {agent_starter_pack-0.5.3.dist-info → agent_starter_pack-0.6.1.dist-info}/licenses/LICENSE +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agent-starter-pack
3
- Version: 0.5.3
3
+ Version: 0.6.1
4
4
  Summary: CLI to bootstrap production-ready Google Cloud GenAI agent projects from templates.
5
5
  Author-email: Google LLC <agent-starter-pack@google.com>
6
6
  License: Apache-2.0
@@ -1,14 +1,21 @@
1
1
  agents/adk_base/README.md,sha256=eLf-F9Z4u_mQOchAnUaSrOAHXRSx8wUQN29kkwz1SF4,894
2
2
  agents/adk_base/app/agent.py,sha256=Kt-0TQM4g9NLs7Q2KmRWPfPWWgyQEODVo0uCepLkqDw,2182
3
- agents/adk_base/notebooks/adk_app_testing.ipynb,sha256=WTxrxu-bMfjqR8SvwZxNuR2_4Qo20QUZ7F3aBCRxtA0,9613
3
+ agents/adk_base/notebooks/adk_app_testing.ipynb,sha256=kWYd-ButNGemupiPDIzhlQO0elxWCwiea0nhmnsW8cg,9619
4
4
  agents/adk_base/notebooks/evaluating_adk_agent.ipynb,sha256=OMTiT3gAFWPvE9pPL8z7tsDwOU-l8wem5wH-OXPPlvk,56805
5
5
  agents/adk_base/template/.templateconfig.yaml,sha256=d6f_11cA0m6VMUzVPXETSoCViQe5b49ImzJAlkhskHw,893
6
6
  agents/adk_base/tests/integration/test_agent.py,sha256=VypgpEWrQegJBgc58V-BlIsbqh-Hii-hwmkwcz5feFw,1969
7
+ agents/adk_gemini_fullstack/README.md,sha256=C257ieCteXNqOLTKmlF2PSG1BVMr2NIX8PWz7vwYrew,7483
8
+ agents/adk_gemini_fullstack/app/agent.py,sha256=4u48Sk1J8Rks5DGZjgGKPCYqgWZnrICVYD61dZU0L2U,16569
9
+ agents/adk_gemini_fullstack/app/config.py,sha256=1rX_U87eH_JnFsuoSjcM7_pRmx02g575J2gFkS1ahGk,1088
10
+ agents/adk_gemini_fullstack/notebooks/adk_app_testing.ipynb,sha256=kWYd-ButNGemupiPDIzhlQO0elxWCwiea0nhmnsW8cg,9619
11
+ agents/adk_gemini_fullstack/notebooks/evaluating_adk_agent.ipynb,sha256=OMTiT3gAFWPvE9pPL8z7tsDwOU-l8wem5wH-OXPPlvk,56805
12
+ agents/adk_gemini_fullstack/template/.templateconfig.yaml,sha256=0vwRirGXHFw7RUVjS8umiMNu3TXvTKk9smufIOhDJn4,1658
13
+ agents/adk_gemini_fullstack/tests/integration/test_agent.py,sha256=VypgpEWrQegJBgc58V-BlIsbqh-Hii-hwmkwcz5feFw,1969
7
14
  agents/agentic_rag/README.md,sha256=mxMLkq6tAghFaDmc2sc2sEQ5vn9kGWdiRxfTykwpLz0,2268
8
15
  agents/agentic_rag/app/agent.py,sha256=thaU0njJ3W90DI54EVrFe4lwx9yMWZT4jSGRMnUSdY8,3987
9
16
  agents/agentic_rag/app/retrievers.py,sha256=qfxwSEixMddvAu4FvUTZAFh1Gdp3RPY65s0Wp6gEFVk,4561
10
17
  agents/agentic_rag/app/templates.py,sha256=8N_uRchwiN7hlH9Y8rdJ1CAtOhpHUWZkXZZ7IU-YJJk,867
11
- agents/agentic_rag/notebooks/adk_app_testing.ipynb,sha256=WTxrxu-bMfjqR8SvwZxNuR2_4Qo20QUZ7F3aBCRxtA0,9613
18
+ agents/agentic_rag/notebooks/adk_app_testing.ipynb,sha256=kWYd-ButNGemupiPDIzhlQO0elxWCwiea0nhmnsW8cg,9619
12
19
  agents/agentic_rag/notebooks/evaluating_adk_agent.ipynb,sha256=OMTiT3gAFWPvE9pPL8z7tsDwOU-l8wem5wH-OXPPlvk,56805
13
20
  agents/agentic_rag/template/.templateconfig.yaml,sha256=k86nWTpBRnQPe3i9LS_KD1gK6vGXzllAlCHI6u4gQ0w,1223
14
21
  agents/agentic_rag/tests/integration/test_agent.py,sha256=mxsKFyZrwXzIvAoxlqZv2JndM3VTVTKcugRYdF3APr4,2112
@@ -34,9 +41,9 @@ agents/live_api/tests/integration/test_server_e2e.py,sha256=D2VETDIyTD2fQyQ6DXwL
34
41
  agents/live_api/tests/load_test/load_test.py,sha256=HHZyfC4gqiQtZVF_CbbxENGgWQccMLpwMv0IdoQ6cbQ,1275
35
42
  agents/live_api/tests/unit/test_server.py,sha256=_TjlgQgNkjerIaBGnu8P8_KB8ZlSolDcivALpUOn_Rw,4786
36
43
  src/base_template/.gitignore,sha256=mJKTZIcVdAFiIUQicRfPNGUg6WvwcfTEC2xbmAaU34g,2579
37
- src/base_template/Makefile,sha256=O65aYaRQlCOZHfCaAdWbK3eEobw5x83A8nEjK88jtpQ,4538
38
- src/base_template/README.md,sha256=nZFLjJwau3DJoJVhHOItlv4SkG7QFiROm5ZCygvFTgw,10119
39
- src/base_template/pyproject.toml,sha256=FmD5qLIWjMTjT6euiUegSw8PLeGvxO1bnSg-r0UjkJU,2959
44
+ src/base_template/Makefile,sha256=TNwXFxOPuaQ7_GXB68R4uIiZpK5uKLWmQc8p2Imov-Q,5448
45
+ src/base_template/README.md,sha256=d9vGHGZzpgbcgu-J-9gHr3NOV7nuRzgFzdSxSzwY3xs,10694
46
+ src/base_template/pyproject.toml,sha256=0fM80KjqgmbiNxfM5jSXTnrze41nlPsYvFUEsKhlF08,2840
40
47
  src/base_template/app/__init__.py,sha256=UyAgc2l8nkVIUPUzL9hKR7EgzCsc2jSYcOcjHNNmpMU,59
41
48
  src/base_template/app/utils/gcs.py,sha256=jKblaWOGQEigw3esaawcfX178shhZi2Fyk0fJSA4T68,1501
42
49
  src/base_template/app/utils/tracing.py,sha256=2rv1Ukh2jTBENDwoghCItJ28l-Sjz9gMlzdojlVgJa4,6052
@@ -64,14 +71,14 @@ src/base_template/deployment/terraform/dev/vars/env.tfvars,sha256=LoQMjh1AAMR-MG
64
71
  src/base_template/deployment/terraform/vars/env.tfvars,sha256=Nze8q1x2Aj6ZUeWC2hDeZWqNUkLp13DgzA_LFmmOzCo,1216
65
72
  src/base_template/tests/unit/test_dummy.py,sha256=2exfCH8qhkZrLWvK04ZxNTO9MV3fdTbZkJN3uK6zvok,850
66
73
  src/cli/main.py,sha256=pMsSlNwkrFqHUHHA5U-WMZ4QRquaI_F7OXQt6yxuugE,1688
67
- src/cli/commands/create.py,sha256=MKfRxDGcvWcm7Y8IqwGM6zcWEtBQlS_JQtoQLn4oDUM,24497
74
+ src/cli/commands/create.py,sha256=DuUtLsX4ltRhIgInjkLJ1ixIkfqgT9wBuI807M_KLIs,24766
68
75
  src/cli/commands/setup_cicd.py,sha256=Lr0wLeKlRxROsRVFLAI3ygfIh_sTavvgQckDkzFEKMQ,31705
69
76
  src/cli/utils/__init__.py,sha256=_cTmsXGPqOtK0q8UW5164QTltbJRJFR_Efxq_BRL1-o,1311
70
77
  src/cli/utils/cicd.py,sha256=m2BxwV39323rVzJCjJjB37IPdSNQdxVgXGrgnhdbb84,26040
71
78
  src/cli/utils/datastores.py,sha256=gv1V6eDcOEKx4MRNG5C3Y-VfixYq1AzQuaYMLp8QRNo,1058
72
79
  src/cli/utils/gcp.py,sha256=cnuCyN144eiyYc9aJNEK9JnyWN66rdevugoMdDYC1UU,4032
73
80
  src/cli/utils/logging.py,sha256=0lHe4EPi1A8sOx9xkA7gS4UNl0GsIyp2ahydkkuCzLY,1570
74
- src/cli/utils/template.py,sha256=2gxFVnfcYN-spdfeQPu0iKwZoPtH1iEqOWRl3di6_80,29190
81
+ src/cli/utils/template.py,sha256=ruaOmjc_dPEyHaMjMeJSzFqFjgEKK56FdhubWLu-V9s,29164
75
82
  src/cli/utils/version.py,sha256=F4udQmzniPStqWZFIgnv3Qg3l9non4mfy2An-Oveqmc,2916
76
83
  src/data_ingestion/README.md,sha256=LNxSQoJW9JozK-TbyGQLj5L_MGWNwrfLk6V6RmQ2oBQ,4032
77
84
  src/data_ingestion/pyproject.toml,sha256=-1Mf2QB8K70ICQV5UPZDpf-fN3UwEQLVzQyxfakCSTY,445
@@ -89,11 +96,37 @@ src/deployment_targets/agent_engine/tests/load_test/load_test.py,sha256=FFCo_LjI
89
96
  src/deployment_targets/agent_engine/tests/load_test/.results/.placeholder,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
90
97
  src/deployment_targets/cloud_run/Dockerfile,sha256=vedZX0JJW2bymESqB-0LumnkKyr7hcog8NlR0DX8Q74,843
91
98
  src/deployment_targets/cloud_run/uv.lock,sha256=2RYrR89xDS1FHVb-g2JGZq8zZ-rzbm_jRvehVCYuXRQ,887957
92
- src/deployment_targets/cloud_run/app/server.py,sha256=EFPdzu7K1KvV6J4WpVbYzs-6j3-QszVcGeGXeiBhTL8,5122
93
- src/deployment_targets/cloud_run/tests/integration/test_server_e2e.py,sha256=dKgFE8ksZz-6IDqMfJjTJcwgywJcN9gpSd9Ni97NjPg,7784
99
+ src/deployment_targets/cloud_run/app/server.py,sha256=qgsMzGE5LmAJm7lVs8t_bT1Ddd1YcD1TSWQ46pnlz00,5270
100
+ src/deployment_targets/cloud_run/tests/integration/test_server_e2e.py,sha256=vR9cdRxBz3XbXBzMMB6rZAQ_7QKtLICM-CJPl86juJs,7784
94
101
  src/deployment_targets/cloud_run/tests/load_test/README.md,sha256=HgWizsGHyh_2i0xOG2-1IN_Eav3GiGNKwZVOffilo2I,2806
95
102
  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
103
+ src/deployment_targets/cloud_run/tests/load_test/.results/.placeholder,sha256=ZbWpSgDo8bT33PstD_73aQSeN_0oo0F104NMUGuZ8lE,14903
104
+ src/frontends/adk_gemini_fullstack/frontend/components.json,sha256=OUAALKbVpmIHQ16HcK1BgLBbVf_rV7s08PuGqgCFJ-o,423
105
+ src/frontends/adk_gemini_fullstack/frontend/eslint.config.js,sha256=3ADH23ANA4NNBKFy6nCVk65e8bx1DrVd_FIaYNnhuqA,734
106
+ src/frontends/adk_gemini_fullstack/frontend/index.html,sha256=cGmA25GOzciMX6ABt1SW_SqnrgPXGGf-1Pbkx2eMByQ,306
107
+ src/frontends/adk_gemini_fullstack/frontend/package-lock.json,sha256=Pmb8NFfyEh7H9U_SHXkHAgkORcuGyd3JagKUFHIUr-Y,206669
108
+ src/frontends/adk_gemini_fullstack/frontend/package.json,sha256=fsPrhf27JfN35B8015kiQGVpyil2NNi6tZiZV_B7kXk,1284
109
+ src/frontends/adk_gemini_fullstack/frontend/tsconfig.json,sha256=LtqiCB6w68AjbIegDnbXa1YXKM_RQZZVVkAjfUNxyBo,753
110
+ src/frontends/adk_gemini_fullstack/frontend/tsconfig.node.json,sha256=1BewvjsiZMJqSGXTqe94jo5yKdpi7yqI7UGoHgTv9mg,593
111
+ src/frontends/adk_gemini_fullstack/frontend/vite.config.ts,sha256=hxnoqbvxU6kljtTYOE49jhzurHiyr0cZvxugWSPvKsM,1150
112
+ src/frontends/adk_gemini_fullstack/frontend/public/vite.svg,sha256=SnSK_UQ5GLsWWRyDTEAdrjPoeGGrXbrQgRw6O0qSFPs,1497
113
+ src/frontends/adk_gemini_fullstack/frontend/src/App.tsx,sha256=X624JJ2LaDm1ztjb23r15f2fRzilVp6CNpw80HtuCAg,21473
114
+ src/frontends/adk_gemini_fullstack/frontend/src/global.css,sha256=uNpkk45y9XVsmQs84D0KHN8B2i55ElSFZxHu6zml5E8,5037
115
+ src/frontends/adk_gemini_fullstack/frontend/src/main.tsx,sha256=WYYxbfb0WHrY1BW7KB-pCxb3jslb1UeCDa26l9Ve0SQ,328
116
+ src/frontends/adk_gemini_fullstack/frontend/src/utils.ts,sha256=Utm02hSGixxQ_T4hqlZqpdc8BuK1B2Mgk5X0vNK3V_4,170
117
+ src/frontends/adk_gemini_fullstack/frontend/src/vite-env.d.ts,sha256=ZZlpNvuwQpFfe3SiAPzd5-QQ8ypmmxq5WXz6pLD63bU,38
118
+ src/frontends/adk_gemini_fullstack/frontend/src/components/ActivityTimeline.tsx,sha256=FfDYEJyBc5vZYOBATcLyJRl1IYjb1B-0qv79dN8DqBI,9616
119
+ src/frontends/adk_gemini_fullstack/frontend/src/components/ChatMessagesView.tsx,sha256=Jgv50ATn7_Fu9iZItsmquU90JsfNey-h8Ab6AgSB6kM,14369
120
+ src/frontends/adk_gemini_fullstack/frontend/src/components/InputForm.tsx,sha256=8YjXJ2251qAunm5nEgVSto70pe3yoxGGqbU3hDSIB30,1875
121
+ src/frontends/adk_gemini_fullstack/frontend/src/components/WelcomeScreen.tsx,sha256=cs3ogNX5U4_divL_3AA_75PPh5m7JqkfO8upemcPEQk,2064
122
+ src/frontends/adk_gemini_fullstack/frontend/src/components/ui/badge.tsx,sha256=RK5qi9QBQLZRULdg46yX_sdQ05NTBq4EkuegeLa6I4A,1627
123
+ src/frontends/adk_gemini_fullstack/frontend/src/components/ui/button.tsx,sha256=2lrQboqV8BfAa-k6Hauvlsklk1pTmYl1gWwE3UXJHWc,2119
124
+ src/frontends/adk_gemini_fullstack/frontend/src/components/ui/card.tsx,sha256=_nt0cquRb8cZ2ibMRVNuUBqgdb3pHTPE_MmPytUwLck,1985
125
+ src/frontends/adk_gemini_fullstack/frontend/src/components/ui/input.tsx,sha256=8hVWeIHS_a5rgrpRChHrLRnXptwUNn73FG7nB-O5t08,963
126
+ src/frontends/adk_gemini_fullstack/frontend/src/components/ui/scroll-area.tsx,sha256=OweG6sEc5nhRLERWbD99uMmwUzfeT7HZmESAyrDd-XI,1623
127
+ src/frontends/adk_gemini_fullstack/frontend/src/components/ui/select.tsx,sha256=l1CSyVqn6zCovoC-r4HmmUFMWEMAUTuOEZqBK5dQP0g,6231
128
+ src/frontends/adk_gemini_fullstack/frontend/src/components/ui/tabs.tsx,sha256=Epvn4JDzNmP9tw9Zik5yzxTvALO4wfP8U2PjyvToglw,1951
129
+ src/frontends/adk_gemini_fullstack/frontend/src/components/ui/textarea.tsx,sha256=GS4IJIjRF5CzN78SrQlJzapWlknrV673AghYBFvLx_Y,755
97
130
  src/frontends/live_api_react/frontend/package-lock.json,sha256=cRmNP68qotvdTypAOU-UZi65ZSai4KTwxYvCYep9LQs,734245
98
131
  src/frontends/live_api_react/frontend/package.json,sha256=OBOzzDiDiESPzmbLDlZ6KM1Trit71vXdP692dI-g9Uo,1381
99
132
  src/frontends/live_api_react/frontend/tsconfig.json,sha256=cyqEhf7-Yydz-PX8_cuF8JpsyC363NDTNkrmCk0sKAo,595
@@ -140,37 +173,30 @@ src/frontends/streamlit/frontend/utils/message_editing.py,sha256=YWoPe2KeWMuL3YV
140
173
  src/frontends/streamlit/frontend/utils/multimodal_utils.py,sha256=v6YbCkz_YcnEo-9YvRjwBNt0SzU4M39bYxJGmKk69vE,7313
141
174
  src/frontends/streamlit/frontend/utils/stream_handler.py,sha256=-XVRfLH6ck1KP6NS4vrhcvPyZe6z3NLHliEg17s9jjo,12551
142
175
  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
176
  src/resources/containers/data_processing/Dockerfile,sha256=VoB9d5yZiiWnqRfWrIq0gGNMzZg-eVy733OgP72ZgO0,950
153
177
  src/resources/containers/e2e-tests/Dockerfile,sha256=Q_aTyX_iaFY8j06XZkpMuggJnNO5daiLmmrvqaZHMxw,1611
154
178
  src/resources/idx/idx-template.json,sha256=07OQZCPp45Iqor2O7Tm1e1Gmsdd-AmmUofSvA7y-oRs,793
155
179
  src/resources/idx/idx-template.nix,sha256=sesHGev_PYtVDg0J5tHkg0OO7IR1Bz2iAtl_if3Ar3M,892
156
180
  src/resources/idx/.idx/dev.nix,sha256=XQ4T1xt5I-8SVwnI37v56RFFlxa58Ko-a9G2-oelYAI,1602
157
- src/resources/locks/uv-adk_base-agent_engine.lock,sha256=hPplULv_naT_erWwTmbg0Y3EFh1wZ_ZglOZ44jPB7_s,352622
158
- src/resources/locks/uv-adk_base-cloud_run.lock,sha256=idBIkXAchi2j-a-tngAoSXmNvu9fiuQlwNCMJIMMYcI,433449
159
- src/resources/locks/uv-agentic_rag-agent_engine.lock,sha256=aOekEzuougaxd108vLUonodT2ypJ75NJFjJPN1Wptdo,518546
160
- src/resources/locks/uv-agentic_rag-cloud_run.lock,sha256=_vMiI-0buziUak0_WRQo4a3Sxye0dBL-r1Ob44fBnRE,671999
161
- src/resources/locks/uv-crewai_coding_crew-agent_engine.lock,sha256=XdHrWOj0AjJz1KLXyw2YQprtJAmds-wZ_IKKmeRbotc,778953
162
- src/resources/locks/uv-crewai_coding_crew-cloud_run.lock,sha256=b7_Df5UYJDDNWUtqWNuJGxLkc3phCzLkDfLpzYLGwls,990359
163
- src/resources/locks/uv-langgraph_base_react-agent_engine.lock,sha256=fi_wRRdrAP7VQtGDSG-XSnC_aM68zQxf-S6g7tLqd5g,666366
164
- src/resources/locks/uv-langgraph_base_react-cloud_run.lock,sha256=73Ni3DG0WPhZnXnJRk5M5Ul7S9XXAmL9ZNTsY2sWNwc,863721
165
- src/resources/locks/uv-live_api-cloud_run.lock,sha256=mixMuU4nEEZpFPzr-mv8b8NItjmYt_gDT4C9Pf2OKqc,785851
181
+ src/resources/locks/uv-adk_base-agent_engine.lock,sha256=vpeialGn8PplTrsqx8uQYmUiwD_uDN7B5tP0-GuEXB8,352603
182
+ src/resources/locks/uv-adk_base-cloud_run.lock,sha256=RSUnPpuhLBE4YJlw1W7JBp4dpQk_aUtvi99yQaqHOOY,433430
183
+ src/resources/locks/uv-adk_gemini_fullstack-agent_engine.lock,sha256=vpeialGn8PplTrsqx8uQYmUiwD_uDN7B5tP0-GuEXB8,352603
184
+ src/resources/locks/uv-adk_gemini_fullstack-cloud_run.lock,sha256=RSUnPpuhLBE4YJlw1W7JBp4dpQk_aUtvi99yQaqHOOY,433430
185
+ src/resources/locks/uv-agentic_rag-agent_engine.lock,sha256=zWr9BhACA9f4WPmLxWgbG_m1bDpnhymY8q0IQnW3l0k,519313
186
+ src/resources/locks/uv-agentic_rag-cloud_run.lock,sha256=njY24B2k7YE5nzZTpnpHMwZ0ogKHxgliK1i10velm0k,673291
187
+ src/resources/locks/uv-crewai_coding_crew-agent_engine.lock,sha256=bULo05BZdi_4xV1YXU2wTRi1Ujah-Cs5JS8VGdLqqGA,779718
188
+ src/resources/locks/uv-crewai_coding_crew-cloud_run.lock,sha256=jBbTXM6EC6LZ1_-a2dhnR3K2S1uKrZvsGm5rleuK2yQ,991649
189
+ src/resources/locks/uv-langgraph_base_react-agent_engine.lock,sha256=C3WgRwzeH0jymFj8EfNuUwYs94E1e0s3UEbMGEsYls8,667131
190
+ src/resources/locks/uv-langgraph_base_react-cloud_run.lock,sha256=sQmg4vv8bdZN9VEeNiX1CWfYHhLJMfyy-8QzvzW4xnE,865011
191
+ src/resources/locks/uv-live_api-cloud_run.lock,sha256=-htrBaFgKW0dmx-Q7Ez0Vbe8r8A1hgq1IMsVzDiomDs,787143
166
192
  src/resources/setup_cicd/cicd_variables.tf,sha256=PMflYe1TzQi63LORHkmeCktTYzXFplJgxffNH4DtuAQ,1244
167
193
  src/resources/setup_cicd/github.tf,sha256=scTBgeZlCM74N-pzhVKsnTN0PX9a5GboNl1HN3-LlCM,2791
168
194
  src/resources/setup_cicd/providers.tf,sha256=Km4z6IJt7x7PLaa0kyZbBrO2m3lpuIJZFD5jB7QBfF0,1122
169
195
  src/utils/generate_locks.py,sha256=6V1B8V2BEuevWnXUsxZVTrLjXwFRII8UfsIGrQqZxVs,4320
170
196
  src/utils/lock_utils.py,sha256=RSE6n3hBkH64xNm3Q5wrR0Pqbeo-oc7xaTOhA9yzHjk,2275
171
197
  src/utils/watch_and_rebuild.py,sha256=vP4yIiA7E_lj5sfQdJUl8TXas6V7msDg8XWUutAC05Q,6679
172
- agent_starter_pack-0.5.3.dist-info/METADATA,sha256=xLUqZpFRecNARUHlGZV8EvdFtFtoRPQKz-g265-KMO4,10454
173
- agent_starter_pack-0.5.3.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
174
- agent_starter_pack-0.5.3.dist-info/entry_points.txt,sha256=U7uCxR7YulIhZ0L8R8Hui0Bsy6J7oyESBeDYJYMrQjA,56
175
- agent_starter_pack-0.5.3.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
176
- agent_starter_pack-0.5.3.dist-info/RECORD,,
198
+ agent_starter_pack-0.6.1.dist-info/METADATA,sha256=UvwmnqtiGy7xpht6a-VP8x8uNOJZvlkVdXFxi0Yj7eE,10454
199
+ agent_starter_pack-0.6.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
200
+ agent_starter_pack-0.6.1.dist-info/entry_points.txt,sha256=U7uCxR7YulIhZ0L8R8Hui0Bsy6J7oyESBeDYJYMrQjA,56
201
+ agent_starter_pack-0.6.1.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
202
+ agent_starter_pack-0.6.1.dist-info/RECORD,,
@@ -261,7 +261,7 @@
261
261
  "source": [
262
262
  "### Local Testing\n",
263
263
  "\n",
264
- "> You can run the application locally via the `make backend` command."
264
+ "> You can run the application locally via the `make local-backend` command."
265
265
  ]
266
266
  },
267
267
  {
@@ -0,0 +1,148 @@
1
+ # Gemini Fullstack Agent Development Kit (ADK) Quickstart
2
+
3
+ The **Gemini Fullstack Agent Development Kit (ADK) Quickstart** is a production-ready blueprint for building a sophisticated, fullstack research agent with Gemini. It's built to demonstrate how the ADK helps structure complex agentic workflows, build modular agents, and incorporate critical Human-in-the-Loop (HITL) steps.
4
+
5
+ <table>
6
+ <thead>
7
+ <tr>
8
+ <th colspan="2">Key Features</th>
9
+ </tr>
10
+ </thead>
11
+ <tbody>
12
+ <tr>
13
+ <td>🏗️</td>
14
+ <td><strong>Fullstack & Production-Ready:</strong> A complete React frontend and ADK-powered FastAPI backend, with deployment options for <a href="https://cloud.google.com/run">Google Cloud Run</a> and <a href="https://cloud.google.com/vertex-ai/generative-ai/docs/agent-engine/overview">Vertex AI Agent Engine</a>.</td>
15
+ </tr>
16
+ <tr>
17
+ <td>🧠</td>
18
+ <td><strong>Advanced Agentic Workflow:</strong> The agent uses Gemini to <strong>strategize</strong> a multi-step plan, <strong>reflect</strong> on findings to identify gaps, and <strong>synthesize</strong> a final, comprehensive report.</td>
19
+ </tr>
20
+ <tr>
21
+ <td>🔄</td>
22
+ <td><strong>Iterative & Human-in-the-Loop Research:</strong> Involves the user for plan approval, then autonomously loops through searching (via Gemini function calling) and refining its results until it has gathered sufficient information.</td>
23
+ </tr>
24
+ </tbody>
25
+ </table>
26
+
27
+ <img src="../../docs/images/adk_gemini_fullstack_preview.png" alt="Gemini Fullstack ADK Preview">
28
+
29
+ This project adapts concepts from the [Gemini FullStack LangGraph Quickstart](https://github.com/google-gemini/gemini-fullstack-langgraph-quickstart) for the frontend app.
30
+
31
+ ## 🚀 Getting Started: From Zero to Running Agent in 1 Minute
32
+
33
+ **Prerequisites:**
34
+
35
+ * **[Python 3.10+](https://www.python.org/downloads/)**
36
+ * **[Node.js and npm](https://nodejs.org/)**
37
+ * **[Google Cloud SDK](https://cloud.google.com/sdk/docs/install)**
38
+
39
+ ### Step 1: Create Your Agent Project
40
+
41
+
42
+ This command uses the [Agent Starter Pack](goo.gle/agent-starter-pack) to create a new directory (`my-fullstack-agent`) with all the necessary code.
43
+ ```bash
44
+ # Create and activate a virtual environment
45
+ python -m venv .venv && source .venv/bin/activate # On Windows: .venv\Scripts\activate
46
+
47
+ # Install the starter pack and create your project
48
+ pip install --upgrade agent-starter-pack
49
+ agent-starter-pack create my-fullstack-agent -a adk_gemini_fullstack
50
+ ```
51
+
52
+ <details>
53
+ <summary>⚡️ Alternative: Using uv</summary>
54
+
55
+ If you have [`uv`](https://github.com/astral-sh/uv) installed, you can create and set up your project with a single command:
56
+
57
+ ```bash
58
+ uvx agent-starter-pack create my-fullstack-agent -a adk_gemini_fullstack
59
+ ```
60
+ This command handles creating the project without needing to pre-install the package into a virtual environment.
61
+
62
+ </details>
63
+
64
+ You'll be prompted to select a deployment option (Agent Engine or Cloud Run) and verify your Google Cloud credentials.
65
+
66
+ ### Step 2: Install Dependencies & Run the Agent
67
+
68
+ Now, navigate into your new project, install the dependencies, and start the servers with a single command.
69
+
70
+ ```bash
71
+ cd my-fullstack-agent && make install && make dev
72
+ ```
73
+
74
+ Your agent should now be running!
75
+ * Backend API: `http://localhost:8000`
76
+ * Frontend UI: `http://localhost:5173`
77
+
78
+ ## ☁️ Deployment
79
+
80
+ You can quickly deploy your agent to a **development environment** on Google Cloud. You can deploy your latest code at any time with:
81
+
82
+ ```bash
83
+ # Replace YOUR_DEV_PROJECT_ID with your actual Google Cloud Project ID
84
+ gcloud config set project YOUR_DEV_PROJECT_ID
85
+ make backend
86
+ ```
87
+
88
+ For robust, **production-ready deployments** with automated CI/CD, please follow the detailed instructions in the **[Agent Starter Pack Development Guide](https://googlecloudplatform.github.io/agent-starter-pack/guide/development-guide.html#b-production-ready-deployment-with-ci-cd)**.
89
+
90
+ ## How the Agent Thinks: A Two-Phase Workflow
91
+
92
+ The backend agent, defined in `app/agent.py`, follows a sophisticated workflow to move from a simple topic to a fully-researched report.
93
+
94
+ The following diagram illustrates the agent's architecture and workflow:
95
+
96
+ ![ADK Gemini Fullstack Architecture](../../docs/images/adk_gemini_fullstack_architecture.png)
97
+
98
+ This process is broken into two main phases:
99
+
100
+ ### Phase 1: Plan & Refine (Human-in-the-Loop)
101
+
102
+ This is the collaborative brainstorming phase.
103
+
104
+ 1. **You provide a research topic.**
105
+ 2. The agent generates a high-level research plan with several key goals (e.g., "Analyze the market impact," "Identify key competitors").
106
+ 3. The plan is presented to **you**. You can approve it, or chat with the agent to add, remove, or change goals until you're satisfied. Nothing happens without your explicit approval.
107
+
108
+ ### Phase 2: Execute Autonomous Research
109
+
110
+ Once you approve the plan, the agent's `research_pipeline` takes over and works autonomously.
111
+
112
+ 1. **Outlining:** It first converts the approved plan into a structured report outline (like a table of contents).
113
+ 2. **Iterative Research & Critique Loop:** For each section of the outline, it repeats a cycle:
114
+ * **Search:** It performs web searches to gather information.
115
+ * **Critique:** A "critic" model evaluates the findings for gaps or weaknesses.
116
+ * **Refine:** If the critique finds weaknesses, the agent generates more specific follow-up questions and searches again. This loop continues until the research meets a high-quality bar.
117
+ 3. **Compose Final Report:** After the research loop is complete, a final agent takes all the verified findings and writes a polished report, automatically adding inline citations that link back to the original sources.
118
+
119
+ You can edit key parameters (Gemini models, research loop iterations) in the `ResearchConfiguration` dataclass within `app/config.py`.
120
+
121
+ ## 🔄 Frontend-Backend Integration
122
+
123
+ The frontend UI integrates with the backend through specific agent names that:
124
+
125
+ 1. **Process agent outputs** - Different outputs are handled in specific ways (research findings vs. final report)
126
+ 2. **Update the activity timeline** - Each agent's activity appears with appropriate titles and icons
127
+ 3. **Track research metrics** - Website counts and progress indicators are based on agent activities
128
+
129
+ Important agent names for frontend functionality:
130
+
131
+ - `section_researcher` & `enhanced_search_executor`: Track websites consulted
132
+ - `report_composer_with_citations`: Processes final report with citations
133
+ - `interactive_planner_agent`: Updates AI messages during planning
134
+ - Other agents (`plan_generator`, `section_planner`, etc.): Used for timeline labels
135
+
136
+ If you modify agent names in `app/agent.py`, update the frontend code accordingly to maintain functionality.
137
+
138
+ ## 🛠️ Technologies Used
139
+
140
+ ### Backend
141
+ * [**Agent Development Kit (ADK)**](https://github.com/google/adk-python): The core framework for building the stateful, multi-turn agent.
142
+ * [**FastAPI**](https://fastapi.tiangolo.com/): High-performance web framework for the backend API.
143
+ * [**Google Gemini**](https://cloud.google.com/vertex-ai/generative-ai/docs): Used for planning, reasoning, search query generation, and final synthesis.
144
+
145
+ ### Frontend
146
+ * [**React**](https://reactjs.org/) (with [Vite](https://vitejs.dev/)): For building the interactive user interface.
147
+ * [**Tailwind CSS**](https://tailwindcss.com/): For utility-first styling.
148
+ * [**Shadcn UI**](https://ui.shadcn.com/): A set of beautifully designed, accessible components.