公开记录
软件健康报告模式 0.27.0 · 指标 1.13.0 · 2026-07-27 02:02 UTC

ModelEngine-Group / nexent

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

Python · TypeScriptMIT★ 5,791 星标⑂ 707 复刻始于 2025年4月在 GitHub 上查看 ↗

ModelEngine-Group/nexent 的健康指数为 100 分中的 86 分,处于「优秀」区间。 其得分最高的类别是Vitality(100/100),最低的是AI Readiness(68/100)。 最近一次更新在今天。 近期的大部分工作由 3 位贡献者完成。

86
总分 / 100
优秀

软件健康指数

指标归入加权类别,统一采用 1–100 量表。总体分先取类别加权平均;当公开证据触发高风险司法辖区政策时,评级会按政策调整,并设置 49(有风险)的上限。AI 就绪度不计入总体分。

86
优秀85-100堪称典范;基本满足所有检验标准
良好70-84健康;仅有轻微不足
中等50-69可接受,但存在明显不足;建议进行审查
存在风险30-49存在重大薄弱环节;采用时应保持审慎
危急1-29问题严重(项目被弃置、仅有单一维护者、缺乏基本工程规范)
活力社区与采用可持续性与治理工程质量安全AI 就绪度

评分画像

每条轴代表一个类别。形状比平均值更重要——健康的对象会填满整个图形,而“一峰一谷”式画像意味着某一维度的优势正掩盖另一维度的风险。

所有权

851 关注者20 个公开仓库始于 2025年2月

该仓库由组织支持——共同承担、可问责的托管责任,可延续于任何单一维护者之后。

软件包生态系统

注册表软件包版本月下载量版本数最近发布标签
PyPInexent1.8.1-8134 天前agentaiframework
PyPIbackend指向其他仓库——不计分0.2.4.1-84541 天前djangobackend

按类别列示的指标

活力

项目是否仍有生命——是否仍在编写代码,是否仍在发布版本?

100优秀 · 占总体的 22%
评分方式
36/36推送新近度 — 最近一次推送于 0 天前
36/36提交节奏 — 52 周中有 52 周有提交
18/18提交量 — 最近一年 3,751 次提交
10/10OpenSSF Scorecard:Maintained — 30 commit(s) and 5 issue activity found in the last 90 days -- score normalized to 10
所用输入
commits_last_year3,751
human_commit_share1
days_since_last_push0
active_weeks_last_year52

发布纪律

100优秀
评分方式
27/27有发布版本 — 已发布 49 个发布版本
36/36发布时效 — 最近一次发布版本于 10 天前
27/27发布节奏 — 约每 13.8 天发布一次
0/10OpenSSF Scorecard:Signed-Releases — 无数据
所用输入
releases_count49
latest_release_tagv2.3.0
releases_from_tags
days_since_latest_release10
mean_days_between_releases13.8
已排除计分(无数据或不适用):OpenSSF Scorecard:Signed-Releases。 其余权重已重新归一化。

社区与采用

项目是否拥有用户、下载量与关注度,并具备欢迎贡献者参与的配置?

91优秀 · 占总体的 18%
评分方式
60/60星标 — 5,791 个星标
23.7/25复刻 — 707 个复刻
13.4/15关注者 — 253 位关注者
所用输入
forks707
stars5,791
watchers253
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history

社区健康

85优秀
评分方式
22.5/22.5README
22.5/22.5许可证 — 可识别的许可证(MIT)
18/18CONTRIBUTING 指南
13.5/13.5行为准则
0/7.2议题模板
0/6.3PR 模板
所用输入
has_readme
has_license
has_contributing
has_issue_template
has_code_of_conduct
has_pull_request_template

可持续性与治理

项目能否在其成员之外延续——巴士系数、响应能力、由谁支持,以及软件包的维护状况?

81良好 · 占总体的 24%
评分方式
36/54巴士系数 — 3 位贡献者贡献了半数提交
17/22.5提交分布 — 头号贡献者编写了 24% 的提交
13.5/13.5贡献者广度 — 100 位贡献者
10/10OpenSSF Scorecard:Contributors — project has 4 contributing companies or organizations
所用输入
bus_factor3
contributors_sampled100
top_contributor_share0.243
评分方式
41.4/46.8议题解决 — 89% 的议题已关闭
31.9/38.3PR 接受 — 已裁定的 PR 中 1,556/1,863 已合并
13.5/15OpenSSF Scorecard:Code-Review — Found 28/30 approved changesets -- score normalized to 9
所用输入
merged_prs1,556
open_issues149
closed_issues1,157
issue_closed_ratio0.886
closed_unmerged_prs307
评分方式
30/30所有权背书 — 组织持有
0/20已验证域名
21.1/25所有者影响力 — ModelEngine-Group 有 851 位关注者
12.5/25既往记录 — 20 个公开仓库,账户约 1 年
所用输入
followers851
owner_typeOrganization
is_verified
owner_loginModelEngine-Group
public_repos20
account_age_days521
评分方式
25/25已发布且可解析 — pypi 上有 1 个软件包
35/35发布时效 — 最近一次发布于 134 天前
20/20版本历史 — 8 个已发布版本
20/20未被弃用 — 活跃,未被弃用或撤回
所用输入
packagesnexent
ecosystemspypi
any_deprecated
min_days_since_publish134

