Public record
Software health reportschema 0.27.0 · metrics 2.3.1 · 2026-07-29 11:41 UTC

finos / open-resource-broker

A unified API for orchestrating and provisioning compute capacity programmatically. Define what you need in a template, request it, track it, return it — through a CLI, REST API, Python SDK, or MCP server.

PythonApache-2.0★ 18 stars⑂ 10 forkssince Jul 2025View on GitHub ↗
KindLibraryMCP serverhow this is determined

finos/open-resource-broker holds a health index of 94 out of 100, placing it in the Exceptional band. It scores highest on Vitality (97/100) and lowest on Community & Adoption (61/100). It was last updated today. A single contributor accounts for most of its recent work.

94
overall / 100
Exceptional

Software health index

Metrics are grouped into weighted categories on one standardized 1–100 scale. Overall starts as their weighted mean, calibrated against the distribution of the public record so bands carry percentile meaning; when public evidence triggers the High-Risk Jurisdiction Policy, the rating is adjusted and receives an At Risk ceiling of 34.

94
Exceptional93-100The record's top tier (≈ top 5%); essentially all checked criteria met
Excellent80-92Strong across the board; minor gaps
Good65-79Healthy; gaps are limited and manageable
Moderate50-64Acceptable with notable gaps; review recommended
Weak35-49Material weaknesses across several areas
At Risk20-34Significant weaknesses; adoption warrants caution
Critical1-19Severe 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.

The weighted overall 81 is calibrated to 94 on the published index scale (record calibration 2026-08-02).

Ownership

1,572 followers191 public repossince Jan 2018

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

Package ecosystems

RegistryPackageVersionDownloads / moVersionsLast publishTags
Gogithub.com/finos/open-resource-brokerv1.8.5-274 days ago
PyPIorb-py1.8.513,502204 days agoawsec2hostfactorysymphonyhpcclustercloudinfrastructure

Metrics by category

Vitality

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

97Exceptional · 21% of overall
How it's scored
36/36Push recency — last push 0 days ago
33.9/36Commit cadence — 49/52 weeks with commits
18/18Commit volume — 3,256 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_year3,256
human_commit_share0.95
days_since_last_push0
active_weeks_last_year49

Release discipline

96Exceptional
How it's scored
27/27Ships releases — 28 releases published
36/36Release recency — latest release 4 days ago
27/27Release cadence — a release every ~6.3 days
6/10OpenSSF Scorecard: Signed-Releases — 3 out of the last 5 releases have a total of 3 signed artifacts.
Inputs used
releases_count28
latest_release_tagv1.8.5
releases_from_tagsno
days_since_latest_release4
mean_days_between_releases6.3

Community & Adoption

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

61Moderate · 17% of overall
How it's scored
20/60Stars — 18 stars
8/25Forks — 10 forks
0/15Watchers — 2 watchers
Inputs used
forks10
stars18
watchers2
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
readme_badges
has_contributingyes
has_issue_templateno
has_code_of_conductyes
readme_badge_services
has_pull_request_templateyes
How it's scored
55.1/80Monthly downloads — 13,502 downloads/month across go, pypi
0/20Registry dependents — not reported by this ecosystem
Inputs used
packagesgithub.com/finos/open-resource-broker, orb-py
dependents
ecosystemsgo, pypi
total_downloads
monthly_downloads13,502
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?

69Good · 23% of overall
How it's scored
9/54Bus factor — 1 contributor(s) cover half of all commits
1.6/22.5Commit distribution — top contributor authored 93% of commits
10.8/13.5Contributor breadth — 8 contributors
10/10OpenSSF Scorecard: Contributors — project has 4 contributing companies or organizations
Inputs used
bus_factor1
contributors_sampled8
top_contributor_share0.931
How it's scored
28/42Issue resolution — 67% of issues closed
25.3/30PR acceptance — 285/338 decided PRs merged
0/13Newcomer PR acceptance — no first-time contributor's PR decided in 30d
15/15OpenSSF Scorecard: Code-Review — all changesets reviewed
Inputs used
merged_prs285
open_issues2
closed_issues4
prs_merged_7d
prs_decided_7d
prs_merged_30d
prs_decided_30d
issue_closed_ratio0.667
closed_unmerged_prs53
first_time_authors_30d
first_time_prs_merged_30d
first_time_prs_decided_30d
Excluded from scoring (no data or not applicable): newcomer_pr_acceptance. Remaining weights renormalized.
How it's scored
30/30Ownership backing — organization-owned
0/20Verified domain
23/25Owner reach — 1,572 followers of finos
25/25Track record — 191 public repos, account ~8 yr old
Inputs used
followers1,572
owner_typeOrganization
is_verified
owner_loginfinos
public_repos191
account_age_days3,119

Package maintenance

100Exceptional
How it's scored
25/25Published & resolvable — 2 package(s) on go, pypi
35/35Publish recency — latest publish 4 days ago
20/20Version history — 27 published versions
20/20Not deprecated — active, not deprecated or yanked
Inputs used
packagesgithub.com/finos/open-resource-broker, orb-py
ecosystemsgo, pypi
any_deprecatedno
min_days_since_publish4

Engineering Quality

Are baseline engineering and documentation practices in place?

92Excellent · 19% of overall
How it's scored
24/24CI workflows — 23 workflow(s)
24/24Tests present
16/16Linter config — .golangci.yml, ruff.toml, tox.ini
9.6/9.6Pre-commit hooks
0/6.4.editorconfig
20/20OpenSSF Scorecard: CI-Tests — 4 out of 4 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://finos.github.io/open-resource-broker/
10/10Repository description
0/10Topics
10/10Wiki
Inputs used
topics
has_wikiyes
homepagehttps://finos.github.io/open-resource-broker/
has_readmeyes
has_docs_diryes
has_descriptionyes

Security

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

86Excellent · 16% of overall

Security posture

83Excellent
How it's scored
6/7.5Binary-Artifacts — binaries present in source code
4.5/7.5Branch-Protection — branch protection is not maximal on development and all release branches
2.5/2.5CI-Tests — 4 out of 4 merged PRs checked by a CI test -- score normalized to 10
1.2/2.5CII-Best-Practices — badge detected: Passing
7.5/7.5Code-Review — all changesets reviewed
2.5/2.5Contributors — project has 4 contributing companies or organizations
10/10Dangerous-Workflow — no dangerous workflow patterns detected
7.5/7.5Dependency-Update-Tool — 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
2.5/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 5
5/5SAST — SAST tool detected
5/5Security-Policy — security policy file detected
4.5/7.5Signed-Releases — 3 out of the last 5 releases have a total of 3 signed artifacts.
7.5/7.5Token-Permissions — GitHub workflow tokens follow principle of least privilege
6/7.5Vulnerabilities — 2 existing vulnerabilities detected
Inputs used
sourceopenssf_scorecard
checks_evaluated18
scorecard_versionv5.5.0
checks_inconclusive0
scorecard_aggregate8.3

Dependency advisories

100Exceptional
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_packages32
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:orb-py@1.8.5 runtime dependency closure — what installing the published package pulls in — 32 packages. Reachability is not analyzed.

AI Readiness

How well is the repo equipped to be developed and maintained with AI coding agents? Carries a deliberately small weight (4%): agent tooling is a real maintenance signal, but a repository with none can still reach 100/100.

87Excellent · 4% of overall
How it's scored
45/45Agent instructions — k8s-legacy/AGENTS.md
0/15Machine-readable docs (llms.txt)
40/40Legible commit history — 95 of 95 human commits state their intent (structured subject or explanatory body)
Inputs used
has_llms_txtno
legible_history_share1
agent_instruction_filesk8s-legacy/AGENTS.md
agent_instruction_max_bytes1,328
How it's scored
18/18One-command bootstrap — Makefile, sdk/go/Makefile
22/22Automated tests
11/11Lint / format config — .golangci.yml, ruff.toml, tox.ini
11/11Static type checking — sdk/typescript/tsconfig.json, src/orb/api/documentation/py.typed, src/orb/api/middleware/py.typed, src/orb/api/models/py.typed, src/orb/api/py.typed, src/orb/api/routers/py.typed, src/orb/application/base/py.typed, src/orb/application/commands/py.typed, src/orb/application/dto/py.typed, src/orb/application/events/base/py.typed, src/orb/application/events/bus/py.typed, src/orb/application/events/handlers/py.typed, src/orb/application/events/py.typed, src/orb/application/interfaces/py.typed, src/orb/application/machine/py.typed, src/orb/application/provider/py.typed, src/orb/application/py.typed, src/orb/application/queries/py.typed, src/orb/application/request/py.typed, src/orb/application/template/py.typed, src/orb/cli/py.typed, src/orb/config/managers/py.typed, src/orb/config/py.typed, src/orb/config/schemas/py.typed, src/orb/config/utils/py.typed, src/orb/config/validators/py.typed, src/orb/domain/base/events/py.typed, src/orb/domain/base/ports/py.typed, src/orb/domain/base/py.typed, src/orb/domain/machine/py.typed, src/orb/domain/py.typed, src/orb/domain/request/py.typed, src/orb/domain/template/py.typed, src/orb/infrastructure/adapters/factories/py.typed, src/orb/infrastructure/adapters/ports/auth/py.typed, src/orb/infrastructure/adapters/ports/py.typed, src/orb/infrastructure/adapters/py.typed, src/orb/infrastructure/auth/py.typed, src/orb/infrastructure/auth/strategy/py.typed, src/orb/infrastructure/caching/py.typed, src/orb/infrastructure/di/components/py.typed, src/orb/infrastructure/di/py.typed, src/orb/infrastructure/error/py.typed, src/orb/infrastructure/events/py.typed, src/orb/infrastructure/handlers/base/py.typed, src/orb/infrastructure/handlers/py.typed, src/orb/infrastructure/interfaces/py.typed, src/orb/infrastructure/logging/py.typed, src/orb/infrastructure/mocking/py.typed, src/orb/infrastructure/patterns/py.typed, src/orb/infrastructure/py.typed, src/orb/infrastructure/registry/py.typed, src/orb/infrastructure/resilience/py.typed, src/orb/infrastructure/resilience/strategy/py.typed, src/orb/infrastructure/scheduler/base/py.typed, src/orb/infrastructure/scheduler/default/py.typed, src/orb/infrastructure/scheduler/hostfactory/py.typed, src/orb/infrastructure/scheduler/py.typed, src/orb/infrastructure/serialization/py.typed, src/orb/infrastructure/storage/base/py.typed, src/orb/infrastructure/storage/components/py.typed, src/orb/infrastructure/storage/json/py.typed, src/orb/infrastructure/storage/py.typed, src/orb/infrastructure/storage/repositories/py.typed, src/orb/infrastructure/storage/sql/py.typed, src/orb/infrastructure/template/py.typed, src/orb/infrastructure/utilities/common/collections/py.typed, src/orb/infrastructure/utilities/common/py.typed, src/orb/infrastructure/utilities/factories/py.typed, src/orb/infrastructure/utilities/file/py.typed, src/orb/infrastructure/utilities/py.typed, src/orb/interface/py.typed, src/orb/monitoring/py.typed, src/orb/providers/aws/application/events/py.typed, src/orb/providers/aws/application/machine/py.typed, src/orb/providers/aws/application/py.typed, src/orb/providers/aws/application/request/py.typed, src/orb/providers/aws/application/template/py.typed, src/orb/providers/aws/auth/py.typed, src/orb/providers/aws/configuration/py.typed, src/orb/providers/aws/domain/machine/py.typed, src/orb/providers/aws/domain/py.typed, src/orb/providers/aws/domain/request/py.typed, src/orb/providers/aws/domain/template/py.typed, src/orb/providers/aws/exceptions/py.typed, src/orb/providers/aws/infrastructure/adapters/py.typed, src/orb/providers/aws/infrastructure/handlers/components/py.typed, src/orb/providers/aws/infrastructure/handlers/py.typed, src/orb/providers/aws/infrastructure/launch_template/py.typed, src/orb/providers/aws/infrastructure/py.typed, src/orb/providers/aws/infrastructure/template/py.typed, src/orb/providers/aws/persistence/py.typed, src/orb/providers/aws/py.typed, src/orb/providers/aws/resilience/py.typed, src/orb/providers/aws/storage/components/py.typed, src/orb/providers/aws/storage/py.typed, src/orb/providers/aws/strategy/py.typed, src/orb/providers/aws/utilities/ec2/py.typed, src/orb/providers/aws/utilities/py.typed, src/orb/providers/base/py.typed, src/orb/providers/base/strategy/load_balancing/py.typed, src/orb/providers/base/strategy/py.typed, src/orb/providers/k8s/adapters/py.typed, src/orb/providers/k8s/auth/py.typed, src/orb/providers/k8s/cli/py.typed, src/orb/providers/k8s/config/py.typed, src/orb/providers/k8s/configuration/py.typed, src/orb/providers/k8s/domain/py.typed, src/orb/providers/k8s/domain/template/py.typed, src/orb/providers/k8s/exceptions/py.typed, src/orb/providers/k8s/infrastructure/adapters/py.typed, src/orb/providers/k8s/infrastructure/handlers/py.typed, src/orb/providers/k8s/infrastructure/handlers/shared/py.typed, src/orb/providers/k8s/infrastructure/instrumentation/py.typed, src/orb/providers/k8s/infrastructure/py.typed, src/orb/providers/k8s/infrastructure/services/py.typed, src/orb/providers/k8s/py.typed, src/orb/providers/k8s/reconciliation/py.typed, src/orb/providers/k8s/resilience/py.typed, src/orb/providers/k8s/scheduler/py.typed, src/orb/providers/k8s/services/py.typed, src/orb/providers/k8s/strategy/py.typed, src/orb/providers/k8s/utilities/py.typed, src/orb/providers/k8s/validation/py.typed, src/orb/providers/k8s/watch/py.typed, src/orb/providers/py.typed, src/orb/sdk/py.typed, src/py.typed
10/10Reproducible environment — Dockerfile, Nix, lockfile
0/10Demonstrated agent practice — no agent-authored commits among the last 100
8/8Automated maintenance — 3 of the last 100 commits are automated dependency updates
5/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 5
Inputs used
has_nixyes
has_testsyes
lockfilespackage-lock.json, uv.lock
has_dockerfileyes
typed_languageno
bootstrap_filesMakefile, sdk/go/Makefile
has_devcontainerno
has_linter_configyes
typecheck_configssdk/typescript/tsconfig.json, src/orb/api/documentation/py.typed, src/orb/api/middleware/py.typed, src/orb/api/models/py.typed, src/orb/api/py.typed, src/orb/api/routers/py.typed, src/orb/application/base/py.typed, src/orb/application/commands/py.typed, src/orb/application/dto/py.typed, src/orb/application/events/base/py.typed, src/orb/application/events/bus/py.typed, src/orb/application/events/handlers/py.typed, src/orb/application/events/py.typed, src/orb/application/interfaces/py.typed, src/orb/application/machine/py.typed, src/orb/application/provider/py.typed, src/orb/application/py.typed, src/orb/application/queries/py.typed, src/orb/application/request/py.typed, src/orb/application/template/py.typed, src/orb/cli/py.typed, src/orb/config/managers/py.typed, src/orb/config/py.typed, src/orb/config/schemas/py.typed, src/orb/config/utils/py.typed, src/orb/config/validators/py.typed, src/orb/domain/base/events/py.typed, src/orb/domain/base/ports/py.typed, src/orb/domain/base/py.typed, src/orb/domain/machine/py.typed, src/orb/domain/py.typed, src/orb/domain/request/py.typed, src/orb/domain/template/py.typed, src/orb/infrastructure/adapters/factories/py.typed, src/orb/infrastructure/adapters/ports/auth/py.typed, src/orb/infrastructure/adapters/ports/py.typed, src/orb/infrastructure/adapters/py.typed, src/orb/infrastructure/auth/py.typed, src/orb/infrastructure/auth/strategy/py.typed, src/orb/infrastructure/caching/py.typed, src/orb/infrastructure/di/components/py.typed, src/orb/infrastructure/di/py.typed, src/orb/infrastructure/error/py.typed, src/orb/infrastructure/events/py.typed, src/orb/infrastructure/handlers/base/py.typed, src/orb/infrastructure/handlers/py.typed, src/orb/infrastructure/interfaces/py.typed, src/orb/infrastructure/logging/py.typed, src/orb/infrastructure/mocking/py.typed, src/orb/infrastructure/patterns/py.typed, src/orb/infrastructure/py.typed, src/orb/infrastructure/registry/py.typed, src/orb/infrastructure/resilience/py.typed, src/orb/infrastructure/resilience/strategy/py.typed, src/orb/infrastructure/scheduler/base/py.typed, src/orb/infrastructure/scheduler/default/py.typed, src/orb/infrastructure/scheduler/hostfactory/py.typed, src/orb/infrastructure/scheduler/py.typed, src/orb/infrastructure/serialization/py.typed, src/orb/infrastructure/storage/base/py.typed, src/orb/infrastructure/storage/components/py.typed, src/orb/infrastructure/storage/json/py.typed, src/orb/infrastructure/storage/py.typed, src/orb/infrastructure/storage/repositories/py.typed, src/orb/infrastructure/storage/sql/py.typed, src/orb/infrastructure/template/py.typed, src/orb/infrastructure/utilities/common/collections/py.typed, src/orb/infrastructure/utilities/common/py.typed, src/orb/infrastructure/utilities/factories/py.typed, src/orb/infrastructure/utilities/file/py.typed, src/orb/infrastructure/utilities/py.typed, src/orb/interface/py.typed, src/orb/monitoring/py.typed, src/orb/providers/aws/application/events/py.typed, src/orb/providers/aws/application/machine/py.typed, src/orb/providers/aws/application/py.typed, src/orb/providers/aws/application/request/py.typed, src/orb/providers/aws/application/template/py.typed, src/orb/providers/aws/auth/py.typed, src/orb/providers/aws/configuration/py.typed, src/orb/providers/aws/domain/machine/py.typed, src/orb/providers/aws/domain/py.typed, src/orb/providers/aws/domain/request/py.typed, src/orb/providers/aws/domain/template/py.typed, src/orb/providers/aws/exceptions/py.typed, src/orb/providers/aws/infrastructure/adapters/py.typed, src/orb/providers/aws/infrastructure/handlers/components/py.typed, src/orb/providers/aws/infrastructure/handlers/py.typed, src/orb/providers/aws/infrastructure/launch_template/py.typed, src/orb/providers/aws/infrastructure/py.typed, src/orb/providers/aws/infrastructure/template/py.typed, src/orb/providers/aws/persistence/py.typed, src/orb/providers/aws/py.typed, src/orb/providers/aws/resilience/py.typed, src/orb/providers/aws/storage/components/py.typed, src/orb/providers/aws/storage/py.typed, src/orb/providers/aws/strategy/py.typed, src/orb/providers/aws/utilities/ec2/py.typed, src/orb/providers/aws/utilities/py.typed, src/orb/providers/base/py.typed, src/orb/providers/base/strategy/load_balancing/py.typed, src/orb/providers/base/strategy/py.typed, src/orb/providers/k8s/adapters/py.typed, src/orb/providers/k8s/auth/py.typed, src/orb/providers/k8s/cli/py.typed, src/orb/providers/k8s/config/py.typed, src/orb/providers/k8s/configuration/py.typed, src/orb/providers/k8s/domain/py.typed, src/orb/providers/k8s/domain/template/py.typed, src/orb/providers/k8s/exceptions/py.typed, src/orb/providers/k8s/infrastructure/adapters/py.typed, src/orb/providers/k8s/infrastructure/handlers/py.typed, src/orb/providers/k8s/infrastructure/handlers/shared/py.typed, src/orb/providers/k8s/infrastructure/instrumentation/py.typed, src/orb/providers/k8s/infrastructure/py.typed, src/orb/providers/k8s/infrastructure/services/py.typed, src/orb/providers/k8s/py.typed, src/orb/providers/k8s/reconciliation/py.typed, src/orb/providers/k8s/resilience/py.typed, src/orb/providers/k8s/scheduler/py.typed, src/orb/providers/k8s/services/py.typed, src/orb/providers/k8s/strategy/py.typed, src/orb/providers/k8s/utilities/py.typed, src/orb/providers/k8s/validation/py.typed, src/orb/providers/k8s/watch/py.typed, src/orb/providers/py.typed, src/orb/sdk/py.typed, src/py.typed
agent_commit_share0
toolchain_manifestsgo.mod, sdk/csharp/src/FINOS.OpenResourceBroker/FINOS.OpenResourceBroker.csproj, sdk/csharp/tests/contract/ContractTests.csproj, sdk/csharp/tests/parity/ParityTests.csproj, sdk/csharp/tests/unit/UnitTests.csproj, sdk/go/go.mod, sdk/java/build.gradle, sdk/kotlin/build.gradle.kts
dependency_bot_commit_share0.03
How it's scored
27/45Type-checkable code — Python with type-check config (sdk/typescript/tsconfig.json, src/orb/api/documentation/py.typed, src/orb/api/middleware/py.typed, src/orb/api/models/py.typed, src/orb/api/py.typed, src/orb/api/routers/py.typed, src/orb/application/base/py.typed, src/orb/application/commands/py.typed, src/orb/application/dto/py.typed, src/orb/application/events/base/py.typed, src/orb/application/events/bus/py.typed, src/orb/application/events/handlers/py.typed, src/orb/application/events/py.typed, src/orb/application/interfaces/py.typed, src/orb/application/machine/py.typed, src/orb/application/provider/py.typed, src/orb/application/py.typed, src/orb/application/queries/py.typed, src/orb/application/request/py.typed, src/orb/application/template/py.typed, src/orb/cli/py.typed, src/orb/config/managers/py.typed, src/orb/config/py.typed, src/orb/config/schemas/py.typed, src/orb/config/utils/py.typed, src/orb/config/validators/py.typed, src/orb/domain/base/events/py.typed, src/orb/domain/base/ports/py.typed, src/orb/domain/base/py.typed, src/orb/domain/machine/py.typed, src/orb/domain/py.typed, src/orb/domain/request/py.typed, src/orb/domain/template/py.typed, src/orb/infrastructure/adapters/factories/py.typed, src/orb/infrastructure/adapters/ports/auth/py.typed, src/orb/infrastructure/adapters/ports/py.typed, src/orb/infrastructure/adapters/py.typed, src/orb/infrastructure/auth/py.typed, src/orb/infrastructure/auth/strategy/py.typed, src/orb/infrastructure/caching/py.typed, src/orb/infrastructure/di/components/py.typed, src/orb/infrastructure/di/py.typed, src/orb/infrastructure/error/py.typed, src/orb/infrastructure/events/py.typed, src/orb/infrastructure/handlers/base/py.typed, src/orb/infrastructure/handlers/py.typed, src/orb/infrastructure/interfaces/py.typed, src/orb/infrastructure/logging/py.typed, src/orb/infrastructure/mocking/py.typed, src/orb/infrastructure/patterns/py.typed, src/orb/infrastructure/py.typed, src/orb/infrastructure/registry/py.typed, src/orb/infrastructure/resilience/py.typed, src/orb/infrastructure/resilience/strategy/py.typed, src/orb/infrastructure/scheduler/base/py.typed, src/orb/infrastructure/scheduler/default/py.typed, src/orb/infrastructure/scheduler/hostfactory/py.typed, src/orb/infrastructure/scheduler/py.typed, src/orb/infrastructure/serialization/py.typed, src/orb/infrastructure/storage/base/py.typed, src/orb/infrastructure/storage/components/py.typed, src/orb/infrastructure/storage/json/py.typed, src/orb/infrastructure/storage/py.typed, src/orb/infrastructure/storage/repositories/py.typed, src/orb/infrastructure/storage/sql/py.typed, src/orb/infrastructure/template/py.typed, src/orb/infrastructure/utilities/common/collections/py.typed, src/orb/infrastructure/utilities/common/py.typed, src/orb/infrastructure/utilities/factories/py.typed, src/orb/infrastructure/utilities/file/py.typed, src/orb/infrastructure/utilities/py.typed, src/orb/interface/py.typed, src/orb/monitoring/py.typed, src/orb/providers/aws/application/events/py.typed, src/orb/providers/aws/application/machine/py.typed, src/orb/providers/aws/application/py.typed, src/orb/providers/aws/application/request/py.typed, src/orb/providers/aws/application/template/py.typed, src/orb/providers/aws/auth/py.typed, src/orb/providers/aws/configuration/py.typed, src/orb/providers/aws/domain/machine/py.typed, src/orb/providers/aws/domain/py.typed, src/orb/providers/aws/domain/request/py.typed, src/orb/providers/aws/domain/template/py.typed, src/orb/providers/aws/exceptions/py.typed, src/orb/providers/aws/infrastructure/adapters/py.typed, src/orb/providers/aws/infrastructure/handlers/components/py.typed, src/orb/providers/aws/infrastructure/handlers/py.typed, src/orb/providers/aws/infrastructure/launch_template/py.typed, src/orb/providers/aws/infrastructure/py.typed, src/orb/providers/aws/infrastructure/template/py.typed, src/orb/providers/aws/persistence/py.typed, src/orb/providers/aws/py.typed, src/orb/providers/aws/resilience/py.typed, src/orb/providers/aws/storage/components/py.typed, src/orb/providers/aws/storage/py.typed, src/orb/providers/aws/strategy/py.typed, src/orb/providers/aws/utilities/ec2/py.typed, src/orb/providers/aws/utilities/py.typed, src/orb/providers/base/py.typed, src/orb/providers/base/strategy/load_balancing/py.typed, src/orb/providers/base/strategy/py.typed, src/orb/providers/k8s/adapters/py.typed, src/orb/providers/k8s/auth/py.typed, src/orb/providers/k8s/cli/py.typed, src/orb/providers/k8s/config/py.typed, src/orb/providers/k8s/configuration/py.typed, src/orb/providers/k8s/domain/py.typed, src/orb/providers/k8s/domain/template/py.typed, src/orb/providers/k8s/exceptions/py.typed, src/orb/providers/k8s/infrastructure/adapters/py.typed, src/orb/providers/k8s/infrastructure/handlers/py.typed, src/orb/providers/k8s/infrastructure/handlers/shared/py.typed, src/orb/providers/k8s/infrastructure/instrumentation/py.typed, src/orb/providers/k8s/infrastructure/py.typed, src/orb/providers/k8s/infrastructure/services/py.typed, src/orb/providers/k8s/py.typed, src/orb/providers/k8s/reconciliation/py.typed, src/orb/providers/k8s/resilience/py.typed, src/orb/providers/k8s/scheduler/py.typed, src/orb/providers/k8s/services/py.typed, src/orb/providers/k8s/strategy/py.typed, src/orb/providers/k8s/utilities/py.typed, src/orb/providers/k8s/validation/py.typed, src/orb/providers/k8s/watch/py.typed, src/orb/providers/py.typed, src/orb/sdk/py.typed, src/py.typed)
54.8/55Manageable file sizes — 9/2,139 source files over 60KB
Inputs used
primary_languagePython
largest_source_bytes110,768
source_files_sampled2,139
oversized_source_files9
How it's scored
40/40API schema (OpenAPI/GraphQL/proto) — sdk/spec/openapi.json
20/20MCP server
40/40Runnable examples — examples
Inputs used
example_dirsexamples
has_mcp_signalyes
api_schema_filessdk/spec/openapi.json

Key facts

18GitHub stars
8contributors
3,256commits, last 12 months
0days since last push
28releases
1bus factor
2open issues
Go, PyPIpackage ecosystems

Data collection warnings

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

More detail

Star and fork history 0 ★ / 10 ⇿
0Stars
10Forks
12Releases

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

02468101022026-032026-052026-07
Major 0Minor 6Patch 6
OpenSSF Scorecard 8.3 / 10
8.3aggregate

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-29 11:41 UTC

8Binary-Artifactsbinaries present in source code
6Branch-Protectionbranch protection is not maximal on development and all release branches
10CI-Tests4 out of 4 merged PRs checked by a CI test -- score normalized to 10
5CII-Best-Practicesbadge detected: Passing
10Code-Reviewall changesets reviewed
10Contributorsproject has 4 contributing companies or organizations
10Dangerous-Workflowno dangerous workflow patterns detected
10Dependency-Update-Toolupdate 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
5Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 5
10SASTSAST tool detected
10Security-Policysecurity policy file detected
6Signed-Releases3 out of the last 5 releases have a total of 3 signed artifacts.
10Token-PermissionsGitHub workflow tokens follow principle of least privilege
8Vulnerabilities2 existing vulnerabilities detected
Direct dependencies 13
RegistryPackageVersion constraintManifest
PyPIpydantic>=2.0.0pyproject.toml
PyPIpydantic-settings>=2.0.0pyproject.toml
PyPIsqlalchemy>=2.0.0pyproject.toml
PyPIurllib3>=2.6.3pyproject.toml
PyPIPyJWT>=2.8.0pyproject.toml
PyPIcryptography>=46.0.5pyproject.toml
PyPIfilelock>=3.20.1pyproject.toml
PyPIrequests>=2.31.0pyproject.toml
PyPIPyYAML>=6.0.0pyproject.toml
PyPIjsonschema>=4.17.0pyproject.toml
PyPIboto3>=1.42.21pyproject.toml
PyPIbotocore>=1.42.21pyproject.toml
PyPIpsutil>=5.9.0pyproject.toml
All dependencies 721

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

