Öffentliches Register
Software-GesundheitsberichtSchema 0.27.0 · Metriken 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 Sterne⑂ 707 Forksseit Apr. 2025Auf GitHub ansehen ↗

ModelEngine-Group/nexent erreicht einen Gesundheitsindex von 86 von 100 und liegt damit im Bereich Exzellent. Am stärksten schneidet es bei Vitality (100/100) ab, am schwächsten bei AI Readiness (68/100). Zuletzt heute aktualisiert. 3 Mitwirkende tragen den Großteil der jüngsten Arbeit.

86
gesamt / 100
Exzellent

Software-Gesundheitsindex

Metriken werden auf einer Skala von 1–100 in gewichtete Kategorien gruppiert. Der Gesamtwert beginnt als ihr Mittel; sobald öffentliche Evidenz die Richtlinie für Hochrisikojurisdiktionen auslöst, wird die Bewertung angepasst und erhält die Obergrenze 49 (Gefährdet). AI Readiness liegt außerhalb.

86
Exzellent85-100Vorbildlich; erfüllt im Wesentlichen alle geprüften Kriterien
Gut70-84Gesund; geringfügige Lücken
Mittel50-69Akzeptabel mit deutlichen Lücken; Überprüfung empfohlen
Gefährdet30-49Erhebliche Schwächen; eine Übernahme erfordert Vorsicht
Kritisch1-29Schwerwiegende Probleme (aufgegeben, nur ein Maintainer, keine Hygiene)
VitalitätCommunity &VerbreitungNachhaltigkeit &GovernanceEngineering-QualitätSicherheitAI Readiness

Bewertungsprofil

Jede Achse ist eine Kategorie. Die Form zählt mehr als der Durchschnitt — ein gesundes Projekt füllt die gesamte Fläche, während ein Profil aus Spitzen und Kratern bedeutet, dass Stärke in einer Dimension Risiken in einer anderen verdeckt.

Eigentümerschaft

ModelEngine-GroupOrganisation
851 Follower20 öffentliche Reposseit Feb. 2025

Dieses Repository wird von einer Organisation getragen — geteilte, rechenschaftspflichtige Trägerschaft, die jeden einzelnen Maintainer überdauern kann.

Paket-Ökosysteme

RegistryPaketVersionDownloads / MonatVersionenZuletzt veröffentlichtTags
PyPInexent1.8.1-8vor 134 Tagenagentaiframework
PyPIbackendverweist auf ein anderes Repo — nicht bewertet0.2.4.1-8vor 4541 Tagendjangobackend

Metriken nach Kategorie

Vitalität

Lebt das Projekt — wird Code geschrieben und werden Releases ausgeliefert?

100Exzellent · 22 % des Gesamtindex
Wie die Bewertung erfolgt
36/36Push-Aktualität — letzter Push vor 0 Tagen
36/36Commit-Rhythmus — 52/52 Wochen mit Commits
18/18Commit-Volumen — 3.751 Commits im letzten Jahr
10/10OpenSSF Scorecard: Maintained — 30 commit(s) and 5 issue activity found in the last 90 days -- score normalized to 10
Verwendete Eingangsdaten
commits_last_year3.751
human_commit_share1
days_since_last_push0
active_weeks_last_year52

Release-Disziplin

100Exzellent
Wie die Bewertung erfolgt
27/27Liefert Releases aus — 49 Releases veröffentlicht
36/36Release-Aktualität — letztes Release vor 10 Tagen
27/27Release-Rhythmus — ein Release etwa alle 13,8 Tage
0/10OpenSSF Scorecard: Signed-Releases — keine Daten
Verwendete Eingangsdaten
releases_count49
latest_release_tagv2.3.0
releases_from_tagsnein
days_since_latest_release10
mean_days_between_releases13,8
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): OpenSSF Scorecard: Signed-Releases. Die verbleibenden Gewichte wurden renormalisiert.

Community & Verbreitung

Hat das Projekt Nutzer, Downloads, Aufmerksamkeit und ein einladendes Umfeld für Beitragende?

