unique_toolkit 1.4.1__tar.gz → 1.4.3__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 (144) hide show
  1. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/CHANGELOG.md +6 -0
  2. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/PKG-INFO +7 -1
  3. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/pyproject.toml +1 -1
  4. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/agentic/tools/a2a/config.py +7 -1
  5. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/agentic/tools/a2a/postprocessing/postprocessor.py +28 -6
  6. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/language_model/infos.py +41 -0
  7. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/LICENSE +0 -0
  8. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/README.md +0 -0
  9. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/__init__.py +0 -0
  10. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/_common/_base_service.py +0 -0
  11. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/_common/_time_utils.py +0 -0
  12. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/_common/api_calling/human_verification_manager.py +0 -0
  13. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/_common/base_model_type_attribute.py +0 -0
  14. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/_common/chunk_relevancy_sorter/config.py +0 -0
  15. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/_common/chunk_relevancy_sorter/exception.py +0 -0
  16. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/_common/chunk_relevancy_sorter/schemas.py +0 -0
  17. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/_common/chunk_relevancy_sorter/service.py +0 -0
  18. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/_common/chunk_relevancy_sorter/tests/test_service.py +0 -0
  19. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/_common/default_language_model.py +0 -0
  20. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/_common/endpoint_builder.py +0 -0
  21. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/_common/endpoint_requestor.py +0 -0
  22. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/_common/exception.py +0 -0
  23. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/_common/feature_flags/schema.py +0 -0
  24. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/_common/pydantic/rjsf_tags.py +0 -0
  25. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/_common/pydantic_helpers.py +0 -0
  26. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/_common/string_utilities.py +0 -0
  27. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/_common/token/image_token_counting.py +0 -0
  28. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/_common/token/token_counting.py +0 -0
  29. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/_common/utils/__init__.py +0 -0
  30. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/_common/utils/structured_output/__init__.py +0 -0
  31. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/_common/utils/structured_output/schema.py +0 -0
  32. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/_common/utils/write_configuration.py +0 -0
  33. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/_common/validate_required_values.py +0 -0
  34. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/_common/validators.py +0 -0
  35. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/agentic/__init__.py +0 -0
  36. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/agentic/debug_info_manager/debug_info_manager.py +0 -0
  37. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/agentic/evaluation/config.py +0 -0
  38. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/agentic/evaluation/context_relevancy/prompts.py +0 -0
  39. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/agentic/evaluation/context_relevancy/schema.py +0 -0
  40. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/agentic/evaluation/context_relevancy/service.py +0 -0
  41. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/agentic/evaluation/evaluation_manager.py +0 -0
  42. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/agentic/evaluation/exception.py +0 -0
  43. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/agentic/evaluation/hallucination/constants.py +0 -0
  44. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/agentic/evaluation/hallucination/hallucination_evaluation.py +0 -0
  45. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/agentic/evaluation/hallucination/prompts.py +0 -0
  46. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/agentic/evaluation/hallucination/service.py +0 -0
  47. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/agentic/evaluation/hallucination/utils.py +0 -0
  48. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/agentic/evaluation/output_parser.py +0 -0
  49. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/agentic/evaluation/schemas.py +0 -0
  50. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/agentic/evaluation/tests/test_context_relevancy_service.py +0 -0
  51. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/agentic/evaluation/tests/test_output_parser.py +0 -0
  52. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/agentic/history_manager/history_construction_with_contents.py +0 -0
  53. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/agentic/history_manager/history_manager.py +0 -0
  54. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/agentic/history_manager/loop_token_reducer.py +0 -0
  55. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/agentic/history_manager/utils.py +0 -0
  56. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/agentic/postprocessor/postprocessor_manager.py +0 -0
  57. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/agentic/reference_manager/reference_manager.py +0 -0
  58. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/agentic/short_term_memory_manager/persistent_short_term_memory_manager.py +0 -0
  59. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/agentic/thinking_manager/thinking_manager.py +0 -0
  60. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/agentic/tools/__init__.py +0 -0
  61. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/agentic/tools/a2a/__init__.py +0 -0
  62. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/agentic/tools/a2a/evaluation/__init__.py +0 -0
  63. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/agentic/tools/a2a/evaluation/config.py +0 -0
  64. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/agentic/tools/a2a/evaluation/evaluator.py +0 -0
  65. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/agentic/tools/a2a/evaluation/summarization_user_message.j2 +0 -0
  66. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/agentic/tools/a2a/manager.py +0 -0
  67. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/agentic/tools/a2a/memory.py +0 -0
  68. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/agentic/tools/a2a/postprocessing/__init__.py +0 -0
  69. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/agentic/tools/a2a/postprocessing/display.py +0 -0
  70. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/agentic/tools/a2a/postprocessing/test/test_display.py +0 -0
  71. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/agentic/tools/a2a/schema.py +0 -0
  72. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/agentic/tools/a2a/service.py +0 -0
  73. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/agentic/tools/agent_chunks_hanlder.py +0 -0
  74. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/agentic/tools/config.py +0 -0
  75. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/agentic/tools/factory.py +0 -0
  76. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/agentic/tools/mcp/__init__.py +0 -0
  77. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/agentic/tools/mcp/manager.py +0 -0
  78. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/agentic/tools/mcp/models.py +0 -0
  79. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/agentic/tools/mcp/tool_wrapper.py +0 -0
  80. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/agentic/tools/schemas.py +0 -0
  81. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/agentic/tools/test/test_mcp_manager.py +0 -0
  82. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/agentic/tools/test/test_tool_progress_reporter.py +0 -0
  83. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/agentic/tools/tool.py +0 -0
  84. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/agentic/tools/tool_manager.py +0 -0
  85. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/agentic/tools/tool_progress_reporter.py +0 -0
  86. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/agentic/tools/utils/__init__.py +0 -0
  87. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/agentic/tools/utils/execution/__init__.py +0 -0
  88. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/agentic/tools/utils/execution/execution.py +0 -0
  89. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/agentic/tools/utils/source_handling/__init__.py +0 -0
  90. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/agentic/tools/utils/source_handling/schema.py +0 -0
  91. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/agentic/tools/utils/source_handling/source_formatting.py +0 -0
  92. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/agentic/tools/utils/source_handling/tests/test_source_formatting.py +0 -0
  93. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/app/__init__.py +0 -0
  94. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/app/dev_util.py +0 -0
  95. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/app/init_logging.py +0 -0
  96. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/app/init_sdk.py +0 -0
  97. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/app/performance/async_tasks.py +0 -0
  98. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/app/performance/async_wrapper.py +0 -0
  99. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/app/schemas.py +0 -0
  100. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/app/unique_settings.py +0 -0
  101. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/app/verification.py +0 -0
  102. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/chat/__init__.py +0 -0
  103. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/chat/constants.py +0 -0
  104. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/chat/functions.py +0 -0
  105. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/chat/schemas.py +0 -0
  106. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/chat/service.py +0 -0
  107. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/chat/state.py +0 -0
  108. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/chat/utils.py +0 -0
  109. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/content/__init__.py +0 -0
  110. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/content/constants.py +0 -0
  111. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/content/functions.py +0 -0
  112. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/content/schemas.py +0 -0
  113. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/content/service.py +0 -0
  114. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/content/utils.py +0 -0
  115. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/embedding/__init__.py +0 -0
  116. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/embedding/constants.py +0 -0
  117. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/embedding/functions.py +0 -0
  118. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/embedding/schemas.py +0 -0
  119. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/embedding/service.py +0 -0
  120. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/embedding/utils.py +0 -0
  121. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/framework_utilities/__init__.py +0 -0
  122. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/framework_utilities/langchain/client.py +0 -0
  123. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/framework_utilities/langchain/history.py +0 -0
  124. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/framework_utilities/openai/__init__.py +0 -0
  125. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/framework_utilities/openai/client.py +0 -0
  126. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/framework_utilities/openai/message_builder.py +0 -0
  127. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/framework_utilities/utils.py +0 -0
  128. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/language_model/__init__.py +0 -0
  129. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/language_model/builder.py +0 -0
  130. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/language_model/constants.py +0 -0
  131. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/language_model/functions.py +0 -0
  132. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/language_model/prompt.py +0 -0
  133. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/language_model/reference.py +0 -0
  134. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/language_model/schemas.py +0 -0
  135. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/language_model/service.py +0 -0
  136. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/language_model/utils.py +0 -0
  137. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/protocols/support.py +0 -0
  138. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/short_term_memory/__init__.py +0 -0
  139. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/short_term_memory/constants.py +0 -0
  140. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/short_term_memory/functions.py +0 -0
  141. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/short_term_memory/schemas.py +0 -0
  142. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/short_term_memory/service.py +0 -0
  143. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/smart_rules/__init__.py +0 -0
  144. {unique_toolkit-1.4.1 → unique_toolkit-1.4.3}/unique_toolkit/smart_rules/compile.py +0 -0
