Публічний реєстр
Звіт про здоров'я програмного забезпеченнясхема 0.27.0 · метрики 1.13.0 · 2026-07-27 02:02 UTC

ModelEngine-Group / nexent

Nexent is a zero-code platform for auto-generating production-grade AI agents using Harness Engineering principles — unified tools, skills, memory, and orchestration with built-in constraints, feedback loops, and control planes.

Python · TypeScriptMIT★ 5 791 зірка⑂ 707 форківз квіт. 2025 р.Переглянути на GitHub ↗

ModelEngine-Group/nexent має індекс здоров’я 86 зі 100, що відповідає смузі «Відмінний». Найвищий показник — Vitality (100/100), найнижчий — AI Readiness (68/100). Останнє оновлення — сьогодні. Більшість нещодавньої роботи виконують 3 учасники.

86
загалом / 100
Відмінний

Індекс здоров'я програмного забезпечення

Метрики згруповано у зважені категорії на шкалі 1–100. Загальна оцінка починається як їхнє середнє; коли публічні дані активують Політику юрисдикцій високого ризику, рейтинг коригується й отримує верхню межу 49 («Під ризиком»). Готовність до ШІ не входить до індексу.

86
Відмінний85-100Зразковий; відповідає практично всім перевіреним критеріям
Добрий70-84Здоровий; незначні прогалини
Помірний50-69Прийнятний, але з помітними прогалинами; рекомендовано перевірку
У зоні ризику30-49Суттєві слабкі місця; впровадження потребує обережності
Критичний1-29Серйозні проблеми (покинутий, єдиний мейнтейнер, без базової гігієни)
ЖиттєздатністьСпільнота тавпровадженняСталість таврядуванняІнженернаякістьБезпекаГотовність доШІ

Профіль оцінок

Кожна вісь — окрема категорія. Форма важить більше, ніж середнє: здоровий об'єкт заповнює всю фігуру, тоді як профіль із піками та провалами означає, що сила в одному вимірі маскує ризик в іншому.

Власність

ModelEngine-GroupОрганізація
851 підписник20 публічних репозиторіївз лют. 2025 р.

За цим репозиторієм стоїть організація — спільна, підзвітна опіка, здатна пережити будь-якого окремого мейнтейнера.

Пакетні екосистеми

РеєстрПакетВерсіяЗавантажень / місВерсіїОстання публікаціяТеги
PyPInexent1.8.1-8134 дні томуagentaiframework
PyPIbackendвказує на інший репозиторій — не оцінюється0.2.4.1-84541 день томуdjangobackend

Метрики за категоріями

Життєздатність

Чи живий проєкт — чи пишеться код і чи виходять релізи?

100Відмінний · 22% загального індексу
Як обчислюється оцінка
36/36Свіжість push — останній push 0 дн. тому
36/36Ритм комітів — 52/52 тижнів із комітами
18/18Обсяг комітів — 3 751 комітів за останній рік
10/10OpenSSF Scorecard: Maintained — 30 commit(s) and 5 issue activity found in the last 90 days -- score normalized to 10
Використані вхідні дані
commits_last_year3 751
human_commit_share1
days_since_last_push0
active_weeks_last_year52
Як обчислюється оцінка
27/27Випускає релізи — опубліковано 49 релізів
36/36Свіжість релізів — останній реліз 10 дн. тому
27/27Ритм релізів — реліз кожні ~13,8 дн.
0/10OpenSSF Scorecard: Signed-Releases — немає даних
Використані вхідні дані
releases_count49
latest_release_tagv2.3.0
releases_from_tagsні
days_since_latest_release10
mean_days_between_releases13,8
Виключено з оцінювання (немає даних або не застосовно): OpenSSF Scorecard: Signed-Releases. Залишкові ваги перенормовано.

Спільнота та впровадження

Чи має проєкт користувачів, завантаження, увагу та влаштовані умови для контриб’юторів?

91Відмінний · 18% загального індексу
Як обчислюється оцінка
60/60Зірки — 5 791 зірок
23.7/25Форки — 707 форків
13.4/15Спостерігачі — 253 спостерігачів
Використані вхідні дані
forks707
stars5 791
watchers253
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
Як обчислюється оцінка
22.5/22.5README
22.5/22.5Ліцензія — визнана ліцензія (MIT)
18/18Настанови CONTRIBUTING
13.5/13.5Кодекс поведінки
0/7.2Шаблон issue
0/6.3Шаблон PR
Використані вхідні дані
has_readmeтак
has_licenseтак
has_contributingтак
has_issue_templateні
has_code_of_conductтак
has_pull_request_templateні

Сталість та врядування

Чи переживе проєкт своїх людей — бас-фактор, реактивність, хто за ним стоїть і як супроводжуються пакети?

81Добрий · 24% загального індексу
Як обчислюється оцінка
36/54Бас-фактор — на 3 контриб’ютор(ів) припадає половина всіх комітів
17/22.5Розподіл комітів — головний контриб’ютор — автор 24% комітів
13.5/13.5Широта контриб’юторів — 100 контриб’юторів
10/10OpenSSF Scorecard: Contributors — project has 4 contributing companies or organizations
Використані вхідні дані
bus_factor3
contributors_sampled100
top_contributor_share0,243
Як обчислюється оцінка
41.4/46.8Вирішення issue — закрито 89% issue
31.9/38.3Прийняття PR — злито 1 556/1 863 вирішених PR
13.5/15OpenSSF Scorecard: Code-Review — Found 28/30 approved changesets -- score normalized to 9
Використані вхідні дані
merged_prs1 556
open_issues149
closed_issues1 157
issue_closed_ratio0,886
closed_unmerged_prs307
Як обчислюється оцінка
30/30Підтримка власника — у власності організації
0/20Верифікований домен
21.1/25Охоплення власника — 851 підписників у ModelEngine-Group
12.5/25Послужний список — 20 публічних репозиторіїв, вік облікового запису ~1 р.
Використані вхідні дані
followers851
owner_typeOrganization
is_verified
owner_loginModelEngine-Group
public_repos20
account_age_days521

Супровід пакетів

100Відмінний
Як обчислюється оцінка
25/25Опубліковано й доступно — 1 пакет(ів) у pypi
35/35Свіжість публікацій — остання публікація 134 дн. тому
20/20Історія версій — 8 опублікованих версій
20/20Не застарілий — активний, не deprecated і не yanked
Використані вхідні дані
packagesnexent
ecosystemspypi
any_deprecatedні
min_days_since_publish134

Інженерна якість

Чи наявні базові інженерні практики та документація?

84Добрий · 20% загального індексу
Як обчислюється оцінка
24/24Процеси CI — 17 процес(ів) CI
24/24Наявні тести
16/16Конфігурація лінтера — .eslintrc.json
0/9.6Pre-commit-хуки
6.4/6.4.editorconfig
20/20OpenSSF Scorecard: CI-Tests — 30 out of 30 merged PRs checked by a CI test -- score normalized to 10
Використані вхідні дані
has_ciтак
has_testsтак
has_editorconfigтак
has_linter_configтак
has_precommit_configні
Як обчислюється оцінка
30/30README
25/25Каталог документації
0/15Сайт документації / домашня сторінка
10/10Опис репозиторію
10/10Теми — 12 тем
0/10Wiki
Використані вхідні дані
topicsagent, agentic-ai, agentic-framework, agentic-rag, agentic-workflow, ai, llm, rag, harness, harness-engineering, mcp, multi-agent
has_wikiні
homepage
has_readmeтак
has_docs_dirтак
has_descriptionтак

Безпека

Чи міцні видимі практики безпеки й ланцюга постачання, без непослабленої пов’язаності з юрисдикціями високого ризику?

68Помірний · 16% загального індексу
Як обчислюється оцінка
7.5/7.5Binary-Artifacts — no binaries found in the repo
0.8/7.5Branch-Protection — branch protection is not maximal on development and all release branches
2.5/2.5CI-Tests — 30 out of 30 merged PRs checked by a CI test -- score normalized to 10
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
6.8/7.5Code-Review — Found 28/30 approved changesets -- score normalized to 9
2.5/2.5Contributors — project has 4 contributing companies or organizations
10/10Dangerous-Workflow — no dangerous workflow patterns detected
7.5/7.5Dependency-Update-Tool — update tool detected
0/5Fuzzing — project is not fuzzed
2.5/2.5Ліцензія — license file detected
7.5/7.5Maintained — 30 commit(s) and 5 issue activity found in the last 90 days -- score normalized to 10
5/5Packaging — packaging workflow detected
0/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
5/5SAST — SAST tool is run on all commits
5/5Security-Policy — security policy file detected
0/7.5Signed-Releases — немає даних
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
7.5/7.5Vulnerabilities — 0 existing vulnerabilities detected
Використані вхідні дані
sourceopenssf_scorecard
checks_evaluated17
scorecard_versionv5.5.0
checks_inconclusive1
scorecard_aggregate7,2
Виключено з оцінювання (немає даних або не застосовно): signed_releases. Залишкові ваги перенормовано.
Як обчислюється оцінка
4.9/35Прямі залежності без відомих сповіщень — уражено 3: fastmcp 2.12.0 (critical 10.0), smolagents 1.23.0 (critical 10.0), mcp 1.22.0 (high 7.1)
25/25Непрямі залежності без відомих сповіщень — жодна непряма залежність не має відомих сповіщень
23.8/40Немає задавнених сповіщень — 3 пакет(ів) зі сповіщеннями без реакції понад 90 дн.; найдавніше опубліковано 270 дн. тому
Використані вхідні дані
sourceosv
advisories26
affected_packages3
assessed_packages121
unassessed_packages0
affected_by_severitycritical 2, high 1
direct_affected_packages3
Звірено з runtime-замиканням залежностей pypi:nexent@1.8.1 — тим, що тягне за собою встановлення опублікованого пакета, — 121 пакетів. Досяжність не аналізується.

Готовність до ШІ

Наскільки репозиторій оснащений для розробки та супроводу за участі ШІ-агентів? Незалежний, експериментальний бейдж — вага 0.0, тож він подається окремо і не впливає на загальний індекс здоров'я.

68Помірний · 0% загального індексу
Як обчислюється оцінка
45/45Інструкції для агентів — .cursor/rules/backend/app_layer_rules.mdc, .cursor/rules/backend/database_layer_rules.mdc, .cursor/rules/backend/service_layer_rules.mdc, .cursor/rules/english_comments.mdc, .cursor/rules/environment_variable.mdc, .cursor/rules/frontend/component_layer_rules.mdc, .cursor/rules/frontend/frontend_overview_rules.mdc, .cursor/rules/frontend/hook_layer_rules.mdc, .cursor/rules/frontend/page_layer_rules.mdc, .cursor/rules/frontend/service_layer_rules.mdc, .cursor/rules/frontend/type_layer_rules.mdc, .cursor/rules/frontend/ui_standards_rules.mdc, .cursor/rules/pytest_unit_test_rules.mdc, AGENTS.md, CLAUDE.md, doc/docs/en/sdk/core/agents.md, doc/docs/zh/sdk/core/agents.md
0/15Машиночитана документація (llms.txt)
40/40Читабельна історія комітів — намір зазначено у 92 з 100 людських комітів (структурований заголовок або пояснювальний текст)
Використані вхідні дані
has_llms_txtні
legible_history_share0,92
agent_instruction_files.cursor/rules/backend/app_layer_rules.mdc, .cursor/rules/backend/database_layer_rules.mdc, .cursor/rules/backend/service_layer_rules.mdc, .cursor/rules/english_comments.mdc, .cursor/rules/environment_variable.mdc, .cursor/rules/frontend/component_layer_rules.mdc, .cursor/rules/frontend/frontend_overview_rules.mdc, .cursor/rules/frontend/hook_layer_rules.mdc, .cursor/rules/frontend/page_layer_rules.mdc, .cursor/rules/frontend/service_layer_rules.mdc, .cursor/rules/frontend/type_layer_rules.mdc, .cursor/rules/frontend/ui_standards_rules.mdc, .cursor/rules/pytest_unit_test_rules.mdc, AGENTS.md, CLAUDE.md, doc/docs/en/sdk/core/agents.md, doc/docs/zh/sdk/core/agents.md
agent_instruction_max_bytes6 568
Як обчислюється оцінка
0/18Розгортання однією командою
22/22Автоматизовані тести
11/11Конфігурація лінтера / форматера — .eslintrc.json
11/11Статична перевірка типів — frontend/tsconfig.json
10/10Відтворюване середовище — devcontainer, Dockerfile
10/10Підтверджена практика роботи з агентами — 13 з останніх 100 комітів створено агентом або з його зазначенням
5/8Автоматизоване супроводження — автоматизацію залежностей налаштовано, але у вибірці комітів її не видно
0/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
Використані вхідні дані
has_nixні
has_testsтак
lockfiles
has_dockerfileтак
typed_languageні
bootstrap_files
has_devcontainerтак
has_linter_configтак
typecheck_configsfrontend/tsconfig.json
agent_commit_share0,13
toolchain_manifests
dependency_bot_commit_share0
Як обчислюється оцінка
27/45Типізований код — Python з конфігурацією перевірки типів (frontend/tsconfig.json)
52.2/55Керовані розміри файлів — 62/1 200 файлів вихідного коду понад 60 КБ
Використані вхідні дані
primary_languagePython
largest_source_bytes595 905
source_files_sampled1 200
oversized_source_files62
Як обчислюється оцінка
0/40Схема API (OpenAPI/GraphQL/proto)
20/20Сервер MCP
0/40Придатні до запуску приклади
Використані вхідні дані
example_dirs
has_mcp_signalтак
api_schema_files

Ключові факти

5 791зірок GitHub
100контриб'юторів
3 751комітів за останні 12 місяців
0днів від останнього пушу
49релізів
3бас-фактор
149відкритих issue
npm, PyPIпакетних екосистем

