llms-py 3.0.10__tar.gz → 3.0.11__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 (195) hide show
  1. {llms_py-3.0.10 → llms_py-3.0.11}/PKG-INFO +1 -1
  2. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/app/db.py +2 -2
  3. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/providers/anthropic.py +9 -1
  4. {llms_py-3.0.10 → llms_py-3.0.11}/llms/main.py +203 -121
  5. {llms_py-3.0.10 → llms_py-3.0.11}/llms/ui/ai.mjs +1 -1
  6. {llms_py-3.0.10 → llms_py-3.0.11}/llms_py.egg-info/PKG-INFO +1 -1
  7. {llms_py-3.0.10 → llms_py-3.0.11}/llms_py.egg-info/SOURCES.txt +1 -0
  8. {llms_py-3.0.10 → llms_py-3.0.11}/pyproject.toml +1 -1
  9. {llms_py-3.0.10 → llms_py-3.0.11}/setup.py +1 -1
  10. llms_py-3.0.11/tests/test_interleaved_thinking.py +60 -0
  11. {llms_py-3.0.10 → llms_py-3.0.11}/tests/test_provider_config.py +0 -1
  12. {llms_py-3.0.10 → llms_py-3.0.11}/LICENSE +0 -0
  13. {llms_py-3.0.10 → llms_py-3.0.11}/MANIFEST.in +0 -0
  14. {llms_py-3.0.10 → llms_py-3.0.11}/README.md +0 -0
  15. {llms_py-3.0.10 → llms_py-3.0.11}/llms/__init__.py +0 -0
  16. {llms_py-3.0.10 → llms_py-3.0.11}/llms/__main__.py +0 -0
  17. {llms_py-3.0.10 → llms_py-3.0.11}/llms/db.py +0 -0
  18. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/analytics/ui/index.mjs +0 -0
  19. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/app/README.md +0 -0
  20. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/app/__init__.py +0 -0
  21. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/app/ui/Recents.mjs +0 -0
  22. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/app/ui/index.mjs +0 -0
  23. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/app/ui/threadStore.mjs +0 -0
  24. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/core_tools/CALCULATOR.md +0 -0
  25. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/core_tools/__init__.py +0 -0
  26. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/core_tools/ui/codemirror/addon/edit/closebrackets.js +0 -0
  27. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/core_tools/ui/codemirror/addon/edit/closetag.js +0 -0
  28. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/core_tools/ui/codemirror/addon/edit/continuelist.js +0 -0
  29. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/core_tools/ui/codemirror/addon/edit/matchbrackets.js +0 -0
  30. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/core_tools/ui/codemirror/addon/edit/matchtags.js +0 -0
  31. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/core_tools/ui/codemirror/addon/edit/trailingspace.js +0 -0
  32. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/core_tools/ui/codemirror/addon/selection/active-line.js +0 -0
  33. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/core_tools/ui/codemirror/addon/selection/mark-selection.js +0 -0
  34. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/core_tools/ui/codemirror/addon/selection/selection-pointer.js +0 -0
  35. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/core_tools/ui/codemirror/codemirror.css +0 -0
  36. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/core_tools/ui/codemirror/codemirror.js +0 -0
  37. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/core_tools/ui/codemirror/doc/docs.css +0 -0
  38. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/core_tools/ui/codemirror/doc/source_sans.woff +0 -0
  39. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/core_tools/ui/codemirror/mode/clike/clike.js +0 -0
  40. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/core_tools/ui/codemirror/mode/javascript/index.html +0 -0
  41. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/core_tools/ui/codemirror/mode/javascript/javascript.js +0 -0
  42. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/core_tools/ui/codemirror/mode/javascript/typescript.html +0 -0
  43. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/core_tools/ui/codemirror/mode/python/python.js +0 -0
  44. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/core_tools/ui/codemirror/theme/dracula.css +0 -0
  45. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/core_tools/ui/codemirror/theme/mocha.css +0 -0
  46. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/core_tools/ui/index.mjs +0 -0
  47. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/gallery/README.md +0 -0
  48. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/gallery/__init__.py +0 -0
  49. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/gallery/db.py +0 -0
  50. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/gallery/ui/index.mjs +0 -0
  51. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/README.md +0 -0
  52. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/__init__.py +0 -0
  53. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/README.md +0 -0
  54. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/contrib/auto-render.js +0 -0
  55. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/contrib/auto-render.min.js +0 -0
  56. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/contrib/auto-render.mjs +0 -0
  57. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/contrib/copy-tex.js +0 -0
  58. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/contrib/copy-tex.min.js +0 -0
  59. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/contrib/copy-tex.mjs +0 -0
  60. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/contrib/mathtex-script-type.js +0 -0
  61. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/contrib/mathtex-script-type.min.js +0 -0
  62. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/contrib/mathtex-script-type.mjs +0 -0
  63. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/contrib/mhchem.js +0 -0
  64. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/contrib/mhchem.min.js +0 -0
  65. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/contrib/mhchem.mjs +0 -0
  66. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/contrib/render-a11y-string.js +0 -0
  67. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/contrib/render-a11y-string.min.js +0 -0
  68. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/contrib/render-a11y-string.mjs +0 -0
  69. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/fonts/KaTeX_AMS-Regular.ttf +0 -0
  70. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/fonts/KaTeX_AMS-Regular.woff +0 -0
  71. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/fonts/KaTeX_AMS-Regular.woff2 +0 -0
  72. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/fonts/KaTeX_Caligraphic-Bold.ttf +0 -0
  73. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/fonts/KaTeX_Caligraphic-Bold.woff +0 -0
  74. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/fonts/KaTeX_Caligraphic-Bold.woff2 +0 -0
  75. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/fonts/KaTeX_Caligraphic-Regular.ttf +0 -0
  76. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/fonts/KaTeX_Caligraphic-Regular.woff +0 -0
  77. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/fonts/KaTeX_Caligraphic-Regular.woff2 +0 -0
  78. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/fonts/KaTeX_Fraktur-Bold.ttf +0 -0
  79. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/fonts/KaTeX_Fraktur-Bold.woff +0 -0
  80. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/fonts/KaTeX_Fraktur-Bold.woff2 +0 -0
  81. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/fonts/KaTeX_Fraktur-Regular.ttf +0 -0
  82. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/fonts/KaTeX_Fraktur-Regular.woff +0 -0
  83. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/fonts/KaTeX_Fraktur-Regular.woff2 +0 -0
  84. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/fonts/KaTeX_Main-Bold.ttf +0 -0
  85. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/fonts/KaTeX_Main-Bold.woff +0 -0
  86. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/fonts/KaTeX_Main-Bold.woff2 +0 -0
  87. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/fonts/KaTeX_Main-BoldItalic.ttf +0 -0
  88. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/fonts/KaTeX_Main-BoldItalic.woff +0 -0
  89. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/fonts/KaTeX_Main-BoldItalic.woff2 +0 -0
  90. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/fonts/KaTeX_Main-Italic.ttf +0 -0
  91. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/fonts/KaTeX_Main-Italic.woff +0 -0
  92. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/fonts/KaTeX_Main-Italic.woff2 +0 -0
  93. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/fonts/KaTeX_Main-Regular.ttf +0 -0
  94. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/fonts/KaTeX_Main-Regular.woff +0 -0
  95. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/fonts/KaTeX_Main-Regular.woff2 +0 -0
  96. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/fonts/KaTeX_Math-BoldItalic.ttf +0 -0
  97. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/fonts/KaTeX_Math-BoldItalic.woff +0 -0
  98. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/fonts/KaTeX_Math-BoldItalic.woff2 +0 -0
  99. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/fonts/KaTeX_Math-Italic.ttf +0 -0
  100. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/fonts/KaTeX_Math-Italic.woff +0 -0
  101. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/fonts/KaTeX_Math-Italic.woff2 +0 -0
  102. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Bold.ttf +0 -0
  103. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Bold.woff +0 -0
  104. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Bold.woff2 +0 -0
  105. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Italic.ttf +0 -0
  106. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Italic.woff +0 -0
  107. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Italic.woff2 +0 -0
  108. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Regular.ttf +0 -0
  109. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Regular.woff +0 -0
  110. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Regular.woff2 +0 -0
  111. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/fonts/KaTeX_Script-Regular.ttf +0 -0
  112. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/fonts/KaTeX_Script-Regular.woff +0 -0
  113. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/fonts/KaTeX_Script-Regular.woff2 +0 -0
  114. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/fonts/KaTeX_Size1-Regular.ttf +0 -0
  115. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/fonts/KaTeX_Size1-Regular.woff +0 -0
  116. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/fonts/KaTeX_Size1-Regular.woff2 +0 -0
  117. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/fonts/KaTeX_Size2-Regular.ttf +0 -0
  118. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/fonts/KaTeX_Size2-Regular.woff +0 -0
  119. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/fonts/KaTeX_Size2-Regular.woff2 +0 -0
  120. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/fonts/KaTeX_Size3-Regular.ttf +0 -0
  121. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/fonts/KaTeX_Size3-Regular.woff +0 -0
  122. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/fonts/KaTeX_Size3-Regular.woff2 +0 -0
  123. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/fonts/KaTeX_Size4-Regular.ttf +0 -0
  124. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/fonts/KaTeX_Size4-Regular.woff +0 -0
  125. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/fonts/KaTeX_Size4-Regular.woff2 +0 -0
  126. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/fonts/KaTeX_Typewriter-Regular.ttf +0 -0
  127. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/fonts/KaTeX_Typewriter-Regular.woff +0 -0
  128. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/fonts/KaTeX_Typewriter-Regular.woff2 +0 -0
  129. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/index.mjs +0 -0
  130. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/katex-swap.css +0 -0
  131. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/katex-swap.min.css +0 -0
  132. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/katex.css +0 -0
  133. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/katex.js +0 -0
  134. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/katex.min.css +0 -0
  135. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/katex.min.js +0 -0
  136. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/katex.min.mjs +0 -0
  137. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/katex/ui/katex.mjs +0 -0
  138. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/providers/__init__.py +0 -0
  139. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/providers/cerebras.py +0 -0
  140. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/providers/chutes.py +0 -0
  141. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/providers/google.py +0 -0
  142. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/providers/nvidia.py +0 -0
  143. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/providers/openai.py +0 -0
  144. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/providers/openrouter.py +0 -0
  145. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/providers/zai.py +0 -0
  146. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/system_prompts/README.md +0 -0
  147. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/system_prompts/__init__.py +0 -0
  148. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/system_prompts/ui/index.mjs +0 -0
  149. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/system_prompts/ui/prompts.json +0 -0
  150. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/tools/__init__.py +0 -0
  151. {llms_py-3.0.10 → llms_py-3.0.11}/llms/extensions/tools/ui/index.mjs +0 -0
  152. {llms_py-3.0.10 → llms_py-3.0.11}/llms/index.html +0 -0
  153. {llms_py-3.0.10 → llms_py-3.0.11}/llms/llms.json +0 -0
  154. {llms_py-3.0.10 → llms_py-3.0.11}/llms/providers-extra.json +0 -0
  155. {llms_py-3.0.10 → llms_py-3.0.11}/llms/providers.json +0 -0
  156. {llms_py-3.0.10 → llms_py-3.0.11}/llms/ui/App.mjs +0 -0
  157. {llms_py-3.0.10 → llms_py-3.0.11}/llms/ui/app.css +0 -0
  158. {llms_py-3.0.10 → llms_py-3.0.11}/llms/ui/ctx.mjs +0 -0
  159. {llms_py-3.0.10 → llms_py-3.0.11}/llms/ui/fav.svg +0 -0
  160. {llms_py-3.0.10 → llms_py-3.0.11}/llms/ui/index.mjs +0 -0
  161. {llms_py-3.0.10 → llms_py-3.0.11}/llms/ui/lib/chart.js +0 -0
  162. {llms_py-3.0.10 → llms_py-3.0.11}/llms/ui/lib/charts.mjs +0 -0
  163. {llms_py-3.0.10 → llms_py-3.0.11}/llms/ui/lib/color.js +0 -0
  164. {llms_py-3.0.10 → llms_py-3.0.11}/llms/ui/lib/highlight.min.mjs +0 -0
  165. {llms_py-3.0.10 → llms_py-3.0.11}/llms/ui/lib/idb.min.mjs +0 -0
  166. {llms_py-3.0.10 → llms_py-3.0.11}/llms/ui/lib/marked.min.mjs +0 -0
  167. {llms_py-3.0.10 → llms_py-3.0.11}/llms/ui/lib/servicestack-client.mjs +0 -0
  168. {llms_py-3.0.10 → llms_py-3.0.11}/llms/ui/lib/servicestack-vue.mjs +0 -0
  169. {llms_py-3.0.10 → llms_py-3.0.11}/llms/ui/lib/vue-router.min.mjs +0 -0
  170. {llms_py-3.0.10 → llms_py-3.0.11}/llms/ui/lib/vue.min.mjs +0 -0
  171. {llms_py-3.0.10 → llms_py-3.0.11}/llms/ui/lib/vue.mjs +0 -0
  172. {llms_py-3.0.10 → llms_py-3.0.11}/llms/ui/markdown.mjs +0 -0
  173. {llms_py-3.0.10 → llms_py-3.0.11}/llms/ui/modules/chat/ChatBody.mjs +0 -0
  174. {llms_py-3.0.10 → llms_py-3.0.11}/llms/ui/modules/chat/SettingsDialog.mjs +0 -0
  175. {llms_py-3.0.10 → llms_py-3.0.11}/llms/ui/modules/chat/index.mjs +0 -0
  176. {llms_py-3.0.10 → llms_py-3.0.11}/llms/ui/modules/icons.mjs +0 -0
  177. {llms_py-3.0.10 → llms_py-3.0.11}/llms/ui/modules/layout.mjs +0 -0
  178. {llms_py-3.0.10 → llms_py-3.0.11}/llms/ui/modules/model-selector.mjs +0 -0
  179. {llms_py-3.0.10 → llms_py-3.0.11}/llms/ui/tailwind.input.css +0 -0
  180. {llms_py-3.0.10 → llms_py-3.0.11}/llms/ui/typography.css +0 -0
  181. {llms_py-3.0.10 → llms_py-3.0.11}/llms/ui/utils.mjs +0 -0
  182. {llms_py-3.0.10 → llms_py-3.0.11}/llms_py.egg-info/dependency_links.txt +0 -0
  183. {llms_py-3.0.10 → llms_py-3.0.11}/llms_py.egg-info/entry_points.txt +0 -0
  184. {llms_py-3.0.10 → llms_py-3.0.11}/llms_py.egg-info/not-zip-safe +0 -0
  185. {llms_py-3.0.10 → llms_py-3.0.11}/llms_py.egg-info/requires.txt +0 -0
  186. {llms_py-3.0.10 → llms_py-3.0.11}/llms_py.egg-info/top_level.txt +0 -0
  187. {llms_py-3.0.10 → llms_py-3.0.11}/requirements.txt +0 -0
  188. {llms_py-3.0.10 → llms_py-3.0.11}/setup.cfg +0 -0
  189. {llms_py-3.0.10 → llms_py-3.0.11}/tests/test_async.py +0 -0
  190. {llms_py-3.0.10 → llms_py-3.0.11}/tests/test_config.py +0 -0
  191. {llms_py-3.0.10 → llms_py-3.0.11}/tests/test_extensions.py +0 -0
  192. {llms_py-3.0.10 → llms_py-3.0.11}/tests/test_gemini_upload.py +0 -0
  193. {llms_py-3.0.10 → llms_py-3.0.11}/tests/test_integration.py +0 -0
  194. {llms_py-3.0.10 → llms_py-3.0.11}/tests/test_provider_checks.py +0 -0
  195. {llms_py-3.0.10 → llms_py-3.0.11}/tests/test_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: llms-py