91Exzellent · 18 % des Gesamtindex
Wie die Bewertung erfolgt
60/60Stars — 5.791 Stars
23.7/25Forks — 707 Forks
13.4/15Watcher — 253 Watcher
Verwendete Eingangsdaten
forks707
stars5.791
watchers253
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
Wie die Bewertung erfolgt
22.5/22.5README
22.5/22.5Lizenz — anerkannte Lizenz (MIT)
18/18CONTRIBUTING-Leitfaden
13.5/13.5Verhaltenskodex
0/7.2Issue-Vorlage
0/6.3PR-Vorlage
Verwendete Eingangsdaten
has_readmeja
has_licenseja
has_contributingja
has_issue_templatenein
has_code_of_conductja
has_pull_request_templatenein

Nachhaltigkeit & Governance

Überdauert das Projekt die Menschen, die es tragen — Bus-Faktor, Reaktionsfähigkeit, Trägerschaft und Paketpflege?

81Gut · 24 % des Gesamtindex
Wie die Bewertung erfolgt
36/54Bus-Faktor — 3 Beitragende decken die Hälfte aller Commits ab
17/22.5Commit-Verteilung — wichtigste beitragende Person verfasste 24 % der Commits
13.5/13.5Breite der Beitragenden — 100 Beitragende
10/10OpenSSF Scorecard: Contributors — project has 4 contributing companies or organizations
Verwendete Eingangsdaten
bus_factor3
contributors_sampled100
top_contributor_share0,243
Wie die Bewertung erfolgt
41.4/46.8Issue-Lösungsquote — 89 % der Issues geschlossen
31.9/38.3PR-Annahme — 1.556/1.863 entschiedene PRs gemergt
13.5/15OpenSSF Scorecard: Code-Review — Found 28/30 approved changesets -- score normalized to 9
Verwendete Eingangsdaten
merged_prs1.556
open_issues149
closed_issues1.157
issue_closed_ratio0,886
closed_unmerged_prs307
Wie die Bewertung erfolgt
30/30Organisatorische Trägerschaft — im Besitz einer Organisation
0/20Verifizierte Domain
21.1/25Reichweite des Inhabers — 851 Follower von ModelEngine-Group
12.5/25Kontohistorie — 20 öffentliche Repos, Kontoalter ca. 1 Jahre
Verwendete Eingangsdaten
followers851
owner_typeOrganization
is_verified
owner_loginModelEngine-Group
public_repos20
account_age_days521

Paketpflege

100Exzellent
Wie die Bewertung erfolgt
25/25Veröffentlicht & auflösbar — 1 Paket(e) auf pypi
35/35Veröffentlichungsaktualität — letzte Veröffentlichung vor 134 Tagen
20/20Versionshistorie — 8 veröffentlichte Versionen
20/20Nicht veraltet — aktiv, nicht veraltet oder zurückgezogen
Verwendete Eingangsdaten
packagesnexent
ecosystemspypi
any_deprecatednein
min_days_since_publish134

Engineering-Qualität

Sind grundlegende Engineering- und Dokumentationspraktiken vorhanden?

84Gut · 20 % des Gesamtindex
Wie die Bewertung erfolgt
24/24CI-Workflows — 17 Workflow(s)
24/24Tests vorhanden
16/16Linter-Konfiguration — .eslintrc.json
0/9.6Pre-Commit-Hooks
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
Verwendete Eingangsdaten
has_cija
has_testsja
has_editorconfigja
has_linter_configja
has_precommit_confignein
Wie die Bewertung erfolgt
30/30README
25/25Dokumentationsverzeichnis
0/15Dokumentations-/Homepage-Site
10/10Repository-Beschreibung
10/10Topics — 12 Topics
0/10Wiki
Verwendete Eingangsdaten
topicsagent, agentic-ai, agentic-framework, agentic-rag, agentic-workflow, ai, llm, rag, harness, harness-engineering, mcp, multi-agent
has_wikinein
homepage
has_readmeja
has_docs_dirja
has_descriptionja

Sicherheit

Sind die sichtbaren Sicherheits- und Lieferkettenpraktiken belastbar, ohne ungeklärte Exposition gegenüber Hochrisikojurisdiktionen?