RegistryPackageVersionRelation
PyPIboto31.43.56direct
PyPIbotocore1.43.56direct
PyPIcryptography49.0.0direct
PyPIfilelock3.32.0direct
PyPIjsonschema4.26.0direct
PyPIpsutil7.2.2direct
PyPIpydantic2.13.4direct
PyPIpydantic-settings2.14.2direct
PyPIpyjwt2.13.0direct
PyPIpyyaml6.0.3direct
PyPIrequests2.34.2direct
PyPIsqlalchemy2.0.51direct
PyPIurllib32.7.0direct
npm@aws-crypto/sha256-js5.2.0indirect
npm@aws-crypto/util5.2.0indirect
npm@aws-sdk/core3.975.3indirect
npm@aws-sdk/credential-provider-cognito-identity3.972.58indirect
npm@aws-sdk/credential-provider-env3.972.59indirect
npm@aws-sdk/credential-provider-http3.972.61indirect
npm@aws-sdk/credential-provider-ini3.973.4indirect
npm@aws-sdk/credential-provider-login3.972.66indirect
npm@aws-sdk/credential-provider-node3.972.70indirect
npm@aws-sdk/credential-provider-process3.972.59indirect
npm@aws-sdk/credential-provider-sso3.973.3indirect
npm@aws-sdk/credential-provider-web-identity3.972.65indirect
npm@aws-sdk/credential-providers3.1089.0indirect
npm@aws-sdk/nested-clients3.997.33indirect
npm@aws-sdk/signature-v4-multi-region3.996.41indirect
npm@aws-sdk/token-providers3.1088.0indirect
npm@aws-sdk/types3.974.2indirect
npm@aws-sdk/xml-builder3.972.36indirect
npm@aws/lambda-invoke-store0.3.0indirect
npm@babel/code-frame7.29.7indirect
npm@babel/compat-data7.29.7indirect
npm@babel/core7.29.7indirect
npm@babel/generator7.29.7indirect
npm@babel/helper-compilation-targets7.29.7indirect
npm@babel/helper-globals7.29.7indirect
npm@babel/helper-module-imports7.29.7indirect
npm@babel/helper-module-transforms7.29.7indirect
npm@babel/helper-plugin-utils7.29.7indirect
npm@babel/helper-string-parser7.29.7indirect
npm@babel/helper-validator-identifier7.29.7indirect
npm@babel/helper-validator-option7.29.7indirect
npm@babel/helpers7.29.7indirect
npm@babel/parser7.29.7indirect
npm@babel/plugin-syntax-async-generators7.8.4indirect
npm@babel/plugin-syntax-bigint7.8.3indirect
npm@babel/plugin-syntax-class-properties7.12.13indirect
npm@babel/plugin-syntax-class-static-block7.14.5indirect
npm@babel/plugin-syntax-import-attributes7.29.7indirect
npm@babel/plugin-syntax-import-meta7.10.4indirect
npm@babel/plugin-syntax-json-strings7.8.3indirect
npm@babel/plugin-syntax-jsx7.29.7indirect
npm@babel/plugin-syntax-logical-assignment-operators7.10.4indirect
npm@babel/plugin-syntax-nullish-coalescing-operator7.8.3indirect
npm@babel/plugin-syntax-numeric-separator7.10.4indirect
npm@babel/plugin-syntax-object-rest-spread7.8.3indirect
npm@babel/plugin-syntax-optional-catch-binding7.8.3indirect
npm@babel/plugin-syntax-optional-chaining7.8.3indirect
npm@babel/plugin-syntax-private-property-in-object7.14.5indirect
npm@babel/plugin-syntax-top-level-await7.14.5indirect
npm@babel/plugin-syntax-typescript7.29.7indirect
npm@babel/template7.29.7indirect
npm@babel/traverse7.29.7indirect
npm@babel/types7.29.7indirect
npm@bcoe/v8-coverage0.2.3indirect
npm@esbuild/aix-ppc640.27.7indirect
npm@esbuild/android-arm0.27.7indirect
npm@esbuild/android-arm640.27.7indirect
npm@esbuild/android-x640.27.7indirect
npm@esbuild/darwin-arm640.27.7indirect
npm@esbuild/darwin-x640.27.7indirect
npm@esbuild/freebsd-arm640.27.7indirect
npm@esbuild/freebsd-x640.27.7indirect
npm@esbuild/linux-arm0.27.7indirect
npm@esbuild/linux-arm640.27.7indirect
npm@esbuild/linux-ia320.27.7indirect
npm@esbuild/linux-loong640.27.7indirect
npm@esbuild/linux-mips64el0.27.7indirect
npm@esbuild/linux-ppc640.27.7indirect
npm@esbuild/linux-riscv640.27.7indirect
npm@esbuild/linux-s390x0.27.7indirect
npm@esbuild/linux-x640.27.7indirect
npm@esbuild/netbsd-arm640.27.7indirect
npm@esbuild/netbsd-x640.27.7indirect
npm@esbuild/openbsd-arm640.27.7indirect
npm@esbuild/openbsd-x640.27.7indirect
npm@esbuild/openharmony-arm640.27.7indirect
npm@esbuild/sunos-x640.27.7indirect
npm@esbuild/win32-arm640.27.7indirect
npm@esbuild/win32-ia320.27.7indirect
npm@esbuild/win32-x640.27.7indirect
npm@istanbuljs/load-nyc-config1.1.0indirect
npm@istanbuljs/schema0.1.6indirect
npm@jest/console29.7.0indirect
npm@jest/core29.7.0indirect
npm@jest/environment29.7.0indirect
npm@jest/expect29.7.0indirect
npm@jest/expect-utils29.7.0indirect
npm@jest/fake-timers29.7.0indirect
npm@jest/globals29.7.0indirect
npm@jest/reporters29.7.0indirect
npm@jest/schemas29.6.3indirect
npm@jest/source-map29.6.3indirect
npm@jest/test-result29.7.0indirect
npm@jest/test-sequencer29.7.0indirect
npm@jest/transform29.7.0indirect
npm@jest/types29.6.3indirect
npm@jridgewell/gen-mapping0.3.13indirect
npm@jridgewell/remapping2.3.5indirect
npm@jridgewell/resolve-uri3.1.2indirect
npm@jridgewell/sourcemap-codec1.5.5indirect
npm@jridgewell/trace-mapping0.3.31indirect
npm@rollup/rollup-android-arm-eabi4.62.2indirect
npm@rollup/rollup-android-arm644.62.2indirect
npm@rollup/rollup-darwin-arm644.62.2indirect
npm@rollup/rollup-darwin-x644.62.2indirect
npm@rollup/rollup-freebsd-arm644.62.2indirect
npm@rollup/rollup-freebsd-x644.62.2indirect
npm@rollup/rollup-linux-arm-gnueabihf4.62.2indirect
npm@rollup/rollup-linux-arm-musleabihf4.62.2indirect
npm@rollup/rollup-linux-arm64-gnu4.62.2indirect
npm@rollup/rollup-linux-arm64-musl4.62.2indirect
npm@rollup/rollup-linux-loong64-gnu4.62.2indirect
npm@rollup/rollup-linux-loong64-musl4.62.2indirect
npm@rollup/rollup-linux-ppc64-gnu4.62.2indirect
npm@rollup/rollup-linux-ppc64-musl4.62.2indirect
npm@rollup/rollup-linux-riscv64-gnu4.62.2indirect
npm@rollup/rollup-linux-riscv64-musl4.62.2indirect
npm@rollup/rollup-linux-s390x-gnu4.62.2indirect
npm@rollup/rollup-linux-x64-gnu4.62.2indirect
npm@rollup/rollup-linux-x64-musl4.62.2indirect
npm@rollup/rollup-openbsd-x644.62.2indirect
npm@rollup/rollup-openharmony-arm644.62.2indirect
npm@rollup/rollup-win32-arm64-msvc4.62.2indirect
npm@rollup/rollup-win32-ia32-msvc4.62.2indirect
npm@rollup/rollup-win32-x64-gnu4.62.2indirect
npm@rollup/rollup-win32-x64-msvc4.62.2indirect
npm@sinclair/typebox0.27.12indirect
npm@sinonjs/commons3.0.1indirect
npm@sinonjs/fake-timers10.3.0indirect
npm@smithy/core3.29.5indirect
npm@smithy/credential-provider-imds4.4.10indirect
npm@smithy/fetch-http-handler5.6.7indirect
npm@smithy/is-array-buffer2.2.0indirect
npm@smithy/node-http-handler4.9.7indirect
npm@smithy/protocol-http5.5.10indirect
npm@smithy/signature-v45.6.6indirect
npm@smithy/types4.16.1indirect
npm@smithy/util-buffer-from2.2.0indirect
npm@smithy/util-utf82.3.0indirect
npm@types/babel__core7.20.5indirect
npm@types/babel__generator7.27.0indirect
npm@types/babel__template7.4.4indirect
npm@types/babel__traverse7.28.0indirect
npm@types/estree1.0.9indirect
npm@types/graceful-fs4.1.9indirect
npm@types/istanbul-lib-coverage2.0.6indirect
npm@types/istanbul-lib-report3.0.3indirect
npm@types/istanbul-reports3.0.4indirect
npm@types/jest29.5.14indirect
npm@types/node20.19.43indirect
npm@types/stack-utils2.0.3indirect
npm@types/yargs17.0.35indirect
npm@types/yargs-parser21.0.3indirect
npmacorn8.17.0indirect
npmagent-base6.0.2indirect
npmansi-escapes4.3.2indirect
npmansi-regex5.0.1indirect
npmansi-styles4.3.0indirect
npmansi-styles5.2.0indirect
npmany-promise1.3.0indirect
npmanymatch3.1.3indirect
npmargparse1.0.10indirect
npmasynckit0.4.0indirect
npmaxios1.18.1indirect
npmbabel-jest29.7.0indirect
npmbabel-plugin-istanbul6.1.1indirect
npmbabel-plugin-jest-hoist29.6.3indirect
npmbabel-preset-current-node-syntax1.2.0indirect
npmbabel-preset-jest29.6.3indirect
npmbalanced-match1.0.2indirect
npmbaseline-browser-mapping2.10.43indirect
npmbowser2.14.1indirect
npmbrace-expansion1.1.16indirect
npmbraces3.0.3indirect
npmbrowserslist4.28.6indirect
npmbs-logger0.2.6indirect
npmbser2.1.1indirect
npmbuffer-from1.1.2indirect
npmbundle-require5.1.0indirect
npmcac6.7.14indirect
npmcall-bind-apply-helpers1.0.2indirect
npmcallsites3.1.0indirect
npmcamelcase5.3.1indirect
npmcamelcase6.3.0indirect
npmcaniuse-lite1.0.30001806indirect
npmchalk4.1.2indirect
npmchar-regex1.0.2indirect
npmchokidar4.0.3indirect
npmci-info3.9.0indirect
npmcjs-module-lexer1.4.3indirect
npmcliui8.0.1indirect
npmco4.6.0indirect
npmcollect-v8-coverage1.0.3indirect
npmcolor-convert2.0.1indirect
npmcolor-name1.1.4indirect
npmcombined-stream1.0.8indirect
npmcommander4.1.1indirect
npmconcat-map0.0.1indirect
npmconfbox0.1.8indirect
npmconsola3.4.2indirect
npmconvert-source-map2.0.0indirect
npmcreate-jest29.7.0indirect
npmcross-spawn7.0.6indirect
npmdebug4.4.3indirect
npmdedent1.7.2indirect
npmdeepmerge4.3.1indirect
npmdelayed-stream1.0.0indirect
npmdetect-newline3.1.0indirect
npmdiff-sequences29.6.3indirect
npmdunder-proto1.0.1indirect
npmelectron-to-chromium1.5.393indirect
npmemittery0.13.1indirect
npmemoji-regex8.0.0indirect
npmerror-ex1.3.4indirect
npmes-define-property1.0.1indirect
npmes-errors1.3.0indirect
npmes-object-atoms1.1.2indirect
npmes-set-tostringtag2.1.0indirect
npmesbuild0.27.7indirect
npmescalade3.2.0indirect
npmescape-string-regexp2.0.0indirect
npmesprima4.0.1indirect
npmexeca5.1.1indirect
npmexit0.1.2indirect
npmexpect29.7.0indirect
npmfast-json-stable-stringify2.1.0indirect
npmfb-watchman2.0.2indirect
npmfdir6.5.0indirect
npmfill-range7.1.1indirect
npmfind-up4.1.0indirect
npmfix-dts-default-cjs-exports1.0.1indirect
npmfollow-redirects1.16.0indirect
npmform-data4.0.6indirect
npmfs.realpath1.0.0indirect
npmfsevents2.3.3indirect
npmfunction-bind1.1.2indirect
npmgensync1.0.0-beta.2indirect
npmget-caller-file2.0.5indirect
npmget-intrinsic1.3.0indirect
npmget-package-type0.1.0indirect
npmget-proto1.0.1indirect
npmget-stream6.0.1indirect
npmglob7.2.3indirect
npmgopd1.2.0indirect
npmgraceful-fs4.2.11indirect
npmhandlebars4.7.9indirect
npmhas-flag4.0.0indirect
npmhas-symbols1.1.0indirect
npmhas-tostringtag1.0.2indirect
npmhasown2.0.4indirect
npmhtml-escaper2.0.2indirect
npmhttps-proxy-agent5.0.1indirect
npmhuman-signals2.1.0indirect
npmimport-local3.2.0indirect
npmimurmurhash0.1.4indirect
npminflight1.0.6indirect
npminherits2.0.4indirect
npmis-arrayish0.2.1indirect
npmis-core-module2.16.2indirect
npmis-fullwidth-code-point3.0.0indirect
npmis-generator-fn2.1.0indirect
npmis-number7.0.0indirect
npmis-stream2.0.1indirect
npmisexe2.0.0indirect
npmistanbul-lib-coverage3.2.2indirect
npmistanbul-lib-instrument5.2.1indirect
npmistanbul-lib-instrument6.0.3indirect
npmistanbul-lib-report3.0.1indirect
npmistanbul-lib-source-maps4.0.1indirect
npmistanbul-reports3.2.0indirect
npmjest29.7.0indirect
npmjest-changed-files29.7.0indirect
npmjest-circus29.7.0indirect
npmjest-cli29.7.0indirect
npmjest-config29.7.0indirect
npmjest-diff29.7.0indirect
npmjest-docblock29.7.0indirect
npmjest-each29.7.0indirect
npmjest-environment-node29.7.0indirect
npmjest-get-type29.6.3indirect
npmjest-haste-map29.7.0indirect
npmjest-leak-detector29.7.0indirect
npmjest-matcher-utils29.7.0indirect
npmjest-message-util29.7.0indirect
npmjest-mock29.7.0indirect
npmjest-pnp-resolver1.2.3indirect
npmjest-regex-util29.6.3indirect
npmjest-resolve29.7.0indirect
npmjest-resolve-dependencies29.7.0indirect
npmjest-runner29.7.0indirect
npmjest-runtime29.7.0indirect
npmjest-snapshot29.7.0indirect
npmjest-util29.7.0indirect
npmjest-validate29.7.0indirect
npmjest-watcher29.7.0indirect
npmjest-worker29.7.0indirect
npmjoycon3.1.1indirect
npmjs-tokens4.0.0indirect
npmjs-yaml3.15.0indirect
npmjsesc3.1.0indirect
npmjson-parse-even-better-errors2.3.1indirect
npmjson52.2.3indirect
npmkleur3.0.3indirect
npmleven3.1.0indirect
npmlilconfig3.1.3indirect
npmlines-and-columns1.2.4indirect
npmload-tsconfig0.2.5indirect
npmlocate-path5.0.0indirect
npmlodash.memoize4.1.2indirect
npmlru-cache5.1.1indirect
npmmagic-string0.30.21indirect
npmmake-dir4.0.0indirect
npmmake-error1.3.6indirect
npmmakeerror1.0.12indirect
npmmath-intrinsics1.1.0indirect
npmmerge-stream2.0.0indirect
npmmicromatch4.0.8indirect
npmmime-db1.52.0indirect
npmmime-types2.1.35indirect
npmmimic-fn2.1.0indirect
npmminimatch3.1.5indirect
npmminimist1.2.8indirect
npmmlly1.8.2indirect
npmms2.1.3indirect
npmmz2.7.0indirect
npmnatural-compare1.4.0indirect
npmneo-async2.6.2indirect
npmnode-int640.4.0indirect
npmnode-releases2.0.51indirect
npmnormalize-path3.0.0indirect
npmnpm-run-path4.0.1indirect
npmobject-assign4.1.1indirect
npmonce1.4.0indirect
npmonetime5.1.2indirect
npmp-limit2.3.0indirect
npmp-limit3.1.0indirect
npmp-locate4.1.0indirect
npmp-try2.2.0indirect
npmparse-json5.2.0indirect
npmpath-exists4.0.0indirect
npmpath-is-absolute1.0.1indirect
npmpath-key3.1.1indirect
npmpath-parse1.0.7indirect
npmpathe2.0.3indirect
npmpicocolors1.1.1indirect
npmpicomatch2.3.2indirect
npmpicomatch4.0.5indirect
npmpirates4.0.7indirect
npmpkg-dir4.2.0indirect
npmpkg-types1.3.1indirect
npmpostcss-load-config6.0.1indirect
npmpretty-format29.7.0indirect
npmprompts2.4.2indirect
npmproxy-from-env2.1.0indirect
npmpure-rand6.1.0indirect
npmreact-is18.3.1indirect
npmreaddirp4.1.2indirect
npmrequire-directory2.1.1indirect
npmresolve1.22.12indirect
npmresolve-cwd3.0.0indirect
npmresolve-from5.0.0indirect
npmresolve.exports2.0.3indirect
npmrollup4.62.2indirect
npmsemver6.3.1indirect
npmsemver7.8.5indirect
npmshebang-command2.0.0indirect
npmshebang-regex3.0.0indirect
npmsignal-exit3.0.7indirect
npmsisteransi1.0.5indirect
npmslash3.0.0indirect
npmsource-map0.6.1indirect
npmsource-map0.7.6indirect
npmsource-map-support0.5.13indirect
npmsprintf-js1.0.3indirect
npmstack-utils2.0.6indirect
npmstring-length4.0.2indirect
npmstring-width4.2.3indirect
npmstrip-ansi6.0.1indirect
npmstrip-bom4.0.0indirect
npmstrip-final-newline2.0.0indirect
npmstrip-json-comments3.1.1indirect
npmsucrase3.35.1indirect
npmsupports-color7.2.0indirect
npmsupports-color8.1.1indirect
npmsupports-preserve-symlinks-flag1.0.0indirect
npmtest-exclude6.0.0indirect
npmthenify3.3.1indirect
npmthenify-all1.6.0indirect
npmtinyexec0.3.2indirect
npmtinyglobby0.2.17indirect
npmtmpl1.0.5indirect
npmto-regex-range5.0.1indirect
npmtree-kill1.2.2indirect
npmts-interface-checker0.1.13indirect
npmts-jest29.4.11indirect
npmtslib2.8.1indirect
npmtsup8.5.1indirect
npmtype-detect4.0.8indirect
npmtype-fest0.21.3indirect
npmtype-fest4.41.0indirect
npmtypescript5.9.3indirect
npmufo1.6.4indirect
npmuglify-js3.19.3indirect
npmundici6.27.0indirect
npmundici-types6.21.0indirect
npmupdate-browserslist-db1.2.3indirect
npmv8-to-istanbul9.3.0indirect
npmwalker1.0.8indirect
npmwhich2.0.2indirect
npmwordwrap1.0.0indirect
npmwrap-ansi7.0.0indirect
npmwrappy1.0.2indirect
npmwrite-file-atomic4.0.2indirect
npmy18n5.0.8indirect
npmyallist3.1.1indirect
npmyargs17.7.3indirect
npmyargs-parser21.1.1indirect
npmyocto-queue0.1.0indirect
NuGetAWSSDK.Core3.7.400.47indirect
NuGetMicrosoft.NET.Test.Sdk17.10.0indirect
NuGetSystem.Text.Json8.0.5indirect
NuGetxunit2.8.1indirect
NuGetxunit.runner.visualstudio2.8.1indirect
PyPIaiohappyeyeballs2.7.1indirect
PyPIaiohttp3.14.3indirect
PyPIaiosignal1.4.0indirect
PyPIalembic1.18.5indirect
PyPIannotated-doc0.0.4indirect
PyPIannotated-types0.8.0indirect
PyPIantlr4-python3-runtime4.13.2indirect
PyPIanyio4.14.2indirect
PyPIasgiref3.12.1indirect
PyPIasn1crypto1.5.1indirect
PyPIasttokens3.0.2indirect
PyPIasync-timeout5.0.1indirect
PyPIattrs26.1.0indirect
PyPIauthlib1.7.2indirect
PyPIaws-sam-translator1.111.0indirect
PyPIaws-xray-sdk2.15.0indirect
PyPIbabel2.18.0indirect
PyPIbackports-asyncio-runner1.2.0indirect
PyPIbackports-datetime-fromisoformat2.0.3indirect
PyPIbackports-tarfile1.2.0indirect
PyPIbackrefs8.0indirect
PyPIbandit1.9.4indirect
PyPIbandit-sarif-formatter1.1.1indirect
PyPIbidict0.23.1indirect
PyPIboolean-py5.0indirect
PyPIbuild1.5.0indirect
PyPIbump2version1.0.1indirect
PyPIcachecontrol0.14.4indirect
PyPIcertifi2026.7.22indirect
PyPIcffi2.1.0indirect
PyPIcfgv3.5.0indirect
PyPIcfn-lint1.53.2indirect
PyPIchardet5.2.0indirect
PyPIcharset-normalizer3.4.9indirect
PyPIclick8.4.2indirect
PyPIclick-option-group0.5.9indirect
PyPIcolorama0.4.6indirect
PyPIcoverage7.15.2indirect
PyPIcyclonedx-bom7.3.1indirect
PyPIcyclonedx-python-lib11.11.0indirect
PyPIdecorator5.3.1indirect
PyPIdefusedxml0.7.1indirect
PyPIdeprecated1.3.1indirect
PyPIdistlib0.4.3indirect
PyPIdocker7.2.0indirect
PyPIdocutils0.23indirect
PyPIdotty-dict1.3.1indirect
PyPIdparse0.6.4indirect
PyPIdurationpy0.10indirect
PyPIexceptiongroup1.3.1indirect
PyPIexecnet2.1.2indirect
PyPIexecuting2.2.1indirect
PyPIfastapi0.140.0indirect
PyPIfrozenlist1.8.0indirect
PyPIghp-import2.1.0indirect
PyPIgit-changelog2.9.4indirect
PyPIgitdb4.0.12indirect
PyPIgitpython3.1.57indirect
PyPIgranian2.7.9indirect
PyPIgraphql-core3.2.11indirect
PyPIgreenlet3.5.4indirect
PyPIgriffelib2.1.0indirect
PyPIgrimp3.15indirect
PyPIh110.16.0indirect
PyPIhttpcore1.0.9indirect
PyPIhttpx0.28.1indirect
PyPIhttpx-sse0.4.3indirect
PyPIid1.6.1indirect
PyPIidentify2.6.19indirect
PyPIidna3.18indirect
PyPIimport-linter2.13indirect
PyPIimportlib-metadata9.0.0indirect
PyPIimportlib-resources6.5.2indirect
PyPIiniconfig2.3.0indirect
PyPIipdb0.13.13indirect
PyPIipython8.39.0indirect
PyPIjaraco-classes3.4.0indirect
PyPIjaraco-context6.1.2indirect
PyPIjaraco-functools4.6.0indirect
PyPIjedi0.20.0indirect
PyPIjeepney0.9.0indirect
PyPIjinja23.1.6indirect
PyPIjmespath1.1.0indirect
PyPIjoblib1.5.3indirect
PyPIjoserfc1.7.4indirect
PyPIjschema-to-python1.2.3indirect
PyPIjsonpatch1.33indirect
PyPIjsonpath-ng1.8.0indirect
PyPIjsonpickle4.1.2indirect
PyPIjsonpointer3.1.1indirect
PyPIjsonschema-path0.5.0indirect
PyPIjsonschema-specifications2025.9.1indirect
PyPIkeyring25.7.0indirect
PyPIkmock0.7indirect
PyPIkubernetes36.0.3indirect
PyPIkubernetes-stubs-elephant-fork36.0.3.post1indirect
PyPIlazy-object-proxy1.12.0indirect
PyPIlicense-expression30.4.4indirect
PyPIline-profiler5.0.2indirect
PyPIlxml6.1.1indirect
PyPImako1.3.12indirect
PyPImando0.7.1indirect
PyPImarkdown3.10.2indirect
PyPImarkdown-it-py4.2.0indirect
PyPImarkupsafe3.0.3indirect
PyPImarshmallow4.3.0indirect
PyPImatplotlib-inline0.2.2indirect
PyPImcp1.28.1indirect
PyPImdurl0.1.2indirect
PyPImemory-profiler0.61.0indirect
PyPImergedeep1.3.4indirect
PyPImike2.2.0indirect
PyPImkdocs1.6.1indirect
PyPImkdocs-autorefs1.4.4indirect
PyPImkdocs-gen-files0.6.1indirect
PyPImkdocs-get-deps0.2.2indirect
PyPImkdocs-literate-nav0.6.3indirect
PyPImkdocs-material9.7.7indirect
PyPImkdocs-material-extensions1.3.1indirect
PyPImkdocs-section-index0.3.12indirect
PyPImkdocstrings1.0.6indirect
PyPImkdocstrings-python2.0.5indirect
PyPImore-itertools11.1.0indirect
PyPImoto5.2.2indirect
PyPImpmath1.3.0indirect
PyPImsgpack1.2.1indirect
PyPImultidict6.7.1indirect
PyPImultipart2.0.0indirect
PyPInetworkx3.4.2indirect
PyPInetworkx3.6.1indirect
PyPInh30.3.6indirect
PyPInltk3.10.0indirect
PyPInodeenv1.10.0indirect
PyPIoauthlib3.3.1indirect
PyPIopenapi-schema-validator0.9.0indirect
PyPIopenapi-spec-validator0.9.0indirect
PyPIopentelemetry-api1.44.0indirect
PyPIopentelemetry-exporter-prometheus0.65b0indirect
PyPIopentelemetry-instrumentation0.65b0indirect
PyPIopentelemetry-instrumentation-asgi0.65b0indirect
PyPIopentelemetry-instrumentation-botocore0.65b0indirect
PyPIopentelemetry-instrumentation-click0.65b0indirect
PyPIopentelemetry-instrumentation-fastapi0.65b0indirect
PyPIopentelemetry-instrumentation-logging0.65b0indirect
PyPIopentelemetry-instrumentation-sqlalchemy0.65b0indirect
PyPIopentelemetry-instrumentation-system-metrics0.65b0indirect
PyPIopentelemetry-propagator-aws-xray1.0.2indirect
PyPIopentelemetry-sdk1.44.0indirect
PyPIopentelemetry-semantic-conventions0.65b0indirect
PyPIopentelemetry-util-http0.65b0indirect
PyPIorb-py1.8.5indirect
PyPIpackageurl-python0.17.6indirect
PyPIpackaging26.2indirect
PyPIpaginate0.5.7indirect
PyPIparso0.8.7indirect
PyPIpathable0.6.0indirect
PyPIpathspec1.1.1indirect
PyPIpbr7.0.3indirect
PyPIpeewee4.2.6indirect
PyPIpexpect4.9.0indirect
PyPIpg80001.31.5indirect
PyPIpip26.1.2indirect
PyPIpip-api0.0.34indirect
PyPIpip-audit2.10.1indirect
PyPIpip-requirements-parser32.0.1indirect
PyPIpip-tools7.6.0indirect
PyPIplatformdirs4.11.0indirect
PyPIpluggy1.6.0indirect
PyPIpre-commit4.6.1indirect
PyPIprometheus-client0.26.0indirect
PyPIprompt-toolkit3.0.53indirect
PyPIpropcache0.5.2indirect
PyPIproperdocs1.6.7indirect
PyPIptyprocess0.7.0indirect
PyPIpure-eval0.2.3indirect
PyPIpy-cpuinfo9.0.0indirect
PyPIpy-partiql-parser0.6.3indirect
PyPIpy-serializable2.1.0indirect
PyPIpy-spy0.4.2indirect
PyPIpycparser3.0indirect
PyPIpydantic-core2.46.4indirect
PyPIpygments2.20.0indirect
PyPIpymdown-extensions11.0.1indirect
PyPIpyparsing3.3.2indirect
PyPIpyproject-hooks1.2.0indirect
PyPIpyright1.1.411indirect
PyPIpytest9.1.1indirect
PyPIpytest-asyncio1.4.0indirect
PyPIpytest-benchmark5.2.3indirect
PyPIpytest-cov7.1.0indirect
PyPIpytest-env1.7.0indirect
PyPIpytest-html4.2.0indirect
PyPIpytest-metadata3.1.1indirect
PyPIpytest-mock3.15.1indirect
PyPIpytest-timeout2.4.0indirect
PyPIpytest-xdist3.8.0indirect
PyPIpython-dateutil2.9.0.post0indirect
PyPIpython-discovery1.5.0indirect
PyPIpython-dotenv1.2.2indirect
PyPIpython-engineio4.13.3indirect
PyPIpython-gitlab8.4.0indirect
PyPIpython-multipart0.0.32indirect
PyPIpython-semantic-release10.6.1indirect
PyPIpython-socketio5.16.3indirect
PyPIpywin32312indirect
PyPIpywin32-ctypes0.2.3indirect
PyPIpyyaml-env-tag1.1indirect
PyPIradon6.0.1indirect
PyPIreadme-renderer45.0indirect
PyPIredis7.4.1indirect
PyPIreferencing0.37.0indirect
PyPIreflex0.9.7indirect
PyPIreflex-base0.9.7indirect
PyPIreflex-components-code0.9.2indirect
PyPIreflex-components-core0.9.7indirect
PyPIreflex-components-dataeditor0.9.1indirect
PyPIreflex-components-gridjs0.9.1indirect
PyPIreflex-components-lucide1.0.2indirect
PyPIreflex-components-markdown0.9.3indirect
PyPIreflex-components-moment0.9.2indirect
PyPIreflex-components-plotly0.9.3indirect
PyPIreflex-components-radix0.9.6indirect
PyPIreflex-components-react-player0.9.1indirect
PyPIreflex-components-recharts0.9.1indirect
PyPIreflex-components-sonner0.9.1indirect
PyPIreflex-hosting-cli0.1.67indirect
PyPIregex2026.7.19indirect
PyPIrequests-mock1.12.1indirect
PyPIrequests-oauthlib2.0.0indirect
PyPIrequests-toolbelt1.0.0indirect
PyPIresponses0.26.2indirect
PyPIrfc3339-validator0.1.4indirect
PyPIrfc39862.0.0indirect
PyPIrich14.3.4indirect
PyPIrich-argparse1.8.0indirect
PyPIrpds-py0.30.0indirect
PyPIrpds-py2026.6.3indirect
PyPIruamel-yaml0.19.1indirect
PyPIruff0.16.0indirect
PyPIs3transfer0.19.2indirect
PyPIsafety3.8.1indirect
PyPIsafety-schemas0.0.16indirect
PyPIsarif-om1.0.4indirect
PyPIscramp1.4.15indirect
PyPIsecretstorage3.5.0indirect
PyPIsemver3.0.4indirect
PyPIsetuptools83.0.0indirect
PyPIshellingham1.5.4indirect
PyPIsimple-websocket1.1.0indirect
PyPIsix1.17.0indirect
PyPIsmmap5.0.3indirect
PyPIsortedcontainers2.4.0indirect
PyPIsse-starlette3.4.6indirect
PyPIstack-data0.6.3indirect
PyPIstarlette1.3.1indirect
PyPIstevedore5.8.0indirect
PyPIstevedore5.9.0indirect
PyPIsympy1.14.0indirect
PyPItenacity9.1.4indirect
PyPItomli2.4.1indirect
PyPItomli-w1.2.0indirect
PyPItomlkit0.13.3indirect
PyPItqdm4.69.1indirect
PyPItraitlets5.15.1indirect
PyPItruststore0.10.4indirect
PyPItwine6.2.0indirect
PyPItyper0.25.1indirect
PyPItypes-python-dateutil2.9.0.20260716indirect
PyPItypes-pyyaml6.0.12.20260724indirect
PyPItyping-extensions4.16.0indirect
PyPItyping-inspection0.4.2indirect
PyPIuvicorn0.51.0indirect
PyPIverspec0.1.0indirect
PyPIvirtualenv21.7.0indirect
PyPIwatchdog6.0.0indirect
PyPIwatchfiles1.2.0indirect
PyPIwcwidth0.8.2indirect
PyPIwebsocket-client1.9.0indirect
PyPIwerkzeug3.1.8indirect
PyPIwheel0.47.0indirect
PyPIwrapt2.1.2indirect
PyPIwsproto1.3.2indirect
PyPIxmltodict1.0.4indirect
PyPIyarl1.24.5indirect
PyPIzipp4.1.0indirect
Dependency advisories 0

