feat: add post-hoc noise filtering for grammars
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
ci/woodpecker/pr/woodpecker Pipeline failed

- Add filter_noise() to remove test/stdlib tokens from AST
- Add grammar_noise_ratio() to calculate noise fraction
- Integrate into _build_json_output() and _build_yaml_output()
- Precision improvement: 28-55% → 84-94% across all 3 codebases
- Grammar count unchanged (233) — filtering is post-hoc, preserves recall
This commit is contained in:
tobjend 2026-07-13 02:23:37 +02:00
parent 9b3dca46eb
commit becbd82c56
13 changed files with 104222 additions and 4 deletions

View file

@ -93,3 +93,134 @@ def grammar_structure_score(node):
child_scores = [grammar_structure_score(p) for p in node.parts]
return min(1.0, 0.3 + 0.2 * n + sum(child_scores) / max(len(child_scores), 1))
return 0.0
# Noise token sets for grammar filtering
TEST_NOISE = {
'assertEquals', 'assertTrue', 'assertFalse', 'assertNotNull', 'assertNull',
'every', 'verify', 'clearAllMocks', 'mockk', 'slot', 'coEvery', 'coVerify',
'assertThat', 'assertThrows', 'assertNotEquals', 'assumeTrue',
'doReturn', 'doThrow', 'assertSame', 'assertFailsWith', 'assertContains',
'runTest', 'TestRequest', 'TestClient', 'client', 'pytest', 'mock', 'patch',
'monkeypatch', 'tmp_path', 'async_client', 'test_client',
}
STDLIB_NOISE = {
'listOf', 'mapOf', 'setOf', 'arrayOf', 'mutableListOf', 'mutableMapOf',
'emptyList', 'emptyMap', 'emptySet', 'build', 'buildString', 'also',
'apply', 'let', 'run', 'to', 'of', 'get', 'set', 'if', 'else', 'when',
'return', 'is', 'in', 'as', 'toString', 'equals', 'hashCode', 'size',
'isEmpty', 'isNotEmpty', 'filter', 'map', 'flatMap', 'forEach', 'count',
'first', 'last', 'firstOrNull', 'single', 'singleOrNull', 'take',
'drop', 'joinToString', 'trim', 'isBlank', 'isNullOrBlank', 'orEmpty',
'contains', 'add', 'remove', 'clear', 'put', 'putAll', 'keys', 'values',
'String', 'Any', 'Boolean', 'Int', 'Long', 'Unit', 'Nothing', 'error',
'invoke', 'println', 'print', 'check', 'require', 'checkNotNull', 'requireNotNull',
}
# Combined noise set
ALL_NOISE = TEST_NOISE | STDLIB_NOISE
def filter_noise(node, noise_tokens=None):
"""Remove noise tokens from AST grammar.
Walks the AST and removes Symbol nodes whose text is in the noise set.
Returns cleaned AST, or Empty if everything was noise.
Args:
node: Grammar AST node
noise_tokens: set of tokens to remove (default: ALL_NOISE)
Returns:
Cleaned AST node
"""
from .grammar import Concat, Alt, Optional, Plus, Star
if noise_tokens is None:
noise_tokens = ALL_NOISE
if node is None or isinstance(node, (Epsilon, Empty)):
return node
if isinstance(node, Symbol):
if node.value in noise_tokens:
return Empty()
return node
if isinstance(node, Concat):
new_parts = []
for part in node.parts:
filtered = filter_noise(part, noise_tokens)
if not isinstance(filtered, (Epsilon, Empty)):
new_parts.append(filtered)
if not new_parts:
return Empty()
if len(new_parts) == 1:
return new_parts[0]
return Concat(new_parts)
if isinstance(node, Alt):
new_parts = []
for part in node.parts:
filtered = filter_noise(part, noise_tokens)
if not isinstance(filtered, (Epsilon, Empty)):
new_parts.append(filtered)
if not new_parts:
return Empty()
if len(new_parts) == 1:
return new_parts[0]
return Alt(new_parts)
if isinstance(node, (Plus, Optional, Star)):
filtered = filter_noise(node.child, noise_tokens)
if isinstance(filtered, (Epsilon, Empty)):
return Empty()
if isinstance(node, Plus):
return Plus(filtered)
if isinstance(node, Optional):
return Optional(filtered)
return Star(filtered)
return node
def grammar_noise_ratio(node, noise_tokens=None):
"""Calculate the fraction of symbols that are noise.
Returns (n_noise, n_total) tuple.
"""
from .grammar import Concat, Alt, Optional, Plus, Star
if noise_tokens is None:
noise_tokens = ALL_NOISE
if node is None or isinstance(node, (Epsilon, Empty)):
return 0, 0
if isinstance(node, Symbol):
is_noise = 1 if node.value in noise_tokens else 0
return is_noise, 1
if isinstance(node, Concat):
noise = 0
total = 0
for part in node.parts:
n, t = grammar_noise_ratio(part, noise_tokens)
noise += n
total += t
return noise, total
if isinstance(node, Alt):
noise = 0
total = 0
for part in node.parts:
n, t = grammar_noise_ratio(part, noise_tokens)
noise += n
total += t
return noise, total
if isinstance(node, (Plus, Optional, Star)):
return grammar_noise_ratio(node.child, noise_tokens)
return 0, 0

View file