@@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [1.4.3] - 2025-09-30
9
+ - Fix bug with sub-agent post-processing reference numbers.
10
+
11
+ ## [1.4.2] - 2025-09-30
12
+ - Adding litellm models `litellm:anthropic-claude-sonnet-4-5` and `litellm:anthropic-claude-opus-4-1`
13
+
8
14
  ## [1.4.1] - 2025-09-30
9
15
  - Handle sub agent failed assessments better in sub agent evaluator.
10
16
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: unique_toolkit
3
- Version: 1.4.1
3
+ Version: 1.4.3
4
4
  Summary:
5
5
  License: Proprietary
6
6
  Author: Cedric Klinkert
@@ -118,6 +118,12 @@ All notable changes to this project will be documented in this file.
118
118
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
119
119
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
120
120
 
121
+ ## [1.4.3] - 2025-09-30
122
+ - Fix bug with sub-agent post-processing reference numbers.
123
+
124
+ ## [1.4.2] - 2025-09-30
125
+ - Adding litellm models `litellm:anthropic-claude-sonnet-4-5` and `litellm:anthropic-claude-opus-4-1`
126
+
121
127
  ## [1.4.1] - 2025-09-30
122
128
  - Handle sub agent failed assessments better in sub agent evaluator.
123
129
 
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "unique_toolkit"
3
- version = "1.4.1"
3
+ version = "1.4.3"
4
4
  description = ""
