Public record
Software health reportschema 0.27.0 · metrics 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 stars⑂ 2 forkssince Dec 2025View on GitHub ↗

agents-squads/squads-cli holds a health index of 68 out of 100, placing it in the Moderate band. It scores highest on Engineering Quality (86/100) and lowest on Sustainability & Governance (52/100). It was last updated 2 days ago. A single contributor accounts for most of its recent work.

68
overall / 100
Moderate

Software health index

Metrics are grouped into weighted categories on one standardized 1–100 scale. Overall starts as their weighted mean; when public evidence triggers the High-Risk Jurisdiction Policy, the rating is adjusted and receives an At risk ceiling of 49. AI Readiness sits outside the overall score.

68
Excellent85-100Exemplary; meets essentially all checked criteria
Good70-84Healthy; minor gaps
Moderate50-69Acceptable with notable gaps; review recommended
At risk30-49Significant weaknesses; adoption warrants caution
Critical1-29Severe problems (abandoned, single-maintainer, no hygiene)
VitalityCommunity &AdoptionSustainability &GovernanceEngineeringQualitySecurityAI Readiness

Score profile

Each axis is a category. The shape matters more than the average — a healthy subject fills the whole shape, while a spike-and-crater profile means strength in one dimension is masking risk in another.

Ownership

Agents SquadsOrganization
4 followers3 public repossince Dec 2025

This repository is backed by an organization — shared, accountable stewardship that can outlive any single maintainer.

Package ecosystems

Metrics by category

Vitality

Is the project alive — is code being written and are releases shipping?

83Good · 22% of overall
How it's scored
36/36Push recency — last push 2 days ago
11.1/36Commit cadence — 16/52 weeks with commits
18/18Commit volume — 313 commits in the last year
6/10OpenSSF Scorecard: Maintained — 8 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 6
Inputs used
commits_last_year313
human_commit_share0.91
days_since_last_push2
active_weeks_last_year16

Release discipline

100Excellent
How it's scored
27/27Ships releases — 12 releases published
36/36Release recency — latest release 20 days ago
27/27Release cadence — a release every ~11.2 days
0/10OpenSSF Scorecard: Signed-Releases — no data
Inputs used
releases_count12
latest_release_tagv0.9.0
releases_from_tagsno
days_since_latest_release20
mean_days_between_releases11.2
Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.

Community & Adoption

Does the project have users, downloads, attention, and a welcoming setup for contributors?

56Moderate · 18% of overall
How it's scored
27.3/60Stars — 49 stars
0/25Forks — 2 forks
0/15Watchers — 1 watchers
Inputs used
forks2
stars49
watchers1
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history

Community health

92Excellent
How it's scored
22.5/22.5README
22.5/22.5License — recognized license (MIT)
18/18CONTRIBUTING guide
13.5/13.5Code of conduct
0/7.2Issue template
6.3/6.3PR template
Inputs used
has_readmeyes
has_licenseyes
has_contributingyes
has_issue_templateno
has_code_of_conductyes
has_pull_request_templateyes
How it's scored
40.9/80Monthly downloads — 1,176 downloads/month across npm
0/20Registry dependents — not reported by this ecosystem
Inputs used
packagessquads-cli
dependents
ecosystemsnpm
total_downloads
monthly_downloads1,176
Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.

Sustainability & Governance

Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?

52Moderate · 24% of overall
How it's scored
9/54Bus factor — 1 contributor(s) cover half of all commits
0/22.5Commit distribution — top contributor authored 100% of commits
1.4/13.5Contributor breadth — 1 contributors
0/10OpenSSF Scorecard: Contributors — project has 0 contributing companies or organizations -- score normalized to 0
Inputs used
bus_factor1
contributors_sampled1
top_contributor_share1
How it's scored
42.6/46.8Issue resolution — 91% of issues closed
31.3/38.3PR acceptance — 464/567 decided PRs merged
1.5/15OpenSSF Scorecard: Code-Review — Found 3/21 approved changesets -- score normalized to 1
Inputs used
merged_prs464
open_issues56
closed_issues578
issue_closed_ratio0.912
closed_unmerged_prs103
How it's scored
30/30Ownership backing — organization-owned
0/20Verified domain
5/25Owner reach — 4 followers of agents-squads
5.6/25Track record — 3 public repos, account ~0 yr old
Inputs used
followers4
owner_typeOrganization
is_verified
owner_loginagents-squads
public_repos3
account_age_days229
How it's scored
25/25Published & resolvable — 1 package(s) on npm
35/35Publish recency — latest publish 20 days ago
20/20Version history — 29 published versions
20/20Not deprecated — active, not deprecated or yanked
Inputs used
packagessquads-cli
ecosystemsnpm
any_deprecatedno
min_days_since_publish20

Engineering Quality

Are baseline engineering and documentation practices in place?

86Excellent · 20% of overall
How it's scored
24/24CI workflows — 6 workflow(s)
24/24Tests present
16/16Linter config — eslint.config.js
0/9.6Pre-commit hooks
0/6.4.editorconfig
20/20OpenSSF Scorecard: CI-Tests — 22 out of 22 merged PRs checked by a CI test -- score normalized to 10
Inputs used
has_ciyes
has_testsyes
has_editorconfigno
has_linter_configyes
has_precommit_configno

