hokipoki 0.1.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.
data/lib/hokipoki.rb ADDED
@@ -0,0 +1,174 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "hokipoki/version"
4
+ require_relative "hokipoki/configuration"
5
+ require_relative "hokipoki/license_validator"
6
+ require_relative "hokipoki/engine"
7
+
8
+ # Feedback system (load first)
9
+ require_relative "hokipoki/feedback/display_manager"
10
+
11
+ # Core modules
12
+ require_relative "hokipoki/core/vector_intelligence"
13
+ require_relative "hokipoki/core/brain_manager"
14
+ require_relative "hokipoki/core/embedding_patterns"
15
+ require_relative "hokipoki/core/token_budget_manager"
16
+
17
+ # Intelligence modules
18
+ require_relative "hokipoki/intelligence/unified_orchestrator"
19
+ require_relative "hokipoki/intelligence/smart_retrieval_engine"
20
+ require_relative "hokipoki/intelligence/template_registry"
21
+ require_relative "hokipoki/intelligence/template_seeding_service"
22
+ require_relative "hokipoki/intelligence/pattern_compliance"
23
+
24
+ # Parasite modules
25
+ require_relative "hokipoki/parasites/universal_generator"
26
+ require_relative "hokipoki/parasites/parasite_registry"
27
+ require_relative "hokipoki/parasites/behavioral_analyzer"
28
+ require_relative "hokipoki/parasites/optimizer"
29
+ require_relative "hokipoki/parasites/intelligence_network"
30
+
31
+ # Forge modules (optional)
32
+ begin
33
+ require_relative "hokipoki/forge/generator_forge"
34
+ require_relative "hokipoki/forge/workshop_interface"
35
+ require_relative "hokipoki/forge/document_processor"
36
+ require_relative "hokipoki/forge/pipeline_orchestrator"
37
+ rescue LoadError => e
38
+ # Forge components are optional
39
+ Rails.logger&.debug "Forge components not loaded: #{e.message}"
40
+ end
41
+
42
+ # Security modules
43
+ require_relative "hokipoki/security/audit_service"
44
+ require_relative "hokipoki/security/offline_optimizer"
45
+ require_relative "hokipoki/security/api_authentication"
46
+
47
+ # Claude integration modules (lazy loaded)
48
+ begin
49
+ require_relative "hokipoki/claude/auto_loader"
50
+ require_relative "hokipoki/claude/connection_manager"
51
+ require_relative "hokipoki/claude/parasite"
52
+ rescue LoadError => e
53
+ # Claude modules are optional
54
+ Rails.logger&.debug "Claude integration not loaded: #{e.message}"
55
+ end
56
+
57
+ module Hokipoki
58
+ class Error < StandardError; end
59
+ class ConfigurationError < Error; end
60
+ class IntelligenceError < Error; end
61
+ class ParasiteError < Error; end
62
+
63
+ # Validate license on gem load (before anything else)
64
+ begin
65
+ LicenseValidator.validate! if defined?(Rails)
66
+ rescue LicenseValidator::LicenseError => e
67
+ Rails.logger&.error "🔒 HokiPoki License Error: #{e.message}"
68
+ raise e if Rails.env.production?
69
+ end
70
+
71
+ class << self
72
+ attr_accessor :configuration
73
+
74
+ # Configure Hokipoki
75
+ def configure
76
+ self.configuration ||= Configuration.new
77
+ yield(configuration) if block_given?
78
+ configuration
79
+ end
80
+
81
+ # Get current configuration
82
+ def config
83
+ configuration || configure
84
+ end
85
+
86
+ # Check if component is enabled
87
+ def parasites_enabled?
88
+ config.enable_parasites
89
+ end
90
+
91
+ def forge_enabled?
92
+ config.enable_forge
93
+ end
94
+
95
+ def behavioral_analysis_enabled?
96
+ config.enable_behavioral_analysis
97
+ end
98
+
99
+ def template_optimization_enabled?
100
+ config.enable_template_optimization
101
+ end
102
+
103
+ # Main API methods - shortcuts to core services
104
+
105
+ # Retrieve targeted facts with vector intelligence
106
+ def retrieve_facts(query, token_budget: 1500, intent: 'auto')
107
+ Intelligence::UnifiedOrchestrator.instance.retrieve_targeted_facts(
108
+ query,
109
+ token_budget: token_budget,
110
+ intent: intent
111
+ )
112
+ end
113
+
114
+ # Generate universal parasite
115
+ def generate_parasite(requirements)
116
+ raise ParasiteError, "Parasites not enabled" unless parasites_enabled?
117
+
118
+ Parasites::UniversalGenerator.instance.generate_parasite(requirements)
119
+ end
120
+
121
+ # Process intelligence request
122
+ def process_intelligence(request_type, input_data, options = {})
123
+ Intelligence::UnifiedOrchestrator.instance.process_intelligence_request(
124
+ request_type,
125
+ input_data,
126
+ options
127
+ )
128
+ end
129
+
130
+ # Switch brain context
131
+ def switch_brain(brain_name, context = {})
132
+ Core::BrainManager.instance.switch_brain(brain_name, context)
133
+ end
134
+
135
+ # Get system status
136
+ def system_status
137
+ {
138
+ version: VERSION,
139
+ components: {
140
+ parasites: parasites_enabled?,
141
+ forge: forge_enabled?,
142
+ behavioral_analysis: behavioral_analysis_enabled?,
143
+ template_optimization: template_optimization_enabled?
144
+ },
145
+ orchestrator: Intelligence::UnifiedOrchestrator.instance.get_system_status,
146
+ timestamp: Time.current.iso8601
147
+ }
148
+ end
149
+
150
+ # Health check
151
+ def healthy?
152
+ begin
153
+ config.present? &&
154
+ Intelligence::UnifiedOrchestrator.instance.get_system_status[:unified_orchestrator] == 'operational'
155
+ rescue => e
156
+ Rails.logger&.error "Hokipoki health check failed: #{e.message}"
157
+ false
158
+ end
159
+ end
160
+
161
+ # Reset configuration (useful for testing)
162
+ def reset!
163
+ self.configuration = nil
164
+ # Clear any singleton instances
165
+ Intelligence::UnifiedOrchestrator.instance.instance_variable_set(:@initialized, false) rescue nil
166
+ Parasites::UniversalGenerator.instance.instance_variable_set(:@initialized, false) rescue nil
167
+ end
168
+ end
169
+ end
170
+
171
+ # Auto-configure if Rails is present
172
+ if defined?(Rails)
173
+ require_relative "hokipoki/railtie"
174
+ end
metadata ADDED
@@ -0,0 +1,271 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: hokipoki
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Rails Utilities
8
+ bindir: bin
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: rails
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ">="
17
+ - !ruby/object:Gem::Version
18
+ version: '7.0'
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - ">="
24
+ - !ruby/object:Gem::Version
25
+ version: '7.0'
26
+ - !ruby/object:Gem::Dependency
27
+ name: pg
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: '1.0'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: '1.0'
40
+ - !ruby/object:Gem::Dependency
41
+ name: neighbor
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: '0.3'
47
+ type: :runtime
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: '0.3'
54
+ - !ruby/object:Gem::Dependency
55
+ name: redis
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: '4.0'
61
+ type: :runtime
62
+ prerelease: false
63
+ version_requirements: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: '4.0'
68
+ - !ruby/object:Gem::Dependency
69
+ name: sidekiq
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: '6.0'
75
+ type: :runtime
76
+ prerelease: false
77
+ version_requirements: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: '6.0'
82
+ - !ruby/object:Gem::Dependency
83
+ name: thor
84
+ requirement: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: '1.0'
89
+ type: :runtime
90
+ prerelease: false
91
+ version_requirements: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - ">="
94
+ - !ruby/object:Gem::Version
95
+ version: '1.0'
96
+ - !ruby/object:Gem::Dependency
97
+ name: tty-prompt
98
+ requirement: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: '0.23'
103
+ type: :runtime
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - ">="
108
+ - !ruby/object:Gem::Version
109
+ version: '0.23'
110
+ - !ruby/object:Gem::Dependency
111
+ name: tty-spinner
112
+ requirement: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - ">="
115
+ - !ruby/object:Gem::Version
116
+ version: '0.9'
117
+ type: :runtime
118
+ prerelease: false
119
+ version_requirements: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - ">="
122
+ - !ruby/object:Gem::Version
123
+ version: '0.9'
124
+ - !ruby/object:Gem::Dependency
125
+ name: pastel
126
+ requirement: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - ">="
129
+ - !ruby/object:Gem::Version
130
+ version: '0.8'
131
+ type: :runtime
132
+ prerelease: false
133
+ version_requirements: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - ">="
136
+ - !ruby/object:Gem::Version
137
+ version: '0.8'
138
+ - !ruby/object:Gem::Dependency
139
+ name: rspec-rails
140
+ requirement: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - ">="
143
+ - !ruby/object:Gem::Version
144
+ version: '5.0'
145
+ type: :development
146
+ prerelease: false
147
+ version_requirements: !ruby/object:Gem::Requirement
148
+ requirements:
149
+ - - ">="
150
+ - !ruby/object:Gem::Version
151
+ version: '5.0'
152
+ - !ruby/object:Gem::Dependency
153
+ name: factory_bot_rails
154
+ requirement: !ruby/object:Gem::Requirement
155
+ requirements:
156
+ - - ">="
157
+ - !ruby/object:Gem::Version
158
+ version: '6.0'
159
+ type: :development
160
+ prerelease: false
161
+ version_requirements: !ruby/object:Gem::Requirement
162
+ requirements:
163
+ - - ">="
164
+ - !ruby/object:Gem::Version
165
+ version: '6.0'
166
+ - !ruby/object:Gem::Dependency
167
+ name: capybara
168
+ requirement: !ruby/object:Gem::Requirement
169
+ requirements:
170
+ - - ">="
171
+ - !ruby/object:Gem::Version
172
+ version: '3.0'
173
+ type: :development
174
+ prerelease: false
175
+ version_requirements: !ruby/object:Gem::Requirement
176
+ requirements:
177
+ - - ">="
178
+ - !ruby/object:Gem::Version
179
+ version: '3.0'
180
+ - !ruby/object:Gem::Dependency
181
+ name: webmock
182
+ requirement: !ruby/object:Gem::Requirement
183
+ requirements:
184
+ - - ">="
185
+ - !ruby/object:Gem::Version
186
+ version: '3.0'
187
+ type: :development
188
+ prerelease: false
189
+ version_requirements: !ruby/object:Gem::Requirement
190
+ requirements:
191
+ - - ">="
192
+ - !ruby/object:Gem::Version
193
+ version: '3.0'
194
+ - !ruby/object:Gem::Dependency
195
+ name: standard
196
+ requirement: !ruby/object:Gem::Requirement
197
+ requirements:
198
+ - - ">="
199
+ - !ruby/object:Gem::Version
200
+ version: '1.0'
201
+ type: :development
202
+ prerelease: false
203
+ version_requirements: !ruby/object:Gem::Requirement
204
+ requirements:
205
+ - - ">="
206
+ - !ruby/object:Gem::Version
207
+ version: '1.0'
208
+ - !ruby/object:Gem::Dependency
209
+ name: yard
210
+ requirement: !ruby/object:Gem::Requirement
211
+ requirements:
212
+ - - ">="
213
+ - !ruby/object:Gem::Version
214
+ version: '0.9'
215
+ type: :development
216
+ prerelease: false
217
+ version_requirements: !ruby/object:Gem::Requirement
218
+ requirements:
219
+ - - ">="
220
+ - !ruby/object:Gem::Version
221
+ version: '0.9'
222
+ description: A collection of utilities and enhancements for Rails applications including
223
+ database optimizations, background processing helpers, and developer tools.
224
+ email:
225
+ - utilities@example.com
226
+ executables: []
227
+ extensions: []
228
+ extra_rdoc_files: []
229
+ files:
230
+ - LICENSE
231
+ - lib/generators/hive_mind/install_generator.rb
232
+ - lib/hokipoki.rb
233
+ - lib/hokipoki/claude/auto_loader.rb
234
+ - lib/hokipoki/claude/connection_manager.rb
235
+ - lib/hokipoki/claude/parasite.rb
236
+ - lib/hokipoki/configuration.rb
237
+ - lib/hokipoki/engine.rb
238
+ - lib/hokipoki/feedback/ascii_banners.rb
239
+ - lib/hokipoki/feedback/display_manager.rb
240
+ - lib/hokipoki/intelligence/smart_retrieval_engine.rb
241
+ - lib/hokipoki/intelligence/unified_orchestrator.rb
242
+ - lib/hokipoki/license_validator.rb
243
+ - lib/hokipoki/parasites/universal_generator.rb
244
+ - lib/hokipoki/railtie.rb
245
+ - lib/hokipoki/version.rb
246
+ homepage: https://github.com/rails-utilities/hokipoki
247
+ licenses:
248
+ - Proprietary
249
+ metadata:
250
+ homepage_uri: https://github.com/rails-utilities/hokipoki
251
+ source_code_uri: https://github.com/rails-utilities/hokipoki
252
+ changelog_uri: https://github.com/rails-utilities/hokipoki/blob/main/CHANGELOG.md
253
+ documentation_uri: https://github.com/rails-utilities/hokipoki
254
+ rdoc_options: []
255
+ require_paths:
256
+ - lib
257
+ required_ruby_version: !ruby/object:Gem::Requirement
258
+ requirements:
259
+ - - ">="
260
+ - !ruby/object:Gem::Version
261
+ version: 3.0.0
262
+ required_rubygems_version: !ruby/object:Gem::Requirement
263
+ requirements:
264
+ - - ">="
265
+ - !ruby/object:Gem::Version
266
+ version: '0'
267
+ requirements: []
268
+ rubygems_version: 3.7.1
269
+ specification_version: 4
270
+ summary: Rails application enhancement utilities
271
+ test_files: []