5
5
  authors = [
6
6
  "Cedric Klinkert <cedric.klinkert@unique.ch>",
@@ -9,6 +9,10 @@ DEFAULT_PARAM_DESCRIPTION_SUB_AGENT_USER_MESSAGE = """
9
9
  This is the message that will be sent to the sub-agent.
10
10
  """.strip()
11
11
 
12
+ DEFAULT_FORMAT_INFORMATION_SUB_AGENT_SYSTEM_MESSAGE = """
13
+ NEVER mention any references from sub-agent answers in your response.
14
+ """
15
+
12
16
 
13
17
  class ResponseDisplayMode(StrEnum):
14
18
  HIDDEN = "hidden"
@@ -40,7 +44,9 @@ class SubAgentToolConfig(BaseToolConfig):
40
44
  param_description_sub_agent_user_message: str = (
41
45
  DEFAULT_PARAM_DESCRIPTION_SUB_AGENT_USER_MESSAGE
42
46
  )
43
- tool_format_information_for_system_prompt: str = ""
47
+ tool_format_information_for_system_prompt: str = (
48
+ DEFAULT_FORMAT_INFORMATION_SUB_AGENT_SYSTEM_MESSAGE
49
+ )
44
50
  tool_description_for_user_prompt: str = ""
45
51
  tool_format_information_for_user_prompt: str = ""
46
52
 
@@ -182,23 +182,45 @@ def _consolidate_references_in_place(
182
182
 
183
183
  references = list(sorted(references, key=lambda ref: ref["sequenceNumber"]))
184
184
 
185
+ ref_map = {}
186
+
185
187
  message_new_refs = []
186
188
  for reference in references:
187
189
  source_id = reference["sourceId"]
188
190
 
189
191
  if source_id not in existing_refs:
190
192
  message_new_refs.append(reference)
193
+
191
194
  existing_refs[source_id] = start_index
192
195
  start_index += 1
193
196
 
194
197
  reference_num = existing_refs[source_id]
195
-
196
198
  seq_num = reference["sequenceNumber"]
197
- message["text"] = re.sub(
198
- rf"<sup>{seq_num}</sup>",
199
- f"<sup>{reference_num}</sup>",
200
- message["text"],
201
- )
199
+
200
+ ref_map[seq_num] = reference_num
201
+
202
202
  reference["sequenceNumber"] = reference_num
203
203
 
204
+ message["text"] = _replace_references_in_text(message["text"], ref_map)
204
205
  message["references"] = message_new_refs
206
+
207
+
208
+ def _replace_references_in_text_non_overlapping(
209
+ text: str, ref_map: dict[int, int]
210
+ ) -> str:
211
+ for orig, repl in ref_map.items():
212
+ text = re.sub(rf"<sup>{orig}</sup>", f"<sup>{repl}</sup>", text)
213
+ return text
214
+
215
+
216
+ def _replace_references_in_text(text: str, ref_map: dict[int, int]) -> str:
217
+ # 2 phase replacement, since the map keys and values can overlap
218
+ max_ref = max(ref_map.keys(), default=0) + 1
219
+ unique_refs = range(max_ref, max_ref + len(ref_map))
220
+
221
+ text = _replace_references_in_text_non_overlapping(
222
+ text, dict(zip(ref_map.keys(), unique_refs))
223
+ )
224
+ return _replace_references_in_text_non_overlapping(
225
+ text, dict(zip(unique_refs, ref_map.values()))
226
+ )
@@ -37,7 +37,9 @@ class LanguageModelName(StrEnum):
37
37
  "litellm:anthropic-claude-3-7-sonnet-thinking"
38
38
  )
39
39
  ANTHROPIC_CLAUDE_SONNET_4 = "litellm:anthropic-claude-sonnet-4"
40
+ ANTHROPIC_CLAUDE_SONNET_4_5 = "litellm:anthropic-claude-sonnet-4-5"
40
41
  ANTHROPIC_CLAUDE_OPUS_4 = "litellm:anthropic-claude-opus-4"
42
+ ANTHROPIC_CLAUDE_OPUS_4_1 = "litellm:anthropic-claude-opus-4-1"
41
43
  GEMINI_2_0_FLASH = "litellm:gemini-2-0-flash"
42
44
  GEMINI_2_5_FLASH = "litellm:gemini-2-5-flash"
43
45
  GEMINI_2_5_FLASH_LITE_PREVIEW_0617 = "litellm:gemini-2-5-flash-lite-preview-06-17"
@@ -663,6 +665,26 @@ class LanguageModelInfo(BaseModel):
663
665
  info_cutoff_at=date(2025, 3, 1),
664
666
  published_at=date(2025, 5, 1),
665
667
  )
