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

agents-squads / squads-cli

CLI for managing AI agent squads. Status, memory, goals, feedback, and dashboard for your autonomous agents.

TypeScriptMIT★ 49 星标⑂ 2 复刻始于 2025年12月在 GitHub 上查看 ↗

agents-squads/squads-cli 的健康指数为 100 分中的 68 分,处于「中等」区间。 其得分最高的类别是Engineering Quality(86/100),最低的是Sustainability & Governance(52/100)。 最近一次更新在 2 天前。 近期的大部分工作由 1 位贡献者完成。

68
总分 / 100
中等

软件健康指数

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

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

评分画像

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

所有权

4 关注者3 个公开仓库始于 2025年12月

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

软件包生态系统

按类别列示的指标

活力

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

83良好 · 占总体的 22%
评分方式
36/36推送新近度 — 最近一次推送于 2 天前
11.1/36提交节奏 — 52 周中有 16 周有提交
18/18提交量 — 最近一年 313 次提交
6/10OpenSSF Scorecard:Maintained — 8 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 6
所用输入
commits_last_year313
human_commit_share0.91
days_since_last_push2
active_weeks_last_year16

发布纪律

100优秀
评分方式
27/27有发布版本 — 已发布 12 个发布版本
36/36发布时效 — 最近一次发布版本于 20 天前
27/27发布节奏 — 约每 11.2 天发布一次
0/10OpenSSF Scorecard:Signed-Releases — 无数据
所用输入
releases_count12
latest_release_tagv0.9.0
releases_from_tags
days_since_latest_release20
mean_days_between_releases11.2
已排除计分(无数据或不适用):OpenSSF Scorecard:Signed-Releases。 其余权重已重新归一化。

社区与采用

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

56中等 · 占总体的 18%
评分方式
27.3/60星标 — 49 个星标
0/25复刻 — 2 个复刻
0/15关注者 — 1 位关注者
所用输入
forks2
stars49
watchers1
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history

社区健康

92优秀
评分方式
22.5/22.5README
22.5/22.5许可证 — 可识别的许可证(MIT)
18/18CONTRIBUTING 指南
13.5/13.5行为准则
0/7.2议题模板
6.3/6.3PR 模板
所用输入
has_readme
has_license
has_contributing
has_issue_template
has_code_of_conduct
has_pull_request_template
评分方式
40.9/80月度下载量 — npm 合计每月 1,176 次下载
0/20注册表被依赖数 — 该生态系统不报告此项
所用输入
packagessquads-cli
dependents
ecosystemsnpm
total_downloads
monthly_downloads1,176
已排除计分(无数据或不适用):注册表被依赖数。 其余权重已重新归一化。

可持续性与治理

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

52中等 · 占总体的 24%
评分方式
9/54巴士系数 — 1 位贡献者贡献了半数提交
0/22.5提交分布 — 头号贡献者编写了 100% 的提交
1.4/13.5贡献者广度 — 1 位贡献者
0/10OpenSSF Scorecard:Contributors — project has 0 contributing companies or organizations -- score normalized to 0
所用输入
bus_factor1
contributors_sampled1
top_contributor_share1
评分方式
42.6/46.8议题解决 — 91% 的议题已关闭
31.3/38.3PR 接受 — 已裁定的 PR 中 464/567 已合并
1.5/15OpenSSF Scorecard:Code-Review — Found 3/21 approved changesets -- score normalized to 1
所用输入
merged_prs464
open_issues56
closed_issues578
issue_closed_ratio0.912
closed_unmerged_prs103
评分方式
30/30所有权背书 — 组织持有
0/20已验证域名
5/25所有者影响力 — agents-squads 有 4 位关注者
5.6/25既往记录 — 3 个公开仓库,账户约 0 年
所用输入
followers4
owner_typeOrganization
is_verified
owner_loginagents-squads
public_repos3
account_age_days229
评分方式
25/25已发布且可解析 — npm 上有 1 个软件包
35/35发布时效 — 最近一次发布于 20 天前
20/20版本历史 — 29 个已发布版本
20/20未被弃用 — 活跃,未被弃用或撤回
所用输入
packagessquads-cli
ecosystemsnpm
any_deprecated
min_days_since_publish20

工程质量

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

86优秀 · 占总体的 20%

工程实践

84良好
评分方式
24/24CI 工作流 — 6 个工作流
24/24存在测试
16/16Linter 配置 — eslint.config.js
0/9.6Pre-commit 钩子
0/6.4.editorconfig
20/20OpenSSF Scorecard:CI-Tests — 22 out of 22 merged PRs checked by a CI test -- score normalized to 10
所用输入
has_ci
has_tests
has_editorconfig
has_linter_config
has_precommit_config

文档

90优秀
评分方式
30/30README
25/25文档目录
15/15文档 / 主页站点 — https://agents-squads.com
10/10仓库描述
10/10主题标签 — 15 个主题标签
0/10Wiki
所用输入
topicsagent-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
homepagehttps://agents-squads.com
has_readme
has_docs_dir
has_description

安全

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

65中等 · 占总体的 16%

安全态势

56中等
评分方式
7.5/7.5Binary-Artifacts — no binaries found in the repo
6/7.5Branch-Protection — branch protection is not maximal on development and all release branches
2.5/2.5CI-Tests — 22 out of 22 merged PRs checked by a CI test -- score normalized to 10
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
0.8/7.5Code-Review — Found 3/21 approved changesets -- score normalized to 1
0/2.5Contributors — project has 0 contributing companies or organizations -- score normalized to 0
10/10Dangerous-Workflow — no dangerous workflow patterns detected
0/7.5Dependency-Update-Tool — no update tool detected
0/5Fuzzing — project is not fuzzed
2.5/2.5许可证 — license file detected
4.5/7.5Maintained — 8 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 6
5/5Packaging — packaging workflow detected
2/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 4
5/5SAST — SAST tool is run on all commits
5/5Security-Policy — security policy file detected
0/7.5Signed-Releases — 无数据
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
3.8/7.5Vulnerabilities — 5 existing vulnerabilities detected
所用输入
sourceopenssf_scorecard
checks_evaluated17
scorecard_versionv5.5.0
checks_inconclusive1
scorecard_aggregate5.6
已排除计分(无数据或不适用):signed_releases。 其余权重已重新归一化。
评分方式
35/35直接依赖不含已知公告 — 没有直接依赖携带已知公告
25/25间接依赖不含已知公告 — 没有间接依赖携带已知公告
0/40没有长期未处理的公告 — 没有公告带有发布日期
所用输入
sourceosv
advisories0
affected_packages0
assessed_packages97
unassessed_packages0
affected_by_severitynone
direct_affected_packages0
已排除计分(无数据或不适用):没有长期未处理的公告。 其余权重已重新归一化。 比对的是 npm:squads-cli@0.9.0 的运行时依赖闭包——安装已发布的软件包时真正被拉取进来的内容——共 97 个软件包。 未对可达性进行分析。

AI 就绪度

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

74良好 · 占总体的 0%
评分方式
45/45代理指令 — AGENTS.md, CLAUDE.md
0/15机器可读文档(llms.txt)
40/40可读的提交历史 — 91 次人类提交中有 88 次说明了意图(结构化标题或解释性正文)
所用输入
has_llms_txt
legible_history_share0.967
agent_instruction_filesAGENTS.md, CLAUDE.md
agent_instruction_max_bytes4,781
评分方式
0/18一条命令的引导启动
22/22自动化测试
11/11Lint / 格式化配置 — eslint.config.js
11/11静态类型检查 — tsconfig.json
10/10可复现环境 — Dockerfile, lockfile
10/10已体现的代理实践 — 最近 100 次提交中有 79 次由代理编写或署名代理
0/8自动化维护 — 未观察到自动依赖更新
4/10OpenSSF Scorecard:Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 4
所用输入
has_nix
has_tests
lockfilespackage-lock.json
has_dockerfile
typed_language
bootstrap_files
has_devcontainer
has_linter_config
typecheck_configstsconfig.json
agent_commit_share0.79
toolchain_manifests
dependency_bot_commit_share0
评分方式
45/45可类型检查的代码 — TypeScript(静态类型)
54.6/55可控的文件大小 — 采样的 289 个源文件中有 2 个超过 60KB
所用输入
primary_languageTypeScript
largest_source_bytes120,426
source_files_sampled289
oversized_source_files2

机器可读接口

40存在风险
评分方式
40/40API 模式(OpenAPI/GraphQL/proto) — openapi/openapi.json
0/20MCP 服务器
0/40可运行示例
所用输入
example_dirs
has_mcp_signal
api_schema_filesopenapi/openapi.json

关键数据

49GitHub 星标
1贡献者
313最近 12 个月提交数
2距最近推送天数
12发布版本数
1巴士系数(bus factor)
56开放议题
npm软件包生态系统数

数据采集警告

  • Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token

更多细节

Star 与 Fork 历史 0 ★ / 2 ⇿
0Star
2Fork
1发布

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

111222212026-032026-032026-03
主版本 0次版本 0修订 1
OpenSSF Scorecard 5.6 / 10
5.6综合

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

10Binary-Artifactsno binaries found in the repo
8Branch-Protectionbranch protection is not maximal on development and all release branches
10CI-Tests22 out of 22 merged PRs checked by a CI test -- score normalized to 10
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
1Code-ReviewFound 3/21 approved changesets -- score normalized to 1
0Contributorsproject has 0 contributing companies or organizations -- score normalized to 0
10Dangerous-Workflowno dangerous workflow patterns detected
0Dependency-Update-Toolno update tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
6Maintained8 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 6
10Packagingpackaging workflow detected
4Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 4
10SASTSAST tool is run on all commits
10Security-Policysecurity policy file detected
不适用Signed-Releasesno releases found
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
5Vulnerabilities5 existing vulnerabilities detected
直接依赖 10
注册表软件包版本约束清单文件
npm@anthropic-ai/sdk^0.71.2package.json
npmchalk^5.3.0package.json
npmchrono-node^2.9.0package.json
npmcommander^12.1.0package.json
npmdotenv^17.2.3package.json
npmgray-matter^4.0.3package.json
npminquirer^9.2.12package.json
npmminimatch^10.2.1package.json
npmopen^11.0.0package.json
npmora^8.0.1package.json
全部依赖 474

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

