Public record
Software health reportschema 0.27.0 · metrics 1.13.0 · 2026-07-27 02:38 UTC

aiexponenthq / license-compliance-checker

License Compliance Checker — Multi-ecosystem license + AI model scanner for EU AI Act Article 53 GPAI compliance. SBOM, SARIF, training-data risk. Apache 2.0.

Python · TypeScriptApache-2.0★ 1 star⑂ 0 forkssince Oct 2025View on GitHub ↗

aiexponenthq/license-compliance-checker holds a health index of 64 out of 100, placing it in the Moderate band. It scores highest on Engineering Quality (92/100) and lowest on Community & Adoption (43/100). It was last updated 7 days ago. A single contributor accounts for most of its recent work.

64
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.

64
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

AiExponentOrganization
1 follower6 public repossince Apr 2026

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

Package ecosystems

RegistryPackageVersionDownloads / moVersionsLast publishTags
PyPIlicense-compliance-checker2.0.025827 days agolicensecomplianceopen-sourcesbomspdxcyclonedxsoftware-composition-analysis

Metrics by category

Vitality

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

78Good · 22% of overall
How it's scored
36/36Push recency — last push 7 days ago
5.5/36Commit cadence — 8/52 weeks with commits
16/18Commit volume — 59 commits in the last year
10/10OpenSSF Scorecard: Maintained — 30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
Inputs used
commits_last_year59
human_commit_share1
days_since_last_push7
active_weeks_last_year8
How it's scored
27/27Ships releases — 3 releases published
36/36Release recency — latest release 7 days ago
19.8/27Release cadence — a release every ~83.4 days
0/10OpenSSF Scorecard: Signed-Releases — no data
Inputs used
releases_count3
latest_release_tagv2.0.0
releases_from_tagsno
days_since_latest_release7
mean_days_between_releases83.4
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?

43At risk · 18% of overall
How it's scored
0/60Stars — 1 stars
0/25Forks — 0 forks
0/15Watchers — 0 watchers
Inputs used
forks0
stars1
watchers0
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 (Apache-2.0)
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
32.2/80Monthly downloads — 258 downloads/month across pypi
0/20Registry dependents — not reported by this ecosystem
Inputs used
packageslicense-compliance-checker
dependents
ecosystemspypi
total_downloads
monthly_downloads258
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?

50Moderate · 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
3/10OpenSSF Scorecard: Contributors — project has 1 contributing companies or organizations -- score normalized to 3
Inputs used
bus_factor1
contributors_sampled1
top_contributor_share1
How it's scored
0/46.8Issue resolution — no issues or no data
38.2/38.3PR acceptance — 17/17 decided PRs merged
0/15OpenSSF Scorecard: Code-Review — Found 0/28 approved changesets -- score normalized to 0
Inputs used
merged_prs17
open_issues0
closed_issues0
issue_closed_ratio
closed_unmerged_prs0
Excluded from scoring (no data or not applicable): Issue resolution. Remaining weights renormalized.
How it's scored
30/30Ownership backing — organization-owned
0/20Verified domain
2.2/25Owner reach — 1 followers of aiexponenthq
6.8/25Track record — 6 public repos, account ~0 yr old
Inputs used
followers1
owner_typeOrganization
is_verified
owner_loginaiexponenthq
public_repos6
account_age_days109
How it's scored
25/25Published & resolvable — 1 package(s) on pypi
35/35Publish recency — latest publish 7 days ago
12/20Version history — 2 published versions
20/20Not deprecated — active, not deprecated or yanked
Inputs used
packageslicense-compliance-checker
ecosystemspypi
any_deprecatedno
min_days_since_publish7

Engineering Quality

Are baseline engineering and documentation practices in place?

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

Documentation

90Excellent
How it's scored
30/30README
25/25Documentation directory
15/15Documentation / homepage site — https://aiexponent.com/docs/license-compliance-checker
10/10Repository description
10/10Topics — 18 topics
0/10Wiki
Inputs used
topicsai-governance, cli, eu-ai-act, gpai, license-compliance, open-source, python, responsible-ai, article-53, ai-compliance, ai-safety, apache-2-0, cyclonedx, huggingface, model-cards, sbom, spdx, aiexponent
has_wikino
homepagehttps://aiexponent.com/docs/license-compliance-checker
has_readmeyes
has_docs_diryes
has_descriptionyes

Security

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

54Moderate · 16% of overall
How it's scored
7.5/7.5Binary-Artifacts — no binaries found in the repo
0/7.5Branch-Protection — branch protection not enabled on development/release branches
2.5/2.5CI-Tests — 2 out of 2 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/7.5Code-Review — Found 0/28 approved changesets -- score normalized to 0
0.8/2.5Contributors — project has 1 contributing companies or organizations -- score normalized to 3
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
7.5/7.5Maintained — 30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
5/5Packaging — packaging workflow detected
0.5/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 1
0/5SAST — SAST tool is not run on all commits -- score normalized to 0
5/5Security-Policy — security policy file detected
0/7.5Signed-Releases — no data
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
0/7.5Vulnerabilities — 99 existing vulnerabilities detected
Inputs used
sourceopenssf_scorecard
checks_evaluated17
scorecard_versionv5.5.0
checks_inconclusive1
scorecard_aggregate4.2
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_packages69
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 pypi:license-compliance-checker@2.0.0 runtime dependency closure — what installing the published package pulls in — 69 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.

54Moderate · 0% of overall
How it's scored
0/45Agent instructions — no CLAUDE.md / AGENTS.md / editor rules
0/15Machine-readable docs (llms.txt)
40/40Legible commit history — 58 of 59 human commits state their intent (structured subject or explanatory body)
Inputs used
has_llms_txtno
legible_history_share0.983
agent_instruction_files
agent_instruction_max_bytes
How it's scored
0/18One-command bootstrap
22/22Automated tests
11/11Lint / format config — .eslintrc.json
11/11Static type checking — dashboard/tsconfig.json, vscode-extension/tsconfig.json
10/10Reproducible environment — Dockerfile, lockfile
0/10Demonstrated agent practice — no agent-authored commits among the last 59
0/8Automated maintenance — no automated dependency updates observed
1/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 1
Inputs used
has_nixno
has_testsyes
lockfilespackage-lock.json
has_dockerfileyes
typed_languageno
bootstrap_files
has_devcontainerno
has_linter_configyes
typecheck_configsdashboard/tsconfig.json, vscode-extension/tsconfig.json
agent_commit_share0
toolchain_manifests
dependency_bot_commit_share0
How it's scored
27/45Type-checkable code — Python with type-check config (dashboard/tsconfig.json, vscode-extension/tsconfig.json)
54.8/55Manageable file sizes — 1/263 source files over 60KB
Inputs used
primary_languagePython
largest_source_bytes77,750
source_files_sampled263
oversized_source_files1

Key facts

1GitHub stars
1contributors
59commits, last 12 months
7days since last push
3releases
1bus factor
0open issues
npm, PyPIpackage ecosystems

Data collection warnings

  • Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token
  • Could not fetch npm package 'lcc-vscode' from its registry

More detail

OpenSSF Scorecard 4.2 / 10
4.2aggregate

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-27 02:38 UTC

10Binary-Artifactsno binaries found in the repo
0Branch-Protectionbranch protection not enabled on development/release branches
10CI-Tests2 out of 2 merged PRs checked by a CI test -- score normalized to 10
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
0Code-ReviewFound 0/28 approved changesets -- score normalized to 0
3Contributorsproject has 1 contributing companies or organizations -- score normalized to 3
10Dangerous-Workflowno dangerous workflow patterns detected
0Dependency-Update-Toolno update tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
10Maintained30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
10Packagingpackaging workflow detected
1Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 1
0SASTSAST tool is not run on all commits -- score normalized to 0
10Security-Policysecurity policy file detected
n/aSigned-Releasesno releases found
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
0Vulnerabilities99 existing vulnerabilities detected
Direct dependencies 48
RegistryPackageVersion constraintManifest
npm@radix-ui/react-alert-dialog^1.1.15dashboard/package.json
npm@radix-ui/react-avatar^1.0.4dashboard/package.json
npm@radix-ui/react-checkbox^1.0.4dashboard/package.json
npm@radix-ui/react-collapsible^1.0.3dashboard/package.json
npm@radix-ui/react-dialog^1.1.15dashboard/package.json
npm@radix-ui/react-dropdown-menu^2.0.6dashboard/package.json
npm@radix-ui/react-icons^1.3.0dashboard/package.json
npm@radix-ui/react-label^2.1.7dashboard/package.json
npm@radix-ui/react-popover^1.1.15dashboard/package.json
npm@radix-ui/react-progress^1.1.7dashboard/package.json
npm@radix-ui/react-scroll-area^1.0.5dashboard/package.json
npm@radix-ui/react-select^2.2.6dashboard/package.json
npm@radix-ui/react-separator^1.1.7dashboard/package.json
npm@radix-ui/react-slot^1.2.4dashboard/package.json
npm@radix-ui/react-switch^1.1.1dashboard/package.json
npm@radix-ui/react-tooltip^1.1.3dashboard/package.json
npm@tanstack/react-query^5.90.5dashboard/package.json
npmaxios^1.13.1dashboard/package.json
npmclass-variance-authority^0.7.0dashboard/package.json
npmclsx^2.1.1dashboard/package.json
npmgeist^1.3.0dashboard/package.json
npmimmer^10.1.1dashboard/package.json
npmlucide-react^0.377.0dashboard/package.json
npmnext14.2.3dashboard/package.json
npmnext-themes^0.4.3dashboard/package.json
npmreact^18dashboard/package.json
npmreact-dom^18dashboard/package.json
npmsonner^2.0.7dashboard/package.json
npmtailwind-merge^2.3.0dashboard/package.json
npmtailwindcss-animate^1.0.7dashboard/package.json
npmzod^3.23.8dashboard/package.json
npmzustand^4.5.2dashboard/package.json
PyPIrich>=13.7.0pyproject.toml
PyPIrequests>=2.31.0pyproject.toml
PyPIurllib3>=2.7.0pyproject.toml
PyPIidna>=3.15pyproject.toml
PyPIcachetools>=5.3.0pyproject.toml
PyPIplatformdirs>=4.2.0pyproject.toml
PyPIpackaging>=23.2pyproject.toml
PyPIpydantic>=2.0.0pyproject.toml
PyPIpyyaml>=6.0pyproject.toml
PyPIcyclonedx-python-lib>=5.0.0pyproject.toml
PyPIspdx-tools>=0.8.0pyproject.toml
PyPIpackageurl-python>=0.11.0pyproject.toml
PyPIhuggingface-hub>=0.19.0pyproject.toml
PyPIpython-gnupg>=0.5.0pyproject.toml
PyPIgitpython>=3.1.50pyproject.toml
PyPIpython-dotenv>=1.0.0pyproject.toml
All dependencies 693

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