68Mittel · 16 % des Gesamtindex
Wie die Bewertung erfolgt
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.5Lizenz — 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 — keine Daten
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
7.5/7.5Vulnerabilities — 0 existing vulnerabilities detected
Verwendete Eingangsdaten
sourceopenssf_scorecard
checks_evaluated17
scorecard_versionv5.5.0
checks_inconclusive1
scorecard_aggregate7,2
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): signed_releases. Die verbleibenden Gewichte wurden renormalisiert.
Wie die Bewertung erfolgt
4.9/35Direkte Abhängigkeiten ohne bekannte Advisories — 3 betroffen: fastmcp 2.12.0 (critical 10.0), smolagents 1.23.0 (critical 10.0), mcp 1.22.0 (high 7.1)
25/25Indirekte Abhängigkeiten ohne bekannte Advisories — keine indirekte Abhängigkeit trägt ein bekanntes Advisory
23.8/40Keine offenen Advisories — 3 Paket(e) mit Advisory seit über 90 Tagen unbehandelt; ältestes vor 270 Tagen veröffentlicht
Verwendete Eingangsdaten
sourceosv
advisories26
affected_packages3
assessed_packages121
unassessed_packages0
affected_by_severitycritical 2, high 1
direct_affected_packages3
Abgeglichen wurde die Laufzeit-Abhängigkeitshülle von pypi:nexent@1.8.1 — das, was die Installation des veröffentlichten Pakets nach sich zieht — mit 121 Paketen. Erreichbarkeit wird nicht analysiert.

AI Readiness

Wie gut ist das Repository dafür ausgestattet, mit KI-Coding-Agenten entwickelt und gepflegt zu werden? Ein unabhängiges, experimentelles Badge — Gewicht 0,0, es wird eigenständig ausgewiesen und verändert den Gesamt-Gesundheitswert nicht.

68Mittel · 0 % des Gesamtindex
Wie die Bewertung erfolgt
45/45Agentenanweisungen — .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/15Maschinenlesbare Doku (llms.txt)
40/40Lesbare Commit-Historie — 92 von 100 menschlichen Commits benennen ihre Absicht (strukturierter Betreff oder erläuternder Text)
Verwendete Eingangsdaten
has_llms_txtnein
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
Wie die Bewertung erfolgt
0/18Bootstrap mit einem Befehl
22/22Automatisierte Tests
11/11Lint-/Format-Konfiguration — .eslintrc.json
11/11Statische Typprüfung — frontend/tsconfig.json
10/10Reproduzierbare Umgebung — devcontainer, Dockerfile
10/10Belegte Agentenpraxis — 13 der letzten 100 Commits von Agenten verfasst oder ihnen zugeschrieben
5/8Automatisierte Wartung — Abhängigkeits-Automatisierung konfiguriert, in den erfassten Commits nicht beobachtet
0/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
Verwendete Eingangsdaten
has_nixnein
has_testsja
lockfiles
has_dockerfileja
typed_languagenein
bootstrap_files
has_devcontainerja
has_linter_configja
typecheck_configsfrontend/tsconfig.json
agent_commit_share0,13
toolchain_manifests
dependency_bot_commit_share0
Wie die Bewertung erfolgt
27/45Typprüfbarer Code — Python mit Typprüfungs-Konfiguration (frontend/tsconfig.json)
52.2/55Handhabbare Dateigrößen — 62/1.200 Quelldateien über 60 KB
Verwendete Eingangsdaten
primary_languagePython
largest_source_bytes595.905
source_files_sampled1.200
oversized_source_files62
Wie die Bewertung erfolgt
0/40API-Schema (OpenAPI/GraphQL/proto)
20/20MCP-Server
0/40Lauffähige Beispiele
Verwendete Eingangsdaten
example_dirs
has_mcp_signalja
api_schema_files

Eckdaten

5.791GitHub-Sterne
100Mitwirkende
3.751Commits, letzte 12 Monate
0Tage seit letztem Push
49Releases
3Bus-Faktor
149offene Issues
npm, PyPIPaket-Ökosysteme

Warnungen zur Datenerhebung

  • 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

Weitere Details

Stern- und Fork-Verlauf 0 ★ / 707 ⇿
0Sterne
707Forks
49Releases

Wann jeder Stern und Fork hinzugefügt wurde, von GitHub erfasst und nach Tagen gruppiert. Das kumulierte Wachstum steht direkt über den täglichen Zugängen, aus denen es besteht, sodass beide gegeneinander lesbar sind: stetiger organischer Zuwachs sieht ganz anders aus als ein abrupter, kurzlebiger Ausschlag. Wo dieser Unterschied messbar ist, wird er als Wachstumsauthentizität ausgewiesen.

0125250375500625750706342025-052025-122026-07
Major 2Minor 12Patch 17

Jeder Punkt umfasst 2 Tage.

