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.
@@ -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.5.1
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