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 +4 -4
- data/CHANGES.md +58 -0
- data/Rakefile +1 -1
- data/lib/ollama_chat/chat.rb +10 -5
- data/lib/ollama_chat/commands.rb +39 -21
- data/lib/ollama_chat/dialog.rb +4 -4
- data/lib/ollama_chat/favourites_management.rb +1 -1
- data/lib/ollama_chat/information.rb +1 -1
- data/lib/ollama_chat/model_handling.rb +24 -12
- data/lib/ollama_chat/oc.rb +5 -1
- data/lib/ollama_chat/tools/run_tests.rb +11 -4
- data/lib/ollama_chat/version.rb +1 -1
- data/ollama_chat.gemspec +5 -5
- data/spec/ollama_chat/chat_spec.rb +0 -431
- data/spec/ollama_chat/commands_spec.rb +551 -0
- data/spec/ollama_chat/parsing_spec.rb +3 -0
- data/spec/ollama_chat/tools/get_jira_issue_spec.rb +6 -0
- metadata +4 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: e723f48c6459c1ab6aa79f1acaf19a1bab5484f7c36e75c3491cef88deba0d92
|
|
4
|
+
data.tar.gz: 71e979fa1419bb82abd7f9d0dd44b70aa8576509a7735b3e1b2abee4f0a53f81
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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
data/lib/ollama_chat/chat.rb
CHANGED
|
@@ -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
|
|
342
|
+
# Returns the prefill prompt string if one exists and is not empty, or nil
|
|
343
|
+
# otherwise.
|
|
339
344
|
#
|
|
340
|
-
# @return [
|
|
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
|
-
#
|
|
346
|
-
#
|
|
347
|
-
#
|
|
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.
|
data/lib/ollama_chat/commands.rb
CHANGED
|
@@ -58,7 +58,7 @@ module OllamaChat::Commands
|
|
|
58
58
|
complete: [ 'config', %w[ edit reload ] ],
|
|
59
59
|
optional: true,
|
|
60
60
|
help: <<~EOT
|
|
61
|
-
|
|
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
|
-
|
|
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)
|
|
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
|
-
|
|
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+(
|
|
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
|
|
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
|
-
|
|
139
|
-
when 'change'
|
|
140
|
-
opts = go_command('p:', opts, defaults: { ?p => 'default' })
|
|
153
|
+
if subcommand == 'change'
|
|
141
154
|
begin
|
|
142
|
-
|
|
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:
|
|
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
|
-
|
|
149
|
-
edit_model_options(@model, profile: opts[?p])
|
|
169
|
+
edit_model_options(model, profile:)
|
|
150
170
|
when 'options from session'
|
|
151
|
-
|
|
152
|
-
copy_model_options_from_session(profile: opts[?p])
|
|
171
|
+
copy_model_options_from_session(model, profile:)
|
|
153
172
|
when 'options to session'
|
|
154
|
-
|
|
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
|
-
|
|
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
|
-
|
|
951
|
+
\u2139\uFE0F Show info:
|
|
934
952
|
- session: Current chat details
|
|
935
953
|
- model: Active AI model info
|
|
936
954
|
- runtime: System/environmental data
|
data/lib/ollama_chat/dialog.rb
CHANGED
|
@@ -59,14 +59,14 @@ module OllamaChat::Dialog
|
|
|
59
59
|
case
|
|
60
60
|
when yes.nil?
|
|
61
61
|
if keypress
|
|
62
|
-
output.puts "
|
|
62
|
+
output.puts "\u2328\uFE0F #{answer}"
|
|
63
63
|
else
|
|
64
|
-
output.puts "
|
|
64
|
+
output.puts "\u231B\uFE0F #{answer}"
|
|
65
65
|
end
|
|
66
66
|
answer
|
|
67
67
|
when answer =~ yes
|
|
68
68
|
if keypress
|
|
69
|
-
output.puts "
|
|
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 "
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
-
#
|
|
160
|
-
|
|
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
|
|
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
|
|
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
|
|
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.
|
|
343
|
+
if model.blank?
|
|
332
344
|
@model = choose_model('', @model)
|
|
333
345
|
else
|
|
334
346
|
@model = choose_model(model, config.model.name)
|
data/lib/ollama_chat/oc.rb
CHANGED
|
@@ -169,7 +169,11 @@ module OC
|
|
|
169
169
|
|
|
170
170
|
# Run Tests tool configuration
|
|
171
171
|
TEST_RUNNER = set do
|
|
172
|
-
description
|
|
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
|
|
27
|
-
|
|
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
|
-
|
|
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
|
data/lib/ollama_chat/version.rb
CHANGED
data/ollama_chat.gemspec
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
|
2
|
-
# stub: ollama_chat 0.0.
|
|
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.
|
|
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
|
|