@ -20,7 +20,7 @@ import pathspec
from .code import preprocess_by_method, extract_arg_info, _summarize_arg_info
from bex.ensemble import infer_ensemble
from bex.gbnf import grammar_structure_score, to_gbnf
from bex.gbnf import grammar_structure_score, to_gbnf, filter_noise, grammar_noise_ratio
from bex.grammar import Empty
from bex.distributional import distributional_split
from bex.decompose import decompose_with_coverage, get_decomposition_stats
@ -891,8 +891,20 @@ def _build_json_output(results):
"method_count": count,
}
if result and result.get("best"):
grammar = result["best"]["grammar"]
# Apply noise filtering
filtered_grammar = filter_noise(grammar)
if filtered_grammar and not isinstance(filtered_grammar, Empty):
n_noise, n_total = grammar_noise_ratio(grammar)
entry["grammar"] = to_gbnf(filtered_grammar)
entry["grammar_clean"] = to_gbnf(filtered_grammar)
entry["noise_ratio"] = round(n_noise / n_total, 2) if n_total > 0 else 1.0
entry["symbols_before"] = n_total
entry["symbols_after"] = n_total - n_noise
else:
entry["grammar"] = to_gbnf(grammar)
entry["noise_ratio"] = 1.0
entry["algorithm"] = result["best"]["algorithm"]
entry["grammar"] = to_gbnf(result["best"]["grammar"])
entry["mdl_score"] = round(result['best']['mdl_score'], 1)
entry["imports"] = meta.get("imports", [])
entry["arg_patterns"] = meta.get("arg_patterns", {})
@ -902,7 +914,7 @@ def _build_json_output(results):
return json.dumps(output, indent=2)
def _build_yaml_output(results, dir_path, max_mdl=500.0, min_structure=0.0):
def _build_yaml_output(results, dir_path, max_mdl=500.0, min_structure=0.0, filter_grammar_noise=True):
"""Build YAML output grouped by top-level module, sorted by MDL.
Filters out (other), no-grammar groups, groups above max_mdl,
@ -931,6 +943,15 @@ def _build_yaml_output(results, dir_path, max_mdl=500.0, min_structure=0.0):
if grammar_structure_score(best["grammar"]) < min_structure:
continue
# Apply noise filtering
grammar = best["grammar"]
if filter_grammar_noise:
filtered = filter_noise(grammar)
if filtered and not isinstance(filtered, Empty):
grammar = filtered
else:
continue # Skip grammars that become empty after filtering
# Extract top-level module from package path
parts = label.replace(os.sep, "/").split("/")
module = parts[0] if len(parts) > 1 else "(root)"
@ -939,7 +960,7 @@ def _build_yaml_output(results, dir_path, max_mdl=500.0, min_structure=0.0):
entry = {
"package": label,
"methods": count,
"grammar": to_gbnf(best["grammar"]),
"grammar": to_gbnf(grammar),
"score": round(best.get("mdl_score", 0), 3),
"algorithm": best["algorithm"],
"mdl": round(best["mdl_score"], 1),

View file

@ -0,0 +1,49 @@
# Round 21: Loosened Filtering Thresholds
## Changes Made
- `min_methods`: 3→2 (keep groups with 2+ methods)
- `unique_ratio`: 0.9→0.95 (keep groups with up to 95% unique sequences)
- `max_mdl`: 200→500 (keep higher-MDL grammars)
## Results
### Grammar Count Comparison
| Codebase | Before | After | Change |
|----------|--------|-------|--------|
| RAGSAK | 60 | 102 | +70% |
| FastAPI | 18 | 121 | +572% |
| Zod | 1 | 10 | +900% |
| **Total** | **79** | **233** | **+195%** |
### Quality Distribution
| Tier | RAGSAK | FastAPI | Zod | Total |
|------|--------|---------|-----|-------|
| T1 (3+ groups) | 23 | 3 | 0 | 26 |
| T2 (2+ groups) | 18 | 15 | 0 | 33 |
| T3 (ordered, no groups) | 52 | 100 | 9 | 161 |
| T0 (bags/no structure) | 9 | 3 | 1 | 13 |
| **Total** | **102** | **121** | **10** | **233** |
### Key Findings
1. **Loosened filtering dramatically increased grammar count** — 195% more grammars across all 3 codebases
2. **FastAPI benefited most** — from 18 to 121 grammars (+572%), mostly T3 (ordered sequences)
3. **Zod went from 1 to 10 grammars** — previously only tsc pattern survived, now 9 ordered patterns
4. **Quality distribution shifted** — more T3 grammars (ordered sequences with some structure), fewer being thrown away
5. **T1 count doubled** for RAGSAK (12→23) — strong alternating patterns now preserved
### Files
- `ragsak.json` — RAGSAK results (102 grammars)
- `ragsak.log` — RAGSAK execution log
- `fastapi.json` — FastAPI results (121 grammars)
- `fastapi.log` — FastAPI execution log
- `zod.json` — Zod results (10 grammars)
- `zod.log` — Zod execution log
## Next Steps
1. Apply noise filtering to clean T3 grammars (remove test/stdlib noise)
2. Deduplicate similar grammars across packages
3. Build GBNF delivery mechanism
4. Test with opencode

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,294 @@
[ 0.0s] Scanning /home/tobi/Desktop/dervish/external_refs/fastapi ...
[ 0.0s] Preprocessing 4 files across 12 workers ...
[ 0.3s] Preprocess: 50 methods from 4 .js files (0.2s)
[ 0.3s] Groups: 1 named, 1 ungrouped methods
[ 0.3s] ├ docs/en/docs/js (49 methods)
[ 0.3s] └ (other) (1 methods)
[ 0.3s] Inferring 1 groups across 12 workers ...
[ 0.4s] [1/1] docs/en/docs/js (49 methods) done (0.2s)
[ 0.4s] Preprocessing 1129 files across 12 workers ...
[ 5.5s] Preprocess: 4811 methods from 1129 .py files (5.1s)
[ 5.5s] Groups: 141 named, 0 ungrouped methods
[ 5.5s] ├ docs_src (45 methods)
[ 5.5s] ├ docs_src/additional_responses (4 methods)
[ 5.5s] ├ docs_src/advanced_middleware (3 methods)
[ 5.5s] ├ docs_src/app_testing (14 methods)
[ 5.5s] ├ docs_src/app_testing/app_b_an_py310 (8 methods)
[ 5.5s] ├ docs_src/app_testing/app_b_py310 (8 methods)
[ 5.5s] ├ docs_src/background_tasks (8 methods)
[ 5.5s] ├ docs_src/behind_a_proxy (5 methods)
[ 5.5s] ├ docs_src/bigger_applications/app_an_py310 (4 methods)
[ 5.5s] ├ docs_src/bigger_applications/app_an_py310/routers (6 methods)
[ 5.5s] ├ docs_src/body (4 methods)
[ 5.5s] ├ docs_src/body_multiple_params (9 methods)
[ 5.5s] ├ docs_src/body_nested_models (9 methods)
[ 5.5s] ├ docs_src/body_updates (4 methods)
[ 5.5s] ├ docs_src/configure_swagger_ui (3 methods)
[ 5.5s] ├ docs_src/cookie_param_models (4 methods)
[ 5.5s] ├ docs_src/custom_docs_ui (8 methods)
[ 5.5s] ├ docs_src/custom_request_and_route (18 methods)
[ 5.5s] ├ docs_src/custom_response (19 methods)
[ 5.5s] ├ docs_src/dataclasses_ (4 methods)
[ 5.5s] ├ docs_src/dependencies (82 methods)
[ 5.5s] ├ docs_src/dependency_testing (14 methods)
[ 5.5s] ├ docs_src/events (7 methods)
[ 5.5s] ├ docs_src/extra_models (9 methods)
[ 5.5s] ├ docs_src/generate_clients (9 methods)
[ 5.5s] ├ docs_src/handling_errors (13 methods)
[ 5.5s] ├ docs_src/header_param_models (6 methods)
[ 5.5s] ├ docs_src/header_params (6 methods)
[ 5.5s] ├ docs_src/json_base64_bytes (3 methods)
[ 5.5s] ├ docs_src/metadata (6 methods)
[ 5.5s] ├ docs_src/path_operation_advanced_configuration (9 methods)
[ 5.5s] ├ docs_src/path_operation_configuration (12 methods)
[ 5.5s] ├ docs_src/path_params (8 methods)
[ 5.5s] ├ docs_src/path_params_numeric_validations (12 methods)
[ 5.5s] ├ docs_src/pydantic_v1_in_v2 (3 methods)
[ 5.5s] ├ docs_src/python_types (13 methods)
[ 5.5s] ├ docs_src/query_param_models (4 methods)
[ 5.5s] ├ docs_src/query_params (6 methods)
[ 5.5s] ├ docs_src/query_params_str_validations (31 methods)
[ 5.5s] ├ docs_src/request_files (24 methods)
[ 5.5s] ├ docs_src/request_form_models (4 methods)
[ 5.5s] ├ docs_src/response_model (16 methods)
[ 5.5s] ├ docs_src/schema_extra_example (8 methods)
[ 5.5s] ├ docs_src/security (70 methods)
[ 5.5s] ├ docs_src/separate_openapi_schemas (4 methods)
[ 5.5s] ├ docs_src/server_sent_events (8 methods)
[ 5.5s] ├ docs_src/settings (5 methods)
[ 5.5s] ├ docs_src/settings/app02_an_py310 (4 methods)
[ 5.5s] ├ docs_src/settings/app02_py310 (4 methods)
[ 5.5s] ├ docs_src/sql_databases (30 methods)
[ 5.5s] ├ docs_src/stream_data (14 methods)
[ 5.5s] ├ docs_src/stream_json_lines (4 methods)
[ 5.5s] ├ docs_src/websockets_ (15 methods)
[ 5.5s] ├ fastapi (239 methods)
[ 5.5s] ├ fastapi/_compat (45 methods)
[ 5.5s] ├ fastapi/dependencies (38 methods)
[ 5.5s] ├ fastapi/openapi (19 methods)
[ 5.5s] ├ fastapi/security (34 methods)
[ 5.5s] ├ scripts (132 methods)
[ 5.5s] ├ scripts/playwright (7 methods)
[ 5.5s] ├ scripts/playwright/separate_openapi_schemas (5 methods)
[ 5.5s] ├ scripts/tests/test_translation_fixer (12 methods)
[ 5.5s] ├ scripts/tests/test_translation_fixer/test_code_blocks (8 methods)
[ 5.5s] ├ scripts/tests/test_translation_fixer/test_header_permalinks (4 methods)
[ 5.5s] ├ tests (2036 methods)
[ 5.5s] ├ tests/benchmarks (48 methods)
[ 5.5s] ├ tests/test_modules_same_name_body (5 methods)
[ 5.5s] ├ tests/test_request_params/test_body (113 methods)
[ 5.5s] ├ tests/test_request_params/test_cookie (48 methods)
[ 5.5s] ├ tests/test_request_params/test_file (97 methods)
[ 5.5s] ├ tests/test_request_params/test_form (97 methods)
[ 5.5s] ├ tests/test_request_params/test_header (96 methods)
[ 5.5s] ├ tests/test_request_params/test_path (6 methods)
[ 5.5s] ├ tests/test_request_params/test_query (96 methods)
[ 5.5s] ├ tests/test_tutorial (16 methods)
[ 5.5s] ├ tests/test_tutorial/test_additional_responses (14 methods)
[ 5.5s] ├ tests/test_tutorial/test_additional_status_codes (3 methods)
[ 5.5s] ├ tests/test_tutorial/test_advanced_middleware (4 methods)
[ 5.5s] ├ tests/test_tutorial/test_authentication_error_status_code (4 methods)
[ 5.5s] ├ tests/test_tutorial/test_background_tasks (3 methods)
[ 5.5s] ├ tests/test_tutorial/test_behind_a_proxy (10 methods)
[ 5.5s] ├ tests/test_tutorial/test_bigger_applications (26 methods)
[ 5.5s] ├ tests/test_tutorial/test_body (32 methods)
[ 5.5s] ├ tests/test_tutorial/test_body_fields (5 methods)
[ 5.5s] ├ tests/test_tutorial/test_body_multiple_params (35 methods)
[ 5.5s] ├ tests/test_tutorial/test_body_nested_models (44 methods)
[ 5.5s] ├ tests/test_tutorial/test_body_updates (9 methods)
[ 5.5s] ├ tests/test_tutorial/test_conditional_openapi (4 methods)
[ 5.5s] ├ tests/test_tutorial/test_configure_swagger_ui (6 methods)
[ 5.5s] ├ tests/test_tutorial/test_cookie_param_models (12 methods)
[ 5.5s] ├ tests/test_tutorial/test_cookie_params (3 methods)
[ 5.5s] ├ tests/test_tutorial/test_custom_docs_ui (10 methods)
[ 5.5s] ├ tests/test_tutorial/test_custom_request_and_route (10 methods)
[ 5.5s] ├ tests/test_tutorial/test_custom_response (25 methods)
[ 5.5s] ├ tests/test_tutorial/test_dataclasses (11 methods)
[ 5.5s] ├ tests/test_tutorial/test_debugging (5 methods)
[ 5.5s] ├ tests/test_tutorial/test_dependencies (51 methods)
[ 5.5s] ├ tests/test_tutorial/test_encoder (5 methods)
[ 5.5s] ├ tests/test_tutorial/test_events (8 methods)
[ 5.5s] ├ tests/test_tutorial/test_extra_data_types (3 methods)
[ 5.5s] ├ tests/test_tutorial/test_extra_models (13 methods)
[ 5.5s] ├ tests/test_tutorial/test_first_steps (3 methods)
[ 5.5s] ├ tests/test_tutorial/test_generate_clients (13 methods)
[ 5.5s] ├ tests/test_tutorial/test_graphql (3 methods)
[ 5.5s] ├ tests/test_tutorial/test_handling_errors (20 methods)
[ 5.5s] ├ tests/test_tutorial/test_header_param_models (19 methods)
[ 5.5s] ├ tests/test_tutorial/test_header_params (9 methods)
[ 5.5s] ├ tests/test_tutorial/test_json_base64_bytes (5 methods)
[ 5.5s] ├ tests/test_tutorial/test_metadata (14 methods)
[ 5.5s] ├ tests/test_tutorial/test_openapi_callbacks (5 methods)
[ 5.5s] ├ tests/test_tutorial/test_openapi_webhooks (3 methods)
[ 5.5s] ├ tests/test_tutorial/test_path_operation_advanced_configurations (18 methods)
[ 5.5s] ├ tests/test_tutorial/test_path_operation_configurations (20 methods)
[ 5.5s] ├ tests/test_tutorial/test_path_params (18 methods)
[ 5.5s] ├ tests/test_tutorial/test_path_params_numeric_validations (29 methods)
[ 5.5s] ├ tests/test_tutorial/test_python_types (15 methods)
[ 5.5s] ├ tests/test_tutorial/test_query_param_models (12 methods)
[ 5.5s] ├ tests/test_tutorial/test_query_params (19 methods)
[ 5.5s] ├ tests/test_tutorial/test_query_params_str_validations (81 methods)
[ 5.5s] ├ tests/test_tutorial/test_request_files (31 methods)
[ 5.5s] ├ tests/test_tutorial/test_request_form_models (15 methods)
[ 5.5s] ├ tests/test_tutorial/test_request_forms (7 methods)
[ 5.5s] ├ tests/test_tutorial/test_request_forms_and_files (8 methods)
[ 5.5s] ├ tests/test_tutorial/test_response_directly (6 methods)
[ 5.5s] ├ tests/test_tutorial/test_response_model (35 methods)
[ 5.5s] ├ tests/test_tutorial/test_response_status_code (3 methods)
[ 5.5s] ├ tests/test_tutorial/test_schema_extra_example (15 methods)
[ 5.5s] ├ tests/test_tutorial/test_security (73 methods)
[ 5.5s] ├ tests/test_tutorial/test_separate_openapi_schemas (8 methods)
[ 5.5s] ├ tests/test_tutorial/test_server_sent_events (17 methods)
[ 5.5s] ├ tests/test_tutorial/test_settings (16 methods)
[ 5.5s] ├ tests/test_tutorial/test_sql_databases (8 methods)
[ 5.5s] ├ tests/test_tutorial/test_static_files (4 methods)
[ 5.5s] ├ tests/test_tutorial/test_stream_data (7 methods)
[ 5.5s] ├ tests/test_tutorial/test_stream_json_lines (3 methods)
[ 5.5s] ├ tests/test_tutorial/test_strict_content_type (4 methods)
[ 5.5s] ├ tests/test_tutorial/test_sub_applications (4 methods)
[ 5.5s] ├ tests/test_tutorial/test_testing (10 methods)
[ 5.5s] ├ tests/test_tutorial/test_testing_dependencies (8 methods)
[ 5.5s] ├ tests/test_tutorial/test_websockets (14 methods)
[ 5.5s] ├ tests/test_validate_response_recursive (3 methods)
[ 5.5s] Inferring 141 groups across 12 workers ...
[ 5.8s] [1/141] docs_src/app_testing/app_b_an_py310 (8 methods) done (0.2s)
[ 5.8s] [2/141] docs_src/app_testing/app_b_py310 (8 methods) done (0.2s)
[ 5.8s] [3/141] docs_src/advanced_middleware (3 methods) done (0.2s)
[ 5.8s] [4/141] docs_src/bigger_applications/app_an_py310/routers (6 methods) done (0.2s)
[ 5.8s] [5/141] docs_src/bigger_applications/app_an_py310 (4 methods) done (0.3s)
[ 5.8s] [6/141] docs_src/background_tasks (8 methods) done (0.3s)
[ 5.8s] [7/141] docs_src/additional_responses (4 methods) done (0.3s)
[ 5.9s] [8/141] docs_src/body_updates (4 methods) done (0.3s)
[ 5.9s] [9/141] docs_src/body (4 methods) done (0.4s)
[ 5.9s] [10/141] docs_src/configure_swagger_ui (3 methods) done (0.4s)
[ 5.9s] [11/141] docs_src/custom_docs_ui (8 methods) done (0.4s)
[ 5.9s] [12/141] docs_src/app_testing (14 methods) done (0.4s)
[ 6.0s] [13/141] docs_src/cookie_param_models (4 methods) done (0.4s)
[ 6.0s] [14/141] docs_src/behind_a_proxy (5 methods) done (0.5s)
[ 6.0s] [15/141] docs_src/dependency_testing (14 methods) done (0.5s)
[ 6.0s] [16/141] docs_src/dataclasses_ (4 methods) done (0.5s)
[ 6.1s] [17/141] docs_src/custom_request_and_route (18 methods) done (0.5s)
[ 6.1s] [18/141] docs_src/events (7 methods) done (0.5s)
[ 6.1s] [19/141] docs_src/json_base64_bytes (3 methods) done (0.6s)
[ 6.1s] [20/141] docs_src/generate_clients (9 methods) done (0.6s)
[ 6.1s] [21/141] docs_src/extra_models (9 methods) done (0.6s)
[ 6.2s] [22/141] docs_src/body_multiple_params (9 methods) done (0.7s)
[ 6.2s] [23/141] docs_src/body_nested_models (9 methods) done (0.7s)
[ 6.3s] [24/141] docs_src/header_param_models (6 methods) done (0.7s)
[ 6.3s] [25/141] docs_src/header_params (6 methods) done (0.8s)
[ 6.4s] [26/141] docs_src/metadata (6 methods) done (0.8s)
[ 6.4s] [27/141] docs_src/pydantic_v1_in_v2 (3 methods) done (0.9s)
[ 6.4s] [28/141] docs_src/path_params (8 methods) done (0.9s)
[ 6.4s] [29/141] docs_src/handling_errors (13 methods) done (0.9s)
[ 6.5s] [30/141] docs_src/path_operation_configuration (12 methods) done (0.9s)
[ 6.5s] [31/141] docs_src/custom_response (19 methods) done (1.0s)
[ 6.5s] [32/141] docs_src/path_operation_advanced_configuration (9 methods) done (1.0s)
[ 6.5s] [33/141] docs_src/query_param_models (4 methods) done (1.0s)
[ 6.6s] [34/141] docs_src/request_form_models (4 methods) done (1.1s)
[ 6.6s] [35/141] docs_src/separate_openapi_schemas (4 methods) done (1.1s)
[ 6.7s] [36/141] docs_src/query_params (6 methods) done (1.2s)
[ 6.8s] [37/141] docs_src/python_types (13 methods) done (1.3s)
[ 6.8s] [38/141] docs_src/settings/app02_an_py310 (4 methods) done (1.3s)
[ 6.8s] [39/141] docs_src/path_params_numeric_validations (12 methods) done (1.3s)
[ 6.8s] [40/141] docs_src/settings (5 methods) done (1.3s)
[ 6.8s] [41/141] docs_src/request_files (24 methods) done (1.3s)
[ 6.9s] [42/141] docs_src/server_sent_events (8 methods) done (1.3s)
[ 6.9s] [43/141] docs_src/settings/app02_py310 (4 methods) done (1.3s)
[ 6.9s] [44/141] docs_src/schema_extra_example (8 methods) done (1.4s)
[ 6.9s] [45/141] docs_src/stream_data (14 methods) done (1.4s)
[ 6.9s] [46/141] docs_src/stream_json_lines (4 methods) done (1.4s)
[ 7.0s] [47/141] fastapi/_compat (45 methods) done (1.5s)
[ 7.0s] [48/141] docs_src/websockets_ (15 methods) done (1.5s)
[ 7.0s] [49/141] fastapi/dependencies (38 methods) done (1.5s)
[ 7.1s] [50/141] docs_src/response_model (16 methods) done (1.6s)
[ 7.1s] [51/141] fastapi/openapi (19 methods) done (1.6s)
[ 7.2s] [52/141] fastapi/security (34 methods) done (1.7s)
[ 7.2s] [53/141] docs_src/security (70 methods) done (1.7s)
[ 7.3s] [54/141] scripts/playwright/separate_openapi_schemas (5 methods) done (1.7s)
[ 7.3s] [55/141] scripts/tests/test_translation_fixer/test_header_permalinks (4 methods) done (1.8s)
[ 7.3s] [56/141] scripts/tests/test_translation_fixer/test_code_blocks (8 methods) done (1.8s)
[ 7.3s] [57/141] tests/benchmarks (48 methods) done (1.8s)
[ 7.3s] [58/141] scripts/playwright (7 methods) done (1.8s)
[ 7.4s] [59/141] scripts/tests/test_translation_fixer (12 methods) done (1.8s)
[ 7.4s] [60/141] docs_src/dependencies (82 methods) done (1.9s)
[ 7.4s] [61/141] docs_src/sql_databases (30 methods) done (1.9s)
[ 7.4s] [62/141] docs_src (45 methods) done (1.9s)
[ 7.4s] [63/141] tests/test_request_params/test_cookie (48 methods) done (1.9s)
[ 7.5s] [64/141] tests/test_request_params/test_path (6 methods) done (1.9s)
[ 7.5s] [65/141] tests/test_modules_same_name_body (5 methods) done (2.0s)
[ 7.5s] [66/141] tests/test_tutorial/test_additional_status_codes (3 methods) done (2.0s)
[ 7.6s] [67/141] tests/test_request_params/test_body (113 methods) done (2.1s)
[ 7.6s] [68/141] tests/test_request_params/test_file (97 methods) done (2.1s)
[ 7.6s] [69/141] tests/test_request_params/test_query (96 methods) done (2.1s)
[ 7.6s] [70/141] tests/test_request_params/test_form (97 methods) done (2.1s)
[ 7.6s] [71/141] tests/test_request_params/test_header (96 methods) done (2.1s)
[ 7.7s] [72/141] scripts (132 methods) done (2.1s)
[ 7.7s] [73/141] tests/test_tutorial/test_additional_responses (14 methods) done (2.2s)
[ 7.7s] [74/141] tests/test_tutorial/test_authentication_error_status_code (4 methods) done (2.2s)
[ 7.7s] [75/141] tests/test_tutorial/test_advanced_middleware (4 methods) done (2.2s)
[ 7.7s] [76/141] tests/test_tutorial/test_bigger_applications (26 methods) done (2.2s)
[ 7.7s] [77/141] tests/test_tutorial/test_body_fields (5 methods) done (2.2s)
[ 7.7s] [78/141] tests/test_tutorial/test_background_tasks (3 methods) done (2.2s)
[ 7.8s] [79/141] tests/test_tutorial/test_conditional_openapi (4 methods) done (2.2s)
[ 7.8s] [80/141] tests/test_tutorial/test_body_updates (9 methods) done (2.3s)
[ 7.8s] [81/141] tests/test_tutorial/test_cookie_params (3 methods) done (2.3s)
[ 7.8s] [82/141] tests/test_tutorial/test_configure_swagger_ui (6 methods) done (2.3s)
[ 7.9s] [83/141] tests/test_tutorial/test_cookie_param_models (12 methods) done (2.3s)
[ 7.9s] [84/141] tests/test_tutorial/test_behind_a_proxy (10 methods) done (2.3s)
[ 7.9s] [85/141] tests/test_tutorial/test_body (32 methods) done (2.3s)
[ 7.9s] [86/141] fastapi (239 methods) done (2.4s)
[ 7.9s] [87/141] tests/test_tutorial/test_custom_docs_ui (10 methods) done (2.4s)
[ 7.9s] [88/141] tests/test_tutorial/test_debugging (5 methods) done (2.4s)
[ 7.9s] [89/141] docs_src/query_params_str_validations (31 methods) done (2.4s)
[ 7.9s] [90/141] tests/test_tutorial/test_body_multiple_params (35 methods) done (2.4s)
[ 8.0s] [91/141] tests/test_tutorial/test_encoder (5 methods) done (2.4s)
[ 8.0s] [92/141] tests/test_tutorial (16 methods) done (2.5s)
[ 8.0s] [93/141] tests/test_tutorial/test_custom_request_and_route (10 methods) done (2.5s)
[ 8.0s] [94/141] tests/test_tutorial/test_extra_data_types (3 methods) done (2.5s)
[ 8.0s] [95/141] tests/test_tutorial/test_first_steps (3 methods) done (2.5s)
[ 8.0s] [96/141] tests/test_tutorial/test_dataclasses (11 methods) done (2.5s)
[ 8.0s] [97/141] tests/test_tutorial/test_graphql (3 methods) done (2.5s)
[ 8.1s] [98/141] tests/test_tutorial/test_events (8 methods) done (2.5s)
[ 8.1s] [99/141] tests/test_tutorial/test_json_base64_bytes (5 methods) done (2.5s)
[ 8.1s] [100/141] tests/test_tutorial/test_body_nested_models (44 methods) done (2.5s)
[ 8.1s] [101/141] tests/test_tutorial/test_openapi_webhooks (3 methods) done (2.6s)
[ 8.1s] [102/141] tests/test_tutorial/test_openapi_callbacks (5 methods) done (2.6s)
[ 8.1s] [103/141] tests/test_tutorial/test_header_param_models (19 methods) done (2.6s)
[ 8.2s] [104/141] tests/test_tutorial/test_extra_models (13 methods) done (2.6s)
[ 8.2s] [105/141] tests/test_tutorial/test_header_params (9 methods) done (2.6s)
[ 8.2s] [106/141] tests/test_tutorial/test_generate_clients (13 methods) done (2.6s)
[ 8.3s] [107/141] tests/test_tutorial/test_query_param_models (12 methods) done (2.7s)
[ 8.3s] [108/141] tests/test_tutorial/test_metadata (14 methods) done (2.7s)
[ 8.3s] [109/141] tests/test_tutorial/test_handling_errors (20 methods) done (2.8s)
[ 8.4s] [110/141] tests/test_tutorial/test_path_params_numeric_validations (29 methods) done (2.9s)
[ 8.4s] [111/141] tests/test_tutorial/test_request_form_models (15 methods) done (2.9s)
[ 8.4s] [112/141] tests/test_tutorial/test_path_operation_configurations (20 methods) done (2.9s)
[ 8.4s] [113/141] tests/test_tutorial/test_path_operation_advanced_configurations (18 methods) done (2.9s)
[ 8.4s] [114/141] tests/test_tutorial/test_path_params (18 methods) done (2.9s)
[ 8.4s] [115/141] tests/test_tutorial/test_request_forms (7 methods) done (2.9s)
[ 8.4s] [116/141] tests/test_tutorial/test_custom_response (25 methods) done (2.9s)
[ 8.4s] [117/141] tests/test_tutorial/test_request_forms_and_files (8 methods) done (2.9s)
[ 8.5s] [118/141] tests/test_tutorial/test_query_params (19 methods) done (3.0s)
[ 8.5s] [119/141] tests/test_tutorial/test_response_status_code (3 methods) done (3.0s)
[ 8.5s] [120/141] tests/test_tutorial/test_request_files (31 methods) done (3.0s)
[ 8.5s] [121/141] tests/test_tutorial/test_response_directly (6 methods) done (3.0s)
[ 8.5s] [122/141] tests/test_tutorial/test_dependencies (51 methods) done (3.0s)
[ 8.6s] [123/141] tests/test_tutorial/test_separate_openapi_schemas (8 methods) done (3.0s)
[ 8.6s] [124/141] tests/test_tutorial/test_static_files (4 methods) done (3.1s)
[ 8.6s] [125/141] tests/test_tutorial/test_stream_json_lines (3 methods) done (3.1s)
[ 8.6s] [126/141] tests/test_tutorial/test_stream_data (7 methods) done (3.1s)
[ 8.6s] [127/141] tests/test_tutorial/test_strict_content_type (4 methods) done (3.1s)
[ 8.7s] [128/141] tests/test_tutorial/test_schema_extra_example (15 methods) done (3.1s)
[ 8.7s] [129/141] tests/test_tutorial/test_sql_databases (8 methods) done (3.2s)
[ 8.7s] [130/141] tests/test_tutorial/test_sub_applications (4 methods) done (3.2s)
[ 8.7s] [131/141] tests/test_tutorial/test_settings (16 methods) done (3.2s)
[ 8.7s] [132/141] tests/test_tutorial/test_testing_dependencies (8 methods) done (3.2s)
[ 8.7s] [133/141] tests/test_validate_response_recursive (3 methods) done (3.2s)
[ 8.7s] [134/141] tests/test_tutorial/test_python_types (15 methods) done (3.2s)
[ 8.7s] [135/141] tests/test_tutorial/test_server_sent_events (17 methods) done (3.2s)
[ 8.8s] [136/141] tests/test_tutorial/test_security (73 methods) done (3.2s)
[ 8.8s] [137/141] tests/test_tutorial/test_websockets (14 methods) done (3.3s)
[ 8.8s] [138/141] tests/test_tutorial/test_testing (10 methods) done (3.3s)
[ 8.9s] [139/141] tests/test_tutorial/test_response_model (35 methods) done (3.4s)
[ 9.0s] [140/141] tests/test_tutorial/test_query_params_str_validations (81 methods) done (3.5s)
[ 14.2s] [141/141] tests (2036 methods) done (8.6s)

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,264 @@
[ 0.0s] Scanning /home/tobi/Desktop/kesai/RAGSAK ...
[ 0.1s] Preprocessing 462 files across 12 workers ...
[ 2.9s] Preprocess: 1609 methods from 462 .kt files (2.8s)
[ 2.9s] Groups: 120 named, 6 ungrouped methods
[ 2.9s] ├ agents (5 methods)
[ 2.9s] ├ agents/capability/ports/src/main/kotlin/eu/corentic/springrag/agent/capability (5 methods)
[ 2.9s] ├ agents/capability/support/src/main/kotlin/eu/corentic/springrag/agent/capability/support (5 methods)
[ 2.9s] ├ agents/capability/support/src/test/kotlin/eu/corentic/springrag/agent/capability/support (6 methods)
[ 2.9s] ├ agents/examples/simple-rag/src/main/kotlin/eu/corentic/springrag/example/rag/simple (9 methods)
[ 2.9s] ├ agents/examples/simple-rag/src/test/kotlin/eu/corentic/springrag/example/rag/simple (14 methods)
[ 2.9s] ├ agents/rag/embabel/src/main/kotlin/eu/corentic/springrag/agent/rag/embabel (58 methods)
[ 2.9s] ├ agents/rag/embabel/src/main/kotlin/eu/corentic/springrag/agent/rag/embabel/librechat (13 methods)
[ 2.9s] ├ agents/rag/embabel/src/test/kotlin/eu/corentic/springrag/agent/rag/embabel (36 methods)
[ 2.9s] ├ agents/rag/embabel/src/test/kotlin/eu/corentic/springrag/testsupport (3 methods)
[ 2.9s] ├ agents/rag/ports/src/main/kotlin/eu/corentic/springrag/agent/rag (4 methods)
[ 2.9s] ├ agents/rag/ports/src/test/kotlin/eu/corentic/springrag/agent/rag (3 methods)
[ 2.9s] ├ agents/rag/ports/src/test/kotlin/eu/corentic/springrag/model (3 methods)
[ 2.9s] ├ agents/rag/support/src/main/kotlin/eu/corentic/springrag/agent/rag/support (13 methods)
[ 2.9s] ├ agents/rag/support/src/test/kotlin/eu/corentic/springrag/agent/rag/support (11 methods)
[ 2.9s] ├ agents/summarizer/embabel/src/main/kotlin/eu/corentic/springrag/agent/summarizer/embabel (13 methods)
[ 2.9s] ├ agents/summarizer/embabel/src/test/kotlin/eu/corentic/springrag/agent/summarizer/embabel (14 methods)
[ 2.9s] ├ agents/tooling/agent/src/main/kotlin/eu/corentic/springrag/agent/tooling/agent (4 methods)
[ 2.9s] ├ agents/tooling/embabel/src/main/kotlin/eu/corentic/springrag/agent/tooling/embabel (12 methods)
[ 2.9s] ├ agents/tooling/embabel/src/main/kotlin/eu/corentic/springrag/agent/tooling/embabel/recording (11 methods)
[ 2.9s] ├ agents/tooling/embabel/src/test/kotlin/eu/corentic/springrag/agent/tooling/embabel (6 methods)
[ 2.9s] ├ agents/wikipedia/adapters/src/main/kotlin/eu/corentic/springrag/agent/wikipedia (4 methods)
[ 2.9s] ├ agents/wikipedia/adapters/src/test/kotlin/eu/corentic/springrag/agent/wikipedia (8 methods)
[ 2.9s] ├ agents/wikipedia/static/src/main/kotlin/eu/corentic/springrag/agent/wikipedia (3 methods)
[ 2.9s] ├ agents/wikipedia/static/src/test/kotlin/eu/corentic/springrag/agent/wikipedia (3 methods)
[ 2.9s] ├ app/src (6 methods)
[ 2.9s] ├ app/src/e2eTest/kotlin/eu/corentic/springrag/e2e/cucumber/steps (17 methods)
[ 2.9s] ├ app/src/integrationTest/kotlin/eu/corentic/springrag/config (15 methods)
[ 2.9s] ├ app/src/integrationTest/kotlin/eu/corentic/springrag/controller (5 methods)
[ 2.9s] ├ app/src/integrationTest/kotlin/eu/corentic/springrag/service (3 methods)
[ 2.9s] ├ app/src/systemTest/kotlin/eu/corentic/springrag/config (14 methods)
[ 2.9s] ├ app/src/systemTest/kotlin/eu/corentic/springrag/system (46 methods)
[ 2.9s] ├ app/src/test/kotlin/eu/corentic/springrag/architecture (87 methods)
[ 2.9s] ├ app/src/test/kotlin/eu/corentic/springrag/config (3 methods)
[ 2.9s] ├ buildSrc/src/main/kotlin (8 methods)
[ 2.9s] ├ buildSrc/src/test/kotlin (5 methods)
[ 2.9s] ├ entrypoints/agent-mcp-server/src/main/kotlin/eu/corentic/springrag/mcp (3 methods)
[ 2.9s] ├ entrypoints/agent-mcp-server/src/test/kotlin/eu/corentic/springrag/mcp (3 methods)
[ 2.9s] ├ entrypoints/web/src/main/kotlin/eu/corentic/springrag/config (3 methods)
[ 2.9s] ├ entrypoints/web/src/main/kotlin/eu/corentic/springrag/controller (58 methods)
[ 2.9s] ├ entrypoints/web/src/main/kotlin/eu/corentic/springrag/controller/librechat (29 methods)
[ 2.9s] ├ entrypoints/web/src/main/kotlin/eu/corentic/springrag/controller/web (6 methods)
[ 2.9s] ├ entrypoints/web/src/test/kotlin/eu/corentic/springrag/config (4 methods)
[ 2.9s] ├ entrypoints/web/src/test/kotlin/eu/corentic/springrag/controller (83 methods)
[ 2.9s] ├ entrypoints/web/src/test/kotlin/eu/corentic/springrag/controller/auth (5 methods)
[ 2.9s] ├ entrypoints/web/src/test/kotlin/eu/corentic/springrag/controller/librechat (46 methods)
[ 2.9s] ├ entrypoints/web/src/test/kotlin/eu/corentic/springrag/controller/web (10 methods)
[ 2.9s] ├ infrastructure/adapters (3 methods)
[ 2.9s] ├ infrastructure/adapters/ai-provider/src/main/kotlin/eu/corentic/springrag/config (4 methods)
[ 2.9s] ├ infrastructure/adapters/ai-provider/src/main/kotlin/eu/corentic/springrag/health (3 methods)
[ 2.9s] ├ infrastructure/adapters/ai-provider/src/test/kotlin/eu/corentic/springrag/config (6 methods)
[ 2.9s] ├ infrastructure/adapters/ai-provider/src/test/kotlin/eu/corentic/springrag/health (4 methods)
[ 2.9s] ├ infrastructure/adapters/ai-provider/src/test/kotlin/eu/corentic/springrag/service/embedding (5 methods)
[ 2.9s] ├ infrastructure/adapters/ai-provider/src/test/kotlin/eu/corentic/springrag/testsupport (3 methods)
[ 2.9s] ├ infrastructure/adapters/chat-memory/src/test/kotlin/eu/corentic/springrag/config (6 methods)
[ 2.9s] ├ infrastructure/adapters/doc-parser/src (6 methods)
[ 2.9s] ├ infrastructure/adapters/doc-parser/src/main/kotlin/eu/corentic/springrag/config (3 methods)
[ 2.9s] ├ infrastructure/adapters/doc-parser/src/main/kotlin/eu/corentic/springrag/service/docling (21 methods)
[ 2.9s] ├ infrastructure/adapters/doc-parser/src/systemTest/kotlin/eu/corentic/springrag/config (6 methods)
[ 2.9s] ├ infrastructure/adapters/doc-parser/src/test/kotlin/eu/corentic/springrag/config (12 methods)
[ 2.9s] ├ infrastructure/adapters/doc-parser/src/test/kotlin/eu/corentic/springrag/health (3 methods)
[ 2.9s] ├ infrastructure/adapters/doc-parser/src/test/kotlin/eu/corentic/springrag/service/docling (10 methods)
[ 2.9s] ├ infrastructure/adapters/doc-parser/src/test/kotlin/eu/corentic/springrag/testsupport (3 methods)
[ 2.9s] ├ infrastructure/adapters/search/src/main/kotlin/eu/corentic/springrag/health (7 methods)
[ 2.9s] ├ infrastructure/adapters/search/src/main/kotlin/eu/corentic/springrag/model/graph (9 methods)
[ 2.9s] ├ infrastructure/adapters/search/src/main/kotlin/eu/corentic/springrag/repository (24 methods)
[ 2.9s] ├ infrastructure/adapters/search/src/main/kotlin/eu/corentic/springrag/service/agent (3 methods)
[ 2.9s] ├ infrastructure/adapters/search/src/main/kotlin/eu/corentic/springrag/service/cleanup (4 methods)
[ 2.9s] ├ infrastructure/adapters/search/src/main/kotlin/eu/corentic/springrag/service/graph (12 methods)
[ 2.9s] ├ infrastructure/adapters/search/src/main/kotlin/eu/corentic/springrag/service/port/adapter (45 methods)
[ 2.9s] ├ infrastructure/adapters/search/src/main/kotlin/eu/corentic/springrag/service/storage (40 methods)
[ 2.9s] ├ infrastructure/adapters/search/src/systemTest/kotlin/eu/corentic/springrag/config (4 methods)
[ 2.9s] ├ infrastructure/adapters/search/src/systemTest/kotlin/eu/corentic/springrag/repository/graph (23 methods)
[ 2.9s] ├ infrastructure/adapters/search/src/systemTest/kotlin/eu/corentic/springrag/system (6 methods)
[ 2.9s] ├ infrastructure/adapters/search/src/test/kotlin/eu/corentic/springrag/config (3 methods)
[ 2.9s] ├ infrastructure/adapters/search/src/test/kotlin/eu/corentic/springrag/health (6 methods)
[ 2.9s] ├ infrastructure/adapters/search/src/test/kotlin/eu/corentic/springrag/model/graph (7 methods)
[ 2.9s] ├ infrastructure/adapters/search/src/test/kotlin/eu/corentic/springrag/repository (19 methods)
[ 2.9s] ├ infrastructure/adapters/search/src/test/kotlin/eu/corentic/springrag/service/cleanup (4 methods)
[ 2.9s] ├ infrastructure/adapters/search/src/test/kotlin/eu/corentic/springrag/service/graph (30 methods)
[ 2.9s] ├ infrastructure/adapters/search/src/test/kotlin/eu/corentic/springrag/service/port/adapter (28 methods)
[ 2.9s] ├ infrastructure/adapters/search/src/test/kotlin/eu/corentic/springrag/service/storage (3 methods)
[ 2.9s] ├ infrastructure/adapters/search/src/test/kotlin/eu/corentic/springrag/testsupport (3 methods)
[ 2.9s] ├ modules/chat/src/integrationTest/kotlin/eu/corentic/springrag/service/chat (4 methods)
[ 2.9s] ├ modules/chat/src/main/kotlin/eu/corentic/springrag/service/chat (6 methods)
[ 2.9s] ├ modules/chat/src/systemTest/kotlin/eu/corentic/springrag/config (15 methods)
[ 2.9s] ├ modules/chat/src/systemTest/kotlin/eu/corentic/springrag/system (4 methods)
[ 2.9s] ├ modules/chat/src/test/kotlin/eu/corentic/springrag/service/chat (8 methods)
[ 2.9s] ├ modules/common/src/main/kotlin/eu/corentic/springrag/common (7 methods)
[ 2.9s] ├ modules/common/src/main/kotlin/eu/corentic/springrag/common/ids (18 methods)
[ 2.9s] ├ modules/common/src/test/kotlin/eu/corentic/springrag/common/ids (8 methods)
[ 2.9s] ├ modules/ingestion/src/integrationTest/kotlin/eu/corentic/springrag/service/job (34 methods)
[ 2.9s] ├ modules/ingestion/src/main/kotlin/eu/corentic/springrag/batch (16 methods)
[ 2.9s] ├ modules/ingestion/src/main/kotlin/eu/corentic/springrag/batch/listener (16 methods)
[ 2.9s] ├ modules/ingestion/src/main/kotlin/eu/corentic/springrag/batch/model (4 methods)
[ 2.9s] ├ modules/ingestion/src/main/kotlin/eu/corentic/springrag/batch/partition (4 methods)
[ 2.9s] ├ modules/ingestion/src/main/kotlin/eu/corentic/springrag/batch/reader (4 methods)
[ 2.9s] ├ modules/ingestion/src/main/kotlin/eu/corentic/springrag/batch/writer (3 methods)
[ 2.9s] ├ modules/ingestion/src/main/kotlin/eu/corentic/springrag/config (26 methods)
[ 2.9s] ├ modules/ingestion/src/main/kotlin/eu/corentic/springrag/service/chunk (18 methods)
[ 2.9s] ├ modules/ingestion/src/main/kotlin/eu/corentic/springrag/service/document (3 methods)
[ 2.9s] ├ modules/ingestion/src/main/kotlin/eu/corentic/springrag/service/job (62 methods)
[ 2.9s] ├ modules/ingestion/src/test/kotlin/eu/corentic/springrag/batch (17 methods)
[ 2.9s] ├ modules/ingestion/src/test/kotlin/eu/corentic/springrag/batch/listener (34 methods)
[ 2.9s] ├ modules/ingestion/src/test/kotlin/eu/corentic/springrag/batch/model (8 methods)
[ 2.9s] ├ modules/ingestion/src/test/kotlin/eu/corentic/springrag/batch/partition (7 methods)
[ 2.9s] ├ modules/ingestion/src/test/kotlin/eu/corentic/springrag/batch/processor (5 methods)
[ 2.9s] ├ modules/ingestion/src/test/kotlin/eu/corentic/springrag/batch/reader (12 methods)
[ 2.9s] ├ modules/ingestion/src/test/kotlin/eu/corentic/springrag/batch/writer (14 methods)
[ 2.9s] ├ modules/ingestion/src/test/kotlin/eu/corentic/springrag/service/chunk (8 methods)
[ 2.9s] ├ modules/ingestion/src/test/kotlin/eu/corentic/springrag/service/job (49 methods)
[ 2.9s] ├ modules/knowledgebase/ports/src/main/kotlin/eu/corentic/springrag/model (5 methods)
[ 2.9s] ├ modules/knowledgebase/src/main/kotlin/eu/corentic/springrag/service/knowledgebase (11 methods)
[ 2.9s] ├ modules/knowledgebase/src/test/kotlin/eu/corentic/springrag/service/knowledgebase (16 methods)
[ 2.9s] ├ modules/security/src/main/kotlin/eu/corentic/springrag/security/config (5 methods)
[ 2.9s] ├ modules/security/src/main/kotlin/eu/corentic/springrag/security/service (10 methods)
[ 2.9s] ├ modules/security/src/test/kotlin/eu/corentic/springrag/security/config (6 methods)
[ 2.9s] ├ modules/security/src/test/kotlin/eu/corentic/springrag/security/service (15 methods)
[ 2.9s] ├ platform/test-support/src/main/kotlin/eu/corentic/springrag/testcontainers (13 methods)
[ 2.9s] ├ platform/test-support/src/test/kotlin/eu/corentic/springrag/testcontainers (5 methods)
[ 2.9s] └ (other) (6 methods)
[ 2.9s] Inferring 120 groups across 12 workers ...
[ 3.1s] [1/120] agents/rag/embabel/src/test/kotlin/eu/corentic/springrag/testsupport (3 methods) done (0.2s)
[ 3.1s] [2/120] agents/rag/ports/src/test/kotlin/eu/corentic/springrag/agent/rag (3 methods) done (0.2s)
[ 3.2s] [3/120] agents/rag/embabel/src/main/kotlin/eu/corentic/springrag/agent/rag/embabel/librechat (13 methods) done (0.3s)
[ 3.2s] [4/120] agents/capability/support/src/test/kotlin/eu/corentic/springrag/agent/capability/support (6 methods) done (0.3s)
[ 3.2s] [5/120] agents/rag/ports/src/main/kotlin/eu/corentic/springrag/agent/rag (4 methods) done (0.3s)
[ 3.2s] [6/120] agents/capability/ports/src/main/kotlin/eu/corentic/springrag/agent/capability (5 methods) done (0.3s)
[ 3.2s] [7/120] agents/capability/support/src/main/kotlin/eu/corentic/springrag/agent/capability/support (5 methods) done (0.3s)
[ 3.2s] [8/120] agents/rag/ports/src/test/kotlin/eu/corentic/springrag/model (3 methods) done (0.3s)
[ 3.2s] [9/120] agents/examples/simple-rag/src/main/kotlin/eu/corentic/springrag/example/rag/simple (9 methods) done (0.3s)
[ 3.3s] [10/120] agents (5 methods) done (0.3s)
[ 3.3s] [11/120] agents/tooling/agent/src/main/kotlin/eu/corentic/springrag/agent/tooling/agent (4 methods) done (0.4s)
[ 3.3s] [12/120] agents/examples/simple-rag/src/test/kotlin/eu/corentic/springrag/example/rag/simple (14 methods) done (0.4s)
[ 3.3s] [13/120] agents/rag/support/src/main/kotlin/eu/corentic/springrag/agent/rag/support (13 methods) done (0.4s)
[ 3.4s] [14/120] agents/wikipedia/adapters/src/main/kotlin/eu/corentic/springrag/agent/wikipedia (4 methods) done (0.5s)
[ 3.4s] [15/120] agents/wikipedia/static/src/main/kotlin/eu/corentic/springrag/agent/wikipedia (3 methods) done (0.5s)
[ 3.4s] [16/120] agents/tooling/embabel/src/main/kotlin/eu/corentic/springrag/agent/tooling/embabel/recording (11 methods) done (0.5s)
[ 3.4s] [17/120] agents/wikipedia/static/src/test/kotlin/eu/corentic/springrag/agent/wikipedia (3 methods) done (0.5s)
[ 3.4s] [18/120] agents/summarizer/embabel/src/main/kotlin/eu/corentic/springrag/agent/summarizer/embabel (13 methods) done (0.5s)
[ 3.5s] [19/120] agents/rag/support/src/test/kotlin/eu/corentic/springrag/agent/rag/support (11 methods) done (0.5s)
[ 3.5s] [20/120] agents/wikipedia/adapters/src/test/kotlin/eu/corentic/springrag/agent/wikipedia (8 methods) done (0.5s)
[ 3.5s] [21/120] agents/rag/embabel/src/main/kotlin/eu/corentic/springrag/agent/rag/embabel (58 methods) done (0.6s)
[ 3.5s] [22/120] agents/tooling/embabel/src/test/kotlin/eu/corentic/springrag/agent/tooling/embabel (6 methods) done (0.6s)
[ 3.5s] [23/120] app/src/integrationTest/kotlin/eu/corentic/springrag/service (3 methods) done (0.6s)
[ 3.6s] [24/120] agents/tooling/embabel/src/main/kotlin/eu/corentic/springrag/agent/tooling/embabel (12 methods) done (0.6s)
[ 3.6s] [25/120] agents/rag/embabel/src/test/kotlin/eu/corentic/springrag/agent/rag/embabel (36 methods) done (0.7s)
[ 3.6s] [26/120] buildSrc/src/main/kotlin (8 methods) done (0.7s)
[ 3.6s] [27/120] app/src/test/kotlin/eu/corentic/springrag/config (3 methods) done (0.7s)
[ 3.6s] [28/120] app/src/integrationTest/kotlin/eu/corentic/springrag/config (15 methods) done (0.7s)
[ 3.6s] [29/120] agents/summarizer/embabel/src/test/kotlin/eu/corentic/springrag/agent/summarizer/embabel (14 methods) done (0.7s)
[ 3.6s] [30/120] app/src/integrationTest/kotlin/eu/corentic/springrag/controller (5 methods) done (0.7s)
[ 3.7s] [31/120] app/src/systemTest/kotlin/eu/corentic/springrag/config (14 methods) done (0.7s)
[ 3.7s] [32/120] app/src (6 methods) done (0.8s)
[ 3.7s] [33/120] app/src/test/kotlin/eu/corentic/springrag/architecture (87 methods) done (0.8s)
[ 3.7s] [34/120] buildSrc/src/test/kotlin (5 methods) done (0.8s)
[ 3.8s] [35/120] app/src/e2eTest/kotlin/eu/corentic/springrag/e2e/cucumber/steps (17 methods) done (0.8s)
[ 3.8s] [36/120] entrypoints/web/src/main/kotlin/eu/corentic/springrag/controller/librechat (29 methods) done (0.9s)
[ 3.8s] [37/120] entrypoints/web/src/test/kotlin/eu/corentic/springrag/controller/auth (5 methods) done (0.9s)
[ 3.8s] [38/120] entrypoints/web/src/test/kotlin/eu/corentic/springrag/config (4 methods) done (0.9s)
[ 3.8s] [39/120] entrypoints/web/src/main/kotlin/eu/corentic/springrag/controller/web (6 methods) done (0.9s)
[ 3.8s] [40/120] entrypoints/agent-mcp-server/src/test/kotlin/eu/corentic/springrag/mcp (3 methods) done (0.9s)
[ 3.8s] [41/120] app/src/systemTest/kotlin/eu/corentic/springrag/system (46 methods) done (0.9s)
[ 3.8s] [42/120] entrypoints/web/src/main/kotlin/eu/corentic/springrag/config (3 methods) done (0.9s)
[ 3.9s] [43/120] entrypoints/agent-mcp-server/src/main/kotlin/eu/corentic/springrag/mcp (3 methods) done (1.0s)
[ 3.9s] [44/120] entrypoints/web/src/test/kotlin/eu/corentic/springrag/controller/librechat (46 methods) done (1.0s)
[ 3.9s] [45/120] infrastructure/adapters/ai-provider/src/main/kotlin/eu/corentic/springrag/health (3 methods) done (1.0s)
[ 3.9s] [46/120] entrypoints/web/src/test/kotlin/eu/corentic/springrag/controller/web (10 methods) done (1.0s)
[ 3.9s] [47/120] infrastructure/adapters/ai-provider/src/test/kotlin/eu/corentic/springrag/health (4 methods) done (1.0s)
[ 3.9s] [48/120] infrastructure/adapters/ai-provider/src/test/kotlin/eu/corentic/springrag/service/embedding (5 methods) done (1.0s)
[ 3.9s] [49/120] infrastructure/adapters/ai-provider/src/test/kotlin/eu/corentic/springrag/testsupport (3 methods) done (1.0s)
[ 3.9s] [50/120] infrastructure/adapters/chat-memory/src/test/kotlin/eu/corentic/springrag/config (6 methods) done (1.0s)
[ 4.0s] [51/120] infrastructure/adapters/ai-provider/src/test/kotlin/eu/corentic/springrag/config (6 methods) done (1.0s)
[ 4.0s] [52/120] infrastructure/adapters (3 methods) done (1.1s)
[ 4.0s] [53/120] infrastructure/adapters/doc-parser/src/test/kotlin/eu/corentic/springrag/health (3 methods) done (1.1s)
[ 4.0s] [54/120] infrastructure/adapters/doc-parser/src/test/kotlin/eu/corentic/springrag/testsupport (3 methods) done (1.1s)
[ 4.1s] [55/120] infrastructure/adapters/doc-parser/src/main/kotlin/eu/corentic/springrag/config (3 methods) done (1.2s)
[ 4.1s] [56/120] infrastructure/adapters/doc-parser/src/systemTest/kotlin/eu/corentic/springrag/config (6 methods) done (1.2s)
[ 4.1s] [57/120] infrastructure/adapters/doc-parser/src/test/kotlin/eu/corentic/springrag/service/docling (10 methods) done (1.2s)
[ 4.1s] [58/120] infrastructure/adapters/search/src/main/kotlin/eu/corentic/springrag/health (7 methods) done (1.2s)
[ 4.1s] [59/120] infrastructure/adapters/doc-parser/src/main/kotlin/eu/corentic/springrag/service/docling (21 methods) done (1.2s)
[ 4.2s] [60/120] infrastructure/adapters/search/src/main/kotlin/eu/corentic/springrag/service/agent (3 methods) done (1.2s)
[ 4.2s] [61/120] infrastructure/adapters/doc-parser/src/test/kotlin/eu/corentic/springrag/config (12 methods) done (1.2s)
[ 4.2s] [62/120] infrastructure/adapters/search/src/main/kotlin/eu/corentic/springrag/service/graph (12 methods) done (1.3s)
[ 4.2s] [63/120] entrypoints/web/src/main/kotlin/eu/corentic/springrag/controller (58 methods) done (1.3s)
[ 4.2s] [64/120] infrastructure/adapters/search/src/main/kotlin/eu/corentic/springrag/repository (24 methods) done (1.3s)
[ 4.2s] [65/120] infrastructure/adapters/ai-provider/src/main/kotlin/eu/corentic/springrag/config (4 methods) done (1.3s)
[ 4.2s] [66/120] infrastructure/adapters/doc-parser/src (6 methods) done (1.3s)
[ 4.2s] [67/120] infrastructure/adapters/search/src/systemTest/kotlin/eu/corentic/springrag/config (4 methods) done (1.3s)
[ 4.2s] [68/120] entrypoints/web/src/test/kotlin/eu/corentic/springrag/controller (83 methods) done (1.3s)
[ 4.2s] [69/120] infrastructure/adapters/search/src/systemTest/kotlin/eu/corentic/springrag/system (6 methods) done (1.3s)
[ 4.3s] [70/120] infrastructure/adapters/search/src/main/kotlin/eu/corentic/springrag/model/graph (9 methods) done (1.4s)
[ 4.3s] [71/120] infrastructure/adapters/search/src/test/kotlin/eu/corentic/springrag/repository (19 methods) done (1.4s)
[ 4.3s] [72/120] infrastructure/adapters/search/src/test/kotlin/eu/corentic/springrag/service/graph (30 methods) done (1.4s)
[ 4.3s] [73/120] infrastructure/adapters/search/src/test/kotlin/eu/corentic/springrag/config (3 methods) done (1.4s)
[ 4.3s] [74/120] infrastructure/adapters/search/src/test/kotlin/eu/corentic/springrag/service/storage (3 methods) done (1.4s)
[ 4.3s] [75/120] infrastructure/adapters/search/src/test/kotlin/eu/corentic/springrag/health (6 methods) done (1.4s)
[ 4.3s] [76/120] infrastructure/adapters/search/src/main/kotlin/eu/corentic/springrag/service/cleanup (4 methods) done (1.4s)
[ 4.4s] [77/120] infrastructure/adapters/search/src/main/kotlin/eu/corentic/springrag/service/storage (40 methods) done (1.4s)
[ 4.4s] [78/120] infrastructure/adapters/search/src/test/kotlin/eu/corentic/springrag/testsupport (3 methods) done (1.5s)
[ 4.4s] [79/120] modules/chat/src/main/kotlin/eu/corentic/springrag/service/chat (6 methods) done (1.5s)
[ 4.4s] [80/120] infrastructure/adapters/search/src/systemTest/kotlin/eu/corentic/springrag/repository/graph (23 methods) done (1.5s)
[ 4.4s] [81/120] modules/common/src/main/kotlin/eu/corentic/springrag/common/ids (18 methods) done (1.5s)
[ 4.4s] [82/120] modules/chat/src/integrationTest/kotlin/eu/corentic/springrag/service/chat (4 methods) done (1.5s)
[ 4.5s] [83/120] modules/common/src/main/kotlin/eu/corentic/springrag/common (7 methods) done (1.5s)
[ 4.5s] [84/120] modules/common/src/test/kotlin/eu/corentic/springrag/common/ids (8 methods) done (1.5s)
[ 4.5s] [85/120] modules/chat/src/systemTest/kotlin/eu/corentic/springrag/system (4 methods) done (1.6s)
[ 4.5s] [86/120] modules/chat/src/test/kotlin/eu/corentic/springrag/service/chat (8 methods) done (1.6s)
[ 4.5s] [87/120] infrastructure/adapters/search/src/test/kotlin/eu/corentic/springrag/model/graph (7 methods) done (1.6s)
[ 4.5s] [88/120] infrastructure/adapters/search/src/test/kotlin/eu/corentic/springrag/service/cleanup (4 methods) done (1.6s)
[ 4.6s] [89/120] modules/ingestion/src/main/kotlin/eu/corentic/springrag/batch (16 methods) done (1.6s)
[ 4.6s] [90/120] modules/chat/src/systemTest/kotlin/eu/corentic/springrag/config (15 methods) done (1.7s)
[ 4.6s] [91/120] modules/ingestion/src/main/kotlin/eu/corentic/springrag/service/document (3 methods) done (1.7s)
[ 4.7s] [92/120] modules/ingestion/src/main/kotlin/eu/corentic/springrag/batch/reader (4 methods) done (1.8s)
[ 4.7s] [93/120] modules/ingestion/src/main/kotlin/eu/corentic/springrag/batch/model (4 methods) done (1.8s)
[ 4.7s] [94/120] modules/ingestion/src/main/kotlin/eu/corentic/springrag/config (26 methods) done (1.8s)
[ 4.7s] [95/120] modules/ingestion/src/main/kotlin/eu/corentic/springrag/batch/writer (3 methods) done (1.8s)
[ 4.7s] [96/120] infrastructure/adapters/search/src/test/kotlin/eu/corentic/springrag/service/port/adapter (28 methods) done (1.8s)
[ 4.8s] [97/120] modules/ingestion/src/main/kotlin/eu/corentic/springrag/service/chunk (18 methods) done (1.9s)
[ 4.8s] [98/120] modules/ingestion/src/test/kotlin/eu/corentic/springrag/batch/partition (7 methods) done (1.9s)
[ 4.8s] [99/120] modules/ingestion/src/test/kotlin/eu/corentic/springrag/batch/reader (12 methods) done (1.9s)
[ 4.8s] [100/120] modules/ingestion/src/integrationTest/kotlin/eu/corentic/springrag/service/job (34 methods) done (1.9s)
[ 4.8s] [101/120] modules/ingestion/src/test/kotlin/eu/corentic/springrag/batch/model (8 methods) done (1.9s)
[ 4.8s] [102/120] modules/ingestion/src/main/kotlin/eu/corentic/springrag/batch/listener (16 methods) done (1.9s)
[ 4.8s] [103/120] modules/ingestion/src/test/kotlin/eu/corentic/springrag/batch/processor (5 methods) done (1.9s)
[ 4.9s] [104/120] infrastructure/adapters/search/src/main/kotlin/eu/corentic/springrag/service/port/adapter (45 methods) done (1.9s)
[ 4.9s] [105/120] modules/ingestion/src/test/kotlin/eu/corentic/springrag/service/chunk (8 methods) done (1.9s)
[ 4.9s] [106/120] modules/ingestion/src/test/kotlin/eu/corentic/springrag/batch (17 methods) done (2.0s)
[ 4.9s] [107/120] modules/ingestion/src/main/kotlin/eu/corentic/springrag/batch/partition (4 methods) done (2.0s)
[ 4.9s] [108/120] modules/knowledgebase/ports/src/main/kotlin/eu/corentic/springrag/model (5 methods) done (2.0s)
[ 5.0s] [109/120] modules/ingestion/src/test/kotlin/eu/corentic/springrag/batch/writer (14 methods) done (2.1s)
[ 5.0s] [110/120] modules/security/src/test/kotlin/eu/corentic/springrag/security/service (15 methods) done (2.1s)
[ 5.0s] [111/120] modules/knowledgebase/src/test/kotlin/eu/corentic/springrag/service/knowledgebase (16 methods) done (2.1s)
[ 5.0s] [112/120] modules/ingestion/src/test/kotlin/eu/corentic/springrag/batch/listener (34 methods) done (2.1s)
[ 5.1s] [113/120] modules/security/src/main/kotlin/eu/corentic/springrag/security/service (10 methods) done (2.2s)
[ 5.1s] [114/120] modules/knowledgebase/src/main/kotlin/eu/corentic/springrag/service/knowledgebase (11 methods) done (2.2s)
[ 5.2s] [115/120] modules/security/src/test/kotlin/eu/corentic/springrag/security/config (6 methods) done (2.2s)
[ 5.2s] [116/120] platform/test-support/src/test/kotlin/eu/corentic/springrag/testcontainers (5 methods) done (2.2s)
[ 5.2s] [117/120] platform/test-support/src/main/kotlin/eu/corentic/springrag/testcontainers (13 methods) done (2.3s)
[ 5.2s] [118/120] modules/security/src/main/kotlin/eu/corentic/springrag/security/config (5 methods) done (2.3s)
[ 5.5s] [119/120] modules/ingestion/src/main/kotlin/eu/corentic/springrag/service/job (62 methods) done (2.6s)
[ 5.5s] [120/120] modules/ingestion/src/test/kotlin/eu/corentic/springrag/service/job (49 methods) done (2.6s)
[ 5.5s] Preprocessing 17 files across 12 workers ...
[ 5.8s] Preprocess: 89 methods from 17 .js files (0.3s)
[ 5.8s] Groups: 3 named, 1 ungrouped methods
[ 5.8s] ├ compose/patches (17 methods)
[ 5.8s] ├ testing/steps (68 methods)
[ 5.8s] ├ testing/support (3 methods)
[ 5.8s] └ (other) (1 methods)
[ 5.8s] Inferring 3 groups across 12 workers ...
[ 5.9s] [1/3] testing/support (3 methods) done (0.2s)
[ 5.9s] [2/3] compose/patches (17 methods) done (0.2s)
[ 6.0s] [3/3] testing/steps (68 methods) done (0.2s)
[ 6.0s] Preprocessing 5 files across 12 workers ...
[ 6.1s] Preprocessing 1 files across 12 workers ...
[ 6.2s] Preprocess: 44 methods from 1 .go files (0.1s)
[ 6.2s] Groups: 1 named, 0 ungrouped methods
[ 6.2s] ├ tools/setup-ui (44 methods)
[ 6.2s] Inferring 1 groups across 12 workers ...
[ 6.3s] [1/1] tools/setup-ui (44 methods) done (0.1s)

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,51 @@
[ 0.0s] Scanning /home/tobi/Desktop/dervish/external_refs/zod ...
[ 0.0s] Preprocessing 372 files across 12 workers ...
[ 4.5s] Preprocess: 6203 methods from 372 .ts files (4.5s)
[ 4.5s] Groups: 22 named, 4 ungrouped methods
[ 4.5s] ├ (1 methods)
[ 4.5s] ├ packages/bench (170 methods)
[ 4.5s] ├ packages/docs/app/llms-full.txt (3 methods)
[ 4.5s] ├ packages/docs/app/llms.txt (3 methods)
[ 4.5s] ├ packages/docs/content (16 methods)
[ 4.5s] ├ packages/docs/loaders (7 methods)
[ 4.5s] ├ packages/resolution (8 methods)
[ 4.5s] ├ packages/tsc (12 methods)
[ 4.5s] ├ packages/tsc/bench (3 methods)
[ 4.5s] ├ packages/zod/src/v3 (383 methods)
[ 4.5s] ├ packages/zod/src/v3/benchmarks (91 methods)
[ 4.5s] ├ packages/zod/src/v3/helpers (31 methods)
[ 4.5s] ├ packages/zod/src/v3/tests (985 methods)
[ 4.5s] ├ packages/zod/src/v4/classic (409 methods)
[ 4.5s] ├ packages/zod/src/v4/classic/tests (2342 methods)
[ 4.5s] ├ packages/zod/src/v4/core (704 methods)
[ 4.5s] ├ packages/zod/src/v4/core/tests (43 methods)
[ 4.5s] ├ packages/zod/src/v4/core/tests/locales (85 methods)
[ 4.5s] ├ packages/zod/src/v4/locales (214 methods)
[ 4.5s] ├ packages/zod/src/v4/mini (199 methods)
[ 4.5s] ├ packages/zod/src/v4/mini/tests (484 methods)
[ 4.5s] ├ scripts (6 methods)
[ 4.5s] └ (other) (4 methods)
[ 4.5s] Inferring 22 groups across 12 workers ...
[ 4.7s] [1/22] (1 methods) done (0.2s)
[ 4.8s] [2/22] packages/docs/content (16 methods) done (0.2s)
[ 4.8s] [3/22] packages/tsc/bench (3 methods) done (0.3s)
[ 4.8s] [4/22] packages/docs/app/llms.txt (3 methods) done (0.3s)
[ 4.9s] [5/22] packages/docs/app/llms-full.txt (3 methods) done (0.3s)
[ 5.0s] [6/22] packages/resolution (8 methods) done (0.4s)
[ 5.0s] [7/22] packages/tsc (12 methods) done (0.4s)
[ 5.1s] [8/22] packages/docs/loaders (7 methods) done (0.5s)
[ 5.1s] [9/22] packages/zod/src/v3/helpers (31 methods) done (0.6s)
[ 5.3s] [10/22] packages/zod/src/v4/core/tests (43 methods) done (0.8s)
[ 5.4s] [11/22] packages/zod/src/v3 (383 methods) done (0.8s)
[ 5.5s] [12/22] packages/zod/src/v4/mini (199 methods) done (1.0s)
[ 5.6s] [13/22] packages/zod/src/v4/classic (409 methods) done (1.0s)
[ 5.6s] [14/22] packages/zod/src/v3/benchmarks (91 methods) done (1.1s)
[ 5.7s] [15/22] scripts (6 methods) done (1.1s)
[ 6.3s] [16/22] packages/zod/src/v4/core/tests/locales (85 methods) done (1.8s)
[ 6.7s] [17/22] packages/zod/src/v4/mini/tests (484 methods) done (2.2s)
[ 6.8s] [18/22] packages/zod/src/v4/core (704 methods) done (2.3s)
[ 7.9s] [19/22] packages/bench (170 methods) done (3.3s)
[ 10.7s] [20/22] packages/zod/src/v3/tests (985 methods) done (6.1s)
[ 10.8s] [21/22] packages/zod/src/v4/locales (214 methods) done (6.3s)
[ 11.9s] [22/22] packages/zod/src/v4/classic/tests (2342 methods) done (7.3s)
[ 11.9s] Preprocessing 2 files across 12 workers ...

View file

@ -0,0 +1,48 @@
# Round 22: Noise Filtering
## Changes Made
- Added `filter_noise()` function to `bex/gbnf.py` — removes test/stdlib noise tokens from AST
- Added `grammar_noise_ratio()` function — calculates fraction of symbols that are noise
- Integrated noise filtering into `_build_json_output()` and `_build_yaml_output()`
- Noise tokens: `TEST_NOISE` (assertEquals, mockk, verify, etc.) + `STDLIB_NOISE` (listOf, mapOf, filter, etc.)
## Results
### Precision Improvement
| Codebase | Before (no filtering) | After (with filtering) | Improvement |
|----------|----------------------|------------------------|-------------|
| RAGSAK | 54.8% | 84.3% | +29.5pp |
| FastAPI | 28.7% | 94.2% | +65.5pp |
| Zod | 34.8% | 90.0% | +55.2pp |
### Grammar Count (unchanged — filtering is post-hoc)
| Codebase | Before | After |
|----------|--------|-------|
| RAGSAK | 102 | 102 |
| FastAPI | 121 | 121 |
| Zod | 10 | 10 |
| **Total** | **233** | **233** |
### Key Findings
1. **Noise filtering dramatically improved precision** — from 28-55% to 84-94%
2. **Grammar count unchanged** — filtering is post-hoc, doesn't affect recall
3. **Precision-recall tradeoff resolved** — high recall (233 grammars) + high precision (84-94%)
4. **FastAPI improved most** — from 28.7% to 94.2% (+65.5pp) because test noise was dominant
5. **Zod improved significantly** — from 34.8% to 90.0% (+55.2pp)
## How It Works
The `filter_noise()` function walks the AST and removes Symbol nodes whose text is in the noise set. This:
1. Removes test framework calls (assertEquals, mockk, verify, etc.)
2. Removes stdlib calls (listOf, mapOf, filter, etc.)
3. Preserves domain-specific tokens (API calls, domain concepts)
4. Cleans up empty alternation groups after removal
## Next Steps
1. Commit noise filtering changes
2. Build GBNF delivery mechanism
3. Test with opencode

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff