Informe JSON sin procesar legible por máquina
{
"data": {
"repo": {
"topics": [
"ai-gateway",
"api-proxy",
"golang",
"openai-api",
"react",
"self-hosted"
],
"is_fork": true,
"size_kb": 60968,
"has_wiki": false,
"homepage": "https://gguuai.com",
"languages": {
"Go": 6497497,
"Lua": 1246,
"Shell": 137747,
"Makefile": 4754,
"Dockerfile": 1959
},
"pushed_at": "2026-07-22T19:48:04Z",
"created_at": "2026-06-26T14:57:49Z",
"owner_type": "User",
"updated_at": "2026-07-22T19:34:42Z",
"description": "A unified AI model hub for aggregation & distribution. It supports cross-converting various LLMs into OpenAI-compatible, Claude-compatible, or Gemini-compatible formats. A centralized gateway for personal and enterprise model management. 🍥",
"is_archived": false,
"is_disabled": false,
"license_spdx": "AGPL-3.0",
"default_branch": "main",
"license_spdx_raw": "AGPL-3.0",
"primary_language": "Go",
"significant_languages": [
"Go"
]
},
"owner": {
"blog": "https://www.xhu.edu.cn/",
"name": "LIXIN LIU",
"type": "User",
"login": "liulixin-lex",
"company": "Xihua University",
"location": "China",
"followers": 0,
"avatar_url": "https://avatars.githubusercontent.com/u/180751112?v=4",
"created_at": "2024-09-07T11:09:03Z",
"is_verified": null,
"public_repos": 4,
"account_age_days": 686
},
"license": {
"state": "standard",
"spdx_id": "AGPL-3.0",
"raw_spdx": "AGPL-3.0",
"file_present": true,
"scorecard_found": true,
"profile_has_license": false
},
"activity": {
"releases": [
{
"tag": "v0.2.2",
"kind": "patch",
"published_at": "2026-07-22T20:28:01Z"
},
{
"tag": "v0.2.1",
"kind": "patch",
"published_at": "2026-07-22T07:32:20Z"
},
{
"tag": "v0.2.0",
"kind": "minor",
"published_at": "2026-07-20T06:36:17Z"
},
{
"tag": "v0.1.14",
"kind": "patch",
"published_at": "2026-07-17T08:15:57Z"
},
{
"tag": "v0.1.13",
"kind": "patch",
"published_at": "2026-07-16T08:12:58Z"
},
{
"tag": "v0.1.12",
"kind": "patch",
"published_at": "2026-07-15T05:08:10Z"
},
{
"tag": "v0.1.11",
"kind": "patch",
"published_at": "2026-07-14T14:47:56Z"
},
{
"tag": "v0.1.10",
"kind": "patch",
"published_at": "2026-07-13T04:04:16Z"
},
{
"tag": "v0.1.9",
"kind": "patch",
"published_at": "2026-07-09T13:01:27Z"
},
{
"tag": "v0.1.8",
"kind": "patch",
"published_at": "2026-07-09T10:16:23Z"
},
{
"tag": "v0.1.7",
"kind": "patch",
"published_at": "2026-07-08T20:55:17Z"
},
{
"tag": "v0.1.6",
"kind": "patch",
"published_at": "2026-07-07T14:51:56Z"
},
{
"tag": "v0.1.5",
"kind": "patch",
"published_at": "2026-07-07T08:12:09Z"
},
{
"tag": "v0.1.4",
"kind": "patch",
"published_at": "2026-07-05T12:02:12Z"
},
{
"tag": "v0.1.3",
"kind": "patch",
"published_at": "2026-07-05T11:27:45Z"
},
{
"tag": "v0.1.2",
"kind": "patch",
"published_at": "2026-07-05T09:25:56Z"
},
{
"tag": "v0.1.1",
"kind": "patch",
"published_at": "2026-07-05T08:36:10Z"
},
{
"tag": "v0.0.9",
"kind": "patch",
"published_at": "2026-07-02T16:21:42Z"
},
{
"tag": "v0.0.8",
"kind": "patch",
"published_at": "2026-07-02T12:26:43Z"
},
{
"tag": "v0.0.7",
"kind": "patch",
"published_at": "2026-07-02T11:00:13Z"
},
{
"tag": "v0.0.6",
"kind": "patch",
"published_at": "2026-07-02T09:00:30Z"
},
{
"tag": "v0.0.5",
"kind": "patch",
"published_at": "2026-07-01T19:53:03Z"
},
{
"tag": "v0.0.4",
"kind": "patch",
"published_at": "2026-07-01T12:42:58Z"
},
{
"tag": "v0.0.3",
"kind": "patch",
"published_at": "2026-07-01T08:58:18Z"
},
{
"tag": "v0.0.2",
"kind": "patch",
"published_at": "2026-06-27T15:23:18Z"
},
{
"tag": "v0.0.1",
"kind": "patch",
"published_at": "2026-06-27T12:36:09Z"
}
],
"recent_commits": [
{
"oid": "8b42c4fa6fefe1f3da2c9e22834db23cfd7da0ee",
"body": "# ⚠️ 提交说明 / PR Notice\n> [!IMPORTANT]\n>\n> - 允许 AI/Codex 辅助开发,但提交者必须核对真实代码、完成验证,并清楚说明影响。禁止直接粘贴未经验证的生成内容。\n\n## 📝 变更描述 / Description\n\n- Payment Gateway now fails closed when authoritative options cannot be\nloaded, shows one retryable error, and maps backend field errors to the\nowning tab and control with\n[…]\nd exact-version `v0.2.1` image digest and preserved\nconfiguration; published tags, assets, and image references must not be\noverwritten or moved. The global container `latest` alias remains\nunchanged.",
"is_bot": false,
"headline": "fix: polish payment interfaces and prepare v0.2.2 (#46)",
"author_name": "LIXIN LIU",
"author_login": "liulixin-lex",
"committed_at": "2026-07-22T19:34:32Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "4244a5ddbbaad27513414302f0651f5d4152e83a",
"body": "# ⚠️ 提交说明 / PR Notice\n> [!IMPORTANT]\n>\n> - 允许 AI/Codex 辅助开发,但提交者必须核对真实代码、完成验证,并清楚说明影响。禁止直接粘贴未经验证的生成内容。\n\n## 📝 变更描述 / Description\n\n本 PR 对支付创建、配置、运营、结算与历史兼容做一体化修复:\n\n- 兼容 XORPay 真实 `expires_in`\n数字/数字字符串响应,严格验证实际托管二维码和微信/支付宝协议;上游已创建但本地响应不完整时持久化不确定状态并只走查询、回调、过期或人工复核,不误结算。\n- 修复管理员安全验证 session 的多种序列化类型兼容,保留\n[…]\ned audit 终态操作;Classic 当前提供概览与 Stripe\n历史库存/取消,但尚未补齐 unmatched audit 操作面板。\n- 未使用真实 XORPay/Stripe 商户做端到端验证,服务商未来响应契约变化仍需通过脱敏日志和回归测试继续维护。\n\n如需回滚,优先回退本提交并保留支付订单、事件、账本、审计和库存数据,不执行数据删除或历史改写;已存在的历史订单号和回调键无需迁移。",
"is_bot": false,
"headline": "fix: harden payment provider contracts and operations (#44)",
"author_name": "LIXIN LIU",
"author_login": "liulixin-lex",
"committed_at": "2026-07-22T16:43:23Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "f3b91b6c0b521300cd7a68e5f3b6602684c39924",
"body": "Merged after all required CI checks passed, including PostgreSQL 9.6 payment contracts and Payment multi-node runtime.",
"is_bot": false,
"headline": "feat: durable multi-provider payment orchestration",
"author_name": "LIXIN LIU",
"author_login": "liulixin-lex",
"committed_at": "2026-07-22T06:45:44Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "eb6143f3358bb232d3869b6a84ee3709f854fc94",
"body": "# ⚠️ 提交说明 / PR Notice\n> [!IMPORTANT]\n>\n> - 允许 AI/Codex 辅助开发,但提交者必须核对真实代码、完成验证,并清楚说明影响。禁止直接粘贴未经验证的生成内容。\n\n## 📝 变更描述 / Description\n修复 recovery run 29720949211 中完整 Release metadata PATCH 被 GitHub Actions\nintegration token 以 HTTP 403 拒绝的问题:\n\n- v0.2.0 fixed-ID 草稿恢复仅在元数据 PATCH 时使用已由发布策略预检的 scoped repositor\n[…]\n️ 风险与回滚 / Risk and Rollback\n主要风险是现有 scoped token 缺少 Release contents write 能力。流程会在 PATCH\n失败后只读回、不重试,并在 Docker 构建和公开发布前停止;不会删除、覆盖或重复创建资产。\n\n可通过常规 revert 回滚本次工作流 token 路由。若 scoped token 不可用,工作流会在写入前明确失败。",
"is_bot": false,
"headline": "fix: authorize protected release metadata updates (#41)",
"author_name": "LIXIN LIU",
"author_login": "liulixin-lex",
"committed_at": "2026-07-20T06:25:51Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "b82fe60d67e2453f4c9ae27f1a806343f05d953d",
"body": "# ⚠️ 提交说明 / PR Notice\n> [!IMPORTANT]\n>\n> - 允许 AI/Codex 辅助开发,但提交者必须核对真实代码、完成验证,并清楚说明影响。禁止直接粘贴未经验证的生成内容。\n\n## 📝 变更描述 / Description\n修复 GitHub Release 更新省略 `tag_name` 时会移除待发布标签的问题,并安全恢复当前 v0.2.0 私有草稿:\n\n- 恢复流程以固定 Release ID 为身份源,仅接受当前已知的精确 detached tag,避免误认或重建草稿。\n- 所有草稿元数据修复和最终发布统一发送完整 Release 合约,失败时只按固定 \n[…]\n有草稿的重新绑定返回意外状态。流程会在任何\nID、tag、正文、目标提交、资产身份或状态不匹配时安全失败,并在 Docker 构建或公开发布前停止;不删除、不重建、不覆盖资产,也不重复\nPATCH。\n\n若 PR 合并后尚未完成发布,可通过常规 revert 回滚发布编排。若 Release 已成功公开并进入 immutable\n状态,则不会尝试修改不可变资产或标签;后续只允许按既有不可变契约验证。",
"is_bot": false,
"headline": "fix: preserve v0.2.0 release metadata during recovery (#40)",
"author_name": "LIXIN LIU",
"author_login": "liulixin-lex",
"committed_at": "2026-07-20T06:10:52Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "be1d35b32a3ef1784ab0069e2c9d0785fa248c7a",
"body": "# ⚠️ 提交说明 / PR Notice\n> [!IMPORTANT]\n>\n> - 允许 AI/Codex 辅助开发,但提交者必须核对真实代码、完成验证,并清楚说明影响。禁止直接粘贴未经验证的生成内容。\n\n## 📝 变更描述 / Description\n将 v0.2.0 一次性恢复流程固定到已合并并全绿的 Docker 工作流提交\n`fcf3d0d669087e443ee39a20e56790a598ffec49`,同时保持应用构建上下文、版本和 provenance\n严格绑定不可变 v0.2.0 标签提交 `ea3c0ef6cccddcf252f14f03abb11b2b74366233`\n[…]\nk and Rollback\n主要风险是 GitHub Release 草稿正文和恢复编排;正文只允许从已知旧值迁移到受保护 main\n中的精确新值,并立即读回验证。镜像仍需在合并后通过双原生架构启动、Trivy、SBOM/SLSA、Cosign\n和发布前全资产门禁后才能公开。若任一步失败,Release 保持草稿,稳定镜像标签不会被替换;修复方式是常规后续\nPR,不移动标签、不强推、不绕过检查。",
"is_bot": false,
"headline": "fix: pin v0.2.0 release recovery (#39)",
"author_name": "LIXIN LIU",
"author_login": "liulixin-lex",
"committed_at": "2026-07-20T05:20:08Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "fcf3d0d669087e443ee39a20e56790a598ffec49",
"body": "# ⚠️ 提交说明 / PR Notice\n> [!IMPORTANT]\n>\n> - 允许 AI/Codex 辅助开发,但提交者必须核对真实代码、完成验证,并清楚说明影响。禁止直接粘贴未经验证的生成内容。\n\n## 📝 变更描述 / Description\n修复多架构镜像可能出现“arm64 清单内包含 amd64 可执行文件”的根因。Dockerfile 不再用 amd64 默认值覆盖\nBuildKit 平台参数;稳定、branch、nightly、alpha 构建均显式绑定原生 runner\n的构建平台与目标架构,并在签名或合并清单前执行 ELF 架构、版本和启动/API 冒烟。稳定发布的 \n[…]\nachine=3e00。\n\n## ⚠️ 风险与回滚 / Risk and Rollback\n风险集中在镜像发布编排,不涉及运行时数据。完整 amd64 行为已本地验证;权威 arm64 原生启动验证由合并后的 v0.2.0\n恢复工作流执行。若 CI 出现问题,先修复并重跑,不绕过门禁;合并前可直接关闭 PR,合并后可通过常规 revert 回滚。v0.2.0\n不可变标签和现有草稿资产始终保持不变。",
"is_bot": false,
"headline": "fix: harden multi-architecture image builds (#38)",
"author_name": "LIXIN LIU",
"author_login": "liulixin-lex",
"committed_at": "2026-07-20T04:59:58Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "2e3d28baaea43e3e24d8c534737de305961d599c",
"body": "# ⚠️ 提交说明 / PR Notice\n> [!IMPORTANT]\n>\n> - 允许 AI/Codex 辅助开发,但提交者必须核对真实代码、完成验证,并清楚说明影响。禁止直接粘贴未经验证的生成内容。\n\n## 📝 变更描述 / Description\n为 v0.2.0 恢复预检 job 恢复 `contents: write` 权限。GitHub 的 List releases API\n只向具备 push access 的调用方返回 draft releases;`contents: read` 会让仍然存在的私有草稿对该\njob 不可见,导致安全预检误判。该 job 仍只执行读取和校验,\n[…]\nisk and Rollback\n`contents: write` 只作用于恢复预检 job 的短生命周期 `GITHUB_TOKEN`。`GHCR_TOKEN`\n仅传给受保护标签内的 GHCR 登录步骤和最终只读镜像登录。该 job 的脚本没有\nPOST/PATCH/DELETE/上传操作,且后续步骤仍受现有 fail-closed\n条件保护。回滚会再次让私有草稿不可见并阻断恢复,不建议回滚。",
"is_bot": false,
"headline": "fix: restore recovery draft visibility (#35)",
"author_name": "LIXIN LIU",
"author_login": "liulixin-lex",
"committed_at": "2026-07-20T00:11:06Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "6a4f8828b01413c6bc62d0b4b1f3d79fcbea5c1e",
"body": "# ⚠️ 提交说明 / PR Notice\n> [!IMPORTANT]\n>\n> - 允许 AI/Codex 辅助开发,但提交者必须核对真实代码、完成验证,并清楚说明影响。禁止直接粘贴未经验证的生成内容。\n\n## 📝 变更描述 / Description\n修复 v0.2.0 恢复预检对标签规则集的误判,并收紧最终发布边界。GitHub 仅向具备规则集写权限的调用方返回\n`bypass_actors`;默认 `GITHUB_TOKEN`\n看不到该字段。现在预检和发布前复检使用受控管理令牌执行只读规则查询,并完整验证规则集\nID、名称、启用状态、无绕过者、无排除规则、禁止更新和删除。\n\n同时把管理\n[…]\nleaks staged scan:0 泄漏。\n\n## ⚠️ 风险与回滚 / Risk and Rollback\n管理令牌只用于只读 GET,未写入日志或输出;所有发布写操作仍由原有最小权限 `GITHUB_TOKEN`\n执行。如果管理令牌权限不足、规则字段不可见或策略真实变化,工作流会 fail\nclosed。可通过回滚这两个提交恢复旧行为,但会重新触发已确认的误判并扩大 Secret 暴露面。",
"is_bot": false,
"headline": "fix: let recovery verify full tag ruleset (#33)",
"author_name": "LIXIN LIU",
"author_login": "liulixin-lex",
"committed_at": "2026-07-19T23:50:54Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "4926fc63512fe4c24cb69e38985432bdcd3ed366",
"body": "# ⚠️ 提交说明 / PR Notice\n> [!IMPORTANT]\n>\n> - 允许 AI/Codex 辅助开发,但提交者必须核对真实代码、完成验证,并清楚说明影响。禁止直接粘贴未经验证的生成内容。\n\n## 📝 变更描述 / Description\n修复 GitHub private draft Release 按 tag 查询返回 404 时的确定性发布失败:草稿改为从\nauthenticated Release 列表唯一解析,随后全程按 Release ID/Asset ID 操作;Electron\n工作流只负责构建 artifact,由 Release 工作流统一校验和写入,消除双\n[…]\nutable Releases settings read 权限只能在首次无 mutation preflight 中确认。\n\n代码回滚可正常 revert 本 PR。v0.2.0 发布成功后会另开清理 PR 删除一次性恢复工作流及其最窄的 tag-ref lint\n例外,永久保留 draft-safe 发布修复。\n\nCo-authored-by: Codex <codex@openai.com>",
"is_bot": false,
"headline": "fix: make v0.2.0 release recovery draft-safe (#31)",
"author_name": "LIXIN LIU",
"author_login": "liulixin-lex",
"committed_at": "2026-07-19T23:29:02Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "ea3c0ef6cccddcf252f14f03abb11b2b74366233",
"body": "Unify payment settlement, add XORPay, harden Epay and Stripe, improve payment UX and i18n, and add v0.2.0 compatibility and immutable release gates.",
"is_bot": false,
"headline": "feat: harden payments, add XORPay, and prepare v0.2.0 (#29)",
"author_name": "LIXIN LIU",
"author_login": "liulixin-lex",
"committed_at": "2026-07-19T22:09:49Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0a444c2e6afaa943ce9a677a250937fd706c10e5",
"body": "# ⚠️ 提交说明 / PR Notice\n> [!IMPORTANT]\n>\n> - 允许 AI/Codex 辅助开发,但提交者必须核对真实代码、完成验证,并清楚说明影响。禁止直接粘贴未经验证的生成内容。\n\n## 📝 变更描述 / Description\n本 PR 对支付、充值与计费链路做完整闭环加固,并新增与易支付、Stripe 同级的 XORPay 网关。\n\n主要内容:\n\n- 建立服务端权威的 PaymentQuote、PaymentOrder、PaymentEvent、不可变 Ledger 与 Debt\n模型,实现回调、查询、重试、退款和争议场景的 exactly-once 入账。\n-\n\n[…]\nAPI 在支付成功确认阶段不可用时,Webhook 会返回非 2xx 让 Stripe 重试,不会在未确认账户和\nSession 的情况下入账;运维侧应监控重试与人工审核队列。\n- 为保留 v0.1.6 自托管兼容,管理员配置的 Worker/微信服务地址仍允许 HTTP、私网和自定义端口,但请求会固定到该配置的\nscheme/host/port 且禁止重定向;跨不可信网络时仍应配置 HTTPS。",
"is_bot": false,
"headline": "feat: harden payment billing and add XORPay (#28)",
"author_name": "LIXIN LIU",
"author_login": "liulixin-lex",
"committed_at": "2026-07-19T11:26:40Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "426d4d8c55291ba6ec97a7bfeb3ebe97767cd86f",
"body": "Resolve all 13 open Dependabot alerts for golang.org/x/crypto. Reviewed with Codex; the repository only imports bcrypt, whose source is unchanged in this update. All required Build Check and CodeQL jobs passed on the latest main.",
"is_bot": true,
"headline": "chore(deps): bump golang.org/x/crypto to 0.52.0",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-07-18T07:54:27Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7ab06258d60d79d0282476f87794e547337f0e3f",
"body": null,
"is_bot": false,
"headline": "docs: finalize protected branch model",
"author_name": "lex_liu",
"author_login": "liulixin-lex",
"committed_at": "2026-07-18T07:41:29Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "977405adc921a9d8140d2f5a6f4caef343c18cec",
"body": null,
"is_bot": false,
"headline": "style(ci): remove trailing workflow whitespace",
"author_name": "lex_liu",
"author_login": "liulixin-lex",
"committed_at": "2026-07-18T07:29:29Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "03dbd949f196791bae12129759744118f1886835",
"body": null,
"is_bot": false,
"headline": "fix(ci): stabilize governance checks",
"author_name": "lex_liu",
"author_login": "liulixin-lex",
"committed_at": "2026-07-18T07:26:59Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1c0a58db1f2bfead85df4abcddfe9b679ab4981c",
"body": null,
"is_bot": false,
"headline": "chore: establish v0.2 repository governance",
"author_name": "lex_liu",
"author_login": "liulixin-lex",
"committed_at": "2026-07-18T07:21:05Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2014e1d596a482beb10b1943aa292e1fa991f636",
"body": null,
"is_bot": false,
"headline": "chore: release v0.1.6",
"author_name": "lex",
"author_login": "liulixin-lex",
"committed_at": "2026-07-07T14:42:29Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7387a0f0f23a8f813f2652e9775151e715a5bb19",
"body": "Merge PR #16 after local and remote validation. This merge is AI-assisted and keeps the individual feature/fix commits for traceability. Admin merge was used because main requires one approval and the PR author is the local GitHub account.",
"is_bot": false,
"headline": "merge: sync remaining upstream fixes and cleanup",
"author_name": "LIXIN LIU",
"author_login": "liulixin-lex",
"committed_at": "2026-07-07T14:36:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2d0ab2b912a19be5080aea31a360707d503a599c",
"body": null,
"is_bot": false,
"headline": "fix(web): preserve home iframe sandbox restrictions",
"author_name": "lex",
"author_login": "liulixin-lex",
"committed_at": "2026-07-07T14:05:21Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "64b8380e0eb21a724c9b832fa610cac5fe32274d",
"body": null,
"is_bot": false,
"headline": "feat(system-info): add stale instance cleanup",
"author_name": "lex",
"author_login": "liulixin-lex",
"committed_at": "2026-07-07T14:05:11Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a7542a0b3531eca72061c664ee82a6766f930f2f",
"body": null,
"is_bot": false,
"headline": "fix(web): keep group ratio decimal drafts",
"author_name": "lex",
"author_login": "liulixin-lex",
"committed_at": "2026-07-07T14:04:58Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "99251a1265c7e03c6ffddc1209e4adc220ecb5cc",
"body": null,
"is_bot": false,
"headline": "refactor(price): centralize other ratio handling",
"author_name": "lex",
"author_login": "liulixin-lex",
"committed_at": "2026-07-07T13:35:18Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3e09ef5ad34775961d5aba2002c3aec13de0ac14",
"body": null,
"is_bot": false,
"headline": "chore(web): update default frontend dependencies",
"author_name": "lex",
"author_login": "liulixin-lex",
"committed_at": "2026-07-07T13:28:03Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0bb26664ba2c36ca7d1247769b88c84c9cab9d4d",
"body": null,
"is_bot": false,
"headline": "fix(web): stabilize repeated pricing detail keys",
"author_name": "lex",
"author_login": "liulixin-lex",
"committed_at": "2026-07-07T13:22:22Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7b4d8e5251c965e70805b1d6814501c11717f975",
"body": null,
"is_bot": false,
"headline": "feat(web): add channel editor section navigation",
"author_name": "lex",
"author_login": "liulixin-lex",
"committed_at": "2026-07-07T13:22:12Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e26dd7c69fca583694bc416f84a582b023611fdb",
"body": null,
"is_bot": false,
"headline": "chore(build): sync docker signing and web dev targets",
"author_name": "lex",
"author_login": "liulixin-lex",
"committed_at": "2026-07-07T13:22:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d98b45ed185a9cd8df8fd1de6a24e3a872cae627",
"body": null,
"is_bot": false,
"headline": "fix(ratio): unlock future gpt-5 completion ratios",
"author_name": "lex",
"author_login": "liulixin-lex",
"committed_at": "2026-07-07T13:21:51Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "93bafa812047dee5c06ea7d739c85d0a8e224b0a",
"body": null,
"is_bot": false,
"headline": "fix(price): add tiered pre-consume token fallback",
"author_name": "lex",
"author_login": "liulixin-lex",
"committed_at": "2026-07-07T13:21:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fc1ec6c8d3e8b22fb6fc16a3bcaf85a016704b12",
"body": null,
"is_bot": false,
"headline": "feat(web): add user subscription quota reset action",
"author_name": "lex",
"author_login": "liulixin-lex",
"committed_at": "2026-07-07T11:58:09Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "046bae121207dc79b8d7c60e10bf4a38c0690168",
"body": null,
"is_bot": false,
"headline": "fix(web): wire redemption status filtering",
"author_name": "lex",
"author_login": "liulixin-lex",
"committed_at": "2026-07-07T11:49:23Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "af739ff8855aa70efd7a179c7faaf4191d40dc58",
"body": null,
"is_bot": false,
"headline": "fix(web): add missing group ratio translations",
"author_name": "lex",
"author_login": "liulixin-lex",
"committed_at": "2026-07-07T11:41:57Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "71220fec0f8ac644e5f79097f7e2c23ca146e723",
"body": null,
"is_bot": false,
"headline": "chore(workflows): clean gitee sync whitespace",
"author_name": "lex",
"author_login": "liulixin-lex",
"committed_at": "2026-07-07T11:32:11Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "cad300f82d00b71ecd4a79ca3c33301f26bcbb48",
"body": null,
"is_bot": false,
"headline": "fix(subscription): lock rows during admin quota resets",
"author_name": "lex",
"author_login": "liulixin-lex",
"committed_at": "2026-07-07T11:28:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "90838bf7056d182c7d4a92a667207be8dada8371",
"body": null,
"is_bot": false,
"headline": "feat(classic): add legacy frontend maintenance notice",
"author_name": "lex",
"author_login": "liulixin-lex",
"committed_at": "2026-07-07T11:20:32Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "71b1d8626caba7940ed883a22b9283bacbf8b5d9",
"body": null,
"is_bot": false,
"headline": "docs: note supported deployment architectures",
"author_name": "lex",
"author_login": "liulixin-lex",
"committed_at": "2026-07-07T11:20:24Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "dcee032fead171f34096763612eb0277c00321a7",
"body": null,
"is_bot": false,
"headline": "feat(web): surface wallet referral rewards",
"author_name": "lex",
"author_login": "liulixin-lex",
"committed_at": "2026-07-07T10:17:25Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c120393724256600dd8213fe73e17d727d36490c",
"body": null,
"is_bot": false,
"headline": "fix(web): ignore empty channel override configs",
"author_name": "lex",
"author_login": "liulixin-lex",
"committed_at": "2026-07-07T10:11:40Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "69481e996a335c9ecc36e0cdf63d2abf8a56aeae",
"body": null,
"is_bot": false,
"headline": "chore(web): trim unused date-fns dependency",
"author_name": "lex",
"author_login": "liulixin-lex",
"committed_at": "2026-07-07T10:11:32Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5d04324cb3cc2c2fdeb04330bea0faa9017cf837",
"body": null,
"is_bot": false,
"headline": "perf(web): use Rsbuild Tailwind plugin",
"author_name": "lex",
"author_login": "liulixin-lex",
"committed_at": "2026-07-07T10:11:18Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "637e6ee13ac22d7674680987d70a07281d685142",
"body": null,
"is_bot": false,
"headline": "chore(makefile): add web and api target aliases",
"author_name": "lex",
"author_login": "liulixin-lex",
"committed_at": "2026-07-07T09:46:27Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b37f9633f24cb5ff98fb4b87ec0e7a39e41b7a75",
"body": null,
"is_bot": false,
"headline": "chore(electron): refresh lockfile dependencies",
"author_name": "lex",
"author_login": "liulixin-lex",
"committed_at": "2026-07-07T09:44:07Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "cdb2af7a375d3743b7698307b68a22f94bbd5616",
"body": null,
"is_bot": false,
"headline": "fix(web): move channel card edit action into menu",
"author_name": "lex",
"author_login": "liulixin-lex",
"committed_at": "2026-07-07T09:39:22Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0f2077360c4702ac667a645b971b6127321e4675",
"body": null,
"is_bot": false,
"headline": "fix(web): compact channel card balances",
"author_name": "lex",
"author_login": "liulixin-lex",
"committed_at": "2026-07-07T09:35:40Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "03cb7c731d9148cfcae0c8f74127becaed83f50d",
"body": null,
"is_bot": false,
"headline": "feat(web): confirm channel consistency repair",
"author_name": "lex",
"author_login": "liulixin-lex",
"committed_at": "2026-07-07T09:24:05Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e413c09587a26aa0160cd2d49045050605cdb2fe",
"body": null,
"is_bot": false,
"headline": "feat(web): add channel batch mode toggle",
"author_name": "lex",
"author_login": "liulixin-lex",
"committed_at": "2026-07-07T09:07:50Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5d51ecbb58723149915262369ce4ad87320b20ee",
"body": null,
"is_bot": false,
"headline": "fix(web): sync channel utility refinements",
"author_name": "lex",
"author_login": "liulixin-lex",
"committed_at": "2026-07-07T08:58:27Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "49f1b001b5b139e7c2fcac48e14f22763fbcb56d",
"body": null,
"is_bot": false,
"headline": "fix(affiliate): harden top-up reward quota handling",
"author_name": "lex",
"author_login": "liulixin-lex",
"committed_at": "2026-07-07T08:54:13Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9a01804ed4fbcd6f677b189b986553179b4f2eb4",
"body": null,
"is_bot": false,
"headline": "feat(web): improve advanced custom route editor",
"author_name": "lex",
"author_login": "liulixin-lex",
"committed_at": "2026-07-07T08:48:45Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f519ab4c51b926bea7a9ec71ac4ded086d0441e6",
"body": null,
"is_bot": false,
"headline": "chore: release v0.1.5",
"author_name": "lex",
"author_login": "liulixin-lex",
"committed_at": "2026-07-07T07:57:10Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "bc543c7371f236e416bad6099ef3820886df2e31",
"body": null,
"is_bot": false,
"headline": "merge: sync upstream newapi changes",
"author_name": "lex",
"author_login": "liulixin-lex",
"committed_at": "2026-07-07T07:56:38Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fa1756d4b29df83bbfef0abc20e47ebf0980276b",
"body": null,
"is_bot": false,
"headline": "fix(web): satisfy channel settings lint",
"author_name": "lex",
"author_login": "liulixin-lex",
"committed_at": "2026-07-07T07:52:08Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8ade90a4008899eefbf517da6ee3f195d3e33812",
"body": null,
"is_bot": false,
"headline": "feat(web): improve group ratio editor",
"author_name": "lex",
"author_login": "liulixin-lex",
"committed_at": "2026-07-07T07:33:52Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f643d0ee43b71f23e0f890d28510166afac72b4c",
"body": null,
"is_bot": false,
"headline": "perf(channels): compact model test row actions",
"author_name": "lex",
"author_login": "liulixin-lex",
"committed_at": "2026-07-07T07:26:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d5ecade3aabea4d5bab920e56245f9ba2f93ca93",
"body": null,
"is_bot": false,
"headline": "perf(channels): streamline channel test dialog layout",
"author_name": "lex",
"author_login": "liulixin-lex",
"committed_at": "2026-07-07T07:25:21Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d60767b8b39036f37ad406ca9da36f68ef08ba32",
"body": null,
"is_bot": false,
"headline": "fix(classic): use available Slack icon export",
"author_name": "lex",
"author_login": "liulixin-lex",
"committed_at": "2026-07-07T07:22:27Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ce2d47974cc697bec4fc656703d0eff6a289d39f",
"body": null,
"is_bot": false,
"headline": "fix(web): align dynamic pricing details layout",
"author_name": "lex",
"author_login": "liulixin-lex",
"committed_at": "2026-07-07T07:20:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3df570e5cf1bfd44e15eb8ae546ad19eb9fdce54",
"body": null,
"is_bot": false,
"headline": "fix(web): refine mobile user cards",
"author_name": "lex",
"author_login": "liulixin-lex",
"committed_at": "2026-07-07T07:17:53Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fdb7055a6273ffce6a93e301ab2464db8930739e",
"body": null,
"is_bot": false,
"headline": "fix(web): merge about iframe sandbox permissions",
"author_name": "lex",
"author_login": "liulixin-lex",
"committed_at": "2026-07-07T07:17:53Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f4d3caf38a8e9178b3320367b4bffa4a423ec8a8",
"body": null,
"is_bot": false,
"headline": "feat(web): clarify legacy top-up audit warning",
"author_name": "lex",
"author_login": "liulixin-lex",
"committed_at": "2026-07-07T07:13:03Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "597fc96230cc27824eb95e36191d516fc72a85ec",
"body": null,
"is_bot": false,
"headline": "fix(i18n): support Traditional Chinese locale mapping",
"author_name": "lex",
"author_login": "liulixin-lex",
"committed_at": "2026-07-07T07:00:28Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "32f9e0ecb7e8c8979f3df56d04514858a9e8031a",
"body": null,
"is_bot": false,
"headline": "fix(channels): show Codex field passthrough controls",
"author_name": "lex",
"author_login": "liulixin-lex",
"committed_at": "2026-07-07T06:54:06Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5b08b86aba90463064e3de07bf6867421ae1f16d",
"body": null,
"is_bot": false,
"headline": "fix: delay startup success log",
"author_name": "lex",
"author_login": "liulixin-lex",
"committed_at": "2026-07-07T06:51:57Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "50001bd4712ff9bc3ff4763d86d34315092ec21d",
"body": "* Harden user setting cache updates\n\n* Fix user update test isolation",
"is_bot": false,
"headline": "Merge commit from fork",
"author_name": "Calcium-Ion",
"author_login": "Calcium-Ion",
"committed_at": "2026-07-07T06:50:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ee764d9265eb49e5ccbe0d6952f0930f4c0a4e92",
"body": "- use ai v7 usage detail fields for reasoning and cache token counts.\n- keep context usage cost rendering compatible with the updated SDK types.",
"is_bot": false,
"headline": "fix(ai-elements): read nested usage token details",
"author_name": "QuentinHsu",
"author_login": "QuentinHsu",
"committed_at": "2026-07-07T06:45:43Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9bea0bc4717e52ccdde2ce35aeba617d19bf267b",
"body": "Shadow DOM 的样式隔离特性导致外部 html 元素上的 dark class 无法被\nShadow DOM 内部的 Tailwind dark: 选择器匹配到。通过 MutationObserver\n监听 document.documentElement 的 class 变化,将 dark class 同步到\nShadow DOM 内的包装容器上,使深色模式样式正常生效。",
"is_bot": false,
"headline": "fix(html): 修复 Shadow DOM 隔离渲染下深浅色模式无法自动切换的问题 (#5890)",
"author_name": "olwater",
"author_login": "olwater",
"committed_at": "2026-07-07T06:45:43Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "99847296e4e67dc6bf1015114c0cc076ea7dc257",
"body": null,
"is_bot": false,
"headline": "fix(web): sync home iframe theme and language (#5917)",
"author_name": "G.RQ",
"author_login": "guoruqiang",
"committed_at": "2026-07-07T06:45:43Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1fe71ac55f56fc0776e72fa714c9bb64c5afc6ac",
"body": "The sign-in route already redirects logged-in users to /dashboard in its\nbeforeLoad guard, but the sign-up route (and its /register alias) had no\nsuch guard, leaving authenticated users on the registration form. This\nmirrors the classic theme's AuthRedirect behavior. Add an equivalent\nbeforeLoad guard using the same useAuthStore, redirecting to /dashboard\nfor consistency with the sign-in route.\n\nCloses #5908\n\nCo-authored-by: 贺. <kuang@M1.local>",
"is_bot": false,
"headline": "fix(web): redirect authenticated users away from sign-up page (#5910)",
"author_name": "乾L",
"author_login": "Heykode",
"committed_at": "2026-07-07T06:44:23Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f7cb6e59be98cd4589ccd364c99f0c811c85f4d8",
"body": null,
"is_bot": false,
"headline": "fix: persist channel status filter across page navigation (#5863)",
"author_name": "feitianbubu",
"author_login": "feitianbubu",
"committed_at": "2026-07-07T06:43:17Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2d20c61e87d69a3372c7d990f87a7376045e1ee7",
"body": "AnimatedOutlet keyed its motion container by the full pathname, so\nnavigating between params of the same route (e.g. the dashboard tabs\nunder /dashboard/$section) changed the key and remounted the route\ncomponent, discarding its in-memory state. The most visible symptom:\nthe dashboard time range res\n[…]\n\nnavigation re-renders in place while real page-to-page navigation\nstill plays the enter animation. This also preserves state across the\nother $section tab pages (usage logs, models, system settings).",
"is_bot": false,
"headline": "fix: keep page state when switching tabs within the same route (#5796)",
"author_name": "feitianbubu",
"author_login": "feitianbubu",
"committed_at": "2026-07-07T06:43:17Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "ab9c551a92175984f57cc6339d9ad1e290051ccc",
"body": null,
"is_bot": false,
"headline": "fix: only treat 401 as session expiry in auth guard (#5872)",
"author_name": "feitianbubu",
"author_login": "feitianbubu",
"committed_at": "2026-07-07T06:43:17Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "dfe5b159543715ec138c2c020fb5d3a85b3c2fe2",
"body": "- clone loaded application style nodes into the Shadow DOM for custom HTML rendering.\n- keep HTML rendering isolated while restoring layout and typography that depend on app CSS.",
"is_bot": false,
"headline": "fix(web): inject app styles into isolated HTML (#5860)",
"author_name": "QuentinHsu",
"author_login": "QuentinHsu",
"committed_at": "2026-07-07T06:42:51Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c9716a976bb4bf6ee77052654ccfb47ca012aa1d",
"body": "* fix(web): 修复自定义 HTML 样式被过滤及排版间距异常的问题\n\n* fix(web): isolate custom HTML rendering\n\n---------\n\nCo-authored-by: CaIon <i@caion.me>",
"is_bot": false,
"headline": "fix(web): 修复自定义 HTML 样式被过滤及排版间距异常的问题 (#5795)",
"author_name": "olwater",
"author_login": "olwater",
"committed_at": "2026-07-07T06:42:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c60ea4f4256479eec5f4b2e05834ea3231e07f98",
"body": null,
"is_bot": false,
"headline": "fix(web): secure rich content rendering",
"author_name": "CaIon",
"author_login": "Calcium-Ion",
"committed_at": "2026-07-07T06:42:39Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "27ab377cc49f463dfce2770bb2d3a20ea910c5bd",
"body": "* fix(markdown): render announcement markdown consistently\n\n- support soft line breaks for announcement markdown without changing the default parser behavior.\n- add explicit markdown element styles so lists, tables, code blocks, and quotes render correctly when typography styles are unavailable.\n- a\n[…]\nRL and HTML detection instead of duplicating content format checks per page.\n- keep custom home content inside the standard public layout while preserving full-page iframe rendering for external URLs.",
"is_bot": false,
"headline": "fix(web): render custom HTML and Markdown content consistently (#5760)",
"author_name": "QuentinHsu",
"author_login": "QuentinHsu",
"committed_at": "2026-07-07T06:41:51Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "2265bc064a00bf236204cb8904d84b7f80f9f796",
"body": null,
"is_bot": false,
"headline": "Make quota logging synchronous and delay startup log",
"author_name": "CaIon",
"author_login": "Calcium-Ion",
"committed_at": "2026-07-07T06:29:32Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "79ec4827910722bd55b110ab4bc43970931bfd47",
"body": "* feat: add graceful shutdown with configurable timeout\n\n* fix: flush quota dashboard cache on graceful shutdown\n\nPersist the in-memory CacheQuotaData aggregation to the quota_data table\nbefore process exit, so a restart no longer drops up to one DataExportInterval\nwindow of dashboard data (issue #5679).",
"is_bot": false,
"headline": "支持服务优雅关闭,避免重启回复中断和面板缓存数据丢失 (#4258)",
"author_name": "feitianbubu",
"author_login": "feitianbubu",
"committed_at": "2026-07-07T06:29:24Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7d8aa09e5da940015d34214cc5b91e820c053375",
"body": "Pin down the checkUpdatePassword contract:\n\n- changing a password requires the correct current password\n- OAuth/passwordless accounts (empty password hash) cannot set a\n password through the self-service endpoint and must use the password\n reset flow instead\n- setupLogin never writes back the password column\n\nThese guard against regressing the password-change path back into a\nshort-circuit that lets passwordless accounts set a password directly.",
"is_bot": false,
"headline": "test(user): cover self-service password update guard",
"author_name": "CaIon",
"author_login": "Calcium-Ion",
"committed_at": "2026-07-07T06:28:17Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fd8e018e833ad4c8e4d5caeb9bd775c950d857b9",
"body": "* feat(subscription): add admin quota reset actions\n\n* fix(subscription): keep quota reset in plan row actions\n\n* refactor(subscription): move user subscription actions into menu",
"is_bot": false,
"headline": "feat(subscription): add admin quota reset actions (#5952)",
"author_name": "Seefs",
"author_login": "seefs001",
"committed_at": "2026-07-07T06:25:42Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "96500f6870f3cd848337f54d57792452e9224339",
"body": "- add SESSION_COOKIE_SECURE / SESSION_COOKIE_TRUSTED_URL env vars with\n startup validation: enabling Secure requires at least one trusted\n HTTPS entry URL\n- wire common.SessionCookieSecure into the session cookie store instead\n of a hardcoded Secure=false\n- print a startup warning when Secure ses\n[…]\n\nplain-HTTP reverse proxies, where a hardcoded Secure default would break\nlogins entirely; enabling it safely depends on the deployment's TLS\nsetup, so it ships as an opt-in deployment-hardening flag.",
"is_bot": false,
"headline": "feat(session): support opt-in Secure session cookies",
"author_name": "CaIon",
"author_login": "Calcium-Ion",
"committed_at": "2026-07-07T06:22:32Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "a2ca933af323f6faef4b723b3d385ca4ee4710a8",
"body": "- normalize emails (trim + lowercase) and enforce uniqueness across\n registration, OAuth auto-registration, and email binding\n- serialize concurrent writers on the same normalized email within a\n transaction to avoid duplicate accounts\n- resolve password reset to a single matching account and reject\n ambiguous or absent matches\n- require an existing password before self-service password change and\n reject login for accounts without a usable password",
"is_bot": false,
"headline": "fix(user): harden account email and password handling",
"author_name": "CaIon",
"author_login": "Calcium-Ion",
"committed_at": "2026-07-07T06:21:33Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7dcb8b1d9e4a5422973e2900c428f9341048ccea",
"body": "* fix: apply default ali video duration when value is non-positive\n\n* fix: persist task quota after async settlement",
"is_bot": false,
"headline": "fix: 任务差额结算后 quota 和阿里视频时长优化 (#5923)",
"author_name": "feitianbubu",
"author_login": "feitianbubu",
"committed_at": "2026-07-07T06:13:52Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "cc200ce862b5825a33212b52a45c07ccb33e9bf6",
"body": null,
"is_bot": false,
"headline": "feat(user): better messages for redeem failures",
"author_name": "CaIon",
"author_login": "Calcium-Ion",
"committed_at": "2026-07-07T06:13:52Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d122062448b668b7a51bdd7f31a1b175076a067f",
"body": null,
"is_bot": false,
"headline": "fix(auth): allow read-only access for non-disabled tokens",
"author_name": "CaIon",
"author_login": "Calcium-Ion",
"committed_at": "2026-07-07T06:13:52Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8b89b64ee9354e78fe003f231bfbab8e6e8a8a06",
"body": null,
"is_bot": false,
"headline": "fix(user): trim whitespace from username and validate input",
"author_name": "CaIon",
"author_login": "Calcium-Ion",
"committed_at": "2026-07-07T06:13:52Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a86e349e431fcd4525da6f470ac2199cf3131bf3",
"body": null,
"is_bot": false,
"headline": "fix: omit access_token from user queries",
"author_name": "CaIon",
"author_login": "Calcium-Ion",
"committed_at": "2026-07-07T06:13:52Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "33aac1d6c3e8d68c07710e0dda954c5d9eb94651",
"body": null,
"is_bot": false,
"headline": "fix(billing): adjust quota calculation to prevent exceeding int32 limits",
"author_name": "CaIon",
"author_login": "Calcium-Ion",
"committed_at": "2026-07-07T06:12:40Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2d031b972c9f5fac52c49f9a862a0f1fb773b612",
"body": null,
"is_bot": false,
"headline": "fix(model): centralize row locking in transactional flows",
"author_name": "CaIon",
"author_login": "Calcium-Ion",
"committed_at": "2026-07-07T06:11:54Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0a3c890f5368a8cf352dc59c7a1a671e3bfd28e5",
"body": null,
"is_bot": false,
"headline": "fix(redemption): add status filtering and cleanup action",
"author_name": "CaIon",
"author_login": "Calcium-Ion",
"committed_at": "2026-07-07T06:11:45Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "07a487f31c8b0a63b30ffc84b648f19bf2c510a4",
"body": "Thread int32 saturation clamps from tiered settlement and video task\nrecompute into the consume/task logs under admin_info, so oversized or\nmalformed billing inputs stay auditable. Clamp negative audio duration\nbefore token conversion and gate the saturation UI markers on admin.",
"is_bot": false,
"headline": "fix(billing): surface quota saturation events for admin auditing",
"author_name": "CaIon",
"author_login": "Calcium-Ion",
"committed_at": "2026-07-07T06:10:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9c60e4d65757f305e1dab1afc9b151fba061f9f7",
"body": "…o remaining paths\n\nBound max-tokens fields across all relay format validators, saturate\ntiered-expression rounding and audio/tool/task token conversions, and\nroute legacy remix ratios through the guarded setter.",
"is_bot": false,
"headline": "fix(billing): extend quantity validation and saturating conversions t…",
"author_name": "CaIon",
"author_login": "Calcium-Ion",
"committed_at": "2026-07-07T06:09:30Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "438d1b3b0715ef6ee9aa364ed811399317d9ca59",
"body": "Bound user-supplied count/duration parameters at request validation,\nroute ratio multipliers through guarded setters, and use saturating\nint conversions in all quota math paths.",
"is_bot": false,
"headline": "fix(billing): validate quantity parameters and harden quota calculations",
"author_name": "CaIon",
"author_login": "Calcium-Ion",
"committed_at": "2026-07-07T06:09:23Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6dcba6d47e8b6ccf94dc3a804b98bb6ad6deaf23",
"body": "* fix: avoid stale stream writes after client disconnect\n\n* fix: wait for stream ping goroutines before returning\n\n* fix: log stream results after goroutine cleanup\n\n* fix: broadcast stream stop signals\n\n* fix: abort upstream on client disconnect and restore write error contracts\n\nKeep the goroutine\n[…]\ntp.NewResponseController) before each\nlocked stream write so a slow-but-connected client cannot block a write\nforever and hang the unconditional wg.Wait.\n\n---------\n\nCo-authored-by: CaIon <i@caion.me>",
"is_bot": false,
"headline": "fix: avoid stale stream writes after client disconnect (#5710)",
"author_name": "Seefs",
"author_login": "seefs001",
"committed_at": "2026-07-07T06:08:22Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "621a3e42c91a9af6cd1072c6ace991dceef6b2db",
"body": "…functions",
"is_bot": false,
"headline": "feat(ssrf): implement SSRF protection in HTTP clients and validation …",
"author_name": "CaIon",
"author_login": "Calcium-Ion",
"committed_at": "2026-07-07T06:08:22Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c143369b9e5c087b48812591618937bd2fc31fff",
"body": "* fix(openai): harden Chat-to-Responses compatibility\n\nAdd a shared Responses-to-Chat stream state machine and use it from the OpenAI relay path. Preserve assistant text alongside tool calls, bind tool argument deltas by output_index, map incomplete finish reasons, support reasoning/custom tool even\n[…]\nicompat to relayconvert for improved clarity\n\n* feat(gemini): support responses request conversion\n\n* feat: add responses to chat conversion support\n\n* fix: harden responses chat conversion edge cases",
"is_bot": false,
"headline": "feat: support Responses to Chat (#5787)",
"author_name": "Calcium-Ion",
"author_login": "Calcium-Ion",
"committed_at": "2026-07-07T06:07:07Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "7e924ce5da78e7aa2d98781b1b1deac36ebb21e7",
"body": "Add a shared Responses-to-Chat stream state machine and use it from the OpenAI relay path. Preserve assistant text alongside tool calls, bind tool argument deltas by output_index, map incomplete finish reasons, support reasoning/custom tool events, and buffer upstream SSE for non-stream Chat clients.\n\nAdd deterministic service tests and relay SSE tests for the conversion path.\n\nRelated to #5745.",
"is_bot": false,
"headline": "fix(openai): harden Chat-to-Responses compatibility (#5772)",
"author_name": "Calcium-Ion",
"author_login": "Calcium-Ion",
"committed_at": "2026-07-07T06:05:50Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4e13a8d7de423ca22f394a3b8f3ea8c7e34269d1",
"body": "* feat: support Wan2.7 i2v media mapping\n\n* fix: normalize wan2.7 i2v image inputs",
"is_bot": false,
"headline": "feat: support Wan2.7 i2v media mapping (#4984)",
"author_name": "Scott",
"author_login": "wxwwt",
"committed_at": "2026-07-07T06:03:29Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d9bd7e9a7b8a1d7e7afc466e2b1287b22cf183f1",
"body": "…illing (#5824)\n\n* feat: support safety_identifier and priority for doubao video\n\n* feat: add 4k resolution billing tier for doubao video",
"is_bot": false,
"headline": "feat: support doubao seedance 2.0 safety_identifier/priority and 4k b…",
"author_name": "feitianbubu",
"author_login": "feitianbubu",
"committed_at": "2026-07-07T06:03:29Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c098b268aeb16a59dae430994897bcf1fd98dd59",
"body": "…#5300)",
"is_bot": false,
"headline": "feat: bill doubao seedance-2.0 by output resolution and video input (…",
"author_name": "feitianbubu",
"author_login": "feitianbubu",
"committed_at": "2026-07-07T06:03:29Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "547e38157b8756370a82664d50b708daa3b05d93",
"body": "* fix: handle ollama non-stream tool calls\n\n* test: cover ollama non-stream tool call paths\n\n---------\n\nCo-authored-by: CaIon <i@caion.me>",
"is_bot": false,
"headline": "fix: handle ollama non-stream tool calls (#5865)",
"author_name": "Mimi",
"author_login": "stevenjoezhang",
"committed_at": "2026-07-07T06:03:29Z",
"body_truncated": false,
"is_coding_agent": false
}
],
"releases_count": 26,
"commits_last_year": 2623,
"latest_release_at": "2026-07-22T20:28:01Z",
"latest_release_tag": "v0.2.2",
"releases_from_tags": false,
"days_since_last_push": 3,
"active_weeks_last_year": 52,
"days_since_latest_release": 3,
"mean_days_between_releases": 1.5
},
"community": {
"has_readme": false,
"has_license": false,
"has_description": false,
"has_contributing": false,
"health_percentage": null,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": false
},
"ecosystem": {
"packages": [
{
"name": "github.com/QuantumNous/new-api",
"exists": true,
"license": null,
"keywords": [],
"ecosystem": "go",
"matches_repo": false,
"registry_url": "https://pkg.go.dev/github.com/QuantumNous/new-api",
"is_deprecated": false,
"latest_version": "v0.13.2",
"repository_url": "https://github.com/QuantumNous/new-api",
"versions_count": 224,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": null,
"monthly_downloads": null,
"first_published_at": null,
"latest_published_at": "2026-04-27T14:07:46Z",
"latest_version_yanked": null,
"days_since_latest_publish": 89
}
]
},
"popularity": {
"forks": 0,
"stars": 1,
"watchers": 0,
"fork_history": {
"days": [],
"complete": true,
"collected": 0,
"total_forks": 0
},
"star_history": null,
"open_issues_and_prs": 0
},
"ai_readiness": {
"has_nix": false,
"example_dirs": [
"examples"
],
"has_llms_txt": false,
"has_dockerfile": true,
"has_mcp_signal": false,
"bootstrap_files": [
"makefile"
],
"api_schema_files": [],
"has_devcontainer": false,
"typecheck_configs": [
"web/classic/jsconfig.json",
"web/default/tsconfig.json"
],
"toolchain_manifests": [
"go.mod"
],
"largest_source_bytes": 191287,
"source_files_sampled": 2400,
"oversized_source_files": 18,
"agent_instruction_files": [
"AGENTS.md",
"CLAUDE.md",
"web/default/AGENTS.md"
],
"agent_instruction_max_bytes": 15186
},
"dependencies": {
"manifests": [
"electron/package.json",
"go.mod",
"web/package.json"
],
"advisories": {
"error": null,
"scope": "repository_graph",
"source": "osv",
"findings": [
{
"name": "axios",
"direct": true,
"version": "catalog:",
"severity": "high",
"ecosystem": "npm",
"cvss_score": 8.6,
"advisory_ids": [
"GHSA-3p68-rc4w-qgx5",
"GHSA-42xw-2xvc-qx8m",
"GHSA-43fc-jf86-j433",
"GHSA-4w2v-q235-vp99",
"GHSA-5c9x-8gcm-mpgx",
"GHSA-62hf-57xw-28j9",
"GHSA-6chq-wfr3-2hj9",
"GHSA-898c-q2cr-xwhg",
"GHSA-cph5-m8f7-6c5x",
"GHSA-fvcv-3m26-pcqx"
],
"fixed_version": "1.18.0",
"advisory_count": 23,
"oldest_advisory_days": 2614
},
{
"name": "app-builder-lib",
"direct": false,
"version": "26.7.0",
"severity": "high",
"ecosystem": "npm",
"cvss_score": 7.8,
"advisory_ids": [
"GHSA-7g7r-gx96-252g"
],
"fixed_version": "26.15.0",
"advisory_count": 1,
"oldest_advisory_days": 1
},
{
"name": "brace-expansion",
"direct": false,
"version": "1.1.16",
"severity": "high",
"ecosystem": "npm",
"cvss_score": 7.5,
"advisory_ids": [
"GHSA-mh99-v99m-4gvg"
],
"fixed_version": "5.0.8",
"advisory_count": 1,
"oldest_advisory_days": 1
},
{
"name": "brace-expansion",
"direct": false,
"version": "2.1.2",
"severity": "high",
"ecosystem": "npm",
"cvss_score": 7.5,
"advisory_ids": [
"GHSA-mh99-v99m-4gvg"
],
"fixed_version": "5.0.8",
"advisory_count": 1,
"oldest_advisory_days": 1
},
{
"name": "brace-expansion",
"direct": false,
"version": "5.0.7",
"severity": "high",
"ecosystem": "npm",
"cvss_score": 7.5,
"advisory_ids": [
"GHSA-mh99-v99m-4gvg"
],
"fixed_version": "5.0.8",
"advisory_count": 1,
"oldest_advisory_days": 1
},
{
"name": "builder-util-runtime",
"direct": false,
"version": "9.5.1",
"severity": "high",
"ecosystem": "npm",
"cvss_score": null,
"advisory_ids": [
"GHSA-p2f4-r6v6-j797"
],
"fixed_version": "9.7.0",
"advisory_count": 1,
"oldest_advisory_days": 1
},
{
"name": "tar",
"direct": false,
"version": "7.5.19",
"severity": "moderate",
"ecosystem": "npm",
"cvss_score": 5.3,
"advisory_ids": [
"GHSA-r292-9mhp-454m"
],
"fixed_version": "7.5.21",
"advisory_count": 1,
"oldest_advisory_days": 1
},
{
"name": "golang.org/x/crypto",
"direct": true,
"version": "v0.52.0",
"severity": "unknown",
"ecosystem": "go",
"cvss_score": null,
"advisory_ids": [
"GO-2026-5932"
],
"fixed_version": null,
"advisory_count": 1,
"oldest_advisory_days": 18
},
{
"name": "golang.org/x/net",
"direct": true,
"version": "v0.55.0",
"severity": "unknown",
"ecosystem": "go",
"cvss_score": null,
"advisory_ids": [
"GO-2026-5942"
],
"fixed_version": "0.56.0",
"advisory_count": 1,
"oldest_advisory_days": 11
}
],
"collected": true,
"malicious": [],
"truncated": false,
"by_severity": {
"high": 6,
"unknown": 2,
"moderate": 1
},
"advisory_count": 31,
"affected_count": 9,
"assessed_count": 495,
"malicious_count": 0,
"assessed_package": null,
"unassessed_count": 94,
"direct_affected_count": 3
},
"ecosystems": [
"go",
"npm"
],
"dependencies": [
{
"name": "github.com/Calcium-Ion/go-epay",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.4"
},
{
"name": "github.com/abema/go-mp4",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.4.1"
},
{
"name": "github.com/andybalholm/brotli",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.1.1"
},
{
"name": "github.com/anknown/ahocorasick",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0-20190904063843-d75dbd5169c0"
},
{
"name": "github.com/aws/aws-sdk-go-v2",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.41.5"
},
{
"name": "github.com/aws/aws-sdk-go-v2/credentials",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.19.10"
},
{
"name": "github.com/aws/aws-sdk-go-v2/service/bedrockruntime",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.50.4"
},
{
"name": "github.com/aws/smithy-go",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.24.2"
},
{
"name": "github.com/bytedance/gopkg",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.1.3"
},
{
"name": "github.com/casbin/casbin/v2",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v2.135.0"
},
{
"name": "github.com/gin-contrib/cors",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.7.2"
},
{
"name": "github.com/gin-contrib/gzip",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.6"
},
{
"name": "github.com/gin-contrib/sessions",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.5"
},
{
"name": "github.com/gin-contrib/static",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.1"
},
{
"name": "github.com/gin-gonic/gin",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.9.1"
},
{
"name": "github.com/glebarez/sqlite",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.9.0"
},
{
"name": "github.com/go-audio/aiff",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.1.0"
},
{
"name": "github.com/go-audio/wav",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.1.0"
},
{
"name": "github.com/go-playground/validator/v10",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v10.20.0"
},
{
"name": "github.com/go-redis/redis/v8",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v8.11.5"
},
{
"name": "github.com/go-webauthn/webauthn",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.14.0"
},
{
"name": "github.com/golang-jwt/jwt/v5",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v5.3.0"
},
{
"name": "github.com/google/uuid",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.6.0"
},
{
"name": "github.com/gorilla/websocket",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.5.0"
},
{
"name": "github.com/grafana/pyroscope-go",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.2.7"
},
{
"name": "github.com/jfreymuth/oggvorbis",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.0.5"
},
{
"name": "github.com/jinzhu/copier",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.4.0"
},
{
"name": "github.com/joho/godotenv",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.5.1"
},
{
"name": "github.com/mewkiz/flac",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.0.13"
},
{
"name": "github.com/nicksnyder/go-i18n/v2",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v2.6.1"
},
{
"name": "github.com/pkg/errors",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.9.1"
},
{
"name": "github.com/pquerna/otp",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.5.0"
},
{
"name": "github.com/samber/hot",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.11.0"
},
{
"name": "github.com/samber/lo",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.52.0"
},
{
"name": "github.com/shirou/gopsutil",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v3.21.11+incompatible"
},
{
"name": "github.com/shopspring/decimal",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.4.0"
},
{
"name": "github.com/stretchr/testify",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.11.1"
},
{
"name": "github.com/tcolgate/mp3",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0-20170426193717-e79c5a46d300"
},
{
"name": "github.com/thanhpk/randstr",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.0.6"
},
{
"name": "github.com/tidwall/gjson",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.18.0"
},
{
"name": "github.com/tidwall/sjson",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.2.5"
},
{
"name": "github.com/tiktoken-go/tokenizer",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.6.2"
},
{
"name": "github.com/waffo-com/waffo-go",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.3.2"
},
{
"name": "github.com/yapingcat/gomedia",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.0.0-20240906162731-17feea57090c"
},
{
"name": "golang.org/x/crypto",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.52.0"
},
{
"name": "golang.org/x/image",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.43.0"
},
{
"name": "golang.org/x/net",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.55.0"
},
{
"name": "golang.org/x/sync",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.21.0"
},
{
"name": "golang.org/x/sys",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.45.0"
},
{
"name": "golang.org/x/text",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.39.0"
},
{
"name": "gopkg.in/yaml.v3",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v3.0.1"
},
{
"name": "gorm.io/driver/mysql",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.4.3"
},
{
"name": "gorm.io/driver/postgres",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.5.2"
},
{
"name": "gorm.io/gorm",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.25.2"
},
{
"name": "github.com/waffo-com/waffo-pancake-sdk-go",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.3.1"
},
{
"name": "gorm.io/driver/clickhouse",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.6.0"
},
{
"name": "github.com/Azure/go-ntlmssp",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v0.1.1"
},
{
"name": "github.com/alicebob/miniredis/v2",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v2.35.0"
},
{
"name": "github.com/stripe/stripe-go/v86",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v86.1.1"
},
{
"name": "github.com/expr-lang/expr",
"manifest": "go.mod",
"ecosystem": "go",
"version_constraint": "v1.17.8"
},
{
"name": "@douyinfe/semi-illustrations",
"manifest": "web/classic/package.json",
"ecosystem": "npm",
"version_constraint": "^2.69.1"
},
{
"name": "@douyinfe/semi-icons",
"manifest": "web/classic/package.json",
"ecosystem": "npm",
"version_constraint": "^2.63.1"
},
{
"name": "@douyinfe/semi-ui",
"manifest": "web/classic/package.json",
"ecosystem": "npm",
"version_constraint": "^2.69.1"
},
{
"name": "@lobehub/icons",
"manifest": "web/classic/package.json",
"ecosystem": "npm",
"version_constraint": "catalog:"
},
{
"name": "@visactor/react-vchart",
"manifest": "web/classic/package.json",
"ecosystem": "npm",
"version_constraint": "~1.8.8"
},
{
"name": "@visactor/vchart",
"manifest": "web/classic/package.json",
"ecosystem": "npm",
"version_constraint": "~1.8.8"
},
{
"name": "@visactor/vchart-semi-theme",
"manifest": "web/classic/package.json",
"ecosystem": "npm",
"version_constraint": "~1.8.8"
},
{
"name": "axios",
"manifest": "web/classic/package.json",
"ecosystem": "npm",
"version_constraint": "catalog:"
},
{
"name": "clsx",
"manifest": "web/classic/package.json",
"ecosystem": "npm",
"version_constraint": "catalog:"
},
{
"name": "date-fns",
"manifest": "web/classic/package.json",
"ecosystem": "npm",
"version_constraint": "2.30.0"
},
{
"name": "dayjs",
"manifest": "web/classic/package.json",
"ecosystem": "npm",
"version_constraint": "catalog:"
},
{
"name": "history",
"manifest": "web/classic/package.json",
"ecosystem": "npm",
"version_constraint": "^5.3.0"
},
{
"name": "highlight.js",
"manifest": "web/classic/package.json",
"ecosystem": "npm",
"version_constraint": "^11.11.1"
},
{
"name": "i18next",
"manifest": "web/classic/package.json",
"ecosystem": "npm",
"version_constraint": "^23.16.8"
},
{
"name": "i18next-browser-languagedetector",
"manifest": "web/classic/package.json",
"ecosystem": "npm",
"version_constraint": "^7.2.0"
},
{
"name": "katex",
"manifest": "web/classic/package.json",
"ecosystem": "npm",
"version_constraint": "^0.16.22"
},
{
"name": "lucide-react",
"manifest": "web/classic/package.json",
"ecosystem": "npm",
"version_constraint": "^0.511.0"
},
{
"name": "marked",
"manifest": "web/classic/package.json",
"ecosystem": "npm",
"version_constraint": "^4.1.1"
},
{
"name": "mermaid",
"manifest": "web/classic/package.json",
"ecosystem": "npm",
"version_constraint": "^11.6.0"
},
{
"name": "qrcode.react",
"manifest": "web/classic/package.json",
"ecosystem": "npm",
"version_constraint": "catalog:"
},
{
"name": "react",
"manifest": "web/classic/package.json",
"ecosystem": "npm",
"version_constraint": "catalog:"
},
{
"name": "react-dom",
"manifest": "web/classic/package.json",
"ecosystem": "npm",
"version_constraint": "catalog:"
},
{
"name": "react-dropzone",
"manifest": "web/classic/package.json",
"ecosystem": "npm",
"version_constraint": "^14.2.3"
},
{
"name": "react-fireworks",
"manifest": "web/classic/package.json",
"ecosystem": "npm",
"version_constraint": "^1.0.4"
},
{
"name": "react-i18next",
"manifest": "web/classic/package.json",
"ecosystem": "npm",
"version_constraint": "^13.0.0"
},
{
"name": "react-icons",
"manifest": "web/classic/package.json",
"ecosystem": "npm",
"version_constraint": "catalog:"
},
{
"name": "react-markdown",
"manifest": "web/classic/package.json",
"ecosystem": "npm",
"version_constraint": "catalog:"
},
{
"name": "react-router-dom",
"manifest": "web/classic/package.json",
"ecosystem": "npm",
"version_constraint": "^6.3.0"
},
{
"name": "react-telegram-login",
"manifest": "web/classic/package.json",
"ecosystem": "npm",
"version_constraint": "^1.1.2"
},
{
"name": "react-toastify",
"manifest": "web/classic/package.json",
"ecosystem": "npm",
"version_constraint": "^9.0.8"
},
{
"name": "react-turnstile",
"manifest": "web/classic/package.json",
"ecosystem": "npm",
"version_constraint": "^1.0.5"
},
{
"name": "rehype-highlight",
"manifest": "web/classic/package.json",
"ecosystem": "npm",
"version_constraint": "^7.0.2"
},
{
"name": "rehype-katex",
"manifest": "web/classic/package.json",
"ecosystem": "npm",
"version_constraint": "^7.0.1"
},
{
"name": "remark-breaks",
"manifest": "web/classic/package.json",
"ecosystem": "npm",
"version_constraint": "^4.0.0"
},
{
"name": "remark-gfm",
"manifest": "web/classic/package.json",
"ecosystem": "npm",
"version_constraint": "catalog:"
},
{
"name": "remark-math",
"manifest": "web/classic/package.json",
"ecosystem": "npm",
"version_constraint": "^6.0.0"
},
{
"name": "sse.js",
"manifest": "web/classic/package.json",
"ecosystem": "npm",
"version_constraint": "catalog:"
},
{
"name": "unist-util-visit",
"manifest": "web/classic/package.json",
"ecosystem": "npm",
"version_constraint": "^5.0.0"
},
{
"name": "use-debounce",
"manifest": "web/classic/package.json",
"ecosystem": "npm",
"version_constraint": "^10.0.4"
},
{
"name": "@base-ui/react",
"manifest": "web/default/package.json",
"ecosystem": "npm",
"version_constraint": "^1.6.0"
},
{
"name": "@codemirror/lang-markdown",
"manifest": "web/default/package.json",
"ecosystem": "npm",
"version_constraint": "^6.5.0"
},
{
"name": "@codemirror/language",
"manifest": "web/default/package.json",
"ecosystem": "npm",
"version_constraint": "^6.12.4"
},
{
"name": "@codemirror/state",
"manifest": "web/default/package.json",
"ecosystem": "npm",
"version_constraint": "^6.7.0"
},
{
"name": "@codemirror/view",
"manifest": "web/default/package.json",
"ecosystem": "npm",
"version_constraint": "^6.43.4"
},
{
"name": "@fontsource-variable/lora",
"manifest": "web/default/package.json",
"ecosystem": "npm",
"version_constraint": "^5.2.8"
},
{
"name": "@fontsource-variable/public-sans",
"manifest": "web/default/package.json",
"ecosystem": "npm",
"version_constraint": "^5.2.7"
},
{
"name": "@hookform/resolvers",
"manifest": "web/default/package.json",
"ecosystem": "npm",
"version_constraint": "^5.4.0"
},
{
"name": "@hugeicons/core-free-icons",
"manifest": "web/default/package.json",
"ecosystem": "npm",
"version_constraint": "^4.2.2"
},
{
"name": "@hugeicons/react",
"manifest": "web/default/package.json",
"ecosystem": "npm",
"version_constraint": "^1.1.9"
},
{
"name": "@lezer/highlight",
"manifest": "web/default/package.json",
"ecosystem": "npm",
"version_constraint": "^1.2.3"
},
{
"name": "@lobehub/icons",
"manifest": "web/default/package.json",
"ecosystem": "npm",
"version_constraint": "catalog:"
},
{
"name": "@tanstack/react-query",
"manifest": "web/default/package.json",
"ecosystem": "npm",
"version_constraint": "^5.101.2"
},
{
"name": "@tanstack/react-router",
"manifest": "web/default/package.json",
"ecosystem": "npm",
"version_constraint": "^1.170.17"
},
{
"name": "@tanstack/react-table",
"manifest": "web/default/package.json",
"ecosystem": "npm",
"version_constraint": "^8.21.3"
},
{
"name": "@tanstack/react-virtual",
"manifest": "web/default/package.json",
"ecosystem": "npm",
"version_constraint": "^3.14.5"
},
{
"name": "@visactor/react-vchart",
"manifest": "web/default/package.json",
"ecosystem": "npm",
"version_constraint": "^2.1.2"
},
{
"name": "@visactor/vchart",
"manifest": "web/default/package.json",
"ecosystem": "npm",
"version_constraint": "^2.1.2"
},
{
"name": "ai",
"manifest": "web/default/package.json",
"ecosystem": "npm",
"version_constraint": "^7.0.14"
},
{
"name": "auto-skeleton-react",
"manifest": "web/default/package.json",
"ecosystem": "npm",
"version_constraint": "^1.0.5"
},
{
"name": "axios",
"manifest": "web/default/package.json",
"ecosystem": "npm",
"version_constraint": "catalog:"
},
{
"name": "class-variance-authority",
"manifest": "web/default/package.json",
"ecosystem": "npm",
"version_constraint": "^0.7.1"
},
{
"name": "clsx",
"manifest": "web/default/package.json",
"ecosystem": "npm",
"version_constraint": "catalog:"
},
{
"name": "cmdk",
"manifest": "web/default/package.json",
"ecosystem": "npm",
"version_constraint": "^1.1.1"
},
{
"name": "dayjs",
"manifest": "web/default/package.json",
"ecosystem": "npm",
"version_constraint": "catalog:"
},
{
"name": "dompurify",
"manifest": "web/default/package.json",
"ecosystem": "npm",
"version_constraint": "3.4.12"
},
{
"name": "i18next",
"manifest": "web/default/package.json",
"ecosystem": "npm",
"version_constraint": "^26.3.4"
},
{
"name": "i18next-browser-languagedetector",
"manifest": "web/default/package.json",
"ecosystem": "npm",
"version_constraint": "^8.2.1"
},
{
"name": "input-otp",
"manifest": "web/default/package.json",
"ecosystem": "npm",
"version_constraint": "^1.4.2"
},
{
"name": "katex",
"manifest": "web/default/package.json",
"ecosystem": "npm",
"version_constraint": "^0.17.0"
},
{
"name": "lucide-react",
"manifest": "web/default/package.json",
"ecosystem": "npm",
"version_constraint": "^1.23.0"
},
{
"name": "marked",
"manifest": "web/default/package.json",
"ecosystem": "npm",
"version_constraint": "^18.0.5"
},
{
"name": "motion",
"manifest": "web/default/package.json",
"ecosystem": "npm",
"version_constraint": "^12.42.2"
},
{
"name": "nanoid",
"manifest": "web/default/package.json",
"ecosystem": "npm",
"version_constraint": "^5.1.16"
},
{
"name": "next-themes",
"manifest": "web/default/package.json",
"ecosystem": "npm",
"version_constraint": "^0.4.6"
},
{
"name": "qrcode.react",
"manifest": "web/default/package.json",
"ecosystem": "npm",
"version_constraint": "catalog:"
},
{
"name": "react",
"manifest": "web/default/package.json",
"ecosystem": "npm",
"version_constraint": "catalog:"
},
{
"name": "react-day-picker",
"manifest": "web/default/package.json",
"ecosystem": "npm",
"version_constraint": "^10.0.1"
},
{
"name": "react-dom",
"manifest": "web/default/package.json",
"ecosystem": "npm",
"version_constraint": "catalog:"
},
{
"name": "react-hook-form",
"manifest": "web/default/package.json",
"ecosystem": "npm",
"version_constraint": "^7.80.0"
},
{
"name": "react-i18next",
"manifest": "web/default/package.json",
"ecosystem": "npm",
"version_constraint": "^17.0.8"
},
{
"name": "react-icons",
"manifest": "web/default/package.json",
"ecosystem": "npm",
"version_constraint": "catalog:"
},
{
"name": "react-resizable-panels",
"manifest": "web/default/package.json",
"ecosystem": "npm",
"version_constraint": "^4.12.0"
},
{
"name": "react-top-loading-bar",
"manifest": "web/default/package.json",
"ecosystem": "npm",
"version_constraint": "^3.0.2"
},
{
"name": "recharts",
"manifest": "web/default/package.json",
"ecosystem": "npm",
"version_constraint": "3.9.1"
},
{
"name": "shiki",
"manifest": "web/default/package.json",
"ecosystem": "npm",
"version_constraint": "^4.3.0"
},
{
"name": "sonner",
"manifest": "web/default/package.json",
"ecosystem": "npm",
"version_constraint": "^2.0.7"
},
{
"name": "sse.js",
"manifest": "web/default/package.json",
"ecosystem": "npm",
"version_constraint": "catalog:"
},
{
"name": "stream-markdown-parser",
"manifest": "web/default/package.json",
"ecosystem": "npm",
"version_constraint": "^1.1.3"
},
{
"name": "tailwind-merge",
"manifest": "web/default/package.json",
"ecosystem": "npm",
"version_constraint": "^3.6.0"
},
{
"name": "tailwindcss",
"manifest": "web/default/package.json",
"ecosystem": "npm",
"version_constraint": "^4.3.2"
},
{
"name": "tokenlens",
"manifest": "web/default/package.json",
"ecosystem": "npm",
"version_constraint": "^1.3.1"
},
{
"name": "tw-animate-css",
"manifest": "web/default/package.json",
"ecosystem": "npm",
"version_constraint": "^1.4.0"
},
{
"name": "use-stick-to-bottom",
"manifest": "web/default/package.json",
"ecosystem": "npm",
"version_constraint": "^1.1.6"
},
{
"name": "vaul",
"manifest": "web/default/package.json",
"ecosystem": "npm",
"version_constraint": "^1.1.2"
},
{
"name": "zod",
"manifest": "web/default/package.json",
"ecosystem": "npm",
"version_constraint": "^4.4.3"
},
{
"name": "zustand",
"manifest": "web/default/package.json",
"ecosystem": "npm",
"version_constraint": "^5.0.14"
}
],
"all_dependencies": {
"error": null,
"source": "github-sbom",
"packages": [
{
"name": "github.com/abema/go-mp4",
"direct": true,
"version": "v1.4.1",
"ecosystem": "go"
},
{
"name": "github.com/alicebob/miniredis/v2",
"direct": true,
"version": "v2.35.0",
"ecosystem": "go"
},
{
"name": "github.com/andybalholm/brotli",
"direct": true,
"version": "v1.1.1",
"ecosystem": "go"
},
{
"name": "github.com/anknown/ahocorasick",
"direct": true,
"version": "v0.0.0-20190904063843-d75dbd5169c0",
"ecosystem": "go"
},
{
"name": "github.com/aws/aws-sdk-go-v2",
"direct": true,
"version": "v1.41.5",
"ecosystem": "go"
},
{
"name": "github.com/aws/aws-sdk-go-v2/credentials",
"direct": true,
"version": "v1.19.10",
"ecosystem": "go"
},
{
"name": "github.com/aws/aws-sdk-go-v2/service/bedrockruntime",
"direct": true,
"version": "v1.50.4",
"ecosystem": "go"
},
{
"name": "github.com/aws/smithy-go",
"direct": true,
"version": "v1.24.2",
"ecosystem": "go"
},
{
"name": "github.com/azure/go-ntlmssp",
"direct": true,
"version": "v0.1.1",
"ecosystem": "go"
},
{
"name": "github.com/bytedance/gopkg",
"direct": true,
"version": "v0.1.3",
"ecosystem": "go"
},
{
"name": "github.com/calcium-ion/go-epay",
"direct": true,
"version": "v0.0.4",
"ecosystem": "go"
},
{
"name": "github.com/casbin/casbin/v2",
"direct": true,
"version": "v2.135.0",
"ecosystem": "go"
},
{
"name": "github.com/expr-lang/expr",
"direct": true,
"version": "v1.17.8",
"ecosystem": "go"
},
{
"name": "github.com/gin-contrib/cors",
"direct": true,
"version": "v1.7.2",
"ecosystem": "go"
},
{
"name": "github.com/gin-contrib/gzip",
"direct": true,
"version": "v0.0.6",
"ecosystem": "go"
},
{
"name": "github.com/gin-contrib/sessions",
"direct": true,
"version": "v0.0.5",
"ecosystem": "go"
},
{
"name": "github.com/gin-contrib/static",
"direct": true,
"version": "v0.0.1",
"ecosystem": "go"
},
{
"name": "github.com/gin-gonic/gin",
"direct": true,
"version": "v1.9.1",
"ecosystem": "go"
},
{
"name": "github.com/glebarez/sqlite",
"direct": true,
"version": "v1.9.0",
"ecosystem": "go"
},
{
"name": "github.com/go-audio/aiff",
"direct": true,
"version": "v1.1.0",
"ecosystem": "go"
},
{
"name": "github.com/go-audio/wav",
"direct": true,
"version": "v1.1.0",
"ecosystem": "go"
},
{
"name": "github.com/go-playground/validator/v10",
"direct": true,
"version": "v10.20.0",
"ecosystem": "go"
},
{
"name": "github.com/go-redis/redis/v8",
"direct": true,
"version": "v8.11.5",
"ecosystem": "go"
},
{
"name": "github.com/go-webauthn/webauthn",
"direct": true,
"version": "v0.14.0",
"ecosystem": "go"
},
{
"name": "github.com/golang-jwt/jwt/v5",
"direct": true,
"version": "v5.3.0",
"ecosystem": "go"
},
{
"name": "github.com/google/uuid",
"direct": true,
"version": "v1.6.0",
"ecosystem": "go"
},
{
"name": "github.com/gorilla/websocket",
"direct": true,
"version": "v1.5.0",
"ecosystem": "go"
},
{
"name": "github.com/grafana/pyroscope-go",
"direct": true,
"version": "v1.2.7",
"ecosystem": "go"
},
{
"name": "github.com/jfreymuth/oggvorbis",
"direct": true,
"version": "v1.0.5",
"ecosystem": "go"
},
{
"name": "github.com/jinzhu/copier",
"direct": true,
"version": "v0.4.0",
"ecosystem": "go"
},
{
"name": "github.com/joho/godotenv",
"direct": true,
"version": "v1.5.1",
"ecosystem": "go"
},
{
"name": "github.com/mewkiz/flac",
"direct": true,
"version": "v1.0.13",
"ecosystem": "go"
},
{
"name": "github.com/nicksnyder/go-i18n/v2",
"direct": true,
"version": "v2.6.1",
"ecosystem": "go"
},
{
"name": "github.com/pkg/errors",
"direct": true,
"version": "v0.9.1",
"ecosystem": "go"
},
{
"name": "github.com/pquerna/otp",
"direct": true,
"version": "v1.5.0",
"ecosystem": "go"
},
{
"name": "github.com/samber/hot",
"direct": true,
"version": "v0.11.0",
"ecosystem": "go"
},
{
"name": "github.com/samber/lo",
"direct": true,
"version": "v1.52.0",
"ecosystem": "go"
},
{
"name": "github.com/shirou/gopsutil",
"direct": true,
"version": "v3.21.11+incompatible",
"ecosystem": "go"
},
{
"name": "github.com/shopspring/decimal",
"direct": true,
"version": "v1.4.0",
"ecosystem": "go"
},
{
"name": "github.com/stretchr/testify",
"direct": true,
"version": "v1.11.1",
"ecosystem": "go"
},
{
"name": "github.com/stripe/stripe-go/v86",
"direct": true,
"version": "v86.1.1",
"ecosystem": "go"
},
{
"name": "github.com/tcolgate/mp3",
"direct": true,
"version": "v0.0.0-20170426193717-e79c5a46d300",
"ecosystem": "go"
},
{
"name": "github.com/thanhpk/randstr",
"direct": true,
"version": "v1.0.6",
"ecosystem": "go"
},
{
"name": "github.com/tidwall/gjson",
"direct": true,
"version": "v1.18.0",
"ecosystem": "go"
},
{
"name": "github.com/tidwall/sjson",
"direct": true,
"version": "v1.2.5",
"ecosystem": "go"
},
{
"name": "github.com/tiktoken-go/tokenizer",
"direct": true,
"version": "v0.6.2",
"ecosystem": "go"
},
{
"name": "github.com/waffo-com/waffo-go",
"direct": true,
"version": "v1.3.2",
"ecosystem": "go"
},
{
"name": "github.com/waffo-com/waffo-pancake-sdk-go",
"direct": true,
"version": "v0.3.1",
"ecosystem": "go"
},
{
"name": "github.com/yapingcat/gomedia",
"direct": true,
"version": "v0.0.0-20240906162731-17feea57090c",
"ecosystem": "go"
},
{
"name": "golang.org/x/crypto",
"direct": true,
"version": "v0.52.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/image",
"direct": true,
"version": "v0.43.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/net",
"direct": true,
"version": "v0.55.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/sync",
"direct": true,
"version": "v0.21.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/sys",
"direct": true,
"version": "v0.45.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/text",
"direct": true,
"version": "v0.39.0",
"ecosystem": "go"
},
{
"name": "gopkg.in/yaml.v3",
"direct": true,
"version": "v3.0.1",
"ecosystem": "go"
},
{
"name": "gorm.io/driver/clickhouse",
"direct": true,
"version": "v0.6.0",
"ecosystem": "go"
},
{
"name": "gorm.io/driver/mysql",
"direct": true,
"version": "v1.4.3",
"ecosystem": "go"
},
{
"name": "gorm.io/driver/postgres",
"direct": true,
"version": "v1.5.2",
"ecosystem": "go"
},
{
"name": "gorm.io/gorm",
"direct": true,
"version": "v1.25.2",
"ecosystem": "go"
},
{
"name": "@base-ui/react",
"direct": true,
"version": "^1.6.0",
"ecosystem": "npm"
},
{
"name": "@codemirror/lang-markdown",
"direct": true,
"version": "^6.5.0",
"ecosystem": "npm"
},
{
"name": "@codemirror/language",
"direct": true,
"version": "^6.12.4",
"ecosystem": "npm"
},
{
"name": "@codemirror/state",
"direct": true,
"version": "^6.7.0",
"ecosystem": "npm"
},
{
"name": "@codemirror/view",
"direct": true,
"version": "^6.43.4",
"ecosystem": "npm"
},
{
"name": "@douyinfe/semi-icons",
"direct": true,
"version": "^2.63.1",
"ecosystem": "npm"
},
{
"name": "@douyinfe/semi-illustrations",
"direct": true,
"version": "^2.69.1",
"ecosystem": "npm"
},
{
"name": "@douyinfe/semi-ui",
"direct": true,
"version": "^2.69.1",
"ecosystem": "npm"
},
{
"name": "@fontsource-variable/lora",
"direct": true,
"version": "^5.2.8",
"ecosystem": "npm"
},
{
"name": "@fontsource-variable/public-sans",
"direct": true,
"version": "^5.2.7",
"ecosystem": "npm"
},
{
"name": "@hookform/resolvers",
"direct": true,
"version": "^5.4.0",
"ecosystem": "npm"
},
{
"name": "@hugeicons/core-free-icons",
"direct": true,
"version": "^4.2.2",
"ecosystem": "npm"
},
{
"name": "@hugeicons/react",
"direct": true,
"version": "^1.1.9",
"ecosystem": "npm"
},
{
"name": "@lezer/highlight",
"direct": true,
"version": "^1.2.3",
"ecosystem": "npm"
},
{
"name": "@lobehub/icons",
"direct": true,
"version": "catalog:",
"ecosystem": "npm"
},
{
"name": "@tanstack/react-query",
"direct": true,
"version": "^5.101.2",
"ecosystem": "npm"
},
{
"name": "@tanstack/react-router",
"direct": true,
"version": "^1.170.17",
"ecosystem": "npm"
},
{
"name": "@tanstack/react-table",
"direct": true,
"version": "^8.21.3",
"ecosystem": "npm"
},
{
"name": "@tanstack/react-virtual",
"direct": true,
"version": "^3.14.5",
"ecosystem": "npm"
},
{
"name": "@visactor/react-vchart",
"direct": true,
"version": "^2.1.2",
"ecosystem": "npm"
},
{
"name": "@visactor/react-vchart",
"direct": true,
"version": "~1.8.8",
"ecosystem": "npm"
},
{
"name": "@visactor/vchart",
"direct": true,
"version": "^2.1.2",
"ecosystem": "npm"
},
{
"name": "@visactor/vchart",
"direct": true,
"version": "~1.8.8",
"ecosystem": "npm"
},
{
"name": "@visactor/vchart-semi-theme",
"direct": true,
"version": "~1.8.8",
"ecosystem": "npm"
},
{
"name": "ai",
"direct": true,
"version": "^7.0.14",
"ecosystem": "npm"
},
{
"name": "auto-skeleton-react",
"direct": true,
"version": "^1.0.5",
"ecosystem": "npm"
},
{
"name": "axios",
"direct": true,
"version": "catalog:",
"ecosystem": "npm"
},
{
"name": "class-variance-authority",
"direct": true,
"version": "^0.7.1",
"ecosystem": "npm"
},
{
"name": "clsx",
"direct": true,
"version": "catalog:",
"ecosystem": "npm"
},
{
"name": "cmdk",
"direct": true,
"version": "^1.1.1",
"ecosystem": "npm"
},
{
"name": "date-fns",
"direct": true,
"version": "2.30.0",
"ecosystem": "npm"
},
{
"name": "dayjs",
"direct": true,
"version": "catalog:",
"ecosystem": "npm"
},
{
"name": "dompurify",
"direct": true,
"version": "3.4.12",
"ecosystem": "npm"
},
{
"name": "highlight.js",
"direct": true,
"version": "^11.11.1",
"ecosystem": "npm"
},
{
"name": "history",
"direct": true,
"version": "^5.3.0",
"ecosystem": "npm"
},
{
"name": "i18next",
"direct": true,
"version": "^23.16.8",
"ecosystem": "npm"
},
{
"name": "i18next",
"direct": true,
"version": "^26.3.4",
"ecosystem": "npm"
},
{
"name": "i18next-browser-languagedetector",
"direct": true,
"version": "^7.2.0",
"ecosystem": "npm"
},
{
"name": "i18next-browser-languagedetector",
"direct": true,
"version": "^8.2.1",
"ecosystem": "npm"
},
{
"name": "input-otp",
"direct": true,
"version": "^1.4.2",
"ecosystem": "npm"
},
{
"name": "katex",
"direct": true,
"version": "^0.16.22",
"ecosystem": "npm"
},
{
"name": "katex",
"direct": true,
"version": "^0.17.0",
"ecosystem": "npm"
},
{
"name": "lucide-react",
"direct": true,
"version": "^0.511.0",
"ecosystem": "npm"
},
{
"name": "lucide-react",
"direct": true,
"version": "^1.23.0",
"ecosystem": "npm"
},
{
"name": "marked",
"direct": true,
"version": "^18.0.5",
"ecosystem": "npm"
},
{
"name": "marked",
"direct": true,
"version": "^4.1.1",
"ecosystem": "npm"
},
{
"name": "mermaid",
"direct": true,
"version": "^11.6.0",
"ecosystem": "npm"
},
{
"name": "motion",
"direct": true,
"version": "^12.42.2",
"ecosystem": "npm"
},
{
"name": "nanoid",
"direct": true,
"version": "^5.1.16",
"ecosystem": "npm"
},
{
"name": "next-themes",
"direct": true,
"version": "^0.4.6",
"ecosystem": "npm"
},
{
"name": "qrcode.react",
"direct": true,
"version": "catalog:",
"ecosystem": "npm"
},
{
"name": "react",
"direct": true,
"version": "catalog:",
"ecosystem": "npm"
},
{
"name": "react-day-picker",
"direct": true,
"version": "^10.0.1",
"ecosystem": "npm"
},
{
"name": "react-dom",
"direct": true,
"version": "catalog:",
"ecosystem": "npm"
},
{
"name": "react-dropzone",
"direct": true,
"version": "^14.2.3",
"ecosystem": "npm"
},
{
"name": "react-fireworks",
"direct": true,
"version": "^1.0.4",
"ecosystem": "npm"
},
{
"name": "react-hook-form",
"direct": true,
"version": "^7.80.0",
"ecosystem": "npm"
},
{
"name": "react-i18next",
"direct": true,
"version": "^13.0.0",
"ecosystem": "npm"
},
{
"name": "react-i18next",
"direct": true,
"version": "^17.0.8",
"ecosystem": "npm"
},
{
"name": "react-icons",
"direct": true,
"version": "catalog:",
"ecosystem": "npm"
},
{
"name": "react-markdown",
"direct": true,
"version": "catalog:",
"ecosystem": "npm"
},
{
"name": "react-resizable-panels",
"direct": true,
"version": "^4.12.0",
"ecosystem": "npm"
},
{
"name": "react-router-dom",
"direct": true,
"version": "^6.3.0",
"ecosystem": "npm"
},
{
"name": "react-telegram-login",
"direct": true,
"version": "^1.1.2",
"ecosystem": "npm"
},
{
"name": "react-toastify",
"direct": true,
"version": "^9.0.8",
"ecosystem": "npm"
},
{
"name": "react-top-loading-bar",
"direct": true,
"version": "^3.0.2",
"ecosystem": "npm"
},
{
"name": "react-turnstile",
"direct": true,
"version": "^1.0.5",
"ecosystem": "npm"
},
{
"name": "recharts",
"direct": true,
"version": "3.9.1",
"ecosystem": "npm"
},
{
"name": "rehype-highlight",
"direct": true,
"version": "^7.0.2",
"ecosystem": "npm"
},
{
"name": "rehype-katex",
"direct": true,
"version": "^7.0.1",
"ecosystem": "npm"
},
{
"name": "remark-breaks",
"direct": true,
"version": "^4.0.0",
"ecosystem": "npm"
},
{
"name": "remark-gfm",
"direct": true,
"version": "catalog:",
"ecosystem": "npm"
},
{
"name": "remark-math",
"direct": true,
"version": "^6.0.0",
"ecosystem": "npm"
},
{
"name": "shiki",
"direct": true,
"version": "^4.3.0",
"ecosystem": "npm"
},
{
"name": "sonner",
"direct": true,
"version": "^2.0.7",
"ecosystem": "npm"
},
{
"name": "sse.js",
"direct": true,
"version": "catalog:",
"ecosystem": "npm"
},
{
"name": "stream-markdown-parser",
"direct": true,
"version": "^1.1.3",
"ecosystem": "npm"
},
{
"name": "tailwind-merge",
"direct": true,
"version": "^3.6.0",
"ecosystem": "npm"
},
{
"name": "tailwindcss",
"direct": true,
"version": "^3",
"ecosystem": "npm"
},
{
"name": "tailwindcss",
"direct": true,
"version": "^4.3.2",
"ecosystem": "npm"
},
{
"name": "tokenlens",
"direct": true,
"version": "^1.3.1",
"ecosystem": "npm"
},
{
"name": "tw-animate-css",
"direct": true,
"version": "^1.4.0",
"ecosystem": "npm"
},
{
"name": "unist-util-visit",
"direct": true,
"version": "^5.0.0",
"ecosystem": "npm"
},
{
"name": "use-debounce",
"direct": true,
"version": "^10.0.4",
"ecosystem": "npm"
},
{
"name": "use-stick-to-bottom",
"direct": true,
"version": "^1.1.6",
"ecosystem": "npm"
},
{
"name": "vaul",
"direct": true,
"version": "^1.1.2",
"ecosystem": "npm"
},
{
"name": "zod",
"direct": true,
"version": "^4.4.3",
"ecosystem": "npm"
},
{
"name": "zustand",
"direct": true,
"version": "^5.0.14",
"ecosystem": "npm"
},
{
"name": "github.com/anknown/darts",
"direct": false,
"version": "v0.0.0-20151216065714-83ff685239e6",
"ecosystem": "go"
},
{
"name": "github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream",
"direct": false,
"version": "v1.7.8",
"ecosystem": "go"
},
{
"name": "github.com/aws/aws-sdk-go-v2/internal/configsources",
"direct": false,
"version": "v1.4.21",
"ecosystem": "go"
},
{
"name": "github.com/aws/aws-sdk-go-v2/internal/endpoints/v2",
"direct": false,
"version": "v2.7.21",
"ecosystem": "go"
},
{
"name": "github.com/beorn7/perks",
"direct": false,
"version": "v1.0.1",
"ecosystem": "go"
},
{
"name": "github.com/bmatcuk/doublestar/v4",
"direct": false,
"version": "v4.6.1",
"ecosystem": "go"
},
{
"name": "github.com/boombuler/barcode",
"direct": false,
"version": "v1.1.0",
"ecosystem": "go"
},
{
"name": "github.com/bytedance/sonic",
"direct": false,
"version": "v1.14.1",
"ecosystem": "go"
},
{
"name": "github.com/bytedance/sonic/loader",
"direct": false,
"version": "v0.3.0",
"ecosystem": "go"
},
{
"name": "github.com/casbin/govaluate",
"direct": false,
"version": "v1.10.0",
"ecosystem": "go"
},
{
"name": "github.com/cespare/xxhash/v2",
"direct": false,
"version": "v2.3.0",
"ecosystem": "go"
},
{
"name": "github.com/clickhouse/ch-go",
"direct": false,
"version": "v0.65.0",
"ecosystem": "go"
},
{
"name": "github.com/clickhouse/clickhouse-go/v2",
"direct": false,
"version": "v2.32.0",
"ecosystem": "go"
},
{
"name": "github.com/cloudwego/base64x",
"direct": false,
"version": "v0.1.6",
"ecosystem": "go"
},
{
"name": "github.com/davecgh/go-spew",
"direct": false,
"version": "v1.1.2-0.20180830191138-d8f796af33cc",
"ecosystem": "go"
},
{
"name": "github.com/dgryski/go-rendezvous",
"direct": false,
"version": "v0.0.0-20200823014737-9f7001d12a5f",
"ecosystem": "go"
},
{
"name": "github.com/dlclark/regexp2",
"direct": false,
"version": "v1.11.5",
"ecosystem": "go"
},
{
"name": "github.com/dmitriyvtitov/size",
"direct": false,
"version": "v1.5.0",
"ecosystem": "go"
},
{
"name": "github.com/dustin/go-humanize",
"direct": false,
"version": "v1.0.1",
"ecosystem": "go"
},
{
"name": "github.com/fxamacker/cbor/v2",
"direct": false,
"version": "v2.9.0",
"ecosystem": "go"
},
{
"name": "github.com/gabriel-vasile/mimetype",
"direct": false,
"version": "v1.4.3",
"ecosystem": "go"
},
{
"name": "github.com/gin-contrib/sse",
"direct": false,
"version": "v0.1.0",
"ecosystem": "go"
},
{
"name": "github.com/glebarez/go-sqlite",
"direct": false,
"version": "v1.21.2",
"ecosystem": "go"
},
{
"name": "github.com/go-audio/audio",
"direct": false,
"version": "v1.0.0",
"ecosystem": "go"
},
{
"name": "github.com/go-audio/riff",
"direct": false,
"version": "v1.0.0",
"ecosystem": "go"
},
{
"name": "github.com/go-faster/city",
"direct": false,
"version": "v1.0.1",
"ecosystem": "go"
},
{
"name": "github.com/go-faster/errors",
"direct": false,
"version": "v0.7.1",
"ecosystem": "go"
},
{
"name": "github.com/go-ole/go-ole",
"direct": false,
"version": "v1.2.6",
"ecosystem": "go"
},
{
"name": "github.com/go-playground/locales",
"direct": false,
"version": "v0.14.1",
"ecosystem": "go"
},
{
"name": "github.com/go-playground/universal-translator",
"direct": false,
"version": "v0.18.1",
"ecosystem": "go"
},
{
"name": "github.com/go-sql-driver/mysql",
"direct": false,
"version": "v1.7.0",
"ecosystem": "go"
},
{
"name": "github.com/go-webauthn/x",
"direct": false,
"version": "v0.1.25",
"ecosystem": "go"
},
{
"name": "github.com/goccy/go-json",
"direct": false,
"version": "v0.10.2",
"ecosystem": "go"
},
{
"name": "github.com/google/go-tpm",
"direct": false,
"version": "v0.9.5",
"ecosystem": "go"
},
{
"name": "github.com/gorilla/context",
"direct": false,
"version": "v1.1.1",
"ecosystem": "go"
},
{
"name": "github.com/gorilla/securecookie",
"direct": false,
"version": "v1.1.1",
"ecosystem": "go"
},
{
"name": "github.com/gorilla/sessions",
"direct": false,
"version": "v1.2.1",
"ecosystem": "go"
},
{
"name": "github.com/grafana/pyroscope-go/godeltaprof",
"direct": false,
"version": "v0.1.9",
"ecosystem": "go"
},
{
"name": "github.com/hashicorp/go-version",
"direct": false,
"version": "v1.7.0",
"ecosystem": "go"
},
{
"name": "github.com/icza/bitio",
"direct": false,
"version": "v1.1.0",
"ecosystem": "go"
},
{
"name": "github.com/jackc/pgpassfile",
"direct": false,
"version": "v1.0.0",
"ecosystem": "go"
},
{
"name": "github.com/jackc/pgservicefile",
"direct": false,
"version": "v0.0.0-20240606120523-5a60cdf6a761",
"ecosystem": "go"
},
{
"name": "github.com/jackc/pgx/v5",
"direct": false,
"version": "v5.9.2",
"ecosystem": "go"
},
{
"name": "github.com/jackc/puddle/v2",
"direct": false,
"version": "v2.2.2",
"ecosystem": "go"
},
{
"name": "github.com/jfreymuth/vorbis",
"direct": false,
"version": "v1.0.2",
"ecosystem": "go"
},
{
"name": "github.com/jinzhu/inflection",
"direct": false,
"version": "v1.0.0",
"ecosystem": "go"
},
{
"name": "github.com/jinzhu/now",
"direct": false,
"version": "v1.1.5",
"ecosystem": "go"
},
{
"name": "github.com/json-iterator/go",
"direct": false,
"version": "v1.1.12",
"ecosystem": "go"
},
{
"name": "github.com/klauspost/compress",
"direct": false,
"version": "v1.18.0",
"ecosystem": "go"
},
{
"name": "github.com/klauspost/cpuid/v2",
"direct": false,
"version": "v2.3.0",
"ecosystem": "go"
},
{
"name": "github.com/leodido/go-urn",
"direct": false,
"version": "v1.4.0",
"ecosystem": "go"
},
{
"name": "github.com/mattn/go-isatty",
"direct": false,
"version": "v0.0.20",
"ecosystem": "go"
},
{
"name": "github.com/mewkiz/pkg",
"direct": false,
"version": "v0.0.0-20250417130911-3f050ff8c56d",
"ecosystem": "go"
},
{
"name": "github.com/mewpkg/term",
"direct": false,
"version": "v0.0.0-20241026122259-37a80af23985",
"ecosystem": "go"
},
{
"name": "github.com/mitchellh/mapstructure",
"direct": false,
"version": "v1.5.0",
"ecosystem": "go"
},
{
"name": "github.com/modern-go/concurrent",
"direct": false,
"version": "v0.0.0-20180306012644-bacd9c7ef1dd",
"ecosystem": "go"
},
{
"name": "github.com/modern-go/reflect2",
"direct": false,
"version": "v1.0.2",
"ecosystem": "go"
},
{
"name": "github.com/munnerz/goautoneg",
"direct": false,
"version": "v0.0.0-20191010083416-a7dc8b61c822",
"ecosystem": "go"
},
{
"name": "github.com/ncruces/go-strftime",
"direct": false,
"version": "v0.1.9",
"ecosystem": "go"
},
{
"name": "github.com/paulmach/orb",
"direct": false,
"version": "v0.11.1",
"ecosystem": "go"
},
{
"name": "github.com/pelletier/go-toml/v2",
"direct": false,
"version": "v2.2.1",
"ecosystem": "go"
},
{
"name": "github.com/pierrec/lz4/v4",
"direct": false,
"version": "v4.1.22",
"ecosystem": "go"
},
{
"name": "github.com/pmezard/go-difflib",
"direct": false,
"version": "v1.0.1-0.20181226105442-5d4384ee4fb2",
"ecosystem": "go"
},
{
"name": "github.com/prometheus/client_golang",
"direct": false,
"version": "v1.22.0",
"ecosystem": "go"
},
{
"name": "github.com/prometheus/client_model",
"direct": false,
"version": "v0.6.1",
"ecosystem": "go"
},
{
"name": "github.com/prometheus/common",
"direct": false,
"version": "v0.62.0",
"ecosystem": "go"
},
{
"name": "github.com/prometheus/procfs",
"direct": false,
"version": "v0.15.1",
"ecosystem": "go"
},
{
"name": "github.com/remyoudompheng/bigfft",
"direct": false,
"version": "v0.0.0-20230129092748-24d4a6f8daec",
"ecosystem": "go"
},
{
"name": "github.com/rogpeppe/go-internal",
"direct": false,
"version": "v1.13.1",
"ecosystem": "go"
},
{
"name": "github.com/samber/go-singleflightx",
"direct": false,
"version": "v0.3.2",
"ecosystem": "go"
},
{
"name": "github.com/segmentio/asm",
"direct": false,
"version": "v1.2.0",
"ecosystem": "go"
},
{
"name": "github.com/tidwall/match",
"direct": false,
"version": "v1.1.1",
"ecosystem": "go"
},
{
"name": "github.com/tidwall/pretty",
"direct": false,
"version": "v1.2.0",
"ecosystem": "go"
},
{
"name": "github.com/tklauser/go-sysconf",
"direct": false,
"version": "v0.3.12",
"ecosystem": "go"
},
{
"name": "github.com/tklauser/numcpus",
"direct": false,
"version": "v0.6.1",
"ecosystem": "go"
},
{
"name": "github.com/twitchyliquid64/golang-asm",
"direct": false,
"version": "v0.15.1",
"ecosystem": "go"
},
{
"name": "github.com/ugorji/go/codec",
"direct": false,
"version": "v1.2.12",
"ecosystem": "go"
},
{
"name": "github.com/x448/float16",
"direct": false,
"version": "v0.8.4",
"ecosystem": "go"
},
{
"name": "github.com/yuin/gopher-lua",
"direct": false,
"version": "v1.1.1",
"ecosystem": "go"
},
{
"name": "github.com/yusufpapurcu/wmi",
"direct": false,
"version": "v1.2.3",
"ecosystem": "go"
},
{
"name": "go.opentelemetry.io/otel",
"direct": false,
"version": "v1.34.0",
"ecosystem": "go"
},
{
"name": "go.opentelemetry.io/otel/trace",
"direct": false,
"version": "v1.34.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/arch",
"direct": false,
"version": "v0.21.0",
"ecosystem": "go"
},
{
"name": "golang.org/x/exp",
"direct": false,
"version": "v0.0.0-20250620022241-b7579e27df2b",
"ecosystem": "go"
},
{
"name": "google.golang.org/protobuf",
"direct": false,
"version": "v1.36.5",
"ecosystem": "go"
},
{
"name": "modernc.org/libc",
"direct": false,
"version": "v1.66.10",
"ecosystem": "go"
},
{
"name": "modernc.org/mathutil",
"direct": false,
"version": "v1.7.1",
"ecosystem": "go"
},
{
"name": "modernc.org/memory",
"direct": false,
"version": "v1.11.0",
"ecosystem": "go"
},
{
"name": "modernc.org/sqlite",
"direct": false,
"version": "v1.40.1",
"ecosystem": "go"
},
{
"name": "7zip-bin",
"direct": false,
"version": "5.2.0",
"ecosystem": "npm"
},
{
"name": "@develar/schema-utils",
"direct": false,
"version": "2.6.5",
"ecosystem": "npm"
},
{
"name": "@electron/asar",
"direct": false,
"version": "3.4.1",
"ecosystem": "npm"
},
{
"name": "@electron/fuses",
"direct": false,
"version": "1.8.0",
"ecosystem": "npm"
},
{
"name": "@electron/get",
"direct": false,
"version": "2.0.3",
"ecosystem": "npm"
},
{
"name": "@electron/get",
"direct": false,
"version": "3.1.0",
"ecosystem": "npm"
},
{
"name": "@electron/notarize",
"direct": false,
"version": "2.5.0",
"ecosystem": "npm"
},
{
"name": "@electron/osx-sign",
"direct": false,
"version": "1.3.3",
"ecosystem": "npm"
},
{
"name": "@electron/rebuild",
"direct": false,
"version": "4.0.3",
"ecosystem": "npm"
},
{
"name": "@electron/universal",
"direct": false,
"version": "2.0.3",
"ecosystem": "npm"
},
{
"name": "@electron/windows-sign",
"direct": false,
"version": "1.2.2",
"ecosystem": "npm"
},
{
"name": "@isaacs/cliui",
"direct": false,
"version": "8.0.2",
"ecosystem": "npm"
},
{
"name": "@isaacs/cliui",
"direct": false,
"version": "9.0.0",
"ecosystem": "npm"
},
{
"name": "@isaacs/fs-minipass",
"direct": false,
"version": "4.0.1",
"ecosystem": "npm"
},
{
"name": "@malept/cross-spawn-promise",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "@malept/flatpak-bundler",
"direct": false,
"version": "0.4.0",
"ecosystem": "npm"
},
{
"name": "@npmcli/agent",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "@npmcli/fs",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "@pkgjs/parseargs",
"direct": false,
"version": "0.11.0",
"ecosystem": "npm"
},
{
"name": "@rsbuild/core",
"direct": false,
"version": "^2.0.7",
"ecosystem": "npm"
},
{
"name": "@rsbuild/core",
"direct": false,
"version": "catalog:",
"ecosystem": "npm"
},
{
"name": "@rsbuild/plugin-react",
"direct": false,
"version": "^2.0.0",
"ecosystem": "npm"
},
{
"name": "@rsbuild/plugin-react",
"direct": false,
"version": "catalog:",
"ecosystem": "npm"
},
{
"name": "@rsbuild/plugin-tailwindcss",
"direct": false,
"version": "catalog:",
"ecosystem": "npm"
},
{
"name": "@sindresorhus/is",
"direct": false,
"version": "4.6.0",
"ecosystem": "npm"
},
{
"name": "@so1ve/prettier-config",
"direct": false,
"version": "^3.1.0",
"ecosystem": "npm"
},
{
"name": "@szmarczak/http-timer",
"direct": false,
"version": "4.0.6",
"ecosystem": "npm"
},
{
"name": "@tanstack/react-query-devtools",
"direct": false,
"version": "^5.101.2",
"ecosystem": "npm"
},
{
"name": "@tanstack/react-router-devtools",
"direct": false,
"version": "^1.167.0",
"ecosystem": "npm"
},
{
"name": "@tanstack/router-plugin",
"direct": false,
"version": "^1.168.19",
"ecosystem": "npm"
},
{
"name": "@types/cacheable-request",
"direct": false,
"version": "6.0.3",
"ecosystem": "npm"
},
{
"name": "@types/debug",
"direct": false,
"version": "4.1.12",
"ecosystem": "npm"
},
{
"name": "@types/fs-extra",
"direct": false,
"version": "9.0.13",
"ecosystem": "npm"
},
{
"name": "@types/http-cache-semantics",
"direct": false,
"version": "4.0.4",
"ecosystem": "npm"
},
{
"name": "@types/keyv",
"direct": false,
"version": "3.1.4",
"ecosystem": "npm"
},
{
"name": "@types/ms",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "@types/node",
"direct": false,
"version": "22.18.8",
"ecosystem": "npm"
},
{
"name": "@types/node",
"direct": false,
"version": "^26.1.0",
"ecosystem": "npm"
},
{
"name": "@types/plist",
"direct": false,
"version": "3.0.5",
"ecosystem": "npm"
},
{
"name": "@types/react",
"direct": false,
"version": "^19.2.17",
"ecosystem": "npm"
},
{
"name": "@types/react-dom",
"direct": false,
"version": "^19.2.3",
"ecosystem": "npm"
},
{
"name": "@types/responselike",
"direct": false,
"version": "1.0.3",
"ecosystem": "npm"
},
{
"name": "@types/verror",
"direct": false,
"version": "1.10.11",
"ecosystem": "npm"
},
{
"name": "@types/yauzl",
"direct": false,
"version": "2.10.3",
"ecosystem": "npm"
},
{
"name": "@typescript/native-preview",
"direct": false,
"version": "^7.0.0-dev.20260702.3",
"ecosystem": "npm"
},
{
"name": "@xmldom/xmldom",
"direct": false,
"version": "0.8.13",
"ecosystem": "npm"
},
{
"name": "@xyflow/react",
"direct": false,
"version": "^12.11.1",
"ecosystem": "npm"
},
{
"name": "abbrev",
"direct": false,
"version": "3.0.1",
"ecosystem": "npm"
},
{
"name": "agent-base",
"direct": false,
"version": "7.1.4",
"ecosystem": "npm"
},
{
"name": "ajv",
"direct": false,
"version": "6.15.0",
"ecosystem": "npm"
},
{
"name": "ajv-keywords",
"direct": false,
"version": "3.5.2",
"ecosystem": "npm"
},
{
"name": "ansi-regex",
"direct": false,
"version": "5.0.1",
"ecosystem": "npm"
},
{
"name": "ansi-regex",
"direct": false,
"version": "6.2.2",
"ecosystem": "npm"
},
{
"name": "ansi-styles",
"direct": false,
"version": "4.3.0",
"ecosystem": "npm"
},
{
"name": "ansi-styles",
"direct": false,
"version": "6.2.3",
"ecosystem": "npm"
},
{
"name": "app-builder-bin",
"direct": false,
"version": "5.0.0-alpha.12",
"ecosystem": "npm"
},
{
"name": "app-builder-lib",
"direct": false,
"version": "26.7.0",
"ecosystem": "npm"
},
{
"name": "argparse",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "assert-plus",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "astral-regex",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "async",
"direct": false,
"version": "3.2.6",
"ecosystem": "npm"
},
{
"name": "async-exit-hook",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "asynckit",
"direct": false,
"version": "0.4.0",
"ecosystem": "npm"
},
{
"name": "at-least-node",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "autoprefixer",
"direct": false,
"version": "^10.4.21",
"ecosystem": "npm"
},
{
"name": "balanced-match",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "balanced-match",
"direct": false,
"version": "4.0.2",
"ecosystem": "npm"
},
{
"name": "base64-js",
"direct": false,
"version": "1.5.1",
"ecosystem": "npm"
},
{
"name": "bl",
"direct": false,
"version": "4.1.0",
"ecosystem": "npm"
},
{
"name": "boolean",
"direct": false,
"version": "3.2.0",
"ecosystem": "npm"
},
{
"name": "brace-expansion",
"direct": false,
"version": "1.1.16",
"ecosystem": "npm"
},
{
"name": "brace-expansion",
"direct": false,
"version": "2.1.2",
"ecosystem": "npm"
},
{
"name": "brace-expansion",
"direct": false,
"version": "5.0.7",
"ecosystem": "npm"
},
{
"name": "buffer",
"direct": false,
"version": "5.7.1",
"ecosystem": "npm"
},
{
"name": "buffer-crc32",
"direct": false,
"version": "0.2.13",
"ecosystem": "npm"
},
{
"name": "buffer-from",
"direct": false,
"version": "1.1.2",
"ecosystem": "npm"
},
{
"name": "builder-util",
"direct": false,
"version": "26.4.1",
"ecosystem": "npm"
},
{
"name": "builder-util-runtime",
"direct": false,
"version": "9.5.1",
"ecosystem": "npm"
},
{
"name": "cacache",
"direct": false,
"version": "19.0.1",
"ecosystem": "npm"
},
{
"name": "cacheable-lookup",
"direct": false,
"version": "5.0.4",
"ecosystem": "npm"
},
{
"name": "cacheable-request",
"direct": false,
"version": "7.0.4",
"ecosystem": "npm"
},
{
"name": "call-bind-apply-helpers",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "chalk",
"direct": false,
"version": "4.1.2",
"ecosystem": "npm"
},
{
"name": "chownr",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "chromium-pickle-js",
"direct": false,
"version": "0.2.0",
"ecosystem": "npm"
},
{
"name": "ci-info",
"direct": false,
"version": "4.3.1",
"ecosystem": "npm"
},
{
"name": "ci-info",
"direct": false,
"version": "4.4.0",
"ecosystem": "npm"
},
{
"name": "cli-cursor",
"direct": false,
"version": "3.1.0",
"ecosystem": "npm"
},
{
"name": "cli-spinners",
"direct": false,
"version": "2.9.2",
"ecosystem": "npm"
},
{
"name": "cli-truncate",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "cliui",
"direct": false,
"version": "8.0.1",
"ecosystem": "npm"
},
{
"name": "clone",
"direct": false,
"version": "1.0.4",
"ecosystem": "npm"
},
{
"name": "clone-response",
"direct": false,
"version": "1.0.3",
"ecosystem": "npm"
},
{
"name": "color-convert",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "color-name",
"direct": false,
"version": "1.1.4",
"ecosystem": "npm"
},
{
"name": "combined-stream",
"direct": false,
"version": "1.0.8",
"ecosystem": "npm"
},
{
"name": "commander",
"direct": false,
"version": "5.1.0",
"ecosystem": "npm"
},
{
"name": "commander",
"direct": false,
"version": "9.5.0",
"ecosystem": "npm"
},
{
"name": "compare-version",
"direct": false,
"version": "0.1.2",
"ecosystem": "npm"
},
{
"name": "concat-map",
"direct": false,
"version": "0.0.1",
"ecosystem": "npm"
},
{
"name": "core-util-is",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "crc",
"direct": false,
"version": "3.8.0",
"ecosystem": "npm"
},
{
"name": "cross-dirname",
"direct": false,
"version": "0.1.0",
"ecosystem": "npm"
},
{
"name": "cross-env",
"direct": false,
"version": "7.0.3",
"ecosystem": "npm"
},
{
"name": "cross-spawn",
"direct": false,
"version": "7.0.6",
"ecosystem": "npm"
},
{
"name": "debug",
"direct": false,
"version": "4.4.3",
"ecosystem": "npm"
},
{
"name": "decompress-response",
"direct": false,
"version": "6.0.0",
"ecosystem": "npm"
},
{
"name": "defaults",
"direct": false,
"version": "1.0.4",
"ecosystem": "npm"
},
{
"name": "defer-to-connect",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "define-data-property",
"direct": false,
"version": "1.1.4",
"ecosystem": "npm"
},
{
"name": "define-properties",
"direct": false,
"version": "1.2.1",
"ecosystem": "npm"
},
{
"name": "delayed-stream",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "detect-libc",
"direct": false,
"version": "2.1.2",
"ecosystem": "npm"
},
{
"name": "detect-node",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "dir-compare",
"direct": false,
"version": "4.2.0",
"ecosystem": "npm"
},
{
"name": "dmg-builder",
"direct": false,
"version": "26.7.0",
"ecosystem": "npm"
},
{
"name": "dmg-license",
"direct": false,
"version": "1.0.11",
"ecosystem": "npm"
},
{
"name": "dotenv",
"direct": false,
"version": "16.6.1",
"ecosystem": "npm"
},
{
"name": "dotenv-expand",
"direct": false,
"version": "11.0.7",
"ecosystem": "npm"
},
{
"name": "dunder-proto",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "eastasianwidth",
"direct": false,
"version": "0.2.0",
"ecosystem": "npm"
},
{
"name": "ejs",
"direct": false,
"version": "3.1.10",
"ecosystem": "npm"
},
{
"name": "electron",
"direct": false,
"version": "39.8.5",
"ecosystem": "npm"
},
{
"name": "electron-builder",
"direct": false,
"version": "26.7.0",
"ecosystem": "npm"
},
{
"name": "electron-builder-squirrel-windows",
"direct": false,
"version": "26.7.0",
"ecosystem": "npm"
},
{
"name": "electron-publish",
"direct": false,
"version": "26.6.0",
"ecosystem": "npm"
},
{
"name": "electron-winstaller",
"direct": false,
"version": "5.4.0",
"ecosystem": "npm"
},
{
"name": "embla-carousel-react",
"direct": false,
"version": "^8.6.0",
"ecosystem": "npm"
},
{
"name": "emoji-regex",
"direct": false,
"version": "8.0.0",
"ecosystem": "npm"
},
{
"name": "emoji-regex",
"direct": false,
"version": "9.2.2",
"ecosystem": "npm"
},
{
"name": "encoding",
"direct": false,
"version": "0.1.13",
"ecosystem": "npm"
},
{
"name": "end-of-stream",
"direct": false,
"version": "1.4.5",
"ecosystem": "npm"
},
{
"name": "env-paths",
"direct": false,
"version": "2.2.1",
"ecosystem": "npm"
},
{
"name": "err-code",
"direct": false,
"version": "2.0.3",
"ecosystem": "npm"
},
{
"name": "es-define-property",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "es-errors",
"direct": false,
"version": "1.3.0",
"ecosystem": "npm"
},
{
"name": "es-object-atoms",
"direct": false,
"version": "1.1.1",
"ecosystem": "npm"
},
{
"name": "es-set-tostringtag",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "es6-error",
"direct": false,
"version": "4.1.1",
"ecosystem": "npm"
},
{
"name": "escalade",
"direct": false,
"version": "3.2.0",
"ecosystem": "npm"
},
{
"name": "escape-string-regexp",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "eslint",
"direct": false,
"version": "8.57.1",
"ecosystem": "npm"
},
{
"name": "eslint-plugin-header",
"direct": false,
"version": "^3.1.1",
"ecosystem": "npm"
},
{
"name": "eslint-plugin-react-hooks",
"direct": false,
"version": "^5.2.0",
"ecosystem": "npm"
},
{
"name": "exponential-backoff",
"direct": false,
"version": "3.1.3",
"ecosystem": "npm"
},
{
"name": "extract-zip",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "extsprintf",
"direct": false,
"version": "1.4.1",
"ecosystem": "npm"
},
{
"name": "fast-deep-equal",
"direct": false,
"version": "3.1.3",
"ecosystem": "npm"
},
{
"name": "fast-json-stable-stringify",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "fd-slicer",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "fdir",
"direct": false,
"version": "6.5.0",
"ecosystem": "npm"
},
{
"name": "filelist",
"direct": false,
"version": "1.0.4",
"ecosystem": "npm"
},
{
"name": "foreground-child",
"direct": false,
"version": "3.3.1",
"ecosystem": "npm"
},
{
"name": "form-data",
"direct": false,
"version": "4.0.6",
"ecosystem": "npm"
},
{
"name": "fs-extra",
"direct": false,
"version": "10.1.0",
"ecosystem": "npm"
},
{
"name": "fs-extra",
"direct": false,
"version": "11.3.3",
"ecosystem": "npm"
},
{
"name": "fs-extra",
"direct": false,
"version": "7.0.1",
"ecosystem": "npm"
},
{
"name": "fs-extra",
"direct": false,
"version": "8.1.0",
"ecosystem": "npm"
},
{
"name": "fs-extra",
"direct": false,
"version": "9.1.0",
"ecosystem": "npm"
},
{
"name": "fs-minipass",
"direct": false,
"version": "3.0.3",
"ecosystem": "npm"
},
{
"name": "fs.realpath",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "function-bind",
"direct": false,
"version": "1.1.2",
"ecosystem": "npm"
},
{
"name": "get-caller-file",
"direct": false,
"version": "2.0.5",
"ecosystem": "npm"
},
{
"name": "get-intrinsic",
"direct": false,
"version": "1.3.0",
"ecosystem": "npm"
},
{
"name": "get-proto",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "get-stream",
"direct": false,
"version": "5.2.0",
"ecosystem": "npm"
},
{
"name": "glob",
"direct": false,
"version": "10.5.0",
"ecosystem": "npm"
},
{
"name": "glob",
"direct": false,
"version": "7.2.3",
"ecosystem": "npm"
},
{
"name": "global-agent",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "globalthis",
"direct": false,
"version": "1.0.4",
"ecosystem": "npm"
},
{
"name": "gopd",
"direct": false,
"version": "1.2.0",
"ecosystem": "npm"
},
{
"name": "got",
"direct": false,
"version": "11.8.6",
"ecosystem": "npm"
},
{
"name": "graceful-fs",
"direct": false,
"version": "4.2.11",
"ecosystem": "npm"
},
{
"name": "has-flag",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "has-property-descriptors",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "has-symbols",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "has-tostringtag",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "hasown",
"direct": false,
"version": "2.0.4",
"ecosystem": "npm"
},
{
"name": "hosted-git-info",
"direct": false,
"version": "4.1.0",
"ecosystem": "npm"
},
{
"name": "http-cache-semantics",
"direct": false,
"version": "4.2.0",
"ecosystem": "npm"
},
{
"name": "http-proxy-agent",
"direct": false,
"version": "7.0.2",
"ecosystem": "npm"
},
{
"name": "http2-wrapper",
"direct": false,
"version": "1.0.3",
"ecosystem": "npm"
},
{
"name": "https-proxy-agent",
"direct": false,
"version": "7.0.6",
"ecosystem": "npm"
},
{
"name": "i18next-cli",
"direct": false,
"version": "^1.66.2",
"ecosystem": "npm"
},
{
"name": "iconv-corefoundation",
"direct": false,
"version": "1.1.7",
"ecosystem": "npm"
},
{
"name": "iconv-lite",
"direct": false,
"version": "0.6.3",
"ecosystem": "npm"
},
{
"name": "ieee754",
"direct": false,
"version": "1.2.1",
"ecosystem": "npm"
},
{
"name": "imurmurhash",
"direct": false,
"version": "0.1.4",
"ecosystem": "npm"
},
{
"name": "inflight",
"direct": false,
"version": "1.0.6",
"ecosystem": "npm"
},
{
"name": "inherits",
"direct": false,
"version": "2.0.4",
"ecosystem": "npm"
},
{
"name": "ip-address",
"direct": false,
"version": "10.2.0",
"ecosystem": "npm"
},
{
"name": "is-fullwidth-code-point",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "is-interactive",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "is-unicode-supported",
"direct": false,
"version": "0.1.0",
"ecosystem": "npm"
},
{
"name": "isbinaryfile",
"direct": false,
"version": "4.0.10",
"ecosystem": "npm"
},
{
"name": "isbinaryfile",
"direct": false,
"version": "5.0.7",
"ecosystem": "npm"
},
{
"name": "isexe",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "isexe",
"direct": false,
"version": "3.1.5",
"ecosystem": "npm"
},
{
"name": "jackspeak",
"direct": false,
"version": "3.4.3",
"ecosystem": "npm"
},
{
"name": "jackspeak",
"direct": false,
"version": "4.2.3",
"ecosystem": "npm"
},
{
"name": "jake",
"direct": false,
"version": "10.9.4",
"ecosystem": "npm"
},
{
"name": "jiti",
"direct": false,
"version": "2.6.1",
"ecosystem": "npm"
},
{
"name": "js-yaml",
"direct": false,
"version": "4.3.0",
"ecosystem": "npm"
},
{
"name": "json-buffer",
"direct": false,
"version": "3.0.1",
"ecosystem": "npm"
},
{
"name": "json-schema-traverse",
"direct": false,
"version": "0.4.1",
"ecosystem": "npm"
},
{
"name": "json-stringify-safe",
"direct": false,
"version": "5.0.1",
"ecosystem": "npm"
},
{
"name": "json5",
"direct": false,
"version": "2.2.3",
"ecosystem": "npm"
},
{
"name": "jsonfile",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "jsonfile",
"direct": false,
"version": "6.2.0",
"ecosystem": "npm"
},
{
"name": "keyv",
"direct": false,
"version": "4.5.4",
"ecosystem": "npm"
},
{
"name": "knip",
"direct": false,
"version": "^6.24.0",
"ecosystem": "npm"
},
{
"name": "lazy-val",
"direct": false,
"version": "1.0.5",
"ecosystem": "npm"
},
{
"name": "lodash",
"direct": false,
"version": "4.18.1",
"ecosystem": "npm"
},
{
"name": "log-symbols",
"direct": false,
"version": "4.1.0",
"ecosystem": "npm"
},
{
"name": "lowercase-keys",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "lru-cache",
"direct": false,
"version": "10.4.3",
"ecosystem": "npm"
},
{
"name": "lru-cache",
"direct": false,
"version": "6.0.0",
"ecosystem": "npm"
},
{
"name": "make-fetch-happen",
"direct": false,
"version": "14.0.3",
"ecosystem": "npm"
},
{
"name": "matcher",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "math-intrinsics",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "mime",
"direct": false,
"version": "2.6.0",
"ecosystem": "npm"
},
{
"name": "mime-db",
"direct": false,
"version": "1.52.0",
"ecosystem": "npm"
},
{
"name": "mime-types",
"direct": false,
"version": "2.1.35",
"ecosystem": "npm"
},
{
"name": "mimic-fn",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "mimic-response",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "mimic-response",
"direct": false,
"version": "3.1.0",
"ecosystem": "npm"
},
{
"name": "minimatch",
"direct": false,
"version": "10.2.4",
"ecosystem": "npm"
},
{
"name": "minimatch",
"direct": false,
"version": "3.1.5",
"ecosystem": "npm"
},
{
"name": "minimatch",
"direct": false,
"version": "5.1.9",
"ecosystem": "npm"
},
{
"name": "minimatch",
"direct": false,
"version": "9.0.9",
"ecosystem": "npm"
},
{
"name": "minimist",
"direct": false,
"version": "1.2.8",
"ecosystem": "npm"
},
{
"name": "minipass",
"direct": false,
"version": "3.3.6",
"ecosystem": "npm"
},
{
"name": "minipass",
"direct": false,
"version": "7.1.2",
"ecosystem": "npm"
},
{
"name": "minipass-collect",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "minipass-fetch",
"direct": false,
"version": "4.0.1",
"ecosystem": "npm"
},
{
"name": "minipass-flush",
"direct": false,
"version": "1.0.5",
"ecosystem": "npm"
},
{
"name": "minipass-pipeline",
"direct": false,
"version": "1.2.4",
"ecosystem": "npm"
},
{
"name": "minipass-sized",
"direct": false,
"version": "1.0.3",
"ecosystem": "npm"
},
{
"name": "minizlib",
"direct": false,
"version": "3.1.0",
"ecosystem": "npm"
},
{
"name": "mkdirp",
"direct": false,
"version": "0.5.6",
"ecosystem": "npm"
},
{
"name": "ms",
"direct": false,
"version": "2.1.3",
"ecosystem": "npm"
},
{
"name": "negotiator",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "node-abi",
"direct": false,
"version": "4.26.0",
"ecosystem": "npm"
},
{
"name": "node-addon-api",
"direct": false,
"version": "1.7.2",
"ecosystem": "npm"
},
{
"name": "node-api-version",
"direct": false,
"version": "0.2.1",
"ecosystem": "npm"
},
{
"name": "node-gyp",
"direct": false,
"version": "11.5.0",
"ecosystem": "npm"
},
{
"name": "nopt",
"direct": false,
"version": "8.1.0",
"ecosystem": "npm"
},
{
"name": "normalize-url",
"direct": false,
"version": "6.1.0",
"ecosystem": "npm"
},
{
"name": "object-keys",
"direct": false,
"version": "1.1.1",
"ecosystem": "npm"
},
{
"name": "once",
"direct": false,
"version": "1.4.0",
"ecosystem": "npm"
},
{
"name": "onetime",
"direct": false,
"version": "5.1.2",
"ecosystem": "npm"
},
{
"name": "ora",
"direct": false,
"version": "5.4.1",
"ecosystem": "npm"
},
{
"name": "oxfmt",
"direct": false,
"version": "catalog:",
"ecosystem": "npm"
},
{
"name": "oxlint",
"direct": false,
"version": "catalog:",
"ecosystem": "npm"
},
{
"name": "p-cancelable",
"direct": false,
"version": "2.1.1",
"ecosystem": "npm"
},
{
"name": "p-limit",
"direct": false,
"version": "3.1.0",
"ecosystem": "npm"
},
{
"name": "p-map",
"direct": false,
"version": "7.0.4",
"ecosystem": "npm"
},
{
"name": "package-json-from-dist",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "path-is-absolute",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "path-key",
"direct": false,
"version": "3.1.1",
"ecosystem": "npm"
},
{
"name": "path-scurry",
"direct": false,
"version": "1.11.1",
"ecosystem": "npm"
},
{
"name": "pe-library",
"direct": false,
"version": "0.4.1",
"ecosystem": "npm"
},
{
"name": "pend",
"direct": false,
"version": "1.2.0",
"ecosystem": "npm"
},
{
"name": "picocolors",
"direct": false,
"version": "1.1.1",
"ecosystem": "npm"
},
{
"name": "picomatch",
"direct": false,
"version": "4.0.4",
"ecosystem": "npm"
},
{
"name": "plist",
"direct": false,
"version": "3.1.0",
"ecosystem": "npm"
},
{
"name": "postcss",
"direct": false,
"version": "^8.5.3",
"ecosystem": "npm"
},
{
"name": "postject",
"direct": false,
"version": "1.0.0-alpha.6",
"ecosystem": "npm"
},
{
"name": "prettier",
"direct": false,
"version": "catalog:",
"ecosystem": "npm"
},
{
"name": "proc-log",
"direct": false,
"version": "5.0.0",
"ecosystem": "npm"
},
{
"name": "progress",
"direct": false,
"version": "2.0.3",
"ecosystem": "npm"
},
{
"name": "promise-retry",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "prop-types",
"direct": false,
"version": "^15.8.1",
"ecosystem": "npm"
},
{
"name": "proper-lockfile",
"direct": false,
"version": "4.1.2",
"ecosystem": "npm"
},
{
"name": "pump",
"direct": false,
"version": "3.0.3",
"ecosystem": "npm"
},
{
"name": "punycode",
"direct": false,
"version": "2.3.1",
"ecosystem": "npm"
},
{
"name": "quick-lru",
"direct": false,
"version": "5.1.1",
"ecosystem": "npm"
},
{
"name": "read-binary-file-arch",
"direct": false,
"version": "1.0.6",
"ecosystem": "npm"
},
{
"name": "readable-stream",
"direct": false,
"version": "3.6.2",
"ecosystem": "npm"
},
{
"name": "require-directory",
"direct": false,
"version": "2.1.1",
"ecosystem": "npm"
},
{
"name": "resedit",
"direct": false,
"version": "1.7.2",
"ecosystem": "npm"
},
{
"name": "resolve-alpn",
"direct": false,
"version": "1.2.1",
"ecosystem": "npm"
},
{
"name": "responselike",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "restore-cursor",
"direct": false,
"version": "3.1.0",
"ecosystem": "npm"
},
{
"name": "retry",
"direct": false,
"version": "0.12.0",
"ecosystem": "npm"
},
{
"name": "rimraf",
"direct": false,
"version": "2.6.3",
"ecosystem": "npm"
},
{
"name": "roarr",
"direct": false,
"version": "2.15.4",
"ecosystem": "npm"
},
{
"name": "safe-buffer",
"direct": false,
"version": "5.2.1",
"ecosystem": "npm"
},
{
"name": "safer-buffer",
"direct": false,
"version": "2.1.2",
"ecosystem": "npm"
},
{
"name": "sanitize-filename",
"direct": false,
"version": "1.6.3",
"ecosystem": "npm"
},
{
"name": "sax",
"direct": false,
"version": "1.4.4",
"ecosystem": "npm"
},
{
"name": "semver",
"direct": false,
"version": "5.7.2",
"ecosystem": "npm"
},
{
"name": "semver",
"direct": false,
"version": "6.3.1",
"ecosystem": "npm"
},
{
"name": "semver",
"direct": false,
"version": "7.7.2",
"ecosystem": "npm"
},
{
"name": "semver",
"direct": false,
"version": "7.7.4",
"ecosystem": "npm"
},
{
"name": "semver-compare",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "serialize-error",
"direct": false,
"version": "7.0.1",
"ecosystem": "npm"
},
{
"name": "shadcn",
"direct": false,
"version": "^4.13.1",
"ecosystem": "npm"
},
{
"name": "shebang-command",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "shebang-regex",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "signal-exit",
"direct": false,
"version": "3.0.7",
"ecosystem": "npm"
},
{
"name": "signal-exit",
"direct": false,
"version": "4.1.0",
"ecosystem": "npm"
},
{
"name": "simple-update-notifier",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "slice-ansi",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "smart-buffer",
"direct": false,
"version": "4.2.0",
"ecosystem": "npm"
},
{
"name": "socks",
"direct": false,
"version": "2.8.7",
"ecosystem": "npm"
},
{
"name": "socks-proxy-agent",
"direct": false,
"version": "8.0.5",
"ecosystem": "npm"
},
{
"name": "source-map",
"direct": false,
"version": "0.6.1",
"ecosystem": "npm"
},
{
"name": "source-map-support",
"direct": false,
"version": "0.5.21",
"ecosystem": "npm"
},
{
"name": "sprintf-js",
"direct": false,
"version": "1.1.3",
"ecosystem": "npm"
},
{
"name": "ssri",
"direct": false,
"version": "12.0.0",
"ecosystem": "npm"
},
{
"name": "stat-mode",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "string-width",
"direct": false,
"version": "4.2.3",
"ecosystem": "npm"
},
{
"name": "string-width",
"direct": false,
"version": "5.1.2",
"ecosystem": "npm"
},
{
"name": "string_decoder",
"direct": false,
"version": "1.3.0",
"ecosystem": "npm"
},
{
"name": "strip-ansi",
"direct": false,
"version": "6.0.1",
"ecosystem": "npm"
},
{
"name": "strip-ansi",
"direct": false,
"version": "7.1.2",
"ecosystem": "npm"
},
{
"name": "sumchecker",
"direct": false,
"version": "3.0.1",
"ecosystem": "npm"
},
{
"name": "supports-color",
"direct": false,
"version": "7.2.0",
"ecosystem": "npm"
},
{
"name": "tar",
"direct": false,
"version": "7.5.19",
"ecosystem": "npm"
},
{
"name": "temp",
"direct": false,
"version": "0.9.4",
"ecosystem": "npm"
},
{
"name": "temp-file",
"direct": false,
"version": "3.4.0",
"ecosystem": "npm"
},
{
"name": "tiny-async-pool",
"direct": false,
"version": "1.3.0",
"ecosystem": "npm"
},
{
"name": "tinyglobby",
"direct": false,
"version": "0.2.15",
"ecosystem": "npm"
},
{
"name": "tmp",
"direct": false,
"version": "0.2.7",
"ecosystem": "npm"
},
{
"name": "tmp-promise",
"direct": false,
"version": "3.0.3",
"ecosystem": "npm"
},
{
"name": "truncate-utf8-bytes",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "type-fest",
"direct": false,
"version": "0.13.1",
"ecosystem": "npm"
},
{
"name": "typescript",
"direct": false,
"version": "4.4.2",
"ecosystem": "npm"
},
{
"name": "undici-types",
"direct": false,
"version": "6.21.0",
"ecosystem": "npm"
},
{
"name": "unique-filename",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "unique-slug",
"direct": false,
"version": "5.0.0",
"ecosystem": "npm"
},
{
"name": "universalify",
"direct": false,
"version": "0.1.2",
"ecosystem": "npm"
},
{
"name": "universalify",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "uri-js",
"direct": false,
"version": "4.4.1",
"ecosystem": "npm"
},
{
"name": "utf8-byte-length",
"direct": false,
"version": "1.0.5",
"ecosystem": "npm"
},
{
"name": "util-deprecate",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "verror",
"direct": false,
"version": "1.10.1",
"ecosystem": "npm"
},
{
"name": "wcwidth",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "which",
"direct": false,
"version": "2.0.2",
"ecosystem": "npm"
},
{
"name": "which",
"direct": false,
"version": "5.0.0",
"ecosystem": "npm"
},
{
"name": "wrap-ansi",
"direct": false,
"version": "7.0.0",
"ecosystem": "npm"
},
{
"name": "wrap-ansi",
"direct": false,
"version": "8.1.0",
"ecosystem": "npm"
},
{
"name": "wrappy",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "xmlbuilder",
"direct": false,
"version": "15.1.1",
"ecosystem": "npm"
},
{
"name": "y18n",
"direct": false,
"version": "5.0.8",
"ecosystem": "npm"
},
{
"name": "yallist",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "yallist",
"direct": false,
"version": "5.0.0",
"ecosystem": "npm"
},
{
"name": "yargs",
"direct": false,
"version": "17.7.2",
"ecosystem": "npm"
},
{
"name": "yargs-parser",
"direct": false,
"version": "21.1.1",
"ecosystem": "npm"
},
{
"name": "yauzl",
"direct": false,
"version": "2.10.0",
"ecosystem": "npm"
},
{
"name": "yocto-queue",
"direct": false,
"version": "0.1.0",
"ecosystem": "npm"
}
],
"collected": true,
"truncated": false,
"total_count": 589,
"direct_count": 148,
"indirect_count": 441
}
},
"maintainership": {
"issues": {
"open_prs": 0,
"merged_prs": 39,
"open_issues": 0,
"closed_ratio": 1,
"closed_issues": 7,
"closed_unmerged_prs": 0
},
"bus_factor": 2,
"bot_contributors": 2,
"top_contributors": [
{
"type": "User",
"login": "Calcium-Ion",
"commits": 2779,
"avatar_url": "https://avatars.githubusercontent.com/u/61247483?v=4"
},
{
"type": "User",
"login": "seefs001",
"commits": 550,
"avatar_url": "https://avatars.githubusercontent.com/u/40468931?v=4"
},
{
"type": "User",
"login": "songquanpeng",
"commits": 509,
"avatar_url": "https://avatars.githubusercontent.com/u/39998050?v=4"
},
{
"type": "User",
"login": "t0ng7u",
"commits": 452,
"avatar_url": "https://avatars.githubusercontent.com/u/133845290?v=4"
},
{
"type": "User",
"login": "feitianbubu",
"commits": 191,
"avatar_url": "https://avatars.githubusercontent.com/u/6916415?v=4"
},
{
"type": "User",
"login": "creamlike1024",
"commits": 186,
"avatar_url": "https://avatars.githubusercontent.com/u/25699126?v=4"
},
{
"type": "User",
"login": "RedwindA",
"commits": 108,
"avatar_url": "https://avatars.githubusercontent.com/u/128586631?v=4"
},
{
"type": "User",
"login": "liulixin-lex",
"commits": 99,
"avatar_url": "https://avatars.githubusercontent.com/u/180751112?v=4"
},
{
"type": "User",
"login": "QuentinHsu",
"commits": 68,
"avatar_url": "https://avatars.githubusercontent.com/u/21162238?v=4"
},
{
"type": "User",
"login": "xyfacai",
"commits": 54,
"avatar_url": "https://avatars.githubusercontent.com/u/52985669?v=4"
}
],
"contributors_sampled": 98,
"top_contributor_share": 0.498
},
"quality_signals": {
"has_ci": true,
"has_tests": true,
"ci_workflows": [
"ci.yml",
"codeql.yml",
"docker-build.yml",
"docker-image-alpha.yml",
"docker-image-branch.yml",
"docker-image-nightly.yml",
"electron-build.yml",
"pr-check.yml",
"recover-v0.2.0.yml",
"release.yml",
"sync-to-gitee.yml"
],
"has_docs_dir": true,
"linter_configs": [
".eslintrc.cjs"
],
"has_editorconfig": true,
"has_linter_config": true,
"has_precommit_config": false
},
"security_signals": {
"lockfiles": [
"go.sum",
"package-lock.json"
],
"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": 3,
"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": "14 out of 14 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": 0,
"reason": "Found 0/18 approved changesets -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
},
{
"name": "Contributors",
"score": 10,
"reason": "project has 13 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": 0,
"reason": "project was created within the last 90 days. Please review its contents carefully",
"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": 10,
"reason": "all dependencies are pinned",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
},
{
"name": "SAST",
"score": 8,
"reason": "SAST tool detected but not 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": 0,
"reason": "Project has not signed or included provenance with any releases.",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
},
{
"name": "Token-Permissions",
"score": 5,
"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": 1,
"reason": "9 existing vulnerabilities detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
}
],
"commit": "8b42c4fa6fefe1f3da2c9e22834db23cfd7da0ee",
"ran_at": "2026-07-26T06:27:21Z",
"aggregate_score": 5.5,
"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-22T20:28:07Z",
"oldest_open_prs": [],
"last_merged_pr_at": "2026-07-22T19:34:33Z",
"ci_last_conclusion": "SUCCESS",
"oldest_open_issues": []
}
},
"config": {
"disabled_metrics": [],
"disabled_categories": [],
"disabled_components": {}
},
"source": {
"url": "https://github.com/liulixin-lex/xy-api",
"host": "github.com",
"name": "xy-api",
"owner": "liulixin-lex"
},
"metrics": {
"overall": {
"key": "overall",
"band": "moderate",
"name": "Overall health",
"note": null,
"notes": [],
"value": 59,
"inputs": {
"security": 56,
"vitality": 90,
"community": 12,
"governance": 57,
"engineering": 74
},
"components": []
},
"categories": [
{
"key": "vitality",
"band": "excellent",
"name": "Vitality",
"value": 90,
"weight": 0.22,
"metrics": [
{
"key": "development_activity",
"band": "excellent",
"name": "Development activity",
"note": null,
"notes": [],
"value": 90,
"inputs": {
"commits_last_year": 2623,
"human_commit_share": 0.99,
"days_since_last_push": 3,
"active_weeks_last_year": 52
},
"components": [
{
"key": "push_recency",
"name": "Push recency",
"detail": "last push 3 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "push_recency",
"params": {
"days": 3
}
}
],
"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": "2623 commits in the last year",
"points": 18,
"status": "met",
"details": [
{
"code": "commits_last_year",
"params": {
"count": 2623
}
}
],
"max_points": 18
},
{
"key": "openssf_scorecard_maintained",
"name": "OpenSSF Scorecard: Maintained",
"detail": "project was created within the last 90 days. Please review its contents carefully",
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
},
{
"key": "release_discipline",
"band": "excellent",
"name": "Release discipline",
"note": null,
"notes": [],
"value": 90,
"inputs": {
"releases_count": 26,
"latest_release_tag": "v0.2.2",
"releases_from_tags": false,
"days_since_latest_release": 3,
"mean_days_between_releases": 1.5
},
"components": [
{
"key": "ships_releases",
"name": "Ships releases",
"detail": "26 releases published",
"points": 27,
"status": "met",
"details": [
{
"code": "releases_published",
"params": {
"count": 26
}
}
],
"max_points": 27
},
{
"key": "release_recency",
"name": "Release recency",
"detail": "latest release 3 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "release_recency",
"params": {
"days": 3
}
}
],
"max_points": 36
},
{
"key": "release_cadence",
"name": "Release cadence",
"detail": "a release every ~1.5 days",
"points": 27,
"status": "met",
"details": [
{
"code": "release_cadence",
"params": {
"gap": 1.5
}
}
],
"max_points": 27
},
{
"key": "openssf_scorecard_signed_releases",
"name": "OpenSSF Scorecard: Signed-Releases",
"detail": "Project has not signed or included provenance with any releases.",
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
},
{
"key": "abandonment",
"band": "excellent",
"name": "Abandonment",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"cap": null,
"state": "unverified",
"guards": [],
"signals": [],
"red_flag": false,
"multiplier_pct": 100,
"declared_reason": null,
"unverified_reason": "repository_too_young",
"unanswered_open_prs": null,
"unanswered_open_issues": null,
"days_since_last_merged_pr": null,
"days_since_last_human_commit": null,
"days_since_last_human_commit_is_floor": false
},
"components": [
{
"key": "project_is_still_maintained",
"name": "Project is still maintained",
"detail": "maintenance record not established from the collected data",
"points": 100,
"status": "met",
"details": [
{
"code": "abandonment_unverified",
"params": {}
}
],
"max_points": 100
}
]
}
],
"description": "Is the project alive — is code being written and are releases shipping?"
},
{
"key": "community",
"band": "critical",
"name": "Community & Adoption",
"value": 12,
"weight": 0.18,
"metrics": [
{
"key": "popularity",
"band": "critical",
"name": "Popularity & adoption",
"note": null,
"notes": [],
"value": 1,
"inputs": {
"forks": 0,
"stars": 1,
"watchers": 0,
"growth_state": "unverified",
"growth_factor_pct": 100,
"growth_unverified_reason": "no_history"
},
"components": [
{
"key": "stars",
"name": "Stars",
"detail": "1 stars",
"points": 0,
"status": "missed",
"details": [
{
"code": "stars",
"params": {
"count": 1
}
}
],
"max_points": 60
},
{
"key": "forks",
"name": "Forks",
"detail": "0 forks",
"points": 0,
"status": "missed",
"details": [
{
"code": "forks",
"params": {
"count": 0
}
}
],
"max_points": 25
},
{
"key": "watchers",
"name": "Watchers",
"detail": "0 watchers",
"points": 0,
"status": "missed",
"details": [
{
"code": "watchers",
"params": {
"count": 0
}
}
],
"max_points": 15
}
]
},
{
"key": "community_health",
"band": "critical",
"name": "Community health",
"note": null,
"notes": [],
"value": 25,
"inputs": {
"has_readme": false,
"has_license": false,
"has_contributing": false,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": false
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 22.5
},
{
"key": "license",
"name": "License",
"detail": "recognized license (AGPL-3.0)",
"points": 22.5,
"status": "met",
"details": [
{
"code": "license_standard",
"params": {}
},
{
"code": "license_spdx",
"params": {
"spdx": "AGPL-3.0"
}
}
],
"max_points": 22.5
},
{
"key": "contributing_guide",
"name": "CONTRIBUTING guide",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 18
},
{
"key": "code_of_conduct",
"name": "Code of conduct",
"detail": null,
"points": 0,
"status": "missed",
"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": "moderate",
"name": "Sustainability & Governance",
"value": 57,
"weight": 0.24,
"metrics": [
{
"key": "maintainer_resilience",
"band": "moderate",
"name": "Maintainer resilience (bus factor)",
"note": null,
"notes": [],
"value": 60,
"inputs": {
"bus_factor": 2,
"contributors_sampled": 98,
"top_contributor_share": 0.498
},
"components": [
{
"key": "bus_factor",
"name": "Bus factor",
"detail": "2 contributor(s) cover half of all commits",
"points": 25.2,
"status": "partial",
"details": [
{
"code": "bus_factor",
"params": {
"count": 2
}
}
],
"max_points": 54
},
{
"key": "commit_distribution",
"name": "Commit distribution",
"detail": "top contributor authored 50% of commits",
"points": 11.3,
"status": "partial",
"details": [
{
"code": "top_contributor_share",
"params": {
"share": 50
}
}
],
"max_points": 22.5
},
{
"key": "contributor_breadth",
"name": "Contributor breadth",
"detail": "98 contributors",
"points": 13.5,
"status": "met",
"details": [
{
"code": "contributors_sampled",
"params": {
"count": 98
}
}
],
"max_points": 13.5
},
{
"key": "openssf_scorecard_contributors",
"name": "OpenSSF Scorecard: Contributors",
"detail": "project has 13 contributing companies or organizations",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
},
{
"key": "responsiveness",
"band": "excellent",
"name": "Issue & PR responsiveness",
"note": null,
"notes": [],
"value": 85,
"inputs": {
"merged_prs": 39,
"open_issues": 0,
"closed_issues": 7,
"issue_closed_ratio": 1,
"closed_unmerged_prs": 0
},
"components": [
{
"key": "issue_resolution",
"name": "Issue resolution",
"detail": "100% of issues closed",
"points": 46.8,
"status": "met",
"details": [
{
"code": "issues_closed_share",
"params": {
"share": 100
}
}
],
"max_points": 46.75
},
{
"key": "pr_acceptance",
"name": "PR acceptance",
"detail": "39/39 decided PRs merged",
"points": 38.2,
"status": "met",
"details": [
{
"code": "decided_prs_merged",
"params": {
"merged": 39,
"decided": 39
}
}
],
"max_points": 38.25
},
{
"key": "openssf_scorecard_code_review",
"name": "OpenSSF Scorecard: Code-Review",
"detail": "Found 0/18 approved changesets -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
}
]
},
{
"key": "stewardship",
"band": "critical",
"name": "Ownership & stewardship",
"note": "Excluded from scoring (no data or not applicable): Verified domain. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"verified_domain"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 24,
"inputs": {
"followers": 0,
"owner_type": "User",
"is_verified": null,
"owner_login": "liulixin-lex",
"public_repos": 4,
"account_age_days": 686
},
"components": [
{
"key": "ownership_backing",
"name": "Ownership backing",
"detail": "personal (user) account",
"points": 10,
"status": "partial",
"details": [
{
"code": "owner_personal",
"params": {}
}
],
"max_points": 30
},
{
"key": "verified_domain",
"name": "Verified domain",
"detail": "not applicable to user accounts",
"points": 0,
"status": "excluded",
"details": [
{
"code": "not_applicable_to_user_accounts",
"params": {}
}
],
"max_points": 20
},
{
"key": "owner_reach",
"name": "Owner reach",
"detail": "0 followers of liulixin-lex",
"points": 0,
"status": "missed",
"details": [
{
"code": "owner_followers",
"params": {
"count": 0,
"login": "liulixin-lex"
}
}
],
"max_points": 25
},
{
"key": "track_record",
"name": "Track record",
"detail": "4 public repos, account ~1 yr old",
"points": 8.8,
"status": "partial",
"details": [
{
"code": "public_repos",
"params": {
"count": 4
}
},
{
"code": "account_age_years",
"params": {
"years": 1
}
}
],
"max_points": 25
}
]
}
],
"description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
},
{
"key": "engineering",
"band": "good",
"name": "Engineering Quality",
"value": 74,
"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": "11 workflow(s)",
"points": 24,
"status": "met",
"details": [
{
"code": "ci_workflows",
"params": {
"count": 11
}
}
],
"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.cjs",
"points": 16,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": ".eslintrc.cjs"
}
}
],
"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": "14 out of 14 merged PRs checked by a CI test -- score normalized to 10",
"points": 20,
"status": "met",
"details": [],
"max_points": 20
}
]
},
{
"key": "documentation",
"band": "moderate",
"name": "Documentation",
"note": null,
"notes": [],
"value": 50,
"inputs": {
"topics": [
"ai-gateway",
"api-proxy",
"golang",
"openai-api",
"react",
"self-hosted"
],
"has_wiki": false,
"homepage": "https://gguuai.com",
"has_readme": false,
"has_docs_dir": true,
"has_description": false
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 0,
"status": "missed",
"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": "https://gguuai.com",
"points": 15,
"status": "met",
"details": [],
"max_points": 15
},
{
"key": "repository_description",
"name": "Repository description",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
},
{
"key": "topics",
"name": "Topics",
"detail": "6 topics",
"points": 10,
"status": "met",
"details": [
{
"code": "topics_count",
"params": {
"count": 6
}
}
],
"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": 56,
"weight": 0.16,
"metrics": [
{
"key": "security_posture",
"band": "moderate",
"name": "Security posture",
"note": null,
"notes": [],
"value": 56,
"inputs": {
"source": "openssf_scorecard",
"checks_evaluated": 18,
"scorecard_version": "v5.5.0",
"checks_inconclusive": 0,
"scorecard_aggregate": 5.5
},
"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": 2.2,
"status": "partial",
"details": [],
"max_points": 7.5
},
{
"key": "ci_tests",
"name": "CI-Tests",
"detail": "14 out of 14 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 0/18 approved changesets -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "contributors",
"name": "Contributors",
"detail": "project has 13 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": "project was created within the last 90 days. Please review its contents carefully",
"points": 0,
"status": "missed",
"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": "all dependencies are pinned",
"points": 5,
"status": "met",
"details": [],
"max_points": 5
},
{
"key": "sast",
"name": "SAST",
"detail": "SAST tool detected but not run on all commits",
"points": 4,
"status": "partial",
"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": "Project has not signed or included provenance with any releases.",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "token_permissions",
"name": "Token-Permissions",
"detail": "detected GitHub workflow tokens with excessive permissions",
"points": 3.8,
"status": "partial",
"details": [],
"max_points": 7.5
},
{
"key": "vulnerabilities",
"name": "Vulnerabilities",
"detail": "9 existing vulnerabilities detected",
"points": 0.8,
"status": "partial",
"details": [],
"max_points": 7.5
}
]
},
{
"key": "dependency_advisories",
"band": "moderate",
"name": "Dependency advisories",
"note": "Excluded from scoring (no data or not applicable): Indirect dependencies free of known advisories. Remaining weights renormalized. Matched 495 resolved dependencies against OSV; 94 could not be assessed (no resolved version, an unsupported ecosystem, or beyond the reported package list). This repository publishes no package the index resolves, so the repository dependency graph was assessed instead. That graph mixes development and test pins with shipped dependencies, so only the declared runtime dependencies are scored; transitive findings are reported as context and excluded from the score. Reachability is not analyzed.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"indirect_dependencies_free_of_known_advisories"
]
}
},
{
"code": "weights_renormalized",
"params": {}
},
{
"code": "advisories_scope_repository",
"params": {
"assessed": 495
}
},
{
"code": "advisories_unassessed",
"params": {
"count": 94
}
},
{
"code": "advisories_repo_graph_caveat",
"params": {}
},
{
"code": "advisories_reachability",
"params": {}
}
],
"value": 57,
"inputs": {
"source": "osv",
"advisories": 31,
"affected_packages": 9,
"assessed_packages": 495,
"unassessed_packages": 94,
"affected_by_severity": "high 6, moderate 1, unknown 2",
"direct_affected_packages": 3
},
"components": [
{
"key": "direct_dependencies_free_of_known_advisories",
"name": "Direct dependencies free of known advisories",
"detail": "3 affected: axios catalog: (high 8.6), golang.org/x/crypto v0.52.0 (unknown), golang.org/x/net v0.55.0 (unknown)",
"points": 9.5,
"status": "partial",
"details": [
{
"code": "advisories_affected",
"params": {
"count": 3,
"packages": "axios catalog: (high 8.6), golang.org/x/crypto v0.52.0 (unknown), golang.org/x/net v0.55.0 (unknown)"
}
}
],
"max_points": 35
},
{
"key": "indirect_dependencies_free_of_known_advisories",
"name": "Indirect dependencies free of known advisories",
"detail": "transitive set not separable from development and test dependencies in this scope",
"points": 0,
"status": "excluded",
"details": [
{
"code": "advisories_scope_not_separable",
"params": {}
}
],
"max_points": 25
},
{
"key": "no_advisories_left_outstanding",
"name": "No advisories left outstanding",
"detail": "1 advisory-carrying package(s) unaddressed past 90 days; oldest published 2614 days ago",
"points": 32.9,
"status": "partial",
"details": [
{
"code": "advisories_stale",
"params": {
"days": 90,
"count": 1,
"oldest": 2614
}
}
],
"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": 495,
"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
}
]
},
{
"key": "high_risk_jurisdiction_exposure",
"band": "excellent",
"name": "High-Risk Jurisdiction Exposure",
"note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
"notes": [
{
"code": "jurisdiction_evidence_limits",
"params": {}
}
],
"value": 100,
"inputs": {
"meaning": "self-published location evidence; not nationality or citizenship",
"red_flag": false,
"exposures": [],
"policy_countries": [
"Russia",
"Iran",
"North Korea"
],
"review_only_matches": 0,
"assessed_self_published_locations": 5
},
"components": [
{
"key": "policy_exposure_multiplier",
"name": "Policy exposure multiplier",
"detail": "no confirmed policy-scope location match",
"points": 100,
"status": "met",
"details": [
{
"code": "jurisdiction_no_match",
"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": "good",
"name": "AI Readiness",
"value": 82,
"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.98,
"agent_instruction_files": [
"AGENTS.md",
"CLAUDE.md",
"web/default/AGENTS.md"
],
"agent_instruction_max_bytes": 15186
},
"components": [
{
"key": "agent_instructions",
"name": "Agent instructions",
"detail": "AGENTS.md, CLAUDE.md, web/default/AGENTS.md",
"points": 45,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "AGENTS.md, CLAUDE.md, web/default/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": "97 of 99 human commits state their intent (structured subject or explanatory body)",
"points": 40,
"status": "met",
"details": [
{
"code": "legible_history",
"params": {
"legible": 97,
"sampled": 99
}
}
],
"max_points": 40
}
]
},
{
"key": "ai_verify_loop",
"band": "excellent",
"name": "Verify loop (build / test / typecheck)",
"note": null,
"notes": [],
"value": 90,
"inputs": {
"has_nix": false,
"has_tests": true,
"lockfiles": [
"go.sum",
"package-lock.json"
],
"has_dockerfile": true,
"typed_language": true,
"bootstrap_files": [
"makefile"
],
"has_devcontainer": false,
"has_linter_config": true,
"typecheck_configs": [
"web/classic/jsconfig.json",
"web/default/tsconfig.json"
],
"agent_commit_share": 0,
"toolchain_manifests": [
"go.mod"
],
"dependency_bot_commit_share": 0.01
},
"components": [
{
"key": "one_command_bootstrap",
"name": "One-command bootstrap",
"detail": "makefile",
"points": 18,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "makefile"
}
}
],
"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.cjs",
"points": 11,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": ".eslintrc.cjs"
}
}
],
"max_points": 11
},
{
"key": "static_type_checking",
"name": "Static type checking",
"detail": "web/classic/jsconfig.json, web/default/tsconfig.json",
"points": 11,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "web/classic/jsconfig.json, web/default/tsconfig.json"
}
}
],
"max_points": 11
},
{
"key": "reproducible_environment",
"name": "Reproducible environment",
"detail": "Dockerfile, lockfile",
"points": 10,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "Dockerfile, lockfile"
}
}
],
"max_points": 10
},
{
"key": "demonstrated_agent_practice",
"name": "Demonstrated agent practice",
"detail": "no agent-authored commits among the last 100",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_agent_authored_commits",
"params": {
"sampled": 100
}
}
],
"max_points": 10
},
{
"key": "automated_maintenance",
"name": "Automated maintenance",
"detail": "1 of the last 100 commits are automated dependency updates",
"points": 8,
"status": "met",
"details": [
{
"code": "dependency_bot_commits",
"params": {
"count": 1,
"sampled": 100
}
}
],
"max_points": 8
},
{
"key": "openssf_scorecard_pinned_dependencies",
"name": "OpenSSF Scorecard: Pinned-Dependencies",
"detail": "all dependencies are pinned",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
},
{
"key": "ai_code_legibility",
"band": "excellent",
"name": "Code legibility for models",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"primary_language": "Go",
"largest_source_bytes": 191287,
"source_files_sampled": 2400,
"oversized_source_files": 18
},
"components": [
{
"key": "type_checkable_code",
"name": "Type-checkable code",
"detail": "Go (statically typed)",
"points": 45,
"status": "met",
"details": [
{
"code": "statically_typed_language",
"params": {
"language": "Go"
}
}
],
"max_points": 45
},
{
"key": "manageable_file_sizes",
"name": "Manageable file sizes",
"detail": "18/2400 source files over 60KB",
"points": 54.6,
"status": "partial",
"details": [
{
"code": "oversized_source_files",
"params": {
"kb": 60,
"sampled": 2400,
"oversized": 18
}
}
],
"max_points": 55
}
]
},
{
"key": "ai_interfaces",
"band": "at_risk",
"name": "Machine-readable interfaces",
"note": null,
"notes": [],
"value": 40,
"inputs": {
"example_dirs": [
"examples"
],
"has_mcp_signal": false,
"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": 0,
"status": "missed",
"details": [],
"max_points": 20
},
{
"key": "runnable_examples",
"name": "Runnable examples",
"detail": "examples",
"points": 40,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "examples"
}
}
],
"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",
"Community profile unavailable",
"go package 'github.com/QuantumNous/new-api' points at a different repository (https://github.com/QuantumNous/new-api); excluded from ecosystem scoring",
"Could not fetch npm package 'new-api-electron' from its registry",
"Could not fetch npm package 'newapi-web' from its registry"
],
"report_type": "repository",
"generated_at": "2026-07-26T06:27:47.354716Z",
"schema_version": "0.27.0",
"badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/l/liulixin-lex/xy-api.svg",
"full_name": "liulixin-lex/xy-api",
"license_state": "standard",
"license_spdx": "AGPL-3.0"
}