langgraph-agent-toolkit 0.4.1__tar.gz → 0.4.2__tar.gz

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 (154) hide show
  1. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/CHANGELOG.md +9 -0
  2. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/PKG-INFO +8 -8
  3. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/README.md +7 -7
  4. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/docker/app/Dockerfile +3 -3
  5. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/agents/agent_executor.py +7 -8
  6. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/client/client.py +7 -3
  7. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/core/memory/postgres.py +1 -3
  8. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/streamlit_app.py +15 -12
  9. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/pyproject.toml +1 -1
  10. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/tests/app/test_streamlit_app.py +27 -20
  11. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/uv.lock +1962 -1962
  12. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/.coveragerc +0 -0
  13. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/.dockerignore +0 -0
  14. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/.env.example +0 -0
  15. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  16. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  17. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  18. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/.github/RELEASE_TEMPLATE/release-template.md +0 -0
  19. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/.github/codecov.yml +0 -0
  20. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/.github/dependabot.yml +0 -0
  21. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/.github/scripts/tag_from_pyproject.sh +0 -0
  22. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/.github/workflows/deploy.yml +0 -0
  23. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/.github/workflows/release.yml +0 -0
  24. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/.github/workflows/sphinx.yml +0 -0
  25. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/.github/workflows/test.yml +0 -0
  26. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/.gitignore +0 -0
  27. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/.pre-commit-config.yaml +0 -0
  28. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/.project-root +0 -0
  29. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/CONTRIBUTING.md +0 -0
  30. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/LICENSE +0 -0
  31. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/Makefile +0 -0
  32. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/configs/clickhouse/.clickhouse.env.example +0 -0
  33. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/configs/langfuse/.langfuse.env.example +0 -0
  34. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/configs/litellm/.litellm.env.example +0 -0
  35. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/configs/litellm/config.example.yaml +0 -0
  36. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/configs/minio/.minio.env.example +0 -0
  37. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/configs/postgres/.postgres.env.example +0 -0
  38. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/configs/redis/.redis.env.example +0 -0
  39. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/docker/service/Dockerfile +0 -0
  40. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/docker-compose.yaml +0 -0
  41. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/docs/.gitignore +0 -0
  42. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/docs/Makefile +0 -0
  43. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/docs/_static/custom.css +0 -0
  44. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/docs/_templates/class.rst +0 -0
  45. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/docs/_templates/layout.html +0 -0
  46. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/docs/_templates/module.rst +0 -0
  47. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/docs/conf.py +0 -0
  48. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/docs/contributing.rst +0 -0
  49. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/docs/environment_setup.rst +0 -0
  50. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/docs/index.rst +0 -0
  51. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/docs/installation.rst +0 -0
  52. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/docs/make.bat +0 -0
  53. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/docs/media/agent_architecture.excalidraw +0 -0
  54. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/docs/media/agent_architecture.png +0 -0
  55. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/docs/media/agent_diagram.png +0 -0
  56. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/docs/media/logo.svg +0 -0
  57. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/docs/usage.rst +0 -0
  58. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph.json +0 -0
  59. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/__init__.py +0 -0
  60. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/agents/__init__.py +0 -0
  61. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/agents/agent.py +0 -0
  62. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/agents/blueprints/__init__.py +0 -0
  63. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/agents/blueprints/bg_task_agent/__init__.py +0 -0
  64. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/agents/blueprints/bg_task_agent/agent.py +0 -0
  65. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/agents/blueprints/bg_task_agent/task.py +0 -0
  66. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/agents/blueprints/bg_task_agent/utils.py +0 -0
  67. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/agents/blueprints/chatbot/__init__.py +0 -0
  68. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/agents/blueprints/chatbot/agent.py +0 -0
  69. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/agents/blueprints/command_agent/__init__.py +0 -0
  70. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/agents/blueprints/command_agent/agent.py +0 -0
  71. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/agents/blueprints/interrupt_agent/__init__.py +0 -0
  72. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/agents/blueprints/interrupt_agent/agent.py +0 -0
  73. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/agents/blueprints/knowledge_base_agent/__init__.py +0 -0
  74. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/agents/blueprints/knowledge_base_agent/agent.py +0 -0
  75. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/agents/blueprints/react/__init__.py +0 -0
  76. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/agents/blueprints/react/agent.py +0 -0
  77. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/agents/blueprints/react_so/__init__.py +0 -0
  78. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/agents/blueprints/react_so/agent.py +0 -0
  79. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/agents/blueprints/supervisor_agent/__init__.py +0 -0
  80. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/agents/blueprints/supervisor_agent/agent.py +0 -0
  81. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/agents/components/__init__.py +0 -0
  82. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/agents/components/creators/__init__.py +0 -0
  83. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/agents/components/creators/create_react_agent.py +0 -0
  84. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/agents/components/tools.py +0 -0
  85. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/agents/components/utils.py +0 -0
  86. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/client/__init__.py +0 -0
  87. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/core/__init__.py +0 -0
  88. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/core/memory/__init__.py +0 -0
  89. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/core/memory/base.py +0 -0
  90. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/core/memory/factory.py +0 -0
  91. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/core/memory/sqlite.py +0 -0
  92. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/core/memory/types.py +0 -0
  93. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/core/models/__init__.py +0 -0
  94. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/core/models/chat_openai.py +0 -0
  95. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/core/models/factory.py +0 -0
  96. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/core/models/fake.py +0 -0
  97. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/core/observability/__init__.py +0 -0
  98. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/core/observability/base.py +0 -0
  99. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/core/observability/empty.py +0 -0
  100. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/core/observability/factory.py +0 -0
  101. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/core/observability/langfuse.py +0 -0
  102. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/core/observability/langsmith.py +0 -0
  103. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/core/observability/types.py +0 -0
  104. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/core/prompts/__init__.py +0 -0
  105. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/core/prompts/chat_prompt_template.py +0 -0
  106. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/core/settings.py +0 -0
  107. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/helper/__init__.py +0 -0
  108. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/helper/constants.py +0 -0
  109. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/helper/logging.py +0 -0
  110. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/helper/types.py +0 -0
  111. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/helper/utils.py +0 -0
  112. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/run_agent.py +0 -0
  113. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/run_client.py +0 -0
  114. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/run_service.py +0 -0
  115. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/schema/__init__.py +0 -0
  116. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/schema/models.py +0 -0
  117. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/schema/schema.py +0 -0
  118. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/schema/task_data.py +0 -0
  119. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/service/__init__.py +0 -0
  120. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/service/exception_handlers.py +0 -0
  121. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/service/factory.py +0 -0
  122. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/service/handler.py +0 -0
  123. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/service/middleware.py +0 -0
  124. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/service/routes.py +0 -0
  125. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/service/types.py +0 -0
  126. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/langgraph_agent_toolkit/service/utils.py +0 -0
  127. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/scripts/postgres-init/create_databases.sql +0 -0
  128. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/scripts/python/01-invoke-proxy.py +0 -0
  129. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/scripts/python/02-test-local-pm.py +0 -0
  130. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/scripts/python/03-test-langfuse-pm.py +0 -0
  131. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/scripts/python/04-test-langsmith-pm.py +0 -0
  132. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/scripts/python/05-test-prompt-types.py +0 -0
  133. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/scripts/python/06-test-custom-chat-prompt-template.py +0 -0
  134. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/scripts/python/07-test-get-chat-history.py +0 -0
  135. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/scripts/python/08-test-update-chat-history.py +0 -0
  136. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/scripts/python/09-test-clear-chat-history.py +0 -0
  137. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/tests/agents/test_agent_executor.py +0 -0
  138. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/tests/agents/test_service_streaming.py +0 -0
  139. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/tests/app/conftest.py +0 -0
  140. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/tests/client/conftest.py +0 -0
  141. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/tests/client/test_client.py +0 -0
  142. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/tests/conftest.py +0 -0
  143. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/tests/core/test_llm.py +0 -0
  144. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/tests/core/test_memory.py +0 -0
  145. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/tests/core/test_observability.py +0 -0
  146. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/tests/core/test_prompts.py +0 -0
  147. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/tests/core/test_settings.py +0 -0
  148. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/tests/integration/test_docker_e2e.py +0 -0
  149. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/tests/service/conftest.py +0 -0
  150. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/tests/service/test_auth.py +0 -0
  151. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/tests/service/test_factory.py +0 -0
  152. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/tests/service/test_service.py +0 -0
  153. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/tests/service/test_service_e2e.py +0 -0
  154. {langgraph_agent_toolkit-0.4.1 → langgraph_agent_toolkit-0.4.2}/tests/service/test_utils.py +0 -0
