ollama_chat 0.0.93 → 0.0.95
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 +117 -42
- data/LICENSE +21 -0
- data/README.md +10 -6
- data/lib/ollama_chat/chat.rb +1 -0
- data/lib/ollama_chat/commands.rb +156 -38
- data/lib/ollama_chat/information.rb +0 -4
- data/lib/ollama_chat/input_content.rb +1 -1
- data/lib/ollama_chat/oc.rb +0 -7
- data/lib/ollama_chat/ollama_chat_config/default_config.yml +1 -1
- data/lib/ollama_chat/parsing.rb +50 -21
- data/lib/ollama_chat/personae_management.rb +4 -4
- data/lib/ollama_chat/rag_handling.rb +2 -2
- data/lib/ollama_chat/session_management.rb +1 -3
- data/lib/ollama_chat/state_selectors.rb +1 -1
- data/lib/ollama_chat/tool_calling.rb +2 -2
- data/lib/ollama_chat/tools/compute_bmi.rb +0 -2
- data/lib/ollama_chat/tools/roll_dice.rb +10 -1
- data/lib/ollama_chat/utils/chooser.rb +2 -2
- data/lib/ollama_chat/utils/png_metadata_extractor.rb +111 -0
- data/lib/ollama_chat/utils/utf8_converter.rb +13 -0
- data/lib/ollama_chat/utils.rb +2 -1
- data/lib/ollama_chat/version.rb +1 -1
- data/lib/ollama_chat/web_searching.rb +4 -1
- data/ollama_chat.gemspec +5 -5
- data/spec/assets/miyu.png +0 -0
- data/spec/ollama_chat/parsing_spec.rb +1 -1
- data/spec/ollama_chat/state_selectors_spec.rb +1 -1
- data/spec/ollama_chat/tool_calling_spec.rb +202 -0
- data/spec/ollama_chat/tools/directory_structure_spec.rb +1 -1
- data/spec/ollama_chat/tools/roll_dice_spec.rb +6 -1
- data/spec/ollama_chat/utils/png_metadata_extractor_spec.rb +122 -0
- metadata +11 -5
- data/lib/ollama_chat/utils/png_character_extractor.rb +0 -65
- data/spec/ollama_chat/utils/png_character_extractor_spec.rb +0 -61
data/lib/ollama_chat/oc.rb
CHANGED
|
@@ -190,13 +190,6 @@ module OC
|
|
|
190
190
|
decode { Pathname.new(_1).expand_path }
|
|
191
191
|
end
|
|
192
192
|
|
|
193
|
-
PATCH_TOOL = set do
|
|
194
|
-
description 'Patch tool to use'
|
|
195
|
-
|
|
196
|
-
default { `which patch`.full?(:chomp) }
|
|
197
|
-
check { value.blank? || File.exist?(value) }
|
|
198
|
-
end
|
|
199
|
-
|
|
200
193
|
GHR_URL = set do
|
|
201
194
|
description 'Base URL for GHR api server, e. g. https://ghr.example.com'
|
|
202
195
|
sensitive true
|
data/lib/ollama_chat/parsing.rb
CHANGED
|
@@ -52,11 +52,9 @@ module OllamaChat::Parsing
|
|
|
52
52
|
when 'application/pdf'
|
|
53
53
|
pdf_read(source_io)
|
|
54
54
|
when 'image/png'
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
STDERR.puts "Could not parse character profile from #{source_io&.content_type} document."
|
|
59
|
-
end
|
|
55
|
+
results = parse_png(source_io) and return results.join("\n\n---\n\n")
|
|
56
|
+
STDERR.puts "Could not parse metadata from #{source_io&.content_type} document."
|
|
57
|
+
nil
|
|
60
58
|
when %r(\Aapplication/(json|ld\+json|x-ruby|x-perl|x-gawk|x-python|x-javascript|x-c?sh|x-dosexec|x-shellscript|x-tex|x-latex|x-lyx|x-bibtex)), %r(\Atext/), nil
|
|
61
59
|
source_io.read
|
|
62
60
|
else
|
|
@@ -65,6 +63,45 @@ module OllamaChat::Parsing
|
|
|
65
63
|
end
|
|
66
64
|
end
|
|
67
65
|
|
|
66
|
+
# Extracts embedded metadata from a PNG image, including character profiles,
|
|
67
|
+
# prompts, and workflows. Character profiles are automatically personalized
|
|
68
|
+
# to replace placeholders with the current user's name.
|
|
69
|
+
#
|
|
70
|
+
# @param source_io [IO] The input stream containing the PNG binary data.
|
|
71
|
+
#
|
|
72
|
+
# @return [Array<String>, nil] An array of formatted metadata sections (as
|
|
73
|
+
# strings) if any were found, or nil if no supported metadata was extracted.
|
|
74
|
+
def parse_png(source_io)
|
|
75
|
+
metadata = OllamaChat::Utils::PNGMetadataExtractor.extract_all(source_io) or return
|
|
76
|
+
results = []
|
|
77
|
+
|
|
78
|
+
if data = metadata.delete('chara') and
|
|
79
|
+
char = OllamaChat::Utils::PNGMetadataExtractor.decode_character(data)
|
|
80
|
+
then
|
|
81
|
+
results << "Character Profile:\n\n#{personalize_character_profile(char)}"
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
if data = metadata.delete('parameters') and
|
|
85
|
+
params = OllamaChat::Utils::PNGMetadataExtractor.parse_a1111_parameters(data)
|
|
86
|
+
then
|
|
87
|
+
results << "Generation Settings:\n\n#{params.to_json}"
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
if data = convert_to_utf8(metadata.delete('prompt'))
|
|
91
|
+
results << "Prompt:\n\n#{data}"
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
if data = convert_to_utf8(metadata.delete('workflow'))
|
|
95
|
+
results << "Workflow:\n\n#{data}"
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
if data = metadata.full? { _1.transform_values { |v| convert_to_utf8(v) } }
|
|
99
|
+
results << "Metadata:\n\n#{data}"
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
results.full?
|
|
103
|
+
end
|
|
104
|
+
|
|
68
105
|
# The parse_rss method processes an RSS feed source and converts it into a
|
|
69
106
|
# formatted text representation.
|
|
70
107
|
# It extracts the channel title and iterates through each item in the feed to
|
|
@@ -185,21 +222,13 @@ module OllamaChat::Parsing
|
|
|
185
222
|
)
|
|
186
223
|
end
|
|
187
224
|
|
|
188
|
-
#
|
|
189
|
-
#
|
|
190
|
-
# Replaces the `{{user}}` placeholder with the current user's name or a
|
|
191
|
-
# default string if the name is unavailable.
|
|
225
|
+
# Personalizes a character profile by replacing the {{user}} placeholder.
|
|
192
226
|
#
|
|
193
|
-
# @param
|
|
194
|
-
# @return [String
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
char
|
|
198
|
-
if user_name
|
|
199
|
-
char.gsub('{{user}}', user_name)
|
|
200
|
-
else
|
|
201
|
-
char.gsub('{{user}}', 'the user')
|
|
202
|
-
end
|
|
227
|
+
# @param char [String] The raw character JSON string.
|
|
228
|
+
# @return [String] The personalized character profile.
|
|
229
|
+
def personalize_character_profile(char)
|
|
230
|
+
name = user_name || 'the user'
|
|
231
|
+
char.gsub('{{user}}', name)
|
|
203
232
|
end
|
|
204
233
|
|
|
205
234
|
# Regular expression to scan content for url/file references
|
|
@@ -257,8 +286,8 @@ module OllamaChat::Parsing
|
|
|
257
286
|
add_image(images, source_io, source)
|
|
258
287
|
if source_io&.content_type&.sub_type == 'png'
|
|
259
288
|
source_io.rewind
|
|
260
|
-
if
|
|
261
|
-
contents
|
|
289
|
+
if results = parse_png(source_io)
|
|
290
|
+
contents.concat results
|
|
262
291
|
end
|
|
263
292
|
end
|
|
264
293
|
when 'text', 'application', nil
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Module for managing
|
|
1
|
+
# Module for managing personae in Ollama chat application
|
|
2
2
|
#
|
|
3
3
|
# This module provides functionality to manage persona files, including
|
|
4
4
|
# creating, reading, updating, and deleting persona definitions stored as
|
|
@@ -156,7 +156,7 @@ module OllamaChat::PersonaeManagement
|
|
|
156
156
|
SearchUI::Wrapper.new(name, display:)
|
|
157
157
|
end
|
|
158
158
|
|
|
159
|
-
# Retrieves a list of available
|
|
159
|
+
# Retrieves a list of available personae, decorated with their favourite
|
|
160
160
|
# status.
|
|
161
161
|
#
|
|
162
162
|
# @return [Array<SearchUI::Wrapper>] a list of wrappers containing the
|
|
@@ -172,7 +172,7 @@ module OllamaChat::PersonaeManagement
|
|
|
172
172
|
# Creates a new persona file interactively.
|
|
173
173
|
#
|
|
174
174
|
# The method prompts the user to enter a name for the persona, creates an
|
|
175
|
-
# empty Markdown file with that name in the
|
|
175
|
+
# empty Markdown file with that name in the personae directory (if it does
|
|
176
176
|
# not already exist), opens the file in the configured editor, and finally
|
|
177
177
|
# returns the result of calling `#personae_result` on the created file.
|
|
178
178
|
def add_persona
|
|
@@ -372,7 +372,7 @@ module OllamaChat::PersonaeManagement
|
|
|
372
372
|
# Allows the user to choose a persona from available options or exit.
|
|
373
373
|
# Selected persona is returned if successful, nil if user exits.
|
|
374
374
|
#
|
|
375
|
-
# @param chosen [Set, nil] Optional set of already selected
|
|
375
|
+
# @param chosen [Set, nil] Optional set of already selected personae
|
|
376
376
|
# @param none [Boolean] whether to include a '[NONE]' option in the list
|
|
377
377
|
# @param prompt [String] the prompt message to display when asking for input
|
|
378
378
|
# (default: 'Select a persona: ')
|
|
@@ -44,7 +44,7 @@ module OllamaChat::RAGHandling
|
|
|
44
44
|
tags = @documents.tags.to_a.unshift('[ALL]').unshift('[EXIT]')
|
|
45
45
|
tag = choose_entry(
|
|
46
46
|
tags,
|
|
47
|
-
prompt: 'What obsolete records are to be excised from the annals? '
|
|
47
|
+
prompt: 'What obsolete records are to be excised from the annals? %s'
|
|
48
48
|
)
|
|
49
49
|
case tag
|
|
50
50
|
when nil, '[EXIT]'
|
|
@@ -85,7 +85,7 @@ module OllamaChat::RAGHandling
|
|
|
85
85
|
collections.unshift('[EXIT]').unshift('[NEW]')
|
|
86
86
|
collection = choose_entry(
|
|
87
87
|
collections,
|
|
88
|
-
prompt: 'Which archive of knowledge shall we delve into?'
|
|
88
|
+
prompt: 'Which archive of knowledge shall we delve into? %s'
|
|
89
89
|
) || current_collection
|
|
90
90
|
case collection&.to_s
|
|
91
91
|
when '[NEW]'
|
|
@@ -153,7 +153,7 @@ module OllamaChat::SessionManagement
|
|
|
153
153
|
prompt: "❓ Enter new session name #{action}, C-c ⇒ cancel: ",
|
|
154
154
|
prefill: default_name
|
|
155
155
|
)
|
|
156
|
-
if session_name.
|
|
156
|
+
if session_name.blank?
|
|
157
157
|
STDOUT.puts "Cancelled."
|
|
158
158
|
return nil
|
|
159
159
|
end
|
|
@@ -200,8 +200,6 @@ module OllamaChat::SessionManagement
|
|
|
200
200
|
# This method creates a copy of the current session's attributes and
|
|
201
201
|
# prompts the user for a new name and whether to clear the duplicated
|
|
202
202
|
# session's message history.
|
|
203
|
-
#
|
|
204
|
-
# @return [nil]
|
|
205
203
|
def duplicate_session
|
|
206
204
|
name = determine_valid_new_name_for_session(
|
|
207
205
|
'to create', default_name: session.name
|
|
@@ -54,7 +54,7 @@ module OllamaChat::ToolCalling
|
|
|
54
54
|
#
|
|
55
55
|
# @return [ Hash ] a hash containing the registered tools
|
|
56
56
|
def tools
|
|
57
|
-
|
|
57
|
+
tools_support.off? and return []
|
|
58
58
|
enabled_tools.filter_map { OllamaChat::Tools.registered[it]&.to_hash }
|
|
59
59
|
end
|
|
60
60
|
|
|
@@ -186,7 +186,7 @@ module OllamaChat::ToolCalling
|
|
|
186
186
|
select { |name, value| tool_enabled?(name) && value[:allowed].present? }.
|
|
187
187
|
sort_by(&:first).
|
|
188
188
|
each_with_object({}) do |(name, value), hash|
|
|
189
|
-
hash[name] = value[:allowed].filter_map do
|
|
189
|
+
hash[name.to_s] = value[:allowed].filter_map do
|
|
190
190
|
pathname = Pathname.new(_1).expand_path
|
|
191
191
|
pathname.exist?.full? { pathname.to_path }
|
|
192
192
|
end
|
|
@@ -66,11 +66,20 @@ class OllamaChat::Tools::RollDice
|
|
|
66
66
|
rolls = count.times.map { rand(1..sides) }
|
|
67
67
|
total = rolls.sum + modifier
|
|
68
68
|
|
|
69
|
+
message = "Dice roll was: %s = (%s)" % [ dice, rolls * ' + ' ]
|
|
70
|
+
if modifier > 0
|
|
71
|
+
message << " + %u" % modifier
|
|
72
|
+
elsif modifier < 0
|
|
73
|
+
message << " - %u" % -modifier
|
|
74
|
+
end
|
|
75
|
+
message << " = %u" % total
|
|
76
|
+
|
|
69
77
|
{
|
|
70
78
|
dice:,
|
|
71
79
|
rolls:,
|
|
72
80
|
modifier:,
|
|
73
|
-
total: total
|
|
81
|
+
total: total,
|
|
82
|
+
message:
|
|
74
83
|
}.to_json
|
|
75
84
|
rescue => e
|
|
76
85
|
{ error: e.class, message: e.message }.to_json
|
|
@@ -12,7 +12,7 @@ require 'term/ansicolor'
|
|
|
12
12
|
#
|
|
13
13
|
# @example Using the chooser in an interactive menu
|
|
14
14
|
# entries = ['apple', 'banana', 'cherry']
|
|
15
|
-
# selected = choose_entry(entries, prompt: 'Choose a fruit:')
|
|
15
|
+
# selected = choose_entry(entries, prompt: 'Choose a fruit: %s')
|
|
16
16
|
#
|
|
17
17
|
# @example Returning immediately if only one entry exists
|
|
18
18
|
# entries = ['single_option']
|
|
@@ -37,7 +37,7 @@ module OllamaChat::Utils::Chooser
|
|
|
37
37
|
# @return [Object] the selected entry, or nil if no entry was chosen
|
|
38
38
|
#
|
|
39
39
|
# @example
|
|
40
|
-
# choose_entry(['entry1', 'entry2'], prompt: 'Choose an option:')
|
|
40
|
+
# choose_entry(['entry1', 'entry2'], prompt: 'Choose an option: %s')
|
|
41
41
|
def choose_entry(entries, prompt: 'Search? %s', return_immediately: false)
|
|
42
42
|
if return_immediately && entries.size <= 1
|
|
43
43
|
return entries.first
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
require 'base64'
|
|
2
|
+
|
|
3
|
+
# Extracts embedded metadata from PNG image files, such as character profiles,
|
|
4
|
+
# ComfyUI workflows, and prompts stored in 'tEXt' chunks.
|
|
5
|
+
module OllamaChat::Utils::PNGMetadataExtractor
|
|
6
|
+
include OllamaChat::Utils::UTF8Converter
|
|
7
|
+
extend OllamaChat::Utils::UTF8Converter
|
|
8
|
+
|
|
9
|
+
module_function
|
|
10
|
+
|
|
11
|
+
# Extracts all 'tEXt' chunk metadata from the provided IO object.
|
|
12
|
+
#
|
|
13
|
+
# @param io [IO] An IO-like object providing access to the PNG binary data.
|
|
14
|
+
# @return [Hash, nil] A hash of { keyword => text } if a valid PNG is found,
|
|
15
|
+
# otherwise nil.
|
|
16
|
+
def extract_all(io)
|
|
17
|
+
data = if io.respond_to?(:binmode)
|
|
18
|
+
io.binmode
|
|
19
|
+
io.read
|
|
20
|
+
elsif io.respond_to?(:binread)
|
|
21
|
+
io.binread
|
|
22
|
+
else
|
|
23
|
+
return nil
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
# PNG Signature is 8 bytes: \x89PNG\r\n\x1a\n
|
|
27
|
+
pos = 8
|
|
28
|
+
metadata = {}
|
|
29
|
+
|
|
30
|
+
while pos < data.length
|
|
31
|
+
# 1. Read Length (4 bytes, Big Endian)
|
|
32
|
+
length = data[pos, 4]&.unpack1('L>')
|
|
33
|
+
break unless length
|
|
34
|
+
|
|
35
|
+
pos += 4
|
|
36
|
+
|
|
37
|
+
# 2. Read Chunk Type (4 bytes)
|
|
38
|
+
type = data[pos, 4]
|
|
39
|
+
pos += 4
|
|
40
|
+
|
|
41
|
+
# 3. Read Chunk Data
|
|
42
|
+
chunk_data = data[pos, length]
|
|
43
|
+
pos += length
|
|
44
|
+
|
|
45
|
+
# 4. Skip CRC (4 bytes)
|
|
46
|
+
pos += 4
|
|
47
|
+
|
|
48
|
+
if type == 'tEXt'
|
|
49
|
+
# tEXt chunks are formatted as: Keyword + NULL Byte + Text
|
|
50
|
+
keyword, text = chunk_data.split("\x00", 2)
|
|
51
|
+
metadata[keyword] = text if keyword
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
metadata.empty? ? nil : metadata
|
|
56
|
+
ensure
|
|
57
|
+
io.ask_and_send(:rewind)
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
# Decodes a Base64 encoded character profile and validates it as JSON.
|
|
61
|
+
#
|
|
62
|
+
# @param text [String] The raw 'chara' metadata value.
|
|
63
|
+
# @return [String, nil] The decoded JSON string if valid, otherwise nil.
|
|
64
|
+
def decode_character(text)
|
|
65
|
+
return nil unless text
|
|
66
|
+
|
|
67
|
+
begin
|
|
68
|
+
decoded = Base64.decode64(text)
|
|
69
|
+
decoded = convert_to_utf8(decoded)
|
|
70
|
+
JSON.parse(decoded) # Validation check
|
|
71
|
+
decoded
|
|
72
|
+
rescue JSON::ParserError, ArgumentError
|
|
73
|
+
nil
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
# Parses Automatic1111 / Stable Diffusion WebUI parameters metadata.
|
|
78
|
+
#
|
|
79
|
+
# @param text [String] The raw 'parameters' metadata value.
|
|
80
|
+
# @return [Hash, nil] A hash containing :prompt, :negative_prompt, and :settings.
|
|
81
|
+
def parse_a1111_parameters(text)
|
|
82
|
+
text or return
|
|
83
|
+
|
|
84
|
+
lines = text.split("\n")
|
|
85
|
+
result = { prompt: lines[0], negative_prompt: nil, settings: {} }
|
|
86
|
+
|
|
87
|
+
lines[1..].each do |line|
|
|
88
|
+
if line.start_with?('Negative prompt: ')
|
|
89
|
+
result[:negative_prompt] = line.sub('Negative prompt: ', '')
|
|
90
|
+
else
|
|
91
|
+
# Parse comma-separated key-value pairs (e.g., "Steps: 20, Sampler: Euler")
|
|
92
|
+
line.split(', ').each do |pair|
|
|
93
|
+
key, value = pair.split(': ', 2)
|
|
94
|
+
result[:settings][key.downcase.to_sym] = value if key && value
|
|
95
|
+
end
|
|
96
|
+
end
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
result
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
# Convenience method to extract a character profile from a PNG.
|
|
103
|
+
# Maintained for backward compatibility with existing call sites.
|
|
104
|
+
#
|
|
105
|
+
# @param io [IO] An IO-like object providing access to the PNG binary data.
|
|
106
|
+
# @return [String, nil] The decoded JSON string if found and valid, otherwise nil.
|
|
107
|
+
def extract_character(io)
|
|
108
|
+
metadata = extract_all(io) or return
|
|
109
|
+
decode_character(metadata['chara'])
|
|
110
|
+
end
|
|
111
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# A utility module for converting strings to UTF-8 encoding. This module
|
|
2
|
+
# provides methods to ensure text is properly encoded as UTF-8, replacing
|
|
3
|
+
# invalid or undefined characters to prevent encoding errors.
|
|
4
|
+
module OllamaChat::Utils::UTF8Converter
|
|
5
|
+
# Converts the given text to UTF-8 encoding, replacing invalid or undefined
|
|
6
|
+
# characters.
|
|
7
|
+
#
|
|
8
|
+
# @param text [String, nil] the text to be converted if any
|
|
9
|
+
# @return [String, nil] the UTF-8 encoded string or nil
|
|
10
|
+
def convert_to_utf8(text)
|
|
11
|
+
text&.encode('UTF-8', invalid: :replace, undef: :replace)
|
|
12
|
+
end
|
|
13
|
+
end
|
data/lib/ollama_chat/utils.rb
CHANGED
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
module OllamaChat::Utils
|
|
10
10
|
end
|
|
11
11
|
|
|
12
|
+
require 'ollama_chat/utils/utf8_converter'
|
|
12
13
|
require 'ollama_chat/utils/analyze_directory'
|
|
13
14
|
require 'ollama_chat/utils/backup'
|
|
14
15
|
require 'ollama_chat/utils/cache_fetcher'
|
|
@@ -17,7 +18,7 @@ require 'ollama_chat/utils/fetcher'
|
|
|
17
18
|
require 'ollama_chat/utils/json_jsonl_io'
|
|
18
19
|
require 'ollama_chat/utils/path_completer'
|
|
19
20
|
require 'ollama_chat/utils/path_validator'
|
|
20
|
-
require 'ollama_chat/utils/
|
|
21
|
+
require 'ollama_chat/utils/png_metadata_extractor'
|
|
21
22
|
require 'ollama_chat/utils/tag_resolver'
|
|
22
23
|
require 'ollama_chat/utils/token_estimator'
|
|
23
24
|
require 'ollama_chat/utils/value_formatter'
|
data/lib/ollama_chat/version.rb
CHANGED
|
@@ -108,7 +108,10 @@ module OllamaChat::WebSearching
|
|
|
108
108
|
choose_with_state do
|
|
109
109
|
loop do
|
|
110
110
|
links_options = links.to_a.unshift('[ALL]').unshift('[EXIT]')
|
|
111
|
-
link = choose_entry(
|
|
111
|
+
link = choose_entry(
|
|
112
|
+
links_options,
|
|
113
|
+
prompt: 'Which links of knowledge shall we sever? %s'
|
|
114
|
+
)
|
|
112
115
|
case link
|
|
113
116
|
when nil, '[EXIT]'
|
|
114
117
|
STDOUT.puts "Exiting chooser."
|
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.95 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.95".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]
|
|
@@ -12,15 +12,15 @@ Gem::Specification.new do |s|
|
|
|
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
14
|
s.executables = ["ollama_chat".freeze, "ollama_chat_send".freeze]
|
|
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/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/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/path_completer.rb".freeze, "lib/ollama_chat/utils/path_validator.rb".freeze, "lib/ollama_chat/utils/
|
|
16
|
-
s.files = [".utilsrc".freeze, "CHANGES.md".freeze, "Gemfile".freeze, "README.md".freeze, "Rakefile".freeze, "bin/ollama_chat".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/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/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/path_completer.rb".freeze, "lib/ollama_chat/utils/path_validator.rb".freeze, "lib/ollama_chat/utils/
|
|
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/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/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/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/token_estimator.rb".freeze, "lib/ollama_chat/utils/utf8_converter.rb".freeze, "lib/ollama_chat/utils/value_formatter.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_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/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/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/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/token_estimator.rb".freeze, "lib/ollama_chat/utils/utf8_converter.rb".freeze, "lib/ollama_chat/utils/value_formatter.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.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/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/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/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.10".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/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/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/path_completer_spec.rb".freeze, "spec/ollama_chat/utils/
|
|
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/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/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/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
|
|
|
Binary file
|
|
@@ -282,7 +282,7 @@ describe OllamaChat::Parsing do
|
|
|
282
282
|
"example.atom", "example.csv", "example.html", "example.pdf",
|
|
283
283
|
"example.ps", "example.rb", "example.rss", "example.xml",
|
|
284
284
|
"example_with_quote.html", "kitten.jpg", "prompt.txt",
|
|
285
|
-
"searxng.json", "pirateweather.json", "fluffy.png",
|
|
285
|
+
"searxng.json", "pirateweather.json", "fluffy.png", "miyu.png",
|
|
286
286
|
].sort
|
|
287
287
|
)
|
|
288
288
|
end
|
|
@@ -124,7 +124,7 @@ describe OllamaChat::StateSelectors::StateSelector do
|
|
|
124
124
|
# Mock the chooser to return a specific choice
|
|
125
125
|
expect(selector).to receive(:choose_entry).with(
|
|
126
126
|
%w[ [EXIT] enabled disabled low high ],
|
|
127
|
-
prompt: 'Which operational paradigm should be engaged?'
|
|
127
|
+
prompt: 'Which operational paradigm should be engaged? %s'
|
|
128
128
|
).and_return(double(value: 'low'))
|
|
129
129
|
|
|
130
130
|
selector.choose
|