unique_toolkit 2026.42.0.dev4__py3-none-any.whl → 2026.42.0.dev6__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- unique_toolkit/app/schemas.py +11 -0
- unique_toolkit/language_model/infos.py +99 -18
- {unique_toolkit-2026.42.0.dev4.dist-info → unique_toolkit-2026.42.0.dev6.dist-info}/METADATA +1 -1
- {unique_toolkit-2026.42.0.dev4.dist-info → unique_toolkit-2026.42.0.dev6.dist-info}/RECORD +5 -5
- {unique_toolkit-2026.42.0.dev4.dist-info → unique_toolkit-2026.42.0.dev6.dist-info}/WHEEL +0 -0
unique_toolkit/app/schemas.py
CHANGED
|
@@ -334,6 +334,13 @@ class ChatEventPayload(BaseEventPayload):
|
|
|
334
334
|
default_factory=lambda: LanguageModelInfo.from_name(DEFAULT_LANGUAGE_MODEL),
|
|
335
335
|
description="The model choice the user has chosen to be used.",
|
|
336
336
|
)
|
|
337
|
+
thinking_level: str = Field(
|
|
338
|
+
default="",
|
|
339
|
+
description=(
|
|
340
|
+
"Thinking or reasoning level chosen for this turn. "
|
|
341
|
+
"Empty when the client did not send one."
|
|
342
|
+
),
|
|
343
|
+
)
|
|
337
344
|
tool_choices: list[str] = Field(
|
|
338
345
|
default_factory=list,
|
|
339
346
|
description="A list containing the tool names the user has chosen to be activated.",
|
|
@@ -387,6 +394,10 @@ class ChatEventPayload(BaseEventPayload):
|
|
|
387
394
|
def has_model_choice_override(self) -> bool:
|
|
388
395
|
return "model_choice" in self.model_fields_set
|
|
389
396
|
|
|
397
|
+
@property
|
|
398
|
+
def has_thinking_level_override(self) -> bool:
|
|
399
|
+
return "thinking_level" in self.model_fields_set and bool(self.thinking_level)
|
|
400
|
+
|
|
390
401
|
|
|
391
402
|
@deprecated("""Use `ChatEventPayload` instead.
|
|
392
403
|
This class will be removed in the next major version.""")
|
|
@@ -1825,7 +1825,9 @@ class LanguageModelInfo(BaseModel):
|
|
|
1825
1825
|
),
|
|
1826
1826
|
info_cutoff_at=date(2026, 1, 1),
|
|
1827
1827
|
published_at=date(2026, 2, 17),
|
|
1828
|
-
|
|
1828
|
+
# Effort includes max. xhigh is not accepted.
|
|
1829
|
+
default_options={"reasoning_effort": "medium"},
|
|
1830
|
+
supported_reasoning_efforts=["low", "medium", "high", "max"],
|
|
1829
1831
|
)
|
|
1830
1832
|
case (
|
|
1831
1833
|
LanguageModelName.ANTHROPIC_CLAUDE_SONNET_5
|
|
@@ -1853,7 +1855,15 @@ class LanguageModelInfo(BaseModel):
|
|
|
1853
1855
|
temperature_bounds=TemperatureBounds(
|
|
1854
1856
|
min_temperature=1.0, max_temperature=1.0
|
|
1855
1857
|
),
|
|
1856
|
-
|
|
1858
|
+
# Effort includes xhigh and max.
|
|
1859
|
+
default_options={"reasoning_effort": "medium"},
|
|
1860
|
+
supported_reasoning_efforts=[
|
|
1861
|
+
"low",
|
|
1862
|
+
"medium",
|
|
1863
|
+
"high",
|
|
1864
|
+
"xhigh",
|
|
1865
|
+
"max",
|
|
1866
|
+
],
|
|
1857
1867
|
)
|
|
1858
1868
|
case (
|
|
1859
1869
|
LanguageModelName.ANTHROPIC_CLAUDE_SONNET_5_5
|
|
@@ -1879,7 +1889,15 @@ class LanguageModelInfo(BaseModel):
|
|
|
1879
1889
|
),
|
|
1880
1890
|
info_cutoff_at=date(2026, 6, 1),
|
|
1881
1891
|
published_at=date(2026, 9, 28),
|
|
1882
|
-
|
|
1892
|
+
# Effort includes xhigh and max.
|
|
1893
|
+
default_options={"reasoning_effort": "medium"},
|
|
1894
|
+
supported_reasoning_efforts=[
|
|
1895
|
+
"low",
|
|
1896
|
+
"medium",
|
|
1897
|
+
"high",
|
|
1898
|
+
"xhigh",
|
|
1899
|
+
"max",
|
|
1900
|
+
],
|
|
1883
1901
|
supports_forced_tool_choice=False,
|
|
1884
1902
|
)
|
|
1885
1903
|
case LanguageModelName.ANTHROPIC_CLAUDE_OPUS_4:
|
|
@@ -1943,7 +1961,9 @@ class LanguageModelInfo(BaseModel):
|
|
|
1943
1961
|
),
|
|
1944
1962
|
info_cutoff_at=date(2025, 8, 1),
|
|
1945
1963
|
published_at=date(2025, 11, 13),
|
|
1946
|
-
|
|
1964
|
+
# https://platform.claude.com/docs/en/build-with-claude/effort
|
|
1965
|
+
default_options={"reasoning_effort": "medium"},
|
|
1966
|
+
supported_reasoning_efforts=["low", "medium", "high"],
|
|
1947
1967
|
)
|
|
1948
1968
|
case (
|
|
1949
1969
|
LanguageModelName.ANTHROPIC_CLAUDE_OPUS_4_6
|
|
@@ -1967,7 +1987,9 @@ class LanguageModelInfo(BaseModel):
|
|
|
1967
1987
|
),
|
|
1968
1988
|
info_cutoff_at=date(2025, 8, 1),
|
|
1969
1989
|
published_at=date(2026, 2, 5),
|
|
1970
|
-
|
|
1990
|
+
# Effort includes max. xhigh is not accepted.
|
|
1991
|
+
default_options={"reasoning_effort": "medium"},
|
|
1992
|
+
supported_reasoning_efforts=["low", "medium", "high", "max"],
|
|
1971
1993
|
)
|
|
1972
1994
|
case (
|
|
1973
1995
|
LanguageModelName.ANTHROPIC_CLAUDE_OPUS_4_7
|
|
@@ -1992,7 +2014,15 @@ class LanguageModelInfo(BaseModel):
|
|
|
1992
2014
|
),
|
|
1993
2015
|
info_cutoff_at=date(2026, 1, 1),
|
|
1994
2016
|
published_at=date(2026, 4, 16),
|
|
1995
|
-
|
|
2017
|
+
# Effort includes xhigh and max.
|
|
2018
|
+
default_options={"reasoning_effort": "medium"},
|
|
2019
|
+
supported_reasoning_efforts=[
|
|
2020
|
+
"low",
|
|
2021
|
+
"medium",
|
|
2022
|
+
"high",
|
|
2023
|
+
"xhigh",
|
|
2024
|
+
"max",
|
|
2025
|
+
],
|
|
1996
2026
|
)
|
|
1997
2027
|
case (
|
|
1998
2028
|
LanguageModelName.ANTHROPIC_CLAUDE_OPUS_4_8
|
|
@@ -2017,7 +2047,15 @@ class LanguageModelInfo(BaseModel):
|
|
|
2017
2047
|
),
|
|
2018
2048
|
info_cutoff_at=date(2026, 1, 1),
|
|
2019
2049
|
published_at=date(2026, 5, 28),
|
|
2020
|
-
|
|
2050
|
+
# Effort includes xhigh and max.
|
|
2051
|
+
default_options={"reasoning_effort": "medium"},
|
|
2052
|
+
supported_reasoning_efforts=[
|
|
2053
|
+
"low",
|
|
2054
|
+
"medium",
|
|
2055
|
+
"high",
|
|
2056
|
+
"xhigh",
|
|
2057
|
+
"max",
|
|
2058
|
+
],
|
|
2021
2059
|
)
|
|
2022
2060
|
case (
|
|
2023
2061
|
LanguageModelName.ANTHROPIC_CLAUDE_OPUS_5
|
|
@@ -2042,7 +2080,15 @@ class LanguageModelInfo(BaseModel):
|
|
|
2042
2080
|
),
|
|
2043
2081
|
info_cutoff_at=date(2026, 5, 1),
|
|
2044
2082
|
published_at=date(2026, 7, 24),
|
|
2045
|
-
|
|
2083
|
+
# Effort includes xhigh and max.
|
|
2084
|
+
default_options={"reasoning_effort": "medium"},
|
|
2085
|
+
supported_reasoning_efforts=[
|
|
2086
|
+
"low",
|
|
2087
|
+
"medium",
|
|
2088
|
+
"high",
|
|
2089
|
+
"xhigh",
|
|
2090
|
+
"max",
|
|
2091
|
+
],
|
|
2046
2092
|
)
|
|
2047
2093
|
case (
|
|
2048
2094
|
LanguageModelName.ANTHROPIC_CLAUDE_OPUS_5_5
|
|
@@ -2068,7 +2114,15 @@ class LanguageModelInfo(BaseModel):
|
|
|
2068
2114
|
),
|
|
2069
2115
|
info_cutoff_at=date(2026, 6, 1),
|
|
2070
2116
|
published_at=date(2026, 9, 22),
|
|
2071
|
-
|
|
2117
|
+
# Effort includes xhigh and max. API default is medium.
|
|
2118
|
+
default_options={"reasoning_effort": "medium"},
|
|
2119
|
+
supported_reasoning_efforts=[
|
|
2120
|
+
"low",
|
|
2121
|
+
"medium",
|
|
2122
|
+
"high",
|
|
2123
|
+
"xhigh",
|
|
2124
|
+
"max",
|
|
2125
|
+
],
|
|
2072
2126
|
supports_forced_tool_choice=False,
|
|
2073
2127
|
)
|
|
2074
2128
|
case (
|
|
@@ -2094,7 +2148,15 @@ class LanguageModelInfo(BaseModel):
|
|
|
2094
2148
|
),
|
|
2095
2149
|
info_cutoff_at=date(2026, 1, 1),
|
|
2096
2150
|
published_at=date(2026, 7, 1),
|
|
2097
|
-
|
|
2151
|
+
# Effort includes xhigh and max.
|
|
2152
|
+
default_options={"reasoning_effort": "medium"},
|
|
2153
|
+
supported_reasoning_efforts=[
|
|
2154
|
+
"low",
|
|
2155
|
+
"medium",
|
|
2156
|
+
"high",
|
|
2157
|
+
"xhigh",
|
|
2158
|
+
"max",
|
|
2159
|
+
],
|
|
2098
2160
|
)
|
|
2099
2161
|
case LanguageModelName.GEMINI_2_0_FLASH:
|
|
2100
2162
|
return cls(
|
|
@@ -2283,7 +2345,9 @@ class LanguageModelInfo(BaseModel):
|
|
|
2283
2345
|
),
|
|
2284
2346
|
info_cutoff_at=date(2025, 1, day=1),
|
|
2285
2347
|
published_at=date(2026, 1, 19),
|
|
2286
|
-
|
|
2348
|
+
# thinkingLevel is low, medium, or high.
|
|
2349
|
+
default_options={"reasoning_effort": "medium"},
|
|
2350
|
+
supported_reasoning_efforts=["low", "medium", "high"],
|
|
2287
2351
|
)
|
|
2288
2352
|
case LanguageModelName.GEMINI_3_6_FLASH:
|
|
2289
2353
|
return cls(
|
|
@@ -2305,6 +2369,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
2305
2369
|
),
|
|
2306
2370
|
info_cutoff_at=date(2026, 3, day=1),
|
|
2307
2371
|
published_at=date(2026, 7, 21),
|
|
2372
|
+
default_options={"reasoning_effort": "medium"},
|
|
2308
2373
|
supported_reasoning_efforts=["minimal", "low", "medium", "high"],
|
|
2309
2374
|
)
|
|
2310
2375
|
case (
|
|
@@ -2335,6 +2400,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
2335
2400
|
published_at=date(2026, 9, 2),
|
|
2336
2401
|
# minimal is rejected; default thinking level is medium when unset.
|
|
2337
2402
|
# https://ai.google.dev/gemini-api/docs/models/gemini-3.8-flash
|
|
2403
|
+
default_options={"reasoning_effort": "medium"},
|
|
2338
2404
|
supported_reasoning_efforts=["low", "medium", "high"],
|
|
2339
2405
|
)
|
|
2340
2406
|
case LanguageModelName.GEMINI_3_FLASH_PREVIEW:
|
|
@@ -2356,7 +2422,9 @@ class LanguageModelInfo(BaseModel):
|
|
|
2356
2422
|
),
|
|
2357
2423
|
info_cutoff_at=date(2025, 1, day=1),
|
|
2358
2424
|
published_at=date(2025, 12, 17),
|
|
2359
|
-
|
|
2425
|
+
# thinkingLevel includes minimal. Default when unset is high.
|
|
2426
|
+
default_options={"reasoning_effort": "medium"},
|
|
2427
|
+
supported_reasoning_efforts=["minimal", "low", "medium", "high"],
|
|
2360
2428
|
)
|
|
2361
2429
|
case LanguageModelName.GEMINI_3_PRO_PREVIEW:
|
|
2362
2430
|
return cls(
|
|
@@ -2377,7 +2445,9 @@ class LanguageModelInfo(BaseModel):
|
|
|
2377
2445
|
),
|
|
2378
2446
|
info_cutoff_at=date(2025, 1, day=1),
|
|
2379
2447
|
published_at=date(2025, 11, 13),
|
|
2380
|
-
|
|
2448
|
+
# thinkingLevel is low or high.
|
|
2449
|
+
default_options={"reasoning_effort": "low"},
|
|
2450
|
+
supported_reasoning_efforts=["low", "high"],
|
|
2381
2451
|
)
|
|
2382
2452
|
case LanguageModelName.GROK_4_1_FAST_NON_REASONING:
|
|
2383
2453
|
return cls(
|
|
@@ -2446,6 +2516,7 @@ class LanguageModelInfo(BaseModel):
|
|
|
2446
2516
|
),
|
|
2447
2517
|
info_cutoff_at=date(2026, 2, day=1),
|
|
2448
2518
|
published_at=date(2026, 7, 16),
|
|
2519
|
+
default_options={"reasoning_effort": "medium"},
|
|
2449
2520
|
supported_reasoning_efforts=["low", "medium", "high"],
|
|
2450
2521
|
)
|
|
2451
2522
|
case LanguageModelName.GROK_4_6:
|
|
@@ -3313,7 +3384,9 @@ class LanguageModelInfo(BaseModel):
|
|
|
3313
3384
|
token_limit_input=1_000_000, token_limit_output=384_000
|
|
3314
3385
|
),
|
|
3315
3386
|
published_at=date(2026, 1, 1),
|
|
3316
|
-
|
|
3387
|
+
# reasoning_effort is high or max.
|
|
3388
|
+
default_options={"reasoning_effort": "high"},
|
|
3389
|
+
supported_reasoning_efforts=["high", "max"],
|
|
3317
3390
|
)
|
|
3318
3391
|
case LanguageModelName.LITELLM_DEEPSEEK_V4_1_FLASH:
|
|
3319
3392
|
return cls(
|
|
@@ -3337,7 +3410,9 @@ class LanguageModelInfo(BaseModel):
|
|
|
3337
3410
|
token_limits=LanguageModelTokenLimits(
|
|
3338
3411
|
token_limit_input=1_000_000, token_limit_output=384_000
|
|
3339
3412
|
),
|
|
3340
|
-
|
|
3413
|
+
# Same V4 effort scale as Pro: high or max.
|
|
3414
|
+
default_options={"reasoning_effort": "high"},
|
|
3415
|
+
supported_reasoning_efforts=["high", "max"],
|
|
3341
3416
|
)
|
|
3342
3417
|
case LanguageModelName.LITELLM_GLM_5_1:
|
|
3343
3418
|
return cls(
|
|
@@ -3394,7 +3469,9 @@ class LanguageModelInfo(BaseModel):
|
|
|
3394
3469
|
token_limit_input=1_000_000, token_limit_output=1_000_000
|
|
3395
3470
|
),
|
|
3396
3471
|
published_at=date(2026, 7, 31), # HF repo creation date
|
|
3397
|
-
|
|
3472
|
+
# Phoeniqs accepts low, high, and max.
|
|
3473
|
+
default_options={"reasoning_effort": "low"},
|
|
3474
|
+
supported_reasoning_efforts=["low", "high", "max"],
|
|
3398
3475
|
)
|
|
3399
3476
|
case LanguageModelName.LITELLM_PHOENIQS_GEMMA_4_31B:
|
|
3400
3477
|
return cls(
|
|
@@ -3433,7 +3510,9 @@ class LanguageModelInfo(BaseModel):
|
|
|
3433
3510
|
2026, 6, 16
|
|
3434
3511
|
), # HF repo creation date — unlike the
|
|
3435
3512
|
# Together AI entry above, not an unsourced placeholder.
|
|
3436
|
-
|
|
3513
|
+
# Phoeniqs accepts low and high.
|
|
3514
|
+
default_options={"reasoning_effort": "low"},
|
|
3515
|
+
supported_reasoning_efforts=["low", "high"],
|
|
3437
3516
|
)
|
|
3438
3517
|
case LanguageModelName.LITELLM_PHOENIQS_GLM_5_3_FLASH:
|
|
3439
3518
|
return cls(
|
|
@@ -3516,7 +3595,9 @@ class LanguageModelInfo(BaseModel):
|
|
|
3516
3595
|
token_limit_output=128_000,
|
|
3517
3596
|
),
|
|
3518
3597
|
published_at=date(2026, 7, 27),
|
|
3519
|
-
|
|
3598
|
+
# reasoning_effort is low, high, or max.
|
|
3599
|
+
default_options={"reasoning_effort": "low"},
|
|
3600
|
+
supported_reasoning_efforts=["low", "high", "max"],
|
|
3520
3601
|
)
|
|
3521
3602
|
case LanguageModelName.LITELLM_QWEN_3:
|
|
3522
3603
|
return cls(
|
{unique_toolkit-2026.42.0.dev4.dist-info → unique_toolkit-2026.42.0.dev6.dist-info}/METADATA
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: unique-toolkit
|
|
3
|
-
Version: 2026.42.0.
|
|
3
|
+
Version: 2026.42.0.dev6
|
|
4
4
|
Summary:
|
|
5
5
|
Author: Cedric Klinkert, Martin Fadler, Sadique Sheik, Fabian Schläpfer, Pascal Hauri, Ejiroghene Oki-Peter, Rami Azouz, Ricardo Visini, Sanzio Monti
|
|
6
6
|
Author-email: Cedric Klinkert <cedric.klinkert@unique.ch>, Martin Fadler <martin.fadler@unique.ch>, Sadique Sheik <sadique@unique.ch>, Fabian Schläpfer <fabian@unique.ch>, Pascal Hauri <pascal@unique.ch>, Ejiroghene Oki-Peter <oki-peter.ejiroghene@unique.ai>, Rami Azouz <rami.ext@unique.ch>, Ricardo Visini <ricardo.visini@unique.ch>, Sanzio Monti <sanzio.monti@unique.ai>
|
|
@@ -254,7 +254,7 @@ unique_toolkit/app/init_logging.py,sha256=3Rl-BY1cYyP-E-C5xcvUrbm5KqoXPBPl0lA9Sj
|
|
|
254
254
|
unique_toolkit/app/init_sdk.py,sha256=5_oDoETr6akwYyBCb0ivTdMNu3SVgPSkrXcDS6ELyY8,2269
|
|
255
255
|
unique_toolkit/app/performance/async_tasks.py,sha256=8Xv5kEmmFDJO7YyyBxv4e7bcNgq-3z_E2_4z1Yn9EqU,1970
|
|
256
256
|
unique_toolkit/app/performance/async_wrapper.py,sha256=yVVcRDkcdyfjsxro-N29SBvi-7773wnfDplef6-y8xw,1077
|
|
257
|
-
unique_toolkit/app/schemas.py,sha256=
|
|
257
|
+
unique_toolkit/app/schemas.py,sha256=1OXs2408Zr8lcUHZZrcMR-z1nzAxFLyOWQ39DbmjB5c,18882
|
|
258
258
|
unique_toolkit/app/unique_settings.py,sha256=dfqqh1Nv2JaqL3fePndmuRAfJcARzImdwSOO1J3KS1E,27318
|
|
259
259
|
unique_toolkit/app/verification.py,sha256=GxFFwcJMy25fCA_Xe89wKW7bgqOu8PAs5y8QpHF0GSc,3861
|
|
260
260
|
unique_toolkit/app/webhook.py,sha256=evpxLDnvz7P3D7-TV1XBkl8WcoldXpjOkw3tvFRxHr0,2368
|
|
@@ -397,7 +397,7 @@ unique_toolkit/language_model/builder.py,sha256=KwBzsD6-fvQnB4p2I7M-5Tk6j4tmQ973
|
|
|
397
397
|
unique_toolkit/language_model/constants.py,sha256=B-topqW0r83dkC_25DeQfnPk3n53qzIHUCBS7YJ0-1U,119
|
|
398
398
|
unique_toolkit/language_model/default_language_model.py,sha256=mcyuFs_V6tp52C8xJSHiEHO4kFGj6xed1gvozvCRD7k,1181
|
|
399
399
|
unique_toolkit/language_model/functions.py,sha256=W6JC4LUh-LZ9waDgph--xVmKeQ7Ls6NRAqDx9DwQdeY,26691
|
|
400
|
-
unique_toolkit/language_model/infos.py,sha256=
|
|
400
|
+
unique_toolkit/language_model/infos.py,sha256=O5NBD-3z_8GvifPjxWXGihx-RrUKKhi1wFMojdb7NdA,178580
|
|
401
401
|
unique_toolkit/language_model/invocation_stats.py,sha256=CQbpUz394IsVd8eNTB1gPSMt5f0UXmkN1amNsqtAW6U,5857
|
|
402
402
|
unique_toolkit/language_model/model_costs.py,sha256=ShuDAzMew1fUkJ3tzPgU5Zqjp6ivUZaG97BFh93tEn4,6358
|
|
403
403
|
unique_toolkit/language_model/prompt.py,sha256=JSawaLjQg3VR-E2fK8engFyJnNdk21zaO8pPIodzN4Q,3991
|
|
@@ -426,6 +426,6 @@ unique_toolkit/short_term_memory/service.py,sha256=2JMBEBn6GoyK-a0xvdcWpPft-3C74
|
|
|
426
426
|
unique_toolkit/smart_rules/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
427
427
|
unique_toolkit/smart_rules/compile.py,sha256=vRe0aMJWuVIK-VsqomgxQImzke7MDmwgSxxJfYCa7zw,1386
|
|
428
428
|
unique_toolkit/test_utilities/events.py,sha256=FLrhMh0A_mQutAUjoD0FdMcVQ4Gq31r35OVGzRjvLro,6760
|
|
429
|
-
unique_toolkit-2026.42.0.
|
|
430
|
-
unique_toolkit-2026.42.0.
|
|
431
|
-
unique_toolkit-2026.42.0.
|
|
429
|
+
unique_toolkit-2026.42.0.dev6.dist-info/WHEEL,sha256=eh7sammvW2TypMMMGKgsM83HyA_3qQ5Lgg3ynoecH3M,79
|
|
430
|
+
unique_toolkit-2026.42.0.dev6.dist-info/METADATA,sha256=9WKUOCtvXNQS7Svf4qdFEfym23otCvkrLHRhQscwag0,7821
|
|
431
|
+
unique_toolkit-2026.42.0.dev6.dist-info/RECORD,,
|
|
File without changes
|