Попередження щодо збору даних

  • Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token
  • pypi package 'backend' points at a different repository (https://github.com/tr4n2uil/backend.django); excluded from ecosystem scoring

Докладніше

Історія зірок і форків 0 ★ / 707 ⇿
0Зірки
707Форки
49Релізи

Коли додано кожну зірку й форк — зібрано з GitHub і згруповано за днями. Кумулятивне зростання розміщено просто над денними додаваннями, з яких воно складається, тож їх видно одне проти одного: рівномірне органічне накопичення виглядає зовсім інакше, ніж різкий короткочасний сплеск. Там, де цю різницю можна виміряти, її подано як автентичність росту.

0125250375500625750706342025-052025-122026-07
Мажорні 2Мінорні 12Патчі 17

Кожна точка охоплює 2 днів.

OpenSSF Scorecard 7.2 / 10
7.2сукупно

Незалежна, не прив'язана до інструментів оцінка безпеки від відкритого проєкту OpenSSF Scorecard. Кожна перевірка винагороджує практику безпеки, а не інструмент конкретного постачальника. Перевірки, які Scorecard не зміг визначити, позначено н/д і виключено з оцінки безпеки (вони ніколи не зараховуються як нуль).Scorecard v5.5.0 · 2026-07-27 02:02 UTC

10Binary-Artifactsno binaries found in the repo
1Branch-Protectionbranch protection is not maximal on development and all release branches
10CI-Tests30 out of 30 merged PRs checked by a CI test -- score normalized to 10
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
9Code-ReviewFound 28/30 approved changesets -- score normalized to 9
10Contributorsproject has 4 contributing companies or organizations
10Dangerous-Workflowno dangerous workflow patterns detected
10Dependency-Update-Toolupdate tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
10Maintained30 commit(s) and 5 issue activity found in the last 90 days -- score normalized to 10
10Packagingpackaging workflow detected
0Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 0
10SASTSAST tool is run on all commits
10Security-Policysecurity policy file detected
н/дSigned-Releasesno releases found
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
10Vulnerabilities0 existing vulnerabilities detected
Прямі залежності 130
РеєстрПакетОбмеження версіїМаніфест
PyPIaiofiles>=0.8.0backend/pyproject.toml
PyPIuvicorn>=0.34.0backend/pyproject.toml
PyPIfastapi>=0.115.12backend/pyproject.toml
PyPIpython-multipart>=0.0.9backend/pyproject.toml
PyPIemail-validator>=2.0.0backend/pyproject.toml
PyPIaiohttp>=3.8.0backend/pyproject.toml
PyPIauthlib>=1.3.0backend/pyproject.toml
PyPIcryptography>=42.0.0backend/pyproject.toml
PyPIpsycopg2-binary>=2.9.9backend/pyproject.toml
PyPIPyJWT>=2.8.0backend/pyproject.toml
PyPIsqlalchemy~=2.0.37backend/pyproject.toml
PyPIgreenlet<3.5.0backend/pyproject.toml
PyPIsupabase>=2.18.1backend/pyproject.toml
PyPIwebsocket-client>=1.8.0backend/pyproject.toml
PyPIpyyaml>=6.0.2backend/pyproject.toml
PyPIjsonref>=1.1.0backend/pyproject.toml
PyPIruamel-yaml==0.19.1backend/pyproject.toml
PyPIredis>=5.0.0backend/pyproject.toml
PyPIfastmcp>=2.14.2,<3.0backend/pyproject.toml
PyPIlangchain>=0.3.26backend/pyproject.toml
PyPIscikit-learn>=1.0.0backend/pyproject.toml
PyPInumpy>=1.24.0backend/pyproject.toml
PyPIdefusedxml>=0.7.1backend/pyproject.toml
PyPIopenjiuwen>=0.1.0backend/pyproject.toml
PyPIpydantic-settings>=2.0.0backend/pyproject.toml
PyPIpython-docx>=1.1.0backend/pyproject.toml
PyPIxlrd>=2.0.1backend/pyproject.toml
PyPIcroniter>=2.0.0backend/pyproject.toml
npm@ant-design/icons6.2.5frontend/package.json
npm@assistant-ui/react^0.14.20frontend/package.json
npm@assistant-ui/react-ai-sdk^1.3.33frontend/package.json
npm@assistant-ui/react-markdown^0.14.2frontend/package.json
npm@dicebear/core^9.2.2frontend/package.json
npm@dicebear/icons^9.2.2frontend/package.json
npm@tanstack/react-query^5.90.12frontend/package.json
npm@types/jszip^3.4.0frontend/package.json
npmai^6.0.198frontend/package.json
npmantd^6.3.0frontend/package.json
npmantd-style^4.1.0frontend/package.json
npmassistant-stream^0.3.25frontend/package.json
npmautoprefixer^10.4.20frontend/package.json
npmbootstrap-icons^1.11.3frontend/package.json
npmclass-variance-authority^0.7.1frontend/package.json
npmclsx^2.1.1frontend/package.json
npmcmdk^1.1.1frontend/package.json
npmcookie^1.1.1frontend/package.json
npmcross-env^10.1.0frontend/package.json
npmdayjs^1.11.19frontend/package.json
npmdicebear^9.2.2frontend/package.json
npmdotenv^16.4.7frontend/package.json
npmframer-motion^12.23.6frontend/package.json
npmgithub-markdown-css^5.8.1frontend/package.json
npmhttp-proxy^1.18.1frontend/package.json
npmi18next^25.2.1frontend/package.json
npmjs-yaml^4.1.1frontend/package.json
npmjszip^3.10.1frontend/package.json
npmkatex^0.16.11frontend/package.json
npmlucide-react^0.454.0frontend/package.json
npmmermaid^11.12.0frontend/package.json
npmnext^15.5.9frontend/package.json
npmnext-i18next^15.4.2frontend/package.json
npmnext-themes^0.4.4frontend/package.json
npmpapaparse^5.5.3frontend/package.json
npmpdfjs-dist5.3.93frontend/package.json
npmradix-ui^1.6.2frontend/package.json
npmreact18.2.0frontend/package.json
npmreact-d3-tree^3.6.6frontend/package.json
npmreact-dom18.2.0frontend/package.json
npmreact-hook-form^7.54.1frontend/package.json
npmreact-i18next^15.5.3frontend/package.json
npmreact-markdown^9.0.3frontend/package.json
npmreact-pdf10.1.0frontend/package.json
npmreact-shiki^0.10.1frontend/package.json
npmreact-syntax-highlighter^16.1.0frontend/package.json
npmrecharts^2.15.0frontend/package.json
npmrehype-katex^7.0.1frontend/package.json
npmrehype-raw^7.0.0frontend/package.json
npmremark-gfm^4.0.1frontend/package.json
npmremark-math^6.0.0frontend/package.json
npmremark-parse^11.0.0frontend/package.json
npmremark-rehype^11.1.0frontend/package.json
npmtailwind-merge^3frontend/package.json
npmtw-animate-css^1.4.0frontend/package.json
npmtw-shimmer^0.4.11frontend/package.json
npmunified^11.0.0frontend/package.json
npmunist-util-visit^5.0.0frontend/package.json
npmuuid^11.1.0frontend/package.json
npmzustand^5.0.9frontend/package.json
PyPIaiofiles>=24.1.0sdk/pyproject.toml
PyPIelasticsearch==8.17.2sdk/pyproject.toml
PyPIexa_py==1.14.0sdk/pyproject.toml
PyPIhttpx>=0.28.1sdk/pyproject.toml
PyPInumpy>=1.26.4sdk/pyproject.toml
PyPIopenai>=1.69.0sdk/pyproject.toml
PyPIpydantic>=2.11.1sdk/pyproject.toml
PyPIpython-dotenv>=1.1.0sdk/pyproject.toml
PyPIPyYAML>=6.0.1sdk/pyproject.toml
PyPIRequests>=2.32.3sdk/pyproject.toml
PyPIrich>=13.9.4sdk/pyproject.toml
PyPIsetuptools>=75.1.0sdk/pyproject.toml
PyPIwebsockets>=14.2sdk/pyproject.toml
PyPIsmolagents==1.23.0sdk/pyproject.toml
PyPIPillow>=10.0.0sdk/pyproject.toml
PyPIaiohttp>=3.1.13sdk/pyproject.toml
PyPIjieba>=0.42.1sdk/pyproject.toml
PyPIboto3>=1.37.34sdk/pyproject.toml
PyPIbotocore>=1.37.34sdk/pyproject.toml
PyPIpython-multipart>=0.0.20sdk/pyproject.toml
PyPImcpadapt>=0.1.13sdk/pyproject.toml
PyPImcp>=1.24.0,<1.30sdk/pyproject.toml
PyPIfastmcp>=2.14.2,<3.0sdk/pyproject.toml
PyPIdocker>=7.0.0sdk/pyproject.toml
PyPIkubernetes>=29.0.0sdk/pyproject.toml
PyPItiktoken>=0.5.0sdk/pyproject.toml
PyPItavily-pythonsdk/pyproject.toml
PyPIlinkup-sdksdk/pyproject.toml
PyPIparamiko>=3.4.0sdk/pyproject.toml
PyPIlinkup-sdksdk/pyproject.toml
PyPImem0ai==0.1.117sdk/pyproject.toml
PyPIpymysql>=1.1.0sdk/pyproject.toml
PyPIpsycopg2-binary>=2.9.9sdk/pyproject.toml
PyPIpymssql>=2.2.11sdk/pyproject.toml
PyPIopenpyxl>=3.1.5sdk/pyproject.toml
PyPIorjson==3.10sdk/pyproject.toml
PyPIpypdf==6.9.1sdk/pyproject.toml
PyPIpython-pptx==1.0.2sdk/pyproject.toml
PyPIijson==3.5.0sdk/pyproject.toml
PyPIlangchain-text-splitters==1.1.2sdk/pyproject.toml
PyPIebooklib==0.20sdk/pyproject.toml
PyPIpypandoc==1.17sdk/pyproject.toml
Усі залежності 152

Повний розв'язаний набір залежностей із графа залежностей GitHub: 120 прямих і 32 непрямих (транзитивних) пакетів. Транзитивне замикання є повним, коли в репозиторії закомічено lockfile.

РеєстрПакетВерсіяЗв'язок
npm@ant-design/icons6.2.5пряма
npm@assistant-ui/react^0.14.20пряма
npm@assistant-ui/react-ai-sdk^1.3.33пряма
npm@assistant-ui/react-markdown^0.14.2пряма
npm@dicebear/core^9.2.2пряма
npm@dicebear/icons^9.2.2пряма
npm@tanstack/react-query^5.90.12пряма
npm@types/jszip^3.4.0пряма
npmai^6.0.198пряма
npmantd^6.3.0пряма
npmantd-style^4.1.0пряма
npmassistant-stream^0.3.25пряма
npmautoprefixer^10.4.20пряма
npmbootstrap-icons^1.11.3пряма
npmclass-variance-authority^0.7.1пряма
npmclsx^2.1.1пряма
npmcmdk^1.1.1пряма
npmcookie^1.1.1пряма
npmcross-env^10.1.0пряма
npmdayjs^1.11.19пряма
npmdicebear^9.2.2пряма
npmdotenv^16.4.7пряма
npmframer-motion^12.23.6пряма
npmgithub-markdown-css^5.8.1пряма
npmhttp-proxy^1.18.1пряма
npmi18next^25.2.1пряма
npmjs-yaml^4.1.1пряма
npmjszip^3.10.1пряма
npmkatex^0.16.11пряма
npmlucide-react^0.454.0пряма
npmmermaid^11.12.0пряма
npmnext^15.5.9пряма
npmnext-i18next^15.4.2пряма
npmnext-themes^0.4.4пряма
npmpapaparse^5.5.3пряма
npmpdfjs-dist5.3.93пряма
npmradix-ui^1.6.2пряма
npmreact18.2.0пряма
npmreact-d3-tree^3.6.6пряма
npmreact-dom18.2.0пряма
npmreact-hook-form^7.54.1пряма
npmreact-i18next^15.5.3пряма
npmreact-markdown^9.0.3пряма
npmreact-pdf10.1.0пряма
npmreact-shiki^0.10.1пряма
npmreact-syntax-highlighter^16.1.0пряма
npmrecharts^2.15.0пряма
npmrehype-katex^7.0.1пряма
npmrehype-raw^7.0.0пряма
npmremark-gfm^4.0.1пряма
npmremark-math^6.0.0пряма
npmremark-parse^11.0.0пряма
npmremark-rehype^11.1.0пряма
npmtailwind-merge^3пряма
npmtw-animate-css^1.4.0пряма
npmtw-shimmer^0.4.11пряма
npmunified^11.0.0пряма
npmunist-util-visit^5.0.0пряма
npmuuid^11.1.0пряма
npmzustand^5.0.9пряма
PyPIaiofilesпряма
PyPIaiohttpпряма
PyPIauthlibпряма
PyPIboto3пряма
PyPIbotocoreпряма
PyPIcroniterпряма
PyPIcryptographyпряма
PyPIdefusedxmlпряма
PyPIdockerпряма
PyPIebooklib0.20пряма
PyPIelasticsearch8.17.2пряма
PyPIemail-validatorпряма
PyPIexa-py1.14.0пряма
PyPIfastapiпряма
PyPIfastmcpпряма
PyPIgreenletпряма
PyPIhttpxпряма
PyPIijson3.5.0пряма
PyPIjiebaпряма
PyPIjsonrefпряма
PyPIkubernetesпряма
PyPIlangchainпряма
PyPIlangchain-text-splitters1.1.2пряма
PyPImcpпряма
PyPImcpadaptпряма
PyPImem0ai0.1.117пряма
PyPInumpyпряма
PyPIopenaiпряма
PyPIopenjiuwenпряма
PyPIopenpyxlпряма
PyPIorjson3.10пряма
PyPIparamikoпряма
PyPIpillowпряма
PyPIpsycopg2-binaryпряма
PyPIpydanticпряма
PyPIpydantic-settingsпряма
PyPIpyjwtпряма
PyPIpymssqlпряма
PyPIpymysqlпряма
PyPIpypandoc1.17пряма
PyPIpypdf6.9.1пряма
PyPIpython-docxпряма
PyPIpython-dotenvпряма
PyPIpython-multipartпряма
PyPIpython-pptx1.0.2пряма
PyPIpyyamlпряма
PyPIredisпряма
PyPIrequestsпряма
PyPIrichпряма
PyPIruamel-yaml0.19.1пряма
PyPIscikit-learnпряма
PyPIsetuptoolsпряма
PyPIsmolagents1.23.0пряма
PyPIsqlalchemyпряма
PyPIsupabaseпряма
PyPItiktokenпряма
PyPIuvicornпряма
PyPIwebsocket-clientпряма
PyPIwebsocketsпряма
PyPIxlrdпряма
npm@tailwindcss/postcss^4непряма
npm@types/js-yaml^4.0.9непряма
npm@types/node22.15.16непряма
npm@types/papaparse^5.3.16непряма
npm@types/react18.3.20непряма
npm@types/react-dom18.3.6непряма
npmeslint^9.34.0непряма
npmeslint-config-next15.5.7непряма
npmeslint-config-prettier^9.1.0непряма
npmeslint-plugin-prettier^5.1.3непряма
npmpostcss^8непряма
npmpostcss-nested^7непряма
npmprettier^3.2.5непряма
npmtailwindcss^4непряма
npmtypescript5.8.3непряма
npmvitepress^1.6.3непряма
PyPIceleryнепряма
PyPIflowerнепряма
PyPIhuggingface-hubнепряма
PyPInest-asyncioнепряма
PyPIopentelemetry-apiнепряма
PyPIopentelemetry-exporter-otlpнепряма
PyPIopentelemetry-instrumentationнепряма
PyPIopentelemetry-instrumentation-fastapiнепряма
PyPIopentelemetry-instrumentation-requestsнепряма
PyPIopentelemetry-sdkнепряма
PyPIopentelemetry-semantic-conventionsнепряма
PyPIpytestнепряма
PyPIrayнепряма
PyPIruffнепряма
PyPIunstructured0.18.14непряма
PyPIunstructured-inference1.2.0непряма
Сповіщення про залежності 3

Встановлення pypi:nexent@1.8.1 тягне 121 пакетів, прямих і транзитивних: 3 мають відомі сповіщення, з них 3 — прямі залежності.

ПакетВерсіяЗв'язокКритичністьСповіщеньВиправлено в
fastmcp2.12.0прямакритична143.2.0
smolagents1.23.0прямакритична6
mcp1.22.0прямависока61.28.1

Сповіщення означає, що версія, записана в графі залежностей, потрапляє в уражений діапазон. Досяжність не аналізується, а граф містить піниї розробки й тестування — знахідка може стосуватися інструментів, а не поставленого коду.

Звіт у форматі JSON машиночитний
{
  "data": {
    "repo": {
      "topics": [
        "agent",
        "agentic-ai",
        "agentic-framework",
        "agentic-rag",
        "agentic-workflow",
        "ai",
        "llm",
        "rag",
        "harness",
        "harness-engineering",
        "mcp",
        "multi-agent"
      ],
      "is_fork": false,
      "size_kb": 67966,
      "has_wiki": false,
      "homepage": null,
      "languages": {
        "CSS": 33887,
        "HTML": 31380,
        "Shell": 477221,
        "Elixir": 1068,
        "Python": 15620897,
        "PLpgSQL": 226596,
        "Dockerfile": 26680,
        "JavaScript": 22625,
        "TypeScript": 4646872,
        "Go Template": 8554
      },
      "pushed_at": "2026-07-27T01:59:23Z",
      "created_at": "2025-04-28T10:44:33Z",
      "owner_type": "Organization",
      "updated_at": "2026-07-27T01:59:27Z",
      "description": "Nexent is a zero-code platform for auto-generating production-grade AI agents using Harness Engineering principles — unified tools, skills, memory, and orchestration with built-in constraints, feedback loops, and control planes.",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "MIT",
      "default_branch": "develop",
      "license_spdx_raw": "MIT",
      "primary_language": "Python",
      "significant_languages": [
        "Python",
        "TypeScript"
      ]
    },
    "owner": {
      "blog": null,
      "name": null,
      "type": "Organization",
      "login": "ModelEngine-Group",
      "company": null,
      "location": null,
      "followers": 851,
      "avatar_url": "https://avatars.githubusercontent.com/u/200162819?v=4",
      "created_at": "2025-02-21T01:37:13Z",
      "is_verified": null,
      "public_repos": 20,
      "account_age_days": 521
    },
    "license": {
      "state": "standard",
      "spdx_id": "MIT",
      "raw_spdx": "MIT",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "v2.3.0",
          "kind": "minor",
          "published_at": "2026-07-16T02:38:53Z"
        },
        {
          "tag": "v2.2.2",
          "kind": "patch",
          "published_at": "2026-07-01T09:16:31Z"
        },
        {
          "tag": "v2.2.1",
          "kind": "patch",
          "published_at": "2026-06-18T09:37:29Z"
        },
        {
          "tag": "v2.2.0",
          "kind": "minor",
          "published_at": "2026-06-03T02:37:16Z"
        },
        {
          "tag": "v2.1.1",
          "kind": "patch",
          "published_at": "2026-05-15T10:15:56Z"
        },
        {
          "tag": "v2.1.0",
          "kind": "minor",
          "published_at": "2026-04-30T09:36:40Z"
        },
        {
          "tag": "v2.0.2",
          "kind": "patch",
          "published_at": "2026-04-18T03:20:17Z"
        },
        {
          "tag": "v2.0.1",
          "kind": "patch",
          "published_at": "2026-04-10T09:13:17Z"
        },
        {
          "tag": "v2.0.0",
          "kind": "major",
          "published_at": "2026-03-29T01:59:37Z"
        },
        {
          "tag": "v1.8.1",
          "kind": "patch",
          "published_at": "2026-03-14T06:34:59Z"
        },
        {
          "tag": "v1.8.0.2",
          "kind": "other",
          "published_at": "2026-03-08T13:47:05Z"
        },
        {
          "tag": "v1.8.0.1-hotfix",
          "kind": "other",
          "published_at": "2026-03-04T06:11:09Z"
        },
        {
          "tag": "v1.8.0.1",
          "kind": "other",
          "published_at": "2026-02-28T12:30:28Z"
        },
        {
          "tag": "v1.8.0",
          "kind": "minor",
          "published_at": "2026-02-13T08:04:19Z"
        },
        {
          "tag": "v1.7.10-hotfix",
          "kind": "prerelease",
          "published_at": "2026-02-06T11:39:53Z"
        },
        {
          "tag": "v1.7.10",
          "kind": "patch",
          "published_at": "2026-01-31T08:50:50Z"
        },
        {
          "tag": "v1.7.9.3",
          "kind": "other",
          "published_at": "2026-01-23T15:49:21Z"
        },
        {
          "tag": "v1.7.9.2",
          "kind": "other",
          "published_at": "2026-01-16T09:35:40Z"
        },
        {
          "tag": "v1.7.9.1",
          "kind": "other",
          "published_at": "2026-01-09T10:18:34Z"
        },
        {
          "tag": "v1.7.9",
          "kind": "patch",
          "published_at": "2025-12-27T10:02:24Z"
        },
        {
          "tag": "v1.7.8.1",
          "kind": "other",
          "published_at": "2025-12-19T09:52:15Z"
        },
        {
          "tag": "v1.7.8",
          "kind": "patch",
          "published_at": "2025-12-12T10:25:39Z"
        },
        {
          "tag": "v1.7.7.1",
          "kind": "other",
          "published_at": "2025-12-05T11:31:31Z"
        },
        {
          "tag": "v1.7.7",
          "kind": "patch",
          "published_at": "2025-11-29T11:48:53Z"
        },
        {
          "tag": "v1.7.6",
          "kind": "patch",
          "published_at": "2025-11-21T12:15:09Z"
        },
        {
          "tag": "v1.7.5.3-hotfix",
          "kind": "other",
          "published_at": "2025-11-17T07:02:05Z"
        },
        {
          "tag": "v1.7.5.3",
          "kind": "other",
          "published_at": "2025-11-15T07:11:26Z"
        },
        {
          "tag": "v1.7.5.2",
          "kind": "other",
          "published_at": "2025-11-11T01:36:18Z"
        },
        {
          "tag": "v1.7.5.1",
          "kind": "other",
          "published_at": "2025-10-31T09:20:30Z"
        },
        {
          "tag": "v1.7.5",
          "kind": "patch",
          "published_at": "2025-10-25T07:35:24Z"
        },
        {
          "tag": "v1.7.4.1",
          "kind": "other",
          "published_at": "2025-10-17T11:06:29Z"
        },
        {
          "tag": "v1.7.4",
          "kind": "patch",
          "published_at": "2025-09-30T07:47:09Z"
        },
        {
          "tag": "v1.7.3.4",
          "kind": "other",
          "published_at": "2025-09-19T09:49:05Z"
        },
        {
          "tag": "v1.7.3.3",
          "kind": "other",
          "published_at": "2025-09-12T10:12:31Z"
        },
        {
          "tag": "v1.7.3.2",
          "kind": "other",
          "published_at": "2025-09-05T09:45:26Z"
        },
        {
          "tag": "v1.7.3",
          "kind": "patch",
          "published_at": "2025-08-29T10:08:41Z"
        },
        {
          "tag": "v1.7.2.2",
          "kind": "other",
          "published_at": "2025-08-22T10:19:31Z"
        },
        {
          "tag": "v1.7.2",
          "kind": "patch",
          "published_at": "2025-08-15T07:41:14Z"
        },
        {
          "tag": "v1.7.1",
          "kind": "patch",
          "published_at": "2025-08-08T10:40:10Z"
        },
        {
          "tag": "v1.7.0",
          "kind": "minor",
          "published_at": "2025-08-04T02:12:38Z"
        },
        {
          "tag": "v1.6.0",
          "kind": "minor",
          "published_at": "2025-07-26T10:21:29Z"
        },
        {
          "tag": "v1.5.0",
          "kind": "minor",
          "published_at": "2025-07-18T03:40:53Z"
        },
        {
          "tag": "v1.4.0",
          "kind": "minor",
          "published_at": "2025-07-11T07:35:06Z"
        },
        {
          "tag": "v1.3.0",
          "kind": "minor",
          "published_at": "2025-07-04T06:57:29Z"
        },
        {
          "tag": "v1.2.0",
          "kind": "minor",
          "published_at": "2025-06-28T09:48:10Z"
        },
        {
          "tag": "v1.1.0",
          "kind": "minor",
          "published_at": "2025-06-20T12:40:23Z"
        },
        {
          "tag": "v1.0.0",
          "kind": "major",
          "published_at": "2025-06-16T06:59:31Z"
        },
        {
          "tag": "v0.2.0",
          "kind": "minor",
          "published_at": "2025-06-09T10:36:02Z"
        },
        {
          "tag": "v0.1.2",
          "kind": "patch",
          "published_at": "2025-06-06T02:47:31Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "43e55d41aa6929e2688451c7d95c0d28e0e9637f",
          "body": "* 🐛 Bugfix: remove northbound stream returning conversation_id\n\n* 🐛 Bugfix: remove northbound stream returning conversation_id",
          "is_bot": false,
          "headline": "🐛 Bugfix: remove northbound stream returning conversation_id (#3487)",
          "author_name": "Lifeng-Chen",
          "author_login": "Lifeng-Chen",
          "committed_at": "2026-07-27T01:59:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "687282c116f2966be25846daf261f921258dbe99",
          "body": "…ws (#3495)\n\n* ✨ Feat: Extend in-app notifications to MCP and skill repository reviews\n\nNotify publishers and reviewers on submit/approve/reject for MCP and skill\nlistings, with listing/review content, navbar deep-links into mcp/skill space,\nand shared apply/review modals aligned with agent reposito\n[…]\nrs and reviewers on submit/approve/reject for MCP and skill\nlistings, with listing/review content, navbar deep-links into mcp/skill space,\nand shared apply/review modals aligned with agent repository.",
          "is_bot": false,
          "headline": "✨ Feat: Extend in-app notifications to MCP and skill repository revie…",
          "author_name": "Lifeng-Chen",
          "author_login": "Lifeng-Chen",
          "committed_at": "2026-07-27T01:58:18Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "9dfb434f7a15d3ccc658af9e9da383852c34281a",
          "body": "* Configure default super admin password for offline deployments\n\n* Document offline deployment package building and installation\n\n* Add offline deployment config reuse and env template merging\n\n* Document administrator password retrieval in installation guides\n\n---------\n\nCo-authored-by: hhhhsc <name>",
          "is_bot": false,
          "headline": "Configure offline deployment settings and documentation (#3490)",
          "author_name": "hhhhsc701",
          "author_login": "hhhhsc701",
          "committed_at": "2026-07-25T09:00:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "10ab9b86b4841b245aafb3b3d3087302b70e41e5",
          "body": "* Bugfix: 确保返回到agent-landing页面时,先创建并切换到一个新的 assistant-ui 线程,再设置 Agent\n\n* Feat: add subagent call style & planning to do list\n\n* fix ut\n\n* Potential fix for pull request finding\n\nCo-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>\n\n* fix ut\n\n* add ut\n\n* fix ut\n\n* add ut\n\n* add ut\n\n* add ut\n\n* add ut\n\n* add ut\n\n* fix:  并行执行两个工具或子代理时,嵌套深度会互相污染的问题\n\n---------\n\nCo-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "✨ Feat: add subagent call style & planning to do list (#3492)",
          "author_name": "xuyaqi",
          "author_login": "xuyaqist",
          "committed_at": "2026-07-25T09:00:14Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "c8bf4caafce63f2e38f9521d602ade02a151290a",
          "body": null,
          "is_bot": false,
          "headline": ":art: select all tools & skills; grouping tools (#3491)",
          "author_name": "MoeexT",
          "author_login": "MoeexT",
          "committed_at": "2026-07-25T08:58:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1b055ed83d7e665a563f085e2dfbe40d1799b66c",
          "body": "* feat(agent-config): add agent and skill search\n\n* refactor(agent-config): reduce selector duplication",
          "is_bot": false,
          "headline": "feat: add agent and skill search (#3486)",
          "author_name": "MoeexT",
          "author_login": "MoeexT",
          "committed_at": "2026-07-24T07:39:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f4d6d6e392228e0c5a31eb1f0f2bb38ef64900b6",
          "body": "…om/ModelEngine-Group/nexent/issues/3339 (#3483)\n\n* 🐛 Bugfix: Implement knowledge base read permission controls and filtering (#3339)\n\n* ✨ Add unit tests for permission_utils: Implement comprehensive tests for knowledge base edit and read permission checks, ensuring correct HTTP status code mapping for various scenarios. This includes handling ValueError and PermissionError exceptions, validating the behavior of the FastAPI adapter layer.",
          "is_bot": false,
          "headline": "🐛bugfix:fix the kb retrieval privilege control,close https://github.c…",
          "author_name": "DongJiBao2001",
          "author_login": "DongJiBao2001",
          "committed_at": "2026-07-23T06:53:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8aa7cce526b0ef6f29496aa1d9957e3a20f19fe2",
          "body": "…(#3480)\n\n* feat: align skill repository behavior with agents\n\n* feat: align skill visibility and repository permissions\n\n* fix: align skill sorting and agent config editing\n\n* test: isolate skill service module mocks\n\n* chore: move skill migration to v2.4.0\n\n* fix: hide group settings in read-only skill detail\n\n* fix: refine skill detail editor and quality checks\n\n* add test case\n\n* fix test case\n\n* add test case",
          "is_bot": false,
          "headline": "✨ Feat: align skill repository permissions and lifecycle with agents …",
          "author_name": "Summer-Si",
          "author_login": "Summer-Si",
          "committed_at": "2026-07-23T06:19:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b08fc42910dba6af6098a51cda7204432131a971",
          "body": "…t formatting (#3482)\n\nPR #3475 refactored prompt management from YAML templates into the\ncontext-based formatting system. The parallel scheduling guidance for\nManager agents was previously defined in manager_system_prompt_template_*.yaml\nand was lost during the migration.\n\nThis commit restores the guidance in the new location:\n- sdk/nexent/core/agents/context/formatting.py (en + zh)\n\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "✨ sync: restore parallel optimization guidance in context-based promp…",
          "author_name": "cj2026-bit",
          "author_login": "cj2026-bit",
          "committed_at": "2026-07-23T02:06:55Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "15f7e91040b111fe367b63adaddaa1de937d35c5",
          "body": "* basic\n\n* mcp用户权限\n\n* test case fix\n\n* test case fix\n\n* test case fix\n\n* test case fix\n\n* test case fix\n\n* test case fix\n\n* add test case\n\n* fix test case\n\n* add test case\n\n* fix test case\n\n* add test case\n\n* add test case\n\n* sql migrations\n\n* MCP space UI\n\n* agent配置可见性修改\n\n* 本地镜像标签可见性修改\n\n* 存量mcp权限设置",
          "is_bot": false,
          "headline": "feat: MCP space - group permissions and field-level sharing (#3470)",
          "author_name": "Hankin",
          "author_login": "menglinghan",
          "committed_at": "2026-07-23T02:05:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2c0fe1a3ced18e5f5b3745baebe07c1012701576",
          "body": "…torTool (#3481)\n\nBug: MCP tool refresh fails when scanning all tool classes because\nParallelExecutorTool lacks the 'category' attribute that other tools\ndefine (e.g. store_memory uses DATABASE, search_memory uses SEARCH).\n\nTrigger: MCP service refresh iterates over all tool classes and\naccesses .ca\n[…]\n=1 which returned\n{'message': 'Tool count refreshed', 'status': 'success'}. Previously\nthis would have failed with AttributeError during tool iteration.\n\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "🐛 fix: add missing category and tool_sign attributes to ParallelExecu…",
          "author_name": "cj2026-bit",
          "author_login": "cj2026-bit",
          "committed_at": "2026-07-23T01:13:32Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "f0a4165f4495e686e1c8c153171baeab3e6540f5",
          "body": "…cted with wrong tenant_id (#3465)\n\n* 🐛 Bugfix: SkillManager lifecycle bug causing local_skill_path constructed with wrong tenant_id\n\n* 🧪 Update test files\n\n* 🐛 Bugfix: SkillManager lifecycle bug causing local_skill_path constructed with wrong tenant_id\n\n* 🧪 Update test files\n\n* 🧪 Update test files\n\n* 🧪 Update test files\n\n* 🧪 Update test files",
          "is_bot": false,
          "headline": "🐛 Bugfix: SkillManager lifecycle bug causing local_skill_path constru…",
          "author_name": "Xia Yichen",
          "author_login": "Jasonxia007",
          "committed_at": "2026-07-23T01:02:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2ae356381482704eddd3bd088dd1c0a2769bfdbe",
          "body": "* ✨ Feature: Secure sandbox and control\n[Specification Details]\n1. A Docker container is launched to serve as a sandbox; different `agent_run` instances request distinct Jupyter kernels and execute code within them.\n\n* ✨ Feature: Secure sandbox and control\n[Specification Details]\n1. Fix test cases.\n\n[…]\n: Secure sandbox and control\n[Specification Details]\n1. Add image build to workflows.\n2. Add image properties auto change to deployment.\n\n---------\n\nCo-authored-by: XUYAQIDE\\xuyaq <xuyaqist@gmail.com>",
          "is_bot": false,
          "headline": "✨ Feature: Secure sandbox and control (#3456)",
          "author_name": "panyehong",
          "author_login": "YehongPan",
          "committed_at": "2026-07-23T01:01:09Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "007ded3901c20734eee1ff1bbf9c9ecd01ce5c26",
          "body": "* Release/v2.2.1 (#3269)\n\n* add_greeting_fields_to_agent-develop\n\n* feat(knowledge-base): add preserve_source_file and post-index source cleanup\n\nLet knowledge bases opt out of keeping uploaded MinIO copies after indexing\nwhile retaining Elasticsearch chunks for retrieval. Default behavior remains\np\n[…]\n-authored-by: Dallas98 <990259227@qq.com>\nCo-authored-by: frr <64584192+wuyuanfr@users.noreply.github.com>\nCo-authored-by: jeffwu <meetjeff.wu@gmail.com>\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Feat: Add agent guardrail (safety content screening) (#3443)",
          "author_name": "JeffWu",
          "author_login": "jeffwu-1999",
          "committed_at": "2026-07-22T09:06:31Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "c7a7ae5052dab662bf86038ecc983106d8a4b3d5",
          "body": "… (#3477)\n\n* ✨ Feat: Add in-app notifications for agent repository review workflow\n\nNotify publishers and reviewers on submit/approve/reject, with navbar bell UI,\nreview opinion content, and deep-link navigation into agent space.\n\n* ✨ Feat: Add in-app notifications for agent repository review workfl\n[…]\npp notifications for agent repository review workflow\n\nNotify publishers and reviewers on submit/approve/reject, with navbar bell UI,\nreview opinion content, and deep-link navigation into agent space.",
          "is_bot": false,
          "headline": "✨ Feat: Add in-app notifications for agent repository review workflow…",
          "author_name": "Lifeng-Chen",
          "author_login": "Lifeng-Chen",
          "committed_at": "2026-07-22T07:14:17Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "59fc453c62dda3a397a1e00af2c55e1ce367821d",
          "body": "…context runtime (#3475)\n\n* refactor(context): enforce authorized run snapshots\n\n* refactor(context): remove legacy runtime assembly\n\n* refactor(context): replace components with context items\n\n* refactor(context): unify agent context modules\n\n* feat(context): add layered selection policy\n\n* feat(co\n[…]\n\n* test context helper edge cases\n\n* fix context test float assertion\n\n* test context rendering and manager boundaries\n\n* refactor agent context manager ownership\n\n* fix sonar agent execution findings",
          "is_bot": false,
          "headline": "feat(context): introduce ContextItems and adaptive compaction, unify …",
          "author_name": "Jason Wang",
          "author_login": "JasonW404",
          "committed_at": "2026-07-22T07:13:41Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "30bb3a800e71ec675d2f2feb6ad1eac77cf23e64",
          "body": "…chat page (#3479)\n\n* feat: refactor chat\n\n* fix frontend type-check\n\n* Bugfix: 修复message_index 与对话轮次错位问题\n\n* fix ut\n\n* add try catch\n\n* fix ut\n\n* fix ut\n\n* 新增ut\n\n* add ut\n\n* Bugfix: Add compatibility for Markdown rendering in old chat page\n\n* add sql\n\n* 删除之前sql创建的权限点\n\n* 优化前端\n\n* 优化前端\n\n* 优化前端\n\n* 兼容模型token_threshold为null的情况\n\n* 修复历史记录页面无法正常返回agent选择页面\n\n* Bugfix: fix sql & filter agent list to show only main agent on new chat page",
          "is_bot": false,
          "headline": "🐛 Bugfix: fix sql & filter agent list to show only main agent on new …",
          "author_name": "xuyaqi",
          "author_login": "xuyaqist",
          "committed_at": "2026-07-22T06:06:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "52d12525338f1df3c6f4594be8147035d841fecf",
          "body": "* ✨ Feature: Planing agent (backend)\n\n* ✨ Feature: Planing agent (ut)\n\n* ✨ Feature: Planing agent (ut)",
          "is_bot": false,
          "headline": "✨ Feature: Planing agent (backend) (#3432)",
          "author_name": "WMC001",
          "author_login": "WMC001",
          "committed_at": "2026-07-22T04:31:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8442a120665531bec0fdfba3bdcb29f447de9f0b",
          "body": "…#3476)\n\n* feat: refactor chat\n\n* fix frontend type-check\n\n* Bugfix: 修复message_index 与对话轮次错位问题\n\n* fix ut\n\n* add try catch\n\n* fix ut\n\n* fix ut\n\n* 新增ut\n\n* add ut\n\n* Bugfix: Add compatibility for Markdown rendering in old chat page\n\n* add sql\n\n* 删除之前sql创建的权限点\n\n* 优化前端\n\n* 优化前端\n\n* 优化前端\n\n* 兼容模型token_threshold为null的情况\n\n* 修复历史记录页面无法正常返回agent选择页面",
          "is_bot": false,
          "headline": "🐛 Bugfix: Add compatibility for Markdown rendering in old chat page (…",
          "author_name": "xuyaqi",
          "author_login": "xuyaqist",
          "committed_at": "2026-07-22T03:10:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d1db1cf4994ecbb4c746bb6c844ea270d57df3e5",
          "body": "…ts (#3460)\n\nTwo-layer severity model + three checkpoints + circuit breaker:\n- SeverityResolver: hardcoded (severity, source) -> effective_action table\n  (block+new_input→terminate, history/tool_output→mask, tool_input→block)\n- GuardrailEngine: check_input (①), check_output (②), check_tool_args (③),\n[…]\nlockedError → FinalAnswerError\n- 63 unit tests (test_guardrail_engine.py + test_guardrail_checkpoints.py)\n\nCo-authored-by: jeffwu <meetjeff.wu@gmail.com>\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "✨Feat: Add agent guardrail (safety content screening) — backend + tes…",
          "author_name": "JeffWu",
          "author_login": "jeffwu-1999",
          "committed_at": "2026-07-21T11:07:57Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "16d6db7e1b5e235776f8970ccdbd43a27971064c",
          "body": "…age sync (#3471)\n\n* 🐛Bugfix: agent version dropdown shows empty on initial render\n\n* 🐛Bugfix :Fix incomplete chunk list display in knowledge base pagination overview.\n\n* 🐛Bugfix: interactive skill creation ignores UI language",
          "is_bot": false,
          "headline": "🐛Bugfix: agent version display, chunk list scrolling, and skill langu…",
          "author_name": "Jinyu Z",
          "author_login": "ayiya12",
          "committed_at": "2026-07-21T09:10:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "522baebbdb92d2d94817f2597bd6accc67b0a737",
          "body": "* feat: refactor chat\n\n* fix frontend type-check\n\n* Bugfix: 修复message_index 与对话轮次错位问题\n\n* fix ut\n\n* add try catch\n\n* fix ut\n\n* fix ut\n\n* 新增ut\n\n* add ut",
          "is_bot": false,
          "headline": "✨ Feat: refactor chat (#3469)",
          "author_name": "xuyaqi",
          "author_login": "xuyaqist",
          "committed_at": "2026-07-21T09:08:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "22ae328161e1dddc32e85992dc4e3bc914a35d73",
          "body": "…ion (#3462)\n\n* ✨ Feature: Add parallel_executor tool for concurrent sub-agent execution\nIntroduce a system-managed parallel_executor tool that allows agents to\n  execute multiple independent tool/agent calls concurrently via\n  ThreadPoolExecutor, reducing total latency for parallelizable subtasks.\n\n[…]\nate_agent_info test suites\n\n* 🐛 fix: handle empty tool_ids in prompt_service and reset mock in create_agent_config tests\n\n* 🧪 test: add coverage for ParallelExecutorTool.forward and wrong tuple length",
          "is_bot": false,
          "headline": "✨ Feature: Add parallel_executor tool for concurrent sub-agent execut…",
          "author_name": "cj2026-bit",
          "author_login": "cj2026-bit",
          "committed_at": "2026-07-21T09:03:07Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "9e4166b9c20dcea45401bc760803b51f0cbd4bb7",
          "body": "…r rollback (#3473)\n\n* Bugfix: Resolve publish failure when latest version is deleted after rollback\n\n* fix ut",
          "is_bot": false,
          "headline": "🐛 Bugfix: Resolve publish failure when latest version is deleted afte…",
          "author_name": "xuyaqi",
          "author_login": "xuyaqist",
          "committed_at": "2026-07-21T09:01:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b076d424bc694afde229df0eb781888ef6e235bd",
          "body": "* ✨ Feat: Enhance user information retrieval by including group names in user list\n\n* fix(test): mock query_groups_by_user in test_user_service to return iterable list\n\n* perf: replace N+1 query_groups_by_user with single batch JOIN query_groups_by_users\n\n* test: add coverage for query_groups_by_users DB function and group_names field in get_users",
          "is_bot": false,
          "headline": "✨ Feat: The User tab shows which user group the user belongs to. (#3472)",
          "author_name": "DongJiBao2001",
          "author_login": "DongJiBao2001",
          "committed_at": "2026-07-21T07:46:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8e705507af044e53e517d85e601cb55f12f3ab78",
          "body": "* feat(quota): add storage quota enforcement\n\n* feat(quota): add quota management interface and warnings\n\n* :bug: developer warning depressed\n\n* feat(quota): enforce platform tenant allocation\n\n* fix: preserve quota patch field semantics\n\n* test: include quota coverage in CI suite\n\n* test: cover quota platform edge cases\n\n* fix: localize quota allocation conflicts\n\n* feat: refine platform quota overview layout\n\n* fix: restore platform quota panel scrolling",
          "is_bot": false,
          "headline": "feat: knowledgebase capacity quota and warning (#3451)",
          "author_name": "MoeexT",
          "author_login": "MoeexT",
          "committed_at": "2026-07-21T06:39:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ea3fd0711fb21310374b89737c7061f6777a1c58",
          "body": "* Feat: Add northbound API for agent detail retrieval\n\n* fix ut\n\n* add ut",
          "is_bot": false,
          "headline": "Feat: Add northbound API for agent detail retrieval (#3466)",
          "author_name": "xuyaqi",
          "author_login": "xuyaqist",
          "committed_at": "2026-07-20T12:57:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ca8cb2c542fa43d47100dc4d0e3a336b16600ee9",
          "body": "* Feat: Allow setting agent as main agent via configuration\n\n* fix ut",
          "is_bot": false,
          "headline": "✨ Feat: Allow setting agent as main agent via configuration (#3461)",
          "author_name": "xuyaqi",
          "author_login": "xuyaqist",
          "committed_at": "2026-07-20T12:57:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1a3ddfdab3697b9b84bf0becb17fac6b40d13302",
          "body": "* feat: implement agent automation features including task management and proposal handling\n\n* feat: implement agent automation features including task management and proposal handling\n\n* feat: refine automation instruction prompts to enhance clarity and intent preservation\n\n* feat: enhance automati\n[…]\ntom date-time picker for automation proposals and refactor related components\n\n* test(agent): improve automation patch coverage\n\n* feat: add turn resource command handling and automation task creation",
          "is_bot": false,
          "headline": "Add agent automation task capability (#3439)",
          "author_name": "Dallas98",
          "author_login": "Dallas98",
          "committed_at": "2026-07-20T12:40:17Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "44d1caf641613bd96ebb5e809f1870a428ea7ec0",
          "body": "…tion buttons (#3438)",
          "is_bot": false,
          "headline": "♻️ refactor: remove unused AppConfigSection and refit model config ac…",
          "author_name": "Jinyu Z",
          "author_login": "ayiya12",
          "committed_at": "2026-07-20T01:57:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2bf43341a9d258fad02e9c885d9675b8f210ccae",
          "body": null,
          "is_bot": false,
          "headline": "Improve MCP add error messages (#3448)",
          "author_name": "gjc199",
          "author_login": "gjc199",
          "committed_at": "2026-07-20T01:29:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "eb7b745ef68919fc87e30b17871f458767606001",
          "body": "…ing file analysis in the session. (#3454)",
          "is_bot": false,
          "headline": "♻️ Refactor: Fixed an issue where JSON analysis was not supported dur…",
          "author_name": "panyehong",
          "author_login": "YehongPan",
          "committed_at": "2026-07-20T01:18:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9af00c00715dec5b880830ca3e59d16323796595",
          "body": "…mas (#3446)\n\n* fix: add missing W1 capacity fields to ManageTenantModel request schemas\n\n* test: preserve capacity fields in manage model requests",
          "is_bot": false,
          "headline": "fix: add missing W1 capacity fields to ManageTenantModel request sche…",
          "author_name": "frr",
          "author_login": "wuyuanfr",
          "committed_at": "2026-07-17T06:17:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "99a9d652f0c1505080f06907b3bd6c4ecec6280b",
          "body": "* fix reported issue regressions\n\n* test: cover issue permission checks\n\n* test: cover remaining knowledge permission branches\n\n* test: cover private permission fallback branch",
          "is_bot": false,
          "headline": "🐛 Bugfix: Fix issue:#3167, #2896, #3265, #2882 (#3441)",
          "author_name": "gjc199",
          "author_login": "gjc199",
          "committed_at": "2026-07-17T02:59:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "406e061b0e162c007d63bfe2860e70b509b799a4",
          "body": "The file was introduced in PR #3396 but remained empty (0 bytes)\nwith no content or references in docker-compose configs.\n\nCo-authored-by: Claude Opus 4.7 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: remove empty docker/init.sql file (#3440)",
          "author_name": "Hankin",
          "author_login": "menglinghan",
          "committed_at": "2026-07-16T08:42:42Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "f5e18d2acd30970df265e7a504d3cc5d1f70026f",
          "body": "* fix skill creation stream parsing\n\n* fix copied skill repository publish\n\n* test skill stream and export edge cases\n\n* test remaining skill stream parser branches",
          "is_bot": false,
          "headline": "fix: skill summary  (#3430)",
          "author_name": "Summer-Si",
          "author_login": "Summer-Si",
          "committed_at": "2026-07-15T09:25:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "170216a5e955ac805178963ebba2fc49ac9b61a2",
          "body": "* feat: remove version number field from MCP edit modal\n\nCo-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>\n\n* 🐛 Fix: remove version badge from review center detail modal\n\nCo-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>\n\n* 🐛 Fix: add missing English translations for MCP page\n\nCo-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Opus 4.7 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Fix: remove mcp version number (#3429)",
          "author_name": "Hankin",
          "author_login": "menglinghan",
          "committed_at": "2026-07-15T07:34:18Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "48575bf9486baba541b630e19167891f724d521a",
          "body": null,
          "is_bot": false,
          "headline": "fix: MCP space - api and frontend bug fixes (#3427)",
          "author_name": "Hankin",
          "author_login": "menglinghan",
          "committed_at": "2026-07-15T01:50:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5309caf5d49e18cc1416504410fd84853352dddf",
          "body": null,
          "is_bot": false,
          "headline": "Fix agent skill unselect persistence (#3426)",
          "author_name": "Summer-Si",
          "author_login": "Summer-Si",
          "committed_at": "2026-07-15T01:49:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fae07eeb8ea8b73773b4c20df7ae500cfbd8bb66",
          "body": "…9 (#3424)",
          "is_bot": false,
          "headline": "🐛 Fix sequence OWNED BY before table creation in migration v2.3.0_070…",
          "author_name": "Hankin",
          "author_login": "menglinghan",
          "committed_at": "2026-07-14T07:33:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d0983c9d8a05a891bc89ac4cb27278864cc5ebe2",
          "body": "…quests to frontend only (#3422)\n\n* Bugfix:add crypto.randomUUID() fallback in http\n\n* Bugfix: Update homepage redirect link\n\n* Refactor: Auto-create conversation when conversation_id is empty in agent/run\n\n* Bugfix: skip conversation auto-create in debug mode\n\n* 修复单元测试\n\n* 新增UT\n\n* 新增UT测试\n\n* 修改单元测试\n\n\n[…]\n token refresh requests to frontend only\"\n\nThis reverts commit fb7a2934a5bd6cce111f6b349b8190f52b177e04.\n\n* Bugfix: Disable Supabase auto refrsh token, restrict token refresh requests to frontend only",
          "is_bot": false,
          "headline": "Bugfix: Disable Supabase auto refrsh token, restrict token refresh re…",
          "author_name": "xuyaqi",
          "author_login": "xuyaqist",
          "committed_at": "2026-07-14T06:16:22Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "0a6892f9d2c82e3c5447b0a2947f61d84a6b7e64",
          "body": "* mcp web\n\n* mcp web\n\n* mcp web\n\n* mcp web\n\n* mcp web\n\n* mcp web\n\n* delete version\n\n* delete version\n\n* local mirror\n\n* 修复工具验证问题以及工具数量显示问题\n\n* 增加自定义外部市场mcp名称功能;\n增加mcp重复命名检查;\n\n* 增加工具数量更新功能\n\n* 增加工具数量更新功能\n\n* 修复仓库的工具数量显示问题;\n修复mcp删除bug\n\n* “我的”mcp“申请上架”逻辑问题\n\n* 修复“我的”mcp开发者显示问题;\n修复mcp删除后没有同步到智能体开发mcp列表问题;\n\n\n[…]\nGate\n\n* test case\n\n* 前端修改\n\n* 审核机制及表设计按照agent仓库修改\n\n* 审核机制及表设计按照agent仓库修改\n\n* test cases\n\n* test cases\n\n* test cases\n\n* test cases\n\n* bug fix\n\n* Delete k8s/helm/nexent/charts/nexent-common/files/init.sql",
          "is_bot": false,
          "headline": "fix: Clean up leftover file (#3421)",
          "author_name": "Hankin",
          "author_login": "menglinghan",
          "committed_at": "2026-07-14T06:05:21Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "cefad226490b948db96e0ed89b6d25b6497b3e61",
          "body": null,
          "is_bot": false,
          "headline": "fix: remove duplicate skill locale keys (#3423)",
          "author_name": "Summer-Si",
          "author_login": "Summer-Si",
          "committed_at": "2026-07-14T06:04:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "228f3d8da8917c01858a48ff0729ca84cdbedcc2",
          "body": "* fix: update skill repository action wording\n\n* fix: update skill repository action wording\n\n* fix: internationalize skill repository UI",
          "is_bot": false,
          "headline": "🐛 Bugfix: update skill repository action wording (#3418)",
          "author_name": "Summer-Si",
          "author_login": "Summer-Si",
          "committed_at": "2026-07-14T03:35:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a8a3164dc3189ff3920445d5ef69b28ff41ce4d7",
          "body": null,
          "is_bot": false,
          "headline": "Bump version from v2.2.2 to v2.3.0",
          "author_name": "Dallas98",
          "author_login": "Dallas98",
          "committed_at": "2026-07-14T03:15:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "baeff29ca1c0f2e74a66c3574b455c775df0a83d",
          "body": "…hunks listing and hybrid search endpoints(#3416)\n\n* feat: move /owner-manage left-nav from ASSET_OWNER to SU, add index chunks listing and hybrid search endpoints\n\n* feat: move /owner-manage left-nav from ASSET_OWNER to SU, add index chunks listing and hybrid search endpoints\n\n* feat: move /owner-manage left-nav from ASSET_OWNER to SU, add index chunks listing and hybrid search endpoints",
          "is_bot": false,
          "headline": "feat: move /owner-manage left-nav from ASSET_OWNER to SU, add index c…",
          "author_name": "Lifeng-Chen",
          "author_login": "Lifeng-Chen",
          "committed_at": "2026-07-14T03:09:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d661a6865d803072af06d4c17cfa8e29f3f73c11",
          "body": "…selected (#3415)",
          "is_bot": false,
          "headline": "🐛 Bugfix: Fix skill count display error when delete a skill has been …",
          "author_name": "WMC001",
          "author_login": "WMC001",
          "committed_at": "2026-07-14T02:06:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0070b9ebce63da06f01dffa67255ff97c7f14a9a",
          "body": "…r (#3396)\n\n* mcp web\n\n* mcp web\n\n* mcp web\n\n* mcp web\n\n* mcp web\n\n* mcp web\n\n* delete version\n\n* delete version\n\n* local mirror\n\n* 修复工具验证问题以及工具数量显示问题\n\n* 增加自定义外部市场mcp名称功能;\n增加mcp重复命名检查;\n\n* 增加工具数量更新功能\n\n* 增加工具数量更新功能\n\n* 修复仓库的工具数量显示问题;\n修复mcp删除bug\n\n* “我的”mcp“申请上架”逻辑问题\n\n* 修复“我的”mcp开发者显示问题;\n修复mcp删除后没有同步到智能体\n[…]\nBACKEND_MAPPING.md\n\n* 更新测试用例\n\n* fix test case\n\n* Quality Gate\n\n* Quality Gate\n\n* test case\n\n* 前端修改\n\n* 审核机制及表设计按照agent仓库修改\n\n* 审核机制及表设计按照agent仓库修改\n\n* test cases\n\n* test cases\n\n* test cases\n\n* test cases",
          "is_bot": false,
          "headline": "✨ Feature: MCP market restructure — Repository, My MCPs, Review Cente…",
          "author_name": "Hankin",
          "author_login": "menglinghan",
          "committed_at": "2026-07-14T01:40:59Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e218281868bead9ef476dfcafbb7e27efe21b42a",
          "body": "Co-authored-by: root <root@DESKTOP-UARO3HF.localdomain>",
          "is_bot": false,
          "headline": "Add OAuth login mode config and forced redirect handling (#3414)",
          "author_name": "hhhhsc701",
          "author_login": "hhhhsc701",
          "committed_at": "2026-07-14T01:40:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e341ff5ddd1742af7671306b6b9bc0efcb58d32d",
          "body": "* Add skill repository backend APIs\n\n* Add skill repository frontend flow\n\n* Refine skill repository build UI\n\n* feat: add skill edit modal state\n\n* feat: improve skill repository copy, edit, and review flows\n\n* feat: refine agent config skill management\n\n* test: add skill repository coverage and re\n[…]\ne skill path test setup\n\n* test: cover skill update by id workflow\n\n* fix: resolve skill repository quality gate issues\n\n* fix: test\n\n---------\n\nCo-authored-by: sumi2234 <sumi2234@noreply.atomgit.com>",
          "is_bot": false,
          "headline": "✨ Feature: add skill repository lifecycle and management UI (#3393)",
          "author_name": "Summer-Si",
          "author_login": "Summer-Si",
          "committed_at": "2026-07-13T02:09:36Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "20bad41e852474f5d66a2c270edc64ef048dc21c",
          "body": "* feat: 支持web config runtime northbound多副本\n\n* Use ReadWriteMany for Kubernetes persistence defaults\n\n* Normalize PR diff line endings\n\n* fix: 修复单测\n\n* Fix agent service unit test mocks\n\n* feat: 默认单实例\n\n* feat: 补充单测\n\n* feat: 补充单测\n\n* feat: enhance deployment options persistence and loading mechanism\n\n* feat: remove multi-replica mode references and improve error logging in northbound service\n\n---------\n\nCo-authored-by: root <root@DESKTOP-UARO3HF.localdomain>",
          "is_bot": false,
          "headline": "支持web config runtime northbound多副本 (#3390)",
          "author_name": "hhhhsc701",
          "author_login": "hhhhsc701",
          "committed_at": "2026-07-13T02:06:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3ee20b44a0581976672464237b51730e279e87e8",
          "body": null,
          "is_bot": false,
          "headline": "fix context manager builtin tool context (#3401)",
          "author_name": "Jason Wang",
          "author_login": "JasonW404",
          "committed_at": "2026-07-13T01:42:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4a48c18dcae2c7b9c340394c12524765f7c02107",
          "body": "…s for the agent. (#3400)\n\n* ♻️ Refactor: Remove the limit on the maximum number of execution steps for the agent.\n\n* ♻️ Refactor: Remove the limit on the maximum number of execution steps for the agent.\n\n* ♻️ Refactor: Remove the limit on the maximum number of execution steps for the agent.",
          "is_bot": false,
          "headline": "♻️ Refactor: Remove the limit on the maximum number of execution step…",
          "author_name": "panyehong",
          "author_login": "YehongPan",
          "committed_at": "2026-07-10T07:37:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5f13d6eba250e4b01e0764cad7a52ef513f70d3b",
          "body": "* fix: persist conversation agent and verify jwt expiry\n\n* test: cover conversation agent and jwt expiry changes\n\n* fix: refresh published agents after deletion\n\n* 11",
          "is_bot": false,
          "headline": "🐛Bugfix: Persist conversation agent and verify jwt expiry (#3392)",
          "author_name": "gjc199",
          "author_login": "gjc199",
          "committed_at": "2026-07-10T07:10:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2a9832cb0f1aa74b5bff5b12a3119397988adb19",
          "body": null,
          "is_bot": false,
          "headline": "Disable context component budget pruning (#3394)",
          "author_name": "Jason Wang",
          "author_login": "JasonW404",
          "committed_at": "2026-07-10T02:07:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5a6fce7342131d76b3b3a8183996d7af53a09f36",
          "body": "…ly, if a model was selected and subsequently deleted, the agent would encounter runtime errors without any corresponding notification on the frontend. (#3397)\n\n* 🐛 Bugfix: Fixed an issue where deleted models could still be selected during debugging. + Internationalization loading description of too\n[…]\nissue with tools relying on large models: previously, if a model was selected and subsequently deleted, the agent would encounter runtime errors without any corresponding notification on the frontend.",
          "is_bot": false,
          "headline": "🐛 Bugfix: Fixed an issue with tools relying on large models: previous…",
          "author_name": "panyehong",
          "author_login": "YehongPan",
          "committed_at": "2026-07-10T01:36:03Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "1abd895dc6626fe6466b2d0f3863a9cd42441ef8",
          "body": "* 🐛 BugFix: show name conflict error inline in knowledge base input (#3251)\n\nShow error message inline below input when KB name already exists, instead of relying on input status alone. Closes #3251.\n\n- Add nameStatus state + AlertCircle icon + error text\n- Change title bar alignment from items-cent\n[…]\nm UploadArea to DocumentList via prop\n\n* 🐛 BugFix: Improve responsive layout of knowledge base creation page (#3251)\n\n* fix: improve responsive layout and prevent overflow in knowledge base components",
          "is_bot": false,
          "headline": "🐛Bugfix: Fix responsive layout issues on knowledge base page (#3381)",
          "author_name": "Jinyu Z",
          "author_login": "ayiya12",
          "committed_at": "2026-07-09T11:53:36Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "592d0cb032c5c3c4d53c4b476cf4cd229191a885",
          "body": "…s (#3367)\n\n* Release/v2.2.1 (#3269)\n\n* add_greeting_fields_to_agent-develop\n\n* feat(knowledge-base): add preserve_source_file and post-index source cleanup\n\nLet knowledge bases opt out of keeping uploaded MinIO copies after indexing\nwhile retaining Elasticsearch chunks for retrieval. Default behavi\n[…]\nnoreply.github.com>\nCo-authored-by: hhhhsc701 <56435672+hhhhsc701@users.noreply.github.com>\nCo-authored-by: Dallas98 <990259227@qq.com>\nCo-authored-by: frr <64584192+wuyuanfr@users.noreply.github.com>",
          "is_bot": false,
          "headline": "feat(agent-repository): remove categories and allow custom emoji icon…",
          "author_name": "Lifeng-Chen",
          "author_login": "Lifeng-Chen",
          "committed_at": "2026-07-09T11:50:32Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "80a5d1cc3637237c0e64af676c78998ff2ef4cf9",
          "body": "…388)\n\n* Add image registry prefix support to offline deployment\n\n* Add image registry prefix support to offline deployment\n\n* 优化构建包\n\n* Support source-suffixed offline packages and configurable init image\n\n* k8s部分参数落盘\n\n* clean code\n\n---------\n\nCo-authored-by: hhhhsc <name>",
          "is_bot": false,
          "headline": "Add image registry prefix support and optimize offline deployment (#3…",
          "author_name": "hhhhsc701",
          "author_login": "hhhhsc701",
          "committed_at": "2026-07-09T02:02:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fcff4033980c362fac331b1bd2711ff862f6ae3b",
          "body": "* 🐛 Bugfix: remove irrational fallback index logic when accurate retrieved results not appeared in semantic retrieved results\n♻️ Skill now can read files directly with relative path\n\n* 🐛 Bugfix: remove irrational fallback index logic when accurate retrieved results not appeared in semantic retrieved\n[…]\n* 🐛 Bugfix: remove irrational fallback index logic when accurate retrieved results not appeared in semantic retrieved results\n♻️ Skill now can read files directly with relative path\n\n* 🧪 Add unit test",
          "is_bot": false,
          "headline": "♻️ Skill now can read files directly with relative path (#3384)",
          "author_name": "Xia Yichen",
          "author_login": "Jasonxia007",
          "committed_at": "2026-07-08T01:42:18Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "3077bcd8f2af8352e0cbdbac3575dfa60bd6e00c",
          "body": "* Release/v2.2.1 (#3269)\n\n* add_greeting_fields_to_agent-develop\n\n* feat(knowledge-base): add preserve_source_file and post-index source cleanup\n\nLet knowledge bases opt out of keeping uploaded MinIO copies after indexing\nwhile retaining Elasticsearch chunks for retrieval. Default behavior remains\np\n[…]\n56435672+hhhhsc701@users.noreply.github.com>\nCo-authored-by: Dallas98 <990259227@qq.com>\nCo-authored-by: frr <64584192+wuyuanfr@users.noreply.github.com>\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(ragflow): add RAGFlow search tool (#3378)",
          "author_name": "jxl",
          "author_login": "jixiaolong",
          "committed_at": "2026-07-08T01:41:05Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "1bd2c1c6d3cea8e3a16c5d3d042ae5b975c799a6",
          "body": "* Use CCS tag for mainland pushes\n\n* Add no-cache support to image builds\n\n* Revamp rollout checksums for env and image changes\n\n* Add root build wrapper for image and package builds\n\n* Sync monitoring defaults and env generation\n\n* Harden monitoring deploy and uninstall cleanup\n\n* Unify monitoring \n[…]\nloy wrapper\n\n* Stop persisting appVersion in deployment config\n\n* Add defaults mode to deploy wrappers\n\n---------\n\nCo-authored-by: root <root@DESKTOP-UARO3HF.localdomain>\nCo-authored-by: hhhhsc <name>",
          "is_bot": false,
          "headline": "Enhance image builds and monitoring with no-cache and cleanup (#3344)",
          "author_name": "hhhhsc701",
          "author_login": "hhhhsc701",
          "committed_at": "2026-07-07T11:41:50Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "5c7843268a905f9560e85f175ca6b7e28219ba27",
          "body": "* fix(context): use ContextManager uncompressed baseline for save% metric\n\nPreviously _last_uncompressed_est was set from input_messages which are\nalready compressed by prepare_step, making est_raw_i always equal est_i\nand save% structurally ~0%. Now pull the truly-uncompressed token count\nfrom Cont\n[…]\ns_with_cache_extra (Sonar S100)\n\nCo-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude <noreply@anthropic.com>\nCo-authored-by: liudongfei <liudongfei4@huawei.com>",
          "is_bot": false,
          "headline": "Feat/opt agent context refactor v2 (#3383)",
          "author_name": "liudfgoo",
          "author_login": "liudfgoo",
          "committed_at": "2026-07-07T07:39:45Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "76bab69ab236543f358c15247ac4dbef0dd34c7c",
          "body": "…n agent/run (#3380)\n\n* Bugfix:add crypto.randomUUID() fallback in http\n\n* Bugfix: Update homepage redirect link\n\n* Refactor: Auto-create conversation when conversation_id is empty in agent/run\n\n* Bugfix: skip conversation auto-create in debug mode\n\n* 修复单元测试\n\n* 新增UT\n\n* 新增UT测试\n\n* 修改单元测试",
          "is_bot": false,
          "headline": "♻️ Refactor: Auto-create conversation when conversation_id is empty i…",
          "author_name": "xuyaqi",
          "author_login": "xuyaqist",
          "committed_at": "2026-07-07T03:20:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a4d7b6ce2d4bab46b99a765c5b3463d5c5b2f300",
          "body": "…dit fixes (#3355)\n\n* fix(model): stop sending hidden form.provider as modelFactory on single-add\n\nSingle-add mode has no provider dropdown — form.provider stays at its\nhidden default 'modelengine', which was forwarded as modelFactory to\nthe backend, overriding the Pydantic default 'OpenAI-API-Compa\n[…]\nix)\n- 'Use suggestion' button\n- fuzzy-match warning when canonical name not accepted\n\nWhen no suggestion is found, show a localized description instead of\nthe generic 'no additional details' fallback.",
          "is_bot": false,
          "headline": "🐛 Bugfix: W11 capacity suggestion for batch gear modals + model add/e…",
          "author_name": "frr",
          "author_login": "wuyuanfr",
          "committed_at": "2026-07-06T08:55:23Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "8eb94e6a4052f07e10e90a1fdc202de8a3982d98",
          "body": "[Specification Details]\n1. Standardizing the styling of debugging pop-ups in frontend tools.\n2. Tool debugging configuration parameters are retrieved from the store rather than from the API each time.",
          "is_bot": false,
          "headline": "🐛 Bugfix: Tool debugging bug fixes. (#3371)",
          "author_name": "panyehong",
          "author_login": "YehongPan",
          "committed_at": "2026-07-06T06:10:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8fe1b067d3c7a723bc0f9611f1a47bd78ca968d8",
          "body": "* Bugfix:add crypto.randomUUID() fallback in http\n\n* Bugfix: Update homepage redirect link",
          "is_bot": false,
          "headline": "🐛 Bugfix: Update homepage redirect link (#3376)",
          "author_name": "xuyaqi",
          "author_login": "xuyaqist",
          "committed_at": "2026-07-06T03:10:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d3d720f8d14a6dfa7e87d22e6bdce3a6a63ffea6",
          "body": "* feat: add conversation share\n\n* add ut test\n\n* add conversation share db tests\n\n* Fix share link copy fallback",
          "is_bot": false,
          "headline": "fix:Fix share link copy fallback (#3340)",
          "author_name": "gjc199",
          "author_login": "gjc199",
          "committed_at": "2026-07-06T02:17:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2bae2f3388242bd31e221ca7e1fc306f9fa117c1",
          "body": "…ose#3188 (#3356)\n\n* ✨Feat:add prompt optimization\n\n* 🐛Bugfix: dockerbuild failed when running pipefail in python3_11\n\n* 🔨Optimize: Optimize prompt optimization display page and interaction methods\n\n* ✨Feat:add agent evaluator\n\n* 🐛Bugfix: fix fronted and report download\n\n* 🐛 Bugfix: Add xlrd depende\n[…]\nempotent script for improved installation simplicity and clarity. This includes the addition of evaluation tables and the pass_status column, ensuring all necessary structures are created in one step.",
          "is_bot": false,
          "headline": "✨Feat:Integrate openjiuwen's intelligent agent evaluation function cl…",
          "author_name": "DongJiBao2001",
          "author_login": "DongJiBao2001",
          "committed_at": "2026-07-03T02:50:01Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "8eae4ed9d08fffae152daceec2ea9e1a00fd85d1",
          "body": "…y tools (#3359)\n\n* 🐛 Bugfix: Guard memory_user_config against None in store/search memory tools\n\nAdd None checks before accessing memory_user_config attributes in\nStoreMemoryTool and SearchMemoryTool. When config is unavailable,\napply conservative default (agent_share_option='never') to prevent\nuni\n[…]\n_search_memory_tool: add None config, _run_coroutine tests\n- test_memory_config_service: add duplicate record cleanup tests\n- test_tool_configuration_service: add SYSTEM_MANAGED_TOOL_NAMES filter test",
          "is_bot": false,
          "headline": "🐛 Bugfix: Guard memory_user_config against None in store/search memor…",
          "author_name": "Jason Wang",
          "author_login": "JasonW404",
          "committed_at": "2026-07-02T13:09:18Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e8666ec4f6e2c56254161279cac19c6566640738",
          "body": null,
          "is_bot": false,
          "headline": "Bugfix:add crypto.randomUUID() fallback in http (#3360)",
          "author_name": "xuyaqi",
          "author_login": "xuyaqist",
          "committed_at": "2026-07-02T09:47:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d044b9660378bef0e166e1beecb4d9fce08f5fcf",
          "body": "…. (#3357)",
          "is_bot": false,
          "headline": "🐛 Bugfix: The backend setting for self-verification defaults to False…",
          "author_name": "panyehong",
          "author_login": "YehongPan",
          "committed_at": "2026-07-02T09:46:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4e7d9fe15c78d85c732beb9fe06ac8d439e99327",
          "body": "* 🐛 Bugfix: Thinking content displays incorrectly after refreshing\n\n* 🧪 Add test files\n\n* 🧪 Add test files\n\n* 🧪 Add test files",
          "is_bot": false,
          "headline": "🐛 Bugfix: Thinking content displays incorrectly after refreshing (#3353)",
          "author_name": "Xia Yichen",
          "author_login": "Jasonxia007",
          "committed_at": "2026-07-02T03:43:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "45fa9c6857387491b663328cfb3d15a42c32779b",
          "body": null,
          "is_bot": false,
          "headline": "🐛 Bugfix: Fixed the logic for retrieving APP_VERSION. (#3354)",
          "author_name": "panyehong",
          "author_login": "YehongPan",
          "committed_at": "2026-07-02T03:42:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "599fbeb20e1841d8b5e83908982bdbd31d00b502",
          "body": "…Alibaba Bailian. (#3350)",
          "is_bot": false,
          "headline": "🐛 Bugfix: Fixed an issue with batch model addition and validation in …",
          "author_name": "panyehong",
          "author_login": "YehongPan",
          "committed_at": "2026-07-02T02:12:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "10d9e745443e1a8979896e5d3206e77985fb25b5",
          "body": null,
          "is_bot": false,
          "headline": "Bump version from v2.2.1 to v2.2.2",
          "author_name": "Dallas98",
          "author_login": "Dallas98",
          "committed_at": "2026-07-01T08:52:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "664d72d9fe244ea541d309ec01e42cb2d2f4f92c",
          "body": "* 📝Doc:Refresh the dependency instructions for Python and Node.js in doc, and solve the issue of version drift in Node.js for pipeline CL and Docker\n\n* 📝Doc: update Python version in documentation to 3.11",
          "is_bot": false,
          "headline": "📝Doc:Refresh Python dependency instructions for doc (#3345)",
          "author_name": "DongJiBao2001",
          "author_login": "DongJiBao2001",
          "committed_at": "2026-07-01T07:13:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "60eda2bc6eb841d906733531fdbb8e286d5c7c7d",
          "body": "…js in do…\" (#3342)\n\nThis reverts commit f606a0444a1770a137adb55a810e3635ad118bb2.",
          "is_bot": false,
          "headline": "Revert \"📝Doc:Refresh the dependency instructions for Python and Node.…",
          "author_name": "Dallas98",
          "author_login": "Dallas98",
          "committed_at": "2026-07-01T06:12:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f606a0444a1770a137adb55a810e3635ad118bb2",
          "body": "…c, and solve the issue of version drift in Node.js for pipeline CL and Docker (#3341)",
          "is_bot": false,
          "headline": "📝Doc:Refresh the dependency instructions for Python and Node.js in do…",
          "author_name": "DongJiBao2001",
          "author_login": "DongJiBao2001",
          "committed_at": "2026-07-01T03:02:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9d1900a68ef01bfd085b0cfb588784ea74373627",
          "body": "- Add missing toolPool.group.mcp i18n key for en/zh locales\n- Wrap category labels with t() to properly translate i18n keys\n  instead of showing raw key strings\n- Disable 'Select Tools' button when no agent is selected\n- Group MCP tools by server name (usage) instead of all\n  falling into 'Other' category\n- Hide empty tool source tabs (e.g. LangChain with no tools)\n- Auto-switch to first available tab when active tab hidden\n\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: improve tool selection panel i18n and MCP grouping (#3338)",
          "author_name": "MoeexT",
          "author_login": "MoeexT",
          "committed_at": "2026-06-30T12:34:48Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "b16577212a58514f56941e6f1680cee47c37da7c",
          "body": "* :sparkle: manage labels for agent tools\n\n* :art: improve UI\n\n* :passport_control: isolate labels between tenants\n\n* :card_file_box: built-in tools labels\n\n* :white_check_mark: fix: update test mocks for tool labels feature\n\n- test_tool_db.py: add consts.tool_labels mock with BUILTIN_LABEL_MAP\n- te\n[…]\nQUIRING_VIDEO_UNDERSTANDING\n- getToolKbType(), getToolLabels()\n\nThese were duplicated verbatim between ToolManagement.tsx (24 lines)\nand SelectToolsDialog.tsx (36 lines) for 60 total duplicated lines.",
          "is_bot": false,
          "headline": "feat: add tool label (#3326)",
          "author_name": "MoeexT",
          "author_login": "MoeexT",
          "committed_at": "2026-06-30T02:11:21Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "25afcdc6666d3a6f2cc1505dbe643d155232bcda",
          "body": "* ♻️ Refactor: decouple the message / message unit saving process\n🐛 Bugfix: message units \"model_output_deep_thinking\" unexpectedly saved as tokens\n\n* ✨ Support chat streaming resume when switching to other tabs\n🐛 Bugfix: deep thinking content cannot display properly in chat history\n\n* ✨ Support cha\n[…]\nher tabs\n🐛 Bugfix: deep thinking content cannot display properly in chat history\n\n* 🧪 Add test files\n\n* 🧪 Add test files\n\n* 🧪 Add test files\n\n* 🧪 Add test files\n\n* 🧪 Add test files\n\n* 🧪 Add test files",
          "is_bot": false,
          "headline": "🐛 Chat streaming now can resume when switching to other tabs (#3331)",
          "author_name": "Xia Yichen",
          "author_login": "Jasonxia007",
          "committed_at": "2026-06-30T02:04:54Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "7958adcabe97000b237ef0b5e80d5c48c46c28ea",
          "body": "…t content (#3330)\n\n* fix: ContextComponent.to_messages() returns smolagents-compatible list content\n\nRoot cause: ContextComponent subclasses returned {\"content\": \"string\"} but\nsmolagents v1.23 requires {\"content\": [{\"type\": \"text\", \"text\": \"...\"}]}\nwhen merging consecutive same-role messages in get\n[…]\nbranches\n\n- estimate_tokens: test string content fallback path (else branch)\n- _extract_message_text: test ChatMessage object input, string content,\n  None content, missing key, and mixed list content",
          "is_bot": false,
          "headline": "fix: ContextComponent.to_messages() returns smolagents-compatible lis…",
          "author_name": "Jason Wang",
          "author_login": "JasonW404",
          "committed_at": "2026-06-29T13:35:38Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "3b2907ff23a92df93498bbf3f133657a7d6ba2ff",
          "body": "…ate script + UI layout fix (#3332)\n\n* fix(model): stop sending hidden form.provider as modelFactory on single-add\n\nSingle-add mode has no provider dropdown — form.provider stays at its\nhidden default 'modelengine', which was forwarded as modelFactory to\nthe backend, overriding the Pydantic default \n[…]\n trigger catalog healthcheck\n- Prevents unintended behavior change for embedding models\n\n* fix(ui): reorganize agent config layout - maxSteps+provideSummary on row1, outputReserve+verification on row2",
          "is_bot": false,
          "headline": "fix(model): stop sending hidden form.provider as modelFactory + reloc…",
          "author_name": "frr",
          "author_login": "wuyuanfr",
          "committed_at": "2026-06-29T12:12:15Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "2e10c7dd0ac7914259b81522f2d1418a8235b70b",
          "body": "Co-authored-by: hhhhsc <name>",
          "is_bot": false,
          "headline": "Expose northbound service in production deployments (#3327)",
          "author_name": "hhhhsc701",
          "author_login": "hhhhsc701",
          "committed_at": "2026-06-29T09:17:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b577ce7ad715976bb7fa6694ca681684df4497dc",
          "body": "…rning a 401 status code would cause Nexent to log out. (#3324)\n\n* 🐛 Bugfix: Fixed an issue where calls to external tool interfaces returning a 401 status code would cause Nexent to log out.\n[Specification Details]\n1. Map the 401 status code from the external interface to the 502 status code within Nexent.\n\n* 🐛 Bugfix: Fixed an issue where calls to external tool interfaces returning a 401 status code would cause Nexent to log out.\n[Specification Details]\n1. fix test cases.",
          "is_bot": false,
          "headline": "🐛 Bugfix: Fixed an issue where calls to external tool interfaces retu…",
          "author_name": "panyehong",
          "author_login": "YehongPan",
          "committed_at": "2026-06-29T07:25:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "465b18d3b457e1a3c8a3d744194d67b4e40ec3d8",
          "body": "…safety guards (#3317)\n\n* fix(model_management): preserve connectivity success when capacity suggestion path raises\n\nThe connectivity check endpoint /model/temporary_healthcheck runs\n_capacity_suggestion_for_model_request inline after a successful\nverify_model_config_connectivity. Per W11 spec (\"Sug\n[…]\ndefault (4096) instead of copying.\nThis prevents the semantic drift while still supporting legitimate small\noutput limits (< 32768).\n\n---------\n\nCo-authored-by: Claude Opus 4.7 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(w11): expand capability catalog to 66 entries + SQL generator + …",
          "author_name": "frr",
          "author_login": "wuyuanfr",
          "committed_at": "2026-06-29T06:14:14Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "9572820dc201dbb01ff9bb7e007da59bcdbf9903",
          "body": "* Revert \"fix: Parallel unit test runner with file-level subprocess isolation (#3285)\"\n\nThis reverts commit b6e59cfa1274ebe487dadb1804c5f6b88e630ec8.\n\n* fix: restore parallel UT runner with coverage reporting\n\n* fix: pin codecov action for sonar\n\n* ci: add repo controlled codecov gates",
          "is_bot": false,
          "headline": "fix: add parallel UT coverage reporting and recover Codecov (#3323)",
          "author_name": "Jason Wang",
          "author_login": "JasonW404",
          "committed_at": "2026-06-29T06:09:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6b2cd0e025e94a6df4fe87bdc21c0480f011fc86",
          "body": "Co-authored-by: hhhhsc <name>",
          "is_bot": false,
          "headline": "Preload tiktoken cache in main image (#3322)",
          "author_name": "hhhhsc701",
          "author_login": "hhhhsc701",
          "committed_at": "2026-06-29T02:18:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "22774db41edabfb34aedf9aaeb5e63426bac66f5",
          "body": "…ck (#3316)\n\n* ✨ Feature: enhance agent marketplace with pagination, review, and import precheck\n\nAdd paginated search for repository listings and mine agents, an admin review\nqueue with approve/reject, and import precheck/copy flow that validates models,\nknowledge bases, MCP, skills, and tools befo\n[…]\nen creating or updating listings, expose it in\nthe list API, and render \"x tools\" on repository cards when count is greater than zero.\n\n* test(agent-repository): add unit tests for agent_repository_db",
          "is_bot": false,
          "headline": "Enhance agent marketplace with pagination, reviews, and import preche…",
          "author_name": "Lifeng-Chen",
          "author_login": "Lifeng-Chen",
          "committed_at": "2026-06-29T01:43:19Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "53525f1e7997de90f5f4a40dacaaf4bc524a6615",
          "body": null,
          "is_bot": false,
          "headline": "♻️ Refactor: Tool Test Location Fix (#3321)",
          "author_name": "panyehong",
          "author_login": "YehongPan",
          "committed_at": "2026-06-29T01:29:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b063fdf1f57f03616babb01cd49780ea244c34aa",
          "body": "…rage regarding the `topk` parameter, and fixed an issue where the knowledge base list could not be selected individually for testing in the AIDP tool test. (#3320)\n\n* 🐛 Bugfix: Update HTTP client settings to increase timeout and disable SSL verification in aidp_service and aidp_search_tool (#3280)\n\n[…]\ns, preventing stale data issues. Improve handling of test panel knowledge base selections to maintain user inputs across modal interactions.\n\n---------\n\nCo-authored-by: Cursor <cursoragent@cursor.com>",
          "is_bot": false,
          "headline": "🐛Bugfix: Fixed an issue with the `knowledgebasesearch` tool test cove…",
          "author_name": "DongJiBao2001",
          "author_login": "DongJiBao2001",
          "committed_at": "2026-06-29T01:23:17Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "9e9ab33e4f3bff44a89a308358eb4880fc5337d3",
          "body": "Co-authored-by: hhhhsc <name>",
          "is_bot": false,
          "headline": "Refine CAS login flow and config caching (#3315)",
          "author_name": "hhhhsc701",
          "author_login": "hhhhsc701",
          "committed_at": "2026-06-27T10:10:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e7e2518a3037b887495809176f375a0a742ee5fd",
          "body": "Co-authored-by: hhhhsc <name>",
          "is_bot": false,
          "headline": "Ignore root .env in deployment scripts (#3318)",
          "author_name": "hhhhsc701",
          "author_login": "hhhhsc701",
          "committed_at": "2026-06-27T09:57:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a038699d14b8eb2cf68b9934ddab1af09a9fbf49",
          "body": "* ✨Feat: Agent supports model selection.\n\n* ✨Feat: Agent supports model selection.\n[Specification Details]\n1. The northbound interface now supports passing in `model_id`, incremental SQL addition is implemented, and test files have been added.\n\n* ✨Feat: Agent supports model selection.\n[Specification\n[…]\netails]\n1. Conflict resolve.\n\n* ✨Feat: Agent supports model selection.\n[Specification Details]\n1. Frontend Build Fixes.\n\n* ✨Feat: Agent supports model selection.\n[Specification Details]\n1. Update sql.",
          "is_bot": false,
          "headline": "✨Feat: Agent supports model selection. (#3313)",
          "author_name": "panyehong",
          "author_login": "YehongPan",
          "committed_at": "2026-06-27T08:34:51Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "53b2d8934b697defe275ee6e62512b1319163f17",
          "body": "* feat: add conversation share\n\n* add ut test\n\n* add conversation share db tests",
          "is_bot": false,
          "headline": "✨feat: Add conversation share (#3308)",
          "author_name": "gjc199",
          "author_login": "gjc199",
          "committed_at": "2026-06-27T08:15:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3b9ca72a982ae2f82f67da476d93e10864a98028",
          "body": null,
          "is_bot": false,
          "headline": "fix unit test coverage reporting (#3314)",
          "author_name": "Jason Wang",
          "author_login": "JasonW404",
          "committed_at": "2026-06-27T03:42:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c7a55f5b3ff8b614e99ebee0c45df617654a7abe",
          "body": "* Set offline package components in workflow\n\n* Support Tsinghua apt mirror in Dockerfiles\n\n* Move deployment env files under deploy/env\n\n* Update output directory for offline package components in installation and Kubernetes docs\n\n---------\n\nCo-authored-by: hhhhsc <name>",
          "is_bot": false,
          "headline": "Set offline package components in workflow (#3310)",
          "author_name": "hhhhsc701",
          "author_login": "hhhhsc701",
          "committed_at": "2026-06-27T02:52:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "30bb72751622884aae4698d72e7d69fd4dff2ba8",
          "body": "* Feat: add file upload support for agent debug mode\n\n  - Add file attachment upload/preview/remove UI in debug panel\n  - Upload files to MinIO and pass minio_files in agent run params\n  - Support file attachments in both debug and compare modes\n  - Include attachment info in conversation history\n  \n[…]\nvice to return img_info alongside chunks\n  - Make object_name/presigned_url optional in conversationService types\n\n* Refactoring Duplicate Code\n\n---------\n\nCo-authored-by: chase <byzhangxin11@126.com>",
          "is_bot": false,
          "headline": "add support for uploading files (#3311)",
          "author_name": "JeffWu",
          "author_login": "jeffwu-1999",
          "committed_at": "2026-06-27T02:19:40Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d718f9362dbada9e033fed3022ec33434caf73ca",
          "body": null,
          "is_bot": false,
          "headline": "Fix modelengine message flattening (#3309)",
          "author_name": "Jason Wang",
          "author_login": "JasonW404",
          "committed_at": "2026-06-27T01:43:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 49,
      "commits_last_year": 3751,
      "latest_release_at": "2026-07-16T02:38:53Z",
      "latest_release_tag": "v2.3.0",
      "releases_from_tags": false,
      "days_since_last_push": 0,
      "active_weeks_last_year": 52,
      "days_since_latest_release": 10,
      "mean_days_between_releases": 13.8
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": true,
      "health_percentage": 87,
      "has_issue_template": false,
      "has_code_of_conduct": true,
      "has_pull_request_template": false
    },
    "ecosystem": {
      "packages": [
        {
          "name": "nexent",
          "exists": true,
          "license": null,
          "keywords": [
            "agent",
            "ai",
            "framework",
            "Intended Audience :: Developers",
            "Programming Language :: Python :: 3",
            "Programming Language :: Python :: 3.10"
          ],
          "ecosystem": "pypi",
          "matches_repo": null,
          "registry_url": "https://pypi.org/project/nexent/",
          "is_deprecated": false,
          "latest_version": "1.8.1",
          "repository_url": null,
          "versions_count": 8,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": null,
          "first_published_at": "2025-04-28T02:08:04.839559Z",
          "latest_published_at": "2026-03-14T06:55:50.793529Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 134
        },
        {
          "name": "backend",
          "exists": true,
          "license": "MIT",
          "keywords": [
            "django",
            "backend"
          ],
          "ecosystem": "pypi",
          "matches_repo": false,
          "registry_url": "https://pypi.org/project/backend/",
          "is_deprecated": false,
          "latest_version": "0.2.4.1",
          "repository_url": "https://github.com/tr4n2uil/backend.django",
          "versions_count": 8,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": null,
          "first_published_at": "2014-02-02T08:14:42.496396Z",
          "latest_published_at": "2014-02-18T18:31:58.869510Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 4541
        }
      ]
    },
    "popularity": {
      "forks": 707,
      "stars": 5791,
      "watchers": 253,
      "fork_history": {
        "days": [
          {
            "date": "2025-05-06",
            "count": 1
          },
          {
            "date": "2025-05-07",
            "count": 2
          },
          {
            "date": "2025-05-19",
            "count": 1
          },
          {
            "date": "2025-05-21",
            "count": 1
          },
          {
            "date": "2025-05-24",
            "count": 1
          },
          {
            "date": "2025-05-26",
            "count": 3
          },
          {
            "date": "2025-05-29",
            "count": 1
          },
          {
            "date": "2025-06-03",
            "count": 2
          },
          {
            "date": "2025-06-06",
            "count": 1
          },
          {
            "date": "2025-06-08",
            "count": 1
          },
          {
            "date": "2025-06-09",
            "count": 2
          },
          {
            "date": "2025-06-11",
            "count": 1
          },
          {
            "date": "2025-06-12",
            "count": 1
          },
          {
            "date": "2025-06-13",
            "count": 1
          },
          {
            "date": "2025-06-16",
            "count": 1
          },
          {
            "date": "2025-06-22",
            "count": 1
          },
          {
            "date": "2025-06-23",
            "count": 1
          },
          {
            "date": "2025-06-29",
            "count": 1
          },
          {
            "date": "2025-07-01",
            "count": 1
          },
          {
            "date": "2025-07-02",
            "count": 1
          },
          {
            "date": "2025-07-05",
            "count": 1
          },
          {
            "date": "2025-07-07",
            "count": 2
          },
          {
            "date": "2025-07-16",
            "count": 1
          },
          {
            "date": "2025-07-17",
            "count": 3
          },
          {
            "date": "2025-07-21",
            "count": 8
          },
          {
            "date": "2025-07-22",
            "count": 22
          },
          {
            "date": "2025-07-23",
            "count": 19
          },
          {
            "date": "2025-07-24",
            "count": 15
          },
          {
            "date": "2025-07-25",
            "count": 13
          },
          {
            "date": "2025-07-26",
            "count": 15
          },
          {
            "date": "2025-07-27",
            "count": 13
          },
          {
            "date": "2025-07-28",
            "count": 9
          },
          {
            "date": "2025-07-29",
            "count": 1
          },
          {
            "date": "2025-07-30",
            "count": 2
          },
          {
            "date": "2025-08-02",
            "count": 2
          },
          {
            "date": "2025-08-03",
            "count": 5
          },
          {
            "date": "2025-08-04",
            "count": 1
          },
          {
            "date": "2025-08-05",
            "count": 3
          },
          {
            "date": "2025-08-06",
            "count": 3
          },
          {
            "date": "2025-08-07",
            "count": 3
          },
          {
            "date": "2025-08-08",
            "count": 6
          },
          {
            "date": "2025-08-10",
            "count": 3
          },
          {
            "date": "2025-08-11",
            "count": 1
          },
          {
            "date": "2025-08-12",
            "count": 3
          },
          {
            "date": "2025-08-13",
            "count": 2
          },
          {
            "date": "2025-08-14",
            "count": 3
          },
          {
            "date": "2025-08-15",
            "count": 3
          },
          {
            "date": "2025-08-17",
            "count": 2
          },
          {
            "date": "2025-08-18",
            "count": 6
          },
          {
            "date": "2025-08-19",
            "count": 3
          },
          {
            "date": "2025-08-20",
            "count": 2
          },
          {
            "date": "2025-08-21",
            "count": 2
          },
          {
            "date": "2025-08-22",
            "count": 3
          },
          {
            "date": "2025-08-23",
            "count": 1
          },
          {
            "date": "2025-08-24",
            "count": 3
          },
          {
            "date": "2025-08-25",
            "count": 3
          },
          {
            "date": "2025-08-26",
            "count": 4
          },
          {
            "date": "2025-08-27",
            "count": 2
          },
          {
            "date": "2025-08-28",
            "count": 3
          },
          {
            "date": "2025-08-29",
            "count": 2
          },
          {
            "date": "2025-08-30",
            "count": 2
          },
          {
            "date": "2025-08-31",
            "count": 2
          },
          {
            "date": "2025-09-01",
            "count": 3
          },
          {
            "date": "2025-09-02",
            "count": 4
          },
          {
            "date": "2025-09-03",
            "count": 2
          },
          {
            "date": "2025-09-04",
            "count": 4
          },
          {
            "date": "2025-09-05",
            "count": 2
          },
          {
            "date": "2025-09-06",
            "count": 1
          },
          {
            "date": "2025-09-07",
            "count": 3
          },
          {
            "date": "2025-09-08",
            "count": 2
          },
          {
            "date": "2025-09-09",
            "count": 2
          },
          {
            "date": "2025-09-10",
            "count": 3
          },
          {
            "date": "2025-09-11",
            "count": 4
          },
          {
            "date": "2025-09-12",
            "count": 4
          },
          {
            "date": "2025-09-15",
            "count": 1
          },
          {
            "date": "2025-09-16",
            "count": 1
          },
          {
            "date": "2025-09-18",
            "count": 1
          },
          {
            "date": "2025-09-19",
            "count": 1
          },
          {
            "date": "2025-09-20",
            "count": 1
          },
          {
            "date": "2025-09-23",
            "count": 1
          },
          {
            "date": "2025-09-25",
            "count": 3
          },
          {
            "date": "2025-09-27",
            "count": 1
          },
          {
            "date": "2025-09-29",
            "count": 1
          },
          {
            "date": "2025-09-30",
            "count": 1
          },
          {
            "date": "2025-10-04",
            "count": 2
          },
          {
            "date": "2025-10-06",
            "count": 1
          },
          {
            "date": "2025-10-09",
            "count": 1
          },
          {
            "date": "2025-10-10",
            "count": 1
          },
          {
            "date": "2025-10-12",
            "count": 1
          },
          {
            "date": "2025-10-13",
            "count": 1
          },
          {
            "date": "2025-10-14",
            "count": 2
          },
          {
            "date": "2025-10-15",
            "count": 4
          },
          {
            "date": "2025-10-17",
            "count": 1
          },
          {
            "date": "2025-10-18",
            "count": 1
          },
          {
            "date": "2025-10-19",
            "count": 1
          },
          {
            "date": "2025-10-20",
            "count": 1
          },
          {
            "date": "2025-10-22",
            "count": 5
          },
          {
            "date": "2025-10-23",
            "count": 5
          },
          {
            "date": "2025-10-24",
            "count": 2
          },
          {
            "date": "2025-10-25",
            "count": 3
          },
          {
            "date": "2025-10-26",
            "count": 2
          },
          {
            "date": "2025-10-27",
            "count": 4
          },
          {
            "date": "2025-10-28",
            "count": 2
          },
          {
            "date": "2025-10-29",
            "count": 4
          },
          {
            "date": "2025-10-30",
            "count": 1
          },
          {
            "date": "2025-10-31",
            "count": 4
          },
          {
            "date": "2025-11-01",
            "count": 3
          },
          {
            "date": "2025-11-02",
            "count": 3
          },
          {
            "date": "2025-11-04",
            "count": 4
          },
          {
            "date": "2025-11-05",
            "count": 3
          },
          {
            "date": "2025-11-07",
            "count": 1
          },
          {
            "date": "2025-11-08",
            "count": 4
          },
          {
            "date": "2025-11-09",
            "count": 3
          },
          {
            "date": "2025-11-10",
            "count": 3
          },
          {
            "date": "2025-11-11",
            "count": 7
          },
          {
            "date": "2025-11-12",
            "count": 6
          },
          {
            "date": "2025-11-13",
            "count": 4
          },
          {
            "date": "2025-11-14",
            "count": 1
          },
          {
            "date": "2025-11-15",
            "count": 2
          },
          {
            "date": "2025-11-16",
            "count": 3
          },
          {
            "date": "2025-11-17",
            "count": 2
          },
          {
            "date": "2025-11-19",
            "count": 2
          },
          {
            "date": "2025-11-20",
            "count": 5
          },
          {
            "date": "2025-11-21",
            "count": 1
          },
          {
            "date": "2025-11-22",
            "count": 4
          },
          {
            "date": "2025-11-23",
            "count": 9
          },
          {
            "date": "2025-11-24",
            "count": 4
          },
          {
            "date": "2025-11-25",
            "count": 2
          },
          {
            "date": "2025-11-26",
            "count": 5
          },
          {
            "date": "2025-11-27",
            "count": 9
          },
          {
            "date": "2025-11-28",
            "count": 2
          },
          {
            "date": "2025-11-29",
            "count": 1
          },
          {
            "date": "2025-11-30",
            "count": 2
          },
          {
            "date": "2025-12-01",
            "count": 3
          },
          {
            "date": "2025-12-02",
            "count": 3
          },
          {
            "date": "2025-12-03",
            "count": 2
          },
          {
            "date": "2025-12-04",
            "count": 2
          },
          {
            "date": "2025-12-05",
            "count": 7
          },
          {
            "date": "2025-12-06",
            "count": 1
          },
          {
            "date": "2025-12-10",
            "count": 1
          },
          {
            "date": "2025-12-11",
            "count": 1
          },
          {
            "date": "2025-12-14",
            "count": 1
          },
          {
            "date": "2025-12-15",
            "count": 1
          },
          {
            "date": "2025-12-19",
            "count": 1
          },
          {
            "date": "2025-12-25",
            "count": 3
          },
          {
            "date": "2025-12-26",
            "count": 1
          },
          {
            "date": "2025-12-27",
            "count": 1
          },
          {
            "date": "2025-12-29",
            "count": 1
          },
          {
            "date": "2025-12-31",
            "count": 1
          },
          {
            "date": "2026-01-06",
            "count": 1
          },
          {
            "date": "2026-01-20",
            "count": 1
          },
          {
            "date": "2026-01-21",
            "count": 1
          },
          {
            "date": "2026-02-02",
            "count": 1
          },
          {
            "date": "2026-02-03",
            "count": 1
          },
          {
            "date": "2026-02-04",
            "count": 1
          },
          {
            "date": "2026-02-05",
            "count": 1
          },
          {
            "date": "2026-02-06",
            "count": 1
          },
          {
            "date": "2026-02-07",
            "count": 1
          },
          {
            "date": "2026-02-09",
            "count": 1
          },
          {
            "date": "2026-02-11",
            "count": 1
          },
          {
            "date": "2026-02-13",
            "count": 1
          },
          {
            "date": "2026-02-19",
            "count": 1
          },
          {
            "date": "2026-02-21",
            "count": 1
          },
          {
            "date": "2026-02-24",
            "count": 1
          },
          {
            "date": "2026-02-25",
            "count": 2
          },
          {
            "date": "2026-02-26",
            "count": 1
          },
          {
            "date": "2026-02-27",
            "count": 1
          },
          {
            "date": "2026-03-02",
            "count": 1
          },
          {
            "date": "2026-03-03",
            "count": 17
          },
          {
            "date": "2026-03-04",
            "count": 6
          },
          {
            "date": "2026-03-06",
            "count": 2
          },
          {
            "date": "2026-03-07",
            "count": 2
          },
          {
            "date": "2026-03-08",
            "count": 1
          },
          {
            "date": "2026-03-09",
            "count": 3
          },
          {
            "date": "2026-03-10",
            "count": 2
          },
          {
            "date": "2026-03-11",
            "count": 2
          },
          {
            "date": "2026-03-12",
            "count": 4
          },
          {
            "date": "2026-03-13",
            "count": 2
          },
          {
            "date": "2026-03-14",
            "count": 2
          },
          {
            "date": "2026-03-16",
            "count": 3
          },
          {
            "date": "2026-03-17",
            "count": 2
          },
          {
            "date": "2026-03-18",
            "count": 1
          },
          {
            "date": "2026-03-19",
            "count": 1
          },
          {
            "date": "2026-03-20",
            "count": 1
          },
          {
            "date": "2026-03-21",
            "count": 2
          },
          {
            "date": "2026-03-22",
            "count": 2
          },
          {
            "date": "2026-03-23",
            "count": 1
          },
          {
            "date": "2026-03-24",
            "count": 1
          },
          {
            "date": "2026-03-26",
            "count": 1
          },
          {
            "date": "2026-03-27",
            "count": 2
          },
          {
            "date": "2026-03-28",
            "count": 3
          },
          {
            "date": "2026-03-30",
            "count": 3
          },
          {
            "date": "2026-04-01",
            "count": 2
          },
          {
            "date": "2026-04-02",
            "count": 2
          },
          {
            "date": "2026-04-03",
            "count": 1
          },
          {
            "date": "2026-04-04",
            "count": 1
          },
          {
            "date": "2026-04-06",
            "count": 2
          },
          {
            "date": "2026-04-08",
            "count": 8
          },
          {
            "date": "2026-04-09",
            "count": 1
          },
          {
            "date": "2026-04-12",
            "count": 1
          },
          {
            "date": "2026-04-13",
            "count": 5
          },
          {
            "date": "2026-04-16",
            "count": 2
          },
          {
            "date": "2026-04-17",
            "count": 3
          },
          {
            "date": "2026-04-18",
            "count": 2
          },
          {
            "date": "2026-04-19",
            "count": 1
          },
          {
            "date": "2026-04-21",
            "count": 2
          },
          {
            "date": "2026-04-22",
            "count": 1
          },
          {
            "date": "2026-04-26",
            "count": 1
          },
          {
            "date": "2026-04-28",
            "count": 1
          },
          {
            "date": "2026-04-29",
            "count": 1
          },
          {
            "date": "2026-05-01",
            "count": 2
          },
          {
            "date": "2026-05-05",
            "count": 1
          },
          {
            "date": "2026-05-06",
            "count": 1
          },
          {
            "date": "2026-05-07",
            "count": 1
          },
          {
            "date": "2026-05-09",
            "count": 1
          },
          {
            "date": "2026-05-10",
            "count": 1
          },
          {
            "date": "2026-05-11",
            "count": 1
          },
          {
            "date": "2026-05-12",
            "count": 1
          },
          {
            "date": "2026-05-13",
            "count": 3
          },
          {
            "date": "2026-05-14",
            "count": 1
          },
          {
            "date": "2026-05-15",
            "count": 1
          },
          {
            "date": "2026-05-16",
            "count": 1
          },
          {
            "date": "2026-05-17",
            "count": 1
          },
          {
            "date": "2026-05-18",
            "count": 1
          },
          {
            "date": "2026-05-19",
            "count": 1
          },
          {
            "date": "2026-05-20",
            "count": 4
          },
          {
            "date": "2026-05-21",
            "count": 3
          },
          {
            "date": "2026-05-22",
            "count": 1
          },
          {
            "date": "2026-05-23",
            "count": 3
          },
          {
            "date": "2026-05-24",
            "count": 1
          },
          {
            "date": "2026-05-25",
            "count": 1
          },
          {
            "date": "2026-05-26",
            "count": 2
          },
          {
            "date": "2026-05-28",
            "count": 2
          },
          {
            "date": "2026-05-29",
            "count": 3
          },
          {
            "date": "2026-05-30",
            "count": 1
          },
          {
            "date": "2026-05-31",
            "count": 2
          },
          {
            "date": "2026-06-02",
            "count": 3
          },
          {
            "date": "2026-06-03",
            "count": 2
          },
          {
            "date": "2026-06-04",
            "count": 2
          },
          {
            "date": "2026-06-05",
            "count": 4
          },
          {
            "date": "2026-06-08",
            "count": 1
          },
          {
            "date": "2026-06-09",
            "count": 2
          },
          {
            "date": "2026-06-10",
            "count": 4
          },
          {
            "date": "2026-06-11",
            "count": 2
          },
          {
            "date": "2026-06-13",
            "count": 2
          },
          {
            "date": "2026-06-14",
            "count": 2
          },
          {
            "date": "2026-06-16",
            "count": 3
          },
          {
            "date": "2026-06-17",
            "count": 3
          },
          {
            "date": "2026-06-18",
            "count": 3
          },
          {
            "date": "2026-06-19",
            "count": 2
          },
          {
            "date": "2026-06-20",
            "count": 2
          },
          {
            "date": "2026-06-21",
            "count": 2
          },
          {
            "date": "2026-06-22",
            "count": 2
          },
          {
            "date": "2026-06-24",
            "count": 2
          },
          {
            "date": "2026-06-25",
            "count": 1
          },
          {
            "date": "2026-06-27",
            "count": 2
          },
          {
            "date": "2026-06-28",
            "count": 1
          },
          {
            "date": "2026-06-29",
            "count": 2
          },
          {
            "date": "2026-06-30",
            "count": 5
          },
          {
            "date": "2026-07-01",
            "count": 3
          },
          {
            "date": "2026-07-02",
            "count": 2
          },
          {
            "date": "2026-07-03",
            "count": 3
          },
          {
            "date": "2026-07-04",
            "count": 1
          },
          {
            "date": "2026-07-05",
            "count": 3
          },
          {
            "date": "2026-07-06",
            "count": 2
          },
          {
            "date": "2026-07-07",
            "count": 2
          },
          {
            "date": "2026-07-08",
            "count": 4
          },
          {
            "date": "2026-07-09",
            "count": 4
          },
          {
            "date": "2026-07-10",
            "count": 1
          },
          {
            "date": "2026-07-11",
            "count": 1
          },
          {
            "date": "2026-07-12",
            "count": 1
          },
          {
            "date": "2026-07-13",
            "count": 4
          },
          {
            "date": "2026-07-15",
            "count": 2
          },
          {
            "date": "2026-07-16",
            "count": 3
          },
          {
            "date": "2026-07-17",
            "count": 1
          },
          {
            "date": "2026-07-19",
            "count": 1
          },
          {
            "date": "2026-07-20",
            "count": 3
          }
        ],
        "complete": true,
        "collected": 706,
        "total_forks": 707
      },
      "star_history": null,
      "open_issues_and_prs": 196
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [],
      "has_llms_txt": false,
      "has_dockerfile": true,
      "has_mcp_signal": true,
      "bootstrap_files": [],
      "api_schema_files": [],
      "has_devcontainer": true,
      "typecheck_configs": [
        "frontend/tsconfig.json"
      ],
      "toolchain_manifests": [],
      "largest_source_bytes": 595905,
      "source_files_sampled": 1200,
      "oversized_source_files": 62,
      "agent_instruction_files": [
        ".cursor/rules/backend/app_layer_rules.mdc",
        ".cursor/rules/backend/database_layer_rules.mdc",
        ".cursor/rules/backend/service_layer_rules.mdc",
        ".cursor/rules/english_comments.mdc",
        ".cursor/rules/environment_variable.mdc",
        ".cursor/rules/frontend/component_layer_rules.mdc",
        ".cursor/rules/frontend/frontend_overview_rules.mdc",
        ".cursor/rules/frontend/hook_layer_rules.mdc",
        ".cursor/rules/frontend/page_layer_rules.mdc",
        ".cursor/rules/frontend/service_layer_rules.mdc",
        ".cursor/rules/frontend/type_layer_rules.mdc",
        ".cursor/rules/frontend/ui_standards_rules.mdc",
        ".cursor/rules/pytest_unit_test_rules.mdc",
        "AGENTS.md",
        "CLAUDE.md",
        "doc/docs/en/sdk/core/agents.md",
        "doc/docs/zh/sdk/core/agents.md"
      ],
      "agent_instruction_max_bytes": 6568
    },
    "dependencies": {
      "manifests": [
        "backend/pyproject.toml",
        "doc/package.json",
        "frontend/package.json",
        "sdk/pyproject.toml"
      ],
      "advisories": {
        "error": null,
        "scope": "published_package",
        "source": "osv",
        "findings": [
          {
            "name": "fastmcp",
            "direct": true,
            "version": "2.12.0",
            "severity": "critical",
            "ecosystem": "pypi",
            "cvss_score": 10,
            "advisory_ids": [
              "GHSA-5h2m-4q8j-pqpj",
              "GHSA-c2jp-c369-7pvx",
              "GHSA-m8x7-r2rg-vh5g",
              "GHSA-mxxr-jv3v-6pgc",
              "GHSA-rcfx-77hg-w2wv",
              "GHSA-rj5c-58rq-j5g5",
              "GHSA-rww4-4w9c-7733",
              "GHSA-vv7q-7jx5-f767",
              "PYSEC-2026-1364",
              "PYSEC-2026-1365"
            ],
            "fixed_version": "3.2.0",
            "advisory_count": 14,
            "oldest_advisory_days": 270
          },
          {
            "name": "smolagents",
            "direct": true,
            "version": "1.23.0",
            "severity": "critical",
            "ecosystem": "pypi",
            "cvss_score": 10,
            "advisory_ids": [
              "GHSA-54fq-v6x8-244g",
              "GHSA-jxgv-6j54-wwc7",
              "GHSA-q9r5-6hrr-9ph7",
              "PYSEC-2026-3066",
              "PYSEC-2026-3067",
              "PYSEC-2026-543"
            ],
            "fixed_version": null,
            "advisory_count": 6,
            "oldest_advisory_days": 215
          },
          {
            "name": "mcp",
            "direct": true,
            "version": "1.22.0",
            "severity": "high",
            "ecosystem": "pypi",
            "cvss_score": 7.1,
            "advisory_ids": [
              "GHSA-9h52-p55h-vw2f",
              "GHSA-jpw9-pfvf-9f58",
              "GHSA-vj7q-gjh5-988w",
              "PYSEC-2026-1617",
              "PYSEC-2026-3482",
              "PYSEC-2026-3483"
            ],
            "fixed_version": "1.28.1",
            "advisory_count": 6,
            "oldest_advisory_days": 236
          }
        ],
        "collected": true,
        "malicious": [],
        "truncated": false,
        "by_severity": {
          "high": 1,
          "critical": 2
        },
        "advisory_count": 26,
        "affected_count": 3,
        "assessed_count": 121,
        "malicious_count": 0,
        "assessed_package": "pypi:nexent@1.8.1",
        "unassessed_count": 0,
        "direct_affected_count": 3
      },
      "ecosystems": [
        "npm",
        "pypi"
      ],
      "dependencies": [
        {
          "name": "aiofiles",
          "manifest": "backend/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=0.8.0"
        },
        {
          "name": "uvicorn",
          "manifest": "backend/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=0.34.0"
        },
        {
          "name": "fastapi",
          "manifest": "backend/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=0.115.12"
        },
        {
          "name": "python-multipart",
          "manifest": "backend/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=0.0.9"
        },
        {
          "name": "email-validator",
          "manifest": "backend/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.0.0"
        },
        {
          "name": "aiohttp",
          "manifest": "backend/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=3.8.0"
        },
        {
          "name": "authlib",
          "manifest": "backend/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=1.3.0"
        },
        {
          "name": "cryptography",
          "manifest": "backend/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=42.0.0"
        },
        {
          "name": "psycopg2-binary",
          "manifest": "backend/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.9.9"
        },
        {
          "name": "PyJWT",
          "manifest": "backend/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.8.0"
        },
        {
          "name": "sqlalchemy",
          "manifest": "backend/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "~=2.0.37"
        },
        {
          "name": "greenlet",
          "manifest": "backend/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "<3.5.0"
        },
        {
          "name": "supabase",
          "manifest": "backend/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.18.1"
        },
        {
          "name": "websocket-client",
          "manifest": "backend/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=1.8.0"
        },
        {
          "name": "pyyaml",
          "manifest": "backend/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=6.0.2"
        },
        {
          "name": "jsonref",
          "manifest": "backend/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=1.1.0"
        },
        {
          "name": "ruamel-yaml",
          "manifest": "backend/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "==0.19.1"
        },
        {
          "name": "redis",
          "manifest": "backend/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=5.0.0"
        },
        {
          "name": "fastmcp",
          "manifest": "backend/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.14.2,<3.0"
        },
        {
          "name": "langchain",
          "manifest": "backend/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=0.3.26"
        },
        {
          "name": "scikit-learn",
          "manifest": "backend/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=1.0.0"
        },
        {
          "name": "numpy",
          "manifest": "backend/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=1.24.0"
        },
        {
          "name": "defusedxml",
          "manifest": "backend/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=0.7.1"
        },
        {
          "name": "openjiuwen",
          "manifest": "backend/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=0.1.0"
        },
        {
          "name": "pydantic-settings",
          "manifest": "backend/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.0.0"
        },
        {
          "name": "python-docx",
          "manifest": "backend/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=1.1.0"
        },
        {
          "name": "xlrd",
          "manifest": "backend/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.0.1"
        },
        {
          "name": "croniter",
          "manifest": "backend/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.0.0"
        },
        {
          "name": "@ant-design/icons",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "6.2.5"
        },
        {
          "name": "@assistant-ui/react",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.14.20"
        },
        {
          "name": "@assistant-ui/react-ai-sdk",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.3.33"
        },
        {
          "name": "@assistant-ui/react-markdown",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.14.2"
        },
        {
          "name": "@dicebear/core",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^9.2.2"
        },
        {
          "name": "@dicebear/icons",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^9.2.2"
        },
        {
          "name": "@tanstack/react-query",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^5.90.12"
        },
        {
          "name": "@types/jszip",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^3.4.0"
        },
        {
          "name": "ai",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^6.0.198"
        },
        {
          "name": "antd",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^6.3.0"
        },
        {
          "name": "antd-style",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^4.1.0"
        },
        {
          "name": "assistant-stream",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.3.25"
        },
        {
          "name": "autoprefixer",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^10.4.20"
        },
        {
          "name": "bootstrap-icons",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.11.3"
        },
        {
          "name": "class-variance-authority",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.7.1"
        },
        {
          "name": "clsx",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^2.1.1"
        },
        {
          "name": "cmdk",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.1.1"
        },
        {
          "name": "cookie",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.1.1"
        },
        {
          "name": "cross-env",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^10.1.0"
        },
        {
          "name": "dayjs",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.11.19"
        },
        {
          "name": "dicebear",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^9.2.2"
        },
        {
          "name": "dotenv",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^16.4.7"
        },
        {
          "name": "framer-motion",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^12.23.6"
        },
        {
          "name": "github-markdown-css",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^5.8.1"
        },
        {
          "name": "http-proxy",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.18.1"
        },
        {
          "name": "i18next",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^25.2.1"
        },
        {
          "name": "js-yaml",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^4.1.1"
        },
        {
          "name": "jszip",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^3.10.1"
        },
        {
          "name": "katex",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.16.11"
        },
        {
          "name": "lucide-react",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.454.0"
        },
        {
          "name": "mermaid",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^11.12.0"
        },
        {
          "name": "next",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^15.5.9"
        },
        {
          "name": "next-i18next",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^15.4.2"
        },
        {
          "name": "next-themes",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.4.4"
        },
        {
          "name": "papaparse",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^5.5.3"
        },
        {
          "name": "pdfjs-dist",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "5.3.93"
        },
        {
          "name": "radix-ui",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.6.2"
        },
        {
          "name": "react",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "18.2.0"
        },
        {
          "name": "react-d3-tree",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^3.6.6"
        },
        {
          "name": "react-dom",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "18.2.0"
        },
        {
          "name": "react-hook-form",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^7.54.1"
        },
        {
          "name": "react-i18next",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^15.5.3"
        },
        {
          "name": "react-markdown",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^9.0.3"
        },
        {
          "name": "react-pdf",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "10.1.0"
        },
        {
          "name": "react-shiki",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.10.1"
        },
        {
          "name": "react-syntax-highlighter",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^16.1.0"
        },
        {
          "name": "recharts",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^2.15.0"
        },
        {
          "name": "rehype-katex",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^7.0.1"
        },
        {
          "name": "rehype-raw",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^7.0.0"
        },
        {
          "name": "remark-gfm",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^4.0.1"
        },
        {
          "name": "remark-math",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^6.0.0"
        },
        {
          "name": "remark-parse",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^11.0.0"
        },
        {
          "name": "remark-rehype",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^11.1.0"
        },
        {
          "name": "tailwind-merge",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^3"
        },
        {
          "name": "tw-animate-css",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.4.0"
        },
        {
          "name": "tw-shimmer",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.4.11"
        },
        {
          "name": "unified",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^11.0.0"
        },
        {
          "name": "unist-util-visit",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^5.0.0"
        },
        {
          "name": "uuid",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^11.1.0"
        },
        {
          "name": "zustand",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^5.0.9"
        },
        {
          "name": "aiofiles",
          "manifest": "sdk/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=24.1.0"
        },
        {
          "name": "elasticsearch",
          "manifest": "sdk/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "==8.17.2"
        },
        {
          "name": "exa_py",
          "manifest": "sdk/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "==1.14.0"
        },
        {
          "name": "httpx",
          "manifest": "sdk/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=0.28.1"
        },
        {
          "name": "numpy",
          "manifest": "sdk/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=1.26.4"
        },
        {
          "name": "openai",
          "manifest": "sdk/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=1.69.0"
        },
        {
          "name": "pydantic",
          "manifest": "sdk/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.11.1"
        },
        {
          "name": "python-dotenv",
          "manifest": "sdk/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=1.1.0"
        },
        {
          "name": "PyYAML",
          "manifest": "sdk/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=6.0.1"
        },
        {
          "name": "Requests",
          "manifest": "sdk/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.32.3"
        },
        {
          "name": "rich",
          "manifest": "sdk/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=13.9.4"
        },
        {
          "name": "setuptools",
          "manifest": "sdk/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=75.1.0"
        },
        {
          "name": "websockets",
          "manifest": "sdk/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=14.2"
        },
        {
          "name": "smolagents",
          "manifest": "sdk/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "==1.23.0"
        },
        {
          "name": "Pillow",
          "manifest": "sdk/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=10.0.0"
        },
        {
          "name": "aiohttp",
          "manifest": "sdk/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=3.1.13"
        },
        {
          "name": "jieba",
          "manifest": "sdk/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=0.42.1"
        },
        {
          "name": "boto3",
          "manifest": "sdk/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=1.37.34"
        },
        {
          "name": "botocore",
          "manifest": "sdk/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=1.37.34"
        },
        {
          "name": "python-multipart",
          "manifest": "sdk/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=0.0.20"
        },
        {
          "name": "mcpadapt",
          "manifest": "sdk/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=0.1.13"
        },
        {
          "name": "mcp",
          "manifest": "sdk/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=1.24.0,<1.30"
        },
        {
          "name": "fastmcp",
          "manifest": "sdk/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.14.2,<3.0"
        },
        {
          "name": "docker",
          "manifest": "sdk/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=7.0.0"
        },
        {
          "name": "kubernetes",
          "manifest": "sdk/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=29.0.0"
        },
        {
          "name": "tiktoken",
          "manifest": "sdk/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=0.5.0"
        },
        {
          "name": "tavily-python",
          "manifest": "sdk/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "linkup-sdk",
          "manifest": "sdk/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "paramiko",
          "manifest": "sdk/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=3.4.0"
        },
        {
          "name": "linkup-sdk",
          "manifest": "sdk/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": null
        },
        {
          "name": "mem0ai",
          "manifest": "sdk/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "==0.1.117"
        },
        {
          "name": "pymysql",
          "manifest": "sdk/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=1.1.0"
        },
        {
          "name": "psycopg2-binary",
          "manifest": "sdk/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.9.9"
        },
        {
          "name": "pymssql",
          "manifest": "sdk/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.2.11"
        },
        {
          "name": "openpyxl",
          "manifest": "sdk/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=3.1.5"
        },
        {
          "name": "orjson",
          "manifest": "sdk/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "==3.10"
        },
        {
          "name": "pypdf",
          "manifest": "sdk/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "==6.9.1"
        },
        {
          "name": "python-pptx",
          "manifest": "sdk/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "==1.0.2"
        },
        {
          "name": "ijson",
          "manifest": "sdk/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "==3.5.0"
        },
        {
          "name": "langchain-text-splitters",
          "manifest": "sdk/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "==1.1.2"
        },
        {
          "name": "ebooklib",
          "manifest": "sdk/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "==0.20"
        },
        {
          "name": "pypandoc",
          "manifest": "sdk/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "==1.17"
        }
      ],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [
          {
            "name": "@ant-design/icons",
            "direct": true,
            "version": "6.2.5",
            "ecosystem": "npm"
          },
          {
            "name": "@assistant-ui/react",
            "direct": true,
            "version": "^0.14.20",
            "ecosystem": "npm"
          },
          {
            "name": "@assistant-ui/react-ai-sdk",
            "direct": true,
            "version": "^1.3.33",
            "ecosystem": "npm"
          },
          {
            "name": "@assistant-ui/react-markdown",
            "direct": true,
            "version": "^0.14.2",
            "ecosystem": "npm"
          },
          {
            "name": "@dicebear/core",
            "direct": true,
            "version": "^9.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "@dicebear/icons",
            "direct": true,
            "version": "^9.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "@tanstack/react-query",
            "direct": true,
            "version": "^5.90.12",
            "ecosystem": "npm"
          },
          {
            "name": "@types/jszip",
            "direct": true,
            "version": "^3.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "ai",
            "direct": true,
            "version": "^6.0.198",
            "ecosystem": "npm"
          },
          {
            "name": "antd",
            "direct": true,
            "version": "^6.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "antd-style",
            "direct": true,
            "version": "^4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "assistant-stream",
            "direct": true,
            "version": "^0.3.25",
            "ecosystem": "npm"
          },
          {
            "name": "autoprefixer",
            "direct": true,
            "version": "^10.4.20",
            "ecosystem": "npm"
          },
          {
            "name": "bootstrap-icons",
            "direct": true,
            "version": "^1.11.3",
            "ecosystem": "npm"
          },
          {
            "name": "class-variance-authority",
            "direct": true,
            "version": "^0.7.1",
            "ecosystem": "npm"
          },
          {
            "name": "clsx",
            "direct": true,
            "version": "^2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "cmdk",
            "direct": true,
            "version": "^1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "cookie",
            "direct": true,
            "version": "^1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "cross-env",
            "direct": true,
            "version": "^10.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "dayjs",
            "direct": true,
            "version": "^1.11.19",
            "ecosystem": "npm"
          },
          {
            "name": "dicebear",
            "direct": true,
            "version": "^9.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "dotenv",
            "direct": true,
            "version": "^16.4.7",
            "ecosystem": "npm"
          },
          {
            "name": "framer-motion",
            "direct": true,
            "version": "^12.23.6",
            "ecosystem": "npm"
          },
          {
            "name": "github-markdown-css",
            "direct": true,
            "version": "^5.8.1",
            "ecosystem": "npm"
          },
          {
            "name": "http-proxy",
            "direct": true,
            "version": "^1.18.1",
            "ecosystem": "npm"
          },
          {
            "name": "i18next",
            "direct": true,
            "version": "^25.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "js-yaml",
            "direct": true,
            "version": "^4.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "jszip",
            "direct": true,
            "version": "^3.10.1",
            "ecosystem": "npm"
          },
          {
            "name": "katex",
            "direct": true,
            "version": "^0.16.11",
            "ecosystem": "npm"
          },
          {
            "name": "lucide-react",
            "direct": true,
            "version": "^0.454.0",
            "ecosystem": "npm"
          },
          {
            "name": "mermaid",
            "direct": true,
            "version": "^11.12.0",
            "ecosystem": "npm"
          },
          {
            "name": "next",
            "direct": true,
            "version": "^15.5.9",
            "ecosystem": "npm"
          },
          {
            "name": "next-i18next",
            "direct": true,
            "version": "^15.4.2",
            "ecosystem": "npm"
          },
          {
            "name": "next-themes",
            "direct": true,
            "version": "^0.4.4",
            "ecosystem": "npm"
          },
          {
            "name": "papaparse",
            "direct": true,
            "version": "^5.5.3",
            "ecosystem": "npm"
          },
          {
            "name": "pdfjs-dist",
            "direct": true,
            "version": "5.3.93",
            "ecosystem": "npm"
          },
          {
            "name": "radix-ui",
            "direct": true,
            "version": "^1.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "react",
            "direct": true,
            "version": "18.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "react-d3-tree",
            "direct": true,
            "version": "^3.6.6",
            "ecosystem": "npm"
          },
          {
            "name": "react-dom",
            "direct": true,
            "version": "18.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "react-hook-form",
            "direct": true,
            "version": "^7.54.1",
            "ecosystem": "npm"
          },
          {
            "name": "react-i18next",
            "direct": true,
            "version": "^15.5.3",
            "ecosystem": "npm"
          },
          {
            "name": "react-markdown",
            "direct": true,
            "version": "^9.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "react-pdf",
            "direct": true,
            "version": "10.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "react-shiki",
            "direct": true,
            "version": "^0.10.1",
            "ecosystem": "npm"
          },
          {
            "name": "react-syntax-highlighter",
            "direct": true,
            "version": "^16.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "recharts",
            "direct": true,
            "version": "^2.15.0",
            "ecosystem": "npm"
          },
          {
            "name": "rehype-katex",
            "direct": true,
            "version": "^7.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "rehype-raw",
            "direct": true,
            "version": "^7.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "remark-gfm",
            "direct": true,
            "version": "^4.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "remark-math",
            "direct": true,
            "version": "^6.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "remark-parse",
            "direct": true,
            "version": "^11.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "remark-rehype",
            "direct": true,
            "version": "^11.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "tailwind-merge",
            "direct": true,
            "version": "^3",
            "ecosystem": "npm"
          },
          {
            "name": "tw-animate-css",
            "direct": true,
            "version": "^1.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "tw-shimmer",
            "direct": true,
            "version": "^0.4.11",
            "ecosystem": "npm"
          },
          {
            "name": "unified",
            "direct": true,
            "version": "^11.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "unist-util-visit",
            "direct": true,
            "version": "^5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "uuid",
            "direct": true,
            "version": "^11.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "zustand",
            "direct": true,
            "version": "^5.0.9",
            "ecosystem": "npm"
          },
          {
            "name": "aiofiles",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "aiohttp",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "authlib",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "boto3",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "botocore",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "croniter",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "cryptography",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "defusedxml",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "docker",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "ebooklib",
            "direct": true,
            "version": "0.20",
            "ecosystem": "pypi"
          },
          {
            "name": "elasticsearch",
            "direct": true,
            "version": "8.17.2",
            "ecosystem": "pypi"
          },
          {
            "name": "email-validator",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "exa-py",
            "direct": true,
            "version": "1.14.0",
            "ecosystem": "pypi"
          },
          {
            "name": "fastapi",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "fastmcp",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "greenlet",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "httpx",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "ijson",
            "direct": true,
            "version": "3.5.0",
            "ecosystem": "pypi"
          },
          {
            "name": "jieba",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "jsonref",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "kubernetes",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "langchain",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "langchain-text-splitters",
            "direct": true,
            "version": "1.1.2",
            "ecosystem": "pypi"
          },
          {
            "name": "mcp",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "mcpadapt",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "mem0ai",
            "direct": true,
            "version": "0.1.117",
            "ecosystem": "pypi"
          },
          {
            "name": "numpy",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "openai",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "openjiuwen",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "openpyxl",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "orjson",
            "direct": true,
            "version": "3.10",
            "ecosystem": "pypi"
          },
          {
            "name": "paramiko",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pillow",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "psycopg2-binary",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pydantic",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pydantic-settings",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pyjwt",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pymssql",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pymysql",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pypandoc",
            "direct": true,
            "version": "1.17",
            "ecosystem": "pypi"
          },
          {
            "name": "pypdf",
            "direct": true,
            "version": "6.9.1",
            "ecosystem": "pypi"
          },
          {
            "name": "python-docx",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "python-dotenv",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "python-multipart",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "python-pptx",
            "direct": true,
            "version": "1.0.2",
            "ecosystem": "pypi"
          },
          {
            "name": "pyyaml",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "redis",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "requests",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "rich",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "ruamel-yaml",
            "direct": true,
            "version": "0.19.1",
            "ecosystem": "pypi"
          },
          {
            "name": "scikit-learn",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "setuptools",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "smolagents",
            "direct": true,
            "version": "1.23.0",
            "ecosystem": "pypi"
          },
          {
            "name": "sqlalchemy",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "supabase",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "tiktoken",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "uvicorn",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "websocket-client",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "websockets",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "xlrd",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "@tailwindcss/postcss",
            "direct": false,
            "version": "^4",
            "ecosystem": "npm"
          },
          {
            "name": "@types/js-yaml",
            "direct": false,
            "version": "^4.0.9",
            "ecosystem": "npm"
          },
          {
            "name": "@types/node",
            "direct": false,
            "version": "22.15.16",
            "ecosystem": "npm"
          },
          {
            "name": "@types/papaparse",
            "direct": false,
            "version": "^5.3.16",
            "ecosystem": "npm"
          },
          {
            "name": "@types/react",
            "direct": false,
            "version": "18.3.20",
            "ecosystem": "npm"
          },
          {
            "name": "@types/react-dom",
            "direct": false,
            "version": "18.3.6",
            "ecosystem": "npm"
          },
          {
            "name": "eslint",
            "direct": false,
            "version": "^9.34.0",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-config-next",
            "direct": false,
            "version": "15.5.7",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-config-prettier",
            "direct": false,
            "version": "^9.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-plugin-prettier",
            "direct": false,
            "version": "^5.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "postcss",
            "direct": false,
            "version": "^8",
            "ecosystem": "npm"
          },
          {
            "name": "postcss-nested",
            "direct": false,
            "version": "^7",
            "ecosystem": "npm"
          },
          {
            "name": "prettier",
            "direct": false,
            "version": "^3.2.5",
            "ecosystem": "npm"
          },
          {
            "name": "tailwindcss",
            "direct": false,
            "version": "^4",
            "ecosystem": "npm"
          },
          {
            "name": "typescript",
            "direct": false,
            "version": "5.8.3",
            "ecosystem": "npm"
          },
          {
            "name": "vitepress",
            "direct": false,
            "version": "^1.6.3",
            "ecosystem": "npm"
          },
          {
            "name": "celery",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "flower",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "huggingface-hub",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "nest-asyncio",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-api",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-exporter-otlp",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-instrumentation",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-instrumentation-fastapi",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-instrumentation-requests",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-sdk",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-semantic-conventions",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pytest",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "ray",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "ruff",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "unstructured",
            "direct": false,
            "version": "0.18.14",
            "ecosystem": "pypi"
          },
          {
            "name": "unstructured-inference",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "pypi"
          }
        ],
        "collected": true,
        "truncated": false,
        "total_count": 152,
        "direct_count": 120,
        "indirect_count": 32
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 47,
        "merged_prs": 1556,
        "open_issues": 149,
        "closed_ratio": 0.886,
        "closed_issues": 1157,
        "closed_unmerged_prs": 307
      },
      "bus_factor": 3,
      "bot_contributors": 0,
      "top_contributors": [
        {
          "type": "User",
          "login": "Phinease",
          "commits": 1157,
          "avatar_url": "https://avatars.githubusercontent.com/u/37070607?v=4"
        },
        {
          "type": "User",
          "login": "WMC001",
          "commits": 883,
          "avatar_url": "https://avatars.githubusercontent.com/u/46217886?v=4"
        },
        {
          "type": "User",
          "login": "ljy65535",
          "commits": 525,
          "avatar_url": "https://avatars.githubusercontent.com/u/34993936?v=4"
        },
        {
          "type": "User",
          "login": "Jasonxia007",
          "commits": 327,
          "avatar_url": "https://avatars.githubusercontent.com/u/29303084?v=4"
        },
        {
          "type": "User",
          "login": "Bavichi",
          "commits": 307,
          "avatar_url": "https://avatars.githubusercontent.com/u/43290652?v=4"
        },
        {
          "type": "User",
          "login": "xuyaqist",
          "commits": 288,
          "avatar_url": "https://avatars.githubusercontent.com/u/25164823?v=4"
        },
        {
          "type": "User",
          "login": "Zhi-a",
          "commits": 246,
          "avatar_url": "https://avatars.githubusercontent.com/u/71994024?v=4"
        },
        {
          "type": "User",
          "login": "YehongPan",
          "commits": 209,
          "avatar_url": "https://avatars.githubusercontent.com/u/91180085?v=4"
        },
        {
          "type": "User",
          "login": "liutao12138",
          "commits": 163,
          "avatar_url": "https://avatars.githubusercontent.com/u/43629081?v=4"
        },
        {
          "type": "User",
          "login": "Mermaid97",
          "commits": 90,
          "avatar_url": "https://avatars.githubusercontent.com/u/56384180?v=4"
        }
      ],
      "contributors_sampled": 100,
      "top_contributor_share": 0.243
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "auto-build-data-process-dev.yml",
        "auto-build-doc-dev.yml",
        "auto-build-main-dev.yml",
        "auto-build-mcp-dev.yml",
        "auto-build-terminal-dev.yml",
        "auto-build-web-dev.yml",
        "auto-image-pull-test.yml",
        "auto-unit-test.yml",
        "auto-web-check-dev.yml",
        "build-offline-package.yml",
        "codeql.yml",
        "codeql_main.yml",
        "deploy-docs.yml",
        "docker-build-push-mainland.yml",
        "docker-build-push-overseas.yml",
        "docker-deploy.yml",
        "sdk_publish.yml"
      ],
      "has_docs_dir": true,
      "linter_configs": [
        ".eslintrc.json"
      ],
      "has_editorconfig": true,
      "has_linter_config": true,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 10,
            "reason": "no binaries found in the repo",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": 1,
            "reason": "branch protection is not maximal on development and all release branches",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": 10,
            "reason": "30 out of 30 merged PRs checked by a CI test -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
          },
          {
            "name": "CII-Best-Practices",
            "score": 0,
            "reason": "no effort to earn an OpenSSF best practices badge detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
          },
          {
            "name": "Code-Review",
            "score": 9,
            "reason": "Found 28/30 approved changesets -- score normalized to 9",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 10,
            "reason": "project has 4 contributing companies or organizations",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": 10,
            "reason": "no dangerous workflow patterns detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 10,
            "reason": "update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 0,
            "reason": "project is not fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 10,
            "reason": "license file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 10,
            "reason": "30 commit(s) and 5 issue activity found in the last 90 days -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
          },
          {
            "name": "Packaging",
            "score": 10,
            "reason": "packaging workflow detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": 0,
            "reason": "dependency not pinned by hash detected -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 10,
            "reason": "SAST tool is run on all commits",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 10,
            "reason": "security policy file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
          },
          {
            "name": "Signed-Releases",
            "score": null,
            "reason": "no releases found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
          },
          {
            "name": "Token-Permissions",
            "score": 0,
            "reason": "detected GitHub workflow tokens with excessive permissions",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 10,
            "reason": "0 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "43e55d41aa6929e2688451c7d95c0d28e0e9637f",
        "ran_at": "2026-07-27T02:02:21Z",
        "aggregate_score": 7.2,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": true,
      "has_security_policy": true,
      "has_dependabot_config": true
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-07-27T01:59:44Z",
      "oldest_open_prs": [
        {
          "number": 2717,
          "created_at": "2026-03-22T09:00:52Z",
          "last_comment_at": "2026-06-24T08:34:01Z",
          "last_comment_author": "octo-patch"
        },
        {
          "number": 2750,
          "created_at": "2026-04-02T16:42:42Z",
          "last_comment_at": "2026-06-24T07:19:43Z",
          "last_comment_author": "WMC001"
        },
        {
          "number": 2763,
          "created_at": "2026-04-08T06:58:12Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 2801,
          "created_at": "2026-04-17T00:04:00Z",
          "last_comment_at": "2026-06-24T07:18:12Z",
          "last_comment_author": "WMC001"
        },
        {
          "number": 2888,
          "created_at": "2026-04-28T09:21:08Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 2941,
          "created_at": "2026-05-07T15:52:31Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 3013,
          "created_at": "2026-05-20T11:23:18Z",
          "last_comment_at": "2026-06-24T07:19:37Z",
          "last_comment_author": "WMC001"
        },
        {
          "number": 3015,
          "created_at": "2026-05-22T03:06:50Z",
          "last_comment_at": "2026-06-24T07:18:02Z",
          "last_comment_author": "WMC001"
        },
        {
          "number": 3182,
          "created_at": "2026-06-02T18:23:07Z",
          "last_comment_at": "2026-06-24T07:18:13Z",
          "last_comment_author": "WMC001"
        },
        {
          "number": 3210,
          "created_at": "2026-06-09T08:25:04Z",
          "last_comment_at": "2026-06-24T07:19:44Z",
          "last_comment_author": "WMC001"
        },
        {
          "number": 3216,
          "created_at": "2026-06-10T08:37:04Z",
          "last_comment_at": "2026-06-25T07:48:56Z",
          "last_comment_author": "2862282695gjh-afk"
        },
        {
          "number": 3217,
          "created_at": "2026-06-11T02:33:54Z",
          "last_comment_at": "2026-07-26T06:16:42Z",
          "last_comment_author": "codecov"
        },
        {
          "number": 3228,
          "created_at": "2026-06-12T15:43:40Z",
          "last_comment_at": "2026-06-12T15:43:40Z",
          "last_comment_author": "dependabot"
        },
        {
          "number": 3232,
          "created_at": "2026-06-12T15:44:11Z",
          "last_comment_at": "2026-06-12T15:44:12Z",
          "last_comment_author": "dependabot"
        },
        {
          "number": 3233,
          "created_at": "2026-06-12T15:44:16Z",
          "last_comment_at": "2026-06-12T15:44:17Z",
          "last_comment_author": "dependabot"
        },
        {
          "number": 3234,
          "created_at": "2026-06-12T15:44:28Z",
          "last_comment_at": "2026-06-12T15:44:29Z",
          "last_comment_author": "dependabot"
        },
        {
          "number": 3235,
          "created_at": "2026-06-12T15:44:55Z",
          "last_comment_at": "2026-06-12T15:44:55Z",
          "last_comment_author": "dependabot"
        },
        {
          "number": 3236,
          "created_at": "2026-06-12T15:45:16Z",
          "last_comment_at": "2026-06-12T15:45:17Z",
          "last_comment_author": "dependabot"
        },
        {
          "number": 3237,
          "created_at": "2026-06-12T15:45:41Z",
          "last_comment_at": "2026-06-12T15:45:42Z",
          "last_comment_author": "dependabot"
        },
        {
          "number": 3250,
          "created_at": "2026-06-17T04:02:49Z",
          "last_comment_at": "2026-06-24T07:18:12Z",
          "last_comment_author": "WMC001"
        }
      ],
      "last_merged_pr_at": "2026-07-27T01:59:23Z",
      "ci_last_conclusion": null,
      "oldest_open_issues": [
        {
          "number": 249,
          "created_at": "2025-06-06T03:37:32Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 414,
          "created_at": "2025-06-28T06:23:26Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 420,
          "created_at": "2025-06-28T06:24:34Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 546,
          "created_at": "2025-07-17T01:05:20Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 590,
          "created_at": "2025-07-22T07:46:48Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 667,
          "created_at": "2025-07-28T08:29:13Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 827,
          "created_at": "2025-08-09T08:24:58Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 839,
          "created_at": "2025-08-11T03:33:30Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 890,
          "created_at": "2025-08-13T09:45:10Z",
          "last_comment_at": "2025-09-28T01:30:04Z",
          "last_comment_author": "SimengBian"
        },
        {
          "number": 959,
          "created_at": "2025-08-19T02:24:23Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 971,
          "created_at": "2025-08-19T08:02:24Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 1034,
          "created_at": "2025-08-26T11:52:47Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 1205,
          "created_at": "2025-09-15T06:23:00Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 1206,
          "created_at": "2025-09-15T06:30:33Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 1208,
          "created_at": "2025-09-15T06:46:58Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 1209,
          "created_at": "2025-09-15T06:48:43Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 1210,
          "created_at": "2025-09-15T06:53:14Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 1211,
          "created_at": "2025-09-15T06:55:44Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 1212,
          "created_at": "2025-09-15T07:01:12Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 1213,
          "created_at": "2025-09-15T07:02:23Z",
          "last_comment_at": null,
          "last_comment_author": null
        }
      ]
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/ModelEngine-Group/nexent",
    "host": "github.com",
    "name": "nexent",
    "owner": "ModelEngine-Group"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "excellent",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 86,
      "inputs": {
        "security": 68,
        "vitality": 100,
        "community": 91,
        "governance": 81,
        "engineering": 84
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "excellent",
        "name": "Vitality",
        "value": 100,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "excellent",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "commits_last_year": 3751,
              "human_commit_share": 1,
              "days_since_last_push": 0,
              "active_weeks_last_year": 52
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 0 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 0
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "52/52 weeks with commits",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 52
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "3751 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 3751
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "30 commit(s) and 5 issue activity found in the last 90 days -- score normalized to 10",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "excellent",
            "name": "Release discipline",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "releases_count": 49,
              "latest_release_tag": "v2.3.0",
              "releases_from_tags": false,
              "days_since_latest_release": 10,
              "mean_days_between_releases": 13.8
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "49 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 49
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 10 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 10
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~13.8 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 13.8
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "excellent",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "cap": null,
              "state": "maintained",
              "guards": [],
              "signals": [],
              "red_flag": false,
              "multiplier_pct": 100,
              "declared_reason": null,
              "unverified_reason": null,
              "unanswered_open_prs": null,
              "unanswered_open_issues": null,
              "days_since_last_merged_pr": null,
              "days_since_last_human_commit": 0,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "last human commit 0 days ago",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_maintained",
                    "params": {
                      "days": 0
                    }
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "excellent",
        "name": "Community & Adoption",
        "value": 91,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "excellent",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 97,
            "inputs": {
              "forks": 707,
              "stars": 5791,
              "watchers": 253,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "5,791 stars",
                "points": 60,
                "status": "met",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 5791
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "707 forks",
                "points": 23.7,
                "status": "partial",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 707
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "253 watchers",
                "points": 13.4,
                "status": "partial",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 253
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "excellent",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 85,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "has_contributing": true,
              "has_issue_template": false,
              "has_code_of_conduct": true,
              "has_pull_request_template": false
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "recognized license (MIT)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "MIT"
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 18,
                "status": "met",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 13.5,
                "status": "met",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.3
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "good",
        "name": "Sustainability & Governance",
        "value": 81,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "good",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 76,
            "inputs": {
              "bus_factor": 3,
              "contributors_sampled": 100,
              "top_contributor_share": 0.243
            },
            "components": [
              {
                "key": "bus_factor",
                "name": "Bus factor",
                "detail": "3 contributor(s) cover half of all commits",
                "points": 36,
                "status": "partial",
                "details": [
                  {
                    "code": "bus_factor",
                    "params": {
                      "count": 3
                    }
                  }
                ],
                "max_points": 54
              },
              {
                "key": "commit_distribution",
                "name": "Commit distribution",
                "detail": "top contributor authored 24% of commits",
                "points": 17,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 24
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "100 contributors",
                "points": 13.5,
                "status": "met",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 100
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 4 contributing companies or organizations",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "excellent",
            "name": "Issue & PR responsiveness",
            "note": null,
            "notes": [],
            "value": 87,
            "inputs": {
              "merged_prs": 1556,
              "open_issues": 149,
              "closed_issues": 1157,
              "issue_closed_ratio": 0.886,
              "closed_unmerged_prs": 307
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "89% of issues closed",
                "points": 41.4,
                "status": "partial",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 89
                    }
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "1556/1863 decided PRs merged",
                "points": 31.9,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 1556,
                      "decided": 1863
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 28/30 approved changesets -- score normalized to 9",
                "points": 13.5,
                "status": "partial",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "moderate",
            "name": "Ownership & stewardship",
            "note": null,
            "notes": [],
            "value": 64,
            "inputs": {
              "followers": 851,
              "owner_type": "Organization",
              "is_verified": null,
              "owner_login": "ModelEngine-Group",
              "public_repos": 20,
              "account_age_days": 521
            },
            "components": [
              {
                "key": "ownership_backing",
                "name": "Ownership backing",
                "detail": "organization-owned",
                "points": 30,
                "status": "met",
                "details": [
                  {
                    "code": "owner_organization",
                    "params": {}
                  }
                ],
                "max_points": 30
              },
              {
                "key": "verified_domain",
                "name": "Verified domain",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "owner_reach",
                "name": "Owner reach",
                "detail": "851 followers of ModelEngine-Group",
                "points": 21.1,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 851,
                      "login": "ModelEngine-Group"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "20 public repos, account ~1 yr old",
                "points": 12.5,
                "status": "partial",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 20
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 1
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "excellent",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "nexent"
              ],
              "ecosystems": "pypi",
              "any_deprecated": false,
              "min_days_since_publish": 134
            },
            "components": [
              {
                "key": "published_resolvable",
                "name": "Published & resolvable",
                "detail": "1 package(s) on pypi",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "packages_published",
                    "params": {
                      "count": 1,
                      "ecosystems": "pypi"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "publish_recency",
                "name": "Publish recency",
                "detail": "latest publish 134 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 134
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "8 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 8
                    }
                  }
                ],
                "max_points": 20
              },
              {
                "key": "not_deprecated",
                "name": "Not deprecated",
                "detail": "active, not deprecated or yanked",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "package_not_deprecated",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
      },
      {
        "key": "engineering",
        "band": "good",
        "name": "Engineering Quality",
        "value": 84,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "excellent",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 90,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": true,
              "has_linter_config": true,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "17 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 17
                    }
                  }
                ],
                "max_points": 24
              },
              {
                "key": "tests_present",
                "name": "Tests present",
                "detail": null,
                "points": 24,
                "status": "met",
                "details": [],
                "max_points": 24
              },
              {
                "key": "linter_config",
                "name": "Linter config",
                "detail": ".eslintrc.json",
                "points": 16,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": ".eslintrc.json"
                    }
                  }
                ],
                "max_points": 16
              },
              {
                "key": "pre_commit_hooks",
                "name": "Pre-commit hooks",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 9.6
              },
              {
                "key": "editorconfig",
                "name": ".editorconfig",
                "detail": null,
                "points": 6.4,
                "status": "met",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "30 out of 30 merged PRs checked by a CI test -- score normalized to 10",
                "points": 20,
                "status": "met",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "good",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 75,
            "inputs": {
              "topics": [
                "agent",
                "agentic-ai",
                "agentic-framework",
                "agentic-rag",
                "agentic-workflow",
                "ai",
                "llm",
                "rag",
                "harness",
                "harness-engineering",
                "mcp",
                "multi-agent"
              ],
              "has_wiki": false,
              "homepage": null,
              "has_readme": true,
              "has_docs_dir": true,
              "has_description": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 30,
                "status": "met",
                "details": [],
                "max_points": 30
              },
              {
                "key": "documentation_directory",
                "name": "Documentation directory",
                "detail": null,
                "points": 25,
                "status": "met",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "repository_description",
                "name": "Repository description",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": "12 topics",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "topics_count",
                    "params": {
                      "count": 12
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "moderate",
        "name": "Security",
        "value": 68,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "good",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 72,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 17,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 1,
              "scorecard_aggregate": 7.2
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "no binaries found in the repo",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "branch protection is not maximal on development and all release branches",
                "points": 0.8,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "30 out of 30 merged PRs checked by a CI test -- score normalized to 10",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "Found 28/30 approved changesets -- score normalized to 9",
                "points": 6.8,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 4 contributing companies or organizations",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no dangerous workflow patterns detected",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "update tool detected",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is not fuzzed",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file detected",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "30 commit(s) and 5 issue activity found in the last 90 days -- score normalized to 10",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "packaging",
                "name": "Packaging",
                "detail": "packaging workflow detected",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "SAST tool is run on all commits",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file detected",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "token_permissions",
                "name": "Token-Permissions",
                "detail": "detected GitHub workflow tokens with excessive permissions",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "0 existing vulnerabilities detected",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "dependency_advisories",
            "band": "moderate",
            "name": "Dependency advisories",
            "note": "Matched the pypi:nexent@1.8.1 runtime dependency closure — what installing the published package pulls in — 121 packages. Reachability is not analyzed.",
            "notes": [
              {
                "code": "advisories_scope_published",
                "params": {
                  "package": "pypi:nexent@1.8.1",
                  "assessed": 121
                }
              },
              {
                "code": "advisories_reachability",
                "params": {}
              }
            ],
            "value": 54,
            "inputs": {
              "source": "osv",
              "advisories": 26,
              "affected_packages": 3,
              "assessed_packages": 121,
              "unassessed_packages": 0,
              "affected_by_severity": "critical 2, high 1",
              "direct_affected_packages": 3
            },
            "components": [
              {
                "key": "direct_dependencies_free_of_known_advisories",
                "name": "Direct dependencies free of known advisories",
                "detail": "3 affected: fastmcp 2.12.0 (critical 10.0), smolagents 1.23.0 (critical 10.0), mcp 1.22.0 (high 7.1)",
                "points": 4.9,
                "status": "partial",
                "details": [
                  {
                    "code": "advisories_affected",
                    "params": {
                      "count": 3,
                      "packages": "fastmcp 2.12.0 (critical 10.0), smolagents 1.23.0 (critical 10.0), mcp 1.22.0 (high 7.1)"
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "indirect_dependencies_free_of_known_advisories",
                "name": "Indirect dependencies free of known advisories",
                "detail": "no indirect dependency carries a known advisory",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "no_indirect_advisories",
                    "params": {}
                  }
                ],
                "max_points": 25
              },
              {
                "key": "no_advisories_left_outstanding",
                "name": "No advisories left outstanding",
                "detail": "3 advisory-carrying package(s) unaddressed past 90 days; oldest published 270 days ago",
                "points": 23.8,
                "status": "partial",
                "details": [
                  {
                    "code": "advisories_stale",
                    "params": {
                      "days": 90,
                      "count": 3,
                      "oldest": 270
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "malicious_dependencies",
            "band": "excellent",
            "name": "Malicious dependencies",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "source": "osv",
              "meaning": "reported as a malicious package by the OpenSSF corpus; the remedy is removal or moving off the compromised name, never an upgrade of the same artifact. Versions the registry has since pulled are listed but not scored",
              "packages": [],
              "red_flag": false,
              "assessed_packages": 121,
              "malicious_packages": 0,
              "direct_malicious_packages": 0,
              "withdrawn_malicious_packages": 0,
              "installable_malicious_packages": 0
            },
            "components": [
              {
                "key": "no_dependency_reported_as_a_malicious_package",
                "name": "No dependency reported as a malicious package",
                "detail": "no dependency is reported as a malicious package",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "no_malicious_dependencies",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
      },
      {
        "key": "ai_readiness",
        "band": "moderate",
        "name": "AI Readiness",
        "value": 68,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "excellent",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 85,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 0.92,
              "agent_instruction_files": [
                ".cursor/rules/backend/app_layer_rules.mdc",
                ".cursor/rules/backend/database_layer_rules.mdc",
                ".cursor/rules/backend/service_layer_rules.mdc",
                ".cursor/rules/english_comments.mdc",
                ".cursor/rules/environment_variable.mdc",
                ".cursor/rules/frontend/component_layer_rules.mdc",
                ".cursor/rules/frontend/frontend_overview_rules.mdc",
                ".cursor/rules/frontend/hook_layer_rules.mdc",
                ".cursor/rules/frontend/page_layer_rules.mdc",
                ".cursor/rules/frontend/service_layer_rules.mdc",
                ".cursor/rules/frontend/type_layer_rules.mdc",
                ".cursor/rules/frontend/ui_standards_rules.mdc",
                ".cursor/rules/pytest_unit_test_rules.mdc",
                "AGENTS.md",
                "CLAUDE.md",
                "doc/docs/en/sdk/core/agents.md",
                "doc/docs/zh/sdk/core/agents.md"
              ],
              "agent_instruction_max_bytes": 6568
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": ".cursor/rules/backend/app_layer_rules.mdc, .cursor/rules/backend/database_layer_rules.mdc, .cursor/rules/backend/service_layer_rules.mdc, .cursor/rules/english_comments.mdc, .cursor/rules/environment_variable.mdc, .cursor/rules/frontend/component_layer_rules.mdc, .cursor/rules/frontend/frontend_overview_rules.mdc, .cursor/rules/frontend/hook_layer_rules.mdc, .cursor/rules/frontend/page_layer_rules.mdc, .cursor/rules/frontend/service_layer_rules.mdc, .cursor/rules/frontend/type_layer_rules.mdc, .cursor/rules/frontend/ui_standards_rules.mdc, .cursor/rules/pytest_unit_test_rules.mdc, AGENTS.md, CLAUDE.md, doc/docs/en/sdk/core/agents.md, doc/docs/zh/sdk/core/agents.md",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": ".cursor/rules/backend/app_layer_rules.mdc, .cursor/rules/backend/database_layer_rules.mdc, .cursor/rules/backend/service_layer_rules.mdc, .cursor/rules/english_comments.mdc, .cursor/rules/environment_variable.mdc, .cursor/rules/frontend/component_layer_rules.mdc, .cursor/rules/frontend/frontend_overview_rules.mdc, .cursor/rules/frontend/hook_layer_rules.mdc, .cursor/rules/frontend/page_layer_rules.mdc, .cursor/rules/frontend/service_layer_rules.mdc, .cursor/rules/frontend/type_layer_rules.mdc, .cursor/rules/frontend/ui_standards_rules.mdc, .cursor/rules/pytest_unit_test_rules.mdc, AGENTS.md, CLAUDE.md, doc/docs/en/sdk/core/agents.md, doc/docs/zh/sdk/core/agents.md"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "machine_readable_docs_llms_txt",
                "name": "Machine-readable docs (llms.txt)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "legible_commit_history",
                "name": "Legible commit history",
                "detail": "92 of 100 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 92,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "moderate",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 69,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [],
              "has_dockerfile": true,
              "typed_language": false,
              "bootstrap_files": [],
              "has_devcontainer": true,
              "has_linter_config": true,
              "typecheck_configs": [
                "frontend/tsconfig.json"
              ],
              "agent_commit_share": 0.13,
              "toolchain_manifests": [],
              "dependency_bot_commit_share": 0
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 18
              },
              {
                "key": "automated_tests",
                "name": "Automated tests",
                "detail": null,
                "points": 22,
                "status": "met",
                "details": [],
                "max_points": 22
              },
              {
                "key": "lint_format_config",
                "name": "Lint / format config",
                "detail": ".eslintrc.json",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": ".eslintrc.json"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": "frontend/tsconfig.json",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "frontend/tsconfig.json"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": "devcontainer, Dockerfile",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "devcontainer, Dockerfile"
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "13 of the last 100 commits agent-authored or agent-credited",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "agent_authored_commits",
                    "params": {
                      "count": 13,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "dependency automation configured, none observed in the sampled commits",
                "points": 5,
                "status": "partial",
                "details": [
                  {
                    "code": "dependency_bot_config_only",
                    "params": {}
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "good",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 79,
            "inputs": {
              "primary_language": "Python",
              "largest_source_bytes": 595905,
              "source_files_sampled": 1200,
              "oversized_source_files": 62
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "Python with type-check config (frontend/tsconfig.json)",
                "points": 27,
                "status": "partial",
                "details": [
                  {
                    "code": "typecheck_config_language",
                    "params": {
                      "files": "frontend/tsconfig.json",
                      "language": "Python"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "62/1200 source files over 60KB",
                "points": 52.2,
                "status": "partial",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 1200,
                      "oversized": 62
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          },
          {
            "key": "ai_interfaces",
            "band": "critical",
            "name": "Machine-readable interfaces",
            "note": null,
            "notes": [],
            "value": 20,
            "inputs": {
              "example_dirs": [],
              "has_mcp_signal": true,
              "api_schema_files": []
            },
            "components": [
              {
                "key": "api_schema_openapi_graphql_proto",
                "name": "API schema (OpenAPI/GraphQL/proto)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 40
              },
              {
                "key": "mcp_server",
                "name": "MCP server",
                "detail": null,
                "points": 20,
                "status": "met",
                "details": [],
                "max_points": 20
              },
              {
                "key": "runnable_examples",
                "name": "Runnable examples",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 40
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
      }
    ],
    "metrics_version": "1.13.0"
  },
  "warnings": [
    "Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token",
    "pypi package 'backend' points at a different repository (https://github.com/tr4n2uil/backend.django); excluded from ecosystem scoring"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-27T02:02:51.984890Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/m/ModelEngine-Group/nexent.svg",
  "full_name": "ModelEngine-Group/nexent",
  "license_state": "standard",
  "license_spdx": "MIT"
}

Оцінки — це сигнали, а не гарантії. Вони відображають публічно видимі практики на GitHub — це не аудит коду й не гарантія безпеки.

Відсутні дані виключаються, а ваги перенормовуються — нуль за відсутність ніколи не ставиться. Методологія версіонована й відкрита: метрики v1.13.0, схема v0.27.0 — повна методологія · вікі метрик.

Як окремий результат виглядає на тлі всього реєстру: сукупна статистикаPyPI.