hokipoki 0.5.1 โ 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/bin/gemini_refiner +354 -0
- data/lib/generators/hive_mind/install_generator.rb +19 -9
- data/lib/generators/hokipoki/install_generator.rb +22 -33
- data/lib/hokipoki/atomic_fact_extractor.rb +1 -1
- data/lib/hokipoki/cli/gemini_connector.rb +107 -0
- data/lib/hokipoki/cli/gemini_status_monitor.rb +220 -0
- data/lib/hokipoki/configuration.rb +54 -2
- data/lib/hokipoki/vector_engine.rb +132 -3
- data/lib/hokipoki/version.rb +1 -1
- data/lib/hokipoki.rb +156 -1
- data/lib/tasks/gemini.rake +194 -0
- metadata +7 -58
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
namespace :gemini do
|
|
2
|
+
desc "Start Gemini vector refinement engine in new terminal"
|
|
3
|
+
task :start => :environment do
|
|
4
|
+
require_relative '../hokipoki/cli/gemini_connector'
|
|
5
|
+
|
|
6
|
+
puts "๐ GEMINI VECTOR REFINEMENT SYSTEM"
|
|
7
|
+
puts "โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ"
|
|
8
|
+
puts ""
|
|
9
|
+
puts "๐ Pre-flight checks:"
|
|
10
|
+
|
|
11
|
+
# Check if Rails is available
|
|
12
|
+
if defined?(Rails)
|
|
13
|
+
puts " โ
Rails environment loaded"
|
|
14
|
+
else
|
|
15
|
+
puts " โ Rails not available"
|
|
16
|
+
exit(1)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
# Check if HiveMindDocument model exists
|
|
20
|
+
if defined?(HiveMindDocument)
|
|
21
|
+
doc_count = HiveMindDocument.count rescue 0
|
|
22
|
+
puts " โ
HiveMindDocument available (#{doc_count} vectors)"
|
|
23
|
+
else
|
|
24
|
+
puts " โ ๏ธ HiveMindDocument not available (will work but no data)"
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
# Check if Rails server is running
|
|
28
|
+
begin
|
|
29
|
+
require 'net/http'
|
|
30
|
+
response = Net::HTTP.get_response(URI('http://localhost:3000/'))
|
|
31
|
+
puts " โ
Rails server running on port 3000"
|
|
32
|
+
rescue
|
|
33
|
+
puts " โ ๏ธ Rails server not detected on port 3000"
|
|
34
|
+
puts " Starting Rails server in background..."
|
|
35
|
+
|
|
36
|
+
# Try to start Rails server in background
|
|
37
|
+
Thread.new do
|
|
38
|
+
system("cd #{Rails.root} && rails server -d")
|
|
39
|
+
end
|
|
40
|
+
sleep(3)
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
puts ""
|
|
44
|
+
puts "๐ฏ Starting Gemini refinement system..."
|
|
45
|
+
puts ""
|
|
46
|
+
|
|
47
|
+
# Start the Gemini connector
|
|
48
|
+
Hokipoki::CLI::GeminiConnector.start
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
desc "Show Gemini refinement status"
|
|
52
|
+
task :status => :environment do
|
|
53
|
+
require_relative '../hokipoki/cli/gemini_status_monitor'
|
|
54
|
+
|
|
55
|
+
puts "๐ GEMINI REFINEMENT STATUS"
|
|
56
|
+
puts "โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ"
|
|
57
|
+
puts ""
|
|
58
|
+
|
|
59
|
+
# Show current status without the interactive dashboard
|
|
60
|
+
stats = fetch_quick_stats
|
|
61
|
+
|
|
62
|
+
puts "๐ Quick Stats:"
|
|
63
|
+
puts " Total Vectors: #{stats[:total_vectors]}"
|
|
64
|
+
puts " Refined: #{stats[:refined_count]} โ
"
|
|
65
|
+
puts " Pending: #{stats[:pending_count]} โณ"
|
|
66
|
+
puts ""
|
|
67
|
+
|
|
68
|
+
# Check if Gemini process is running
|
|
69
|
+
gemini_running = system('pgrep -f "gemini_refiner" > /dev/null')
|
|
70
|
+
if gemini_running
|
|
71
|
+
puts "๐ Gemini refiner: RUNNING"
|
|
72
|
+
else
|
|
73
|
+
puts "๐ค Gemini refiner: STOPPED"
|
|
74
|
+
puts ""
|
|
75
|
+
puts " To start: rails gemini:start"
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
puts ""
|
|
79
|
+
puts " For live dashboard: rails gemini:start"
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
desc "Stop Gemini refinement engine"
|
|
83
|
+
task :stop => :environment do
|
|
84
|
+
puts "๐ Stopping Gemini refinement engine..."
|
|
85
|
+
|
|
86
|
+
# Kill Gemini processes
|
|
87
|
+
system('pkill -f "gemini_refiner"')
|
|
88
|
+
|
|
89
|
+
# Clean up temp files
|
|
90
|
+
temp_files = [
|
|
91
|
+
'/tmp/gemini_status.fifo',
|
|
92
|
+
'/tmp/gemini_refined_vectors.fifo',
|
|
93
|
+
'/tmp/gemini_current_refinement.json',
|
|
94
|
+
'/tmp/gemini_refinement_template.json',
|
|
95
|
+
'/tmp/gemini_status.log',
|
|
96
|
+
'/tmp/start_gemini_refiner.sh'
|
|
97
|
+
]
|
|
98
|
+
|
|
99
|
+
temp_files.each do |file|
|
|
100
|
+
File.delete(file) if File.exist?(file)
|
|
101
|
+
rescue
|
|
102
|
+
# Ignore cleanup errors
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
puts "โ
Gemini refinement engine stopped"
|
|
106
|
+
puts "๐งน Temporary files cleaned up"
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
desc "Test Gemini API connection"
|
|
110
|
+
task :test => :environment do
|
|
111
|
+
puts "๐งช GEMINI API CONNECTION TEST"
|
|
112
|
+
puts "โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ"
|
|
113
|
+
puts ""
|
|
114
|
+
|
|
115
|
+
# Test basic connectivity
|
|
116
|
+
begin
|
|
117
|
+
require 'net/http'
|
|
118
|
+
require 'json'
|
|
119
|
+
|
|
120
|
+
# Test unrefined vectors endpoint
|
|
121
|
+
puts "๐ก Testing API endpoints..."
|
|
122
|
+
|
|
123
|
+
uri = URI('http://localhost:3000/api/gemini/unrefined_vectors')
|
|
124
|
+
response = Net::HTTP.get_response(uri)
|
|
125
|
+
|
|
126
|
+
if response.code == '200'
|
|
127
|
+
puts " โ
Unrefined vectors endpoint: OK"
|
|
128
|
+
data = JSON.parse(response.body)
|
|
129
|
+
puts " Found #{data['vectors']&.count || 0} vectors"
|
|
130
|
+
else
|
|
131
|
+
puts " โ Unrefined vectors endpoint: FAILED (#{response.code})"
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
rescue => e
|
|
135
|
+
puts " โ API test failed: #{e.message}"
|
|
136
|
+
puts ""
|
|
137
|
+
puts " ๐ง Troubleshooting:"
|
|
138
|
+
puts " - Make sure Rails server is running: rails server"
|
|
139
|
+
puts " - Check if API routes are configured"
|
|
140
|
+
end
|
|
141
|
+
|
|
142
|
+
# Test Gemini CLI availability
|
|
143
|
+
puts ""
|
|
144
|
+
puts "๐ Testing Gemini CLI..."
|
|
145
|
+
|
|
146
|
+
if system('which gemini > /dev/null 2>&1')
|
|
147
|
+
puts " โ
Gemini CLI found"
|
|
148
|
+
|
|
149
|
+
# Test Gemini API key
|
|
150
|
+
if ENV['GEMINI_API_KEY'] || ENV['GOOGLE_API_KEY']
|
|
151
|
+
puts " โ
API key configured"
|
|
152
|
+
else
|
|
153
|
+
puts " โ ๏ธ API key not found in environment"
|
|
154
|
+
puts " Set GEMINI_API_KEY or GOOGLE_API_KEY"
|
|
155
|
+
end
|
|
156
|
+
else
|
|
157
|
+
puts " โ Gemini CLI not found"
|
|
158
|
+
puts " Install with: npm install -g @google/generative-ai"
|
|
159
|
+
end
|
|
160
|
+
|
|
161
|
+
puts ""
|
|
162
|
+
puts "๐ฏ Test complete!"
|
|
163
|
+
end
|
|
164
|
+
|
|
165
|
+
private
|
|
166
|
+
|
|
167
|
+
def fetch_quick_stats
|
|
168
|
+
begin
|
|
169
|
+
if defined?(HiveMindDocument)
|
|
170
|
+
total = HiveMindDocument.count
|
|
171
|
+
refined = HiveMindDocument.where(refined: true).count
|
|
172
|
+
pending = total - refined
|
|
173
|
+
|
|
174
|
+
{
|
|
175
|
+
total_vectors: total,
|
|
176
|
+
refined_count: refined,
|
|
177
|
+
pending_count: pending
|
|
178
|
+
}
|
|
179
|
+
else
|
|
180
|
+
{
|
|
181
|
+
total_vectors: 0,
|
|
182
|
+
refined_count: 0,
|
|
183
|
+
pending_count: 0
|
|
184
|
+
}
|
|
185
|
+
end
|
|
186
|
+
rescue => e
|
|
187
|
+
{
|
|
188
|
+
total_vectors: "Error",
|
|
189
|
+
refined_count: "Error",
|
|
190
|
+
pending_count: "Error"
|
|
191
|
+
}
|
|
192
|
+
end
|
|
193
|
+
end
|
|
194
|
+
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: hokipoki
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.7.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Rails Utilities
|
|
@@ -23,62 +23,6 @@ dependencies:
|
|
|
23
23
|
- - ">="
|
|
24
24
|
- !ruby/object:Gem::Version
|
|
25
25
|
version: '7.0'
|
|
26
|
-
- !ruby/object:Gem::Dependency
|
|
27
|
-
name: rotp
|
|
28
|
-
requirement: !ruby/object:Gem::Requirement
|
|
29
|
-
requirements:
|
|
30
|
-
- - "~>"
|
|
31
|
-
- !ruby/object:Gem::Version
|
|
32
|
-
version: '6.0'
|
|
33
|
-
type: :runtime
|
|
34
|
-
prerelease: false
|
|
35
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
36
|
-
requirements:
|
|
37
|
-
- - "~>"
|
|
38
|
-
- !ruby/object:Gem::Version
|
|
39
|
-
version: '6.0'
|
|
40
|
-
- !ruby/object:Gem::Dependency
|
|
41
|
-
name: rqrcode
|
|
42
|
-
requirement: !ruby/object:Gem::Requirement
|
|
43
|
-
requirements:
|
|
44
|
-
- - "~>"
|
|
45
|
-
- !ruby/object:Gem::Version
|
|
46
|
-
version: '2.2'
|
|
47
|
-
type: :runtime
|
|
48
|
-
prerelease: false
|
|
49
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
50
|
-
requirements:
|
|
51
|
-
- - "~>"
|
|
52
|
-
- !ruby/object:Gem::Version
|
|
53
|
-
version: '2.2'
|
|
54
|
-
- !ruby/object:Gem::Dependency
|
|
55
|
-
name: omniauth-github
|
|
56
|
-
requirement: !ruby/object:Gem::Requirement
|
|
57
|
-
requirements:
|
|
58
|
-
- - "~>"
|
|
59
|
-
- !ruby/object:Gem::Version
|
|
60
|
-
version: '2.0'
|
|
61
|
-
type: :runtime
|
|
62
|
-
prerelease: false
|
|
63
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
64
|
-
requirements:
|
|
65
|
-
- - "~>"
|
|
66
|
-
- !ruby/object:Gem::Version
|
|
67
|
-
version: '2.0'
|
|
68
|
-
- !ruby/object:Gem::Dependency
|
|
69
|
-
name: omniauth-rails_csrf_protection
|
|
70
|
-
requirement: !ruby/object:Gem::Requirement
|
|
71
|
-
requirements:
|
|
72
|
-
- - "~>"
|
|
73
|
-
- !ruby/object:Gem::Version
|
|
74
|
-
version: '1.0'
|
|
75
|
-
type: :runtime
|
|
76
|
-
prerelease: false
|
|
77
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
78
|
-
requirements:
|
|
79
|
-
- - "~>"
|
|
80
|
-
- !ruby/object:Gem::Version
|
|
81
|
-
version: '1.0'
|
|
82
26
|
- !ruby/object:Gem::Dependency
|
|
83
27
|
name: pg
|
|
84
28
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -265,11 +209,13 @@ description: A collection of utilities and enhancements for Rails applications i
|
|
|
265
209
|
database optimizations, background processing helpers, and developer tools.
|
|
266
210
|
email:
|
|
267
211
|
- utilities@example.com
|
|
268
|
-
executables:
|
|
212
|
+
executables:
|
|
213
|
+
- gemini_refiner
|
|
269
214
|
extensions: []
|
|
270
215
|
extra_rdoc_files: []
|
|
271
216
|
files:
|
|
272
217
|
- LICENSE
|
|
218
|
+
- bin/gemini_refiner
|
|
273
219
|
- lib/generators/hive_mind/install_generator.rb
|
|
274
220
|
- lib/generators/hive_mind/start_generator.rb
|
|
275
221
|
- lib/generators/hive_mind/templates/create_hive_mind_documents.rb
|
|
@@ -288,6 +234,8 @@ files:
|
|
|
288
234
|
- lib/hokipoki/claude/parasite.rb
|
|
289
235
|
- lib/hokipoki/claude/thought_interceptor.rb
|
|
290
236
|
- lib/hokipoki/claude_auto_loader.rb
|
|
237
|
+
- lib/hokipoki/cli/gemini_connector.rb
|
|
238
|
+
- lib/hokipoki/cli/gemini_status_monitor.rb
|
|
291
239
|
- lib/hokipoki/configuration.rb
|
|
292
240
|
- lib/hokipoki/console.rb
|
|
293
241
|
- lib/hokipoki/engine.rb
|
|
@@ -303,6 +251,7 @@ files:
|
|
|
303
251
|
- lib/hokipoki/template_store.rb
|
|
304
252
|
- lib/hokipoki/vector_engine.rb
|
|
305
253
|
- lib/hokipoki/version.rb
|
|
254
|
+
- lib/tasks/gemini.rake
|
|
306
255
|
homepage: https://github.com/rails-utilities/hokipoki
|
|
307
256
|
licenses:
|
|
308
257
|
- Proprietary
|