Informe JSON sin procesar legible por máquina
{
"data": {
"repo": {
"topics": [
"ai",
"deepseek",
"free",
"free-ai",
"freeai",
"gpt",
"gptoss",
"kimi",
"nim",
"nvidia",
"nvidia-nim",
"nvidia-nim-api",
"nvidia-nims",
"openclaw",
"opencode"
],
"is_fork": false,
"size_kb": 73201,
"has_wiki": false,
"homepage": "https://freecodingmodels.vercel.app",
"languages": {
"CSS": 214919,
"HTML": 6300058,
"Shell": 1920,
"Dockerfile": 808,
"JavaScript": 2165092,
"TypeScript": 47528
},
"pushed_at": "2026-07-20T04:32:15Z",
"created_at": "2026-02-20T23:12:50Z",
"owner_type": "User",
"updated_at": "2026-07-23T19:54:36Z",
"description": "Find, benchmark and install in CLI 170+ FREE coding LLM models across 15+ providers in real time",
"is_archived": false,
"is_disabled": false,
"license_spdx": null,
"default_branch": "main",
"license_spdx_raw": "NOASSERTION",
"primary_language": "HTML",
"significant_languages": [
"HTML",
"JavaScript"
]
},
"owner": {
"blog": null,
"name": "Vanessa Depraute",
"type": "User",
"login": "vava-nessa",
"company": "Freelancer",
"location": "Paris, France",
"followers": 123,
"avatar_url": "https://avatars.githubusercontent.com/u/5466264?v=4",
"created_at": "2013-09-16T02:05:08Z",
"is_verified": null,
"public_repos": 10,
"account_age_days": 4693
},
"license": {
"state": "custom",
"spdx_id": null,
"raw_spdx": "NOASSERTION",
"file_present": true,
"scorecard_found": true,
"profile_has_license": true
},
"activity": {
"releases": [
{
"tag": "v0.5.50",
"kind": "patch",
"published_at": "2026-07-18T12:19:24Z"
},
{
"tag": "v0.5.49",
"kind": "patch",
"published_at": "2026-07-18T08:08:12Z"
},
{
"tag": "v0.5.47",
"kind": "patch",
"published_at": "2026-07-08T12:31:31Z"
},
{
"tag": "v0.5.46",
"kind": "patch",
"published_at": "2026-07-08T10:17:43Z"
},
{
"tag": "v0.5.45",
"kind": "patch",
"published_at": "2026-07-08T10:07:34Z"
},
{
"tag": "v0.5.44",
"kind": "patch",
"published_at": "2026-07-08T09:45:31Z"
},
{
"tag": "v0.5.43",
"kind": "patch",
"published_at": "2026-07-07T13:05:52Z"
},
{
"tag": "v0.5.42",
"kind": "patch",
"published_at": "2026-07-07T12:56:53Z"
},
{
"tag": "v0.5.41",
"kind": "patch",
"published_at": "2026-07-07T12:38:54Z"
},
{
"tag": "v0.5.40",
"kind": "patch",
"published_at": "2026-07-07T12:35:17Z"
},
{
"tag": "v0.5.39",
"kind": "patch",
"published_at": "2026-06-27T19:58:48Z"
},
{
"tag": "v0.5.38",
"kind": "patch",
"published_at": "2026-06-27T15:44:30Z"
},
{
"tag": "v0.5.37",
"kind": "patch",
"published_at": "2026-06-20T13:15:24Z"
},
{
"tag": "v0.5.36",
"kind": "patch",
"published_at": "2026-06-20T11:15:01Z"
},
{
"tag": "v0.5.35",
"kind": "patch",
"published_at": "2026-06-17T11:58:40Z"
},
{
"tag": "v0.5.34",
"kind": "patch",
"published_at": "2026-06-17T11:54:19Z"
},
{
"tag": "v0.5.32",
"kind": "patch",
"published_at": "2026-06-15T17:05:40Z"
},
{
"tag": "v0.5.31",
"kind": "patch",
"published_at": "2026-06-15T16:47:54Z"
},
{
"tag": "v0.5.30",
"kind": "patch",
"published_at": "2026-06-15T16:39:14Z"
},
{
"tag": "v0.5.29",
"kind": "patch",
"published_at": "2026-06-15T14:31:53Z"
},
{
"tag": "v0.5.28",
"kind": "patch",
"published_at": "2026-06-11T12:29:08Z"
},
{
"tag": "v0.5.27",
"kind": "patch",
"published_at": "2026-06-11T11:35:02Z"
},
{
"tag": "v0.5.26",
"kind": "patch",
"published_at": "2026-06-11T11:04:43Z"
},
{
"tag": "v0.5.25",
"kind": "patch",
"published_at": "2026-06-10T19:39:20Z"
},
{
"tag": "v0.5.24",
"kind": "patch",
"published_at": "2026-06-10T19:32:05Z"
},
{
"tag": "v0.5.23",
"kind": "patch",
"published_at": "2026-06-10T17:47:49Z"
},
{
"tag": "v0.5.22",
"kind": "patch",
"published_at": "2026-06-10T17:37:07Z"
},
{
"tag": "v0.5.21",
"kind": "patch",
"published_at": "2026-06-10T13:16:02Z"
},
{
"tag": "v0.5.20",
"kind": "patch",
"published_at": "2026-06-10T12:00:14Z"
},
{
"tag": "v0.5.19",
"kind": "patch",
"published_at": "2026-06-10T10:35:18Z"
},
{
"tag": "v0.5.18",
"kind": "patch",
"published_at": "2026-06-09T16:08:00Z"
},
{
"tag": "v0.5.17",
"kind": "patch",
"published_at": "2026-06-08T17:46:32Z"
},
{
"tag": "v0.5.16",
"kind": "patch",
"published_at": "2026-06-04T18:55:00Z"
},
{
"tag": "v0.5.15",
"kind": "patch",
"published_at": "2026-06-04T16:01:33Z"
},
{
"tag": "v0.5.12",
"kind": "patch",
"published_at": "2026-06-02T22:20:47Z"
},
{
"tag": "v0.5.11",
"kind": "patch",
"published_at": "2026-06-02T19:19:58Z"
},
{
"tag": "v0.5.10",
"kind": "patch",
"published_at": "2026-06-02T16:16:20Z"
},
{
"tag": "v0.5.9",
"kind": "patch",
"published_at": "2026-06-02T15:52:15Z"
},
{
"tag": "v0.5.8",
"kind": "patch",
"published_at": "2026-06-02T15:36:06Z"
},
{
"tag": "v0.5.6",
"kind": "patch",
"published_at": "2026-06-01T14:55:11Z"
},
{
"tag": "v0.5.5",
"kind": "patch",
"published_at": "2026-06-01T12:06:28Z"
},
{
"tag": "v0.5.4",
"kind": "patch",
"published_at": "2026-06-01T11:54:34Z"
},
{
"tag": "v0.5.1",
"kind": "patch",
"published_at": "2026-05-31T22:25:21Z"
},
{
"tag": "v0.5.0",
"kind": "minor",
"published_at": "2026-05-31T18:42:11Z"
},
{
"tag": "v0.4.3",
"kind": "patch",
"published_at": "2026-05-31T17:18:40Z"
},
{
"tag": "v0.4.2",
"kind": "patch",
"published_at": "2026-05-30T13:43:57Z"
},
{
"tag": "v0.4.1",
"kind": "patch",
"published_at": "2026-05-30T13:26:01Z"
},
{
"tag": "v0.4.0",
"kind": "minor",
"published_at": "2026-05-30T13:20:20Z"
},
{
"tag": "v0.3.80",
"kind": "patch",
"published_at": "2026-05-30T11:12:37Z"
},
{
"tag": "v0.3.79",
"kind": "patch",
"published_at": "2026-05-28T22:04:21Z"
},
{
"tag": "v0.3.78",
"kind": "patch",
"published_at": "2026-05-28T21:19:05Z"
},
{
"tag": "v0.3.77",
"kind": "patch",
"published_at": "2026-05-28T21:00:28Z"
},
{
"tag": "v0.3.76",
"kind": "patch",
"published_at": "2026-05-28T19:55:05Z"
},
{
"tag": "v0.3.75",
"kind": "patch",
"published_at": "2026-05-28T19:42:21Z"
},
{
"tag": "v0.3.74",
"kind": "patch",
"published_at": "2026-05-28T10:22:27Z"
},
{
"tag": "v0.3.73",
"kind": "patch",
"published_at": "2026-05-28T09:38:56Z"
},
{
"tag": "v0.3.71",
"kind": "patch",
"published_at": "2026-05-27T15:23:59Z"
},
{
"tag": "v0.3.70",
"kind": "patch",
"published_at": "2026-05-27T15:17:38Z"
},
{
"tag": "v0.3.69",
"kind": "patch",
"published_at": "2026-05-26T16:51:50Z"
},
{
"tag": "v0.3.68",
"kind": "patch",
"published_at": "2026-05-26T15:11:09Z"
},
{
"tag": "v0.3.67",
"kind": "patch",
"published_at": "2026-05-17T18:21:30Z"
},
{
"tag": "v0.3.66",
"kind": "patch",
"published_at": "2026-05-16T13:45:44Z"
},
{
"tag": "v0.3.65",
"kind": "patch",
"published_at": "2026-05-06T16:56:53Z"
},
{
"tag": "v0.3.64",
"kind": "patch",
"published_at": "2026-05-06T16:45:31Z"
},
{
"tag": "v0.3.63",
"kind": "patch",
"published_at": "2026-05-05T20:08:21Z"
},
{
"tag": "v0.3.62",
"kind": "patch",
"published_at": "2026-05-04T21:31:39Z"
},
{
"tag": "v0.3.60",
"kind": "patch",
"published_at": "2026-05-04T20:40:58Z"
},
{
"tag": "v0.3.59",
"kind": "patch",
"published_at": "2026-05-04T20:38:11Z"
},
{
"tag": "v0.3.58",
"kind": "patch",
"published_at": "2026-05-04T20:22:24Z"
},
{
"tag": "v0.3.57",
"kind": "patch",
"published_at": "2026-05-04T17:45:24Z"
},
{
"tag": "v0.3.56",
"kind": "patch",
"published_at": "2026-05-04T13:15:13Z"
},
{
"tag": "v0.3.55",
"kind": "patch",
"published_at": "2026-04-18T16:30:57Z"
},
{
"tag": "v0.3.54",
"kind": "patch",
"published_at": "2026-04-18T16:28:24Z"
},
{
"tag": "v0.3.52",
"kind": "patch",
"published_at": "2026-04-18T16:23:41Z"
},
{
"tag": "v0.3.51",
"kind": "patch",
"published_at": "2026-04-11T13:20:03Z"
},
{
"tag": "v0.3.50",
"kind": "patch",
"published_at": "2026-04-11T11:06:10Z"
},
{
"tag": "v0.3.49",
"kind": "patch",
"published_at": "2026-04-11T10:27:47Z"
},
{
"tag": "v0.3.48",
"kind": "patch",
"published_at": "2026-04-11T10:18:27Z"
},
{
"tag": "v0.3.47",
"kind": "patch",
"published_at": "2026-04-11T09:59:18Z"
},
{
"tag": "v0.3.46",
"kind": "patch",
"published_at": "2026-04-11T09:50:06Z"
},
{
"tag": "v0.3.45",
"kind": "patch",
"published_at": "2026-04-11T09:36:44Z"
},
{
"tag": "v0.3.44",
"kind": "patch",
"published_at": "2026-04-10T12:58:38Z"
},
{
"tag": "v0.3.43",
"kind": "patch",
"published_at": "2026-04-09T15:07:06Z"
},
{
"tag": "v0.3.42",
"kind": "patch",
"published_at": "2026-04-09T11:14:24Z"
},
{
"tag": "v0.3.41",
"kind": "patch",
"published_at": "2026-04-09T10:15:52Z"
},
{
"tag": "v0.3.40",
"kind": "patch",
"published_at": "2026-04-09T09:00:14Z"
},
{
"tag": "v0.3.36",
"kind": "patch",
"published_at": "2026-04-07T09:36:47Z"
},
{
"tag": "v0.3.37",
"kind": "patch",
"published_at": "2026-04-07T00:12:33Z"
},
{
"tag": "v0.3.35",
"kind": "patch",
"published_at": "2026-04-06T23:51:26Z"
},
{
"tag": "v0.3.34",
"kind": "patch",
"published_at": "2026-04-06T00:29:50Z"
},
{
"tag": "v0.3.33",
"kind": "patch",
"published_at": "2026-04-01T14:18:25Z"
},
{
"tag": "v0.3.32",
"kind": "patch",
"published_at": "2026-04-01T14:15:09Z"
},
{
"tag": "v0.3.31",
"kind": "patch",
"published_at": "2026-04-01T14:02:28Z"
},
{
"tag": "v0.3.30",
"kind": "patch",
"published_at": "2026-03-27T20:55:13Z"
},
{
"tag": "v0.3.29",
"kind": "patch",
"published_at": "2026-03-27T20:46:40Z"
},
{
"tag": "v0.3.28",
"kind": "patch",
"published_at": "2026-03-27T20:41:41Z"
},
{
"tag": "v0.3.26",
"kind": "patch",
"published_at": "2026-03-27T19:50:40Z"
},
{
"tag": "v0.3.25",
"kind": "patch",
"published_at": "2026-03-19T19:42:25Z"
},
{
"tag": "v0.3.24",
"kind": "patch",
"published_at": "2026-03-19T13:49:39Z"
},
{
"tag": "v0.3.23",
"kind": "patch",
"published_at": "2026-03-18T20:22:11Z"
}
],
"recent_commits": [
{
"oid": "fc83df1abee1b8e5e755f5d4b97caeea8d5ef701",
"body": "kandown v0.20.0 stopped shipping these per-project — kandown work and\nthe TUI agent launcher now both read the rules straight from the\ninstalled CLI package, so a local copy only went stale and had nothing\nleft referencing it. Also dropped the now-false \"read\n.kandown/AGENT_KANDOWN.md if you can't run the CLI\" fallback line from\nAGENTS.md.",
"is_bot": false,
"headline": "chore(kandown): drop stale AGENT.md/AGENT_KANDOWN.md copies",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-07-19T18:31:04Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "472e6989d2b67df2a6769de18f4c6d049af45e54",
"body": "- Backfilled .kandown/AGENT_KANDOWN.md, .kandown/README.md, and\n .kandown/.gitignore, missing since this project's kandown install\n predates those files. Refreshed kandown.html to the current bundled\n version.\n- AGENTS.md kandown reference now points at `kandown work` instead of\n a rules block f\n[…]\nplit-*), but\n tasks/ already holds PRD-smart-model-router.md, an actively-used\n product doc unrelated to kandown. Left both as is rather than risk\n that doc getting picked up as a bogus board card.",
"is_bot": false,
"headline": "chore(kandown): repair install, update agent ref",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-07-19T15:06:14Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "8e0a0fe497ca9026de7f76d7787df95f4332f51e",
"body": null,
"is_bot": false,
"headline": "0.5.50 - 🔍 full model audit (20 providers, auto-deprecation support)",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-07-18T12:18:11Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "be3a9deb08544c21d3f6d5e359a5635aa0a90ce6",
"body": null,
"is_bot": false,
"headline": "0.5.49",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-07-18T08:02:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "feae2abf813d4607e54f71767047005cba4a20bd",
"body": null,
"is_bot": false,
"headline": "audit: groq – remove deprecated models",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-07-18T07:51:23Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1510df65a8ed58336a263cf5bc61d807b5a52600",
"body": null,
"is_bot": false,
"headline": "0.5.47 - 🔌 fcm-opencode plugin (BETA) + silent-by-default FCM-Pi",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-07-08T12:30:22Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0d8a616cd62c2aaa7b50419d2c4312bf021d0358",
"body": "… models\n\n- live /v1/models confirms claude-*/gpt-5.* / glm-5.2 / kimi-k2.6 / deepseek-v4-flash / minimax-m2.7 are pro (paid)\n- keep only free turbo: devstral-small-2:24b, codestral-latest (257 -> 247 models)\n- removed 1.05M ctx entries",
"is_bot": false,
"headline": "0.5.46 - fix: drop non-free (pro) LLM7 models, keep only 2 free turbo…",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-07-08T10:16:17Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fe402927f05738b5e0f2c9c86f6f737588fca059",
"body": "…odels\n\n- 68 models scored from '-' to real SWE-bench Verified %\n- tiers recomputed from verified scores across all 20 providers\n- 55 models retain manual tier estimates (no public SWE score: embeddings, vision, edge, routers)",
"is_bot": false,
"headline": "0.5.45 - swe: refresh SWE-bench Verified scores + tiers for all 257 m…",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-07-08T10:06:42Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "bac16173f6d1d81f281e14fd877f3cd4921fec28",
"body": "- nvidia(+7), github-models(+20), openrouter(+10), qwen(+10), ollama-cloud(+10), llm7(+6), scaleway(+4), mistral(+2), cloudflare(+1), cerebras(+1), codestral(+1), zai(+1)\n- removed deprecated: step-3.5-flash, kimi-k2.5, mistral-7b-v0.2, owl-alpha, magistral-1.2, routeway minimax-m2/mistral-nemo, oll\n[…]\nD fixes across cerebras, nvidia, github-models, qwen, novita, zai\n- audit_state.json fingerprints refreshed for all 20 providers\n- test/test.js: updated stale hard-coded model IDs (glm-5.1 -> glm-5.2)",
"is_bot": false,
"headline": "0.5.44 - audit: refresh all 20 providers (257 models)",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-07-08T09:44:32Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "52d7c1a0057bc546d1ca7da1243bbd4ac2d0fff6",
"body": null,
"is_bot": false,
"headline": "docs: clarify FCM-Pi extension is BETA, install via local path only",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-07-07T13:06:06Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "01c956754ddd7c9a23319baa91fcbe57df942b73",
"body": null,
"is_bot": false,
"headline": "0.5.43 - 📖 Pi extension documentation",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-07-07T13:05:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "674ada5618a39bdf0029f2db06d13868a652c5ff",
"body": null,
"is_bot": false,
"headline": "0.5.42",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-07-07T12:56:02Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "735da7dec417d1af0df60ea531d79555771e5d18",
"body": null,
"is_bot": false,
"headline": "0.5.41",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-07-07T12:37:59Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "eeecb6cec0c30c59d87e839c20c61409d67eb528",
"body": null,
"is_bot": false,
"headline": "0.5.40",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-07-07T12:34:25Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "874842d49010591cd28200af9e68c8b365843c67",
"body": null,
"is_bot": false,
"headline": "0.5.39",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-27T19:57:52Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "04b0f130473366020d0ebe360bcce276cbe12de2",
"body": "- groq: +qwen/qwen3.6-27b (preview, 131k)\n- cloudflare: +glm-5.2 (S+, 262k), +kimi-k2.5 (S+, 256k), fix nemotron-3-120b ctx 32k→128k\n- ovhcloud: +Qwen3-Embedding-8B, +bge-m3, +bge-multilingual-gemma2\n\nCloses #audit-2026-06-27",
"is_bot": false,
"headline": "feat: add missing models across 4 providers",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-27T18:49:15Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "43af51897e09382fc1cb968ffa23f50d1596df6e",
"body": null,
"is_bot": false,
"headline": "0.5.38",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-27T15:43:27Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "bc9c6cb07ce60347c8b98ede4cc23dafebe503f9",
"body": "The @tanstack/react-virtual@^3.14.2 dependency was added to package.json in\ncommit 694a258 but pnpm install was never run, so pnpm-lock.yaml was never\nupdated. This caused the Docker CI workflow to fail on every run since\nv0.5.32 — the 'Verify pnpm lockfile sync' step in docker.yml catches this\nand exits with an error.\n\nFixes GHCR Docker image being stuck at v0.5.32 while npm has v0.5.37.\nCloses #122.\n\nCo-authored-by: contributor <contributor@example.com>",
"is_bot": false,
"headline": "fix: regenerate pnpm-lock.yaml to include @tanstack/react-virtual (#123)",
"author_name": "stgreenb",
"author_login": "stgreenb",
"committed_at": "2026-06-27T15:34:34Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f43e166f1dc72a73cd1ce0799dc4f0ebe04516ce",
"body": "…s (#128)",
"is_bot": false,
"headline": "feat(zcode): add full ZCode install-target support across all surface…",
"author_name": "MoriDan",
"author_login": "MoriDanWork",
"committed_at": "2026-06-27T15:17:54Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4bb8556156c23c2661e1cd9ac7a404a2e16dbc88",
"body": "Bundle the v0.5.36 router priority fix with two regression tests and a\nscoreCandidates refactor that prevents #120 from silently regressing and\nremoves the priority-mixed-into-score footgun for future code.\n\n- scoreCandidates: score is now pure latency+uptime (0.5/0.5 weights,\n normalized [0,1]); p\n[…]\nut ignored at runtime; will be removed in a future major.\n- Tests: +2 regression tests for issue #120 (HALF_OPEN scenario from the\n user screenshot + score tiebreaker determinism). 540 → 542 passing.",
"is_bot": false,
"headline": "0.5.37 - 🧪 Lock in #120 fix (HALF_OPEN regression) + score split",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-20T13:14:19Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "f0dd3d8d8ab183863ded760bfc95c9e73acb255d",
"body": "Bundles router priority fix + probe-loop hardening, provider-key-test\nre-exports completing #121, and @MoriDanWork contributor credit.\n\n- Router: sort by explicit priority BEFORE circuit state so a high-priority\n HALF_OPEN model is no longer skipped for a lower-priority CLOSED one.\n- Probe loop: watchdog cleanup, lastProbeAt tracking, try/catch around cycles.\n- key-handler: re-export shared provider-key-test helpers (finishes #121).\n- Docs: credit @MoriDanWork in README + AGENTS.md.",
"is_bot": false,
"headline": "0.5.36 - 🐛 Fix router priority ordering (HALF_OPEN skip)",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-20T11:13:53Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "488bf1605c7318cbad41a445e5f7ee26280d4e9e",
"body": null,
"is_bot": false,
"headline": "fix: ensure pnpm-lock.yaml stays in sync, add CI lockfile verification",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-19T12:10:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fbb3c30dd26c747e2b07fe997aab6653ea1ecc60",
"body": "…(#121)",
"is_bot": false,
"headline": "refactor(tui) + fix(web): move provider key testing to shared module …",
"author_name": "MoriDan",
"author_login": "MoriDanWork",
"committed_at": "2026-06-18T13:35:08Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6a0e3f2145e75a0079e62e781dd2520390b615e1",
"body": "Same code as 0.5.34. Published to close the version gap on npm\n(0.5.32 → 0.5.34, 0.5.33 missing). The 0.5.33 commit (ecf740c)\nand its changelog file remain in git history for reference.\n\nchangelog/v0.5.35.md explains the situation in full.",
"is_bot": false,
"headline": "0.5.35 - 📝 Registry note: 0.5.33 was skipped in auto-publish",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-17T11:57:33Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9edb2ecf09f2fe670ffa8551b56e80d7f7c0cae1",
"body": "New module src/core/schema-normalizer.js fixes the 400/422 errors\nGLM and Mistral/Codestral throw when ZCode, Claude Code, or Cline\nsend their tool-call flow upstream:\n\n - strip parallel_tool_calls, n, top_k, logprobs, echo, user,\n metadata, store (unsupported by these providers, cause 422)\n - \n[…]\nnow point the\ndesktop IDE at http://localhost:19280/v1 (model: 'fcm', key:\n'fcm-local') without hitting the schema-mismatch wall.\n\ndocs/README_ROUTER.md updated to document the per-provider transform.",
"is_bot": false,
"headline": "0.5.34 - 🛠 Per-provider schema normalizer (GLM, Mistral, Codestral)",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-17T11:44:47Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "ecf740c6f65410fb3bdc7868d8b9ef2355c7a867",
"body": "Add ZCode as a first-class supported tool:\n- 🧊 ZCode flag (--zcode) in the TUI Z-hotkey cycle and CLI --help\n- 🧊 Compatible-with column entry\n- Launch on macOS via 'open -a ZCode' (no-op on other platforms)\n- Setup instructions point users at the local FCM Router\n (http://localhost:19280/v1 / fcm-l\n[…]\n\n- changelog/v0.5.33.md\n\nWhy: requested on Discord by a user hitting GLM/Codestral 422s\nwhen routing through fcm_router into ZCode. Native tool mode makes\nthe router + ZCode combo a one-flag workflow.",
"is_bot": false,
"headline": "0.5.33 - 🧊 Add ZCode (z.ai desktop IDE) tool mode",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-17T11:18:28Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "d1a8663370ac4b0bcc4157c397589630bd20e247",
"body": "Replace 7 boolean modal state vars (helpOpen, changelogOpen,\nrecommendOpen, routerOpen, playgroundOpen, installedModelsOpen,\ninstallEndpointsOpen) with one currentView string state.\n\nWhy: simpler navigation, single source of truth, makes PostHog\nview-tracking and active-header highlighting trivial.\n\n[…]\negistered in urlState.constants: playground,\n install-endpoints, installed-models\n- PostHog 'app_router_start' now fires on view change, not\n button click\n- All M3/M4 unit tests still pass (524/524)",
"is_bot": false,
"headline": "refactor(web): unify M3 modals into single currentView state",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-17T11:07:26Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "5f5eba3aeb96030b8bc897105b01373faf614f7f",
"body": null,
"is_bot": false,
"headline": "Update LICENSE",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-16T09:08:49Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "eb19f2f96adcec30bbd8df2672dfbfc3d35fc5c6",
"body": "- added deepseek-v4-flash + kimi-k2.6 (both S+, free + keyless on llm7 -> valuable no-key fallback)\n4 -> 6 models. live /v1/models verified (9 models total on llm7).",
"is_bot": false,
"headline": "audit: llm7 first audit (4/4 confirmed live)",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-16T00:46:42Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9ff37f40984f99435eece6500eb77223557c9544",
"body": "Zen free models are ephemeral (rotates often). Current free list (per Zen pricing):\n- replaced nemotron-3-super-free -> nemotron-3-ultra-free (Ultra is now the free Nemotron)\n- removed minimax-m3-free (rotated out of free tier)\n- added north-mini-code-free (new Cohere North Mini Code free model)\n5 -> 5 models",
"is_bot": false,
"headline": "audit: opencode-zen free-tier rotation",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-16T00:44:15Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "366e47339d5fc0e82a4f6a1c7c8ea8f223c4045b",
"body": "- added qwen3.6-35b-a3b (A+/-/256k, new Apr 2026 agentic MoE, Serverless/free-tier)\n10 -> 11 models",
"is_bot": false,
"headline": "audit: scaleway verified (10/10 confirmed)",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-16T00:42:07Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "632904cc3625e95f4cc11fdff4429b7ae5449253",
"body": "- added Qwen3.6-27B (A/-/262k, new reasoning model, top of OVH catalog)\n10 -> 11 models",
"is_bot": false,
"headline": "audit: ovhcloud verified against live API (10/10 confirmed)",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-16T00:39:20Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "694a258e1fea4f5640e2da79ad000f22b369f765",
"body": "- removed Llama-4-Maverick (not in live /v1/models)\n- removed gemma-3-12b-it (not in live, replaced by gemma-4-31B-it)\n- added gemma-4-31B-it (A/45%/128k, live)\n7 -> 6 models",
"is_bot": false,
"headline": "audit: sambanova verified against live API",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-16T00:37:09Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b149d739436696d923ca4aef7ee42b8437d03562",
"body": "removed 45 dead note lines (// Removed ... / ⚠️ DEPRECATED ...) across all\nproviders. catalog content unchanged (189 models). git history is the archive.",
"is_bot": false,
"headline": "chore: strip discontinued-model comments from sources.js",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-16T00:35:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a3898e57f7d40ce38a50b3d0748231d3bd8f971e",
"body": "- nvidia: removed qwen3-coder-480b (absent from live NIM /v1/models, dead endpoint), added minimax-m3 (live, free endpoint, S/59%/1M)\n- mistral: annotated devstral-2512 + magistral-medium-2509 deprecations (retire Jul 31 2026, replacements already cataloged)\n- cloudflare: removed 4 phantom models (c\n[…]\nocs, never real models); added kimi-k2.7-code (new flagship) + gpt-oss-120b; annotated deprecated mistral-7b-v0.2\n\nnet: 191 -> 189 models. live API + official docs verified, search backends were down.",
"is_bot": false,
"headline": "audit: nvidia/mistral/cloudflare verified",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-16T00:31:37Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "850bc2c1217dbb9f880a7ded62dcee79762dae4e",
"body": "Rebrand the dashboard to the lime-green (#c0f20c) identity: refreshed\ncolor tokens, larger base font (14->16px), app-shell grid + glow\nbackground, and a search bar wired into the FilterBar.\n\nAdd a cult-ui-inspired Grid Beam canvas overlay that travels along the\nmodel table's REAL borders (ported to \n[…]\non:sticky (the bar\nsits outside the internal scroller, so it is naturally always visible).\n\nCatalog: drop dead qwen3-coder-480b (NVIDIA NIM returns 410), add\nminimax-m3.\n\nbuild OK, 524/524 tests pass.",
"is_bot": false,
"headline": "feat(web): green rebrand, grid-beam table overlay, sticky header",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-16T00:15:16Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "8dc36c77e140899e0e3eb358e23bbbf7b2e7800c",
"body": null,
"is_bot": false,
"headline": "0.5.32 - 🔄 Restart outdated daemon automatically on version mismatch",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-15T17:04:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "de613313cf70833153dc6cbaa40f672482b2c098",
"body": null,
"is_bot": false,
"headline": "0.5.31 - ✨ Add 'Use favorites' button in Router view",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-15T16:47:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6b9605e17450067561c070c30f62052e950d7492",
"body": null,
"is_bot": false,
"headline": "0.5.30 - 🎮 Harmonize playgrounds & add router benchmark",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-15T16:38:15Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "61f675bed889ea3a5018eeac49828dfb9f7e876b",
"body": "Router now serves the highest-priority healthy model first instead of\nblending priority into a health score (issue #120). Added routingOrder to\n/stats and Priority/Fallback/Next-up indicators across Web + TUI. Also\nincludes dev-mode port isolation and daemon error surfacing from the\nworking tree.",
"is_bot": false,
"headline": "0.5.29 - 🐛 Fix router priority routing (#120) + clearer router UI",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-15T14:30:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c3161f472e3c7e9f5b79eda963c9fbb39163d329",
"body": "Introduce shared-helpers.js with common FS/JSON/sleep/masking utilities and isRouteableProvider to deduplicate logic across modules. Update sources.js to propagate an optional addedDate in model tuples and include that field in MODELS. Wire consumers (tui, router-daemon, endpoint-installer, sync-set\n[…]\nns. Remove unused product-flags.js and add kandown task docs for planned refactors (key-handler, router-daemon, getVerdict). Update tests and TUI to handle optional addedDate and new isNewModel logic.",
"is_bot": false,
"headline": "Add shared helpers; support model addedDate",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-12T13:37:01Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "2c079256bfa968853357b219a1bd867bbd622320",
"body": null,
"is_bot": false,
"headline": "0.5.28 - 🐛 Fix Docker 404s + pending confusion",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-11T12:28:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6920c03134c2a327e82049bcca0872295970109f",
"body": null,
"is_bot": false,
"headline": "0.5.27 - 🆕 Add pi-free providers",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-11T11:34:08Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4fd4af82b70a10cc386e4517bbc21b7fadc66015",
"body": null,
"is_bot": false,
"headline": "0.5.26 - 🪓 Wipeout Gemini CLI & Rovo Dev (tool integrations)",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-11T11:03:44Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "2e3a3942927db14d2ada6502a355240145f99688",
"body": null,
"is_bot": false,
"headline": "0.5.25 - 🆕 Move NEW badge left of model name (same slot as ⭐)",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-10T19:38:24Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "54205e1b7d1f8ea6e28d92572f22884b81d9cc37",
"body": null,
"is_bot": false,
"headline": "0.5.24 - ✨ Remove erroneous sparkles from verdict icons",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-10T19:31:07Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "eca950f4c390b3d467e3f7d68c59c4aebebcbd32",
"body": "…W_MODELS import",
"is_bot": false,
"headline": "0.5.23 - 🩹 Fix SyntaxError: duplicate speedCell/moodCell + missing NE…",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-10T17:46:58Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e4757ff1020a43b400cfa34f1f1748b5b891753b",
"body": null,
"is_bot": false,
"headline": "0.5.22",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-10T17:35:58Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f9ef5dd7d58b8924a1d1e28d1ba672b95cbd5eb2",
"body": "…emini(deprecate:3)",
"is_bot": false,
"headline": "0.5.21 - audit: cloudflare(-2+5,fix:3), openrouter(fix:2), googleai+g…",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-10T13:15:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7d8bf4dfe15497c56f3e300a1a335a3350f1c274",
"body": null,
"is_bot": false,
"headline": "0.5.20",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-10T11:59:18Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "082c719fcef069a4e41a17a85fc37ef010ef4cbc",
"body": null,
"is_bot": false,
"headline": "0.5.19",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-10T10:34:21Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5395f7d62ca1c1825a3d1d01d47ec19e64b301a0",
"body": null,
"is_bot": false,
"headline": "Update SKILL.md",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-10T10:04:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9d4fef4f87b23ee9cebb3991d487183f2e02b659",
"body": null,
"is_bot": false,
"headline": "0.5.18 - 🩹 Fix prefix-aware updater loop",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-09T16:06:44Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d0793ef11064a9cca87e1b940d839f23ed7e4ece",
"body": null,
"is_bot": false,
"headline": "0.5.17 - 🔧 Docker key mapping + deps bumps + test coverage",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-08T17:45:34Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5cb3ce5596d1dc667797c062eef4ff9d81795ce3",
"body": null,
"is_bot": false,
"headline": "fix(deps): update vite-plus to 0.1.24",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-08T17:07:44Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "da2f37fca53e8c0f22a20df30ecfcea06c79f145",
"body": "Bumps [kandown](https://github.com/vava-nessa/kandown) from 0.4.0 to 0.8.0.\n- [Release notes](https://github.com/vava-nessa/kandown/releases)\n- [Changelog](https://github.com/vava-nessa/kandown/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/vava-nessa/kandown/compare/v0.4.0...v0.8.0)\n\n---\nup\n[…]\nirect:production\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "deps(deps): bump kandown from 0.4.0 to 0.8.0 (#111)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-06-08T15:48:10Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "0e818f80a85158df44f69db8c1212a2c5f5e91a6",
"body": "Bumps [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) from 3 to 4.\n- [Release notes](https://github.com/docker/setup-qemu-action/releases)\n- [Commits](https://github.com/docker/setup-qemu-action/compare/v3...v4)\n\n---\nupdated-dependencies:\n- dependency-name: docker/setup-qemu-\n[…]\nirect:production\n update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "ci(deps): bump docker/setup-qemu-action from 3 to 4 (#110)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-06-08T15:47:52Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "7c1d08c5b668b5eb265eb0e4c9a77c36b296db7d",
"body": "…n sed logic (#115)\n\n- scripts/docker-init.mjs imports ENV_VARS from config.js (single source of truth)\n- docker-entrypoint.sh simplified to 1-line node call\n- docker-compose.yml cleaned of 9 stale providers, added GEMINI_API_KEY, OPENCODE_ZEN_API_KEY\n- Dockerfile: added COPY scripts/ for init scrip\n[…]\napi/favorites, /api/version (dashboard deps)\n- Fixed key test probe: uses first valid model from provider instead of empty string\n\nCo-authored-by: stgreenb <18483964+stgreenb@users.noreply.github.com>",
"is_bot": false,
"headline": "fix: Docker provider key mapping — Node.js init script replaces broke…",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-08T15:46:03Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "a517df3b9c38ee93826864ab6a072784dd0a503b",
"body": null,
"is_bot": false,
"headline": "0.5.16 - 🌐 expandable detail rows + mini playground + AI latency bench",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-04T18:53:51Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b39e470bf531124dfa622a166690c091016f00d9",
"body": null,
"is_bot": false,
"headline": "0.5.15 - 🔒 restore lockfile (take 3)",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-04T16:00:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b919c2200e6341589dfb0ec6c62c3b0939939c79",
"body": null,
"is_bot": false,
"headline": "0.5.15 - 🔧 --no-frozen-lockfile in CI for release",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-04T16:00:21Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e9ef5991949d50fccd19d80f55ab6b97372f0d03",
"body": null,
"is_bot": false,
"headline": "0.5.15 - 🔒 restore lockfile + pnpm@10 for CI compat",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-04T15:55:45Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "aafaa4c8fcf028bebf3eb61aca441d19ef35fbd2",
"body": null,
"is_bot": false,
"headline": "0.5.15 - 🔒 sync lockfile with pnpm@11.5.1",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-04T15:53:36Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "70cdaff6ad6f47ee236b6079201937ef8bbd11da",
"body": null,
"is_bot": false,
"headline": "0.5.15 - 🔒 restore lockfile",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-04T15:53:03Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "34d402f8c9b4234d41cb6846841b87786f0d1705",
"body": null,
"is_bot": false,
"headline": "0.5.15 - 🔒 update lockfile",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-04T15:52:10Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c5d26e65e9de9bd4f1ae8f5b31700d3b82d0c8d6",
"body": "…hboard",
"is_bot": false,
"headline": "0.5.15 - 🐛 Shift+R no longer launches OpenCode, only opens router das…",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-04T15:40:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "69d90a27f5cb185231dd2b238dce2741a0c33a96",
"body": "…o white in light mode",
"is_bot": false,
"headline": "0.5.15 - 🩹 patchThemeBg at app level covers ALL overlays + header log…",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-04T15:33:59Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7ae28cc942f9e4b461fce8a709686b899fe0e72a",
"body": "…x1b[49m",
"is_bot": false,
"headline": "0.5.15 - 🩹 Patch all chalk bg resets: re-apply theme bg after every \\…",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-04T15:14:32Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5ad985f1dc111e1bc34c3b4ce33f0ddf9f777c8f",
"body": "…o bg reset",
"is_bot": false,
"headline": "0.5.15 - 🩹 BG_SET before content + headerLogo white in light mode + n…",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-04T15:05:36Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8637f73f3dbb558d06f16569b38736b745483be6",
"body": "…olour",
"is_bot": false,
"headline": "0.5.15 - 🩹 Remove per-line bg reset so full screen fills with theme c…",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-04T14:59:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "bd4988636be6217134c05164e639f4a91cb128d4",
"body": "…footer",
"is_bot": false,
"headline": "0.5.15 - 🎨 Full dual-theme palette: zero hardcoded colours + G Theme …",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-04T14:52:46Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0051c33121cd10347953504136ffc6c61229122e",
"body": null,
"is_bot": false,
"headline": "0.5.14 - 🎨 G Theme footer hotkey + forced light/dark background colours",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-04T14:27:05Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a0012333f0508ad1d7fc72decc0ab4b0a2df96bf",
"body": null,
"is_bot": false,
"headline": "0.5.13 - 🎨 Provider SVG dropdown + health dots + playground direct route",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-04T14:07:18Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "dab5669be7a968c07b7e8d7205835c5ca84dcdcd",
"body": "Consolidate the three features that landed in commit 41f02a6 (M4 Web set\nmanager, M6 auto-heal, and the unusable row fade) into a single v0.5.12\nrelease to keep the version stream sequential and never skip a number.\n\nChanges in this commit:\n- package.json: bump from 0.5.14 to 0.5.12 (next sequential\n[…]\nribing a release that never actually published.\n- Consolidating everything into v0.5.12 keeps the changelog and the\n shipped version aligned, and matches what a fresh npm install will\n actually see.",
"is_bot": false,
"headline": "0.5.12 - 🩹 Auto-heal + M4 Set Manager + Unusable Row Fade",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-02T22:19:48Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "41f02a6cce806a1ff16468002b6138e3d13d6d70",
"body": "Introduce automatic healing of broken router sets and a full Web set manager. Key changes:\n\n- Add router.autoHeal and router.userCustomized config flags and expose them (plus brokenModelCount) in /api/router/status. Auto-heal runs after the initial probe burst and replaces AUTH_ERROR/STALE models wi\n[…]\nv0.5.12/v0.5.13), README updates, and package version bump to 0.5.13.\n\nThese changes are focused on improving first-run reliability and giving users an interactive UI to manage and repair router sets.",
"is_bot": false,
"headline": "Add router auto-heal and web set manager",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-02T22:10:46Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "459ddadb410c4897937ae1e67a5b20e480be5294",
"body": "Introduce a multi-surface Playground and a configurable router pre-prompt. Adds server-side pre-prompt normalization/injection (DEFAULT_ROUTER_SETTINGS.prePrompt, normalizeRouterPrePrompt, injectPrePrompt, applyPrePromptToBody) and GET/PUT /api/router/preprompt endpoints so settings persist to ~/.fr\n[…]\ne pre-prompt for streaming and non-streaming chat completions, adds web Playground component stubs, bumps version to 0.5.11, updates README and changelog, and ignores a local scratchpad in .gitignore.",
"is_bot": false,
"headline": "Add Playground UI and router pre-prompt support",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-02T19:18:50Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "1c568cdbb27217f5d6f7112213b21dffb9522b42",
"body": "…rror recovery",
"is_bot": false,
"headline": "0.5.10 - ✨ Install Endpoints wizard: animated step 4 confirmation + e…",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-02T16:15:28Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a143c3d3c7d3126ba8da746fd1e8a6b1b6309e36",
"body": null,
"is_bot": false,
"headline": "0.5.9",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-02T15:51:23Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "870bb2af824c236607adbe917fed0f16e28c561f",
"body": null,
"is_bot": false,
"headline": "0.5.8",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-02T15:35:13Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "46734cf6fcb4bb7132a9eea37eb56014f4f0b42e",
"body": "…EADME update",
"is_bot": false,
"headline": "0.5.8 - ♿ M5: a11y 96 Lighthouse, mobile hamburger, :focus-visible, R…",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-02T15:29:11Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "50a6035cb6e1f447eb0a73c0eeef266aca8a16a2",
"body": "…tall Endpoints wizard",
"is_bot": false,
"headline": "0.5.7 - 🚀 M4: Router Dashboard + Token Usage + Installed Models + Ins…",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-02T15:07:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c788ce174639c6beed108ea048cc61e759fcd270",
"body": "Adds QEMU setup for cross-compilation and changes the Docker build\nplatforms from linux/amd64 only to linux/amd64,linux/arm64.\n\nThis enables users on Apple Silicon (M1/M2/M3/M4), AWS Graviton,\nRaspberry Pi 4+, and other ARM64 hosts to pull and run the image\nnatively without emulation overhead.\n\nIn test_mode (load=true), we keep linux/amd64 only because the\nDocker load option does not support multi-platform manifests.\n\nCloses #95",
"is_bot": false,
"headline": "fix(docker): add multi-platform builds for amd64 + arm64",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-01T21:13:25Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a9528bd0a64ab27bbdb57bc87cb033a9dd076344",
"body": "…ker, per-row launch buttons, and compatibility fallback modals",
"is_bot": false,
"headline": "feat: implement M3 web-based endpoint installation flow with tool pic…",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-01T19:33:38Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c5fe0585ed43d20b455fdbce2c3ca7ae72f8b7e0",
"body": "- M1 + M2 marked DONE in the progress table (shipped as 0.5.5 + 0.5.6)\n- M3 marked as NEXT with detailed progress checklist\n- New handoff section for the next session: what's in place, what NOT\n to do, hot spots in order, file references, acceptance criteria\n- Post-M2 entry documenting the issue #95 fix (Docker workflow_run\n trigger + package.json version + latest tag always-on)\n- Fixed typo: findSimiLar (correct case per source)",
"is_bot": false,
"headline": "docs(plan): handoff to M3 with full implementation spec",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-01T15:40:43Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9f12fcf980d9c90b7ee17b09647c7cadb19ae35c",
"body": "The previous metadata step relied on type=ref,event=tag and\ntype=semver,pattern=... — both of which only work on tag-push\nevents. On workflow_run (our new primary trigger) the semver\ntag was empty, so the build was only tagged with its SHA.\n\nFix: read the version from package.json (new Extract versi\n[…]\nlt-branch builds so\nthe 'latest' tag always tracks the most recent release.\n\nThe next workflow_dispatch or workflow_run will produce an image\ntagged '0.5.6' + 'latest' + SHA, matching the npm release.",
"is_bot": false,
"headline": "ci(cd): always tag Docker as 'latest' and with the package version",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-01T15:20:42Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "a00993fb0754e1046caf6dc1ccfb5b85f8a392e3",
"body": "The previous condition\nexcluded both manual dispatches AND workflow_run triggers. The new\ncondition builds when (workflow_run succeeded) OR (manual dispatch\nwithout test_mode), so both paths work.",
"is_bot": false,
"headline": "ci(cd): fix workflow_dispatch condition to allow manual builds",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-01T15:06:13Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f80376c2c2a5c7ee340da2a4c1e475efecbd1d78",
"body": "The legacy 'push: tags: v*.*.*' trigger stopped firing after v0.3.72,\nleaving the Docker image on the registry at 0.3.72 while the npm\npackage has been climbing to 0.5.6. Issue #95.\n\nReplace the broken tag-push trigger with a workflow_run trigger on\nthe Release workflow, so every successful npm publ\n[…]\n.*.* (unreliable)\n- Add on.workflow_run: workflows: [Release], types: [completed]\n- Conditional skip when the upstream Release failed\n- Update build-push and Trivy conditions to recognize workflow_run",
"is_bot": false,
"headline": "ci(cd): trigger Docker on every successful Release (workflow_run)",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-01T15:05:02Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "d0e5458071b848a76001433896a6f28044b1f0b4",
"body": null,
"is_bot": false,
"headline": "0.5.6",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-01T14:54:07Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "0b606efd804bc21b93e93a017e302f02e090f1de",
"body": null,
"is_bot": false,
"headline": "update",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-01T12:22:08Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3428a22e790f806d2e5662074c268f7775c9e5b2",
"body": "Add a mandatory startup self-update policy that auto-installs new releases before any user-facing surface starts. Introduce isPackageDevMode and enforceMandatoryStartupUpdate which persist install/check failure counters in config, allow two consecutive install failures before letting the UI start wi\n[…]\nate into the TUI and web server (render red warning banner in TUI and web UI), update socket hook and UI to surface the status, and add tests/CSS. Also bump package version to 0.5.5 and add changelog.",
"is_bot": false,
"headline": "Mandatory startup self-update with fallback",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-01T12:05:40Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "7f35d0cd2afba832ff0b1bce413d2a92797d2da6",
"body": "Bumps [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react) from 6.0.1 to 6.0.2.\n- [Release notes](https://github.com/vitejs/vite-plugin-react/releases)\n- [Changelog](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/CHANGELOG.m\n[…]\nrect:development\n update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "deps(deps-dev): bump @vitejs/plugin-react from 6.0.1 to 6.0.2 (#107)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-06-01T11:59:05Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "c557750a2a6a30bb7d566d4877b6df82340b134d",
"body": "Bumps [vite-plus](https://github.com/voidzero-dev/vite-plus/tree/HEAD/packages/cli) from 0.1.20 to 0.1.23.\n- [Release notes](https://github.com/voidzero-dev/vite-plus/releases)\n- [Commits](https://github.com/voidzero-dev/vite-plus/commits/v0.1.23/packages/cli)\n\n---\nupdated-dependencies:\n- dependency\n[…]\nrect:development\n update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "deps(deps-dev): bump vite-plus from 0.1.20 to 0.1.23 (#106)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-06-01T11:58:49Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "5db1fbfcf817d8c43dc42746d3e9a25f184c42d5",
"body": "Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 8.0.14 to 8.0.16.\n- [Release notes](https://github.com/vitejs/vite/releases)\n- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)\n- [Commits](https://github.com/vitejs/vite/commits/v8.0.16/package\n[…]\nrect:development\n update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "deps(deps-dev): bump vite from 8.0.14 to 8.0.16 (#105)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-06-01T11:56:09Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "6fcb6db41d49e57c1a41b9d212d7bda4d9db1fea",
"body": "Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 3 to 4.\n- [Release notes](https://github.com/docker/setup-buildx-action/releases)\n- [Commits](https://github.com/docker/setup-buildx-action/compare/v3...v4)\n\n---\nupdated-dependencies:\n- dependency-name: docker/set\n[…]\nirect:production\n update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "ci(deps): bump docker/setup-buildx-action from 3 to 4 (#104)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-06-01T11:56:01Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "2b1a0e8f23e49ef4b23c1483e15067eeffb217fd",
"body": "Bumps [docker/login-action](https://github.com/docker/login-action) from 3 to 4.\n- [Release notes](https://github.com/docker/login-action/releases)\n- [Commits](https://github.com/docker/login-action/compare/v3...v4)\n\n---\nupdated-dependencies:\n- dependency-name: docker/login-action\n dependency-versi\n[…]\nirect:production\n update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "ci(deps): bump docker/login-action from 3 to 4 (#103)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-06-01T11:55:57Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "b3bf1d12cba76fc757c6bfa444a97e757f0ffc62",
"body": "Bumps [pnpm/action-setup](https://github.com/pnpm/action-setup) from 4 to 6.\n- [Release notes](https://github.com/pnpm/action-setup/releases)\n- [Commits](https://github.com/pnpm/action-setup/compare/v4...v6)\n\n---\nupdated-dependencies:\n- dependency-name: pnpm/action-setup\n dependency-version: '6'\n \n[…]\nirect:production\n update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "ci(deps): bump pnpm/action-setup from 4 to 6 (#102)",
"author_name": "dependabot[bot]",
"author_login": "dependabot[bot]",
"committed_at": "2026-06-01T11:55:48Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "af8668643f80bc95ba60e5327e773dd41548c491",
"body": null,
"is_bot": false,
"headline": "0.5.4 - 🚀 Consolidate failed releases and CI fixes",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-01T11:53:42Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "222b7f96b99a481dd084b76cdb33b8a7f4839e08",
"body": "The favicon generation script (scripts/build-favicons.mjs) requires the\n`magick` binary to rasterize the source icon, but the ubuntu-latest\nrunner doesn't ship with ImageMagick pre-installed. Add an apt-get install\nstep right after pnpm install so the build:favicons step in build:web\ncan run successfully.",
"is_bot": false,
"headline": "fix(ci): install ImageMagick in release workflow for 0.5.3",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-01T11:42:33Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "443a8380b44c81e51c26c4a998f7a42637224e67",
"body": "The release workflow failed at the 'Publish to npm' step because:\n- package.json references 'node scripts/build-favicons.mjs' via build:favicons\n- but scripts/build-favicons.mjs was untracked in the working tree\n- and icon.png (the source the script rasterizes) was also untracked\n\nThis commit adds both files. The 0.5.3 release will re-run on this push\nbecause v0.5.3 was never tagged (the previous run failed before the tag step).",
"is_bot": false,
"headline": "fix(ci): add missing favicon build script + icon for 0.5.3 release",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-01T11:38:12Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b3fd70d6c73c851bc32a025ab84cbb5ef7a678f5",
"body": null,
"is_bot": false,
"headline": "0.5.3",
"author_name": "Vanessa Depraute",
"author_login": "vava-nessa",
"committed_at": "2026-06-01T11:27:53Z",
"body_truncated": false,
"is_coding_agent": false
}
],
"releases_count": 100,
"commits_last_year": 599,
"latest_release_at": "2026-07-18T12:19:24Z",
"latest_release_tag": "v0.5.50",
"releases_from_tags": false,
"days_since_last_push": 3,
"active_weeks_last_year": 21,
"days_since_latest_release": 5,
"mean_days_between_releases": 1.2
},
"community": {
"has_readme": true,
"has_license": true,
"has_description": true,
"has_contributing": false,
"health_percentage": 57,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": false
},
"ecosystem": {
"packages": [
{
"name": "free-coding-models",
"exists": true,
"license": "MIT",
"keywords": [
"nvidia",
"nim",
"llm",
"cli",
"ai",
"models",
"benchmark",
"latency",
"availability",
"deepseek",
"qwen",
"llama",
"mistral",
"glm",
"kimi",
"gpt",
"chatgpt",
"openai",
"api"
],
"ecosystem": "npm",
"matches_repo": true,
"registry_url": "https://www.npmjs.com/package/free-coding-models",
"is_deprecated": false,
"latest_version": "0.5.50",
"repository_url": "https://github.com/vava-nessa/free-coding-models",
"versions_count": 214,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": 1,
"monthly_downloads": 5344,
"first_published_at": "2026-02-21T22:40:09.010000Z",
"latest_published_at": "2026-07-18T12:19:20.556000Z",
"latest_version_yanked": null,
"days_since_latest_publish": 5
}
]
},
"popularity": {
"forks": 238,
"stars": 2186,
"watchers": 18,
"fork_history": {
"days": [
{
"date": "2026-02-21",
"count": 1
},
{
"date": "2026-02-22",
"count": 12
},
{
"date": "2026-02-23",
"count": 6
},
{
"date": "2026-02-24",
"count": 3
},
{
"date": "2026-02-25",
"count": 3
},
{
"date": "2026-02-26",
"count": 5
},
{
"date": "2026-02-27",
"count": 3
},
{
"date": "2026-02-28",
"count": 1
},
{
"date": "2026-03-01",
"count": 2
},
{
"date": "2026-03-03",
"count": 3
},
{
"date": "2026-03-05",
"count": 1
},
{
"date": "2026-03-06",
"count": 1
},
{
"date": "2026-03-07",
"count": 2
},
{
"date": "2026-03-11",
"count": 1
},
{
"date": "2026-03-12",
"count": 1
},
{
"date": "2026-03-13",
"count": 2
},
{
"date": "2026-03-14",
"count": 2
},
{
"date": "2026-03-15",
"count": 3
},
{
"date": "2026-03-16",
"count": 4
},
{
"date": "2026-03-20",
"count": 1
},
{
"date": "2026-03-21",
"count": 1
},
{
"date": "2026-03-27",
"count": 3
},
{
"date": "2026-04-02",
"count": 1
},
{
"date": "2026-04-04",
"count": 13
},
{
"date": "2026-04-05",
"count": 25
},
{
"date": "2026-04-06",
"count": 17
},
{
"date": "2026-04-07",
"count": 5
},
{
"date": "2026-04-08",
"count": 5
},
{
"date": "2026-04-09",
"count": 3
},
{
"date": "2026-04-10",
"count": 2
},
{
"date": "2026-04-11",
"count": 1
},
{
"date": "2026-04-12",
"count": 8
},
{
"date": "2026-04-13",
"count": 5
},
{
"date": "2026-04-14",
"count": 1
},
{
"date": "2026-04-15",
"count": 3
},
{
"date": "2026-04-16",
"count": 1
},
{
"date": "2026-04-17",
"count": 3
},
{
"date": "2026-04-18",
"count": 2
},
{
"date": "2026-04-19",
"count": 3
},
{
"date": "2026-04-22",
"count": 1
},
{
"date": "2026-04-23",
"count": 1
},
{
"date": "2026-04-24",
"count": 1
},
{
"date": "2026-04-25",
"count": 1
},
{
"date": "2026-04-26",
"count": 1
},
{
"date": "2026-04-27",
"count": 2
},
{
"date": "2026-04-28",
"count": 3
},
{
"date": "2026-04-29",
"count": 3
},
{
"date": "2026-04-30",
"count": 5
},
{
"date": "2026-05-02",
"count": 3
},
{
"date": "2026-05-03",
"count": 6
},
{
"date": "2026-05-04",
"count": 1
},
{
"date": "2026-05-05",
"count": 2
},
{
"date": "2026-05-07",
"count": 2
},
{
"date": "2026-05-09",
"count": 1
},
{
"date": "2026-05-10",
"count": 4
},
{
"date": "2026-05-12",
"count": 1
},
{
"date": "2026-05-16",
"count": 1
},
{
"date": "2026-05-17",
"count": 1
},
{
"date": "2026-05-18",
"count": 1
},
{
"date": "2026-05-21",
"count": 2
},
{
"date": "2026-05-23",
"count": 1
},
{
"date": "2026-05-24",
"count": 1
},
{
"date": "2026-05-27",
"count": 1
},
{
"date": "2026-05-29",
"count": 1
},
{
"date": "2026-05-30",
"count": 3
},
{
"date": "2026-05-31",
"count": 1
},
{
"date": "2026-06-02",
"count": 1
},
{
"date": "2026-06-05",
"count": 1
},
{
"date": "2026-06-06",
"count": 1
},
{
"date": "2026-06-08",
"count": 1
},
{
"date": "2026-06-09",
"count": 3
},
{
"date": "2026-06-11",
"count": 1
},
{
"date": "2026-06-12",
"count": 1
},
{
"date": "2026-06-14",
"count": 1
},
{
"date": "2026-06-15",
"count": 2
},
{
"date": "2026-06-16",
"count": 2
},
{
"date": "2026-06-17",
"count": 2
},
{
"date": "2026-06-20",
"count": 1
},
{
"date": "2026-06-25",
"count": 1
},
{
"date": "2026-06-27",
"count": 1
},
{
"date": "2026-06-28",
"count": 1
},
{
"date": "2026-07-01",
"count": 2
},
{
"date": "2026-07-02",
"count": 1
},
{
"date": "2026-07-03",
"count": 1
},
{
"date": "2026-07-05",
"count": 1
},
{
"date": "2026-07-11",
"count": 1
},
{
"date": "2026-07-20",
"count": 1
},
{
"date": "2026-07-22",
"count": 1
}
],
"complete": true,
"collected": 238,
"total_forks": 238
},
"star_history": null,
"open_issues_and_prs": 25
},
"ai_readiness": {
"has_nix": false,
"example_dirs": [],
"has_llms_txt": false,
"has_dockerfile": true,
"has_mcp_signal": false,
"bootstrap_files": [],
"api_schema_files": [],
"has_devcontainer": false,
"typecheck_configs": [
"website/tsconfig.json"
],
"toolchain_manifests": [],
"largest_source_bytes": 279662,
"source_files_sampled": 171,
"oversized_source_files": 5,
"agent_instruction_files": [
"AGENTS.md",
"CLAUDE.md"
],
"agent_instruction_max_bytes": 14156
},
"dependencies": {
"manifests": [
"opencode-plugin/package.json",
"package.json",
"pi-extension/package.json",
"web/package.json",
"website/package.json"
],
"advisories": {
"error": null,
"scope": "repository_graph",
"source": "osv",
"findings": [
{
"name": "shell-quote",
"direct": false,
"version": "1.8.4",
"severity": "high",
"ecosystem": "npm",
"cvss_score": 7.5,
"advisory_ids": [
"GHSA-395f-4hp3-45gv"
],
"fixed_version": "1.9.0",
"advisory_count": 1,
"oldest_advisory_days": 2
},
{
"name": "ws",
"direct": false,
"version": "8.20.1",
"severity": "high",
"ecosystem": "npm",
"cvss_score": 7.5,
"advisory_ids": [
"GHSA-96hv-2xvq-fx4p"
],
"fixed_version": "8.21.0",
"advisory_count": 1,
"oldest_advisory_days": 38
}
],
"collected": true,
"malicious": [],
"truncated": false,
"by_severity": {
"high": 2
},
"advisory_count": 2,
"affected_count": 2,
"assessed_count": 393,
"malicious_count": 0,
"assessed_package": null,
"unassessed_count": 22,
"direct_affected_count": 0
},
"ecosystems": [
"npm"
],
"dependencies": [
{
"name": "@tabler/icons-react",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^3.44.0"
},
{
"name": "@tanstack/react-table",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^8.21.3"
},
{
"name": "chalk",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^5.6.2"
},
{
"name": "kandown",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^0.8.0"
},
{
"name": "socket.io",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^4.8.3"
},
{
"name": "socket.io-client",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^4.8.3"
},
{
"name": "@tanstack/react-virtual",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^3.14.2"
},
{
"name": "@fontsource-variable/geist",
"manifest": "website/package.json",
"ecosystem": "npm",
"version_constraint": "^5.2.9"
},
{
"name": "@fontsource-variable/geist-mono",
"manifest": "website/package.json",
"ecosystem": "npm",
"version_constraint": "^5.2.8"
},
{
"name": "@tailwindcss/vite",
"manifest": "website/package.json",
"ecosystem": "npm",
"version_constraint": "^4.1.18"
},
{
"name": "@tanstack/react-devtools",
"manifest": "website/package.json",
"ecosystem": "npm",
"version_constraint": "latest"
},
{
"name": "@tanstack/react-router",
"manifest": "website/package.json",
"ecosystem": "npm",
"version_constraint": "latest"
},
{
"name": "@tanstack/react-router-devtools",
"manifest": "website/package.json",
"ecosystem": "npm",
"version_constraint": "latest"
},
{
"name": "@tanstack/react-router-ssr-query",
"manifest": "website/package.json",
"ecosystem": "npm",
"version_constraint": "latest"
},
{
"name": "@tanstack/react-start",
"manifest": "website/package.json",
"ecosystem": "npm",
"version_constraint": "latest"
},
{
"name": "@tanstack/router-plugin",
"manifest": "website/package.json",
"ecosystem": "npm",
"version_constraint": "^1.132.0"
},
{
"name": "clsx",
"manifest": "website/package.json",
"ecosystem": "npm",
"version_constraint": "^2.1.1"
},
{
"name": "lucide-react",
"manifest": "website/package.json",
"ecosystem": "npm",
"version_constraint": "^0.545.0"
},
{
"name": "react",
"manifest": "website/package.json",
"ecosystem": "npm",
"version_constraint": "^19.2.0"
},
{
"name": "react-dom",
"manifest": "website/package.json",
"ecosystem": "npm",
"version_constraint": "^19.2.0"
},
{
"name": "tailwind-merge",
"manifest": "website/package.json",
"ecosystem": "npm",
"version_constraint": "^3.6.0"
},
{
"name": "tailwindcss",
"manifest": "website/package.json",
"ecosystem": "npm",
"version_constraint": "^4.1.18"
}
],
"all_dependencies": {
"error": null,
"source": "github-sbom",
"packages": [
{
"name": "@fontsource-variable/geist",
"direct": true,
"version": "^5.2.9",
"ecosystem": "npm"
},
{
"name": "@fontsource-variable/geist-mono",
"direct": true,
"version": "^5.2.8",
"ecosystem": "npm"
},
{
"name": "@tabler/icons-react",
"direct": true,
"version": "3.44.0",
"ecosystem": "npm"
},
{
"name": "@tailwindcss/vite",
"direct": true,
"version": "^4.1.18",
"ecosystem": "npm"
},
{
"name": "@tanstack/react-devtools",
"direct": true,
"version": "latest",
"ecosystem": "npm"
},
{
"name": "@tanstack/react-router",
"direct": true,
"version": "latest",
"ecosystem": "npm"
},
{
"name": "@tanstack/react-router-devtools",
"direct": true,
"version": "latest",
"ecosystem": "npm"
},
{
"name": "@tanstack/react-router-ssr-query",
"direct": true,
"version": "latest",
"ecosystem": "npm"
},
{
"name": "@tanstack/react-start",
"direct": true,
"version": "latest",
"ecosystem": "npm"
},
{
"name": "@tanstack/react-table",
"direct": true,
"version": "8.21.3",
"ecosystem": "npm"
},
{
"name": "@tanstack/react-virtual",
"direct": true,
"version": "3.14.3",
"ecosystem": "npm"
},
{
"name": "@tanstack/router-plugin",
"direct": true,
"version": "^1.132.0",
"ecosystem": "npm"
},
{
"name": "chalk",
"direct": true,
"version": "5.6.2",
"ecosystem": "npm"
},
{
"name": "chalk",
"direct": true,
"version": "^4.1.2",
"ecosystem": "npm"
},
{
"name": "clsx",
"direct": true,
"version": "2.1.1",
"ecosystem": "npm"
},
{
"name": "clsx",
"direct": true,
"version": "^2.1.1",
"ecosystem": "npm"
},
{
"name": "kandown",
"direct": true,
"version": "0.4.0",
"ecosystem": "npm"
},
{
"name": "kandown",
"direct": true,
"version": "0.8.0",
"ecosystem": "npm"
},
{
"name": "lucide-react",
"direct": true,
"version": "1.8.0",
"ecosystem": "npm"
},
{
"name": "lucide-react",
"direct": true,
"version": "^0.545.0",
"ecosystem": "npm"
},
{
"name": "react",
"direct": true,
"version": "19.2.7",
"ecosystem": "npm"
},
{
"name": "react",
"direct": true,
"version": "^19.2.0",
"ecosystem": "npm"
},
{
"name": "react-dom",
"direct": true,
"version": "19.2.7",
"ecosystem": "npm"
},
{
"name": "react-dom",
"direct": true,
"version": "^19.2.0",
"ecosystem": "npm"
},
{
"name": "socket.io",
"direct": true,
"version": "4.8.3",
"ecosystem": "npm"
},
{
"name": "socket.io-client",
"direct": true,
"version": "4.8.3",
"ecosystem": "npm"
},
{
"name": "tailwind-merge",
"direct": true,
"version": "3.5.0",
"ecosystem": "npm"
},
{
"name": "tailwind-merge",
"direct": true,
"version": "^3.6.0",
"ecosystem": "npm"
},
{
"name": "tailwindcss",
"direct": true,
"version": "^4.1.18",
"ecosystem": "npm"
},
{
"name": "@babel/runtime",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@biomejs/biome",
"direct": false,
"version": "2.4.5",
"ecosystem": "npm"
},
{
"name": "@blocknote/code-block",
"direct": false,
"version": "0.49.0",
"ecosystem": "npm"
},
{
"name": "@blocknote/core",
"direct": false,
"version": "0.49.0",
"ecosystem": "npm"
},
{
"name": "@blocknote/mantine",
"direct": false,
"version": "0.49.0",
"ecosystem": "npm"
},
{
"name": "@blocknote/react",
"direct": false,
"version": "0.49.0",
"ecosystem": "npm"
},
{
"name": "@emnapi/core",
"direct": false,
"version": "1.10.0",
"ecosystem": "npm"
},
{
"name": "@emnapi/runtime",
"direct": false,
"version": "1.10.0",
"ecosystem": "npm"
},
{
"name": "@emnapi/wasi-threads",
"direct": false,
"version": "1.2.1",
"ecosystem": "npm"
},
{
"name": "@emoji-mart/data",
"direct": false,
"version": "1.2.1",
"ecosystem": "npm"
},
{
"name": "@floating-ui/core",
"direct": false,
"version": "1.7.5",
"ecosystem": "npm"
},
{
"name": "@floating-ui/dom",
"direct": false,
"version": "1.7.6",
"ecosystem": "npm"
},
{
"name": "@floating-ui/react",
"direct": false,
"version": "0.27.19",
"ecosystem": "npm"
},
{
"name": "@floating-ui/react-dom",
"direct": false,
"version": "2.1.8",
"ecosystem": "npm"
},
{
"name": "@floating-ui/utils",
"direct": false,
"version": "0.2.11",
"ecosystem": "npm"
},
{
"name": "@handlewithcare/prosemirror-inputrules",
"direct": false,
"version": "0.1.4",
"ecosystem": "npm"
},
{
"name": "@mantine/core",
"direct": false,
"version": "8.3.18",
"ecosystem": "npm"
},
{
"name": "@mantine/hooks",
"direct": false,
"version": "8.3.18",
"ecosystem": "npm"
},
{
"name": "@mantine/utils",
"direct": false,
"version": "6.0.22",
"ecosystem": "npm"
},
{
"name": "@napi-rs/wasm-runtime",
"direct": false,
"version": "1.1.4",
"ecosystem": "npm"
},
{
"name": "@oxc-project/runtime",
"direct": false,
"version": "0.133.0",
"ecosystem": "npm"
},
{
"name": "@oxc-project/types",
"direct": false,
"version": "0.133.0",
"ecosystem": "npm"
},
{
"name": "@oxfmt/binding-android-arm-eabi",
"direct": false,
"version": "0.52.0",
"ecosystem": "npm"
},
{
"name": "@oxfmt/binding-android-arm64",
"direct": false,
"version": "0.52.0",
"ecosystem": "npm"
},
{
"name": "@oxfmt/binding-darwin-arm64",
"direct": false,
"version": "0.52.0",
"ecosystem": "npm"
},
{
"name": "@oxfmt/binding-darwin-x64",
"direct": false,
"version": "0.52.0",
"ecosystem": "npm"
},
{
"name": "@oxfmt/binding-freebsd-x64",
"direct": false,
"version": "0.52.0",
"ecosystem": "npm"
},
{
"name": "@oxfmt/binding-linux-arm-gnueabihf",
"direct": false,
"version": "0.52.0",
"ecosystem": "npm"
},
{
"name": "@oxfmt/binding-linux-arm-musleabihf",
"direct": false,
"version": "0.52.0",
"ecosystem": "npm"
},
{
"name": "@oxfmt/binding-linux-arm64-gnu",
"direct": false,
"version": "0.52.0",
"ecosystem": "npm"
},
{
"name": "@oxfmt/binding-linux-arm64-musl",
"direct": false,
"version": "0.52.0",
"ecosystem": "npm"
},
{
"name": "@oxfmt/binding-linux-ppc64-gnu",
"direct": false,
"version": "0.52.0",
"ecosystem": "npm"
},
{
"name": "@oxfmt/binding-linux-riscv64-gnu",
"direct": false,
"version": "0.52.0",
"ecosystem": "npm"
},
{
"name": "@oxfmt/binding-linux-riscv64-musl",
"direct": false,
"version": "0.52.0",
"ecosystem": "npm"
},
{
"name": "@oxfmt/binding-linux-s390x-gnu",
"direct": false,
"version": "0.52.0",
"ecosystem": "npm"
},
{
"name": "@oxfmt/binding-linux-x64-gnu",
"direct": false,
"version": "0.52.0",
"ecosystem": "npm"
},
{
"name": "@oxfmt/binding-linux-x64-musl",
"direct": false,
"version": "0.52.0",
"ecosystem": "npm"
},
{
"name": "@oxfmt/binding-openharmony-arm64",
"direct": false,
"version": "0.52.0",
"ecosystem": "npm"
},
{
"name": "@oxfmt/binding-win32-arm64-msvc",
"direct": false,
"version": "0.52.0",
"ecosystem": "npm"
},
{
"name": "@oxfmt/binding-win32-ia32-msvc",
"direct": false,
"version": "0.52.0",
"ecosystem": "npm"
},
{
"name": "@oxfmt/binding-win32-x64-msvc",
"direct": false,
"version": "0.52.0",
"ecosystem": "npm"
},
{
"name": "@oxlint-tsgolint/darwin-arm64",
"direct": false,
"version": "0.23.0",
"ecosystem": "npm"
},
{
"name": "@oxlint-tsgolint/darwin-x64",
"direct": false,
"version": "0.23.0",
"ecosystem": "npm"
},
{
"name": "@oxlint-tsgolint/linux-arm64",
"direct": false,
"version": "0.23.0",
"ecosystem": "npm"
},
{
"name": "@oxlint-tsgolint/linux-x64",
"direct": false,
"version": "0.23.0",
"ecosystem": "npm"
},
{
"name": "@oxlint-tsgolint/win32-arm64",
"direct": false,
"version": "0.23.0",
"ecosystem": "npm"
},
{
"name": "@oxlint-tsgolint/win32-x64",
"direct": false,
"version": "0.23.0",
"ecosystem": "npm"
},
{
"name": "@oxlint/binding-android-arm-eabi",
"direct": false,
"version": "1.67.0",
"ecosystem": "npm"
},
{
"name": "@oxlint/binding-android-arm64",
"direct": false,
"version": "1.67.0",
"ecosystem": "npm"
},
{
"name": "@oxlint/binding-darwin-arm64",
"direct": false,
"version": "1.67.0",
"ecosystem": "npm"
},
{
"name": "@oxlint/binding-darwin-x64",
"direct": false,
"version": "1.67.0",
"ecosystem": "npm"
},
{
"name": "@oxlint/binding-freebsd-x64",
"direct": false,
"version": "1.67.0",
"ecosystem": "npm"
},
{
"name": "@oxlint/binding-linux-arm-gnueabihf",
"direct": false,
"version": "1.67.0",
"ecosystem": "npm"
},
{
"name": "@oxlint/binding-linux-arm-musleabihf",
"direct": false,
"version": "1.67.0",
"ecosystem": "npm"
},
{
"name": "@oxlint/binding-linux-arm64-gnu",
"direct": false,
"version": "1.67.0",
"ecosystem": "npm"
},
{
"name": "@oxlint/binding-linux-arm64-musl",
"direct": false,
"version": "1.67.0",
"ecosystem": "npm"
},
{
"name": "@oxlint/binding-linux-ppc64-gnu",
"direct": false,
"version": "1.67.0",
"ecosystem": "npm"
},
{
"name": "@oxlint/binding-linux-riscv64-gnu",
"direct": false,
"version": "1.67.0",
"ecosystem": "npm"
},
{
"name": "@oxlint/binding-linux-riscv64-musl",
"direct": false,
"version": "1.67.0",
"ecosystem": "npm"
},
{
"name": "@oxlint/binding-linux-s390x-gnu",
"direct": false,
"version": "1.67.0",
"ecosystem": "npm"
},
{
"name": "@oxlint/binding-linux-x64-gnu",
"direct": false,
"version": "1.67.0",
"ecosystem": "npm"
},
{
"name": "@oxlint/binding-linux-x64-musl",
"direct": false,
"version": "1.67.0",
"ecosystem": "npm"
},
{
"name": "@oxlint/binding-openharmony-arm64",
"direct": false,
"version": "1.67.0",
"ecosystem": "npm"
},
{
"name": "@oxlint/binding-win32-arm64-msvc",
"direct": false,
"version": "1.67.0",
"ecosystem": "npm"
},
{
"name": "@oxlint/binding-win32-ia32-msvc",
"direct": false,
"version": "1.67.0",
"ecosystem": "npm"
},
{
"name": "@oxlint/binding-win32-x64-msvc",
"direct": false,
"version": "1.67.0",
"ecosystem": "npm"
},
{
"name": "@oxlint/plugins",
"direct": false,
"version": "1.61.0",
"ecosystem": "npm"
},
{
"name": "@polka/url",
"direct": false,
"version": "1.0.0-next.29",
"ecosystem": "npm"
},
{
"name": "@radix-ui/react-compose-refs",
"direct": false,
"version": "1.1.2",
"ecosystem": "npm"
},
{
"name": "@radix-ui/react-slot",
"direct": false,
"version": "1.2.4",
"ecosystem": "npm"
},
{
"name": "@rolldown/binding-android-arm64",
"direct": false,
"version": "1.0.3",
"ecosystem": "npm"
},
{
"name": "@rolldown/binding-darwin-arm64",
"direct": false,
"version": "1.0.3",
"ecosystem": "npm"
},
{
"name": "@rolldown/binding-darwin-x64",
"direct": false,
"version": "1.0.3",
"ecosystem": "npm"
},
{
"name": "@rolldown/binding-freebsd-x64",
"direct": false,
"version": "1.0.3",
"ecosystem": "npm"
},
{
"name": "@rolldown/binding-linux-arm-gnueabihf",
"direct": false,
"version": "1.0.3",
"ecosystem": "npm"
},
{
"name": "@rolldown/binding-linux-arm64-gnu",
"direct": false,
"version": "1.0.3",
"ecosystem": "npm"
},
{
"name": "@rolldown/binding-linux-arm64-musl",
"direct": false,
"version": "1.0.3",
"ecosystem": "npm"
},
{
"name": "@rolldown/binding-linux-ppc64-gnu",
"direct": false,
"version": "1.0.3",
"ecosystem": "npm"
},
{
"name": "@rolldown/binding-linux-s390x-gnu",
"direct": false,
"version": "1.0.3",
"ecosystem": "npm"
},
{
"name": "@rolldown/binding-linux-x64-gnu",
"direct": false,
"version": "1.0.3",
"ecosystem": "npm"
},
{
"name": "@rolldown/binding-linux-x64-musl",
"direct": false,
"version": "1.0.3",
"ecosystem": "npm"
},
{
"name": "@rolldown/binding-openharmony-arm64",
"direct": false,
"version": "1.0.3",
"ecosystem": "npm"
},
{
"name": "@rolldown/binding-wasm32-wasi",
"direct": false,
"version": "1.0.3",
"ecosystem": "npm"
},
{
"name": "@rolldown/binding-win32-arm64-msvc",
"direct": false,
"version": "1.0.3",
"ecosystem": "npm"
},
{
"name": "@rolldown/binding-win32-x64-msvc",
"direct": false,
"version": "1.0.3",
"ecosystem": "npm"
},
{
"name": "@rolldown/pluginutils",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "@shikijs/core",
"direct": false,
"version": "4.2.0",
"ecosystem": "npm"
},
{
"name": "@shikijs/engine-javascript",
"direct": false,
"version": "4.2.0",
"ecosystem": "npm"
},
{
"name": "@shikijs/langs-precompiled",
"direct": false,
"version": "4.2.0",
"ecosystem": "npm"
},
{
"name": "@shikijs/primitive",
"direct": false,
"version": "4.2.0",
"ecosystem": "npm"
},
{
"name": "@shikijs/themes",
"direct": false,
"version": "4.2.0",
"ecosystem": "npm"
},
{
"name": "@shikijs/types",
"direct": false,
"version": "4.2.0",
"ecosystem": "npm"
},
{
"name": "@shikijs/vscode-textmate",
"direct": false,
"version": "10.0.2",
"ecosystem": "npm"
},
{
"name": "@socket.io/component-emitter",
"direct": false,
"version": "3.1.2",
"ecosystem": "npm"
},
{
"name": "@standard-schema/spec",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "@tabler/icons",
"direct": false,
"version": "3.44.0",
"ecosystem": "npm"
},
{
"name": "@tailwindcss/typography",
"direct": false,
"version": "^0.5.16",
"ecosystem": "npm"
},
{
"name": "@tanstack/devtools-vite",
"direct": false,
"version": "latest",
"ecosystem": "npm"
},
{
"name": "@tanstack/react-store",
"direct": false,
"version": "0.7.7",
"ecosystem": "npm"
},
{
"name": "@tanstack/store",
"direct": false,
"version": "0.7.7",
"ecosystem": "npm"
},
{
"name": "@tanstack/table-core",
"direct": false,
"version": "8.21.3",
"ecosystem": "npm"
},
{
"name": "@tanstack/virtual-core",
"direct": false,
"version": "3.17.1",
"ecosystem": "npm"
},
{
"name": "@testing-library/dom",
"direct": false,
"version": "^10.4.1",
"ecosystem": "npm"
},
{
"name": "@testing-library/react",
"direct": false,
"version": "^16.3.0",
"ecosystem": "npm"
},
{
"name": "@tiptap/core",
"direct": false,
"version": "3.25.0",
"ecosystem": "npm"
},
{
"name": "@tiptap/core",
"direct": false,
"version": "3.26.0",
"ecosystem": "npm"
},
{
"name": "@tiptap/extension-bold",
"direct": false,
"version": "3.25.0",
"ecosystem": "npm"
},
{
"name": "@tiptap/extension-bold",
"direct": false,
"version": "3.26.0",
"ecosystem": "npm"
},
{
"name": "@tiptap/extension-bubble-menu",
"direct": false,
"version": "3.25.0",
"ecosystem": "npm"
},
{
"name": "@tiptap/extension-bubble-menu",
"direct": false,
"version": "3.26.0",
"ecosystem": "npm"
},
{
"name": "@tiptap/extension-code",
"direct": false,
"version": "3.25.0",
"ecosystem": "npm"
},
{
"name": "@tiptap/extension-code",
"direct": false,
"version": "3.26.0",
"ecosystem": "npm"
},
{
"name": "@tiptap/extension-floating-menu",
"direct": false,
"version": "3.25.0",
"ecosystem": "npm"
},
{
"name": "@tiptap/extension-floating-menu",
"direct": false,
"version": "3.26.0",
"ecosystem": "npm"
},
{
"name": "@tiptap/extension-horizontal-rule",
"direct": false,
"version": "3.25.0",
"ecosystem": "npm"
},
{
"name": "@tiptap/extension-horizontal-rule",
"direct": false,
"version": "3.26.0",
"ecosystem": "npm"
},
{
"name": "@tiptap/extension-italic",
"direct": false,
"version": "3.25.0",
"ecosystem": "npm"
},
{
"name": "@tiptap/extension-italic",
"direct": false,
"version": "3.26.0",
"ecosystem": "npm"
},
{
"name": "@tiptap/extension-paragraph",
"direct": false,
"version": "3.25.0",
"ecosystem": "npm"
},
{
"name": "@tiptap/extension-paragraph",
"direct": false,
"version": "3.26.0",
"ecosystem": "npm"
},
{
"name": "@tiptap/extension-strike",
"direct": false,
"version": "3.25.0",
"ecosystem": "npm"
},
{
"name": "@tiptap/extension-strike",
"direct": false,
"version": "3.26.0",
"ecosystem": "npm"
},
{
"name": "@tiptap/extension-text",
"direct": false,
"version": "3.25.0",
"ecosystem": "npm"
},
{
"name": "@tiptap/extension-text",
"direct": false,
"version": "3.26.0",
"ecosystem": "npm"
},
{
"name": "@tiptap/extension-underline",
"direct": false,
"version": "3.25.0",
"ecosystem": "npm"
},
{
"name": "@tiptap/extension-underline",
"direct": false,
"version": "3.26.0",
"ecosystem": "npm"
},
{
"name": "@tiptap/extensions",
"direct": false,
"version": "3.25.0",
"ecosystem": "npm"
},
{
"name": "@tiptap/extensions",
"direct": false,
"version": "3.26.0",
"ecosystem": "npm"
},
{
"name": "@tiptap/pm",
"direct": false,
"version": "3.25.0",
"ecosystem": "npm"
},
{
"name": "@tiptap/pm",
"direct": false,
"version": "3.26.0",
"ecosystem": "npm"
},
{
"name": "@tiptap/react",
"direct": false,
"version": "3.25.0",
"ecosystem": "npm"
},
{
"name": "@tiptap/react",
"direct": false,
"version": "3.26.0",
"ecosystem": "npm"
},
{
"name": "@tybys/wasm-util",
"direct": false,
"version": "0.10.2",
"ecosystem": "npm"
},
{
"name": "@types/chai",
"direct": false,
"version": "5.2.3",
"ecosystem": "npm"
},
{
"name": "@types/cors",
"direct": false,
"version": "2.8.19",
"ecosystem": "npm"
},
{
"name": "@types/debug",
"direct": false,
"version": "4.1.13",
"ecosystem": "npm"
},
{
"name": "@types/deep-eql",
"direct": false,
"version": "4.0.2",
"ecosystem": "npm"
},
{
"name": "@types/hast",
"direct": false,
"version": "3.0.4",
"ecosystem": "npm"
},
{
"name": "@types/mdast",
"direct": false,
"version": "4.0.4",
"ecosystem": "npm"
},
{
"name": "@types/ms",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "@types/node",
"direct": false,
"version": "25.9.1",
"ecosystem": "npm"
},
{
"name": "@types/node",
"direct": false,
"version": "^22.10.2",
"ecosystem": "npm"
},
{
"name": "@types/react",
"direct": false,
"version": "19.2.16",
"ecosystem": "npm"
},
{
"name": "@types/react",
"direct": false,
"version": "19.2.17",
"ecosystem": "npm"
},
{
"name": "@types/react",
"direct": false,
"version": "^19.2.0",
"ecosystem": "npm"
},
{
"name": "@types/react-dom",
"direct": false,
"version": "19.2.3",
"ecosystem": "npm"
},
{
"name": "@types/react-dom",
"direct": false,
"version": "^19.2.0",
"ecosystem": "npm"
},
{
"name": "@types/unist",
"direct": false,
"version": "3.0.3",
"ecosystem": "npm"
},
{
"name": "@types/use-sync-external-store",
"direct": false,
"version": "0.0.6",
"ecosystem": "npm"
},
{
"name": "@types/use-sync-external-store",
"direct": false,
"version": "1.5.0",
"ecosystem": "npm"
},
{
"name": "@types/ws",
"direct": false,
"version": "8.18.1",
"ecosystem": "npm"
},
{
"name": "@ungap/structured-clone",
"direct": false,
"version": "1.3.1",
"ecosystem": "npm"
},
{
"name": "@vitejs/plugin-react",
"direct": false,
"version": "6.0.2",
"ecosystem": "npm"
},
{
"name": "@vitejs/plugin-react",
"direct": false,
"version": "^6.0.1",
"ecosystem": "npm"
},
{
"name": "@voidzero-dev/vite-plus-core",
"direct": false,
"version": "0.1.24",
"ecosystem": "npm"
},
{
"name": "@voidzero-dev/vite-plus-darwin-arm64",
"direct": false,
"version": "0.1.24",
"ecosystem": "npm"
},
{
"name": "@voidzero-dev/vite-plus-darwin-x64",
"direct": false,
"version": "0.1.24",
"ecosystem": "npm"
},
{
"name": "@voidzero-dev/vite-plus-linux-arm64-gnu",
"direct": false,
"version": "0.1.24",
"ecosystem": "npm"
},
{
"name": "@voidzero-dev/vite-plus-linux-arm64-musl",
"direct": false,
"version": "0.1.24",
"ecosystem": "npm"
},
{
"name": "@voidzero-dev/vite-plus-linux-x64-gnu",
"direct": false,
"version": "0.1.24",
"ecosystem": "npm"
},
{
"name": "@voidzero-dev/vite-plus-linux-x64-musl",
"direct": false,
"version": "0.1.24",
"ecosystem": "npm"
},
{
"name": "@voidzero-dev/vite-plus-test",
"direct": false,
"version": "0.1.24",
"ecosystem": "npm"
},
{
"name": "@voidzero-dev/vite-plus-win32-arm64-msvc",
"direct": false,
"version": "0.1.24",
"ecosystem": "npm"
},
{
"name": "@voidzero-dev/vite-plus-win32-x64-msvc",
"direct": false,
"version": "0.1.24",
"ecosystem": "npm"
},
{
"name": "accepts",
"direct": false,
"version": "1.3.8",
"ecosystem": "npm"
},
{
"name": "assertion-error",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "bail",
"direct": false,
"version": "2.0.2",
"ecosystem": "npm"
},
{
"name": "base64id",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "ccount",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "character-entities",
"direct": false,
"version": "2.0.2",
"ecosystem": "npm"
},
{
"name": "character-entities-html4",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "character-entities-legacy",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "chokidar",
"direct": false,
"version": "4.0.3",
"ecosystem": "npm"
},
{
"name": "class-variance-authority",
"direct": false,
"version": "0.7.1",
"ecosystem": "npm"
},
{
"name": "comma-separated-tokens",
"direct": false,
"version": "2.0.3",
"ecosystem": "npm"
},
{
"name": "cookie",
"direct": false,
"version": "0.7.2",
"ecosystem": "npm"
},
{
"name": "cors",
"direct": false,
"version": "2.8.6",
"ecosystem": "npm"
},
{
"name": "csstype",
"direct": false,
"version": "3.2.3",
"ecosystem": "npm"
},
{
"name": "debug",
"direct": false,
"version": "4.4.3",
"ecosystem": "npm"
},
{
"name": "decode-named-character-reference",
"direct": false,
"version": "1.3.0",
"ecosystem": "npm"
},
{
"name": "dequal",
"direct": false,
"version": "2.0.3",
"ecosystem": "npm"
},
{
"name": "detect-libc",
"direct": false,
"version": "2.1.2",
"ecosystem": "npm"
},
{
"name": "detect-node-es",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "devlop",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "emoji-mart",
"direct": false,
"version": "5.6.0",
"ecosystem": "npm"
},
{
"name": "engine.io",
"direct": false,
"version": "6.6.8",
"ecosystem": "npm"
},
{
"name": "engine.io-client",
"direct": false,
"version": "6.6.5",
"ecosystem": "npm"
},
{
"name": "engine.io-parser",
"direct": false,
"version": "5.2.3",
"ecosystem": "npm"
},
{
"name": "entities",
"direct": false,
"version": "6.0.1",
"ecosystem": "npm"
},
{
"name": "es-module-lexer",
"direct": false,
"version": "1.7.0",
"ecosystem": "npm"
},
{
"name": "escape-string-regexp",
"direct": false,
"version": "5.0.0",
"ecosystem": "npm"
},
{
"name": "extend",
"direct": false,
"version": "3.0.2",
"ecosystem": "npm"
},
{
"name": "fast-deep-equal",
"direct": false,
"version": "3.1.3",
"ecosystem": "npm"
},
{
"name": "fast-equals",
"direct": false,
"version": "5.4.0",
"ecosystem": "npm"
},
{
"name": "fdir",
"direct": false,
"version": "6.5.0",
"ecosystem": "npm"
},
{
"name": "fsevents",
"direct": false,
"version": "2.3.3",
"ecosystem": "npm"
},
{
"name": "get-nonce",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "hast-util-embedded",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "hast-util-format",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "hast-util-from-dom",
"direct": false,
"version": "5.0.1",
"ecosystem": "npm"
},
{
"name": "hast-util-from-html",
"direct": false,
"version": "2.0.3",
"ecosystem": "npm"
},
{
"name": "hast-util-from-parse5",
"direct": false,
"version": "8.0.3",
"ecosystem": "npm"
},
{
"name": "hast-util-has-property",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "hast-util-is-body-ok-link",
"direct": false,
"version": "3.0.1",
"ecosystem": "npm"
},
{
"name": "hast-util-is-element",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "hast-util-minify-whitespace",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "hast-util-parse-selector",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "hast-util-phrasing",
"direct": false,
"version": "3.0.1",
"ecosystem": "npm"
},
{
"name": "hast-util-to-html",
"direct": false,
"version": "9.0.5",
"ecosystem": "npm"
},
{
"name": "hast-util-to-mdast",
"direct": false,
"version": "10.1.2",
"ecosystem": "npm"
},
{
"name": "hast-util-to-text",
"direct": false,
"version": "4.0.2",
"ecosystem": "npm"
},
{
"name": "hast-util-whitespace",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "hastscript",
"direct": false,
"version": "9.0.1",
"ecosystem": "npm"
},
{
"name": "html-void-elements",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "html-whitespace-sensitive-tag-names",
"direct": false,
"version": "3.0.1",
"ecosystem": "npm"
},
{
"name": "is-plain-obj",
"direct": false,
"version": "4.1.0",
"ecosystem": "npm"
},
{
"name": "isomorphic.js",
"direct": false,
"version": "0.2.5",
"ecosystem": "npm"
},
{
"name": "jsdom",
"direct": false,
"version": "^28.1.0",
"ecosystem": "npm"
},
{
"name": "lib0",
"direct": false,
"version": "0.2.117",
"ecosystem": "npm"
},
{
"name": "lightningcss",
"direct": false,
"version": "1.32.0",
"ecosystem": "npm"
},
{
"name": "lightningcss-android-arm64",
"direct": false,
"version": "1.32.0",
"ecosystem": "npm"
},
{
"name": "lightningcss-darwin-arm64",
"direct": false,
"version": "1.32.0",
"ecosystem": "npm"
},
{
"name": "lightningcss-darwin-x64",
"direct": false,
"version": "1.32.0",
"ecosystem": "npm"
},
{
"name": "lightningcss-freebsd-x64",
"direct": false,
"version": "1.32.0",
"ecosystem": "npm"
},
{
"name": "lightningcss-linux-arm-gnueabihf",
"direct": false,
"version": "1.32.0",
"ecosystem": "npm"
},
{
"name": "lightningcss-linux-arm64-gnu",
"direct": false,
"version": "1.32.0",
"ecosystem": "npm"
},
{
"name": "lightningcss-linux-arm64-musl",
"direct": false,
"version": "1.32.0",
"ecosystem": "npm"
},
{
"name": "lightningcss-linux-x64-gnu",
"direct": false,
"version": "1.32.0",
"ecosystem": "npm"
},
{
"name": "lightningcss-linux-x64-musl",
"direct": false,
"version": "1.32.0",
"ecosystem": "npm"
},
{
"name": "lightningcss-win32-arm64-msvc",
"direct": false,
"version": "1.32.0",
"ecosystem": "npm"
},
{
"name": "lightningcss-win32-x64-msvc",
"direct": false,
"version": "1.32.0",
"ecosystem": "npm"
},
{
"name": "lodash.merge",
"direct": false,
"version": "4.6.2",
"ecosystem": "npm"
},
{
"name": "longest-streak",
"direct": false,
"version": "3.1.0",
"ecosystem": "npm"
},
{
"name": "markdown-table",
"direct": false,
"version": "3.0.4",
"ecosystem": "npm"
},
{
"name": "mdast-util-find-and-replace",
"direct": false,
"version": "3.0.2",
"ecosystem": "npm"
},
{
"name": "mdast-util-from-markdown",
"direct": false,
"version": "2.0.3",
"ecosystem": "npm"
},
{
"name": "mdast-util-gfm",
"direct": false,
"version": "3.1.0",
"ecosystem": "npm"
},
{
"name": "mdast-util-gfm-autolink-literal",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "mdast-util-gfm-footnote",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "mdast-util-gfm-strikethrough",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "mdast-util-gfm-table",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "mdast-util-gfm-task-list-item",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "mdast-util-phrasing",
"direct": false,
"version": "4.1.0",
"ecosystem": "npm"
},
{
"name": "mdast-util-to-hast",
"direct": false,
"version": "13.2.1",
"ecosystem": "npm"
},
{
"name": "mdast-util-to-markdown",
"direct": false,
"version": "2.1.2",
"ecosystem": "npm"
},
{
"name": "mdast-util-to-string",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "micromark",
"direct": false,
"version": "4.0.2",
"ecosystem": "npm"
},
{
"name": "micromark-core-commonmark",
"direct": false,
"version": "2.0.3",
"ecosystem": "npm"
},
{
"name": "micromark-extension-gfm",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "micromark-extension-gfm-autolink-literal",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "micromark-extension-gfm-footnote",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "micromark-extension-gfm-strikethrough",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "micromark-extension-gfm-table",
"direct": false,
"version": "2.1.1",
"ecosystem": "npm"
},
{
"name": "micromark-extension-gfm-tagfilter",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "micromark-extension-gfm-task-list-item",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "micromark-factory-destination",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "micromark-factory-label",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "micromark-factory-space",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "micromark-factory-title",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "micromark-factory-whitespace",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "micromark-util-character",
"direct": false,
"version": "2.1.1",
"ecosystem": "npm"
},
{
"name": "micromark-util-chunked",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "micromark-util-classify-character",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "micromark-util-combine-extensions",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "micromark-util-decode-numeric-character-reference",
"direct": false,
"version": "2.0.2",
"ecosystem": "npm"
},
{
"name": "micromark-util-decode-string",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "micromark-util-encode",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "micromark-util-html-tag-name",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "micromark-util-normalize-identifier",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "micromark-util-resolve-all",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "micromark-util-sanitize-uri",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "micromark-util-subtokenize",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "micromark-util-symbol",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "micromark-util-types",
"direct": false,
"version": "2.0.2",
"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": "mrmime",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "ms",
"direct": false,
"version": "2.1.3",
"ecosystem": "npm"
},
{
"name": "nanoid",
"direct": false,
"version": "3.3.12",
"ecosystem": "npm"
},
{
"name": "negotiator",
"direct": false,
"version": "0.6.3",
"ecosystem": "npm"
},
{
"name": "object-assign",
"direct": false,
"version": "4.1.1",
"ecosystem": "npm"
},
{
"name": "obug",
"direct": false,
"version": "2.1.1",
"ecosystem": "npm"
},
{
"name": "obug",
"direct": false,
"version": "2.1.2",
"ecosystem": "npm"
},
{
"name": "oniguruma-parser",
"direct": false,
"version": "0.12.2",
"ecosystem": "npm"
},
{
"name": "oniguruma-to-es",
"direct": false,
"version": "4.3.6",
"ecosystem": "npm"
},
{
"name": "orderedmap",
"direct": false,
"version": "2.1.1",
"ecosystem": "npm"
},
{
"name": "oxfmt",
"direct": false,
"version": "0.52.0",
"ecosystem": "npm"
},
{
"name": "oxlint",
"direct": false,
"version": "1.67.0",
"ecosystem": "npm"
},
{
"name": "oxlint-tsgolint",
"direct": false,
"version": "0.23.0",
"ecosystem": "npm"
},
{
"name": "parse5",
"direct": false,
"version": "7.3.0",
"ecosystem": "npm"
},
{
"name": "picocolors",
"direct": false,
"version": "1.1.1",
"ecosystem": "npm"
},
{
"name": "picomatch",
"direct": false,
"version": "4.0.4",
"ecosystem": "npm"
},
{
"name": "pixelmatch",
"direct": false,
"version": "7.2.0",
"ecosystem": "npm"
},
{
"name": "pngjs",
"direct": false,
"version": "7.0.0",
"ecosystem": "npm"
},
{
"name": "postcss",
"direct": false,
"version": "8.5.15",
"ecosystem": "npm"
},
{
"name": "property-information",
"direct": false,
"version": "7.2.0",
"ecosystem": "npm"
},
{
"name": "prosemirror-changeset",
"direct": false,
"version": "2.4.1",
"ecosystem": "npm"
},
{
"name": "prosemirror-commands",
"direct": false,
"version": "1.7.1",
"ecosystem": "npm"
},
{
"name": "prosemirror-dropcursor",
"direct": false,
"version": "1.8.2",
"ecosystem": "npm"
},
{
"name": "prosemirror-gapcursor",
"direct": false,
"version": "1.4.1",
"ecosystem": "npm"
},
{
"name": "prosemirror-highlight",
"direct": false,
"version": "0.15.1",
"ecosystem": "npm"
},
{
"name": "prosemirror-history",
"direct": false,
"version": "1.5.0",
"ecosystem": "npm"
},
{
"name": "prosemirror-inputrules",
"direct": false,
"version": "1.5.1",
"ecosystem": "npm"
},
{
"name": "prosemirror-keymap",
"direct": false,
"version": "1.2.3",
"ecosystem": "npm"
},
{
"name": "prosemirror-model",
"direct": false,
"version": "1.25.7",
"ecosystem": "npm"
},
{
"name": "prosemirror-schema-list",
"direct": false,
"version": "1.5.1",
"ecosystem": "npm"
},
{
"name": "prosemirror-state",
"direct": false,
"version": "1.4.4",
"ecosystem": "npm"
},
{
"name": "prosemirror-tables",
"direct": false,
"version": "1.8.5",
"ecosystem": "npm"
},
{
"name": "prosemirror-transform",
"direct": false,
"version": "1.12.0",
"ecosystem": "npm"
},
{
"name": "prosemirror-view",
"direct": false,
"version": "1.41.8",
"ecosystem": "npm"
},
{
"name": "react-devtools-core",
"direct": false,
"version": "7.0.1",
"ecosystem": "npm"
},
{
"name": "react-icons",
"direct": false,
"version": "5.6.0",
"ecosystem": "npm"
},
{
"name": "react-number-format",
"direct": false,
"version": "5.4.5",
"ecosystem": "npm"
},
{
"name": "react-remove-scroll",
"direct": false,
"version": "2.7.2",
"ecosystem": "npm"
},
{
"name": "react-remove-scroll-bar",
"direct": false,
"version": "2.3.8",
"ecosystem": "npm"
},
{
"name": "react-style-singleton",
"direct": false,
"version": "2.2.3",
"ecosystem": "npm"
},
{
"name": "react-textarea-autosize",
"direct": false,
"version": "8.5.9",
"ecosystem": "npm"
},
{
"name": "readdirp",
"direct": false,
"version": "4.1.2",
"ecosystem": "npm"
},
{
"name": "regex",
"direct": false,
"version": "6.1.0",
"ecosystem": "npm"
},
{
"name": "regex-recursion",
"direct": false,
"version": "6.0.2",
"ecosystem": "npm"
},
{
"name": "regex-utilities",
"direct": false,
"version": "2.3.0",
"ecosystem": "npm"
},
{
"name": "rehype-format",
"direct": false,
"version": "5.0.1",
"ecosystem": "npm"
},
{
"name": "rehype-minify-whitespace",
"direct": false,
"version": "6.0.2",
"ecosystem": "npm"
},
{
"name": "rehype-parse",
"direct": false,
"version": "9.0.1",
"ecosystem": "npm"
},
{
"name": "rehype-remark",
"direct": false,
"version": "10.0.1",
"ecosystem": "npm"
},
{
"name": "rehype-stringify",
"direct": false,
"version": "10.0.1",
"ecosystem": "npm"
},
{
"name": "remark-gfm",
"direct": false,
"version": "4.0.1",
"ecosystem": "npm"
},
{
"name": "remark-parse",
"direct": false,
"version": "11.0.0",
"ecosystem": "npm"
},
{
"name": "remark-rehype",
"direct": false,
"version": "11.1.2",
"ecosystem": "npm"
},
{
"name": "remark-stringify",
"direct": false,
"version": "11.0.0",
"ecosystem": "npm"
},
{
"name": "rolldown",
"direct": false,
"version": "1.0.3",
"ecosystem": "npm"
},
{
"name": "rope-sequence",
"direct": false,
"version": "1.3.4",
"ecosystem": "npm"
},
{
"name": "scheduler",
"direct": false,
"version": "0.27.0",
"ecosystem": "npm"
},
{
"name": "shell-quote",
"direct": false,
"version": "1.8.4",
"ecosystem": "npm"
},
{
"name": "signal-exit",
"direct": false,
"version": "3.0.7",
"ecosystem": "npm"
},
{
"name": "sirv",
"direct": false,
"version": "3.0.2",
"ecosystem": "npm"
},
{
"name": "socket.io-adapter",
"direct": false,
"version": "2.5.7",
"ecosystem": "npm"
},
{
"name": "socket.io-parser",
"direct": false,
"version": "4.2.6",
"ecosystem": "npm"
},
{
"name": "source-map-js",
"direct": false,
"version": "1.2.1",
"ecosystem": "npm"
},
{
"name": "space-separated-tokens",
"direct": false,
"version": "2.0.2",
"ecosystem": "npm"
},
{
"name": "std-env",
"direct": false,
"version": "4.1.0",
"ecosystem": "npm"
},
{
"name": "stringify-entities",
"direct": false,
"version": "4.0.4",
"ecosystem": "npm"
},
{
"name": "tabbable",
"direct": false,
"version": "6.4.0",
"ecosystem": "npm"
},
{
"name": "tinybench",
"direct": false,
"version": "2.9.0",
"ecosystem": "npm"
},
{
"name": "tinyexec",
"direct": false,
"version": "1.2.4",
"ecosystem": "npm"
},
{
"name": "tinyglobby",
"direct": false,
"version": "0.2.17",
"ecosystem": "npm"
},
{
"name": "tinypool",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "totalist",
"direct": false,
"version": "3.0.1",
"ecosystem": "npm"
},
{
"name": "trim-lines",
"direct": false,
"version": "3.0.1",
"ecosystem": "npm"
},
{
"name": "trim-trailing-lines",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "trough",
"direct": false,
"version": "2.2.0",
"ecosystem": "npm"
},
{
"name": "tslib",
"direct": false,
"version": "2.8.1",
"ecosystem": "npm"
},
{
"name": "type-fest",
"direct": false,
"version": "4.41.0",
"ecosystem": "npm"
},
{
"name": "typescript",
"direct": false,
"version": "^6.0.2",
"ecosystem": "npm"
},
{
"name": "undici-types",
"direct": false,
"version": "7.24.6",
"ecosystem": "npm"
},
{
"name": "unified",
"direct": false,
"version": "11.0.5",
"ecosystem": "npm"
},
{
"name": "unist-util-find-after",
"direct": false,
"version": "5.0.0",
"ecosystem": "npm"
},
{
"name": "unist-util-is",
"direct": false,
"version": "6.0.1",
"ecosystem": "npm"
},
{
"name": "unist-util-position",
"direct": false,
"version": "5.0.0",
"ecosystem": "npm"
},
{
"name": "unist-util-stringify-position",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "unist-util-visit",
"direct": false,
"version": "5.1.0",
"ecosystem": "npm"
},
{
"name": "unist-util-visit-parents",
"direct": false,
"version": "6.0.2",
"ecosystem": "npm"
},
{
"name": "use-callback-ref",
"direct": false,
"version": "1.3.3",
"ecosystem": "npm"
},
{
"name": "use-composed-ref",
"direct": false,
"version": "1.4.0",
"ecosystem": "npm"
},
{
"name": "use-isomorphic-layout-effect",
"direct": false,
"version": "1.2.1",
"ecosystem": "npm"
},
{
"name": "use-latest",
"direct": false,
"version": "1.3.0",
"ecosystem": "npm"
},
{
"name": "use-sidecar",
"direct": false,
"version": "1.1.3",
"ecosystem": "npm"
},
{
"name": "use-sync-external-store",
"direct": false,
"version": "1.6.0",
"ecosystem": "npm"
},
{
"name": "vary",
"direct": false,
"version": "1.1.2",
"ecosystem": "npm"
},
{
"name": "vfile",
"direct": false,
"version": "6.0.3",
"ecosystem": "npm"
},
{
"name": "vfile-location",
"direct": false,
"version": "5.0.3",
"ecosystem": "npm"
},
{
"name": "vfile-message",
"direct": false,
"version": "4.0.3",
"ecosystem": "npm"
},
{
"name": "vite",
"direct": false,
"version": "8.0.16",
"ecosystem": "npm"
},
{
"name": "vite",
"direct": false,
"version": "^8.0.0",
"ecosystem": "npm"
},
{
"name": "vite-plus",
"direct": false,
"version": "0.1.24",
"ecosystem": "npm"
},
{
"name": "vitest",
"direct": false,
"version": "^4.1.5",
"ecosystem": "npm"
},
{
"name": "w3c-keyname",
"direct": false,
"version": "2.2.8",
"ecosystem": "npm"
},
{
"name": "web-namespaces",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "ws",
"direct": false,
"version": "7.5.11",
"ecosystem": "npm"
},
{
"name": "ws",
"direct": false,
"version": "8.20.1",
"ecosystem": "npm"
},
{
"name": "ws",
"direct": false,
"version": "8.21.0",
"ecosystem": "npm"
},
{
"name": "xmlhttprequest-ssl",
"direct": false,
"version": "2.1.2",
"ecosystem": "npm"
},
{
"name": "y-prosemirror",
"direct": false,
"version": "1.3.7",
"ecosystem": "npm"
},
{
"name": "y-protocols",
"direct": false,
"version": "1.0.7",
"ecosystem": "npm"
},
{
"name": "yjs",
"direct": false,
"version": "13.6.31",
"ecosystem": "npm"
},
{
"name": "zwitch",
"direct": false,
"version": "2.0.4",
"ecosystem": "npm"
}
],
"collected": true,
"truncated": false,
"total_count": 415,
"direct_count": 29,
"indirect_count": 386
}
},
"maintainership": {
"issues": {
"open_prs": 8,
"merged_prs": 42,
"open_issues": 17,
"closed_ratio": 0.717,
"closed_issues": 43,
"closed_unmerged_prs": 26
},
"bus_factor": 1,
"bot_contributors": 3,
"top_contributors": [
{
"type": "User",
"login": "vava-nessa",
"commits": 513,
"avatar_url": "https://avatars.githubusercontent.com/u/5466264?v=4"
},
{
"type": "User",
"login": "PhucTruong-ctrl",
"commits": 17,
"avatar_url": "https://avatars.githubusercontent.com/u/21700150?v=4"
},
{
"type": "User",
"login": "erwinh22",
"commits": 11,
"avatar_url": "https://avatars.githubusercontent.com/u/6641858?v=4"
},
{
"type": "User",
"login": "chindris-mihai-alexandru",
"commits": 7,
"avatar_url": "https://avatars.githubusercontent.com/u/12643176?v=4"
},
{
"type": "User",
"login": "whit3rabbit",
"commits": 5,
"avatar_url": "https://avatars.githubusercontent.com/u/12357518?v=4"
},
{
"type": "User",
"login": "serajbaltu",
"commits": 3,
"avatar_url": "https://avatars.githubusercontent.com/u/100094038?v=4"
},
{
"type": "User",
"login": "MoriDanWork",
"commits": 2,
"avatar_url": "https://avatars.githubusercontent.com/u/55363096?v=4"
},
{
"type": "User",
"login": "stgreenb",
"commits": 2,
"avatar_url": "https://avatars.githubusercontent.com/u/18483964?v=4"
},
{
"type": "User",
"login": "skylaweber",
"commits": 1,
"avatar_url": "https://avatars.githubusercontent.com/u/172871734?v=4"
},
{
"type": "User",
"login": "kwpale",
"commits": 1,
"avatar_url": "https://avatars.githubusercontent.com/u/22188849?v=4"
}
],
"contributors_sampled": 10,
"top_contributor_share": 0.913
},
"quality_signals": {
"has_ci": true,
"has_tests": true,
"ci_workflows": [
"check-discord-link.yml",
"commit-log.yml",
"discord-issues.yml",
"discord-prs.yml",
"docker.yml",
"release.yml",
"security-audit.yml"
],
"has_docs_dir": true,
"linter_configs": [
"biome.json"
],
"has_editorconfig": false,
"has_linter_config": true,
"has_precommit_config": false
},
"security_signals": {
"lockfiles": [
"package-lock.json",
"pnpm-lock.yaml"
],
"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": 0,
"reason": "branch protection not enabled on development/release branches",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
},
{
"name": "CI-Tests",
"score": 10,
"reason": "3 out of 3 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": 1,
"reason": "Found 3/30 approved changesets -- score normalized to 1",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
},
{
"name": "Contributors",
"score": 10,
"reason": "project has 3 contributing companies or organizations -- score normalized to 10",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
},
{
"name": "Dangerous-Workflow",
"score": 0,
"reason": "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": 9,
"reason": "license file detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
},
{
"name": "Maintained",
"score": 10,
"reason": "30 commit(s) and 13 issue activity found in the last 90 days -- score normalized to 10",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
},
{
"name": "Packaging",
"score": 10,
"reason": "packaging workflow detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
},
{
"name": "Pinned-Dependencies",
"score": 0,
"reason": "dependency not pinned by hash detected -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
},
{
"name": "SAST",
"score": 0,
"reason": "SAST tool is not run on all commits -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
},
{
"name": "Security-Policy",
"score": 10,
"reason": "security policy file detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
},
{
"name": "Signed-Releases",
"score": null,
"reason": "no releases found",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
},
{
"name": "Token-Permissions",
"score": 0,
"reason": "detected GitHub workflow tokens with excessive permissions",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
},
{
"name": "Vulnerabilities",
"score": 8,
"reason": "2 existing vulnerabilities detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
}
],
"commit": "fc83df1abee1b8e5e755f5d4b97caeea8d5ef701",
"ran_at": "2026-07-23T19:59:36Z",
"aggregate_score": 4.8,
"scorecard_version": "v5.5.0"
},
"has_codeql_workflow": false,
"has_security_policy": true,
"has_dependabot_config": true
},
"contribution_flow": {
"collected": true,
"ci_last_run_at": "2026-07-23T13:25:57Z",
"oldest_open_prs": [
{
"number": 125,
"created_at": "2026-06-22T04:27:57Z",
"last_comment_at": "2026-06-22T04:28:00Z",
"last_comment_author": "vercel"
},
{
"number": 130,
"created_at": "2026-06-29T04:26:59Z",
"last_comment_at": "2026-06-29T04:27:02Z",
"last_comment_author": "vercel"
},
{
"number": 131,
"created_at": "2026-06-29T04:27:12Z",
"last_comment_at": "2026-06-29T04:27:15Z",
"last_comment_author": "vercel"
},
{
"number": 134,
"created_at": "2026-07-06T04:26:48Z",
"last_comment_at": "2026-07-06T04:26:52Z",
"last_comment_author": "vercel"
},
{
"number": 135,
"created_at": "2026-07-06T04:27:06Z",
"last_comment_at": "2026-07-06T04:27:08Z",
"last_comment_author": "vercel"
},
{
"number": 136,
"created_at": "2026-07-06T04:27:15Z",
"last_comment_at": "2026-07-06T04:27:18Z",
"last_comment_author": "vercel"
},
{
"number": 138,
"created_at": "2026-07-20T04:32:15Z",
"last_comment_at": "2026-07-20T04:32:18Z",
"last_comment_author": "vercel"
},
{
"number": 139,
"created_at": "2026-07-22T07:56:43Z",
"last_comment_at": "2026-07-22T07:56:48Z",
"last_comment_author": "vercel"
}
],
"last_merged_pr_at": "2026-06-27T15:34:34Z",
"ci_last_conclusion": "FAILURE",
"oldest_open_issues": [
{
"number": 18,
"created_at": "2026-02-25T02:15:50Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 21,
"created_at": "2026-02-26T13:45:01Z",
"last_comment_at": "2026-03-22T05:28:40Z",
"last_comment_author": "Rishabh-Bajpai"
},
{
"number": 27,
"created_at": "2026-02-27T20:21:25Z",
"last_comment_at": "2026-03-13T20:17:29Z",
"last_comment_author": "iTzFaisal"
},
{
"number": 30,
"created_at": "2026-03-03T15:37:03Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 35,
"created_at": "2026-03-07T15:01:15Z",
"last_comment_at": "2026-03-29T10:20:05Z",
"last_comment_author": "Nsomnia"
},
{
"number": 51,
"created_at": "2026-03-31T08:59:38Z",
"last_comment_at": "2026-03-31T09:37:58Z",
"last_comment_author": "vava-nessa"
},
{
"number": 75,
"created_at": "2026-04-21T06:46:02Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 101,
"created_at": "2026-05-28T15:40:11Z",
"last_comment_at": "2026-05-28T15:44:53Z",
"last_comment_author": "karneaud"
},
{
"number": 109,
"created_at": "2026-06-02T23:07:05Z",
"last_comment_at": "2026-06-07T23:13:36Z",
"last_comment_author": "karneaud"
},
{
"number": 116,
"created_at": "2026-06-10T17:58:55Z",
"last_comment_at": "2026-06-11T11:56:02Z",
"last_comment_author": "vava-nessa"
},
{
"number": 117,
"created_at": "2026-06-10T17:59:07Z",
"last_comment_at": "2026-06-11T12:25:50Z",
"last_comment_author": "vava-nessa"
},
{
"number": 118,
"created_at": "2026-06-11T14:59:41Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 119,
"created_at": "2026-06-12T17:15:31Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 124,
"created_at": "2026-06-21T18:57:54Z",
"last_comment_at": "2026-06-23T05:38:02Z",
"last_comment_author": "houleixx"
},
{
"number": 133,
"created_at": "2026-07-04T06:03:55Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 137,
"created_at": "2026-07-08T18:30:37Z",
"last_comment_at": "2026-07-08T18:46:17Z",
"last_comment_author": "stgreenb"
},
{
"number": 140,
"created_at": "2026-07-22T21:35:11Z",
"last_comment_at": null,
"last_comment_author": null
}
]
}
},
"config": {
"disabled_metrics": [],
"disabled_categories": [],
"disabled_components": {}
},
"source": {
"url": "https://github.com/vava-nessa/free-coding-models",
"host": "github.com",
"name": "free-coding-models",
"owner": "vava-nessa"
},
"metrics": {
"overall": {
"key": "overall",
"band": "good",
"name": "Overall health",
"note": null,
"notes": [],
"value": 71,
"inputs": {
"security": 58,
"vitality": 87,
"community": 63,
"governance": 59,
"engineering": 86
},
"components": []
},
"categories": [
{
"key": "vitality",
"band": "excellent",
"name": "Vitality",
"value": 87,
"weight": 0.22,
"metrics": [
{
"key": "development_activity",
"band": "good",
"name": "Development activity",
"note": null,
"notes": [],
"value": 78,
"inputs": {
"commits_last_year": 599,
"human_commit_share": 0.92,
"days_since_last_push": 3,
"active_weeks_last_year": 21
},
"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": "21/52 weeks with commits",
"points": 14.5,
"status": "partial",
"details": [
{
"code": "commit_cadence_weeks",
"params": {
"weeks": 21
}
}
],
"max_points": 36
},
{
"key": "commit_volume",
"name": "Commit volume",
"detail": "599 commits in the last year",
"points": 18,
"status": "met",
"details": [
{
"code": "commits_last_year",
"params": {
"count": 599
}
}
],
"max_points": 18
},
{
"key": "openssf_scorecard_maintained",
"name": "OpenSSF Scorecard: Maintained",
"detail": "30 commit(s) and 13 issue activity found in the last 90 days -- score normalized to 10",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
},
{
"key": "release_discipline",
"band": "excellent",
"name": "Release discipline",
"note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"openssf_scorecard_signed_releases"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 100,
"inputs": {
"releases_count": 100,
"latest_release_tag": "v0.5.50",
"releases_from_tags": false,
"days_since_latest_release": 5,
"mean_days_between_releases": 1.2
},
"components": [
{
"key": "ships_releases",
"name": "Ships releases",
"detail": "100 releases published",
"points": 27,
"status": "met",
"details": [
{
"code": "releases_published",
"params": {
"count": 100
}
}
],
"max_points": 27
},
{
"key": "release_recency",
"name": "Release recency",
"detail": "latest release 5 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "release_recency",
"params": {
"days": 5
}
}
],
"max_points": 36
},
{
"key": "release_cadence",
"name": "Release cadence",
"detail": "a release every ~1.2 days",
"points": 27,
"status": "met",
"details": [
{
"code": "release_cadence",
"params": {
"gap": 1.2
}
}
],
"max_points": 27
},
{
"key": "openssf_scorecard_signed_releases",
"name": "OpenSSF Scorecard: Signed-Releases",
"detail": "no releases found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 10
}
]
},
{
"key": "abandonment",
"band": "excellent",
"name": "Abandonment",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"cap": null,
"state": "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": "moderate",
"name": "Community & Adoption",
"value": 63,
"weight": 0.18,
"metrics": [
{
"key": "popularity",
"band": "good",
"name": "Popularity & adoption",
"note": null,
"notes": [],
"value": 81,
"inputs": {
"forks": 238,
"stars": 2186,
"watchers": 18,
"growth_state": "unverified",
"growth_factor_pct": 100,
"growth_unverified_reason": "no_history"
},
"components": [
{
"key": "stars",
"name": "Stars",
"detail": "2,186 stars",
"points": 54.2,
"status": "partial",
"details": [
{
"code": "stars",
"params": {
"count": 2186
}
}
],
"max_points": 60
},
{
"key": "forks",
"name": "Forks",
"detail": "238 forks",
"points": 19.8,
"status": "partial",
"details": [
{
"code": "forks",
"params": {
"count": 238
}
}
],
"max_points": 25
},
{
"key": "watchers",
"name": "Watchers",
"detail": "18 watchers",
"points": 6.8,
"status": "partial",
"details": [
{
"code": "watchers",
"params": {
"count": 18
}
}
],
"max_points": 15
}
]
},
{
"key": "community_health",
"band": "at_risk",
"name": "Community health",
"note": null,
"notes": [],
"value": 44,
"inputs": {
"has_readme": true,
"has_license": true,
"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": 22.5,
"status": "met",
"details": [],
"max_points": 22.5
},
{
"key": "license",
"name": "License",
"detail": "license file present, not a recognized license",
"points": 16.9,
"status": "partial",
"details": [
{
"code": "license_custom",
"params": {}
}
],
"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
}
]
},
{
"key": "ecosystem_adoption",
"band": "moderate",
"name": "Ecosystem adoption (downloads)",
"note": "Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"registry_dependents"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 62,
"inputs": {
"packages": [
"free-coding-models"
],
"dependents": null,
"ecosystems": "npm",
"total_downloads": null,
"monthly_downloads": 5344
},
"components": [
{
"key": "monthly_downloads",
"name": "Monthly downloads",
"detail": "5,344 downloads/month across npm",
"points": 49.7,
"status": "partial",
"details": [
{
"code": "downloads_monthly",
"params": {
"count": 5344,
"ecosystems": "npm"
}
}
],
"max_points": 80
},
{
"key": "registry_dependents",
"name": "Registry dependents",
"detail": "not reported by this ecosystem",
"points": 0,
"status": "excluded",
"details": [
{
"code": "not_reported_by_this_ecosystem",
"params": {}
}
],
"max_points": 20
}
]
}
],
"description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
},
{
"key": "governance",
"band": "moderate",
"name": "Sustainability & Governance",
"value": 59,
"weight": 0.24,
"metrics": [
{
"key": "maintainer_resilience",
"band": "at_risk",
"name": "Maintainer resilience (bus factor)",
"note": null,
"notes": [],
"value": 34,
"inputs": {
"bus_factor": 1,
"contributors_sampled": 10,
"top_contributor_share": 0.913
},
"components": [
{
"key": "bus_factor",
"name": "Bus factor",
"detail": "1 contributor(s) cover half of all commits",
"points": 9,
"status": "partial",
"details": [
{
"code": "bus_factor",
"params": {
"count": 1
}
}
],
"max_points": 54
},
{
"key": "commit_distribution",
"name": "Commit distribution",
"detail": "top contributor authored 91% of commits",
"points": 2,
"status": "partial",
"details": [
{
"code": "top_contributor_share",
"params": {
"share": 91
}
}
],
"max_points": 22.5
},
{
"key": "contributor_breadth",
"name": "Contributor breadth",
"detail": "10 contributors",
"points": 13.5,
"status": "met",
"details": [
{
"code": "contributors_sampled",
"params": {
"count": 10
}
}
],
"max_points": 13.5
},
{
"key": "openssf_scorecard_contributors",
"name": "OpenSSF Scorecard: Contributors",
"detail": "project has 3 contributing companies or organizations -- score normalized to 10",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
},
{
"key": "responsiveness",
"band": "moderate",
"name": "Issue & PR responsiveness",
"note": null,
"notes": [],
"value": 59,
"inputs": {
"merged_prs": 42,
"open_issues": 17,
"closed_issues": 43,
"issue_closed_ratio": 0.717,
"closed_unmerged_prs": 26
},
"components": [
{
"key": "issue_resolution",
"name": "Issue resolution",
"detail": "72% of issues closed",
"points": 33.5,
"status": "partial",
"details": [
{
"code": "issues_closed_share",
"params": {
"share": 72
}
}
],
"max_points": 46.75
},
{
"key": "pr_acceptance",
"name": "PR acceptance",
"detail": "42/68 decided PRs merged",
"points": 23.6,
"status": "partial",
"details": [
{
"code": "decided_prs_merged",
"params": {
"merged": 42,
"decided": 68
}
}
],
"max_points": 38.25
},
{
"key": "openssf_scorecard_code_review",
"name": "OpenSSF Scorecard: Code-Review",
"detail": "Found 3/30 approved changesets -- score normalized to 1",
"points": 1.5,
"status": "partial",
"details": [],
"max_points": 15
}
]
},
{
"key": "stewardship",
"band": "moderate",
"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": 56,
"inputs": {
"followers": 123,
"owner_type": "User",
"is_verified": null,
"owner_login": "vava-nessa",
"public_repos": 10,
"account_age_days": 4693
},
"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": "123 followers of vava-nessa",
"points": 15.1,
"status": "partial",
"details": [
{
"code": "owner_followers",
"params": {
"count": 123,
"login": "vava-nessa"
}
}
],
"max_points": 25
},
{
"key": "track_record",
"name": "Track record",
"detail": "10 public repos, account ~12 yr old",
"points": 19.6,
"status": "partial",
"details": [
{
"code": "public_repos",
"params": {
"count": 10
}
},
{
"code": "account_age_years",
"params": {
"years": 12
}
}
],
"max_points": 25
}
]
},
{
"key": "package_maintenance",
"band": "excellent",
"name": "Package maintenance",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"packages": [
"free-coding-models"
],
"ecosystems": "npm",
"any_deprecated": false,
"min_days_since_publish": 5
},
"components": [
{
"key": "published_resolvable",
"name": "Published & resolvable",
"detail": "1 package(s) on npm",
"points": 25,
"status": "met",
"details": [
{
"code": "packages_published",
"params": {
"count": 1,
"ecosystems": "npm"
}
}
],
"max_points": 25
},
{
"key": "publish_recency",
"name": "Publish recency",
"detail": "latest publish 5 days ago",
"points": 35,
"status": "met",
"details": [
{
"code": "publish_recency",
"params": {
"days": 5
}
}
],
"max_points": 35
},
{
"key": "version_history",
"name": "Version history",
"detail": "214 published versions",
"points": 20,
"status": "met",
"details": [
{
"code": "published_versions",
"params": {
"count": 214
}
}
],
"max_points": 20
},
{
"key": "not_deprecated",
"name": "Not deprecated",
"detail": "active, not deprecated or yanked",
"points": 20,
"status": "met",
"details": [
{
"code": "package_not_deprecated",
"params": {}
}
],
"max_points": 20
}
]
}
],
"description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
},
{
"key": "engineering",
"band": "excellent",
"name": "Engineering Quality",
"value": 86,
"weight": 0.2,
"metrics": [
{
"key": "engineering_practices",
"band": "good",
"name": "Engineering practices",
"note": null,
"notes": [],
"value": 84,
"inputs": {
"has_ci": true,
"has_tests": true,
"has_editorconfig": false,
"has_linter_config": true,
"has_precommit_config": false
},
"components": [
{
"key": "ci_workflows",
"name": "CI workflows",
"detail": "7 workflow(s)",
"points": 24,
"status": "met",
"details": [
{
"code": "ci_workflows",
"params": {
"count": 7
}
}
],
"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": "biome.json",
"points": 16,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "biome.json"
}
}
],
"max_points": 16
},
{
"key": "pre_commit_hooks",
"name": "Pre-commit hooks",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 9.6
},
{
"key": "editorconfig",
"name": ".editorconfig",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 6.4
},
{
"key": "openssf_scorecard_ci_tests",
"name": "OpenSSF Scorecard: CI-Tests",
"detail": "3 out of 3 merged PRs checked by a CI test -- score normalized to 10",
"points": 20,
"status": "met",
"details": [],
"max_points": 20
}
]
},
{
"key": "documentation",
"band": "excellent",
"name": "Documentation",
"note": null,
"notes": [],
"value": 90,
"inputs": {
"topics": [
"ai",
"deepseek",
"free",
"free-ai",
"freeai",
"gpt",
"gptoss",
"kimi",
"nim",
"nvidia",
"nvidia-nim",
"nvidia-nim-api",
"nvidia-nims",
"openclaw",
"opencode"
],
"has_wiki": false,
"homepage": "https://freecodingmodels.vercel.app",
"has_readme": true,
"has_docs_dir": true,
"has_description": true
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 30,
"status": "met",
"details": [],
"max_points": 30
},
{
"key": "documentation_directory",
"name": "Documentation directory",
"detail": null,
"points": 25,
"status": "met",
"details": [],
"max_points": 25
},
{
"key": "documentation_homepage_site",
"name": "Documentation / homepage site",
"detail": "https://freecodingmodels.vercel.app",
"points": 15,
"status": "met",
"details": [],
"max_points": 15
},
{
"key": "repository_description",
"name": "Repository description",
"detail": null,
"points": 10,
"status": "met",
"details": [],
"max_points": 10
},
{
"key": "topics",
"name": "Topics",
"detail": "15 topics",
"points": 10,
"status": "met",
"details": [
{
"code": "topics_count",
"params": {
"count": 15
}
}
],
"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": 58,
"weight": 0.16,
"metrics": [
{
"key": "security_posture",
"band": "at_risk",
"name": "Security posture",
"note": "Excluded from scoring (no data or not applicable): Signed-Releases. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"signed_releases"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 48,
"inputs": {
"source": "openssf_scorecard",
"checks_evaluated": 17,
"scorecard_version": "v5.5.0",
"checks_inconclusive": 1,
"scorecard_aggregate": 4.8
},
"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 not enabled on development/release branches",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "ci_tests",
"name": "CI-Tests",
"detail": "3 out of 3 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 3/30 approved changesets -- score normalized to 1",
"points": 0.8,
"status": "partial",
"details": [],
"max_points": 7.5
},
{
"key": "contributors",
"name": "Contributors",
"detail": "project has 3 contributing companies or organizations -- score normalized to 10",
"points": 2.5,
"status": "met",
"details": [],
"max_points": 2.5
},
{
"key": "dangerous_workflow",
"name": "Dangerous-Workflow",
"detail": "dangerous workflow patterns detected",
"points": 0,
"status": "missed",
"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.2,
"status": "partial",
"details": [],
"max_points": 2.5
},
{
"key": "maintained",
"name": "Maintained",
"detail": "30 commit(s) and 13 issue activity found in the last 90 days -- score normalized to 10",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "packaging",
"name": "Packaging",
"detail": "packaging workflow detected",
"points": 5,
"status": "met",
"details": [],
"max_points": 5
},
{
"key": "pinned_dependencies",
"name": "Pinned-Dependencies",
"detail": "dependency not pinned by hash detected -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "sast",
"name": "SAST",
"detail": "SAST tool is not run on all commits -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "security_policy",
"name": "Security-Policy",
"detail": "security policy file detected",
"points": 5,
"status": "met",
"details": [],
"max_points": 5
},
{
"key": "signed_releases",
"name": "Signed-Releases",
"detail": "no releases found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 7.5
},
{
"key": "token_permissions",
"name": "Token-Permissions",
"detail": "detected GitHub workflow tokens with excessive permissions",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "vulnerabilities",
"name": "Vulnerabilities",
"detail": "2 existing vulnerabilities detected",
"points": 6,
"status": "partial",
"details": [],
"max_points": 7.5
}
]
},
{
"key": "dependency_advisories",
"band": "excellent",
"name": "Dependency advisories",
"note": "Excluded from scoring (no data or not applicable): Indirect dependencies free of known advisories, No advisories left outstanding. Remaining weights renormalized. Matched 393 resolved dependencies against OSV; 22 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",
"no_advisories_left_outstanding"
]
}
},
{
"code": "weights_renormalized",
"params": {}
},
{
"code": "advisories_scope_repository",
"params": {
"assessed": 393
}
},
{
"code": "advisories_unassessed",
"params": {
"count": 22
}
},
{
"code": "advisories_repo_graph_caveat",
"params": {}
},
{
"code": "advisories_reachability",
"params": {}
}
],
"value": 100,
"inputs": {
"source": "osv",
"advisories": 2,
"affected_packages": 2,
"assessed_packages": 393,
"unassessed_packages": 22,
"affected_by_severity": "high 2",
"direct_affected_packages": 0
},
"components": [
{
"key": "direct_dependencies_free_of_known_advisories",
"name": "Direct dependencies free of known advisories",
"detail": "no direct dependency carries a known advisory",
"points": 35,
"status": "met",
"details": [
{
"code": "no_direct_advisories",
"params": {}
}
],
"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": "no advisory carries a publication date",
"points": 0,
"status": "excluded",
"details": [
{
"code": "advisories_no_publication_date",
"params": {}
}
],
"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": 393,
"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": 6
},
"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": "moderate",
"name": "AI Readiness",
"value": 68,
"weight": 0,
"metrics": [
{
"key": "ai_agent_context",
"band": "moderate",
"name": "Agent context & guidance",
"note": null,
"notes": [],
"value": 69,
"inputs": {
"has_llms_txt": false,
"legible_history_share": 0.446,
"agent_instruction_files": [
"AGENTS.md",
"CLAUDE.md"
],
"agent_instruction_max_bytes": 14156
},
"components": [
{
"key": "agent_instructions",
"name": "Agent instructions",
"detail": "AGENTS.md, CLAUDE.md",
"points": 45,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "AGENTS.md, CLAUDE.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": "41 of 92 human commits state their intent (structured subject or explanatory body)",
"points": 23.8,
"status": "partial",
"details": [
{
"code": "legible_history",
"params": {
"legible": 41,
"sampled": 92
}
}
],
"max_points": 40
}
]
},
{
"key": "ai_verify_loop",
"band": "moderate",
"name": "Verify loop (build / test / typecheck)",
"note": null,
"notes": [],
"value": 62,
"inputs": {
"has_nix": false,
"has_tests": true,
"lockfiles": [
"package-lock.json",
"pnpm-lock.yaml"
],
"has_dockerfile": true,
"typed_language": false,
"bootstrap_files": [],
"has_devcontainer": false,
"has_linter_config": true,
"typecheck_configs": [
"website/tsconfig.json"
],
"agent_commit_share": 0,
"toolchain_manifests": [],
"dependency_bot_commit_share": 0.08
},
"components": [
{
"key": "one_command_bootstrap",
"name": "One-command bootstrap",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 18
},
{
"key": "automated_tests",
"name": "Automated tests",
"detail": null,
"points": 22,
"status": "met",
"details": [],
"max_points": 22
},
{
"key": "lint_format_config",
"name": "Lint / format config",
"detail": "biome.json",
"points": 11,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "biome.json"
}
}
],
"max_points": 11
},
{
"key": "static_type_checking",
"name": "Static type checking",
"detail": "website/tsconfig.json",
"points": 11,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "website/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": "8 of the last 100 commits are automated dependency updates",
"points": 8,
"status": "met",
"details": [
{
"code": "dependency_bot_commits",
"params": {
"count": 8,
"sampled": 100
}
}
],
"max_points": 8
},
{
"key": "openssf_scorecard_pinned_dependencies",
"name": "OpenSSF Scorecard: Pinned-Dependencies",
"detail": "dependency not pinned by hash detected -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
},
{
"key": "ai_code_legibility",
"band": "good",
"name": "Code legibility for models",
"note": null,
"notes": [],
"value": 80,
"inputs": {
"primary_language": "HTML",
"largest_source_bytes": 279662,
"source_files_sampled": 171,
"oversized_source_files": 5
},
"components": [
{
"key": "type_checkable_code",
"name": "Type-checkable code",
"detail": "HTML with type-check config (website/tsconfig.json)",
"points": 27,
"status": "partial",
"details": [
{
"code": "typecheck_config_language",
"params": {
"files": "website/tsconfig.json",
"language": "HTML"
}
}
],
"max_points": 45
},
{
"key": "manageable_file_sizes",
"name": "Manageable file sizes",
"detail": "5/171 source files over 60KB",
"points": 53.4,
"status": "partial",
"details": [
{
"code": "oversized_source_files",
"params": {
"kb": 60,
"sampled": 171,
"oversized": 5
}
}
],
"max_points": 55
}
]
}
],
"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",
"Could not fetch npm package 'fcm-pi' from its registry",
"Could not fetch npm package 'fcm-opencode' from its registry",
"deps.dev does not index npm:free-coding-models@0.5.50; advisories assessed against the repository dependency graph instead"
],
"report_type": "repository",
"generated_at": "2026-07-23T19:59:52.501005Z",
"schema_version": "0.27.0",
"badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/v/vava-nessa/free-coding-models.svg",
"full_name": "vava-nessa/free-coding-models",
"license_state": "custom",
"license_spdx": null
}