llm-shell 0.10.0 → 0.11.0

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 (260) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +21 -0
  3. data/README.md +24 -160
  4. data/exe/llm-shell +7 -0
  5. data/llm-shell.gemspec +26 -32
  6. metadata +36 -372
  7. data/bin/llm-shell +0 -21
  8. data/lib/llm/shell/command.rb +0 -88
  9. data/lib/llm/shell/commands/clear_screen.rb +0 -18
  10. data/lib/llm/shell/commands/debug_mode.rb +0 -12
  11. data/lib/llm/shell/commands/dir_import.rb +0 -33
  12. data/lib/llm/shell/commands/disable_tool.rb +0 -33
  13. data/lib/llm/shell/commands/enable_tool.rb +0 -33
  14. data/lib/llm/shell/commands/file_import.rb +0 -25
  15. data/lib/llm/shell/commands/help.rb +0 -53
  16. data/lib/llm/shell/commands/show_chat.rb +0 -31
  17. data/lib/llm/shell/commands/show_version.rb +0 -17
  18. data/lib/llm/shell/commands/system_prompt.rb +0 -21
  19. data/lib/llm/shell/completion.rb +0 -40
  20. data/lib/llm/shell/config.rb +0 -34
  21. data/lib/llm/shell/default.rb +0 -23
  22. data/lib/llm/shell/formatter.rb +0 -41
  23. data/lib/llm/shell/internal/coderay/lib/coderay/duo.rb +0 -81
  24. data/lib/llm/shell/internal/coderay/lib/coderay/encoders/_map.rb +0 -17
  25. data/lib/llm/shell/internal/coderay/lib/coderay/encoders/comment_filter.rb +0 -25
  26. data/lib/llm/shell/internal/coderay/lib/coderay/encoders/count.rb +0 -39
  27. data/lib/llm/shell/internal/coderay/lib/coderay/encoders/debug.rb +0 -49
  28. data/lib/llm/shell/internal/coderay/lib/coderay/encoders/debug_lint.rb +0 -63
  29. data/lib/llm/shell/internal/coderay/lib/coderay/encoders/div.rb +0 -23
  30. data/lib/llm/shell/internal/coderay/lib/coderay/encoders/encoder.rb +0 -190
  31. data/lib/llm/shell/internal/coderay/lib/coderay/encoders/filter.rb +0 -58
  32. data/lib/llm/shell/internal/coderay/lib/coderay/encoders/html/css.rb +0 -65
  33. data/lib/llm/shell/internal/coderay/lib/coderay/encoders/html/numbering.rb +0 -108
  34. data/lib/llm/shell/internal/coderay/lib/coderay/encoders/html/output.rb +0 -164
  35. data/lib/llm/shell/internal/coderay/lib/coderay/encoders/html.rb +0 -333
  36. data/lib/llm/shell/internal/coderay/lib/coderay/encoders/json.rb +0 -83
  37. data/lib/llm/shell/internal/coderay/lib/coderay/encoders/lines_of_code.rb +0 -45
  38. data/lib/llm/shell/internal/coderay/lib/coderay/encoders/lint.rb +0 -59
  39. data/lib/llm/shell/internal/coderay/lib/coderay/encoders/null.rb +0 -18
  40. data/lib/llm/shell/internal/coderay/lib/coderay/encoders/page.rb +0 -24
  41. data/lib/llm/shell/internal/coderay/lib/coderay/encoders/span.rb +0 -23
  42. data/lib/llm/shell/internal/coderay/lib/coderay/encoders/statistic.rb +0 -95
  43. data/lib/llm/shell/internal/coderay/lib/coderay/encoders/terminal.rb +0 -195
  44. data/lib/llm/shell/internal/coderay/lib/coderay/encoders/text.rb +0 -46
  45. data/lib/llm/shell/internal/coderay/lib/coderay/encoders/token_kind_filter.rb +0 -111
  46. data/lib/llm/shell/internal/coderay/lib/coderay/encoders/xml.rb +0 -72
  47. data/lib/llm/shell/internal/coderay/lib/coderay/encoders/yaml.rb +0 -50
  48. data/lib/llm/shell/internal/coderay/lib/coderay/encoders.rb +0 -18
  49. data/lib/llm/shell/internal/coderay/lib/coderay/for_redcloth.rb +0 -95
  50. data/lib/llm/shell/internal/coderay/lib/coderay/helpers/file_type.rb +0 -151
  51. data/lib/llm/shell/internal/coderay/lib/coderay/helpers/plugin.rb +0 -55
  52. data/lib/llm/shell/internal/coderay/lib/coderay/helpers/plugin_host.rb +0 -221
  53. data/lib/llm/shell/internal/coderay/lib/coderay/helpers/word_list.rb +0 -72
  54. data/lib/llm/shell/internal/coderay/lib/coderay/scanners/_map.rb +0 -24
  55. data/lib/llm/shell/internal/coderay/lib/coderay/scanners/c.rb +0 -189
  56. data/lib/llm/shell/internal/coderay/lib/coderay/scanners/clojure.rb +0 -217
  57. data/lib/llm/shell/internal/coderay/lib/coderay/scanners/cpp.rb +0 -217
  58. data/lib/llm/shell/internal/coderay/lib/coderay/scanners/css.rb +0 -196
  59. data/lib/llm/shell/internal/coderay/lib/coderay/scanners/debug.rb +0 -75
  60. data/lib/llm/shell/internal/coderay/lib/coderay/scanners/delphi.rb +0 -144
  61. data/lib/llm/shell/internal/coderay/lib/coderay/scanners/diff.rb +0 -221
  62. data/lib/llm/shell/internal/coderay/lib/coderay/scanners/erb.rb +0 -81
  63. data/lib/llm/shell/internal/coderay/lib/coderay/scanners/go.rb +0 -208
  64. data/lib/llm/shell/internal/coderay/lib/coderay/scanners/groovy.rb +0 -268
  65. data/lib/llm/shell/internal/coderay/lib/coderay/scanners/haml.rb +0 -168
  66. data/lib/llm/shell/internal/coderay/lib/coderay/scanners/html.rb +0 -275
  67. data/lib/llm/shell/internal/coderay/lib/coderay/scanners/java/builtin_types.rb +0 -421
  68. data/lib/llm/shell/internal/coderay/lib/coderay/scanners/java.rb +0 -174
  69. data/lib/llm/shell/internal/coderay/lib/coderay/scanners/java_script.rb +0 -236
  70. data/lib/llm/shell/internal/coderay/lib/coderay/scanners/json.rb +0 -98
  71. data/lib/llm/shell/internal/coderay/lib/coderay/scanners/lua.rb +0 -280
  72. data/lib/llm/shell/internal/coderay/lib/coderay/scanners/php.rb +0 -527
  73. data/lib/llm/shell/internal/coderay/lib/coderay/scanners/python.rb +0 -287
  74. data/lib/llm/shell/internal/coderay/lib/coderay/scanners/raydebug.rb +0 -75
  75. data/lib/llm/shell/internal/coderay/lib/coderay/scanners/ruby/patterns.rb +0 -178
  76. data/lib/llm/shell/internal/coderay/lib/coderay/scanners/ruby/string_state.rb +0 -79
  77. data/lib/llm/shell/internal/coderay/lib/coderay/scanners/ruby.rb +0 -477
  78. data/lib/llm/shell/internal/coderay/lib/coderay/scanners/sass.rb +0 -232
  79. data/lib/llm/shell/internal/coderay/lib/coderay/scanners/scanner.rb +0 -337
  80. data/lib/llm/shell/internal/coderay/lib/coderay/scanners/sql.rb +0 -169
  81. data/lib/llm/shell/internal/coderay/lib/coderay/scanners/taskpaper.rb +0 -36
  82. data/lib/llm/shell/internal/coderay/lib/coderay/scanners/text.rb +0 -26
  83. data/lib/llm/shell/internal/coderay/lib/coderay/scanners/xml.rb +0 -17
  84. data/lib/llm/shell/internal/coderay/lib/coderay/scanners/yaml.rb +0 -140
  85. data/lib/llm/shell/internal/coderay/lib/coderay/scanners.rb +0 -27
  86. data/lib/llm/shell/internal/coderay/lib/coderay/styles/_map.rb +0 -7
  87. data/lib/llm/shell/internal/coderay/lib/coderay/styles/alpha.rb +0 -153
  88. data/lib/llm/shell/internal/coderay/lib/coderay/styles/style.rb +0 -18
  89. data/lib/llm/shell/internal/coderay/lib/coderay/styles.rb +0 -15
  90. data/lib/llm/shell/internal/coderay/lib/coderay/token_kinds.rb +0 -85
  91. data/lib/llm/shell/internal/coderay/lib/coderay/tokens.rb +0 -164
  92. data/lib/llm/shell/internal/coderay/lib/coderay/tokens_proxy.rb +0 -55
  93. data/lib/llm/shell/internal/coderay/lib/coderay/version.rb +0 -3
  94. data/lib/llm/shell/internal/coderay/lib/coderay.rb +0 -284
  95. data/lib/llm/shell/internal/io-line/lib/io/line/multiple.rb +0 -19
  96. data/lib/llm/shell/internal/io-line/lib/io/line.rb +0 -28
  97. data/lib/llm/shell/internal/llm.rb/lib/llm/bot/builder.rb +0 -31
  98. data/lib/llm/shell/internal/llm.rb/lib/llm/bot/conversable.rb +0 -37
  99. data/lib/llm/shell/internal/llm.rb/lib/llm/bot/prompt/completion.rb +0 -49
  100. data/lib/llm/shell/internal/llm.rb/lib/llm/bot/prompt/respond.rb +0 -49
  101. data/lib/llm/shell/internal/llm.rb/lib/llm/bot.rb +0 -150
  102. data/lib/llm/shell/internal/llm.rb/lib/llm/buffer.rb +0 -162
  103. data/lib/llm/shell/internal/llm.rb/lib/llm/client.rb +0 -36
  104. data/lib/llm/shell/internal/llm.rb/lib/llm/error.rb +0 -49
  105. data/lib/llm/shell/internal/llm.rb/lib/llm/eventhandler.rb +0 -44
  106. data/lib/llm/shell/internal/llm.rb/lib/llm/eventstream/event.rb +0 -69
  107. data/lib/llm/shell/internal/llm.rb/lib/llm/eventstream/parser.rb +0 -88
  108. data/lib/llm/shell/internal/llm.rb/lib/llm/eventstream.rb +0 -8
  109. data/lib/llm/shell/internal/llm.rb/lib/llm/file.rb +0 -91
  110. data/lib/llm/shell/internal/llm.rb/lib/llm/function.rb +0 -177
  111. data/lib/llm/shell/internal/llm.rb/lib/llm/message.rb +0 -178
  112. data/lib/llm/shell/internal/llm.rb/lib/llm/mime.rb +0 -140
  113. data/lib/llm/shell/internal/llm.rb/lib/llm/multipart.rb +0 -101
  114. data/lib/llm/shell/internal/llm.rb/lib/llm/object/builder.rb +0 -38
  115. data/lib/llm/shell/internal/llm.rb/lib/llm/object/kernel.rb +0 -53
  116. data/lib/llm/shell/internal/llm.rb/lib/llm/object.rb +0 -89
  117. data/lib/llm/shell/internal/llm.rb/lib/llm/provider.rb +0 -352
  118. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/anthropic/error_handler.rb +0 -36
  119. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/anthropic/files.rb +0 -155
  120. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/anthropic/format/completion_format.rb +0 -88
  121. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/anthropic/format.rb +0 -29
  122. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/anthropic/models.rb +0 -54
  123. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/anthropic/response/completion.rb +0 -39
  124. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/anthropic/response/enumerable.rb +0 -11
  125. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/anthropic/response/file.rb +0 -23
  126. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/anthropic/response/web_search.rb +0 -21
  127. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/anthropic/stream_parser.rb +0 -66
  128. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/anthropic.rb +0 -138
  129. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/deepseek/format/completion_format.rb +0 -68
  130. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/deepseek/format.rb +0 -27
  131. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/deepseek.rb +0 -75
  132. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/gemini/audio.rb +0 -73
  133. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/gemini/error_handler.rb +0 -47
  134. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/gemini/files.rb +0 -146
  135. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/gemini/format/completion_format.rb +0 -69
  136. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/gemini/format.rb +0 -39
  137. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/gemini/images.rb +0 -133
  138. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/gemini/models.rb +0 -60
  139. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/gemini/response/completion.rb +0 -35
  140. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/gemini/response/embedding.rb +0 -8
  141. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/gemini/response/file.rb +0 -11
  142. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/gemini/response/files.rb +0 -15
  143. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/gemini/response/image.rb +0 -31
  144. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/gemini/response/models.rb +0 -15
  145. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/gemini/response/web_search.rb +0 -22
  146. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/gemini/stream_parser.rb +0 -86
  147. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/gemini.rb +0 -173
  148. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/llamacpp.rb +0 -74
  149. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/ollama/error_handler.rb +0 -36
  150. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/ollama/format/completion_format.rb +0 -77
  151. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/ollama/format.rb +0 -29
  152. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/ollama/models.rb +0 -56
  153. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/ollama/response/completion.rb +0 -28
  154. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/ollama/response/embedding.rb +0 -9
  155. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/ollama/stream_parser.rb +0 -44
  156. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/ollama.rb +0 -116
  157. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/openai/audio.rb +0 -91
  158. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/openai/error_handler.rb +0 -46
  159. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/openai/files.rb +0 -134
  160. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/openai/format/completion_format.rb +0 -90
  161. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/openai/format/moderation_format.rb +0 -35
  162. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/openai/format/respond_format.rb +0 -72
  163. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/openai/format.rb +0 -54
  164. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/openai/images.rb +0 -109
  165. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/openai/models.rb +0 -55
  166. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/openai/moderations.rb +0 -65
  167. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/openai/response/audio.rb +0 -7
  168. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/openai/response/completion.rb +0 -40
  169. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/openai/response/embedding.rb +0 -9
  170. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/openai/response/enumerable.rb +0 -23
  171. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/openai/response/file.rb +0 -7
  172. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/openai/response/image.rb +0 -16
  173. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/openai/response/moderations.rb +0 -34
  174. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/openai/response/responds.rb +0 -48
  175. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/openai/response/web_search.rb +0 -21
  176. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/openai/responses/stream_parser.rb +0 -76
  177. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/openai/responses.rb +0 -99
  178. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/openai/stream_parser.rb +0 -86
  179. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/openai/vector_stores.rb +0 -228
  180. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/openai.rb +0 -206
  181. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/xai/images.rb +0 -58
  182. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/xai.rb +0 -72
  183. data/lib/llm/shell/internal/llm.rb/lib/llm/providers/zai.rb +0 -74
  184. data/lib/llm/shell/internal/llm.rb/lib/llm/response.rb +0 -67
  185. data/lib/llm/shell/internal/llm.rb/lib/llm/schema/array.rb +0 -26
  186. data/lib/llm/shell/internal/llm.rb/lib/llm/schema/boolean.rb +0 -13
  187. data/lib/llm/shell/internal/llm.rb/lib/llm/schema/integer.rb +0 -43
  188. data/lib/llm/shell/internal/llm.rb/lib/llm/schema/leaf.rb +0 -78
  189. data/lib/llm/shell/internal/llm.rb/lib/llm/schema/null.rb +0 -13
  190. data/lib/llm/shell/internal/llm.rb/lib/llm/schema/number.rb +0 -43
  191. data/lib/llm/shell/internal/llm.rb/lib/llm/schema/object.rb +0 -41
  192. data/lib/llm/shell/internal/llm.rb/lib/llm/schema/string.rb +0 -34
  193. data/lib/llm/shell/internal/llm.rb/lib/llm/schema/version.rb +0 -8
  194. data/lib/llm/shell/internal/llm.rb/lib/llm/schema.rb +0 -81
  195. data/lib/llm/shell/internal/llm.rb/lib/llm/server_tool.rb +0 -32
  196. data/lib/llm/shell/internal/llm.rb/lib/llm/tool/param.rb +0 -75
  197. data/lib/llm/shell/internal/llm.rb/lib/llm/tool.rb +0 -78
  198. data/lib/llm/shell/internal/llm.rb/lib/llm/utils.rb +0 -19
  199. data/lib/llm/shell/internal/llm.rb/lib/llm/version.rb +0 -5
  200. data/lib/llm/shell/internal/llm.rb/lib/llm.rb +0 -121
  201. data/lib/llm/shell/internal/optparse/lib/optionparser.rb +0 -2
  202. data/lib/llm/shell/internal/optparse/lib/optparse/ac.rb +0 -70
  203. data/lib/llm/shell/internal/optparse/lib/optparse/date.rb +0 -18
  204. data/lib/llm/shell/internal/optparse/lib/optparse/kwargs.rb +0 -27
  205. data/lib/llm/shell/internal/optparse/lib/optparse/shellwords.rb +0 -7
  206. data/lib/llm/shell/internal/optparse/lib/optparse/time.rb +0 -11
  207. data/lib/llm/shell/internal/optparse/lib/optparse/uri.rb +0 -7
  208. data/lib/llm/shell/internal/optparse/lib/optparse/version.rb +0 -80
  209. data/lib/llm/shell/internal/optparse/lib/optparse.rb +0 -2469
  210. data/lib/llm/shell/internal/paint/lib/paint/constants.rb +0 -104
  211. data/lib/llm/shell/internal/paint/lib/paint/pa.rb +0 -13
  212. data/lib/llm/shell/internal/paint/lib/paint/rgb_colors.rb +0 -14
  213. data/lib/llm/shell/internal/paint/lib/paint/shortcuts.rb +0 -100
  214. data/lib/llm/shell/internal/paint/lib/paint/shortcuts_version.rb +0 -5
  215. data/lib/llm/shell/internal/paint/lib/paint/util.rb +0 -16
  216. data/lib/llm/shell/internal/paint/lib/paint/version.rb +0 -5
  217. data/lib/llm/shell/internal/paint/lib/paint.rb +0 -261
  218. data/lib/llm/shell/internal/reline/lib/reline/config.rb +0 -378
  219. data/lib/llm/shell/internal/reline/lib/reline/face.rb +0 -199
  220. data/lib/llm/shell/internal/reline/lib/reline/history.rb +0 -76
  221. data/lib/llm/shell/internal/reline/lib/reline/io/ansi.rb +0 -322
  222. data/lib/llm/shell/internal/reline/lib/reline/io/dumb.rb +0 -120
  223. data/lib/llm/shell/internal/reline/lib/reline/io/windows.rb +0 -530
  224. data/lib/llm/shell/internal/reline/lib/reline/io.rb +0 -55
  225. data/lib/llm/shell/internal/reline/lib/reline/key_actor/base.rb +0 -37
  226. data/lib/llm/shell/internal/reline/lib/reline/key_actor/composite.rb +0 -17
  227. data/lib/llm/shell/internal/reline/lib/reline/key_actor/emacs.rb +0 -517
  228. data/lib/llm/shell/internal/reline/lib/reline/key_actor/vi_command.rb +0 -518
  229. data/lib/llm/shell/internal/reline/lib/reline/key_actor/vi_insert.rb +0 -517
  230. data/lib/llm/shell/internal/reline/lib/reline/key_actor.rb +0 -8
  231. data/lib/llm/shell/internal/reline/lib/reline/key_stroke.rb +0 -119
  232. data/lib/llm/shell/internal/reline/lib/reline/kill_ring.rb +0 -125
  233. data/lib/llm/shell/internal/reline/lib/reline/line_editor.rb +0 -2356
  234. data/lib/llm/shell/internal/reline/lib/reline/unicode/east_asian_width.rb +0 -1292
  235. data/lib/llm/shell/internal/reline/lib/reline/unicode.rb +0 -421
  236. data/lib/llm/shell/internal/reline/lib/reline/version.rb +0 -3
  237. data/lib/llm/shell/internal/reline/lib/reline.rb +0 -527
  238. data/lib/llm/shell/internal/tomlrb/lib/tomlrb/generated_parser.rb +0 -712
  239. data/lib/llm/shell/internal/tomlrb/lib/tomlrb/handler.rb +0 -268
  240. data/lib/llm/shell/internal/tomlrb/lib/tomlrb/local_date.rb +0 -35
  241. data/lib/llm/shell/internal/tomlrb/lib/tomlrb/local_date_time.rb +0 -42
  242. data/lib/llm/shell/internal/tomlrb/lib/tomlrb/local_time.rb +0 -40
  243. data/lib/llm/shell/internal/tomlrb/lib/tomlrb/parser.rb +0 -21
  244. data/lib/llm/shell/internal/tomlrb/lib/tomlrb/scanner.rb +0 -92
  245. data/lib/llm/shell/internal/tomlrb/lib/tomlrb/string_utils.rb +0 -40
  246. data/lib/llm/shell/internal/tomlrb/lib/tomlrb/version.rb +0 -5
  247. data/lib/llm/shell/internal/tomlrb/lib/tomlrb.rb +0 -49
  248. data/lib/llm/shell/markdown.rb +0 -83
  249. data/lib/llm/shell/options.rb +0 -39
  250. data/lib/llm/shell/renderer.rb +0 -51
  251. data/lib/llm/shell/repl.rb +0 -111
  252. data/lib/llm/shell/tool.rb +0 -42
  253. data/lib/llm/shell/tools/read_file.rb +0 -15
  254. data/lib/llm/shell/tools/system.rb +0 -17
  255. data/lib/llm/shell/tools/write_file.rb +0 -16
  256. data/lib/llm/shell/version.rb +0 -8
  257. data/lib/llm/shell.rb +0 -132
  258. data/lib/llm-shell.rb +0 -3
  259. data/libexec/llm-shell/shell +0 -43
  260. data/share/llm-shell/prompts/default.txt +0 -21
