Informe JSON sin procesar legible por máquina
{
"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"
}