| 1 | 🏆 or/owl-alpha | оценено | 94 | 19/19 | 92 | 96 | 92 | 95 | 88 | 88 | 80 | 744 | 34м22с | 101 | 19/19 — ЕДИНСТВЕННАЯ модель, построившая полностью корректную СУБД (подтверждено независимым прогоном против эталона). Чистая многослойная архитектура в 743 строках: tokenize → Parser (280 строк) → Table/Database → execute/execute_select с хелперами eval_value/row_matches. Закрыла все края: JOIN+GROUP BY, ORDER BY DESC+LIMIT, DELETE с WHERE, транзакции BEGIN/COMMIT/ROLLBACK, обработку syntax-ошибок. 101 ход за 34 мин. В 15-мин прогоне была 18/19 — час дал закрыть последний тест. Победитель v2. |
| 2 | 🥈 oc/mimo-v2.5-free | оценено | 86 | 18/19 | 85 | 85 | 90 | 82 | 88 | 82 | 80 | 662 | 25м49с | 34 | 18/19 — полноценная СУБД 662 строки с чётко разделёнными слоями: tokenize, класс Parser, Catalog/Table/RowSchema, отдельный TxnMgr (транзакции), _execute_select. Единственный провал — ORDER BY age DESC LIMIT 2 выдаёт carol,bob вместо carol,alice (баг порядка при DESC-сортировке через класс-обёртку _Desc). Чисто, __slots__, докстринги. В прошлом 15-мин прогоне эта модель давала 0/19 — лишнее время позволило достроить движок. |
| 3 | 🥉 kl/nex-n2-pro | оценено | 85 | 18/19 | 86 | 86 | 90 | 84 | 90 | 84 | 78 | 870 | 60м00с | — | 18/19 — чистая архитектура с настоящими AST-узлами (ColumnRef/Literal/Comparison/BinaryCondition/Aggregate/SelectStar/JoinClause), type hints, отдельный tokenizer и Database. Единственный провал — базовый join (неверный порядок строк; при этом join_where и join_groupby прошли). 870 строк. Упёрся в дедлайн 60 мин. В прошлом 15-мин прогоне был таймаут 0/19. |
| 4 | oc/big-pickle | оценено | 84 | 17/19 | 85 | 84 | 95 | 80 | 90 | 78 | 78 | 1009 | 13м16с | 35 | 17/19 — самая детальная архитектура из всех: 1008 строк с настоящими AST-классами (ColumnRef/Literal/BinOp/Aggregate + узел на каждый statement), Parser на 272 строки, отдельные исключения ParseError/DuplicateKeyError, Table/Database, развитый слой исполнителя (_eval_expr/_eval_join_expr/_eval_aggregate/_sort_results_ordered). Два провала, оба → ERROR (исключение): ORDER BY age DESC LIMIT 2 и DELETE FROM u WHERE age<31. В прошлом 15-мин прогоне был таймаут 0/19 — время дало достроить. |
| 5 | kl/kilo | оценено | 82 | 17/19 | 82 | 84 | 86 | 80 | 84 | 78 | 75 | 1019 | 9м49с | 16 | 17/19 (восстановлен добивкой — первый прогон оборвался на апстриме). 1018 строк, recursive-descent парсер в функциональном стиле (48 функций: tokenize/peek/expect/match_kw/parse_expr...). Два провала, оба → ERROR: ORDER BY age DESC LIMIT и DELETE. В прошлом 15-мин прогоне был таймаут 0/19 — время + добивка дали результат. |
| 6 | or/nex-n2-pro:free | оценено | 70 | 14/19 | 76 | 74 | 82 | 70 | 82 | 78 | 72 | 757 | 60м00с | — | 14/19 — полный read-path: SELECT, WHERE с одиночным сравнением, ORDER BY, агрегаты, GROUP BY и JOIN работают. Детальный AST (757 строк, 45 классов: Literal/ColumnRef/BinaryCondition/And-/OrCondition/Aggregate...). Провалил AND/OR-комбинацию условий, UPDATE, DELETE и транзакции (BEGIN/COMMIT/ROLLBACK) — мутации и tx не доделаны. Упёрся в дедлайн 60 мин. |
| 7 | nv/minimax-m3 | оценено | 64 | 15/19 | 66 | 72 | 62 | 70 | 65 | 55 | 65 | 1199 | 60м00с | — | 15/19, но упёрся в 60 мин с НЕдоделанным рефактором: в коде дубли eval_cond/eval_cond_v2 и eval_operand/eval_operand_v2 — переписывал движок и не свёл. Из-за этого базовый SELECT * → ERROR, агрегаты сломаны (COUNT(*) WHERE выдаёт 1\n1 вместо 2), хотя JOIN/GROUP BY/ORDER/UPDATE/DELETE/транзакции работают. 1198 строк, god-class Engine. В 15-мин прогоне та же модель давала чистые 19/19 — здесь ушла в переусложнение. |
| 8 | kl/openrouter | оценено | 56 | 11/19 | 63 | 62 | 70 | 58 | 68 | 60 | 62 | 1065 | 60м00с | — | 11/19 — работают CRUD, WHERE с AND/OR, ORDER BY, агрегаты без группировки, PRIMARY KEY и транзакции (BEGIN/COMMIT/ROLLBACK; есть отдельные Parser/Catalog/TransactionManager/Executor). Не осилил GROUP BY, ВСЕ виды JOIN, DELETE с WHERE, ORDER BY DESC+LIMIT, обработку syntax-ошибок. 1065 строк, упёрся в 60 мин. В прошлом прогоне был 0/19. |
| 9 | oc/north-mini-code-free | оценено | 22 | 4/19 | 41 | 38 | 50 | 30 | 55 | 35 | 50 | 425 | 29м42с | 297 | 4/19 за рекордные 297 ходов — упорно билась полчаса, но осилила лишь базовый CRUD + WHERE с одним '=' (create/select/where_eq/delete). Провалила AND/OR, сортировку, ВСЕ агрегаты, GROUP BY, JOIN, UPDATE, PK-уникальность, транзакции, обработку ошибок. Архитектура — монолит: ~380 строк в одном классе InMemorySQLDatabase без разделения на лексер/парсер/исполнитель. Прошлый прогон давал 1/19. |
| 10 | or/laguna-m.1:free | оценено | 16 | 1/19 | 40 | 30 | 60 | 22 | 60 | 35 | 55 | 954 | 54м14с | 50 | 1/19 (прошёл только error_syntax). 954 строки, 33 класса — много структуры, компилируется, но фундаментальный баг: строки ДУБЛИРУЮТСЯ (SELECT name выдаёт alice дважды, COUNT(*)=4 при двух INSERT вместо 2). Дублирование при вставке/хранении рушит почти все тесты. 50 ходов за 54 мин баг не нашли. |
| 11 | or/gpt-oss-120b:free | оценено | 13 | 0/19 | 45 | 30 | 65 | 25 | 70 | 55 | 58 | 700 | 5м34с | 2 | 699 строк за 2 хода, компилируется, но движок нерабочий: SELECT name ... WHERE age>26 печатает None вместо alice, COUNT(*) → ERROR. Базовая выборка значений и агрегаты сломаны. Честный 0/19. Стабильно для этой модели — в прошлых прогонах та же картина (большой движок, падает на базе). |
| 12 | kl/step-3.7-flash | оценено | 12 | 0/19 | 41 | 25 | 65 | 15 | 70 | 50 | 55 | 459 | 28м16с | 118 | 458-строчный движок за 118 ходов, но НЕ работает. Падал на import (инлайн-флаг (?i) не в начале склеенного regex — ошибка Python 3.11+); после ручного фикса флага каждый запрос всё равно → ERROR (парсер/исполнитель нерабочий). Каркас слоёв есть (TOKENIZER/SPEC, классы T/P, executor), но корректность нулевая. Честный 0/19. В прошлом прогоне эта же модель дала 19/19 — сильная нестабильность сэмплинга. |
| 13 | or/free | оценено | 11 | 0/19 | 38 | 25 | 55 | 20 | 55 | 50 | 50 | 683 | 10м17с | 3 | 683 строки с парсером (self.consume/SPECIAL-токены), но файл НЕ компилируется — SyntaxError на строке 267: self.consume('SPECIAL', '*')') с лишней кавычкой (незавершённый строковый литерал). Программа не запускается → 0/19. Модель не проверила, что код хотя бы парсится. |
| · | kl/nemotron-3-ultra-550b-a55b | ⚠️ обрыв апстрима | — | 0/19 | — | — | — | — | — | — | — | — | 46м09с | 1 | стрим апстрима оборвался (upstream_stream_truncated); добивка с 4 ретраями результат не вернула |
| · | kl/laguna-m.1 | ⏱ не уложился в 60 мин | — | 0/19 | — | — | — | — | — | — | — | — | 60м00с | — | за 60 минут не записала рабочий файл (нет вывода) |
| · | oc/deepseek-v4-flash-free | ⚠️ обрыв апстрима | — | 0/19 | — | — | — | — | — | — | — | — | 9м53с | 1 | стрим апстрима оборвался (upstream_stream_truncated); добивка с 4 ретраями результат не вернула |
| · | oc/nemotron-3-ultra-free | ⚠️ обрыв апстрима | — | 0/19 | — | — | — | — | — | — | — | — | 62м55с | 1 | стрим апстрима оборвался (upstream_stream_truncated); добивка с 4 ретраями результат не вернула |
| · | ms/DeepSeek-V4-Pro | 🚫 нет провайдера | — | 0/19 | — | — | — | — | — | — | — | — | 3м14с | 1 | нет апстрим-провайдера на бэкенде (400 «has no provider supported») — недоступна |
| · | or/nemotron-3-ultra-550b-a55b:free | ⚠️ обрыв апстрима | — | 0/19 | — | — | — | — | — | — | — | — | 60м00с | — | стрим апстрима оборвался (upstream_stream_truncated); добивка с 4 ретраями результат не вернула |