ollama_chat 0.0.101 → 0.0.103

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 55511ef08f35b482ac7529dae4b9e4d9cb490bd37467fac563b966f3ad87f569
4
- data.tar.gz: 26846b60e0ef32214b21a1e56128b4be6dbe6bd0808f195c8130186c01f8975c
3
+ metadata.gz: e723f48c6459c1ab6aa79f1acaf19a1bab5484f7c36e75c3491cef88deba0d92
4
+ data.tar.gz: 71e979fa1419bb82abd7f9d0dd44b70aa8576509a7735b3e1b2abee4f0a53f81
5
5
  SHA512:
6
- metadata.gz: 1d7960e9303887e5ef3571b79bffbf2cd30785c8db4051e6fc7a16f828e7d5dbe8754006a5356074c83fb989dd35b27b5311d1e676c330f4303a81014d16c4ac
7
- data.tar.gz: dfcb0fee96b6093e0d30cd7cb4894aa25752054236d85a14161519fb781d1697c7011816441dbdddfeb3477872c057b9382c594b2691c40f3238c9c727d43843
6
+ metadata.gz: 8c018d0417e676f8a9d598df4459443704da4f2c75559cab4e9b2f1f4034ea40807fc6672e656a8eacef29aec0454df8ec19f1259727592b68c0467b1f68a2fb
7
+ data.tar.gz: 8c8e31bd6bdbfaf5617a32e237bc6c7f975d4d3e9827c9c6761906b509a7108f7ec5971c463ea70779b15b1ba368c7202af3aa641b478946647c48a2d6d18481
data/CHANGES.md CHANGED
@@ -1,5 +1,63 @@
1
1
  # Changes
2
2
 
3
+ ## 2026-07-30 v0.0.103
4
+
5
+ ### Added
6
+
7
+ - Introduced `-y` (on) and `-n` (off) flags to the `/toggle` command for
8
+ explicit state setting via `set(true, show: true)` or `set(false, show:
9
+ true)`.
10
+ - Added startup logging to the Chat client in the `start` method of `chat.rb`,
11
+ recording the `client` and `server` versions, URL, `user`, and config
12
+ filename.
13
+ - Implemented path templating support using `%{path}` in
14
+ `lib/ollama_chat/tools/run_tests.rb` and documented its usage in
15
+ `lib/ollama_chat/oc.rb`.
16
+ - Added the `-m` flag to the `/model` command to enable interactive model
17
+ selection via `choose_model`.
18
+ - Integrated JSON parsing for the last line of test output within execution
19
+ logs.
20
+
21
+ ### Changed
22
+
23
+ - Optimized the `/model change` command by moving option parsing after an early
24
+ exit for the `change` subcommand.
25
+ - Simplified the `/model` command by removing the `-p` flag and introducing
26
+ `choose_profile_for_model` for automatic profile resolution, falling back to
27
+ the `'default'` profile.
28
+ - Refactored `use_model` and related methods to utilize keyword shorthand.
29
+ - Updated `model_handling.rb` methods (`edit_model_options`,
30
+ `copy_model_options_from_session`, and `copy_model_options_to_session`) to
31
+ accept an optional `model_name` argument.
32
+ - Standardized emoji rendering in tmux using Unicode escape sequences and
33
+ Variation Selector-16 across `lib/ollama_chat/commands.rb`,
34
+ `lib/ollama_chat/dialog.rb`, `lib/ollama_chat/favourites_management.rb` (via
35
+ `prefix_favourite`), and `lib/ollama_chat/information.rb`.
36
+ - Updated the `OLLAMA_CHAT_TOOLS_TEST_RUNNER` environment variable to include
37
+ the `--no-color` flag for `bundle exec rspec`.
38
+
39
+ ### Fixed
40
+
41
+ - Ensured the Jira tool is unconfigured in specs by setting the
42
+ `OC::OLLAMA::CHAT::TOOLS::JIRA::URL` constant to `nil` using `const_conf_as`.
43
+
44
+ ### Refactored
45
+
46
+ - Reorganized command specs into dedicated `describe` blocks for `/copy`,
47
+ `/paste`, `/toggle`, and `/clear` within `commands_spec.rb`.
48
+ - Moved `handle_input` test cases from `chat_spec.rb` to a new
49
+ `commands_spec.rb`.
50
+ - Updated parsing specs in `spec/ollama_chat/parsing_spec.rb` to conditionally
51
+ skip tests based on the presence of `gs` (Postscript/PDF) or `pandoc` (EPUB).
52
+
53
+ ### Dependencies
54
+ - Updated `rubygems_version` to **4.0.17**.
55
+
56
+ ## 2026-07-26 v0.0.102
57
+
58
+ - Added `ollama_chat_log` executable to the gem manifest in the `Rakefile` and
59
+ `ollama_chat.gemspec`.
60
+
3
61
  ## 2026-07-26 v0.0.101
4
62
 
5
63
  ### Added
data/Rakefile CHANGED
@@ -32,7 +32,7 @@ GemHadar do
32
32
 
33
33
  required_ruby_version '>= 3.2'
34
34
 
35
- executables << 'ollama_chat' << 'ollama_chat_send'
35
+ executables << 'ollama_chat' << 'ollama_chat_send' << 'ollama_chat_log'
36
36
 
37
37
  github_workflows(
38
38
  'static.yml' => {}
@@ -169,6 +169,10 @@ class OllamaChat::Chat
169
169
  # The start method initializes the chat session by displaying information,
170
170
  # then prompts the user for input to begin interacting with the chat.
171
171
  def start
172
+ log(:info, 'Starting chat client', data: {
173
+ client:, server: { version: server_version, url: server_url }, user:,
174
+ config: @ollama_chat_config.filename,
175
+ })
172
176
  begin
173
177
  if model = session.current_model.full?
174
178
  use_model(model, keep_options: true)
@@ -335,16 +339,17 @@ class OllamaChat::Chat
335
339
  !!@parse_content
336
340
  end
337
341
 
338
- # Returns whether there is a prompt waiting to be prefilled into the input buffer.
342
+ # Returns the prefill prompt string if one exists and is not empty, or nil
343
+ # otherwise.
339
344
  #
340
- # @return [Boolean] true if a prefill prompt exists and is not empty, false otherwise
345
+ # @return [String, NilClass] the prefill prompt string, or nil if not set or empty
341
346
  def prefill_prompt
342
347
  @prefill_prompt.full?
343
348
  end
344
349
 
345
- # Sets the content to be prefilled into the next user input prompt.
346
- #
347
- # @param prefill_prompt [String, nil] The text to prefill, or nil to clear it
350
+ # @!attribute [w] prefill_prompt=
351
+ # Sets the content to be prefilled into the next user input prompt.
352
+ # @return [String, NilClass] the prompt
348
353
  attr_writer :prefill_prompt
349
354
 
350
355
  # Signals a graceful shutdown of the application.
@@ -58,7 +58,7 @@ module OllamaChat::Commands
58
58
  complete: [ 'config', %w[ edit reload ] ],
59
59
  optional: true,
60
60
  help: <<~EOT
61
- ⚙️ View, edit, or reload configuration
61
+ \u2699\uFE0F View, edit, or reload configuration
62
62
  EOT
63
63
  ) do |subcommand|
64
64
  case subcommand
@@ -86,19 +86,33 @@ module OllamaChat::Commands
86
86
 
87
87
  command(
88
88
  name: :toggle,
89
- regexp: %r(^/toggle(?:\s+(markdown|stream|location|runtime_info|voice|think_loud|think_strip|embedding))?$),
89
+ regexp: %r(^/toggle(?:\s+(markdown|stream|location|runtime_info|voice|think_loud|think_strip|embedding)(?:\s+(-[yn]))?)?$),
90
90
  complete: [ 'toggle', %w[ markdown stream location runtime_info voice think_loud think_strip embedding ] ],
91
91
  help: <<~EOT
92
92
  🎛️ Toggle feature switches
93
93
  (markdown, stream, location, runtime_info,
94
94
  voice, think_loud, think_strip, embedding)
95
+ Options: -y (on), -n (off)
95
96
  EOT
96
- ) do |toggle_name|
97
+ ) do |toggle_name, flag|
97
98
  if toggle_name == 'embedding'