工程质量

基础的工程与文档实践是否到位?

84良好 · 占总体的 20%

工程实践

90优秀
评分方式
24/24CI 工作流 — 17 个工作流
24/24存在测试
16/16Linter 配置 — .eslintrc.json
0/9.6Pre-commit 钩子
6.4/6.4.editorconfig
20/20OpenSSF Scorecard:CI-Tests — 30 out of 30 merged PRs checked by a CI test -- score normalized to 10
所用输入
has_ci
has_tests
has_editorconfig
has_linter_config
has_precommit_config

文档

75良好
评分方式
30/30README
25/25文档目录
0/15文档 / 主页站点
10/10仓库描述
10/10主题标签 — 12 个主题标签
0/10Wiki
所用输入
topicsagent, agentic-ai, agentic-framework, agentic-rag, agentic-workflow, ai, llm, rag, harness, harness-engineering, mcp, multi-agent
has_wiki
homepage
has_readme
has_docs_dir
has_description

安全

可见的安全与供应链实践是否稳固,且不存在未解决的高风险司法辖区暴露?

68中等 · 占总体的 16%

安全态势

72良好
评分方式
7.5/7.5Binary-Artifacts — no binaries found in the repo
0.8/7.5Branch-Protection — branch protection is not maximal on development and all release branches
2.5/2.5CI-Tests — 30 out of 30 merged PRs checked by a CI test -- score normalized to 10
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
6.8/7.5Code-Review — Found 28/30 approved changesets -- score normalized to 9
2.5/2.5Contributors — project has 4 contributing companies or organizations
10/10Dangerous-Workflow — no dangerous workflow patterns detected
7.5/7.5Dependency-Update-Tool — update tool detected
0/5Fuzzing — project is not fuzzed
2.5/2.5许可证 — license file detected
7.5/7.5Maintained — 30 commit(s) and 5 issue activity found in the last 90 days -- score normalized to 10
5/5Packaging — packaging workflow detected
0/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
5/5SAST — SAST tool is run on all commits
5/5Security-Policy — security policy file detected
0/7.5Signed-Releases — 无数据
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
7.5/7.5Vulnerabilities — 0 existing vulnerabilities detected
所用输入
sourceopenssf_scorecard
checks_evaluated17
scorecard_versionv5.5.0
checks_inconclusive1
scorecard_aggregate7.2
已排除计分(无数据或不适用):signed_releases。 其余权重已重新归一化。
评分方式
4.9/35直接依赖不含已知公告 — 3 个受影响:fastmcp 2.12.0 (critical 10.0), smolagents 1.23.0 (critical 10.0), mcp 1.22.0 (high 7.1)
25/25间接依赖不含已知公告 — 没有间接依赖携带已知公告
23.8/40没有长期未处理的公告 — 3 个携带公告的软件包超过 90 天未处理;最早一条发布于 270 天前
所用输入
sourceosv
advisories26
affected_packages3
assessed_packages121
unassessed_packages0
affected_by_severitycritical 2, high 1
direct_affected_packages3
比对的是 pypi:nexent@1.8.1 的运行时依赖闭包——安装已发布的软件包时真正被拉取进来的内容——共 121 个软件包。 未对可达性进行分析。

AI 就绪度

该仓库在多大程度上具备与 AI 编码代理协同开发与维护的条件?这是一枚独立的实验性徽章——权重为 0.0,因此单独呈现,不影响总体健康评分。

