Звіт у форматі JSON машиночитний
{
"data": {
"repo": {
"topics": [
"agent-framework",
"ai-agents",
"cli",
"developer-tools",
"multi-agent",
"orchestration",
"persistent-memory",
"agentic-ai",
"ai-workforce",
"anthropic",
"autonomous-agents",
"claude",
"llm",
"self-improving-ai",
"typescript"
],
"is_fork": false,
"size_kb": 4213,
"has_wiki": false,
"homepage": "https://agents-squads.com",
"languages": {
"Shell": 21248,
"JavaScript": 3153,
"TypeScript": 2852985
},
"pushed_at": "2026-07-25T17:01:55Z",
"created_at": "2025-12-30T00:19:51Z",
"owner_type": "Organization",
"updated_at": "2026-07-16T20:05:48Z",
"description": "CLI for managing AI agent squads. Status, memory, goals, feedback, and dashboard for your autonomous agents.",
"is_archived": false,
"is_disabled": false,
"license_spdx": "MIT",
"default_branch": "main",
"license_spdx_raw": "MIT",
"primary_language": "TypeScript",
"significant_languages": [
"TypeScript"
]
},
"owner": {
"blog": null,
"name": "Agents Squads",
"type": "Organization",
"login": "agents-squads",
"company": null,
"location": null,
"followers": 4,
"avatar_url": "https://avatars.githubusercontent.com/u/248935150?v=4",
"created_at": "2025-12-10T17:27:44Z",
"is_verified": null,
"public_repos": 3,
"account_age_days": 229
},
"license": {
"state": "standard",
"spdx_id": "MIT",
"raw_spdx": "MIT",
"file_present": true,
"scorecard_found": true,
"profile_has_license": true
},
"activity": {
"releases": [
{
"tag": "v0.9.0",
"kind": "minor",
"published_at": "2026-07-07T19:37:14Z"
},
{
"tag": "v0.8.3",
"kind": "patch",
"published_at": "2026-07-07T17:07:37Z"
},
{
"tag": "v0.8.2",
"kind": "patch",
"published_at": "2026-07-07T02:06:59Z"
},
{
"tag": "v0.8.1",
"kind": "patch",
"published_at": "2026-06-11T23:14:50Z"
},
{
"tag": "v0.8.0",
"kind": "minor",
"published_at": "2026-06-11T00:46:30Z"
},
{
"tag": "v0.3.3",
"kind": "patch",
"published_at": "2026-06-10T16:54:18Z"
},
{
"tag": "v0.3.2",
"kind": "patch",
"published_at": "2026-06-10T16:54:16Z"
},
{
"tag": "v0.3.1",
"kind": "patch",
"published_at": "2026-04-25T04:07:34Z"
},
{
"tag": "v0.3.0-rc.1",
"kind": "prerelease",
"published_at": "2026-04-25T04:07:40Z"
},
{
"tag": "v0.2.2",
"kind": "patch",
"published_at": "2026-03-28T16:21:41Z"
},
{
"tag": "v0.2.1",
"kind": "patch",
"published_at": "2026-03-13T19:25:03Z"
},
{
"tag": "v0.1.0",
"kind": "minor",
"published_at": "2026-04-30T04:41:49Z"
}
],
"recent_commits": [
{
"oid": "b0932805ea27c5d91db87a10fe71bdae5acc3a0f",
"body": "* refactor(core): run engine decomposition + context helpers [v0.3.0 — 1/7] (#731)\n\n* refactor(core): run engine decomposition, context helpers, squad parser improvements\n\nCore runtime refactoring from v0.3.0 development cycle:\n\n- run-context.ts: expanded context helpers for goal injection, feedback\n[…]\n epochs, harvest\noutcome, run identity — executionId was already in scope, just dropped);\nstatus/usage/exec-list/run sweep the spool and turn each done-file into\na real ObservabilityRecord (provider …",
"is_bot": false,
"headline": "release: v0.9.0 — the loop release (#1033)",
"author_name": "Jorge Vidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-07-07T19:35:51Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "863e9dd71716c45f0434871b4599ee7a20dd92e0",
"body": "* refactor(core): run engine decomposition + context helpers [v0.3.0 — 1/7] (#731)\n\n* refactor(core): run engine decomposition, context helpers, squad parser improvements\n\nCore runtime refactoring from v0.3.0 development cycle:\n\n- run-context.ts: expanded context helpers for goal injection, feedback\n[…]\nt (exit code, epochs, harvest\noutcome, run identity — executionId was already in scope, just dropped);\nstatus/usage/exec-list/run sweep the spool and turn each done-file into\na real ObservabilityReco…",
"is_bot": true,
"headline": "release: v0.8.3 — the first-run journey release (#1005)",
"author_name": "agents-squads[bot]",
"author_login": "agents-squads[bot]",
"committed_at": "2026-07-07T17:06:10Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "2e44778f7976496adc035a946f93484471e604ac",
"body": "* release: v0.8.2 — trustworthy execution follow-through\n\nCo-Authored-By: Claude <noreply@anthropic.com>\n\n* fix(quota-probe,run): address Gemini review on #905\n\n- quota-probe: register a child.stdin 'error' handler — an unhandled EPIPE\n (probe child dies fast when quota is exhausted) would crash th\n[…]\nhe function's error-loudly contract.\n\nCo-Authored-By: Claude <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Jorge Vidaurre <jorge@agents-squads.com>\nCo-authored-by: Claude <noreply@anthropic.com>",
"is_bot": true,
"headline": "release: v0.8.2 — trustworthy execution follow-through (#927)",
"author_name": "agents-squads[bot]",
"author_login": "agents-squads[bot]",
"committed_at": "2026-07-05T16:00:28Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "64c957c83ad0ca86c14c4f2153136c1a6fd05d96",
"body": "* release: v0.8.1 — run containment + introspection\n\n- #849/#850/#852 containment: spool records, watchdog, runs/kill\n- #842 commands --json · #846 provider repo routing (P1)\n- #847 SQUADS_AIDER_MAP_TOKENS · #848/#851 generated seed skill\n- #839 canonical commit identity · #833 dependabot clearance\n\n[…]\nagged by code-quality review on #854\n\nCo-Authored-By: Claude <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Jorge Vidaurre <jorge@agents-squads.com>\nCo-authored-by: Claude <noreply@anthropic.com>",
"is_bot": true,
"headline": "release: v0.8.1 — run containment + introspection (#854)",
"author_name": "agents-squads[bot]",
"author_login": "agents-squads[bot]",
"committed_at": "2026-06-11T23:09:25Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "ade7e1f579f23aa09fefabafa1ea19f5f2215dda",
"body": "Multi-provider executors with full run observability:\n- #822 DeepSeek provider via aider delegation\n- #825 worktree harvest — executor work can never be lost\n- #826 provider run observability + parseUsage\n- #818 per-run outcome capture (actions/commits/PRs/issues)\n- #829 release.yml GitHub-Release-only (closes #819)\n- #828 RELEASING.md (closes #827)\n\nCo-authored-by: Jorge Vidaurre <jorge@agents-squads.com>\nCo-authored-by: Claude <noreply@anthropic.com>",
"is_bot": true,
"headline": "release: v0.8.0 — trustworthy execution (#831)",
"author_name": "agents-squads[bot]",
"author_login": "agents-squads[bot]",
"committed_at": "2026-06-11T00:43:53Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "ade2552189e9e9cb4dc394ed36cf5a547e21e241",
"body": "* release: v0.3.3 — runtime reliability\n\nPromotes the v0.3.3 fixes to main (built off main with develop's contents\nto avoid squash-divergence conflicts; see hq#443):\n- #806 --timeout bounds per-agent execution; default 30->15\n- #807 founder-context refresh async (non-blocking)\n- #808 per-squad-run w\n[…]\n.3\n\nCo-Authored-By: Claude <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: agents-squads[bot] <266303152+agents-squads[bot]@users.noreply.github.com>\nCo-authored-by: Claude <noreply@anthropic.com>",
"is_bot": true,
"headline": "release: v0.3.3 — runtime reliability (#811)",
"author_name": "agents-squads[bot]",
"author_login": "agents-squads[bot]",
"committed_at": "2026-06-10T16:36:44Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "4c4ded87d9e838104a03d68d43a3577084820b7b",
"body": "Node 18 is EOL and vitest/rolldown import styleText from node:util\n(Node >=20 only), which crashed the Test step on ci(18) and skipped\npublish — silently blocking the last two tagged releases from npm.\n\n- release.yml / publish.yml matrices: [18,20,22] -> [20,22]\n- engines.node: >=18 -> >=20\n- CHANGELOG note under [0.3.2]\n\nCloses #801\n\nCo-authored-by: agents-squads[bot] <266303152+agents-squads[bot]@users.noreply.github.com>\nCo-authored-by: Claude <noreply@anthropic.com>",
"is_bot": true,
"headline": "ci: drop EOL Node 18 from release & publish matrices (#802) (#804)",
"author_name": "agents-squads[bot]",
"author_login": "agents-squads[bot]",
"committed_at": "2026-06-08T15:23:38Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "a418c8179b6963e481cbd4b98b9e3789f8f5c645",
"body": "…autonomy (#799)\n\n* refactor(core): run engine decomposition + context helpers [v0.3.0 — 1/7] (#731)\n\n* refactor(core): run engine decomposition, context helpers, squad parser improvements\n\nCore runtime refactoring from v0.3.0 development cycle:\n\n- run-context.ts: expanded context helpers for goal i\n[…]\n.com>\nCo-authored-by: Jorge Vidaurre <jorge@agents-squads.com>\nCo-authored-by: Claude <noreply@anthropic.com>\nCo-authored-by: agents-squads[bot] <266303152+agents-squads[bot]@users.noreply.github.com>",
"is_bot": true,
"headline": "release: v0.3.2 — agent runtime, founder-context, safety/governance, …",
"author_name": "agents-squads[bot]",
"author_login": "agents-squads[bot]",
"committed_at": "2026-06-08T14:32:26Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "a1d2df6efaf89a26cefaa20883ac5c60cd81f508",
"body": "…ug (#760)\n\n\\`npm install -g npm@latest\\` fails mid-upgrade with \\`Cannot find module\n'promise-retry'\\` because the new npm package is partially installed and\ncan't resolve its own internal arborist modules. Documented npm bug.\n\nAdding --force makes the install bypass the broken intermediate state.\n\n[…]\nl (tag-triggered) and publish.yml (manual).\nThis is what blocked the v0.3.1 publish to @latest.\n\nCo-authored-by: Jorge Vidaurre <jorge@agents-squads.com>\nCo-authored-by: Claude <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(ci): use --force on npm self-upgrade to bypass MODULE_NOT_FOUND b…",
"author_name": "Jorge Vidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-04-24T22:32:05Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "d79b06c9830dbefdc9afca2ba7016e44ea17f55d",
"body": "* chore: bump to 0.3.1 — first usable v0.3.x on @latest\n\nSkipping 0.3.0 because that version slot was claimed by a deprecated\nhistorical pre-release (Jan 2026, deprecated as part of the\n\"deprecate all pre-release versions 0.3.0-0.6.2\" cleanup). npm\nenforces version immutability — we cannot republish\n[…]\nusers discover them without hunting.\n\nCo-Authored-By: Claude <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Jorge Vidaurre <jorge@agents-squads.com>\nCo-authored-by: Claude <noreply@anthropic.com>",
"is_bot": false,
"headline": "release: v0.3.1 — first stable v0.3.x on @latest (#759)",
"author_name": "Jorge Vidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-04-24T22:22:24Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "ea1e618c78a0f9602a47776b16494c638fa6ac77",
"body": "Promotes rc.1 to the stable v0.3.0 release. After merge, tag v0.3.0\ntriggers release.yml → publishes to @latest via OIDC.\n\nCloses the v0.3.0 cycle: run engine rewrite, conversation mode,\nproject config system, OIDC trusted publishing.\n\nCo-authored-by: Jorge Vidaurre <jorge@agents-squads.com>\nCo-authored-by: Claude <noreply@anthropic.com>",
"is_bot": false,
"headline": "chore: bump to 0.3.0 for @latest promotion (#758)",
"author_name": "Jorge Vidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-04-24T16:46:11Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "da5baac5dab5419cfc1ad2c073ec2b1276c81185",
"body": "* refactor(core): run engine decomposition + context helpers [v0.3.0 — 1/7] (#731)\n\n* refactor(core): run engine decomposition, context helpers, squad parser improvements\n\nCore runtime refactoring from v0.3.0 development cycle:\n\n- run-context.ts: expanded context helpers for goal injection, feedback\n[…]\n, not @latest\n\nCloses #754\n\nCo-authored-by: Jorge Vidaurre <jorge@agents-squads.com>\n\n---------\n\nCo-authored-by: Jorge Vidaurre <jorge@agents-squads.com>\nCo-authored-by: Claude <noreply@anthropic.com>",
"is_bot": false,
"headline": "release: v0.3.0-rc.1 — OIDC publish fix + @next burn-in (#756)",
"author_name": "Jorge Vidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-04-24T15:26:45Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "03253f8d403c39b01ab06b9a5b833e4519913874",
"body": "…, security, telemetry, UX (#743)\n\n* refactor(core): run engine decomposition + context helpers [v0.3.0 — 1/7] (#731)\n\n* refactor(core): run engine decomposition, context helpers, squad parser improvements\n\nCore runtime refactoring from v0.3.0 development cycle:\n\n- run-context.ts: expanded context h\n[…]\n.com>\n\n---------\n\nCo-authored-by: Jorge Vidaurre <3512039+kokevidaurre@users.noreply.github.com>\nCo-authored-by: Jorge Vidaurre <jorge@agents-squads.com>\nCo-authored-by: Claude <noreply@anthropic.com>",
"is_bot": true,
"headline": "release: v0.3.0 — run engine rewrite, conversation mode, new commands…",
"author_name": "agents-squads[bot]",
"author_login": "agents-squads[bot]",
"committed_at": "2026-04-23T17:51:05Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "b4c21922650ad3487bb465f764a2b82f53e9e365",
"body": "…(#642)\n\n* fix(security): update minimatch to fix ReDoS vulnerability (#350)\n\nCloses #342\n\nCo-authored-by: Squads Cloud Worker <cloud@agents-squads.com>\nCo-authored-by: Claude <noreply@anthropic.com>\n\n* fix(security): escape shell variables in background/watch mode spawn (#351)\n\nPrevents shell injec\n[…]\nstep ordering, README generation (#545)\n\nCloses #524, closes #525, closes #523\n\n- #524: Add value descriptions to each squad in the Created: output\n (e.g. \"research/ 4 agents — Researches your marke…",
"is_bot": true,
"headline": "release: v0.2.2 — IDP, observability, tiered architecture, org cycle …",
"author_name": "agents-squads[bot]",
"author_login": "agents-squads[bot]",
"committed_at": "2026-03-27T23:24:32Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "dc051eea995cbbd6693a378d90d87e7159c24181",
"body": null,
"is_bot": false,
"headline": "chore: remove temp deprecate workflow",
"author_name": "Jorge Vidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-03-13T21:36:40Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "a33067d673316481c0a95abfa742664bb0149f92",
"body": null,
"is_bot": false,
"headline": "chore: deprecate all pre-release versions 0.3.0-0.6.2",
"author_name": "Jorge Vidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-03-13T21:35:44Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e5718f5aa99bc999cdcea23c37473ad3fd3193c4",
"body": null,
"is_bot": false,
"headline": "chore: remove temp deprecate workflow",
"author_name": "Jorge Vidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-03-13T21:25:07Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d06b4d8b06d56ffdcf03e7a5a30c543107af95df",
"body": null,
"is_bot": false,
"headline": "chore: fix deprecate workflow content",
"author_name": "Jorge Vidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-03-13T21:24:25Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "16fbdd1cf4c8f8b0a975d903fd0abc97f4cf8922",
"body": null,
"is_bot": false,
"headline": "chore: temp workflow to deprecate broken 0.7.x",
"author_name": "Jorge Vidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-03-13T21:23:55Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4b59a8c6b247bc1da0a135a832c038be5afe9ac9",
"body": "* fix(security): update minimatch to fix ReDoS vulnerability (#350)\n\nCloses #342\n\nCo-authored-by: Squads Cloud Worker <cloud@agents-squads.com>\nCo-authored-by: Claude <noreply@anthropic.com>\n\n* fix(security): escape shell variables in background/watch mode spawn (#351)\n\nPrevents shell injection via \n[…]\nneration (#545)\n\nCloses #524, closes #525, closes #523\n\n- #524: Add value descriptions to each squad in the Created: output\n (e.g. \"research/ 4 agents — Researches your market, competitors, and oppo…",
"is_bot": false,
"headline": "release: v0.2.1 — first-run experience reset (#601)",
"author_name": "Jorge Vidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-03-13T19:21:50Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "c4c92b37d9e866f250b6bf780b4e2638ad012cd9",
"body": "* fix(security): update minimatch to fix ReDoS vulnerability (#350)\n\nCloses #342\n\nCo-authored-by: Squads Cloud Worker <cloud@agents-squads.com>\nCo-authored-by: Claude <noreply@anthropic.com>\n\n* fix(security): escape shell variables in background/watch mode spawn (#351)\n\nPrevents shell injection via \n[…]\ns #524, closes #525, closes #523\n\n- #524: Add value descriptions to each squad in the Created: output\n (e.g. \"research/ 4 agents — Researches your market, competitors, and opportunities\")\n so new u…",
"is_bot": false,
"headline": "release: develop to main (#492)",
"author_name": "Jorge Vidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-03-12T13:10:12Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "7879586d10299a5b09aec4d995fbc474c9eec6d5",
"body": "* fix(security): update minimatch to fix ReDoS vulnerability (#350)\n\nCloses #342\n\nCo-authored-by: Squads Cloud Worker <cloud@agents-squads.com>\nCo-authored-by: Claude <noreply@anthropic.com>\n\n* fix(security): escape shell variables in background/watch mode spawn (#351)\n\nPrevents shell injection via \n[…]\ndaurre <jorge@agents-squads.com>\nCo-authored-by: agents-squads[bot] <266303152+agents-squads[bot]@users.noreply.github.com>\nCo-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>",
"is_bot": false,
"headline": "feat: v0.7.0 release + memory ingestion for cognition (#444)",
"author_name": "Jorge Vidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-03-08T02:55:25Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "993dabf5a41c9d6c52e48739ac400c2e854e1ddb",
"body": "…442)\n\n* fix(security): update minimatch to fix ReDoS vulnerability (#350)\n\nCloses #342\n\nCo-authored-by: Squads Cloud Worker <cloud@agents-squads.com>\nCo-authored-by: Claude <noreply@anthropic.com>\n\n* fix(security): escape shell variables in background/watch mode spawn (#351)\n\nPrevents shell injecti\n[…]\ndaurre <jorge@agents-squads.com>\nCo-authored-by: agents-squads[bot] <266303152+agents-squads[bot]@users.noreply.github.com>\nCo-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>",
"is_bot": false,
"headline": "chore: develop → main (54 commits — bot identity, tests, features) (#…",
"author_name": "Jorge Vidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-03-07T16:05:15Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "389e263ea5b0200c89bad5b4512695f1f0ca58b8",
"body": "… (#395)\n\n* fix(security): update minimatch to fix ReDoS vulnerability (#350)\n\nCloses #342\n\nCo-authored-by: Squads Cloud Worker <cloud@agents-squads.com>\nCo-authored-by: Claude <noreply@anthropic.com>\n\n* fix(security): escape shell variables in background/watch mode spawn (#351)\n\nPrevents shell inje\n[…]\nkevidaurre@users.noreply.github.com>\nCo-authored-by: Test <test@test.com>\nCo-authored-by: cli/issue-solver <cli-issue-solver@agents-squads.com>\nCo-authored-by: Jorge Vidaurre <jorge@agents-squads.com>",
"is_bot": false,
"headline": "chore: develop → main (30 commits — security, tests, features, fixes)…",
"author_name": "Jorge Vidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-03-07T14:16:30Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "b992aeed0f599d1e11760dc917c2e57c9c71f50e",
"body": null,
"is_bot": false,
"headline": "chore: bump version to 0.6.2",
"author_name": "kokevidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-02-21T07:06:21Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c2d861a217c861ab43dccfa05f0cfded1916a1b0",
"body": "…frontmatter (#347)\n\n- 17 magic numbers replaced with named constants at top of run.ts\n- Cooldown now reads from agent frontmatter (e.g., cooldown: \"30m\") via parseCooldown()\n- Falls back to DEFAULT_SCHEDULED_COOLDOWN_MS (6h) if not specified\n- Fixes COO agent being blocked by hardcoded 6h cooldown when frontmatter says 30m\n\nCo-authored-by: kokevidaurre <kokevidaurre@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix: extract hardcoded values to constants, read cooldown from agent …",
"author_name": "Jorge Vidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-02-21T07:02:10Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "7f085366a861c5c7ea2f4a46b93e02ab4941e214",
"body": "- release.yml: Full CI (lint, typecheck, build, test) + security audit\n must pass before publish job runs. No more shipping broken packages.\n- publish.yml: Manual-only with PUBLISH confirmation + full CI gate.\n- ci.yml: FORCE_COLOR=1 for tests (terminal color tests need TTY).\n Security audit level\n[…]\ntest now optional (not in standard\n docker-compose).\n- Version bump: 0.6.0 → 0.6.1\n\nCo-authored-by: kokevidaurre <kokevidaurre@users.noreply.github.com>\nCo-authored-by: Claude <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix: v0.6.1 — CI must pass before npm publish + test fixes (#345)",
"author_name": "Jorge Vidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-02-21T05:00:42Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "4133b419dcccd3d1e93b58c0c75852bc2df5cf1f",
"body": "* chore: prepare release v0.6.0\n\n- Add CHANGELOG.md with all changes since v0.5.1\n- Version already at 0.6.0 in package.json (minor bump)\n- 60 commits: new features (eval, deploy, dashboard ROI, branch isolation),\n security fixes, multi-provider routing, squad-scoped skills\n\nCo-Authored-By: Claude \n[…]\nme was cleaned\"\n\nCo-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: kokevidaurre <kokevidaurre@users.noreply.github.com>\nCo-authored-by: Claude <noreply@anthropic.com>",
"is_bot": false,
"headline": "Release v0.6.0 (#336)",
"author_name": "Jorge Vidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-02-21T04:50:34Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "1d21b0100eb3900c932534cc470b51f44f067300",
"body": "Remove leading ./ from bin path to prevent npm publish warning:\n\"bin[squads] script name was cleaned\"\n\nCo-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix: normalize bin script path in package.json",
"author_name": "kokevidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-02-21T00:15:38Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "d1ed678988c52c7c80096e52f2e3f1d444f71baf",
"body": "Tests expected old format (Added:, --- separator) but implementation\nwas updated to use ## YYYY-MM-DD: heading format for synthesizer\ncompatibility. Now tests match the actual output.\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix: update memory tests to match new ## date format",
"author_name": "kokevidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-02-20T23:32:58Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "c2df44b4d766660961cd57f16be88255d3045863",
"body": "Non-Anthropic providers (Gemini, GPT, Ollama) were missing worktree\nisolation, proper env handling, and used tmux instead of log files.\nNow matches the executeWithClaude execution path:\n- Git worktree per agent execution (no branch collisions)\n- CLAUDECODE env var unset (allows nesting)\n- Background mode uses log files + PID (not tmux sessions)\n- Consistent env vars passed to provider CLIs\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix: add worktree isolation to executeWithProvider",
"author_name": "kokevidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-02-20T23:23:18Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "e0f2bd65b60b0b62f187ee5ec7b26c80810564cf",
"body": "Concurrent agents running `git checkout -b` in the same working tree\ncause branch collisions — last checkout wins. Now each agent gets\nits own worktree at ../.worktrees/{squad}-{agent}-{timestamp}.\n\nAll 3 execution modes updated (foreground, watch, background).\nFalls back to project root if worktree creation fails.\n\n🤖 Generated with [Agents Squads](https://agents-squads.com)\nCo-Authored-By: Claude <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix: use git worktrees for agent isolation instead of checkout",
"author_name": "kokevidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-02-20T22:18:12Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "46d4dca38c88791d39b6705f815276df525cf971",
"body": "Create isolated branch (agent/{squad}/{agent}-{timestamp}) before spawning\nClaude in all three execution modes: foreground, watch, and background.\nThis prevents agents from accidentally committing to main.\n\nBranch isolation was removed on Feb 17 (44bc09d) causing agents to\ncommit directly to main, breaking the git-based workflow.\n\n🤖 Generated with [Agents Squads](https://agents-squads.com)\nCo-Authored-By: Claude <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix: restore auto branch isolation for agent execution",
"author_name": "kokevidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-02-20T21:33:57Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "55a2d26e959c559daf00f4937ac2c8716153b549",
"body": "squads run spawns claude as a child process, but when running inside\na Claude Code session, the CLAUDECODE env var blocks nested sessions.\nRemove it from spawn env so background/foreground agents can launch\nfrom within Claude Code (e.g., COO dispatching squad leads).\n\nCo-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix: unset CLAUDECODE env var to allow nested execution",
"author_name": "kokevidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-02-20T20:12:21Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "9dd8d37e640c0b2d68011b32e94d8fb277e789f3",
"body": "- Delete ux-tests/ directory (internal testing reports with local file paths)\n- Replace personal email jorge@agents-squads.com with hello@agents-squads.com in dashboard.ts\n\nCo-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "chore: remove internal artifacts and personal info from public repo",
"author_name": "kokevidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-02-20T04:06:47Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "e0df100e999a6b1d1b51ac2a7b80295b401ca1a3",
"body": "Remove hardcoded production API URLs, internal DB credentials, internal\nMCP server names (supabase, grafana, nano-banana, x-mcp), and org\nstructure hints from source code. All env-specific values now require\nenv vars with no sensitive fallback defaults.\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
"is_bot": false,
"headline": "security: remove internal infrastructure references from public repo",
"author_name": "kokevidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-02-20T03:34:20Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "32ead10b9025bae1072a6c0a1441522a1067959e",
"body": "Prevent accidental commit of coverage reports (contain rendered\nsource with internal URLs) and docker env (contains API keys).\n\nCo-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "chore: gitignore coverage/ and docker/.env",
"author_name": "kokevidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-02-20T03:25:04Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "6d83951a7d01c2a39d3891c689c2ca4c93633058",
"body": "The fallback to ~/.claude.json was wrong — that's Claude's settings\nfile, not an MCP config. Passing it as --mcp-config caused Claude\nto exit silently with no output. Now returns empty string and skips\nthe flag entirely for squads without MCP configuration.\n\nCo-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix: skip --mcp-config when no squad MCP config exists",
"author_name": "kokevidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-02-20T03:07:30Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "97240a1b8f6eb86089af0451aa2a9844ec49cd06",
"body": "Large agent prompts with special characters broke shell command\nconstruction. Switched from sh -c \"exec claude ...\" to direct\nspawn('claude', args) which passes argv without shell parsing.\n\nCo-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix: use array spawn for foreground mode to avoid shell escaping",
"author_name": "kokevidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-02-20T02:57:45Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "7f85f484b1d41d0868eefeac0d0df9ca8ca5999a",
"body": "When stdin is not a TTY (cron, systemd, pipe), Claude Code\nenters interactive mode and hangs waiting for input. This adds\n--print automatically in non-TTY contexts so agents execute\nand exit correctly.\n\nCo-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix: auto-detect non-TTY and use --print in foreground mode",
"author_name": "kokevidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-02-20T02:32:45Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "f2ed1115b2babc397f1edbd6c425048a56853c56",
"body": "Phase A: Inject daily briefing + cross-squad learnings into agent context\nPhase B: Emit agent.completed/failed events to API with file fallback\nPhase C: Verify execution against acceptance_criteria, retry on failure\nPhase D: --no-verify flag to skip Ralph loop\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(run): memory injection, event emission, Ralph verification loop",
"author_name": "kokevidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-02-20T01:44:58Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "097955b278f280834582a63300a459722e9b296d",
"body": "Change appendToMemory format from `---/_Added: date_` to `## YYYY-MM-DD: heading`\nso the daily briefing synthesizer can extract insights automatically.\n\n🤖 Generated with [Agents Squads](https://agents-squads.com)\nCo-Authored-By: Claude <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix: standardize learnings format for synthesizer parsing",
"author_name": "kokevidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-02-19T23:29:05Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "79ae10fc0789182a26bee76ef15cefc287a0d722",
"body": "The old api-slack service (:3001) was absorbed into squads-api.\nUpdate URL and endpoint paths.\n\nFixes agents-squads/squads-cli#330\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix: point approval commands to squads-api instead of dead slack-bot",
"author_name": "kokevidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-02-19T01:57:48Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "7d941228112975e522d360ca8b992009547db14a",
"body": "Fall back to SCHEDULER_URL for backwards compatibility.\nReplace sync_triggers.py call with API endpoint.\n\nFixes agents-squads/squads-cli#328, agents-squads/squads-cli#329\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix: update trigger commands to use SQUADS_API_URL",
"author_name": "kokevidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-02-19T01:57:44Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "7a66b7db0d13e709e53a61afbd0141f569e0b5df",
"body": "- Add missing templates/seed/skills/gh/SKILL.md template that caused init crash\n- Update CI smoke-test assertions to match new seed-based init structure\n- Bump @isaacs/brace-expansion 5.0.0 → 5.0.1 (fixes high-severity ReDoS)\n\nCloses #313",
"is_bot": false,
"headline": "fix(ci): resolve smoke-test failure and npm audit vulnerability",
"author_name": "Jorge Vidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-02-18T01:56:39Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6b7e9c6dd00c8697ce1deb417db5c816055c69b5",
"body": "… import (#326)\n\nClean up 15 ESLint warnings across 6 files:\n- cli.ts: remove unused jsonOutput function\n- autonomous.ts: remove unused basename import, prefix unused runningCount\n- context.ts: remove unused getSquadLocalSkills, ResolvedSkill imports\n- deploy.ts: remove unused readdirSync, statSync,\n[…]\nloses #307, #310, #312\n\n🤖 Generated with [Agents Squads](https://agents-squads.com)\n\nCo-authored-by: kokevidaurre <kokevidaurre@users.noreply.github.com>\nCo-authored-by: Claude <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(lint): remove all unused imports/vars, replace require() with ESM…",
"author_name": "Jorge Vidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-02-18T01:51:10Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "f9bfe1504dd5c4aba751f0fd1f86b1fdf0c6e9a3",
"body": "Closes #322\n\n- Set mode 0o700 on ~/.squads-cli directory (owner rwx only)\n- Set mode 0o600 on auth.json (owner rw only)\n- Use unlinkSync in clearSession() to delete file instead of writing empty content\n\nCo-authored-by: kokevidaurre <kokevidaurre@users.noreply.github.com>\nCo-authored-by: engineering/issue-solver <engineering-issue-solver@agents-squads.com>",
"is_bot": false,
"headline": "fix(security): restrict auth file permissions to owner-only (#325)",
"author_name": "Jorge Vidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-02-17T17:47:04Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c11c36098aab5e134453cc3b49f7600a651cb358",
"body": "Move squad/agent/trigger/execution env vars from shell `export`\nstatements (interpolated into `sh -c` commands) to the `spawn()` `env`\noption. This eliminates the shell injection surface where malicious\nvalues in YAML frontmatter could achieve RCE.\n\nAll three spawn sites updated: foreground, watch, and background modes.\n\nCloses #321\n\nCo-authored-by: kokevidaurre <kokevidaurre@users.noreply.github.com>\nCo-authored-by: engineering/issue-solver <engineering-issue-solver@agents-squads.com>",
"is_bot": false,
"headline": "fix(security): prevent shell injection in agent spawn (#324)",
"author_name": "Jorge Vidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-02-17T17:44:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "9e38f4f68a8296b7a029772454c5eddf10c4b448",
"body": "Closes #320\n\nAdd escapeHtml() to sanitize user-controlled query parameters (error, email)\nbefore interpolating into HTML responses in the OAuth callback server,\npreventing reflected XSS during the squads login flow.\n\nCo-authored-by: kokevidaurre <kokevidaurre@users.noreply.github.com>\nCo-authored-by: engineering/issue-solver <engineering-issue-solver@agents-squads.com>",
"is_bot": false,
"headline": "fix(security): escape HTML in OAuth callback responses (#323)",
"author_name": "Jorge Vidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-02-17T17:43:21Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "44bc09dbc11882bd4fb32591dd67bca70609c899",
"body": "… optional deps\n\n- #308: Replace hardcoded Cloud Run URLs with api.agents-squads.com\n- #315: Gate all ANSI output on TTY detection + NO_COLOR/FORCE_COLOR support\n- #317: Custom friendly error messages for missing arguments (run, eval, budget, etc.)\n- #293: Add use-case selection to init (Engineering\n[…]\nefore run\n- #295: Make Postgres & Redis optional — core commands work without infrastructure\n\n🤖 Generated with [Agents Squads](https://agents-squads.com)\nCo-Authored-By: Claude <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(cli): resolve 6 P1 issues — URLs, ANSI, errors, init, run checks,…",
"author_name": "kokevidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-02-17T15:10:17Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "9e567b758fee240015f4071e29b155c1b0e45ffc",
"body": "…go sim\n\n- init: add interactive business prompts (name, description, research focus)\n- init: update BUSINESS_BRIEF template with business name/description variables\n- sessions: filter to project root (fixes session leak from host machine)\n- list: detect squad lead from SQUAD.md frontmatter instead \n[…]\nvoked)\n- tests: fix sessions test regression, add project-root filter test\n\nFound by running cli-critic and code-eval squad agents against the codebase.\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(cli): interactive init, session filtering, bug fixes from Santia…",
"author_name": "kokevidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-02-17T05:47:58Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "7039131a12bdae2d1f429b46f2b69ae4e8395667",
"body": "Widen --model flag from Claude-only aliases (opus/sonnet/haiku) to\naccept any model ID. The CLI's existing provider detection and\nexecuteWithProvider() already handle non-Claude models.\n\n- RunOptions.model: string (was 'opus' | 'sonnet' | 'haiku')\n- ExecuteWithClaudeOptions.model: string\n- Routine.model: string (squad-parser)\n- Updated --model help text with multi-provider examples\n\nCo-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(cli): accept any model string for multi-provider routing",
"author_name": "kokevidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-02-15T17:21:46Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "8e7cbcd1029bff84de8c3404cc66c7542ba977e9",
"body": "Agents now run on their own branch (agent/{squad}/{agent}-{timestamp})\ninstead of committing directly to main. After agent completes, repo\nswitches back to main. Work products stay on the branch for PR review.\n\n- Shell script creates branch before spawning claude\n- Prompt instructs agent to commit o\n[…]\nbranch, never switch to main\n- After completion, git checkout main restores repo state\n- TDD test suite validates branch isolation (10/10 pass)\n\nCo-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(run): enforce branch isolation for agent execution",
"author_name": "kokevidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-02-10T23:00:35Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "6c6d818d0cf8772e9334a4f2966c2d7128cdad01",
"body": "Adds `squads eval <squad/agent>` command that scores agent readiness\nacross 5 dimensions:\n- Definition quality (frontmatter, instructions, sections)\n- Execution reliability (run history, recent activity)\n- Output consistency (structure, formatting)\n- Memory utilization (state, learnings, output file\n[…]\non output and whole-squad evaluation.\n\nCloses agents-squads/squads-cli#299\n\nCo-authored-by: kokevidaurre <kokevidaurre@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(eval): implement squads eval readiness scorer (#305)",
"author_name": "Jorge Vidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-02-10T20:08:42Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "d1723782bab1f1297ee040a58b7dcbcbb325bdbf",
"body": "Add `squads deploy` command with three subcommands:\n- `squads deploy` — Build manifest from .agents/ and push triggers to platform\n- `squads deploy status` — Show platform triggers and execution stats\n- `squads deploy pull` — Pull execution data and learnings from platform\n\nSupports --dry-run, --squ\n[…]\ns active session from `squads login`.\n\nCloses agents-squads/squads-cli#302\n\nCo-authored-by: kokevidaurre <kokevidaurre@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(deploy): implement squads deploy command (Phase 5) (#304)",
"author_name": "Jorge Vidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-02-10T20:04:49Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "bf7e7ee5ade064ca0ca01de876c05faa156b745d",
"body": "refactor: remove pg, ioredis, supabase from CLI",
"is_bot": false,
"headline": "Merge pull request #303 from agents-squads/solve/issue-298",
"author_name": "Jorge Vidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-02-10T18:22:50Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "69a30f520713315de07ed20fcbc6563d635c9bad",
"body": "The CLI (Layer 1) should have zero infrastructure dependencies.\nDatabase, Redis, and Supabase are platform concerns (Layer 3).\n\nChanges:\n- db.ts: stub functions returning null/empty (no pg import)\n- cycle-sync.ts: stub functions (no pg import)\n- postgres.ts: stub data source, keep pure utility funct\n[…]\nupabaseClient\n- package.json: remove pg, ioredis, @supabase/supabase-js, @types/pg\n- test: update cycle-sync test for new stub API\n\nCloses #298\n\nCo-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "refactor: remove pg, ioredis, supabase from CLI dependencies",
"author_name": "kokevidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-02-10T18:22:24Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "8acc80115662dab5b9aefaeafa956e02bd642540",
"body": "test: extract cron functions to lib/cron.ts and add comprehensive tests",
"is_bot": false,
"headline": "Merge pull request #301 from agents-squads/solve/issue-300",
"author_name": "Jorge Vidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-02-10T18:17:49Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "893217a35cc922a44b0ac6e206b88ee740934edb",
"body": "Closes #300\n\nExtracted zero-dependency cron evaluator functions from autonomous.ts to\nreusable src/lib/cron.ts module for better testability and code reuse.\n\nAdded 36 comprehensive test cases covering:\n- cronMatches(): 10 test cases for pattern matching\n- getNextCronRun(): 5 test cases for next occu\n[…]\nverage of cron evaluation logic.\n\nCo-Authored-By: cli/issue-solver <cli-issue-solver@agents-squads.com>\n\nAgent: cli/issue-solver\nSquad: cli\nTrigger: manual\nExecution: 1770746979\nModel: claude-sonnet-4",
"is_bot": false,
"headline": "test: extract cron functions to lib/cron.ts and add comprehensive tests",
"author_name": "kokevidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-02-10T18:09:39Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "6d6d031502f007b47e1313682c9bf1e0a9912236",
"body": "Replace stub with working local scheduler daemon (Layer 2 per ARCHITECTURE.md):\n\n- Cron evaluator: zero-dependency, supports *, ranges, steps, lists\n- Daemon mode: `squads autonomous start` spawns detached background process\n- PID file monitoring: detect running agents, clean orphans, enforce timeou\n[…]\nsplay: shows running agents, next 10 scheduled runs, daemon health\n\nNo external dependencies added. No database. No Redis. Just a node process.\n\nCo-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(autonomous): implement real scheduling daemon",
"author_name": "kokevidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-02-10T18:01:36Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "47a7b02fb46ddb02b2eb6e55f919e43e365ff0e3",
"body": "Remove 15 deprecated infrastructure/human-only commands (~7,100 lines),\ncreate seed templates for `squads init` (9 agents across 2 squads),\nadd --json output to core commands, make execution the default for\n`squads run`, and remove blessed/blessed-contrib dependencies.\n\nThe CLI is now focused on what AI managers need: execute, understand,\ntrack, learn, schedule. Infrastructure management moved to engineering/.\n\nCo-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(cli): reposition as business OS for AI managers (v0.6.0)",
"author_name": "kokevidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-02-06T14:30:48Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "25e968b69af75c71581c297c31a43ceab49bcda4",
"body": "This reverts commit c4f66cf1ac00d60d86dac5b5497dcba267487b7e.",
"is_bot": false,
"headline": "Revert \"Revert \"docs: realign positioning to \"Your AI workforce\"\"\"",
"author_name": "kokevidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-02-06T01:05:23Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c4f66cf1ac00d60d86dac5b5497dcba267487b7e",
"body": "This reverts commit d8a31ca58ef789d60b80c921548237f664701a8c.",
"is_bot": false,
"headline": "Revert \"docs: realign positioning to \"Your AI workforce\"\"",
"author_name": "kokevidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-02-06T00:59:07Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d8a31ca58ef789d60b80c921548237f664701a8c",
"body": "Update package.json description and keywords, README opening, comparison table,\nand footer to reflect entrepreneur-focused mission framing.\n\n🤖 Generated with [Agents Squads](https://agents-squads.com)\nCo-Authored-By: Claude <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs: realign positioning to \"Your AI workforce\"",
"author_name": "kokevidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-02-06T00:48:46Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "fe33bac9ba83f9e060a79b7abe3ef3310f68d91d",
"body": "Moved fetchLearnings before dry-run check so preview accurately\nshows what learnings would be injected during real execution.\n\n🤖 Generated with [Agents Squads](https://agents-squads.com)\nCo-Authored-By: Claude <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(run): include learnings in dry-run preview",
"author_name": "kokevidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-02-03T03:48:55Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "1d26a7da577f6d74e1f48002709b2fb83eb3a479",
"body": "…ridge\"\n\nThis reverts commit eac9aa571ef4ae1307eee1c375a506604934eabc.",
"is_bot": false,
"headline": "Revert \"refactor(run): load learnings directly from file instead of b…",
"author_name": "kokevidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-02-03T03:44:57Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "eac9aa571ef4ae1307eee1c375a506604934eabc",
"body": "Simplified learning injection by reading learnings.md directly\nduring context gathering instead of fetching from bridge API.\n\n- Removes bridge dependency for learnings (faster, simpler)\n- Loads last ~2000 chars of learnings (most recent)\n- Integrated into gatherSquadContext with other memory files\n\n🤖 Generated with [Agents Squads](https://agents-squads.com)\nCo-Authored-By: Claude <noreply@anthropic.com>",
"is_bot": false,
"headline": "refactor(run): load learnings directly from file instead of bridge",
"author_name": "kokevidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-02-03T03:41:07Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "14786fe559d638d2aff05cc74b17d46a6ee40ad9",
"body": null,
"is_bot": false,
"headline": "refactor: clean up unused code",
"author_name": "kokevidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-02-03T02:14:58Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4e356b3867cf4ae54c27e569aad8c1818b7f58a5",
"body": "- Add 24h execution stats to overall status view (completed/failed/running)\n- Add recent executions section to squad detail view\n- Show status icons, agent names, duration, and relative time\n- Verbose mode shows error details for failed executions\n\n🤖 Generated with [Agents Squads](https://agents-squads.com)\nCo-Authored-By: Claude <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(status): add execution observability to squad status",
"author_name": "kokevidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-02-03T01:52:13Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "be50d64902021bddf7be077cdd1e7a97a12d23b3",
"body": "- Deprecate --execute flag with warning pointing to Claude Code native execution\n- Add `env prompt <squad> -a <agent>` command for ready-to-use prompts\n- Update foreground spawn to use shell wrapper for Node 22 compatibility\n- Align with Claude Code as execution engine, squads as context provider\n\nUsage:\n squads env prompt company -a event-dispatcher | claude --print\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
"is_bot": false,
"headline": "refactor(run): deprecate -e flag, add native Claude execution pattern",
"author_name": "kokevidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-02-03T01:41:26Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "6366f7cbe854c825e937372c820537cf759a4f9a",
"body": "Node.js 22 tries to require() symlinked executables instead of\nspawning them as subprocesses. Adding shell: true forces spawn\nto use /bin/sh which handles shebang resolution correctly.\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(run): add shell wrapper for Node 22 symlink resolution",
"author_name": "kokevidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-02-02T23:21:01Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "4529995d61f4f961bfa63e793df4733868bff0eb",
"body": "- Add update-docs-changelog.cjs script to insert release entries\n- Integrate into release.sh as step 8/9 (before npm publish)\n- Extracts features/fixes from commits, formats Mintlify-compatible MDX\n- Skips gracefully if docs repo not found locally\n\nCo-authored-by: kokevidaurre <kokevidaurre@users.noreply.github.com>\nCo-authored-by: Claude <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(release): auto-update docs changelog on version bump (#270)",
"author_name": "Jorge Vidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-02-02T14:03:14Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "27b5ed8d33190283476eb4ae787cbba940056605",
"body": "* fix(ci): add CODEOWNERS and run CI on sprint branches\n\n- Create CODEOWNERS file requiring @kokevidaurre review\n- Update CI workflow to run on sprint/** and release/** branches\n- Fixes governance gap where PRs were bypassing review\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>\n\n* feat: a\n[…]\nw)\n\nCloses #268\n\nCo-Authored-By: Claude <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: kokevidaurre <kokevidaurre@users.noreply.github.com>\nCo-authored-by: Claude Opus 4.5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat: add privacy indicators to CLI output (#269)",
"author_name": "Jorge Vidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-02-02T13:36:14Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "127dadc4a196d3da1a4141f30e98944b51252c48",
"body": null,
"is_bot": false,
"headline": "chore(login): use Cloud Run URL directly (DNS routing pending)",
"author_name": "kokevidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-01-30T00:59:52Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d00a8e4b4ff1b57101caf2eb8374fabdf5bf7e19",
"body": "Point to the actual API endpoint instead of non-existent app domain.\n\n🤖 Generated with [Agents Squads](https://agents-squads.com)\nCo-Authored-By: Claude <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(login): update auth URL to api.agents-squads.com",
"author_name": "kokevidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-01-30T00:38:13Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "7c241946d7b357b865a25ede4d1921834a35cdb1",
"body": "- Add docs badge to header\n- Add documentation quick links (docs, onboarding, architecture)\n- Add link to hooks-and-skills guide in Claude Code Integration section\n- Expand Related section with documentation, research, and intelligence links\n- Update pre-commit hook to allow credential examples in README\n\n🤖 Generated with [Agents Squads](https://agents-squads.com)\nCo-Authored-By: Claude <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs: add backlinks to agents-squads.com",
"author_name": "kokevidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-01-29T16:20:01Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "1eb979c757c4a0055f340e006400631cb08c8b00",
"body": "Check if auth endpoint is reachable before opening browser.\nIf unavailable, show friendly message with next steps instead of\nletting users hit a broken page.\n\n🤖 Generated with [Agents Squads](https://agents-squads.com)\nCo-Authored-By: Claude <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(login): show graceful \"coming soon\" message when auth unavailable",
"author_name": "kokevidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-01-29T14:46:03Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "2d06f5b453a39ec4fa3ce362ae3e33ee9a5cef7c",
"body": "Use realpathSync to resolve /var/folders symlink to /private/var/folders,\nfixing path comparison failures in memory tests on macOS.\n\n🤖 Generated with [Agents Squads](https://agents-squads.com)\nCo-Authored-By: Claude <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(test): normalize temp paths for macOS compatibility",
"author_name": "kokevidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-01-29T14:21:57Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "8d2ee731e0ea4cf2970911a92ffb7f2e9aca2f96",
"body": "feat(context): add squad-scoped skills and MCP servers",
"is_bot": false,
"headline": "Merge pull request #243 from agents-squads/feat/squad-scoped-skills",
"author_name": "Jorge Vidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-01-29T14:18:09Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ee624b6d8dd82f796142250b0bb51eb87b3d3eda",
"body": "Implements #109: Squad-scoped skills and MCP servers\n\nChanges:\n- Add three-tier skill resolution: squad-local > project > global\n- Add squad-local MCP config support (.agents/squads/<squad>/mcp.json)\n- Add ResolvedSkill interface with path and source info\n- Update context show/activate commands to d\n[…]\n2. User override: ~/.claude/mcp-configs/<squad>.json\n3. Generated: ~/.claude/mcp-configs/<squad>-generated.json\n4. Fallback: ~/.claude.json\n\nCloses #109\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(context): add squad-scoped skills and MCP servers",
"author_name": "kokevidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-01-29T13:34:40Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "1246715e8ffed501dd98822e6d90225e60b1e42c",
"body": "…and (#245)\n\n* fix(docker): add REDIS_URL to scheduler-api for event buffer\n\nThe event buffer requires Redis connection. Added REDIS_URL environment\nvariable and redis health dependency to scheduler-api service.\n\n🤖 Generated with [Agents Squads](https://agents-squads.com)\nCo-Authored-By: Claude <nor\n[…]\ne estimates\n\nCloses #225\n\nCo-Authored-By: Claude <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: kokevidaurre <kokevidaurre@users.noreply.github.com>\nCo-authored-by: Claude <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(dashboard): add ROI metrics, cost projections, and baseline comm…",
"author_name": "Jorge Vidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-01-29T13:27:06Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "52a648d0dff06f5255c737d1d40988d5187e2a4a",
"body": "…injection test (#253)\n\n- Skip tests for saveBaseline, getLatestBaseline, getBaselineByName, listBaselines\n These functions were never implemented in db.ts (ROI dashboard feature pending)\n- Fix postgres-source.test.ts SQL injection assertion\n The original test incorrectly checked for substring pre\n[…]\nsolver <engineering-issues-solver@agents-squads.com>\n\nAgent: engineering/issues-solver\nSquad: engineering\nModel: claude-opus-4-5-20251101\n\nCo-authored-by: Squads Cloud Worker <cloud@agents-squads.com>",
"is_bot": false,
"headline": "fix(tests): skip tests for unimplemented baseline functions, fix SQL …",
"author_name": "Jorge Vidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-01-29T13:26:57Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "90d3059d90e3dd045c368b96d9da6cf5a89b7856",
"body": "Agents now see their target repo from SQUAD.md Output section:\n- Target repo (e.g., `agents-squads/squads-cli`)\n- Code/Tests/Docs paths\n- Clear instruction: \"NOT hq - create PRs to this repo\"\n\nThis ensures agents create work products in the correct repo,\nnot just update memory in hq.\n\n🤖 Generated with [Agents Squads](https://agents-squads.com)\nCo-Authored-By: Claude <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(run): inject Output section with target repo into agent context",
"author_name": "kokevidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-01-29T03:43:14Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "bc6e7bc45a6fe4be6f1072e818a981832449254e",
"body": "Breaking change: `squads run` now runs in foreground by default instead\nof background. This gives users immediate visibility into agent work.\n\nChanges:\n- Foreground is now default (--background/-b for old behavior)\n- Added --watch/-w mode: background + tail log\n- Status updates on completion (comple\n[…]\n agent execution tracking issue where users saw nothing\nand status stayed \"running\" forever.\n\n🤖 Generated with [Agents Squads](https://agents-squads.com)\nCo-Authored-By: Claude <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(run): foreground default, status tracking, auto-commit",
"author_name": "kokevidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-01-29T03:35:06Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "586641d0a36a1919d9a23e4e6917e27d21ef2fbe",
"body": "* fix(docker): add REDIS_URL to scheduler-api for event buffer\n\nThe event buffer requires Redis connection. Added REDIS_URL environment\nvariable and redis health dependency to scheduler-api service.\n\n🤖 Generated with [Agents Squads](https://agents-squads.com)\nCo-Authored-By: Claude <noreply@anthropi\n[…]\nttps://agents-squads.com)\nCo-Authored-By: Claude <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: kokevidaurre <kokevidaurre@users.noreply.github.com>\nCo-authored-by: Claude <noreply@anthropic.com>",
"is_bot": false,
"headline": "test: add comprehensive database operation tests (#246)",
"author_name": "Jorge Vidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-01-29T02:18:03Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "3362aa9fe98c261ed89fce057c877caa54f91460",
"body": "* fix(docker): add REDIS_URL to scheduler-api for event buffer\n\nThe event buffer requires Redis connection. Added REDIS_URL environment\nvariable and redis health dependency to scheduler-api service.\n\n🤖 Generated with [Agents Squads](https://agents-squads.com)\nCo-Authored-By: Claude <noreply@anthropi\n[…]\ndependencies.\n\nCo-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: kokevidaurre <kokevidaurre@users.noreply.github.com>\nCo-authored-by: Claude <noreply@anthropic.com>",
"is_bot": false,
"headline": "test: add comprehensive tests for core commands (#226) (#244)",
"author_name": "Jorge Vidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-01-29T02:18:00Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "2f66fe25b0482f9b14a308395442a4ddf5872b23",
"body": "Extends model routing to support both Anthropic and Google (Gemini) models:\n\n- resolveModel() now accepts full model names (claude-opus-4-5, gemini-2.5-flash)\n- getClaudeModelAlias() maps full names to Claude Code aliases (opus/sonnet/haiku)\n- detectProviderFromModel() routes to appropriate executor\n[…]\nonnet-4\n cheap: gemini-2.5-flash # Cheap evals via Gemini\n expensive: claude-opus-4-5\n\n🤖 Generated with [Agents Squads](https://agents-squads.com)\nCo-Authored-By: Claude <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(run): multi-provider model routing",
"author_name": "kokevidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-01-28T20:17:15Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "d7029a84142859689cc9938a10e28403b889b7b7",
"body": "Routes model selection based on squad context.model config:\n- evaluation (critics) → cheap model (haiku)\n- lead (orchestrators) → expensive model (opus)\n- research/execution → default model (sonnet)\n\nExplicit --model flag always takes precedence over auto-routing.\n\n🤖 Generated with [Agents Squads](https://agents-squads.com)\nCo-Authored-By: Claude <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(run): enforce model routing from squad context",
"author_name": "kokevidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-01-28T19:51:19Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "2b02f98a42ae5346fa07cae6b4ed16c66932c8b9",
"body": "The event buffer requires Redis connection. Added REDIS_URL environment\nvariable and redis health dependency to scheduler-api service.\n\n🤖 Generated with [Agents Squads](https://agents-squads.com)\nCo-Authored-By: Claude <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(docker): add REDIS_URL to scheduler-api for event buffer",
"author_name": "kokevidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-01-28T12:55:07Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "7d7431192ede1d33a6ddfc804702af96da7bc3d1",
"body": "- Add goal progress to header (3/46 goals done)\n- Replace MEMORY column with GOALS (X/Y per squad)\n- Add Sprint Goals section showing top 5 active goals\n- Goals with progress appear first\n- Add --no-goals flag to hide goals section\n\nCloses #240\n\n🤖 Generated with [Agents Squads](https://agents-squads.com)\nCo-Authored-By: Claude <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(status): add sprint goals to status view",
"author_name": "kokevidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-01-28T01:36:47Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "2b62a923881c808b227a099d970d2dd17d5e639b",
"body": "Moved to .github/workflows-disabled/ until revenue covers costs.\n\n🤖 Generated with [Agents Squads](https://agents-squads.com)\nCo-Authored-By: Claude <noreply@anthropic.com>",
"is_bot": false,
"headline": "chore: disable workflows to reduce GitHub Actions costs",
"author_name": "kokevidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-01-27T13:28:37Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "268edd398b56674cff996aecdf329355c364983e",
"body": "Detects API version and displays appropriately:\n- New API: full time-windowed stats (1h, 24h, recent activity)\n- Old API: extracts running/queued from executions_24h\n\n🤖 Generated with [Agents Squads](https://agents-squads.com)\nCo-Authored-By: Claude <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix(trigger): backward compatible with old API format",
"author_name": "kokevidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-01-27T13:12:11Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "cf126bc7decb5afcb2e2423d16015ea8eb845b3e",
"body": "Separates current vs historical execution data:\n- Now: running, queued (real-time state)\n- Last 1h: recent completions with success rate\n- Last 24h: daily stats with success rate\n- Recent Activity: last 5 executions with duration\n\nFixes #238 - makes system health immediately visible\n\n🤖 Generated with [Agents Squads](https://agents-squads.com)\nCo-Authored-By: Claude <noreply@anthropic.com>",
"is_bot": false,
"headline": "feat(trigger): show time-windowed execution stats",
"author_name": "kokevidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-01-27T13:08:59Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "179f5ac67ab6ec763b4a2964c9e06af5da95c26e",
"body": "Validates that all CLI command outputs use only colors from our\ndefined brand palette (terminal.ts). Tests include:\n\n- 25 test cases covering all major commands\n- RGB color extraction from ANSI escape codes\n- Gradient interpolation validation (for progress bars, sparklines)\n- Palette definition with\n[…]\ndateColors(): Check output compliance\n- isValidGradientColor(): Validate interpolated colors\n\n🤖 Generated with [Agents Squads](https://agents-squads.com)\nCo-Authored-By: Claude <noreply@anthropic.com>",
"is_bot": false,
"headline": "test: add color palette compliance tests for all commands",
"author_name": "kokevidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-01-27T03:20:01Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "f819690cf4e83921d148b7be05c6432954379b5a",
"body": "* fix: use cross-platform paths and add platform checks\n\nCloses #206\n\n- autonomous.ts: Use os.tmpdir() instead of hardcoded /tmp/ for PID and log files\n- cron.ts: Add platform check with warning for non-macOS systems\n- cron.ts: Update description to clarify macOS-only nature\n\nCo-Authored-By: cli/iss\n[…]\ne-solver <cli-issue-solver@agents-squads.com>\n\nAgent: cli/issue-solver\nSquad: cli\nExecution: 2026-01-25\nModel: claude-opus-4-5\n\n---------\n\nCo-authored-by: Squads Cloud Worker <cloud@agents-squads.com>",
"is_bot": false,
"headline": "fix: use cross-platform paths in cron/autonomous commands (#207)",
"author_name": "Jorge Vidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-01-26T13:05:08Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "e68cc278ae8aacb6d1a3397f4dfb9b793d5f0771",
"body": "- On Max plan: Show daily spend without confusing percentage (costs are informational)\n- On usage plan: Show budget bar capped at 100%, with clear \"target\" labeling\n- Add contextual guidance when over target instead of alarming red bar\n\nBefore: \"$141.81/50 today ████████████████████ 284%\" (confusing\n[…]\nionable guidance\n\nCloses #121\n\n🤖 Generated with [Agents Squads](https://agents-squads.com)\n\nCo-authored-by: Squads Cloud Worker <cloud@agents-squads.com>\nCo-authored-by: Claude <noreply@anthropic.com>",
"is_bot": false,
"headline": "ux: clarify dashboard budget display for different plans (#198)",
"author_name": "Jorge Vidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-01-25T17:13:22Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "3be93bc486246ae5dcc1d819cdf8589c4138314d",
"body": "Closes #50\n\nAdds .showHelpAfterError() to the Commander program configuration.\nWhen users run commands with missing required arguments, they now see\nhelpful usage information instead of just the raw error.\n\n🤖 Generated with [Agents Squads](https://agents-squads.com)\n\nCo-authored-by: Squads Cloud Worker <cloud@agents-squads.com>\nCo-authored-by: Claude <noreply@anthropic.com>",
"is_bot": false,
"headline": "ux: show help after missing required arguments (#197)",
"author_name": "Jorge Vidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-01-25T17:13:19Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "a50c3789144369456c417831cdb9fb1b9b45dc74",
"body": "Closes #31\n\nWraps the trigger list fetch call in try/catch to detect connection\nrefused errors. Instead of showing a raw stack trace, displays a\nhelpful error message with recovery steps.\n\n🤖 Generated with [Agents Squads](https://agents-squads.com)\n\nCo-authored-by: Squads Cloud Worker <cloud@agents-squads.com>\nCo-authored-by: Claude <noreply@anthropic.com>",
"is_bot": false,
"headline": "fix: handle scheduler offline error in trigger list (#196)",
"author_name": "Jorge Vidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-01-25T17:13:15Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "7771f2ab6103f2f51c84f77d251b437d8b8defc0",
"body": "Remove hardcoded fallback credentials for local PostgreSQL database.\nDatabase configuration now requires explicit SQUADS_DATABASE_URL env var.\nAll database functions gracefully handle missing configuration by\nreturning null/empty results instead of failing.\n\nCloses #155\n\n🤖 Generated with [Agents Squads](https://agents-squads.com)\n\nCo-authored-by: Squads Cloud Worker <cloud@agents-squads.com>\nCo-authored-by: Claude <noreply@anthropic.com>",
"is_bot": false,
"headline": "security: remove hardcoded database credentials from db.ts (#195)",
"author_name": "Jorge Vidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-01-25T17:13:13Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "5725380e766f437aa3a4169113f3ed96ce2fa887",
"body": "Closes #150\n\nAdded JSDoc documentation to all exported functions describing their\npurpose, parameters, and return values. Follows the style established\nin goal-parser.ts.\n\nFunctions documented:\n- findSquadsDir\n- findProjectRoot\n- hasLocalInfraConfig\n- listSquads\n- listAgents\n- parseSquadFile\n- loadSquad\n- loadAgentDefinition\n- addGoalToSquad\n- updateGoalInSquad\n\nCo-authored-by: Squads Cloud Worker <cloud@agents-squads.com>\nCo-authored-by: Claude <noreply@anthropic.com>",
"is_bot": false,
"headline": "docs: add JSDoc comments to squad-parser.ts exported functions (#194)",
"author_name": "Jorge Vidaurre",
"author_login": "kokevidaurre",
"committed_at": "2026-01-25T17:13:10Z",
"body_truncated": false,
"is_coding_agent": true
}
],
"releases_count": 12,
"commits_last_year": 313,
"latest_release_at": "2026-07-07T19:37:14Z",
"latest_release_tag": "v0.9.0",
"releases_from_tags": false,
"days_since_last_push": 2,
"active_weeks_last_year": 16,
"days_since_latest_release": 20,
"mean_days_between_releases": 11.2
},
"community": {
"has_readme": true,
"has_license": true,
"has_description": true,
"has_contributing": true,
"health_percentage": 87,
"has_issue_template": false,
"has_code_of_conduct": true,
"has_pull_request_template": true
},
"ecosystem": {
"packages": [
{
"name": "squads-cli",
"exists": true,
"license": "MIT",
"keywords": [
"ai-workforce",
"workforce",
"autonomous-agents",
"agent-framework",
"ai-automation",
"crewai-alternative",
"autogen-alternative",
"langgraph-alternative",
"multi-agent",
"orchestration",
"ai-agents",
"persistent-memory",
"squads",
"cli",
"claude",
"claude-code",
"anthropic",
"mcp",
"agent-sdk",
"business-automation"
],
"ecosystem": "npm",
"matches_repo": true,
"registry_url": "https://www.npmjs.com/package/squads-cli",
"is_deprecated": false,
"latest_version": "0.9.0",
"repository_url": "https://github.com/agents-squads/squads-cli",
"versions_count": 29,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": 1,
"monthly_downloads": 1176,
"first_published_at": "2026-01-03T00:44:40.543000Z",
"latest_published_at": "2026-07-07T19:37:43.930000Z",
"latest_version_yanked": null,
"days_since_latest_publish": 20
}
]
},
"popularity": {
"forks": 2,
"stars": 49,
"watchers": 1,
"fork_history": {
"days": [
{
"date": "2026-03-11",
"count": 1
},
{
"date": "2026-03-28",
"count": 1
}
],
"complete": true,
"collected": 2,
"total_forks": 2
},
"star_history": null,
"open_issues_and_prs": 56
},
"ai_readiness": {
"has_nix": false,
"example_dirs": [],
"has_llms_txt": false,
"has_dockerfile": true,
"has_mcp_signal": false,
"bootstrap_files": [],
"api_schema_files": [
"openapi/openapi.json"
],
"has_devcontainer": false,
"typecheck_configs": [
"tsconfig.json"
],
"toolchain_manifests": [],
"largest_source_bytes": 120426,
"source_files_sampled": 289,
"oversized_source_files": 2,
"agent_instruction_files": [
"AGENTS.md",
"CLAUDE.md"
],
"agent_instruction_max_bytes": 4781
},
"dependencies": {
"manifests": [
"package.json"
],
"advisories": {
"error": null,
"scope": "published_package",
"source": "osv",
"findings": [],
"collected": true,
"malicious": [],
"truncated": false,
"by_severity": {},
"advisory_count": 0,
"affected_count": 0,
"assessed_count": 97,
"malicious_count": 0,
"assessed_package": "npm:squads-cli@0.9.0",
"unassessed_count": 0,
"direct_affected_count": 0
},
"ecosystems": [
"npm"
],
"dependencies": [
{
"name": "@anthropic-ai/sdk",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^0.71.2"
},
{
"name": "chalk",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^5.3.0"
},
{
"name": "chrono-node",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^2.9.0"
},
{
"name": "commander",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^12.1.0"
},
{
"name": "dotenv",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^17.2.3"
},
{
"name": "gray-matter",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^4.0.3"
},
{
"name": "inquirer",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^9.2.12"
},
{
"name": "minimatch",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^10.2.1"
},
{
"name": "open",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^11.0.0"
},
{
"name": "ora",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^8.0.1"
}
],
"all_dependencies": {
"error": null,
"source": "github-sbom",
"packages": [
{
"name": "@anthropic-ai/sdk",
"direct": true,
"version": "0.71.2",
"ecosystem": "npm"
},
{
"name": "chalk",
"direct": true,
"version": "4.1.2",
"ecosystem": "npm"
},
{
"name": "chalk",
"direct": true,
"version": "5.6.2",
"ecosystem": "npm"
},
{
"name": "chrono-node",
"direct": true,
"version": "2.9.0",
"ecosystem": "npm"
},
{
"name": "commander",
"direct": true,
"version": "12.1.0",
"ecosystem": "npm"
},
{
"name": "commander",
"direct": true,
"version": "14.0.3",
"ecosystem": "npm"
},
{
"name": "commander",
"direct": true,
"version": "4.1.1",
"ecosystem": "npm"
},
{
"name": "dotenv",
"direct": true,
"version": "17.4.2",
"ecosystem": "npm"
},
{
"name": "dotenv",
"direct": true,
"version": "8.6.0",
"ecosystem": "npm"
},
{
"name": "gray-matter",
"direct": true,
"version": "4.0.3",
"ecosystem": "npm"
},
{
"name": "inquirer",
"direct": true,
"version": "9.3.8",
"ecosystem": "npm"
},
{
"name": "minimatch",
"direct": true,
"version": "10.2.5",
"ecosystem": "npm"
},
{
"name": "minimatch",
"direct": true,
"version": "3.1.5",
"ecosystem": "npm"
},
{
"name": "minimatch",
"direct": true,
"version": "9.0.9",
"ecosystem": "npm"
},
{
"name": "open",
"direct": true,
"version": "11.0.0",
"ecosystem": "npm"
},
{
"name": "ora",
"direct": true,
"version": "5.4.1",
"ecosystem": "npm"
},
{
"name": "ora",
"direct": true,
"version": "8.2.0",
"ecosystem": "npm"
},
{
"name": "@babel/helper-string-parser",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/helper-validator-identifier",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/parser",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@babel/runtime",
"direct": false,
"version": "7.28.4",
"ecosystem": "npm"
},
{
"name": "@babel/types",
"direct": false,
"version": "7.29.7",
"ecosystem": "npm"
},
{
"name": "@bcoe/v8-coverage",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "@changesets/apply-release-plan",
"direct": false,
"version": "7.1.0",
"ecosystem": "npm"
},
{
"name": "@changesets/assemble-release-plan",
"direct": false,
"version": "6.0.9",
"ecosystem": "npm"
},
{
"name": "@changesets/changelog-git",
"direct": false,
"version": "0.2.1",
"ecosystem": "npm"
},
{
"name": "@changesets/changelog-github",
"direct": false,
"version": "0.6.0",
"ecosystem": "npm"
},
{
"name": "@changesets/cli",
"direct": false,
"version": "2.30.0",
"ecosystem": "npm"
},
{
"name": "@changesets/config",
"direct": false,
"version": "3.1.3",
"ecosystem": "npm"
},
{
"name": "@changesets/errors",
"direct": false,
"version": "0.2.0",
"ecosystem": "npm"
},
{
"name": "@changesets/get-dependents-graph",
"direct": false,
"version": "2.1.3",
"ecosystem": "npm"
},
{
"name": "@changesets/get-github-info",
"direct": false,
"version": "0.8.0",
"ecosystem": "npm"
},
{
"name": "@changesets/get-release-plan",
"direct": false,
"version": "4.0.15",
"ecosystem": "npm"
},
{
"name": "@changesets/get-version-range-type",
"direct": false,
"version": "0.4.0",
"ecosystem": "npm"
},
{
"name": "@changesets/git",
"direct": false,
"version": "3.0.4",
"ecosystem": "npm"
},
{
"name": "@changesets/logger",
"direct": false,
"version": "0.1.1",
"ecosystem": "npm"
},
{
"name": "@changesets/parse",
"direct": false,
"version": "0.4.3",
"ecosystem": "npm"
},
{
"name": "@changesets/pre",
"direct": false,
"version": "2.0.2",
"ecosystem": "npm"
},
{
"name": "@changesets/read",
"direct": false,
"version": "0.6.7",
"ecosystem": "npm"
},
{
"name": "@changesets/should-skip-package",
"direct": false,
"version": "0.1.2",
"ecosystem": "npm"
},
{
"name": "@changesets/types",
"direct": false,
"version": "4.1.0",
"ecosystem": "npm"
},
{
"name": "@changesets/types",
"direct": false,
"version": "6.1.0",
"ecosystem": "npm"
},
{
"name": "@changesets/write",
"direct": false,
"version": "0.4.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": "@esbuild/aix-ppc64",
"direct": false,
"version": "0.27.2",
"ecosystem": "npm"
},
{
"name": "@esbuild/android-arm",
"direct": false,
"version": "0.27.2",
"ecosystem": "npm"
},
{
"name": "@esbuild/android-arm64",
"direct": false,
"version": "0.27.2",
"ecosystem": "npm"
},
{
"name": "@esbuild/android-x64",
"direct": false,
"version": "0.27.2",
"ecosystem": "npm"
},
{
"name": "@esbuild/darwin-arm64",
"direct": false,
"version": "0.27.2",
"ecosystem": "npm"
},
{
"name": "@esbuild/darwin-x64",
"direct": false,
"version": "0.27.2",
"ecosystem": "npm"
},
{
"name": "@esbuild/freebsd-arm64",
"direct": false,
"version": "0.27.2",
"ecosystem": "npm"
},
{
"name": "@esbuild/freebsd-x64",
"direct": false,
"version": "0.27.2",
"ecosystem": "npm"
},
{
"name": "@esbuild/linux-arm",
"direct": false,
"version": "0.27.2",
"ecosystem": "npm"
},
{
"name": "@esbuild/linux-arm64",
"direct": false,
"version": "0.27.2",
"ecosystem": "npm"
},
{
"name": "@esbuild/linux-ia32",
"direct": false,
"version": "0.27.2",
"ecosystem": "npm"
},
{
"name": "@esbuild/linux-loong64",
"direct": false,
"version": "0.27.2",
"ecosystem": "npm"
},
{
"name": "@esbuild/linux-mips64el",
"direct": false,
"version": "0.27.2",
"ecosystem": "npm"
},
{
"name": "@esbuild/linux-ppc64",
"direct": false,
"version": "0.27.2",
"ecosystem": "npm"
},
{
"name": "@esbuild/linux-riscv64",
"direct": false,
"version": "0.27.2",
"ecosystem": "npm"
},
{
"name": "@esbuild/linux-s390x",
"direct": false,
"version": "0.27.2",
"ecosystem": "npm"
},
{
"name": "@esbuild/linux-x64",
"direct": false,
"version": "0.27.2",
"ecosystem": "npm"
},
{
"name": "@esbuild/netbsd-arm64",
"direct": false,
"version": "0.27.2",
"ecosystem": "npm"
},
{
"name": "@esbuild/netbsd-x64",
"direct": false,
"version": "0.27.2",
"ecosystem": "npm"
},
{
"name": "@esbuild/openbsd-arm64",
"direct": false,
"version": "0.27.2",
"ecosystem": "npm"
},
{
"name": "@esbuild/openbsd-x64",
"direct": false,
"version": "0.27.2",
"ecosystem": "npm"
},
{
"name": "@esbuild/openharmony-arm64",
"direct": false,
"version": "0.27.2",
"ecosystem": "npm"
},
{
"name": "@esbuild/sunos-x64",
"direct": false,
"version": "0.27.2",
"ecosystem": "npm"
},
{
"name": "@esbuild/win32-arm64",
"direct": false,
"version": "0.27.2",
"ecosystem": "npm"
},
{
"name": "@esbuild/win32-ia32",
"direct": false,
"version": "0.27.2",
"ecosystem": "npm"
},
{
"name": "@esbuild/win32-x64",
"direct": false,
"version": "0.27.2",
"ecosystem": "npm"
},
{
"name": "@eslint-community/eslint-utils",
"direct": false,
"version": "4.9.1",
"ecosystem": "npm"
},
{
"name": "@eslint-community/regexpp",
"direct": false,
"version": "4.12.2",
"ecosystem": "npm"
},
{
"name": "@eslint/config-array",
"direct": false,
"version": "0.21.1",
"ecosystem": "npm"
},
{
"name": "@eslint/config-helpers",
"direct": false,
"version": "0.4.2",
"ecosystem": "npm"
},
{
"name": "@eslint/core",
"direct": false,
"version": "0.17.0",
"ecosystem": "npm"
},
{
"name": "@eslint/eslintrc",
"direct": false,
"version": "3.3.3",
"ecosystem": "npm"
},
{
"name": "@eslint/js",
"direct": false,
"version": "9.39.2",
"ecosystem": "npm"
},
{
"name": "@eslint/object-schema",
"direct": false,
"version": "2.1.7",
"ecosystem": "npm"
},
{
"name": "@eslint/plugin-kit",
"direct": false,
"version": "0.4.1",
"ecosystem": "npm"
},
{
"name": "@hey-api/codegen-core",
"direct": false,
"version": "0.8.2",
"ecosystem": "npm"
},
{
"name": "@hey-api/json-schema-ref-parser",
"direct": false,
"version": "1.4.2",
"ecosystem": "npm"
},
{
"name": "@hey-api/openapi-ts",
"direct": false,
"version": "0.97.3",
"ecosystem": "npm"
},
{
"name": "@hey-api/shared",
"direct": false,
"version": "0.4.5",
"ecosystem": "npm"
},
{
"name": "@hey-api/spec-types",
"direct": false,
"version": "0.2.0",
"ecosystem": "npm"
},
{
"name": "@hey-api/types",
"direct": false,
"version": "0.1.4",
"ecosystem": "npm"
},
{
"name": "@humanfs/core",
"direct": false,
"version": "0.19.1",
"ecosystem": "npm"
},
{
"name": "@humanfs/node",
"direct": false,
"version": "0.16.7",
"ecosystem": "npm"
},
{
"name": "@humanwhocodes/module-importer",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "@humanwhocodes/retry",
"direct": false,
"version": "0.4.3",
"ecosystem": "npm"
},
{
"name": "@inquirer/external-editor",
"direct": false,
"version": "1.0.3",
"ecosystem": "npm"
},
{
"name": "@inquirer/figures",
"direct": false,
"version": "1.0.15",
"ecosystem": "npm"
},
{
"name": "@jridgewell/gen-mapping",
"direct": false,
"version": "0.3.13",
"ecosystem": "npm"
},
{
"name": "@jridgewell/resolve-uri",
"direct": false,
"version": "3.1.2",
"ecosystem": "npm"
},
{
"name": "@jridgewell/sourcemap-codec",
"direct": false,
"version": "1.5.5",
"ecosystem": "npm"
},
{
"name": "@jridgewell/trace-mapping",
"direct": false,
"version": "0.3.31",
"ecosystem": "npm"
},
{
"name": "@jsdevtools/ono",
"direct": false,
"version": "7.1.3",
"ecosystem": "npm"
},
{
"name": "@lukeed/ms",
"direct": false,
"version": "2.0.2",
"ecosystem": "npm"
},
{
"name": "@manypkg/find-root",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "@manypkg/get-packages",
"direct": false,
"version": "1.1.3",
"ecosystem": "npm"
},
{
"name": "@napi-rs/wasm-runtime",
"direct": false,
"version": "1.1.4",
"ecosystem": "npm"
},
{
"name": "@nodelib/fs.scandir",
"direct": false,
"version": "2.1.5",
"ecosystem": "npm"
},
{
"name": "@nodelib/fs.stat",
"direct": false,
"version": "2.0.5",
"ecosystem": "npm"
},
{
"name": "@nodelib/fs.walk",
"direct": false,
"version": "1.2.8",
"ecosystem": "npm"
},
{
"name": "@oxc-project/types",
"direct": false,
"version": "0.133.0",
"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": "@rollup/rollup-android-arm-eabi",
"direct": false,
"version": "4.61.1",
"ecosystem": "npm"
},
{
"name": "@rollup/rollup-android-arm64",
"direct": false,
"version": "4.61.1",
"ecosystem": "npm"
},
{
"name": "@rollup/rollup-darwin-arm64",
"direct": false,
"version": "4.61.1",
"ecosystem": "npm"
},
{
"name": "@rollup/rollup-darwin-x64",
"direct": false,
"version": "4.61.1",
"ecosystem": "npm"
},
{
"name": "@rollup/rollup-freebsd-arm64",
"direct": false,
"version": "4.61.1",
"ecosystem": "npm"
},
{
"name": "@rollup/rollup-freebsd-x64",
"direct": false,
"version": "4.61.1",
"ecosystem": "npm"
},
{
"name": "@rollup/rollup-linux-arm-gnueabihf",
"direct": false,
"version": "4.61.1",
"ecosystem": "npm"
},
{
"name": "@rollup/rollup-linux-arm-musleabihf",
"direct": false,
"version": "4.61.1",
"ecosystem": "npm"
},
{
"name": "@rollup/rollup-linux-arm64-gnu",
"direct": false,
"version": "4.61.1",
"ecosystem": "npm"
},
{
"name": "@rollup/rollup-linux-arm64-musl",
"direct": false,
"version": "4.61.1",
"ecosystem": "npm"
},
{
"name": "@rollup/rollup-linux-loong64-gnu",
"direct": false,
"version": "4.61.1",
"ecosystem": "npm"
},
{
"name": "@rollup/rollup-linux-loong64-musl",
"direct": false,
"version": "4.61.1",
"ecosystem": "npm"
},
{
"name": "@rollup/rollup-linux-ppc64-gnu",
"direct": false,
"version": "4.61.1",
"ecosystem": "npm"
},
{
"name": "@rollup/rollup-linux-ppc64-musl",
"direct": false,
"version": "4.61.1",
"ecosystem": "npm"
},
{
"name": "@rollup/rollup-linux-riscv64-gnu",
"direct": false,
"version": "4.61.1",
"ecosystem": "npm"
},
{
"name": "@rollup/rollup-linux-riscv64-musl",
"direct": false,
"version": "4.61.1",
"ecosystem": "npm"
},
{
"name": "@rollup/rollup-linux-s390x-gnu",
"direct": false,
"version": "4.61.1",
"ecosystem": "npm"
},
{
"name": "@rollup/rollup-linux-x64-gnu",
"direct": false,
"version": "4.61.1",
"ecosystem": "npm"
},
{
"name": "@rollup/rollup-linux-x64-musl",
"direct": false,
"version": "4.61.1",
"ecosystem": "npm"
},
{
"name": "@rollup/rollup-openbsd-x64",
"direct": false,
"version": "4.61.1",
"ecosystem": "npm"
},
{
"name": "@rollup/rollup-openharmony-arm64",
"direct": false,
"version": "4.61.1",
"ecosystem": "npm"
},
{
"name": "@rollup/rollup-win32-arm64-msvc",
"direct": false,
"version": "4.61.1",
"ecosystem": "npm"
},
{
"name": "@rollup/rollup-win32-ia32-msvc",
"direct": false,
"version": "4.61.1",
"ecosystem": "npm"
},
{
"name": "@rollup/rollup-win32-x64-gnu",
"direct": false,
"version": "4.61.1",
"ecosystem": "npm"
},
{
"name": "@rollup/rollup-win32-x64-msvc",
"direct": false,
"version": "4.61.1",
"ecosystem": "npm"
},
{
"name": "@standard-schema/spec",
"direct": false,
"version": "1.1.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/deep-eql",
"direct": false,
"version": "4.0.2",
"ecosystem": "npm"
},
{
"name": "@types/estree",
"direct": false,
"version": "1.0.9",
"ecosystem": "npm"
},
{
"name": "@types/json-schema",
"direct": false,
"version": "7.0.15",
"ecosystem": "npm"
},
{
"name": "@types/node",
"direct": false,
"version": "12.20.55",
"ecosystem": "npm"
},
{
"name": "@types/node",
"direct": false,
"version": "20.19.27",
"ecosystem": "npm"
},
{
"name": "@typescript-eslint/eslint-plugin",
"direct": false,
"version": "8.56.0",
"ecosystem": "npm"
},
{
"name": "@typescript-eslint/parser",
"direct": false,
"version": "8.56.0",
"ecosystem": "npm"
},
{
"name": "@typescript-eslint/project-service",
"direct": false,
"version": "8.56.0",
"ecosystem": "npm"
},
{
"name": "@typescript-eslint/scope-manager",
"direct": false,
"version": "8.56.0",
"ecosystem": "npm"
},
{
"name": "@typescript-eslint/tsconfig-utils",
"direct": false,
"version": "8.56.0",
"ecosystem": "npm"
},
{
"name": "@typescript-eslint/type-utils",
"direct": false,
"version": "8.56.0",
"ecosystem": "npm"
},
{
"name": "@typescript-eslint/types",
"direct": false,
"version": "8.56.0",
"ecosystem": "npm"
},
{
"name": "@typescript-eslint/typescript-estree",
"direct": false,
"version": "8.56.0",
"ecosystem": "npm"
},
{
"name": "@typescript-eslint/utils",
"direct": false,
"version": "8.56.0",
"ecosystem": "npm"
},
{
"name": "@typescript-eslint/visitor-keys",
"direct": false,
"version": "8.56.0",
"ecosystem": "npm"
},
{
"name": "@vitest/coverage-v8",
"direct": false,
"version": "4.1.8",
"ecosystem": "npm"
},
{
"name": "@vitest/expect",
"direct": false,
"version": "4.1.8",
"ecosystem": "npm"
},
{
"name": "@vitest/mocker",
"direct": false,
"version": "4.1.8",
"ecosystem": "npm"
},
{
"name": "@vitest/pretty-format",
"direct": false,
"version": "4.1.8",
"ecosystem": "npm"
},
{
"name": "@vitest/runner",
"direct": false,
"version": "4.1.8",
"ecosystem": "npm"
},
{
"name": "@vitest/snapshot",
"direct": false,
"version": "4.1.8",
"ecosystem": "npm"
},
{
"name": "@vitest/spy",
"direct": false,
"version": "4.1.8",
"ecosystem": "npm"
},
{
"name": "@vitest/utils",
"direct": false,
"version": "4.1.8",
"ecosystem": "npm"
},
{
"name": "acorn",
"direct": false,
"version": "8.15.0",
"ecosystem": "npm"
},
{
"name": "acorn-jsx",
"direct": false,
"version": "5.3.2",
"ecosystem": "npm"
},
{
"name": "ajv",
"direct": false,
"version": "6.15.0",
"ecosystem": "npm"
},
{
"name": "ansi-colors",
"direct": false,
"version": "4.1.3",
"ecosystem": "npm"
},
{
"name": "ansi-escapes",
"direct": false,
"version": "4.3.2",
"ecosystem": "npm"
},
{
"name": "ansi-regex",
"direct": false,
"version": "5.0.1",
"ecosystem": "npm"
},
{
"name": "ansi-regex",
"direct": false,
"version": "6.2.2",
"ecosystem": "npm"
},
{
"name": "ansi-styles",
"direct": false,
"version": "4.3.0",
"ecosystem": "npm"
},
{
"name": "any-promise",
"direct": false,
"version": "1.3.0",
"ecosystem": "npm"
},
{
"name": "argparse",
"direct": false,
"version": "1.0.10",
"ecosystem": "npm"
},
{
"name": "argparse",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "array-union",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "assertion-error",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "ast-v8-to-istanbul",
"direct": false,
"version": "1.0.3",
"ecosystem": "npm"
},
{
"name": "balanced-match",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "balanced-match",
"direct": false,
"version": "4.0.4",
"ecosystem": "npm"
},
{
"name": "base64-js",
"direct": false,
"version": "1.5.1",
"ecosystem": "npm"
},
{
"name": "better-path-resolve",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "bl",
"direct": false,
"version": "4.1.0",
"ecosystem": "npm"
},
{
"name": "brace-expansion",
"direct": false,
"version": "1.1.15",
"ecosystem": "npm"
},
{
"name": "brace-expansion",
"direct": false,
"version": "2.1.1",
"ecosystem": "npm"
},
{
"name": "brace-expansion",
"direct": false,
"version": "5.0.6",
"ecosystem": "npm"
},
{
"name": "braces",
"direct": false,
"version": "3.0.3",
"ecosystem": "npm"
},
{
"name": "buffer",
"direct": false,
"version": "5.7.1",
"ecosystem": "npm"
},
{
"name": "bundle-name",
"direct": false,
"version": "4.1.0",
"ecosystem": "npm"
},
{
"name": "bundle-require",
"direct": false,
"version": "5.1.0",
"ecosystem": "npm"
},
{
"name": "c12",
"direct": false,
"version": "3.3.4",
"ecosystem": "npm"
},
{
"name": "cac",
"direct": false,
"version": "6.7.14",
"ecosystem": "npm"
},
{
"name": "callsites",
"direct": false,
"version": "3.1.0",
"ecosystem": "npm"
},
{
"name": "chai",
"direct": false,
"version": "6.2.2",
"ecosystem": "npm"
},
{
"name": "chardet",
"direct": false,
"version": "2.1.1",
"ecosystem": "npm"
},
{
"name": "chokidar",
"direct": false,
"version": "4.0.3",
"ecosystem": "npm"
},
{
"name": "chokidar",
"direct": false,
"version": "5.0.0",
"ecosystem": "npm"
},
{
"name": "cli-cursor",
"direct": false,
"version": "3.1.0",
"ecosystem": "npm"
},
{
"name": "cli-cursor",
"direct": false,
"version": "5.0.0",
"ecosystem": "npm"
},
{
"name": "cli-spinners",
"direct": false,
"version": "2.9.2",
"ecosystem": "npm"
},
{
"name": "cli-width",
"direct": false,
"version": "4.1.0",
"ecosystem": "npm"
},
{
"name": "clone",
"direct": false,
"version": "1.0.4",
"ecosystem": "npm"
},
{
"name": "color-convert",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "color-name",
"direct": false,
"version": "1.1.4",
"ecosystem": "npm"
},
{
"name": "color-support",
"direct": false,
"version": "1.1.3",
"ecosystem": "npm"
},
{
"name": "concat-map",
"direct": false,
"version": "0.0.1",
"ecosystem": "npm"
},
{
"name": "confbox",
"direct": false,
"version": "0.1.8",
"ecosystem": "npm"
},
{
"name": "confbox",
"direct": false,
"version": "0.2.4",
"ecosystem": "npm"
},
{
"name": "consola",
"direct": false,
"version": "3.4.2",
"ecosystem": "npm"
},
{
"name": "convert-source-map",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "cross-spawn",
"direct": false,
"version": "7.0.6",
"ecosystem": "npm"
},
{
"name": "dataloader",
"direct": false,
"version": "1.4.0",
"ecosystem": "npm"
},
{
"name": "debug",
"direct": false,
"version": "4.4.3",
"ecosystem": "npm"
},
{
"name": "deep-is",
"direct": false,
"version": "0.1.4",
"ecosystem": "npm"
},
{
"name": "default-browser",
"direct": false,
"version": "5.4.0",
"ecosystem": "npm"
},
{
"name": "default-browser-id",
"direct": false,
"version": "5.0.1",
"ecosystem": "npm"
},
{
"name": "defaults",
"direct": false,
"version": "1.0.4",
"ecosystem": "npm"
},
{
"name": "define-lazy-prop",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "defu",
"direct": false,
"version": "6.1.7",
"ecosystem": "npm"
},
{
"name": "destr",
"direct": false,
"version": "2.0.5",
"ecosystem": "npm"
},
{
"name": "detect-indent",
"direct": false,
"version": "6.1.0",
"ecosystem": "npm"
},
{
"name": "detect-libc",
"direct": false,
"version": "2.1.2",
"ecosystem": "npm"
},
{
"name": "dir-glob",
"direct": false,
"version": "3.0.1",
"ecosystem": "npm"
},
{
"name": "emoji-regex",
"direct": false,
"version": "10.6.0",
"ecosystem": "npm"
},
{
"name": "emoji-regex",
"direct": false,
"version": "8.0.0",
"ecosystem": "npm"
},
{
"name": "enquirer",
"direct": false,
"version": "2.4.1",
"ecosystem": "npm"
},
{
"name": "es-module-lexer",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "esbuild",
"direct": false,
"version": "0.27.2",
"ecosystem": "npm"
},
{
"name": "escape-string-regexp",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "eslint",
"direct": false,
"version": "9.39.2",
"ecosystem": "npm"
},
{
"name": "eslint-scope",
"direct": false,
"version": "8.4.0",
"ecosystem": "npm"
},
{
"name": "eslint-visitor-keys",
"direct": false,
"version": "3.4.3",
"ecosystem": "npm"
},
{
"name": "eslint-visitor-keys",
"direct": false,
"version": "4.2.1",
"ecosystem": "npm"
},
{
"name": "eslint-visitor-keys",
"direct": false,
"version": "5.0.0",
"ecosystem": "npm"
},
{
"name": "espree",
"direct": false,
"version": "10.4.0",
"ecosystem": "npm"
},
{
"name": "esprima",
"direct": false,
"version": "4.0.1",
"ecosystem": "npm"
},
{
"name": "esquery",
"direct": false,
"version": "1.7.0",
"ecosystem": "npm"
},
{
"name": "esrecurse",
"direct": false,
"version": "4.3.0",
"ecosystem": "npm"
},
{
"name": "estraverse",
"direct": false,
"version": "5.3.0",
"ecosystem": "npm"
},
{
"name": "estree-walker",
"direct": false,
"version": "3.0.3",
"ecosystem": "npm"
},
{
"name": "esutils",
"direct": false,
"version": "2.0.3",
"ecosystem": "npm"
},
{
"name": "expect-type",
"direct": false,
"version": "1.3.0",
"ecosystem": "npm"
},
{
"name": "exsolve",
"direct": false,
"version": "1.0.8",
"ecosystem": "npm"
},
{
"name": "extend-shallow",
"direct": false,
"version": "2.0.1",
"ecosystem": "npm"
},
{
"name": "extendable-error",
"direct": false,
"version": "0.1.7",
"ecosystem": "npm"
},
{
"name": "fast-deep-equal",
"direct": false,
"version": "3.1.3",
"ecosystem": "npm"
},
{
"name": "fast-glob",
"direct": false,
"version": "3.3.3",
"ecosystem": "npm"
},
{
"name": "fast-json-stable-stringify",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "fast-levenshtein",
"direct": false,
"version": "2.0.6",
"ecosystem": "npm"
},
{
"name": "fastq",
"direct": false,
"version": "1.20.1",
"ecosystem": "npm"
},
{
"name": "fdir",
"direct": false,
"version": "6.5.0",
"ecosystem": "npm"
},
{
"name": "file-entry-cache",
"direct": false,
"version": "8.0.0",
"ecosystem": "npm"
},
{
"name": "fill-range",
"direct": false,
"version": "7.1.1",
"ecosystem": "npm"
},
{
"name": "find-up",
"direct": false,
"version": "4.1.0",
"ecosystem": "npm"
},
{
"name": "find-up",
"direct": false,
"version": "5.0.0",
"ecosystem": "npm"
},
{
"name": "fix-dts-default-cjs-exports",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "flat-cache",
"direct": false,
"version": "4.0.1",
"ecosystem": "npm"
},
{
"name": "flatted",
"direct": false,
"version": "3.4.2",
"ecosystem": "npm"
},
{
"name": "fs-extra",
"direct": false,
"version": "7.0.1",
"ecosystem": "npm"
},
{
"name": "fs-extra",
"direct": false,
"version": "8.1.0",
"ecosystem": "npm"
},
{
"name": "fsevents",
"direct": false,
"version": "2.3.3",
"ecosystem": "npm"
},
{
"name": "get-east-asian-width",
"direct": false,
"version": "1.4.0",
"ecosystem": "npm"
},
{
"name": "get-tsconfig",
"direct": false,
"version": "4.14.0",
"ecosystem": "npm"
},
{
"name": "giget",
"direct": false,
"version": "3.2.0",
"ecosystem": "npm"
},
{
"name": "glob-parent",
"direct": false,
"version": "5.1.2",
"ecosystem": "npm"
},
{
"name": "glob-parent",
"direct": false,
"version": "6.0.2",
"ecosystem": "npm"
},
{
"name": "globals",
"direct": false,
"version": "14.0.0",
"ecosystem": "npm"
},
{
"name": "globby",
"direct": false,
"version": "11.1.0",
"ecosystem": "npm"
},
{
"name": "graceful-fs",
"direct": false,
"version": "4.2.11",
"ecosystem": "npm"
},
{
"name": "has-flag",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "html-escaper",
"direct": false,
"version": "2.0.2",
"ecosystem": "npm"
},
{
"name": "human-id",
"direct": false,
"version": "4.1.3",
"ecosystem": "npm"
},
{
"name": "iconv-lite",
"direct": false,
"version": "0.7.1",
"ecosystem": "npm"
},
{
"name": "ieee754",
"direct": false,
"version": "1.2.1",
"ecosystem": "npm"
},
{
"name": "ignore",
"direct": false,
"version": "5.3.2",
"ecosystem": "npm"
},
{
"name": "ignore",
"direct": false,
"version": "7.0.5",
"ecosystem": "npm"
},
{
"name": "import-fresh",
"direct": false,
"version": "3.3.1",
"ecosystem": "npm"
},
{
"name": "imurmurhash",
"direct": false,
"version": "0.1.4",
"ecosystem": "npm"
},
{
"name": "inherits",
"direct": false,
"version": "2.0.4",
"ecosystem": "npm"
},
{
"name": "is-docker",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "is-extendable",
"direct": false,
"version": "0.1.1",
"ecosystem": "npm"
},
{
"name": "is-extglob",
"direct": false,
"version": "2.1.1",
"ecosystem": "npm"
},
{
"name": "is-fullwidth-code-point",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "is-glob",
"direct": false,
"version": "4.0.3",
"ecosystem": "npm"
},
{
"name": "is-in-ssh",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "is-inside-container",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "is-interactive",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "is-interactive",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "is-number",
"direct": false,
"version": "7.0.0",
"ecosystem": "npm"
},
{
"name": "is-subdir",
"direct": false,
"version": "1.2.0",
"ecosystem": "npm"
},
{
"name": "is-unicode-supported",
"direct": false,
"version": "0.1.0",
"ecosystem": "npm"
},
{
"name": "is-unicode-supported",
"direct": false,
"version": "1.3.0",
"ecosystem": "npm"
},
{
"name": "is-unicode-supported",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "is-windows",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "is-wsl",
"direct": false,
"version": "3.1.0",
"ecosystem": "npm"
},
{
"name": "isexe",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "istanbul-lib-coverage",
"direct": false,
"version": "3.2.2",
"ecosystem": "npm"
},
{
"name": "istanbul-lib-report",
"direct": false,
"version": "3.0.1",
"ecosystem": "npm"
},
{
"name": "istanbul-reports",
"direct": false,
"version": "3.2.0",
"ecosystem": "npm"
},
{
"name": "jiti",
"direct": false,
"version": "2.7.0",
"ecosystem": "npm"
},
{
"name": "joycon",
"direct": false,
"version": "3.1.1",
"ecosystem": "npm"
},
{
"name": "js-tokens",
"direct": false,
"version": "10.0.0",
"ecosystem": "npm"
},
{
"name": "js-yaml",
"direct": false,
"version": "3.14.2",
"ecosystem": "npm"
},
{
"name": "js-yaml",
"direct": false,
"version": "4.1.1",
"ecosystem": "npm"
},
{
"name": "json-buffer",
"direct": false,
"version": "3.0.1",
"ecosystem": "npm"
},
{
"name": "json-schema-to-ts",
"direct": false,
"version": "3.1.1",
"ecosystem": "npm"
},
{
"name": "json-schema-traverse",
"direct": false,
"version": "0.4.1",
"ecosystem": "npm"
},
{
"name": "json-stable-stringify-without-jsonify",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "jsonfile",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "keyv",
"direct": false,
"version": "4.5.4",
"ecosystem": "npm"
},
{
"name": "kind-of",
"direct": false,
"version": "6.0.3",
"ecosystem": "npm"
},
{
"name": "levn",
"direct": false,
"version": "0.4.1",
"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": "lilconfig",
"direct": false,
"version": "3.1.3",
"ecosystem": "npm"
},
{
"name": "lines-and-columns",
"direct": false,
"version": "1.2.4",
"ecosystem": "npm"
},
{
"name": "load-tsconfig",
"direct": false,
"version": "0.2.5",
"ecosystem": "npm"
},
{
"name": "locate-path",
"direct": false,
"version": "5.0.0",
"ecosystem": "npm"
},
{
"name": "locate-path",
"direct": false,
"version": "6.0.0",
"ecosystem": "npm"
},
{
"name": "lodash.merge",
"direct": false,
"version": "4.6.2",
"ecosystem": "npm"
},
{
"name": "lodash.startcase",
"direct": false,
"version": "4.4.0",
"ecosystem": "npm"
},
{
"name": "log-symbols",
"direct": false,
"version": "4.1.0",
"ecosystem": "npm"
},
{
"name": "log-symbols",
"direct": false,
"version": "6.0.0",
"ecosystem": "npm"
},
{
"name": "magic-string",
"direct": false,
"version": "0.30.21",
"ecosystem": "npm"
},
{
"name": "magicast",
"direct": false,
"version": "0.5.3",
"ecosystem": "npm"
},
{
"name": "make-dir",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "merge2",
"direct": false,
"version": "1.4.1",
"ecosystem": "npm"
},
{
"name": "micromatch",
"direct": false,
"version": "4.0.8",
"ecosystem": "npm"
},
{
"name": "mimic-fn",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "mimic-function",
"direct": false,
"version": "5.0.1",
"ecosystem": "npm"
},
{
"name": "mlly",
"direct": false,
"version": "1.8.0",
"ecosystem": "npm"
},
{
"name": "mri",
"direct": false,
"version": "1.2.0",
"ecosystem": "npm"
},
{
"name": "ms",
"direct": false,
"version": "2.1.3",
"ecosystem": "npm"
},
{
"name": "mute-stream",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "mz",
"direct": false,
"version": "2.7.0",
"ecosystem": "npm"
},
{
"name": "nanoid",
"direct": false,
"version": "3.3.12",
"ecosystem": "npm"
},
{
"name": "natural-compare",
"direct": false,
"version": "1.4.0",
"ecosystem": "npm"
},
{
"name": "node-fetch",
"direct": false,
"version": "2.7.0",
"ecosystem": "npm"
},
{
"name": "object-assign",
"direct": false,
"version": "4.1.1",
"ecosystem": "npm"
},
{
"name": "obug",
"direct": false,
"version": "2.1.2",
"ecosystem": "npm"
},
{
"name": "ohash",
"direct": false,
"version": "2.0.11",
"ecosystem": "npm"
},
{
"name": "onetime",
"direct": false,
"version": "5.1.2",
"ecosystem": "npm"
},
{
"name": "onetime",
"direct": false,
"version": "7.0.0",
"ecosystem": "npm"
},
{
"name": "optionator",
"direct": false,
"version": "0.9.4",
"ecosystem": "npm"
},
{
"name": "outdent",
"direct": false,
"version": "0.5.0",
"ecosystem": "npm"
},
{
"name": "p-filter",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "p-limit",
"direct": false,
"version": "2.3.0",
"ecosystem": "npm"
},
{
"name": "p-limit",
"direct": false,
"version": "3.1.0",
"ecosystem": "npm"
},
{
"name": "p-locate",
"direct": false,
"version": "4.1.0",
"ecosystem": "npm"
},
{
"name": "p-locate",
"direct": false,
"version": "5.0.0",
"ecosystem": "npm"
},
{
"name": "p-map",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "p-try",
"direct": false,
"version": "2.2.0",
"ecosystem": "npm"
},
{
"name": "package-manager-detector",
"direct": false,
"version": "0.2.11",
"ecosystem": "npm"
},
{
"name": "parent-module",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "path-exists",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "path-key",
"direct": false,
"version": "3.1.1",
"ecosystem": "npm"
},
{
"name": "path-type",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "pathe",
"direct": false,
"version": "2.0.3",
"ecosystem": "npm"
},
{
"name": "perfect-debounce",
"direct": false,
"version": "2.1.0",
"ecosystem": "npm"
},
{
"name": "picocolors",
"direct": false,
"version": "1.1.1",
"ecosystem": "npm"
},
{
"name": "picomatch",
"direct": false,
"version": "2.3.2",
"ecosystem": "npm"
},
{
"name": "picomatch",
"direct": false,
"version": "4.0.4",
"ecosystem": "npm"
},
{
"name": "pify",
"direct": false,
"version": "4.0.1",
"ecosystem": "npm"
},
{
"name": "pirates",
"direct": false,
"version": "4.0.7",
"ecosystem": "npm"
},
{
"name": "pkg-types",
"direct": false,
"version": "1.3.1",
"ecosystem": "npm"
},
{
"name": "pkg-types",
"direct": false,
"version": "2.3.1",
"ecosystem": "npm"
},
{
"name": "postcss",
"direct": false,
"version": "8.5.15",
"ecosystem": "npm"
},
{
"name": "postcss-load-config",
"direct": false,
"version": "6.0.1",
"ecosystem": "npm"
},
{
"name": "powershell-utils",
"direct": false,
"version": "0.1.0",
"ecosystem": "npm"
},
{
"name": "prelude-ls",
"direct": false,
"version": "1.2.1",
"ecosystem": "npm"
},
{
"name": "prettier",
"direct": false,
"version": "2.8.8",
"ecosystem": "npm"
},
{
"name": "punycode",
"direct": false,
"version": "2.3.1",
"ecosystem": "npm"
},
{
"name": "quansync",
"direct": false,
"version": "0.2.11",
"ecosystem": "npm"
},
{
"name": "queue-microtask",
"direct": false,
"version": "1.2.3",
"ecosystem": "npm"
},
{
"name": "rc9",
"direct": false,
"version": "3.0.1",
"ecosystem": "npm"
},
{
"name": "read-yaml-file",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "readable-stream",
"direct": false,
"version": "3.6.2",
"ecosystem": "npm"
},
{
"name": "readdirp",
"direct": false,
"version": "4.1.2",
"ecosystem": "npm"
},
{
"name": "readdirp",
"direct": false,
"version": "5.0.0",
"ecosystem": "npm"
},
{
"name": "resolve-from",
"direct": false,
"version": "4.0.0",
"ecosystem": "npm"
},
{
"name": "resolve-from",
"direct": false,
"version": "5.0.0",
"ecosystem": "npm"
},
{
"name": "resolve-pkg-maps",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "restore-cursor",
"direct": false,
"version": "3.1.0",
"ecosystem": "npm"
},
{
"name": "restore-cursor",
"direct": false,
"version": "5.1.0",
"ecosystem": "npm"
},
{
"name": "reusify",
"direct": false,
"version": "1.1.0",
"ecosystem": "npm"
},
{
"name": "rolldown",
"direct": false,
"version": "1.0.3",
"ecosystem": "npm"
},
{
"name": "rollup",
"direct": false,
"version": "4.61.1",
"ecosystem": "npm"
},
{
"name": "run-applescript",
"direct": false,
"version": "7.1.0",
"ecosystem": "npm"
},
{
"name": "run-async",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "run-parallel",
"direct": false,
"version": "1.2.0",
"ecosystem": "npm"
},
{
"name": "rxjs",
"direct": false,
"version": "7.8.2",
"ecosystem": "npm"
},
{
"name": "safe-buffer",
"direct": false,
"version": "5.2.1",
"ecosystem": "npm"
},
{
"name": "safer-buffer",
"direct": false,
"version": "2.1.2",
"ecosystem": "npm"
},
{
"name": "section-matter",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "semver",
"direct": false,
"version": "7.7.4",
"ecosystem": "npm"
},
{
"name": "shebang-command",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "shebang-regex",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "siginfo",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "signal-exit",
"direct": false,
"version": "3.0.7",
"ecosystem": "npm"
},
{
"name": "signal-exit",
"direct": false,
"version": "4.1.0",
"ecosystem": "npm"
},
{
"name": "slash",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "source-map",
"direct": false,
"version": "0.7.6",
"ecosystem": "npm"
},
{
"name": "source-map-js",
"direct": false,
"version": "1.2.1",
"ecosystem": "npm"
},
{
"name": "spawndamnit",
"direct": false,
"version": "3.0.1",
"ecosystem": "npm"
},
{
"name": "sprintf-js",
"direct": false,
"version": "1.0.3",
"ecosystem": "npm"
},
{
"name": "stackback",
"direct": false,
"version": "0.0.2",
"ecosystem": "npm"
},
{
"name": "std-env",
"direct": false,
"version": "4.1.0",
"ecosystem": "npm"
},
{
"name": "stdin-discarder",
"direct": false,
"version": "0.2.2",
"ecosystem": "npm"
},
{
"name": "string-width",
"direct": false,
"version": "4.2.3",
"ecosystem": "npm"
},
{
"name": "string-width",
"direct": false,
"version": "7.2.0",
"ecosystem": "npm"
},
{
"name": "string_decoder",
"direct": false,
"version": "1.3.0",
"ecosystem": "npm"
},
{
"name": "strip-ansi",
"direct": false,
"version": "6.0.1",
"ecosystem": "npm"
},
{
"name": "strip-ansi",
"direct": false,
"version": "7.1.2",
"ecosystem": "npm"
},
{
"name": "strip-bom",
"direct": false,
"version": "3.0.0",
"ecosystem": "npm"
},
{
"name": "strip-bom-string",
"direct": false,
"version": "1.0.0",
"ecosystem": "npm"
},
{
"name": "strip-json-comments",
"direct": false,
"version": "3.1.1",
"ecosystem": "npm"
},
{
"name": "sucrase",
"direct": false,
"version": "3.35.1",
"ecosystem": "npm"
},
{
"name": "supports-color",
"direct": false,
"version": "7.2.0",
"ecosystem": "npm"
},
{
"name": "term-size",
"direct": false,
"version": "2.2.1",
"ecosystem": "npm"
},
{
"name": "thenify",
"direct": false,
"version": "3.3.1",
"ecosystem": "npm"
},
{
"name": "thenify-all",
"direct": false,
"version": "1.6.0",
"ecosystem": "npm"
},
{
"name": "tinybench",
"direct": false,
"version": "2.9.0",
"ecosystem": "npm"
},
{
"name": "tinyexec",
"direct": false,
"version": "0.3.2",
"ecosystem": "npm"
},
{
"name": "tinyexec",
"direct": false,
"version": "1.2.4",
"ecosystem": "npm"
},
{
"name": "tinyglobby",
"direct": false,
"version": "0.2.17",
"ecosystem": "npm"
},
{
"name": "tinyrainbow",
"direct": false,
"version": "3.1.0",
"ecosystem": "npm"
},
{
"name": "to-regex-range",
"direct": false,
"version": "5.0.1",
"ecosystem": "npm"
},
{
"name": "tr46",
"direct": false,
"version": "0.0.3",
"ecosystem": "npm"
},
{
"name": "tree-kill",
"direct": false,
"version": "1.2.2",
"ecosystem": "npm"
},
{
"name": "ts-algebra",
"direct": false,
"version": "2.0.0",
"ecosystem": "npm"
},
{
"name": "ts-api-utils",
"direct": false,
"version": "2.4.0",
"ecosystem": "npm"
},
{
"name": "ts-interface-checker",
"direct": false,
"version": "0.1.13",
"ecosystem": "npm"
},
{
"name": "tslib",
"direct": false,
"version": "2.8.1",
"ecosystem": "npm"
},
{
"name": "tsup",
"direct": false,
"version": "8.5.1",
"ecosystem": "npm"
},
{
"name": "type-check",
"direct": false,
"version": "0.4.0",
"ecosystem": "npm"
},
{
"name": "type-fest",
"direct": false,
"version": "0.21.3",
"ecosystem": "npm"
},
{
"name": "typescript",
"direct": false,
"version": "5.9.3",
"ecosystem": "npm"
},
{
"name": "typescript-eslint",
"direct": false,
"version": "8.56.0",
"ecosystem": "npm"
},
{
"name": "ufo",
"direct": false,
"version": "1.6.1",
"ecosystem": "npm"
},
{
"name": "undici-types",
"direct": false,
"version": "6.21.0",
"ecosystem": "npm"
},
{
"name": "universalify",
"direct": false,
"version": "0.1.2",
"ecosystem": "npm"
},
{
"name": "uri-js",
"direct": false,
"version": "4.4.1",
"ecosystem": "npm"
},
{
"name": "util-deprecate",
"direct": false,
"version": "1.0.2",
"ecosystem": "npm"
},
{
"name": "vite",
"direct": false,
"version": "8.0.16",
"ecosystem": "npm"
},
{
"name": "vitest",
"direct": false,
"version": "4.1.8",
"ecosystem": "npm"
},
{
"name": "wcwidth",
"direct": false,
"version": "1.0.1",
"ecosystem": "npm"
},
{
"name": "webidl-conversions",
"direct": false,
"version": "3.0.1",
"ecosystem": "npm"
},
{
"name": "whatwg-url",
"direct": false,
"version": "5.0.0",
"ecosystem": "npm"
},
{
"name": "which",
"direct": false,
"version": "2.0.2",
"ecosystem": "npm"
},
{
"name": "why-is-node-running",
"direct": false,
"version": "2.3.0",
"ecosystem": "npm"
},
{
"name": "word-wrap",
"direct": false,
"version": "1.2.5",
"ecosystem": "npm"
},
{
"name": "wrap-ansi",
"direct": false,
"version": "6.2.0",
"ecosystem": "npm"
},
{
"name": "wsl-utils",
"direct": false,
"version": "0.3.0",
"ecosystem": "npm"
},
{
"name": "yocto-queue",
"direct": false,
"version": "0.1.0",
"ecosystem": "npm"
},
{
"name": "yoctocolors-cjs",
"direct": false,
"version": "2.1.3",
"ecosystem": "npm"
}
],
"collected": true,
"truncated": false,
"total_count": 474,
"direct_count": 17,
"indirect_count": 457
}
},
"maintainership": {
"issues": {
"open_prs": 0,
"merged_prs": 464,
"open_issues": 56,
"closed_ratio": 0.912,
"closed_issues": 578,
"closed_unmerged_prs": 103
},
"bus_factor": 1,
"bot_contributors": 1,
"top_contributors": [
{
"type": "User",
"login": "kokevidaurre",
"commits": 303,
"avatar_url": "https://avatars.githubusercontent.com/u/3512039?v=4"
}
],
"contributors_sampled": 1,
"top_contributor_share": 1
},
"quality_signals": {
"has_ci": true,
"has_tests": true,
"ci_workflows": [
"automation.yml",
"ci.yml",
"close-linked-issues.yml",
"deprecate.yml",
"publish.yml",
"release.yml"
],
"has_docs_dir": true,
"linter_configs": [
"eslint.config.js"
],
"has_editorconfig": false,
"has_linter_config": true,
"has_precommit_config": false
},
"security_signals": {
"lockfiles": [
"package-lock.json"
],
"scorecard": {
"checks": [
{
"name": "Binary-Artifacts",
"score": 10,
"reason": "no binaries found in the repo",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
},
{
"name": "Branch-Protection",
"score": 8,
"reason": "branch protection is not maximal on development and all release branches",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
},
{
"name": "CI-Tests",
"score": 10,
"reason": "22 out of 22 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/21 approved changesets -- score normalized to 1",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
},
{
"name": "Contributors",
"score": 0,
"reason": "project has 0 contributing companies or organizations -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
},
{
"name": "Dangerous-Workflow",
"score": 10,
"reason": "no dangerous workflow patterns detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
},
{
"name": "Dependency-Update-Tool",
"score": 0,
"reason": "no update tool detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
},
{
"name": "Fuzzing",
"score": 0,
"reason": "project is not fuzzed",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
},
{
"name": "License",
"score": 10,
"reason": "license file detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
},
{
"name": "Maintained",
"score": 6,
"reason": "8 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 6",
"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": 4,
"reason": "dependency not pinned by hash detected -- score normalized to 4",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
},
{
"name": "SAST",
"score": 10,
"reason": "SAST tool is run on all commits",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
},
{
"name": "Security-Policy",
"score": 10,
"reason": "security policy file detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
},
{
"name": "Signed-Releases",
"score": null,
"reason": "no releases found",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
},
{
"name": "Token-Permissions",
"score": 0,
"reason": "detected GitHub workflow tokens with excessive permissions",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
},
{
"name": "Vulnerabilities",
"score": 5,
"reason": "5 existing vulnerabilities detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
}
],
"commit": "b0932805ea27c5d91db87a10fe71bdae5acc3a0f",
"ran_at": "2026-07-28T03:32:27Z",
"aggregate_score": 5.6,
"scorecard_version": "v5.5.0"
},
"has_codeql_workflow": false,
"has_security_policy": true,
"has_dependabot_config": false
},
"contribution_flow": {
"collected": true,
"ci_last_run_at": "2026-07-27T19:53:26Z",
"oldest_open_prs": [],
"last_merged_pr_at": "2026-07-25T17:01:54Z",
"ci_last_conclusion": "SUCCESS",
"oldest_open_issues": [
{
"number": 643,
"created_at": "2026-03-27T23:14:01Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 662,
"created_at": "2026-03-28T19:17:33Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 691,
"created_at": "2026-03-31T04:44:45Z",
"last_comment_at": "2026-03-31T05:11:22Z",
"last_comment_author": "agents-squads"
},
{
"number": 702,
"created_at": "2026-03-31T17:24:19Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 703,
"created_at": "2026-03-31T17:24:41Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 706,
"created_at": "2026-03-31T17:25:51Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 707,
"created_at": "2026-03-31T17:26:17Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 741,
"created_at": "2026-04-14T04:51:30Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 771,
"created_at": "2026-05-12T02:05:24Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 775,
"created_at": "2026-05-13T15:36:06Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 776,
"created_at": "2026-05-25T19:35:23Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 838,
"created_at": "2026-06-11T01:50:37Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 871,
"created_at": "2026-06-12T04:25:17Z",
"last_comment_at": "2026-06-12T16:04:01Z",
"last_comment_author": "kokevidaurre"
},
{
"number": 873,
"created_at": "2026-06-12T15:06:53Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 874,
"created_at": "2026-06-12T16:04:00Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 876,
"created_at": "2026-06-13T01:00:35Z",
"last_comment_at": "2026-06-13T01:19:01Z",
"last_comment_author": "kokevidaurre"
},
{
"number": 886,
"created_at": "2026-06-13T01:46:28Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 890,
"created_at": "2026-06-14T14:16:04Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 893,
"created_at": "2026-06-15T15:52:25Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 895,
"created_at": "2026-06-15T15:56:05Z",
"last_comment_at": null,
"last_comment_author": null
}
]
}
},
"config": {
"disabled_metrics": [],
"disabled_categories": [],
"disabled_components": {}
},
"source": {
"url": "https://github.com/agents-squads/squads-cli",
"host": "github.com",
"name": "squads-cli",
"owner": "agents-squads"
},
"metrics": {
"overall": {
"key": "overall",
"band": "moderate",
"name": "Overall health",
"note": null,
"notes": [],
"value": 68,
"inputs": {
"security": 65,
"vitality": 83,
"community": 56,
"governance": 52,
"engineering": 86
},
"components": []
},
"categories": [
{
"key": "vitality",
"band": "good",
"name": "Vitality",
"value": 83,
"weight": 0.22,
"metrics": [
{
"key": "development_activity",
"band": "good",
"name": "Development activity",
"note": null,
"notes": [],
"value": 71,
"inputs": {
"commits_last_year": 313,
"human_commit_share": 0.91,
"days_since_last_push": 2,
"active_weeks_last_year": 16
},
"components": [
{
"key": "push_recency",
"name": "Push recency",
"detail": "last push 2 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "push_recency",
"params": {
"days": 2
}
}
],
"max_points": 36
},
{
"key": "commit_cadence",
"name": "Commit cadence",
"detail": "16/52 weeks with commits",
"points": 11.1,
"status": "partial",
"details": [
{
"code": "commit_cadence_weeks",
"params": {
"weeks": 16
}
}
],
"max_points": 36
},
{
"key": "commit_volume",
"name": "Commit volume",
"detail": "313 commits in the last year",
"points": 18,
"status": "met",
"details": [
{
"code": "commits_last_year",
"params": {
"count": 313
}
}
],
"max_points": 18
},
{
"key": "openssf_scorecard_maintained",
"name": "OpenSSF Scorecard: Maintained",
"detail": "8 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 6",
"points": 6,
"status": "partial",
"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": 12,
"latest_release_tag": "v0.9.0",
"releases_from_tags": false,
"days_since_latest_release": 20,
"mean_days_between_releases": 11.2
},
"components": [
{
"key": "ships_releases",
"name": "Ships releases",
"detail": "12 releases published",
"points": 27,
"status": "met",
"details": [
{
"code": "releases_published",
"params": {
"count": 12
}
}
],
"max_points": 27
},
{
"key": "release_recency",
"name": "Release recency",
"detail": "latest release 20 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "release_recency",
"params": {
"days": 20
}
}
],
"max_points": 36
},
{
"key": "release_cadence",
"name": "Release cadence",
"detail": "a release every ~11.2 days",
"points": 27,
"status": "met",
"details": [
{
"code": "release_cadence",
"params": {
"gap": 11.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": "maintained",
"guards": [],
"signals": [],
"red_flag": false,
"multiplier_pct": 100,
"declared_reason": null,
"unverified_reason": null,
"unanswered_open_prs": null,
"unanswered_open_issues": null,
"days_since_last_merged_pr": null,
"days_since_last_human_commit": 20,
"days_since_last_human_commit_is_floor": false
},
"components": [
{
"key": "project_is_still_maintained",
"name": "Project is still maintained",
"detail": "last human commit 20 days ago",
"points": 100,
"status": "met",
"details": [
{
"code": "abandonment_maintained",
"params": {
"days": 20
}
}
],
"max_points": 100
}
]
}
],
"description": "Is the project alive — is code being written and are releases shipping?"
},
{
"key": "community",
"band": "moderate",
"name": "Community & Adoption",
"value": 56,
"weight": 0.18,
"metrics": [
{
"key": "popularity",
"band": "critical",
"name": "Popularity & adoption",
"note": null,
"notes": [],
"value": 27,
"inputs": {
"forks": 2,
"stars": 49,
"watchers": 1,
"growth_state": "unverified",
"growth_factor_pct": 100,
"growth_unverified_reason": "no_history"
},
"components": [
{
"key": "stars",
"name": "Stars",
"detail": "49 stars",
"points": 27.3,
"status": "partial",
"details": [
{
"code": "stars",
"params": {
"count": 49
}
}
],
"max_points": 60
},
{
"key": "forks",
"name": "Forks",
"detail": "2 forks",
"points": 0,
"status": "missed",
"details": [
{
"code": "forks",
"params": {
"count": 2
}
}
],
"max_points": 25
},
{
"key": "watchers",
"name": "Watchers",
"detail": "1 watchers",
"points": 0,
"status": "missed",
"details": [
{
"code": "watchers",
"params": {
"count": 1
}
}
],
"max_points": 15
}
]
},
{
"key": "community_health",
"band": "excellent",
"name": "Community health",
"note": null,
"notes": [],
"value": 92,
"inputs": {
"has_readme": true,
"has_license": true,
"has_contributing": true,
"has_issue_template": false,
"has_code_of_conduct": true,
"has_pull_request_template": true
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 22.5,
"status": "met",
"details": [],
"max_points": 22.5
},
{
"key": "license",
"name": "License",
"detail": "recognized license (MIT)",
"points": 22.5,
"status": "met",
"details": [
{
"code": "license_standard",
"params": {}
},
{
"code": "license_spdx",
"params": {
"spdx": "MIT"
}
}
],
"max_points": 22.5
},
{
"key": "contributing_guide",
"name": "CONTRIBUTING guide",
"detail": null,
"points": 18,
"status": "met",
"details": [],
"max_points": 18
},
{
"key": "code_of_conduct",
"name": "Code of conduct",
"detail": null,
"points": 13.5,
"status": "met",
"details": [],
"max_points": 13.5
},
{
"key": "issue_template",
"name": "Issue template",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.2
},
{
"key": "pr_template",
"name": "PR template",
"detail": null,
"points": 6.3,
"status": "met",
"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": 51,
"inputs": {
"packages": [
"squads-cli"
],
"dependents": null,
"ecosystems": "npm",
"total_downloads": null,
"monthly_downloads": 1176
},
"components": [
{
"key": "monthly_downloads",
"name": "Monthly downloads",
"detail": "1,176 downloads/month across npm",
"points": 40.9,
"status": "partial",
"details": [
{
"code": "downloads_monthly",
"params": {
"count": 1176,
"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": 52,
"weight": 0.24,
"metrics": [
{
"key": "maintainer_resilience",
"band": "critical",
"name": "Maintainer resilience (bus factor)",
"note": null,
"notes": [],
"value": 10,
"inputs": {
"bus_factor": 1,
"contributors_sampled": 1,
"top_contributor_share": 1
},
"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 100% of commits",
"points": 0,
"status": "missed",
"details": [
{
"code": "top_contributor_share",
"params": {
"share": 100
}
}
],
"max_points": 22.5
},
{
"key": "contributor_breadth",
"name": "Contributor breadth",
"detail": "1 contributors",
"points": 1.4,
"status": "partial",
"details": [
{
"code": "contributors_sampled",
"params": {
"count": 1
}
}
],
"max_points": 13.5
},
{
"key": "openssf_scorecard_contributors",
"name": "OpenSSF Scorecard: Contributors",
"detail": "project has 0 contributing companies or organizations -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
},
{
"key": "responsiveness",
"band": "good",
"name": "Issue & PR responsiveness",
"note": null,
"notes": [],
"value": 75,
"inputs": {
"merged_prs": 464,
"open_issues": 56,
"closed_issues": 578,
"issue_closed_ratio": 0.912,
"closed_unmerged_prs": 103
},
"components": [
{
"key": "issue_resolution",
"name": "Issue resolution",
"detail": "91% of issues closed",
"points": 42.6,
"status": "partial",
"details": [
{
"code": "issues_closed_share",
"params": {
"share": 91
}
}
],
"max_points": 46.75
},
{
"key": "pr_acceptance",
"name": "PR acceptance",
"detail": "464/567 decided PRs merged",
"points": 31.3,
"status": "partial",
"details": [
{
"code": "decided_prs_merged",
"params": {
"merged": 464,
"decided": 567
}
}
],
"max_points": 38.25
},
{
"key": "openssf_scorecard_code_review",
"name": "OpenSSF Scorecard: Code-Review",
"detail": "Found 3/21 approved changesets -- score normalized to 1",
"points": 1.5,
"status": "partial",
"details": [],
"max_points": 15
}
]
},
{
"key": "stewardship",
"band": "at_risk",
"name": "Ownership & stewardship",
"note": null,
"notes": [],
"value": 41,
"inputs": {
"followers": 4,
"owner_type": "Organization",
"is_verified": null,
"owner_login": "agents-squads",
"public_repos": 3,
"account_age_days": 229
},
"components": [
{
"key": "ownership_backing",
"name": "Ownership backing",
"detail": "organization-owned",
"points": 30,
"status": "met",
"details": [
{
"code": "owner_organization",
"params": {}
}
],
"max_points": 30
},
{
"key": "verified_domain",
"name": "Verified domain",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 20
},
{
"key": "owner_reach",
"name": "Owner reach",
"detail": "4 followers of agents-squads",
"points": 5,
"status": "partial",
"details": [
{
"code": "owner_followers",
"params": {
"count": 4,
"login": "agents-squads"
}
}
],
"max_points": 25
},
{
"key": "track_record",
"name": "Track record",
"detail": "3 public repos, account ~0 yr old",
"points": 5.6,
"status": "partial",
"details": [
{
"code": "public_repos",
"params": {
"count": 3
}
},
{
"code": "account_age_years",
"params": {
"years": 0
}
}
],
"max_points": 25
}
]
},
{
"key": "package_maintenance",
"band": "excellent",
"name": "Package maintenance",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"packages": [
"squads-cli"
],
"ecosystems": "npm",
"any_deprecated": false,
"min_days_since_publish": 20
},
"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 20 days ago",
"points": 35,
"status": "met",
"details": [
{
"code": "publish_recency",
"params": {
"days": 20
}
}
],
"max_points": 35
},
{
"key": "version_history",
"name": "Version history",
"detail": "29 published versions",
"points": 20,
"status": "met",
"details": [
{
"code": "published_versions",
"params": {
"count": 29
}
}
],
"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": "6 workflow(s)",
"points": 24,
"status": "met",
"details": [
{
"code": "ci_workflows",
"params": {
"count": 6
}
}
],
"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": "eslint.config.js",
"points": 16,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "eslint.config.js"
}
}
],
"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": "22 out of 22 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": [
"agent-framework",
"ai-agents",
"cli",
"developer-tools",
"multi-agent",
"orchestration",
"persistent-memory",
"agentic-ai",
"ai-workforce",
"anthropic",
"autonomous-agents",
"claude",
"llm",
"self-improving-ai",
"typescript"
],
"has_wiki": false,
"homepage": "https://agents-squads.com",
"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://agents-squads.com",
"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": 65,
"weight": 0.16,
"metrics": [
{
"key": "security_posture",
"band": "moderate",
"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": 56,
"inputs": {
"source": "openssf_scorecard",
"checks_evaluated": 17,
"scorecard_version": "v5.5.0",
"checks_inconclusive": 1,
"scorecard_aggregate": 5.6
},
"components": [
{
"key": "binary_artifacts",
"name": "Binary-Artifacts",
"detail": "no binaries found in the repo",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "branch_protection",
"name": "Branch-Protection",
"detail": "branch protection is not maximal on development and all release branches",
"points": 6,
"status": "partial",
"details": [],
"max_points": 7.5
},
{
"key": "ci_tests",
"name": "CI-Tests",
"detail": "22 out of 22 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/21 approved changesets -- score normalized to 1",
"points": 0.8,
"status": "partial",
"details": [],
"max_points": 7.5
},
{
"key": "contributors",
"name": "Contributors",
"detail": "project has 0 contributing companies or organizations -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 2.5
},
{
"key": "dangerous_workflow",
"name": "Dangerous-Workflow",
"detail": "no dangerous workflow patterns detected",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
},
{
"key": "dependency_update_tool",
"name": "Dependency-Update-Tool",
"detail": "no update tool detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "fuzzing",
"name": "Fuzzing",
"detail": "project is not fuzzed",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "license",
"name": "License",
"detail": "license file detected",
"points": 2.5,
"status": "met",
"details": [],
"max_points": 2.5
},
{
"key": "maintained",
"name": "Maintained",
"detail": "8 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 6",
"points": 4.5,
"status": "partial",
"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 4",
"points": 2,
"status": "partial",
"details": [],
"max_points": 5
},
{
"key": "sast",
"name": "SAST",
"detail": "SAST tool is run on all commits",
"points": 5,
"status": "met",
"details": [],
"max_points": 5
},
{
"key": "security_policy",
"name": "Security-Policy",
"detail": "security policy file detected",
"points": 5,
"status": "met",
"details": [],
"max_points": 5
},
{
"key": "signed_releases",
"name": "Signed-Releases",
"detail": "no releases found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 7.5
},
{
"key": "token_permissions",
"name": "Token-Permissions",
"detail": "detected GitHub workflow tokens with excessive permissions",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "vulnerabilities",
"name": "Vulnerabilities",
"detail": "5 existing vulnerabilities detected",
"points": 3.8,
"status": "partial",
"details": [],
"max_points": 7.5
}
]
},
{
"key": "dependency_advisories",
"band": "excellent",
"name": "Dependency advisories",
"note": "Excluded from scoring (no data or not applicable): No advisories left outstanding. Remaining weights renormalized. Matched the npm:squads-cli@0.9.0 runtime dependency closure — what installing the published package pulls in — 97 packages. Reachability is not analyzed.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"no_advisories_left_outstanding"
]
}
},
{
"code": "weights_renormalized",
"params": {}
},
{
"code": "advisories_scope_published",
"params": {
"package": "npm:squads-cli@0.9.0",
"assessed": 97
}
},
{
"code": "advisories_reachability",
"params": {}
}
],
"value": 100,
"inputs": {
"source": "osv",
"advisories": 0,
"affected_packages": 0,
"assessed_packages": 97,
"unassessed_packages": 0,
"affected_by_severity": "none",
"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": "no indirect dependency carries a known advisory",
"points": 25,
"status": "met",
"details": [
{
"code": "no_indirect_advisories",
"params": {}
}
],
"max_points": 25
},
{
"key": "no_advisories_left_outstanding",
"name": "No advisories left outstanding",
"detail": "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": 97,
"malicious_packages": 0,
"direct_malicious_packages": 0,
"withdrawn_malicious_packages": 0,
"installable_malicious_packages": 0
},
"components": [
{
"key": "no_dependency_reported_as_a_malicious_package",
"name": "No dependency reported as a malicious package",
"detail": "no dependency is reported as a malicious package",
"points": 100,
"status": "met",
"details": [
{
"code": "no_malicious_dependencies",
"params": {}
}
],
"max_points": 100
}
]
}
],
"description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
},
{
"key": "ai_readiness",
"band": "good",
"name": "AI Readiness",
"value": 74,
"weight": 0,
"metrics": [
{
"key": "ai_agent_context",
"band": "excellent",
"name": "Agent context & guidance",
"note": null,
"notes": [],
"value": 85,
"inputs": {
"has_llms_txt": false,
"legible_history_share": 0.967,
"agent_instruction_files": [
"AGENTS.md",
"CLAUDE.md"
],
"agent_instruction_max_bytes": 4781
},
"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": "88 of 91 human commits state their intent (structured subject or explanatory body)",
"points": 40,
"status": "met",
"details": [
{
"code": "legible_history",
"params": {
"legible": 88,
"sampled": 91
}
}
],
"max_points": 40
}
]
},
{
"key": "ai_verify_loop",
"band": "moderate",
"name": "Verify loop (build / test / typecheck)",
"note": null,
"notes": [],
"value": 68,
"inputs": {
"has_nix": false,
"has_tests": true,
"lockfiles": [
"package-lock.json"
],
"has_dockerfile": true,
"typed_language": true,
"bootstrap_files": [],
"has_devcontainer": false,
"has_linter_config": true,
"typecheck_configs": [
"tsconfig.json"
],
"agent_commit_share": 0.79,
"toolchain_manifests": [],
"dependency_bot_commit_share": 0
},
"components": [
{
"key": "one_command_bootstrap",
"name": "One-command bootstrap",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 18
},
{
"key": "automated_tests",
"name": "Automated tests",
"detail": null,
"points": 22,
"status": "met",
"details": [],
"max_points": 22
},
{
"key": "lint_format_config",
"name": "Lint / format config",
"detail": "eslint.config.js",
"points": 11,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "eslint.config.js"
}
}
],
"max_points": 11
},
{
"key": "static_type_checking",
"name": "Static type checking",
"detail": "tsconfig.json",
"points": 11,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "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": "79 of the last 100 commits agent-authored or agent-credited",
"points": 10,
"status": "met",
"details": [
{
"code": "agent_authored_commits",
"params": {
"count": 79,
"sampled": 100
}
}
],
"max_points": 10
},
{
"key": "automated_maintenance",
"name": "Automated maintenance",
"detail": "no automated dependency updates observed",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_dependency_automation",
"params": {}
}
],
"max_points": 8
},
{
"key": "openssf_scorecard_pinned_dependencies",
"name": "OpenSSF Scorecard: Pinned-Dependencies",
"detail": "dependency not pinned by hash detected -- score normalized to 4",
"points": 4,
"status": "partial",
"details": [],
"max_points": 10
}
]
},
{
"key": "ai_code_legibility",
"band": "excellent",
"name": "Code legibility for models",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"primary_language": "TypeScript",
"largest_source_bytes": 120426,
"source_files_sampled": 289,
"oversized_source_files": 2
},
"components": [
{
"key": "type_checkable_code",
"name": "Type-checkable code",
"detail": "TypeScript (statically typed)",
"points": 45,
"status": "met",
"details": [
{
"code": "statically_typed_language",
"params": {
"language": "TypeScript"
}
}
],
"max_points": 45
},
{
"key": "manageable_file_sizes",
"name": "Manageable file sizes",
"detail": "2/289 source files over 60KB",
"points": 54.6,
"status": "partial",
"details": [
{
"code": "oversized_source_files",
"params": {
"kb": 60,
"sampled": 289,
"oversized": 2
}
}
],
"max_points": 55
}
]
},
{
"key": "ai_interfaces",
"band": "at_risk",
"name": "Machine-readable interfaces",
"note": null,
"notes": [],
"value": 40,
"inputs": {
"example_dirs": [],
"has_mcp_signal": false,
"api_schema_files": [
"openapi/openapi.json"
]
},
"components": [
{
"key": "api_schema_openapi_graphql_proto",
"name": "API schema (OpenAPI/GraphQL/proto)",
"detail": "openapi/openapi.json",
"points": 40,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "openapi/openapi.json"
}
}
],
"max_points": 40
},
{
"key": "mcp_server",
"name": "MCP server",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 20
},
{
"key": "runnable_examples",
"name": "Runnable examples",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 40
}
]
}
],
"description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
}
],
"metrics_version": "1.13.0"
},
"warnings": [
"Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token"
],
"report_type": "repository",
"generated_at": "2026-07-28T03:32:44.354248Z",
"schema_version": "0.27.0",
"badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/a/agents-squads/squads-cli.svg",
"full_name": "agents-squads/squads-cli",
"license_state": "standard",
"license_spdx": "MIT"
}