kash-shell 0.3.24__tar.gz → 0.3.25__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 (318) hide show
  1. {kash_shell-0.3.24 → kash_shell-0.3.25}/PKG-INFO +2 -2
  2. {kash_shell-0.3.24 → kash_shell-0.3.25}/pyproject.toml +1 -1
  3. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/embeddings/embeddings.py +3 -5
  4. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/embeddings/text_similarity.py +2 -5
  5. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/help/help_embeddings.py +3 -0
  6. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/llm_utils/llm_features.py +1 -1
  7. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/llm_utils/llms.py +5 -7
  8. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/model/params_model.py +1 -1
  9. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/utils/text_handling/doc_normalization.py +2 -0
  10. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/web_gen/templates/base_styles.css.jinja +8 -1
  11. {kash_shell-0.3.24 → kash_shell-0.3.25}/uv.lock +153 -124
  12. {kash_shell-0.3.24 → kash_shell-0.3.25}/.copier-answers.yml +0 -0
  13. {kash_shell-0.3.24 → kash_shell-0.3.25}/.cursor/rules/general.mdc +0 -0
  14. {kash_shell-0.3.24 → kash_shell-0.3.25}/.cursor/rules/python.mdc +0 -0
  15. {kash_shell-0.3.24 → kash_shell-0.3.25}/.env.template +0 -0
  16. {kash_shell-0.3.24 → kash_shell-0.3.25}/.github/workflows/ci.yml +0 -0
  17. {kash_shell-0.3.24 → kash_shell-0.3.25}/.github/workflows/publish.yml +0 -0
  18. {kash_shell-0.3.24 → kash_shell-0.3.25}/.gitignore +0 -0
  19. {kash_shell-0.3.24 → kash_shell-0.3.25}/LICENSE +0 -0
  20. {kash_shell-0.3.24 → kash_shell-0.3.25}/Makefile +0 -0
  21. {kash_shell-0.3.24 → kash_shell-0.3.25}/README.md +0 -0
  22. {kash_shell-0.3.24 → kash_shell-0.3.25}/development.md +0 -0
  23. {kash_shell-0.3.24 → kash_shell-0.3.25}/devtools/generate_readme.xsh +0 -0
  24. {kash_shell-0.3.24 → kash_shell-0.3.25}/devtools/lint.py +0 -0
  25. {kash_shell-0.3.24 → kash_shell-0.3.25}/devtools/profile_main.py +0 -0
  26. {kash_shell-0.3.24 → kash_shell-0.3.25}/installation.md +0 -0
  27. {kash_shell-0.3.24 → kash_shell-0.3.25}/publishing.md +0 -0
  28. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/__init__.py +0 -0
  29. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/__main__.py +0 -0
  30. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/actions/__init__.py +0 -0
  31. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/actions/core/assistant_chat.py +0 -0
  32. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/actions/core/chat.py +0 -0
  33. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/actions/core/combine_docs.py +0 -0
  34. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/actions/core/concat_docs.py +0 -0
  35. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/actions/core/format_markdown_template.py +0 -0
  36. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/actions/core/markdownify_html.py +0 -0
  37. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/actions/core/minify_html.py +0 -0
  38. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/actions/core/readability.py +0 -0
  39. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/actions/core/render_as_html.py +0 -0
  40. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/actions/core/show_webpage.py +0 -0
  41. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/actions/core/strip_html.py +0 -0
  42. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/actions/core/summarize_as_bullets.py +0 -0
  43. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/actions/core/tabbed_webpage_config.py +0 -0
  44. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/actions/core/tabbed_webpage_generate.py +0 -0
  45. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/actions/meta/write_instructions.py +0 -0
  46. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/actions/meta/write_new_action.py +0 -0
  47. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/commands/__init__.py +0 -0
  48. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/commands/base/basic_file_commands.py +0 -0
  49. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/commands/base/browser_commands.py +0 -0
  50. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/commands/base/debug_commands.py +0 -0
  51. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/commands/base/diff_commands.py +0 -0
  52. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/commands/base/files_command.py +0 -0
  53. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/commands/base/general_commands.py +0 -0
  54. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/commands/base/logs_commands.py +0 -0
  55. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/commands/base/model_commands.py +0 -0
  56. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/commands/base/reformat_command.py +0 -0
  57. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/commands/base/search_command.py +0 -0
  58. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/commands/base/show_command.py +0 -0
  59. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/commands/extras/parse_uv_lock.py +0 -0
  60. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/commands/extras/utils_commands.py +0 -0
  61. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/commands/help/assistant_commands.py +0 -0
  62. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/commands/help/doc_commands.py +0 -0
  63. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/commands/help/help_commands.py +0 -0
  64. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/commands/help/logo.py +0 -0
  65. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/commands/help/welcome.py +0 -0
  66. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/commands/workspace/selection_commands.py +0 -0
  67. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/commands/workspace/workspace_commands.py +0 -0
  68. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/config/__init__.py +0 -0
  69. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/config/capture_output.py +0 -0
  70. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/config/colors.py +0 -0
  71. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/config/env_settings.py +0 -0
  72. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/config/init.py +0 -0
  73. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/config/lazy_imports.py +0 -0
  74. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/config/logger.py +0 -0
  75. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/config/logger_basic.py +0 -0
  76. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/config/logo.txt +0 -0
  77. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/config/server_config.py +0 -0
  78. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/config/settings.py +0 -0
  79. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/config/setup.py +0 -0
  80. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/config/suppress_warnings.py +0 -0
  81. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/config/text_styles.py +0 -0
  82. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/docs/__init__.py +0 -0
  83. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/docs/all_docs.py +0 -0
  84. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/docs/load_actions_info.py +0 -0
  85. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/docs/load_api_docs.py +0 -0
  86. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/docs/load_help_topics.py +0 -0
  87. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/docs/load_source_code.py +0 -0
  88. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/docs/markdown/api_docs_template.md +0 -0
  89. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/docs/markdown/assistant_instructions_template.md +0 -0
  90. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/docs/markdown/readme_template.md +0 -0
  91. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/docs/markdown/topics/a1_what_is_kash.md +0 -0
  92. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/docs/markdown/topics/a2_installation.md +0 -0
  93. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/docs/markdown/topics/a3_getting_started.md +0 -0
  94. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/docs/markdown/topics/a4_elements.md +0 -0
  95. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/docs/markdown/topics/a5_tips_for_use_with_other_tools.md +0 -0
  96. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/docs/markdown/topics/b0_philosophy_of_kash.md +0 -0
  97. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/docs/markdown/topics/b1_kash_overview.md +0 -0
  98. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/docs/markdown/topics/b2_workspace_and_file_formats.md +0 -0
  99. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/docs/markdown/topics/b3_modern_shell_tool_recommendations.md +0 -0
  100. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/docs/markdown/topics/b4_faq.md +0 -0
  101. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/docs/markdown/warning.md +0 -0
  102. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/docs/markdown/welcome.md +0 -0
  103. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/docs_base/docs_base.py +0 -0
  104. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/docs_base/load_custom_command_info.py +0 -0
  105. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/docs_base/load_faqs.py +0 -0
  106. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/docs_base/load_recipe_snippets.py +0 -0
  107. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/docs_base/recipes/general_system_commands.sh +0 -0
  108. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/docs_base/recipes/python_dev_commands.sh +0 -0
  109. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/docs_base/recipes/tldr_standard_commands.sh +0 -0
  110. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/embeddings/cosine.py +0 -0
  111. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/exec/__init__.py +0 -0
  112. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/exec/action_decorators.py +0 -0
  113. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/exec/action_exec.py +0 -0
  114. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/exec/action_registry.py +0 -0
  115. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/exec/combiners.py +0 -0
  116. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/exec/command_exec.py +0 -0
  117. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/exec/command_registry.py +0 -0
  118. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/exec/fetch_url_items.py +0 -0
  119. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/exec/history.py +0 -0
  120. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/exec/importing.py +0 -0
  121. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/exec/llm_transforms.py +0 -0
  122. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/exec/precondition_checks.py +0 -0
  123. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/exec/precondition_registry.py +0 -0
  124. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/exec/preconditions.py +0 -0
  125. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/exec/resolve_args.py +0 -0
  126. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/exec/runtime_settings.py +0 -0
  127. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/exec/shell_callable_action.py +0 -0
  128. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/exec_model/__init__.py +0 -0
  129. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/exec_model/args_model.py +0 -0
  130. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/exec_model/commands_model.py +0 -0
  131. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/exec_model/script_model.py +0 -0
  132. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/exec_model/shell_model.py +0 -0
  133. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/file_storage/__init__.py +0 -0
  134. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/file_storage/file_store.py +0 -0
  135. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/file_storage/item_file_format.py +0 -0
  136. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/file_storage/metadata_dirs.py +0 -0
  137. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/file_storage/persisted_yaml.py +0 -0
  138. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/file_storage/store_cache_warmer.py +0 -0
  139. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/file_storage/store_filenames.py +0 -0
  140. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/help/__init__.py +0 -0
  141. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/help/assistant.py +0 -0
  142. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/help/assistant_instructions.py +0 -0
  143. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/help/assistant_output.py +0 -0
  144. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/help/function_param_info.py +0 -0
  145. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/help/help_lookups.py +0 -0
  146. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/help/help_pages.py +0 -0
  147. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/help/help_printing.py +0 -0
  148. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/help/help_types.py +0 -0
  149. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/help/recommended_commands.py +0 -0
  150. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/help/tldr_help.py +0 -0
  151. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/llm_utils/__init__.py +0 -0
  152. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/llm_utils/clean_headings.py +0 -0
  153. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/llm_utils/custom_sliding_transforms.py +0 -0
  154. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/llm_utils/fuzzy_parsing.py +0 -0
  155. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/llm_utils/init_litellm.py +0 -0
  156. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/llm_utils/llm_api_keys.py +0 -0
  157. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/llm_utils/llm_completion.py +0 -0
  158. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/llm_utils/llm_messages.py +0 -0
  159. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/llm_utils/llm_names.py +0 -0
  160. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/local_server/__init__.py +0 -0
  161. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/local_server/local_server.py +0 -0
  162. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/local_server/local_server_commands.py +0 -0
  163. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/local_server/local_server_routes.py +0 -0
  164. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/local_server/local_url_formatters.py +0 -0
  165. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/local_server/port_tools.py +0 -0
  166. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/local_server/rich_html_template.py +0 -0
  167. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/mcp/__init__.py +0 -0
  168. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/mcp/mcp_cli.py +0 -0
  169. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/mcp/mcp_main.py +0 -0
  170. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/mcp/mcp_server_commands.py +0 -0
  171. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/mcp/mcp_server_routes.py +0 -0
  172. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/mcp/mcp_server_sse.py +0 -0
  173. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/mcp/mcp_server_stdio.py +0 -0
  174. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/media_base/__init__.py +0 -0
  175. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/media_base/audio_processing.py +0 -0
  176. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/media_base/media_cache.py +0 -0
  177. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/media_base/media_services.py +0 -0
  178. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/media_base/media_tools.py +0 -0
  179. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/media_base/services/local_file_media.py +0 -0
  180. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/media_base/timestamp_citations.py +0 -0
  181. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/media_base/transcription_deepgram.py +0 -0
  182. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/media_base/transcription_format.py +0 -0
  183. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/media_base/transcription_whisper.py +0 -0
  184. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/model/__init__.py +0 -0
  185. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/model/actions_model.py +0 -0
  186. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/model/assistant_response_model.py +0 -0
  187. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/model/compound_actions_model.py +0 -0
  188. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/model/concept_model.py +0 -0
  189. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/model/exec_model.py +0 -0
  190. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/model/graph_model.py +0 -0
  191. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/model/items_model.py +0 -0
  192. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/model/language_list.py +0 -0
  193. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/model/llm_actions_model.py +0 -0
  194. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/model/media_model.py +0 -0
  195. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/model/operations_model.py +0 -0
  196. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/model/paths_model.py +0 -0
  197. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/model/preconditions_model.py +0 -0
  198. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/shell/__init__.py +0 -0
  199. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/shell/completions/completion_scoring.py +0 -0
  200. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/shell/completions/completion_types.py +0 -0
  201. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/shell/completions/shell_completions.py +0 -0
  202. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/shell/file_icons/color_for_format.py +0 -0
  203. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/shell/file_icons/nerd_icons.py +0 -0
  204. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/shell/input/__init__.py +0 -0
  205. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/shell/input/input_prompts.py +0 -0
  206. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/shell/input/inquirer_settings.py +0 -0
  207. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/shell/input/param_inputs.py +0 -0
  208. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/shell/input/shell_confirm.py +0 -0
  209. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/shell/output/__init__.py +0 -0
  210. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/shell/output/kerm_code_utils.py +0 -0
  211. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/shell/output/kerm_codes.py +0 -0
  212. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/shell/output/kmarkdown.py +0 -0
  213. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/shell/output/shell_formatting.py +0 -0
  214. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/shell/output/shell_output.py +0 -0
  215. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/shell/shell_main.py +0 -0
  216. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/shell/ui/__init__.py +0 -0
  217. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/shell/ui/shell_results.py +0 -0
  218. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/shell/ui/shell_syntax.py +0 -0
  219. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/shell/utils/exception_printing.py +0 -0
  220. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/shell/utils/native_utils.py +0 -0
  221. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/shell/utils/shell_function_wrapper.py +0 -0
  222. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/shell/version.py +0 -0
  223. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/utils/__init__.py +0 -0
  224. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/utils/api_utils/api_retries.py +0 -0
  225. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/utils/api_utils/cache_requests_limited.py +0 -0
  226. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/utils/api_utils/gather_limited.py +0 -0
  227. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/utils/api_utils/http_utils.py +0 -0
  228. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/utils/api_utils/progress_protocol.py +0 -0
  229. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/utils/common/__init__.py +0 -0
  230. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/utils/common/format_utils.py +0 -0
  231. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/utils/common/function_inspect.py +0 -0
  232. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/utils/common/import_utils.py +0 -0
  233. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/utils/common/lazyobject.py +0 -0
  234. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/utils/common/obj_replace.py +0 -0
  235. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/utils/common/parse_docstring.py +0 -0
  236. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/utils/common/parse_key_vals.py +0 -0
  237. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/utils/common/parse_shell_args.py +0 -0
  238. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/utils/common/stack_traces.py +0 -0
  239. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/utils/common/task_stack.py +0 -0
  240. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/utils/common/testing.py +0 -0
  241. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/utils/common/type_utils.py +0 -0
  242. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/utils/common/uniquifier.py +0 -0
  243. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/utils/common/url.py +0 -0
  244. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/utils/common/url_slice.py +0 -0
  245. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/utils/errors.py +0 -0
  246. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/utils/file_formats/chat_format.py +0 -0
  247. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/utils/file_utils/__init__.py +0 -0
  248. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/utils/file_utils/dir_info.py +0 -0
  249. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/utils/file_utils/file_ext.py +0 -0
  250. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/utils/file_utils/file_formats.py +0 -0
  251. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/utils/file_utils/file_formats_model.py +0 -0
  252. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/utils/file_utils/file_sort_filter.py +0 -0
  253. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/utils/file_utils/file_walk.py +0 -0
  254. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/utils/file_utils/filename_parsing.py +0 -0
  255. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/utils/file_utils/ignore_files.py +0 -0
  256. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/utils/file_utils/mtime_cache.py +0 -0
  257. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/utils/file_utils/path_utils.py +0 -0
  258. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/utils/lang_utils/__init__.py +0 -0
  259. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/utils/lang_utils/capitalization.py +0 -0
  260. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/utils/rich_custom/__init__.py +0 -0
  261. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/utils/rich_custom/ansi_cell_len.py +0 -0
  262. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/utils/rich_custom/multitask_status.py +0 -0
  263. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/utils/rich_custom/rich_char_transform.py +0 -0
  264. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/utils/rich_custom/rich_indent.py +0 -0
  265. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/utils/rich_custom/rich_markdown_fork.py +0 -0
  266. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/utils/text_handling/escape_html_tags.py +0 -0
  267. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/utils/text_handling/markdown_render.py +0 -0
  268. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/utils/text_handling/markdown_utils.py +0 -0
  269. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/utils/text_handling/markdownify_utils.py +0 -0
  270. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/utils/text_handling/unified_diffs.py +0 -0
  271. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/web_content/canon_url.py +0 -0
  272. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/web_content/dir_store.py +0 -0
  273. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/web_content/file_cache_utils.py +0 -0
  274. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/web_content/file_processing.py +0 -0
  275. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/web_content/local_file_cache.py +0 -0
  276. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/web_content/web_extract.py +0 -0
  277. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/web_content/web_extract_justext.py +0 -0
  278. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/web_content/web_extract_readabilipy.py +0 -0
  279. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/web_content/web_fetch.py +0 -0
  280. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/web_content/web_page_model.py +0 -0
  281. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/web_gen/__init__.py +0 -0
  282. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/web_gen/simple_webpage.py +0 -0
  283. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/web_gen/tabbed_webpage.py +0 -0
  284. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/web_gen/template_render.py +0 -0
  285. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/web_gen/templates/base_webpage.html.jinja +0 -0
  286. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/web_gen/templates/components/toc_scripts.js.jinja +0 -0
  287. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/web_gen/templates/components/toc_styles.css.jinja +0 -0
  288. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/web_gen/templates/components/tooltip_scripts.js.jinja +0 -0
  289. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/web_gen/templates/components/tooltip_styles.css.jinja +0 -0
  290. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/web_gen/templates/content_styles.css.jinja +0 -0
  291. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/web_gen/templates/explain_view.html.jinja +0 -0
  292. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/web_gen/templates/item_view.html.jinja +0 -0
  293. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/web_gen/templates/simple_webpage.html.jinja +0 -0
  294. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/web_gen/templates/tabbed_webpage.html.jinja +0 -0
  295. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/workspaces/__init__.py +0 -0
  296. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/workspaces/param_state.py +0 -0
  297. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/workspaces/selections.py +0 -0
  298. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/workspaces/source_items.py +0 -0
  299. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/workspaces/workspace_dirs.py +0 -0
  300. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/workspaces/workspace_output.py +0 -0
  301. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/workspaces/workspace_registry.py +0 -0
  302. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/workspaces/workspaces.py +0 -0
  303. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/xonsh_custom/command_nl_utils.py +0 -0
  304. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/xonsh_custom/custom_shell.py +0 -0
  305. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/xonsh_custom/customize_prompt.py +0 -0
  306. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/xonsh_custom/load_into_xonsh.py +0 -0
  307. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/xonsh_custom/shell_load_commands.py +0 -0
  308. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/xonsh_custom/shell_which.py +0 -0
  309. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/xonsh_custom/xonsh_completers.py +0 -0
  310. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/xonsh_custom/xonsh_env.py +0 -0
  311. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/xonsh_custom/xonsh_keybindings.py +0 -0
  312. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/xonsh_custom/xonsh_modern_tools.py +0 -0
  313. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/xonsh_custom/xonsh_ranking_completer.py +0 -0
  314. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/xontrib/fnm.py +0 -0
  315. {kash_shell-0.3.24 → kash_shell-0.3.25}/src/kash/xontrib/kash_extension.py +0 -0
  316. {kash_shell-0.3.24 → kash_shell-0.3.25}/tests/kash/utils/api_utils/test_gather_limited.py +0 -0
  317. {kash_shell-0.3.24 → kash_shell-0.3.25}/tests/kash/utils/rich_custom/test_multitask_status.py +0 -0
  318. {kash_shell-0.3.24 → kash_shell-0.3.25}/tests/test_shell.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kash-shell