OpenSSF Scorecard 7.2 / 10
7.2Gesamtwert

Unabhängige, werkzeugneutrale Sicherheitsbewertung durch das quelloffene OpenSSF Scorecard. Jede Prüfung honoriert eine Sicherheits-Praxis, nicht das Werkzeug eines bestimmten Anbieters. Prüfungen, die Scorecard nicht ermitteln konnte, sind mit k. A. markiert und vom Sicherheitswert ausgeschlossen (nie als null gezählt).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
k. A.Signed-Releasesno releases found
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
10Vulnerabilities0 existing vulnerabilities detected
Direkte Abhängigkeiten 130
RegistryPaketVersionsvorgabeManifest
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
Alle Abhängigkeiten 152

Vollständig aufgelöster Abhängigkeitssatz aus dem GitHub-Abhängigkeitsgraphen: 120 direkte und 32 indirekte (transitive) Pakete. Die transitive Hülle ist vollständig, wenn das Repository eine Lockfile eincheckt.

RegistryPaketVersionBeziehung
npm@ant-design/icons6.2.5direkt
npm@assistant-ui/react^0.14.20direkt
npm@assistant-ui/react-ai-sdk^1.3.33direkt
npm@assistant-ui/react-markdown^0.14.2direkt
npm@dicebear/core^9.2.2direkt
npm@dicebear/icons^9.2.2direkt
npm@tanstack/react-query^5.90.12direkt
npm@types/jszip^3.4.0direkt
npmai^6.0.198direkt
npmantd^6.3.0direkt
npmantd-style^4.1.0direkt
npmassistant-stream^0.3.25direkt
npmautoprefixer^10.4.20direkt
npmbootstrap-icons^1.11.3direkt
npmclass-variance-authority^0.7.1direkt
npmclsx^2.1.1direkt
npmcmdk^1.1.1direkt
npmcookie^1.1.1direkt
npmcross-env^10.1.0direkt
npmdayjs^1.11.19direkt
npmdicebear^9.2.2direkt
npmdotenv^16.4.7direkt
npmframer-motion^12.23.6direkt
npmgithub-markdown-css^5.8.1direkt
npmhttp-proxy^1.18.1direkt
npmi18next^25.2.1direkt
npmjs-yaml^4.1.1direkt
npmjszip^3.10.1direkt
npmkatex^0.16.11direkt
npmlucide-react^0.454.0direkt
npmmermaid^11.12.0direkt
npmnext^15.5.9direkt
npmnext-i18next^15.4.2direkt
npmnext-themes^0.4.4direkt
npmpapaparse^5.5.3direkt
npmpdfjs-dist5.3.93direkt
npmradix-ui^1.6.2direkt
npmreact18.2.0direkt
npmreact-d3-tree^3.6.6direkt
npmreact-dom18.2.0direkt
npmreact-hook-form^7.54.1direkt
npmreact-i18next^15.5.3direkt
npmreact-markdown^9.0.3direkt
npmreact-pdf10.1.0direkt
npmreact-shiki^0.10.1direkt
npmreact-syntax-highlighter^16.1.0direkt
npmrecharts^2.15.0direkt
npmrehype-katex^7.0.1direkt
npmrehype-raw^7.0.0direkt
npmremark-gfm^4.0.1direkt
npmremark-math^6.0.0direkt
npmremark-parse^11.0.0direkt
npmremark-rehype^11.1.0direkt
npmtailwind-merge^3direkt
npmtw-animate-css^1.4.0direkt
npmtw-shimmer^0.4.11direkt
npmunified^11.0.0direkt
npmunist-util-visit^5.0.0direkt
npmuuid^11.1.0direkt
npmzustand^5.0.9direkt
PyPIaiofilesdirekt
PyPIaiohttpdirekt
PyPIauthlibdirekt
PyPIboto3direkt
PyPIbotocoredirekt
PyPIcroniterdirekt
PyPIcryptographydirekt
PyPIdefusedxmldirekt
PyPIdockerdirekt
PyPIebooklib0.20direkt
PyPIelasticsearch8.17.2direkt
PyPIemail-validatordirekt
PyPIexa-py1.14.0direkt
PyPIfastapidirekt
PyPIfastmcpdirekt
PyPIgreenletdirekt
PyPIhttpxdirekt
PyPIijson3.5.0direkt
PyPIjiebadirekt
PyPIjsonrefdirekt
PyPIkubernetesdirekt
PyPIlangchaindirekt
PyPIlangchain-text-splitters1.1.2direkt
PyPImcpdirekt
PyPImcpadaptdirekt
PyPImem0ai0.1.117direkt
PyPInumpydirekt
PyPIopenaidirekt
PyPIopenjiuwendirekt
PyPIopenpyxldirekt
PyPIorjson3.10direkt
PyPIparamikodirekt
PyPIpillowdirekt
PyPIpsycopg2-binarydirekt
PyPIpydanticdirekt
PyPIpydantic-settingsdirekt
PyPIpyjwtdirekt
PyPIpymssqldirekt
PyPIpymysqldirekt
PyPIpypandoc1.17direkt
PyPIpypdf6.9.1direkt
PyPIpython-docxdirekt
PyPIpython-dotenvdirekt
PyPIpython-multipartdirekt
PyPIpython-pptx1.0.2direkt
PyPIpyyamldirekt
PyPIredisdirekt
PyPIrequestsdirekt
PyPIrichdirekt
PyPIruamel-yaml0.19.1direkt
PyPIscikit-learndirekt
PyPIsetuptoolsdirekt
PyPIsmolagents1.23.0direkt
PyPIsqlalchemydirekt
PyPIsupabasedirekt
PyPItiktokendirekt
PyPIuvicorndirekt
PyPIwebsocket-clientdirekt
PyPIwebsocketsdirekt
PyPIxlrddirekt
npm@tailwindcss/postcss^4indirekt
npm@types/js-yaml^4.0.9indirekt
npm@types/node22.15.16indirekt
npm@types/papaparse^5.3.16indirekt
npm@types/react18.3.20indirekt
npm@types/react-dom18.3.6indirekt
npmeslint^9.34.0indirekt
npmeslint-config-next15.5.7indirekt
npmeslint-config-prettier^9.1.0indirekt
npmeslint-plugin-prettier^5.1.3indirekt
npmpostcss^8indirekt
npmpostcss-nested^7indirekt
npmprettier^3.2.5indirekt
npmtailwindcss^4indirekt
npmtypescript5.8.3indirekt
npmvitepress^1.6.3indirekt
PyPIceleryindirekt
PyPIflowerindirekt
PyPIhuggingface-hubindirekt
PyPInest-asyncioindirekt
PyPIopentelemetry-apiindirekt
PyPIopentelemetry-exporter-otlpindirekt
PyPIopentelemetry-instrumentationindirekt
PyPIopentelemetry-instrumentation-fastapiindirekt
PyPIopentelemetry-instrumentation-requestsindirekt
PyPIopentelemetry-sdkindirekt
PyPIopentelemetry-semantic-conventionsindirekt
PyPIpytestindirekt
PyPIrayindirekt
PyPIruffindirekt
PyPIunstructured0.18.14indirekt
PyPIunstructured-inference1.2.0indirekt
Abhängigkeits-Advisories 3