668
+ case LanguageModelName.ANTHROPIC_CLAUDE_SONNET_4_5:
669
+ return cls(
670
+ name=model_name,
671
+ capabilities=[
672
+ ModelCapabilities.FUNCTION_CALLING,
673
+ ModelCapabilities.STREAMING,
674
+ ModelCapabilities.VISION,
675
+ ModelCapabilities.REASONING,
676
+ ],
677
+ provider=LanguageModelProvider.LITELLM,
678
+ version="claude-sonnet-4-5",
679
+ encoder_name=EncoderName.O200K_BASE, # TODO: Update encoder with litellm
680
+ token_limits=LanguageModelTokenLimits(
681
+ # Input limit is 200_000, we leave 20_000 tokens as buffer due to tokenizer mismatch
682
+ token_limit_input=200_000,
683
+ token_limit_output=64_000,
684
+ ),
685
+ info_cutoff_at=date(2025, 7, 1),
686
+ published_at=date(2025, 9, 29),
687
+ )
666
688
  case LanguageModelName.ANTHROPIC_CLAUDE_OPUS_4:
667
689
  return cls(
668
690
  name=model_name,
@@ -683,6 +705,25 @@ class LanguageModelInfo(BaseModel):
683
705
  info_cutoff_at=date(2025, 3, 1),
684
706
  published_at=date(2025, 5, 1),
685
707
  )
708
+ case LanguageModelName.ANTHROPIC_CLAUDE_OPUS_4_1:
709
+ return cls(
710
+ name=model_name,
711
+ capabilities=[
712
+ ModelCapabilities.FUNCTION_CALLING,
713
+ ModelCapabilities.STREAMING,
714
+ ModelCapabilities.VISION,
715
+ ModelCapabilities.REASONING,
716
+ ],
717
+ provider=LanguageModelProvider.LITELLM,
718
+ version="claude-opus-4",
719
+ encoder_name=EncoderName.O200K_BASE, # TODO: Update encoder with litellm
720
+ token_limits=LanguageModelTokenLimits(
721
+ token_limit_input=200_000,
722
+ token_limit_output=32_000,
723
+ ),
724
+ info_cutoff_at=date(2025, 3, 1),
725
+ published_at=date(2025, 5, 1),
726
+ )
686
727
  case LanguageModelName.GEMINI_2_0_FLASH:
687
728
  return cls(
688
729
  name=model_name,
File without changes
File without changes