68中等 · 占总体的 0%
评分方式
45/45代理指令 — .cursor/rules/backend/app_layer_rules.mdc, .cursor/rules/backend/database_layer_rules.mdc, .cursor/rules/backend/service_layer_rules.mdc, .cursor/rules/english_comments.mdc, .cursor/rules/environment_variable.mdc, .cursor/rules/frontend/component_layer_rules.mdc, .cursor/rules/frontend/frontend_overview_rules.mdc, .cursor/rules/frontend/hook_layer_rules.mdc, .cursor/rules/frontend/page_layer_rules.mdc, .cursor/rules/frontend/service_layer_rules.mdc, .cursor/rules/frontend/type_layer_rules.mdc, .cursor/rules/frontend/ui_standards_rules.mdc, .cursor/rules/pytest_unit_test_rules.mdc, AGENTS.md, CLAUDE.md, doc/docs/en/sdk/core/agents.md, doc/docs/zh/sdk/core/agents.md
0/15机器可读文档(llms.txt)
40/40可读的提交历史 — 100 次人类提交中有 92 次说明了意图(结构化标题或解释性正文)
所用输入
has_llms_txt
legible_history_share0.92
agent_instruction_files.cursor/rules/backend/app_layer_rules.mdc, .cursor/rules/backend/database_layer_rules.mdc, .cursor/rules/backend/service_layer_rules.mdc, .cursor/rules/english_comments.mdc, .cursor/rules/environment_variable.mdc, .cursor/rules/frontend/component_layer_rules.mdc, .cursor/rules/frontend/frontend_overview_rules.mdc, .cursor/rules/frontend/hook_layer_rules.mdc, .cursor/rules/frontend/page_layer_rules.mdc, .cursor/rules/frontend/service_layer_rules.mdc, .cursor/rules/frontend/type_layer_rules.mdc, .cursor/rules/frontend/ui_standards_rules.mdc, .cursor/rules/pytest_unit_test_rules.mdc, AGENTS.md, CLAUDE.md, doc/docs/en/sdk/core/agents.md, doc/docs/zh/sdk/core/agents.md
agent_instruction_max_bytes6,568
评分方式
0/18一条命令的引导启动
22/22自动化测试
11/11Lint / 格式化配置 — .eslintrc.json
11/11静态类型检查 — frontend/tsconfig.json
10/10可复现环境 — devcontainer, Dockerfile
10/10已体现的代理实践 — 最近 100 次提交中有 13 次由代理编写或署名代理
5/8自动化维护 — 已配置依赖自动化,但在抽样提交中未观察到
0/10OpenSSF Scorecard:Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
所用输入
has_nix
has_tests
lockfiles
has_dockerfile
typed_language
bootstrap_files
has_devcontainer
has_linter_config
typecheck_configsfrontend/tsconfig.json
agent_commit_share0.13
toolchain_manifests
dependency_bot_commit_share0
评分方式
27/45可类型检查的代码 — Python,已配置类型检查(frontend/tsconfig.json)
52.2/55可控的文件大小 — 采样的 1,200 个源文件中有 62 个超过 60KB
所用输入
primary_languagePython
largest_source_bytes595,905
source_files_sampled1,200
oversized_source_files62
评分方式
0/40API 模式(OpenAPI/GraphQL/proto)
20/20MCP 服务器
0/40可运行示例
所用输入
example_dirs
has_mcp_signal
api_schema_files

关键数据

5,791GitHub 星标
100贡献者
3,751最近 12 个月提交数
0距最近推送天数
49发布版本数
3巴士系数(bus factor)
149开放议题
npm, PyPI软件包生态系统数

数据采集警告

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

更多细节

Star 与 Fork 历史 0 ★ / 707 ⇿
0Star
707Fork
49发布

每颗 star 和每个 fork 的添加时间,来自 GitHub 并按天汇总。累计增长位于其构成来源——每日新增——的正上方,二者可相互对照:稳定的自然增长与短暂的突增形态截然不同。当这一差别可被衡量时,它会作为增长真实性予以报告。

0125250375500625750706342025-052025-122026-07
主版本 2次版本 12修订 17

每个点涵盖 2 天。

OpenSSF Scorecard 7.2 / 10
7.2综合

来自开源项目 OpenSSF Scorecard 的独立、工具无关的安全评估。每项检查奖励的是安全实践本身,而非特定供应商的工具。Scorecard 无法判定的检查项标记为 不适用,并从安全评分中剔除(绝不按零分计)。Scorecard v5.5.0 · 2026-07-27 02:02 UTC

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

来自 GitHub 依赖图的完整解析依赖集合:120 个直接依赖与 32 个间接(传递)软件包。仓库提交锁文件时,传递闭包才是完整的。

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

安装 pypi:nexent@1.8.1 会引入 121 个包(直接与传递):其中 3 个存在已知公告,3 个为直接依赖。

软件包版本关系严重程度公告数修复版本
fastmcp2.12.0直接严重143.2.0
smolagents1.23.0直接严重6
mcp1.22.0直接61.28.1

公告表示依赖图中记录的版本落入某条公告的受影响范围。可达性未经分析,且依赖图包含开发与测试的版本固定——某项发现可能只涉及工具链而非交付的软件。

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

评分是信号,而非担保。 评分反映的是 GitHub 上公开可见的实践——不是代码审计,也不是安全保证。

缺失数据将被剔除并重新归一化权重,绝不按零分计。方法论已版本化并公开:指标 v1.13.0、模式 v0.27.0—— 完整方法论 · 指标知识库.

单项结果在整体记录中的位置: 汇总统计PyPI.