codebase_index 0.3.2 → 0.4.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/lib/codebase_index.rb +3 -243
- metadata +28 -223
- data/CHANGELOG.md +0 -89
- data/CODE_OF_CONDUCT.md +0 -83
- data/CONTRIBUTING.md +0 -65
- data/LICENSE.txt +0 -21
- data/README.md +0 -325
- data/exe/codebase-console +0 -59
- data/exe/codebase-console-mcp +0 -22
- data/exe/codebase-index-mcp +0 -34
- data/exe/codebase-index-mcp-http +0 -37
- data/exe/codebase-index-mcp-start +0 -58
- data/lib/codebase_index/ast/call_site_extractor.rb +0 -106
- data/lib/codebase_index/ast/method_extractor.rb +0 -71
- data/lib/codebase_index/ast/node.rb +0 -116
- data/lib/codebase_index/ast/parser.rb +0 -614
- data/lib/codebase_index/ast.rb +0 -6
- data/lib/codebase_index/builder.rb +0 -200
- data/lib/codebase_index/cache/cache_middleware.rb +0 -199
- data/lib/codebase_index/cache/cache_store.rb +0 -264
- data/lib/codebase_index/cache/redis_cache_store.rb +0 -116
- data/lib/codebase_index/cache/solid_cache_store.rb +0 -111
- data/lib/codebase_index/chunking/chunk.rb +0 -84
- data/lib/codebase_index/chunking/semantic_chunker.rb +0 -295
- data/lib/codebase_index/console/adapters/cache_adapter.rb +0 -58
- data/lib/codebase_index/console/adapters/good_job_adapter.rb +0 -33
- data/lib/codebase_index/console/adapters/job_adapter.rb +0 -68
- data/lib/codebase_index/console/adapters/sidekiq_adapter.rb +0 -33
- data/lib/codebase_index/console/adapters/solid_queue_adapter.rb +0 -33
- data/lib/codebase_index/console/audit_logger.rb +0 -75
- data/lib/codebase_index/console/bridge.rb +0 -177
- data/lib/codebase_index/console/confirmation.rb +0 -90
- data/lib/codebase_index/console/connection_manager.rb +0 -173
- data/lib/codebase_index/console/console_response_renderer.rb +0 -74
- data/lib/codebase_index/console/embedded_executor.rb +0 -373
- data/lib/codebase_index/console/model_validator.rb +0 -81
- data/lib/codebase_index/console/rack_middleware.rb +0 -87
- data/lib/codebase_index/console/safe_context.rb +0 -82
- data/lib/codebase_index/console/server.rb +0 -612
- data/lib/codebase_index/console/sql_validator.rb +0 -172
- data/lib/codebase_index/console/tools/tier1.rb +0 -118
- data/lib/codebase_index/console/tools/tier2.rb +0 -117
- data/lib/codebase_index/console/tools/tier3.rb +0 -110
- data/lib/codebase_index/console/tools/tier4.rb +0 -79
- data/lib/codebase_index/coordination/pipeline_lock.rb +0 -109
- data/lib/codebase_index/cost_model/embedding_cost.rb +0 -88
- data/lib/codebase_index/cost_model/estimator.rb +0 -128
- data/lib/codebase_index/cost_model/provider_pricing.rb +0 -67
- data/lib/codebase_index/cost_model/storage_cost.rb +0 -52
- data/lib/codebase_index/cost_model.rb +0 -22
- data/lib/codebase_index/db/migrations/001_create_units.rb +0 -38
- data/lib/codebase_index/db/migrations/002_create_edges.rb +0 -35
- data/lib/codebase_index/db/migrations/003_create_embeddings.rb +0 -37
- data/lib/codebase_index/db/migrations/004_create_snapshots.rb +0 -45
- data/lib/codebase_index/db/migrations/005_create_snapshot_units.rb +0 -40
- data/lib/codebase_index/db/migrator.rb +0 -71
- data/lib/codebase_index/db/schema_version.rb +0 -73
- data/lib/codebase_index/dependency_graph.rb +0 -236
- data/lib/codebase_index/embedding/indexer.rb +0 -140
- data/lib/codebase_index/embedding/openai.rb +0 -126
- data/lib/codebase_index/embedding/provider.rb +0 -162
- data/lib/codebase_index/embedding/text_preparer.rb +0 -112
- data/lib/codebase_index/evaluation/baseline_runner.rb +0 -115
- data/lib/codebase_index/evaluation/evaluator.rb +0 -139
- data/lib/codebase_index/evaluation/metrics.rb +0 -79
- data/lib/codebase_index/evaluation/query_set.rb +0 -148
- data/lib/codebase_index/evaluation/report_generator.rb +0 -90
- data/lib/codebase_index/extracted_unit.rb +0 -145
- data/lib/codebase_index/extractor.rb +0 -1028
- data/lib/codebase_index/extractors/action_cable_extractor.rb +0 -201
- data/lib/codebase_index/extractors/ast_source_extraction.rb +0 -46
- data/lib/codebase_index/extractors/behavioral_profile.rb +0 -309
- data/lib/codebase_index/extractors/caching_extractor.rb +0 -261
- data/lib/codebase_index/extractors/callback_analyzer.rb +0 -246
- data/lib/codebase_index/extractors/concern_extractor.rb +0 -292
- data/lib/codebase_index/extractors/configuration_extractor.rb +0 -219
- data/lib/codebase_index/extractors/controller_extractor.rb +0 -404
- data/lib/codebase_index/extractors/database_view_extractor.rb +0 -278
- data/lib/codebase_index/extractors/decorator_extractor.rb +0 -253
- data/lib/codebase_index/extractors/engine_extractor.rb +0 -223
- data/lib/codebase_index/extractors/event_extractor.rb +0 -211
- data/lib/codebase_index/extractors/factory_extractor.rb +0 -289
- data/lib/codebase_index/extractors/graphql_extractor.rb +0 -892
- data/lib/codebase_index/extractors/i18n_extractor.rb +0 -117
- data/lib/codebase_index/extractors/job_extractor.rb +0 -374
- data/lib/codebase_index/extractors/lib_extractor.rb +0 -218
- data/lib/codebase_index/extractors/mailer_extractor.rb +0 -269
- data/lib/codebase_index/extractors/manager_extractor.rb +0 -188
- data/lib/codebase_index/extractors/middleware_extractor.rb +0 -133
- data/lib/codebase_index/extractors/migration_extractor.rb +0 -469
- data/lib/codebase_index/extractors/model_extractor.rb +0 -988
- data/lib/codebase_index/extractors/phlex_extractor.rb +0 -252
- data/lib/codebase_index/extractors/policy_extractor.rb +0 -191
- data/lib/codebase_index/extractors/poro_extractor.rb +0 -229
- data/lib/codebase_index/extractors/pundit_extractor.rb +0 -223
- data/lib/codebase_index/extractors/rails_source_extractor.rb +0 -473
- data/lib/codebase_index/extractors/rake_task_extractor.rb +0 -343
- data/lib/codebase_index/extractors/route_extractor.rb +0 -181
- data/lib/codebase_index/extractors/scheduled_job_extractor.rb +0 -331
- data/lib/codebase_index/extractors/serializer_extractor.rb +0 -339
- data/lib/codebase_index/extractors/service_extractor.rb +0 -217
- data/lib/codebase_index/extractors/shared_dependency_scanner.rb +0 -91
- data/lib/codebase_index/extractors/shared_utility_methods.rb +0 -281
- data/lib/codebase_index/extractors/state_machine_extractor.rb +0 -398
- data/lib/codebase_index/extractors/test_mapping_extractor.rb +0 -225
- data/lib/codebase_index/extractors/validator_extractor.rb +0 -211
- data/lib/codebase_index/extractors/view_component_extractor.rb +0 -311
- data/lib/codebase_index/extractors/view_template_extractor.rb +0 -261
- data/lib/codebase_index/feedback/gap_detector.rb +0 -89
- data/lib/codebase_index/feedback/store.rb +0 -119
- data/lib/codebase_index/filename_utils.rb +0 -32
- data/lib/codebase_index/flow_analysis/operation_extractor.rb +0 -206
- data/lib/codebase_index/flow_analysis/response_code_mapper.rb +0 -154
- data/lib/codebase_index/flow_assembler.rb +0 -290
- data/lib/codebase_index/flow_document.rb +0 -191
- data/lib/codebase_index/flow_precomputer.rb +0 -102
- data/lib/codebase_index/formatting/base.rb +0 -30
- data/lib/codebase_index/formatting/claude_adapter.rb +0 -98
- data/lib/codebase_index/formatting/generic_adapter.rb +0 -56
- data/lib/codebase_index/formatting/gpt_adapter.rb +0 -64
- data/lib/codebase_index/formatting/human_adapter.rb +0 -78
- data/lib/codebase_index/graph_analyzer.rb +0 -374
- data/lib/codebase_index/mcp/bootstrapper.rb +0 -96
- data/lib/codebase_index/mcp/index_reader.rb +0 -394
- data/lib/codebase_index/mcp/renderers/claude_renderer.rb +0 -81
- data/lib/codebase_index/mcp/renderers/json_renderer.rb +0 -17
- data/lib/codebase_index/mcp/renderers/markdown_renderer.rb +0 -353
- data/lib/codebase_index/mcp/renderers/plain_renderer.rb +0 -240
- data/lib/codebase_index/mcp/server.rb +0 -961
- data/lib/codebase_index/mcp/tool_response_renderer.rb +0 -85
- data/lib/codebase_index/model_name_cache.rb +0 -51
- data/lib/codebase_index/notion/client.rb +0 -217
- data/lib/codebase_index/notion/exporter.rb +0 -219
- data/lib/codebase_index/notion/mapper.rb +0 -40
- data/lib/codebase_index/notion/mappers/column_mapper.rb +0 -57
- data/lib/codebase_index/notion/mappers/migration_mapper.rb +0 -39
- data/lib/codebase_index/notion/mappers/model_mapper.rb +0 -161
- data/lib/codebase_index/notion/mappers/shared.rb +0 -22
- data/lib/codebase_index/notion/rate_limiter.rb +0 -68
- data/lib/codebase_index/observability/health_check.rb +0 -79
- data/lib/codebase_index/observability/instrumentation.rb +0 -34
- data/lib/codebase_index/observability/structured_logger.rb +0 -57
- data/lib/codebase_index/operator/error_escalator.rb +0 -81
- data/lib/codebase_index/operator/pipeline_guard.rb +0 -92
- data/lib/codebase_index/operator/status_reporter.rb +0 -80
- data/lib/codebase_index/railtie.rb +0 -38
- data/lib/codebase_index/resilience/circuit_breaker.rb +0 -99
- data/lib/codebase_index/resilience/index_validator.rb +0 -167
- data/lib/codebase_index/resilience/retryable_provider.rb +0 -108
- data/lib/codebase_index/retrieval/context_assembler.rb +0 -261
- data/lib/codebase_index/retrieval/query_classifier.rb +0 -133
- data/lib/codebase_index/retrieval/ranker.rb +0 -277
- data/lib/codebase_index/retrieval/search_executor.rb +0 -316
- data/lib/codebase_index/retriever.rb +0 -152
- data/lib/codebase_index/ruby_analyzer/class_analyzer.rb +0 -170
- data/lib/codebase_index/ruby_analyzer/dataflow_analyzer.rb +0 -77
- data/lib/codebase_index/ruby_analyzer/fqn_builder.rb +0 -18
- data/lib/codebase_index/ruby_analyzer/mermaid_renderer.rb +0 -280
- data/lib/codebase_index/ruby_analyzer/method_analyzer.rb +0 -143
- data/lib/codebase_index/ruby_analyzer/trace_enricher.rb +0 -143
- data/lib/codebase_index/ruby_analyzer.rb +0 -87
- data/lib/codebase_index/session_tracer/file_store.rb +0 -104
- data/lib/codebase_index/session_tracer/middleware.rb +0 -143
- data/lib/codebase_index/session_tracer/redis_store.rb +0 -106
- data/lib/codebase_index/session_tracer/session_flow_assembler.rb +0 -254
- data/lib/codebase_index/session_tracer/session_flow_document.rb +0 -223
- data/lib/codebase_index/session_tracer/solid_cache_store.rb +0 -139
- data/lib/codebase_index/session_tracer/store.rb +0 -81
- data/lib/codebase_index/storage/graph_store.rb +0 -120
- data/lib/codebase_index/storage/metadata_store.rb +0 -196
- data/lib/codebase_index/storage/pgvector.rb +0 -195
- data/lib/codebase_index/storage/qdrant.rb +0 -205
- data/lib/codebase_index/storage/vector_store.rb +0 -167
- data/lib/codebase_index/temporal/json_snapshot_store.rb +0 -245
- data/lib/codebase_index/temporal/snapshot_store.rb +0 -345
- data/lib/codebase_index/token_utils.rb +0 -19
- data/lib/codebase_index/version.rb +0 -5
- data/lib/generators/codebase_index/install_generator.rb +0 -32
- data/lib/generators/codebase_index/pgvector_generator.rb +0 -37
- data/lib/generators/codebase_index/templates/add_pgvector_to_codebase_index.rb.erb +0 -15
- data/lib/generators/codebase_index/templates/create_codebase_index_tables.rb.erb +0 -43
- data/lib/tasks/codebase_index.rake +0 -597
- data/lib/tasks/codebase_index_evaluation.rake +0 -115
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
# lib/tasks/codebase_index_evaluation.rake
|
|
4
|
-
#
|
|
5
|
-
# Rake tasks for evaluating retrieval quality.
|
|
6
|
-
#
|
|
7
|
-
# Usage:
|
|
8
|
-
# bundle exec rake codebase_index:evaluate # Run evaluation
|
|
9
|
-
# bundle exec rake codebase_index:evaluate:baseline[grep] # Run baseline comparison
|
|
10
|
-
|
|
11
|
-
namespace :codebase_index do
|
|
12
|
-
desc 'Run evaluation queries against the retrieval pipeline'
|
|
13
|
-
task evaluate: :environment do
|
|
14
|
-
require 'codebase_index/retriever'
|
|
15
|
-
require 'codebase_index/evaluation/query_set'
|
|
16
|
-
require 'codebase_index/evaluation/evaluator'
|
|
17
|
-
require 'codebase_index/evaluation/report_generator'
|
|
18
|
-
|
|
19
|
-
run_evaluation
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
namespace :evaluate do
|
|
23
|
-
desc 'Run baseline comparison'
|
|
24
|
-
task :baseline, [:strategy] => :environment do |_t, args|
|
|
25
|
-
require 'codebase_index/evaluation/query_set'
|
|
26
|
-
require 'codebase_index/evaluation/baseline_runner'
|
|
27
|
-
require 'codebase_index/evaluation/metrics'
|
|
28
|
-
|
|
29
|
-
run_baseline(args)
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
def run_evaluation
|
|
35
|
-
query_set_path = ENV.fetch('EVAL_QUERY_SET', 'config/eval_queries.json')
|
|
36
|
-
output_path = ENV.fetch('EVAL_OUTPUT', 'tmp/eval_report.json')
|
|
37
|
-
budget = ENV.fetch('EVAL_BUDGET', '8000').to_i
|
|
38
|
-
|
|
39
|
-
puts "Loading query set from: #{query_set_path}"
|
|
40
|
-
query_set = CodebaseIndex::Evaluation::QuerySet.load(query_set_path)
|
|
41
|
-
puts "Loaded #{query_set.size} queries — building retriever..."
|
|
42
|
-
|
|
43
|
-
evaluator = CodebaseIndex::Evaluation::Evaluator.new(
|
|
44
|
-
retriever: build_eval_retriever, query_set: query_set, budget: budget
|
|
45
|
-
)
|
|
46
|
-
report = evaluator.evaluate
|
|
47
|
-
|
|
48
|
-
CodebaseIndex::Evaluation::ReportGenerator.new
|
|
49
|
-
.save(report, output_path, metadata: { 'query_set' => query_set_path })
|
|
50
|
-
|
|
51
|
-
print_eval_report(report, output_path)
|
|
52
|
-
end
|
|
53
|
-
|
|
54
|
-
def run_baseline(args)
|
|
55
|
-
strategy = (args[:strategy] || ENV.fetch('EVAL_BASELINE_STRATEGY', 'grep')).to_sym
|
|
56
|
-
query_set_path = ENV.fetch('EVAL_QUERY_SET', 'config/eval_queries.json')
|
|
57
|
-
limit = ENV.fetch('EVAL_BASELINE_LIMIT', '10').to_i
|
|
58
|
-
|
|
59
|
-
puts "Loading query set from: #{query_set_path}"
|
|
60
|
-
query_set = CodebaseIndex::Evaluation::QuerySet.load(query_set_path)
|
|
61
|
-
puts "Running #{strategy} baseline (limit: #{limit})..."
|
|
62
|
-
|
|
63
|
-
runner = CodebaseIndex::Evaluation::BaselineRunner.new(
|
|
64
|
-
metadata_store: CodebaseIndex.metadata_store
|
|
65
|
-
)
|
|
66
|
-
|
|
67
|
-
totals = compute_baseline_totals(query_set, runner, strategy, limit)
|
|
68
|
-
print_baseline_report(strategy, query_set.size, totals)
|
|
69
|
-
end
|
|
70
|
-
|
|
71
|
-
def compute_baseline_totals(query_set, runner, strategy, limit)
|
|
72
|
-
total_mrr = 0.0
|
|
73
|
-
total_recall = 0.0
|
|
74
|
-
|
|
75
|
-
query_set.queries.each do |query|
|
|
76
|
-
results = runner.run(query.query, strategy: strategy, limit: limit)
|
|
77
|
-
total_mrr += CodebaseIndex::Evaluation::Metrics.mrr(results, query.expected_units)
|
|
78
|
-
total_recall += CodebaseIndex::Evaluation::Metrics.recall(results, query.expected_units)
|
|
79
|
-
end
|
|
80
|
-
|
|
81
|
-
{ mrr: total_mrr, recall: total_recall }
|
|
82
|
-
end
|
|
83
|
-
|
|
84
|
-
def print_eval_report(report, output_path)
|
|
85
|
-
puts
|
|
86
|
-
puts 'Evaluation complete!'
|
|
87
|
-
puts '=' * 50
|
|
88
|
-
report.aggregates.each do |key, value|
|
|
89
|
-
formatted = value.is_a?(Float) ? format('%.4f', value) : value.to_s
|
|
90
|
-
puts " #{key.to_s.ljust(25)}: #{formatted}"
|
|
91
|
-
end
|
|
92
|
-
puts '=' * 50
|
|
93
|
-
puts "Report saved to: #{output_path}"
|
|
94
|
-
end
|
|
95
|
-
|
|
96
|
-
def print_baseline_report(strategy, count, totals)
|
|
97
|
-
puts
|
|
98
|
-
puts "Baseline: #{strategy}"
|
|
99
|
-
puts '=' * 50
|
|
100
|
-
puts " Mean MRR: #{format('%.4f', count.positive? ? totals[:mrr] / count : 0.0)}"
|
|
101
|
-
puts " Mean Recall: #{format('%.4f', count.positive? ? totals[:recall] / count : 0.0)}"
|
|
102
|
-
puts '=' * 50
|
|
103
|
-
end
|
|
104
|
-
|
|
105
|
-
# Build a retriever for evaluation (requires Rails environment with stores configured).
|
|
106
|
-
#
|
|
107
|
-
# @return [CodebaseIndex::Retriever]
|
|
108
|
-
def build_eval_retriever
|
|
109
|
-
CodebaseIndex::Retriever.new(
|
|
110
|
-
vector_store: CodebaseIndex.vector_store,
|
|
111
|
-
metadata_store: CodebaseIndex.metadata_store,
|
|
112
|
-
graph_store: CodebaseIndex.graph_store,
|
|
113
|
-
embedding_provider: CodebaseIndex.embedding_provider
|
|
114
|
-
)
|
|
115
|
-
end
|