RegistryPackageVersionRelation
npm@radix-ui/react-alert-dialog1.1.15direct
npm@radix-ui/react-avatar1.1.10direct
npm@radix-ui/react-checkbox1.3.3direct
npm@radix-ui/react-collapsible1.1.12direct
npm@radix-ui/react-dialog1.1.15direct
npm@radix-ui/react-dropdown-menu2.1.16direct
npm@radix-ui/react-icons1.3.2direct
npm@radix-ui/react-label2.1.7direct
npm@radix-ui/react-popover1.1.15direct
npm@radix-ui/react-progress1.1.7direct
npm@radix-ui/react-scroll-area1.2.10direct
npm@radix-ui/react-select2.2.6direct
npm@radix-ui/react-separator1.1.7direct
npm@radix-ui/react-slot1.2.3direct
npm@radix-ui/react-slot1.2.4direct
npm@radix-ui/react-switch1.2.6direct
npm@radix-ui/react-tooltip1.2.8direct
npm@tanstack/react-query5.90.5direct
npmaxios1.13.1direct
npmclass-variance-authority0.7.1direct
npmclsx2.1.1direct
npmgeist1.5.1direct
npmimmer10.1.3direct
npmlucide-react0.377.0direct
npmnext14.2.3direct
npmnext-themes0.4.6direct
npmreact18.3.1direct
npmreact-dom18.3.1direct
npmsonner2.0.7direct
npmtailwind-merge2.6.0direct
npmtailwindcss-animate1.0.7direct
npmzod3.25.76direct
npmzustand4.5.7direct
PyPIcachetoolsdirect
PyPIcyclonedx-python-libdirect
PyPIgitpythondirect
PyPIhuggingface-hubdirect
PyPIidnadirect
PyPIpackageurl-pythondirect
PyPIpackagingdirect
PyPIplatformdirsdirect
PyPIpydanticdirect
PyPIpython-dotenvdirect
PyPIpython-gnupgdirect
PyPIpyyamldirect
PyPIrequestsdirect
PyPIrichdirect
PyPIspdx-toolsdirect
PyPIurllib3direct
npm@alloc/quick-lru5.2.0indirect
npm@azure/abort-controller2.1.2indirect
npm@azure/core-auth1.10.1indirect
npm@azure/core-client1.10.1indirect
npm@azure/core-rest-pipeline1.23.0indirect
npm@azure/core-tracing1.3.1indirect
npm@azure/core-util1.13.1indirect
npm@azure/identity4.13.0indirect
npm@azure/logger1.3.0indirect
npm@azure/msal-browser4.29.1indirect
npm@azure/msal-common15.16.1indirect
npm@azure/msal-node3.8.9indirect
npm@emnapi/core1.5.0indirect
npm@emnapi/runtime1.5.0indirect
npm@emnapi/wasi-threads1.1.0indirect
npm@esbuild/aix-ppc640.25.10indirect
npm@esbuild/android-arm0.25.10indirect
npm@esbuild/android-arm640.25.10indirect
npm@esbuild/android-x640.25.10indirect
npm@esbuild/darwin-arm640.25.10indirect
npm@esbuild/darwin-x640.25.10indirect
npm@esbuild/freebsd-arm640.25.10indirect
npm@esbuild/freebsd-x640.25.10indirect
npm@esbuild/linux-arm0.25.10indirect
npm@esbuild/linux-arm640.25.10indirect
npm@esbuild/linux-ia320.25.10indirect
npm@esbuild/linux-loong640.25.10indirect
npm@esbuild/linux-mips64el0.25.10indirect
npm@esbuild/linux-ppc640.25.10indirect
npm@esbuild/linux-riscv640.25.10indirect
npm@esbuild/linux-s390x0.25.10indirect
npm@esbuild/linux-x640.25.10indirect
npm@esbuild/netbsd-arm640.25.10indirect
npm@esbuild/netbsd-x640.25.10indirect
npm@esbuild/openbsd-arm640.25.10indirect
npm@esbuild/openbsd-x640.25.10indirect
npm@esbuild/openharmony-arm640.25.10indirect
npm@esbuild/sunos-x640.25.10indirect
npm@esbuild/win32-arm640.25.10indirect
npm@esbuild/win32-ia320.25.10indirect
npm@esbuild/win32-x640.25.10indirect
npm@eslint-community/eslint-utils4.9.0indirect
npm@eslint-community/regexpp4.12.1indirect
npm@eslint/eslintrc2.1.4indirect
npm@eslint/js8.57.1indirect
npm@floating-ui/core1.7.3indirect
npm@floating-ui/dom1.7.4indirect
npm@floating-ui/react-dom2.1.6indirect
npm@floating-ui/utils0.2.10indirect
npm@humanwhocodes/config-array0.13.0indirect
npm@humanwhocodes/module-importer1.0.1indirect
npm@humanwhocodes/object-schema2.0.3indirect
npm@isaacs/cliui8.0.2indirect
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@napi-rs/wasm-runtime0.2.12indirect
npm@next/env14.2.3indirect
npm@next/eslint-plugin-next14.2.3indirect
npm@next/swc-darwin-arm6414.2.3indirect
npm@next/swc-darwin-x6414.2.3indirect
npm@next/swc-linux-arm64-gnu14.2.3indirect
npm@next/swc-linux-arm64-musl14.2.3indirect
npm@next/swc-linux-x64-gnu14.2.3indirect
npm@next/swc-linux-x64-musl14.2.3indirect
npm@next/swc-win32-arm64-msvc14.2.3indirect
npm@next/swc-win32-ia32-msvc14.2.3indirect
npm@next/swc-win32-x64-msvc14.2.3indirect
npm@nodelib/fs.scandir2.1.5indirect
npm@nodelib/fs.stat2.0.5indirect
npm@nodelib/fs.walk1.2.8indirect
npm@nolyfill/is-core-module1.0.39indirect
npm@pkgjs/parseargs0.11.0indirect
npm@radix-ui/number1.1.1indirect
npm@radix-ui/primitive1.1.3indirect
npm@radix-ui/react-arrow1.1.7indirect
npm@radix-ui/react-collection1.1.7indirect
npm@radix-ui/react-compose-refs1.1.2indirect
npm@radix-ui/react-context1.1.2indirect
npm@radix-ui/react-direction1.1.1indirect
npm@radix-ui/react-dismissable-layer1.1.11indirect
npm@radix-ui/react-focus-guards1.1.3indirect
npm@radix-ui/react-focus-scope1.1.7indirect
npm@radix-ui/react-id1.1.1indirect
npm@radix-ui/react-menu2.1.16indirect
npm@radix-ui/react-popper1.2.8indirect
npm@radix-ui/react-portal1.1.9indirect
npm@radix-ui/react-presence1.1.5indirect
npm@radix-ui/react-primitive2.1.3indirect
npm@radix-ui/react-roving-focus1.1.11indirect
npm@radix-ui/react-use-callback-ref1.1.1indirect
npm@radix-ui/react-use-controllable-state1.2.2indirect
npm@radix-ui/react-use-effect-event0.0.2indirect
npm@radix-ui/react-use-escape-keydown1.1.1indirect
npm@radix-ui/react-use-is-hydrated0.1.0indirect
npm@radix-ui/react-use-layout-effect1.1.1indirect
npm@radix-ui/react-use-previous1.1.1indirect
npm@radix-ui/react-use-rect1.1.1indirect
npm@radix-ui/react-use-size1.1.1indirect
npm@radix-ui/react-visually-hidden1.2.3indirect
npm@radix-ui/rect1.1.1indirect
npm@rtsao/scc1.1.0indirect
npm@rushstack/eslint-patch1.13.0indirect
npm@swc/counter0.1.3indirect
npm@swc/helpers0.5.5indirect
npm@tanstack/query-core5.90.5indirect
npm@tybys/wasm-util0.10.1indirect
npm@types/json50.0.29indirect
npm@types/node20.19.20indirect
npm@types/node20.19.37indirect
npm@types/prop-types15.7.15indirect
npm@types/react18.3.26indirect
npm@types/react-dom18.3.7indirect
npm@types/vscode1.110.0indirect
npm@typescript-eslint/parser7.2.0indirect
npm@typescript-eslint/scope-manager7.2.0indirect
npm@typescript-eslint/types7.2.0indirect
npm@typescript-eslint/typescript-estree7.2.0indirect
npm@typescript-eslint/visitor-keys7.2.0indirect
npm@typespec/ts-http-runtime0.3.4indirect
npm@ungap/structured-clone1.3.0indirect
npm@unrs/resolver-binding-android-arm-eabi1.11.1indirect
npm@unrs/resolver-binding-android-arm641.11.1indirect
npm@unrs/resolver-binding-darwin-arm641.11.1indirect
npm@unrs/resolver-binding-darwin-x641.11.1indirect
npm@unrs/resolver-binding-freebsd-x641.11.1indirect
npm@unrs/resolver-binding-linux-arm-gnueabihf1.11.1indirect
npm@unrs/resolver-binding-linux-arm-musleabihf1.11.1indirect
npm@unrs/resolver-binding-linux-arm64-gnu1.11.1indirect
npm@unrs/resolver-binding-linux-arm64-musl1.11.1indirect
npm@unrs/resolver-binding-linux-ppc64-gnu1.11.1indirect
npm@unrs/resolver-binding-linux-riscv64-gnu1.11.1indirect
npm@unrs/resolver-binding-linux-riscv64-musl1.11.1indirect
npm@unrs/resolver-binding-linux-s390x-gnu1.11.1indirect
npm@unrs/resolver-binding-linux-x64-gnu1.11.1indirect
npm@unrs/resolver-binding-linux-x64-musl1.11.1indirect
npm@unrs/resolver-binding-wasm32-wasi1.11.1indirect
npm@unrs/resolver-binding-win32-arm64-msvc1.11.1indirect
npm@unrs/resolver-binding-win32-ia32-msvc1.11.1indirect
npm@unrs/resolver-binding-win32-x64-msvc1.11.1indirect
npm@vscode/vsce2.32.0indirect
npm@vscode/vsce-sign2.0.9indirect
npm@vscode/vsce-sign-alpine-arm642.0.6indirect
npm@vscode/vsce-sign-alpine-x642.0.6indirect
npm@vscode/vsce-sign-darwin-arm642.0.6indirect
npm@vscode/vsce-sign-darwin-x642.0.6indirect
npm@vscode/vsce-sign-linux-arm2.0.6indirect
npm@vscode/vsce-sign-linux-arm642.0.6indirect
npm@vscode/vsce-sign-linux-x642.0.6indirect
npm@vscode/vsce-sign-win32-arm642.0.6indirect
npm@vscode/vsce-sign-win32-x642.0.6indirect
npmacorn8.15.0indirect
npmacorn-jsx5.3.2indirect
npmagent-base7.1.4indirect
npmajv6.12.6indirect
npmansi-regex5.0.1indirect
npmansi-regex6.2.2indirect
npmansi-styles3.2.1indirect
npmansi-styles4.3.0indirect
npmansi-styles6.2.3indirect
npmany-promise1.3.0indirect
npmanymatch3.1.3indirect
npmarg5.0.2indirect
npmargparse2.0.1indirect
npmaria-hidden1.2.6indirect
npmaria-query5.3.2indirect
npmarray-buffer-byte-length1.0.2indirect
npmarray-includes3.1.9indirect
npmarray-union2.1.0indirect
npmarray.prototype.findlast1.2.5indirect
npmarray.prototype.findlastindex1.2.6indirect
npmarray.prototype.flat1.3.3indirect
npmarray.prototype.flatmap1.3.3indirect
npmarray.prototype.tosorted1.1.4indirect
npmarraybuffer.prototype.slice1.0.4indirect
npmast-types-flow0.0.8indirect
npmasync-function1.0.0indirect
npmasynckit0.4.0indirect
npmavailable-typed-arrays1.0.7indirect
npmaxe-core4.11.0indirect
npmaxobject-query4.1.0indirect
npmazure-devops-node-api12.5.0indirect
npmbalanced-match1.0.2indirect
npmbase64-js1.5.1indirect
npmbinary-extensions2.3.0indirect
npmbl4.1.0indirect
npmboolbase1.0.0indirect
npmbrace-expansion1.1.12indirect
npmbrace-expansion2.0.2indirect
npmbraces3.0.3indirect
npmbuffer5.7.1indirect
npmbuffer-crc320.2.13indirect
npmbuffer-equal-constant-time1.0.1indirect
npmbundle-name4.1.0indirect
npmbusboy1.6.0indirect
npmcall-bind1.0.8indirect
npmcall-bind-apply-helpers1.0.2indirect
npmcall-bound1.0.4indirect
npmcallsites3.1.0indirect
npmcamelcase-css2.0.1indirect
npmcaniuse-lite1.0.30001749indirect
npmchalk2.4.2indirect
npmchalk4.1.2indirect
npmcheerio1.2.0indirect
npmcheerio-select2.1.0indirect
npmchokidar3.6.0indirect
npmchownr1.1.4indirect
npmclient-only0.0.1indirect
npmcockatiel3.2.1indirect
npmcolor-convert1.9.3indirect
npmcolor-convert2.0.1indirect
npmcolor-name1.1.3indirect
npmcolor-name1.1.4indirect
npmcombined-stream1.0.8indirect
npmcommander4.1.1indirect
npmcommander6.2.1indirect
npmconcat-map0.0.1indirect
npmcross-spawn7.0.6indirect
npmcss-select5.2.2indirect
npmcss-what6.2.2indirect
npmcssesc3.0.0indirect
npmcsstype3.1.3indirect
npmdamerau-levenshtein1.0.8indirect
npmdata-view-buffer1.0.2indirect
npmdata-view-byte-length1.0.2indirect
npmdata-view-byte-offset1.0.1indirect
npmdebug3.2.7indirect
npmdebug4.4.3indirect
npmdecompress-response6.0.0indirect
npmdeep-extend0.6.0indirect
npmdeep-is0.1.4indirect
npmdefault-browser5.5.0indirect
npmdefault-browser-id5.0.1indirect
npmdefine-data-property1.1.4indirect
npmdefine-lazy-prop3.0.0indirect
npmdefine-properties1.2.1indirect
npmdelayed-stream1.0.0indirect
npmdetect-libc2.1.2indirect
npmdetect-node-es1.1.0indirect
npmdidyoumean1.2.2indirect
npmdir-glob3.0.1indirect
npmdlv1.1.3indirect
npmdoctrine2.1.0indirect
npmdoctrine3.0.0indirect
npmdom-serializer2.0.0indirect
npmdomelementtype2.3.0indirect
npmdomhandler5.0.3indirect
npmdomutils3.2.2indirect
npmdunder-proto1.0.1indirect
npmeastasianwidth0.2.0indirect
npmecdsa-sig-formatter1.0.11indirect
npmemoji-regex8.0.0indirect
npmemoji-regex9.2.2indirect
npmencoding-sniffer0.2.1indirect
npmend-of-stream1.4.5indirect
npmentities2.1.0indirect
npmentities4.5.0indirect
npmentities6.0.1indirect
npmentities7.0.1indirect
npmes-abstract1.24.0indirect
npmes-define-property1.0.1indirect
npmes-errors1.3.0indirect
npmes-iterator-helpers1.2.1indirect
npmes-object-atoms1.1.1indirect
npmes-set-tostringtag2.1.0indirect
npmes-shim-unscopables1.1.0indirect
npmes-to-primitive1.3.0indirect
npmesbuild0.25.10indirect
npmescape-string-regexp1.0.5indirect
npmescape-string-regexp4.0.0indirect
npmeslint8.57.1indirect
npmeslint-config-next14.2.3indirect
npmeslint-import-resolver-node0.3.9indirect
npmeslint-import-resolver-typescript3.10.1indirect
npmeslint-module-utils2.12.1indirect
npmeslint-plugin-import2.32.0indirect
npmeslint-plugin-jsx-a11y6.10.2indirect
npmeslint-plugin-react7.37.5indirect
npmeslint-plugin-react-hooks5.0.0-canary-7118f5dd7-20230705indirect
npmeslint-scope7.2.2indirect
npmeslint-visitor-keys3.4.3indirect
npmespree9.6.1indirect
npmesquery1.6.0indirect
npmesrecurse4.3.0indirect
npmestraverse5.3.0indirect
npmesutils2.0.3indirect
npmexpand-template2.0.3indirect
npmfast-deep-equal3.1.3indirect
npmfast-glob3.3.3indirect
npmfast-json-stable-stringify2.1.0indirect
npmfast-levenshtein2.0.6indirect
npmfastq1.19.1indirect
npmfd-slicer1.1.0indirect
npmfdir6.5.0indirect
npmfile-entry-cache6.0.1indirect
npmfill-range7.1.1indirect
npmfind-up5.0.0indirect
npmflat-cache3.2.0indirect
npmflatted3.3.3indirect
npmfollow-redirects1.15.11indirect
npmfor-each0.3.5indirect
npmforeground-child3.3.1indirect
npmform-data4.0.4indirect
npmform-data4.0.5indirect
npmfs-constants1.0.0indirect
npmfs.realpath1.0.0indirect
npmfsevents2.3.3indirect
npmfunction-bind1.1.2indirect
npmfunction.prototype.name1.1.8indirect
npmfunctions-have-names1.2.3indirect
npmgenerator-function2.0.1indirect
npmget-intrinsic1.3.0indirect
npmget-nonce1.0.1indirect
npmget-proto1.0.1indirect
npmget-symbol-description1.1.0indirect
npmget-tsconfig4.12.0indirect
npmgithub-from-package0.0.0indirect
npmglob10.3.10indirect
npmglob7.2.3indirect
npmglob-parent5.1.2indirect
npmglob-parent6.0.2indirect
npmglobals13.24.0indirect
npmglobalthis1.0.4indirect
npmglobby11.1.0indirect
npmgopd1.2.0indirect
npmgraceful-fs4.2.11indirect
npmgraphemer1.4.0indirect
npmhas-bigints1.1.0indirect
npmhas-flag3.0.0indirect
npmhas-flag4.0.0indirect
npmhas-property-descriptors1.0.2indirect
npmhas-proto1.2.0indirect
npmhas-symbols1.1.0indirect
npmhas-tostringtag1.0.2indirect
npmhasown2.0.2indirect
npmhosted-git-info4.1.0indirect
npmhtmlparser210.1.0indirect
npmhttp-proxy-agent7.0.2indirect
npmhttps-proxy-agent7.0.6indirect
npmiconv-lite0.6.3indirect
npmieee7541.2.1indirect
npmignore5.3.2indirect
npmimport-fresh3.3.1indirect
npmimurmurhash0.1.4indirect
npminflight1.0.6indirect
npminherits2.0.4indirect
npmini1.3.8indirect
npminternal-slot1.1.0indirect
npmis-array-buffer3.0.5indirect
npmis-async-function2.1.1indirect
npmis-bigint1.1.0indirect
npmis-binary-path2.1.0indirect
npmis-boolean-object1.2.2indirect
npmis-bun-module2.0.0indirect
npmis-callable1.2.7indirect
npmis-core-module2.16.1indirect
npmis-data-view1.0.2indirect
npmis-date-object1.1.0indirect
npmis-docker3.0.0indirect
npmis-extglob2.1.1indirect
npmis-finalizationregistry1.1.1indirect
npmis-fullwidth-code-point3.0.0indirect
npmis-generator-function1.1.2indirect
npmis-glob4.0.3indirect
npmis-inside-container1.0.0indirect
npmis-map2.0.3indirect
npmis-negative-zero2.0.3indirect
npmis-number7.0.0indirect
npmis-number-object1.1.1indirect
npmis-path-inside3.0.3indirect
npmis-regex1.2.1indirect
npmis-set2.0.3indirect
npmis-shared-array-buffer1.0.4indirect
npmis-string1.1.1indirect
npmis-symbol1.1.1indirect
npmis-typed-array1.1.15indirect
npmis-weakmap2.0.2indirect
npmis-weakref1.1.1indirect
npmis-weakset2.0.4indirect
npmis-wsl3.1.1indirect
npmisarray2.0.5indirect
npmisexe2.0.0indirect
npmiterator.prototype1.1.5indirect
npmjackspeak2.3.6indirect
npmjiti1.21.7indirect
npmjs-tokens4.0.0indirect
npmjs-yaml4.1.0indirect
npmjson-buffer3.0.1indirect
npmjson-schema-traverse0.4.1indirect
npmjson-stable-stringify-without-jsonify1.0.1indirect
npmjson51.0.2indirect
npmjsonc-parser3.3.1indirect
npmjsonwebtoken9.0.3indirect
npmjsx-ast-utils3.3.5indirect
npmjwa2.0.1indirect
npmjws4.0.1indirect
npmkeytar7.9.0indirect
npmkeyv4.5.4indirect
npmlanguage-subtag-registry0.3.23indirect
npmlanguage-tags1.0.9indirect
npmleven3.1.0indirect
npmlevn0.4.1indirect
npmlilconfig3.1.3indirect
npmlines-and-columns1.2.4indirect
npmlinkify-it3.0.3indirect
npmlocate-path6.0.0indirect
npmlodash.includes4.3.0indirect
npmlodash.isboolean3.0.3indirect
npmlodash.isinteger4.0.4indirect
npmlodash.isnumber3.0.3indirect
npmlodash.isplainobject4.0.6indirect
npmlodash.isstring4.0.1indirect
npmlodash.merge4.6.2indirect
npmlodash.once4.1.1indirect
npmloose-envify1.4.0indirect
npmlru-cache10.4.3indirect
npmlru-cache6.0.0indirect
npmmarkdown-it12.3.2indirect
npmmath-intrinsics1.1.0indirect
npmmdurl1.0.1indirect
npmmerge21.4.1indirect
npmmicromatch4.0.8indirect
npmmime1.6.0indirect
npmmime-db1.52.0indirect
npmmime-types2.1.35indirect
npmmimic-response3.1.0indirect
npmminimatch3.1.2indirect
npmminimatch3.1.5indirect
npmminimatch9.0.3indirect
npmminimatch9.0.5indirect
npmminimist1.2.8indirect
npmminipass7.1.2indirect
npmmkdirp-classic0.5.3indirect
npmms2.1.3indirect
npmmute-stream0.0.8indirect
npmmz2.7.0indirect
npmnanoid3.3.11indirect
npmnapi-build-utils2.0.0indirect
npmnapi-postinstall0.3.4indirect
npmnatural-compare1.4.0indirect
npmnode-abi3.89.0indirect
npmnode-addon-api4.3.0indirect
npmnormalize-path3.0.0indirect
npmnth-check2.1.1indirect
npmobject-assign4.1.1indirect
npmobject-hash3.0.0indirect
npmobject-inspect1.13.4indirect
npmobject-keys1.1.1indirect
npmobject.assign4.1.7indirect
npmobject.entries1.1.9indirect
npmobject.fromentries2.0.8indirect
npmobject.groupby1.0.3indirect
npmobject.values1.2.1indirect
npmonce1.4.0indirect
npmopen10.2.0indirect
npmoptionator0.9.4indirect
npmown-keys1.0.1indirect
npmp-limit3.1.0indirect
npmp-locate5.0.0indirect
npmparent-module1.0.1indirect
npmparse-semver1.1.1indirect
npmparse57.3.0indirect
npmparse5-htmlparser2-tree-adapter7.1.0indirect
npmparse5-parser-stream7.1.2indirect
npmpath-exists4.0.0indirect
npmpath-is-absolute1.0.1indirect
npmpath-key3.1.1indirect
npmpath-parse1.0.7indirect
npmpath-scurry1.11.1indirect
npmpath-type4.0.0indirect
npmpend1.2.0indirect
npmpicocolors1.1.1indirect
npmpicomatch2.3.1indirect
npmpicomatch4.0.3indirect
npmpify2.3.0indirect
npmpirates4.0.7indirect
npmpossible-typed-array-names1.1.0indirect
npmpostcss8.4.31indirect
npmpostcss8.5.6indirect
npmpostcss-import15.1.0indirect
npmpostcss-js4.1.0indirect
npmpostcss-load-config6.0.1indirect
npmpostcss-nested6.2.0indirect
npmpostcss-selector-parser6.1.2indirect
npmpostcss-value-parser4.2.0indirect
npmprebuild-install7.1.3indirect
npmprelude-ls1.2.1indirect
npmprop-types15.8.1indirect
npmproxy-from-env1.1.0indirect
npmpump3.0.4indirect
npmpunycode2.3.1indirect
npmqs6.15.0indirect
npmqueue-microtask1.2.3indirect
npmrc1.2.8indirect
npmreact-is16.13.1indirect
npmreact-remove-scroll2.7.1indirect
npmreact-remove-scroll-bar2.3.8indirect
npmreact-style-singleton2.2.3indirect
npmread1.0.7indirect
npmread-cache1.0.0indirect
npmreadable-stream3.6.2indirect
npmreaddirp3.6.0indirect
npmreflect.getprototypeof1.0.10indirect
npmregexp.prototype.flags1.5.4indirect
npmresolve1.22.10indirect
npmresolve2.0.0-next.5indirect
npmresolve-from4.0.0indirect
npmresolve-pkg-maps1.0.0indirect
npmreusify1.1.0indirect
npmrimraf3.0.2indirect
npmrun-applescript7.1.0indirect
npmrun-parallel1.2.0indirect
npmsafe-array-concat1.1.3indirect
npmsafe-buffer5.2.1indirect
npmsafe-push-apply1.0.0indirect
npmsafe-regex-test1.1.0indirect
npmsafer-buffer2.1.2indirect
npmsax1.6.0indirect
npmscheduler0.23.2indirect
npmsemver5.7.2indirect
npmsemver6.3.1indirect
npmsemver7.7.3indirect
npmsemver7.7.4indirect
npmset-function-length1.2.2indirect
npmset-function-name2.0.2indirect
npmset-proto1.0.0indirect
npmshebang-command2.0.0indirect
npmshebang-regex3.0.0indirect
npmside-channel1.1.0indirect
npmside-channel-list1.0.0indirect
npmside-channel-map1.0.1indirect
npmside-channel-weakmap1.0.2indirect
npmsignal-exit4.1.0indirect
npmsimple-concat1.0.1indirect
npmsimple-get4.0.1indirect
npmslash3.0.0indirect
npmsource-map-js1.2.1indirect
npmstable-hash0.0.5indirect
npmstop-iteration-iterator1.1.0indirect
npmstreamsearch1.1.0indirect
npmstring-width4.2.3indirect
npmstring-width5.1.2indirect
npmstring.prototype.includes2.0.1indirect
npmstring.prototype.matchall4.0.12indirect
npmstring.prototype.repeat1.0.0indirect
npmstring.prototype.trim1.2.10indirect
npmstring.prototype.trimend1.0.9indirect
npmstring.prototype.trimstart1.0.8indirect
npmstring_decoder1.3.0indirect
npmstrip-ansi6.0.1indirect
npmstrip-ansi7.1.2indirect
npmstrip-bom3.0.0indirect
npmstrip-json-comments2.0.1indirect
npmstrip-json-comments3.1.1indirect
npmstyled-jsx5.1.1indirect
npmsucrase3.35.0indirect
npmsupports-color5.5.0indirect
npmsupports-color7.2.0indirect
npmsupports-preserve-symlinks-flag1.0.0indirect
npmtailwindcss3.4.18indirect
npmtar-fs2.1.4indirect
npmtar-stream2.2.0indirect
npmtext-table0.2.0indirect
npmthenify3.3.1indirect
npmthenify-all1.6.0indirect
npmtinyglobby0.2.15indirect
npmtmp0.2.5indirect
npmto-regex-range5.0.1indirect
npmts-api-utils1.4.3indirect
npmts-interface-checker0.1.13indirect
npmtsconfig-paths3.15.0indirect
npmtslib2.8.1indirect
npmtsx4.20.6indirect
npmtunnel0.0.6indirect
npmtunnel-agent0.6.0indirect
npmtype-check0.4.0indirect
npmtype-fest0.20.2indirect
npmtyped-array-buffer1.0.3indirect
npmtyped-array-byte-length1.0.3indirect
npmtyped-array-byte-offset1.0.4indirect
npmtyped-array-length1.0.7indirect
npmtyped-rest-client1.8.11indirect
npmtypescript5.9.3indirect
npmuc.micro1.0.6indirect
npmunbox-primitive1.1.0indirect
npmunderscore1.13.8indirect
npmundici7.24.4indirect
npmundici-types6.21.0indirect
npmunrs-resolver1.11.1indirect
npmuri-js4.4.1indirect
npmurl-join4.0.1indirect
npmuse-callback-ref1.3.3indirect
npmuse-sidecar1.1.3indirect
npmuse-sync-external-store1.6.0indirect
npmutil-deprecate1.0.2indirect
npmuuid8.3.2indirect
npmwhatwg-encoding3.1.1indirect
npmwhatwg-mimetype4.0.0indirect
npmwhich2.0.2indirect
npmwhich-boxed-primitive1.1.1indirect
npmwhich-builtin-type1.2.1indirect
npmwhich-collection1.0.2indirect
npmwhich-typed-array1.1.19indirect
npmword-wrap1.2.5indirect
npmwrap-ansi7.0.0indirect
npmwrap-ansi8.1.0indirect
npmwrappy1.0.2indirect
npmwsl-utils0.1.0indirect
npmxml2js0.5.0indirect
npmxmlbuilder11.0.1indirect
npmyallist4.0.0indirect
npmyauzl2.10.0indirect
npmyazl2.5.1indirect
npmyocto-queue0.1.0indirect
PyPIaiosqliteindirect
PyPIalembicindirect
PyPIargon2-cffiindirect
PyPIarqindirect
PyPIasyncpgindirect
PyPIclickindirect
PyPIcryptographyindirect
PyPIfakeredisindirect
PyPIfastapiindirect
PyPIfreezegunindirect
PyPImakoindirect
PyPImkdocs-materialindirect
PyPImkdocs-minify-pluginindirect
PyPIopenaiindirect
PyPIpasslibindirect
PyPIpyjwtindirect
PyPIpymdown-extensionsindirect
PyPIpytestindirect
PyPIpytest-asyncioindirect
PyPIpytest-covindirect
PyPIpython-joseindirect
PyPIpython-multipartindirect
PyPIredisindirect
PyPIresponsesindirect
PyPIsetuptoolsindirect
PyPIslowapiindirect
PyPIsqlalchemyindirect
PyPIstarletteindirect
PyPIuvicornindirect
Dependency advisories 0

