code_healer 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.
Files changed (38) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +70 -0
  3. data/GEM_SUMMARY.md +307 -0
  4. data/README.md +281 -0
  5. data/code_healer.gemspec +77 -0
  6. data/config/code_healer.yml.example +104 -0
  7. data/docs/INSTALLATION.md +439 -0
  8. data/examples/basic_usage.rb +160 -0
  9. data/exe/code_healer-setup +7 -0
  10. data/lib/code_healer/application_job.rb +7 -0
  11. data/lib/code_healer/business_context_analyzer.rb +464 -0
  12. data/lib/code_healer/business_context_loader.rb +273 -0
  13. data/lib/code_healer/business_context_manager.rb +297 -0
  14. data/lib/code_healer/business_logic_generator.rb +94 -0
  15. data/lib/code_healer/business_rule_applier.rb +54 -0
  16. data/lib/code_healer/claude_code_evolution_handler.rb +224 -0
  17. data/lib/code_healer/claude_error_monitor.rb +48 -0
  18. data/lib/code_healer/config_manager.rb +275 -0
  19. data/lib/code_healer/context_aware_prompt_builder.rb +153 -0
  20. data/lib/code_healer/core.rb +513 -0
  21. data/lib/code_healer/error_handler.rb +141 -0
  22. data/lib/code_healer/evolution_job.rb +99 -0
  23. data/lib/code_healer/global_handler.rb +130 -0
  24. data/lib/code_healer/healing_job.rb +167 -0
  25. data/lib/code_healer/mcp.rb +108 -0
  26. data/lib/code_healer/mcp_prompts.rb +111 -0
  27. data/lib/code_healer/mcp_server.rb +389 -0
  28. data/lib/code_healer/mcp_tools.rb +2364 -0
  29. data/lib/code_healer/pull_request_creator.rb +143 -0
  30. data/lib/code_healer/setup.rb +390 -0
  31. data/lib/code_healer/simple_evolution.rb +737 -0
  32. data/lib/code_healer/simple_global_handler.rb +122 -0
  33. data/lib/code_healer/simple_healer.rb +515 -0
  34. data/lib/code_healer/terminal_integration.rb +87 -0
  35. data/lib/code_healer/usage_analyzer.rb +92 -0
  36. data/lib/code_healer/version.rb +5 -0
  37. data/lib/code_healer.rb +67 -0
  38. metadata +411 -0