Installing pypi:orb-py@1.8.5 pulls in 32 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": [],
      "is_fork": false,
      "size_kb": 46210,
      "has_wiki": true,
      "homepage": "https://finos.github.io/open-resource-broker/",
      "languages": {
        "C#": 173468,
        "Go": 188785,
        "Nix": 1784,
        "Java": 221431,
        "Mako": 1365,
        "Shell": 160249,
        "Kotlin": 164661,
        "Python": 17531062,
        "Makefile": 88692,
        "Batchfile": 633,
        "Dockerfile": 4674,
        "JavaScript": 662,
        "TypeScript": 148320,
        "Go Template": 1582
      },
      "pushed_at": "2026-07-28T12:21:21Z",
      "created_at": "2025-07-10T10:25:15Z",
      "owner_type": "Organization",
      "updated_at": "2026-07-28T12:23:09Z",
      "description": "A unified API for orchestrating and provisioning compute capacity programmatically. Define what you need in a template, request it, track it, return it — through a CLI, REST API, Python SDK, or MCP server.",
      "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"
      ]
    },
    "owner": {
      "blog": "https://landscape.finos.org",
      "name": "The Fintech Open Source Foundation (www.finos.org)",
      "type": "Organization",
      "login": "finos",
      "company": null,
      "location": null,
      "followers": 1572,
      "avatar_url": "https://avatars.githubusercontent.com/u/35377814?v=4",
      "created_at": "2018-01-12T16:57:09Z",
      "is_verified": null,
      "public_repos": 191,
      "account_age_days": 3119
    },
    "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": "v1.8.5",
          "kind": "patch",
          "published_at": "2026-07-24T11:52:12Z"
        },
        {
          "tag": "v1.8.4",
          "kind": "patch",
          "published_at": "2026-07-23T10:02:11Z"
        },
        {
          "tag": "v1.8.3",
          "kind": "patch",
          "published_at": "2026-07-17T11:06:44Z"
        },
        {
          "tag": "v1.8.2",
          "kind": "patch",
          "published_at": "2026-07-17T08:39:03Z"
        },
        {
          "tag": "v1.8.1",
          "kind": "patch",
          "published_at": "2026-07-16T15:05:13Z"
        },
        {
          "tag": "v1.8.0",
          "kind": "minor",
          "published_at": "2026-07-14T14:22:51Z"
        },
        {
          "tag": "v1.7.0",
          "kind": "minor",
          "published_at": "2026-06-23T12:00:44Z"
        },
        {
          "tag": "v1.6.2",
          "kind": "patch",
          "published_at": "2026-05-28T14:12:49Z"
        },
        {
          "tag": "v1.6.1",
          "kind": "patch",
          "published_at": "2026-05-28T13:15:30Z"
        },
        {
          "tag": "v1.6.0",
          "kind": "minor",
          "published_at": "2026-05-28T11:22:30Z"
        },
        {
          "tag": "v1.5.2",
          "kind": "patch",
          "published_at": "2026-04-02T17:38:08Z"
        },
        {
          "tag": "v1.5.1",
          "kind": "patch",
          "published_at": "2026-03-23T14:06:35Z"
        },
        {
          "tag": "v1.5.0",
          "kind": "minor",
          "published_at": "2026-03-23T11:40:13Z"
        },
        {
          "tag": "v1.4.0",
          "kind": "minor",
          "published_at": "2026-03-18T20:16:04Z"
        },
        {
          "tag": "v1.3.0",
          "kind": "minor",
          "published_at": "2026-03-16T14:35:04Z"
        },
        {
          "tag": "v1.2.2",
          "kind": "patch",
          "published_at": "2026-03-07T02:01:43Z"
        },
        {
          "tag": "v1.2.1",
          "kind": "patch",
          "published_at": "2026-03-07T01:40:54Z"
        },
        {
          "tag": "v1.2.0",
          "kind": "minor",
          "published_at": "2026-03-07T00:40:58Z"
        },
        {
          "tag": "v1.1.2",
          "kind": "patch",
          "published_at": "2026-01-28T15:52:48Z"
        },
        {
          "tag": "v1.1.1",
          "kind": "patch",
          "published_at": "2026-01-21T13:56:36Z"
        },
        {
          "tag": "v1.1.0",
          "kind": "minor",
          "published_at": "2026-01-21T12:28:49Z"
        },
        {
          "tag": "v1.0.0",
          "kind": "major",
          "published_at": "2026-01-06T17:23:18Z"
        },
        {
          "tag": "v0.1.0",
          "kind": "minor",
          "published_at": "2025-09-04T16:10:09Z"
        },
        {
          "tag": "v0.1.0rc0",
          "kind": "other",
          "published_at": "2025-09-02T13:31:44Z"
        },
        {
          "tag": "v0.1.0a1",
          "kind": "other",
          "published_at": "2025-09-02T13:31:37Z"
        },
        {
          "tag": "v0.0.1rc1",
          "kind": "other",
          "published_at": "2025-09-02T13:31:30Z"
        },
        {
          "tag": "v0.0.1rc0",
          "kind": "other",
          "published_at": "2025-09-02T13:31:25Z"
        },
        {
          "tag": "v0.0.1a1",
          "kind": "other",
          "published_at": "2025-09-02T13:31:10Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "68891fcc24071eb5c20f2f64a871137300bfc77f",
          "body": "fix: recover review fixes (audit log, HTTPS proxy, config, --wait, SSE) + enable npm OIDC publishing",
          "is_bot": false,
          "headline": "Merge pull request #351 from finos/fix/recover-review-fixes",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-28T12:21:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d42b607e7f03b0a10516a65e55bcb5816e76506e",
          "body": "Add ASGI-level tests for ForwardedProtoMiddleware (trusted-proxy scheme\nrewrite, untrusted-peer skip, websocket ws/wss normalisation, malformed\nand appended X-Forwarded-Proto headers) and unit tests for the\nloopback-admin token machinery in the server factory (token acceptance,\nnon-ASCII rejection, \n[…]\n\nexception handler, and system endpoints. Also assert the SSE client\ndiscards a non-integer id: line rather than adopting it as a resume\ncursor. These verify real behaviour at the port/boundary seams.",
          "is_bot": false,
          "headline": "test: cover forwarded-proto middleware and loopback-admin token auth",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-28T11:26:30Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "26dded7a05e36247bf3fd806e716b330535c1a13",
          "body": "A subscriber is registered before the history snapshot is read, so an event\npublished in that window landed in both the replayed history and the live\nqueue and was streamed twice with the same id:. Track the highest seq_id\nreplayed from history and skip any live item at or below it, so each event is\ndelivered exactly once across the history-to-live handover.",
          "is_bot": false,
          "headline": "fix(sse): stop emitting the history/live overlap event twice",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-28T11:09:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "552df213c2842fd4dd268643b33609cc576f3001",
          "body": "The per-process event sequence counter restarted from 1 on every boot, so a\nclient reconnecting with a Last-Event-ID from a previous process could match\nfreshly-issued low ids and silently skip the genuinely-new events published\nafter the restart. Seed the counter from a wall-clock boot base so each\n[…]\nw that base — a stale cross-restart cursor now always\ntriggers a full resync. The id: cursor stays a single integer well within the\nJS safe-integer range, so no wire, spec, or client change is needed.",
          "is_bot": false,
          "headline": "fix(sse): resync reconnects whose cursor predates a server restart",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-28T11:09:34Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a60f0a3332179ad22e76df295807dafdc158bf8e",
          "body": "The status --wait poll incremented elapsed time by a constant poll interval\nper loop, ignoring how long each status fetch actually took. A slow provider\ncould therefore push the total wait well past the caller's timeout. Measure\nelapsed time with time.monotonic() deltas so fetch latency counts toward the\nbudget and the wait never overruns timeout_seconds. The consecutive-error\nabort is unchanged. Tests drive the timeout with a fake monotonic clock.",
          "is_bot": false,
          "headline": "fix(orchestration): bound --wait polling by true wall-clock time",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-28T11:08:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "154e1a382e051adbbf3890165213e4dea7d7e37e",
          "body": "The requests status handler forwards the --wait and --timeout flags into\nGetRequestStatusInput, but that wiring had no direct coverage. Add unit tests\nasserting the DTO receives wait=True and the timeout value when the flags are\npassed, and the documented defaults (wait=False, timeout=300) otherwise, so a\nfuture regression that drops the forwarding fails fast.",
          "is_bot": false,
          "headline": "test(cli): assert requests-status --wait/--timeout reach the status DTO",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-28T11:08:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2658e03294fd0539bd03007b06dd106510a5c44b",
          "body": "npm trusted publishing (OIDC) to registry.npmjs.org requires Node >= 22.14.0\nin addition to npm CLI >= 11.5.1. The publish job set up Node 20, so the OIDC\nexchange never ran and npm fell back to token auth, failing with ENEEDAUTH on\nthe trusted path (token and GitHub Packages publishing were unaffected because\nthey do not use OIDC). Bump the publish job to Node 22 and log the active\nnode/npm versions before publishing so an auth failure is diagnosable.",
          "is_bot": false,
          "headline": "ci(sdk): use Node 22 for npm publish so OIDC trusted publishing works",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-28T10:28:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f385c5ebb55305a617cb86d31ef5acfc59307540",
          "body": null,
          "is_bot": false,
          "headline": "chore(sdk): regenerate OpenAPI spec for SSE reconnect semantics",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-28T10:28:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d5ce3cf092bf3db83a546928479e74dfec0c8120",
          "body": "The global SSE stream assigned a monotonic seq_id per event internally but\nnever sent it to clients, so a reconnecting subscriber re-opened /events with\nno cursor and silently lost every event that occurred during the outage. A\nmissed terminal request event left the row stuck 'in_progress' until a m\n[…]\ntinel triggers\na full row refetch so a too-large gap self-heals.\n\nWire change is additive: the id: line is standard SSE and the payload shape is\nunchanged, so existing non-UI consumers are unaffected.",
          "is_bot": false,
          "headline": "fix(sse): transmit event seq id so reconnects replay missed events",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-28T10:28:14Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "6d680895c6307d89378b134af2a45c7a9b00bb9d",
          "body": "The SSE row patch updated only the status field, leaving the machine\ncounts and progress bar showing stale values after a status transition.\nPatch through any count/progress source fields the event carries so the\nbadge, counts columns and progress bar move together, matching what a\nfull refresh would show. A completed event derives its fulfilled count\nfrom the machine_ids it carries.",
          "is_bot": false,
          "headline": "fix(ui): refresh row counts and progress on live status events",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-28T10:28:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "58d546c9c87a88ded0d5d1ff36fb83230bced5e6",
          "body": "_poll_until_terminal treated any error entry as terminal, so a single\ntransient provider blip on the first poll ended the wait and reported\nfailure for a still-healthy request. Tolerate up to\nMAX_CONSECUTIVE_POLL_ERRORS consecutive transient sync errors before\ngiving up, in line with the acquire/return polling loops. A genuine\nterminal status (a real failure, or not_found) still stops the poll\nimmediately.",
          "is_bot": false,
          "headline": "fix(orchestration): tolerate transient sync errors in --wait polling",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-28T10:28:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "61f43ea710d3f2ec3ab69742562b86f7682dc1df",
          "body": "ConfigTypeConverter.set() replaces a leaf value in memory, but save()\ndeep-merged dict edits into the on-disk config, retaining stale sibling\nkeys the in-memory value had dropped. After a reload the persisted and\nin-memory state diverged. Record set() edits as replace paths so save()\noverwrites the on-disk value at those paths while update() edits keep\ntheir deep-merge semantics.",
          "is_bot": false,
          "headline": "fix(config): persist set() dict edits as replace, not deep-merge",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-28T10:28:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c24e42be669118ab3f15d5ba370963ea3eee74cd",
          "body": "When require_https is enabled and ORB runs behind a reverse proxy that\nterminates TLS and forwards plain HTTP, the request scheme seen by the app is\n'http', so HTTPSRedirectMiddleware issues a 307 to https://, the proxy forwards\nthe follow-up as HTTP again, and the client is trapped in an infinite l\n[…]\nrusted or direct clients cannot spoof the scheme, so HTTPS\nenforcement is not weakened. When require_https is set without trusted_proxies,\na warning explains the loop risk behind off-host TLS proxies.",
          "is_bot": false,
          "headline": "fix(api): prevent HTTPS redirect loop behind TLS-terminating proxy",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-28T10:28:14Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "b4df6b51a94e95bb46935b8ed90d0882bf2d549a",
          "body": "…ndent\n\nThe JSON audit sink dropped every structured security field. AuthAuditLogger\npasses fields (event_type, user_id, client_ip, path, method, reason,\nauth_strategy) via stdlib extra=, which sets them as top-level LogRecord\nattributes, but JsonFormatter only merged a record.extra sub-dict that st\n[…]\nt filtered out its own INFO events, producing a\nsilent 0-byte audit trail. setup_audit_logger now pins orb.audit (and its\nhandler) to INFO so audit records always emit regardless of the app log level.",
          "is_bot": false,
          "headline": "fix(logging): make security audit trail attributable and level-indepe…",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-28T10:28:14Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "f4c8117fec2c7508a772b269e2146ae830684b44",
          "body": "fix(health): split liveness/readiness and stop optional providers forcing 503",
          "is_bot": false,
          "headline": "Merge pull request #350 from finos/worktree-agent-a4d60ed4a30386814",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-28T10:18:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f28fdf80056c616c83f1e0fb867a2e3f689245c0",
          "body": "…n failure\n\nReplace a bare except/pass in the Kubernetes strategy's health-check\nregistration with a debug log, matching the AWS strategy. The fallback\nbehaviour is unchanged — a config-port failure must not fail health-check\nregistration — but the reason is now observable instead of silent.",
          "is_bot": false,
          "headline": "refactor(health): log instead of swallowing k8s config-port resolutio…",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-28T10:02:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "863d81f0fea8100f42e4a7e3dc5500a44b1a5bef",
          "body": "… provider's readiness\n\nBroaden the EC2 connectivity check to catch BotoCoreError as well as\nClientError: an unreachable endpoint raises EndpointConnectionError /\nConnectTimeoutError (BotoCoreError subclasses, not ClientError), which\npreviously escaped the handler and surfaced as unhealthy, forcing\n\n[…]\n.\n\nstorage.deserialize stays classified as a non-readiness signal: a\nskipped-row counter reflects incomplete list results, not an inability\nto serve reads (already covered by the core database check).",
          "is_bot": false,
          "headline": "fix(health): treat EC2 connectivity failures as degraded, gate a sole…",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-28T09:58:04Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "1cba87e27ad76cb04ee39ca0d95e0399dac9e160",
          "body": "Add hand-written client methods for the new GET /livez and GET /readyz\nendpoints across the Go, TypeScript, Java, Kotlin, and C# SDKs, and\nupdate each SDK's operation-completeness check to cover them.",
          "is_bot": false,
          "headline": "chore(sdk): add liveness/readiness operations to language SDKs",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-28T09:53:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7637a0266d86af8b4ef4787e3c616528a135f185",
          "body": null,
          "is_bot": false,
          "headline": "chore(sdk): regenerate OpenAPI spec for liveness/readiness endpoints",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-28T09:51:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e143e46791d2e96996878590fa99417288d5532b",
          "body": "Connectivity checks were registered for every enabled provider instance,\nso a secondary provider pointed at an unreachable API would register a\ncheck that dragged the aggregate status down. Registration is now gated\non the default/active instance (explicit default_provider_instance, else\nthe first e\n[…]\n provider-selection precedence. A\nsecondary instance no longer registers a connectivity check. Gating fails\nopen when the instance or config is unknown so single-provider\ndeployments keep their probe.",
          "is_bot": false,
          "headline": "fix(health): scope provider connectivity checks to the default instance",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-28T09:51:01Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ba5d6b662b8c41495156406060d5c88cb936a737",
          "body": "Add dedicated liveness and readiness probes alongside the existing\n/health endpoint (which is unchanged for back-compat and full detail):\n\n- /livez returns 200 whenever the process is up and never gates on any\n  dependency or provider, so an unreachable downstream cannot trigger a\n  needless restart\n[…]\nks are now classified by kind (core, provider, system) at\nregistration time, and readiness is derived from core checks only. Both\nprobes are public (auth-exempt), read-only-allowed, and audit-skipped.",
          "is_bot": false,
          "headline": "feat(api): add /livez and /readyz probe endpoints",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-28T09:51:00Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "35453103c104f7f7982daace6d85b903d4144606",
          "body": "An unreachable provider API (STS/EC2/Kubernetes) previously reported\n'unhealthy', which forced the aggregate /health status to 'unhealthy'\nand returned HTTP 503 even when the core service was fully functional.\nA single unreachable optional provider should not take the whole\nendpoint down, so provider-connectivity probes now report 'degraded'\n(mapped to HTTP 200). Genuine core-dependency failures are unaffected.",
          "is_bot": false,
          "headline": "fix(health): report provider connectivity failures as degraded",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-28T09:51:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "efb3c657bcb6625eadf4e445ff03d22ed5cace46",
          "body": "…g-networking\n\ndocs: fix MicroVM IAM guidance and add sizing/networking sections",
          "is_bot": false,
          "headline": "Merge pull request #352 from finos/docs/fix-microvm-iam-and-add-sizin…",
          "author_name": "Alex",
          "author_login": "canonicalname",
          "committed_at": "2026-07-28T09:19:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6b6c2f3b1cdb253370e3ccf6c10ddb59624fedff",
          "body": "The MicroVM docs incorrectly stated that a single IAM role should be\nused for both image build and runtime execution. AWS documents these as\nseparate roles (buildRoleArn vs executionRoleArn) and recommends\nseparation for least-privilege. This commit:\n\n- Replaces the single-role guidance with proper \n[…]\noritative AWS documentation throughout\n- Removes inapplicable suspend/resume claim from the intro\n- Updates E2E test to use properly separated build and execution roles\n  with least-privilege policies",
          "is_bot": false,
          "headline": "docs: fix MicroVM IAM guidance and add sizing/networking sections",
          "author_name": "Alex Kimber",
          "author_login": "canonicalname",
          "committed_at": "2026-07-28T09:12:31Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a1bdbea2368a67dccc960ed887f8b4cd38c5e668",
          "body": "feat: AWS resource discovery endpoint, RBAC claim extraction, and orchestrator error handling",
          "is_bot": false,
          "headline": "Merge pull request #349 from finos/chore/finish-pr3-aws-rbac",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-28T08:35:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5e38bd85b604d8298d503cf75c13e6a5652ed240",
          "body": "The resource-discovery endpoint caught LookupError to map an unregistered\nprovider (or null strategy) to 404. But KeyError and IndexError are\nLookupError subclasses, so a genuine server-side failure while parsing an\nAWS response (e.g. an IPv6-only subnet with no CidrBlock) was misreported\nas \"provid\n[…]\ndistinct vpc_ids could grow the cache without bound.\nThe cache is now a bounded LRU: each put sweeps expired entries and evicts\nthe oldest once a hard size cap is reached, preserving the 5-minute TTL.",
          "is_bot": false,
          "headline": "fix(api): stop discovery errors masquerading as 404 and bound the cache",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-28T08:13:30Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "329e5546e730f4b53c584b27859c8d68e6b3c30c",
          "body": "The OpenAPI spec now declares a provider resource-discovery endpoint\n(GET /providers/discover/{provider_api}/{resource_type}), but the\nhand-written Go, TypeScript, Java, Kotlin, and .NET clients did not\nexpose it. Their operation-completeness checks therefore failed: the\nspec declared an operationId\n[…]\nthe\nexisting provider operations and forwarding the optional vpc_id query\nparameter, and update each completeness check to the new operation\ncount so the cross-language coverage guarantee holds again.",
          "is_bot": false,
          "headline": "feat(sdk): add resource-discovery operation to all language clients",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-28T08:13:30Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e1d0a70779ba908a17f1d3daf309a160f676b2af",
          "body": "Export the committed spec from the live routes so it includes the new\nprovider resource-discovery path, keeping the SDK generators in sync with\nthe API.",
          "is_bot": false,
          "headline": "chore(sdk): regenerate OpenAPI spec for the discovery endpoint",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-28T08:13:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a2f36fd10c0c447aad9c5ce23fe966717ae964e8",
          "body": "The expired-entry test forced expiry by stamping the cache entry at 0.0,\nassuming that is always past the 5-minute TTL. Cache timestamps use\ntime.monotonic(), whose zero point is arbitrary and, on a freshly-booted\nhost, can be smaller than the TTL — leaving the entry non-expired and the\nrefresh untriggered. Rewind the stored timestamp relative to the current\nmonotonic reading so expiry is deterministic on any host.",
          "is_bot": false,
          "headline": "test(api): rewind discovery-cache expiry relative to monotonic clock",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-28T08:13:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "67914e8e41b10468b53ae3401fb818d9c7fb00c5",
          "body": "The resource-discovery service returned an empty list on any EC2 error, so a\ntransient failure (throttling, network blip, credential refresh) was\nindistinguishable from an account that genuinely has no resources. The\ndiscovery endpoint then cached that empty list as a valid success, pinning\noperator\n[…]\nx\ninstead of being cached; genuinely-empty accounts still return and cache an\nempty list. The interactive/CLI console paths keep the swallow and continue to\ndegrade gracefully to \"no resources found\".",
          "is_bot": false,
          "headline": "fix(api): stop caching swallowed AWS errors as empty discovery results",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-28T08:13:29Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e43d126b2d128b4d3286a25c0170589ffe53d9da",
          "body": "Parametrise the request-type EC2Fleet and SpotFleet cleanup tests over\nrequested_count [1, 2]. Fleet teardown at capacity 2 exercises the\nweighted-capacity cancellation path that a single instance never triggers,\nand the count=2 variant asserts the requested target capacity up front and a\nfull teard\n[…]\nition, instant ASG teardown) so it is clear which\nscenarios must stay in the live suite rather than being mocked against\nunrealistic simulator behaviour. Cross-reference it from the AWS test conftest.",
          "is_bot": false,
          "headline": "test(aws): cover fleet cleanup at capacity 2 and document moto limits",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-28T08:13:29Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "0f407cf09eccac6825b49976085952ca61623b6e",
          "body": "Each CI workflow ran a serial setup-cache job (reusable cache-management\nworkflow) whose only purpose was to return a cache-key string and prime the\ndependency cache before any real work could start. That job added a ~20s\ngate to the critical path of every workflow and was the sole writer of the\ndep\n[…]\n expression directly at each consumer (or let the\nreusable test/security workflows compute it from their existing fallback) and\ndrop the indirection job and its dead build/container branches entirely.",
          "is_bot": false,
          "headline": "ci: self-warming dependency cache without a priming gate",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-28T08:13:29Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c335c0a51727258f09da52153274ffb9e49a287a",
          "body": "Drive the complete authorization chain (minted JWT -> AuthMiddleware ->\nrequest.state -> get_current_user -> require_role) against an app built by\ncreate_fastapi_app with auth enabled, complementing the isolated require_role\nunit tests.\n\nCover a role/resource allow/deny matrix across all four caller\n[…]\nrization claims, assert /me\nreports the resolved role, pin the /health-public vs /info-gated boundary, and\nverify invalid or wrong-key tokens are rejected at authentication (401) before\nthe role gate.",
          "is_bot": false,
          "headline": "test(api): end-to-end RBAC enforcement over the full auth stack",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-28T08:13:29Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e159e39f25621fc9ad167571f300a4d6f956ffc8",
          "body": "…tegies\n\nRoute the bearer and enhanced-bearer strategies through a single canonical\nclaim-extraction seam so roles and permissions are read identically regardless\nof which strategy validated the token.\n\nToken payloads are untrusted, so the extractor normalises both claims: a\nscalar-string claim is c\n[…]\nroles claim would be stored as\na string and make role/permission membership checks perform substring matching.\n\nDocument the canonical roles/permissions claim names and the per-strategy\nclaim sources.",
          "is_bot": false,
          "headline": "feat(auth): centralise authorization claim extraction across JWT stra…",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-28T08:13:29Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "7a931107e14d7210b135494a417b9814a8ff9882",
          "body": "Introduce OrchestratorBase._dispatch, a shared try/log/re-raise seam for\ncommand_bus.execute and query_bus.execute calls, and route every\norchestrator's bus dispatches through it. Failures are now logged at\nerror level with an operation label before the original exception is\nre-raised unchanged, so \n[…]\n bulk status loop that\nfolds errors into partial results) catch those first and document the\ndivergence; unexpected errors on those paths are now logged and\nre-raised rather than propagating silently.",
          "is_bot": false,
          "headline": "refactor(application): standardise orchestrator error handling",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-28T08:13:29Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "6cc76c9681f77d24d46f551a5a8d684365f3a5ba",
          "body": "…gies\n\nThe response-formatting service is the single seam every interface routes\nwire-format translation through, but its dedicated unit tests only exercised\nit against a mock scheduler. Add coverage that wraps the service around both\nreal scheduler strategies (default and hostfactory) so every format method is\nproven against the shapes the strategies actually emit, and pin the\nintentional request_id/requestId field-name divergence at the shared seam.",
          "is_bot": false,
          "headline": "test(interface): cover response formatting over both scheduler strate…",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-28T08:12:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8ca8c0725ecfc321ac94f9d36a894cca5519ee6f",
          "body": "Add GET /providers/discover/{provider_api}/{resource_type} so the template\nform can populate VPC, subnet, and security-group dropdowns instead of asking\nusers to type IDs by hand.\n\nThe endpoint resolves the provider strategy and returns discovered resources\nas JSON via a new machine-readable list_re\n[…]\ncture topology changes rarely and each miss issues several EC2\nDescribe* calls. Discovery requires the operator role because it enumerates\naccount infrastructure that viewer-role callers must not see.",
          "is_bot": false,
          "headline": "feat(api): add AWS resource discovery endpoint",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-28T08:12:54Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "17e7160f5f21c4b93376fa33b684f91c06587e2f",
          "body": "feat: CLI/SDK wait mode, config-set persistence, UI live updates, and test coverage",
          "is_bot": false,
          "headline": "Merge pull request #348 from finos/chore/finish-pr2-tests-cli-ui",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-28T08:12:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2200211a796d9062b29129096c1a4fef39c71c34",
          "body": "refactor: security hardening and architecture-boundary cleanups",
          "is_bot": false,
          "headline": "Merge pull request #347 from finos/chore/finish-pr1-security-arch",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-28T08:11:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bdbcdfb3b9ba3081a612a24f9357eee70fa7c2d7",
          "body": "The logger is typed as LoggingPort, so accessing .warning.assert_called_once()\nfails type checking against the real bound method. Cast to MagicMock to\ntype-check the mock assertion without changing what the test verifies.",
          "is_bot": false,
          "headline": "test: type mock introspection call on injected logger",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-27T15:09:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5a2533cf052f76a1141cf6a23da985b7ae304cda",
          "body": "Mock the synchronous dto factory with an explicit MagicMock instead of\nassigning mock attributes onto a bound method, silence the pydantic\nField-default call-arg inference on K8sProviderConfig, and annotate the\nReflex Var-descriptor calls the state tests exercise. Runtime behaviour and\nassertions are unchanged.",
          "is_bot": false,
          "headline": "test: satisfy the type checker in bulk-handler, k8s, and UI state tests",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-27T15:07:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f4af7fe12ff1b41357b75f7fea1a98f86d9e345e",
          "body": "The request-creation and status routes now expose wait/timeout query\nparameters for blocking mode, and the config-set route exposes a persist\nparameter with updated descriptions. Regenerate the committed spec that all\nSDKs generate from so it matches the live routes.",
          "is_bot": false,
          "headline": "chore(sdk): regenerate OpenAPI spec for wait mode and config-set persist",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-27T15:02:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5109a6eb584d34db6bb208a3f3210bbf1ab4a6f3",
          "body": "The OSError from the temp-file unlink during save() failure handling is\ndeliberately swallowed so the original write error is the one propagated.\nDocument why the except body is a bare pass.",
          "is_bot": false,
          "headline": "docs(config): explain intentional temp-file cleanup fallback",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-27T15:02:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "af79d5bd2ed58451beb1a8ed504a743561bbfc8a",
          "body": "GetMultipleTemplatesHandler and GetMultipleMachinesHandler imported query\nservices and DTO factories that do not exist (template_query_service,\nmachine_query_service, template_dto_factory, machine_dto_factory). The imports\nwere lazy, inside __init__, so constructing either handler raised ImportError\n[…]\ne-fetch endpoints.\n\nBulk handler tests now construct the handlers through their public constructors\nso a missing collaborator surfaces as a test failure rather than being hidden\nbehind object.__new__.",
          "is_bot": false,
          "headline": "fix(queries): repair bulk template and machine retrieval",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-27T15:02:56Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a295e511c58be78a81b89597e2d6cd6dd67187cb",
          "body": "UpdateMachineStatusHandler called machine.update_status(...) but discarded\nits return value and saved the original, unchanged machine. Machine is an\nimmutable aggregate: update_status builds and returns a new instance (carrying\nthe status change and its MachineStatusChangedEvent) rather than mutatin\n[…]\nlace, so the status update was silently lost.\n\nCapture the returned machine, persist it, and publish the domain events the\nrepository extracts on save so the status-changed event is no longer dropped.",
          "is_bot": false,
          "headline": "fix(machine): persist status change from immutable aggregate",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-27T15:02:56Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a2b99eac3659919f7877915a0c50cef633dfa5d2",
          "body": "Resolving a per-type resource prefix through get_resource_prefix now\nreturns an empty string when the key is not configured, instead of\nfalling back to the global default_prefix. An operator who sets only a\nglobal resource.prefixes.default no longer has per-type resource names\nand tags silently rewritten, which would otherwise break prefix-keyed\ndiscovery and cleanup and orphan already-provisioned resources.\nExplicitly configured per-type prefixes are still honoured.",
          "is_bot": false,
          "headline": "fix(config): keep per-type resource prefixes empty when unset",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-27T14:41:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9c50b8b55b47ec193672cd55b0bc0c5a155a17f9",
          "body": "Subscribe the Requests page to the backend Server-Sent Events stream so\nrequest status transitions patch the affected row in place instead of\nwaiting for the next full poll. Status, completion, and failure events\nrewrite only the matching row's status, preserving scroll position,\nselection, and any open drawer. Reuses the existing reconnect-with-backoff\nSSE client and is single-flight guarded so a page re-mount never opens a\nsecond stream.",
          "is_bot": false,
          "headline": "feat(ui): live-update request list rows via SSE",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-27T13:45:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f6233c6e7a76b0fc15affaa9254fe73feef6ef92",
          "body": "Give every subcommand parser both a short help= and a long-form\ndescription= following a consistent 'imperative verb, noun, outcome'\nformat, so 'orb <resource> --help' and 'orb <resource> <action> --help'\nalways show meaningful, uniform documentation.\n\nAlso correct the getting-started help and infra\n[…]\ndefault; only --non-interactive\nexists) instead of the nonexistent --interactive flag.\n\nAdd contract tests asserting every sub-parser carries help and\ndescription text and every argument carries help.",
          "is_bot": false,
          "headline": "docs(cli): standardize help text across all commands",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-27T13:45:27Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "91bee3539375e9ef13b9cdd42f6046246dca9d51",
          "body": "Writing a configuration value only mutated the in-memory config, so a CLI\n'config set' was lost the moment the process exited and a server restart\nreverted API/UI edits.\n\n- CLI 'orb config set' now writes the change back to the loaded config file\n  by default, with '--no-persist' to opt into in-memo\n[…]\nctive-admin check and reporting the path.\n- Config file writes are atomic (temp file + fsync + rename), so a reader\n  never sees a half-written file and a crash mid-write leaves the original\n  intact.",
          "is_bot": false,
          "headline": "feat(config): persist 'config set' edits to disk",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-27T13:45:27Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "71294a84125f771c3a039093d7bb809074ff18f3",
          "body": "Bring the SDK to parity with the CLI --dry-run flag: ORBClient(dry_run=True)\nand SDKConfig dry_run (dict/env/to_dict) mock provider operations by forwarding\nthe flag to Application.initialize(), so callers can preview provisioning\nwithout touching real infrastructure.",
          "is_bot": false,
          "headline": "feat(sdk): add dry-run override to ORBClient",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-27T13:05:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d207d9b91b7bae1987d01c3b889a45ad0e7c8330",
          "body": "The --wait/--timeout flags were only consumed by the machines\nrequest/return commands. Extend blocking mode across the remaining\nsurfaces so callers can wait for a terminal state consistently:\n\n- orb requests status --wait polls until every request is terminal\n  or the timeout elapses, reusing the s\n[…]\nue&timeout=N, capped server-side to prevent a client\n  from holding a worker connection open indefinitely.\n- MCP request_machines and get_request_status tools expose the wait\n  and timeout parameters.",
          "is_bot": false,
          "headline": "feat: extend --wait blocking mode to request status, SDK, and REST",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-27T13:05:10Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a6ce167b098c9bb17c0e6bea6e568eb0d952eaf6",
          "body": "The Mock* prefix conventionally signals unittest.mock.Mock objects, but\nthese classes are hand-rolled fakes (manual implementations of ports and\ninterfaces). Rename them to the Fake* prefix so the naming reflects what\nthey are, leaving genuine unittest.mock patch targets untouched.",
          "is_bot": false,
          "headline": "test: rename hand-rolled Mock* test doubles to Fake*",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-27T13:05:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b8714cba897032e5f39e4e9114385f1695891d7b",
          "body": "Move the misplaced \"# type: ignore[import]\" comments onto the\n\"from\" line so pyright suppresses the intentional missing-import\nprobes, replace the deleted-module import assertions with\nimportlib.import_module string lookups so they no longer surface\nmissing- and unused-import warnings, and annotate the mock handler\nand captured-handler locals so attribute and await access type-check.",
          "is_bot": false,
          "headline": "test: clear residual pyright errors in test suite",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-27T13:05:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d226b37b45d601789195eae38069dc975f9d7c71",
          "body": "…time\n\nVerify check_hosts_status status-mapping for ASG, EC2Fleet, and SpotFleet\nagainst real provisioned instances rather than return type alone, and add a\nmaintain-fleet shortfall case where running capacity drops below target.\n\nExtend the AWS contract suite to EC2Fleet and SpotFleet, asserting ex\n[…]\nse handler retry loop at runtime: transient errors are retried\nto success, immediate successes never sleep, and critical operations trip the\ncircuit breaker open once the failure threshold is reached.",
          "is_bot": false,
          "headline": "test(aws): cover fleet fulfilment mapping, contract parity, retry run…",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-27T13:05:10Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "2140246509c67448bb79c6ef9d2aae1a9a5c7195",
          "body": "Add unit tests for the previously untested machine, provider, and system\ncommand handlers, the request sync handler, and the request/return-request\nand bulk query pipelines. Each handler now has happy-path, error, and\nport-interaction coverage, bringing every command and query handler module\nto at least 80% line coverage.\n\nTests inject mock ports via the constructor and assert on return values and\nport interactions; concrete classes are exercised as real objects rather\nthan mocked.",
          "is_bot": false,
          "headline": "test: cover untested command and query handlers",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-27T13:05:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2822aba228609360529843c6a524a779fa8be95c",
          "body": "…l deep_merge\n\ndeep_merge_dicts in collections/transforming.py was a behavioral twin of\norb.infrastructure.utilities.common.deep_merge.deep_merge with no production\ncallers — it existed only to back its own unit tests. Remove it and its\nexport so there is a single deep dictionary-merge helper. Its test coverage\nis already provided by test_deep_merge.py.",
          "is_bot": false,
          "headline": "refactor(utils): drop duplicate deep_merge_dicts in favor of canonica…",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-27T12:50:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "72b93d90823a059ad6a229e735008d8e08f1d79f",
          "body": "Move hf_docs/ into docs/root/hostfactory/ so the HostFactory API reference\nlives alongside the rest of the HostFactory documentation, and update the\ndocstring/comment references in the hostfactory strategy and formatters to\npoint at the new path.\n\nRemove local_env.sh: it exported HF_PROVIDER_* variables and invoked a\nroot-level scripts/ directory that no longer exists after the provider\nlayout migration, and nothing in CI, tests, or docs references it.",
          "is_bot": false,
          "headline": "chore: relocate HostFactory reference docs and drop dead dev env script",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-27T12:50:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "590cf59a98dd5db95f34993f0513d0d9f08bf987",
          "body": "Move AMI resolution cache config into the AWS provider package and drop the\nAWS-specific resource-prefix fields (launch_template, instance, fleet,\nspot_fleet, asg) from the shared ResourcePrefixConfig/PrefixConfig. Prefix\nschemas now allow extra keys so provider-supplied prefixes still resolve via\nt\n[…]\ning back to default_prefix\nwhen unset. Generic naming patterns no longer enumerate provider identifiers;\neach provider contributes its own. This keeps the core config layer free of\nprovider knowledge.",
          "is_bot": false,
          "headline": "refactor(config): remove AWS vocabulary from generic config schemas",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-27T12:50:23Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "1cc2b64235b73be4c89247c532a608729c2de85d",
          "body": "…pec deps\n\nProvider implementations no longer import from orb.application. The\nprovider-handler contract and its shared template-method base\n(ProviderHandler / BaseProviderHandler) now live in\norb.domain.base.provider_handler_base; the application-layer modules\nre-export them for backward compatibil\n[…]\nd\nunder the port during DI bootstrap, so the AWS and Kubernetes provider\nwiring resolves it via the port instead of importing the application\nservice, keeping the dependency direction pointing inward.",
          "is_bot": false,
          "headline": "refactor(providers): invert provider→application handler and native-s…",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-27T12:50:23Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e3ed71feed0fdb68cf3a5bc8167a2779a2a1aa1c",
          "body": "Several try/except blocks in the AWS provider silently discarded\nexceptions with a bare pass or a plain return None, hiding failures in\nIAM/STS role discovery, storage-strategy resolution, AMI and image cache\npersistence, token-revocation payload decoding, weighted-capacity\nparsing, fleet-type coerc\n[…]\nno trace when something genuinely went wrong. Emit a debug log with\nthe exception at every such site so degraded behaviour is diagnosable,\nwhile preserving the existing graceful-degradation semantics.",
          "is_bot": false,
          "headline": "fix(aws): log swallowed errors in AWS provider best-effort paths",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-27T12:50:23Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "bd14aa2b5bd47207ad19e7c4c2d05f6e13baa4f2",
          "body": "Security-critical auth events were only logged as free-text at INFO level,\nmaking them hard to route to a SIEM and incomplete (no dedicated records for\nfailures, expiry, revocation, or permission denials).\n\nAdd AuthAuditLogger, a structured logger on the dedicated 'orb.audit' channel\nthat emits one \n[…]\ne (constructor-injected, default-constructed) to\nrecord success, failure, expiry, and 403 authorization denials, and into the\nenhanced bearer strategy to record TOKEN_REVOKED on successful revocation.",
          "is_bot": false,
          "headline": "feat(api): add structured audit logging for authentication events",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-27T12:50:23Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e4c86fbfc7f5970f0659593d31260e37b6dde69a",
          "body": "When require_https is enabled, wire Starlette's HTTPSRedirectMiddleware so\nplain HTTP requests receive a 307 redirect to their HTTPS equivalent, closing\nthe gap where the flag was accepted but never enforced. The Strict-Transport-\nSecurity max-age is now configurable via server.hsts_max_age (default\n[…]\nthreaded through the always-on security headers middleware. With\nrequire_https disabled the redirect middleware is not registered and no HSTS\npolicy is advertised, so HTTP-only origins are unaffected.",
          "is_bot": false,
          "headline": "feat(api): enforce HTTPS with redirect and configurable HSTS",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-27T12:50:23Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "4f74b913597b8ce0338fc20ba1266c93f18814d9",
          "body": "feat(mcp): unify MCP onto a single catalog-driven server on the official SDK",
          "is_bot": false,
          "headline": "Merge pull request #345 from finos/feat/mcp-unification",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-27T12:06:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2fa81676136a7087c0a93d75d3e2fae29c806eda",
          "body": "Add unit coverage for the transport entrypoints, the serve and validate CLI\nhandlers, and the telemetry-flush helper — the stdio and Streamable HTTP\nrunners are exercised with the SDK transports and uvicorn mocked, so no port\nis bound and no real client is needed. Raises the server module from\npartial to full coverage of its behavioural paths.",
          "is_bot": false,
          "headline": "test(mcp): cover the server lifecycle and CLI handlers",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-27T11:41:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b2f63bbc0cba521077964c9b792ee4d495baa9b7",
          "body": "chore: remove unused k8s-legacy constraints.txt",
          "is_bot": false,
          "headline": "Merge pull request #344 from finos/chore/drop-dead-k8s-constraints",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-27T11:26:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3c10ee7828391d3df9f5c84e488f4100cfc49115",
          "body": "Registering the CLI commands imported the MCP server module unconditionally,\nso any environment without the optional mcp extra failed to build the command\nregistry at all. Skip the mcp command registration when the extra is absent —\nthe rest of the CLI loads and 'orb mcp' simply reports an unknown command — and\nadd the mcp package to the test dependency group so the server's tests run\nagainst it.",
          "is_bot": false,
          "headline": "fix(mcp): make the mcp extra a true optional dependency",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-27T11:18:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "20301fa97cf1a4b790dfd05ada681c7098754c78",
          "body": "k8s-legacy/constraints.txt is a leftover pinned-dependency file from the\npre-consolidation vendored tree. Nothing installs from it: no CI job, build,\nDockerfile, or Makefile references it, and its pins are already governed by\nthe root project's dependency extras and lockfile. Because it is a valid\np\n[…]\n==-pinned packages, Dependabot's recursive manifest\ndiscovery kept opening update PRs against it despite it being dead. Remove\nit to stop the noise; it carries no dependency information used anywhere.",
          "is_bot": false,
          "headline": "chore: remove unused k8s-legacy constraints.txt",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-27T11:14:45Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "fb4622e480903a5c09bfb21e5880e896ca7423e8",
          "body": "… tidy docs\n\nAdvertise the null type for Optional tool-input fields so a client that sends\nan explicit null for an unset optional argument passes input validation instead\nof being rejected before the handler runs.\n\nRender the offline validate summary as json or yaml only; the table and list\nformats \n[…]\ny raised.\n\nUpdate the CLI reference to the current mcp commands (the tools subcommands are\ngone; serve takes a transport flag), and remove a test helper left behind when\nits only consumer was deleted.",
          "is_bot": false,
          "headline": "fix(mcp): accept null for optional tool args, harden validate output,…",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-27T11:00:29Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e0512d668554ef1afc76564fafd9be2ca944edcb",
          "body": "Add spec-compliance coverage for the catalog-driven server: the served tool\nset matches the catalog's MCP-exposed operations, every tool advertises a valid\nobject input schema, unknown tools and failing handlers surface as tool-error\nresults rather than protocol errors, and successful calls return t\n[…]\nto the\ncurrent commands and transport flags, and to the correct client API.\n\nThe live-AWS MCP scenario is not yet re-homed onto the new server; it needs a\nreal-account runner and is left as follow-up.",
          "is_bot": false,
          "headline": "test(mcp): cover the unified server and refresh MCP docs and examples",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-27T11:00:29Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "8d4764a6db3fa74969d46bd7ae14196b198951db",
          "body": "… paths\n\nWire 'orb mcp serve' to the catalog-driven server with a transport flag\n(stdio by default, Streamable HTTP opt-in via --transport with --host/--port/\n--path), and add an offline 'orb mcp validate' that checks the exposed tool\nset and its schemas without starting a server or client.\n\nRemove \n[…]\now\ncome from the same definition as the other interfaces.\n\nDrop the 'orb mcp tools' subcommands: introspecting a running server is the\njob of an MCP client or the Inspector, not a server-side command.",
          "is_bot": false,
          "headline": "feat(mcp): serve the catalog-driven server and retire the hand-rolled…",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-27T11:00:29Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "3f06848ab16719ba0a8b5adae7f9eb8ed1975376",
          "body": "Add an MCP server whose tools are the operation-catalog entries exposed on the\nMCP interface — the tool list, input schemas, and response bodies all derive\nfrom the single catalog definition, so the surface stays consistent with the\nCLI, REST, and SDK by construction. Tool and input errors surface as tool\nresults rather than protocol errors. Provides stdio and Streamable HTTP\nentrypoints.\n\nNot yet wired into the CLI; the existing server remains in place until it is\nswitched over.",
          "is_bot": false,
          "headline": "feat(mcp): add a catalog-driven server on the official MCP SDK",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-27T11:00:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "08143eaede5b58a7ccd7532c760010d639152707",
          "body": "…l dependency\n\nAdd an mcp extra pinned to the stable 1.x line and fold it into the all extra.\nThe upper bound holds to 1.x because the 2.0 release renames the server class\nand reshapes the handler surface, making that upgrade a deliberate migration.",
          "is_bot": false,
          "headline": "build(mcp): add the official Model Context Protocol SDK as an optiona…",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-27T11:00:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "edbbcbedb4030587c819584e8ff04af4a0b2ba56",
          "body": "…talog\n\nDeclare the provider health, listing, config, and metrics operations in the\noperation catalog, wiring their existing orchestrators and rendering their\nresponses through the shared formatter. The CLI provider handlers now render\nthrough the catalog entry rather than building their response bo\n[…]\nes. The bodies are\nunchanged.\n\nExpose the single-machine lookup on the MCP surface as well, so retrieving a\nmachine's status is available there through the same catalog entry the other\ninterfaces use.",
          "is_bot": false,
          "headline": "feat(interface): add provider and single-machine operations to the ca…",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-27T11:00:29Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "aae185ae61dca1d9cd7a95a6501ffd5e5bb93437",
          "body": "…e366620a\n\nchore(deps): bump the security-updates group across 1 directory with 12 updates",
          "is_bot": false,
          "headline": "Merge pull request #342 from finos/dependabot/pip/security-updates-20…",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-27T09:54:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "04d7cc696c8d73792e9d1f6fc3376f68a082f37a",
          "body": "…12 updates\n\nBumps the security-updates group with 12 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.25.0` | `0.26.0` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.139.0` | `0.140.0` |\n| [annot\n[…]\ndependency-version: 0.19.2\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n  dependency-group: security-updates\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
          "is_bot": true,
          "headline": "chore(deps): bump the security-updates group across 1 directory with …",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-27T09:21:58Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "21b20b05bea16ce47713f0810155157d12eb1bf5",
          "body": "…ctions-52758779fe\n\nci(deps): bump the github-actions group with 14 updates",
          "is_bot": false,
          "headline": "Merge pull request #341 from finos/dependabot/github_actions/github-a…",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-27T09:18:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e6c6d01bee25edb5c6ceb4f0c880b22da27e4d71",
          "body": "chore(deps): monthly dependency maintenance",
          "is_bot": false,
          "headline": "Merge pull request #343 from finos/chore/monthly-dependency-maintenance",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-27T09:11:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "369e97ad9470ea74870174e7a2bbb80c317d385d",
          "body": "…96d8d027\n\nchore(deps): bump the aws-dependencies group with 2 updates",
          "is_bot": false,
          "headline": "Merge pull request #340 from finos/dependabot/pip/aws-dependencies-44…",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-27T09:09:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "960ded960cc1a9f6078baa947da11b740685bc5c",
          "body": "chore: quality sweep — 404 not-found fix, security hardening, boto DRY, dead-code + test + docs cleanup",
          "is_bot": false,
          "headline": "Merge pull request #338 from finos/chore/finish-quality-sweep",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-27T08:50:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d615e53b30d249ef48a576494eefc14f956ccdbe",
          "body": "…gelog CI\n\n- MCP tool descriptions now reflect real handler behaviour (tools/list).\n- Storage lock scope documented as in-process; SQLite cross-process file\n  locking documented at the connection layer, with a new concurrent-write test.\n- New guard test: a Template field with a deprecated alias must\n[…]\n_status_reason and a\n  moto SDK assertion that instances terminate after a return cycle.\n- Dropped the manual per-PR CHANGELOG step now that the changelog is\n  generated automatically at release time.",
          "is_bot": false,
          "headline": "test+docs: MCP descriptions, storage locking, deprecation guard, chan…",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-27T08:34:45Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d8190c94a7b6b8877655d98d2857da207aab82a8",
          "body": "Removed the unused RequestHistoryEvent value object (no production callers),\ncleared ruff findings in the bootstrap package (dead noqa directives, an\nunnecessary quoted annotation, a redundant lambda), and dropped inaccurate\n'Deprecated' notes from three internal bootstrap aliases that have live\ncallers and emit no warning.",
          "is_bot": false,
          "headline": "chore: remove dead code, clear bootstrap lint, fix inaccurate docstrings",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-27T08:32:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6266bd836332894f5df9d2569ecb00a4282dd1eb",
          "body": "An empty or wildcard trusted_hosts value silently skips TrustedHostMiddleware.\nThe server now logs a startup warning naming the security implication so an\noperator knows host-header protection is off.",
          "is_bot": false,
          "headline": "security: warn when trusted_hosts disables host-header protection",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-27T08:32:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cda12e15a9aced72b1d92166946983b793a5b80a",
          "body": "Two concurrency tests patched a shared bus mock from worker threads;\npatch.object is not thread-safe and intermittently raised AttributeError.\nEach worker now uses its own mock.",
          "is_bot": false,
          "headline": "fix(test): make concurrent workflow tests thread-safe",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-27T08:32:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fd42520cbdc0a7a14f02fdd73b680a5ef000338c",
          "body": "The query and command SDK-method factories mapped parameters twice — once\nin the try body and again when building error detail. The mapping is now\ncomputed once and reused.",
          "is_bot": false,
          "headline": "refactor(sdk): compute CQRS parameter mapping once",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-27T08:32:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d50b23e8d303bfda3ba32d145ce5a1c47d8eb8fb",
          "body": "Four AWS clients built their own botocore Config with duplicated timeout\nand retry settings. They now use the shared get_boto3_config() helper (one\nsource of truth); per-site values are preserved, including aws_client's\nconfig-driven timeouts and region, and retry mode aligns with the rest of\nthe codebase.",
          "is_bot": false,
          "headline": "refactor(aws): route inline botocore Config through the shared factory",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-27T08:32:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fbb7abd7bf3912272491e7198d7f40a7b78c0012",
          "body": "Removed the hardcoded 'aws' fallbacks in the app schema and provider config\nmanager. The explicit configured provider still wins; when none is\nconfigured the schema raises ConfigurationError (pointing at 'orb init')\nrather than defaulting to a provider, keeping the config layer\nprovider-agnostic and free of a provider-registry import.",
          "is_bot": false,
          "headline": "fix(config): resolve provider type without assuming AWS",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-27T08:32:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a0d126233c2216bbe1233e20e359e292f81d6b1d",
          "body": "… GETs\n\nGET /requests/{id} and /requests/{id}/status returned HTTP 200 with an\nempty-but-valid body when the request did not exist. The shared status\norchestrator collapsed every per-ID exception into one {request_id, error}\nshape, so the router could not tell 'not found' from 'exists but sync\nerror\n[…]\nailures), and the single-ID\nendpoints raise EntityNotFoundError -> 404 only on that flag. A real request\nthat failed provisioning (status set, populated error block) still returns\n200 with its detail.",
          "is_bot": false,
          "headline": "fix(api): return 404 only for genuinely-missing requests on single-ID…",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-27T08:32:27Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "61776cc9424408d17e89926f6251818c5a894432",
          "body": "feat(interface): route all interfaces through a shared operation catalog",
          "is_bot": false,
          "headline": "Merge pull request #339 from finos/feat/interface-consistency",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-27T08:30:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "27964a5c56a9b35b03308880580c61244207effc",
          "body": null,
          "is_bot": false,
          "headline": "chore(deps): monthly dependency maintenance",
          "author_name": "fgogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-27T07:09:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "911bdb6e7c705c13fb2b331e95a60f5436f3f1bd",
          "body": "…paths\n\nExpose a machine-health query returning a machine's overall, system, and\ninstance health. By default it reports the health last recorded during status\nsync; with a refresh flag it queries the provider for a current reading through\nthe provider registry and falls back to the stored snapshot i\n[…]\nnot available rather than a\nfabricated healthy state.\n\nUpdate the SDK reference so the cleanup methods are documented as their current\nservice-backed behaviour rather than the removed command classes.",
          "is_bot": false,
          "headline": "feat(machine): add machine health query with stored and live-refresh …",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-26T10:46:20Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e57d37bdfe0074a987f4271360e32c77afa29a66",
          "body": "The handler for cleaning up an explicit set of machines previously only marked\nthem terminated in storage, leaving the underlying provider resources running\nand ignoring the force flag. It now dispatches a cleanup operation to each\nmachine's provider through the provider registry and marks a machine\n[…]\ntance's resources.\n\nRemove the register and deregister machine handlers and their commands: they\nreferenced a constructor that does not exist and duplicated the return flow,\nand were never dispatched.",
          "is_bot": false,
          "headline": "feat(machine): perform real provider teardown on resource cleanup",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-26T10:46:20Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "53aaaa4d7b459fa2bfff2a5bc16cb0054cccd2a9",
          "body": null,
          "is_bot": true,
          "headline": "chore(deps): update uv.lock after dependabot changes",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-26T10:11:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4d374b41cd94cd441b19fb69998567d8323f5b2d",
          "body": "Bumps the github-actions group with 14 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [actions/checkout](https://github.com/actions/checkout) | `7.0.0` | `7.0.1` |\n| [astral-sh/setup-uv](https://github.com/astral-sh/setup-uv) | `8.3.2` | `9.0.0` |\n| [actions/setup-python](https://github.com\n[…]\n  dependency-version: 3.96.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n  dependency-group: github-actions\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
          "is_bot": true,
          "headline": "ci(deps): bump the github-actions group with 14 updates",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-26T10:10:13Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "f619aefc8c80f7c822982a26215129618c0df34c",
          "body": null,
          "is_bot": true,
          "headline": "chore(deps): update uv.lock after dependabot changes",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-26T10:04:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "abc7cc6df38b6cc4f796424cbe248574233a45c8",
          "body": "Bumps the aws-dependencies group with 2 updates: [boto3](https://github.com/boto/boto3) and [botocore](https://github.com/boto/botocore).\n\n\nUpdates `boto3` from 1.43.51 to 1.43.56\n- [Release notes](https://github.com/boto/boto3/releases)\n- [Commits](https://github.com/boto/boto3/compare/1.43.51...1.\n[…]\nependency-version: 1.43.56\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n  dependency-group: aws-dependencies\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>",
          "is_bot": true,
          "headline": "chore(deps): bump the aws-dependencies group with 2 updates",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-26T10:03:16Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d30a4e761e44366ffc7055a10ab53f1dc2d01e2b",
          "body": "Implement the request-summary, active-machine-count, and request-metrics SDK\nmethods, previously placeholders, by dispatching their queries through the\nquery bus. Route the request-cleanup and full-resource-cleanup methods at the\nexisting admin cleanup service, which finds retention-eligible records\n[…]\nsource listings: they dispatched to repository methods\nthat were never implemented and were unreachable in production. Drop the SDK\nplaceholders and protocol declarations left with no backing handler.",
          "is_bot": false,
          "headline": "feat(sdk): complete query methods and route cleanup to the admin service",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-26T07:37:43Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "cfa2ee2b905e9cba40b57bbfcd73dd8bfd3f7f7b",
          "body": "Add a contract test that drives each catalogued operation's output through\nevery interface it is exposed on and asserts the rendered body is identical,\nexcept where an entry declares an explicit per-interface renderer. Guards that\nevery multi-interface operation has coverage.",
          "is_bot": false,
          "headline": "test(interface): assert body consistency across interfaces",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-26T07:37:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "327a796dd27354a422c2e658a31d653057b5b133",
          "body": "Declare each domain operation once in an operation catalog: its orchestrator,\ninput and output DTOs, and the response-formatter call that renders its body.\nThe CLI and REST adapters look up the catalog entry and render through the\nshared response formatter instead of each restating the orchestrator \n[…]\n same total_count and next_cursor fields across interfaces.\n\nAdd a single-template detail method to the response formatter so template\nretrieval renders through the same path as every other operation.",
          "is_bot": false,
          "headline": "feat(interface): route interfaces through a shared operation catalog",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-26T07:37:43Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "cb85b1ee3b95873bdfbbdfa950b55e8b1ad834da",
          "body": "refactor: AWS auth config DRY, deprecation signals, resilience dependency inversion, CLI provider-type guard",
          "is_bot": false,
          "headline": "Merge pull request #336 from finos/chore/close-dangling-quality",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-24T15:01:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7d4f7b1939c9f8d45502dc30c02f19120f1c36bb",
          "body": "…lict\n\nAdd a regression test asserting --provider-type is declared exactly once per\nleaf sub-parser (inherited from the shared parent parser) and that registering\nan additional provider spec widens its choices rather than adding a second\nconflicting option string.",
          "is_bot": false,
          "headline": "test(cli): guard --provider-type against multi-provider argparse conf…",
          "author_name": "Flamur Gogolli",
          "author_login": "fgogolli",
          "committed_at": "2026-07-24T13:18:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 28,
      "commits_last_year": 3256,
      "latest_release_at": "2026-07-24T11:52:12Z",
      "latest_release_tag": "v1.8.5",
      "releases_from_tags": false,
      "days_since_last_push": 0,
      "active_weeks_last_year": 49,
      "days_since_latest_release": 4,
      "mean_days_between_releases": 6.3
    },
    "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": "github.com/finos/open-resource-broker",
          "exists": true,
          "license": null,
          "keywords": [],
          "ecosystem": "go",
          "matches_repo": true,
          "registry_url": "https://pkg.go.dev/github.com/finos/open-resource-broker",
          "is_deprecated": false,
          "latest_version": "v1.8.5",
          "repository_url": "https://github.com/finos/open-resource-broker",
          "versions_count": 27,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": null,
          "first_published_at": null,
          "latest_published_at": "2026-07-24T11:52:09Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 4
        },
        {
          "name": "orb-py",
          "exists": true,
          "license": "Apache-2.0",
          "keywords": [
            "aws",
            "ec2",
            "hostfactory",
            "symphony",
            "hpc",
            "cluster",
            "cloud",
            "infrastructure",
            "Development Status :: 4 - Beta",
            "Intended Audience :: Developers",
            "Natural Language :: English",
            "Operating System :: OS Independent",
            "Programming Language :: Python :: 3",
            "Programming Language :: Python :: 3.10",
            "Programming Language :: Python :: 3.11",
            "Programming Language :: Python :: 3.12",
            "Programming Language :: Python :: 3.13",
            "Programming Language :: Python :: 3.14",
            "Topic :: Software Development :: Libraries :: Python Modules",
            "Topic :: System :: Clustering",
            "Topic :: System :: Distributed Computing"
          ],
          "ecosystem": "pypi",
          "matches_repo": true,
          "registry_url": "https://pypi.org/project/orb-py/",
          "is_deprecated": false,
          "latest_version": "1.8.5",
          "repository_url": "https://github.com/finos/open-resource-broker",
          "versions_count": 20,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": 13502,
          "first_published_at": "2026-01-21T12:31:31.704775Z",
          "latest_published_at": "2026-07-24T11:59:21.359729Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 4
        }
      ]
    },
    "popularity": {
      "forks": 10,
      "stars": 18,
      "watchers": 2,
      "fork_history": {
        "days": [
          {
            "date": "2026-03-03",
            "count": 1
          },
          {
            "date": "2026-03-17",
            "count": 1
          },
          {
            "date": "2026-04-16",
            "count": 1
          },
          {
            "date": "2026-05-26",
            "count": 1
          },
          {
            "date": "2026-06-05",
            "count": 1
          },
          {
            "date": "2026-06-08",
            "count": 1
          },
          {
            "date": "2026-06-10",
            "count": 2
          },
          {
            "date": "2026-06-15",
            "count": 1
          },
          {
            "date": "2026-07-03",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 10,
        "total_forks": 10
      },
      "star_history": null,
      "open_issues_and_prs": 10
    },
    "ai_readiness": {
      "has_nix": true,
      "example_dirs": [
        "examples"
      ],
      "has_llms_txt": false,
      "has_dockerfile": true,
      "has_mcp_signal": true,
      "bootstrap_files": [
        "Makefile",
        "sdk/go/Makefile"
      ],
      "api_schema_files": [
        "sdk/spec/openapi.json"
      ],
      "has_devcontainer": false,
      "typecheck_configs": [
        "sdk/typescript/tsconfig.json",
        "src/orb/api/documentation/py.typed",
        "src/orb/api/middleware/py.typed",
        "src/orb/api/models/py.typed",
        "src/orb/api/py.typed",
        "src/orb/api/routers/py.typed",
        "src/orb/application/base/py.typed",
        "src/orb/application/commands/py.typed",
        "src/orb/application/dto/py.typed",
        "src/orb/application/events/base/py.typed",
        "src/orb/application/events/bus/py.typed",
        "src/orb/application/events/handlers/py.typed",
        "src/orb/application/events/py.typed",
        "src/orb/application/interfaces/py.typed",
        "src/orb/application/machine/py.typed",
        "src/orb/application/provider/py.typed",
        "src/orb/application/py.typed",
        "src/orb/application/queries/py.typed",
        "src/orb/application/request/py.typed",
        "src/orb/application/template/py.typed",
        "src/orb/cli/py.typed",
        "src/orb/config/managers/py.typed",
        "src/orb/config/py.typed",
        "src/orb/config/schemas/py.typed",
        "src/orb/config/utils/py.typed",
        "src/orb/config/validators/py.typed",
        "src/orb/domain/base/events/py.typed",
        "src/orb/domain/base/ports/py.typed",
        "src/orb/domain/base/py.typed",
        "src/orb/domain/machine/py.typed",
        "src/orb/domain/py.typed",
        "src/orb/domain/request/py.typed",
        "src/orb/domain/template/py.typed",
        "src/orb/infrastructure/adapters/factories/py.typed",
        "src/orb/infrastructure/adapters/ports/auth/py.typed",
        "src/orb/infrastructure/adapters/ports/py.typed",
        "src/orb/infrastructure/adapters/py.typed",
        "src/orb/infrastructure/auth/py.typed",
        "src/orb/infrastructure/auth/strategy/py.typed",
        "src/orb/infrastructure/caching/py.typed",
        "src/orb/infrastructure/di/components/py.typed",
        "src/orb/infrastructure/di/py.typed",
        "src/orb/infrastructure/error/py.typed",
        "src/orb/infrastructure/events/py.typed",
        "src/orb/infrastructure/handlers/base/py.typed",
        "src/orb/infrastructure/handlers/py.typed",
        "src/orb/infrastructure/interfaces/py.typed",
        "src/orb/infrastructure/logging/py.typed",
        "src/orb/infrastructure/mocking/py.typed",
        "src/orb/infrastructure/patterns/py.typed",
        "src/orb/infrastructure/py.typed",
        "src/orb/infrastructure/registry/py.typed",
        "src/orb/infrastructure/resilience/py.typed",
        "src/orb/infrastructure/resilience/strategy/py.typed",
        "src/orb/infrastructure/scheduler/base/py.typed",
        "src/orb/infrastructure/scheduler/default/py.typed",
        "src/orb/infrastructure/scheduler/hostfactory/py.typed",
        "src/orb/infrastructure/scheduler/py.typed",
        "src/orb/infrastructure/serialization/py.typed",
        "src/orb/infrastructure/storage/base/py.typed",
        "src/orb/infrastructure/storage/components/py.typed",
        "src/orb/infrastructure/storage/json/py.typed",
        "src/orb/infrastructure/storage/py.typed",
        "src/orb/infrastructure/storage/repositories/py.typed",
        "src/orb/infrastructure/storage/sql/py.typed",
        "src/orb/infrastructure/template/py.typed",
        "src/orb/infrastructure/utilities/common/collections/py.typed",
        "src/orb/infrastructure/utilities/common/py.typed",
        "src/orb/infrastructure/utilities/factories/py.typed",
        "src/orb/infrastructure/utilities/file/py.typed",
        "src/orb/infrastructure/utilities/py.typed",
        "src/orb/interface/py.typed",
        "src/orb/monitoring/py.typed",
        "src/orb/providers/aws/application/events/py.typed",
        "src/orb/providers/aws/application/machine/py.typed",
        "src/orb/providers/aws/application/py.typed",
        "src/orb/providers/aws/application/request/py.typed",
        "src/orb/providers/aws/application/template/py.typed",
        "src/orb/providers/aws/auth/py.typed",
        "src/orb/providers/aws/configuration/py.typed",
        "src/orb/providers/aws/domain/machine/py.typed",
        "src/orb/providers/aws/domain/py.typed",
        "src/orb/providers/aws/domain/request/py.typed",
        "src/orb/providers/aws/domain/template/py.typed",
        "src/orb/providers/aws/exceptions/py.typed",
        "src/orb/providers/aws/infrastructure/adapters/py.typed",
        "src/orb/providers/aws/infrastructure/handlers/components/py.typed",
        "src/orb/providers/aws/infrastructure/handlers/py.typed",
        "src/orb/providers/aws/infrastructure/launch_template/py.typed",
        "src/orb/providers/aws/infrastructure/py.typed",
        "src/orb/providers/aws/infrastructure/template/py.typed",
        "src/orb/providers/aws/persistence/py.typed",
        "src/orb/providers/aws/py.typed",
        "src/orb/providers/aws/resilience/py.typed",
        "src/orb/providers/aws/storage/components/py.typed",
        "src/orb/providers/aws/storage/py.typed",
        "src/orb/providers/aws/strategy/py.typed",
        "src/orb/providers/aws/utilities/ec2/py.typed",
        "src/orb/providers/aws/utilities/py.typed",
        "src/orb/providers/base/py.typed",
        "src/orb/providers/base/strategy/load_balancing/py.typed",
        "src/orb/providers/base/strategy/py.typed",
        "src/orb/providers/k8s/adapters/py.typed",
        "src/orb/providers/k8s/auth/py.typed",
        "src/orb/providers/k8s/cli/py.typed",
        "src/orb/providers/k8s/config/py.typed",
        "src/orb/providers/k8s/configuration/py.typed",
        "src/orb/providers/k8s/domain/py.typed",
        "src/orb/providers/k8s/domain/template/py.typed",
        "src/orb/providers/k8s/exceptions/py.typed",
        "src/orb/providers/k8s/infrastructure/adapters/py.typed",
        "src/orb/providers/k8s/infrastructure/handlers/py.typed",
        "src/orb/providers/k8s/infrastructure/handlers/shared/py.typed",
        "src/orb/providers/k8s/infrastructure/instrumentation/py.typed",
        "src/orb/providers/k8s/infrastructure/py.typed",
        "src/orb/providers/k8s/infrastructure/services/py.typed",
        "src/orb/providers/k8s/py.typed",
        "src/orb/providers/k8s/reconciliation/py.typed",
        "src/orb/providers/k8s/resilience/py.typed",
        "src/orb/providers/k8s/scheduler/py.typed",
        "src/orb/providers/k8s/services/py.typed",
        "src/orb/providers/k8s/strategy/py.typed",
        "src/orb/providers/k8s/utilities/py.typed",
        "src/orb/providers/k8s/validation/py.typed",
        "src/orb/providers/k8s/watch/py.typed",
        "src/orb/providers/py.typed",
        "src/orb/sdk/py.typed",
        "src/py.typed"
      ],
      "toolchain_manifests": [
        "go.mod",
        "sdk/csharp/src/FINOS.OpenResourceBroker/FINOS.OpenResourceBroker.csproj",
        "sdk/csharp/tests/contract/ContractTests.csproj",
        "sdk/csharp/tests/parity/ParityTests.csproj",
        "sdk/csharp/tests/unit/UnitTests.csproj",
        "sdk/go/go.mod",
        "sdk/java/build.gradle",
        "sdk/kotlin/build.gradle.kts"
      ],
      "largest_source_bytes": 110768,
      "source_files_sampled": 2139,
      "oversized_source_files": 9,
      "agent_instruction_files": [
        "k8s-legacy/AGENTS.md"
      ],
      "agent_instruction_max_bytes": 1328
    },
    "dependencies": {
      "manifests": [
        "go.mod",
        "pyproject.toml",
        "setup.py"
      ],
      "advisories": {
        "error": null,
        "scope": "published_package",
        "source": "osv",
        "findings": [],
        "collected": true,
        "malicious": [],
        "truncated": false,
        "by_severity": {},
        "advisory_count": 0,
        "affected_count": 0,
        "assessed_count": 32,
        "malicious_count": 0,
        "assessed_package": "pypi:orb-py@1.8.5",
        "unassessed_count": 0,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "go",
        "pypi"
      ],
      "dependencies": [
        {
          "name": "pydantic",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.0.0"
        },
        {
          "name": "pydantic-settings",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.0.0"
        },
        {
          "name": "sqlalchemy",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.0.0"
        },
        {
          "name": "urllib3",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.6.3"
        },
        {
          "name": "PyJWT",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.8.0"
        },
        {
          "name": "cryptography",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=46.0.5"
        },
        {
          "name": "filelock",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=3.20.1"
        },
        {
          "name": "requests",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.31.0"
        },
        {
          "name": "PyYAML",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=6.0.0"
        },
        {
          "name": "jsonschema",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=4.17.0"
        },
        {
          "name": "boto3",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=1.42.21"
        },
        {
          "name": "botocore",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=1.42.21"
        },
        {
          "name": "psutil",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=5.9.0"
        }
      ],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [
          {
            "name": "boto3",
            "direct": true,
            "version": "1.43.56",
            "ecosystem": "pypi"
          },
          {
            "name": "botocore",
            "direct": true,
            "version": "1.43.56",
            "ecosystem": "pypi"
          },
          {
            "name": "cryptography",
            "direct": true,
            "version": "49.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "filelock",
            "direct": true,
            "version": "3.32.0",
            "ecosystem": "pypi"
          },
          {
            "name": "jsonschema",
            "direct": true,
            "version": "4.26.0",
            "ecosystem": "pypi"
          },
          {
            "name": "psutil",
            "direct": true,
            "version": "7.2.2",
            "ecosystem": "pypi"
          },
          {
            "name": "pydantic",
            "direct": true,
            "version": "2.13.4",
            "ecosystem": "pypi"
          },
          {
            "name": "pydantic-settings",
            "direct": true,
            "version": "2.14.2",
            "ecosystem": "pypi"
          },
          {
            "name": "pyjwt",
            "direct": true,
            "version": "2.13.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pyyaml",
            "direct": true,
            "version": "6.0.3",
            "ecosystem": "pypi"
          },
          {
            "name": "requests",
            "direct": true,
            "version": "2.34.2",
            "ecosystem": "pypi"
          },
          {
            "name": "sqlalchemy",
            "direct": true,
            "version": "2.0.51",
            "ecosystem": "pypi"
          },
          {
            "name": "urllib3",
            "direct": true,
            "version": "2.7.0",
            "ecosystem": "pypi"
          },
          {
            "name": "@aws-crypto/sha256-js",
            "direct": false,
            "version": "5.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-crypto/util",
            "direct": false,
            "version": "5.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-sdk/core",
            "direct": false,
            "version": "3.975.3",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-sdk/credential-provider-cognito-identity",
            "direct": false,
            "version": "3.972.58",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-sdk/credential-provider-env",
            "direct": false,
            "version": "3.972.59",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-sdk/credential-provider-http",
            "direct": false,
            "version": "3.972.61",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-sdk/credential-provider-ini",
            "direct": false,
            "version": "3.973.4",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-sdk/credential-provider-login",
            "direct": false,
            "version": "3.972.66",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-sdk/credential-provider-node",
            "direct": false,
            "version": "3.972.70",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-sdk/credential-provider-process",
            "direct": false,
            "version": "3.972.59",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-sdk/credential-provider-sso",
            "direct": false,
            "version": "3.973.3",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-sdk/credential-provider-web-identity",
            "direct": false,
            "version": "3.972.65",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-sdk/credential-providers",
            "direct": false,
            "version": "3.1089.0",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-sdk/nested-clients",
            "direct": false,
            "version": "3.997.33",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-sdk/signature-v4-multi-region",
            "direct": false,
            "version": "3.996.41",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-sdk/token-providers",
            "direct": false,
            "version": "3.1088.0",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-sdk/types",
            "direct": false,
            "version": "3.974.2",
            "ecosystem": "npm"
          },
          {
            "name": "@aws-sdk/xml-builder",
            "direct": false,
            "version": "3.972.36",
            "ecosystem": "npm"
          },
          {
            "name": "@aws/lambda-invoke-store",
            "direct": false,
            "version": "0.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/code-frame",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/compat-data",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/core",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/generator",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-compilation-targets",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-globals",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-module-imports",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-module-transforms",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-plugin-utils",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-string-parser",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-validator-identifier",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-validator-option",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helpers",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/parser",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-async-generators",
            "direct": false,
            "version": "7.8.4",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-bigint",
            "direct": false,
            "version": "7.8.3",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-class-properties",
            "direct": false,
            "version": "7.12.13",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-class-static-block",
            "direct": false,
            "version": "7.14.5",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-import-attributes",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-import-meta",
            "direct": false,
            "version": "7.10.4",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-json-strings",
            "direct": false,
            "version": "7.8.3",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-jsx",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-logical-assignment-operators",
            "direct": false,
            "version": "7.10.4",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-nullish-coalescing-operator",
            "direct": false,
            "version": "7.8.3",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-numeric-separator",
            "direct": false,
            "version": "7.10.4",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-object-rest-spread",
            "direct": false,
            "version": "7.8.3",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-optional-catch-binding",
            "direct": false,
            "version": "7.8.3",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-optional-chaining",
            "direct": false,
            "version": "7.8.3",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-private-property-in-object",
            "direct": false,
            "version": "7.14.5",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-top-level-await",
            "direct": false,
            "version": "7.14.5",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/plugin-syntax-typescript",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/template",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/traverse",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/types",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@bcoe/v8-coverage",
            "direct": false,
            "version": "0.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/aix-ppc64",
            "direct": false,
            "version": "0.27.7",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/android-arm",
            "direct": false,
            "version": "0.27.7",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/android-arm64",
            "direct": false,
            "version": "0.27.7",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/android-x64",
            "direct": false,
            "version": "0.27.7",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/darwin-arm64",
            "direct": false,
            "version": "0.27.7",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/darwin-x64",
            "direct": false,
            "version": "0.27.7",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/freebsd-arm64",
            "direct": false,
            "version": "0.27.7",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/freebsd-x64",
            "direct": false,
            "version": "0.27.7",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-arm",
            "direct": false,
            "version": "0.27.7",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-arm64",
            "direct": false,
            "version": "0.27.7",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-ia32",
            "direct": false,
            "version": "0.27.7",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-loong64",
            "direct": false,
            "version": "0.27.7",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-mips64el",
            "direct": false,
            "version": "0.27.7",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-ppc64",
            "direct": false,
            "version": "0.27.7",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-riscv64",
            "direct": false,
            "version": "0.27.7",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-s390x",
            "direct": false,
            "version": "0.27.7",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-x64",
            "direct": false,
            "version": "0.27.7",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/netbsd-arm64",
            "direct": false,
            "version": "0.27.7",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/netbsd-x64",
            "direct": false,
            "version": "0.27.7",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/openbsd-arm64",
            "direct": false,
            "version": "0.27.7",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/openbsd-x64",
            "direct": false,
            "version": "0.27.7",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/openharmony-arm64",
            "direct": false,
            "version": "0.27.7",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/sunos-x64",
            "direct": false,
            "version": "0.27.7",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/win32-arm64",
            "direct": false,
            "version": "0.27.7",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/win32-ia32",
            "direct": false,
            "version": "0.27.7",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/win32-x64",
            "direct": false,
            "version": "0.27.7",
            "ecosystem": "npm"
          },
          {
            "name": "@istanbuljs/load-nyc-config",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@istanbuljs/schema",
            "direct": false,
            "version": "0.1.6",
            "ecosystem": "npm"
          },
          {
            "name": "@jest/console",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "@jest/core",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "@jest/environment",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "@jest/expect",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "@jest/expect-utils",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "@jest/fake-timers",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "@jest/globals",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "@jest/reporters",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "@jest/schemas",
            "direct": false,
            "version": "29.6.3",
            "ecosystem": "npm"
          },
          {
            "name": "@jest/source-map",
            "direct": false,
            "version": "29.6.3",
            "ecosystem": "npm"
          },
          {
            "name": "@jest/test-result",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "@jest/test-sequencer",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "@jest/transform",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "@jest/types",
            "direct": false,
            "version": "29.6.3",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/gen-mapping",
            "direct": false,
            "version": "0.3.13",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/remapping",
            "direct": false,
            "version": "2.3.5",
            "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": "@rollup/rollup-android-arm-eabi",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-android-arm64",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-darwin-arm64",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-darwin-x64",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-freebsd-arm64",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-freebsd-x64",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-arm-gnueabihf",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-arm-musleabihf",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-arm64-gnu",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-arm64-musl",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-loong64-gnu",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-loong64-musl",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-ppc64-gnu",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-ppc64-musl",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-riscv64-gnu",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-riscv64-musl",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-s390x-gnu",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-x64-gnu",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-x64-musl",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-openbsd-x64",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-openharmony-arm64",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-win32-arm64-msvc",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-win32-ia32-msvc",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-win32-x64-gnu",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-win32-x64-msvc",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@sinclair/typebox",
            "direct": false,
            "version": "0.27.12",
            "ecosystem": "npm"
          },
          {
            "name": "@sinonjs/commons",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "@sinonjs/fake-timers",
            "direct": false,
            "version": "10.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "@smithy/core",
            "direct": false,
            "version": "3.29.5",
            "ecosystem": "npm"
          },
          {
            "name": "@smithy/credential-provider-imds",
            "direct": false,
            "version": "4.4.10",
            "ecosystem": "npm"
          },
          {
            "name": "@smithy/fetch-http-handler",
            "direct": false,
            "version": "5.6.7",
            "ecosystem": "npm"
          },
          {
            "name": "@smithy/is-array-buffer",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@smithy/node-http-handler",
            "direct": false,
            "version": "4.9.7",
            "ecosystem": "npm"
          },
          {
            "name": "@smithy/protocol-http",
            "direct": false,
            "version": "5.5.10",
            "ecosystem": "npm"
          },
          {
            "name": "@smithy/signature-v4",
            "direct": false,
            "version": "5.6.6",
            "ecosystem": "npm"
          },
          {
            "name": "@smithy/types",
            "direct": false,
            "version": "4.16.1",
            "ecosystem": "npm"
          },
          {
            "name": "@smithy/util-buffer-from",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@smithy/util-utf8",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "@types/babel__core",
            "direct": false,
            "version": "7.20.5",
            "ecosystem": "npm"
          },
          {
            "name": "@types/babel__generator",
            "direct": false,
            "version": "7.27.0",
            "ecosystem": "npm"
          },
          {
            "name": "@types/babel__template",
            "direct": false,
            "version": "7.4.4",
            "ecosystem": "npm"
          },
          {
            "name": "@types/babel__traverse",
            "direct": false,
            "version": "7.28.0",
            "ecosystem": "npm"
          },
          {
            "name": "@types/estree",
            "direct": false,
            "version": "1.0.9",
            "ecosystem": "npm"
          },
          {
            "name": "@types/graceful-fs",
            "direct": false,
            "version": "4.1.9",
            "ecosystem": "npm"
          },
          {
            "name": "@types/istanbul-lib-coverage",
            "direct": false,
            "version": "2.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "@types/istanbul-lib-report",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/istanbul-reports",
            "direct": false,
            "version": "3.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "@types/jest",
            "direct": false,
            "version": "29.5.14",
            "ecosystem": "npm"
          },
          {
            "name": "@types/node",
            "direct": false,
            "version": "20.19.43",
            "ecosystem": "npm"
          },
          {
            "name": "@types/stack-utils",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/yargs",
            "direct": false,
            "version": "17.0.35",
            "ecosystem": "npm"
          },
          {
            "name": "@types/yargs-parser",
            "direct": false,
            "version": "21.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "acorn",
            "direct": false,
            "version": "8.17.0",
            "ecosystem": "npm"
          },
          {
            "name": "agent-base",
            "direct": false,
            "version": "6.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-escapes",
            "direct": false,
            "version": "4.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-regex",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-styles",
            "direct": false,
            "version": "4.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-styles",
            "direct": false,
            "version": "5.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "any-promise",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "anymatch",
            "direct": false,
            "version": "3.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "argparse",
            "direct": false,
            "version": "1.0.10",
            "ecosystem": "npm"
          },
          {
            "name": "asynckit",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "axios",
            "direct": false,
            "version": "1.18.1",
            "ecosystem": "npm"
          },
          {
            "name": "babel-jest",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "babel-plugin-istanbul",
            "direct": false,
            "version": "6.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "babel-plugin-jest-hoist",
            "direct": false,
            "version": "29.6.3",
            "ecosystem": "npm"
          },
          {
            "name": "babel-preset-current-node-syntax",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "babel-preset-jest",
            "direct": false,
            "version": "29.6.3",
            "ecosystem": "npm"
          },
          {
            "name": "balanced-match",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "baseline-browser-mapping",
            "direct": false,
            "version": "2.10.43",
            "ecosystem": "npm"
          },
          {
            "name": "bowser",
            "direct": false,
            "version": "2.14.1",
            "ecosystem": "npm"
          },
          {
            "name": "brace-expansion",
            "direct": false,
            "version": "1.1.16",
            "ecosystem": "npm"
          },
          {
            "name": "braces",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "browserslist",
            "direct": false,
            "version": "4.28.6",
            "ecosystem": "npm"
          },
          {
            "name": "bs-logger",
            "direct": false,
            "version": "0.2.6",
            "ecosystem": "npm"
          },
          {
            "name": "bser",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "buffer-from",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "bundle-require",
            "direct": false,
            "version": "5.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "cac",
            "direct": false,
            "version": "6.7.14",
            "ecosystem": "npm"
          },
          {
            "name": "call-bind-apply-helpers",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "callsites",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "camelcase",
            "direct": false,
            "version": "5.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "camelcase",
            "direct": false,
            "version": "6.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "caniuse-lite",
            "direct": false,
            "version": "1.0.30001806",
            "ecosystem": "npm"
          },
          {
            "name": "chalk",
            "direct": false,
            "version": "4.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "char-regex",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "chokidar",
            "direct": false,
            "version": "4.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "ci-info",
            "direct": false,
            "version": "3.9.0",
            "ecosystem": "npm"
          },
          {
            "name": "cjs-module-lexer",
            "direct": false,
            "version": "1.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "cliui",
            "direct": false,
            "version": "8.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "co",
            "direct": false,
            "version": "4.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "collect-v8-coverage",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "color-convert",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "color-name",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "combined-stream",
            "direct": false,
            "version": "1.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "commander",
            "direct": false,
            "version": "4.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "concat-map",
            "direct": false,
            "version": "0.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "confbox",
            "direct": false,
            "version": "0.1.8",
            "ecosystem": "npm"
          },
          {
            "name": "consola",
            "direct": false,
            "version": "3.4.2",
            "ecosystem": "npm"
          },
          {
            "name": "convert-source-map",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "create-jest",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "cross-spawn",
            "direct": false,
            "version": "7.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "debug",
            "direct": false,
            "version": "4.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "dedent",
            "direct": false,
            "version": "1.7.2",
            "ecosystem": "npm"
          },
          {
            "name": "deepmerge",
            "direct": false,
            "version": "4.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "delayed-stream",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "detect-newline",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "diff-sequences",
            "direct": false,
            "version": "29.6.3",
            "ecosystem": "npm"
          },
          {
            "name": "dunder-proto",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "electron-to-chromium",
            "direct": false,
            "version": "1.5.393",
            "ecosystem": "npm"
          },
          {
            "name": "emittery",
            "direct": false,
            "version": "0.13.1",
            "ecosystem": "npm"
          },
          {
            "name": "emoji-regex",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "error-ex",
            "direct": false,
            "version": "1.3.4",
            "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-object-atoms",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "es-set-tostringtag",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "esbuild",
            "direct": false,
            "version": "0.27.7",
            "ecosystem": "npm"
          },
          {
            "name": "escalade",
            "direct": false,
            "version": "3.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "escape-string-regexp",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "esprima",
            "direct": false,
            "version": "4.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "execa",
            "direct": false,
            "version": "5.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "exit",
            "direct": false,
            "version": "0.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "expect",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "fast-json-stable-stringify",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "fb-watchman",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "fdir",
            "direct": false,
            "version": "6.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "fill-range",
            "direct": false,
            "version": "7.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "find-up",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "fix-dts-default-cjs-exports",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "follow-redirects",
            "direct": false,
            "version": "1.16.0",
            "ecosystem": "npm"
          },
          {
            "name": "form-data",
            "direct": false,
            "version": "4.0.6",
            "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": "gensync",
            "direct": false,
            "version": "1.0.0-beta.2",
            "ecosystem": "npm"
          },
          {
            "name": "get-caller-file",
            "direct": false,
            "version": "2.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "get-intrinsic",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "get-package-type",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "get-proto",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "get-stream",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "glob",
            "direct": false,
            "version": "7.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "gopd",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "graceful-fs",
            "direct": false,
            "version": "4.2.11",
            "ecosystem": "npm"
          },
          {
            "name": "handlebars",
            "direct": false,
            "version": "4.7.9",
            "ecosystem": "npm"
          },
          {
            "name": "has-flag",
            "direct": false,
            "version": "4.0.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.4",
            "ecosystem": "npm"
          },
          {
            "name": "html-escaper",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "https-proxy-agent",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "human-signals",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "import-local",
            "direct": false,
            "version": "3.2.0",
            "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": "is-arrayish",
            "direct": false,
            "version": "0.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-core-module",
            "direct": false,
            "version": "2.16.2",
            "ecosystem": "npm"
          },
          {
            "name": "is-fullwidth-code-point",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-generator-fn",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-number",
            "direct": false,
            "version": "7.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-stream",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "isexe",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "istanbul-lib-coverage",
            "direct": false,
            "version": "3.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "istanbul-lib-instrument",
            "direct": false,
            "version": "5.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "istanbul-lib-instrument",
            "direct": false,
            "version": "6.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "istanbul-lib-report",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "istanbul-lib-source-maps",
            "direct": false,
            "version": "4.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "istanbul-reports",
            "direct": false,
            "version": "3.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-changed-files",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-circus",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-cli",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-config",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-diff",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-docblock",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-each",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-environment-node",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-get-type",
            "direct": false,
            "version": "29.6.3",
            "ecosystem": "npm"
          },
          {
            "name": "jest-haste-map",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-leak-detector",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-matcher-utils",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-message-util",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-mock",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-pnp-resolver",
            "direct": false,
            "version": "1.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "jest-regex-util",
            "direct": false,
            "version": "29.6.3",
            "ecosystem": "npm"
          },
          {
            "name": "jest-resolve",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-resolve-dependencies",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-runner",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-runtime",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-snapshot",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-util",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-validate",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-watcher",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "jest-worker",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "joycon",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "js-tokens",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "js-yaml",
            "direct": false,
            "version": "3.15.0",
            "ecosystem": "npm"
          },
          {
            "name": "jsesc",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "json-parse-even-better-errors",
            "direct": false,
            "version": "2.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "json5",
            "direct": false,
            "version": "2.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "kleur",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "leven",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "lilconfig",
            "direct": false,
            "version": "3.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "lines-and-columns",
            "direct": false,
            "version": "1.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "load-tsconfig",
            "direct": false,
            "version": "0.2.5",
            "ecosystem": "npm"
          },
          {
            "name": "locate-path",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "lodash.memoize",
            "direct": false,
            "version": "4.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "lru-cache",
            "direct": false,
            "version": "5.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "magic-string",
            "direct": false,
            "version": "0.30.21",
            "ecosystem": "npm"
          },
          {
            "name": "make-dir",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "make-error",
            "direct": false,
            "version": "1.3.6",
            "ecosystem": "npm"
          },
          {
            "name": "makeerror",
            "direct": false,
            "version": "1.0.12",
            "ecosystem": "npm"
          },
          {
            "name": "math-intrinsics",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "merge-stream",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "micromatch",
            "direct": false,
            "version": "4.0.8",
            "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-fn",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "minimatch",
            "direct": false,
            "version": "3.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "minimist",
            "direct": false,
            "version": "1.2.8",
            "ecosystem": "npm"
          },
          {
            "name": "mlly",
            "direct": false,
            "version": "1.8.2",
            "ecosystem": "npm"
          },
          {
            "name": "ms",
            "direct": false,
            "version": "2.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "mz",
            "direct": false,
            "version": "2.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "natural-compare",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "neo-async",
            "direct": false,
            "version": "2.6.2",
            "ecosystem": "npm"
          },
          {
            "name": "node-int64",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "node-releases",
            "direct": false,
            "version": "2.0.51",
            "ecosystem": "npm"
          },
          {
            "name": "normalize-path",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "npm-run-path",
            "direct": false,
            "version": "4.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "object-assign",
            "direct": false,
            "version": "4.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "once",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "onetime",
            "direct": false,
            "version": "5.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "p-limit",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "p-limit",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "p-locate",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "p-try",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "parse-json",
            "direct": false,
            "version": "5.2.0",
            "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": "pathe",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "picocolors",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "picomatch",
            "direct": false,
            "version": "2.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "picomatch",
            "direct": false,
            "version": "4.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "pirates",
            "direct": false,
            "version": "4.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "pkg-dir",
            "direct": false,
            "version": "4.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "pkg-types",
            "direct": false,
            "version": "1.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "postcss-load-config",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "pretty-format",
            "direct": false,
            "version": "29.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "prompts",
            "direct": false,
            "version": "2.4.2",
            "ecosystem": "npm"
          },
          {
            "name": "proxy-from-env",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "pure-rand",
            "direct": false,
            "version": "6.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "react-is",
            "direct": false,
            "version": "18.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "readdirp",
            "direct": false,
            "version": "4.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "require-directory",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "resolve",
            "direct": false,
            "version": "1.22.12",
            "ecosystem": "npm"
          },
          {
            "name": "resolve-cwd",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "resolve-from",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "resolve.exports",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "rollup",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "semver",
            "direct": false,
            "version": "6.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "semver",
            "direct": false,
            "version": "7.8.5",
            "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": "signal-exit",
            "direct": false,
            "version": "3.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "sisteransi",
            "direct": false,
            "version": "1.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "slash",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "source-map",
            "direct": false,
            "version": "0.6.1",
            "ecosystem": "npm"
          },
          {
            "name": "source-map",
            "direct": false,
            "version": "0.7.6",
            "ecosystem": "npm"
          },
          {
            "name": "source-map-support",
            "direct": false,
            "version": "0.5.13",
            "ecosystem": "npm"
          },
          {
            "name": "sprintf-js",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "stack-utils",
            "direct": false,
            "version": "2.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "string-length",
            "direct": false,
            "version": "4.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "string-width",
            "direct": false,
            "version": "4.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "strip-ansi",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "strip-bom",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "strip-final-newline",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "strip-json-comments",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "sucrase",
            "direct": false,
            "version": "3.35.1",
            "ecosystem": "npm"
          },
          {
            "name": "supports-color",
            "direct": false,
            "version": "7.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "supports-color",
            "direct": false,
            "version": "8.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "supports-preserve-symlinks-flag",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "test-exclude",
            "direct": false,
            "version": "6.0.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": "tinyexec",
            "direct": false,
            "version": "0.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "tinyglobby",
            "direct": false,
            "version": "0.2.17",
            "ecosystem": "npm"
          },
          {
            "name": "tmpl",
            "direct": false,
            "version": "1.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "to-regex-range",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "tree-kill",
            "direct": false,
            "version": "1.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "ts-interface-checker",
            "direct": false,
            "version": "0.1.13",
            "ecosystem": "npm"
          },
          {
            "name": "ts-jest",
            "direct": false,
            "version": "29.4.11",
            "ecosystem": "npm"
          },
          {
            "name": "tslib",
            "direct": false,
            "version": "2.8.1",
            "ecosystem": "npm"
          },
          {
            "name": "tsup",
            "direct": false,
            "version": "8.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "type-detect",
            "direct": false,
            "version": "4.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "type-fest",
            "direct": false,
            "version": "0.21.3",
            "ecosystem": "npm"
          },
          {
            "name": "type-fest",
            "direct": false,
            "version": "4.41.0",
            "ecosystem": "npm"
          },
          {
            "name": "typescript",
            "direct": false,
            "version": "5.9.3",
            "ecosystem": "npm"
          },
          {
            "name": "ufo",
            "direct": false,
            "version": "1.6.4",
            "ecosystem": "npm"
          },
          {
            "name": "uglify-js",
            "direct": false,
            "version": "3.19.3",
            "ecosystem": "npm"
          },
          {
            "name": "undici",
            "direct": false,
            "version": "6.27.0",
            "ecosystem": "npm"
          },
          {
            "name": "undici-types",
            "direct": false,
            "version": "6.21.0",
            "ecosystem": "npm"
          },
          {
            "name": "update-browserslist-db",
            "direct": false,
            "version": "1.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "v8-to-istanbul",
            "direct": false,
            "version": "9.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "walker",
            "direct": false,
            "version": "1.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "which",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "wordwrap",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "wrap-ansi",
            "direct": false,
            "version": "7.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "wrappy",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "write-file-atomic",
            "direct": false,
            "version": "4.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "y18n",
            "direct": false,
            "version": "5.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "yallist",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "yargs",
            "direct": false,
            "version": "17.7.3",
            "ecosystem": "npm"
          },
          {
            "name": "yargs-parser",
            "direct": false,
            "version": "21.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "yocto-queue",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "AWSSDK.Core",
            "direct": false,
            "version": "3.7.400.47",
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.NET.Test.Sdk",
            "direct": false,
            "version": "17.10.0",
            "ecosystem": "nuget"
          },
          {
            "name": "System.Text.Json",
            "direct": false,
            "version": "8.0.5",
            "ecosystem": "nuget"
          },
          {
            "name": "xunit",
            "direct": false,
            "version": "2.8.1",
            "ecosystem": "nuget"
          },
          {
            "name": "xunit.runner.visualstudio",
            "direct": false,
            "version": "2.8.1",
            "ecosystem": "nuget"
          },
          {
            "name": "aiohappyeyeballs",
            "direct": false,
            "version": "2.7.1",
            "ecosystem": "pypi"
          },
          {
            "name": "aiohttp",
            "direct": false,
            "version": "3.14.3",
            "ecosystem": "pypi"
          },
          {
            "name": "aiosignal",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "alembic",
            "direct": false,
            "version": "1.18.5",
            "ecosystem": "pypi"
          },
          {
            "name": "annotated-doc",
            "direct": false,
            "version": "0.0.4",
            "ecosystem": "pypi"
          },
          {
            "name": "annotated-types",
            "direct": false,
            "version": "0.8.0",
            "ecosystem": "pypi"
          },
          {
            "name": "antlr4-python3-runtime",
            "direct": false,
            "version": "4.13.2",
            "ecosystem": "pypi"
          },
          {
            "name": "anyio",
            "direct": false,
            "version": "4.14.2",
            "ecosystem": "pypi"
          },
          {
            "name": "asgiref",
            "direct": false,
            "version": "3.12.1",
            "ecosystem": "pypi"
          },
          {
            "name": "asn1crypto",
            "direct": false,
            "version": "1.5.1",
            "ecosystem": "pypi"
          },
          {
            "name": "asttokens",
            "direct": false,
            "version": "3.0.2",
            "ecosystem": "pypi"
          },
          {
            "name": "async-timeout",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "pypi"
          },
          {
            "name": "attrs",
            "direct": false,
            "version": "26.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "authlib",
            "direct": false,
            "version": "1.7.2",
            "ecosystem": "pypi"
          },
          {
            "name": "aws-sam-translator",
            "direct": false,
            "version": "1.111.0",
            "ecosystem": "pypi"
          },
          {
            "name": "aws-xray-sdk",
            "direct": false,
            "version": "2.15.0",
            "ecosystem": "pypi"
          },
          {
            "name": "babel",
            "direct": false,
            "version": "2.18.0",
            "ecosystem": "pypi"
          },
          {
            "name": "backports-asyncio-runner",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "pypi"
          },
          {
            "name": "backports-datetime-fromisoformat",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "pypi"
          },
          {
            "name": "backports-tarfile",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "pypi"
          },
          {
            "name": "backrefs",
            "direct": false,
            "version": "8.0",
            "ecosystem": "pypi"
          },
          {
            "name": "bandit",
            "direct": false,
            "version": "1.9.4",
            "ecosystem": "pypi"
          },
          {
            "name": "bandit-sarif-formatter",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "pypi"
          },
          {
            "name": "bidict",
            "direct": false,
            "version": "0.23.1",
            "ecosystem": "pypi"
          },
          {
            "name": "boolean-py",
            "direct": false,
            "version": "5.0",
            "ecosystem": "pypi"
          },
          {
            "name": "build",
            "direct": false,
            "version": "1.5.0",
            "ecosystem": "pypi"
          },
          {
            "name": "bump2version",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "pypi"
          },
          {
            "name": "cachecontrol",
            "direct": false,
            "version": "0.14.4",
            "ecosystem": "pypi"
          },
          {
            "name": "certifi",
            "direct": false,
            "version": "2026.7.22",
            "ecosystem": "pypi"
          },
          {
            "name": "cffi",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "cfgv",
            "direct": false,
            "version": "3.5.0",
            "ecosystem": "pypi"
          },
          {
            "name": "cfn-lint",
            "direct": false,
            "version": "1.53.2",
            "ecosystem": "pypi"
          },
          {
            "name": "chardet",
            "direct": false,
            "version": "5.2.0",
            "ecosystem": "pypi"
          },
          {
            "name": "charset-normalizer",
            "direct": false,
            "version": "3.4.9",
            "ecosystem": "pypi"
          },
          {
            "name": "click",
            "direct": false,
            "version": "8.4.2",
            "ecosystem": "pypi"
          },
          {
            "name": "click-option-group",
            "direct": false,
            "version": "0.5.9",
            "ecosystem": "pypi"
          },
          {
            "name": "colorama",
            "direct": false,
            "version": "0.4.6",
            "ecosystem": "pypi"
          },
          {
            "name": "coverage",
            "direct": false,
            "version": "7.15.2",
            "ecosystem": "pypi"
          },
          {
            "name": "cyclonedx-bom",
            "direct": false,
            "version": "7.3.1",
            "ecosystem": "pypi"
          },
          {
            "name": "cyclonedx-python-lib",
            "direct": false,
            "version": "11.11.0",
            "ecosystem": "pypi"
          },
          {
            "name": "decorator",
            "direct": false,
            "version": "5.3.1",
            "ecosystem": "pypi"
          },
          {
            "name": "defusedxml",
            "direct": false,
            "version": "0.7.1",
            "ecosystem": "pypi"
          },
          {
            "name": "deprecated",
            "direct": false,
            "version": "1.3.1",
            "ecosystem": "pypi"
          },
          {
            "name": "distlib",
            "direct": false,
            "version": "0.4.3",
            "ecosystem": "pypi"
          },
          {
            "name": "docker",
            "direct": false,
            "version": "7.2.0",
            "ecosystem": "pypi"
          },
          {
            "name": "docutils",
            "direct": false,
            "version": "0.23",
            "ecosystem": "pypi"
          },
          {
            "name": "dotty-dict",
            "direct": false,
            "version": "1.3.1",
            "ecosystem": "pypi"
          },
          {
            "name": "dparse",
            "direct": false,
            "version": "0.6.4",
            "ecosystem": "pypi"
          },
          {
            "name": "durationpy",
            "direct": false,
            "version": "0.10",
            "ecosystem": "pypi"
          },
          {
            "name": "exceptiongroup",
            "direct": false,
            "version": "1.3.1",
            "ecosystem": "pypi"
          },
          {
            "name": "execnet",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "pypi"
          },
          {
            "name": "executing",
            "direct": false,
            "version": "2.2.1",
            "ecosystem": "pypi"
          },
          {
            "name": "fastapi",
            "direct": false,
            "version": "0.140.0",
            "ecosystem": "pypi"
          },
          {
            "name": "frozenlist",
            "direct": false,
            "version": "1.8.0",
            "ecosystem": "pypi"
          },
          {
            "name": "ghp-import",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "git-changelog",
            "direct": false,
            "version": "2.9.4",
            "ecosystem": "pypi"
          },
          {
            "name": "gitdb",
            "direct": false,
            "version": "4.0.12",
            "ecosystem": "pypi"
          },
          {
            "name": "gitpython",
            "direct": false,
            "version": "3.1.57",
            "ecosystem": "pypi"
          },
          {
            "name": "granian",
            "direct": false,
            "version": "2.7.9",
            "ecosystem": "pypi"
          },
          {
            "name": "graphql-core",
            "direct": false,
            "version": "3.2.11",
            "ecosystem": "pypi"
          },
          {
            "name": "greenlet",
            "direct": false,
            "version": "3.5.4",
            "ecosystem": "pypi"
          },
          {
            "name": "griffelib",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "grimp",
            "direct": false,
            "version": "3.15",
            "ecosystem": "pypi"
          },
          {
            "name": "h11",
            "direct": false,
            "version": "0.16.0",
            "ecosystem": "pypi"
          },
          {
            "name": "httpcore",
            "direct": false,
            "version": "1.0.9",
            "ecosystem": "pypi"
          },
          {
            "name": "httpx",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "pypi"
          },
          {
            "name": "httpx-sse",
            "direct": false,
            "version": "0.4.3",
            "ecosystem": "pypi"
          },
          {
            "name": "id",
            "direct": false,
            "version": "1.6.1",
            "ecosystem": "pypi"
          },
          {
            "name": "identify",
            "direct": false,
            "version": "2.6.19",
            "ecosystem": "pypi"
          },
          {
            "name": "idna",
            "direct": false,
            "version": "3.18",
            "ecosystem": "pypi"
          },
          {
            "name": "import-linter",
            "direct": false,
            "version": "2.13",
            "ecosystem": "pypi"
          },
          {
            "name": "importlib-metadata",
            "direct": false,
            "version": "9.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "importlib-resources",
            "direct": false,
            "version": "6.5.2",
            "ecosystem": "pypi"
          },
          {
            "name": "iniconfig",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "pypi"
          },
          {
            "name": "ipdb",
            "direct": false,
            "version": "0.13.13",
            "ecosystem": "pypi"
          },
          {
            "name": "ipython",
            "direct": false,
            "version": "8.39.0",
            "ecosystem": "pypi"
          },
          {
            "name": "jaraco-classes",
            "direct": false,
            "version": "3.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "jaraco-context",
            "direct": false,
            "version": "6.1.2",
            "ecosystem": "pypi"
          },
          {
            "name": "jaraco-functools",
            "direct": false,
            "version": "4.6.0",
            "ecosystem": "pypi"
          },
          {
            "name": "jedi",
            "direct": false,
            "version": "0.20.0",
            "ecosystem": "pypi"
          },
          {
            "name": "jeepney",
            "direct": false,
            "version": "0.9.0",
            "ecosystem": "pypi"
          },
          {
            "name": "jinja2",
            "direct": false,
            "version": "3.1.6",
            "ecosystem": "pypi"
          },
          {
            "name": "jmespath",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "joblib",
            "direct": false,
            "version": "1.5.3",
            "ecosystem": "pypi"
          },
          {
            "name": "joserfc",
            "direct": false,
            "version": "1.7.4",
            "ecosystem": "pypi"
          },
          {
            "name": "jschema-to-python",
            "direct": false,
            "version": "1.2.3",
            "ecosystem": "pypi"
          },
          {
            "name": "jsonpatch",
            "direct": false,
            "version": "1.33",
            "ecosystem": "pypi"
          },
          {
            "name": "jsonpath-ng",
            "direct": false,
            "version": "1.8.0",
            "ecosystem": "pypi"
          },
          {
            "name": "jsonpickle",
            "direct": false,
            "version": "4.1.2",
            "ecosystem": "pypi"
          },
          {
            "name": "jsonpointer",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "pypi"
          },
          {
            "name": "jsonschema-path",
            "direct": false,
            "version": "0.5.0",
            "ecosystem": "pypi"
          },
          {
            "name": "jsonschema-specifications",
            "direct": false,
            "version": "2025.9.1",
            "ecosystem": "pypi"
          },
          {
            "name": "keyring",
            "direct": false,
            "version": "25.7.0",
            "ecosystem": "pypi"
          },
          {
            "name": "kmock",
            "direct": false,
            "version": "0.7",
            "ecosystem": "pypi"
          },
          {
            "name": "kubernetes",
            "direct": false,
            "version": "36.0.3",
            "ecosystem": "pypi"
          },
          {
            "name": "kubernetes-stubs-elephant-fork",
            "direct": false,
            "version": "36.0.3.post1",
            "ecosystem": "pypi"
          },
          {
            "name": "lazy-object-proxy",
            "direct": false,
            "version": "1.12.0",
            "ecosystem": "pypi"
          },
          {
            "name": "license-expression",
            "direct": false,
            "version": "30.4.4",
            "ecosystem": "pypi"
          },
          {
            "name": "line-profiler",
            "direct": false,
            "version": "5.0.2",
            "ecosystem": "pypi"
          },
          {
            "name": "lxml",
            "direct": false,
            "version": "6.1.1",
            "ecosystem": "pypi"
          },
          {
            "name": "mako",
            "direct": false,
            "version": "1.3.12",
            "ecosystem": "pypi"
          },
          {
            "name": "mando",
            "direct": false,
            "version": "0.7.1",
            "ecosystem": "pypi"
          },
          {
            "name": "markdown",
            "direct": false,
            "version": "3.10.2",
            "ecosystem": "pypi"
          },
          {
            "name": "markdown-it-py",
            "direct": false,
            "version": "4.2.0",
            "ecosystem": "pypi"
          },
          {
            "name": "markupsafe",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "pypi"
          },
          {
            "name": "marshmallow",
            "direct": false,
            "version": "4.3.0",
            "ecosystem": "pypi"
          },
          {
            "name": "matplotlib-inline",
            "direct": false,
            "version": "0.2.2",
            "ecosystem": "pypi"
          },
          {
            "name": "mcp",
            "direct": false,
            "version": "1.28.1",
            "ecosystem": "pypi"
          },
          {
            "name": "mdurl",
            "direct": false,
            "version": "0.1.2",
            "ecosystem": "pypi"
          },
          {
            "name": "memory-profiler",
            "direct": false,
            "version": "0.61.0",
            "ecosystem": "pypi"
          },
          {
            "name": "mergedeep",
            "direct": false,
            "version": "1.3.4",
            "ecosystem": "pypi"
          },
          {
            "name": "mike",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "pypi"
          },
          {
            "name": "mkdocs",
            "direct": false,
            "version": "1.6.1",
            "ecosystem": "pypi"
          },
          {
            "name": "mkdocs-autorefs",
            "direct": false,
            "version": "1.4.4",
            "ecosystem": "pypi"
          },
          {
            "name": "mkdocs-gen-files",
            "direct": false,
            "version": "0.6.1",
            "ecosystem": "pypi"
          },
          {
            "name": "mkdocs-get-deps",
            "direct": false,
            "version": "0.2.2",
            "ecosystem": "pypi"
          },
          {
            "name": "mkdocs-literate-nav",
            "direct": false,
            "version": "0.6.3",
            "ecosystem": "pypi"
          },
          {
            "name": "mkdocs-material",
            "direct": false,
            "version": "9.7.7",
            "ecosystem": "pypi"
          },
          {
            "name": "mkdocs-material-extensions",
            "direct": false,
            "version": "1.3.1",
            "ecosystem": "pypi"
          },
          {
            "name": "mkdocs-section-index",
            "direct": false,
            "version": "0.3.12",
            "ecosystem": "pypi"
          },
          {
            "name": "mkdocstrings",
            "direct": false,
            "version": "1.0.6",
            "ecosystem": "pypi"
          },
          {
            "name": "mkdocstrings-python",
            "direct": false,
            "version": "2.0.5",
            "ecosystem": "pypi"
          },
          {
            "name": "more-itertools",
            "direct": false,
            "version": "11.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "moto",
            "direct": false,
            "version": "5.2.2",
            "ecosystem": "pypi"
          },
          {
            "name": "mpmath",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "pypi"
          },
          {
            "name": "msgpack",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "pypi"
          },
          {
            "name": "multidict",
            "direct": false,
            "version": "6.7.1",
            "ecosystem": "pypi"
          },
          {
            "name": "multipart",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "networkx",
            "direct": false,
            "version": "3.4.2",
            "ecosystem": "pypi"
          },
          {
            "name": "networkx",
            "direct": false,
            "version": "3.6.1",
            "ecosystem": "pypi"
          },
          {
            "name": "nh3",
            "direct": false,
            "version": "0.3.6",
            "ecosystem": "pypi"
          },
          {
            "name": "nltk",
            "direct": false,
            "version": "3.10.0",
            "ecosystem": "pypi"
          },
          {
            "name": "nodeenv",
            "direct": false,
            "version": "1.10.0",
            "ecosystem": "pypi"
          },
          {
            "name": "oauthlib",
            "direct": false,
            "version": "3.3.1",
            "ecosystem": "pypi"
          },
          {
            "name": "openapi-schema-validator",
            "direct": false,
            "version": "0.9.0",
            "ecosystem": "pypi"
          },
          {
            "name": "openapi-spec-validator",
            "direct": false,
            "version": "0.9.0",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-api",
            "direct": false,
            "version": "1.44.0",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-exporter-prometheus",
            "direct": false,
            "version": "0.65b0",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-instrumentation",
            "direct": false,
            "version": "0.65b0",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-instrumentation-asgi",
            "direct": false,
            "version": "0.65b0",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-instrumentation-botocore",
            "direct": false,
            "version": "0.65b0",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-instrumentation-click",
            "direct": false,
            "version": "0.65b0",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-instrumentation-fastapi",
            "direct": false,
            "version": "0.65b0",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-instrumentation-logging",
            "direct": false,
            "version": "0.65b0",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-instrumentation-sqlalchemy",
            "direct": false,
            "version": "0.65b0",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-instrumentation-system-metrics",
            "direct": false,
            "version": "0.65b0",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-propagator-aws-xray",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-sdk",
            "direct": false,
            "version": "1.44.0",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-semantic-conventions",
            "direct": false,
            "version": "0.65b0",
            "ecosystem": "pypi"
          },
          {
            "name": "opentelemetry-util-http",
            "direct": false,
            "version": "0.65b0",
            "ecosystem": "pypi"
          },
          {
            "name": "orb-py",
            "direct": false,
            "version": "1.8.5",
            "ecosystem": "pypi"
          },
          {
            "name": "packageurl-python",
            "direct": false,
            "version": "0.17.6",
            "ecosystem": "pypi"
          },
          {
            "name": "packaging",
            "direct": false,
            "version": "26.2",
            "ecosystem": "pypi"
          },
          {
            "name": "paginate",
            "direct": false,
            "version": "0.5.7",
            "ecosystem": "pypi"
          },
          {
            "name": "parso",
            "direct": false,
            "version": "0.8.7",
            "ecosystem": "pypi"
          },
          {
            "name": "pathable",
            "direct": false,
            "version": "0.6.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pathspec",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "pypi"
          },
          {
            "name": "pbr",
            "direct": false,
            "version": "7.0.3",
            "ecosystem": "pypi"
          },
          {
            "name": "peewee",
            "direct": false,
            "version": "4.2.6",
            "ecosystem": "pypi"
          },
          {
            "name": "pexpect",
            "direct": false,
            "version": "4.9.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pg8000",
            "direct": false,
            "version": "1.31.5",
            "ecosystem": "pypi"
          },
          {
            "name": "pip",
            "direct": false,
            "version": "26.1.2",
            "ecosystem": "pypi"
          },
          {
            "name": "pip-api",
            "direct": false,
            "version": "0.0.34",
            "ecosystem": "pypi"
          },
          {
            "name": "pip-audit",
            "direct": false,
            "version": "2.10.1",
            "ecosystem": "pypi"
          },
          {
            "name": "pip-requirements-parser",
            "direct": false,
            "version": "32.0.1",
            "ecosystem": "pypi"
          },
          {
            "name": "pip-tools",
            "direct": false,
            "version": "7.6.0",
            "ecosystem": "pypi"
          },
          {
            "name": "platformdirs",
            "direct": false,
            "version": "4.11.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pluggy",
            "direct": false,
            "version": "1.6.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pre-commit",
            "direct": false,
            "version": "4.6.1",
            "ecosystem": "pypi"
          },
          {
            "name": "prometheus-client",
            "direct": false,
            "version": "0.26.0",
            "ecosystem": "pypi"
          },
          {
            "name": "prompt-toolkit",
            "direct": false,
            "version": "3.0.53",
            "ecosystem": "pypi"
          },
          {
            "name": "propcache",
            "direct": false,
            "version": "0.5.2",
            "ecosystem": "pypi"
          },
          {
            "name": "properdocs",
            "direct": false,
            "version": "1.6.7",
            "ecosystem": "pypi"
          },
          {
            "name": "ptyprocess",
            "direct": false,
            "version": "0.7.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pure-eval",
            "direct": false,
            "version": "0.2.3",
            "ecosystem": "pypi"
          },
          {
            "name": "py-cpuinfo",
            "direct": false,
            "version": "9.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "py-partiql-parser",
            "direct": false,
            "version": "0.6.3",
            "ecosystem": "pypi"
          },
          {
            "name": "py-serializable",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "py-spy",
            "direct": false,
            "version": "0.4.2",
            "ecosystem": "pypi"
          },
          {
            "name": "pycparser",
            "direct": false,
            "version": "3.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pydantic-core",
            "direct": false,
            "version": "2.46.4",
            "ecosystem": "pypi"
          },
          {
            "name": "pygments",
            "direct": false,
            "version": "2.20.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pymdown-extensions",
            "direct": false,
            "version": "11.0.1",
            "ecosystem": "pypi"
          },
          {
            "name": "pyparsing",
            "direct": false,
            "version": "3.3.2",
            "ecosystem": "pypi"
          },
          {
            "name": "pyproject-hooks",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pyright",
            "direct": false,
            "version": "1.1.411",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest",
            "direct": false,
            "version": "9.1.1",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-asyncio",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-benchmark",
            "direct": false,
            "version": "5.2.3",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-cov",
            "direct": false,
            "version": "7.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-env",
            "direct": false,
            "version": "1.7.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-html",
            "direct": false,
            "version": "4.2.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-metadata",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-mock",
            "direct": false,
            "version": "3.15.1",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-timeout",
            "direct": false,
            "version": "2.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-xdist",
            "direct": false,
            "version": "3.8.0",
            "ecosystem": "pypi"
          },
          {
            "name": "python-dateutil",
            "direct": false,
            "version": "2.9.0.post0",
            "ecosystem": "pypi"
          },
          {
            "name": "python-discovery",
            "direct": false,
            "version": "1.5.0",
            "ecosystem": "pypi"
          },
          {
            "name": "python-dotenv",
            "direct": false,
            "version": "1.2.2",
            "ecosystem": "pypi"
          },
          {
            "name": "python-engineio",
            "direct": false,
            "version": "4.13.3",
            "ecosystem": "pypi"
          },
          {
            "name": "python-gitlab",
            "direct": false,
            "version": "8.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "python-multipart",
            "direct": false,
            "version": "0.0.32",
            "ecosystem": "pypi"
          },
          {
            "name": "python-semantic-release",
            "direct": false,
            "version": "10.6.1",
            "ecosystem": "pypi"
          },
          {
            "name": "python-socketio",
            "direct": false,
            "version": "5.16.3",
            "ecosystem": "pypi"
          },
          {
            "name": "pywin32",
            "direct": false,
            "version": "312",
            "ecosystem": "pypi"
          },
          {
            "name": "pywin32-ctypes",
            "direct": false,
            "version": "0.2.3",
            "ecosystem": "pypi"
          },
          {
            "name": "pyyaml-env-tag",
            "direct": false,
            "version": "1.1",
            "ecosystem": "pypi"
          },
          {
            "name": "radon",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "pypi"
          },
          {
            "name": "readme-renderer",
            "direct": false,
            "version": "45.0",
            "ecosystem": "pypi"
          },
          {
            "name": "redis",
            "direct": false,
            "version": "7.4.1",
            "ecosystem": "pypi"
          },
          {
            "name": "referencing",
            "direct": false,
            "version": "0.37.0",
            "ecosystem": "pypi"
          },
          {
            "name": "reflex",
            "direct": false,
            "version": "0.9.7",
            "ecosystem": "pypi"
          },
          {
            "name": "reflex-base",
            "direct": false,
            "version": "0.9.7",
            "ecosystem": "pypi"
          },
          {
            "name": "reflex-components-code",
            "direct": false,
            "version": "0.9.2",
            "ecosystem": "pypi"
          },
          {
            "name": "reflex-components-core",
            "direct": false,
            "version": "0.9.7",
            "ecosystem": "pypi"
          },
          {
            "name": "reflex-components-dataeditor",
            "direct": false,
            "version": "0.9.1",
            "ecosystem": "pypi"
          },
          {
            "name": "reflex-components-gridjs",
            "direct": false,
            "version": "0.9.1",
            "ecosystem": "pypi"
          },
          {
            "name": "reflex-components-lucide",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "pypi"
          },
          {
            "name": "reflex-components-markdown",
            "direct": false,
            "version": "0.9.3",
            "ecosystem": "pypi"
          },
          {
            "name": "reflex-components-moment",
            "direct": false,
            "version": "0.9.2",
            "ecosystem": "pypi"
          },
          {
            "name": "reflex-components-plotly",
            "direct": false,
            "version": "0.9.3",
            "ecosystem": "pypi"
          },
          {
            "name": "reflex-components-radix",
            "direct": false,
            "version": "0.9.6",
            "ecosystem": "pypi"
          },
          {
            "name": "reflex-components-react-player",
            "direct": false,
            "version": "0.9.1",
            "ecosystem": "pypi"
          },
          {
            "name": "reflex-components-recharts",
            "direct": false,
            "version": "0.9.1",
            "ecosystem": "pypi"
          },
          {
            "name": "reflex-components-sonner",
            "direct": false,
            "version": "0.9.1",
            "ecosystem": "pypi"
          },
          {
            "name": "reflex-hosting-cli",
            "direct": false,
            "version": "0.1.67",
            "ecosystem": "pypi"
          },
          {
            "name": "regex",
            "direct": false,
            "version": "2026.7.19",
            "ecosystem": "pypi"
          },
          {
            "name": "requests-mock",
            "direct": false,
            "version": "1.12.1",
            "ecosystem": "pypi"
          },
          {
            "name": "requests-oauthlib",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "requests-toolbelt",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "responses",
            "direct": false,
            "version": "0.26.2",
            "ecosystem": "pypi"
          },
          {
            "name": "rfc3339-validator",
            "direct": false,
            "version": "0.1.4",
            "ecosystem": "pypi"
          },
          {
            "name": "rfc3986",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "rich",
            "direct": false,
            "version": "14.3.4",
            "ecosystem": "pypi"
          },
          {
            "name": "rich-argparse",
            "direct": false,
            "version": "1.8.0",
            "ecosystem": "pypi"
          },
          {
            "name": "rpds-py",
            "direct": false,
            "version": "0.30.0",
            "ecosystem": "pypi"
          },
          {
            "name": "rpds-py",
            "direct": false,
            "version": "2026.6.3",
            "ecosystem": "pypi"
          },
          {
            "name": "ruamel-yaml",
            "direct": false,
            "version": "0.19.1",
            "ecosystem": "pypi"
          },
          {
            "name": "ruff",
            "direct": false,
            "version": "0.16.0",
            "ecosystem": "pypi"
          },
          {
            "name": "s3transfer",
            "direct": false,
            "version": "0.19.2",
            "ecosystem": "pypi"
          },
          {
            "name": "safety",
            "direct": false,
            "version": "3.8.1",
            "ecosystem": "pypi"
          },
          {
            "name": "safety-schemas",
            "direct": false,
            "version": "0.0.16",
            "ecosystem": "pypi"
          },
          {
            "name": "sarif-om",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "pypi"
          },
          {
            "name": "scramp",
            "direct": false,
            "version": "1.4.15",
            "ecosystem": "pypi"
          },
          {
            "name": "secretstorage",
            "direct": false,
            "version": "3.5.0",
            "ecosystem": "pypi"
          },
          {
            "name": "semver",
            "direct": false,
            "version": "3.0.4",
            "ecosystem": "pypi"
          },
          {
            "name": "setuptools",
            "direct": false,
            "version": "83.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "shellingham",
            "direct": false,
            "version": "1.5.4",
            "ecosystem": "pypi"
          },
          {
            "name": "simple-websocket",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "six",
            "direct": false,
            "version": "1.17.0",
            "ecosystem": "pypi"
          },
          {
            "name": "smmap",
            "direct": false,
            "version": "5.0.3",
            "ecosystem": "pypi"
          },
          {
            "name": "sortedcontainers",
            "direct": false,
            "version": "2.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "sse-starlette",
            "direct": false,
            "version": "3.4.6",
            "ecosystem": "pypi"
          },
          {
            "name": "stack-data",
            "direct": false,
            "version": "0.6.3",
            "ecosystem": "pypi"
          },
          {
            "name": "starlette",
            "direct": false,
            "version": "1.3.1",
            "ecosystem": "pypi"
          },
          {
            "name": "stevedore",
            "direct": false,
            "version": "5.8.0",
            "ecosystem": "pypi"
          },
          {
            "name": "stevedore",
            "direct": false,
            "version": "5.9.0",
            "ecosystem": "pypi"
          },
          {
            "name": "sympy",
            "direct": false,
            "version": "1.14.0",
            "ecosystem": "pypi"
          },
          {
            "name": "tenacity",
            "direct": false,
            "version": "9.1.4",
            "ecosystem": "pypi"
          },
          {
            "name": "tomli",
            "direct": false,
            "version": "2.4.1",
            "ecosystem": "pypi"
          },
          {
            "name": "tomli-w",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "pypi"
          },
          {
            "name": "tomlkit",
            "direct": false,
            "version": "0.13.3",
            "ecosystem": "pypi"
          },
          {
            "name": "tqdm",
            "direct": false,
            "version": "4.69.1",
            "ecosystem": "pypi"
          },
          {
            "name": "traitlets",
            "direct": false,
            "version": "5.15.1",
            "ecosystem": "pypi"
          },
          {
            "name": "truststore",
            "direct": false,
            "version": "0.10.4",
            "ecosystem": "pypi"
          },
          {
            "name": "twine",
            "direct": false,
            "version": "6.2.0",
            "ecosystem": "pypi"
          },
          {
            "name": "typer",
            "direct": false,
            "version": "0.25.1",
            "ecosystem": "pypi"
          },
          {
            "name": "types-python-dateutil",
            "direct": false,
            "version": "2.9.0.20260716",
            "ecosystem": "pypi"
          },
          {
            "name": "types-pyyaml",
            "direct": false,
            "version": "6.0.12.20260724",
            "ecosystem": "pypi"
          },
          {
            "name": "typing-extensions",
            "direct": false,
            "version": "4.16.0",
            "ecosystem": "pypi"
          },
          {
            "name": "typing-inspection",
            "direct": false,
            "version": "0.4.2",
            "ecosystem": "pypi"
          },
          {
            "name": "uvicorn",
            "direct": false,
            "version": "0.51.0",
            "ecosystem": "pypi"
          },
          {
            "name": "verspec",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "virtualenv",
            "direct": false,
            "version": "21.7.0",
            "ecosystem": "pypi"
          },
          {
            "name": "watchdog",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "watchfiles",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "pypi"
          },
          {
            "name": "wcwidth",
            "direct": false,
            "version": "0.8.2",
            "ecosystem": "pypi"
          },
          {
            "name": "websocket-client",
            "direct": false,
            "version": "1.9.0",
            "ecosystem": "pypi"
          },
          {
            "name": "werkzeug",
            "direct": false,
            "version": "3.1.8",
            "ecosystem": "pypi"
          },
          {
            "name": "wheel",
            "direct": false,
            "version": "0.47.0",
            "ecosystem": "pypi"
          },
          {
            "name": "wrapt",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "pypi"
          },
          {
            "name": "wsproto",
            "direct": false,
            "version": "1.3.2",
            "ecosystem": "pypi"
          },
          {
            "name": "xmltodict",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "pypi"
          },
          {
            "name": "yarl",
            "direct": false,
            "version": "1.24.5",
            "ecosystem": "pypi"
          },
          {
            "name": "zipp",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "pypi"
          }
        ],
        "collected": true,
        "truncated": false,
        "total_count": 721,
        "direct_count": 13,
        "indirect_count": 708
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 8,
        "merged_prs": 285,
        "open_issues": 2,
        "closed_ratio": 0.667,
        "closed_issues": 4,
        "closed_unmerged_prs": 53
      },
      "bus_factor": 1,
      "bot_contributors": 3,
      "top_contributors": [
        {
          "type": "User",
          "login": "fgogolli",
          "commits": 2771,
          "avatar_url": "https://avatars.githubusercontent.com/u/18527931?v=4"
        },
        {
          "type": "User",
          "login": "kirillsc",
          "commits": 155,
          "avatar_url": "https://avatars.githubusercontent.com/u/8685088?v=4"
        },
        {
          "type": "User",
          "login": "cyriaquem",
          "commits": 19,
          "avatar_url": "https://avatars.githubusercontent.com/u/200204670?v=4"
        },
        {
          "type": "User",
          "login": "canonicalname",
          "commits": 16,
          "avatar_url": "https://avatars.githubusercontent.com/u/30214253?v=4"
        },
        {
          "type": "User",
          "login": "bingenito",
          "commits": 7,
          "avatar_url": "https://avatars.githubusercontent.com/u/28159742?v=4"
        },
        {
          "type": "User",
          "login": "jsiembida",
          "commits": 6,
          "avatar_url": "https://avatars.githubusercontent.com/u/3470141?v=4"
        },
        {
          "type": "User",
          "login": "finos-admin",
          "commits": 1,
          "avatar_url": "https://avatars.githubusercontent.com/u/37706051?v=4"
        },
        {
          "type": "User",
          "login": "TheJuanAndOnly99",
          "commits": 1,
          "avatar_url": "https://avatars.githubusercontent.com/u/36825759?v=4"
        }
      ],
      "contributors_sampled": 8,
      "top_contributor_share": 0.931
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "changelog-validation.yml",
        "ci-quality.yml",
        "ci-tests.yml",
        "container-cleanup-dev.yml",
        "container-cleanup-on-release.yml",
        "dependabot.yml",
        "dev-containers.yml",
        "dev-pypi.yml",
        "dev-sdk.yml",
        "docs.yml",
        "package-testing.yml",
        "pr-sdk-dryrun.yml",
        "prod-release.yml",
        "reusable-sdk-publish.yml",
        "reusable-security.yml",
        "reusable-test.yml",
        "scorecard.yml",
        "sdk.yml",
        "security-code.yml",
        "semantic-release.yml",
        "shared-config.yml",
        "test-matrix.yml",
        "validate-workflows.yml"
      ],
      "has_docs_dir": true,
      "linter_configs": [
        ".golangci.yml",
        "ruff.toml",
        "tox.ini"
      ],
      "has_editorconfig": false,
      "has_linter_config": true,
      "has_precommit_config": true
    },
    "security_signals": {
      "lockfiles": [
        "package-lock.json",
        "uv.lock"
      ],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 8,
            "reason": "binaries present in source code",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": 6,
            "reason": "branch protection is not maximal on development and all release branches",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": 10,
            "reason": "4 out of 4 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": 5,
            "reason": "badge detected: Passing",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
          },
          {
            "name": "Code-Review",
            "score": 10,
            "reason": "all changesets reviewed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 10,
            "reason": "project has 4 contributing companies or organizations",
            "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": 10,
            "reason": "update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 0,
            "reason": "project is not fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 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": 5,
            "reason": "dependency not pinned by hash detected -- score normalized to 5",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 10,
            "reason": "SAST tool detected",
            "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": 6,
            "reason": "3 out of the last 5 releases have a total of 3 signed artifacts.",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
          },
          {
            "name": "Token-Permissions",
            "score": 10,
            "reason": "GitHub workflow tokens follow principle of least privilege",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 8,
            "reason": "2 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "68891fcc24071eb5c20f2f64a871137300bfc77f",
        "ran_at": "2026-07-29T11:41:16Z",
        "aggregate_score": 8.3,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": true,
      "has_dependabot_config": true
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-07-29T05:10:28Z",
      "oldest_open_prs": [
        {
          "number": 214,
          "created_at": "2026-05-11T15:45:02Z",
          "last_comment_at": "2026-05-11T15:57:32Z",
          "last_comment_author": "github-actions"
        },
        {
          "number": 215,
          "created_at": "2026-05-13T12:52:04Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 220,
          "created_at": "2026-05-18T20:43:00Z",
          "last_comment_at": "2026-06-09T12:11:00Z",
          "last_comment_author": "kirillsc"
        },
        {
          "number": 234,
          "created_at": "2026-06-07T06:28:27Z",
          "last_comment_at": "2026-07-10T10:34:57Z",
          "last_comment_author": "fgogolli"
        },
        {
          "number": 246,
          "created_at": "2026-06-10T18:40:18Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 256,
          "created_at": "2026-06-19T09:46:24Z",
          "last_comment_at": "2026-07-08T13:40:07Z",
          "last_comment_author": "fgogolli"
        },
        {
          "number": 257,
          "created_at": "2026-06-19T09:46:59Z",
          "last_comment_at": "2026-07-10T10:34:56Z",
          "last_comment_author": "fgogolli"
        },
        {
          "number": 258,
          "created_at": "2026-06-19T09:47:25Z",
          "last_comment_at": "2026-07-16T13:45:20Z",
          "last_comment_author": "codecov-commenter"
        }
      ],
      "last_merged_pr_at": "2026-07-28T12:21:16Z",
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": [
        {
          "number": 59,
          "created_at": "2025-10-05T17:27:20Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 76,
          "created_at": "2025-11-25T13:20:07Z",
          "last_comment_at": null,
          "last_comment_author": null
        }
      ]
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/finos/open-resource-broker",
    "host": "github.com",
    "name": "open-resource-broker",
    "owner": "finos"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "exceptional",
      "name": "Overall health",
      "note": "The weighted overall 81 is calibrated to 94 on the published index scale (record calibration 2026-08-02).",
      "notes": [
        {
          "code": "overall_calibration",
          "params": {
            "raw": 81,
            "calibrated": 94,
            "calibration": "2026-08-02"
          }
        }
      ],
      "value": 94,
      "inputs": {
        "security": 86,
        "vitality": 97,
        "community": 61,
        "governance": 69,
        "calibration": "2026-08-02",
        "engineering": 92,
        "ai_readiness": 87,
        "weighted_overall_raw": 81
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "exceptional",
        "name": "Vitality",
        "value": 97,
        "weight": 0.21,
        "metrics": [
          {
            "key": "development_activity",
            "band": "exceptional",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 98,
            "inputs": {
              "commits_last_year": 3256,
              "human_commit_share": 0.95,
              "days_since_last_push": 0,
              "active_weeks_last_year": 49
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 0 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 0
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "49/52 weeks with commits",
                "points": 33.9,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 49
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "3256 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 3256
                    }
                  }
                ],
                "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": "exceptional",
            "name": "Release discipline",
            "note": null,
            "notes": [],
            "value": 96,
            "inputs": {
              "releases_count": 28,
              "latest_release_tag": "v1.8.5",
              "releases_from_tags": false,
              "days_since_latest_release": 4,
              "mean_days_between_releases": 6.3
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "28 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 28
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 4 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 4
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~6.3 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 6.3
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "3 out of the last 5 releases have a total of 3 signed artifacts.",
                "points": 6,
                "status": "partial",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "exceptional",
            "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": 5,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "last human commit 5 days ago",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_maintained",
                    "params": {
                      "days": 5
                    }
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "moderate",
        "name": "Community & Adoption",
        "value": 61,
        "weight": 0.17,
        "metrics": [
          {
            "key": "popularity",
            "band": "at_risk",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 28,
            "inputs": {
              "forks": 10,
              "stars": 18,
              "watchers": 2,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "18 stars",
                "points": 20,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 18
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "10 forks",
                "points": 8,
                "status": "partial",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 10
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "2 watchers",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 2
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "excellent",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 92,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "readme_badges": null,
              "has_contributing": true,
              "has_issue_template": false,
              "has_code_of_conduct": true,
              "readme_badge_services": [],
              "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": "good",
            "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": 69,
            "inputs": {
              "packages": [
                "github.com/finos/open-resource-broker",
                "orb-py"
              ],
              "dependents": null,
              "ecosystems": "go, pypi",
              "total_downloads": null,
              "monthly_downloads": 13502
            },
            "components": [
              {
                "key": "monthly_downloads",
                "name": "Monthly downloads",
                "detail": "13,502 downloads/month across go, pypi",
                "points": 55.1,
                "status": "partial",
                "details": [
                  {
                    "code": "downloads_monthly",
                    "params": {
                      "count": 13502,
                      "ecosystems": "go, 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": "good",
        "name": "Sustainability & Governance",
        "value": 69,
        "weight": 0.23,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "at_risk",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 31,
            "inputs": {
              "bus_factor": 1,
              "contributors_sampled": 8,
              "top_contributor_share": 0.931
            },
            "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 93% of commits",
                "points": 1.6,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 93
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "8 contributors",
                "points": 10.8,
                "status": "partial",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 8
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 4 contributing companies or organizations",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "good",
            "name": "Issue & PR responsiveness",
            "note": "Excluded from scoring (no data or not applicable): Newcomer PR acceptance. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "newcomer_pr_acceptance"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 79,
            "inputs": {
              "merged_prs": 285,
              "open_issues": 2,
              "closed_issues": 4,
              "prs_merged_7d": null,
              "prs_decided_7d": null,
              "prs_merged_30d": null,
              "prs_decided_30d": null,
              "issue_closed_ratio": 0.667,
              "closed_unmerged_prs": 53,
              "first_time_authors_30d": null,
              "first_time_prs_merged_30d": null,
              "first_time_prs_decided_30d": null
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "67% of issues closed",
                "points": 28,
                "status": "partial",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 67
                    }
                  }
                ],
                "max_points": 42
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "285/338 decided PRs merged",
                "points": 25.3,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 285,
                      "decided": 338
                    }
                  }
                ],
                "max_points": 30
              },
              {
                "key": "newcomer_pr_acceptance",
                "name": "Newcomer PR acceptance",
                "detail": "no first-time contributor's PR decided in 30d",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_newcomer_prs",
                    "params": {
                      "days": 30
                    }
                  }
                ],
                "max_points": 13
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "all changesets reviewed",
                "points": 15,
                "status": "met",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "good",
            "name": "Ownership & stewardship",
            "note": null,
            "notes": [],
            "value": 78,
            "inputs": {
              "followers": 1572,
              "owner_type": "Organization",
              "is_verified": null,
              "owner_login": "finos",
              "public_repos": 191,
              "account_age_days": 3119
            },
            "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,572 followers of finos",
                "points": 23,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 1572,
                      "login": "finos"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "191 public repos, account ~8 yr old",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 191
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 8
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "exceptional",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "github.com/finos/open-resource-broker",
                "orb-py"
              ],
              "ecosystems": "go, pypi",
              "any_deprecated": false,
              "min_days_since_publish": 4
            },
            "components": [
              {
                "key": "published_resolvable",
                "name": "Published & resolvable",
                "detail": "2 package(s) on go, pypi",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "packages_published",
                    "params": {
                      "count": 2,
                      "ecosystems": "go, pypi"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "publish_recency",
                "name": "Publish recency",
                "detail": "latest publish 4 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 4
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "27 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 27
                    }
                  }
                ],
                "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.19,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "exceptional",
            "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": "23 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 23
                    }
                  }
                ],
                "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": ".golangci.yml, ruff.toml, tox.ini",
                "points": 16,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": ".golangci.yml, ruff.toml, tox.ini"
                    }
                  }
                ],
                "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": "4 out of 4 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": [],
              "has_wiki": true,
              "homepage": "https://finos.github.io/open-resource-broker/",
              "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://finos.github.io/open-resource-broker/",
                "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": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "excellent",
        "name": "Security",
        "value": 86,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "excellent",
            "name": "Security posture",
            "note": null,
            "notes": [],
            "value": 83,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 18,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 0,
              "scorecard_aggregate": 8.3
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "binaries present in source code",
                "points": 6,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "branch protection is not maximal on development and all release branches",
                "points": 4.5,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "4 out of 4 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": "badge detected: Passing",
                "points": 1.2,
                "status": "partial",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "all changesets reviewed",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 4 contributing companies or organizations",
                "points": 2.5,
                "status": "met",
                "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": "update tool detected",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is not fuzzed",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file detected",
                "points": 2.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 5",
                "points": 2.5,
                "status": "partial",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "SAST tool detected",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file detected",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "3 out of the last 5 releases have a total of 3 signed artifacts.",
                "points": 4.5,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "token_permissions",
                "name": "Token-Permissions",
                "detail": "GitHub workflow tokens follow principle of least privilege",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "2 existing vulnerabilities detected",
                "points": 6,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "dependency_advisories",
            "band": "exceptional",
            "name": "Dependency advisories",
            "note": "Excluded from scoring (no data or not applicable): No advisories left outstanding. Remaining weights renormalized. Matched the pypi:orb-py@1.8.5 runtime dependency closure — what installing the published package pulls in — 32 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:orb-py@1.8.5",
                  "assessed": 32
                }
              },
              {
                "code": "advisories_reachability",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "source": "osv",
              "advisories": 0,
              "affected_packages": 0,
              "assessed_packages": 32,
              "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": "exceptional",
            "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": 32,
              "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": "exceptional",
            "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"
              ],
              "commit_weight_rule": {
                "min_commits": 50,
                "min_commit_share": 0.1
              },
              "review_only_matches": 0,
              "below_threshold_exposures": [],
              "assessed_self_published_locations": 5
            },
            "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": "excellent",
        "name": "AI Readiness",
        "value": 87,
        "weight": 0.04,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "excellent",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 85,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 1,
              "agent_instruction_files": [
                "k8s-legacy/AGENTS.md"
              ],
              "agent_instruction_max_bytes": 1328
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "k8s-legacy/AGENTS.md",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "k8s-legacy/AGENTS.md"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "machine_readable_docs_llms_txt",
                "name": "Machine-readable docs (llms.txt)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "legible_commit_history",
                "name": "Legible commit history",
                "detail": "95 of 95 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 95,
                      "sampled": 95
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "excellent",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 85,
            "inputs": {
              "has_nix": true,
              "has_tests": true,
              "lockfiles": [
                "package-lock.json",
                "uv.lock"
              ],
              "has_dockerfile": true,
              "typed_language": false,
              "bootstrap_files": [
                "Makefile",
                "sdk/go/Makefile"
              ],
              "has_devcontainer": false,
              "has_linter_config": true,
              "typecheck_configs": [
                "sdk/typescript/tsconfig.json",
                "src/orb/api/documentation/py.typed",
                "src/orb/api/middleware/py.typed",
                "src/orb/api/models/py.typed",
                "src/orb/api/py.typed",
                "src/orb/api/routers/py.typed",
                "src/orb/application/base/py.typed",
                "src/orb/application/commands/py.typed",
                "src/orb/application/dto/py.typed",
                "src/orb/application/events/base/py.typed",
                "src/orb/application/events/bus/py.typed",
                "src/orb/application/events/handlers/py.typed",
                "src/orb/application/events/py.typed",
                "src/orb/application/interfaces/py.typed",
                "src/orb/application/machine/py.typed",
                "src/orb/application/provider/py.typed",
                "src/orb/application/py.typed",
                "src/orb/application/queries/py.typed",
                "src/orb/application/request/py.typed",
                "src/orb/application/template/py.typed",
                "src/orb/cli/py.typed",
                "src/orb/config/managers/py.typed",
                "src/orb/config/py.typed",
                "src/orb/config/schemas/py.typed",
                "src/orb/config/utils/py.typed",
                "src/orb/config/validators/py.typed",
                "src/orb/domain/base/events/py.typed",
                "src/orb/domain/base/ports/py.typed",
                "src/orb/domain/base/py.typed",
                "src/orb/domain/machine/py.typed",
                "src/orb/domain/py.typed",
                "src/orb/domain/request/py.typed",
                "src/orb/domain/template/py.typed",
                "src/orb/infrastructure/adapters/factories/py.typed",
                "src/orb/infrastructure/adapters/ports/auth/py.typed",
                "src/orb/infrastructure/adapters/ports/py.typed",
                "src/orb/infrastructure/adapters/py.typed",
                "src/orb/infrastructure/auth/py.typed",
                "src/orb/infrastructure/auth/strategy/py.typed",
                "src/orb/infrastructure/caching/py.typed",
                "src/orb/infrastructure/di/components/py.typed",
                "src/orb/infrastructure/di/py.typed",
                "src/orb/infrastructure/error/py.typed",
                "src/orb/infrastructure/events/py.typed",
                "src/orb/infrastructure/handlers/base/py.typed",
                "src/orb/infrastructure/handlers/py.typed",
                "src/orb/infrastructure/interfaces/py.typed",
                "src/orb/infrastructure/logging/py.typed",
                "src/orb/infrastructure/mocking/py.typed",
                "src/orb/infrastructure/patterns/py.typed",
                "src/orb/infrastructure/py.typed",
                "src/orb/infrastructure/registry/py.typed",
                "src/orb/infrastructure/resilience/py.typed",
                "src/orb/infrastructure/resilience/strategy/py.typed",
                "src/orb/infrastructure/scheduler/base/py.typed",
                "src/orb/infrastructure/scheduler/default/py.typed",
                "src/orb/infrastructure/scheduler/hostfactory/py.typed",
                "src/orb/infrastructure/scheduler/py.typed",
                "src/orb/infrastructure/serialization/py.typed",
                "src/orb/infrastructure/storage/base/py.typed",
                "src/orb/infrastructure/storage/components/py.typed",
                "src/orb/infrastructure/storage/json/py.typed",
                "src/orb/infrastructure/storage/py.typed",
                "src/orb/infrastructure/storage/repositories/py.typed",
                "src/orb/infrastructure/storage/sql/py.typed",
                "src/orb/infrastructure/template/py.typed",
                "src/orb/infrastructure/utilities/common/collections/py.typed",
                "src/orb/infrastructure/utilities/common/py.typed",
                "src/orb/infrastructure/utilities/factories/py.typed",
                "src/orb/infrastructure/utilities/file/py.typed",
                "src/orb/infrastructure/utilities/py.typed",
                "src/orb/interface/py.typed",
                "src/orb/monitoring/py.typed",
                "src/orb/providers/aws/application/events/py.typed",
                "src/orb/providers/aws/application/machine/py.typed",
                "src/orb/providers/aws/application/py.typed",
                "src/orb/providers/aws/application/request/py.typed",
                "src/orb/providers/aws/application/template/py.typed",
                "src/orb/providers/aws/auth/py.typed",
                "src/orb/providers/aws/configuration/py.typed",
                "src/orb/providers/aws/domain/machine/py.typed",
                "src/orb/providers/aws/domain/py.typed",
                "src/orb/providers/aws/domain/request/py.typed",
                "src/orb/providers/aws/domain/template/py.typed",
                "src/orb/providers/aws/exceptions/py.typed",
                "src/orb/providers/aws/infrastructure/adapters/py.typed",
                "src/orb/providers/aws/infrastructure/handlers/components/py.typed",
                "src/orb/providers/aws/infrastructure/handlers/py.typed",
                "src/orb/providers/aws/infrastructure/launch_template/py.typed",
                "src/orb/providers/aws/infrastructure/py.typed",
                "src/orb/providers/aws/infrastructure/template/py.typed",
                "src/orb/providers/aws/persistence/py.typed",
                "src/orb/providers/aws/py.typed",
                "src/orb/providers/aws/resilience/py.typed",
                "src/orb/providers/aws/storage/components/py.typed",
                "src/orb/providers/aws/storage/py.typed",
                "src/orb/providers/aws/strategy/py.typed",
                "src/orb/providers/aws/utilities/ec2/py.typed",
                "src/orb/providers/aws/utilities/py.typed",
                "src/orb/providers/base/py.typed",
                "src/orb/providers/base/strategy/load_balancing/py.typed",
                "src/orb/providers/base/strategy/py.typed",
                "src/orb/providers/k8s/adapters/py.typed",
                "src/orb/providers/k8s/auth/py.typed",
                "src/orb/providers/k8s/cli/py.typed",
                "src/orb/providers/k8s/config/py.typed",
                "src/orb/providers/k8s/configuration/py.typed",
                "src/orb/providers/k8s/domain/py.typed",
                "src/orb/providers/k8s/domain/template/py.typed",
                "src/orb/providers/k8s/exceptions/py.typed",
                "src/orb/providers/k8s/infrastructure/adapters/py.typed",
                "src/orb/providers/k8s/infrastructure/handlers/py.typed",
                "src/orb/providers/k8s/infrastructure/handlers/shared/py.typed",
                "src/orb/providers/k8s/infrastructure/instrumentation/py.typed",
                "src/orb/providers/k8s/infrastructure/py.typed",
                "src/orb/providers/k8s/infrastructure/services/py.typed",
                "src/orb/providers/k8s/py.typed",
                "src/orb/providers/k8s/reconciliation/py.typed",
                "src/orb/providers/k8s/resilience/py.typed",
                "src/orb/providers/k8s/scheduler/py.typed",
                "src/orb/providers/k8s/services/py.typed",
                "src/orb/providers/k8s/strategy/py.typed",
                "src/orb/providers/k8s/utilities/py.typed",
                "src/orb/providers/k8s/validation/py.typed",
                "src/orb/providers/k8s/watch/py.typed",
                "src/orb/providers/py.typed",
                "src/orb/sdk/py.typed",
                "src/py.typed"
              ],
              "agent_commit_share": 0,
              "toolchain_manifests": [
                "go.mod",
                "sdk/csharp/src/FINOS.OpenResourceBroker/FINOS.OpenResourceBroker.csproj",
                "sdk/csharp/tests/contract/ContractTests.csproj",
                "sdk/csharp/tests/parity/ParityTests.csproj",
                "sdk/csharp/tests/unit/UnitTests.csproj",
                "sdk/go/go.mod",
                "sdk/java/build.gradle",
                "sdk/kotlin/build.gradle.kts"
              ],
              "dependency_bot_commit_share": 0.03
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": "Makefile, sdk/go/Makefile",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "Makefile, sdk/go/Makefile"
                    }
                  }
                ],
                "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": ".golangci.yml, ruff.toml, tox.ini",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": ".golangci.yml, ruff.toml, tox.ini"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": "sdk/typescript/tsconfig.json, src/orb/api/documentation/py.typed, src/orb/api/middleware/py.typed, src/orb/api/models/py.typed, src/orb/api/py.typed, src/orb/api/routers/py.typed, src/orb/application/base/py.typed, src/orb/application/commands/py.typed, src/orb/application/dto/py.typed, src/orb/application/events/base/py.typed, src/orb/application/events/bus/py.typed, src/orb/application/events/handlers/py.typed, src/orb/application/events/py.typed, src/orb/application/interfaces/py.typed, src/orb/application/machine/py.typed, src/orb/application/provider/py.typed, src/orb/application/py.typed, src/orb/application/queries/py.typed, src/orb/application/request/py.typed, src/orb/application/template/py.typed, src/orb/cli/py.typed, src/orb/config/managers/py.typed, src/orb/config/py.typed, src/orb/config/schemas/py.typed, src/orb/config/utils/py.typed, src/orb/config/validators/py.typed, src/orb/domain/base/events/py.typed, src/orb/domain/base/ports/py.typed, src/orb/domain/base/py.typed, src/orb/domain/machine/py.typed, src/orb/domain/py.typed, src/orb/domain/request/py.typed, src/orb/domain/template/py.typed, src/orb/infrastructure/adapters/factories/py.typed, src/orb/infrastructure/adapters/ports/auth/py.typed, src/orb/infrastructure/adapters/ports/py.typed, src/orb/infrastructure/adapters/py.typed, src/orb/infrastructure/auth/py.typed, src/orb/infrastructure/auth/strategy/py.typed, src/orb/infrastructure/caching/py.typed, src/orb/infrastructure/di/components/py.typed, src/orb/infrastructure/di/py.typed, src/orb/infrastructure/error/py.typed, src/orb/infrastructure/events/py.typed, src/orb/infrastructure/handlers/base/py.typed, src/orb/infrastructure/handlers/py.typed, src/orb/infrastructure/interfaces/py.typed, src/orb/infrastructure/logging/py.typed, src/orb/infrastructure/mocking/py.typed, src/orb/infrastructure/patterns/py.typed, src/orb/infrastructure/py.typed, src/orb/infrastructure/registry/py.typed, src/orb/infrastructure/resilience/py.typed, src/orb/infrastructure/resilience/strategy/py.typed, src/orb/infrastructure/scheduler/base/py.typed, src/orb/infrastructure/scheduler/default/py.typed, src/orb/infrastructure/scheduler/hostfactory/py.typed, src/orb/infrastructure/scheduler/py.typed, src/orb/infrastructure/serialization/py.typed, src/orb/infrastructure/storage/base/py.typed, src/orb/infrastructure/storage/components/py.typed, src/orb/infrastructure/storage/json/py.typed, src/orb/infrastructure/storage/py.typed, src/orb/infrastructure/storage/repositories/py.typed, src/orb/infrastructure/storage/sql/py.typed, src/orb/infrastructure/template/py.typed, src/orb/infrastructure/utilities/common/collections/py.typed, src/orb/infrastructure/utilities/common/py.typed, src/orb/infrastructure/utilities/factories/py.typed, src/orb/infrastructure/utilities/file/py.typed, src/orb/infrastructure/utilities/py.typed, src/orb/interface/py.typed, src/orb/monitoring/py.typed, src/orb/providers/aws/application/events/py.typed, src/orb/providers/aws/application/machine/py.typed, src/orb/providers/aws/application/py.typed, src/orb/providers/aws/application/request/py.typed, src/orb/providers/aws/application/template/py.typed, src/orb/providers/aws/auth/py.typed, src/orb/providers/aws/configuration/py.typed, src/orb/providers/aws/domain/machine/py.typed, src/orb/providers/aws/domain/py.typed, src/orb/providers/aws/domain/request/py.typed, src/orb/providers/aws/domain/template/py.typed, src/orb/providers/aws/exceptions/py.typed, src/orb/providers/aws/infrastructure/adapters/py.typed, src/orb/providers/aws/infrastructure/handlers/components/py.typed, src/orb/providers/aws/infrastructure/handlers/py.typed, src/orb/providers/aws/infrastructure/launch_template/py.typed, src/orb/providers/aws/infrastructure/py.typed, src/orb/providers/aws/infrastructure/template/py.typed, src/orb/providers/aws/persistence/py.typed, src/orb/providers/aws/py.typed, src/orb/providers/aws/resilience/py.typed, src/orb/providers/aws/storage/components/py.typed, src/orb/providers/aws/storage/py.typed, src/orb/providers/aws/strategy/py.typed, src/orb/providers/aws/utilities/ec2/py.typed, src/orb/providers/aws/utilities/py.typed, src/orb/providers/base/py.typed, src/orb/providers/base/strategy/load_balancing/py.typed, src/orb/providers/base/strategy/py.typed, src/orb/providers/k8s/adapters/py.typed, src/orb/providers/k8s/auth/py.typed, src/orb/providers/k8s/cli/py.typed, src/orb/providers/k8s/config/py.typed, src/orb/providers/k8s/configuration/py.typed, src/orb/providers/k8s/domain/py.typed, src/orb/providers/k8s/domain/template/py.typed, src/orb/providers/k8s/exceptions/py.typed, src/orb/providers/k8s/infrastructure/adapters/py.typed, src/orb/providers/k8s/infrastructure/handlers/py.typed, src/orb/providers/k8s/infrastructure/handlers/shared/py.typed, src/orb/providers/k8s/infrastructure/instrumentation/py.typed, src/orb/providers/k8s/infrastructure/py.typed, src/orb/providers/k8s/infrastructure/services/py.typed, src/orb/providers/k8s/py.typed, src/orb/providers/k8s/reconciliation/py.typed, src/orb/providers/k8s/resilience/py.typed, src/orb/providers/k8s/scheduler/py.typed, src/orb/providers/k8s/services/py.typed, src/orb/providers/k8s/strategy/py.typed, src/orb/providers/k8s/utilities/py.typed, src/orb/providers/k8s/validation/py.typed, src/orb/providers/k8s/watch/py.typed, src/orb/providers/py.typed, src/orb/sdk/py.typed, src/py.typed",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "sdk/typescript/tsconfig.json, src/orb/api/documentation/py.typed, src/orb/api/middleware/py.typed, src/orb/api/models/py.typed, src/orb/api/py.typed, src/orb/api/routers/py.typed, src/orb/application/base/py.typed, src/orb/application/commands/py.typed, src/orb/application/dto/py.typed, src/orb/application/events/base/py.typed, src/orb/application/events/bus/py.typed, src/orb/application/events/handlers/py.typed, src/orb/application/events/py.typed, src/orb/application/interfaces/py.typed, src/orb/application/machine/py.typed, src/orb/application/provider/py.typed, src/orb/application/py.typed, src/orb/application/queries/py.typed, src/orb/application/request/py.typed, src/orb/application/template/py.typed, src/orb/cli/py.typed, src/orb/config/managers/py.typed, src/orb/config/py.typed, src/orb/config/schemas/py.typed, src/orb/config/utils/py.typed, src/orb/config/validators/py.typed, src/orb/domain/base/events/py.typed, src/orb/domain/base/ports/py.typed, src/orb/domain/base/py.typed, src/orb/domain/machine/py.typed, src/orb/domain/py.typed, src/orb/domain/request/py.typed, src/orb/domain/template/py.typed, src/orb/infrastructure/adapters/factories/py.typed, src/orb/infrastructure/adapters/ports/auth/py.typed, src/orb/infrastructure/adapters/ports/py.typed, src/orb/infrastructure/adapters/py.typed, src/orb/infrastructure/auth/py.typed, src/orb/infrastructure/auth/strategy/py.typed, src/orb/infrastructure/caching/py.typed, src/orb/infrastructure/di/components/py.typed, src/orb/infrastructure/di/py.typed, src/orb/infrastructure/error/py.typed, src/orb/infrastructure/events/py.typed, src/orb/infrastructure/handlers/base/py.typed, src/orb/infrastructure/handlers/py.typed, src/orb/infrastructure/interfaces/py.typed, src/orb/infrastructure/logging/py.typed, src/orb/infrastructure/mocking/py.typed, src/orb/infrastructure/patterns/py.typed, src/orb/infrastructure/py.typed, src/orb/infrastructure/registry/py.typed, src/orb/infrastructure/resilience/py.typed, src/orb/infrastructure/resilience/strategy/py.typed, src/orb/infrastructure/scheduler/base/py.typed, src/orb/infrastructure/scheduler/default/py.typed, src/orb/infrastructure/scheduler/hostfactory/py.typed, src/orb/infrastructure/scheduler/py.typed, src/orb/infrastructure/serialization/py.typed, src/orb/infrastructure/storage/base/py.typed, src/orb/infrastructure/storage/components/py.typed, src/orb/infrastructure/storage/json/py.typed, src/orb/infrastructure/storage/py.typed, src/orb/infrastructure/storage/repositories/py.typed, src/orb/infrastructure/storage/sql/py.typed, src/orb/infrastructure/template/py.typed, src/orb/infrastructure/utilities/common/collections/py.typed, src/orb/infrastructure/utilities/common/py.typed, src/orb/infrastructure/utilities/factories/py.typed, src/orb/infrastructure/utilities/file/py.typed, src/orb/infrastructure/utilities/py.typed, src/orb/interface/py.typed, src/orb/monitoring/py.typed, src/orb/providers/aws/application/events/py.typed, src/orb/providers/aws/application/machine/py.typed, src/orb/providers/aws/application/py.typed, src/orb/providers/aws/application/request/py.typed, src/orb/providers/aws/application/template/py.typed, src/orb/providers/aws/auth/py.typed, src/orb/providers/aws/configuration/py.typed, src/orb/providers/aws/domain/machine/py.typed, src/orb/providers/aws/domain/py.typed, src/orb/providers/aws/domain/request/py.typed, src/orb/providers/aws/domain/template/py.typed, src/orb/providers/aws/exceptions/py.typed, src/orb/providers/aws/infrastructure/adapters/py.typed, src/orb/providers/aws/infrastructure/handlers/components/py.typed, src/orb/providers/aws/infrastructure/handlers/py.typed, src/orb/providers/aws/infrastructure/launch_template/py.typed, src/orb/providers/aws/infrastructure/py.typed, src/orb/providers/aws/infrastructure/template/py.typed, src/orb/providers/aws/persistence/py.typed, src/orb/providers/aws/py.typed, src/orb/providers/aws/resilience/py.typed, src/orb/providers/aws/storage/components/py.typed, src/orb/providers/aws/storage/py.typed, src/orb/providers/aws/strategy/py.typed, src/orb/providers/aws/utilities/ec2/py.typed, src/orb/providers/aws/utilities/py.typed, src/orb/providers/base/py.typed, src/orb/providers/base/strategy/load_balancing/py.typed, src/orb/providers/base/strategy/py.typed, src/orb/providers/k8s/adapters/py.typed, src/orb/providers/k8s/auth/py.typed, src/orb/providers/k8s/cli/py.typed, src/orb/providers/k8s/config/py.typed, src/orb/providers/k8s/configuration/py.typed, src/orb/providers/k8s/domain/py.typed, src/orb/providers/k8s/domain/template/py.typed, src/orb/providers/k8s/exceptions/py.typed, src/orb/providers/k8s/infrastructure/adapters/py.typed, src/orb/providers/k8s/infrastructure/handlers/py.typed, src/orb/providers/k8s/infrastructure/handlers/shared/py.typed, src/orb/providers/k8s/infrastructure/instrumentation/py.typed, src/orb/providers/k8s/infrastructure/py.typed, src/orb/providers/k8s/infrastructure/services/py.typed, src/orb/providers/k8s/py.typed, src/orb/providers/k8s/reconciliation/py.typed, src/orb/providers/k8s/resilience/py.typed, src/orb/providers/k8s/scheduler/py.typed, src/orb/providers/k8s/services/py.typed, src/orb/providers/k8s/strategy/py.typed, src/orb/providers/k8s/utilities/py.typed, src/orb/providers/k8s/validation/py.typed, src/orb/providers/k8s/watch/py.typed, src/orb/providers/py.typed, src/orb/sdk/py.typed, src/py.typed"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": "Dockerfile, Nix, lockfile",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "Dockerfile, Nix, lockfile"
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "no agent-authored commits among the last 100",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_agent_authored_commits",
                    "params": {
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "3 of the last 100 commits are automated dependency updates",
                "points": 8,
                "status": "met",
                "details": [
                  {
                    "code": "dependency_bot_commits",
                    "params": {
                      "count": 3,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 5",
                "points": 5,
                "status": "partial",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "excellent",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 82,
            "inputs": {
              "primary_language": "Python",
              "largest_source_bytes": 110768,
              "source_files_sampled": 2139,
              "oversized_source_files": 9
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "Python with type-check config (sdk/typescript/tsconfig.json, src/orb/api/documentation/py.typed, src/orb/api/middleware/py.typed, src/orb/api/models/py.typed, src/orb/api/py.typed, src/orb/api/routers/py.typed, src/orb/application/base/py.typed, src/orb/application/commands/py.typed, src/orb/application/dto/py.typed, src/orb/application/events/base/py.typed, src/orb/application/events/bus/py.typed, src/orb/application/events/handlers/py.typed, src/orb/application/events/py.typed, src/orb/application/interfaces/py.typed, src/orb/application/machine/py.typed, src/orb/application/provider/py.typed, src/orb/application/py.typed, src/orb/application/queries/py.typed, src/orb/application/request/py.typed, src/orb/application/template/py.typed, src/orb/cli/py.typed, src/orb/config/managers/py.typed, src/orb/config/py.typed, src/orb/config/schemas/py.typed, src/orb/config/utils/py.typed, src/orb/config/validators/py.typed, src/orb/domain/base/events/py.typed, src/orb/domain/base/ports/py.typed, src/orb/domain/base/py.typed, src/orb/domain/machine/py.typed, src/orb/domain/py.typed, src/orb/domain/request/py.typed, src/orb/domain/template/py.typed, src/orb/infrastructure/adapters/factories/py.typed, src/orb/infrastructure/adapters/ports/auth/py.typed, src/orb/infrastructure/adapters/ports/py.typed, src/orb/infrastructure/adapters/py.typed, src/orb/infrastructure/auth/py.typed, src/orb/infrastructure/auth/strategy/py.typed, src/orb/infrastructure/caching/py.typed, src/orb/infrastructure/di/components/py.typed, src/orb/infrastructure/di/py.typed, src/orb/infrastructure/error/py.typed, src/orb/infrastructure/events/py.typed, src/orb/infrastructure/handlers/base/py.typed, src/orb/infrastructure/handlers/py.typed, src/orb/infrastructure/interfaces/py.typed, src/orb/infrastructure/logging/py.typed, src/orb/infrastructure/mocking/py.typed, src/orb/infrastructure/patterns/py.typed, src/orb/infrastructure/py.typed, src/orb/infrastructure/registry/py.typed, src/orb/infrastructure/resilience/py.typed, src/orb/infrastructure/resilience/strategy/py.typed, src/orb/infrastructure/scheduler/base/py.typed, src/orb/infrastructure/scheduler/default/py.typed, src/orb/infrastructure/scheduler/hostfactory/py.typed, src/orb/infrastructure/scheduler/py.typed, src/orb/infrastructure/serialization/py.typed, src/orb/infrastructure/storage/base/py.typed, src/orb/infrastructure/storage/components/py.typed, src/orb/infrastructure/storage/json/py.typed, src/orb/infrastructure/storage/py.typed, src/orb/infrastructure/storage/repositories/py.typed, src/orb/infrastructure/storage/sql/py.typed, src/orb/infrastructure/template/py.typed, src/orb/infrastructure/utilities/common/collections/py.typed, src/orb/infrastructure/utilities/common/py.typed, src/orb/infrastructure/utilities/factories/py.typed, src/orb/infrastructure/utilities/file/py.typed, src/orb/infrastructure/utilities/py.typed, src/orb/interface/py.typed, src/orb/monitoring/py.typed, src/orb/providers/aws/application/events/py.typed, src/orb/providers/aws/application/machine/py.typed, src/orb/providers/aws/application/py.typed, src/orb/providers/aws/application/request/py.typed, src/orb/providers/aws/application/template/py.typed, src/orb/providers/aws/auth/py.typed, src/orb/providers/aws/configuration/py.typed, src/orb/providers/aws/domain/machine/py.typed, src/orb/providers/aws/domain/py.typed, src/orb/providers/aws/domain/request/py.typed, src/orb/providers/aws/domain/template/py.typed, src/orb/providers/aws/exceptions/py.typed, src/orb/providers/aws/infrastructure/adapters/py.typed, src/orb/providers/aws/infrastructure/handlers/components/py.typed, src/orb/providers/aws/infrastructure/handlers/py.typed, src/orb/providers/aws/infrastructure/launch_template/py.typed, src/orb/providers/aws/infrastructure/py.typed, src/orb/providers/aws/infrastructure/template/py.typed, src/orb/providers/aws/persistence/py.typed, src/orb/providers/aws/py.typed, src/orb/providers/aws/resilience/py.typed, src/orb/providers/aws/storage/components/py.typed, src/orb/providers/aws/storage/py.typed, src/orb/providers/aws/strategy/py.typed, src/orb/providers/aws/utilities/ec2/py.typed, src/orb/providers/aws/utilities/py.typed, src/orb/providers/base/py.typed, src/orb/providers/base/strategy/load_balancing/py.typed, src/orb/providers/base/strategy/py.typed, src/orb/providers/k8s/adapters/py.typed, src/orb/providers/k8s/auth/py.typed, src/orb/providers/k8s/cli/py.typed, src/orb/providers/k8s/config/py.typed, src/orb/providers/k8s/configuration/py.typed, src/orb/providers/k8s/domain/py.typed, src/orb/providers/k8s/domain/template/py.typed, src/orb/providers/k8s/exceptions/py.typed, src/orb/providers/k8s/infrastructure/adapters/py.typed, src/orb/providers/k8s/infrastructure/handlers/py.typed, src/orb/providers/k8s/infrastructure/handlers/shared/py.typed, src/orb/providers/k8s/infrastructure/instrumentation/py.typed, src/orb/providers/k8s/infrastructure/py.typed, src/orb/providers/k8s/infrastructure/services/py.typed, src/orb/providers/k8s/py.typed, src/orb/providers/k8s/reconciliation/py.typed, src/orb/providers/k8s/resilience/py.typed, src/orb/providers/k8s/scheduler/py.typed, src/orb/providers/k8s/services/py.typed, src/orb/providers/k8s/strategy/py.typed, src/orb/providers/k8s/utilities/py.typed, src/orb/providers/k8s/validation/py.typed, src/orb/providers/k8s/watch/py.typed, src/orb/providers/py.typed, src/orb/sdk/py.typed, src/py.typed)",
                "points": 27,
                "status": "partial",
                "details": [
                  {
                    "code": "typecheck_config_language",
                    "params": {
                      "files": "sdk/typescript/tsconfig.json, src/orb/api/documentation/py.typed, src/orb/api/middleware/py.typed, src/orb/api/models/py.typed, src/orb/api/py.typed, src/orb/api/routers/py.typed, src/orb/application/base/py.typed, src/orb/application/commands/py.typed, src/orb/application/dto/py.typed, src/orb/application/events/base/py.typed, src/orb/application/events/bus/py.typed, src/orb/application/events/handlers/py.typed, src/orb/application/events/py.typed, src/orb/application/interfaces/py.typed, src/orb/application/machine/py.typed, src/orb/application/provider/py.typed, src/orb/application/py.typed, src/orb/application/queries/py.typed, src/orb/application/request/py.typed, src/orb/application/template/py.typed, src/orb/cli/py.typed, src/orb/config/managers/py.typed, src/orb/config/py.typed, src/orb/config/schemas/py.typed, src/orb/config/utils/py.typed, src/orb/config/validators/py.typed, src/orb/domain/base/events/py.typed, src/orb/domain/base/ports/py.typed, src/orb/domain/base/py.typed, src/orb/domain/machine/py.typed, src/orb/domain/py.typed, src/orb/domain/request/py.typed, src/orb/domain/template/py.typed, src/orb/infrastructure/adapters/factories/py.typed, src/orb/infrastructure/adapters/ports/auth/py.typed, src/orb/infrastructure/adapters/ports/py.typed, src/orb/infrastructure/adapters/py.typed, src/orb/infrastructure/auth/py.typed, src/orb/infrastructure/auth/strategy/py.typed, src/orb/infrastructure/caching/py.typed, src/orb/infrastructure/di/components/py.typed, src/orb/infrastructure/di/py.typed, src/orb/infrastructure/error/py.typed, src/orb/infrastructure/events/py.typed, src/orb/infrastructure/handlers/base/py.typed, src/orb/infrastructure/handlers/py.typed, src/orb/infrastructure/interfaces/py.typed, src/orb/infrastructure/logging/py.typed, src/orb/infrastructure/mocking/py.typed, src/orb/infrastructure/patterns/py.typed, src/orb/infrastructure/py.typed, src/orb/infrastructure/registry/py.typed, src/orb/infrastructure/resilience/py.typed, src/orb/infrastructure/resilience/strategy/py.typed, src/orb/infrastructure/scheduler/base/py.typed, src/orb/infrastructure/scheduler/default/py.typed, src/orb/infrastructure/scheduler/hostfactory/py.typed, src/orb/infrastructure/scheduler/py.typed, src/orb/infrastructure/serialization/py.typed, src/orb/infrastructure/storage/base/py.typed, src/orb/infrastructure/storage/components/py.typed, src/orb/infrastructure/storage/json/py.typed, src/orb/infrastructure/storage/py.typed, src/orb/infrastructure/storage/repositories/py.typed, src/orb/infrastructure/storage/sql/py.typed, src/orb/infrastructure/template/py.typed, src/orb/infrastructure/utilities/common/collections/py.typed, src/orb/infrastructure/utilities/common/py.typed, src/orb/infrastructure/utilities/factories/py.typed, src/orb/infrastructure/utilities/file/py.typed, src/orb/infrastructure/utilities/py.typed, src/orb/interface/py.typed, src/orb/monitoring/py.typed, src/orb/providers/aws/application/events/py.typed, src/orb/providers/aws/application/machine/py.typed, src/orb/providers/aws/application/py.typed, src/orb/providers/aws/application/request/py.typed, src/orb/providers/aws/application/template/py.typed, src/orb/providers/aws/auth/py.typed, src/orb/providers/aws/configuration/py.typed, src/orb/providers/aws/domain/machine/py.typed, src/orb/providers/aws/domain/py.typed, src/orb/providers/aws/domain/request/py.typed, src/orb/providers/aws/domain/template/py.typed, src/orb/providers/aws/exceptions/py.typed, src/orb/providers/aws/infrastructure/adapters/py.typed, src/orb/providers/aws/infrastructure/handlers/components/py.typed, src/orb/providers/aws/infrastructure/handlers/py.typed, src/orb/providers/aws/infrastructure/launch_template/py.typed, src/orb/providers/aws/infrastructure/py.typed, src/orb/providers/aws/infrastructure/template/py.typed, src/orb/providers/aws/persistence/py.typed, src/orb/providers/aws/py.typed, src/orb/providers/aws/resilience/py.typed, src/orb/providers/aws/storage/components/py.typed, src/orb/providers/aws/storage/py.typed, src/orb/providers/aws/strategy/py.typed, src/orb/providers/aws/utilities/ec2/py.typed, src/orb/providers/aws/utilities/py.typed, src/orb/providers/base/py.typed, src/orb/providers/base/strategy/load_balancing/py.typed, src/orb/providers/base/strategy/py.typed, src/orb/providers/k8s/adapters/py.typed, src/orb/providers/k8s/auth/py.typed, src/orb/providers/k8s/cli/py.typed, src/orb/providers/k8s/config/py.typed, src/orb/providers/k8s/configuration/py.typed, src/orb/providers/k8s/domain/py.typed, src/orb/providers/k8s/domain/template/py.typed, src/orb/providers/k8s/exceptions/py.typed, src/orb/providers/k8s/infrastructure/adapters/py.typed, src/orb/providers/k8s/infrastructure/handlers/py.typed, src/orb/providers/k8s/infrastructure/handlers/shared/py.typed, src/orb/providers/k8s/infrastructure/instrumentation/py.typed, src/orb/providers/k8s/infrastructure/py.typed, src/orb/providers/k8s/infrastructure/services/py.typed, src/orb/providers/k8s/py.typed, src/orb/providers/k8s/reconciliation/py.typed, src/orb/providers/k8s/resilience/py.typed, src/orb/providers/k8s/scheduler/py.typed, src/orb/providers/k8s/services/py.typed, src/orb/providers/k8s/strategy/py.typed, src/orb/providers/k8s/utilities/py.typed, src/orb/providers/k8s/validation/py.typed, src/orb/providers/k8s/watch/py.typed, src/orb/providers/py.typed, src/orb/sdk/py.typed, src/py.typed",
                      "language": "Python"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "9/2139 source files over 60KB",
                "points": 54.8,
                "status": "partial",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 2139,
                      "oversized": 9
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          },
          {
            "key": "ai_interfaces",
            "band": "exceptional",
            "name": "Machine-readable interfaces",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "example_dirs": [
                "examples"
              ],
              "has_mcp_signal": true,
              "api_schema_files": [
                "sdk/spec/openapi.json"
              ]
            },
            "components": [
              {
                "key": "api_schema_openapi_graphql_proto",
                "name": "API schema (OpenAPI/GraphQL/proto)",
                "detail": "sdk/spec/openapi.json",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "sdk/spec/openapi.json"
                    }
                  }
                ],
                "max_points": 40
              },
              {
                "key": "mcp_server",
                "name": "MCP server",
                "detail": null,
                "points": 20,
                "status": "met",
                "details": [],
                "max_points": 20
              },
              {
                "key": "runnable_examples",
                "name": "Runnable examples",
                "detail": "examples",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "examples"
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? Carries a deliberately small weight: agent tooling is a real maintenance signal, but its absence must never gate the top of the scale (calibration saturates at raw 91, so 100/100 remains reachable with AI Readiness at zero)."
      }
    ],
    "classification": {
      "labels": [
        "library",
        "mcp-server"
      ],
      "scores": {
        "cli": 2,
        "sdk": 2,
        "library": 12,
        "mcp-server": 5,
        "network-service": 3
      },
      "primary": "library",
      "evidence": [
        {
          "tier": "distribution",
          "label": "library",
          "source": "registry:go",
          "weight": 6
        },
        {
          "tier": "distribution",
          "label": "library",
          "source": "registry:pypi",
          "weight": 6
        },
        {
          "tier": "structure",
          "label": "mcp-server",
          "source": "mcp_signal",
          "weight": 3
        },
        {
          "tier": "structure",
          "label": "network-service",
          "source": "api_schema",
          "weight": 3
        },
        {
          "tier": "description",
          "label": "cli",
          "source": "description:cli",
          "weight": 2
        },
        {
          "tier": "description",
          "label": "mcp-server",
          "source": "description:mcp-server",
          "weight": 2
        },
        {
          "tier": "description",
          "label": "sdk",
          "source": "description:sdk",
          "weight": 2
        }
      ],
      "artifacts": [],
      "confidence": "medium",
      "host_extension": false,
      "runs_as_process": true,
      "consumed_by_code": true
    },
    "metrics_version": "2.3.1"
  },
  "warnings": [
    "Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-29T11:41:43.427827Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/f/finos/open-resource-broker.svg",
  "full_name": "finos/open-resource-broker",
  "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 v2.3.1, schema v0.27.0 — full methodology · metrics wiki.

How one result sits in the wider record: aggregate statisticsGo, PyPI.