Die Installation von pypi:nexent@1.8.1 zieht 121 Pakete nach sich, direkt und transitiv: 3 tragen bekannte Advisories, davon 3 direkte Abhängigkeiten.

PaketVersionBeziehungSchweregradAdvisoriesBehoben in
fastmcp2.12.0direktkritisch143.2.0
smolagents1.23.0direktkritisch6
mcp1.22.0direkthoch61.28.1

Ein Advisory bedeutet, dass die im Abhängigkeitsgraphen erfasste Version in den betroffenen Bereich eines Advisories fällt. Erreichbarkeit wird nicht analysiert, und der Graph enthält Entwicklungs- und Test-Pins — ein Fund kann das Werkzeug betreffen und nicht die ausgelieferte Software.

JSON-Rohbericht maschinenlesbar
{
  "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"
}

Bewertungen sind Signale, keine Garantien. Sie spiegeln öffentlich sichtbare Praxis auf GitHub wider — kein Code-Audit und keine Sicherheitsgarantie.

Fehlende Daten werden ausgeschlossen und die Gewichte neu normiert, nie als null bewertet. Die Methodik ist versioniert und offen: Metriken v1.13.0, Schema v0.27.0 — vollständige Methodik · Metriken-Wiki.

Wie ein einzelnes Ergebnis im Gesamtregister steht: aggregierte StatistikenPyPI.