synapsekit 1.2.0__tar.gz → 1.4.0__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 (325) hide show
  1. {synapsekit-1.2.0 → synapsekit-1.4.0}/.all-contributorsrc +7 -0
  2. {synapsekit-1.2.0 → synapsekit-1.4.0}/.github/workflows/welcome.yml +20 -8
  3. {synapsekit-1.2.0 → synapsekit-1.4.0}/.gitignore +1 -0
  4. {synapsekit-1.2.0 → synapsekit-1.4.0}/CHANGELOG.md +22 -0
  5. {synapsekit-1.2.0 → synapsekit-1.4.0}/PKG-INFO +26 -5
  6. {synapsekit-1.2.0 → synapsekit-1.4.0}/README.md +5 -4
  7. {synapsekit-1.2.0 → synapsekit-1.4.0}/pyproject.toml +16 -2
  8. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/__init__.py +56 -1
  9. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/agents/__init__.py +33 -0
  10. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/agents/function_calling.py +91 -0
  11. synapsekit-1.4.0/src/synapsekit/agents/pii_redactor.py +103 -0
  12. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/agents/react.py +69 -0
  13. synapsekit-1.4.0/src/synapsekit/agents/step_events.py +61 -0
  14. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/agents/tools/__init__.py +12 -0
  15. synapsekit-1.4.0/src/synapsekit/agents/tools/api_builder.py +321 -0
  16. synapsekit-1.4.0/src/synapsekit/agents/tools/aws_lambda.py +146 -0
  17. synapsekit-1.4.0/src/synapsekit/agents/tools/google_calendar.py +189 -0
  18. synapsekit-1.4.0/src/synapsekit/agents/tools/image_analysis.py +90 -0
  19. synapsekit-1.4.0/src/synapsekit/agents/tools/speech_to_text.py +85 -0
  20. synapsekit-1.4.0/src/synapsekit/agents/tools/text_to_speech.py +110 -0
  21. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/cli/main.py +23 -0
  22. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/cli/test.py +64 -0
  23. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/evaluation/__init__.py +5 -0
  24. synapsekit-1.4.0/src/synapsekit/evaluation/regression.py +154 -0
  25. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/llm/__init__.py +22 -0
  26. synapsekit-1.4.0/src/synapsekit/llm/ai21.py +80 -0
  27. synapsekit-1.4.0/src/synapsekit/llm/cloudflare.py +94 -0
  28. synapsekit-1.4.0/src/synapsekit/llm/cost_router.py +166 -0
  29. synapsekit-1.4.0/src/synapsekit/llm/databricks.py +95 -0
  30. synapsekit-1.4.0/src/synapsekit/llm/ernie.py +114 -0
  31. synapsekit-1.4.0/src/synapsekit/llm/fallback_chain.py +86 -0
  32. synapsekit-1.4.0/src/synapsekit/llm/llamacpp.py +111 -0
  33. synapsekit-1.4.0/src/synapsekit/llm/moonshot.py +89 -0
  34. synapsekit-1.4.0/src/synapsekit/llm/zhipu.py +89 -0
  35. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/loaders/__init__.py +4 -0
  36. synapsekit-1.4.0/src/synapsekit/loaders/audio.py +103 -0
  37. synapsekit-1.4.0/src/synapsekit/loaders/video.py +140 -0
  38. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/observability/__init__.py +3 -0
  39. synapsekit-1.4.0/src/synapsekit/observability/audit_log.py +262 -0
  40. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/rag/facade.py +47 -2
  41. synapsekit-1.4.0/tests/agents/test_api_builder_tool.py +398 -0
  42. synapsekit-1.4.0/tests/agents/test_aws_lambda_tool.py +321 -0
  43. synapsekit-1.4.0/tests/agents/test_google_calendar_tool.py +326 -0
  44. synapsekit-1.4.0/tests/agents/test_pii_redactor.py +79 -0
  45. synapsekit-1.4.0/tests/agents/test_streaming_steps.py +196 -0
  46. {synapsekit-1.2.0 → synapsekit-1.4.0}/tests/agents/test_tools.py +124 -0
  47. synapsekit-1.4.0/tests/llm/test_llamacpp.py +150 -0
  48. synapsekit-1.4.0/tests/llm/test_new_providers_185.py +394 -0
  49. synapsekit-1.4.0/tests/llm/test_providers.py +590 -0
  50. synapsekit-1.4.0/tests/loaders/test_audio_video_loaders.py +135 -0
  51. synapsekit-1.4.0/tests/observability/test_audit_log.py +101 -0
  52. {synapsekit-1.2.0 → synapsekit-1.4.0}/tests/test_v060_features.py +1 -1
  53. {synapsekit-1.2.0 → synapsekit-1.4.0}/tests/test_v065_features.py +1 -1
  54. {synapsekit-1.2.0 → synapsekit-1.4.0}/tests/test_v066_features.py +1 -1
  55. {synapsekit-1.2.0 → synapsekit-1.4.0}/tests/test_v068_features.py +1 -1
  56. {synapsekit-1.2.0 → synapsekit-1.4.0}/tests/test_v069_features.py +1 -1
  57. {synapsekit-1.2.0 → synapsekit-1.4.0}/tests/test_v070_features.py +1 -1
  58. {synapsekit-1.2.0 → synapsekit-1.4.0}/tests/test_v120_features.py +2 -2
  59. synapsekit-1.4.0/tests/test_v130_eval_regression.py +174 -0
  60. synapsekit-1.4.0/tests/test_v130_routing.py +218 -0
  61. {synapsekit-1.2.0 → synapsekit-1.4.0}/uv.lock +247 -5
  62. synapsekit-1.2.0/tests/llm/test_providers.py +0 -293
  63. {synapsekit-1.2.0 → synapsekit-1.4.0}/.github/DISCUSSION_TEMPLATE/ideas.yml +0 -0
  64. {synapsekit-1.2.0 → synapsekit-1.4.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  65. {synapsekit-1.2.0 → synapsekit-1.4.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  66. {synapsekit-1.2.0 → synapsekit-1.4.0}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  67. {synapsekit-1.2.0 → synapsekit-1.4.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  68. {synapsekit-1.2.0 → synapsekit-1.4.0}/.github/profile/README.md +0 -0
  69. {synapsekit-1.2.0 → synapsekit-1.4.0}/.github/workflows/ci.yml +0 -0
  70. {synapsekit-1.2.0 → synapsekit-1.4.0}/.github/workflows/publish.yml +0 -0
  71. {synapsekit-1.2.0 → synapsekit-1.4.0}/.pre-commit-config.yaml +0 -0
  72. {synapsekit-1.2.0 → synapsekit-1.4.0}/CODE_OF_CONDUCT.md +0 -0
  73. {synapsekit-1.2.0 → synapsekit-1.4.0}/CONTRIBUTING.md +0 -0
  74. {synapsekit-1.2.0 → synapsekit-1.4.0}/LICENSE +0 -0
  75. {synapsekit-1.2.0 → synapsekit-1.4.0}/Makefile +0 -0
  76. {synapsekit-1.2.0 → synapsekit-1.4.0}/SECURITY.md +0 -0
  77. {synapsekit-1.2.0 → synapsekit-1.4.0}/assets/banner.svg +0 -0
  78. {synapsekit-1.2.0 → synapsekit-1.4.0}/assets/favicon.svg +0 -0
  79. {synapsekit-1.2.0 → synapsekit-1.4.0}/assets/logo.svg +0 -0
  80. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/_api.py +0 -0
  81. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/_compat.py +0 -0
  82. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/a2a/__init__.py +0 -0
  83. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/a2a/agent_card.py +0 -0
  84. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/a2a/client.py +0 -0
  85. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/a2a/server.py +0 -0
  86. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/a2a/types.py +0 -0
  87. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/agents/base.py +0 -0
  88. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/agents/executor.py +0 -0
  89. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/agents/guardrails.py +0 -0
  90. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/agents/memory.py +0 -0
  91. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/agents/multi/__init__.py +0 -0
  92. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/agents/multi/crew.py +0 -0
  93. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/agents/multi/handoff.py +0 -0
  94. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/agents/multi/supervisor.py +0 -0
  95. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/agents/registry.py +0 -0
  96. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/agents/tool_decorator.py +0 -0
  97. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/agents/tools/arxiv_search.py +0 -0
  98. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/agents/tools/brave_search.py +0 -0
  99. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/agents/tools/calculator.py +0 -0
  100. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/agents/tools/datetime_tool.py +0 -0
  101. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/agents/tools/duck_search.py +0 -0
  102. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/agents/tools/email_tool.py +0 -0
  103. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/agents/tools/file_list.py +0 -0
  104. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/agents/tools/file_read.py +0 -0
  105. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/agents/tools/file_write.py +0 -0
  106. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/agents/tools/github_api.py +0 -0
  107. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/agents/tools/graphql.py +0 -0
  108. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/agents/tools/http_request.py +0 -0
  109. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/agents/tools/human_input.py +0 -0
  110. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/agents/tools/jira.py +0 -0
  111. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/agents/tools/json_query.py +0 -0
  112. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/agents/tools/pdf_reader.py +0 -0
  113. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/agents/tools/pubmed_search.py +0 -0
  114. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/agents/tools/python_repl.py +0 -0
  115. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/agents/tools/regex_tool.py +0 -0
  116. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/agents/tools/sentiment.py +0 -0
  117. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/agents/tools/shell.py +0 -0
  118. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/agents/tools/slack.py +0 -0
  119. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/agents/tools/sql_query.py +0 -0
  120. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/agents/tools/sql_schema.py +0 -0
  121. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/agents/tools/summarization.py +0 -0
  122. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/agents/tools/tavily_search.py +0 -0
  123. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/agents/tools/translation.py +0 -0
  124. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/agents/tools/vector_search.py +0 -0
  125. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/agents/tools/web_scraper.py +0 -0
  126. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/agents/tools/web_search.py +0 -0
  127. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/agents/tools/wikipedia.py +0 -0
  128. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/agents/tools/youtube_search.py +0 -0
  129. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/cli/__init__.py +0 -0
  130. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/cli/serve.py +0 -0
  131. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/embeddings/__init__.py +0 -0
  132. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/embeddings/backend.py +0 -0
  133. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/evaluation/base.py +0 -0
  134. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/evaluation/decorators.py +0 -0
  135. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/evaluation/faithfulness.py +0 -0
  136. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/evaluation/groundedness.py +0 -0
  137. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/evaluation/pipeline.py +0 -0
  138. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/evaluation/relevancy.py +0 -0
  139. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/graph/__init__.py +0 -0
  140. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/graph/approval.py +0 -0
  141. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/graph/checkpointers/__init__.py +0 -0
  142. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/graph/checkpointers/base.py +0 -0
  143. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/graph/checkpointers/json_file.py +0 -0
  144. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/graph/checkpointers/memory.py +0 -0
  145. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/graph/checkpointers/postgres.py +0 -0
  146. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/graph/checkpointers/redis.py +0 -0
  147. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/graph/checkpointers/sqlite.py +0 -0
  148. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/graph/compiled.py +0 -0
  149. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/graph/dynamic_route.py +0 -0
  150. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/graph/edge.py +0 -0
  151. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/graph/errors.py +0 -0
  152. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/graph/fan_out.py +0 -0
  153. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/graph/graph.py +0 -0
  154. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/graph/interrupt.py +0 -0
  155. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/graph/mermaid.py +0 -0
  156. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/graph/node.py +0 -0
  157. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/graph/state.py +0 -0
  158. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/graph/streaming.py +0 -0
  159. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/graph/subgraph.py +0 -0
  160. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/graph/trace.py +0 -0
  161. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/graph/visualization.py +0 -0
  162. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/llm/_cache.py +0 -0
  163. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/llm/_filesystem_cache.py +0 -0
  164. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/llm/_rate_limit.py +0 -0
  165. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/llm/_redis_cache.py +0 -0
  166. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/llm/_retry.py +0 -0
  167. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/llm/_semantic_cache.py +0 -0
  168. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/llm/_sqlite_cache.py +0 -0
  169. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/llm/anthropic.py +0 -0
  170. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/llm/azure_openai.py +0 -0
  171. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/llm/base.py +0 -0
  172. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/llm/bedrock.py +0 -0
  173. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/llm/cerebras.py +0 -0
  174. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/llm/cohere.py +0 -0
  175. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/llm/deepseek.py +0 -0
  176. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/llm/fireworks.py +0 -0
  177. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/llm/gemini.py +0 -0
  178. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/llm/groq.py +0 -0
  179. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/llm/mistral.py +0 -0
  180. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/llm/multimodal.py +0 -0
  181. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/llm/ollama.py +0 -0
  182. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/llm/openai.py +0 -0
  183. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/llm/openrouter.py +0 -0
  184. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/llm/perplexity.py +0 -0
  185. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/llm/structured.py +0 -0
  186. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/llm/together.py +0 -0
  187. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/llm/vertex_ai.py +0 -0
  188. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/loaders/base.py +0 -0
  189. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/loaders/csv.py +0 -0
  190. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/loaders/directory.py +0 -0
  191. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/loaders/docx.py +0 -0
  192. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/loaders/excel.py +0 -0
  193. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/loaders/html.py +0 -0
  194. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/loaders/image.py +0 -0
  195. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/loaders/json_loader.py +0 -0
  196. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/loaders/markdown.py +0 -0
  197. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/loaders/pdf.py +0 -0
  198. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/loaders/pptx.py +0 -0
  199. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/loaders/text.py +0 -0
  200. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/loaders/web.py +0 -0
  201. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/mcp/__init__.py +0 -0
  202. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/mcp/client.py +0 -0
  203. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/mcp/server.py +0 -0
  204. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/memory/__init__.py +0 -0
  205. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/memory/buffer.py +0 -0
  206. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/memory/conversation.py +0 -0
  207. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/memory/entity.py +0 -0
  208. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/memory/hybrid.py +0 -0
  209. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/memory/redis.py +0 -0
  210. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/memory/sqlite.py +0 -0
  211. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/memory/summary_buffer.py +0 -0
  212. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/memory/token_buffer.py +0 -0
  213. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/observability/budget_guard.py +0 -0
  214. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/observability/cost_tracker.py +0 -0
  215. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/observability/distributed.py +0 -0
  216. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/observability/otel.py +0 -0
  217. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/observability/tracer.py +0 -0
  218. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/observability/ui.py +0 -0
  219. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/parsers/__init__.py +0 -0
  220. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/parsers/json_parser.py +0 -0
  221. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/parsers/list_parser.py +0 -0
  222. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/parsers/pydantic_parser.py +0 -0
  223. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/plugins.py +0 -0
  224. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/prompts/__init__.py +0 -0
  225. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/prompts/hub.py +0 -0
  226. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/prompts/template.py +0 -0
  227. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/py.typed +0 -0
  228. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/rag/__init__.py +0 -0
  229. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/rag/pipeline.py +0 -0
  230. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/retrieval/__init__.py +0 -0
  231. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/retrieval/adaptive.py +0 -0
  232. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/retrieval/base.py +0 -0
  233. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/retrieval/chroma.py +0 -0
  234. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/retrieval/cohere_reranker.py +0 -0
  235. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/retrieval/contextual.py +0 -0
  236. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/retrieval/contextual_compression.py +0 -0
  237. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/retrieval/crag.py +0 -0
  238. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/retrieval/cross_encoder.py +0 -0
  239. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/retrieval/ensemble.py +0 -0
  240. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/retrieval/faiss.py +0 -0
  241. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/retrieval/flare.py +0 -0
  242. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/retrieval/graphrag.py +0 -0
  243. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/retrieval/hybrid_search.py +0 -0
  244. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/retrieval/hyde.py +0 -0
  245. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/retrieval/multi_step.py +0 -0
  246. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/retrieval/parent_document.py +0 -0
  247. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/retrieval/pinecone.py +0 -0
  248. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/retrieval/qdrant.py +0 -0
  249. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/retrieval/query_decomposition.py +0 -0
  250. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/retrieval/rag_fusion.py +0 -0
  251. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/retrieval/retriever.py +0 -0
  252. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/retrieval/self_query.py +0 -0
  253. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/retrieval/self_rag.py +0 -0
  254. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/retrieval/sentence_window.py +0 -0
  255. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/retrieval/step_back.py +0 -0
  256. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/retrieval/vectorstore.py +0 -0
  257. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/text_splitters/__init__.py +0 -0
  258. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/text_splitters/base.py +0 -0
  259. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/text_splitters/character.py +0 -0
  260. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/text_splitters/markdown.py +0 -0
  261. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/text_splitters/recursive.py +0 -0
  262. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/text_splitters/semantic.py +0 -0
  263. {synapsekit-1.2.0 → synapsekit-1.4.0}/src/synapsekit/text_splitters/token.py +0 -0
  264. {synapsekit-1.2.0 → synapsekit-1.4.0}/tests/__init__.py +0 -0
  265. {synapsekit-1.2.0 → synapsekit-1.4.0}/tests/agents/__init__.py +0 -0
  266. {synapsekit-1.2.0 → synapsekit-1.4.0}/tests/agents/test_executor.py +0 -0
  267. {synapsekit-1.2.0 → synapsekit-1.4.0}/tests/agents/test_function_calling.py +0 -0
  268. {synapsekit-1.2.0 → synapsekit-1.4.0}/tests/agents/test_memory.py +0 -0
  269. {synapsekit-1.2.0 → synapsekit-1.4.0}/tests/agents/test_react.py +0 -0
  270. {synapsekit-1.2.0 → synapsekit-1.4.0}/tests/agents/test_shell_tool.py +0 -0
  271. {synapsekit-1.2.0 → synapsekit-1.4.0}/tests/agents/test_sql_schema.py +0 -0
  272. {synapsekit-1.2.0 → synapsekit-1.4.0}/tests/agents/test_tool_decorator.py +0 -0
  273. {synapsekit-1.2.0 → synapsekit-1.4.0}/tests/agents/test_web_scraper.py +0 -0
  274. {synapsekit-1.2.0 → synapsekit-1.4.0}/tests/conftest.py +0 -0
  275. {synapsekit-1.2.0 → synapsekit-1.4.0}/tests/graph/__init__.py +0 -0
  276. {synapsekit-1.2.0 → synapsekit-1.4.0}/tests/graph/test_build.py +0 -0
  277. {synapsekit-1.2.0 → synapsekit-1.4.0}/tests/graph/test_checkpointing.py +0 -0
  278. {synapsekit-1.2.0 → synapsekit-1.4.0}/tests/graph/test_cycles.py +0 -0
  279. {synapsekit-1.2.0 → synapsekit-1.4.0}/tests/graph/test_json_checkpointer.py +0 -0
  280. {synapsekit-1.2.0 → synapsekit-1.4.0}/tests/graph/test_mermaid.py +0 -0
  281. {synapsekit-1.2.0 → synapsekit-1.4.0}/tests/graph/test_run.py +0 -0
  282. {synapsekit-1.2.0 → synapsekit-1.4.0}/tests/graph/test_state.py +0 -0
  283. {synapsekit-1.2.0 → synapsekit-1.4.0}/tests/graph/test_stream.py +0 -0
  284. {synapsekit-1.2.0 → synapsekit-1.4.0}/tests/graph/test_visualization.py +0 -0
  285. {synapsekit-1.2.0 → synapsekit-1.4.0}/tests/llm/__init__.py +0 -0
  286. {synapsekit-1.2.0 → synapsekit-1.4.0}/tests/llm/test_cache_retry.py +0 -0
  287. {synapsekit-1.2.0 → synapsekit-1.4.0}/tests/llm/test_filesystem_cache.py +0 -0
  288. {synapsekit-1.2.0 → synapsekit-1.4.0}/tests/llm/test_function_calling_providers.py +0 -0
  289. {synapsekit-1.2.0 → synapsekit-1.4.0}/tests/llm/test_llm.py +0 -0
  290. {synapsekit-1.2.0 → synapsekit-1.4.0}/tests/llm/test_vertex_ai.py +0 -0
  291. {synapsekit-1.2.0 → synapsekit-1.4.0}/tests/loaders/__init__.py +0 -0
  292. {synapsekit-1.2.0 → synapsekit-1.4.0}/tests/loaders/test_docx_loader.py +0 -0
  293. {synapsekit-1.2.0 → synapsekit-1.4.0}/tests/loaders/test_loaders.py +0 -0
  294. {synapsekit-1.2.0 → synapsekit-1.4.0}/tests/loaders/test_markdown_loader.py +0 -0
  295. {synapsekit-1.2.0 → synapsekit-1.4.0}/tests/memory/__init__.py +0 -0
  296. {synapsekit-1.2.0 → synapsekit-1.4.0}/tests/memory/test_memory.py +0 -0
  297. {synapsekit-1.2.0 → synapsekit-1.4.0}/tests/memory/test_redis_memory.py +0 -0
  298. {synapsekit-1.2.0 → synapsekit-1.4.0}/tests/observability/__init__.py +0 -0
  299. {synapsekit-1.2.0 → synapsekit-1.4.0}/tests/observability/test_tracer.py +0 -0
  300. {synapsekit-1.2.0 → synapsekit-1.4.0}/tests/parsers/__init__.py +0 -0
  301. {synapsekit-1.2.0 → synapsekit-1.4.0}/tests/parsers/test_parsers.py +0 -0
  302. {synapsekit-1.2.0 → synapsekit-1.4.0}/tests/prompts/__init__.py +0 -0
  303. {synapsekit-1.2.0 → synapsekit-1.4.0}/tests/prompts/test_prompts.py +0 -0
  304. {synapsekit-1.2.0 → synapsekit-1.4.0}/tests/rag/__init__.py +0 -0
  305. {synapsekit-1.2.0 → synapsekit-1.4.0}/tests/rag/test_facade.py +0 -0
  306. {synapsekit-1.2.0 → synapsekit-1.4.0}/tests/rag/test_pipeline.py +0 -0
  307. {synapsekit-1.2.0 → synapsekit-1.4.0}/tests/retrieval/__init__.py +0 -0
  308. {synapsekit-1.2.0 → synapsekit-1.4.0}/tests/retrieval/test_backends.py +0 -0
  309. {synapsekit-1.2.0 → synapsekit-1.4.0}/tests/retrieval/test_graphrag.py +0 -0
  310. {synapsekit-1.2.0 → synapsekit-1.4.0}/tests/retrieval/test_hyde.py +0 -0
  311. {synapsekit-1.2.0 → synapsekit-1.4.0}/tests/retrieval/test_retriever.py +0 -0
  312. {synapsekit-1.2.0 → synapsekit-1.4.0}/tests/retrieval/test_vectorstore.py +0 -0
  313. {synapsekit-1.2.0 → synapsekit-1.4.0}/tests/test_v051_features.py +0 -0
  314. {synapsekit-1.2.0 → synapsekit-1.4.0}/tests/test_v052_features.py +0 -0
  315. {synapsekit-1.2.0 → synapsekit-1.4.0}/tests/test_v053_features.py +0 -0
  316. {synapsekit-1.2.0 → synapsekit-1.4.0}/tests/test_v061_features.py +0 -0
  317. {synapsekit-1.2.0 → synapsekit-1.4.0}/tests/test_v062_features.py +0 -0
  318. {synapsekit-1.2.0 → synapsekit-1.4.0}/tests/test_v063_features.py +0 -0
  319. {synapsekit-1.2.0 → synapsekit-1.4.0}/tests/test_v080_features.py +0 -0
  320. {synapsekit-1.2.0 → synapsekit-1.4.0}/tests/test_v090_features.py +0 -0
  321. {synapsekit-1.2.0 → synapsekit-1.4.0}/tests/test_v100_features.py +0 -0
  322. {synapsekit-1.2.0 → synapsekit-1.4.0}/tests/test_v120_integration.py +0 -0
  323. {synapsekit-1.2.0 → synapsekit-1.4.0}/tests/text_splitters/__init__.py +0 -0
  324. {synapsekit-1.2.0 → synapsekit-1.4.0}/tests/text_splitters/test_markdown.py +0 -0
  325. {synapsekit-1.2.0 → synapsekit-1.4.0}/tests/text_splitters/test_splitters.py +0 -0
@@ -42,6 +42,13 @@
42
42
  "avatar_url": "https://avatars.githubusercontent.com/u/64265396?v=4",
43
43
  "profile": "https://github.com/Arjunkundapur",
44
44
  "contributions": ["code"]
45
+ },
46
+ {
47
+ "login": "DhruvGarg111",
48
+ "name": "Dhruv Garg",
49
+ "avatar_url": "https://avatars.githubusercontent.com/u/136477030?v=4",
50
+ "profile": "https://github.com/DhruvGarg111",
51
+ "contributions": ["code"]
45
52
  }
46
53
  ],
47
54
  "contributorsPerLine": 7
@@ -32,14 +32,26 @@ jobs:
32
32
  if (authorType === 'Bot') return;
33
33
 
34
34
  // Check if this is their first issue/PR
35
- const endpoint = isIssue ? 'issues' : 'pulls';
36
- const { data: items } = await github.rest[endpoint === 'issues' ? 'issues' : 'pulls'].listForRepo({
37
- owner: context.repo.owner,
38
- repo: context.repo.repo,
39
- creator: author,
40
- state: 'all',
41
- per_page: 2,
42
- });
35
+ let items;
36
+ if (isIssue) {
37
+ const res = await github.rest.issues.listForRepo({
38
+ owner: context.repo.owner,
39
+ repo: context.repo.repo,
40
+ creator: author,
41
+ state: 'all',
42
+ per_page: 2,
43
+ });
44
+ items = res.data;
45
+ } else {
46
+ const res = await github.rest.pulls.list({
47
+ owner: context.repo.owner,
48
+ repo: context.repo.repo,
49
+ creator: author,
50
+ state: 'all',
51
+ per_page: 2,
52
+ });
53
+ items = res.data;
54
+ }
43
55
 
44
56
  if (items.length > 1) return;
45
57
 
@@ -70,3 +70,4 @@ docs/
70
70
  # Saved vectorstores
71
71
  *.npz
72
72
  typescript
73
+ .synapsekit_evals/
@@ -7,6 +7,28 @@ SynapseKit uses [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
8
  ---
9
9
 
10
+ ## [1.4.0] — 2026-03-25
11
+
12
+ ### Added
13
+
14
+ - **AI21 Labs provider** — `AI21LLM` for Jamba models (`jamba-1.5-mini`, `jamba-1.5-large`) with 256K context; streaming and native function calling; auto-detected from `jamba-*` model prefix
15
+ - **Databricks provider** — `DatabricksLLM` for Databricks Foundation Model APIs (DBRX, Llama 3.1, Mixtral); OpenAI-compatible endpoint; resolves workspace URL from `DATABRICKS_HOST`; auto-detected from `dbrx-*`/`databricks-*`
16
+ - **Baidu ERNIE provider** — `ErnieLLM` for ERNIE Bot (`ernie-4.0`, `ernie-3.5`, `ernie-speed`, `ernie-lite`, `ernie-tiny-8k`); native function calling; auto-detected from `ernie-*`
17
+ - **llama.cpp provider** — `LlamaCppLLM` for local GGUF models with no API key; queue+thread true streaming; GPU offload via `n_gpu_layers`; auto-detected from `llamacpp` provider string
18
+ - **ImageAnalysisTool** — analyze images with any multimodal LLM; accepts local file paths or public URLs; supports OpenAI and Anthropic message formats
19
+ - **TextToSpeechTool** — convert text to speech audio via OpenAI TTS; supports `alloy`, `echo`, `fable`, `onyx`, `nova`, `shimmer` voices and mp3/wav/flac/aac formats
20
+ - **SpeechToTextTool** — transcribe audio files via OpenAI Whisper API or local Whisper model; delegates to `AudioLoader`
21
+ - **APIBuilderTool** — build and execute API calls from OpenAPI specs or natural-language intent; LLM-assisted operation selection; supports inline specs, spec URLs, and explicit path/method
22
+ - **GoogleCalendarTool** — create, list, and delete Google Calendar events via Google Calendar API v3 with Application Default Credentials
23
+ - **AWSLambdaTool** — invoke AWS Lambda functions with RequestResponse/Event/DryRun invocation types; standard boto3 credential resolution
24
+ - 222 new tests (1327 total)
25
+
26
+ ### Changed
27
+
28
+ - `RAG` facade auto-detection extended with `moonshot-*`, `glm-*`, `jamba-*`, `@cf/*`, `@hf/*`, `dbrx-*`/`databricks-*`, `ernie-*` model prefixes
29
+
30
+ ---
31
+
10
32
  ## [1.0.0] — 2026-03-18
11
33
 
12
34
  ### Added
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: synapsekit
3
- Version: 1.2.0
3
+ Version: 1.4.0
4
4
  Summary: Async-native Python framework for building production-grade LLM applications. Streaming-first, 2 dependencies, fully transparent.
5
5
  Project-URL: Homepage, https://github.com/SynapseKit/SynapseKit
6
6
  Project-URL: Repository, https://github.com/SynapseKit/SynapseKit
@@ -21,18 +21,24 @@ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
21
21
  Requires-Python: >=3.10
22
22
  Requires-Dist: numpy>=1.26
23
23
  Requires-Dist: rank-bm25>=0.2.2
24
+ Provides-Extra: ai21
25
+ Requires-Dist: ai21>=2.0; extra == 'ai21'
24
26
  Provides-Extra: all
27
+ Requires-Dist: ai21>=2.0; extra == 'all'
25
28
  Requires-Dist: anthropic>=0.25; extra == 'all'
26
29
  Requires-Dist: beautifulsoup4>=4.12; extra == 'all'
27
30
  Requires-Dist: boto3>=1.34; extra == 'all'
28
31
  Requires-Dist: chromadb>=0.5; extra == 'all'
29
32
  Requires-Dist: cohere>=5.0; extra == 'all'
30
33
  Requires-Dist: duckduckgo-search>=6.0; extra == 'all'
34
+ Requires-Dist: erniebot>=0.5; extra == 'all'
31
35
  Requires-Dist: faiss-cpu>=1.7; extra == 'all'
32
36
  Requires-Dist: fastapi>=0.110; extra == 'all'
33
37
  Requires-Dist: google-cloud-aiplatform>=1.38; extra == 'all'
34
38
  Requires-Dist: google-generativeai>=0.7; extra == 'all'
39
+ Requires-Dist: groq>=0.9; extra == 'all'
35
40
  Requires-Dist: httpx>=0.27; extra == 'all'
41
+ Requires-Dist: llama-cpp-python>=0.2; extra == 'all'
36
42
  Requires-Dist: lxml>=5.0; extra == 'all'
37
43
  Requires-Dist: mcp>=1.0; extra == 'all'
38
44
  Requires-Dist: mistralai>=1.0; extra == 'all'
@@ -49,18 +55,28 @@ Requires-Dist: uvicorn[standard]>=0.29; extra == 'all'
49
55
  Requires-Dist: youtube-search-python>=1.6; extra == 'all'
50
56
  Provides-Extra: anthropic
51
57
  Requires-Dist: anthropic>=0.25; extra == 'anthropic'
58
+ Provides-Extra: audio
59
+ Requires-Dist: openai>=1.0; extra == 'audio'
60
+ Provides-Extra: aws-lambda
61
+ Requires-Dist: boto3>=1.34; extra == 'aws-lambda'
52
62
  Provides-Extra: bedrock
53
63
  Requires-Dist: boto3>=1.34; extra == 'bedrock'
54
64
  Provides-Extra: chroma
55
65
  Requires-Dist: chromadb>=0.5; extra == 'chroma'
66
+ Provides-Extra: cloudflare
67
+ Requires-Dist: httpx>=0.27; extra == 'cloudflare'
56
68
  Provides-Extra: cohere
57
69
  Requires-Dist: cohere>=5.0; extra == 'cohere'
58
70
  Provides-Extra: docx
59
71
  Requires-Dist: python-docx>=1.0; extra == 'docx'
72
+ Provides-Extra: ernie
73
+ Requires-Dist: erniebot>=0.5; extra == 'ernie'
60
74
  Provides-Extra: excel
61
75
  Requires-Dist: openpyxl>=3.1; extra == 'excel'
62
76
  Provides-Extra: faiss
63
77
  Requires-Dist: faiss-cpu>=1.7; extra == 'faiss'
78
+ Provides-Extra: gcal-tool
79
+ Requires-Dist: google-api-python-client>=2.0; extra == 'gcal-tool'
64
80
  Provides-Extra: gemini
65
81
  Requires-Dist: google-generativeai>=0.7; extra == 'gemini'
66
82
  Provides-Extra: groq
@@ -70,6 +86,8 @@ Requires-Dist: beautifulsoup4>=4.12; extra == 'html'
70
86
  Requires-Dist: lxml>=5.0; extra == 'html'
71
87
  Provides-Extra: http
72
88
  Requires-Dist: aiohttp>=3.9; extra == 'http'
89
+ Provides-Extra: llamacpp
90
+ Requires-Dist: llama-cpp-python>=0.2; extra == 'llamacpp'
73
91
  Provides-Extra: mcp
74
92
  Requires-Dist: mcp>=1.0; extra == 'mcp'
75
93
  Provides-Extra: mistral
@@ -101,6 +119,8 @@ Provides-Extra: tavily
101
119
  Requires-Dist: tavily-python>=0.3; extra == 'tavily'
102
120
  Provides-Extra: vertex
103
121
  Requires-Dist: google-cloud-aiplatform>=1.38; extra == 'vertex'
122
+ Provides-Extra: video
123
+ Requires-Dist: openai>=1.0; extra == 'video'
104
124
  Provides-Extra: web
105
125
  Requires-Dist: beautifulsoup4>=4.12; extra == 'web'
106
126
  Requires-Dist: httpx>=0.27; extra == 'web'
@@ -117,7 +137,7 @@ Description-Content-Type: text/markdown
117
137
  [![PyPI version](https://img.shields.io/pypi/v/synapsekit?color=0a7bbd&label=pypi&logo=pypi&logoColor=white)](https://pypi.org/project/synapsekit/)
118
138
  [![Python](https://img.shields.io/badge/python-3.10%2B-blue?logo=python&logoColor=white)](https://www.python.org/)
119
139
  [![License: Apache 2.0](https://img.shields.io/badge/license-Apache%202.0-22c55e)](LICENSE)
120
- [![Tests](https://img.shields.io/badge/tests-1011%20passing-22c55e?logo=pytest&logoColor=white)]()
140
+ [![Tests](https://img.shields.io/badge/tests-1305%20passing-22c55e?logo=pytest&logoColor=white)]()
121
141
  [![Downloads](https://img.shields.io/pypi/dm/synapsekit?color=0a7bbd&logo=pypi&logoColor=white)](https://pypistats.org/packages/synapsekit)
122
142
  [![Docs](https://img.shields.io/badge/docs-online-0a7bbd?logo=readthedocs&logoColor=white)](https://synapsekit.github.io/synapsekit-docs/)
123
143
 
@@ -151,7 +171,7 @@ Token-level streaming is the default,<br/>not an afterthought.<br/>Works across
151
171
  <tr>
152
172
  <td align="center" width="33%">
153
173
  <h3>🔌 One interface</h3>
154
- 13 LLM providers and 5 vector stores<br/>behind the same API.<br/>Swap without rewriting.
174
+ 19 LLM providers and 5 vector stores<br/>behind the same API.<br/>Swap without rewriting.
155
175
  </td>
156
176
  <td align="center" width="33%">
157
177
  <h3>🧩 Composable</h3>
@@ -194,7 +214,7 @@ Retrieval-augmented generation with streaming, BM25 reranking, conversation memo
194
214
  <td width="50%">
195
215
 
196
216
  **🤖 Agents**<br/>
197
- ReAct loop (any LLM) and native function calling (OpenAI / Anthropic / Gemini / Mistral). 19 built-in tools including calculator, Python REPL, web search, SQL, HTTP, shell, summarization, sentiment analysis, and translation. Fully extensible.
217
+ ReAct loop (any LLM) and native function calling (OpenAI / Anthropic / Gemini / Mistral). 35 built-in tools including calculator, Python REPL, web search, SQL, HTTP, shell, summarization, sentiment analysis, and translation. Fully extensible.
198
218
 
199
219
  </td>
200
220
  </tr>
@@ -208,7 +228,7 @@ DAG-based async pipelines. Nodes run in waves — parallel nodes execute concurr
208
228
  <td width="50%">
209
229
 
210
230
  **🧠 LLM Providers**<br/>
211
- OpenAI, Anthropic, Ollama, Gemini, Cohere, Mistral, Bedrock, Azure OpenAI, Groq, DeepSeek, OpenRouter, Together, Fireworks — all behind one interface. Auto-detected from the model name. Swap without rewriting.
231
+ OpenAI, Anthropic, Ollama, Gemini, Cohere, Mistral, Bedrock, Azure OpenAI, Groq, DeepSeek, OpenRouter, Together, Fireworks, Cerebras, Cloudflare, Moonshot, Perplexity, Vertex AI, Zhipu — all behind one interface. Auto-detected from the model name. Swap without rewriting.
212
232
 
213
233
  </td>
214
234
  </tr>
@@ -313,6 +333,7 @@ Read [CONTRIBUTING.md](CONTRIBUTING.md) to get started. Look for issues tagged [
313
333
  <td align="center" valign="top" width="14.28%"><a href="https://github.com/by22Jy"><img src="https://avatars.githubusercontent.com/u/122969909?v=4" width="100px;" alt="by22Jy"/><br /><sub><b>by22Jy</b></sub></a><br /><a href="https://github.com/SynapseKit/SynapseKit/commits?author=by22Jy" title="Code">💻</a></td>
314
334
  <td align="center" valign="top" width="14.28%"><a href="https://github.com/Arjunkundapur"><img src="https://avatars.githubusercontent.com/u/64265396?v=4" width="100px;" alt="Arjun Kundapur"/><br /><sub><b>Arjun Kundapur</b></sub></a><br /><a href="https://github.com/SynapseKit/SynapseKit/commits?author=Arjunkundapur" title="Code">💻</a></td>
315
335
  <td align="center" valign="top" width="14.28%"><a href="https://github.com/Ashusf90"><img src="https://avatars.githubusercontent.com/u/153393197?v=4" width="100px;" alt="Harshit Gupta"/><br /><sub><b>Harshit Gupta</b></sub></a><br /><a href="https://github.com/SynapseKit/synapsekit-docs/pull/34" title="Documentation">📖</a></td>
336
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/DhruvGarg111"><img src="https://avatars.githubusercontent.com/u/136477030?v=4" width="100px;" alt="Dhruv Garg"/><br /><sub><b>Dhruv Garg</b></sub></a><br /><a href="https://github.com/SynapseKit/SynapseKit/commits?author=DhruvGarg111" title="Code">💻</a></td>
316
337
  </tr>
317
338
  </tbody>
318
339
  </table>
@@ -7,7 +7,7 @@
7
7
  [![PyPI version](https://img.shields.io/pypi/v/synapsekit?color=0a7bbd&label=pypi&logo=pypi&logoColor=white)](https://pypi.org/project/synapsekit/)
8
8
  [![Python](https://img.shields.io/badge/python-3.10%2B-blue?logo=python&logoColor=white)](https://www.python.org/)
9
9
  [![License: Apache 2.0](https://img.shields.io/badge/license-Apache%202.0-22c55e)](LICENSE)
10
- [![Tests](https://img.shields.io/badge/tests-1011%20passing-22c55e?logo=pytest&logoColor=white)]()
10
+ [![Tests](https://img.shields.io/badge/tests-1305%20passing-22c55e?logo=pytest&logoColor=white)]()
11
11
  [![Downloads](https://img.shields.io/pypi/dm/synapsekit?color=0a7bbd&logo=pypi&logoColor=white)](https://pypistats.org/packages/synapsekit)
12
12
  [![Docs](https://img.shields.io/badge/docs-online-0a7bbd?logo=readthedocs&logoColor=white)](https://synapsekit.github.io/synapsekit-docs/)
13
13
 
@@ -41,7 +41,7 @@ Token-level streaming is the default,<br/>not an afterthought.<br/>Works across
41
41
  <tr>
42
42
  <td align="center" width="33%">
43
43
  <h3>🔌 One interface</h3>
44
- 13 LLM providers and 5 vector stores<br/>behind the same API.<br/>Swap without rewriting.
44
+ 19 LLM providers and 5 vector stores<br/>behind the same API.<br/>Swap without rewriting.
45
45
  </td>
46
46
  <td align="center" width="33%">
47
47
  <h3>🧩 Composable</h3>
@@ -84,7 +84,7 @@ Retrieval-augmented generation with streaming, BM25 reranking, conversation memo
84
84
  <td width="50%">
85
85
 
86
86
  **🤖 Agents**<br/>
87
- ReAct loop (any LLM) and native function calling (OpenAI / Anthropic / Gemini / Mistral). 19 built-in tools including calculator, Python REPL, web search, SQL, HTTP, shell, summarization, sentiment analysis, and translation. Fully extensible.
87
+ ReAct loop (any LLM) and native function calling (OpenAI / Anthropic / Gemini / Mistral). 35 built-in tools including calculator, Python REPL, web search, SQL, HTTP, shell, summarization, sentiment analysis, and translation. Fully extensible.
88
88
 
89
89
  </td>
90
90
  </tr>
@@ -98,7 +98,7 @@ DAG-based async pipelines. Nodes run in waves — parallel nodes execute concurr
98
98
  <td width="50%">
99
99
 
100
100
  **🧠 LLM Providers**<br/>
101
- OpenAI, Anthropic, Ollama, Gemini, Cohere, Mistral, Bedrock, Azure OpenAI, Groq, DeepSeek, OpenRouter, Together, Fireworks — all behind one interface. Auto-detected from the model name. Swap without rewriting.
101
+ OpenAI, Anthropic, Ollama, Gemini, Cohere, Mistral, Bedrock, Azure OpenAI, Groq, DeepSeek, OpenRouter, Together, Fireworks, Cerebras, Cloudflare, Moonshot, Perplexity, Vertex AI, Zhipu — all behind one interface. Auto-detected from the model name. Swap without rewriting.
102
102
 
103
103
  </td>
104
104
  </tr>
@@ -203,6 +203,7 @@ Read [CONTRIBUTING.md](CONTRIBUTING.md) to get started. Look for issues tagged [
203
203
  <td align="center" valign="top" width="14.28%"><a href="https://github.com/by22Jy"><img src="https://avatars.githubusercontent.com/u/122969909?v=4" width="100px;" alt="by22Jy"/><br /><sub><b>by22Jy</b></sub></a><br /><a href="https://github.com/SynapseKit/SynapseKit/commits?author=by22Jy" title="Code">💻</a></td>
204
204
  <td align="center" valign="top" width="14.28%"><a href="https://github.com/Arjunkundapur"><img src="https://avatars.githubusercontent.com/u/64265396?v=4" width="100px;" alt="Arjun Kundapur"/><br /><sub><b>Arjun Kundapur</b></sub></a><br /><a href="https://github.com/SynapseKit/SynapseKit/commits?author=Arjunkundapur" title="Code">💻</a></td>
205
205
  <td align="center" valign="top" width="14.28%"><a href="https://github.com/Ashusf90"><img src="https://avatars.githubusercontent.com/u/153393197?v=4" width="100px;" alt="Harshit Gupta"/><br /><sub><b>Harshit Gupta</b></sub></a><br /><a href="https://github.com/SynapseKit/synapsekit-docs/pull/34" title="Documentation">📖</a></td>
206
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/DhruvGarg111"><img src="https://avatars.githubusercontent.com/u/136477030?v=4" width="100px;" alt="Dhruv Garg"/><br /><sub><b>Dhruv Garg</b></sub></a><br /><a href="https://github.com/SynapseKit/SynapseKit/commits?author=DhruvGarg111" title="Code">💻</a></td>
206
207
  </tr>
207
208
  </tbody>
208
209
  </table>
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "synapsekit"
7
- version = "1.2.0"
7
+ version = "1.4.0"
8
8
  description = "Async-native Python framework for building production-grade LLM applications. Streaming-first, 2 dependencies, fully transparent."
9
9
  authors = [{ name = "Amit", email = "de.amit.nautiyal@gmail.com" }]
10
10
  license = { text = "Apache-2.0" }
@@ -48,11 +48,16 @@ faiss = ["faiss-cpu>=1.7"]
48
48
  qdrant = ["qdrant-client>=1.9"]
49
49
  pinecone = ["pinecone>=3.0"]
50
50
  ollama = ["ollama>=0.2"]
51
+ ai21 = ["ai21>=2.0"]
51
52
  cohere = ["cohere>=5.0"]
52
53
  mistral = ["mistralai>=1.0"]
53
54
  gemini = ["google-generativeai>=0.7"]
54
55
  bedrock = ["boto3>=1.34"]
56
+ gcal-tool = ["google-api-python-client>=2.0"]
57
+ aws-lambda = ["boto3>=1.34"]
55
58
  groq = ["groq>=0.9"]
59
+ audio = ["openai>=1.0"]
60
+ video = ["openai>=1.0"]
56
61
  excel = ["openpyxl>=3.1"]
57
62
  pptx = ["python-pptx>=0.6"]
58
63
  docx = ["python-docx>=1.0"]
@@ -63,6 +68,9 @@ youtube = ["youtube-search-python>=1.6"]
63
68
  mcp = ["mcp>=1.0"]
64
69
  redis = ["redis>=5.0"]
65
70
  vertex = ["google-cloud-aiplatform>=1.38"]
71
+ cloudflare = ["httpx>=0.27"]
72
+ llamacpp = ["llama-cpp-python>=0.2"]
73
+ ernie = ["erniebot>=0.5"]
66
74
  serve = ["fastapi>=0.110", "uvicorn[standard]>=0.29"]
67
75
  postgres = ["psycopg[binary]>=3.1"]
68
76
  all = [
@@ -78,6 +86,7 @@ all = [
78
86
  "qdrant-client>=1.9",
79
87
  "pinecone>=3.0",
80
88
  "ollama>=0.2",
89
+ "ai21>=2.0",
81
90
  "cohere>=5.0",
82
91
  "mistralai>=1.0",
83
92
  "google-generativeai>=0.7",
@@ -91,6 +100,9 @@ all = [
91
100
  "fastapi>=0.110",
92
101
  "uvicorn[standard]>=0.29",
93
102
  "psycopg[binary]>=3.1",
103
+ "groq>=0.9",
104
+ "llama-cpp-python>=0.2",
105
+ "erniebot>=0.5",
94
106
  ]
95
107
 
96
108
  [dependency-groups]
@@ -188,6 +200,7 @@ pep621_dev_dependency_groups = ["dev"]
188
200
 
189
201
  [tool.deptry.package_module_name_map]
190
202
  google-generativeai = "google"
203
+ google-api-python-client = "googleapiclient"
191
204
  beautifulsoup4 = "bs4"
192
205
  faiss-cpu = "faiss"
193
206
  python-pptx = "pptx"
@@ -195,8 +208,9 @@ python-docx = "docx"
195
208
  tavily-python = "tavily"
196
209
  youtube-search-python = "youtubesearchpython"
197
210
  google-cloud-aiplatform = "vertexai"
211
+ llama-cpp-python = "llama_cpp"
198
212
 
199
213
  [tool.deptry.per_rule_ignores]
200
- DEP001 = ["sqlalchemy", "pydantic", "aiohttp", "opentelemetry"]
214
+ DEP001 = ["sqlalchemy", "pydantic", "aiohttp", "opentelemetry", "whisper"]
201
215
  DEP002 = ["numpy", "rank-bm25", "beautifulsoup4", "lxml", "faiss-cpu", "google-generativeai", "tavily-python", "youtube-search-python", "psycopg"]
202
216
  DEP004 = ["pydantic"]
@@ -17,6 +17,7 @@ from __future__ import annotations
17
17
  from ._api import deprecated, experimental, public_api
18
18
  from .a2a import A2AClient, A2AMessage, A2AServer, A2ATask, AgentCard, TaskState
19
19
  from .agents import (
20
+ ActionEvent,
20
21
  AgentConfig,
21
22
  AgentExecutor,
22
23
  AgentMemory,
@@ -32,9 +33,11 @@ from .agents import (
32
33
  DateTimeTool,
33
34
  DuckDuckGoSearchTool,
34
35
  EmailTool,
36
+ ErrorEvent,
35
37
  FileListTool,
36
38
  FileReadTool,
37
39
  FileWriteTool,
40
+ FinalAnswerEvent,
38
41
  FunctionCallingAgent,
39
42
  GitHubAPITool,
40
43
  GraphQLTool,
@@ -45,23 +48,32 @@ from .agents import (
45
48
  HandoffResult,
46
49
  HTTPRequestTool,
47
50
  HumanInputTool,
51
+ ImageAnalysisTool,
48
52
  JiraTool,
49
53
  JSONQueryTool,
54
+ ObservationEvent,
50
55
  PDFReaderTool,
51
56
  PIIDetector,
57
+ PIIRedactor,
52
58
  PubMedSearchTool,
53
59
  PythonREPLTool,
54
60
  ReActAgent,
61
+ RedactionResult,
55
62
  RegexTool,
56
63
  SentimentAnalysisTool,
57
64
  ShellTool,
58
65
  SlackTool,
66
+ SpeechToTextTool,
59
67
  SQLQueryTool,
60
68
  SQLSchemaInspectionTool,
69
+ StepEvent,
61
70
  SummarizationTool,
62
71
  SupervisorAgent,
63
72
  Task,
64
73
  TavilySearchTool,
74
+ TextToSpeechTool,
75
+ ThoughtEvent,
76
+ TokenEvent,
65
77
  ToolRegistry,
66
78
  ToolResult,
67
79
  TopicRestrictor,
@@ -77,11 +89,15 @@ from .agents import (
77
89
  from .embeddings.backend import SynapsekitEmbeddings
78
90
  from .evaluation import (
79
91
  EvalCaseMeta,
92
+ EvalRegression,
93
+ EvalSnapshot,
80
94
  EvaluationPipeline,
81
95
  EvaluationResult,
82
96
  FaithfulnessMetric,
83
97
  GroundednessMetric,
98
+ MetricDelta,
84
99
  MetricResult,
100
+ RegressionReport,
85
101
  RelevancyMetric,
86
102
  eval_case,
87
103
  )
@@ -122,6 +138,8 @@ from .graph import (
122
138
  ws_stream,
123
139
  )
124
140
  from .llm.base import BaseLLM, LLMConfig
141
+ from .llm.cost_router import QUALITY_TABLE, CostRouter, CostRouterConfig, RouterModelSpec
142
+ from .llm.fallback_chain import FallbackChain, FallbackChainConfig
125
143
  from .llm.multimodal import AudioContent, ImageContent, MultimodalMessage
126
144
  from .llm.structured import generate_structured
127
145
  from .loaders.base import Document
@@ -144,6 +162,8 @@ from .memory.sqlite import SQLiteConversationMemory
144
162
  from .memory.summary_buffer import SummaryBufferMemory
145
163
  from .memory.token_buffer import TokenBufferMemory
146
164
  from .observability import (
165
+ AuditEntry,
166
+ AuditLog,
147
167
  BudgetExceededError,
148
168
  BudgetGuard,
149
169
  BudgetLimit,
@@ -197,7 +217,7 @@ from .text_splitters import (
197
217
  TokenAwareSplitter,
198
218
  )
199
219
 
200
- __version__ = "1.2.0"
220
+ __version__ = "1.3.0"
201
221
  __all__ = [
202
222
  # Facade
203
223
  "RAG",
@@ -207,15 +227,24 @@ __all__ = [
207
227
  # LLM
208
228
  "BaseLLM",
209
229
  "LLMConfig",
230
+ "CostRouter",
231
+ "CostRouterConfig",
232
+ "RouterModelSpec",
233
+ "QUALITY_TABLE",
234
+ "FallbackChain",
235
+ "FallbackChainConfig",
210
236
  "AzureOpenAILLM",
211
237
  "CerebrasLLM",
238
+ "CloudflareLLM",
212
239
  "DeepSeekLLM",
213
240
  "FireworksLLM",
214
241
  "GroqLLM",
242
+ "MoonshotLLM",
215
243
  "OpenRouterLLM",
216
244
  "PerplexityLLM",
217
245
  "TogetherLLM",
218
246
  "VertexAILLM",
247
+ "ZhipuLLM",
219
248
  # Embeddings
220
249
  "SynapsekitEmbeddings",
221
250
  # Vector stores
@@ -325,6 +354,7 @@ __all__ = [
325
354
  "GraphQLTool",
326
355
  "HTTPRequestTool",
327
356
  "HumanInputTool",
357
+ "ImageAnalysisTool",
328
358
  "JiraTool",
329
359
  "JSONQueryTool",
330
360
  "PDFReaderTool",
@@ -333,10 +363,12 @@ __all__ = [
333
363
  "SentimentAnalysisTool",
334
364
  "ShellTool",
335
365
  "SlackTool",
366
+ "SpeechToTextTool",
336
367
  "SQLQueryTool",
337
368
  "SQLSchemaInspectionTool",
338
369
  "SummarizationTool",
339
370
  "TavilySearchTool",
371
+ "TextToSpeechTool",
340
372
  "TranslationTool",
341
373
  "EmailTool",
342
374
  "GitHubAPITool",
@@ -395,14 +427,20 @@ __all__ = [
395
427
  "generate_structured",
396
428
  # Evaluation
397
429
  "EvalCaseMeta",
430
+ "EvalRegression",
431
+ "EvalSnapshot",
398
432
  "EvaluationPipeline",
399
433
  "EvaluationResult",
400
434
  "FaithfulnessMetric",
401
435
  "GroundednessMetric",
436
+ "MetricDelta",
402
437
  "MetricResult",
438
+ "RegressionReport",
403
439
  "RelevancyMetric",
404
440
  "eval_case",
405
441
  # Observability
442
+ "AuditEntry",
443
+ "AuditLog",
406
444
  "DistributedTracer",
407
445
  "OTelExporter",
408
446
  "Span",
@@ -421,11 +459,23 @@ __all__ = [
421
459
  "Guardrails",
422
460
  "GuardrailResult",
423
461
  "PIIDetector",
462
+ "PIIRedactor",
463
+ "RedactionResult",
424
464
  "TopicRestrictor",
465
+ # Step events
466
+ "ActionEvent",
467
+ "ErrorEvent",
468
+ "FinalAnswerEvent",
469
+ "ObservationEvent",
470
+ "StepEvent",
471
+ "ThoughtEvent",
472
+ "TokenEvent",
425
473
  # Multimodal
426
474
  "AudioContent",
427
475
  "ImageContent",
428
476
  "MultimodalMessage",
477
+ "AudioLoader",
478
+ "VideoLoader",
429
479
  "ImageLoader",
430
480
  # Plugins
431
481
  "PluginRegistry",
@@ -452,10 +502,15 @@ _LAZY_IMPORTS = {
452
502
  "OpenRouterLLM": "llm.openrouter",
453
503
  "PerplexityLLM": "llm.perplexity",
454
504
  "TogetherLLM": "llm.together",
505
+ "MoonshotLLM": "llm.moonshot",
506
+ "ZhipuLLM": "llm.zhipu",
507
+ "CloudflareLLM": "llm.cloudflare",
455
508
  # Checkpointers
456
509
  "RedisCheckpointer": "graph.checkpointers.redis",
457
510
  "PostgresCheckpointer": "graph.checkpointers.postgres",
458
511
  # Loaders
512
+ "AudioLoader": "loaders.audio",
513
+ "VideoLoader": "loaders.video",
459
514
  "DocxLoader": "loaders.docx",
460
515
  "ExcelLoader": "loaders.excel",
461
516
  "PowerPointLoader": "loaders.pptx",
@@ -20,11 +20,23 @@ from .multi import (
20
20
  Task,
21
21
  WorkerAgent,
22
22
  )
23
+ from .pii_redactor import PIIRedactor, RedactionResult
23
24
  from .react import ReActAgent
24
25
  from .registry import ToolRegistry
26
+ from .step_events import (
27
+ ActionEvent,
28
+ ErrorEvent,
29
+ FinalAnswerEvent,
30
+ ObservationEvent,
31
+ StepEvent,
32
+ ThoughtEvent,
33
+ TokenEvent,
34
+ )
25
35
  from .tool_decorator import tool
26
36
  from .tools import (
37
+ APIBuilderTool,
27
38
  ArxivSearchTool,
39
+ AWSLambdaTool,
28
40
  BraveSearchTool,
29
41
  CalculatorTool,
30
42
  DateTimeTool,
@@ -34,9 +46,11 @@ from .tools import (
34
46
  FileReadTool,
35
47
  FileWriteTool,
36
48
  GitHubAPITool,
49
+ GoogleCalendarTool,
37
50
  GraphQLTool,
38
51
  HTTPRequestTool,
39
52
  HumanInputTool,
53
+ ImageAnalysisTool,
40
54
  JiraTool,
41
55
  JSONQueryTool,
42
56
  PDFReaderTool,
@@ -46,10 +60,12 @@ from .tools import (
46
60
  SentimentAnalysisTool,
47
61
  ShellTool,
48
62
  SlackTool,
63
+ SpeechToTextTool,
49
64
  SQLQueryTool,
50
65
  SQLSchemaInspectionTool,
51
66
  SummarizationTool,
52
67
  TavilySearchTool,
68
+ TextToSpeechTool,
53
69
  TranslationTool,
54
70
  VectorSearchTool,
55
71
  WebScraperTool,
@@ -79,7 +95,9 @@ __all__ = [
79
95
  # Decorator
80
96
  "tool",
81
97
  # Built-in tools
98
+ "APIBuilderTool",
82
99
  "ArxivSearchTool",
100
+ "AWSLambdaTool",
83
101
  "BraveSearchTool",
84
102
  "CalculatorTool",
85
103
  "DateTimeTool",
@@ -89,9 +107,11 @@ __all__ = [
89
107
  "FileReadTool",
90
108
  "FileWriteTool",
91
109
  "GitHubAPITool",
110
+ "GoogleCalendarTool",
92
111
  "GraphQLTool",
93
112
  "HTTPRequestTool",
94
113
  "HumanInputTool",
114
+ "ImageAnalysisTool",
95
115
  "JiraTool",
96
116
  "JSONQueryTool",
97
117
  "PDFReaderTool",
@@ -101,16 +121,29 @@ __all__ = [
101
121
  "SentimentAnalysisTool",
102
122
  "ShellTool",
103
123
  "SlackTool",
124
+ "SpeechToTextTool",
104
125
  "SQLQueryTool",
105
126
  "SQLSchemaInspectionTool",
106
127
  "SummarizationTool",
107
128
  "TavilySearchTool",
129
+ "TextToSpeechTool",
108
130
  "TranslationTool",
109
131
  "VectorSearchTool",
110
132
  "WebScraperTool",
111
133
  "WebSearchTool",
112
134
  "WikipediaTool",
113
135
  "YouTubeSearchTool",
136
+ # PIIRedactor
137
+ "PIIRedactor",
138
+ "RedactionResult",
139
+ # Step events
140
+ "ActionEvent",
141
+ "ErrorEvent",
142
+ "FinalAnswerEvent",
143
+ "ObservationEvent",
144
+ "StepEvent",
145
+ "ThoughtEvent",
146
+ "TokenEvent",
114
147
  # Multi-agent
115
148
  "Crew",
116
149
  "CrewAgent",