注册表软件包版本关系
npm@anthropic-ai/sdk0.71.2直接
npmchalk4.1.2直接
npmchalk5.6.2直接
npmchrono-node2.9.0直接
npmcommander12.1.0直接
npmcommander14.0.3直接
npmcommander4.1.1直接
npmdotenv17.4.2直接
npmdotenv8.6.0直接
npmgray-matter4.0.3直接
npminquirer9.3.8直接
npmminimatch10.2.5直接
npmminimatch3.1.5直接
npmminimatch9.0.9直接
npmopen11.0.0直接
npmora5.4.1直接
npmora8.2.0直接
npm@babel/helper-string-parser7.29.7间接
npm@babel/helper-validator-identifier7.29.7间接
npm@babel/parser7.29.7间接
npm@babel/runtime7.28.4间接
npm@babel/types7.29.7间接
npm@bcoe/v8-coverage1.0.2间接
npm@changesets/apply-release-plan7.1.0间接
npm@changesets/assemble-release-plan6.0.9间接
npm@changesets/changelog-git0.2.1间接
npm@changesets/changelog-github0.6.0间接
npm@changesets/cli2.30.0间接
npm@changesets/config3.1.3间接
npm@changesets/errors0.2.0间接
npm@changesets/get-dependents-graph2.1.3间接
npm@changesets/get-github-info0.8.0间接
npm@changesets/get-release-plan4.0.15间接
npm@changesets/get-version-range-type0.4.0间接
npm@changesets/git3.0.4间接
npm@changesets/logger0.1.1间接
npm@changesets/parse0.4.3间接
npm@changesets/pre2.0.2间接
npm@changesets/read0.6.7间接
npm@changesets/should-skip-package0.1.2间接
npm@changesets/types4.1.0间接
npm@changesets/types6.1.0间接
npm@changesets/write0.4.0间接
npm@emnapi/core1.10.0间接
npm@emnapi/runtime1.10.0间接
npm@emnapi/wasi-threads1.2.1间接
npm@esbuild/aix-ppc640.27.2间接
npm@esbuild/android-arm0.27.2间接
npm@esbuild/android-arm640.27.2间接
npm@esbuild/android-x640.27.2间接
npm@esbuild/darwin-arm640.27.2间接
npm@esbuild/darwin-x640.27.2间接
npm@esbuild/freebsd-arm640.27.2间接
npm@esbuild/freebsd-x640.27.2间接
npm@esbuild/linux-arm0.27.2间接
npm@esbuild/linux-arm640.27.2间接
npm@esbuild/linux-ia320.27.2间接
npm@esbuild/linux-loong640.27.2间接
npm@esbuild/linux-mips64el0.27.2间接
npm@esbuild/linux-ppc640.27.2间接
npm@esbuild/linux-riscv640.27.2间接
npm@esbuild/linux-s390x0.27.2间接
npm@esbuild/linux-x640.27.2间接
npm@esbuild/netbsd-arm640.27.2间接
npm@esbuild/netbsd-x640.27.2间接
npm@esbuild/openbsd-arm640.27.2间接
npm@esbuild/openbsd-x640.27.2间接
npm@esbuild/openharmony-arm640.27.2间接
npm@esbuild/sunos-x640.27.2间接
npm@esbuild/win32-arm640.27.2间接
npm@esbuild/win32-ia320.27.2间接
npm@esbuild/win32-x640.27.2间接
npm@eslint-community/eslint-utils4.9.1间接
npm@eslint-community/regexpp4.12.2间接
npm@eslint/config-array0.21.1间接
npm@eslint/config-helpers0.4.2间接
npm@eslint/core0.17.0间接
npm@eslint/eslintrc3.3.3间接
npm@eslint/js9.39.2间接
npm@eslint/object-schema2.1.7间接
npm@eslint/plugin-kit0.4.1间接
npm@hey-api/codegen-core0.8.2间接
npm@hey-api/json-schema-ref-parser1.4.2间接
npm@hey-api/openapi-ts0.97.3间接
npm@hey-api/shared0.4.5间接
npm@hey-api/spec-types0.2.0间接
npm@hey-api/types0.1.4间接
npm@humanfs/core0.19.1间接
npm@humanfs/node0.16.7间接
npm@humanwhocodes/module-importer1.0.1间接
npm@humanwhocodes/retry0.4.3间接
npm@inquirer/external-editor1.0.3间接
npm@inquirer/figures1.0.15间接
npm@jridgewell/gen-mapping0.3.13间接
npm@jridgewell/resolve-uri3.1.2间接
npm@jridgewell/sourcemap-codec1.5.5间接
npm@jridgewell/trace-mapping0.3.31间接
npm@jsdevtools/ono7.1.3间接
npm@lukeed/ms2.0.2间接
npm@manypkg/find-root1.1.0间接
npm@manypkg/get-packages1.1.3间接
npm@napi-rs/wasm-runtime1.1.4间接
npm@nodelib/fs.scandir2.1.5间接
npm@nodelib/fs.stat2.0.5间接
npm@nodelib/fs.walk1.2.8间接
npm@oxc-project/types0.133.0间接
npm@rolldown/binding-android-arm641.0.3间接
npm@rolldown/binding-darwin-arm641.0.3间接
npm@rolldown/binding-darwin-x641.0.3间接
npm@rolldown/binding-freebsd-x641.0.3间接
npm@rolldown/binding-linux-arm-gnueabihf1.0.3间接
npm@rolldown/binding-linux-arm64-gnu1.0.3间接
npm@rolldown/binding-linux-arm64-musl1.0.3间接
npm@rolldown/binding-linux-ppc64-gnu1.0.3间接
npm@rolldown/binding-linux-s390x-gnu1.0.3间接
npm@rolldown/binding-linux-x64-gnu1.0.3间接
npm@rolldown/binding-linux-x64-musl1.0.3间接
npm@rolldown/binding-openharmony-arm641.0.3间接
npm@rolldown/binding-wasm32-wasi1.0.3间接
npm@rolldown/binding-win32-arm64-msvc1.0.3间接
npm@rolldown/binding-win32-x64-msvc1.0.3间接
npm@rolldown/pluginutils1.0.1间接
npm@rollup/rollup-android-arm-eabi4.61.1间接
npm@rollup/rollup-android-arm644.61.1间接
npm@rollup/rollup-darwin-arm644.61.1间接
npm@rollup/rollup-darwin-x644.61.1间接
npm@rollup/rollup-freebsd-arm644.61.1间接
npm@rollup/rollup-freebsd-x644.61.1间接
npm@rollup/rollup-linux-arm-gnueabihf4.61.1间接
npm@rollup/rollup-linux-arm-musleabihf4.61.1间接
npm@rollup/rollup-linux-arm64-gnu4.61.1间接
npm@rollup/rollup-linux-arm64-musl4.61.1间接
npm@rollup/rollup-linux-loong64-gnu4.61.1间接
npm@rollup/rollup-linux-loong64-musl4.61.1间接
npm@rollup/rollup-linux-ppc64-gnu4.61.1间接
npm@rollup/rollup-linux-ppc64-musl4.61.1间接
npm@rollup/rollup-linux-riscv64-gnu4.61.1间接
npm@rollup/rollup-linux-riscv64-musl4.61.1间接
npm@rollup/rollup-linux-s390x-gnu4.61.1间接
npm@rollup/rollup-linux-x64-gnu4.61.1间接
npm@rollup/rollup-linux-x64-musl4.61.1间接
npm@rollup/rollup-openbsd-x644.61.1间接
npm@rollup/rollup-openharmony-arm644.61.1间接
npm@rollup/rollup-win32-arm64-msvc4.61.1间接
npm@rollup/rollup-win32-ia32-msvc4.61.1间接
npm@rollup/rollup-win32-x64-gnu4.61.1间接
npm@rollup/rollup-win32-x64-msvc4.61.1间接
npm@standard-schema/spec1.1.0间接
npm@tybys/wasm-util0.10.2间接
npm@types/chai5.2.3间接
npm@types/deep-eql4.0.2间接
npm@types/estree1.0.9间接
npm@types/json-schema7.0.15间接
npm@types/node12.20.55间接
npm@types/node20.19.27间接
npm@typescript-eslint/eslint-plugin8.56.0间接
npm@typescript-eslint/parser8.56.0间接
npm@typescript-eslint/project-service8.56.0间接
npm@typescript-eslint/scope-manager8.56.0间接
npm@typescript-eslint/tsconfig-utils8.56.0间接
npm@typescript-eslint/type-utils8.56.0间接
npm@typescript-eslint/types8.56.0间接
npm@typescript-eslint/typescript-estree8.56.0间接
npm@typescript-eslint/utils8.56.0间接
npm@typescript-eslint/visitor-keys8.56.0间接
npm@vitest/coverage-v84.1.8间接
npm@vitest/expect4.1.8间接
npm@vitest/mocker4.1.8间接
npm@vitest/pretty-format4.1.8间接
npm@vitest/runner4.1.8间接
npm@vitest/snapshot4.1.8间接
npm@vitest/spy4.1.8间接
npm@vitest/utils4.1.8间接
npmacorn8.15.0间接
npmacorn-jsx5.3.2间接
npmajv6.15.0间接
npmansi-colors4.1.3间接
npmansi-escapes4.3.2间接
npmansi-regex5.0.1间接
npmansi-regex6.2.2间接
npmansi-styles4.3.0间接
npmany-promise1.3.0间接
npmargparse1.0.10间接
npmargparse2.0.1间接
npmarray-union2.1.0间接
npmassertion-error2.0.1间接
npmast-v8-to-istanbul1.0.3间接
npmbalanced-match1.0.2间接
npmbalanced-match4.0.4间接
npmbase64-js1.5.1间接
npmbetter-path-resolve1.0.0间接
npmbl4.1.0间接
npmbrace-expansion1.1.15间接
npmbrace-expansion2.1.1间接
npmbrace-expansion5.0.6间接
npmbraces3.0.3间接
npmbuffer5.7.1间接
npmbundle-name4.1.0间接
npmbundle-require5.1.0间接
npmc123.3.4间接
npmcac6.7.14间接
npmcallsites3.1.0间接
npmchai6.2.2间接
npmchardet2.1.1间接
npmchokidar4.0.3间接
npmchokidar5.0.0间接
npmcli-cursor3.1.0间接
npmcli-cursor5.0.0间接
npmcli-spinners2.9.2间接
npmcli-width4.1.0间接
npmclone1.0.4间接
npmcolor-convert2.0.1间接
npmcolor-name1.1.4间接
npmcolor-support1.1.3间接
npmconcat-map0.0.1间接
npmconfbox0.1.8间接
npmconfbox0.2.4间接
npmconsola3.4.2间接
npmconvert-source-map2.0.0间接
npmcross-spawn7.0.6间接
npmdataloader1.4.0间接
npmdebug4.4.3间接
npmdeep-is0.1.4间接
npmdefault-browser5.4.0间接
npmdefault-browser-id5.0.1间接
npmdefaults1.0.4间接
npmdefine-lazy-prop3.0.0间接
npmdefu6.1.7间接
npmdestr2.0.5间接
npmdetect-indent6.1.0间接
npmdetect-libc2.1.2间接
npmdir-glob3.0.1间接
npmemoji-regex10.6.0间接
npmemoji-regex8.0.0间接
npmenquirer2.4.1间接
npmes-module-lexer2.1.0间接
npmesbuild0.27.2间接
npmescape-string-regexp4.0.0间接
npmeslint9.39.2间接
npmeslint-scope8.4.0间接
npmeslint-visitor-keys3.4.3间接
npmeslint-visitor-keys4.2.1间接
npmeslint-visitor-keys5.0.0间接
npmespree10.4.0间接
npmesprima4.0.1间接
npmesquery1.7.0间接
npmesrecurse4.3.0间接
npmestraverse5.3.0间接
npmestree-walker3.0.3间接
npmesutils2.0.3间接
npmexpect-type1.3.0间接
npmexsolve1.0.8间接
npmextend-shallow2.0.1间接
npmextendable-error0.1.7间接
npmfast-deep-equal3.1.3间接
npmfast-glob3.3.3间接
npmfast-json-stable-stringify2.1.0间接
npmfast-levenshtein2.0.6间接
npmfastq1.20.1间接
npmfdir6.5.0间接
npmfile-entry-cache8.0.0间接
npmfill-range7.1.1间接
npmfind-up4.1.0间接
npmfind-up5.0.0间接
npmfix-dts-default-cjs-exports1.0.1间接
npmflat-cache4.0.1间接
npmflatted3.4.2间接
npmfs-extra7.0.1间接
npmfs-extra8.1.0间接
npmfsevents2.3.3间接
npmget-east-asian-width1.4.0间接
npmget-tsconfig4.14.0间接
npmgiget3.2.0间接
npmglob-parent5.1.2间接
npmglob-parent6.0.2间接
npmglobals14.0.0间接
npmglobby11.1.0间接
npmgraceful-fs4.2.11间接
npmhas-flag4.0.0间接
npmhtml-escaper2.0.2间接
npmhuman-id4.1.3间接
npmiconv-lite0.7.1间接
npmieee7541.2.1间接
npmignore5.3.2间接
npmignore7.0.5间接
npmimport-fresh3.3.1间接
npmimurmurhash0.1.4间接
npminherits2.0.4间接
npmis-docker3.0.0间接
npmis-extendable0.1.1间接
npmis-extglob2.1.1间接
npmis-fullwidth-code-point3.0.0间接
npmis-glob4.0.3间接
npmis-in-ssh1.0.0间接
npmis-inside-container1.0.0间接
npmis-interactive1.0.0间接
npmis-interactive2.0.0间接
npmis-number7.0.0间接
npmis-subdir1.2.0间接
npmis-unicode-supported0.1.0间接
npmis-unicode-supported1.3.0间接
npmis-unicode-supported2.1.0间接
npmis-windows1.0.2间接
npmis-wsl3.1.0间接
npmisexe2.0.0间接
npmistanbul-lib-coverage3.2.2间接
npmistanbul-lib-report3.0.1间接
npmistanbul-reports3.2.0间接
npmjiti2.7.0间接
npmjoycon3.1.1间接
npmjs-tokens10.0.0间接
npmjs-yaml3.14.2间接
npmjs-yaml4.1.1间接
npmjson-buffer3.0.1间接
npmjson-schema-to-ts3.1.1间接
npmjson-schema-traverse0.4.1间接
npmjson-stable-stringify-without-jsonify1.0.1间接
npmjsonfile4.0.0间接
npmkeyv4.5.4间接
npmkind-of6.0.3间接
npmlevn0.4.1间接
npmlightningcss1.32.0间接
npmlightningcss-android-arm641.32.0间接
npmlightningcss-darwin-arm641.32.0间接
npmlightningcss-darwin-x641.32.0间接
npmlightningcss-freebsd-x641.32.0间接
npmlightningcss-linux-arm-gnueabihf1.32.0间接
npmlightningcss-linux-arm64-gnu1.32.0间接
npmlightningcss-linux-arm64-musl1.32.0间接
npmlightningcss-linux-x64-gnu1.32.0间接
npmlightningcss-linux-x64-musl1.32.0间接
npmlightningcss-win32-arm64-msvc1.32.0间接
npmlightningcss-win32-x64-msvc1.32.0间接
npmlilconfig3.1.3间接
npmlines-and-columns1.2.4间接
npmload-tsconfig0.2.5间接
npmlocate-path5.0.0间接
npmlocate-path6.0.0间接
npmlodash.merge4.6.2间接
npmlodash.startcase4.4.0间接
npmlog-symbols4.1.0间接
npmlog-symbols6.0.0间接
npmmagic-string0.30.21间接
npmmagicast0.5.3间接
npmmake-dir4.0.0间接
npmmerge21.4.1间接
npmmicromatch4.0.8间接
npmmimic-fn2.1.0间接
npmmimic-function5.0.1间接
npmmlly1.8.0间接
npmmri1.2.0间接
npmms2.1.3间接
npmmute-stream1.0.0间接
npmmz2.7.0间接
npmnanoid3.3.12间接
npmnatural-compare1.4.0间接
npmnode-fetch2.7.0间接
npmobject-assign4.1.1间接
npmobug2.1.2间接
npmohash2.0.11间接
npmonetime5.1.2间接
npmonetime7.0.0间接
npmoptionator0.9.4间接
npmoutdent0.5.0间接
npmp-filter2.1.0间接
npmp-limit2.3.0间接
npmp-limit3.1.0间接
npmp-locate4.1.0间接
npmp-locate5.0.0间接
npmp-map2.1.0间接
npmp-try2.2.0间接
npmpackage-manager-detector0.2.11间接
npmparent-module1.0.1间接
npmpath-exists4.0.0间接
npmpath-key3.1.1间接
npmpath-type4.0.0间接
npmpathe2.0.3间接
npmperfect-debounce2.1.0间接
npmpicocolors1.1.1间接
npmpicomatch2.3.2间接
npmpicomatch4.0.4间接
npmpify4.0.1间接
npmpirates4.0.7间接
npmpkg-types1.3.1间接
npmpkg-types2.3.1间接
npmpostcss8.5.15间接
npmpostcss-load-config6.0.1间接
npmpowershell-utils0.1.0间接
npmprelude-ls1.2.1间接
npmprettier2.8.8间接
npmpunycode2.3.1间接
npmquansync0.2.11间接
npmqueue-microtask1.2.3间接
npmrc93.0.1间接
npmread-yaml-file1.1.0间接
npmreadable-stream3.6.2间接
npmreaddirp4.1.2间接
npmreaddirp5.0.0间接
npmresolve-from4.0.0间接
npmresolve-from5.0.0间接
npmresolve-pkg-maps1.0.0间接
npmrestore-cursor3.1.0间接
npmrestore-cursor5.1.0间接
npmreusify1.1.0间接
npmrolldown1.0.3间接
npmrollup4.61.1间接
npmrun-applescript7.1.0间接
npmrun-async3.0.0间接
npmrun-parallel1.2.0间接
npmrxjs7.8.2间接
npmsafe-buffer5.2.1间接
npmsafer-buffer2.1.2间接
npmsection-matter1.0.0间接
npmsemver7.7.4间接
npmshebang-command2.0.0间接
npmshebang-regex3.0.0间接
npmsiginfo2.0.0间接
npmsignal-exit3.0.7间接
npmsignal-exit4.1.0间接
npmslash3.0.0间接
npmsource-map0.7.6间接
npmsource-map-js1.2.1间接
npmspawndamnit3.0.1间接
npmsprintf-js1.0.3间接
npmstackback0.0.2间接
npmstd-env4.1.0间接
npmstdin-discarder0.2.2间接
npmstring-width4.2.3间接
npmstring-width7.2.0间接
npmstring_decoder1.3.0间接
npmstrip-ansi6.0.1间接
npmstrip-ansi7.1.2间接
npmstrip-bom3.0.0间接
npmstrip-bom-string1.0.0间接
npmstrip-json-comments3.1.1间接
npmsucrase3.35.1间接
npmsupports-color7.2.0间接
npmterm-size2.2.1间接
npmthenify3.3.1间接
npmthenify-all1.6.0间接
npmtinybench2.9.0间接
npmtinyexec0.3.2间接
npmtinyexec1.2.4间接
npmtinyglobby0.2.17间接
npmtinyrainbow3.1.0间接
npmto-regex-range5.0.1间接
npmtr460.0.3间接
npmtree-kill1.2.2间接
npmts-algebra2.0.0间接
npmts-api-utils2.4.0间接
npmts-interface-checker0.1.13间接
npmtslib2.8.1间接
npmtsup8.5.1间接
npmtype-check0.4.0间接
npmtype-fest0.21.3间接
npmtypescript5.9.3间接
npmtypescript-eslint8.56.0间接
npmufo1.6.1间接
npmundici-types6.21.0间接
npmuniversalify0.1.2间接
npmuri-js4.4.1间接
npmutil-deprecate1.0.2间接
npmvite8.0.16间接
npmvitest4.1.8间接
npmwcwidth1.0.1间接
npmwebidl-conversions3.0.1间接
npmwhatwg-url5.0.0间接
npmwhich2.0.2间接
npmwhy-is-node-running2.3.0间接
npmword-wrap1.2.5间接
npmwrap-ansi6.2.0间接
npmwsl-utils0.3.0间接
npmyocto-queue0.1.0间接
npmyoctocolors-cjs2.1.3间接
依赖安全公告 0

安装 npm:squads-cli@0.9.0 会引入 97 个包(直接与传递):其中 0 个存在已知公告,0 个为直接依赖。

没有已知公告影响已评估的依赖。

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

原始 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"
}

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

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

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