3
- Version: 0.3.24
3
+ Version: 0.3.25
4
4
  Summary: The knowledge agent shell (core)
5
5
  Project-URL: Repository, https://github.com/jlevy/kash-shell
6
6
  Author-email: Joshua Levy <joshua@cal.berkeley.edu>
@@ -28,7 +28,7 @@ Requires-Dist: curl-cffi>=0.11.4
28
28
  Requires-Dist: deepgram-sdk>=3.10.1
29
29
  Requires-Dist: dunamai>=1.23.0
30
30
  Requires-Dist: fastapi>=0.115.11
31
- Requires-Dist: flowmark>=0.4.6
31
+ Requires-Dist: flowmark>=0.4.8
32
32
  Requires-Dist: frontmatter-format>=0.2.1
33
33
  Requires-Dist: funlog>=0.2.0
34
34
  Requires-Dist: httpx[brotli]>=0.28.1
@@ -45,7 +45,7 @@ dependencies = [
45
45
  "strif>=3.0.1",
46
46
  "funlog>=0.2.0",
47
47
  "prettyfmt>=0.3.1",
48
- "flowmark>=0.4.6",
48
+ "flowmark>=0.4.8",
49
49
  "frontmatter-format>=0.2.1",
50
50
  "chopdiff>=0.2.3",
51
51
  "clideps>=0.1.4",
@@ -3,7 +3,7 @@ from __future__ import annotations
3
3
  import ast
4
4
  from collections.abc import Iterable
5
5
  from pathlib import Path
6
- from typing import TYPE_CHECKING, TypeAlias, cast
6
+ from typing import TYPE_CHECKING, TypeAlias
7
7
 
8
8
  from pydantic.dataclasses import dataclass
9
9
  from strif import abbrev_list
@@ -65,7 +65,6 @@ class Embeddings:
65
65
  @classmethod
66
66
  def embed(cls, keyvals: list[KeyVal], model=DEFAULT_EMBEDDING_MODEL) -> Embeddings:
67
67
  from litellm import embedding
68
- from litellm.types.utils import EmbeddingResponse
69
68
 
70
69
  init_litellm()
71
70
 
@@ -82,9 +81,8 @@ class Embeddings:
82
81
  keys = [kv[0] for kv in batch]
83
82
  texts = [kv[1] for kv in batch]
84
83
 
85
- response: EmbeddingResponse = cast(
86
- EmbeddingResponse, embedding(model=model.litellm_name, input=texts)
87
- )
84
+ response = embedding(model=model.litellm_name, input=texts)
85
+
88
86
  if not response.data:
89
87
  raise ValueError("No embedding response data")
90
88
 
@@ -1,6 +1,6 @@
1
1
  from __future__ import annotations
2
2
 
3
- from typing import TYPE_CHECKING, cast
3
+ from typing import TYPE_CHECKING
4
4
 
5
5
  from funlog import log_calls
6
6
 
@@ -24,12 +24,9 @@ def cosine_relatedness(x: ArrayLike, y: ArrayLike) -> float:
24
24
  def embed_query(model: EmbeddingModel, query: str) -> EmbeddingResponse:
25
25
  import litellm
26
26
  from litellm import embedding
27
- from litellm.types.utils import EmbeddingResponse
28
27
 
29
28
  try:
30
- response: EmbeddingResponse = cast(
31
- EmbeddingResponse, embedding(model=model.litellm_name, input=[query])
32
- )
29
+ response = embedding(model=model.litellm_name, input=[query])
33
30
  except litellm.exceptions.APIError as e:
34
31
  log.info("API error embedding query: %s", e)
35
32
  raise ApiResultError(str(e))
@@ -3,6 +3,8 @@ from __future__ import annotations
3
3
  from dataclasses import dataclass, field
4
4
  from pathlib import Path
5
5
 
6
+ from typing_extensions import override
7
+
6
8
  from kash.config.logger import get_logger
7
9
  from kash.embeddings.embeddings import Embeddings
8
10
  from kash.embeddings.text_similarity import rank_by_relatedness
@@ -19,6 +21,7 @@ class DocKey:
19
21
  doc_type: HelpDocType
20
22
  index: int
21
23
 
24
+ @override
22
25
  def __str__(self) -> str:
23
26
  return f"{self.doc_type.value}:{self.index}"
24
27
 
@@ -68,5 +68,5 @@ preferred_llms: list[LLMName] = [
68
68
  LLM.claude_4_opus,
69
69
  LLM.claude_3_7_sonnet,
70
70
  LLM.claude_3_5_haiku,
71
- LLM.gemini_2_5_pro_preview_05_06,
71
+ LLM.gemini_2_5_pro,
72
72
  ]
@@ -15,6 +15,7 @@ class LLM(LLMName, Enum):
15
15
  # https://platform.openai.com/docs/models
16
16
  o4_mini = LLMName("o4-mini")
17
17
  o3 = LLMName("o3")
18
+ o3_pro = LLMName("o3-pro")
18
19
  o3_mini = LLMName("o3-mini")
19
20
  o1 = LLMName("o1")
20
21
  o1_mini = LLMName("o1-mini")
@@ -35,13 +36,9 @@ class LLM(LLMName, Enum):
35
36
  claude_3_5_haiku = LLMName("claude-3-5-haiku-latest")
36
37
 
37
38
  # https://ai.google.dev/gemini-api/docs/models
38
- gemini_2_5_pro_preview_06_05 = LLMName("gemini/gemini-2.5-pro-preview-06-05")
39
- gemini_2_5_pro_preview_05_06 = LLMName("gemini/gemini-2.5-pro-preview-05-06")
40
- gemini_2_5_pro_preview_03_25 = LLMName("gemini/gemini-2.5-pro-preview-03-25")
41
- gemini_2_5_flash_preview = LLMName("gemini-2.5-flash-preview-05-20")
42
- gemini_2_0_flash = LLMName("gemini/gemini-2_0-flash")
43
- gemini_2_0_flash_lite = LLMName("gemini/gemini-2.0-flash-lite")
44
- gemini_2_0_pro_exp_02_05 = LLMName("gemini/gemini-2.0-pro-exp-02-05")
39
+ gemini_2_5_pro = LLMName("gemini/gemini-2.5-pro")
40
+ gemini_2_5_flash = LLMName("gemini/gemini-2.5-flash")
41
+ gemini_2_5_flash_lite = LLMName("gemini-2.5-flash-lite-preview-06-17")
45
42
 
46
43
  # https://docs.x.ai/docs/models
47
44
  xai_grok_3 = LLMName("xai/grok-3")
@@ -56,6 +53,7 @@ class LLM(LLMName, Enum):
56
53
  deepseek_reasoner = LLMName("deepseek/deepseek-reasoner")
57
54
 
58
55
  # https://console.groq.com/docs/models
56
+ groq_gemma2_9b_it = LLMName("groq/gemma2-9b-it")
59
57
  groq_llama_3_1_8b_instant = LLMName("groq/llama-3.1-8b-instant")
60
58
  groq_llama_3_3_70b_versatile = LLMName("groq/llama-3.3-70b-versatile")
61
59
  groq_deepseek_r1_distill_llama_70b = LLMName("groq/deepseek-r1-distill-llama-70b")
@@ -209,7 +209,7 @@ A list of parameter declarations, possibly with default values.
209
209
  DEFAULT_CAREFUL_LLM = LLM.o3
210
210
  DEFAULT_STRUCTURED_LLM = LLM.gpt_4o
211
211
  DEFAULT_STANDARD_LLM = LLM.claude_4_sonnet
212
- DEFAULT_FAST_LLM = LLM.o1_mini
212
+ DEFAULT_FAST_LLM = LLM.gpt_4o
213
213
 
214
214
 
215
215
  # Parameters set globally such as in the workspace.
@@ -21,6 +21,7 @@ def normalize_formatting(
21
21
  format: Format | None,
22
22
  support_ansi: bool = True,
23
23
  cleanups: bool = True,
24
+ smartquotes: bool = True,
24
25
  ) -> str:
25
26
  """
26
27
  Normalize formatting. Currently only normalizes Markdown and leaves plaintext
@@ -35,6 +36,7 @@ def normalize_formatting(
35
36
  text,
36
37
  line_wrapper=line_wrap_by_sentence(len_fn=len_fn, is_markdown=True),
37
38
  cleanups=cleanups,
39
+ smartquotes=smartquotes,
38
40
  )
39
41
  elif format == Format.plaintext:
40
42
  # Consider plaintext a raw format and don't normalize.
@@ -22,6 +22,7 @@
22
22
  {% endblock root_variables %}
23
23
  }
24
24
 
25
+ /* CSS color definitions. */
25
26
  {{ color_defs|safe }}
26
27
 
27
28
  {% block selection_styles %}
@@ -145,7 +146,7 @@ h2 + h3 {
145
146
  }
146
147
 
147
148
  h3 {
148
- font-size: 1.18rem;
149
+ font-size: 1.15rem;
149
150
  margin-top: 1.4rem;
150
151
  margin-bottom: 0.7rem;
151
152
  }
@@ -662,6 +663,12 @@ sup {
662
663
  max-width: none;
663
664
  }
664
665
 
666
+ /* Smaller table text on mobile. */
667
+ table code,
668
+ table pre {
669
+ font-size: var(--font-size-mono-small);
670
+ }
671
+
665
672
  ul, ol {
666
673
  margin-left: 1rem;
667
674
  }