98
- embedding_paused.toggle(show: false)
99
+ if flag == '-y'
100
+ embedding_paused.set(false)
101
+ elsif flag == '-n'
102
+ embedding_paused.set(true)
103
+ else
104
+ embedding_paused.toggle(show: false)
105
+ end
99
106
  embedding.show
100
107
  elsif toggle_name
101
- send(toggle_name).toggle
108
+ switch = send(toggle_name)
109
+ if flag == '-y'
110
+ switch.set(true, show: true)
111
+ elsif flag == '-n'
112
+ switch.set(false, show: true)
113
+ else
114
+ switch.toggle
115
+ end
102
116
  else
103
117
  STDOUT.puts "Available toggles: markdown|stream|location|runtime_info|voice|think_loud|think_strip|embedding"
104
118
  end
@@ -110,7 +124,7 @@ module OllamaChat::Commands
110
124
  regexp: %r(^/favourite(?:\s+(add|delete))?(?:\s+(model|prompt|system|persona|suggest))$),
111
125
  complete: [ 'favourite', %w[ add delete ], %w[ model prompt system persona suggest ] ],
112
126
  help: <<~EOT
113
- Manage favorites (add/delete models,
127
+ \u2B50\uFE0F Manage favorites (add/delete models,
114
128
  prompts, personae)
115
129
  EOT
116
130
  ) do |subcommand, type|
@@ -125,34 +139,38 @@ module OllamaChat::Commands
125
139
 
126
140
  command(
127
141
  name: :model,
128
- regexp: %r(^/model(?:\s+(change|options|options from session|options to session))(?:\s+(-p\s*\w+))?$),
142
+ regexp: %r(^/model(?:\s+(change|options|options from session|options to session))?((?:\s+(?:-m))*)$),
129
143
  complete: [ 'model', %w[ change options options\ from\ session options\ to\ session ] ],
130
144
  help: <<~EOT
131
145
  🤖 Manage AI models & profiles:
132
- - change: Switch active model (-p [profile])
146
+ - change: Switch active model
133
147
  - options: Edit saved profile config
134
148
  - options from session: Save live → Saved
135
149
  - options to session: Apply Saved → Live
150
+ -m interactively choose a model
136
151
  EOT
137
152
  ) do |subcommand, opts|
138
- case subcommand
139
- when 'change'
140
- opts = go_command('p:', opts, defaults: { ?p => 'default' })
153
+ if subcommand == 'change'
141
154
  begin
142
- use_model(profile: opts[?p])
155
+ model = choose_model('', @model)
156
+ profile = choose_profile_for_model(model) || 'default'
157
+ use_model(model, profile:)
143
158
  rescue OllamaChat::UnknownModelError => e
144
159
  msg = "Caught #{e.class}: #{e}"
145
- log(:error, msg, data: { command: 'model', profile: opts[?p] }, warn: true)
160
+ log(:error, msg, data: { command: 'model', profile: }, warn: true)
146
161
  end
162
+ next :next
163
+ end
164
+ opts = go_command('m', opts)
165
+ model = opts[?m] ? choose_model('', @model) : @model
166
+ profile = choose_profile_for_model(model) || 'default'
167
+ case subcommand
147
168
  when 'options'
148
- opts = go_command('p:', opts, defaults: { ?p => 'default' })
149
- edit_model_options(@model, profile: opts[?p])
169
+ edit_model_options(model, profile:)
150
170
  when 'options from session'
151
- opts = go_command('p:', opts, defaults: { ?p => 'default' })
152
- copy_model_options_from_session(profile: opts[?p])
171
+ copy_model_options_from_session(model, profile:)
153
172
  when 'options to session'
154
- opts = go_command('p:', opts, defaults: { ?p => 'default' })
155
- copy_model_options_to_session(profile: opts[?p])
173
+ copy_model_options_to_session(model, profile:)
156
174
  end
157
175
  :next
158
176
  end
@@ -720,7 +738,7 @@ module OllamaChat::Commands
720
738
  name: :compose,
721
739
  regexp: %r(^/compose$),
722
740
  help: <<~EOT
723
- ✍️ Compose message in external editor
741
+ \u270D\uFE0F Compose message in external editor
724
742
  EOT
725
743
  ) do
726
744
  edit_text.full? or :next
@@ -930,7 +948,7 @@ module OllamaChat::Commands
930
948
  complete: [ 'info', %w[ session model runtime rag ] ],
931
949
  optional: true,
932
950
  help: <<~EOT,
933
- ℹ️ Show info:
951
+ \u2139\uFE0F Show info:
934
952
  - session: Current chat details
935
953
  - model: Active AI model info
936
954
  - runtime: System/environmental data
@@ -59,14 +59,14 @@ module OllamaChat::Dialog
59
59
  case
60
60
  when yes.nil?
61
61
  if keypress
62
- output.puts "⌨️ #{answer}"
62
+ output.puts "\u2328\uFE0F #{answer}"
63
63
  else
64
- output.puts "⌛️ #{answer}"
64
+ output.puts "\u231B\uFE0F #{answer}"
65
65
  end
66
66
  answer
67
67
  when answer =~ yes
68
68
  if keypress
69
- output.puts " #{answer}"
69
+ output.puts "\u2705\uFE0F #{answer}"
70
70
  else
71
71
  output.puts "☑️ #{answer}"
72
72
  end
@@ -75,7 +75,7 @@ module OllamaChat::Dialog
75
75
  if keypress
76
76
  output.puts "🚫 #{answer}"
77
77
  else
78
- output.puts "⌛️ #{answer}"
78
+ output.puts "\u231B\uFE0F #{answer}"
79
79
  end
80
80
  nil
81
81
  end
@@ -11,7 +11,7 @@ module OllamaChat::FavouritesManagement
11
11
  # @param favourited [Boolean] whether the item is a favourite
12
12
  # @return [String] the decorated string
13
13
  def prefix_favourite(string, favourited)
14
- fav = favourited ? '❤️' : '🩶'
14
+ fav = favourited ? "\u2764\uFE0F" : '🩶'
15
15
  "%s %s" % [ fav, string ]
16
16
  end
17
17
 
@@ -134,7 +134,7 @@ module OllamaChat::Information
134
134
  output.print ' '; think_loud.show(output:)
135
135
  output.print ' '; think_strip.show(output:)
136
136
  output.print ' 🛠️ '; tools_support.show(output:)
137
- output.print '⚙️ Chat Settings'
137
+ output.print "\u2699\uFE0F Chat Settings"
138
138
  output.print ' '; markdown.show(output:)
139
139
  output.print ' '; stream.show(output:)
140
140
  output.print ' 🎙️ '; voice.show(output:)
@@ -108,8 +108,9 @@ module OllamaChat::ModelHandling
108
108
  # Ollama::Options instance based on the edited configuration.
109
109
  #
110
110
  # @param model_name [String] the name of the model whose options are to be
111
- # edited.
112
- def edit_model_options(model_name, profile: nil)
111
+ # edited, defaults to @model.
112
+ def edit_model_options(model_name = nil, profile: nil)
113
+ model_name ||= @model
113
114
  profile ||= 'default'
114
115
  model_options = get_stored_model_options(model_name, profile:)
115
116
  model_options = fill_up_model_options(model_options)
@@ -147,31 +148,42 @@ module OllamaChat::ModelHandling
147
148
  # This method retrieves the options stored for the current session and
148
149
  # updates the active model options to match, ensuring the model behavior
149
150
  # aligns with the session's specific configuration.
150
- def copy_model_options_from_session(profile: nil)
151
+ #
152
+ # @param model_name [String, nil] the model to use; defaults to @model
153
+ # @param profile [String, nil] the profile context for model options
154
+ def copy_model_options_from_session(model_name = nil, profile: nil)
151
155
  profile ||= 'default'
152
- model_name = @model
156
+ model_name ||= @model
153
157
  model_options = get_session_model_options
154
158
  store_model_options(model_name, model_options, profile:)
155
159
  STDOUT.puts "Model options #{italic{profile}} for #{bold{model_name}} were copied from session model options."
156
160
  end
157
161
 
158
162
  # Resets the session's model options to match the stored defaults for the
159
- # current model.
160
- def copy_model_options_to_session(profile: nil)
163
+ # specified model.
164
+ #
165
+ # @param model_name [String, nil] the model to use; defaults to @model
166
+ # @param profile [String, nil] the profile context for model options
167
+ def copy_model_options_to_session(model_name = nil, profile: nil)
161
168
  profile ||= 'default'
