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] 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 min(1.0, 0.3 + 0.2 * n + sum(child_scores) / max(len(child_scores), 1))
return 0.0 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 .code import preprocess_by_method, extract_arg_info, _summarize_arg_info
from bex.ensemble import infer_ensemble 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.grammar import Empty
from bex.distributional import distributional_split from bex.distributional import distributional_split
from bex.decompose import decompose_with_coverage, get_decomposition_stats from bex.decompose import decompose_with_coverage, get_decomposition_stats
@ -891,8 +891,20 @@ def _build_json_output(results):
"method_count": count, "method_count": count,
} }
if result and result.get("best"): 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["algorithm"] = result["best"]["algorithm"]
entry["grammar"] = to_gbnf(result["best"]["grammar"])
entry["mdl_score"] = round(result['best']['mdl_score'], 1) entry["mdl_score"] = round(result['best']['mdl_score'], 1)
entry["imports"] = meta.get("imports", []) entry["imports"] = meta.get("imports", [])
entry["arg_patterns"] = meta.get("arg_patterns", {}) entry["arg_patterns"] = meta.get("arg_patterns", {})
@ -902,7 +914,7 @@ def _build_json_output(results):
return json.dumps(output, indent=2) 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. """Build YAML output grouped by top-level module, sorted by MDL.
Filters out (other), no-grammar groups, groups above max_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: if grammar_structure_score(best["grammar"]) < min_structure:
continue 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 # Extract top-level module from package path
parts = label.replace(os.sep, "/").split("/") parts = label.replace(os.sep, "/").split("/")
module = parts[0] if len(parts) > 1 else "(root)" 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 = { entry = {
"package": label, "package": label,
"methods": count, "methods": count,
"grammar": to_gbnf(best["grammar"]), "grammar": to_gbnf(grammar),
"score": round(best.get("mdl_score", 0), 3), "score": round(best.get("mdl_score", 0), 3),
"algorithm": best["algorithm"], "algorithm": best["algorithm"],
"mdl": round(best["mdl_score"], 1), "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