@@ -6,6 +6,15 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to
7
7
  [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
8
8
 
9
+ ## [0.4.2]
10
+
11
+ ### Fixed
12
+
13
+ - Streaming bug
14
+ - Steamlit welcom message display
15
+ - Client handling error
16
+ - Package dependencies
17
+
9
18
  ## [0.4.1]
10
19
 
11
20
  ### Updated
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: langgraph-agent-toolkit
3
- Version: 0.4.1
3
+ Version: 0.4.2
4
4
  Summary: Full toolkit for running an AI agent service built with LangGraph, FastAPI and Streamlit
5
5
  Project-URL: documentation, https://kryvokhyzha.github.io/langgraph-agent-toolkit
6
6
  Project-URL: repository, https://github.com/kryvokhyzha/langgraph-agent-toolkit
@@ -106,13 +106,13 @@ Description-Content-Type: text/markdown
106
106
 
107
107
  ---
108
108
 
109
- # 🧰 Langgraph Agent Toolkit
109
+ # 🧰 LangGraph Agent Toolkit
110
110
 
111
- | | |
112
- | ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
113
- | CI/Testing | [![build status](https://github.com/kryvokhyzha/langgraph-agent-toolkit/actions/workflows/test.yml/badge.svg)](https://github.com/kryvokhyzha/langgraph-agent-toolkit/actions/workflows/test.yml) [![docs status](https://github.com/kryvokhyzha/langgraph-agent-toolkit/actions/workflows/sphinx.yml/badge.svg)](https://github.com/kryvokhyzha/langgraph-agent-toolkit/actions/workflows/sphinx.yml) [![codecov](https://codecov.io/gh/kryvokhyzha/langgraph-agent-toolkit/graph/badge.svg?token=OHSACTNSWZ)](https://codecov.io/gh/kryvokhyzha/langgraph-agent-toolkit) |
114
- | Package | [![GitHub release](https://img.shields.io/github/v/release/kryvokhyzha/langgraph-agent-toolkit)](https://github.com/kryvokhyzha/langgraph-agent-toolkit/releases) [![PyPI version](https://img.shields.io/pypi/v/langgraph-agent-toolkit.svg)](https://pypi.org/project/langgraph-agent-toolkit/) [![PyPI Downloads](https://img.shields.io/pypi/dm/langgraph-agent-toolkit.svg)](https://pypi.org/project/langgraph-agent-toolkit/) [![Python Version](https://img.shields.io/python/required-version-toml?tomlFilePath=https%3A%2F%2Fraw.githubusercontent.com%2Fkryvokhyzha%2Flanggraph-agent-toolkit%2Frefs%2Fheads%2Fmain%2Fpyproject.toml)](https://github.com/kryvokhyzha/langgraph-agent-toolkit/blob/main/pyproject.toml) |
115
- | Meta | [![Code style: ruff](https://img.shields.io/badge/code%20style-ruff-000000.svg)](https://github.com/astral-sh/ruff) [![GitHub License](https://img.shields.io/github/license/kryvokhyzha/langgraph-agent-toolkit)](https://github.com/kryvokhyzha/langgraph-agent-toolkit/blob/main/LICENSE) |
111
+ | | |
112
+ | ---------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
113
+ | CI/Testing | [![build status](https://github.com/kryvokhyzha/langgraph-agent-toolkit/actions/workflows/test.yml/badge.svg)](https://github.com/kryvokhyzha/langgraph-agent-toolkit/actions/workflows/test.yml) [![docs status](https://github.com/kryvokhyzha/langgraph-agent-toolkit/actions/workflows/sphinx.yml/badge.svg)](https://github.com/kryvokhyzha/langgraph-agent-toolkit/actions/workflows/sphinx.yml) [![codecov](https://codecov.io/gh/kryvokhyzha/langgraph-agent-toolkit/graph/badge.svg?token=OHSACTNSWZ)](https://codecov.io/gh/kryvokhyzha/langgraph-agent-toolkit) |
114
+ | Package | [![PyPI version](https://img.shields.io/pypi/v/langgraph-agent-toolkit.svg)](https://pypi.org/project/langgraph-agent-toolkit/) [![PyPI Downloads](https://img.shields.io/pypi/dm/langgraph-agent-toolkit.svg)](https://pypi.org/project/langgraph-agent-toolkit/) [![Python Version](https://img.shields.io/python/required-version-toml?tomlFilePath=https%3A%2F%2Fraw.githubusercontent.com%2Fkryvokhyzha%2Flanggraph-agent-toolkit%2Frefs%2Fheads%2Fmain%2Fpyproject.toml)](https://github.com/kryvokhyzha/langgraph-agent-toolkit/blob/main/pyproject.toml) |
115
+ | Meta | [![Code style: ruff](https://img.shields.io/badge/code%20style-ruff-000000.svg)](https://github.com/astral-sh/ruff) [![GitHub License](https://img.shields.io/github/license/kryvokhyzha/langgraph-agent-toolkit)](https://github.com/kryvokhyzha/langgraph-agent-toolkit/blob/main/LICENSE) |
116
116
 
117
117
  <!-- [![Streamlit App](https://static.streamlit.io/badges/streamlit_badge_black_red.svg)](https://langgraph-agent-toolkit.streamlit.app/) -->
118
118
 
@@ -123,7 +123,7 @@ LangGraph, FastAPI, and Streamlit. It provides a production-ready framework for
123
123
  creating conversational AI agents with features like multi-provider LLM support,
124
124
  streaming responses, observability, memory and prompt management.
125
125
 
126
- ### What is langgraph-agent-toolkit?
126
+ ### What is langGraph-agent-toolkit?
127
127
 
128
128
  The langgraph-agent-toolkit is a full-featured framework for developing and
129
129
  deploying AI agent services. Built on the foundation of:
@@ -4,13 +4,13 @@
4
4
 
5
5
  ---
6
6
 
7
- # 🧰 Langgraph Agent Toolkit
7
+ # 🧰 LangGraph Agent Toolkit
8
8
 
9
- | | |
10
- | ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
11
- | CI/Testing | [![build status](https://github.com/kryvokhyzha/langgraph-agent-toolkit/actions/workflows/test.yml/badge.svg)](https://github.com/kryvokhyzha/langgraph-agent-toolkit/actions/workflows/test.yml) [![docs status](https://github.com/kryvokhyzha/langgraph-agent-toolkit/actions/workflows/sphinx.yml/badge.svg)](https://github.com/kryvokhyzha/langgraph-agent-toolkit/actions/workflows/sphinx.yml) [![codecov](https://codecov.io/gh/kryvokhyzha/langgraph-agent-toolkit/graph/badge.svg?token=OHSACTNSWZ)](https://codecov.io/gh/kryvokhyzha/langgraph-agent-toolkit) |
12
- | Package | [![GitHub release](https://img.shields.io/github/v/release/kryvokhyzha/langgraph-agent-toolkit)](https://github.com/kryvokhyzha/langgraph-agent-toolkit/releases) [![PyPI version](https://img.shields.io/pypi/v/langgraph-agent-toolkit.svg)](https://pypi.org/project/langgraph-agent-toolkit/) [![PyPI Downloads](https://img.shields.io/pypi/dm/langgraph-agent-toolkit.svg)](https://pypi.org/project/langgraph-agent-toolkit/) [![Python Version](https://img.shields.io/python/required-version-toml?tomlFilePath=https%3A%2F%2Fraw.githubusercontent.com%2Fkryvokhyzha%2Flanggraph-agent-toolkit%2Frefs%2Fheads%2Fmain%2Fpyproject.toml)](https://github.com/kryvokhyzha/langgraph-agent-toolkit/blob/main/pyproject.toml) |
13
- | Meta | [![Code style: ruff](https://img.shields.io/badge/code%20style-ruff-000000.svg)](https://github.com/astral-sh/ruff) [![GitHub License](https://img.shields.io/github/license/kryvokhyzha/langgraph-agent-toolkit)](https://github.com/kryvokhyzha/langgraph-agent-toolkit/blob/main/LICENSE) |
9
+ | | |
10
+ | ---------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
11
+ | CI/Testing | [![build status](https://github.com/kryvokhyzha/langgraph-agent-toolkit/actions/workflows/test.yml/badge.svg)](https://github.com/kryvokhyzha/langgraph-agent-toolkit/actions/workflows/test.yml) [![docs status](https://github.com/kryvokhyzha/langgraph-agent-toolkit/actions/workflows/sphinx.yml/badge.svg)](https://github.com/kryvokhyzha/langgraph-agent-toolkit/actions/workflows/sphinx.yml) [![codecov](https://codecov.io/gh/kryvokhyzha/langgraph-agent-toolkit/graph/badge.svg?token=OHSACTNSWZ)](https://codecov.io/gh/kryvokhyzha/langgraph-agent-toolkit) |
12
+ | Package | [![PyPI version](https://img.shields.io/pypi/v/langgraph-agent-toolkit.svg)](https://pypi.org/project/langgraph-agent-toolkit/) [![PyPI Downloads](https://img.shields.io/pypi/dm/langgraph-agent-toolkit.svg)](https://pypi.org/project/langgraph-agent-toolkit/) [![Python Version](https://img.shields.io/python/required-version-toml?tomlFilePath=https%3A%2F%2Fraw.githubusercontent.com%2Fkryvokhyzha%2Flanggraph-agent-toolkit%2Frefs%2Fheads%2Fmain%2Fpyproject.toml)](https://github.com/kryvokhyzha/langgraph-agent-toolkit/blob/main/pyproject.toml) |
13
+ | Meta | [![Code style: ruff](https://img.shields.io/badge/code%20style-ruff-000000.svg)](https://github.com/astral-sh/ruff) [![GitHub License](https://img.shields.io/github/license/kryvokhyzha/langgraph-agent-toolkit)](https://github.com/kryvokhyzha/langgraph-agent-toolkit/blob/main/LICENSE) |
14
14
 
15
15
  <!-- [![Streamlit App](https://static.streamlit.io/badges/streamlit_badge_black_red.svg)](https://langgraph-agent-toolkit.streamlit.app/) -->
16
16
 
@@ -21,7 +21,7 @@ LangGraph, FastAPI, and Streamlit. It provides a production-ready framework for
21
21
  creating conversational AI agents with features like multi-provider LLM support,
22
22
  streaming responses, observability, memory and prompt management.
23
23
 
24
- ### What is langgraph-agent-toolkit?
24
+ ### What is langGraph-agent-toolkit?
25
25
 
26
26
  The langgraph-agent-toolkit is a full-featured framework for developing and
27
27
  deploying AI agent services. Built on the foundation of:
@@ -6,10 +6,10 @@ ENV UV_PROJECT_ENVIRONMENT="/usr/local/"
6
6
  ENV UV_COMPILE_BYTECODE=1
7
7
  ENV PYTHONPATH="/app"
8
8
 
9
- COPY pyproject.toml .
10
- COPY uv.lock .
9
+ COPY pyproject.toml uv.lock ./
10
+
11
11
  RUN pip install --no-cache-dir uv
12
- RUN uv sync --frozen --only-group client \
12
+ RUN uv sync --frozen --no-install-project --only-group client \
13
13
  && rm -rf /root/.cache
14
14
 
15
15
  COPY langgraph_agent_toolkit/ ./langgraph_agent_toolkit/
@@ -387,8 +387,7 @@ class AgentExecutor:
387
387
  new_messages.append(AIMessage(content=interrupt.value))
388
388
  continue
389
389
 
390
- updates = updates or {}
391
- update_messages = updates.get("messages", [])
390
+ update_messages = (updates or {}).get("messages", [])
392
391
 
393
392
  # Special case for supervisor agent
394
393
  if node == "supervisor":
@@ -430,9 +429,9 @@ class AgentExecutor:
430
429
  # More info at: https://langchain-ai.github.io/langgraph/cloud/how-tos/stream_messages/
431
430
  processed_messages = []
432
431
  current_message: dict[str, Any] = {}
433
- for message in new_messages:
434
- if isinstance(message, tuple):
435
- key, value = message
432
+ for msg in new_messages:
433
+ if isinstance(msg, tuple):
434
+ key, value = msg
436
435
  # Store parts in temporary dict
437
436
  current_message[key] = value
438
437
  else:
@@ -440,18 +439,18 @@ class AgentExecutor:
440
439
  if current_message:
441
440
  processed_messages.append(create_ai_message(current_message))
442
441
  current_message = {}
443
- processed_messages.append(message)
442
+ processed_messages.append(msg)
444
443
 
445
444
  # Add any remaining message parts
446
445
  if current_message:
447
446
  processed_messages.append(create_ai_message(current_message))
448
447
 
449
- for message in processed_messages:
448
+ for msg in new_messages:
450
449
  try:
451
450
  chat_message = langchain_to_chat_message(msg)
452
451
  chat_message.run_id = str(run_id)
453
452
  # Skip the input message if it's repeated by LangGraph
454
- if chat_message.type == "human" and chat_message.content == message:
453
+ if chat_message.type == "human" and chat_message.content == msg:
455
454
  continue
456
455
  yield chat_message
457
456
  except Exception as e:
@@ -370,10 +370,14 @@ class AgentClient:
370
370
  response.raise_for_status()
371
371
  async for line in response.aiter_lines():
372
372
  if line.strip():
373
- parsed = self._parse_stream_line(line)
374
- if parsed is None:
373
+ try:
374
+ parsed = self._parse_stream_line(line)
375
+ if parsed is None:
376
+ break
377
+ yield parsed
378
+ except GeneratorExit:
379
+ # Handle GeneratorExit properly to close the stream gracefully
375
380
  break
376
- yield parsed
377
381
  except httpx.HTTPError as e:
378
382
  raise AgentClientError(f"Error: {e}")
379
383
 
@@ -59,8 +59,6 @@ class PostgresMemoryBackend(BaseMemoryBackend):
59
59
  The object created by the factory_func
60
60
 
61
61
  """
62
- conn_string = self.get_connection_string()
63
-
64
62
  logger.info(
65
63
  f"Creating PostgreSQL connection pool: min_size={settings.POSTGRES_MIN_SIZE}, "
66
64
  f"max_size={settings.POSTGRES_POOL_SIZE}, max_idle={settings.POSTGRES_MAX_IDLE}"
@@ -68,7 +66,7 @@ class PostgresMemoryBackend(BaseMemoryBackend):
68
66
 
69
67
  # Use AsyncConnectionPool as an async context manager
70
68
  async with AsyncConnectionPool(
71
- conn_string,
69
+ self.get_connection_string(),
72
70
  min_size=settings.POSTGRES_MIN_SIZE,
73
71
  max_size=settings.POSTGRES_POOL_SIZE,
74
72
  max_idle=settings.POSTGRES_MAX_IDLE,
@@ -75,6 +75,19 @@ async def main() -> None:
75
75
  if not thread_id:
76
76
  thread_id = str(uuid.uuid4())
77
77
  messages = []
78
+ # Add welcome message to messages when creating a new thread
79
+ welcome_message = None
80
+ match agent_client.agent:
81
+ case "chatbot":
82
+ welcome_content = "Hello! I'm a simple chatbot. Ask me anything!"
83
+ case "interrupt-agent":
84
+ welcome_content = (
85
+ "Hello! I'm an interrupt agent. Tell me your birthday and I will predict your personality!"
86
+ )
87
+ case _:
88
+ welcome_content = "Hello! I'm an AI agent. Ask me anything!"
89
+ welcome_message = ChatMessage(type="ai", content=welcome_content)
90
+ messages.append(welcome_message)
78
91
  else:
79
92
  try:
80
93
  messages: List[ChatMessage] = agent_client.get_history(
@@ -155,17 +168,6 @@ async def main() -> None:
155
168
  # Draw existing messages
156
169
  messages: list[ChatMessage] = st.session_state.messages
157
170
 
158
- if len(messages) == 0:
159
- match agent_client.agent:
160
- case "chatbot":
161
- WELCOME = "Hello! I'm a simple chatbot. Ask me anything!"
162
- case "interrupt-agent":
163
- WELCOME = "Hello! I'm an interrupt agent. Tell me your birthday and I will predict your personality!"
164
- case _:
165
- WELCOME = "Hello! I'm an AI agent. Ask me anything!"
166
- with st.chat_message("assistant"):
167
- st.write(WELCOME)
168
-
169
171
  # draw_messages() expects an async iterator over messages
170
172
  async def amessage_iter() -> AsyncGenerator[ChatMessage, None]:
171
173
  for m in messages:
@@ -198,7 +200,7 @@ async def main() -> None:
198
200
  st.error(f"Error generating response: {e}")
199
201
  st.stop()
200
202
 
201
- # If messages have been generated, show feedback widget
203
+ # If messages have been generated, show feedback widget only for AI messages
202
204
  if len(messages) > 0 and st.session_state.last_message:
203
205
  with st.session_state.last_message:
204
206
  await handle_feedback()
@@ -248,6 +250,7 @@ async def draw_messages(
248
250
  streaming_content += msg
249
251
  streaming_placeholder.write(streaming_content)
250
252
  continue
253
+
251
254
  if not isinstance(msg, ChatMessage):
252
255
  st.error(f"Unexpected message type: {type(msg)}")
253
256
  st.write(msg)
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "langgraph-agent-toolkit"
7
- version = "0.4.1"
7
+ version = "0.4.2"
8
8
  description = "Full toolkit for running an AI agent service built with LangGraph, FastAPI and Streamlit"
9
9
  readme = "README.md"
10
10
  authors = [{ name = "Roman Kryvokhyzha", email = "kriwohizha@gmail.com" }, { name = "Joshua Carroll", email = "carroll.joshk@gmail.com" }]
@@ -15,7 +15,14 @@ class MockUUID:
15
15
  return "test session id"
16
16
 
17
17
 
18
- def test_app_simple_non_streaming(mock_agent_client):
18
+ # Add a fixture to patch st.feedback to avoid issues with the feedback component
19
+ @pytest.fixture
20
+ def patch_feedback():
21
+ with patch("streamlit.feedback", return_value=None) as mock_feedback:
22
+ yield mock_feedback
23
+
24
+
25
+ def test_app_simple_non_streaming(mock_agent_client, patch_feedback):
19
26
  """Test the full app - happy path."""
20
27
  at = AppTest.from_file("../../langgraph_agent_toolkit/streamlit_app.py").run()
21
28
 
@@ -32,15 +39,16 @@ def test_app_simple_non_streaming(mock_agent_client):
32
39
 
33
40
  at.sidebar.toggle[0].set_value(False) # Use Streaming = False
34
41
  at.chat_input[0].set_value(PROMPT).run()
35
- print(at)
36
- assert at.chat_message[0].avatar == "user"
37
- assert at.chat_message[0].markdown[0].value == PROMPT
38
- assert at.chat_message[1].avatar == "assistant"
39
- assert at.chat_message[1].markdown[0].value == RESPONSE
42
+
43
+ # Fix indices - welcome message is at index 0, user message at index 1, response at index 2
44
+ assert at.chat_message[1].avatar == "user"
45
+ assert at.chat_message[1].markdown[0].value == PROMPT
46
+ assert at.chat_message[2].avatar == "assistant"
47
+ assert at.chat_message[2].markdown[0].value == RESPONSE
40
48
  assert not at.exception
41
49
 
42
50
 
43
- def test_app_settings(mock_agent_client):
51
+ def test_app_settings(mock_agent_client, patch_feedback):
44
52
  """Test the full app - happy path."""
45
53
  at = AppTest.from_file("../../langgraph_agent_toolkit/streamlit_app.py").run()
46
54
 
@@ -64,11 +72,11 @@ def test_app_settings(mock_agent_client):
64
72
  at.sidebar.selectbox[0].set_value("chatbot")
65
73
  at.chat_input[0].set_value(PROMPT).run()
66
74
 
67
- # Basic checks
68
- assert at.chat_message[0].avatar == "user"
69
- assert at.chat_message[0].markdown[0].value == PROMPT
70
- assert at.chat_message[1].avatar == "assistant"
71
- assert at.chat_message[1].markdown[0].value == RESPONSE
75
+ # Basic checks - adjusted for welcome message at index 0
76
+ assert at.chat_message[1].avatar == "user"
77
+ assert at.chat_message[1].markdown[0].value == PROMPT
78
+ assert at.chat_message[2].avatar == "assistant"
79
+ assert at.chat_message[2].markdown[0].value == RESPONSE
72
80
 
73
81
  # Check the args match the settings
74
82
  assert mock_agent_client.agent == "chatbot"
@@ -107,7 +115,7 @@ def test_app_thread_id_history(mock_handle_feedback, mock_draw_messages, mock_ag
107
115
 
108
116
 
109
117
  @pytest.mark.asyncio
110
- async def test_app_streaming(mock_agent_client):
118
+ async def test_app_streaming(mock_agent_client, patch_feedback):
111
119
  """Test the app with streaming enabled - including tool messages."""
112
120
  at = AppTest.from_file("../../langgraph_agent_toolkit/streamlit_app.py").run()
113
121
 
@@ -131,11 +139,11 @@ async def test_app_streaming(mock_agent_client):
131
139
 
132
140
  at.toggle[0].set_value(True) # Use Streaming = True
133
141
  at.chat_input[0].set_value(PROMPT).run()
134
- print(at)
135
142
 
136
- assert at.chat_message[0].avatar == "user"
137
- assert at.chat_message[0].markdown[0].value == PROMPT
138
- response = at.chat_message[1]
143
+ # Fix indices - welcome message is at index 0, user message at index 1, response at index 2
144
+ assert at.chat_message[1].avatar == "user"
145
+ assert at.chat_message[1].markdown[0].value == PROMPT
146
+ response = at.chat_message[2]
139
147
  tool_status = response.status[0]
140
148
  assert response.avatar == "assistant"
141
149
  assert tool_status.label == "Tool Call: calculator"
@@ -149,7 +157,7 @@ async def test_app_streaming(mock_agent_client):
149
157
 
150
158
 
151
159
  @pytest.mark.asyncio
152
- async def test_app_init_error(mock_agent_client):
160
+ async def test_app_init_error(mock_agent_client, patch_feedback):
153
161
  """Test the app with an error in the agent initialization."""
154
162
  at = AppTest.from_file("../../langgraph_agent_toolkit/streamlit_app.py").run()
155
163
 
@@ -159,7 +167,6 @@ async def test_app_init_error(mock_agent_client):
159
167
 
160
168
  at.toggle[0].set_value(True) # Use Streaming = True
161
169
  at.chat_input[0].set_value(PROMPT).run()
162
- print(at)
163
170
 
164
171
  assert at.chat_message[0].avatar == "assistant"
165
172
  assert at.chat_message[1].avatar == "user"
@@ -168,7 +175,7 @@ async def test_app_init_error(mock_agent_client):
168
175
  assert not at.exception
169
176
 
170
177
 
171
- def test_app_new_chat_btn(mock_agent_client):
178
+ def test_app_new_chat_btn(mock_agent_client, patch_feedback):
172
179
  at = AppTest.from_file("../../langgraph_agent_toolkit/streamlit_app.py").run()
173
180
  thread_id_a = at.session_state.thread_id
174
181