@@ -1,78 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- ##
4
- # The {LLM::Tool LLM::Tool} class represents a local tool
5
- # that can be called by an LLM. Under the hood, it is a wrapper
6
- # around {LLM::Function LLM::Function} but allows the definition
7
- # of a function (also known as a tool) as a class.
8
- # @example
9
- # class System < LLM::Tool
10
- # name "system"
11
- # description "Runs system commands"
12
- # params do |schema|
13
- # schema.object(command: schema.string.required)
14
- # end
15
- #
16
- # def call(command:)
17
- # {success: Kernel.system(command)}
18
- # end
19
- # end
20
- class LLM::Tool
21
- require_relative "tool/param"
22
- extend LLM::Tool::Param
23
-
24
- ##
25
- # Registers the tool as a function when inherited
26
- # @param [Class] klass The subclass
27
- # @return [void]
28
- def self.inherited(klass)
29
- LLM.lock(:inherited) do
30
- klass.instance_eval { @__monitor ||= Monitor.new }
31
- klass.function.register(klass)
32
- end
33
- end
34
-
35
- ##
36
- # Returns (or sets) the tool name
37
- # @param [String, nil] name The tool name
38
- # @return [String]
39
- def self.name(name = nil)
40
- lock do
41
- name ? function.name(name) : function.name
42
- end
43
- end
44
-
45
- ##
46
- # Returns (or sets) the tool description
47
- # @param [String, nil] desc The tool description
48
- # @return [String]
49
- def self.description(desc = nil)
50
- lock do
51
- desc ? function.description(desc) : function.description
52
- end
53
- end
54
-
55
- ##
56
- # Returns (or sets) tool parameters
57
- # @yieldparam [LLM::Schema] schema The schema object to define parameters
58
- # @return [LLM::Schema]
59
- def self.params(&)
60
- lock do
61
- function.tap { _1.params(&) }
62
- end
63
- end
64
-
65
- ##
66
- # @api private
67
- def self.function
68
- lock do
69
- @function ||= LLM::Function.new(self)
70
- end
71
- end
72
-
73
- ##
74
- # @api private
75
- def self.lock(&)
76
- @__monitor.synchronize(&)
77
- end
78
- end
@@ -1,19 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- ##
4
- # @private
5
- module LLM::Utils
6
- def camelcase(key)
7
- key.to_s
8
- .split("_")
9
- .map.with_index { (_2 > 0) ? _1.capitalize : _1 }
10
- .join
11
- end
12
-
13
- def snakecase(key)
14
- key
15
- .split(/([A-Z])/)
16
- .map { (_1.size == 1) ? "_#{_1.downcase}" : _1 }
17
- .join
18
- end
19
- end
@@ -1,5 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module LLM
4
- VERSION = "1.0.1"
5
- end
@@ -1,121 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module LLM
4
- require "stringio"
5
- require_relative "llm/schema"
6
- require_relative "llm/object"
7
- require_relative "llm/version"
8
- require_relative "llm/utils"
9
- require_relative "llm/error"
10
- require_relative "llm/message"
11
- require_relative "llm/response"
12
- require_relative "llm/mime"
13
- require_relative "llm/multipart"
14
- require_relative "llm/file"
15
- require_relative "llm/provider"
16
- require_relative "llm/bot"
17
- require_relative "llm/buffer"
18
- require_relative "llm/function"
19
- require_relative "llm/eventstream"
20
- require_relative "llm/eventhandler"
21
- require_relative "llm/tool"
22
- require_relative "llm/server_tool"
23
-
24
- ##
25
- # Thread-safe monitors for different contexts
26
- @monitors = {require: Monitor.new, clients: Monitor.new, inherited: Monitor.new}
27
-
28
- module_function
29
-
30
- ##
31
- # @param (see LLM::Provider#initialize)
32
- # @return (see LLM::Anthropic#initialize)
33
- def anthropic(**)
34
- lock(:require) { require_relative "llm/providers/anthropic" unless defined?(LLM::Anthropic) }
35
- LLM::Anthropic.new(**)
36
- end
37
-
38
- ##
39
- # @param (see LLM::Provider#initialize)
40
- # @return (see LLM::Gemini#initialize)
41
- def gemini(**)
42
- lock(:require) { require_relative "llm/providers/gemini" unless defined?(LLM::Gemini) }
43
- LLM::Gemini.new(**)
44
- end
45
-
46
- ##
47
- # @param key (see LLM::Provider#initialize)
48
- # @return (see LLM::Ollama#initialize)
49
- def ollama(key: nil, **)
50
- lock(:require) { require_relative "llm/providers/ollama" unless defined?(LLM::Ollama) }
51
- LLM::Ollama.new(key:, **)
52
- end
53
-
54
- ##
55
- # @param key (see LLM::Provider#initialize)
56
- # @return (see LLM::LlamaCpp#initialize)
57
- def llamacpp(key: nil, **)
58
- lock(:require) { require_relative "llm/providers/llamacpp" unless defined?(LLM::LlamaCpp) }
59
- LLM::LlamaCpp.new(key:, **)
60
- end
61
-
62
- ##
63
- # @param key (see LLM::Provider#initialize)
64
- # @return (see LLM::DeepSeek#initialize)
65
- def deepseek(**)
66
- lock(:require) { require_relative "llm/providers/deepseek" unless defined?(LLM::DeepSeek) }
67
- LLM::DeepSeek.new(**)
68
- end
69
-
70
- ##
71
- # @param key (see LLM::Provider#initialize)
72
- # @return (see LLM::OpenAI#initialize)
73
- def openai(**)
74
- lock(:require) { require_relative "llm/providers/openai" unless defined?(LLM::OpenAI) }
75
- LLM::OpenAI.new(**)
76
- end
77
-
78
- ##
79
- # @param key (see LLM::XAI#initialize)
80
- # @param host (see LLM::XAI#initialize)
81
- # @return (see LLM::XAI#initialize)
82
- def xai(**)
83
- lock(:require) { require_relative "llm/providers/xai" unless defined?(LLM::XAI) }
84
- LLM::XAI.new(**)
85
- end
86
-
87
- ##
88
- # @param key (see LLM::ZAI#initialize)
89
- # @param host (see LLM::ZAI#initialize)
90
- # @return (see LLM::ZAI#initialize)
91
- def zai(**)
92
- lock(:require) { require_relative "llm/providers/zai" unless defined?(LLM::ZAI) }
93
- LLM::ZAI.new(**)
94
- end
95
-
96
- ##
97
- # Define a function
98
- # @example
99
- # LLM.function(:system) do |fn|
100
- # fn.description "Run system command"
101
- # fn.params do |schema|
102
- # schema.object(command: schema.string.required)
103
- # end
104
- # fn.define do |command:|
105
- # system(command)
106
- # end
107
- # end
108
- # @param [Symbol] key The function name / key
109
- # @param [Proc] b The block to define the function
110
- # @return [LLM::Function] The function object
111
- def function(key, &b)
112
- LLM::Function.new(key, &b)
113
- end
114
-
115
- ##
116
- # Provides a thread-safe lock
117
- # @param [Symbol] name The name of the lock
118
- # @param [Proc] & The block to execute within the lock
119
- # @return [void]
120
- def lock(name, &) = @monitors[name].synchronize(&)
121
- end
@@ -1,2 +0,0 @@
1
- # frozen_string_literal: false
2
- require_relative 'optparse'
@@ -1,70 +0,0 @@
1
- # frozen_string_literal: false
2
- require_relative '../optparse'
3
-
4
- #
5
- # autoconf-like options.
6
- #
7
- class OptionParser::AC < OptionParser
8
- # :stopdoc:
9
- private
10
-
11
- def _check_ac_args(name, block)
12
- unless /\A\w[-\w]*\z/ =~ name
13
- raise ArgumentError, name
14
- end
15
- unless block
16
- raise ArgumentError, "no block given", ParseError.filter_backtrace(caller)
17
- end
18
- end
19
-
20
- ARG_CONV = proc {|val| val.nil? ? true : val}
21
- private_constant :ARG_CONV
22
-
23
- def _ac_arg_enable(prefix, name, help_string, block)
24
- _check_ac_args(name, block)
25
-
26
- sdesc = []
27
- ldesc = ["--#{prefix}-#{name}"]
28
- desc = [help_string]
29
- q = name.downcase
30
- ac_block = proc {|val| block.call(ARG_CONV.call(val))}
31
- enable = Switch::PlacedArgument.new(nil, ARG_CONV, sdesc, ldesc, nil, desc, ac_block)
32
- disable = Switch::NoArgument.new(nil, proc {false}, sdesc, ldesc, nil, desc, ac_block)
33
- top.append(enable, [], ["enable-" + q], disable, ['disable-' + q])
34
- enable
35
- end
36
-
37
- # :startdoc:
38
-
39
- public
40
-
41
- # Define <tt>--enable</tt> / <tt>--disable</tt> style option
42
- #
43
- # Appears as <tt>--enable-<i>name</i></tt> in help message.
44
- def ac_arg_enable(name, help_string, &block)
45
- _ac_arg_enable("enable", name, help_string, block)
46
- end
47
-
48
- # Define <tt>--enable</tt> / <tt>--disable</tt> style option
49
- #
50
- # Appears as <tt>--disable-<i>name</i></tt> in help message.
51
- def ac_arg_disable(name, help_string, &block)
52
- _ac_arg_enable("disable", name, help_string, block)
53
- end
54
-
55
- # Define <tt>--with</tt> / <tt>--without</tt> style option
56
- #
57
- # Appears as <tt>--with-<i>name</i></tt> in help message.
58
- def ac_arg_with(name, help_string, &block)
59
- _check_ac_args(name, block)
60
-
61
- sdesc = []
62
- ldesc = ["--with-#{name}"]
63
- desc = [help_string]
64
- q = name.downcase
65
- with = Switch::PlacedArgument.new(*search(:atype, String), sdesc, ldesc, nil, desc, block)
66
- without = Switch::NoArgument.new(nil, proc {}, sdesc, ldesc, nil, desc, block)
67
- top.append(with, [], ["with-" + q], without, ['without-' + q])
68
- with
69
- end
70
- end
@@ -1,18 +0,0 @@
1
- # frozen_string_literal: false
2
- require_relative '../optparse'
3
- require 'date'
4
-
5
- OptionParser.accept(DateTime) do |s,|
6
- begin
7
- DateTime.parse(s) if s
8
- rescue ArgumentError
9
- raise OptionParser::InvalidArgument, s
10
- end
11
- end
12
- OptionParser.accept(Date) do |s,|
13
- begin
14
- Date.parse(s) if s
15
- rescue ArgumentError
16
- raise OptionParser::InvalidArgument, s
17
- end
18
- end
@@ -1,27 +0,0 @@
1
- # frozen_string_literal: true
2
- require_relative '../optparse'
3
-
4
- class OptionParser
5
- # :call-seq:
6
- # define_by_keywords(options, method, **params)
7
- #
8
- # :include: ../../doc/optparse/creates_option.rdoc
9
- #
10
- # Defines options which set in to _options_ for keyword parameters
11
- # of _method_.
12
- #
13
- # Parameters for each keywords are given as elements of _params_.
14
- #
15
- def define_by_keywords(options, method, **params)
16
- method.parameters.each do |type, name|
17
- case type
18
- when :key, :keyreq
19
- op, cl = *(type == :key ? %w"[ ]" : ["", ""])
20
- define("--#{name}=#{op}#{name.upcase}#{cl}", *params[name]) do |o|
21
- options[name] = o
22
- end
23
- end
24
- end
25
- options
26
- end
27
- end
@@ -1,7 +0,0 @@
1
- # frozen_string_literal: false
2
- # -*- ruby -*-
3
-
4
- require 'shellwords'
5
- require_relative '../optparse'
6
-
7
- OptionParser.accept(Shellwords) {|s,| Shellwords.shellwords(s)}
@@ -1,11 +0,0 @@
1
- # frozen_string_literal: false
2
- require_relative '../optparse'
3
- require 'time'
4
-
5
- OptionParser.accept(Time) do |s,|
6
- begin
7
- (Time.httpdate(s) rescue Time.parse(s)) if s
8
- rescue
9
- raise OptionParser::InvalidArgument, s
10
- end
11
- end
@@ -1,7 +0,0 @@
1
- # frozen_string_literal: false
2
- # -*- ruby -*-
3
-
4
- require_relative '../optparse'
5
- require 'uri'
6
-
7
- OptionParser.accept(URI) {|s,| URI.parse(s) if s}
@@ -1,80 +0,0 @@
1
- # frozen_string_literal: false
2
- # OptionParser internal utility
3
-
4
- class << OptionParser
5
- #
6
- # Shows version string in packages if Version is defined.
7
- #
8
- # +pkgs+:: package list
9
- #
10
- def show_version(*pkgs)
11
- progname = ARGV.options.program_name
12
- result = false
13
- show = proc do |klass, cname, version|
14
- str = "#{progname}"
15
- unless klass == ::Object and cname == :VERSION
16
- version = version.join(".") if Array === version
17
- str << ": #{klass}" unless klass == Object
18
- str << " version #{version}"
19
- end
20
- [:Release, :RELEASE].find do |rel|
21
- if klass.const_defined?(rel)
22
- str << " (#{klass.const_get(rel)})"
23
- end
24
- end
25
- puts str
26
- result = true
27
- end
28
- if pkgs.size == 1 and pkgs[0] == "all"
29
- self.search_const(::Object, /\AV(?:ERSION|ersion)\z/) do |klass, cname, version|
30
- unless cname[1] == ?e and klass.const_defined?(:Version)
31
- show.call(klass, cname.intern, version)
32
- end
33
- end
34
- else
35
- pkgs.each do |pkg|
36
- begin
37
- pkg = pkg.split(/::|\//).inject(::Object) {|m, c| m.const_get(c)}
38
- v = case
39
- when pkg.const_defined?(:Version)
40
- pkg.const_get(n = :Version)
41
- when pkg.const_defined?(:VERSION)
42
- pkg.const_get(n = :VERSION)
43
- else
44
- n = nil
45
- "unknown"
46
- end
47
- show.call(pkg, n, v)
48
- rescue NameError
49
- end
50
- end
51
- end
52
- result
53
- end
54
-
55
- # :stopdoc:
56
-
57
- def each_const(path, base = ::Object)
58
- path.split(/::|\//).inject(base) do |klass, name|
59
- raise NameError, path unless Module === klass
60
- klass.constants.grep(/#{name}/i) do |c|
61
- klass.const_defined?(c) or next
62
- klass.const_get(c)
63
- end
64
- end
65
- end
66
-
67
- def search_const(klass, name)
68
- klasses = [klass]
69
- while klass = klasses.shift
70
- klass.constants.each do |cname|
71
- klass.const_defined?(cname) or next
72
- const = klass.const_get(cname)
73
- yield klass, cname, const if name === cname
74
- klasses << const if Module === const and const != ::Object
75
- end
76
- end
77
- end
78
-
79
- # :startdoc:
80
- end