162
- model_name = @model
169
+ model_name ||= @model
163
170
  stored_model_options = get_stored_model_options(model_name, profile:)
164
171
  session.update(model_options: stored_model_options)
165
172
  STDOUT.puts "Model options #{italic{profile}} of #{bold{model_name}} were copied to session model options."
166
173
  end
167
174
 
168
- # Presents a list of stored profiles for the given model and prompts the user
169
- # to select one.
175
+ # Presents an interactive list of stored configuration profiles for the
176
+ # specified model and prompts the user to select one.
177
+ #
178
+ # If only one profile exists for the model, it is returned immediately without
179
+ # prompting. If the user cancels the selection or chooses `[EXIT]`, `nil` is
180
+ # returned.
170
181
  #
171
182
  # @param model_name [String] the name of the model whose profiles are to be listed
172
- # @return [String, nil] the selected profile name, or nil if none was chosen
183
+ # @return [String, nil] the selected profile name, or `nil` if none was chosen
173
184
  def choose_profile_for_model(model_name)
174
185
  profiles = models::ModelOptions.where(model_name:).order(:profile).map(&:profile)
186
+ profiles.size < 2 and return profiles.first
175
187
  profiles = [ '[EXIT]' ] + profiles
176
188
  case chosen = choose_entry(profiles, prompt: "Choose profile for #{bold{model_name}}: %s")
177
189
  when '[EXIT]', nil
@@ -319,7 +331,7 @@ module OllamaChat::ModelHandling
319
331
  # metadata for the selected model.
320
332
  #
321
333
  # @param model [ String, nil ] the model name to use; if omitted, the current
322
- # model is retained
334
+ # model can be selected
323
335
  # @param keep_options [Boolean] if true, session-specific model options are
324
336
  # retained instead of reverting to model defaults.
325
337
  #
@@ -328,7 +340,7 @@ module OllamaChat::ModelHandling
328
340
  profile ||= 'default'
329
341
  old_model = @model
330
342
 
331
- if model.nil?
343
+ if model.blank?
332
344
  @model = choose_model('', @model)
333
345
  else
334
346
  @model = choose_model(model, config.model.name)
@@ -169,7 +169,11 @@ module OC
169
169
 
170
170
  # Run Tests tool configuration
171
171
  TEST_RUNNER = set do
172
- description 'Configured test runner for run_tests tool function'
172
+ description <<~EOT
173
+ Test runner command template. Use %{path} to specify where the test
174
+ path argument goes; otherwise it is appended at the end.
175
+ EOT
176
+
173
177
  default 'rspec'
174
178
  required true
175
179
  end
@@ -23,8 +23,10 @@ class OllamaChat::Tools::RunTests
23
23
  description: <<~EOT,
24
24
  Test Runner - Runs all tests/specs under *path* the path were the
25
25
  tests/specs are located. `coverage=false` by default; set to true
26
- for a coverage report. Returns JSON with test counts and, if
27
- requested, coverage percentage.
26
+ for a coverage report. Returns JSON with the raw output and
27
+ status. After execution, provide a concise overview of the test
28
+ run, summarizing examples, failures, and coverage percentage
29
+ if available.
28
30
  EOT