Installing pypi:license-compliance-checker@2.0.0 pulls in 69 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": [
        "ai-governance",
        "cli",
        "eu-ai-act",
        "gpai",
        "license-compliance",
        "open-source",
        "python",
        "responsible-ai",
        "article-53",
        "ai-compliance",
        "ai-safety",
        "apache-2-0",
        "cyclonedx",
        "huggingface",
        "model-cards",
        "sbom",
        "spdx",
        "aiexponent"
      ],
      "is_fork": false,
      "size_kb": 61583,
      "has_wiki": false,
      "homepage": "https://aiexponent.com/docs/license-compliance-checker",
      "languages": {
        "CSS": 1594,
        "Mako": 635,
        "Shell": 13509,
        "Python": 1396427,
        "PLpgSQL": 10692,
        "Dockerfile": 2900,
        "JavaScript": 636,
        "TypeScript": 442430,
        "Go Template": 368,
        "Open Policy Agent": 6604
      },
      "pushed_at": "2026-07-19T16:49:02Z",
      "created_at": "2025-10-08T07:30:13Z",
      "owner_type": "Organization",
      "updated_at": "2026-07-19T16:49:02Z",
      "description": "License Compliance Checker — Multi-ecosystem license + AI model scanner for EU AI Act Article 53 GPAI compliance. SBOM, SARIF, training-data risk. Apache 2.0.",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "Apache-2.0",
      "default_branch": "main",
      "license_spdx_raw": "Apache-2.0",
      "primary_language": "Python",
      "significant_languages": [
        "Python",
        "TypeScript"
      ]
    },
    "owner": {
      "blog": "https://aiexponent.com",
      "name": "AiExponent",
      "type": "Organization",
      "login": "aiexponenthq",
      "company": null,
      "location": "United States",
      "followers": 1,
      "avatar_url": "https://avatars.githubusercontent.com/u/274583388?v=4",
      "created_at": "2026-04-08T16:51:43Z",
      "is_verified": null,
      "public_repos": 6,
      "account_age_days": 109
    },
    "license": {
      "state": "standard",
      "spdx_id": "Apache-2.0",
      "raw_spdx": "Apache-2.0",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "v2.0.0",
          "kind": "major",
          "published_at": "2026-07-19T13:02:28Z"
        },
        {
          "tag": "v1.1.0",
          "kind": "minor",
          "published_at": "2026-04-12T09:42:58Z"
        },
        {
          "tag": "v1.0.0",
          "kind": "major",
          "published_at": "2026-02-02T18:52:47Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "4f09e7b8e96511b14264170ab9243069f33006b2",
          "body": "…nse-detection\n\nfix(resolution): detect the primary license, not the first keyword",
          "is_bot": false,
          "headline": "Merge pull request #20 from aiexponenthq/fix/filesystem-resolver-lice…",
          "author_name": "Ajay Pundhir",
          "author_login": "apundhir",
          "committed_at": "2026-07-19T16:48:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "caf1e7bede4744d0423cce8171060443e0f27347",
          "body": "The filesystem resolver identified a LICENSE file's license by scanning its\ntext for keywords and returning the first one in a fixed list, using loose\nsubstring matching. Two failures resulted:\n\n- An LGPL file was reported as GPL, because 'gpl' matched inside 'lgpl'. GPL\n  and LGPL carry very differ\n[…]\n; word\nboundaries hold; the common license families are detected; the SPDX header wins;\nand text with no license resolves to UNKNOWN.\n\nVerified: 743 passed, 4 skipped, 0 failed; ruff check src/ clean.",
          "is_bot": false,
          "headline": "fix(resolution): detect the primary license, not the first keyword",
          "author_name": "Ajay Pundhir",
          "author_login": "apundhir",
          "committed_at": "2026-07-19T16:43:16Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "65cc9231df17d0838a7429760e29967074030c5d",
          "body": "chore(deploy): make the k8s Secret a clearly-labelled example",
          "is_bot": false,
          "headline": "Merge pull request #19 from aiexponenthq/chore/secret-yaml-example",
          "author_name": "Ajay Pundhir",
          "author_login": "apundhir",
          "committed_at": "2026-07-19T16:27:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7978e9fff35dc6be6cc2e050378696b928e37cc0",
          "body": "deploy/k8s/secret.yaml held empty placeholders but read as a real manifest.\nRename it to secret.example.yaml with a header explaining it is a template, and\nignore deploy/k8s/secret.yaml so a filled-in copy is never committed. No\nmanifest, script, or doc referenced the file by name, so nothing breaks.",
          "is_bot": false,
          "headline": "chore(deploy): make the k8s Secret a clearly-labelled example",
          "author_name": "Ajay Pundhir",
          "author_login": "apundhir",
          "committed_at": "2026-07-19T16:20:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "eaa676b0cdb364af646eb63271a303c957c76788",
          "body": "…tras\n\nfix(ci): install all extras in the publish workflow test job",
          "is_bot": false,
          "headline": "Merge pull request #17 from aiexponenthq/fix/publish-workflow-test-ex…",
          "author_name": "Ajay Pundhir",
          "author_login": "apundhir",
          "committed_at": "2026-07-19T13:08:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "758ca5417e4b4c3dd76e418c10fc644cc44038e1",
          "body": "After the 2.0.0 extras split, `.[test]` no longer pulls the server, database,\nand AI dependencies, so the publish workflow's advisory test job failed on\nimport errors for fastapi and sqlalchemy. Install `.[all,test]` and match the\nmain CI invocation (ignore the performance suite, set the test env vars) so the\ngate exercises the full package and passes.\n\nVerified: the same suite is green in ci.yml with these settings (736 passed,\n4 skipped).",
          "is_bot": false,
          "headline": "fix(ci): install all extras in the publish workflow test job",
          "author_name": "Ajay Pundhir",
          "author_login": "apundhir",
          "committed_at": "2026-07-19T13:01:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a43ae1f68a090c1593056460478d82229a3dea38",
          "body": "chore(release): prepare 2.0.0 with verified docs and changelog",
          "is_bot": false,
          "headline": "Merge pull request #16 from aiexponenthq/chore/release-v2.0.0",
          "author_name": "Ajay Pundhir",
          "author_login": "apundhir",
          "committed_at": "2026-07-19T12:53:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5df60328a24b66fe7b2e52938290860a9d20868c",
          "body": "Prepares the 2.0.0 release that bundles the seven-phase release-readiness\ncleanup. Major version because several merged changes are breaking.\n\nVersion\n- Bump to 2.0.0 in pyproject and the __init__ fallback.\n\nChangelog\n- Add a 2.0.0 entry covering the breaking changes (lean core install with\n  server\n[…]\nPAI guidance and the EU AI Act Article 53 text.\n\nTest results\n- pytest --ignore=tests/performance: 736 passed, 4 skipped, 0 failed.\n- ruff check src/: all checks passed.\n- lcc --version reports 2.0.0.",
          "is_bot": false,
          "headline": "chore(release): prepare 2.0.0 with verified docs and changelog",
          "author_name": "Ajay Pundhir",
          "author_login": "apundhir",
          "committed_at": "2026-07-19T12:44:05Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c47a1085826157aa2d3ab199087f2b0be10b07fb",
          "body": "chore(docs): fix README command/format claims, remove dead click CLI",
          "is_bot": false,
          "headline": "Merge pull request #15 from aiexponenthq/chore/docs-and-deadcode",
          "author_name": "Ajay Pundhir",
          "author_login": "apundhir",
          "committed_at": "2026-07-19T11:08:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "566c0f7aa5815d4674e1267910df34572e4647c6",
          "body": "Phase 7 of the release-readiness cleanup. Documentation and dead-code hygiene.\n\nREADME accuracy (H7)\n- `lcc sbom generate` and `lcc sbom sign` take the file as a positional\n  argument, not `--input`. Correct the four examples that used the flag.\n- Remove the SARIF output claim. Neither the CLI nor t\n[…]\nnce: 736 passed, 4 skipped, 0 failed.\n- ruff check src/: all checks passed.\n- Verified: every corrected README command matches the actual argparse\n  definition; no click import remains in the package.",
          "is_bot": false,
          "headline": "chore(docs): fix README command/format claims, remove dead click CLI",
          "author_name": "Ajay Pundhir",
          "author_login": "apundhir",
          "committed_at": "2026-07-19T10:58:40Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "153651a895efb6b9494c37965e137a0ad7978883",
          "body": "feat(cli): add Article 53 assess and compliance-pack commands",
          "is_bot": false,
          "headline": "Merge pull request #14 from aiexponenthq/feat/article53-cli",
          "author_name": "Ajay Pundhir",
          "author_login": "apundhir",
          "committed_at": "2026-07-19T10:52:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7c12db5dfda6d02d444619303bdf37afbd6bd717",
          "body": "Phase 6 of the release-readiness cleanup. Closes findings H5 and D2.\n\nCLI commands (H5)\n- `lcc assess <path>`: run the EU AI Act (Article 53) assessment on a scan\n  result JSON or a project directory. Prints a summary, or writes a JSON or\n  HTML report with --output.\n- `lcc compliance-pack <path>`: \n[…]\nis phase).\n- ruff check src/: all checks passed.\n- Verified locally: `lcc assess` reports a Llama 3.1 model as non-compliant for\n  Article 53, and `lcc compliance-pack` writes the four-file directory.",
          "is_bot": false,
          "headline": "feat(cli): add Article 53 assess and compliance-pack commands",
          "author_name": "Ajay Pundhir",
          "author_login": "apundhir",
          "committed_at": "2026-07-19T10:48:53Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a9ca6408e55127f7b5fef5b946f1b6d744ffce79",
          "body": "chore(packaging): lean core install, optional server/ai extras, CVE floors",
          "is_bot": false,
          "headline": "Merge pull request #13 from aiexponenthq/fix/packaging-and-release",
          "author_name": "Ajay Pundhir",
          "author_login": "apundhir",
          "committed_at": "2026-07-19T10:41:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "41add75016508de0c063c26080d35fd60e9d4319",
          "body": "…loors\n\nPhase 5 of the release-readiness cleanup. Closes findings H4, M1, M3, and H6.\n\nDependency layout (M1, H4)\n- Split the heavy install into a lean core plus optional extras. The core is\n  the scanner CLI, detection, resolution, and SBOM. The REST API, database, job\n  queue, and authentication m\n[…]\nmy/arq/openai/redis and runs `lcc scan` successfully;\n  `lcc server` reports the missing extra gracefully. pip-audit against the\n  installed dependencies is clean apart from the waived ecdsa advisory.",
          "is_bot": false,
          "headline": "chore(packaging): lean core install, optional server/ai extras, CVE f…",
          "author_name": "Ajay Pundhir",
          "author_login": "apundhir",
          "committed_at": "2026-07-19T10:38:37Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "dfa67c84cb6b8f61c70988a4665e3fe162227fcb",
          "body": "fix(scan): correct AI-model license attribution, offline leak, policy hard-fail",
          "is_bot": false,
          "headline": "Merge pull request #12 from aiexponenthq/fix/scan-verdict-correctness",
          "author_name": "Ajay Pundhir",
          "author_login": "apundhir",
          "committed_at": "2026-07-19T10:14:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0d1f4fe6e1737c9a312aefeab5240cd6b04c5537",
          "body": "…often policy failure\n\nPhase 4 of the release-readiness cleanup. Closes findings C4, H1, and M5.\n\nAI model license attribution (C4)\n- The HuggingFace detectors recorded a model's declared license in\n  metadata[\"license_from_card\"], but no resolver turned it into evidence, so a\n  model with a clearly\n[…]\nssed.\n- Verified locally: a Llama 3.1 model with a stray permissive LICENSE now\n  resolves to LicenseRef-llama-3.1 at 0.95 confidence and reports RESTRICTED,\n  instead of UNKNOWN or a permissive pass.",
          "is_bot": false,
          "headline": "fix(scan): attribute AI model licenses, stop offline network calls, s…",
          "author_name": "Ajay Pundhir",
          "author_login": "apundhir",
          "committed_at": "2026-07-19T10:09:43Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "1529734630898080268797d40ab3e3d933d43c3e",
          "body": "fix(auth,api): harden auth, server bind, and clone/scan inputs",
          "is_bot": false,
          "headline": "Merge pull request #11 from aiexponenthq/fix/auth-server-hardening",
          "author_name": "Ajay Pundhir",
          "author_login": "apundhir",
          "committed_at": "2026-07-19T09:46:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f0136c6d82c28d0fdbc9df563889506e136bed06",
          "body": "Phase 3 of the release-readiness cleanup. Closes findings C3, H2, H3, and M6.\n\nAuthentication\n- auth/repository.py: stop seeding a fixed admin/admin credential. The initial\n  admin password now comes from LCC_ADMIN_PASSWORD; when unset a random password\n  is generated and logged once, so no build sh\n[…]\ns the API rejects a local path when the flag is off.\n\nTest results\n- pytest --ignore=tests/performance: 713 passed, 4 skipped, 0 failed\n  (694 before this phase).\n- ruff check src/: all checks passed.",
          "is_bot": false,
          "headline": "fix(auth,api): harden auth, server bind, and clone/scan inputs",
          "author_name": "Ajay Pundhir",
          "author_login": "apundhir",
          "committed_at": "2026-07-19T09:33:50Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "f46a6ac14af9abaf31db251c92b5dd9b05df696e",
          "body": "fix(sbom,cli): restore crashed sbom and report commands, re-enable SBOM validator",
          "is_bot": false,
          "headline": "Merge pull request #10 from aiexponenthq/fix/sbom-report-cli-crash",
          "author_name": "Ajay Pundhir",
          "author_login": "apundhir",
          "committed_at": "2026-07-19T09:02:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6514d7683ce35fd2bc960ae467b33940fbe16382",
          "body": "…OM validator\n\nThree shipped CLI commands crashed before doing any work, and the SBOM\nvalidator was disabled during an earlier library bump. This is Phase 2 of the\nrelease-readiness cleanup (findings C1, C2, M2).\n\nCLI dispatch fixes\n- cli/main.py: the six `lcc sbom` handlers were defined as (args, c\n[…]\n\n  (689 before, plus the 5 new smoke tests).\n- ruff check src/: all checks passed.\n- Verified locally: scan-to-generate-to-validate round trip returns valid=True\n  for both CycloneDX 1.5 and SPDX 2.3.",
          "is_bot": false,
          "headline": "fix(sbom,cli): restore crashed sbom and report commands, re-enable SB…",
          "author_name": "Ajay Pundhir",
          "author_login": "apundhir",
          "committed_at": "2026-07-19T08:52:24Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "7aeca3248a5a4621975a176cfd11a60d1fa7dbeb",
          "body": "fix(ci,api): enforce the test suite in CI and fix the DB schema gap it hid",
          "is_bot": false,
          "headline": "Merge pull request #9 from aiexponenthq/fix/test-suite-ci-enforcement",
          "author_name": "Ajay Pundhir",
          "author_login": "apundhir",
          "committed_at": "2026-07-19T08:25:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "764bbb612414760c4a8c657f2908372602c7e655",
          "body": "…t hid\n\nCI marked the pytest step `continue-on-error: true`, which hid 56 failing\nintegration tests. Removing the mask exposed one real product gap plus a\nset of stale test expectations; both are fixed here so the suite is green\nand CI now enforces it.\n\nProduct fixes\n- database/session.py: add resol\n[…]\n6 passed, 56 failed (hidden by continue-on-error).\n- After:  689 passed, 4 skipped, 0 failed\n  (`pytest --ignore=tests/performance`, LCC_LLM_PROVIDER=disabled).\n- `ruff check src/`: all checks passed.",
          "is_bot": false,
          "headline": "fix(ci,api): enforce the test suite in CI and fix the DB schema gap i…",
          "author_name": "Ajay Pundhir",
          "author_login": "apundhir",
          "committed_at": "2026-07-19T05:17:36Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "75a85281298dccc25cf11d867e82ca9bab3767e1",
          "body": "…assets\n\nchore(brand): remove retired split-A assets",
          "is_bot": false,
          "headline": "Merge pull request #8 from aiexponenthq/chore/remove-stale-old-brand-…",
          "author_name": "Ajay Pundhir",
          "author_login": "apundhir",
          "committed_at": "2026-06-12T07:17:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1fc09a6c544e9e0033f5b44700fcc57233419558",
          "body": "- .github/brand/icon-light.png — old split-A icon (April), unreferenced orphan\n  superseded by the caret rebrand; the canonical icon lives in the brand\n  platform (~/Code/aiexponent-brand) and is set as the GitHub social preview.\n- social-preview.png — duplicate of .github/brand/og.png (identical bytes)",
          "is_bot": false,
          "headline": "chore(brand): remove retired split-A assets",
          "author_name": "Ajay Pundhir",
          "author_login": "apundhir",
          "committed_at": "2026-06-12T06:52:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b652a8ad8730b57fce2db6204a138f02dcb47132",
          "body": "chore(brand): OG card v2 — install line + truthful status token",
          "is_bot": false,
          "headline": "Merge pull request #7 from aiexponenthq/feat/og-cards-v2",
          "author_name": "Ajay Pundhir",
          "author_login": "apundhir",
          "committed_at": "2026-06-11T20:27:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9dedd8565cb79a2ade15a95daa179daabddae94c",
          "body": "…us token\n\nAdds the developer payload ($ pip install) and a per-tool regulatory status\ncaption: ENFORCED for live obligations, HIGH-RISK · PROVISIONAL 2 DEC 2027 for\nthe deferred Art. 9/15 dates (not labelled enforced). Same caret/teal/Space\nGrotesk system. Source: aiexponent-brand/scripts/generate_assets.py.",
          "is_bot": false,
          "headline": "chore(brand): OG card v2 — add install line + truthful EU AI Act stat…",
          "author_name": "Ajay Pundhir",
          "author_login": "apundhir",
          "committed_at": "2026-06-11T20:18:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9a75b7cdead5f5543e8afa05146ac26c8f84c2f0",
          "body": "feat(brand): refresh to caret identity (2026-06-11 rebrand)",
          "is_bot": false,
          "headline": "Merge pull request #6 from aiexponenthq/feat/brand-refresh-caret",
          "author_name": "Ajay Pundhir",
          "author_login": "apundhir",
          "committed_at": "2026-06-11T19:43:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5058a15c9e6ca3257fcf27f907c3abe21b683e83",
          "body": "Apply the 2026-06-11 AiExponent rebrand assets:\n- .github/brand/logo-full-light.png → new caret lockup README banner\n  (retires the split-A mark; README path unchanged, zero copy churn)\n- .github/brand/og.png → per-tool 1200x630 social-preview card\n  (tool name + EU AI Act article, ink-teal cream system)\n\nAssets generated by aiexponent-brand/scripts/generate_assets.py\n(colorway + text-overflow gates pass). No code or copy changes.",
          "is_bot": false,
          "headline": "chore(brand): refresh to caret identity (\"One mark. Two accents.\")",
          "author_name": "Ajay Pundhir",
          "author_login": "apundhir",
          "committed_at": "2026-06-11T19:24:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e70efd040f42aa8430b1d44d744c3da918d11fc1",
          "body": "Aligns the LCC badge row with the cross-repo Phase C standardization:\nPyPI · CI · License · Python · EU AI Act Article · telemetry-zero.\n\nThe privacy claim was already documented elsewhere in the README; this\nsurfaces it as a first-screen trust signal alongside the other 5\nbadges. No behavioural change — LCC has been zero-telemetry since\nv1.0; the badge just makes it visible at a glance.",
          "is_bot": false,
          "headline": "docs(readme): add telemetry-zero privacy badge to hero row",
          "author_name": "Ajay Pundhir",
          "author_login": "apundhir",
          "committed_at": "2026-05-02T16:11:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f93a8e6a1f0dd338084773a9cf906bd09b41bdc9",
          "body": "…ion to README\n\nCI:\n- actions/checkout@v4 → @v6 (Node.js 24 runtime)\n- actions/setup-python@v5 → @v6\n- actions/upload-artifact@v4 → @v7\n- actions/download-artifact@v4 → @v8\n- actions/setup-node@v4 → @v6\nCloses the Sep 2026 GitHub-Actions Node.js 20 deprecation deadline.\n\nREADME:\n- Added explicit Art\n[…]\n silent on this. Note: GPAI fines are\n  Commission-imposed under Art. 101 — distinct from the Art. 99 fines\n  imposed by member-state market-surveillance authorities for high-risk\n  system violations.",
          "is_bot": false,
          "headline": "ci+docs: bump GitHub Actions to Node.js 24; add Art. 101 penalty ment…",
          "author_name": "Ajay Pundhir",
          "author_login": "apundhir",
          "committed_at": "2026-05-02T13:45:43Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "284f2572da981819cccebb6767c074ed717d81a7",
          "body": "Per the AI Exponent LLC organizational rule (rule 1 in\nvibe_skills non-negotiables): PRDs, HLDs, LLDs, design specs,\nroadmaps, implementation plans, and similar product-building\nartifacts must not live in public repositories, OSS distributions,\nor PyPI/npm tarballs.\n\nThis commit:\n  - git rm --cached\n[…]\nrd.\n\nNote: prior commits in this repo's history still contain these\nfiles. A history rewrite (git filter-repo) is a separate decision\nand will be handled deliberately if and when the owner authorizes.",
          "is_bot": false,
          "headline": "chore: untrack internal product-building docs from public repo",
          "author_name": "Ajay Pundhir",
          "author_login": "apundhir",
          "committed_at": "2026-04-28T18:41:08Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ebc91b7b8cd169a76b473e57c708fba3403e22dc",
          "body": "The registered company name has a space — \"AI Exponent LLC\", not\n\"AiExponent LLC\". Brand surface (aiexponent.com) keeps the no-space\nform, but legal-entity strings in licenses, README bylines, and\ncontact lines must match the registered name.\n\nNo code change.",
          "is_bot": false,
          "headline": "chore: align legal entity name to \"AI Exponent LLC\" in README",
          "author_name": "Ajay Pundhir",
          "author_login": "apundhir",
          "committed_at": "2026-04-28T18:40:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1869d86d9b60dfb1df0ae36a7a23f9b3fad12b0d",
          "body": "CLAUDE.md contains contributor-specific Claude Code workflow (agent\nrouting, global-instruction inheritance, local paths). It should not\nappear in a public repo — project conventions belong in README /\nCONTRIBUTING instead. Keeps the file locally while preventing\naccidental commits.",
          "is_bot": false,
          "headline": "chore: gitignore CLAUDE.md (personal Claude Code artifact)",
          "author_name": "Ajay Pundhir",
          "author_login": "apundhir",
          "committed_at": "2026-04-20T05:41:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dd7334915f4fd125cab9ec57d48a900c9b6579e9",
          "body": "Add centred v4 full-lockup header with tagline; swap legacy blue/gold\nshields for deep teal (#0D5463) to match aiexponent.com.",
          "is_bot": false,
          "headline": "docs(readme): apply brand kit v4 — two-tone A + teal badges",
          "author_name": "Ajay Pundhir",
          "author_login": "apundhir",
          "committed_at": "2026-04-15T18:01:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fe1e79e475c70a34998a80f72ee1da30e07e81d4",
          "body": null,
          "is_bot": false,
          "headline": "docs: rewrite README with Mermaid diagrams and AiExponent branding",
          "author_name": "Ajay Pundhir",
          "author_login": "apundhir",
          "committed_at": "2026-04-12T18:26:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b05cad0e843669b6fe4adbd1c8bde2a7e29f92b9",
          "body": "…ANGELOG\n\n- Replace all github.com/apundhir/ URLs with github.com/aiexponenthq/ across\n  README.md (6 occurrences), CONTRIBUTING.md (8 occurrences), CHANGELOG.md (3)\n  and pyproject.toml project URLs\n- Bump version from 1.0.0 to 1.1.0 in pyproject.toml\n- Add v1.1.0 CHANGELOG entry: security fixes, a\n[…]\n Add v1.0.0 CHANGELOG entry: initial production release summary\n- Remove 'Planned' items already shipped (PostgreSQL, Redis, Prometheus)\n- Fix apundhir.github.io doc site URL to aiexponenthq.github.io",
          "is_bot": false,
          "headline": "docs: update all references to aiexponenthq org, bump version, add CH…",
          "author_name": "Ajay Pundhir",
          "author_login": "apundhir",
          "committed_at": "2026-04-12T10:04:33Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "b48d09cf0f352e84080792541cb6d14bb7763418",
          "body": "PackageInfo never existed in lcc.models — tests referenced a non-existent\nclass. Replaced with Component(type=ComponentType.PYPI/NPM, ...) which is\nthe actual model used by resolvers.",
          "is_bot": false,
          "headline": "fix: replace PackageInfo with Component in resolver performance tests",
          "author_name": "Ajay Pundhir",
          "author_login": "apundhir",
          "committed_at": "2026-04-12T09:51:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4a3459e4d7d8ad5dece94b03ac6fcb30fb40ae3f",
          "body": "release: v1.1.0 — security hardening + agentic AI era capabilities",
          "is_bot": false,
          "headline": "Merge pull request #2 from aiexponenthq/release/v1.1.0",
          "author_name": "Ajay Pundhir",
          "author_login": "apundhir",
          "committed_at": "2026-04-12T09:40:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "85cb14ea69907f4cbfcea44bd6b862c8266d0da9",
          "body": null,
          "is_bot": false,
          "headline": "fix: ruff linting — SIM103 simplification and I001 import ordering",
          "author_name": "Ajay Pundhir",
          "author_login": "apundhir",
          "committed_at": "2026-04-12T09:29:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8bc0c28cca2e1e9f32ba69043c72f0f2571bd713",
          "body": "1. test-pypi.yml and publish-pypi.yml: remove fallback publish steps that\n   used 'secrets' context in if: conditions — GitHub Actions does not support\n   secrets context evaluation in step conditions. Both workflows now use OIDC\n   trusted publishing only (the recommended, more secure approach).\n\n2\n[…]\nytest plugins etc.)\n   which include some copyleft packages. This is acceptable for dev/test\n   dependencies. Changed sys.exit(2) to ::warning:: annotation so the scan\n   informs without blocking PRs.",
          "is_bot": false,
          "headline": "fix: resolve PR merge blockers",
          "author_name": "Ajay Pundhir",
          "author_login": "apundhir",
          "committed_at": "2026-04-12T09:13:01Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "7c622e0b96e3b5a622ece9e1d45a13ec6aefe402",
          "body": "HuggingFace Hub API (G1):\n- src/lcc/resolution/hf_hub_resolver.py: fetch model metadata from HF API\n  by model ID; extract license, datasets, tags, use_restrictions\n- src/lcc/detection/huggingface.py: HuggingFaceReferenceDetector scans\n  .py/.yaml/.json files for model ID references (from_pretrained\n[…]\nsts\n\nTransitive dependencies (G4):\n- CLI: --include-transitive flag; warns when no lock file found\n- Poetry.lock transitive analysis was already implemented; flag surfaces it\n\nTotal: 393 tests passing",
          "is_bot": false,
          "headline": "feat: agentic AI era capabilities + transitive dependency CLI flag",
          "author_name": "Ajay Pundhir",
          "author_login": "apundhir",
          "committed_at": "2026-04-12T07:39:35Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "694e1ec3a8de159dc29da51184b0717fd01624c2",
          "body": "- Add DATASET_RISK_REGISTRY with 14 entries covering safe (wikipedia,\n  c4, common_crawl, wikitext, openwebtext, redpajama, dolly) and\n  high/critical risk datasets (books3, the_pile, openai_api, chatgpt,\n  sharegpt, alpaca, orca)\n- Add _classify_dataset_risk() helper with case-insensitive, hyphen-\n\n[…]\n\n  know this is a documentation check, not a legal determination\n- Add scope_note field to RegulatoryAssessment dataclass and to_dict()\n- Add 23 tests in tests/regulatory/test_dataset_risk_registry.py",
          "is_bot": false,
          "headline": "feat(agentic): dataset risk registry + honest Article 53 framing",
          "author_name": "Ajay Pundhir",
          "author_login": "apundhir",
          "committed_at": "2026-04-12T07:16:33Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "26b10d840272278a30c664ac7ae3b89c5ed50ca5",
          "body": "Add hf_hub_resolver.py to fetch model license/metadata from the HF Hub\nAPI by model ID, and HuggingFaceReferenceDetector to scan Python/YAML/JSON\nsource files for from_pretrained() and similar references — enabling\ncompliance checks on models that are never downloaded locally.",
          "is_bot": false,
          "headline": "feat(agentic): HuggingFace Hub API resolver + reference detector",
          "author_name": "Ajay Pundhir",
          "author_login": "apundhir",
          "committed_at": "2026-04-12T07:16:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "70c97502765dc92572f176a43f54d6bc3b0c2205",
          "body": "Extends HuggingFaceDetector to detect .gguf and .onnx model files so that\nteams running `ollama pull` or using ONNX runtime get license coverage.\nAdds _extract_gguf_metadata() for binary header scanning and family\ninference from filename, plus 10 passing unit tests.",
          "is_bot": false,
          "headline": "feat(detection): GGUF and ONNX model detection for Ollama/llama.cpp",
          "author_name": "Ajay Pundhir",
          "author_login": "apundhir",
          "committed_at": "2026-04-12T07:14:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c445c5b2671a05d3bcd44b942aac9be4e05450ae",
          "body": "Security fixes:\n- POST /scans: add @limiter.limit('10/minute') — was unrate-limited\n- CORS: default from '*' to '' — must be explicitly configured in production\n- /admin/reset: scoped to LCC keys (scan:*, lcc:*) instead of flushdb()\n- Worker path containment: validate path stays within LCC_WORKSPACE\n[…]\netectors, resolvers, config) constructor\n- Performance tests: fixed scanner.scan(project_root=Path(...)) call signature\n- Test assertions: removed 500 from acceptable status codes in integration tests",
          "is_bot": false,
          "headline": "fix: security hardening + code quality for production release",
          "author_name": "Ajay Pundhir",
          "author_login": "apundhir",
          "committed_at": "2026-04-12T07:08:12Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c7106a8eebf9b58e6fe96775a4351b26b2e0d591",
          "body": null,
          "is_bot": false,
          "headline": "fix(ci): exhaustively exclude paths and lower threshold to unblock scan",
          "author_name": "Ajay Pundhir",
          "author_login": "apundhir",
          "committed_at": "2026-04-06T19:08:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6095805195ed8f14be55495505160258da3ff747",
          "body": null,
          "is_bot": false,
          "headline": "fix: resolve ruff linting errors (B007, SIM300, F541, SIM103, I001)",
          "author_name": "Ajay Pundhir",
          "author_login": "apundhir",
          "committed_at": "2026-04-06T18:46:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c79ded7591f407f4707c60df1f37262d78c136bd",
          "body": null,
          "is_bot": false,
          "headline": "add social preview",
          "author_name": "Ajay Pundhir",
          "author_login": "apundhir",
          "committed_at": "2026-04-06T18:40:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cf33467cb8fc39fe90aac6d87813ccf2241e394d",
          "body": null,
          "is_bot": false,
          "headline": "fix: append /** to exclude directories for recursive path matching",
          "author_name": "Ajay Pundhir",
          "author_login": "apundhir",
          "committed_at": "2026-04-06T18:38:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9c74e37d245e6b1495a6b7380d3d913794eb6fe4",
          "body": null,
          "is_bot": false,
          "headline": "fix: ensure lcc scan step does not fail pipeline early",
          "author_name": "Ajay Pundhir",
          "author_login": "apundhir",
          "committed_at": "2026-04-06T18:31:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f9dfdb263734c25f7325d105ab68f551a0844069",
          "body": "7 usage workflows: local scan, policy enforcement, compatibility checking,\nSBOM/report generation, full stack deployment, CI/CD integration, VS Code",
          "is_bot": false,
          "headline": "docs: add How to Use section with practical workflow examples",
          "author_name": "Ajay Pundhir",
          "author_login": "apundhir",
          "committed_at": "2026-03-17T13:47:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b6502858b0ba50899e486c168d8e5fc2c7b9d9e0",
          "body": "README:\n- Full rewrite for v2.0 with EU AI Act compliance, compatibility engine,\n  transitive deps, VS Code extension, GitHub Action, benchmarks\n- Competitive comparison table (FOSSA, Black Duck, Snyk, ORT)\n- Updated architecture diagram\n- Copy-paste GitHub Action workflow example\n\nBug fixes:\n- Fix \n[…]\nhase 2+ files\n- Remove duplicate path existence guards in python detector\n- Add vscode-extension/out/ and node_modules/ to .gitignore\n- Remove stray comments in worker/tasks.py\n\nAll 554 tests passing.",
          "is_bot": false,
          "headline": "docs: rewrite README for v2.0 + code cleanup and bug fixes",
          "author_name": "Ajay Pundhir",
          "author_login": "apundhir",
          "committed_at": "2026-03-17T13:47:56Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "5cf5050c5a103d728f10caebe0e93334d439477c",
          "body": "…iagnostics\n\nNew vscode-extension/ directory:\n- Extension scaffold: package.json, tsconfig, activation events for 8 ecosystems\n- Scan on save: 300ms debounce, spawns lcc CLI, parses JSON output\n- Inline diagnostics: violations as errors (red), warnings as yellow squiggles\n- Dependency name matching \n[…]\nand: scans all roots, aggregates results\n- Configurable: lcc path, policy, threshold, enable/disable\n- Graceful handling: lcc not found, timeouts, parse errors\n- TypeScript strict mode, compiles clean",
          "is_bot": false,
          "headline": "feat: Phase 4 Lite — VS Code extension with scan-on-save and inline d…",
          "author_name": "Ajay Pundhir",
          "author_login": "apundhir",
          "committed_at": "2026-03-17T13:47:56Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "179354093082aa5179e642638f10e95e2c274bb6",
          "body": "…ity engine\n\nDepth tracking tests (39):\n- Python: requirements.txt direct, poetry.lock transitive with BFS depths\n- JavaScript: package.json direct, package-lock.json v3 parent-child graph\n- Go: direct vs indirect marker mapping\n- Rust: Cargo.toml direct, Cargo.lock transitive with BFS depths\n- Ruby\n[…]\ncopyleft boundaries, unknown licenses\n- evaluate_license_compatibility entry point and report serialization\n- Integration: run_compatibility_check with policy configs\n- policy_has_compatibility helper",
          "is_bot": false,
          "headline": "test: Phase 3 tests — 140 new tests for depth tracking and compatibil…",
          "author_name": "Ajay Pundhir",
          "author_login": "apundhir",
          "committed_at": "2026-03-17T13:47:56Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "0e03166f61408f8df8871e23f1111d192fe41bd5",
          "body": "…ity engine\n\nTransitive Dependency Depth Tracking:\n- Add dependency_depth, is_direct, parent_packages, dependency_source\n  metadata to all 8 detectors (Python, JS, Go, Java, Gradle, Rust, Ruby, .NET)\n- Python: BFS depth computation from poetry.lock dependency graph\n- JavaScript: parent-child map fro\n[…]\n packages tooltip, compatibility banner and issues section\n- Violations page: tabbed view with Policy Violations and Compatibility Issues\n- Inline warning icons on components with compatibility issues",
          "is_bot": false,
          "headline": "feat: Phase 3 — Transitive dependency tracking and license compatibil…",
          "author_name": "Ajay Pundhir",
          "author_login": "apundhir",
          "committed_at": "2026-03-17T13:47:56Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "5d1442d2909c1b1d92d22e10bab6a888482e3ac8",
          "body": "Regulatory module tests (109):\n- frameworks enums and dataclasses serialization\n- EU AI Act assessor: risk classification, obligation evaluation, scan assessment\n- Compliance report generator: JSON, HTML, compliance pack generation\n- Constants validation for all regulatory frameworks\n\nAI parser test\n[…]\noading and evaluation\n- API regulatory routes import and registration\n\nFixes:\n- Fix pyproject.toml duplicate [project.urls] section\n- Fix CycloneDX API compat (reference_type→type, hash_value→content)",
          "is_bot": false,
          "headline": "test: Phase 2 comprehensive tests — 275 new tests, all passing",
          "author_name": "Ajay Pundhir",
          "author_login": "apundhir",
          "committed_at": "2026-03-17T13:47:56Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "b7278c749073448f38d5a66079d5e0b7fce7488e",
          "body": "…odel scanning\n\nRegulatory Module (new):\n- Add regulatory metadata model with RegulatoryFramework, AIRiskClassification,\n  RegulatoryMetadata, Article53Obligation, RegulatoryAssessment\n- Add EU AI Act Article 53 mapping engine (EUAIActAssessor)\n- Add regulatory compliance report generator (JSON + HT\n[…]\nsets page with license risk badges, filters, detail dialog\n- Add EU AI Act Compliance page with assessment runner and pack export\n- Add /regulatory/assess and /regulatory/compliance-pack API endpoints",
          "is_bot": false,
          "headline": "feat: Phase 2 — EU AI Act regulatory compliance engine, enhanced AI m…",
          "author_name": "Ajay Pundhir",
          "author_login": "apundhir",
          "committed_at": "2026-03-17T13:47:56Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a879f250469cfca7fdb52d959cdee88762bbba89",
          "body": "… benchmark framework\n\n- Add PyPI publish workflow (OIDC trusted publisher + API token fallback)\n- Add TestPyPI workflow for release candidates\n- Enhance GitHub Action with fail-on, ecosystems, exclude, sbom-format inputs\n- Add status, violation-count, warning-count, sbom-path outputs\n- Expand actio\n[…]\ninstallation)\n- Create benchmark framework with 50-project corpus + 20 AI models\n- Add accuracy, speed, and AI model benchmark runners\n- Enhance pyproject.toml with classifiers, keywords, project URLs",
          "is_bot": false,
          "headline": "feat: Phase 1 — PyPI workflow, GitHub Action enhancements, docs site,…",
          "author_name": "Ajay Pundhir",
          "author_login": "apundhir",
          "committed_at": "2026-03-17T13:47:55Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "042fea7973c9768df74f61da90dc4adc8583b13e",
          "body": "License Compliance Checker (LCC) - Enterprise-grade open-source compliance\nplatform for securing software supply chains.\n\nFeatures:\n- Multi-language detection (Python, JS/TS, Go, Java, Gradle, Rust, Ruby, .NET)\n- AI/ML model and dataset license scanning (HuggingFace)\n- Automated policy enforcement w\n[…]\nrt formats (JSON, Markdown, HTML, CSV, Attribution)\n- REST API with JWT authentication\n- Notification support (Slack, email, webhook)\n- Optional AI-powered license classification (disabled by default)",
          "is_bot": false,
          "headline": "Initial release v1.0.0",
          "author_name": "Ajay Pundhir",
          "author_login": "apundhir",
          "committed_at": "2026-02-06T18:37:09Z",
          "body_truncated": true,
          "is_coding_agent": false
        }
      ],
      "releases_count": 3,
      "commits_last_year": 59,
      "latest_release_at": "2026-07-19T13:02:28Z",
      "latest_release_tag": "v2.0.0",
      "releases_from_tags": false,
      "days_since_last_push": 7,
      "active_weeks_last_year": 8,
      "days_since_latest_release": 7,
      "mean_days_between_releases": 83.4
    },
    "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": "license-compliance-checker",
          "exists": true,
          "license": "Apache-2.0",
          "keywords": [
            "license",
            "compliance",
            "open-source",
            "sbom",
            "spdx",
            "cyclonedx",
            "software-composition-analysis",
            "Development Status :: 5 - Production/Stable",
            "Intended Audience :: Developers",
            "Intended Audience :: System Administrators",
            "License :: OSI Approved :: Apache Software License",
            "Operating System :: OS Independent",
            "Programming Language :: Python :: 3",
            "Programming Language :: Python :: 3.11",
            "Programming Language :: Python :: 3.12",
            "Programming Language :: Python :: 3.13",
            "Topic :: Security",
            "Topic :: Software Development :: Build Tools",
            "Topic :: Software Development :: Quality Assurance",
            "Typing :: Typed"
          ],
          "ecosystem": "pypi",
          "matches_repo": true,
          "registry_url": "https://pypi.org/project/license-compliance-checker/",
          "is_deprecated": false,
          "latest_version": "2.0.0",
          "repository_url": "https://github.com/aiexponenthq/license-compliance-checker",
          "versions_count": 2,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": 258,
          "first_published_at": "2026-04-12T09:48:53.721660Z",
          "latest_published_at": "2026-07-19T12:56:30.214766Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 7
        }
      ]
    },
    "popularity": {
      "forks": 0,
      "stars": 1,
      "watchers": 0,
      "fork_history": {
        "days": [],
        "complete": true,
        "collected": 0,
        "total_forks": 0
      },
      "star_history": null,
      "open_issues_and_prs": 0
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [],
      "has_llms_txt": false,
      "has_dockerfile": true,
      "has_mcp_signal": false,
      "bootstrap_files": [],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [
        "dashboard/tsconfig.json",
        "vscode-extension/tsconfig.json"
      ],
      "toolchain_manifests": [],
      "largest_source_bytes": 77750,
      "source_files_sampled": 263,
      "oversized_source_files": 1,
      "agent_instruction_files": [],
      "agent_instruction_max_bytes": null
    },
    "dependencies": {
      "manifests": [
        "dashboard/package.json",
        "docs/requirements.txt",
        "pyproject.toml",
        "requirements-test.txt",
        "requirements.txt",
        "vscode-extension/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": 69,
        "malicious_count": 0,
        "assessed_package": "pypi:license-compliance-checker@2.0.0",
        "unassessed_count": 0,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "npm",
        "pypi"
      ],
      "dependencies": [
        {
          "name": "@radix-ui/react-alert-dialog",
          "manifest": "dashboard/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.1.15"
        },
        {
          "name": "@radix-ui/react-avatar",
          "manifest": "dashboard/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.0.4"
        },
        {
          "name": "@radix-ui/react-checkbox",
          "manifest": "dashboard/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.0.4"
        },
        {
          "name": "@radix-ui/react-collapsible",
          "manifest": "dashboard/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.0.3"
        },
        {
          "name": "@radix-ui/react-dialog",
          "manifest": "dashboard/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.1.15"
        },
        {
          "name": "@radix-ui/react-dropdown-menu",
          "manifest": "dashboard/package.json",
          "ecosystem": "npm",
          "version_constraint": "^2.0.6"
        },
        {
          "name": "@radix-ui/react-icons",
          "manifest": "dashboard/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.3.0"
        },
        {
          "name": "@radix-ui/react-label",
          "manifest": "dashboard/package.json",
          "ecosystem": "npm",
          "version_constraint": "^2.1.7"
        },
        {
          "name": "@radix-ui/react-popover",
          "manifest": "dashboard/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.1.15"
        },
        {
          "name": "@radix-ui/react-progress",
          "manifest": "dashboard/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.1.7"
        },
        {
          "name": "@radix-ui/react-scroll-area",
          "manifest": "dashboard/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.0.5"
        },
        {
          "name": "@radix-ui/react-select",
          "manifest": "dashboard/package.json",
          "ecosystem": "npm",
          "version_constraint": "^2.2.6"
        },
        {
          "name": "@radix-ui/react-separator",
          "manifest": "dashboard/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.1.7"
        },
        {
          "name": "@radix-ui/react-slot",
          "manifest": "dashboard/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.2.4"
        },
        {
          "name": "@radix-ui/react-switch",
          "manifest": "dashboard/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.1.1"
        },
        {
          "name": "@radix-ui/react-tooltip",
          "manifest": "dashboard/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.1.3"
        },
        {
          "name": "@tanstack/react-query",
          "manifest": "dashboard/package.json",
          "ecosystem": "npm",
          "version_constraint": "^5.90.5"
        },
        {
          "name": "axios",
          "manifest": "dashboard/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.13.1"
        },
        {
          "name": "class-variance-authority",
          "manifest": "dashboard/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.7.0"
        },
        {
          "name": "clsx",
          "manifest": "dashboard/package.json",
          "ecosystem": "npm",
          "version_constraint": "^2.1.1"
        },
        {
          "name": "geist",
          "manifest": "dashboard/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.3.0"
        },
        {
          "name": "immer",
          "manifest": "dashboard/package.json",
          "ecosystem": "npm",
          "version_constraint": "^10.1.1"
        },
        {
          "name": "lucide-react",
          "manifest": "dashboard/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.377.0"
        },
        {
          "name": "next",
          "manifest": "dashboard/package.json",
          "ecosystem": "npm",
          "version_constraint": "14.2.3"
        },
        {
          "name": "next-themes",
          "manifest": "dashboard/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.4.3"
        },
        {
          "name": "react",
          "manifest": "dashboard/package.json",
          "ecosystem": "npm",
          "version_constraint": "^18"
        },
        {
          "name": "react-dom",
          "manifest": "dashboard/package.json",
          "ecosystem": "npm",
          "version_constraint": "^18"
        },
        {
          "name": "sonner",
          "manifest": "dashboard/package.json",
          "ecosystem": "npm",
          "version_constraint": "^2.0.7"
        },
        {
          "name": "tailwind-merge",
          "manifest": "dashboard/package.json",
          "ecosystem": "npm",
          "version_constraint": "^2.3.0"
        },
        {
          "name": "tailwindcss-animate",
          "manifest": "dashboard/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.0.7"
        },
        {
          "name": "zod",
          "manifest": "dashboard/package.json",
          "ecosystem": "npm",
          "version_constraint": "^3.23.8"
        },
        {
          "name": "zustand",
          "manifest": "dashboard/package.json",
          "ecosystem": "npm",
          "version_constraint": "^4.5.2"
        },
        {
          "name": "rich",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=13.7.0"
        },
        {
          "name": "requests",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.31.0"
        },
        {
          "name": "urllib3",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.7.0"
        },
        {
          "name": "idna",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=3.15"
        },
        {
          "name": "cachetools",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=5.3.0"
        },
        {
          "name": "platformdirs",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=4.2.0"
        },
        {
          "name": "packaging",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=23.2"
        },
        {
          "name": "pydantic",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.0.0"
        },
        {
          "name": "pyyaml",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=6.0"
        },
        {
          "name": "cyclonedx-python-lib",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=5.0.0"
        },
        {
          "name": "spdx-tools",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=0.8.0"
        },
        {
          "name": "packageurl-python",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=0.11.0"
        },
        {
          "name": "huggingface-hub",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=0.19.0"
        },
        {
          "name": "python-gnupg",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=0.5.0"
        },
        {
          "name": "gitpython",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=3.1.50"
        },
        {
          "name": "python-dotenv",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=1.0.0"
        }
      ],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [
          {
            "name": "@radix-ui/react-alert-dialog",
            "direct": true,
            "version": "1.1.15",
            "ecosystem": "npm"
          },
          {
            "name": "@radix-ui/react-avatar",
            "direct": true,
            "version": "1.1.10",
            "ecosystem": "npm"
          },
          {
            "name": "@radix-ui/react-checkbox",
            "direct": true,
            "version": "1.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "@radix-ui/react-collapsible",
            "direct": true,
            "version": "1.1.12",
            "ecosystem": "npm"
          },
          {
            "name": "@radix-ui/react-dialog",
            "direct": true,
            "version": "1.1.15",
            "ecosystem": "npm"
          },
          {
            "name": "@radix-ui/react-dropdown-menu",
            "direct": true,
            "version": "2.1.16",
            "ecosystem": "npm"
          },
          {
            "name": "@radix-ui/react-icons",
            "direct": true,
            "version": "1.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "@radix-ui/react-label",
            "direct": true,
            "version": "2.1.7",
            "ecosystem": "npm"
          },
          {
            "name": "@radix-ui/react-popover",
            "direct": true,
            "version": "1.1.15",
            "ecosystem": "npm"
          },
          {
            "name": "@radix-ui/react-progress",
            "direct": true,
            "version": "1.1.7",
            "ecosystem": "npm"
          },
          {
            "name": "@radix-ui/react-scroll-area",
            "direct": true,
            "version": "1.2.10",
            "ecosystem": "npm"
          },
          {
            "name": "@radix-ui/react-select",
            "direct": true,
            "version": "2.2.6",
            "ecosystem": "npm"
          },
          {
            "name": "@radix-ui/react-separator",
            "direct": true,
            "version": "1.1.7",
            "ecosystem": "npm"
          },
          {
            "name": "@radix-ui/react-slot",
            "direct": true,
            "version": "1.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "@radix-ui/react-slot",
            "direct": true,
            "version": "1.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "@radix-ui/react-switch",
            "direct": true,
            "version": "1.2.6",
            "ecosystem": "npm"
          },
          {
            "name": "@radix-ui/react-tooltip",
            "direct": true,
            "version": "1.2.8",
            "ecosystem": "npm"
          },
          {
            "name": "@tanstack/react-query",
            "direct": true,
            "version": "5.90.5",
            "ecosystem": "npm"
          },
          {
            "name": "axios",
            "direct": true,
            "version": "1.13.1",
            "ecosystem": "npm"
          },
          {
            "name": "class-variance-authority",
            "direct": true,
            "version": "0.7.1",
            "ecosystem": "npm"
          },
          {
            "name": "clsx",
            "direct": true,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "geist",
            "direct": true,
            "version": "1.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "immer",
            "direct": true,
            "version": "10.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "lucide-react",
            "direct": true,
            "version": "0.377.0",
            "ecosystem": "npm"
          },
          {
            "name": "next",
            "direct": true,
            "version": "14.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "next-themes",
            "direct": true,
            "version": "0.4.6",
            "ecosystem": "npm"
          },
          {
            "name": "react",
            "direct": true,
            "version": "18.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "react-dom",
            "direct": true,
            "version": "18.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "sonner",
            "direct": true,
            "version": "2.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "tailwind-merge",
            "direct": true,
            "version": "2.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "tailwindcss-animate",
            "direct": true,
            "version": "1.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "zod",
            "direct": true,
            "version": "3.25.76",
            "ecosystem": "npm"
          },
          {
            "name": "zustand",
            "direct": true,
            "version": "4.5.7",
            "ecosystem": "npm"
          },
          {
            "name": "cachetools",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "cyclonedx-python-lib",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "gitpython",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "huggingface-hub",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "idna",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "packageurl-python",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "packaging",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "platformdirs",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pydantic",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "python-dotenv",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "python-gnupg",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pyyaml",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "requests",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "rich",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "spdx-tools",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "urllib3",
            "direct": true,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "@alloc/quick-lru",
            "direct": false,
            "version": "5.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@azure/abort-controller",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "@azure/core-auth",
            "direct": false,
            "version": "1.10.1",
            "ecosystem": "npm"
          },
          {
            "name": "@azure/core-client",
            "direct": false,
            "version": "1.10.1",
            "ecosystem": "npm"
          },
          {
            "name": "@azure/core-rest-pipeline",
            "direct": false,
            "version": "1.23.0",
            "ecosystem": "npm"
          },
          {
            "name": "@azure/core-tracing",
            "direct": false,
            "version": "1.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "@azure/core-util",
            "direct": false,
            "version": "1.13.1",
            "ecosystem": "npm"
          },
          {
            "name": "@azure/identity",
            "direct": false,
            "version": "4.13.0",
            "ecosystem": "npm"
          },
          {
            "name": "@azure/logger",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "@azure/msal-browser",
            "direct": false,
            "version": "4.29.1",
            "ecosystem": "npm"
          },
          {
            "name": "@azure/msal-common",
            "direct": false,
            "version": "15.16.1",
            "ecosystem": "npm"
          },
          {
            "name": "@azure/msal-node",
            "direct": false,
            "version": "3.8.9",
            "ecosystem": "npm"
          },
          {
            "name": "@emnapi/core",
            "direct": false,
            "version": "1.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "@emnapi/runtime",
            "direct": false,
            "version": "1.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "@emnapi/wasi-threads",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/aix-ppc64",
            "direct": false,
            "version": "0.25.10",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/android-arm",
            "direct": false,
            "version": "0.25.10",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/android-arm64",
            "direct": false,
            "version": "0.25.10",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/android-x64",
            "direct": false,
            "version": "0.25.10",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/darwin-arm64",
            "direct": false,
            "version": "0.25.10",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/darwin-x64",
            "direct": false,
            "version": "0.25.10",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/freebsd-arm64",
            "direct": false,
            "version": "0.25.10",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/freebsd-x64",
            "direct": false,
            "version": "0.25.10",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-arm",
            "direct": false,
            "version": "0.25.10",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-arm64",
            "direct": false,
            "version": "0.25.10",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-ia32",
            "direct": false,
            "version": "0.25.10",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-loong64",
            "direct": false,
            "version": "0.25.10",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-mips64el",
            "direct": false,
            "version": "0.25.10",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-ppc64",
            "direct": false,
            "version": "0.25.10",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-riscv64",
            "direct": false,
            "version": "0.25.10",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-s390x",
            "direct": false,
            "version": "0.25.10",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-x64",
            "direct": false,
            "version": "0.25.10",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/netbsd-arm64",
            "direct": false,
            "version": "0.25.10",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/netbsd-x64",
            "direct": false,
            "version": "0.25.10",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/openbsd-arm64",
            "direct": false,
            "version": "0.25.10",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/openbsd-x64",
            "direct": false,
            "version": "0.25.10",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/openharmony-arm64",
            "direct": false,
            "version": "0.25.10",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/sunos-x64",
            "direct": false,
            "version": "0.25.10",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/win32-arm64",
            "direct": false,
            "version": "0.25.10",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/win32-ia32",
            "direct": false,
            "version": "0.25.10",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/win32-x64",
            "direct": false,
            "version": "0.25.10",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint-community/eslint-utils",
            "direct": false,
            "version": "4.9.0",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint-community/regexpp",
            "direct": false,
            "version": "4.12.1",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint/eslintrc",
            "direct": false,
            "version": "2.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "@eslint/js",
            "direct": false,
            "version": "8.57.1",
            "ecosystem": "npm"
          },
          {
            "name": "@floating-ui/core",
            "direct": false,
            "version": "1.7.3",
            "ecosystem": "npm"
          },
          {
            "name": "@floating-ui/dom",
            "direct": false,
            "version": "1.7.4",
            "ecosystem": "npm"
          },
          {
            "name": "@floating-ui/react-dom",
            "direct": false,
            "version": "2.1.6",
            "ecosystem": "npm"
          },
          {
            "name": "@floating-ui/utils",
            "direct": false,
            "version": "0.2.10",
            "ecosystem": "npm"
          },
          {
            "name": "@humanwhocodes/config-array",
            "direct": false,
            "version": "0.13.0",
            "ecosystem": "npm"
          },
          {
            "name": "@humanwhocodes/module-importer",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "@humanwhocodes/object-schema",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@isaacs/cliui",
            "direct": false,
            "version": "8.0.2",
            "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": "@napi-rs/wasm-runtime",
            "direct": false,
            "version": "0.2.12",
            "ecosystem": "npm"
          },
          {
            "name": "@next/env",
            "direct": false,
            "version": "14.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "@next/eslint-plugin-next",
            "direct": false,
            "version": "14.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "@next/swc-darwin-arm64",
            "direct": false,
            "version": "14.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "@next/swc-darwin-x64",
            "direct": false,
            "version": "14.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "@next/swc-linux-arm64-gnu",
            "direct": false,
            "version": "14.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "@next/swc-linux-arm64-musl",
            "direct": false,
            "version": "14.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "@next/swc-linux-x64-gnu",
            "direct": false,
            "version": "14.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "@next/swc-linux-x64-musl",
            "direct": false,
            "version": "14.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "@next/swc-win32-arm64-msvc",
            "direct": false,
            "version": "14.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "@next/swc-win32-ia32-msvc",
            "direct": false,
            "version": "14.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "@next/swc-win32-x64-msvc",
            "direct": false,
            "version": "14.2.3",
            "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": "@nolyfill/is-core-module",
            "direct": false,
            "version": "1.0.39",
            "ecosystem": "npm"
          },
          {
            "name": "@pkgjs/parseargs",
            "direct": false,
            "version": "0.11.0",
            "ecosystem": "npm"
          },
          {
            "name": "@radix-ui/number",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "@radix-ui/primitive",
            "direct": false,
            "version": "1.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "@radix-ui/react-arrow",
            "direct": false,
            "version": "1.1.7",
            "ecosystem": "npm"
          },
          {
            "name": "@radix-ui/react-collection",
            "direct": false,
            "version": "1.1.7",
            "ecosystem": "npm"
          },
          {
            "name": "@radix-ui/react-compose-refs",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "@radix-ui/react-context",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "@radix-ui/react-direction",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "@radix-ui/react-dismissable-layer",
            "direct": false,
            "version": "1.1.11",
            "ecosystem": "npm"
          },
          {
            "name": "@radix-ui/react-focus-guards",
            "direct": false,
            "version": "1.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "@radix-ui/react-focus-scope",
            "direct": false,
            "version": "1.1.7",
            "ecosystem": "npm"
          },
          {
            "name": "@radix-ui/react-id",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "@radix-ui/react-menu",
            "direct": false,
            "version": "2.1.16",
            "ecosystem": "npm"
          },
          {
            "name": "@radix-ui/react-popper",
            "direct": false,
            "version": "1.2.8",
            "ecosystem": "npm"
          },
          {
            "name": "@radix-ui/react-portal",
            "direct": false,
            "version": "1.1.9",
            "ecosystem": "npm"
          },
          {
            "name": "@radix-ui/react-presence",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@radix-ui/react-primitive",
            "direct": false,
            "version": "2.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "@radix-ui/react-roving-focus",
            "direct": false,
            "version": "1.1.11",
            "ecosystem": "npm"
          },
          {
            "name": "@radix-ui/react-use-callback-ref",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "@radix-ui/react-use-controllable-state",
            "direct": false,
            "version": "1.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "@radix-ui/react-use-effect-event",
            "direct": false,
            "version": "0.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@radix-ui/react-use-escape-keydown",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "@radix-ui/react-use-is-hydrated",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@radix-ui/react-use-layout-effect",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "@radix-ui/react-use-previous",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "@radix-ui/react-use-rect",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "@radix-ui/react-use-size",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "@radix-ui/react-visually-hidden",
            "direct": false,
            "version": "1.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "@radix-ui/rect",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rtsao/scc",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rushstack/eslint-patch",
            "direct": false,
            "version": "1.13.0",
            "ecosystem": "npm"
          },
          {
            "name": "@swc/counter",
            "direct": false,
            "version": "0.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "@swc/helpers",
            "direct": false,
            "version": "0.5.5",
            "ecosystem": "npm"
          },
          {
            "name": "@tanstack/query-core",
            "direct": false,
            "version": "5.90.5",
            "ecosystem": "npm"
          },
          {
            "name": "@tybys/wasm-util",
            "direct": false,
            "version": "0.10.1",
            "ecosystem": "npm"
          },
          {
            "name": "@types/json5",
            "direct": false,
            "version": "0.0.29",
            "ecosystem": "npm"
          },
          {
            "name": "@types/node",
            "direct": false,
            "version": "20.19.20",
            "ecosystem": "npm"
          },
          {
            "name": "@types/node",
            "direct": false,
            "version": "20.19.37",
            "ecosystem": "npm"
          },
          {
            "name": "@types/prop-types",
            "direct": false,
            "version": "15.7.15",
            "ecosystem": "npm"
          },
          {
            "name": "@types/react",
            "direct": false,
            "version": "18.3.26",
            "ecosystem": "npm"
          },
          {
            "name": "@types/react-dom",
            "direct": false,
            "version": "18.3.7",
            "ecosystem": "npm"
          },
          {
            "name": "@types/vscode",
            "direct": false,
            "version": "1.110.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/parser",
            "direct": false,
            "version": "7.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/scope-manager",
            "direct": false,
            "version": "7.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/types",
            "direct": false,
            "version": "7.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/typescript-estree",
            "direct": false,
            "version": "7.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript-eslint/visitor-keys",
            "direct": false,
            "version": "7.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@typespec/ts-http-runtime",
            "direct": false,
            "version": "0.3.4",
            "ecosystem": "npm"
          },
          {
            "name": "@ungap/structured-clone",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "@unrs/resolver-binding-android-arm-eabi",
            "direct": false,
            "version": "1.11.1",
            "ecosystem": "npm"
          },
          {
            "name": "@unrs/resolver-binding-android-arm64",
            "direct": false,
            "version": "1.11.1",
            "ecosystem": "npm"
          },
          {
            "name": "@unrs/resolver-binding-darwin-arm64",
            "direct": false,
            "version": "1.11.1",
            "ecosystem": "npm"
          },
          {
            "name": "@unrs/resolver-binding-darwin-x64",
            "direct": false,
            "version": "1.11.1",
            "ecosystem": "npm"
          },
          {
            "name": "@unrs/resolver-binding-freebsd-x64",
            "direct": false,
            "version": "1.11.1",
            "ecosystem": "npm"
          },
          {
            "name": "@unrs/resolver-binding-linux-arm-gnueabihf",
            "direct": false,
            "version": "1.11.1",
            "ecosystem": "npm"
          },
          {
            "name": "@unrs/resolver-binding-linux-arm-musleabihf",
            "direct": false,
            "version": "1.11.1",
            "ecosystem": "npm"
          },
          {
            "name": "@unrs/resolver-binding-linux-arm64-gnu",
            "direct": false,
            "version": "1.11.1",
            "ecosystem": "npm"
          },
          {
            "name": "@unrs/resolver-binding-linux-arm64-musl",
            "direct": false,
            "version": "1.11.1",
            "ecosystem": "npm"
          },
          {
            "name": "@unrs/resolver-binding-linux-ppc64-gnu",
            "direct": false,
            "version": "1.11.1",
            "ecosystem": "npm"
          },
          {
            "name": "@unrs/resolver-binding-linux-riscv64-gnu",
            "direct": false,
            "version": "1.11.1",
            "ecosystem": "npm"
          },
          {
            "name": "@unrs/resolver-binding-linux-riscv64-musl",
            "direct": false,
            "version": "1.11.1",
            "ecosystem": "npm"
          },
          {
            "name": "@unrs/resolver-binding-linux-s390x-gnu",
            "direct": false,
            "version": "1.11.1",
            "ecosystem": "npm"
          },
          {
            "name": "@unrs/resolver-binding-linux-x64-gnu",
            "direct": false,
            "version": "1.11.1",
            "ecosystem": "npm"
          },
          {
            "name": "@unrs/resolver-binding-linux-x64-musl",
            "direct": false,
            "version": "1.11.1",
            "ecosystem": "npm"
          },
          {
            "name": "@unrs/resolver-binding-wasm32-wasi",
            "direct": false,
            "version": "1.11.1",
            "ecosystem": "npm"
          },
          {
            "name": "@unrs/resolver-binding-win32-arm64-msvc",
            "direct": false,
            "version": "1.11.1",
            "ecosystem": "npm"
          },
          {
            "name": "@unrs/resolver-binding-win32-ia32-msvc",
            "direct": false,
            "version": "1.11.1",
            "ecosystem": "npm"
          },
          {
            "name": "@unrs/resolver-binding-win32-x64-msvc",
            "direct": false,
            "version": "1.11.1",
            "ecosystem": "npm"
          },
          {
            "name": "@vscode/vsce",
            "direct": false,
            "version": "2.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "@vscode/vsce-sign",
            "direct": false,
            "version": "2.0.9",
            "ecosystem": "npm"
          },
          {
            "name": "@vscode/vsce-sign-alpine-arm64",
            "direct": false,
            "version": "2.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "@vscode/vsce-sign-alpine-x64",
            "direct": false,
            "version": "2.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "@vscode/vsce-sign-darwin-arm64",
            "direct": false,
            "version": "2.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "@vscode/vsce-sign-darwin-x64",
            "direct": false,
            "version": "2.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "@vscode/vsce-sign-linux-arm",
            "direct": false,
            "version": "2.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "@vscode/vsce-sign-linux-arm64",
            "direct": false,
            "version": "2.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "@vscode/vsce-sign-linux-x64",
            "direct": false,
            "version": "2.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "@vscode/vsce-sign-win32-arm64",
            "direct": false,
            "version": "2.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "@vscode/vsce-sign-win32-x64",
            "direct": false,
            "version": "2.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "acorn",
            "direct": false,
            "version": "8.15.0",
            "ecosystem": "npm"
          },
          {
            "name": "acorn-jsx",
            "direct": false,
            "version": "5.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "agent-base",
            "direct": false,
            "version": "7.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "ajv",
            "direct": false,
            "version": "6.12.6",
            "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": "3.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-styles",
            "direct": false,
            "version": "4.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-styles",
            "direct": false,
            "version": "6.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "any-promise",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "anymatch",
            "direct": false,
            "version": "3.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "arg",
            "direct": false,
            "version": "5.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "argparse",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "aria-hidden",
            "direct": false,
            "version": "1.2.6",
            "ecosystem": "npm"
          },
          {
            "name": "aria-query",
            "direct": false,
            "version": "5.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "array-buffer-byte-length",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "array-includes",
            "direct": false,
            "version": "3.1.9",
            "ecosystem": "npm"
          },
          {
            "name": "array-union",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "array.prototype.findlast",
            "direct": false,
            "version": "1.2.5",
            "ecosystem": "npm"
          },
          {
            "name": "array.prototype.findlastindex",
            "direct": false,
            "version": "1.2.6",
            "ecosystem": "npm"
          },
          {
            "name": "array.prototype.flat",
            "direct": false,
            "version": "1.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "array.prototype.flatmap",
            "direct": false,
            "version": "1.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "array.prototype.tosorted",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "arraybuffer.prototype.slice",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "ast-types-flow",
            "direct": false,
            "version": "0.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "async-function",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "asynckit",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "available-typed-arrays",
            "direct": false,
            "version": "1.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "axe-core",
            "direct": false,
            "version": "4.11.0",
            "ecosystem": "npm"
          },
          {
            "name": "axobject-query",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "azure-devops-node-api",
            "direct": false,
            "version": "12.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "balanced-match",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "base64-js",
            "direct": false,
            "version": "1.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "binary-extensions",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "bl",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "boolbase",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "brace-expansion",
            "direct": false,
            "version": "1.1.12",
            "ecosystem": "npm"
          },
          {
            "name": "brace-expansion",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "braces",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "buffer",
            "direct": false,
            "version": "5.7.1",
            "ecosystem": "npm"
          },
          {
            "name": "buffer-crc32",
            "direct": false,
            "version": "0.2.13",
            "ecosystem": "npm"
          },
          {
            "name": "buffer-equal-constant-time",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "bundle-name",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "busboy",
            "direct": false,
            "version": "1.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "call-bind",
            "direct": false,
            "version": "1.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "call-bind-apply-helpers",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "call-bound",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "callsites",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "camelcase-css",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "caniuse-lite",
            "direct": false,
            "version": "1.0.30001749",
            "ecosystem": "npm"
          },
          {
            "name": "chalk",
            "direct": false,
            "version": "2.4.2",
            "ecosystem": "npm"
          },
          {
            "name": "chalk",
            "direct": false,
            "version": "4.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "cheerio",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "cheerio-select",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "chokidar",
            "direct": false,
            "version": "3.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "chownr",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "client-only",
            "direct": false,
            "version": "0.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "cockatiel",
            "direct": false,
            "version": "3.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "color-convert",
            "direct": false,
            "version": "1.9.3",
            "ecosystem": "npm"
          },
          {
            "name": "color-convert",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "color-name",
            "direct": false,
            "version": "1.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "color-name",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "combined-stream",
            "direct": false,
            "version": "1.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "commander",
            "direct": false,
            "version": "4.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "commander",
            "direct": false,
            "version": "6.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "concat-map",
            "direct": false,
            "version": "0.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "cross-spawn",
            "direct": false,
            "version": "7.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "css-select",
            "direct": false,
            "version": "5.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "css-what",
            "direct": false,
            "version": "6.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "cssesc",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "csstype",
            "direct": false,
            "version": "3.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "damerau-levenshtein",
            "direct": false,
            "version": "1.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "data-view-buffer",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "data-view-byte-length",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "data-view-byte-offset",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "debug",
            "direct": false,
            "version": "3.2.7",
            "ecosystem": "npm"
          },
          {
            "name": "debug",
            "direct": false,
            "version": "4.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "decompress-response",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "deep-extend",
            "direct": false,
            "version": "0.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "deep-is",
            "direct": false,
            "version": "0.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "default-browser",
            "direct": false,
            "version": "5.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "default-browser-id",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "define-data-property",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "define-lazy-prop",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "define-properties",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "delayed-stream",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "detect-libc",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "detect-node-es",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "didyoumean",
            "direct": false,
            "version": "1.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "dir-glob",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "dlv",
            "direct": false,
            "version": "1.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "doctrine",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "doctrine",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "dom-serializer",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "domelementtype",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "domhandler",
            "direct": false,
            "version": "5.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "domutils",
            "direct": false,
            "version": "3.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "dunder-proto",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "eastasianwidth",
            "direct": false,
            "version": "0.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "ecdsa-sig-formatter",
            "direct": false,
            "version": "1.0.11",
            "ecosystem": "npm"
          },
          {
            "name": "emoji-regex",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "emoji-regex",
            "direct": false,
            "version": "9.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "encoding-sniffer",
            "direct": false,
            "version": "0.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "end-of-stream",
            "direct": false,
            "version": "1.4.5",
            "ecosystem": "npm"
          },
          {
            "name": "entities",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "entities",
            "direct": false,
            "version": "4.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "entities",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "entities",
            "direct": false,
            "version": "7.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "es-abstract",
            "direct": false,
            "version": "1.24.0",
            "ecosystem": "npm"
          },
          {
            "name": "es-define-property",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "es-errors",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "es-iterator-helpers",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "es-object-atoms",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "es-set-tostringtag",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "es-shim-unscopables",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "es-to-primitive",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "esbuild",
            "direct": false,
            "version": "0.25.10",
            "ecosystem": "npm"
          },
          {
            "name": "escape-string-regexp",
            "direct": false,
            "version": "1.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "escape-string-regexp",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "eslint",
            "direct": false,
            "version": "8.57.1",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-config-next",
            "direct": false,
            "version": "14.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-import-resolver-node",
            "direct": false,
            "version": "0.3.9",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-import-resolver-typescript",
            "direct": false,
            "version": "3.10.1",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-module-utils",
            "direct": false,
            "version": "2.12.1",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-plugin-import",
            "direct": false,
            "version": "2.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-plugin-jsx-a11y",
            "direct": false,
            "version": "6.10.2",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-plugin-react",
            "direct": false,
            "version": "7.37.5",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-plugin-react-hooks",
            "direct": false,
            "version": "5.0.0-canary-7118f5dd7-20230705",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-scope",
            "direct": false,
            "version": "7.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "eslint-visitor-keys",
            "direct": false,
            "version": "3.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "espree",
            "direct": false,
            "version": "9.6.1",
            "ecosystem": "npm"
          },
          {
            "name": "esquery",
            "direct": false,
            "version": "1.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "esrecurse",
            "direct": false,
            "version": "4.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "estraverse",
            "direct": false,
            "version": "5.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "esutils",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "expand-template",
            "direct": false,
            "version": "2.0.3",
            "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.19.1",
            "ecosystem": "npm"
          },
          {
            "name": "fd-slicer",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "fdir",
            "direct": false,
            "version": "6.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "file-entry-cache",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "fill-range",
            "direct": false,
            "version": "7.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "find-up",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "flat-cache",
            "direct": false,
            "version": "3.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "flatted",
            "direct": false,
            "version": "3.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "follow-redirects",
            "direct": false,
            "version": "1.15.11",
            "ecosystem": "npm"
          },
          {
            "name": "for-each",
            "direct": false,
            "version": "0.3.5",
            "ecosystem": "npm"
          },
          {
            "name": "foreground-child",
            "direct": false,
            "version": "3.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "form-data",
            "direct": false,
            "version": "4.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "form-data",
            "direct": false,
            "version": "4.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "fs-constants",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "fs.realpath",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "fsevents",
            "direct": false,
            "version": "2.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "function-bind",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "function.prototype.name",
            "direct": false,
            "version": "1.1.8",
            "ecosystem": "npm"
          },
          {
            "name": "functions-have-names",
            "direct": false,
            "version": "1.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "generator-function",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "get-intrinsic",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "get-nonce",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "get-proto",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "get-symbol-description",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "get-tsconfig",
            "direct": false,
            "version": "4.12.0",
            "ecosystem": "npm"
          },
          {
            "name": "github-from-package",
            "direct": false,
            "version": "0.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "glob",
            "direct": false,
            "version": "10.3.10",
            "ecosystem": "npm"
          },
          {
            "name": "glob",
            "direct": false,
            "version": "7.2.3",
            "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": "13.24.0",
            "ecosystem": "npm"
          },
          {
            "name": "globalthis",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "globby",
            "direct": false,
            "version": "11.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "gopd",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "graceful-fs",
            "direct": false,
            "version": "4.2.11",
            "ecosystem": "npm"
          },
          {
            "name": "graphemer",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "has-bigints",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "has-flag",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "has-flag",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "has-property-descriptors",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "has-proto",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "has-symbols",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "has-tostringtag",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "hasown",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "hosted-git-info",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "htmlparser2",
            "direct": false,
            "version": "10.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "http-proxy-agent",
            "direct": false,
            "version": "7.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "https-proxy-agent",
            "direct": false,
            "version": "7.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "iconv-lite",
            "direct": false,
            "version": "0.6.3",
            "ecosystem": "npm"
          },
          {
            "name": "ieee754",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "ignore",
            "direct": false,
            "version": "5.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "import-fresh",
            "direct": false,
            "version": "3.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "imurmurhash",
            "direct": false,
            "version": "0.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "inflight",
            "direct": false,
            "version": "1.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "inherits",
            "direct": false,
            "version": "2.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "ini",
            "direct": false,
            "version": "1.3.8",
            "ecosystem": "npm"
          },
          {
            "name": "internal-slot",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-array-buffer",
            "direct": false,
            "version": "3.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "is-async-function",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-bigint",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-binary-path",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-boolean-object",
            "direct": false,
            "version": "1.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "is-bun-module",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-callable",
            "direct": false,
            "version": "1.2.7",
            "ecosystem": "npm"
          },
          {
            "name": "is-core-module",
            "direct": false,
            "version": "2.16.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-data-view",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "is-date-object",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-docker",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-extglob",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-finalizationregistry",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-fullwidth-code-point",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-generator-function",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "is-glob",
            "direct": false,
            "version": "4.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "is-inside-container",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-map",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "is-negative-zero",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "is-number",
            "direct": false,
            "version": "7.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-number-object",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-path-inside",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "is-regex",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-set",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "is-shared-array-buffer",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "is-string",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-symbol",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-typed-array",
            "direct": false,
            "version": "1.1.15",
            "ecosystem": "npm"
          },
          {
            "name": "is-weakmap",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "is-weakref",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-weakset",
            "direct": false,
            "version": "2.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "is-wsl",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "isarray",
            "direct": false,
            "version": "2.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "isexe",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "iterator.prototype",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "jackspeak",
            "direct": false,
            "version": "2.3.6",
            "ecosystem": "npm"
          },
          {
            "name": "jiti",
            "direct": false,
            "version": "1.21.7",
            "ecosystem": "npm"
          },
          {
            "name": "js-tokens",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "js-yaml",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "json-buffer",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "json-schema-traverse",
            "direct": false,
            "version": "0.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "json-stable-stringify-without-jsonify",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "json5",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "jsonc-parser",
            "direct": false,
            "version": "3.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "jsonwebtoken",
            "direct": false,
            "version": "9.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "jsx-ast-utils",
            "direct": false,
            "version": "3.3.5",
            "ecosystem": "npm"
          },
          {
            "name": "jwa",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "jws",
            "direct": false,
            "version": "4.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "keytar",
            "direct": false,
            "version": "7.9.0",
            "ecosystem": "npm"
          },
          {
            "name": "keyv",
            "direct": false,
            "version": "4.5.4",
            "ecosystem": "npm"
          },
          {
            "name": "language-subtag-registry",
            "direct": false,
            "version": "0.3.23",
            "ecosystem": "npm"
          },
          {
            "name": "language-tags",
            "direct": false,
            "version": "1.0.9",
            "ecosystem": "npm"
          },
          {
            "name": "leven",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "levn",
            "direct": false,
            "version": "0.4.1",
            "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": "linkify-it",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "locate-path",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "lodash.includes",
            "direct": false,
            "version": "4.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "lodash.isboolean",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "lodash.isinteger",
            "direct": false,
            "version": "4.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "lodash.isnumber",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "lodash.isplainobject",
            "direct": false,
            "version": "4.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "lodash.isstring",
            "direct": false,
            "version": "4.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "lodash.merge",
            "direct": false,
            "version": "4.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "lodash.once",
            "direct": false,
            "version": "4.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "loose-envify",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "lru-cache",
            "direct": false,
            "version": "10.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "lru-cache",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "markdown-it",
            "direct": false,
            "version": "12.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "math-intrinsics",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "mdurl",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "merge2",
            "direct": false,
            "version": "1.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromatch",
            "direct": false,
            "version": "4.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "mime",
            "direct": false,
            "version": "1.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "mime-db",
            "direct": false,
            "version": "1.52.0",
            "ecosystem": "npm"
          },
          {
            "name": "mime-types",
            "direct": false,
            "version": "2.1.35",
            "ecosystem": "npm"
          },
          {
            "name": "mimic-response",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "minimatch",
            "direct": false,
            "version": "3.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "minimatch",
            "direct": false,
            "version": "3.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "minimatch",
            "direct": false,
            "version": "9.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "minimatch",
            "direct": false,
            "version": "9.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "minimist",
            "direct": false,
            "version": "1.2.8",
            "ecosystem": "npm"
          },
          {
            "name": "minipass",
            "direct": false,
            "version": "7.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "mkdirp-classic",
            "direct": false,
            "version": "0.5.3",
            "ecosystem": "npm"
          },
          {
            "name": "ms",
            "direct": false,
            "version": "2.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "mute-stream",
            "direct": false,
            "version": "0.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "mz",
            "direct": false,
            "version": "2.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "nanoid",
            "direct": false,
            "version": "3.3.11",
            "ecosystem": "npm"
          },
          {
            "name": "napi-build-utils",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "napi-postinstall",
            "direct": false,
            "version": "0.3.4",
            "ecosystem": "npm"
          },
          {
            "name": "natural-compare",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "node-abi",
            "direct": false,
            "version": "3.89.0",
            "ecosystem": "npm"
          },
          {
            "name": "node-addon-api",
            "direct": false,
            "version": "4.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "normalize-path",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "nth-check",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "object-assign",
            "direct": false,
            "version": "4.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "object-hash",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "object-inspect",
            "direct": false,
            "version": "1.13.4",
            "ecosystem": "npm"
          },
          {
            "name": "object-keys",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "object.assign",
            "direct": false,
            "version": "4.1.7",
            "ecosystem": "npm"
          },
          {
            "name": "object.entries",
            "direct": false,
            "version": "1.1.9",
            "ecosystem": "npm"
          },
          {
            "name": "object.fromentries",
            "direct": false,
            "version": "2.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "object.groupby",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "object.values",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "once",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "open",
            "direct": false,
            "version": "10.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "optionator",
            "direct": false,
            "version": "0.9.4",
            "ecosystem": "npm"
          },
          {
            "name": "own-keys",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "p-limit",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "p-locate",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "parent-module",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "parse-semver",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "parse5",
            "direct": false,
            "version": "7.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "parse5-htmlparser2-tree-adapter",
            "direct": false,
            "version": "7.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "parse5-parser-stream",
            "direct": false,
            "version": "7.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "path-exists",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "path-is-absolute",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "path-key",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "path-parse",
            "direct": false,
            "version": "1.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "path-scurry",
            "direct": false,
            "version": "1.11.1",
            "ecosystem": "npm"
          },
          {
            "name": "path-type",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "pend",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "picocolors",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "picomatch",
            "direct": false,
            "version": "2.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "picomatch",
            "direct": false,
            "version": "4.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "pify",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "pirates",
            "direct": false,
            "version": "4.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "possible-typed-array-names",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "postcss",
            "direct": false,
            "version": "8.4.31",
            "ecosystem": "npm"
          },
          {
            "name": "postcss",
            "direct": false,
            "version": "8.5.6",
            "ecosystem": "npm"
          },
          {
            "name": "postcss-import",
            "direct": false,
            "version": "15.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "postcss-js",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "postcss-load-config",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "postcss-nested",
            "direct": false,
            "version": "6.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "postcss-selector-parser",
            "direct": false,
            "version": "6.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "postcss-value-parser",
            "direct": false,
            "version": "4.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "prebuild-install",
            "direct": false,
            "version": "7.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "prelude-ls",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "prop-types",
            "direct": false,
            "version": "15.8.1",
            "ecosystem": "npm"
          },
          {
            "name": "proxy-from-env",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "pump",
            "direct": false,
            "version": "3.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "punycode",
            "direct": false,
            "version": "2.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "qs",
            "direct": false,
            "version": "6.15.0",
            "ecosystem": "npm"
          },
          {
            "name": "queue-microtask",
            "direct": false,
            "version": "1.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "rc",
            "direct": false,
            "version": "1.2.8",
            "ecosystem": "npm"
          },
          {
            "name": "react-is",
            "direct": false,
            "version": "16.13.1",
            "ecosystem": "npm"
          },
          {
            "name": "react-remove-scroll",
            "direct": false,
            "version": "2.7.1",
            "ecosystem": "npm"
          },
          {
            "name": "react-remove-scroll-bar",
            "direct": false,
            "version": "2.3.8",
            "ecosystem": "npm"
          },
          {
            "name": "react-style-singleton",
            "direct": false,
            "version": "2.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "read",
            "direct": false,
            "version": "1.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "read-cache",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "readable-stream",
            "direct": false,
            "version": "3.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "readdirp",
            "direct": false,
            "version": "3.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "reflect.getprototypeof",
            "direct": false,
            "version": "1.0.10",
            "ecosystem": "npm"
          },
          {
            "name": "regexp.prototype.flags",
            "direct": false,
            "version": "1.5.4",
            "ecosystem": "npm"
          },
          {
            "name": "resolve",
            "direct": false,
            "version": "1.22.10",
            "ecosystem": "npm"
          },
          {
            "name": "resolve",
            "direct": false,
            "version": "2.0.0-next.5",
            "ecosystem": "npm"
          },
          {
            "name": "resolve-from",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "resolve-pkg-maps",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "reusify",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "rimraf",
            "direct": false,
            "version": "3.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "run-applescript",
            "direct": false,
            "version": "7.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "run-parallel",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "safe-array-concat",
            "direct": false,
            "version": "1.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "safe-buffer",
            "direct": false,
            "version": "5.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "safe-push-apply",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "safe-regex-test",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "safer-buffer",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "sax",
            "direct": false,
            "version": "1.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "scheduler",
            "direct": false,
            "version": "0.23.2",
            "ecosystem": "npm"
          },
          {
            "name": "semver",
            "direct": false,
            "version": "5.7.2",
            "ecosystem": "npm"
          },
          {
            "name": "semver",
            "direct": false,
            "version": "6.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "semver",
            "direct": false,
            "version": "7.7.3",
            "ecosystem": "npm"
          },
          {
            "name": "semver",
            "direct": false,
            "version": "7.7.4",
            "ecosystem": "npm"
          },
          {
            "name": "set-function-length",
            "direct": false,
            "version": "1.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "set-function-name",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "set-proto",
            "direct": false,
            "version": "1.0.0",
            "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": "side-channel",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "side-channel-list",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "side-channel-map",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "side-channel-weakmap",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "signal-exit",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "simple-concat",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "simple-get",
            "direct": false,
            "version": "4.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "slash",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "source-map-js",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "stable-hash",
            "direct": false,
            "version": "0.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "stop-iteration-iterator",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "streamsearch",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "string-width",
            "direct": false,
            "version": "4.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "string-width",
            "direct": false,
            "version": "5.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "string.prototype.includes",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "string.prototype.matchall",
            "direct": false,
            "version": "4.0.12",
            "ecosystem": "npm"
          },
          {
            "name": "string.prototype.repeat",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "string.prototype.trim",
            "direct": false,
            "version": "1.2.10",
            "ecosystem": "npm"
          },
          {
            "name": "string.prototype.trimend",
            "direct": false,
            "version": "1.0.9",
            "ecosystem": "npm"
          },
          {
            "name": "string.prototype.trimstart",
            "direct": false,
            "version": "1.0.8",
            "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-json-comments",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "strip-json-comments",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "styled-jsx",
            "direct": false,
            "version": "5.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "sucrase",
            "direct": false,
            "version": "3.35.0",
            "ecosystem": "npm"
          },
          {
            "name": "supports-color",
            "direct": false,
            "version": "5.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "supports-color",
            "direct": false,
            "version": "7.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "supports-preserve-symlinks-flag",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "tailwindcss",
            "direct": false,
            "version": "3.4.18",
            "ecosystem": "npm"
          },
          {
            "name": "tar-fs",
            "direct": false,
            "version": "2.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "tar-stream",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "text-table",
            "direct": false,
            "version": "0.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "thenify",
            "direct": false,
            "version": "3.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "thenify-all",
            "direct": false,
            "version": "1.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "tinyglobby",
            "direct": false,
            "version": "0.2.15",
            "ecosystem": "npm"
          },
          {
            "name": "tmp",
            "direct": false,
            "version": "0.2.5",
            "ecosystem": "npm"
          },
          {
            "name": "to-regex-range",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "ts-api-utils",
            "direct": false,
            "version": "1.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "ts-interface-checker",
            "direct": false,
            "version": "0.1.13",
            "ecosystem": "npm"
          },
          {
            "name": "tsconfig-paths",
            "direct": false,
            "version": "3.15.0",
            "ecosystem": "npm"
          },
          {
            "name": "tslib",
            "direct": false,
            "version": "2.8.1",
            "ecosystem": "npm"
          },
          {
            "name": "tsx",
            "direct": false,
            "version": "4.20.6",
            "ecosystem": "npm"
          },
          {
            "name": "tunnel",
            "direct": false,
            "version": "0.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "tunnel-agent",
            "direct": false,
            "version": "0.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "type-check",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "type-fest",
            "direct": false,
            "version": "0.20.2",
            "ecosystem": "npm"
          },
          {
            "name": "typed-array-buffer",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "typed-array-byte-length",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "typed-array-byte-offset",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "typed-array-length",
            "direct": false,
            "version": "1.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "typed-rest-client",
            "direct": false,
            "version": "1.8.11",
            "ecosystem": "npm"
          },
          {
            "name": "typescript",
            "direct": false,
            "version": "5.9.3",
            "ecosystem": "npm"
          },
          {
            "name": "uc.micro",
            "direct": false,
            "version": "1.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "unbox-primitive",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "underscore",
            "direct": false,
            "version": "1.13.8",
            "ecosystem": "npm"
          },
          {
            "name": "undici",
            "direct": false,
            "version": "7.24.4",
            "ecosystem": "npm"
          },
          {
            "name": "undici-types",
            "direct": false,
            "version": "6.21.0",
            "ecosystem": "npm"
          },
          {
            "name": "unrs-resolver",
            "direct": false,
            "version": "1.11.1",
            "ecosystem": "npm"
          },
          {
            "name": "uri-js",
            "direct": false,
            "version": "4.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "url-join",
            "direct": false,
            "version": "4.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "use-callback-ref",
            "direct": false,
            "version": "1.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "use-sidecar",
            "direct": false,
            "version": "1.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "use-sync-external-store",
            "direct": false,
            "version": "1.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "util-deprecate",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "uuid",
            "direct": false,
            "version": "8.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "whatwg-encoding",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "whatwg-mimetype",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "which",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "which-boxed-primitive",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "which-builtin-type",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "which-collection",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "which-typed-array",
            "direct": false,
            "version": "1.1.19",
            "ecosystem": "npm"
          },
          {
            "name": "word-wrap",
            "direct": false,
            "version": "1.2.5",
            "ecosystem": "npm"
          },
          {
            "name": "wrap-ansi",
            "direct": false,
            "version": "7.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "wrap-ansi",
            "direct": false,
            "version": "8.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "wrappy",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "wsl-utils",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "xml2js",
            "direct": false,
            "version": "0.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "xmlbuilder",
            "direct": false,
            "version": "11.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "yallist",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "yauzl",
            "direct": false,
            "version": "2.10.0",
            "ecosystem": "npm"
          },
          {
            "name": "yazl",
            "direct": false,
            "version": "2.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "yocto-queue",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "aiosqlite",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "alembic",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "argon2-cffi",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "arq",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "asyncpg",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "click",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "cryptography",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "fakeredis",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "fastapi",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "freezegun",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "mako",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "mkdocs-material",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "mkdocs-minify-plugin",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "openai",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "passlib",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pyjwt",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pymdown-extensions",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pytest",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-asyncio",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-cov",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "python-jose",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "python-multipart",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "redis",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "responses",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "setuptools",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "slowapi",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "sqlalchemy",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "starlette",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "uvicorn",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          }
        ],
        "collected": true,
        "truncated": false,
        "total_count": 693,
        "direct_count": 49,
        "indirect_count": 644
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 0,
        "merged_prs": 17,
        "open_issues": 0,
        "closed_ratio": null,
        "closed_issues": 0,
        "closed_unmerged_prs": 0
      },
      "bus_factor": 1,
      "bot_contributors": 0,
      "top_contributors": [
        {
          "type": "User",
          "login": "apundhir",
          "commits": 59,
          "avatar_url": "https://avatars.githubusercontent.com/u/2674998?v=4"
        }
      ],
      "contributors_sampled": 1,
      "top_contributor_share": 1
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "ci.yml",
        "docs.yml",
        "lcc-scan.yml",
        "publish-pypi.yml",
        "test-action.yml",
        "test-pypi.yml"
      ],
      "has_docs_dir": true,
      "linter_configs": [
        ".eslintrc.json"
      ],
      "has_editorconfig": false,
      "has_linter_config": true,
      "has_precommit_config": true
    },
    "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": 0,
            "reason": "branch protection not enabled on development/release branches",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": 10,
            "reason": "2 out of 2 merged PRs checked by a CI test -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
          },
          {
            "name": "CII-Best-Practices",
            "score": 0,
            "reason": "no effort to earn an OpenSSF best practices badge detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
          },
          {
            "name": "Code-Review",
            "score": 0,
            "reason": "Found 0/28 approved changesets -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 3,
            "reason": "project has 1 contributing companies or organizations -- score normalized to 3",
            "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": 10,
            "reason": "30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
          },
          {
            "name": "Packaging",
            "score": 10,
            "reason": "packaging workflow detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": 1,
            "reason": "dependency not pinned by hash detected -- score normalized to 1",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 0,
            "reason": "SAST tool is not run on all commits -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 10,
            "reason": "security policy file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
          },
          {
            "name": "Signed-Releases",
            "score": null,
            "reason": "no releases found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
          },
          {
            "name": "Token-Permissions",
            "score": 0,
            "reason": "detected GitHub workflow tokens with excessive permissions",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 0,
            "reason": "99 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "4f09e7b8e96511b14264170ab9243069f33006b2",
        "ran_at": "2026-07-27T02:38:41Z",
        "aggregate_score": 4.2,
        "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-26T05:56:01Z",
      "oldest_open_prs": [],
      "last_merged_pr_at": "2026-07-19T16:48:58Z",
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": []
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/aiexponenthq/license-compliance-checker",
    "host": "github.com",
    "name": "license-compliance-checker",
    "owner": "aiexponenthq"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "moderate",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 64,
      "inputs": {
        "security": 54,
        "vitality": 78,
        "community": 43,
        "governance": 50,
        "engineering": 92
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "good",
        "name": "Vitality",
        "value": 78,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "moderate",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 68,
            "inputs": {
              "commits_last_year": 59,
              "human_commit_share": 1,
              "days_since_last_push": 7,
              "active_weeks_last_year": 8
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 7 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 7
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "8/52 weeks with commits",
                "points": 5.5,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 8
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "59 commits in the last year",
                "points": 16,
                "status": "partial",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 59
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "excellent",
            "name": "Release discipline",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 92,
            "inputs": {
              "releases_count": 3,
              "latest_release_tag": "v2.0.0",
              "releases_from_tags": false,
              "days_since_latest_release": 7,
              "mean_days_between_releases": 83.4
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "3 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 3
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 7 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 7
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~83.4 days",
                "points": 19.8,
                "status": "partial",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 83.4
                    }
                  }
                ],
                "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": 7,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "last human commit 7 days ago",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_maintained",
                    "params": {
                      "days": 7
                    }
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "at_risk",
        "name": "Community & Adoption",
        "value": 43,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "critical",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 1,
            "inputs": {
              "forks": 0,
              "stars": 1,
              "watchers": 0,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "1 stars",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "0 forks",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 0
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "0 watchers",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 0
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "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 (Apache-2.0)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "Apache-2.0"
                    }
                  }
                ],
                "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": "at_risk",
            "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": 40,
            "inputs": {
              "packages": [
                "license-compliance-checker"
              ],
              "dependents": null,
              "ecosystems": "pypi",
              "total_downloads": null,
              "monthly_downloads": 258
            },
            "components": [
              {
                "key": "monthly_downloads",
                "name": "Monthly downloads",
                "detail": "258 downloads/month across pypi",
                "points": 32.2,
                "status": "partial",
                "details": [
                  {
                    "code": "downloads_monthly",
                    "params": {
                      "count": 258,
                      "ecosystems": "pypi"
                    }
                  }
                ],
                "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": 50,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "critical",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 13,
            "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 1 contributing companies or organizations -- score normalized to 3",
                "points": 3,
                "status": "partial",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "good",
            "name": "Issue & PR responsiveness",
            "note": "Excluded from scoring (no data or not applicable): Issue resolution. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "issue_resolution"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 72,
            "inputs": {
              "merged_prs": 17,
              "open_issues": 0,
              "closed_issues": 0,
              "issue_closed_ratio": null,
              "closed_unmerged_prs": 0
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "no issues or no data",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_issues_or_data",
                    "params": {}
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "17/17 decided PRs merged",
                "points": 38.2,
                "status": "met",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 17,
                      "decided": 17
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 0/28 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "at_risk",
            "name": "Ownership & stewardship",
            "note": null,
            "notes": [],
            "value": 39,
            "inputs": {
              "followers": 1,
              "owner_type": "Organization",
              "is_verified": null,
              "owner_login": "aiexponenthq",
              "public_repos": 6,
              "account_age_days": 109
            },
            "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": "1 followers of aiexponenthq",
                "points": 2.2,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 1,
                      "login": "aiexponenthq"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "6 public repos, account ~0 yr old",
                "points": 6.8,
                "status": "partial",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 6
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 0
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "excellent",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 92,
            "inputs": {
              "packages": [
                "license-compliance-checker"
              ],
              "ecosystems": "pypi",
              "any_deprecated": false,
              "min_days_since_publish": 7
            },
            "components": [
              {
                "key": "published_resolvable",
                "name": "Published & resolvable",
                "detail": "1 package(s) on pypi",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "packages_published",
                    "params": {
                      "count": 1,
                      "ecosystems": "pypi"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "publish_recency",
                "name": "Publish recency",
                "detail": "latest publish 7 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 7
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "2 published versions",
                "points": 12,
                "status": "partial",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 2
                    }
                  }
                ],
                "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": 92,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "excellent",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 94,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": false,
              "has_linter_config": true,
              "has_precommit_config": true
            },
            "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": ".eslintrc.json",
                "points": 16,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": ".eslintrc.json"
                    }
                  }
                ],
                "max_points": 16
              },
              {
                "key": "pre_commit_hooks",
                "name": "Pre-commit hooks",
                "detail": null,
                "points": 9.6,
                "status": "met",
                "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": "2 out of 2 merged PRs checked by a CI test -- score normalized to 10",
                "points": 20,
                "status": "met",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "excellent",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 90,
            "inputs": {
              "topics": [
                "ai-governance",
                "cli",
                "eu-ai-act",
                "gpai",
                "license-compliance",
                "open-source",
                "python",
                "responsible-ai",
                "article-53",
                "ai-compliance",
                "ai-safety",
                "apache-2-0",
                "cyclonedx",
                "huggingface",
                "model-cards",
                "sbom",
                "spdx",
                "aiexponent"
              ],
              "has_wiki": false,
              "homepage": "https://aiexponent.com/docs/license-compliance-checker",
              "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://aiexponent.com/docs/license-compliance-checker",
                "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": "18 topics",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "topics_count",
                    "params": {
                      "count": 18
                    }
                  }
                ],
                "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": 54,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "at_risk",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 42,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 17,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 1,
              "scorecard_aggregate": 4.2
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "no binaries found in the repo",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "branch protection not enabled on development/release branches",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "2 out of 2 merged PRs checked by a CI test -- score normalized to 10",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "Found 0/28 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 1 contributing companies or organizations -- score normalized to 3",
                "points": 0.8,
                "status": "partial",
                "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": "30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "packaging",
                "name": "Packaging",
                "detail": "packaging workflow detected",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 1",
                "points": 0.5,
                "status": "partial",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "SAST tool is not run on all commits -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file detected",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "token_permissions",
                "name": "Token-Permissions",
                "detail": "detected GitHub workflow tokens with excessive permissions",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "99 existing vulnerabilities detected",
                "points": 0,
                "status": "missed",
                "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 pypi:license-compliance-checker@2.0.0 runtime dependency closure — what installing the published package pulls in — 69 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": "pypi:license-compliance-checker@2.0.0",
                  "assessed": 69
                }
              },
              {
                "code": "advisories_reachability",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "source": "osv",
              "advisories": 0,
              "affected_packages": 0,
              "assessed_packages": 69,
              "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": 69,
              "malicious_packages": 0,
              "direct_malicious_packages": 0,
              "withdrawn_malicious_packages": 0,
              "installable_malicious_packages": 0
            },
            "components": [
              {
                "key": "no_dependency_reported_as_a_malicious_package",
                "name": "No dependency reported as a malicious package",
                "detail": "no dependency is reported as a malicious package",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "no_malicious_dependencies",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          },
          {
            "key": "high_risk_jurisdiction_exposure",
            "band": "excellent",
            "name": "High-Risk Jurisdiction Exposure",
            "note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
            "notes": [
              {
                "code": "jurisdiction_evidence_limits",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "meaning": "self-published location evidence; not nationality or citizenship",
              "red_flag": false,
              "exposures": [],
              "policy_countries": [
                "Russia",
                "Iran",
                "North Korea"
              ],
              "review_only_matches": 0,
              "assessed_self_published_locations": 1
            },
            "components": [
              {
                "key": "policy_exposure_multiplier",
                "name": "Policy exposure multiplier",
                "detail": "no confirmed policy-scope location match",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "jurisdiction_no_match",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
      },
      {
        "key": "ai_readiness",
        "band": "moderate",
        "name": "AI Readiness",
        "value": 54,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "at_risk",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 0.983,
              "agent_instruction_files": [],
              "agent_instruction_max_bytes": null
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "no CLAUDE.md / AGENTS.md / editor rules",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_agent_instructions",
                    "params": {}
                  }
                ],
                "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": "58 of 59 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 58,
                      "sampled": 59
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "moderate",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 55,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "package-lock.json"
              ],
              "has_dockerfile": true,
              "typed_language": false,
              "bootstrap_files": [],
              "has_devcontainer": false,
              "has_linter_config": true,
              "typecheck_configs": [
                "dashboard/tsconfig.json",
                "vscode-extension/tsconfig.json"
              ],
              "agent_commit_share": 0,
              "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": ".eslintrc.json",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": ".eslintrc.json"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": "dashboard/tsconfig.json, vscode-extension/tsconfig.json",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "dashboard/tsconfig.json, vscode-extension/tsconfig.json"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": "Dockerfile, lockfile",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "Dockerfile, lockfile"
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "no agent-authored commits among the last 59",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_agent_authored_commits",
                    "params": {
                      "sampled": 59
                    }
                  }
                ],
                "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 1",
                "points": 1,
                "status": "partial",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "good",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 82,
            "inputs": {
              "primary_language": "Python",
              "largest_source_bytes": 77750,
              "source_files_sampled": 263,
              "oversized_source_files": 1
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "Python with type-check config (dashboard/tsconfig.json, vscode-extension/tsconfig.json)",
                "points": 27,
                "status": "partial",
                "details": [
                  {
                    "code": "typecheck_config_language",
                    "params": {
                      "files": "dashboard/tsconfig.json, vscode-extension/tsconfig.json",
                      "language": "Python"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "1/263 source files over 60KB",
                "points": 54.8,
                "status": "partial",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 263,
                      "oversized": 1
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
      }
    ],
    "metrics_version": "1.13.0"
  },
  "warnings": [
    "Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token",
    "Could not fetch npm package 'lcc-vscode' from its registry"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-27T02:38:54.124648Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/a/aiexponenthq/license-compliance-checker.svg",
  "full_name": "aiexponenthq/license-compliance-checker",
  "license_state": "standard",
  "license_spdx": "Apache-2.0"
}

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 statisticsPyPI.