- bex/reduce.py: Faithful implementation of Reduce with support-weighted SOA edit distance, adjunction, iterative merging, and Minimize - experiments/context_eval.py: Multi-codebase support (RAGSAK + Flask), Reduce experiments with thresholds 0.05-0.4 - tests/test_reduce.py: 24 tests covering all Reduce components - Flask cloned to external_refs/flask for cross-validation Results: - RAGSAK: 12.0% coverage (First 3 symbols) - Flask: 10.7% coverage (First 3 symbols) - Reduce has minimal impact (1-2 merges per codebase at ε=0.3) - Coverage ceiling appears to be ~10-12% for prefix-based grouping
450 lines
No EOL
10 KiB
JSON
450 lines
No EOL
10 KiB
JSON
{
|
|
"strategy": "Option A: File path k=2",
|
|
"total_contexts": 59,
|
|
"meaningful_contexts": 54,
|
|
"total_methods": 1594,
|
|
"methods_in_good_groups": 17,
|
|
"sore_successes": 2,
|
|
"sore_failures": 1,
|
|
"skip_reasons": {
|
|
"too_large": 8,
|
|
"too_diverse": 39,
|
|
"large_alphabet": 4
|
|
},
|
|
"groups": [
|
|
{
|
|
"context": "('springrag', 'controller')",
|
|
"methods": 144,
|
|
"unique": 132,
|
|
"unique_ratio": 0.917,
|
|
"sore": "SKIP(too_large)",
|
|
"sore_success": false
|
|
},
|
|
{
|
|
"context": "('service', 'job')",
|
|
"methods": 143,
|
|
"unique": 133,
|
|
"unique_ratio": 0.93,
|
|
"sore": "SKIP(too_large)",
|
|
"sore_success": false
|
|
},
|
|
{
|
|
"context": "('springrag', 'config')",
|
|
"methods": 128,
|
|
"unique": 85,
|
|
"unique_ratio": 0.664,
|
|
"sore": "SKIP(too_large)",
|
|
"sore_success": false
|
|
},
|
|
{
|
|
"context": "('rag', 'embabel')",
|
|
"methods": 87,
|
|
"unique": 77,
|
|
"unique_ratio": 0.885,
|
|
"sore": "SKIP(too_large)",
|
|
"sore_success": false
|
|
},
|
|
{
|
|
"context": "('springrag', 'architecture')",
|
|
"methods": 87,
|
|
"unique": 70,
|
|
"unique_ratio": 0.805,
|
|
"sore": "SKIP(too_large)",
|
|
"sore_success": false
|
|
},
|
|
{
|
|
"context": "('port', 'adapter')",
|
|
"methods": 76,
|
|
"unique": 74,
|
|
"unique_ratio": 0.974,
|
|
"sore": "SKIP(too_large)",
|
|
"sore_success": false
|
|
},
|
|
{
|
|
"context": "('controller', 'librechat')",
|
|
"methods": 75,
|
|
"unique": 69,
|
|
"unique_ratio": 0.92,
|
|
"sore": "SKIP(too_large)",
|
|
"sore_success": false
|
|
},
|
|
{
|
|
"context": "('springrag', 'system')",
|
|
"methods": 58,
|
|
"unique": 50,
|
|
"unique_ratio": 0.862,
|
|
"sore": "SKIP(too_large)",
|
|
"sore_success": false
|
|
},
|
|
{
|
|
"context": "('batch', 'listener')",
|
|
"methods": 50,
|
|
"unique": 44,
|
|
"unique_ratio": 0.88,
|
|
"sore": "SKIP(too_diverse)",
|
|
"sore_success": false
|
|
},
|
|
{
|
|
"context": "('springrag', 'repository')",
|
|
"methods": 43,
|
|
"unique": 39,
|
|
"unique_ratio": 0.907,
|
|
"sore": "SKIP(too_diverse)",
|
|
"sore_success": false
|
|
},
|
|
{
|
|
"context": "('service', 'storage')",
|
|
"methods": 43,
|
|
"unique": 29,
|
|
"unique_ratio": 0.674,
|
|
"sore": "SKIP(large_alphabet)",
|
|
"sore_success": false
|
|
},
|
|
{
|
|
"context": "('service', 'graph')",
|
|
"methods": 42,
|
|
"unique": 37,
|
|
"unique_ratio": 0.881,
|
|
"sore": "SKIP(too_diverse)",
|
|
"sore_success": false
|
|
},
|
|
{
|
|
"context": "('springrag', 'batch')",
|
|
"methods": 32,
|
|
"unique": 32,
|
|
"unique_ratio": 1.0,
|
|
"sore": "SKIP(too_diverse)",
|
|
"sore_success": false
|
|
},
|
|
{
|
|
"context": "('service', 'docling')",
|
|
"methods": 31,
|
|
"unique": 28,
|
|
"unique_ratio": 0.903,
|
|
"sore": "SKIP(too_diverse)",
|
|
"sore_success": false
|
|
},
|
|
{
|
|
"context": "('service', 'knowledgebase')",
|
|
"methods": 27,
|
|
"unique": 27,
|
|
"unique_ratio": 1.0,
|
|
"sore": "SKIP(too_diverse)",
|
|
"sore_success": false
|
|
},
|
|
{
|
|
"context": "('summarizer', 'embabel')",
|
|
"methods": 26,
|
|
"unique": 26,
|
|
"unique_ratio": 1.0,
|
|
"sore": "SKIP(too_diverse)",
|
|
"sore_success": false
|
|
},
|
|
{
|
|
"context": "('common', 'ids')",
|
|
"methods": 26,
|
|
"unique": 16,
|
|
"unique_ratio": 0.615,
|
|
"sore": "SKIP(large_alphabet)",
|
|
"sore_success": false
|
|
},
|
|
{
|
|
"context": "('service', 'chunk')",
|
|
"methods": 25,
|
|
"unique": 25,
|
|
"unique_ratio": 1.0,
|
|
"sore": "SKIP(too_diverse)",
|
|
"sore_success": false
|
|
},
|
|
{
|
|
"context": "('security', 'service')",
|
|
"methods": 25,
|
|
"unique": 22,
|
|
"unique_ratio": 0.88,
|
|
"sore": "SKIP(too_diverse)",
|
|
"sore_success": false
|
|
},
|
|
{
|
|
"context": "('springrag', 'health')",
|
|
"methods": 24,
|
|
"unique": 22,
|
|
"unique_ratio": 0.917,
|
|
"sore": "SKIP(too_diverse)",
|
|
"sore_success": false
|
|
},
|
|
{
|
|
"context": "('rag', 'simple')",
|
|
"methods": 23,
|
|
"unique": 23,
|
|
"unique_ratio": 1.0,
|
|
"sore": "SKIP(too_diverse)",
|
|
"sore_success": false
|
|
},
|
|
{
|
|
"context": "('rag', 'support')",
|
|
"methods": 23,
|
|
"unique": 22,
|
|
"unique_ratio": 0.957,
|
|
"sore": "SKIP(too_diverse)",
|
|
"sore_success": false
|
|
},
|
|
{
|
|
"context": "('repository', 'graph')",
|
|
"methods": 23,
|
|
"unique": 22,
|
|
"unique_ratio": 0.957,
|
|
"sore": "SKIP(too_diverse)",
|
|
"sore_success": false
|
|
},
|
|
{
|
|
"context": "('agent', 'wikipedia')",
|
|
"methods": 18,
|
|
"unique": 17,
|
|
"unique_ratio": 0.944,
|
|
"sore": "SKIP(too_diverse)",
|
|
"sore_success": false
|
|
},
|
|
{
|
|
"context": "('tooling', 'embabel')",
|
|
"methods": 18,
|
|
"unique": 18,
|
|
"unique_ratio": 1.0,
|
|
"sore": "SKIP(too_diverse)",
|
|
"sore_success": false
|
|
},
|
|
{
|
|
"context": "('service', 'chat')",
|
|
"methods": 18,
|
|
"unique": 17,
|
|
"unique_ratio": 0.944,
|
|
"sore": "SKIP(too_diverse)",
|
|
"sore_success": false
|
|
},
|
|
{
|
|
"context": "('springrag', 'testcontainers')",
|
|
"methods": 18,
|
|
"unique": 18,
|
|
"unique_ratio": 1.0,
|
|
"sore": "SKIP(too_diverse)",
|
|
"sore_success": false
|
|
},
|
|
{
|
|
"context": "('cucumber', 'steps')",
|
|
"methods": 17,
|
|
"unique": 13,
|
|
"unique_ratio": 0.765,
|
|
"sore": "SKIP(large_alphabet)",
|
|
"sore_success": false
|
|
},
|
|
{
|
|
"context": "('batch', 'writer')",
|
|
"methods": 17,
|
|
"unique": 17,
|
|
"unique_ratio": 1.0,
|
|
"sore": "SKIP(too_diverse)",
|
|
"sore_success": false
|
|
},
|
|
{
|
|
"context": "('controller', 'web')",
|
|
"methods": 16,
|
|
"unique": 16,
|
|
"unique_ratio": 1.0,
|
|
"sore": "SKIP(too_diverse)",
|
|
"sore_success": false
|
|
},
|
|
{
|
|
"context": "('model', 'graph')",
|
|
"methods": 16,
|
|
"unique": 15,
|
|
"unique_ratio": 0.938,
|
|
"sore": "SKIP(too_diverse)",
|
|
"sore_success": false
|
|
},
|
|
{
|
|
"context": "('batch', 'reader')",
|
|
"methods": 16,
|
|
"unique": 15,
|
|
"unique_ratio": 0.938,
|
|
"sore": "SKIP(too_diverse)",
|
|
"sore_success": false
|
|
},
|
|
{
|
|
"context": "('embabel', 'librechat')",
|
|
"methods": 14,
|
|
"unique": 14,
|
|
"unique_ratio": 1.0,
|
|
"sore": "SKIP(too_diverse)",
|
|
"sore_success": false
|
|
},
|
|
{
|
|
"context": "('springrag', 'testsupport')",
|
|
"methods": 12,
|
|
"unique": 3,
|
|
"unique_ratio": 0.25,
|
|
"sore": "(get|(Builder|Any))",
|
|
"sore_success": true
|
|
},
|
|
{
|
|
"context": "('batch', 'model')",
|
|
"methods": 12,
|
|
"unique": 10,
|
|
"unique_ratio": 0.833,
|
|
"sore": "SKIP(large_alphabet)",
|
|
"sore_success": false
|
|
},
|
|
{
|
|
"context": "('capability', 'support')",
|
|
"methods": 11,
|
|
"unique": 10,
|
|
"unique_ratio": 0.909,
|
|
"sore": "SKIP(too_diverse)",
|
|
"sore_success": false
|
|
},
|
|
{
|
|
"context": "('springrag', 'model')",
|
|
"methods": 11,
|
|
"unique": 11,
|
|
"unique_ratio": 1.0,
|
|
"sore": "SKIP(too_diverse)",
|
|
"sore_success": false
|
|
},
|
|
{
|
|
"context": "('embabel', 'recording')",
|
|
"methods": 11,
|
|
"unique": 11,
|
|
"unique_ratio": 1.0,
|
|
"sore": "SKIP(too_diverse)",
|
|
"sore_success": false
|
|
},
|
|
{
|
|
"context": "('batch', 'partition')",
|
|
"methods": 11,
|
|
"unique": 11,
|
|
"unique_ratio": 1.0,
|
|
"sore": "SKIP(too_diverse)",
|
|
"sore_success": false
|
|
},
|
|
{
|
|
"context": "('security', 'config')",
|
|
"methods": 11,
|
|
"unique": 11,
|
|
"unique_ratio": 1.0,
|
|
"sore": "SKIP(too_diverse)",
|
|
"sore_success": false
|
|
},
|
|
{
|
|
"context": "('main', 'kotlin')",
|
|
"methods": 8,
|
|
"unique": 8,
|
|
"unique_ratio": 1.0,
|
|
"sore": "SKIP(too_diverse)",
|
|
"sore_success": false
|
|
},
|
|
{
|
|
"context": "('service', 'cleanup')",
|
|
"methods": 8,
|
|
"unique": 6,
|
|
"unique_ratio": 0.75,
|
|
"sore": "\u2205",
|
|
"sore_success": false
|
|
},
|
|
{
|
|
"context": "('agent', 'rag')",
|
|
"methods": 7,
|
|
"unique": 7,
|
|
"unique_ratio": 1.0,
|
|
"sore": "SKIP(too_diverse)",
|
|
"sore_success": false
|
|
},
|
|
{
|
|
"context": "('controller', 'auth')",
|
|
"methods": 7,
|
|
"unique": 7,
|
|
"unique_ratio": 1.0,
|
|
"sore": "SKIP(too_diverse)",
|
|
"sore_success": false
|
|
},
|
|
{
|
|
"context": "('tooling', 'agent')",
|
|
"methods": 6,
|
|
"unique": 6,
|
|
"unique_ratio": 1.0,
|
|
"sore": "SKIP(too_diverse)",
|
|
"sore_success": false
|
|
},
|
|
{
|
|
"context": "('springrag', 'mcp')",
|
|
"methods": 6,
|
|
"unique": 6,
|
|
"unique_ratio": 1.0,
|
|
"sore": "SKIP(too_diverse)",
|
|
"sore_success": false
|
|
},
|
|
{
|
|
"context": "('springrag', 'common')",
|
|
"methods": 6,
|
|
"unique": 6,
|
|
"unique_ratio": 1.0,
|
|
"sore": "SKIP(too_diverse)",
|
|
"sore_success": false
|
|
},
|
|
{
|
|
"context": "('batch', 'processor')",
|
|
"methods": 6,
|
|
"unique": 6,
|
|
"unique_ratio": 1.0,
|
|
"sore": "SKIP(too_diverse)",
|
|
"sore_success": false
|
|
},
|
|
{
|
|
"context": "('agent', 'capability')",
|
|
"methods": 5,
|
|
"unique": 3,
|
|
"unique_ratio": 0.6,
|
|
"sore": "(listCapabilities.firstOrNull|(AgentExecutionContext|return AgentCapabilityDescriptor(\n id = id,\n capabilityType = capabilityType,\n displayName = describedCapability?.displayName ",
|
|
"sore_success": true
|
|
},
|
|
{
|
|
"context": "('test', 'kotlin')",
|
|
"methods": 5,
|
|
"unique": 5,
|
|
"unique_ratio": 1.0,
|
|
"sore": "SKIP(too_diverse)",
|
|
"sore_success": false
|
|
},
|
|
{
|
|
"context": "('service', 'embedding')",
|
|
"methods": 5,
|
|
"unique": 5,
|
|
"unique_ratio": 1.0,
|
|
"sore": "SKIP(too_diverse)",
|
|
"sore_success": false
|
|
},
|
|
{
|
|
"context": "('springrag', 'service')",
|
|
"methods": 3,
|
|
"unique": 3,
|
|
"unique_ratio": 1.0,
|
|
"sore": "SKIP(too_diverse)",
|
|
"sore_success": false
|
|
},
|
|
{
|
|
"context": "('service', 'agent')",
|
|
"methods": 3,
|
|
"unique": 3,
|
|
"unique_ratio": 1.0,
|
|
"sore": "SKIP(too_diverse)",
|
|
"sore_success": false
|
|
},
|
|
{
|
|
"context": "('service', 'document')",
|
|
"methods": 3,
|
|
"unique": 3,
|
|
"unique_ratio": 1.0,
|
|
"sore": "SKIP(too_diverse)",
|
|
"sore_success": false
|
|
}
|
|
],
|
|
"coverage": 1.1,
|
|
"elapsed_seconds": 0.01
|
|
} |