@@ -0,0 +1,87 @@
1
+ require 'json'
2
+ require 'fileutils'
3
+
4
+ module CodeHealer
5
+ class TerminalIntegration
6
+ class << self
7
+ def errors_dir
8
+ return nil unless defined?(Rails) && Rails.root
9
+ Rails.root.join('claude_terminal', 'errors')
10
+ end
11
+
12
+ def fixes_dir
13
+ return nil unless defined?(Rails) && Rails.root
14
+ Rails.root.join('claude_terminal', 'fixes')
15
+ end
16
+
17
+ def setup_directories
18
+ return unless errors_dir && fixes_dir
19
+ FileUtils.mkdir_p(errors_dir)
20
+ FileUtils.mkdir_p(fixes_dir)
21
+ end
22
+
23
+ def report_error(error, context = {})
24
+ return nil unless errors_dir
25
+ setup_directories
26
+
27
+ error_id = generate_error_id
28
+ error_data = {
29
+ timestamp: Time.current.strftime("%Y-%m-%d %H:%M:%S"),
30
+ error_id: error_id,
31
+ error: {
32
+ type: error.class.name,
33
+ message: error.message,
34
+ backtrace: error.backtrace&.first(10)
35
+ },
36
+ context: context,
37
+ app_state: {
38
+ rails_env: defined?(Rails) ? Rails.env : 'unknown',
39
+ request_id: Thread.current[:request_id],
40
+ user_agent: context[:user_agent],
41
+ params: context[:params]
42
+ },
43
+ codebase_context: {
44
+ controller: context[:controller_name],
45
+ action: context[:action_name],
46
+ model: context[:model_name],
47
+ method: context[:method_name]
48
+ }
49
+ }
50
+
51
+ # Write error for Claude Terminal to process
52
+ File.write(
53
+ errors_dir.join("#{error_id}.json"),
54
+ JSON.pretty_generate(error_data)
55
+ )
56
+
57
+ if defined?(Rails) && Rails.logger
58
+ Rails.logger.info "🤖 Error reported to Claude Terminal: #{error_id}"
59
+ end
60
+ error_id
61
+ end
62
+
63
+ def check_for_fix(error_id, timeout: 30)
64
+ return nil unless fixes_dir
65
+ fix_file = fixes_dir.join("#{error_id}_fix.json")
66
+
67
+ # Wait for Claude Terminal to provide a fix
68
+ timeout.times do
69
+ if File.exist?(fix_file)
70
+ fix_data = JSON.parse(File.read(fix_file))
71
+ File.delete(fix_file) # Clean up
72
+ return fix_data
73
+ end
74
+ sleep 1
75
+ end
76
+
77
+ nil # No fix available within timeout
78
+ end
79
+
80
+ private
81
+
82
+ def self.generate_error_id
83
+ "error_#{Time.current.to_i}_#{SecureRandom.hex(4)}"
84
+ end
85
+ end
86
+ end
87
+ end
@@ -0,0 +1,92 @@
1
+ module CodeHealer
2
+ class UsageAnalyzer
3
+ class << self
4
+ def analyze_usage(klass, usage_data)
5
+ new(klass, usage_data).analyze
6
+ end
7
+ end
8
+
9
+ attr_reader :klass, :usage_data, :logger
10
+
11
+ def initialize(klass, usage_data)
12
+ @klass = klass
13
+ @usage_data = usage_data
14
+ @logger = Logger.new(Rails.root.join('log', 'self_evolving.log'))
15
+ end
16
+
17
+ def analyze
18
+ return false unless valid_usage_data?
19
+
20
+ begin
21
+ patterns = detect_patterns
22
+ return false if patterns.empty?
23
+
24
+ patterns.each do |pattern|
25
+ propose_method(pattern)
26
+ end
27
+
28
+ true
29
+ rescue => e
30
+ logger.error("Usage analysis failed: #{e.message}")
31
+ false
32
+ end
33
+ end
34
+
35
+ private
36
+
37
+ def valid_usage_data?
38
+ # Implement your validation logic here
39
+ # For example: minimum data points, required fields, etc.
40
+ usage_data.is_a?(Array) && usage_data.length >= 5
41
+ end
42
+
43
+ def detect_patterns
44
+ # This is where you'd implement your pattern detection logic
45
+ # For now, we'll return a simple example pattern
46
+ [
47
+ {
48
+ type: 'filter',
49
+ frequency: 10,
50
+ parameters: { days: 30 },
51
+ suggested_method: 'active_since'
52
+ }
53
+ ]
54
+ end
55
+
56
+ def propose_method(pattern)
57
+ method_name = pattern[:suggested_method]
58
+ context = {
59
+ pattern_type: pattern[:type],
60
+ frequency: pattern[:frequency],
61
+ parameters: pattern[:parameters],
62
+ detected_at: Time.current
63
+ }
64
+
65
+ success = Core.evolve_method(klass, method_name, context)
66
+
67
+ if success
68
+ log_successful_proposal(pattern)
69
+ else
70
+ log_failed_proposal(pattern)
71
+ end
72
+ end
73
+
74
+ def log_successful_proposal(pattern)
75
+ logger.info({
76
+ timestamp: Time.current,
77
+ event: 'successful_proposal',
78
+ class: klass.name,
79
+ pattern: pattern
80
+ }.to_json)
81
+ end
82
+
83
+ def log_failed_proposal(pattern)
84
+ logger.info({
85
+ timestamp: Time.current,
86
+ event: 'failed_proposal',
87
+ class: klass.name,
88
+ pattern: pattern
89
+ }.to_json)
90
+ end
91
+ end
92
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CodeHealer
4
+ VERSION = "0.1.0"
5
+ end
@@ -0,0 +1,67 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "code_healer/version"
4
+
5
+ # Require external gems explicitly
6
+ require 'openai'
7
+ require 'sidekiq'
8
+ require 'git'
9
+ require 'octokit'
10
+
11
+ # CodeHealer - AI-Powered Code Healing and Self-Repair System
12
+ module CodeHealer
13
+ class Error < StandardError; end
14
+
15
+ # Your code goes here...
16
+ end
17
+
18
+ # Autoload all the main classes
19
+ autoload :ConfigManager, "code_healer/config_manager"
20
+ autoload :BusinessContextManager, "code_healer/business_context_manager"
21
+ autoload :ClaudeCodeEvolutionHandler, "code_healer/claude_code_evolution_handler"
22
+ autoload :SimpleHealer, "code_healer/simple_healer"
23
+ autoload :HealingJob, "code_healer/healing_job"
24
+ autoload :PullRequestCreator, "code_healer/pull_request_creator"
25
+ autoload :McpServer, "code_healer/mcp_server"
26
+ autoload :McpTools, "code_healer/mcp_tools"
27
+ autoload :McpPrompts, "code_healer/mcp_prompts"
28
+ autoload :MCP, "code_healer/mcp"
29
+
30
+ # Rails integration
31
+ if defined?(Rails)
32
+ require "rails"
33
+
34
+ # Railtie for automatic Rails integration
35
+ class CodeHealerRailtie < Rails::Railtie
36
+ initializer "code_healer.configure" do |app|
37
+ # Load configuration
38
+ config_path = Rails.root.join("config", "code_healer.yml")
39
+
40
+ if File.exist?(config_path)
41
+ puts "🏥 CodeHealer: Loading configuration from #{config_path}"
42
+
43
+ # Load all the main classes
44
+ Dir[File.join(__dir__, "code_healer", "*.rb")].each do |file|
45
+ # Skip the setup script as it's only for the executable
46
+ next if file.include?("setup.rb")
47
+
48
+ require file
49
+ end
50
+
51
+ # Initialize Core and set up error handling
52
+ if defined?(CodeHealer::Core)
53
+ config = YAML.load_file(config_path)
54
+ CodeHealer::Core.initialize(config)
55
+ CodeHealer::Core.setup_error_handling
56
+ end
57
+
58
+ puts "🏥 CodeHealer: Initialized successfully!"
59
+ puts " Configuration loaded from: #{config_path}"
60
+ puts " Run 'code_healer-setup' to reconfigure if needed"
61
+ else
62
+ puts "🏥 CodeHealer: No configuration file found at #{config_path}"
63
+ puts " Run 'code_healer-setup' to configure CodeHealer"
64
+ end
65
+ end
66
+ end
67
+ end
metadata ADDED
@@ -0,0 +1,411 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: code_healer
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Deepan Kumar
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2025-08-13 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rails
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 6.0.0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 6.0.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: sidekiq
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 6.0.0
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: 6.0.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: redis
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '4.0'
48
+ - - ">="
49
+ - !ruby/object:Gem::Version
50
+ version: 4.0.0
51
+ type: :runtime
52
+ prerelease: false
53
+ version_requirements: !ruby/object:Gem::Requirement
54
+ requirements:
55
+ - - "~>"
56
+ - !ruby/object:Gem::Version
57
+ version: '4.0'
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: 4.0.0
61
+ - !ruby/object:Gem::Dependency
62
+ name: octokit
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: '4.0'
68
+ - - ">="
69
+ - !ruby/object:Gem::Version
70
+ version: 4.0.0
71
+ type: :runtime
72
+ prerelease: false
73
+ version_requirements: !ruby/object:Gem::Requirement
74
+ requirements:
75
+ - - "~>"
76
+ - !ruby/object:Gem::Version
77
+ version: '4.0'
78
+ - - ">="
79
+ - !ruby/object:Gem::Version
80
+ version: 4.0.0
81
+ - !ruby/object:Gem::Dependency
82
+ name: git
83
+ requirement: !ruby/object:Gem::Requirement
84
+ requirements:
85
+ - - "~>"
86
+ - !ruby/object:Gem::Version
87
+ version: '1.0'
88
+ - - ">="
89
+ - !ruby/object:Gem::Version
90
+ version: 1.0.0
91
+ type: :runtime
92
+ prerelease: false
93
+ version_requirements: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - "~>"
96
+ - !ruby/object:Gem::Version
97
+ version: '1.0'
98
+ - - ">="
99
+ - !ruby/object:Gem::Version
100
+ version: 1.0.0
101
+ - !ruby/object:Gem::Dependency
102
+ name: openai
103
+ requirement: !ruby/object:Gem::Requirement
104
+ requirements:
105
+ - - "~>"
106
+ - !ruby/object:Gem::Version
107
+ version: 0.16.0
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: 0.16.0
111
+ type: :runtime
112
+ prerelease: false
113
+ version_requirements: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: 0.16.0
118
+ - - ">="
119
+ - !ruby/object:Gem::Version
120
+ version: 0.16.0
121
+ - !ruby/object:Gem::Dependency
122
+ name: activesupport
123
+ requirement: !ruby/object:Gem::Requirement
124
+ requirements:
125
+ - - ">="
126
+ - !ruby/object:Gem::Version
127
+ version: 6.0.0
128
+ type: :runtime
129
+ prerelease: false
130
+ version_requirements: !ruby/object:Gem::Requirement
131
+ requirements:
132
+ - - ">="
133
+ - !ruby/object:Gem::Version
134
+ version: 6.0.0
135
+ - !ruby/object:Gem::Dependency
136
+ name: actionpack
137
+ requirement: !ruby/object:Gem::Requirement
138
+ requirements:
139
+ - - ">="
140
+ - !ruby/object:Gem::Version
141
+ version: 6.0.0
142
+ type: :runtime
143
+ prerelease: false
144
+ version_requirements: !ruby/object:Gem::Requirement
145
+ requirements:
146
+ - - ">="
147
+ - !ruby/object:Gem::Version
148
+ version: 6.0.0
149
+ - !ruby/object:Gem::Dependency
150
+ name: activemodel
151
+ requirement: !ruby/object:Gem::Requirement
152
+ requirements:
153
+ - - ">="
154
+ - !ruby/object:Gem::Version
155
+ version: 6.0.0
156
+ type: :runtime
157
+ prerelease: false
158
+ version_requirements: !ruby/object:Gem::Requirement
159
+ requirements:
160
+ - - ">="
161
+ - !ruby/object:Gem::Version
162
+ version: 6.0.0
163
+ - !ruby/object:Gem::Dependency
164
+ name: bundler
165
+ requirement: !ruby/object:Gem::Requirement
166
+ requirements:
167
+ - - ">="
168
+ - !ruby/object:Gem::Version
169
+ version: 2.0.0
170
+ type: :development
171
+ prerelease: false
172
+ version_requirements: !ruby/object:Gem::Requirement
173
+ requirements:
174
+ - - ">="
175
+ - !ruby/object:Gem::Version
176
+ version: 2.0.0
177
+ - !ruby/object:Gem::Dependency
178
+ name: rake
179
+ requirement: !ruby/object:Gem::Requirement
180
+ requirements:
181
+ - - ">="
182
+ - !ruby/object:Gem::Version
183
+ version: 13.0.0
184
+ type: :development
185
+ prerelease: false
186
+ version_requirements: !ruby/object:Gem::Requirement
187
+ requirements:
188
+ - - ">="
189
+ - !ruby/object:Gem::Version
190
+ version: 13.0.0
191
+ - !ruby/object:Gem::Dependency
192
+ name: rspec
193
+ requirement: !ruby/object:Gem::Requirement
194
+ requirements:
195
+ - - ">="
196
+ - !ruby/object:Gem::Version
197
+ version: 3.0.0
198
+ type: :development
199
+ prerelease: false
200
+ version_requirements: !ruby/object:Gem::Requirement
201
+ requirements:
202
+ - - ">="
203
+ - !ruby/object:Gem::Version
204
+ version: 3.0.0
205
+ - !ruby/object:Gem::Dependency
206
+ name: rspec-rails
207
+ requirement: !ruby/object:Gem::Requirement
208
+ requirements:
209
+ - - ">="
210
+ - !ruby/object:Gem::Version
211
+ version: 5.0.0
212
+ type: :development
213
+ prerelease: false
214
+ version_requirements: !ruby/object:Gem::Requirement
215
+ requirements:
216
+ - - ">="
217
+ - !ruby/object:Gem::Version
218
+ version: 5.0.0
219
+ - !ruby/object:Gem::Dependency
220
+ name: factory_bot_rails
221
+ requirement: !ruby/object:Gem::Requirement
222
+ requirements:
223
+ - - ">="
224
+ - !ruby/object:Gem::Version
225
+ version: 6.0.0
226
+ type: :development
227
+ prerelease: false
228
+ version_requirements: !ruby/object:Gem::Requirement
229
+ requirements:
230
+ - - ">="
231
+ - !ruby/object:Gem::Version
232
+ version: 6.0.0
233
+ - !ruby/object:Gem::Dependency
234
+ name: faker
235
+ requirement: !ruby/object:Gem::Requirement
236
+ requirements:
237
+ - - ">="
238
+ - !ruby/object:Gem::Version
239
+ version: 2.0.0
240
+ type: :development
241
+ prerelease: false
242
+ version_requirements: !ruby/object:Gem::Requirement
243
+ requirements:
244
+ - - ">="
245
+ - !ruby/object:Gem::Version
246
+ version: 2.0.0
247
+ - !ruby/object:Gem::Dependency
248
+ name: webmock
249
+ requirement: !ruby/object:Gem::Requirement
250
+ requirements:
251
+ - - ">="
252
+ - !ruby/object:Gem::Version
253
+ version: 3.0.0
254
+ type: :development
255
+ prerelease: false
256
+ version_requirements: !ruby/object:Gem::Requirement
257
+ requirements:
258
+ - - ">="
259
+ - !ruby/object:Gem::Version
260
+ version: 3.0.0
261
+ - !ruby/object:Gem::Dependency
262
+ name: vcr
263
+ requirement: !ruby/object:Gem::Requirement
264
+ requirements:
265
+ - - ">="
266
+ - !ruby/object:Gem::Version
267
+ version: 6.0.0
268
+ type: :development
269
+ prerelease: false
270
+ version_requirements: !ruby/object:Gem::Requirement
271
+ requirements:
272
+ - - ">="
273
+ - !ruby/object:Gem::Version
274
+ version: 6.0.0
275
+ - !ruby/object:Gem::Dependency
276
+ name: rubocop
277
+ requirement: !ruby/object:Gem::Requirement
278
+ requirements:
279
+ - - ">="
280
+ - !ruby/object:Gem::Version
281
+ version: 1.0.0
282
+ type: :development
283
+ prerelease: false
284
+ version_requirements: !ruby/object:Gem::Requirement
285
+ requirements:
286
+ - - ">="
287
+ - !ruby/object:Gem::Version
288
+ version: 1.0.0
289
+ - !ruby/object:Gem::Dependency
290
+ name: rubocop-rails
291
+ requirement: !ruby/object:Gem::Requirement
292
+ requirements:
293
+ - - ">="
294
+ - !ruby/object:Gem::Version
295
+ version: 2.0.0
296
+ type: :development
297
+ prerelease: false
298
+ version_requirements: !ruby/object:Gem::Requirement
299
+ requirements:
300
+ - - ">="
301
+ - !ruby/object:Gem::Version
302
+ version: 2.0.0
303
+ - !ruby/object:Gem::Dependency
304
+ name: yard
305
+ requirement: !ruby/object:Gem::Requirement
306
+ requirements:
307
+ - - ">="
308
+ - !ruby/object:Gem::Version
309
+ version: 0.9.0
310
+ type: :development
311
+ prerelease: false
312
+ version_requirements: !ruby/object:Gem::Requirement
313
+ requirements:
314
+ - - ">="
315
+ - !ruby/object:Gem::Version
316
+ version: 0.9.0
317
+ - !ruby/object:Gem::Dependency
318
+ name: redcarpet
319
+ requirement: !ruby/object:Gem::Requirement
320
+ requirements:
321
+ - - ">="
322
+ - !ruby/object:Gem::Version
323
+ version: 3.0.0
324
+ type: :development
325
+ prerelease: false
326
+ version_requirements: !ruby/object:Gem::Requirement
327
+ requirements:
328
+ - - ">="
329
+ - !ruby/object:Gem::Version
330
+ version: 3.0.0
331
+ description: "CodeHealer is a revolutionary gem that enables your Ruby applications
332
+ to \nautomatically detect, analyze, and fix errors using AI. It integrates \nwith
333
+ OpenAI API, Claude Code terminal, and provides intelligent error handling, \nbusiness
334
+ context awareness, and automated Git operations.\n\nFeatures:\n- \U0001F916 AI-powered
335
+ error analysis and code generation\n- \U0001F3AF Business context-aware fixes\n-
336
+ \U0001F504 Multiple healing strategies (API, Claude Code, Hybrid)\n- \U0001F4DD
337
+ Automated Git operations and PR creation\n- \U0001F4CB Business requirements integration
338
+ from markdown\n- ⚡ Background job processing with Sidekiq\n- \U0001F3A8 Configurable
339
+ via YAML files\n"
340
+ email:
341
+ - deepan.ppgit@gmail.com
342
+ executables:
343
+ - code_healer-setup
344
+ extensions: []
345
+ extra_rdoc_files: []
346
+ files:
347
+ - CHANGELOG.md
348
+ - GEM_SUMMARY.md
349
+ - README.md
350
+ - code_healer.gemspec
351
+ - config/code_healer.yml.example
352
+ - docs/INSTALLATION.md
353
+ - examples/basic_usage.rb
354
+ - exe/code_healer-setup
355
+ - lib/code_healer.rb
356
+ - lib/code_healer/application_job.rb
357
+ - lib/code_healer/business_context_analyzer.rb
358
+ - lib/code_healer/business_context_loader.rb
359
+ - lib/code_healer/business_context_manager.rb
360
+ - lib/code_healer/business_logic_generator.rb
361
+ - lib/code_healer/business_rule_applier.rb
362
+ - lib/code_healer/claude_code_evolution_handler.rb
363
+ - lib/code_healer/claude_error_monitor.rb
364
+ - lib/code_healer/config_manager.rb
365
+ - lib/code_healer/context_aware_prompt_builder.rb
366
+ - lib/code_healer/core.rb
367
+ - lib/code_healer/error_handler.rb
368
+ - lib/code_healer/evolution_job.rb
369
+ - lib/code_healer/global_handler.rb
370
+ - lib/code_healer/healing_job.rb
371
+ - lib/code_healer/mcp.rb
372
+ - lib/code_healer/mcp_prompts.rb
373
+ - lib/code_healer/mcp_server.rb
374
+ - lib/code_healer/mcp_tools.rb
375
+ - lib/code_healer/pull_request_creator.rb
376
+ - lib/code_healer/setup.rb
377
+ - lib/code_healer/simple_evolution.rb
378
+ - lib/code_healer/simple_global_handler.rb
379
+ - lib/code_healer/simple_healer.rb
380
+ - lib/code_healer/terminal_integration.rb
381
+ - lib/code_healer/usage_analyzer.rb
382
+ - lib/code_healer/version.rb
383
+ homepage: https://github.com/deepan-g2/code-healer
384
+ licenses:
385
+ - MIT
386
+ metadata:
387
+ homepage_uri: https://github.com/deepan-g2/code-healer
388
+ source_code_uri: https://github.com/deepan-g2/code-healer
389
+ changelog_uri: https://github.com/deepan-g2/code-healer/blob/main/CHANGELOG.md
390
+ bug_tracker_uri: https://github.com/deepan-g2/code-healer/issues
391
+ documentation_uri: https://github.com/deepan-g2/code-healer/blob/main/README.md
392
+ post_install_message:
393
+ rdoc_options: []
394
+ require_paths:
395
+ - lib
396
+ required_ruby_version: !ruby/object:Gem::Requirement
397
+ requirements:
398
+ - - ">="
399
+ - !ruby/object:Gem::Version
400
+ version: 2.7.0
401
+ required_rubygems_version: !ruby/object:Gem::Requirement
402
+ requirements:
403
+ - - ">="
404
+ - !ruby/object:Gem::Version
405
+ version: '0'
406
+ requirements: []
407
+ rubygems_version: 3.4.19
408
+ signing_key:
409
+ specification_version: 4
410
+ summary: AI-powered code healing and self-repair system for Ruby applications
411
+ test_files: []