Documentation

90Excellent
How it's scored
30/30README
25/25Documentation directory
15/15Documentation / homepage site — https://agents-squads.com
10/10Repository description
10/10Topics — 15 topics
0/10Wiki
Inputs used
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_wikino
homepagehttps://agents-squads.com
has_readmeyes
has_docs_diryes
has_descriptionyes

Security

Are visible security and supply-chain practices strong, without unresolved high-risk jurisdiction exposure?

65Moderate · 16% of overall
How it's scored
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.5License — 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 — no data
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
3.8/7.5Vulnerabilities — 5 existing vulnerabilities detected
Inputs used
sourceopenssf_scorecard
checks_evaluated17
scorecard_versionv5.5.0
checks_inconclusive1
scorecard_aggregate5.6
Excluded from scoring (no data or not applicable): signed_releases. Remaining weights renormalized.
How it's scored
35/35Direct dependencies free of known advisories — no direct dependency carries a known advisory
25/25Indirect dependencies free of known advisories — no indirect dependency carries a known advisory
0/40No advisories left outstanding — no advisory carries a publication date
Inputs used
sourceosv
advisories0
affected_packages0
assessed_packages97
unassessed_packages0
affected_by_severitynone
direct_affected_packages0
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.

AI Readiness

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.

74Good · 0% of overall
How it's scored
45/45Agent instructions — AGENTS.md, CLAUDE.md
0/15Machine-readable docs (llms.txt)
40/40Legible commit history — 88 of 91 human commits state their intent (structured subject or explanatory body)
Inputs used
has_llms_txtno
legible_history_share0.967
agent_instruction_filesAGENTS.md, CLAUDE.md
agent_instruction_max_bytes4,781
How it's scored
0/18One-command bootstrap
22/22Automated tests
11/11Lint / format config — eslint.config.js
11/11Static type checking — tsconfig.json
10/10Reproducible environment — Dockerfile, lockfile
10/10Demonstrated agent practice — 79 of the last 100 commits agent-authored or agent-credited
0/8Automated maintenance — no automated dependency updates observed
4/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 4
Inputs used
has_nixno
has_testsyes
lockfilespackage-lock.json
has_dockerfileyes
typed_languageyes
bootstrap_files
has_devcontainerno
has_linter_configyes
typecheck_configstsconfig.json
agent_commit_share0.79
toolchain_manifests
dependency_bot_commit_share0
How it's scored
45/45Type-checkable code — TypeScript (statically typed)
54.6/55Manageable file sizes — 2/289 source files over 60KB
Inputs used
primary_languageTypeScript
largest_source_bytes120,426
source_files_sampled289
oversized_source_files2
How it's scored
40/40API schema (OpenAPI/GraphQL/proto) — openapi/openapi.json
0/20MCP server
0/40Runnable examples
Inputs used
example_dirs
has_mcp_signalno
api_schema_filesopenapi/openapi.json

Key facts

49GitHub stars
1contributors
313commits, last 12 months
2days since last push
12releases
1bus factor
56open issues
npmpackage ecosystems

Data collection warnings

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

More detail

Star and fork history 0 ★ / 2 ⇿
0Stars
2Forks
1Releases

When each star and fork was added, collected from GitHub and bucketed by day. Cumulative growth sits directly above the daily additions it is made of, so the two read against each other: steady organic accretion looks nothing like an abrupt, short-lived burst. Where that difference is measurable, it is reported as growth authenticity.

111222212026-032026-032026-03
Major 0Minor 0Patch 1
OpenSSF Scorecard 5.6 / 10
5.6aggregate

Independent, tool-agnostic security assessment from the open-source OpenSSF Scorecard. Each check rewards a security practice, not a specific vendor's tool. Checks Scorecard could not determine are marked n/a and excluded from the security score (never counted as zero).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
n/aSigned-Releasesno releases found
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
5Vulnerabilities5 existing vulnerabilities detected
Direct dependencies 10
RegistryPackageVersion constraintManifest
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
All dependencies 474

Full resolved dependency set from the GitHub dependency graph: 17 direct and 457 indirect (transitive) packages. The transitive closure is complete when the repository commits a lockfile.

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

Installing npm:squads-cli@0.9.0 pulls in 97 packages, direct and transitive: 0 carry known advisories, of which 0 are direct dependencies.

No known advisories affect the assessed dependencies.

An advisory means the version recorded in the dependency graph falls inside an advisory’s affected range. Reachability is not analysed, and the graph includes development and test pins — a finding may concern tooling rather than shipped software.

Raw JSON report machine-readable
{
  "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"
}

Scores are signals, not warranties. They reflect publicly visible practices on GitHub — not a code audit, and not a security guarantee.

Missing data is excluded and weights renormalized, never scored as zero. Methodology is versioned and open: metrics v1.13.0, schema v0.27.0 — full methodology · metrics wiki.

How one result sits in the wider record: aggregate statisticsnpm.