29
31
  parameters: Tool::Function::Parameters.new(
30
32
  type: 'object',
@@ -57,8 +59,9 @@ class OllamaChat::Tools::RunTests
57
59
  coverage = tool_call.function.arguments.coverage || false
58
60
  path = check_path(path, config)
59
61
  output, success = run_tests(path, coverage)
62
+ result = JSON.parse(output.lines.last) rescue nil
60
63
  chat.log(:info, "Tests executed", data: {
61
- tool: name, path: path.to_s, success:
64
+ tool: name, path: path.to_s, success:, result:
62
65
  })
63
66
 
64
67
  message =
@@ -110,7 +113,11 @@ class OllamaChat::Tools::RunTests
110
113
  # @return [String, Boolean] the captured output and a success flag
111
114
  def run_tests(path, coverage)
112
115
  env = ENV.to_h | { 'START_SIMPLECOV' => coverage ? '1' : '0' }
113
- cmd = [ test_runner, Shellwords.escape(path) ].join(' ')
116
+ runner = test_runner
117
+ unless runner.include?('%{path}')
118
+ runner = runner.gsub('%', '%%') % ' %{path}'
119
+ end
120
+ cmd = runner % { path: Shellwords.escape(path) }
114
121
  output, success = execute_test_command(env, cmd)
115
122
  return output, success
116
123
  end
@@ -1,6 +1,6 @@
1
1
  module OllamaChat
2
2
  # OllamaChat version
3
- VERSION = '0.0.101'
3
+ VERSION = '0.0.103'
4
4
  VERSION_ARRAY = VERSION.split('.').map(&:to_i) # :nodoc:
5
5
  VERSION_MAJOR = VERSION_ARRAY[0] # :nodoc:
6
6
  VERSION_MINOR = VERSION_ARRAY[1] # :nodoc:
data/ollama_chat.gemspec CHANGED
@@ -1,9 +1,9 @@
1
1
  # -*- encoding: utf-8 -*-
2
- # stub: ollama_chat 0.0.101 ruby lib
2
+ # stub: ollama_chat 0.0.103 ruby lib
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "ollama_chat".freeze
6
- s.version = "0.0.101".freeze
6
+ s.version = "0.0.103".freeze
7
7
 
8
8
  s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
9
9
  s.require_paths = ["lib".freeze]
@@ -11,16 +11,16 @@ Gem::Specification.new do |s|
11
11
  s.date = "1980-01-02"
12
12
  s.description = "The app provides a command-line interface (CLI) to an Ollama AI model,\nallowing users to engage in text-based conversations and generate\nhuman-like responses. Users can import data from local files or web pages,\nwhich are then processed through three different modes: fully importing the\ncontent into the conversation context, summarizing the information for\nconcise reference, or storing it in an embedding vector database for later\nretrieval based on the conversation.\n".freeze
13
13
  s.email = "flori@ping.de".freeze
14
- s.executables = ["ollama_chat".freeze, "ollama_chat_send".freeze]
14
+ s.executables = ["ollama_chat".freeze, "ollama_chat_send".freeze, "ollama_chat_log".freeze]
15
15
  s.extra_rdoc_files = ["README.md".freeze, "lib/ollama_chat.rb".freeze, "lib/ollama_chat/chat.rb".freeze, "lib/ollama_chat/clipboard.rb".freeze, "lib/ollama_chat/command_concern.rb".freeze, "lib/ollama_chat/commands.rb".freeze, "lib/ollama_chat/config_handling.rb".freeze, "lib/ollama_chat/conversation.rb".freeze, "lib/ollama_chat/database.rb".freeze, "lib/ollama_chat/database/duplicatable.rb".freeze, "lib/ollama_chat/database/migrations.rb".freeze, "lib/ollama_chat/database/migrations/001_initial_schema.rb".freeze, "lib/ollama_chat/database/migrations/002_add_links_to_sessions.rb".freeze, "lib/ollama_chat/database/migrations/003_add_history_to_sessions.rb".freeze, "lib/ollama_chat/database/migrations/004_add_profile_to_model_options.rb".freeze, "lib/ollama_chat/database/migrations/005_add_context_format_to_sessions.rb".freeze, "lib/ollama_chat/database/migrations/006_rename_system_prompt_context_to_system.rb".freeze, "lib/ollama_chat/database/models/favourite.rb".freeze, "lib/ollama_chat/database/models/model_options.rb".freeze, "lib/ollama_chat/database/models/prompt.rb".freeze, "lib/ollama_chat/database/models/session.rb".freeze, "lib/ollama_chat/database/session_locking.rb".freeze, "lib/ollama_chat/dialog.rb".freeze, "lib/ollama_chat/document_cache.rb".freeze, "lib/ollama_chat/favourites_management.rb".freeze, "lib/ollama_chat/file_editing.rb".freeze, "lib/ollama_chat/follow_chat.rb".freeze, "lib/ollama_chat/history.rb".freeze, "lib/ollama_chat/http_handling.rb".freeze, "lib/ollama_chat/information.rb".freeze, "lib/ollama_chat/input_content.rb".freeze, "lib/ollama_chat/kramdown_ansi.rb".freeze, "lib/ollama_chat/links_set.rb".freeze, "lib/ollama_chat/location_handling.rb".freeze, "lib/ollama_chat/logging.rb".freeze, "lib/ollama_chat/message.rb".freeze, "lib/ollama_chat/message_editing.rb".freeze, "lib/ollama_chat/message_format.rb".freeze, "lib/ollama_chat/message_list.rb".freeze, "lib/ollama_chat/message_output.rb".freeze, "lib/ollama_chat/model_handling.rb".freeze, "lib/ollama_chat/oc.rb".freeze, "lib/ollama_chat/ollama_chat_config.rb".freeze, "lib/ollama_chat/pager.rb".freeze, "lib/ollama_chat/parsing.rb".freeze, "lib/ollama_chat/personae_management.rb".freeze, "lib/ollama_chat/prompt_handling.rb".freeze, "lib/ollama_chat/prompt_management.rb".freeze, "lib/ollama_chat/rag_handling.rb".freeze, "lib/ollama_chat/redis_cache.rb".freeze, "lib/ollama_chat/server_socket.rb".freeze, "lib/ollama_chat/session_management.rb".freeze, "lib/ollama_chat/source_fetching.rb".freeze, "lib/ollama_chat/state_selectors.rb".freeze, "lib/ollama_chat/switches.rb".freeze, "lib/ollama_chat/system_prompt_management.rb".freeze, "lib/ollama_chat/think_control.rb".freeze, "lib/ollama_chat/token_estimator.rb".freeze, "lib/ollama_chat/token_estimator/crude.rb".freeze, "lib/ollama_chat/tool_calling.rb".freeze, "lib/ollama_chat/tools.rb".freeze, "lib/ollama_chat/tools/browse.rb".freeze, "lib/ollama_chat/tools/compute_bmi.rb".freeze, "lib/ollama_chat/tools/concern.rb".freeze, "lib/ollama_chat/tools/copy_to_clipboard.rb".freeze, "lib/ollama_chat/tools/delete_file.rb".freeze, "lib/ollama_chat/tools/directory_structure.rb".freeze, "lib/ollama_chat/tools/eval_ruby.rb".freeze, "lib/ollama_chat/tools/execute_grep.rb".freeze, "lib/ollama_chat/tools/execute_ri.rb".freeze, "lib/ollama_chat/tools/file_context.rb".freeze, "lib/ollama_chat/tools/gem_path_lookup.rb".freeze, "lib/ollama_chat/tools/generate_image.rb".freeze, "lib/ollama_chat/tools/generate_password.rb".freeze, "lib/ollama_chat/tools/get_current_weather.rb".freeze, "lib/ollama_chat/tools/get_cve.rb".freeze, "lib/ollama_chat/tools/get_endoflife.rb".freeze, "lib/ollama_chat/tools/get_ghr.rb".freeze, "lib/ollama_chat/tools/get_jira_issue.rb".freeze, "lib/ollama_chat/tools/get_location.rb".freeze, "lib/ollama_chat/tools/get_rfc.rb".freeze, "lib/ollama_chat/tools/get_time.rb".freeze, "lib/ollama_chat/tools/get_url.rb".freeze, "lib/ollama_chat/tools/move_file.rb".freeze, "lib/ollama_chat/tools/open_file_in_editor.rb".freeze, "lib/ollama_chat/tools/paste_from_clipboard.rb".freeze, "lib/ollama_chat/tools/paste_into_editor.rb".freeze, "lib/ollama_chat/tools/patch_file.rb".freeze, "lib/ollama_chat/tools/read_file.rb".freeze, "lib/ollama_chat/tools/resolve_tag.rb".freeze, "lib/ollama_chat/tools/retrieve_document_snippets.rb".freeze, "lib/ollama_chat/tools/roll_dice.rb".freeze, "lib/ollama_chat/tools/run_tests.rb".freeze, "lib/ollama_chat/tools/search_web.rb".freeze, "lib/ollama_chat/tools/write_file.rb".freeze, "lib/ollama_chat/utils.rb".freeze, "lib/ollama_chat/utils/analyze_directory.rb".freeze, "lib/ollama_chat/utils/backup.rb".freeze, "lib/ollama_chat/utils/cache_fetcher.rb".freeze, "lib/ollama_chat/utils/chooser.rb".freeze, "lib/ollama_chat/utils/fetcher.rb".freeze, "lib/ollama_chat/utils/json_jsonl_io.rb".freeze, "lib/ollama_chat/utils/log_viewer.rb".freeze, "lib/ollama_chat/utils/path_completer.rb".freeze, "lib/ollama_chat/utils/path_validator.rb".freeze, "lib/ollama_chat/utils/png_metadata_extractor.rb".freeze, "lib/ollama_chat/utils/tag_resolver.rb".freeze, "lib/ollama_chat/utils/utf8_converter.rb".freeze, "lib/ollama_chat/utils/value_formatter.rb".freeze, "lib/ollama_chat/uuid_v7.rb".freeze, "lib/ollama_chat/version.rb".freeze, "lib/ollama_chat/vim.rb".freeze, "lib/ollama_chat/web_searching.rb".freeze]
16
- s.files = [".utilsrc".freeze, "CHANGES.md".freeze, "Gemfile".freeze, "LICENSE".freeze, "README.md".freeze, "Rakefile".freeze, "bin/ollama_chat".freeze, "bin/ollama_chat_log".freeze, "bin/ollama_chat_send".freeze, "config/searxng/settings.yml".freeze, "config/sherlock.md".freeze, "docker-compose.yml".freeze, "lib/ollama_chat.rb".freeze, "lib/ollama_chat/chat.rb".freeze, "lib/ollama_chat/clipboard.rb".freeze, "lib/ollama_chat/command_concern.rb".freeze, "lib/ollama_chat/commands.rb".freeze, "lib/ollama_chat/config_handling.rb".freeze, "lib/ollama_chat/conversation.rb".freeze, "lib/ollama_chat/database.rb".freeze, "lib/ollama_chat/database/duplicatable.rb".freeze, "lib/ollama_chat/database/migrations.rb".freeze, "lib/ollama_chat/database/migrations/001_initial_schema.rb".freeze, "lib/ollama_chat/database/migrations/002_add_links_to_sessions.rb".freeze, "lib/ollama_chat/database/migrations/003_add_history_to_sessions.rb".freeze, "lib/ollama_chat/database/migrations/004_add_profile_to_model_options.rb".freeze, "lib/ollama_chat/database/migrations/005_add_context_format_to_sessions.rb".freeze, "lib/ollama_chat/database/migrations/006_rename_system_prompt_context_to_system.rb".freeze, "lib/ollama_chat/database/models/favourite.rb".freeze, "lib/ollama_chat/database/models/model_options.rb".freeze, "lib/ollama_chat/database/models/prompt.rb".freeze, "lib/ollama_chat/database/models/session.rb".freeze, "lib/ollama_chat/database/session_locking.rb".freeze, "lib/ollama_chat/dialog.rb".freeze, "lib/ollama_chat/document_cache.rb".freeze, "lib/ollama_chat/favourites_management.rb".freeze, "lib/ollama_chat/file_editing.rb".freeze, "lib/ollama_chat/follow_chat.rb".freeze, "lib/ollama_chat/history.rb".freeze, "lib/ollama_chat/http_handling.rb".freeze, "lib/ollama_chat/information.rb".freeze, "lib/ollama_chat/input_content.rb".freeze, "lib/ollama_chat/kramdown_ansi.rb".freeze, "lib/ollama_chat/links_set.rb".freeze, "lib/ollama_chat/location_handling.rb".freeze, "lib/ollama_chat/logging.rb".freeze, "lib/ollama_chat/message.rb".freeze, "lib/ollama_chat/message_editing.rb".freeze, "lib/ollama_chat/message_format.rb".freeze, "lib/ollama_chat/message_list.rb".freeze, "lib/ollama_chat/message_output.rb".freeze, "lib/ollama_chat/model_handling.rb".freeze, "lib/ollama_chat/oc.rb".freeze, "lib/ollama_chat/ollama_chat_config.rb".freeze, "lib/ollama_chat/ollama_chat_config/default_config.yml".freeze, "lib/ollama_chat/pager.rb".freeze, "lib/ollama_chat/parsing.rb".freeze, "lib/ollama_chat/personae_management.rb".freeze, "lib/ollama_chat/prompt_handling.rb".freeze, "lib/ollama_chat/prompt_management.rb".freeze, "lib/ollama_chat/rag_handling.rb".freeze, "lib/ollama_chat/redis_cache.rb".freeze, "lib/ollama_chat/server_socket.rb".freeze, "lib/ollama_chat/session_management.rb".freeze, "lib/ollama_chat/source_fetching.rb".freeze, "lib/ollama_chat/state_selectors.rb".freeze, "lib/ollama_chat/switches.rb".freeze, "lib/ollama_chat/system_prompt_management.rb".freeze, "lib/ollama_chat/think_control.rb".freeze, "lib/ollama_chat/token_estimator.rb".freeze, "lib/ollama_chat/token_estimator/crude.rb".freeze, "lib/ollama_chat/tool_calling.rb".freeze, "lib/ollama_chat/tools.rb".freeze, "lib/ollama_chat/tools/browse.rb".freeze, "lib/ollama_chat/tools/compute_bmi.rb".freeze, "lib/ollama_chat/tools/concern.rb".freeze, "lib/ollama_chat/tools/copy_to_clipboard.rb".freeze, "lib/ollama_chat/tools/delete_file.rb".freeze, "lib/ollama_chat/tools/directory_structure.rb".freeze, "lib/ollama_chat/tools/eval_ruby.rb".freeze, "lib/ollama_chat/tools/execute_grep.rb".freeze, "lib/ollama_chat/tools/execute_ri.rb".freeze, "lib/ollama_chat/tools/file_context.rb".freeze, "lib/ollama_chat/tools/gem_path_lookup.rb".freeze, "lib/ollama_chat/tools/generate_image.rb".freeze, "lib/ollama_chat/tools/generate_password.rb".freeze, "lib/ollama_chat/tools/get_current_weather.rb".freeze, "lib/ollama_chat/tools/get_cve.rb".freeze, "lib/ollama_chat/tools/get_endoflife.rb".freeze, "lib/ollama_chat/tools/get_ghr.rb".freeze, "lib/ollama_chat/tools/get_jira_issue.rb".freeze, "lib/ollama_chat/tools/get_location.rb".freeze, "lib/ollama_chat/tools/get_rfc.rb".freeze, "lib/ollama_chat/tools/get_time.rb".freeze, "lib/ollama_chat/tools/get_url.rb".freeze, "lib/ollama_chat/tools/move_file.rb".freeze, "lib/ollama_chat/tools/open_file_in_editor.rb".freeze, "lib/ollama_chat/tools/paste_from_clipboard.rb".freeze, "lib/ollama_chat/tools/paste_into_editor.rb".freeze, "lib/ollama_chat/tools/patch_file.rb".freeze, "lib/ollama_chat/tools/read_file.rb".freeze, "lib/ollama_chat/tools/resolve_tag.rb".freeze, "lib/ollama_chat/tools/retrieve_document_snippets.rb".freeze, "lib/ollama_chat/tools/roll_dice.rb".freeze, "lib/ollama_chat/tools/run_tests.rb".freeze, "lib/ollama_chat/tools/search_web.rb".freeze, "lib/ollama_chat/tools/write_file.rb".freeze, "lib/ollama_chat/utils.rb".freeze, "lib/ollama_chat/utils/analyze_directory.rb".freeze, "lib/ollama_chat/utils/backup.rb".freeze, "lib/ollama_chat/utils/cache_fetcher.rb".freeze, "lib/ollama_chat/utils/chooser.rb".freeze, "lib/ollama_chat/utils/fetcher.rb".freeze, "lib/ollama_chat/utils/json_jsonl_io.rb".freeze, "lib/ollama_chat/utils/log_viewer.rb".freeze, "lib/ollama_chat/utils/path_completer.rb".freeze, "lib/ollama_chat/utils/path_validator.rb".freeze, "lib/ollama_chat/utils/png_metadata_extractor.rb".freeze, "lib/ollama_chat/utils/tag_resolver.rb".freeze, "lib/ollama_chat/utils/utf8_converter.rb".freeze, "lib/ollama_chat/utils/value_formatter.rb".freeze, "lib/ollama_chat/uuid_v7.rb".freeze, "lib/ollama_chat/version.rb".freeze, "lib/ollama_chat/vim.rb".freeze, "lib/ollama_chat/web_searching.rb".freeze, "ollama_chat.gemspec".freeze, "redis/redis.conf".freeze, "spec/assets/api_show.json".freeze, "spec/assets/api_tags.json".freeze, "spec/assets/api_version.json".freeze, "spec/assets/conversation.json".freeze, "spec/assets/conversation.jsonl".freeze, "spec/assets/deep/deeper/empty.txt".freeze, "spec/assets/deep/deeper/not-empty.txt".freeze, "spec/assets/deep/empty.txt".freeze, "spec/assets/duckduckgo.html".freeze, "spec/assets/example.atom".freeze, "spec/assets/example.csv".freeze, "spec/assets/example.epub".freeze, "spec/assets/example.html".freeze, "spec/assets/example.pdf".freeze, "spec/assets/example.ps".freeze, "spec/assets/example.rb".freeze, "spec/assets/example.rss".freeze, "spec/assets/example.xml".freeze, "spec/assets/example_with_quote.html".freeze, "spec/assets/fluffy.png".freeze, "spec/assets/kitten.jpg".freeze, "spec/assets/miyu.png".freeze, "spec/assets/pirateweather.json".freeze, "spec/assets/prompt.txt".freeze, "spec/assets/searxng.json".freeze, "spec/ollama_chat/chat_spec.rb".freeze, "spec/ollama_chat/clipboard_spec.rb".freeze, "spec/ollama_chat/database/models/favourite_spec.rb".freeze, "spec/ollama_chat/file_editing_spec.rb".freeze, "spec/ollama_chat/follow_chat_spec.rb".freeze, "spec/ollama_chat/history_spec.rb".freeze, "spec/ollama_chat/information_spec.rb".freeze, "spec/ollama_chat/input_content_spec.rb".freeze, "spec/ollama_chat/kramdown_ansi_spec.rb".freeze, "spec/ollama_chat/message_editing_spec.rb".freeze, "spec/ollama_chat/message_list_spec.rb".freeze, "spec/ollama_chat/message_output_spec.rb".freeze, "spec/ollama_chat/model_handling_spec.rb".freeze, "spec/ollama_chat/parsing_spec.rb".freeze, "spec/ollama_chat/redis_cache_spec.rb".freeze, "spec/ollama_chat/server_socket_spec.rb".freeze, "spec/ollama_chat/session_management_spec.rb".freeze, "spec/ollama_chat/source_fetching_spec.rb".freeze, "spec/ollama_chat/state_selectors_spec.rb".freeze, "spec/ollama_chat/switches_spec.rb".freeze, "spec/ollama_chat/think_control_spec.rb".freeze, "spec/ollama_chat/token_estimator_spec.rb".freeze, "spec/ollama_chat/tool_calling_spec.rb".freeze, "spec/ollama_chat/tools/browse_spec.rb".freeze, "spec/ollama_chat/tools/compute_bmi_spec.rb".freeze, "spec/ollama_chat/tools/copy_to_clipboard_spec.rb".freeze, "spec/ollama_chat/tools/delete_file_spec.rb".freeze, "spec/ollama_chat/tools/directory_structure_spec.rb".freeze, "spec/ollama_chat/tools/execute_grep_spec.rb".freeze, "spec/ollama_chat/tools/execute_ri_spec.rb".freeze, "spec/ollama_chat/tools/file_context_spec.rb".freeze, "spec/ollama_chat/tools/gem_path_lookup_spec.rb".freeze, "spec/ollama_chat/tools/generate_image_spec.rb".freeze, "spec/ollama_chat/tools/generate_password_spec.rb".freeze, "spec/ollama_chat/tools/get_current_weather_spec.rb".freeze, "spec/ollama_chat/tools/get_cve_spec.rb".freeze, "spec/ollama_chat/tools/get_endoflife_spec.rb".freeze, "spec/ollama_chat/tools/get_ghr_spec.rb".freeze, "spec/ollama_chat/tools/get_jira_issue_spec.rb".freeze, "spec/ollama_chat/tools/get_location_spec.rb".freeze, "spec/ollama_chat/tools/get_rfc_spec.rb".freeze, "spec/ollama_chat/tools/get_time_spec.rb".freeze, "spec/ollama_chat/tools/get_url_spec.rb".freeze, "spec/ollama_chat/tools/move_file_spec.rb".freeze, "spec/ollama_chat/tools/open_file_in_editor_spec.rb".freeze, "spec/ollama_chat/tools/paste_from_clipboard_spec.rb".freeze, "spec/ollama_chat/tools/paste_into_editor_spec.rb".freeze, "spec/ollama_chat/tools/patch_file_spec.rb".freeze, "spec/ollama_chat/tools/read_file_spec.rb".freeze, "spec/ollama_chat/tools/resolve_tag_spec.rb".freeze, "spec/ollama_chat/tools/retrieve_document_snippets_spec.rb".freeze, "spec/ollama_chat/tools/roll_dice_spec.rb".freeze, "spec/ollama_chat/tools/run_tests_spec.rb".freeze, "spec/ollama_chat/tools/search_web_spec.rb".freeze, "spec/ollama_chat/tools/write_file_spec.rb".freeze, "spec/ollama_chat/utils/analyze_directory_spec.rb".freeze, "spec/ollama_chat/utils/cache_fetcher_spec.rb".freeze, "spec/ollama_chat/utils/fetcher_spec.rb".freeze, "spec/ollama_chat/utils/log_viewer_spec.rb".freeze, "spec/ollama_chat/utils/path_completer_spec.rb".freeze, "spec/ollama_chat/utils/png_metadata_extractor_spec.rb".freeze, "spec/ollama_chat/vim_spec.rb".freeze, "spec/ollama_chat/web_searching_spec.rb".freeze, "spec/spec_helper.rb".freeze, "tmp/.keep".freeze]
16
+ s.files = [".utilsrc".freeze, "CHANGES.md".freeze, "Gemfile".freeze, "LICENSE".freeze, "README.md".freeze, "Rakefile".freeze, "bin/ollama_chat".freeze, "bin/ollama_chat_log".freeze, "bin/ollama_chat_send".freeze, "config/searxng/settings.yml".freeze, "config/sherlock.md".freeze, "docker-compose.yml".freeze, "lib/ollama_chat.rb".freeze, "lib/ollama_chat/chat.rb".freeze, "lib/ollama_chat/clipboard.rb".freeze, "lib/ollama_chat/command_concern.rb".freeze, "lib/ollama_chat/commands.rb".freeze, "lib/ollama_chat/config_handling.rb".freeze, "lib/ollama_chat/conversation.rb".freeze, "lib/ollama_chat/database.rb".freeze, "lib/ollama_chat/database/duplicatable.rb".freeze, "lib/ollama_chat/database/migrations.rb".freeze, "lib/ollama_chat/database/migrations/001_initial_schema.rb".freeze, "lib/ollama_chat/database/migrations/002_add_links_to_sessions.rb".freeze, "lib/ollama_chat/database/migrations/003_add_history_to_sessions.rb".freeze, "lib/ollama_chat/database/migrations/004_add_profile_to_model_options.rb".freeze, "lib/ollama_chat/database/migrations/005_add_context_format_to_sessions.rb".freeze, "lib/ollama_chat/database/migrations/006_rename_system_prompt_context_to_system.rb".freeze, "lib/ollama_chat/database/models/favourite.rb".freeze, "lib/ollama_chat/database/models/model_options.rb".freeze, "lib/ollama_chat/database/models/prompt.rb".freeze, "lib/ollama_chat/database/models/session.rb".freeze, "lib/ollama_chat/database/session_locking.rb".freeze, "lib/ollama_chat/dialog.rb".freeze, "lib/ollama_chat/document_cache.rb".freeze, "lib/ollama_chat/favourites_management.rb".freeze, "lib/ollama_chat/file_editing.rb".freeze, "lib/ollama_chat/follow_chat.rb".freeze, "lib/ollama_chat/history.rb".freeze, "lib/ollama_chat/http_handling.rb".freeze, "lib/ollama_chat/information.rb".freeze, "lib/ollama_chat/input_content.rb".freeze, "lib/ollama_chat/kramdown_ansi.rb".freeze, "lib/ollama_chat/links_set.rb".freeze, "lib/ollama_chat/location_handling.rb".freeze, "lib/ollama_chat/logging.rb".freeze, "lib/ollama_chat/message.rb".freeze, "lib/ollama_chat/message_editing.rb".freeze, "lib/ollama_chat/message_format.rb".freeze, "lib/ollama_chat/message_list.rb".freeze, "lib/ollama_chat/message_output.rb".freeze, "lib/ollama_chat/model_handling.rb".freeze, "lib/ollama_chat/oc.rb".freeze, "lib/ollama_chat/ollama_chat_config.rb".freeze, "lib/ollama_chat/ollama_chat_config/default_config.yml".freeze, "lib/ollama_chat/pager.rb".freeze, "lib/ollama_chat/parsing.rb".freeze, "lib/ollama_chat/personae_management.rb".freeze, "lib/ollama_chat/prompt_handling.rb".freeze, "lib/ollama_chat/prompt_management.rb".freeze, "lib/ollama_chat/rag_handling.rb".freeze, "lib/ollama_chat/redis_cache.rb".freeze, "lib/ollama_chat/server_socket.rb".freeze, "lib/ollama_chat/session_management.rb".freeze, "lib/ollama_chat/source_fetching.rb".freeze, "lib/ollama_chat/state_selectors.rb".freeze, "lib/ollama_chat/switches.rb".freeze, "lib/ollama_chat/system_prompt_management.rb".freeze, "lib/ollama_chat/think_control.rb".freeze, "lib/ollama_chat/token_estimator.rb".freeze, "lib/ollama_chat/token_estimator/crude.rb".freeze, "lib/ollama_chat/tool_calling.rb".freeze, "lib/ollama_chat/tools.rb".freeze, "lib/ollama_chat/tools/browse.rb".freeze, "lib/ollama_chat/tools/compute_bmi.rb".freeze, "lib/ollama_chat/tools/concern.rb".freeze, "lib/ollama_chat/tools/copy_to_clipboard.rb".freeze, "lib/ollama_chat/tools/delete_file.rb".freeze, "lib/ollama_chat/tools/directory_structure.rb".freeze, "lib/ollama_chat/tools/eval_ruby.rb".freeze, "lib/ollama_chat/tools/execute_grep.rb".freeze, "lib/ollama_chat/tools/execute_ri.rb".freeze, "lib/ollama_chat/tools/file_context.rb".freeze, "lib/ollama_chat/tools/gem_path_lookup.rb".freeze, "lib/ollama_chat/tools/generate_image.rb".freeze, "lib/ollama_chat/tools/generate_password.rb".freeze, "lib/ollama_chat/tools/get_current_weather.rb".freeze, "lib/ollama_chat/tools/get_cve.rb".freeze, "lib/ollama_chat/tools/get_endoflife.rb".freeze, "lib/ollama_chat/tools/get_ghr.rb".freeze, "lib/ollama_chat/tools/get_jira_issue.rb".freeze, "lib/ollama_chat/tools/get_location.rb".freeze, "lib/ollama_chat/tools/get_rfc.rb".freeze, "lib/ollama_chat/tools/get_time.rb".freeze, "lib/ollama_chat/tools/get_url.rb".freeze, "lib/ollama_chat/tools/move_file.rb".freeze, "lib/ollama_chat/tools/open_file_in_editor.rb".freeze, "lib/ollama_chat/tools/paste_from_clipboard.rb".freeze, "lib/ollama_chat/tools/paste_into_editor.rb".freeze, "lib/ollama_chat/tools/patch_file.rb".freeze, "lib/ollama_chat/tools/read_file.rb".freeze, "lib/ollama_chat/tools/resolve_tag.rb".freeze, "lib/ollama_chat/tools/retrieve_document_snippets.rb".freeze, "lib/ollama_chat/tools/roll_dice.rb".freeze, "lib/ollama_chat/tools/run_tests.rb".freeze, "lib/ollama_chat/tools/search_web.rb".freeze, "lib/ollama_chat/tools/write_file.rb".freeze, "lib/ollama_chat/utils.rb".freeze, "lib/ollama_chat/utils/analyze_directory.rb".freeze, "lib/ollama_chat/utils/backup.rb".freeze, "lib/ollama_chat/utils/cache_fetcher.rb".freeze, "lib/ollama_chat/utils/chooser.rb".freeze, "lib/ollama_chat/utils/fetcher.rb".freeze, "lib/ollama_chat/utils/json_jsonl_io.rb".freeze, "lib/ollama_chat/utils/log_viewer.rb".freeze, "lib/ollama_chat/utils/path_completer.rb".freeze, "lib/ollama_chat/utils/path_validator.rb".freeze, "lib/ollama_chat/utils/png_metadata_extractor.rb".freeze, "lib/ollama_chat/utils/tag_resolver.rb".freeze, "lib/ollama_chat/utils/utf8_converter.rb".freeze, "lib/ollama_chat/utils/value_formatter.rb".freeze, "lib/ollama_chat/uuid_v7.rb".freeze, "lib/ollama_chat/version.rb".freeze, "lib/ollama_chat/vim.rb".freeze, "lib/ollama_chat/web_searching.rb".freeze, "ollama_chat.gemspec".freeze, "redis/redis.conf".freeze, "spec/assets/api_show.json".freeze, "spec/assets/api_tags.json".freeze, "spec/assets/api_version.json".freeze, "spec/assets/conversation.json".freeze, "spec/assets/conversation.jsonl".freeze, "spec/assets/deep/deeper/empty.txt".freeze, "spec/assets/deep/deeper/not-empty.txt".freeze, "spec/assets/deep/empty.txt".freeze, "spec/assets/duckduckgo.html".freeze, "spec/assets/example.atom".freeze, "spec/assets/example.csv".freeze, "spec/assets/example.epub".freeze, "spec/assets/example.html".freeze, "spec/assets/example.pdf".freeze, "spec/assets/example.ps".freeze, "spec/assets/example.rb".freeze, "spec/assets/example.rss".freeze, "spec/assets/example.xml".freeze, "spec/assets/example_with_quote.html".freeze, "spec/assets/fluffy.png".freeze, "spec/assets/kitten.jpg".freeze, "spec/assets/miyu.png".freeze, "spec/assets/pirateweather.json".freeze, "spec/assets/prompt.txt".freeze, "spec/assets/searxng.json".freeze, "spec/ollama_chat/chat_spec.rb".freeze, "spec/ollama_chat/clipboard_spec.rb".freeze, "spec/ollama_chat/commands_spec.rb".freeze, "spec/ollama_chat/database/models/favourite_spec.rb".freeze, "spec/ollama_chat/file_editing_spec.rb".freeze, "spec/ollama_chat/follow_chat_spec.rb".freeze, "spec/ollama_chat/history_spec.rb".freeze, "spec/ollama_chat/information_spec.rb".freeze, "spec/ollama_chat/input_content_spec.rb".freeze, "spec/ollama_chat/kramdown_ansi_spec.rb".freeze, "spec/ollama_chat/message_editing_spec.rb".freeze, "spec/ollama_chat/message_list_spec.rb".freeze, "spec/ollama_chat/message_output_spec.rb".freeze, "spec/ollama_chat/model_handling_spec.rb".freeze, "spec/ollama_chat/parsing_spec.rb".freeze, "spec/ollama_chat/redis_cache_spec.rb".freeze, "spec/ollama_chat/server_socket_spec.rb".freeze, "spec/ollama_chat/session_management_spec.rb".freeze, "spec/ollama_chat/source_fetching_spec.rb".freeze, "spec/ollama_chat/state_selectors_spec.rb".freeze, "spec/ollama_chat/switches_spec.rb".freeze, "spec/ollama_chat/think_control_spec.rb".freeze, "spec/ollama_chat/token_estimator_spec.rb".freeze, "spec/ollama_chat/tool_calling_spec.rb".freeze, "spec/ollama_chat/tools/browse_spec.rb".freeze, "spec/ollama_chat/tools/compute_bmi_spec.rb".freeze, "spec/ollama_chat/tools/copy_to_clipboard_spec.rb".freeze, "spec/ollama_chat/tools/delete_file_spec.rb".freeze, "spec/ollama_chat/tools/directory_structure_spec.rb".freeze, "spec/ollama_chat/tools/execute_grep_spec.rb".freeze, "spec/ollama_chat/tools/execute_ri_spec.rb".freeze, "spec/ollama_chat/tools/file_context_spec.rb".freeze, "spec/ollama_chat/tools/gem_path_lookup_spec.rb".freeze, "spec/ollama_chat/tools/generate_image_spec.rb".freeze, "spec/ollama_chat/tools/generate_password_spec.rb".freeze, "spec/ollama_chat/tools/get_current_weather_spec.rb".freeze, "spec/ollama_chat/tools/get_cve_spec.rb".freeze, "spec/ollama_chat/tools/get_endoflife_spec.rb".freeze, "spec/ollama_chat/tools/get_ghr_spec.rb".freeze, "spec/ollama_chat/tools/get_jira_issue_spec.rb".freeze, "spec/ollama_chat/tools/get_location_spec.rb".freeze, "spec/ollama_chat/tools/get_rfc_spec.rb".freeze, "spec/ollama_chat/tools/get_time_spec.rb".freeze, "spec/ollama_chat/tools/get_url_spec.rb".freeze, "spec/ollama_chat/tools/move_file_spec.rb".freeze, "spec/ollama_chat/tools/open_file_in_editor_spec.rb".freeze, "spec/ollama_chat/tools/paste_from_clipboard_spec.rb".freeze, "spec/ollama_chat/tools/paste_into_editor_spec.rb".freeze, "spec/ollama_chat/tools/patch_file_spec.rb".freeze, "spec/ollama_chat/tools/read_file_spec.rb".freeze, "spec/ollama_chat/tools/resolve_tag_spec.rb".freeze, "spec/ollama_chat/tools/retrieve_document_snippets_spec.rb".freeze, "spec/ollama_chat/tools/roll_dice_spec.rb".freeze, "spec/ollama_chat/tools/run_tests_spec.rb".freeze, "spec/ollama_chat/tools/search_web_spec.rb".freeze, "spec/ollama_chat/tools/write_file_spec.rb".freeze, "spec/ollama_chat/utils/analyze_directory_spec.rb".freeze, "spec/ollama_chat/utils/cache_fetcher_spec.rb".freeze, "spec/ollama_chat/utils/fetcher_spec.rb".freeze, "spec/ollama_chat/utils/log_viewer_spec.rb".freeze, "spec/ollama_chat/utils/path_completer_spec.rb".freeze, "spec/ollama_chat/utils/png_metadata_extractor_spec.rb".freeze, "spec/ollama_chat/vim_spec.rb".freeze, "spec/ollama_chat/web_searching_spec.rb".freeze, "spec/spec_helper.rb".freeze, "tmp/.keep".freeze]
17
17
  s.homepage = "https://github.com/flori/ollama_chat".freeze
18
18
  s.licenses = ["MIT".freeze]
19
19
  s.rdoc_options = ["--title".freeze, "OllamaChat - A command-line interface (CLI) for interacting with an Ollama AI model.".freeze, "--main".freeze, "README.md".freeze]
20
20
  s.required_ruby_version = Gem::Requirement.new(">= 3.2".freeze)
21
21
  s.rubygems_version = "4.0.17".freeze
22
22
  s.summary = "A command-line interface (CLI) for interacting with an Ollama AI model.".freeze
23
- s.test_files = ["spec/assets/example.rb".freeze, "spec/ollama_chat/chat_spec.rb".freeze, "spec/ollama_chat/clipboard_spec.rb".freeze, "spec/ollama_chat/database/models/favourite_spec.rb".freeze, "spec/ollama_chat/file_editing_spec.rb".freeze, "spec/ollama_chat/follow_chat_spec.rb".freeze, "spec/ollama_chat/history_spec.rb".freeze, "spec/ollama_chat/information_spec.rb".freeze, "spec/ollama_chat/input_content_spec.rb".freeze, "spec/ollama_chat/kramdown_ansi_spec.rb".freeze, "spec/ollama_chat/message_editing_spec.rb".freeze, "spec/ollama_chat/message_list_spec.rb".freeze, "spec/ollama_chat/message_output_spec.rb".freeze, "spec/ollama_chat/model_handling_spec.rb".freeze, "spec/ollama_chat/parsing_spec.rb".freeze, "spec/ollama_chat/redis_cache_spec.rb".freeze, "spec/ollama_chat/server_socket_spec.rb".freeze, "spec/ollama_chat/session_management_spec.rb".freeze, "spec/ollama_chat/source_fetching_spec.rb".freeze, "spec/ollama_chat/state_selectors_spec.rb".freeze, "spec/ollama_chat/switches_spec.rb".freeze, "spec/ollama_chat/think_control_spec.rb".freeze, "spec/ollama_chat/token_estimator_spec.rb".freeze, "spec/ollama_chat/tool_calling_spec.rb".freeze, "spec/ollama_chat/tools/browse_spec.rb".freeze, "spec/ollama_chat/tools/compute_bmi_spec.rb".freeze, "spec/ollama_chat/tools/copy_to_clipboard_spec.rb".freeze, "spec/ollama_chat/tools/delete_file_spec.rb".freeze, "spec/ollama_chat/tools/directory_structure_spec.rb".freeze, "spec/ollama_chat/tools/execute_grep_spec.rb".freeze, "spec/ollama_chat/tools/execute_ri_spec.rb".freeze, "spec/ollama_chat/tools/file_context_spec.rb".freeze, "spec/ollama_chat/tools/gem_path_lookup_spec.rb".freeze, "spec/ollama_chat/tools/generate_image_spec.rb".freeze, "spec/ollama_chat/tools/generate_password_spec.rb".freeze, "spec/ollama_chat/tools/get_current_weather_spec.rb".freeze, "spec/ollama_chat/tools/get_cve_spec.rb".freeze, "spec/ollama_chat/tools/get_endoflife_spec.rb".freeze, "spec/ollama_chat/tools/get_ghr_spec.rb".freeze, "spec/ollama_chat/tools/get_jira_issue_spec.rb".freeze, "spec/ollama_chat/tools/get_location_spec.rb".freeze, "spec/ollama_chat/tools/get_rfc_spec.rb".freeze, "spec/ollama_chat/tools/get_time_spec.rb".freeze, "spec/ollama_chat/tools/get_url_spec.rb".freeze, "spec/ollama_chat/tools/move_file_spec.rb".freeze, "spec/ollama_chat/tools/open_file_in_editor_spec.rb".freeze, "spec/ollama_chat/tools/paste_from_clipboard_spec.rb".freeze, "spec/ollama_chat/tools/paste_into_editor_spec.rb".freeze, "spec/ollama_chat/tools/patch_file_spec.rb".freeze, "spec/ollama_chat/tools/read_file_spec.rb".freeze, "spec/ollama_chat/tools/resolve_tag_spec.rb".freeze, "spec/ollama_chat/tools/retrieve_document_snippets_spec.rb".freeze, "spec/ollama_chat/tools/roll_dice_spec.rb".freeze, "spec/ollama_chat/tools/run_tests_spec.rb".freeze, "spec/ollama_chat/tools/search_web_spec.rb".freeze, "spec/ollama_chat/tools/write_file_spec.rb".freeze, "spec/ollama_chat/utils/analyze_directory_spec.rb".freeze, "spec/ollama_chat/utils/cache_fetcher_spec.rb".freeze, "spec/ollama_chat/utils/fetcher_spec.rb".freeze, "spec/ollama_chat/utils/log_viewer_spec.rb".freeze, "spec/ollama_chat/utils/path_completer_spec.rb".freeze, "spec/ollama_chat/utils/png_metadata_extractor_spec.rb".freeze, "spec/ollama_chat/vim_spec.rb".freeze, "spec/ollama_chat/web_searching_spec.rb".freeze, "spec/spec_helper.rb".freeze]
23
+ s.test_files = ["spec/assets/example.rb".freeze, "spec/ollama_chat/chat_spec.rb".freeze, "spec/ollama_chat/clipboard_spec.rb".freeze, "spec/ollama_chat/commands_spec.rb".freeze, "spec/ollama_chat/database/models/favourite_spec.rb".freeze, "spec/ollama_chat/file_editing_spec.rb".freeze, "spec/ollama_chat/follow_chat_spec.rb".freeze, "spec/ollama_chat/history_spec.rb".freeze, "spec/ollama_chat/information_spec.rb".freeze, "spec/ollama_chat/input_content_spec.rb".freeze, "spec/ollama_chat/kramdown_ansi_spec.rb".freeze, "spec/ollama_chat/message_editing_spec.rb".freeze, "spec/ollama_chat/message_list_spec.rb".freeze, "spec/ollama_chat/message_output_spec.rb".freeze, "spec/ollama_chat/model_handling_spec.rb".freeze, "spec/ollama_chat/parsing_spec.rb".freeze, "spec/ollama_chat/redis_cache_spec.rb".freeze, "spec/ollama_chat/server_socket_spec.rb".freeze, "spec/ollama_chat/session_management_spec.rb".freeze, "spec/ollama_chat/source_fetching_spec.rb".freeze, "spec/ollama_chat/state_selectors_spec.rb".freeze, "spec/ollama_chat/switches_spec.rb".freeze, "spec/ollama_chat/think_control_spec.rb".freeze, "spec/ollama_chat/token_estimator_spec.rb".freeze, "spec/ollama_chat/tool_calling_spec.rb".freeze, "spec/ollama_chat/tools/browse_spec.rb".freeze, "spec/ollama_chat/tools/compute_bmi_spec.rb".freeze, "spec/ollama_chat/tools/copy_to_clipboard_spec.rb".freeze, "spec/ollama_chat/tools/delete_file_spec.rb".freeze, "spec/ollama_chat/tools/directory_structure_spec.rb".freeze, "spec/ollama_chat/tools/execute_grep_spec.rb".freeze, "spec/ollama_chat/tools/execute_ri_spec.rb".freeze, "spec/ollama_chat/tools/file_context_spec.rb".freeze, "spec/ollama_chat/tools/gem_path_lookup_spec.rb".freeze, "spec/ollama_chat/tools/generate_image_spec.rb".freeze, "spec/ollama_chat/tools/generate_password_spec.rb".freeze, "spec/ollama_chat/tools/get_current_weather_spec.rb".freeze, "spec/ollama_chat/tools/get_cve_spec.rb".freeze, "spec/ollama_chat/tools/get_endoflife_spec.rb".freeze, "spec/ollama_chat/tools/get_ghr_spec.rb".freeze, "spec/ollama_chat/tools/get_jira_issue_spec.rb".freeze, "spec/ollama_chat/tools/get_location_spec.rb".freeze, "spec/ollama_chat/tools/get_rfc_spec.rb".freeze, "spec/ollama_chat/tools/get_time_spec.rb".freeze, "spec/ollama_chat/tools/get_url_spec.rb".freeze, "spec/ollama_chat/tools/move_file_spec.rb".freeze, "spec/ollama_chat/tools/open_file_in_editor_spec.rb".freeze, "spec/ollama_chat/tools/paste_from_clipboard_spec.rb".freeze, "spec/ollama_chat/tools/paste_into_editor_spec.rb".freeze, "spec/ollama_chat/tools/patch_file_spec.rb".freeze, "spec/ollama_chat/tools/read_file_spec.rb".freeze, "spec/ollama_chat/tools/resolve_tag_spec.rb".freeze, "spec/ollama_chat/tools/retrieve_document_snippets_spec.rb".freeze, "spec/ollama_chat/tools/roll_dice_spec.rb".freeze, "spec/ollama_chat/tools/run_tests_spec.rb".freeze, "spec/ollama_chat/tools/search_web_spec.rb".freeze, "spec/ollama_chat/tools/write_file_spec.rb".freeze, "spec/ollama_chat/utils/analyze_directory_spec.rb".freeze, "spec/ollama_chat/utils/cache_fetcher_spec.rb".freeze, "spec/ollama_chat/utils/fetcher_spec.rb".freeze, "spec/ollama_chat/utils/log_viewer_spec.rb".freeze, "spec/ollama_chat/utils/path_completer_spec.rb".freeze, "spec/ollama_chat/utils/png_metadata_extractor_spec.rb".freeze, "spec/ollama_chat/vim_spec.rb".freeze, "spec/ollama_chat/web_searching_spec.rb".freeze, "spec/spec_helper.rb".freeze]
24
24
 
25
25
  s.specification_version = 4
26
26