Non-autoregressive System 1 decision engine. Typed choice, score and yes/no decisions over any text in a single forward pass, in 100+ languages, with a router that picks the right checkpoint per request.
This report summarizes scanner evidence for NandhaKishorM/laya, a Python project with 32,341 GitHub stars. SynthScan examined 376,213 lines of code across 1004 source files, recording 2104 pattern matches distributed across 19 syntactic categories. The legacy adjusted pattern signal is 8.8 (Moderate pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 1342 finding(s).
Are imports declared and package/API names verified? 349 finding(s).
Are wrappers, guards, and repeated structures necessary? 1370 finding(s).
Which changes need focused human review? 2104 finding(s).
Run additional scans to build a history of the legacy pattern signal. Score changes are not a measure of AI adoption or code quality.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 2104 distinct pattern matches across 19 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | research/evals/test_act_head_eval.py | 76 | # One class absent: ROC-AUC is undefined, and must not be faked as 0.5 or 0.0. | COMMENT |
| HIGH | laya/serve.py | 841 | # `{"<i>": null}`, which a Jev client's schema refuses to parse (#302). Reject it as a | COMMENT |
| HIGH | laya/agent.py | 1031 | "question %r: choice label %d is null; a label is rendered as option text " | CODE |
| HIGH | laya/agent.py | 1068 | raise ValueError("question %r: score level %d is null; give every level a description, " | CODE |
| HIGH | laya/mcp/server.py | 115 | "flagged 'low_confidence' (and, on laya_decide, its value comes back null), so a caller that " | CODE |
| HIGH | tests/test_packaging.py | 693 | check_true("nix/%s is opt-in (nullOr, default null)" % opt, | CODE |
| HIGH | tests/test_packaging.py | 694 | _t.count("nullOr") == 1 and re.search(r"^\s*default = null;", _t, re.M) is not None, | CODE |
| HIGH | tests/test_packaging.py | 799 | _PER_COMMIT = "github.event_name == 'pull_request' && github.ref || github.sha" | CODE |
| HIGH⚡ | tests/test_serve.py | 2572 | """`{"hooks": null}` means "no per-call hooks", which is what core reads as inherit. | STRING |
| HIGH | tests/test_serve.py | 1250 | """A null score level would come back as `legend: {"<i>": null}`, which Jev clients refuse to | STRING |
| HIGH | tests/test_serve.py | 2743 | """``{"lang_guess": null}`` means "no hint" -- same shape the single endpoint honours. | STRING |
| HIGH⚡ | examples/server.py | 952 | var r = document.documentElement, t = null; | CODE |
| HIGH⚡ | examples/server.py | 954 | var pick = function (k) { return k && Object.prototype.hasOwnProperty.call(names, k) ? names[k] : null; }; | CODE |
| HIGH⚡ | examples/server.py | 954 | var pick = function (k) { return k && Object.prototype.hasOwnProperty.call(names, k) ? names[k] : null; }; | CODE |
| HIGH⚡ | examples/server.py | 958 | if (q || t) r.dataset.theme = q || t; /* runs in <head>, before first paint */ | CODE |
| HIGH⚡ | examples/server.py | 993 | while (box && box !== document.body && getComputedStyle(box).overflow === "visible") box = box.parentElement; | CODE |
| HIGH⚡ | examples/server.py | 994 | const r = w.getBoundingClientRect(), g = box && box !== document.body ? box.getBoundingClientRect() : null; | CODE |
| HIGH⚡ | examples/server.py | 994 | const r = w.getBoundingClientRect(), g = box && box !== document.body ? box.getBoundingClientRect() : null; | CODE |
| HIGH⚡ | examples/server.py | 1710 | const $ = (sel, root) => (root || document).querySelector(sel); | CODE |
| HIGH⚡ | examples/server.py | 1716 | if (v == null || v === false) continue; | CODE |
| HIGH⚡ | examples/server.py | 1723 | for (const c of kids.flat(Infinity)) if (c != null && c !== false) el.append(c); | CODE |
| HIGH⚡ | examples/server.py | 1739 | try { const v = localStorage.getItem(k); return v == null ? null : JSON.parse(v); } catch (e) { return null; } | CODE |
| HIGH⚡ | examples/server.py | 1744 | const isMap = (x) => !!x && typeof x === "object" && !Array.isArray(x); | CODE |
| HIGH⚡ | examples/server.py | 1751 | const plainEnter = (e) => e.key === "Enter" && !e.isComposing && e.keyCode !== 229 && !e.shiftKey && !e.ctrlKey | CODE |
| HIGH⚡ | examples/server.py | 1856 | if (!node || node.t !== "obj") return null; | CODE |
| HIGH⚡ | examples/server.py | 1856 | if (!node || node.t !== "obj") return null; | CODE |
| HIGH⚡ | examples/server.py | 1858 | return null; | CODE |
| HIGH⚡ | examples/server.py | 1862 | ind = ind || 0; | CODE |
| HIGH⚡ | examples/server.py | 1870 | const pretty = (v) => JSON.stringify(v, null, 2); | CODE |
| HIGH⚡ | examples/server.py | 1894 | const errAt = marks && marks.errAt != null ? marks.errAt : -1; | CODE |
| HIGH⚡ | examples/server.py | 1895 | const warn = (marks && marks.warn) || new Set(); | CODE |
| HIGH⚡ | examples/server.py | 1899 | const end = off + line.length, errHere = errAt >= off && errAt <= end; | CODE |
| HIGH⚡ | examples/server.py | 1905 | if (errHere && errAt >= at && errAt < at + t.length) { | CODE |
| HIGH⚡ | examples/server.py | 1912 | if (errHere && errAt === end) div.append(span("", "eol")); | CODE |
| HIGH⚡ | examples/server.py | 1990 | const pane = sc && getComputedStyle(sc).overflowY !== "visible" ? sc : null; | CODE |
| HIGH⚡ | examples/server.py | 1990 | const pane = sc && getComputedStyle(sc).overflowY !== "visible" ? sc : null; | CODE |
| HIGH⚡ | examples/server.py | 1998 | if (dir > 0) while (li < rows.length - 1 && off(li + 1) <= off(li)) li++; | CODE |
| HIGH⚡ | examples/server.py | 1999 | else while (li > 0 && off(li - 1) <= off(li)) li--; | CODE |
| HIGH⚡ | examples/server.py | 2005 | (pane || window).scrollBy(0, dy); | CODE |
| HIGH⚡ | examples/server.py | 2037 | else if (e.altKey && e.shiftKey && e.code === "KeyF") { e.preventDefault(); ed.format(); } | CODE |
| HIGH⚡ | examples/server.py | 2043 | if (!out && s === e) { insertText(ta, " "); return; } | CODE |
| HIGH⚡ | examples/server.py | 2045 | let le = v.indexOf("\n", e > s && v[e - 1] === "\n" ? e - 1 : e); | CODE |
| HIGH⚡ | examples/server.py | 2077 | const MOD = /Mac|iPhone|iPad/.test(navigator.platform || navigator.userAgent) ? "\u2318" : "Ctrl"; | CODE |
| HIGH⚡ | examples/server.py | 2080 | const SOURCES = Object.create(null); /* no inherited keys, so ?preset=constructor is just unknown */ | CODE |
| HIGH⚡ | examples/server.py | 2086 | stateMode: "fields", qMode: "form", fields: [], qs: [], base: null, last: null, running: false, | CODE |
| HIGH⚡ | examples/server.py | 2087 | problems: [], body: null, qValue: null, view: "answers", notes: {state: null, questions: null}, | CODE |
| HIGH⚡ | examples/server.py | 2146 | if (!t || t.v.t !== "str" || !FORM_TYPES.includes(t.v.v)) | CODE |
| HIGH⚡ | examples/server.py | 2148 | if (ins && ins.v.t !== "str") return "The instructions of " + name + " are not text."; | CODE |
| HIGH⚡ | examples/server.py | 2149 | if (!c || (c.v.t === "lit" && c.v.v === null)) continue; | CODE |
| HIGH⚡ | examples/server.py | 2150 | const textOrNull = (x) => x.t === "str" || (x.t === "lit" && x.v === null); | CODE |
| HIGH⚡ | examples/server.py | 2157 | if (t.v.v === "noul" && !(tf.length && tf.every((k) => k === "true" || k === "false") && | CODE |
| HIGH⚡ | examples/server.py | 2158 | new Set(tf).size === tf.length && c.v.entries.every((o) => textOrNull(o.v)))) | CODE |
| HIGH⚡ | examples/server.py | 2166 | opts: [], levels: [], tf: null, extra: []}; | CODE |
| HIGH⚡ | examples/server.py | 2168 | obj.entries.map((o) => ({label: o.k, desc: o.v.v == null ? "" : o.v.v, wasNull: o.v.v === null})); | CODE |
| HIGH⚡ | examples/server.py | 2169 | if (c && q.type === "choice" && c.v.t === "obj") q.opts = pairs(c.v); | CODE |
| HIGH⚡ | examples/server.py | 2170 | if (c && q.type === "choice" && c.v.t === "arr") { /* a list of labels stays a list until one gets a description */ | CODE |
| HIGH⚡ | examples/server.py | 2174 | if (c && q.type === "noul" && c.v.t === "obj") q.tf = pairs(c.v); /* what true and false mean */ | CODE |
| HIGH⚡ | examples/server.py | 2175 | if (c && q.type === "score" && c.v.t === "arr") q.levels = c.v.items.map((x) => x.v); | CODE |
| HIGH⚡ | examples/server.py | 2177 | for (const e of v.entries) if (!seen.has(e.k)) { seen.add(e.k); q.extra.push([e.k, toValue(lastEntry(v, e.k).v)]); } | CODE |
| HIGH⚡ | examples/server.py | 2185 | const asList = q.optList && opts.every((x) => x.desc === ""); | CODE |
| 165 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | research/benchmarks/feishu_zh/tests/test_audit.py | 13 | def test_archived_source_bytes(self): | CODE |
| LOW | research/benchmarks/feishu_zh/tests/test_audit.py | 35 | def test_reject_corrupted_records(self): | CODE |
| LOW | research/benchmarks/feishu_zh/tests/test_audit.py | 49 | def test_failed_request_stays_in_denominator(self): | CODE |
| LOW | research/benchmarks/feishu_zh/tests/test_audit.py | 60 | def test_balanced_frozen_cases(self): | CODE |
| LOW | research/benchmarks/feishu_zh/tests/test_audit.py | 65 | def test_perfect_and_failed_classification(self): | CODE |
| LOW⚡ | …benchmarks/es_phone_turns/tests/test_es_phone_turns.py | 29 | def test_answering_keep_talking_by_mistake_is_not_a_wrong_action(self): | CODE |
| LOW⚡ | …benchmarks/es_phone_turns/tests/test_es_phone_turns.py | 34 | def test_acting_when_it_should_not_is_a_wrong_action(self): | CODE |
| LOW⚡ | …benchmarks/es_phone_turns/tests/test_es_phone_turns.py | 39 | def test_the_gate_only_lets_actions_through(self): | CODE |
| LOW⚡ | …benchmarks/es_phone_turns/tests/test_es_phone_turns.py | 49 | def test_borderline_cases_stay_out_of_the_headline(self): | CODE |
| LOW⚡ | …benchmarks/es_phone_turns/tests/test_es_phone_turns.py | 59 | def test_every_rung_asks_the_same_question_with_the_same_options(self): | CODE |
| LOW⚡ | …benchmarks/es_phone_turns/tests/test_es_phone_turns.py | 66 | def test_every_case_has_a_label_of_its_menu(self): | CODE |
| LOW⚡ | …benchmarks/es_phone_turns/tests/test_es_phone_turns.py | 75 | def test_no_training_destination_is_a_test_destination(self): | CODE |
| LOW⚡ | …benchmarks/es_phone_turns/tests/test_es_phone_turns.py | 83 | def test_a_test_sentence_with_one_word_changed_is_refused(self): | CODE |
| LOW⚡ | …benchmarks/es_phone_turns/tests/test_es_phone_turns.py | 91 | def test_a_case_always_offers_its_own_answer(self): | CODE |
| LOW | …benchmarks/es_phone_turns/tests/test_es_phone_turns.py | 107 | def test_the_committed_training_set_holds_no_test_sentence(self): | CODE |
| LOW⚡ | …benchmarks/es_phone_turns/tests/test_es_phone_turns.py | 144 | def test_the_untouched_archive_passes(self): | CODE |
| LOW⚡ | …benchmarks/es_phone_turns/tests/test_es_phone_turns.py | 147 | def test_a_better_accuracy_than_the_records_give_is_caught(self): | CODE |
| LOW⚡ | …benchmarks/es_phone_turns/tests/test_es_phone_turns.py | 152 | def test_a_flipped_decision_is_caught(self): | CODE |
| LOW⚡ | …benchmarks/es_phone_turns/tests/test_es_phone_turns.py | 158 | def test_a_rewritten_gold_is_caught(self): | CODE |
| LOW⚡ | …benchmarks/es_phone_turns/tests/test_es_phone_turns.py | 166 | def test_a_dropped_case_is_caught(self): | CODE |
| LOW⚡ | …benchmarks/es_phone_turns/tests/test_es_phone_turns.py | 171 | def test_a_hidden_wrong_action_is_caught(self): | CODE |
| LOW⚡ | …h/benchmarks/zh_short_commands/tests/test_benchmark.py | 46 | def test_cases_parse_and_are_unique(self): | CODE |
| LOW⚡ | …h/benchmarks/zh_short_commands/tests/test_benchmark.py | 51 | def test_every_case_has_a_known_gold_label(self): | CODE |
| LOW⚡ | …h/benchmarks/zh_short_commands/tests/test_benchmark.py | 57 | def test_every_label_is_covered(self): | CODE |
| LOW⚡ | …h/benchmarks/zh_short_commands/tests/test_benchmark.py | 63 | def test_choice_options_are_the_label_policy(self): | CODE |
| LOW⚡ | …h/benchmarks/zh_short_commands/tests/test_benchmark.py | 66 | def test_four_noul_dimensions(self): | CODE |
| LOW⚡ | …h/benchmarks/zh_short_commands/tests/test_benchmark.py | 71 | def test_noul_criteria_use_the_two_documented_keys(self): | CODE |
| LOW⚡ | …h/benchmarks/zh_short_commands/tests/test_benchmark.py | 140 | def test_json_state_is_the_only_wrapped_state(self): | CODE |
| LOW⚡ | …h/benchmarks/zh_short_commands/tests/test_benchmark.py | 149 | def test_noul_rungs_ask_the_four_dimensions_in_order(self): | CODE |
| LOW⚡ | …h/benchmarks/zh_short_commands/tests/test_benchmark.py | 156 | def test_choice_rungs_ask_one_six_option_question(self): | CODE |
| LOW⚡ | …h/benchmarks/zh_short_commands/tests/test_benchmark.py | 164 | def test_unknown_config_is_rejected(self): | CODE |
| LOW⚡ | …h/benchmarks/zh_short_commands/tests/test_benchmark.py | 236 | def test_accuracy_re_derives_from_the_cases(self): | CODE |
| LOW⚡ | …h/benchmarks/zh_short_commands/tests/test_benchmark.py | 244 | def test_noul_accuracy_re_derives_per_dimension(self): | CODE |
| LOW⚡ | …h/benchmarks/zh_short_commands/tests/test_benchmark.py | 253 | def test_hashes_of_the_frozen_inputs_are_recorded(self): | CODE |
| LOW⚡ | …h/benchmarks/zh_short_commands/tests/test_benchmark.py | 259 | def test_stub_run_records_no_checkpoint(self): | CODE |
| LOW | …h/benchmarks/zh_short_commands/tests/test_benchmark.py | 96 | def test_only_the_none_label_is_not_a_command(self): | CODE |
| LOW | …h/benchmarks/zh_short_commands/tests/test_benchmark.py | 107 | def test_every_config_builds_one_pair_per_text(self): | CODE |
| LOW | …h/benchmarks/zh_short_commands/tests/test_benchmark.py | 119 | def test_noul_plain_omits_criteria_and_the_higher_rungs_add_them(self): | CODE |
| LOW | …h/benchmarks/zh_short_commands/tests/test_benchmark.py | 127 | def test_scenario_rungs_prepend_the_scenario(self): | CODE |
| LOW | …h/benchmarks/zh_short_commands/tests/test_benchmark.py | 204 | def test_every_case_is_recorded_once_per_role(self): | CODE |
| LOW | …h/benchmarks/zh_short_commands/tests/test_benchmark.py | 208 | def test_probabilities_are_finite_and_normalised(self): | CODE |
| LOW | …h/benchmarks/zh_short_commands/tests/test_benchmark.py | 220 | def test_every_record_carries_the_request_it_was_asked(self): | CODE |
| LOW⚡ | …earch/benchmarks/zh_short_commands/tests/test_audit.py | 36 | def test_manifest_hashes_pin_the_current_files(self): | CODE |
| LOW⚡ | …earch/benchmarks/zh_short_commands/tests/test_audit.py | 43 | def test_manifest_counts_match_the_cases(self): | CODE |
| LOW⚡ | …earch/benchmarks/zh_short_commands/tests/test_audit.py | 52 | def test_manifest_freezes_the_ladder_this_file_builds(self): | CODE |
| LOW⚡ | …earch/benchmarks/zh_short_commands/tests/test_audit.py | 58 | def test_archive_audits_clean(self): | CODE |
| LOW⚡ | …earch/benchmarks/zh_short_commands/tests/test_audit.py | 64 | def test_archive_pins_the_weights(self): | CODE |
| LOW⚡ | …earch/benchmarks/zh_short_commands/tests/test_audit.py | 70 | def test_stub_archive_has_no_weight_to_pin(self): | CODE |
| LOW⚡ | …earch/benchmarks/zh_short_commands/tests/test_audit.py | 136 | def test_probability_out_of_range(self): | CODE |
| LOW⚡ | …earch/benchmarks/zh_short_commands/tests/test_audit.py | 141 | def test_prediction_that_does_not_follow_from_the_probability(self): | CODE |
| LOW⚡ | …earch/benchmarks/zh_short_commands/tests/test_audit.py | 147 | def test_noul_confidence_that_is_not_the_maximum(self): | CODE |
| LOW⚡ | …earch/benchmarks/zh_short_commands/tests/test_audit.py | 152 | def test_protocol_from_a_different_prompt_revision(self): | CODE |
| LOW⚡ | …earch/benchmarks/zh_short_commands/tests/test_audit.py | 172 | def test_relabelled_dimension(self): | CODE |
| LOW⚡ | …earch/benchmarks/zh_short_commands/tests/test_audit.py | 177 | def test_summary_that_disagrees_with_its_report(self): | CODE |
| LOW⚡ | …earch/benchmarks/zh_short_commands/tests/test_audit.py | 182 | def test_unexplained_report_field(self): | CODE |
| LOW⚡ | …earch/benchmarks/zh_short_commands/tests/test_audit.py | 187 | def test_a_ladder_other_than_the_frozen_one(self): | CODE |
| LOW⚡ | …earch/benchmarks/zh_short_commands/tests/test_audit.py | 192 | def test_missing_weights_for_a_real_run(self): | CODE |
| LOW⚡ | …earch/benchmarks/zh_short_commands/tests/test_audit.py | 232 | def test_a_confidence_of_exactly_one_lands_in_the_last_bin(self): | CODE |
| LOW⚡ | …earch/benchmarks/zh_short_commands/tests/test_audit.py | 236 | def test_a_confidence_of_exactly_zero_is_counted(self): | CODE |
| LOW⚡ | …earch/benchmarks/zh_short_commands/tests/test_audit.py | 240 | def test_summarise_rounding_matches(self): | CODE |
| 862 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/test_predict_long.py | 1183 | # --------------------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | laya-dotnet/tools/bench_python.py | 184 | # ── cold latency ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | laya-dotnet/tools/bench_python.py | 196 | # ── warm latency ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | laya-dotnet/tools/bench_python.py | 223 | # ── peak memory ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | laya-dotnet/tools/bench_python.py | 232 | # ── answer snapshot ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | laya-dotnet/tools/export_onnx.py | 652 | # ─── ONNX graph signature check ───────────────────────────────────────────── | COMMENT |
| MEDIUM | laya-dotnet/tools/export_onnx.py | 63 | # ─── model catalogue ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | laya-dotnet/tools/export_onnx.py | 169 | # ─── fixture cases ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | laya-dotnet/tools/export_onnx.py | 308 | # ─── ONNX export ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | laya-dotnet/tools/export_onnx.py | 435 | # ─── tokenizer copy ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | laya-dotnet/tools/export_onnx.py | 461 | # ─── ONNX parity verification ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | laya-dotnet/tools/export_onnx.py | 723 | # ─── main per-model export ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | laya-dotnet/tools/export_onnx.py | 823 | # ─── graph signature check against reference ──────────────────────────────── | COMMENT |
| MEDIUM | laya-dotnet/tools/export_onnx.py | 839 | # ─── CLI ──────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | laya-dotnet/tests/Laya.Tests/LayaEmailTests.cs | 39 | // ── a pure footer is still removed ─────────────────────────────────────── | COMMENT |
| MEDIUM | laya-dotnet/tests/Laya.Tests/LayaEmailTests.cs | 56 | // ── unrelated cleaning is unchanged ────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | laya-dotnet/tests/Laya.Tests/LayaEmailTests.cs | 96 | // ── email_state ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | laya-dotnet/tests/Laya.Tests/LayaEmailTests.cs | 128 | // ── every recorded probe entry ──────────────────────────────────────────── | COMMENT |
| MEDIUM | laya-dotnet/tests/Laya.Tests/PredictParityTests.cs | 23 | // ── cross-checkpoint theory data ────────────────────────────────────────── | COMMENT |
| MEDIUM | laya-dotnet/tests/Laya.Tests/PredictParityTests.cs | 60 | // ── theory tests ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | laya-dotnet/tests/Laya.Tests/PredictParityTests.cs | 196 | // ── fact tests (multilingual checkpoint) ───────────────────────────────── | COMMENT |
| MEDIUM | laya-dotnet/tests/Laya.Tests/PredictParityTests.cs | 237 | // ── helpers ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | laya-dotnet/tests/Laya.Tests/LanguageDetectionTests.cs | 12 | // ── script detection ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | laya-dotnet/tests/Laya.Tests/LanguageDetectionTests.cs | 47 | // ── is_english / analyse ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | laya-dotnet/tests/Laya.Tests/LanguageDetectionTests.cs | 105 | // ── Latin language guess ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | laya-dotnet/tests/Laya.Tests/LanguageDetectionTests.cs | 122 | // ── state flattening ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | laya-dotnet/tests/Laya.Tests/LanguageDetectionTests.cs | 140 | // ── script profile ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | laya-dotnet/tests/Laya.Tests/LanguageDetectionTests.cs | 151 | // ── plain-ASCII Romance (#172): accents stripped must still route non-English ────────────── | COMMENT |
| MEDIUM | laya-dotnet/tests/Laya.Tests/LanguageDetectionTests.cs | 151 | // ── plain-ASCII Romance (#172): accents stripped must still route non-English ────────────── | COMMENT |
| MEDIUM | laya-dotnet/tests/Laya.Tests/LanguageDetectionTests.cs | 198 | // ── every recorded probe entry ─────────────────────────────────────────── | COMMENT |
| MEDIUM | laya-dotnet/tests/Laya.Tests/ShapeSweepTests.cs | 76 | // ── multilingual-only shape tests ───────────────────────────────────────── | COMMENT |
| MEDIUM | laya-dotnet/tests/Laya.Tests/ShapeSweepTests.cs | 150 | // ── all-checkpoint shape test ───────────────────────────────────────────── | COMMENT |
| MEDIUM | laya-dotnet/tests/Laya.Tests/ShapeSweepTests.cs | 168 | // ── split-layout shape test ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | laya-dotnet/tests/Laya.Tests/ShapeSweepTests.cs | 228 | // ── helpers ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | laya-dotnet/tests/Laya.Tests/PythonJsonTests.cs | 69 | // ── State(null) ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | laya-dotnet/tests/Laya.Tests/PythonJsonTests.cs | 79 | // ── Repr-specific unit tests ────────────────────────────────────────── | COMMENT |
| MEDIUM | laya-dotnet/tests/Laya.Tests/PythonJsonTests.cs | 108 | // ── Escaping unit tests ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | laya-dotnet/tests/Laya.Tests/PresetsTests.cs | 5 | // ── Triage ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | laya-dotnet/tests/Laya.Tests/PresetsTests.cs | 69 | // ── Email ───────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | laya-dotnet/tests/Laya.Tests/PresetsTests.cs | 164 | // ── Guard ───────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | laya-dotnet/tests/Laya.Tests/PresetsTests.cs | 231 | // ── Moderation ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | laya-dotnet/tests/Laya.Tests/PresetsTests.cs | 285 | // ── Router ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | laya-dotnet/tests/Laya.Tests/GoldenData.cs | 44 | // ── availability ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | laya-dotnet/tests/Laya.Tests/GoldenData.cs | 62 | // ── data ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | laya-dotnet/tests/Laya.Tests/GoldenData.cs | 91 | // ── helpers ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | laya-dotnet/tests/Laya.Tests/GoldenData.cs | 137 | // ── backward-compat shims pointing at the multilingual checkpoint ───────── | COMMENT |
| MEDIUM | laya-dotnet/tests/Laya.Tests/GoldenData.cs | 168 | // ── pure utilities (checkpoint-independent) ──────────────────────────────── | COMMENT |
| MEDIUM | laya-dotnet/tests/Laya.Tests/LayaRouterTests.cs | 32 | // ── workflow signatures ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | laya-dotnet/tests/Laya.Tests/LayaRouterTests.cs | 73 | // ── name normalisation ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | laya-dotnet/tests/Laya.Tests/LayaRouterTests.cs | 91 | // ── routing decisions ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | laya-dotnet/tests/Laya.Tests/LayaRouterTests.cs | 190 | // ── LRU bookkeeping ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | laya-dotnet/tests/Laya.Tests/LayaRouterTests.cs | 234 | // ── preload ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | laya-dotnet/tests/Laya.Tests/LayaRouterTests.cs | 268 | // ── attach ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | laya-dotnet/tests/Laya.Tests/LayaRouterTests.cs | 359 | // ── thread safety (Python issue #95) ───────────────────────────────────── | COMMENT |
| MEDIUM | laya-dotnet/tests/Laya.Tests/LayaRouterTests.cs | 359 | // ── thread safety (Python issue #95) ───────────────────────────────────── | COMMENT |
| MEDIUM | laya-dotnet/tests/Laya.Tests/LayaRouterTests.cs | 391 | // ── Predict populates Routing ───────────────────────────────────────────── | COMMENT |
| MEDIUM | laya-dotnet/tests/Laya.Tests/LayaRouterTests.cs | 411 | // ── every recorded probe entry ──────────────────────────────────────────── | COMMENT |
| MEDIUM | laya-dotnet/tests/Laya.Tests/TestArtifacts.cs | 57 | // ── split layout (laya-ts exporter output) ───────────────────────────────── | COMMENT |
| MEDIUM | laya-dotnet/tests/Laya.Tests/TestArtifacts.cs | 83 | // ── resolution ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | laya-dotnet/tests/Laya.Tests/TestArtifacts.cs | 180 | // ── backward-compat shims pointing at the multilingual checkpoint ───────── | COMMENT |
| 61 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | research/evals/shouted_bar_corpora.py | 187 | except Exception: # offline: the same revision, already in the local cache | CODE |
| LOW | research/benchmarks/idle_unload/benchmark.py | 120 | except Exception as exc: | CODE |
| LOW | research/benchmarks/feishu_zh/run.py | 126 | except Exception as e: | CODE |
| LOW | research/benchmarks/feishu_zh/run.py | 141 | except Exception as e: | CODE |
| LOW | research/benchmarks/zh_short_commands/run.py | 180 | except Exception: # pragma: no cover - provenance only | CODE |
| LOW | research/benchmarks/zh_short_commands/run.py | 200 | except Exception as exc: # pragma: no cover - provenance only | CODE |
| LOW | research/scripts/build_benchmark_nb.py | 136 | except Exception as e: | CODE |
| LOW | research/scripts/build_benchmark_nb.py | 176 | except Exception: | CODE |
| LOW | research/scripts/build_benchmark_nb.py | 336 | except Exception: | CODE |
| LOW | research/scripts/build_benchmark_nb.py | 359 | except Exception as e: | CODE |
| LOW | research/scripts/build_benchmark_nb.py | 384 | except Exception as e: | CODE |
| LOW | research/scripts/build_benchmark_nb.py | 401 | except Exception as e: | CODE |
| LOW | research/scripts/build_benchmark_nb.py | 425 | except Exception as e: print(" FAIL sst5:", str(e)[:90]) | CODE |
| LOW | research/scripts/build_benchmark_nb.py | 439 | except Exception as e: print(" FAIL emotion:", str(e)[:90]) | CODE |
| LOW | research/scripts/build_benchmark_nb.py | 451 | except Exception as e: print(" FAIL prompt_injections:", str(e)[:90]) | CODE |
| LOW | research/scripts/build_benchmark_nb.py | 465 | except Exception as e: print(" FAIL banking77:", str(e)[:90]) | CODE |
| LOW | research/scripts/build_benchmark_nb.py | 479 | except Exception as e: print(" FAIL ag_news:", str(e)[:90]) | CODE |
| LOW | research/scripts/build_benchmark_nb.py | 490 | except Exception as e: print(" FAIL boolq:", str(e)[:90]) | CODE |
| LOW | research/scripts/build_benchmark_nb.py | 566 | except Exception as e: | CODE |
| LOW | research/scripts/build_benchmark_nb.py | 817 | except Exception as e: | CODE |
| LOW | research/scripts/bench_local.py | 67 | except Exception: | CODE |
| LOW | research/scripts/bench_local.py | 184 | except Exception as e: | CODE |
| LOW | research/scripts/bench_local.py | 235 | except Exception: | CODE |
| LOW | research/scripts/bench_local.py | 327 | except Exception: | CODE |
| LOW | research/scripts/bench_nvidia_capacity.py | 179 | except Exception as e: | CODE |
| LOW | research/scripts/bench_nvidia_capacity.py | 216 | except Exception: | CODE |
| LOW | research/scripts/bench_nvidia_capacity.py | 274 | except Exception: | CODE |
| LOW | research/scripts/bench_apps.py | 95 | except Exception as e: | CODE |
| LOW | research/scripts/bench_apps.py | 111 | except Exception as e: | CODE |
| LOW | research/scripts/bench_apps.py | 127 | except Exception as e: | CODE |
| LOW | research/scripts/bench_apps.py | 156 | except Exception as e: | CODE |
| LOW | research/scripts/bench_apps.py | 169 | except Exception as e: | CODE |
| LOW | research/scripts/bench_apps.py | 186 | except Exception as e: | CODE |
| LOW | research/scripts/bench_apps.py | 218 | except Exception as e: | CODE |
| LOW | research/scripts/bench_apps.py | 240 | except Exception as e: | CODE |
| LOW | research/scripts/bench_apps.py | 269 | except Exception as e: | CODE |
| LOW | research/scripts/bench_apps.py | 298 | except Exception as e: | CODE |
| LOW | research/scripts/step4_benchmark/kaggle/step4_gate_r.py | 54 | except Exception: | CODE |
| LOW | research/scripts/step4_benchmark/kaggle/step4_gate_r.py | 120 | except Exception as _e: # noqa: BLE001 - a missing optional row must not kill the run | CODE |
| LOW | research/scripts/step4_benchmark/kaggle/build_gate_d.py | 79 | except Exception: | CODE |
| LOW | research/scripts/step4_benchmark/kaggle/build_kernel.py | 78 | except Exception: | STRING |
| LOW | research/scripts/step4_benchmark/kaggle/build_kernel.py | 144 | except Exception as _e: # noqa: BLE001 - a missing optional row must not kill the run | STRING |
| LOW | …/scripts/step4_benchmark/kaggle/gate_d/step4_gate_d.py | 57 | except Exception: | CODE |
| LOW | research/eval/metamorphic.py | 464 | except Exception as exc: | CODE |
| LOW | research/eval/metamorphic.py | 689 | except Exception as exc: | CODE |
| LOW | research/eval/laya_eval.py | 105 | except Exception as exc: # pragma: no cover - network path | CODE |
| LOW | research/eval/laya_eval.py | 317 | except Exception as exc: | CODE |
| LOW | research/eval/laya_eval.py | 357 | except Exception as exc: | CODE |
| LOW | laya/train_cli.py | 233 | except Exception as err: | CODE |
| LOW | laya/hooks.py | 540 | except Exception as exc: # noqa: BLE001 -- policy depends on raise_errors | CODE |
| MEDIUM | laya/hooks.py | 496 | def runner(): | CODE |
| LOW | laya/evals.py | 263 | except Exception: # pragma: no cover - identity only | CODE |
| LOW | laya/evals.py | 1089 | except Exception as exc: # noqa: BLE001 -- honoured by on_error | CODE |
| MEDIUM | laya/serve.py | 1073 | def _run_inference(fn): | CODE |
| LOW | laya/serve.py | 1098 | except Exception: # noqa: BLE001 -- a failed unload must not stop future attempts | CODE |
| LOW | laya/serve.py | 1305 | except Exception: # noqa: BLE001 -- never leak paths/weights/OOM text to clients | CODE |
| LOW | laya/serve.py | 1446 | except Exception: # noqa: BLE001 | CODE |
| LOW | laya/agent.py | 107 | except Exception as e: | CODE |
| LOW | laya/agent.py | 416 | except Exception: | CODE |
| LOW | laya/agent.py | 691 | except Exception: | CODE |
| 175 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | research/benchmarks/zh_short_commands/run.py | 180 | except Exception: # pragma: no cover - provenance only | CODE |
| HIGH | research/scripts/bench_local.py | 235 | except Exception: | CODE |
| HIGH | research/scripts/bench_local.py | 327 | except Exception: | CODE |
| HIGH | laya/serve.py | 967 | except ValueError: | CODE |
| HIGH | laya/serve.py | 1120 | except asyncio.CancelledError: | CODE |
| HIGH | laya/serve.py | 1467 | except OSError: | CODE |
| HIGH | laya/agent.py | 691 | except Exception: | CODE |
| HIGH | laya/agent.py | 1944 | except Exception: | CODE |
| HIGH | laya/agent.py | 734 | except (TypeError, ValueError): | CODE |
| HIGH | laya/agent.py | 2029 | except FileNotFoundError: | CODE |
| HIGH | laya/agent.py | 98 | except OSError: | CODE |
| HIGH | laya/agent.py | 2037 | except OSError: | CODE |
| HIGH | laya/agent.py | 104 | except OSError: | CODE |
| HIGH | laya/calibrate.py | 572 | except (TypeError, ValueError): | CODE |
| HIGH | laya/router.py | 1031 | except Exception: | CODE |
| HIGH | laya/router.py | 1111 | except Exception: | CODE |
| HIGH | laya/router.py | 1142 | except Exception: | CODE |
| HIGH | laya/onnx_agent.py | 210 | except (TypeError, ValueError): | CODE |
| HIGH | laya/backends/compile.py | 55 | except Exception: | CODE |
| HIGH | laya/mcp/device.py | 121 | except Exception: | CODE |
| HIGH | laya/mcp/device.py | 139 | except Exception: | CODE |
| HIGH | laya/mcp/tools.py | 662 | except (AttributeError, TypeError): | CODE |
| HIGH | laya/mcp/tools.py | 911 | except Exception: | CODE |
| HIGH | laya/integrations/crewai.py | 398 | except Exception: | CODE |
| HIGH | laya/integrations/crewai.py | 420 | except Exception: | CODE |
| HIGH | docker/check_torch.py | 64 | except PackageNotFoundError: | CODE |
| HIGH | tests/test_state_budget.py | 806 | except _Skip: | CODE |
| HIGH | tests/test_mcp_local_e2e.py | 88 | except Exception: | CODE |
| HIGH | tests/test_router.py | 1795 | except TypeError: | CODE |
| HIGH | tests/test_router.py | 1871 | except Exception: # noqa: BLE001 | CODE |
| HIGH | tests/test_router.py | 1853 | except ValueError: # unregistered at that instant | CODE |
| HIGH | tests/test_calibrate.py | 352 | except OSError: | CODE |
| HIGH | tests/test_compile.py | 140 | except RuntimeError: | CODE |
| HIGH | tests/test_compile.py | 367 | except RuntimeError: | CODE |
| HIGH | tests/test_agent_gate.py | 193 | except RuntimeError: | CODE |
| HIGH | tests/test_agent_gate.py | 201 | except RuntimeError: | CODE |
| HIGH | tests/test_cli.py | 133 | except SystemExit: | CODE |
| HIGH | laya-dotnet/tools/export_onnx.py | 631 | except Exception: | CODE |
| HIGH | laya-dotnet/tools/export_onnx.py | 780 | except Exception: | CODE |
| HIGH | laya-dotnet/tools/export_onnx.py | 790 | except Exception: | CODE |
| HIGH | laya-dotnet/tools/export_onnx.py | 368 | except (AttributeError, io.UnsupportedOperation): | CODE |
| HIGH | laya-dotnet/tools/export_onnx.py | 642 | except Exception: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | compose.http.yaml | 1 | # Serve Laya over HTTP from the same image, so a Jev client can point its `baseUrl` at it: | COMMENT |
| LOW | compose.http.yaml | 61 | # third checkpoint routing can choose on demand, and a cap below it reloads one per switch. | COMMENT |
| LOW | compose.modelscope.yaml | 1 | # Bake the checkpoint from ModelScope (https://modelscope.cn) into the image, so neither the build | COMMENT |
| LOW | compose.modelscope.yaml | 21 | # For NVIDIA, append -f compose.cuda.yaml; it repeats the build args and the device reservation for | COMMENT |
| LOW | compose.example.yml | 21 | # Optional token: enable this setting and its read-only mount below. | COMMENT |
| LOW | laya/lang.py | 201 | if sum(w in words for words in _STOP.values()) > 1} | COMMENT |
| LOW | laya/lang.py | 221 | # ... van" is ordinary Dutch, and deduping it moved 14 of those rows while rescuing no English one. | COMMENT |
| LOW | laya/lang.py | 501 | return latin_profile(text)["language"] | COMMENT |
| LOW | laya/lang.py | 521 | # ...but a line of nothing but acronyms has no lowercase either, so it skips the blanking above | COMMENT |
| LOW | laya/lang.py | 541 | # word >= 5 only 10,854 99.03% 431 141 <- addresses stand | COMMENT |
| LOW | laya/lang.py | 561 | _SHOUTED_MIN_STOPWORD = 4 | COMMENT |
| LOW | laya/lang.py | 681 | "is_english": True, "language_undecided": True, "diacritic_rate": 0.0, | COMMENT |
| LOW | laya/lang.py | 701 | # letters and was being sent to the English checkpoint on the strength of disbelieving `MON | COMMENT |
| LOW | laya/lang.py | 721 | # that carry the sentence, so when the shouted words were the ones that named the | COMMENT |
| LOW | laya/lang.py | 761 | for line in leaf.split("\n"): | COMMENT |
| LOW | laya/lang.py | 781 | # non-English letters and that no stopword list can name. `WIE SPÄT IST ES IN KÖLN` | COMMENT |
| LOW | laya/__init__.py | 1 | """Laya: Fast, non-autoregressive System 1 decision engine with calibrated probabilities.""" | COMMENT |
| LOW | laya/evals.py | 261 | try: | COMMENT |
| LOW | laya/serve.py | 81 | # A failed inference is reported to the client as a fixed 500 so nothing about paths, | COMMENT |
| LOW | laya/serve.py | 101 | # What a row COSTS is its width, and `max_len` is a request field capped only by | COMMENT |
| LOW | laya/serve.py | 121 | # checkpoint's own `max_len` without loading it, so this is the shipped english value; multilingual | COMMENT |
| LOW | laya/serve.py | 141 | # open; the rest of the payload names checkpoints, revision SHAs and host device state, so it | COMMENT |
| LOW | laya/serve.py | 781 | if over: | COMMENT |
| LOW | laya/serve.py | 1041 | router = build_router() | COMMENT |
| LOW | laya/serve.py | 1341 | # body rather than one state because that is what the batch carries: `predict_batch` | COMMENT |
| LOW | laya/email.py | 21 | # "Em resposta ao que você escreveu:" is body text; a client's attribution always carries a date | COMMENT |
| LOW | laya/email.py | 41 | ] | COMMENT |
| LOW | laya/agent.py | 741 | "laya: this checkpoint ships invalid temperatures or values outside [%g, %g]; " | COMMENT |
| LOW | laya/agent.py | 1021 | # over: a label is option text AND the answer key, and a null one can be | COMMENT |
| LOW | laya/agent.py | 1721 | internal = {qid: self._to_internal(questions[qid]) for qid in ids} | COMMENT |
| LOW | laya/agent.py | 1741 | # "Fits" is the room the questions leave, not the default window: `system_one` reads a | COMMENT |
| LOW | laya/agent.py | 1841 | # deciding span; the single most-confident window preserves a localized signal. | COMMENT |
| LOW | laya/router.py | 341 | if _takes_lang(scan): | COMMENT |
| LOW | laya/router.py | 361 | "laya: Router.predict_long: %s.predict_long has no `lang` parameter, so the %s " | COMMENT |
| LOW | laya/router.py | 761 | # the `_loading` registry, and lifecycle bookkeeping. Never held during expensive | COMMENT |
| LOW | laya/onnx_agent.py | 461 | if not isinstance(questions, dict): | COMMENT |
| LOW | laya/onnx_agent.py | 581 | # choice / score: the most-confident window wins, preserving a localized signal | COMMENT |
| LOW | tests/test_compose_env.py | 221 | for name in names: | COMMENT |
| LOW | tests/test_compose_env.py | 241 | # A file may still deviate, and the test for that is *where the deviation is said*: the entry | COMMENT |
| LOW | tests/test_compose_env.py | 401 | "the omission has to be explained where a reader meets it") | COMMENT |
| LOW | tests/test_compose_env.py | 421 | COMMENT | |
| LOW | tests/test_doc_tables.py | 201 | rounded(max(v["d_fast_fp32"] for v in fp16_rows)), "0.009") | COMMENT |
| LOW | tests/test_download.py | 341 | def test_onnx_agent_accepts_every_hub_option_the_agent_does(self): | COMMENT |
| LOW | tests/test_onnx_lang_parity.py | 121 | p_de["billing"] < p_base["billing"]) | COMMENT |
| LOW | tests/test_packaging.py | 241 | check("ci/wires every non-exempt test suite", untested_suites, []) | COMMENT |
| LOW | tests/test_packaging.py | 581 | undocumented = [n for n in accepted if "`%s`" % n not in described] | COMMENT |
| LOW | tests/test_mcp_local_e2e.py | 381 | "questions": ticket["questions"], | COMMENT |
| LOW | tests/test_load_errors.py | 181 | _outcome = exc | COMMENT |
| LOW | tests/test_load_errors.py | 241 | # the tuple `(repo, subfolder)` when the directory is missing: `TypeError: expected str, bytes | COMMENT |
| LOW | tests/test_calibration_persistence.py | 241 | # #642 fixed this for the Kaggle notebook, which owned a fit of its own. The | COMMENT |
| LOW | tests/test_router.py | 201 | check("route/dict german after long english note", _r_de.route(_de_long, {}).model, "multilingual") | COMMENT |
| LOW | tests/test_router.py | 1521 | unloaded_ok, not_res_after, is_new_agent, res_final = _test_unload_reload_sequence_no_resurrection() | COMMENT |
| LOW | tests/test_env_docs.py | 621 | COMMENT | |
| LOW | tests/test_shortlist.py | 781 | COMMENT | |
| LOW | tests/test_predict_long.py | 941 | COMMENT | |
| LOW | tests/test_structured.py | 221 | # entropy: `laya/common.py` calls it "not calibrated: it is not what temperature scaling fits and | COMMENT |
| LOW | tests/test_example_server_limits.py | 281 | ("an ordinary request", {"body": "billed twice"}, one), | COMMENT |
| LOW | tests/test_example_server_limits.py | 441 | "%r vs %r" % (fresh._router_kwargs(fresh._CFG), build_router().max_loaded)) | COMMENT |
| LOW | tests/test_runtime_fixes.py | 381 | check("oom-fallback/plain CPU infer stays 0", cpu_disabled.cpu_fallback_count, 0) | COMMENT |
| LOW | tests/test_lazy_import.py | 81 | COMMENT | |
| 138 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | …/com/convaiinnovations/laya/QuestionRenderingTest.java | 56 | org.junit.jupiter.api.Assertions.assertTrue(rendered.contains("a: {\"d\": 1}"), rendered.toString()); | CODE |
| CRITICAL | …/com/convaiinnovations/laya/QuestionRenderingTest.java | 57 | org.junit.jupiter.api.Assertions.assertTrue(rendered.contains("b: [1, 2]"), rendered.toString()); | CODE |
| CRITICAL | …/com/convaiinnovations/laya/QuestionRenderingTest.java | 156 | org.junit.jupiter.api.Assertions.assertTrue(refused.getMessage().contains("level 1"), | CODE |
| CRITICAL | …/com/convaiinnovations/laya/QuestionRenderingTest.java | 180 | org.junit.jupiter.api.Assertions.assertThrows(IllegalArgumentException.class, | CODE |
| CRITICAL | …/com/convaiinnovations/laya/QuestionRenderingTest.java | 201 | org.junit.jupiter.api.Assertions.assertThrows(IllegalArgumentException.class, | CODE |
| CRITICAL | …java/com/convaiinnovations/laya/AgentBatchingTest.java | 140 | org.junit.jupiter.api.Assertions.assertNotNull(collapsed, | CODE |
| CRITICAL | …st/java/com/convaiinnovations/laya/AgentHooksTest.java | 83 | com.convaiinnovations.laya.tokenizer.Tokenizer.fromModelDirectory(root), | CODE |
| CRITICAL | …st/java/com/convaiinnovations/laya/AgentHooksTest.java | 84 | com.convaiinnovations.laya.config.AgentConfig.fromModelDirectory(root), | CODE |
| CRITICAL | …com/convaiinnovations/laya/config/AgentConfigTest.java | 73 | org.junit.jupiter.api.Assertions.assertThrows( | CODE |
| CRITICAL | …com/convaiinnovations/laya/config/AgentConfigTest.java | 78 | org.junit.jupiter.api.Assertions.assertThrows( | CODE |
| CRITICAL | …va/com/convaiinnovations/laya/json/PythonJsonTest.java | 42 | org.junit.jupiter.api.Assertions.assertTrue(checked > 400, | CODE |
| CRITICAL | …va/com/convaiinnovations/laya/json/PythonJsonTest.java | 47 | org.junit.jupiter.api.Assertions.assertTrue(covered.contains(discriminating) | CODE |
| CRITICAL | …va/com/convaiinnovations/laya/json/PythonJsonTest.java | 82 | org.junit.jupiter.api.Assertions.assertThrows(Json.JsonException.class, | CODE |
| CRITICAL | …va/com/convaiinnovations/laya/json/PythonJsonTest.java | 106 | org.junit.jupiter.api.Assertions.assertThrows(Json.JsonException.class, | CODE |
| CRITICAL | …va/com/convaiinnovations/laya/json/PythonJsonTest.java | 119 | Json.JsonException cyclic = org.junit.jupiter.api.Assertions.assertThrows( | CODE |
| CRITICAL | …va/com/convaiinnovations/laya/json/PythonJsonTest.java | 125 | org.junit.jupiter.api.Assertions.assertThrows(Json.JsonException.class, | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | research/evals/shouted_bar_corpora.py | 218 | CODE | |
| LOW | research/benchmarks/tournament/benchmark.py | 89 | CODE | |
| LOW | research/benchmarks/feishu_zh/run.py | 26 | CODE | |
| LOW | research/benchmarks/feishu_zh/render_cards.py | 38 | CODE | |
| LOW | research/benchmarks/feishu_zh/tests/test_audit.py | 35 | CODE | |
| LOW | research/benchmarks/es_phone_turns/train/build_train.py | 175 | CODE | |
| LOW | research/benchmarks/zh_short_commands/audit.py | 121 | CODE | |
| LOW | research/benchmarks/zh_short_commands/audit.py | 202 | CODE | |
| LOW | research/scripts/bench_position_sensitivity.py | 83 | CODE | |
| LOW | research/scripts/bench_local.py | 225 | CODE | |
| LOW | research/scripts/bench_long_context.py | 53 | CODE | |
| LOW | research/scripts/bench_question_token_reuse.py | 72 | CODE | |
| LOW | research/scripts/bench_length_batching.py | 60 | CODE | |
| LOW | research/scripts/bench_nvidia_capacity.py | 149 | CODE | |
| LOW | research/scripts/bench_nvidia_capacity.py | 297 | CODE | |
| LOW | research/scripts/bench_nvidia_capacity.py | 163 | CODE | |
| LOW | research/scripts/finetune_single_device.py | 32 | CODE | |
| LOW | research/scripts/step4_benchmark/analyze_gate_d.py | 61 | CODE | |
| LOW | research/scripts/step4_benchmark/evaluate.py | 52 | CODE | |
| LOW | laya/lang.py | 433 | CODE | |
| LOW | laya/lang.py | 665 | CODE | |
| LOW | laya/lang.py | 749 | CODE | |
| LOW | laya/hooks.py | 512 | CODE | |
| LOW | laya/hooks.py | 413 | CODE | |
| LOW | laya/_agreement.py | 206 | CODE | |
| LOW | laya/confidence.py | 247 | CODE | |
| LOW | laya/evals.py | 925 | CODE | |
| LOW | laya/serve.py | 182 | CODE | |
| LOW | laya/serve.py | 693 | CODE | |
| LOW | laya/serve.py | 800 | CODE | |
| LOW | laya/serve.py | 907 | CODE | |
| LOW | laya/cli.py | 199 | CODE | |
| LOW | laya/cli.py | 317 | CODE | |
| LOW | laya/structured.py | 261 | CODE | |
| LOW | laya/agent.py | 61 | CODE | |
| LOW | laya/agent.py | 485 | CODE | |
| LOW | laya/agent.py | 968 | CODE | |
| LOW | laya/agent.py | 1207 | CODE | |
| LOW | laya/agent.py | 1409 | CODE | |
| LOW | laya/agent.py | 1600 | CODE | |
| LOW | laya/train.py | 196 | CODE | |
| LOW | laya/train.py | 317 | CODE | |
| LOW | laya/train.py | 649 | CODE | |
| LOW | laya/train.py | 754 | CODE | |
| LOW | laya/train.py | 807 | CODE | |
| LOW | laya/train.py | 989 | CODE | |
| LOW | laya/calibrate.py | 607 | CODE | |
| LOW | laya/router.py | 791 | CODE | |
| LOW | laya/router.py | 914 | CODE | |
| LOW | laya/router.py | 1007 | CODE | |
| LOW | laya/router.py | 1090 | CODE | |
| LOW | laya/router.py | 1117 | CODE | |
| LOW | laya/router.py | 1203 | CODE | |
| LOW | laya/router.py | 1302 | CODE | |
| LOW | laya/router.py | 1590 | CODE | |
| LOW | laya/router.py | 1828 | CODE | |
| LOW | laya/onnx_agent.py | 293 | CODE | |
| LOW | laya/onnx_agent.py | 398 | CODE | |
| LOW | laya/onnx_agent.py | 736 | CODE | |
| LOW | laya/tl_kernels.py | 182 | CODE | |
| 83 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | research/evals/act_head_eval.py | 69 | CODE | |
| LOW | research/evals/massive_route_comparison.py | 16 | CODE | |
| LOW | research/evals/check_regression.py | 9 | CODE | |
| LOW | research/evals/shouted_bar_corpora.py | 30 | CODE | |
| LOW | research/benchmarks/zh_short_commands/run.py | 28 | CODE | |
| LOW | research/benchmarks/zh_short_commands/run.py | 28 | CODE | |
| LOW | research/scripts/bench_apps.py | 25 | CODE | |
| LOW | research/scripts/bench_apps.py | 35 | CODE | |
| LOW | research/scripts/bench_apps.py | 36 | CODE | |
| LOW | research/scripts/step4_benchmark/smoke_test.py | 13 | CODE | |
| LOW | research/scripts/step4_benchmark/run_benchmark.py | 24 | CODE | |
| LOW | research/scripts/step4_benchmark/metrics.py | 19 | CODE | |
| LOW | research/scripts/step4_benchmark/analyze_gate_d.py | 19 | CODE | |
| LOW | research/scripts/step4_benchmark/prepare_data.py | 19 | CODE | |
| LOW | research/scripts/step4_benchmark/order_flip.py | 24 | CODE | |
| LOW | research/scripts/step4_benchmark/evaluate.py | 28 | CODE | |
| LOW | research/scripts/step4_benchmark/kaggle/build_gate_d.py | 14 | CODE | |
| LOW | research/scripts/step4_benchmark/kaggle/build_kernel.py | 17 | CODE | |
| LOW | research/scripts/step4_benchmark/kaggle/build_kernel.py | 21 | CODE | |
| LOW | research/eval/metamorphic.py | 6 | CODE | |
| LOW | research/eval/presentation_checks.py | 58 | CODE | |
| LOW | research/eval/laya_eval.py | 36 | CODE | |
| LOW | laya/train_cli.py | 11 | CODE | |
| LOW | laya/hooks.py | 9 | CODE | |
| LOW | laya/evals_shortlist.py | 7 | CODE | |
| LOW | laya/__init__.py | 24 | CODE | |
| LOW | laya/__init__.py | 24 | CODE | |
| LOW | laya/__init__.py | 25 | CODE | |
| LOW | laya/__init__.py | 25 | CODE | |
| LOW | laya/__init__.py | 25 | CODE | |
| LOW | laya/__init__.py | 25 | CODE | |
| LOW | laya/__init__.py | 25 | CODE | |
| LOW | laya/__init__.py | 26 | CODE | |
| LOW | laya/__init__.py | 27 | CODE | |
| LOW | laya/__init__.py | 27 | CODE | |
| LOW | laya/__init__.py | 28 | CODE | |
| LOW | laya/__init__.py | 28 | CODE | |
| LOW | laya/__init__.py | 28 | CODE | |
| LOW | laya/__init__.py | 28 | CODE | |
| LOW | laya/__init__.py | 28 | CODE | |
| LOW | laya/__init__.py | 35 | CODE | |
| LOW | laya/__init__.py | 35 | CODE | |
| LOW | laya/__init__.py | 35 | CODE | |
| LOW | laya/__init__.py | 36 | CODE | |
| LOW | laya/__init__.py | 36 | CODE | |
| LOW | laya/__init__.py | 36 | CODE | |
| LOW | laya/evals.py | 22 | CODE | |
| LOW | laya/email.py | 17 | CODE | |
| LOW | laya/structured.py | 17 | CODE | |
| LOW | laya/structured.py | 84 | CODE | |
| LOW | laya/evidence.py | 15 | CODE | |
| LOW | laya/evals_cli.py | 12 | CODE | |
| LOW | laya/backends/__init__.py | 18 | CODE | |
| LOW | laya/backends/__init__.py | 18 | CODE | |
| LOW | laya/backends/__init__.py | 36 | CODE | |
| LOW | laya/mcp/server.py | 25 | CODE | |
| LOW | laya/mcp/remote.py | 22 | CODE | |
| LOW | laya/mcp/device.py | 23 | CODE | |
| LOW | laya/mcp/tools.py | 3 | CODE | |
| LOW | laya/integrations/_controls.py | 14 | CODE | |
| 38 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | research/evals/test_act_head_eval.py | 185 | # malformed report can carry them into the harness. They are not measurements: ranking | COMMENT |
| MEDIUM | research/eval/test_laya_eval.py | 107 | # harness tested `conf > lo` for every bin until the divergence was found, which made it | COMMENT |
| MEDIUM | laya/evals.py | 849 | # Not introspectable (a C-level or hand-rolled ``__call__``): keep the call this harness | COMMENT |
| MEDIUM | laya/evals.py | 1052 | # did the harness issue", which is settled the moment the chunk is grouped, while the | COMMENT |
| MEDIUM | laya/evals.py | 1148 | # run with no batch form asked for something this harness cannot do. | COMMENT |
| MEDIUM | tests/test_doc_tables.py | 207 | # figures with an independently written harness and landed within 0.0003, which is the | COMMENT |
| MEDIUM | tests/test_doc_tables.py | 311 | # divergence interesting rather than a harness change), and the `laya-multilingual` column | COMMENT |
| MEDIUM | tests/test_evals_onnx.py | 177 | # batching reaches the runner's predict_batch through the harness | COMMENT |
| MEDIUM | tests/test_evals_onnx.py | 184 | # report is the witness: `sort_by_length_sent` is what the harness put on the wire, not what | COMMENT |
| MEDIUM | tests/test_evals_api.py | 64 | # `evaluate` is the harness entry point callers extend from their own scripts, so its parameter | COMMENT |
| MEDIUM | tests/test_predict_long.py | 839 | _q_onnx = {"a": q_many(12)} # 100 options fills this tiny harness entirely | CODE |
| MEDIUM | tests/test_structured.py | 251 | # and the eval harness use. | COMMENT |
| LOW | tests/test_system_one_lang.py | 16 | # Mock predict_batch to just return the lang it was given so we can test the pass-through | COMMENT |
| MEDIUM | tests/test_evals.py | 946 | # changing. `laya-evals run --batch-size` could bound a pass but not group one, so the harness that | COMMENT |
| MEDIUM | tests/test_evals.py | 1052 | # reads the same numbers at every threshold. What the harness forwards is the *claim* the | COMMENT |
| MEDIUM | tests/test_evals.py | 1056 | # thing this harness exists to be. | COMMENT |
| MEDIUM | tests/test_evals.py | 1494 | # Why the runner records it itself: the counters under test are the harness's own account, so | COMMENT |
| MEDIUM | .github/workflows/ci.yml | 146 | # The eval harness needs numpy and laya only, so it stays a separate, weight-free job: metric | COMMENT |
| MEDIUM | .github/workflows/ci.yml | 183 | # `test_presentation_checks.py` and `test_act_head_eval.py` guard the eval harness's own | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | pyproject.toml | 88 | # `pip install laya[crewai]` adds the CrewAI multi-agent delegation router (laya.integrations). | COMMENT |
| MEDIUM | README.md | 1201 | # 2. Inline prompt guardrails | COMMENT |
| MEDIUM | README.md | 1632 | [Issue #102](https://github.com/NandhaKishorM/laya/issues/102) reports that a top-20 zero-shot shortlist moved a BANKING | CODE |
| MEDIUM | research/scripts/bench_apps.py | 189 | # ------------------------------------- 3 & 5. guardrails + moderation (toxic-chat, HELD OUT) | COMMENT |
| MEDIUM | research/scripts/bench_apps.py | 221 | # ---------------------------------------------------------- 4. RAG passage filter | COMMENT |
| MEDIUM | laya/mcp/server.py | 79 | # Shared usage guardrails for the decision tools. laya_status reports instead | COMMENT |
| MEDIUM | tests/test_llamaindex.py | 399 | # arguments since #530 / #532; this surface forwarded only `model`, so a RAG pipeline choosing | COMMENT |
| MEDIUM | tests/test_question_token_reuse.py | 78 | # The real undecorated method is the same orchestration without reuse. | COMMENT |
| MEDIUM | tests/test_batch.py | 66 | # --------------------------------------------------------------- orchestration (weight-free fake) | COMMENT |
| MEDIUM | tests/test_batch.py | 349 | # Fake CUDA device and autocast so this orchestration test also runs in CPU-only CI. | COMMENT |
| MEDIUM | tests/test_mcp.py | 2657 | # The guardrails constant is on the decision tools only; | COMMENT |
| MEDIUM | laya-dotnet/README.md | 401 | // Prompt guardrails | COMMENT |
| MEDIUM | laya-dotnet/README.md | 437 | ## Hosting: lifetime, threading and dependency injection | COMMENT |
| MEDIUM | laya-dotnet/src/Laya/LayaPresets.cs | 87 | /// <summary>Preset questions for real-time LLM input guardrails.</summary> | COMMENT |
| MEDIUM | docs/use-cases.md | 227 | ## 4. Air-Gapped Edge RAG Router | COMMENT |
| MEDIUM | docs/hooks/patterns.md | 11 | - [Guardrails](#guardrails) | CODE |
| MEDIUM⚡ | examples/llamaindex_quickstart.py | 62 | # 1. Sub-35ms Single-Choice RAG Selector (Replaces LLMSingleSelector) | COMMENT |
| MEDIUM | laya-java/README.md | 397 | ## A state longer than the context window | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | laya/integrations/crewai.py | 0 | do not forward bearer credentials across an origin or https downgrade. | STRING |
| HIGH | laya/integrations/llamaindex.py | 0 | do not forward bearer credentials across an origin or https downgrade. | STRING |
| HIGH | laya/integrations/langchain.py | 0 | do not forward bearer credentials across an origin or https downgrade. | STRING |
| HIGH | tests/test_langchain.py | 0 | mock agent returning deterministic responses for testing. | STRING |
| HIGH | tests/test_llamaindex.py | 0 | mock agent returning deterministic responses for testing. | STRING |
| HIGH | tests/test_crewai.py | 0 | mock agent returning deterministic responses for testing. | STRING |
| HIGH | laya-dotnet/tools/regen_golden.py | 0 | refuses a snapshot that is missing files, or whose files arrived empty or unparseable. `snapshot_download` reports succe | STRING |
| HIGH | laya-dotnet/tools/export_onnx.py | 0 | refuses a snapshot that is missing files, or whose files arrived empty or unparseable. `snapshot_download` reports succe | STRING |
| HIGH | laya-java/scripts/prepare_checkpoint.py | 0 | refuses a snapshot that is missing files, or whose files arrived empty or unparseable. `snapshot_download` reports succe | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | laya/common.py | 156 | CODE | |
| LOW | laya/agent.py | 2084 | CODE | |
| LOW | laya/agent.py | 485 | CODE | |
| LOW | laya/agent.py | 1409 | CODE | |
| LOW | laya/agent.py | 1600 | CODE | |
| LOW | laya/agent.py | 1882 | CODE | |
| LOW | laya/router.py | 680 | CODE | |
| LOW | laya/router.py | 1175 | CODE | |
| LOW | laya/router.py | 1302 | CODE | |
| LOW | laya/router.py | 1431 | CODE | |
| LOW | laya/router.py | 1590 | CODE | |
| LOW | laya/onnx_agent.py | 50 | CODE | |
| LOW | laya/onnx_agent.py | 250 | CODE | |
| LOW | laya/onnx_agent.py | 293 | CODE | |
| LOW | laya/onnx_agent.py | 398 | CODE | |
| LOW | laya/tl_kernels.py | 38 | CODE | |
| LOW | laya/mcp/server.py | 402 | CODE | |
| LOW | laya/mcp/remote.py | 161 | CODE | |
| LOW | laya/mcp/remote.py | 194 | CODE | |
| LOW | laya/mcp/tools.py | 409 | CODE | |
| LOW | laya/mcp/tools.py | 669 | CODE | |
| LOW | laya/mcp/tools.py | 854 | CODE | |
| LOW | laya/integrations/crewai.py | 209 | CODE | |
| LOW | laya/integrations/crewai.py | 251 | CODE | |
| LOW | laya/integrations/crewai.py | 432 | CODE | |
| LOW | laya/integrations/llamaindex.py | 205 | CODE | |
| LOW | laya/integrations/llamaindex.py | 248 | CODE | |
| LOW | laya/integrations/llamaindex.py | 394 | CODE | |
| LOW | laya/integrations/llamaindex.py | 548 | CODE | |
| LOW | laya/integrations/langchain.py | 220 | CODE | |
| LOW | laya/integrations/langchain.py | 423 | CODE | |
| LOW | laya/integrations/langchain.py | 581 | CODE | |
| LOW | laya/integrations/langchain.py | 768 | CODE | |
| LOW | laya/integrations/langchain.py | 898 | CODE | |
| LOW | laya/integrations/langchain.py | 1065 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | laya-dotnet/tools/routing_cases.py | 517 | ("with_sender", "Refund request", "Please refund invoice 4411.", "user@example.com", True, {}), | CODE |
| LOW | laya-dotnet/tools/routing_cases.py | 519 | ("extra_fields_kept_when_not_none", "Ticket", "Body text.", "user@example.com", True, {"priority": "high", "ticket_i | CODE |
| LOW⚡ | laya-dotnet/tests/Laya.Tests/LayaEmailTests.cs | 101 | var state = LayaEmail.State("Refund request", "Please refund invoice 4411.", sender: "user@example.com"); | CODE |
| LOW⚡ | laya-dotnet/tests/Laya.Tests/LayaEmailTests.cs | 102 | Assert.Equal("user@example.com", state["from"]); | CODE |
| LOW | …otnet/tests/Laya.Tests/golden/routing/email_probe.json | 453 | "sender": "user@example.com", | CODE |
| LOW | …otnet/tests/Laya.Tests/golden/routing/email_probe.json | 459 | "from": "user@example.com" | CODE |
| LOW | …otnet/tests/Laya.Tests/golden/routing/email_probe.json | 478 | "sender": "user@example.com", | CODE |
| LOW | …otnet/tests/Laya.Tests/golden/routing/email_probe.json | 487 | "from": "user@example.com", | CODE |
| LOW | …est/java/com/convaiinnovations/laya/ShortlistTest.java | 195 | assertEquals(expectedOptions, Question.choice("placeholder", criteria).renderOptions(), | CODE |
| LOW | …rc/main/java/com/convaiinnovations/laya/Shortlist.java | 189 | List<String> optionTexts = Question.choice("placeholder", options).renderOptions(); | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | laya/hooks.py | 211 | def set_default_hooks(hooks=None, on_predict_start=None, on_predict_end=None) -> None: | CODE |
| LOW | laya/__init__.py | 100 | __all__ = [ | CODE |
| LOW | laya/structured.py | 442 | __all__ = [ | CODE |
| LOW | laya/backends/__init__.py | 110 | __all__ = ["Backend", "BackendUnavailable", "NAMES", "auto_policy", "bucket_shape", | CODE |
| LOW | laya/mcp/__init__.py | 16 | __all__ = ["device", "server", "tools"] | CODE |
| LOW | laya/integrations/__init__.py | 23 | __all__ = [ | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | laya-dotnet/MODELS.md | 27 | ### Step 1: Create a virtual environment and install | COMMENT |
| LOW | laya-dotnet/MODELS.md | 98 | ### Step 4: Export | COMMENT |
| LOW | laya-dotnet/MODELS.md | 136 | ### Step 5: Point the SDK at the export | COMMENT |
| LOW | laya-dotnet/MODELS.md | 176 | ### Step 6: Check it works | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | laya/router.py | 1439 | Route, then scan every window of the state instead of only its first one. `predict` scores a state from a singl | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | compose.http.yaml | 12 | # This file is additive. `laya` in compose.yaml still runs the one-shot SDK quickstart and | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | laya-dotnet/tools/export_onnx.py | 613 | # Check if there is a safetensors file alongside the onnx output (for local-path exports). | COMMENT |