3
- Version: 3.0.10
3
+ Version: 3.0.11
4
4
  Summary: A lightweight CLI tool and OpenAI-compatible server for querying multiple Large Language Model (LLM) providers
5
5
  Home-page: https://github.com/ServiceStack/llms
6
6
  Author: ServiceStack
@@ -528,9 +528,9 @@ class AppDB:
528
528
  with self.db.create_writer_connection() as conn:
529
529
  conn.execute(
530
530
  "UPDATE thread SET completedAt = :completedAt, error = :error WHERE completedAt IS NULL",
531
- {"completedAt": datetime.now(), "error": "Server Shutdown"},
531
+ {"completedAt": datetime.now().isoformat(" "), "error": "Server Shutdown"},
532
532
  )
533
533
  conn.execute(
534
534
  "UPDATE request SET completedAt = :completedAt, error = :error WHERE completedAt IS NULL",
535
- {"completedAt": datetime.now(), "error": "Server Shutdown"},
535
+ {"completedAt": datetime.now().isoformat(" "), "error": "Server Shutdown"},
536
536
  )
@@ -77,9 +77,17 @@ def install_anthropic(ctx):
77
77
 
78
78
  anthropic_message = {"role": message.get("role"), "content": []}
79
79
 
80
+ # Handle interleaved thinking (must always be a list if present)
81
+ if "thinking" in message and message["thinking"]:
82
+ anthropic_message["content"].append({"type": "thinking", "thinking": message["thinking"]})
83
+
80
84
  content = message.get("content", "")
81
85
  if isinstance(content, str):
82
- anthropic_message["content"] = content
86
+ if anthropic_message["content"]:
87
+ # If we have thinking, we must use blocks for text
88
+ anthropic_message["content"].append({"type": "text", "text": content})
89
+ else:
90
+ anthropic_message["content"] = content
83
91
  elif isinstance(content, list):
84
92
  for item in content:
85
93
  if item.get("type") == "text":