agent-starter-pack 0.5.3__py3-none-any.whl → 0.6.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {agent_starter_pack-0.5.3.dist-info → agent_starter_pack-0.6.0.dist-info}/METADATA +1 -1
- {agent_starter_pack-0.5.3.dist-info → agent_starter_pack-0.6.0.dist-info}/RECORD +59 -33
- agents/adk_base/notebooks/adk_app_testing.ipynb +1 -1
- agents/adk_gemini_fullstack/README.md +148 -0
- agents/adk_gemini_fullstack/app/agent.py +349 -0
- agents/adk_gemini_fullstack/app/config.py +11 -0
- agents/adk_gemini_fullstack/notebooks/adk_app_testing.ipynb +353 -0
- agents/adk_gemini_fullstack/notebooks/evaluating_adk_agent.ipynb +1528 -0
- agents/adk_gemini_fullstack/template/.templateconfig.yaml +37 -0
- agents/adk_gemini_fullstack/tests/integration/test_agent.py +58 -0
- agents/agentic_rag/notebooks/adk_app_testing.ipynb +1 -1
- src/base_template/Makefile +21 -2
- src/base_template/README.md +8 -3
- src/base_template/pyproject.toml +1 -4
- src/cli/commands/create.py +17 -10
- src/cli/utils/template.py +13 -10
- src/deployment_targets/cloud_run/app/server.py +7 -1
- src/deployment_targets/cloud_run/tests/integration/test_server_e2e.py +1 -1
- src/deployment_targets/cloud_run/tests/load_test/.results/.placeholder +321 -0
- src/frontends/adk_gemini_fullstack/frontend/components.json +21 -0
- src/frontends/adk_gemini_fullstack/frontend/eslint.config.js +28 -0
- src/frontends/adk_gemini_fullstack/frontend/index.html +12 -0
- src/frontends/adk_gemini_fullstack/frontend/package-lock.json +5829 -0
- src/frontends/adk_gemini_fullstack/frontend/package.json +46 -0
- src/frontends/adk_gemini_fullstack/frontend/public/vite.svg +1 -0
- src/frontends/adk_gemini_fullstack/frontend/src/App.tsx +565 -0
- src/frontends/adk_gemini_fullstack/frontend/src/components/ActivityTimeline.tsx +244 -0
- src/frontends/adk_gemini_fullstack/frontend/src/components/ChatMessagesView.tsx +419 -0
- src/frontends/adk_gemini_fullstack/frontend/src/components/InputForm.tsx +60 -0
- src/frontends/adk_gemini_fullstack/frontend/src/components/WelcomeScreen.tsx +56 -0
- src/frontends/adk_gemini_fullstack/frontend/src/components/ui/badge.tsx +46 -0
- src/frontends/adk_gemini_fullstack/frontend/src/components/ui/button.tsx +59 -0
- src/frontends/adk_gemini_fullstack/frontend/src/components/ui/card.tsx +92 -0
- src/frontends/adk_gemini_fullstack/frontend/src/components/ui/input.tsx +21 -0
- src/frontends/adk_gemini_fullstack/frontend/src/components/ui/scroll-area.tsx +56 -0
- src/frontends/adk_gemini_fullstack/frontend/src/components/ui/select.tsx +183 -0
- src/frontends/adk_gemini_fullstack/frontend/src/components/ui/tabs.tsx +64 -0
- src/frontends/adk_gemini_fullstack/frontend/src/components/ui/textarea.tsx +18 -0
- src/frontends/adk_gemini_fullstack/frontend/src/global.css +154 -0
- src/frontends/adk_gemini_fullstack/frontend/src/main.tsx +13 -0
- src/frontends/adk_gemini_fullstack/frontend/src/utils.ts +7 -0
- src/frontends/adk_gemini_fullstack/frontend/src/vite-env.d.ts +1 -0
- src/frontends/adk_gemini_fullstack/frontend/tsconfig.json +28 -0
- src/frontends/adk_gemini_fullstack/frontend/tsconfig.node.json +24 -0
- src/frontends/adk_gemini_fullstack/frontend/vite.config.ts +26 -0
- src/resources/locks/uv-adk_base-agent_engine.lock +24 -24
- src/resources/locks/uv-adk_base-cloud_run.lock +24 -24
- src/resources/locks/uv-adk_gemini_fullstack-agent_engine.lock +3217 -0
- src/resources/locks/uv-adk_gemini_fullstack-cloud_run.lock +3513 -0
- src/resources/locks/uv-agentic_rag-agent_engine.lock +88 -85
- src/resources/locks/uv-agentic_rag-cloud_run.lock +124 -119
- src/resources/locks/uv-crewai_coding_crew-agent_engine.lock +94 -91
- src/resources/locks/uv-crewai_coding_crew-cloud_run.lock +130 -125
- src/resources/locks/uv-langgraph_base_react-agent_engine.lock +91 -88
- src/resources/locks/uv-langgraph_base_react-cloud_run.lock +130 -125
- src/resources/locks/uv-live_api-cloud_run.lock +121 -116
- src/frontends/streamlit_adk/frontend/side_bar.py +0 -214
- src/frontends/streamlit_adk/frontend/streamlit_app.py +0 -314
- src/frontends/streamlit_adk/frontend/style/app_markdown.py +0 -37
- src/frontends/streamlit_adk/frontend/utils/chat_utils.py +0 -84
- src/frontends/streamlit_adk/frontend/utils/local_chat_history.py +0 -110
- src/frontends/streamlit_adk/frontend/utils/message_editing.py +0 -61
- src/frontends/streamlit_adk/frontend/utils/multimodal_utils.py +0 -223
- src/frontends/streamlit_adk/frontend/utils/stream_handler.py +0 -311
- src/frontends/streamlit_adk/frontend/utils/title_summary.py +0 -129
- {agent_starter_pack-0.5.3.dist-info → agent_starter_pack-0.6.0.dist-info}/WHEEL +0 -0
- {agent_starter_pack-0.5.3.dist-info → agent_starter_pack-0.6.0.dist-info}/entry_points.txt +0 -0
- {agent_starter_pack-0.5.3.dist-info → agent_starter_pack-0.6.0.dist-info}/licenses/LICENSE +0 -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=
|
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=hluCNzKdwE32IQHbf0nAHKL7xMrMH2cXB6a4yaRo7uU,7473
|
8
|
+
agents/adk_gemini_fullstack/app/agent.py,sha256=GNimHCEbYR70uEgHyhOLO0BkuS0sfNwUtSLPMcW9goE,15994
|
9
|
+
agents/adk_gemini_fullstack/app/config.py,sha256=XND_ZTlNRze2E1IM8B5DYbhOv_iQXXAZj-CLI9YL4bo,230
|
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=
|
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=
|
38
|
-
src/base_template/README.md,sha256=
|
39
|
-
src/base_template/pyproject.toml,sha256=
|
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=
|
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=
|
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=
|
93
|
-
src/deployment_targets/cloud_run/tests/integration/test_server_e2e.py,sha256=
|
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=
|
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=FXGDs7HPxqgfI_zE2qfVcvsiJB66EKEH_TOH8ooSSYo,756
|
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=BxXjPxOd0IMzfu78vO35ORvWWwmgImBHahlMWttvp-U,21518
|
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=
|
158
|
-
src/resources/locks/uv-adk_base-cloud_run.lock,sha256=
|
159
|
-
src/resources/locks/uv-
|
160
|
-
src/resources/locks/uv-
|
161
|
-
src/resources/locks/uv-
|
162
|
-
src/resources/locks/uv-
|
163
|
-
src/resources/locks/uv-
|
164
|
-
src/resources/locks/uv-
|
165
|
-
src/resources/locks/uv-
|
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.
|
173
|
-
agent_starter_pack-0.
|
174
|
-
agent_starter_pack-0.
|
175
|
-
agent_starter_pack-0.
|
176
|
-
agent_starter_pack-0.
|
198
|
+
agent_starter_pack-0.6.0.dist-info/METADATA,sha256=Fy5UgrxC0GnfacJgU9hwZPRfcRbvk7nCKuq344mwVh0,10454
|
199
|
+
agent_starter_pack-0.6.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
200
|
+
agent_starter_pack-0.6.0.dist-info/entry_points.txt,sha256=U7uCxR7YulIhZ0L8R8Hui0Bsy6J7oyESBeDYJYMrQjA,56
|
201
|
+
agent_starter_pack-0.6.0.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
202
|
+
agent_starter_pack-0.6.0.dist-info/RECORD,,
|
@@ -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 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
|
+

|
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.
|