Public record
Software health reportschema 0.27.0 · metrics 1.13.0 · 2026-07-25 14:21 UTC

platonai / Browser4

Browser4: a lightning-fast, coroutine-safe browser for your AI.

Kotlin · PowerShell · RustApache-2.0★ 1,093 stars⑂ 145 forkssince Mar 2018View on GitHub ↗

platonai/Browser4 holds a health index of 72 out of 100, placing it in the Good band. It scores highest on Vitality (93/100) and lowest on Security (47/100). It was last updated today. A single contributor accounts for most of its recent work.

72
overall / 100
Good

Software health index

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

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

Score profile

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

Ownership

PlatonAIPersonal account
154 followers42 public repossince Mar 2018

This repository is owned by a personal account. A single-owner project carries more continuity risk than an organization-backed one.

Package ecosystems

RegistryPackageVersionDownloads / moVersionsLast publishTags
npmbrowser4-cli0.1.323,3223311 days agobrowserbrowser4browser4-cliautomationheadlesschromecdpcliagent

Metrics by category

Vitality

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

93Excellent · 22% of overall
How it's scored
36/36Push recency — last push 0 days ago
31.2/36Commit cadence — 45/52 weeks with commits
18/18Commit volume — 5,042 commits in the last year
10/10OpenSSF Scorecard: Maintained — 30 commit(s) and 3 issue activity found in the last 90 days -- score normalized to 10
Inputs used
commits_last_year5,042
human_commit_share1
days_since_last_push0
active_weeks_last_year45
How it's scored
27/27Ships releases — 39 releases published
36/36Release recency — latest release 5 days ago
27/27Release cadence — a release every ~2.4 days
0/10OpenSSF Scorecard: Signed-Releases — Project has not signed or included provenance with any releases.
Inputs used
releases_count39
latest_release_tagv4.12.0-rc.3
releases_from_tagsno
days_since_latest_release5
mean_days_between_releases2.4

Community & Adoption

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

62Moderate · 18% of overall
How it's scored
49.3/60Stars — 1,093 stars
18/25Forks — 145 forks
7/15Watchers — 19 watchers
Inputs used
forks145
stars1,093
watchers19
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
How it's scored
22.5/22.5README
22.5/22.5License — recognized license (Apache-2.0)
0/18CONTRIBUTING guide
0/13.5Code of conduct
0/7.2Issue template
0/6.3PR template
Inputs used
has_readmeyes
has_licenseyes
has_contributingno
has_issue_templateno
has_code_of_conductno
has_pull_request_templateno
How it's scored
47/80Monthly downloads — 3,322 downloads/month across npm
0/20Registry dependents — not reported by this ecosystem
Inputs used
packagesbrowser4-cli
dependents
ecosystemsnpm
total_downloads
monthly_downloads3,322
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?

61Moderate · 24% of overall
How it's scored
9/54Bus factor — 1 contributor(s) cover half of all commits
8/22.5Commit distribution — top contributor authored 64% of commits
5.4/13.5Contributor breadth — 4 contributors
3/10OpenSSF Scorecard: Contributors — project has 1 contributing companies or organizations -- score normalized to 3
Inputs used
bus_factor1
contributors_sampled4
top_contributor_share0.644
How it's scored
46.8/46.8Issue resolution — 100% of issues closed
25.5/38.3PR acceptance — 184/276 decided PRs merged
0/15OpenSSF Scorecard: Code-Review — Found 0/30 approved changesets -- score normalized to 0
Inputs used
merged_prs184
open_issues0
closed_issues210
issue_closed_ratio1
closed_unmerged_prs92
How it's scored
10/30Ownership backing — personal (user) account
0/20Verified domain — not applicable to user accounts
15.7/25Owner reach — 154 followers of platonai
23.9/25Track record — 42 public repos, account ~8 yr old
Inputs used
followers154
owner_typeUser
is_verified
owner_loginplatonai
public_repos42
account_age_days3,043
Excluded from scoring (no data or not applicable): Verified domain. Remaining weights renormalized.
How it's scored
25/25Published & resolvable — 1 package(s) on npm
35/35Publish recency — latest publish 11 days ago
20/20Version history — 33 published versions
20/20Not deprecated — active, not deprecated or yanked
Inputs used
packagesbrowser4-cli
ecosystemsnpm
any_deprecatedno
min_days_since_publish11

Engineering Quality

Are baseline engineering and documentation practices in place?

93Excellent · 20% of overall
How it's scored
24/24CI workflows — 9 workflow(s)
24/24Tests present
16/16Linter config — .eslintrc
0/9.6Pre-commit hooks
6.4/6.4.editorconfig
0/20OpenSSF Scorecard: CI-Tests — no data
Inputs used
has_ciyes
has_testsyes
has_editorconfigyes
has_linter_configyes
has_precommit_configno
Excluded from scoring (no data or not applicable): OpenSSF Scorecard: CI-Tests. Remaining weights renormalized.

Documentation

100Excellent
How it's scored
30/30README
25/25Documentation directory
15/15Documentation / homepage site — https://browser4.io
10/10Repository description
10/10Topics — 6 topics
10/10Wiki
Inputs used
topicsagentic-ai, agentic-browser, ai-browser, browser-agent, browser-use-agent, browser-infra
has_wikiyes
homepagehttps://browser4.io
has_readmeyes
has_docs_diryes
has_descriptionyes

Security

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

47At risk · 16% of overall
How it's scored
6.8/7.5Binary-Artifacts — binaries present in source code
0/7.5Branch-Protection — branch protection not enabled on development/release branches
0/2.5CI-Tests — no data
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
0/7.5Code-Review — Found 0/30 approved changesets -- score normalized to 0
0.8/2.5Contributors — project has 1 contributing companies or organizations -- score normalized to 3
10/10Dangerous-Workflow — no dangerous workflow patterns detected
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 3 issue activity found in the last 90 days -- score normalized to 10
5/5Packaging — packaging workflow detected
1.5/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 3
0/5SAST — no SAST tool detected
0/5Security-Policy — security policy file not detected
0/7.5Signed-Releases — Project has not signed or included provenance with any releases.
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
5.2/7.5Vulnerabilities — 3 existing vulnerabilities detected
Inputs used
sourceopenssf_scorecard
checks_evaluated17
scorecard_versionv5.5.0
checks_inconclusive1
scorecard_aggregate4.6
Excluded from scoring (no data or not applicable): ci_tests. Remaining weights renormalized.
How it's scored
7.6/35Direct dependencies free of known advisories — 1 affected: com.fasterxml.jackson.core:jackson-databind 2.9.9.3 (critical 9.8)
0/25Indirect dependencies free of known advisories — transitive set not separable from development and test dependencies in this scope
32.1/40No advisories left outstanding — 1 advisory-carrying package(s) unaddressed past 90 days; oldest published 2,496 days ago
Inputs used
sourceosv
advisories54
affected_packages4
assessed_packages387
unassessed_packages122
affected_by_severitycritical 1, high 1, low 1, unknown 1
direct_affected_packages1
Excluded from scoring (no data or not applicable): Indirect dependencies free of known advisories. Remaining weights renormalized. Matched 387 resolved dependencies against OSV. 122 could not be assessed — no resolved version, an unsupported ecosystem, or beyond the reported package list. This repository publishes no package the index resolves, so the repository dependency graph was assessed instead. That graph mixes development and test pins with shipped dependencies, so only the declared runtime dependencies are scored; transitive findings are reported as context and excluded from the score. Reachability is not analyzed.

AI Readiness

How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score.

81Good · 0% of overall
How it's scored
45/45Agent instructions — AGENTS.md, skills/browser4-cli/references/agent.md
0/15Machine-readable docs (llms.txt)
40/40Legible commit history — 88 of 100 human commits state their intent (structured subject or explanatory body)
Inputs used
has_llms_txtno
legible_history_share0.88
agent_instruction_filesAGENTS.md, skills/browser4-cli/references/agent.md
agent_instruction_max_bytes27,338
How it's scored
12.6/18One-command bootstrap — browser4-agent-tools/pom.xml, browser4-agentic/pom.xml, browser4-apps/browser4-bundle/pom.xml (toolchain convention, no task runner)
22/22Automated tests
11/11Lint / format config — .eslintrc
11/11Static type checking — Kotlin (statically typed)
10/10Reproducible environment — Dockerfile, lockfile
10/10Demonstrated agent practice — 44 of the last 100 commits agent-authored or agent-credited
0/8Automated maintenance — no automated dependency updates observed
3/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 3
Inputs used
has_nixno
has_testsyes
lockfilesCargo.lock, package-lock.json, pnpm-lock.yaml
has_dockerfileyes
typed_languageyes
bootstrap_files
has_devcontainerno
has_linter_configyes
typecheck_configs
agent_commit_share0.44
toolchain_manifestsbrowser4-agent-tools/pom.xml, browser4-agentic/pom.xml, browser4-apps/browser4-bundle/pom.xml, browser4-apps/browser4-standalone/pom.xml, browser4-apps/pom.xml, browser4-boot/pom.xml, browser4-core/browser4-browser/pom.xml, browser4-core/browser4-common/pom.xml, browser4-core/browser4-plugins/browser4-parse/pom.xml, browser4-core/browser4-plugins/browser4-protocol/pom.xml, browser4-core/browser4-plugins/pom.xml, browser4-core/browser4-resources/pom.xml, browser4-core/browser4-skeleton/pom.xml, browser4-core/pom.xml, browser4-dependencies/pom.xml, browser4-rest/pom.xml, browser4-tests/browser4-rest-tests/pom.xml, browser4-tests/browser4-tests-common/pom.xml, browser4-tests/pom.xml, browser4-tests/pulsar-e2e-tests/pom.xml, browser4-tests/pulsar-it-tests/pom.xml, cli/browser4-cli/Cargo.toml, examples/browser4-examples/pom.xml, examples/pom.xml, pom.xml
dependency_bot_commit_share0
How it's scored
45/45Type-checkable code — Kotlin (statically typed)
53/55Manageable file sizes — 30/809 source files over 60KB
Inputs used
primary_languageKotlin
largest_source_bytes1,073,878
source_files_sampled809
oversized_source_files30
How it's scored
0/40API schema (OpenAPI/GraphQL/proto)
20/20MCP server
40/40Runnable examples — examples, sample
Inputs used
example_dirsexamples, sample
has_mcp_signalyes
api_schema_files

Key facts

1,093GitHub stars
4contributors
5,042commits, last 12 months
0days since last push
39releases
1bus factor
0open issues
Maven, npmpackage ecosystems

Data collection warnings

  • Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token
  • Could not fetch maven package 'ai.platon.pulsar:browser4-boot' from its registry
  • Could not fetch maven package 'ai.platon.pulsar:browser4-rest' from its registry
  • Could not fetch maven package 'ai.platon.pulsar:browser4-agentic' from its registry
  • Could not fetch maven package 'ai.platon.pulsar:browser4-agent-tools' from its registry

More detail

Star and fork history 0 ★ / 145 ⇿
0Stars
145Forks
39Releases

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.

0255075100125150145112018-042022-052026-07
Major 1Minor 10Patch 26

Each point covers 8 days.

OpenSSF Scorecard 4.6 / 10
4.6aggregate

Independent, tool-agnostic security assessment from the open-source OpenSSF Scorecard. Each check rewards a security practice, not a specific vendor's tool. Checks Scorecard could not determine are marked n/a and excluded from the security score (never counted as zero).Scorecard v5.5.0 · 2026-07-25 14:21 UTC

9Binary-Artifactsbinaries present in source code
0Branch-Protectionbranch protection not enabled on development/release branches
n/aCI-Testsno pull request found
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
0Code-ReviewFound 0/30 approved changesets -- score normalized to 0
3Contributorsproject has 1 contributing companies or organizations -- score normalized to 3
10Dangerous-Workflowno dangerous workflow patterns detected
10Dependency-Update-Toolupdate tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
10Maintained30 commit(s) and 3 issue activity found in the last 90 days -- score normalized to 10
10Packagingpackaging workflow detected
3Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 3
0SASTno SAST tool detected
0Security-Policysecurity policy file not detected
0Signed-ReleasesProject has not signed or included provenance with any releases.
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
7Vulnerabilities3 existing vulnerabilities detected
Direct dependencies 116
RegistryPackageVersion constraintManifest
Mavenai.platon.pulsar:browser4-skeletonbrowser4-agent-tools/pom.xml
Mavenai.platon.pulsar:browser4-parsebrowser4-agent-tools/pom.xml
Mavenai.platon.pulsar:browser4-agenticbrowser4-agent-tools/pom.xml
Mavenai.platon.pulsar:pulsar-qlbrowser4-agent-tools/pom.xml
Mavencom.github.ben-manes.caffeine:caffeinebrowser4-agent-tools/pom.xml
Mavenai.platon.pulsar:browser4-commonbrowser4-agentic/pom.xml
Mavenai.platon.pulsar:browser4-protocolbrowser4-agentic/pom.xml
Mavenai.platon.pulsar:browser4-browserbrowser4-agentic/pom.xml
Mavenai.platon.pulsar:browser4-skeletonbrowser4-agentic/pom.xml
Mavenai.platon.pulsar:pulsar-ql-commonbrowser4-agentic/pom.xml
Mavenai.platon.pulsar:pulsar-qlbrowser4-agentic/pom.xml
Mavenio.modelcontextprotocol:kotlin-sdk-core-jvm0.8.1browser4-agentic/pom.xml
Mavenio.modelcontextprotocol:kotlin-sdk-server-jvm0.8.1browser4-agentic/pom.xml
Mavenio.opentelemetry:opentelemetry-apibrowser4-agentic/pom.xml
Mavenio.opentelemetry:opentelemetry-sdkbrowser4-agentic/pom.xml
Mavenio.opentelemetry:opentelemetry-exporter-otlpbrowser4-agentic/pom.xml
Mavenio.opentelemetry.semconv:opentelemetry-semconvbrowser4-agentic/pom.xml
Mavenio.micrometer:micrometer-corebrowser4-agentic/pom.xml
Mavenio.micrometer:micrometer-registry-prometheusbrowser4-agentic/pom.xml
Mavenjakarta.annotation:jakarta.annotation-apibrowser4-agentic/pom.xml
Mavenorg.yaml:snakeyaml2.2browser4-agentic/pom.xml
Mavenai.platon.pulsar:pulsar-persistbrowser4-boot/pom.xml
Mavenai.platon.pulsar:browser4-skeletonbrowser4-boot/pom.xml
Mavenai.platon.pulsar:browser4-protocolbrowser4-boot/pom.xml
Mavenai.platon.pulsar:browser4-agenticbrowser4-boot/pom.xml
Mavenai.platon.pulsar:pulsar-qlbrowser4-boot/pom.xml
Mavenorg.springframework.boot:spring-bootbrowser4-boot/pom.xml
Mavenorg.springframework.boot:spring-boot-autoconfigurebrowser4-boot/pom.xml
Mavenorg.springframework.boot:spring-boot-dependencies${spring-boot.version}browser4-dependencies/pom.xml
Mavenai.platon.pulsar:pulsar-bom${browser4-base.version}browser4-dependencies/pom.xml
Mavenorg.jetbrains.kotlinx:kotlinx-coroutines-bom${kotlin.coroutine.version}browser4-dependencies/pom.xml
Mavenorg.jetbrains.kotlin:kotlin-bom${kotlin.version}browser4-dependencies/pom.xml
Mavenorg.jetbrains.kotlin:kotlin-serialization${kotlin.version}browser4-dependencies/pom.xml
Mavenorg.apache.tika:tika-core${tika.version}browser4-dependencies/pom.xml
Mavenorg.apache.tika:tika-parser-html-module${tika.version}browser4-dependencies/pom.xml
Mavenorg.apache.tika:tika-parsers${tika.version}browser4-dependencies/pom.xml
Mavendev.langchain4j:langchain4j-bom${langchain4j.version}browser4-dependencies/pom.xml
Mavencommons-io:commons-io${commons-io.version}browser4-dependencies/pom.xml
Mavenorg.apache.commons:commons-text${commons-text.version}browser4-dependencies/pom.xml
Mavenorg.apache.commons:commons-math3${commons-math3.version}browser4-dependencies/pom.xml
Mavenorg.apache.commons:commons-collections4${commons-collections4.version}browser4-dependencies/pom.xml
Mavencommons-logging:commons-logging${commons-logging.version}browser4-dependencies/pom.xml
Mavenorg.apache.commons:commons-compress${commons-compress.version}browser4-dependencies/pom.xml
Mavenorg.apache.commons:commons-numbers-bom${commons-numbers-bom.version}browser4-dependencies/pom.xml
Mavenorg.apache.poi:poi${poi.version}browser4-dependencies/pom.xml
Mavenorg.apache.poi:poi-ooxml${poi-ooxml.version}browser4-dependencies/pom.xml
Mavencom.google.guava:guava${guava.version}browser4-dependencies/pom.xml
Mavenorg.apache.httpcomponents:httpcore${httptrove4j-core.version}browser4-dependencies/pom.xml
Mavenorg.apache.httpcomponents:httpclient${httpclient.version}browser4-dependencies/pom.xml
Mavenio.ktor:ktor-client-core${ktor.version}browser4-dependencies/pom.xml
Mavenio.ktor:ktor-client-core-jvm${ktor.version}browser4-dependencies/pom.xml
Mavenio.ktor:ktor-client-cio-jvm${ktor.version}browser4-dependencies/pom.xml
Mavenio.ktor:ktor-client-websockets${ktor.version}browser4-dependencies/pom.xml
Mavenio.ktor:ktor-client-cio${ktor.version}browser4-dependencies/pom.xml
Mavenio.ktor:ktor-serialization-kotlinx-json-jvm${ktor.version}browser4-dependencies/pom.xml
Mavencom.squareup.okhttp3:okhttp4.12.0browser4-dependencies/pom.xml
Mavenio.modelcontextprotocol:kotlin-sdk${mcp-sdk.version}browser4-dependencies/pom.xml
Mavenorg.apache.lucene:lucene-core${lucene.version}browser4-dependencies/pom.xml
Mavenorg.apache.lucene:lucene-analyzers-common${lucene.version}browser4-dependencies/pom.xml
Mavenorg.apache.lucene:lucene-analyzers-smartcn${lucene.version}browser4-dependencies/pom.xml
Mavenorg.jgrapht:jgrapht-core${jgrapht.version}browser4-dependencies/pom.xml
Mavenorg.jgrapht:jgrapht-ext${jgrapht.version}browser4-dependencies/pom.xml
Mavencom.beust:jcommander${jcommander.version}browser4-dependencies/pom.xml
Mavencom.udojava:EvalEx${EvalEx.version}browser4-dependencies/pom.xml
Mavenorg.nield:kotlin-statistics${kotlin-statistics.version}browser4-dependencies/pom.xml
Mavencom.github.oshi:oshi-core${oshi-trove4j-core.version}browser4-dependencies/pom.xml
Mavenio.dropwizard.metrics:metrics-core${metrics.version}browser4-dependencies/pom.xml
Mavenio.dropwizard.metrics:metrics-jmx${metrics.version}browser4-dependencies/pom.xml
Mavenio.dropwizard.metrics:metrics-json${metrics.version}browser4-dependencies/pom.xml
Mavenio.dropwizard.metrics:metrics-graphite${metrics.version}browser4-dependencies/pom.xml
Mavenio.opentelemetry.semconv:opentelemetry-semconv${opentelemetry.semconv.version}browser4-dependencies/pom.xml
Mavenorg.nibor.autolink:autolink${autolink.version}browser4-dependencies/pom.xml
Mavenorg.perf4j:perf4j${perf4j.version}browser4-dependencies/pom.xml
Mavenai.platon.pulsar:pulsar-h2${pulsar-h2.version}browser4-dependencies/pom.xml
Mavenai.platon.pulsar:pulsar-jsoup${pulsar-jsoup.version}browser4-dependencies/pom.xml
Mavenai.platon.cdt:cdt-kotlin-client${cdt-kotlin-client.version}browser4-dependencies/pom.xml
Mavenai.platon.pulsar:browser4-resourcesbrowser4-rest/pom.xml
Mavenai.platon.pulsar:browser4-skeletonbrowser4-rest/pom.xml
Mavenai.platon.pulsar:browser4-protocolbrowser4-rest/pom.xml
Mavenai.platon.pulsar:browser4-bootbrowser4-rest/pom.xml
Mavenai.platon.pulsar:browser4-agenticbrowser4-rest/pom.xml
Mavenai.platon.pulsar:browser4-agent-toolsbrowser4-rest/pom.xml
Mavenai.platon.pulsar:pulsar-ql-commonbrowser4-rest/pom.xml
Mavenai.platon.pulsar:pulsar-qlbrowser4-rest/pom.xml
Mavencom.google.guava:guavabrowser4-rest/pom.xml
Mavencom.github.ben-manes.caffeine:caffeinebrowser4-rest/pom.xml
Mavencom.google.code.gson:gsonbrowser4-rest/pom.xml
Mavencom.fasterxml.jackson.core:jackson-corebrowser4-rest/pom.xml
Mavencom.fasterxml.jackson.core:jackson-annotationsbrowser4-rest/pom.xml
Mavencom.fasterxml.jackson.core:jackson-databindbrowser4-rest/pom.xml
Mavenorg.springframework.boot:spring-boot-autoconfigurebrowser4-rest/pom.xml
Mavenorg.springframework.boot:spring-boot-starter-webbrowser4-rest/pom.xml
Mavenorg.springframework.boot:spring-boot-starter-jettybrowser4-rest/pom.xml
Mavenorg.springframework.boot:spring-boot-starter-webfluxbrowser4-rest/pom.xml
Mavenorg.jetbrains.kotlinx:kotlinx-coroutines-reactorbrowser4-rest/pom.xml
Mavenorg.springframework.boot:spring-boot-starter-actuatorbrowser4-rest/pom.xml
Mavencom.fasterxml.jackson.module:jackson-module-kotlinbrowser4-rest/pom.xml
Mavenorg.jetbrains.kotlin:kotlin-maven-allopen${kotlin.version}pom.xml
Mavenorg.jetbrains.kotlin:kotlin-maven-noarg${kotlin.version}pom.xml
Mavenai.platon.pulsar:browser4-dependencies${project.version}pom.xml
Mavenai.platon.pulsar:browser4-common${project.version}pom.xml
Mavenai.platon.pulsar:browser4-resources${project.version}pom.xml
Mavenai.platon.pulsar:browser4-skeleton${project.version}pom.xml
Mavenai.platon.pulsar:browser4-plugins${project.version}pom.xml
Mavenai.platon.pulsar:browser4-parse${project.version}pom.xml
Mavenai.platon.pulsar:browser4-protocol${project.version}pom.xml
Mavenai.platon.pulsar:browser4-browser${project.version}pom.xml
Mavenai.platon.pulsar:browser4-agentic${project.version}pom.xml
Mavenai.platon.pulsar:browser4-agent-tools${project.version}pom.xml
Mavenai.platon.pulsar:browser4-rest${project.version}pom.xml
Mavenai.platon.pulsar:browser4-boot${project.version}pom.xml
Mavenai.platon.pulsar:browser4-tests-common${project.version}pom.xml
Mavenai.platon.pulsar:pulsar-it-tests${project.version}pom.xml
Mavenorg.jetbrains.kotlin:kotlin-stdlibpom.xml
Mavenorg.jetbrains.kotlin:kotlin-reflectpom.xml
Mavenorg.jetbrains.kotlinx:kotlinx-coroutines-corepom.xml
All dependencies 509

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

RegistryPackageVersionRelation
Mavenai.platon.cdt:cdt-kotlin-clientdirect
Mavenai.platon.cdt:cdt-kotlin-client4.8.0direct
Mavenai.platon.pulsar:browser4-agent-toolsdirect
Mavenai.platon.pulsar:browser4-agent-tools4.11.22-SNAPSHOTdirect
Mavenai.platon.pulsar:browser4-agenticdirect
Mavenai.platon.pulsar:browser4-agentic4.11.22-SNAPSHOTdirect
Mavenai.platon.pulsar:browser4-bootdirect
Mavenai.platon.pulsar:browser4-boot4.11.22-SNAPSHOTdirect
Mavenai.platon.pulsar:browser4-browserdirect
Mavenai.platon.pulsar:browser4-browser4.11.22-SNAPSHOTdirect
Mavenai.platon.pulsar:browser4-commondirect
Mavenai.platon.pulsar:browser4-common4.11.22-SNAPSHOTdirect
Mavenai.platon.pulsar:browser4-dependencies4.11.22-SNAPSHOTdirect
Mavenai.platon.pulsar:browser4-parsedirect
Mavenai.platon.pulsar:browser4-parse4.11.22-SNAPSHOTdirect
Mavenai.platon.pulsar:browser4-plugins4.11.22-SNAPSHOTdirect
Mavenai.platon.pulsar:browser4-protocoldirect
Mavenai.platon.pulsar:browser4-protocol4.11.22-SNAPSHOTdirect
Mavenai.platon.pulsar:browser4-resourcesdirect
Mavenai.platon.pulsar:browser4-resources4.11.22-SNAPSHOTdirect
Mavenai.platon.pulsar:browser4-restdirect
Mavenai.platon.pulsar:browser4-rest4.11.22-SNAPSHOTdirect
Mavenai.platon.pulsar:browser4-skeletondirect
Mavenai.platon.pulsar:browser4-skeleton4.11.22-SNAPSHOTdirect
Mavenai.platon.pulsar:browser4-tests-commondirect
Mavenai.platon.pulsar:browser4-tests-common4.11.22-SNAPSHOTdirect
Mavenai.platon.pulsar:pulsar-bomdirect
Mavenai.platon.pulsar:pulsar-bom4.8.5direct
Mavenai.platon.pulsar:pulsar-h2direct
Mavenai.platon.pulsar:pulsar-h21.4.197direct
Mavenai.platon.pulsar:pulsar-it-tests4.11.22-SNAPSHOTdirect
Mavenai.platon.pulsar:pulsar-jsoupdirect
Mavenai.platon.pulsar:pulsar-jsoup1.14.3direct
Mavenai.platon.pulsar:pulsar-persistdirect
Mavenai.platon.pulsar:pulsar-qldirect
Mavenai.platon.pulsar:pulsar-ql-commondirect
Mavencom.beust:jcommanderdirect
Mavencom.beust:jcommander1.82direct
Mavencom.fasterxml.jackson.core:jackson-annotationsdirect
Mavencom.fasterxml.jackson.core:jackson-coredirect
Mavencom.fasterxml.jackson.core:jackson-databinddirect
Mavencom.fasterxml.jackson.core:jackson-databind2.9.9.3direct
Mavencom.fasterxml.jackson.module:jackson-module-kotlindirect
Mavencom.github.ben-manes.caffeine:caffeinedirect
Mavencom.github.oshi:oshi-coredirect
Mavencom.github.oshi:oshi-core6.6.6direct
Mavencom.google.code.gson:gsondirect
Mavencom.google.guava:guavadirect
Mavencom.google.guava:guava33.2.1-jredirect
Mavencom.squareup.okhttp3:okhttp4.12.0direct
Mavencom.udojava:EvalEx2.0direct
Mavencommons-io:commons-io2.16.1direct
Mavencommons-logging:commons-logging1.3.2direct
Mavendev.langchain4j:langchain4j-bom1.5.0direct
Mavenio.dropwizard.metrics:metrics-coredirect
Mavenio.dropwizard.metrics:metrics-core4.2.12direct
Mavenio.dropwizard.metrics:metrics-graphitedirect
Mavenio.dropwizard.metrics:metrics-graphite4.2.12direct
Mavenio.dropwizard.metrics:metrics-jmx4.2.12direct
Mavenio.dropwizard.metrics:metrics-json4.2.12direct
Mavenio.ktor:ktor-client-ciodirect
Mavenio.ktor:ktor-client-cio3.2.3direct
Mavenio.ktor:ktor-client-cio-jvmdirect
Mavenio.ktor:ktor-client-cio-jvm3.2.3direct
Mavenio.ktor:ktor-client-coredirect
Mavenio.ktor:ktor-client-core3.2.3direct
Mavenio.ktor:ktor-client-core-jvmdirect
Mavenio.ktor:ktor-client-core-jvm3.2.3direct
Mavenio.ktor:ktor-client-websocketsdirect
Mavenio.ktor:ktor-client-websockets3.2.3direct
Mavenio.ktor:ktor-serialization-kotlinx-json-jvm3.2.3direct
Mavenio.micrometer:micrometer-coredirect
Mavenio.micrometer:micrometer-registry-prometheusdirect
Mavenio.modelcontextprotocol:kotlin-sdk0.8.1direct
Mavenio.modelcontextprotocol:kotlin-sdk-core-jvm0.8.1direct
Mavenio.modelcontextprotocol:kotlin-sdk-server-jvm0.8.1direct
Mavenio.opentelemetry.semconv:opentelemetry-semconvdirect
Mavenio.opentelemetry.semconv:opentelemetry-semconv1.37.0direct
Mavenio.opentelemetry:opentelemetry-apidirect
Mavenio.opentelemetry:opentelemetry-exporter-otlpdirect
Mavenio.opentelemetry:opentelemetry-sdkdirect
Mavenjakarta.annotation:jakarta.annotation-apidirect
Mavenorg.apache.commons:commons-collections4direct
Mavenorg.apache.commons:commons-collections44.4direct
Mavenorg.apache.commons:commons-compress1.26.2direct
Mavenorg.apache.commons:commons-math3direct
Mavenorg.apache.commons:commons-math33.6.1direct
Mavenorg.apache.commons:commons-numbers-bom1.1direct
Mavenorg.apache.commons:commons-text1.11.0direct
Mavenorg.apache.httpcomponents:httpclientdirect
Mavenorg.apache.httpcomponents:httpclient4.5.13direct
Mavenorg.apache.httpcomponents:httpcore4.4.15direct
Mavenorg.apache.lucene:lucene-analyzers-common7.3.1direct
Mavenorg.apache.lucene:lucene-analyzers-smartcn7.3.1direct
Mavenorg.apache.lucene:lucene-core7.3.1direct
Mavenorg.apache.poi:poi5.3.0direct
Mavenorg.apache.poi:poi-ooxml5.4.0direct
Mavenorg.apache.tika:tika-coredirect
Mavenorg.apache.tika:tika-core3.2.2direct
Mavenorg.apache.tika:tika-parser-html-moduledirect
Mavenorg.apache.tika:tika-parser-html-module3.2.2direct
Mavenorg.apache.tika:tika-parsers3.2.2direct
Mavenorg.jetbrains.kotlin:kotlin-bomdirect
Mavenorg.jetbrains.kotlin:kotlin-maven-allopendirect
Mavenorg.jetbrains.kotlin:kotlin-maven-noargdirect
Mavenorg.jetbrains.kotlin:kotlin-reflectdirect
Mavenorg.jetbrains.kotlin:kotlin-serializationdirect
Mavenorg.jetbrains.kotlin:kotlin-stdlibdirect
Mavenorg.jetbrains.kotlinx:kotlinx-coroutines-bom1.10.2direct
Mavenorg.jetbrains.kotlinx:kotlinx-coroutines-coredirect
Mavenorg.jetbrains.kotlinx:kotlinx-coroutines-reactordirect
Mavenorg.jgrapht:jgrapht-core1.0.1direct
Mavenorg.jgrapht:jgrapht-ext1.0.1direct
Mavenorg.nibor.autolink:autolink0.11.0direct
Mavenorg.nield:kotlin-statistics1.2.1direct
Mavenorg.perf4j:perf4j0.9.16direct
Mavenorg.springframework.boot:spring-bootdirect
Mavenorg.springframework.boot:spring-boot-autoconfiguredirect
Mavenorg.springframework.boot:spring-boot-dependenciesdirect
Mavenorg.springframework.boot:spring-boot-dependencies4.0.6direct
Mavenorg.springframework.boot:spring-boot-starter-actuatordirect
Mavenorg.springframework.boot:spring-boot-starter-jettydirect
Mavenorg.springframework.boot:spring-boot-starter-webdirect
Mavenorg.springframework.boot:spring-boot-starter-webfluxdirect
Mavenorg.yaml:snakeyaml2.2direct
crates.ioadler22.0.1indirect
crates.ioaho-corasick1.1.4indirect
crates.ioandroid_system_properties0.1.5indirect
crates.ioanyhow1.0.102indirect
crates.ioarbitrary1.4.2indirect
crates.ioatomic-waker1.1.2indirect
crates.ioautocfg1.5.0indirect
crates.ioaws-lc-rs1.16.3indirect
crates.ioaws-lc-sys0.40.0indirect
crates.iobase640.22.1indirect
crates.iobitflags2.11.1indirect
crates.ioblock-buffer0.10.4indirect
crates.iobumpalo3.20.2indirect
crates.iobytes1.11.1indirect
crates.iocc1.2.62indirect
crates.iocfg-if1.0.4indirect
crates.iocfg_aliases0.2.1indirect
crates.iochrono0.4.44indirect
crates.iocmake0.1.58indirect
crates.iocombine4.6.7indirect
crates.iocore-foundation0.10.1indirect
crates.iocore-foundation-sys0.8.7indirect
crates.iocpufeatures0.2.17indirect
crates.iocrc32fast1.5.0indirect
crates.iocrossbeam-utils0.8.21indirect
crates.iocrypto-common0.1.7indirect
crates.ioderive_arbitrary1.4.2indirect
crates.iodigest0.10.7indirect
crates.iodirs6.0.0indirect
crates.iodirs-sys0.5.0indirect
crates.iodisplaydoc0.2.5indirect
crates.iodunce1.0.5indirect
crates.ioequivalent1.0.2indirect
crates.ioerrno0.3.14indirect
crates.iofastrand2.4.1indirect
crates.iofiletime0.2.29indirect
crates.iofind-msvc-tools0.1.9indirect
crates.ioflate21.1.9indirect
crates.iofoldhash0.1.5indirect
crates.ioform_urlencoded1.2.2indirect
crates.iofs_extra1.3.0indirect
crates.iofutures-channel0.3.32indirect
crates.iofutures-core0.3.32indirect
crates.iofutures-io0.3.32indirect
crates.iofutures-sink0.3.32indirect
crates.iofutures-task0.3.32indirect
crates.iofutures-util0.3.32indirect
crates.iogeneric-array0.14.7indirect
crates.iogetrandom0.2.17indirect
crates.iogetrandom0.3.4indirect
crates.iogetrandom0.4.2indirect
crates.iohashbrown0.15.5indirect
crates.iohashbrown0.17.1indirect
crates.ioheck0.5.0indirect
crates.iohttp1.4.0indirect
crates.iohttp-body1.0.1indirect
crates.iohttp-body-util0.1.3indirect
crates.iohttparse1.10.1indirect
crates.iohyper1.9.0indirect
crates.iohyper-rustls0.27.9indirect
crates.iohyper-util0.1.20indirect
crates.ioiana-time-zone0.1.65indirect
crates.ioiana-time-zone-haiku0.1.2indirect
crates.ioicu_collections2.2.0indirect
crates.ioicu_locale_core2.2.0indirect
crates.ioicu_normalizer2.2.0indirect
crates.ioicu_normalizer_data2.2.0indirect
crates.ioicu_properties2.2.0indirect
crates.ioicu_properties_data2.2.0indirect
crates.ioicu_provider2.2.0indirect
crates.ioid-arena2.3.0indirect
crates.ioidna1.1.0indirect
crates.ioidna_adapter1.2.2indirect
crates.ioindexmap2.14.0indirect
crates.ioipnet2.12.0indirect
crates.ioitoa1.0.18indirect
crates.iojni0.22.4indirect
crates.iojni-macros0.22.4indirect
crates.iojni-sys0.4.1indirect
crates.iojni-sys-macros0.4.1indirect
crates.iojobserver0.1.34indirect
crates.iojs-sys0.3.91indirect
crates.ioleb128fmt0.1.0indirect
crates.iolibc0.2.186indirect
crates.iolibredox0.1.16indirect
crates.iolinux-raw-sys0.12.1indirect
crates.iolitemap0.8.2indirect
crates.iolog0.4.29indirect
crates.iolru-slab0.1.2indirect
crates.iomemchr2.8.0indirect
crates.iominiz_oxide0.8.9indirect
crates.iomio1.2.0indirect
crates.ionum-traits0.2.19indirect
crates.ioonce_cell1.21.4indirect
crates.ioopenssl-probe0.2.1indirect
crates.iooption-ext0.2.0indirect
crates.iopercent-encoding2.3.2indirect
crates.iopin-project-lite0.2.17indirect
crates.iopotential_utf0.1.5indirect
crates.ioppv-lite860.2.21indirect
crates.ioprettyplease0.2.37indirect
crates.ioproc-macro21.0.106indirect
crates.ioquinn0.11.9indirect
crates.ioquinn-proto0.11.14indirect
crates.ioquinn-udp0.5.14indirect
crates.ioquote1.0.45indirect
crates.ior-efi5.3.0indirect
crates.ior-efi6.0.0indirect
crates.iorand0.9.4indirect
crates.iorand_chacha0.9.0indirect
crates.iorand_core0.9.5indirect
crates.ioredox_users0.5.2indirect
crates.ioregex1.12.3indirect
crates.ioregex-automata0.4.14indirect
crates.ioregex-syntax0.8.10indirect
crates.ioreqwest0.13.3indirect
crates.ioring0.17.14indirect
crates.iorustc-hash2.1.2indirect
crates.iorustc_version0.4.1indirect
crates.iorustix1.1.4indirect
crates.iorustls0.23.40indirect
crates.iorustls-native-certs0.8.3indirect
crates.iorustls-pki-types1.14.1indirect
crates.iorustls-platform-verifier0.7.0indirect
crates.iorustls-platform-verifier-android0.1.1indirect
crates.iorustls-webpki0.103.13indirect
crates.iorustversion1.0.22indirect
crates.iosame-file1.0.6indirect
crates.ioschannel0.1.29indirect
crates.iosecurity-framework3.7.0indirect
crates.iosecurity-framework-sys2.17.0indirect
crates.iosemver1.0.28indirect
crates.ioserde1.0.228indirect
crates.ioserde_core1.0.228indirect
crates.ioserde_derive1.0.228indirect
crates.ioserde_json1.0.149indirect
crates.iosha20.10.9indirect
crates.ioshlex1.3.0indirect
crates.iosignal-hook-registry1.4.8indirect
crates.iosimd-adler320.3.9indirect
crates.iosimd_cesu81.1.1indirect
crates.iosimdutf80.1.5indirect
crates.ioslab0.4.12indirect
crates.iosmallvec1.15.1indirect
crates.iosocket20.6.3indirect
crates.iostable_deref_trait1.2.1indirect
crates.iosubtle2.6.1indirect
crates.iosyn2.0.117indirect
crates.iosync_wrapper1.0.2indirect
crates.iosynstructure0.13.2indirect
crates.iotar0.4.46indirect
crates.iotempfile3.27.0indirect
crates.iothiserror2.0.18indirect
crates.iothiserror-impl2.0.18indirect
crates.iotinystr0.8.3indirect
crates.iotinyvec1.11.0indirect
crates.iotinyvec_macros0.1.1indirect
crates.iotokio1.52.3indirect
crates.iotokio-macros2.7.0indirect
crates.iotokio-rustls0.26.4indirect
crates.iotower0.5.3indirect
crates.iotower-http0.6.10indirect
crates.iotower-layer0.3.3indirect
crates.iotower-service0.3.3indirect
crates.iotracing0.1.44indirect
crates.iotracing-core0.1.36indirect
crates.iotry-lock0.2.5indirect
crates.iotypenum1.20.1indirect
crates.iounicode-ident1.0.24indirect
crates.iounicode-xid0.2.6indirect
crates.iountrusted0.9.0indirect
crates.iourl2.5.8indirect
crates.iourlencoding2.1.3indirect
crates.ioutf8_iter1.0.4indirect
crates.ioversion_check0.9.5indirect
crates.iowalkdir2.5.0indirect
crates.iowant0.3.1indirect
crates.iowasi0.11.1+wasi-snapshot-preview1indirect
crates.iowasip21.0.3+wasi-0.2.9indirect
crates.iowasip30.4.0+wasi-0.3.0-rc-2026-01-06indirect
crates.iowasm-bindgen0.2.114indirect
crates.iowasm-bindgen-futures0.4.64indirect
crates.iowasm-bindgen-macro0.2.114indirect
crates.iowasm-bindgen-macro-support0.2.114indirect
crates.iowasm-bindgen-shared0.2.114indirect
crates.iowasm-encoder0.244.0indirect
crates.iowasm-metadata0.244.0indirect
crates.iowasmparser0.244.0indirect
crates.ioweb-sys0.3.91indirect
crates.ioweb-time1.1.0indirect
crates.iowebpki-root-certs1.0.7indirect
crates.iowinapi-util0.1.11indirect
crates.iowindows-core0.62.2indirect
crates.iowindows-implement0.60.2indirect
crates.iowindows-interface0.59.3indirect
crates.iowindows-link0.2.1indirect
crates.iowindows-result0.4.1indirect
crates.iowindows-strings0.5.1indirect
crates.iowindows-sys0.52.0indirect
crates.iowindows-sys0.60.2indirect
crates.iowindows-sys0.61.2indirect
crates.iowindows-targets0.52.6indirect
crates.iowindows-targets0.53.5indirect
crates.iowindows_aarch64_gnullvm0.52.6indirect
crates.iowindows_aarch64_gnullvm0.53.1indirect
crates.iowindows_aarch64_msvc0.52.6indirect
crates.iowindows_aarch64_msvc0.53.1indirect
crates.iowindows_i686_gnu0.52.6indirect
crates.iowindows_i686_gnu0.53.1indirect
crates.iowindows_i686_gnullvm0.52.6indirect
crates.iowindows_i686_gnullvm0.53.1indirect
crates.iowindows_i686_msvc0.52.6indirect
crates.iowindows_i686_msvc0.53.1indirect
crates.iowindows_x86_64_gnu0.52.6indirect
crates.iowindows_x86_64_gnu0.53.1indirect
crates.iowindows_x86_64_gnullvm0.52.6indirect
crates.iowindows_x86_64_gnullvm0.53.1indirect
crates.iowindows_x86_64_msvc0.52.6indirect
crates.iowindows_x86_64_msvc0.53.1indirect
crates.iowit-bindgen0.51.0indirect
crates.iowit-bindgen0.57.1indirect
crates.iowit-bindgen-core0.51.0indirect
crates.iowit-bindgen-rust0.51.0indirect
crates.iowit-bindgen-rust-macro0.51.0indirect
crates.iowit-component0.244.0indirect
crates.iowit-parser0.244.0indirect
crates.iowriteable0.6.3indirect
crates.ioxattr1.6.1indirect
crates.ioyoke0.8.2indirect
crates.ioyoke-derive0.8.2indirect
crates.iozerocopy0.8.48indirect
crates.iozerocopy-derive0.8.48indirect
crates.iozerofrom0.1.7indirect
crates.iozerofrom-derive0.1.7indirect
crates.iozeroize1.8.2indirect
crates.iozerotrie0.2.4indirect
crates.iozerovec0.11.6indirect
crates.iozerovec-derive0.11.3indirect
crates.iozip2.4.2indirect
crates.iozmij1.0.21indirect
crates.iozopfli0.8.3indirect
Mavenai.platon.pulsar:pulsar-commonindirect
Mavenai.platon.pulsar:pulsar-domindirect
Mavenai.platon.pulsar:pulsar-llmindirect
Mavenai.platon.pulsar:pulsar-maprindirect
Mavench.qos.logback:logback-classicindirect
Mavencom.fasterxml.jackson.dataformat:jackson-dataformat-yamlindirect
Mavencom.google.code.crawler-commons:crawler-commons0.5indirect
Mavencom.ninja-squad:springmockk4.0.2indirect
Mavencommons-codec:commons-codecindirect
Mavendev.langchain4j:langchain4j-open-aiindirect
Mavenio.github.git-commit-id:git-commit-id-maven-pluginindirect
Mavenio.mockk:mockkindirect
Mavenio.mockk:mockk1.14.6indirect
Mavenio.mockk:mockk-jvmindirect
Mavenio.mockk:mockk-jvm1.14.6indirect
Mavenio.modelcontextprotocol:kotlin-sdk-client-jvm0.8.1indirect
Mavenjavax.servlet:javax.servlet-apiindirect
Mavenjavax.servlet:jstlindirect
Mavenjunit:junitindirect
Mavennet.sourceforge.nekohtml:nekohtmlindirect
Mavenorg.apache.commons:commons-lang3indirect
Mavenorg.apache.httpcomponents.client5:httpclient5indirect
Mavenorg.apache.logging.log4j:log4j-coreindirect
Mavenorg.apache.maven.plugins:maven-compiler-pluginindirect
Mavenorg.apache.maven.plugins:maven-dependency-pluginindirect
Mavenorg.apache.maven.plugins:maven-gpg-pluginindirect
Mavenorg.apache.maven.plugins:maven-jar-pluginindirect
Mavenorg.apache.maven.plugins:maven-surefire-pluginindirect
Mavenorg.apache.tomcat.embed:tomcat-embed-jasperindirect
Mavenorg.aspectj:aspectjweaver1.9.1indirect
Mavenorg.codehaus.mojo:exec-maven-plugin3.5.0indirect
Mavenorg.hamcrest:hamcrest-libraryindirect
Mavenorg.hibernate:hibernate-entitymanagerindirect
Mavenorg.jacoco:jacoco-maven-pluginindirect
Mavenorg.javassist:javassistindirect
Mavenorg.javassist:javassist3.31.0-GAindirect
Mavenorg.jetbrains.kotlin:kotlin-maven-pluginindirect
Mavenorg.jetbrains.kotlin:kotlin-test-junit5indirect
Mavenorg.jetbrains.kotlinx:kotlinx-coroutines-jdk8indirect
Mavenorg.jetbrains.kotlinx:kotlinx-serialization-jsonindirect
Mavenorg.junit.jupiter:junit-jupiter-apiindirect
Mavenorg.junit.jupiter:junit-jupiter-engineindirect
Mavenorg.junit.jupiter:junit-jupiter-paramsindirect
Mavenorg.mockito.kotlin:mockito-kotlinindirect
Mavenorg.mockito.kotlin:mockito-kotlin5.4.0indirect
Mavenorg.mockito:mockito-coreindirect
Mavenorg.mockito:mockito-junit-jupiterindirect
Mavenorg.slf4j:slf4j-apiindirect
Mavenorg.sonatype.central:central-publishing-maven-plugin0.9.0indirect
Mavenorg.springframework.boot:spring-boot-devtoolsindirect
Mavenorg.springframework.boot:spring-boot-maven-pluginindirect
Mavenorg.springframework.boot:spring-boot-maven-plugin3.4.1indirect
Mavenorg.springframework.boot:spring-boot-starter-restclient-testindirect
Mavenorg.springframework.boot:spring-boot-starter-testindirect
Mavenorg.springframework.boot:spring-boot-starter-tomcatindirect
Mavenorg.springframework.boot:spring-boot-testindirect
Mavenorg.springframework.data:spring-data-commonsindirect
Mavenorg.springframework.data:spring-data-jpaindirect
Mavenorg.springframework:spring-aopindirect
Mavenorg.springframework:spring-beansindirect
Mavenorg.springframework:spring-contextindirect
Mavenorg.springframework:spring-coreindirect
Mavenorg.springframework:spring-expressionindirect
Mavenorg.springframework:spring-jdbcindirect
Mavenorg.springframework:spring-ormindirect
Mavenorg.springframework:spring-testindirect
Mavenorg.springframework:spring-txindirect
Mavenorg.springframework:spring-webindirect
Mavenorg.springframework:spring-webmvcindirect
Mavenxml-apis:xml-apisindirect
npmaccepts1.3.8indirect
npmarray-flatten1.1.1indirect
npmbody-parser1.20.5indirect
npmbrowser4-cli0.1.5indirect
npmbytes3.1.2indirect
npmcall-bind-apply-helpers1.0.2indirect
npmcall-bound1.0.4indirect
npmcontent-disposition0.5.4indirect
npmcontent-type1.0.5indirect
npmcookie0.7.2indirect
npmcookie-signature1.0.7indirect
npmcors2.8.6indirect
npmdebug2.6.9indirect
npmdepd2.0.0indirect
npmdestroy1.2.0indirect
npmdunder-proto1.0.1indirect
npmee-first1.1.1indirect
npmencodeurl2.0.0indirect
npmes-define-property1.0.1indirect
npmes-errors1.3.0indirect
npmes-object-atoms1.1.2indirect
npmescape-html1.0.3indirect
npmetag1.8.1indirect
npmexpress4.22.2indirect
npmfinalhandler1.3.2indirect
npmforwarded0.2.0indirect
npmfresh0.5.2indirect
npmfunction-bind1.1.2indirect
npmget-intrinsic1.3.0indirect
npmget-proto1.0.1indirect
npmgopd1.2.0indirect
npmhas-symbols1.1.0indirect
npmhasown2.0.4indirect
npmhttp-errors2.0.1indirect
npmiconv-lite0.4.24indirect
npminherits2.0.4indirect
npmipaddr.js1.9.1indirect
npmmath-intrinsics1.1.0indirect
npmmedia-typer0.3.0indirect
npmmerge-descriptors1.0.3indirect
npmmethods1.1.2indirect
npmmime1.6.0indirect
npmmime-db1.52.0indirect
npmmime-types2.1.35indirect
npmms2.0.0indirect
npmms2.1.3indirect
npmnegotiator0.6.3indirect
npmobject-assign4.1.1indirect
npmobject-inspect1.13.4indirect
npmon-finished2.4.1indirect
npmparseurl1.3.3indirect
npmpath-to-regexp0.1.13indirect
npmproxy-addr2.0.7indirect
npmqs6.15.2indirect
npmrange-parser1.2.1indirect
npmraw-body2.5.3indirect
npmsafe-buffer5.2.1indirect
npmsafer-buffer2.1.2indirect
npmsend0.19.2indirect
npmserve-static1.16.3indirect
npmsetprototypeof1.2.0indirect
npmside-channel1.1.1indirect
npmside-channel-list1.0.1indirect
npmside-channel-map1.0.1indirect
npmside-channel-weakmap1.0.2indirect
npmstatuses2.0.2indirect
npmtoidentifier1.0.1indirect
npmtype-is1.6.18indirect
npmunpipe1.0.0indirect
npmutils-merge1.0.1indirect
npmvary1.1.2indirect
PyPIanthropicindirect
PyPImcpindirect
Dependency advisories 4

This repository publishes no package the index resolves, so its own dependency graph was assessed — 387 packages, which also include development and test pins that never ship: 4 carry known advisories, of which 1 are direct. 122 could not be assessed — no resolved version, an unsupported ecosystem, or beyond the reported package list.

PackageVersionRelationSeverityAdvisoriesFixed in
com.fasterxml.jackson.core:jackson-databind2.9.9.3directcritical503.1.4
quinn-proto0.11.14indirecthigh20.11.15
body-parser1.20.5indirectlow12.3.0
anyhow1.0.102indirectunknown11.0.103

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": [
        "agentic-ai",
        "agentic-browser",
        "ai-browser",
        "browser-agent",
        "browser-use-agent",
        "browser-infra"
      ],
      "is_fork": false,
      "size_kb": 75713,
      "has_wiki": true,
      "homepage": "https://browser4.io",
      "languages": {
        "CSS": 46421,
        "Java": 35,
        "Rust": 1772966,
        "Shell": 101026,
        "Kotlin": 4767542,
        "Python": 120927,
        "Dockerfile": 3160,
        "JavaScript": 41650,
        "PowerShell": 1836477,
        "TypeScript": 683,
        "Rich Text Format": 2235
      },
      "pushed_at": "2026-07-25T14:10:28Z",
      "created_at": "2018-03-12T12:00:26Z",
      "owner_type": "User",
      "updated_at": "2026-07-24T23:02:31Z",
      "description": "Browser4: a lightning-fast, coroutine-safe browser for your AI.",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "Apache-2.0",
      "default_branch": "main",
      "license_spdx_raw": "Apache-2.0",
      "primary_language": "Kotlin",
      "significant_languages": [
        "Kotlin",
        "PowerShell",
        "Rust"
      ]
    },
    "owner": {
      "blog": "platon.ai",
      "name": "PlatonAI",
      "type": "User",
      "login": "platonai",
      "company": null,
      "location": "China",
      "followers": 154,
      "avatar_url": "https://avatars.githubusercontent.com/u/37785921?v=4",
      "created_at": "2018-03-26T01:34:39Z",
      "is_verified": null,
      "public_repos": 42,
      "account_age_days": 3043
    },
    "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": "v4.12.0-rc.3",
          "kind": "prerelease",
          "published_at": "2026-07-19T16:27:32Z"
        },
        {
          "tag": "v4.12.0-rc.1",
          "kind": "prerelease",
          "published_at": "2026-07-15T04:06:01Z"
        },
        {
          "tag": "v4.11.22",
          "kind": "patch",
          "published_at": "2026-07-14T07:23:00Z"
        },
        {
          "tag": "v4.11.21",
          "kind": "patch",
          "published_at": "2026-07-12T08:34:44Z"
        },
        {
          "tag": "v4.11.20",
          "kind": "patch",
          "published_at": "2026-07-12T07:56:18Z"
        },
        {
          "tag": "v4.11.19",
          "kind": "patch",
          "published_at": "2026-07-10T10:09:06Z"
        },
        {
          "tag": "v4.11.18",
          "kind": "patch",
          "published_at": "2026-07-08T07:37:53Z"
        },
        {
          "tag": "v4.11.17",
          "kind": "patch",
          "published_at": "2026-07-05T09:03:50Z"
        },
        {
          "tag": "v4.11.15",
          "kind": "patch",
          "published_at": "2026-06-29T06:42:33Z"
        },
        {
          "tag": "v4.11.14",
          "kind": "patch",
          "published_at": "2026-06-28T12:13:31Z"
        },
        {
          "tag": "v4.11.13",
          "kind": "patch",
          "published_at": "2026-06-27T13:07:00Z"
        },
        {
          "tag": "v4.11.12",
          "kind": "patch",
          "published_at": "2026-06-26T21:10:42Z"
        },
        {
          "tag": "v4.11.11",
          "kind": "patch",
          "published_at": "2026-06-24T12:48:41Z"
        },
        {
          "tag": "v4.11.10",
          "kind": "patch",
          "published_at": "2026-06-23T06:34:37Z"
        },
        {
          "tag": "v4.11.9",
          "kind": "patch",
          "published_at": "2026-06-22T17:25:28Z"
        },
        {
          "tag": "v4.11.8",
          "kind": "patch",
          "published_at": "2026-06-21T11:53:09Z"
        },
        {
          "tag": "v4.11.7",
          "kind": "patch",
          "published_at": "2026-06-19T19:59:47Z"
        },
        {
          "tag": "v4.11.6",
          "kind": "patch",
          "published_at": "2026-06-15T13:00:59Z"
        },
        {
          "tag": "v4.11.5",
          "kind": "patch",
          "published_at": "2026-06-14T06:21:33Z"
        },
        {
          "tag": "v4.11.4",
          "kind": "patch",
          "published_at": "2026-06-12T19:25:54Z"
        },
        {
          "tag": "v4.11.3",
          "kind": "patch",
          "published_at": "2026-06-12T08:42:20Z"
        },
        {
          "tag": "v4.11.2",
          "kind": "patch",
          "published_at": "2026-06-11T01:49:59Z"
        },
        {
          "tag": "v4.11.1",
          "kind": "patch",
          "published_at": "2026-06-10T04:42:06Z"
        },
        {
          "tag": "v4.11.0",
          "kind": "minor",
          "published_at": "2026-06-07T14:38:47Z"
        },
        {
          "tag": "v4.10.0",
          "kind": "minor",
          "published_at": "2026-06-06T03:48:08Z"
        },
        {
          "tag": "v4.9.2",
          "kind": "patch",
          "published_at": "2026-05-21T17:21:21Z"
        },
        {
          "tag": "v4.9.1",
          "kind": "patch",
          "published_at": "2026-05-18T07:05:15Z"
        },
        {
          "tag": "v4.8.2",
          "kind": "patch",
          "published_at": "2026-05-10T17:15:15Z"
        },
        {
          "tag": "v4.8.1",
          "kind": "patch",
          "published_at": "2026-05-05T10:09:30Z"
        },
        {
          "tag": "v4.8.0",
          "kind": "minor",
          "published_at": "2026-05-01T14:59:44Z"
        },
        {
          "tag": "v4.7.0",
          "kind": "minor",
          "published_at": "2026-04-19T21:25:41Z"
        },
        {
          "tag": "v4.6.0",
          "kind": "minor",
          "published_at": "2026-04-06T08:44:08Z"
        },
        {
          "tag": "v4.5.0",
          "kind": "minor",
          "published_at": "2026-02-12T02:02:55Z"
        },
        {
          "tag": "v4.4.0",
          "kind": "minor",
          "published_at": "2026-01-13T06:21:54Z"
        },
        {
          "tag": "v4.3.0",
          "kind": "minor",
          "published_at": "2026-01-09T17:29:59Z"
        },
        {
          "tag": "v4.2.0",
          "kind": "minor",
          "published_at": "2026-01-01T07:06:27Z"
        },
        {
          "tag": "v4.1.0",
          "kind": "minor",
          "published_at": "2025-11-25T11:24:01Z"
        },
        {
          "tag": "v4.0.1",
          "kind": "patch",
          "published_at": "2025-10-13T04:09:23Z"
        },
        {
          "tag": "v4.0.0",
          "kind": "major",
          "published_at": "2025-09-12T07:58:56Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "2c3ce18394293ed10a6727944414c1c7f959f49c",
          "body": null,
          "is_bot": false,
          "headline": "Auto-bump versions",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-14T06:47:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "30593e37c7be6ad0581d03ed6cee171528c0ec03",
          "body": "… 4.12.x\n\nFix 1 — mouseWheel: add withTimeout + JS scrollBy fallback\n- Keep CDP Input.dispatchMouseEvent (type wheel) as primary so page\n  listeners receive trusted wheel DOM events.\n- Add withTimeout(wheelTimeout) and JS window.scrollBy() / element.scrollBy()\n  fallbacks so large scrolls don't hang\n[…]\nref→selector, snake→camel,\n  sessionId stripping, modifiers→modifier mappings.\n- MCPToolControllerTest.kt: 7 tests for buildBatchFocusExpression output.\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(server,cli,test): backport press/fill/mouseWheel/batch fixes from…",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-14T05:39:16Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "7504fec79a89fd604dbd8db70efc68b0fc33ab36",
          "body": null,
          "is_bot": false,
          "headline": "chore: ignore .workbuddy/ working directory",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-13T20:46:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "954a3e3115e0a54c0c3a7f88ae1cb1b2fb1b89bc",
          "body": "…SKILL.md with methodology\n\n- Extract the duplicated Windows shell-quoting troubleshooting from SKILL.md into a new references/shell-quoting.md (tier: procedure); keep only the section 5 warning + link in SKILL.md. Resolves the One Fact, One Place violation from methodology.md.\n- Align SKILL.md frontmatter title with its H1 heading.\n- Refine element-ref wording to note the e{backendNodeId} format (verified against Models.kt).\n- SKILL.md: 304 -> 255 lines.",
          "is_bot": false,
          "headline": "docs(skills): consolidate browser4-cli shell-quoting guidance, align …",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-13T20:46:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "04774a1d18d907df958c53a6c9006ff163bcf9b6",
          "body": null,
          "is_bot": false,
          "headline": "Auto-bump versions",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-12T07:57:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9467eab13bb128c256e98e770279ec0a69c7e947",
          "body": "… just strings\n\nbuild_command_args coerces numeric positionals to Value::Number (e.g.\nresize 1280 900 -> w:1280, h:900), but validate_required_args only checked\n.as_str(), so numeric args were falsely rejected as missing.\n\nFixed by matching on all value types: String (non-empty), Number/Bool\n(always present), Array (non-empty).\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(cli): validate_required_args should accept numeric/bool args, not…",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-12T06:14:00Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "fb2503c169d802dc89809cd241cd07c5f8114c76",
          "body": "Revert the package restructure from commit 96044efdb which moved\nclasses to a 4.12-style layout. This layout proved too aggressive\nand can introduce bugs.\n\nPackage changes:\n- ai.platon.browser4.api -> ai.platon.pulsar.browser\n- ai.platon.browser4.api.model -> pulsar.browser.common / pulsar.chrome.do\n[…]\nrome.detail\n- ai.platon.browser4.chrome.protocol -> ai.platon.browser4.chrome.handler\n\nAll 176 browser4-browser tests pass. Full project build succeeds.\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "revert(browser4-browser): rollback package structure to 4.11.x layout",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-12T05:26:40Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "19f88a4605e62342205c471ed5ae9e765c703c47",
          "body": null,
          "is_bot": false,
          "headline": "chore",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-12T02:54:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "731fe8ead2997db9eb4ece2aeef1d76437709bb7",
          "body": "…wser-related classes",
          "is_bot": false,
          "headline": "fix(browser): update imports to use the correct model package for bro…",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-12T01:56:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "04264f43d24d5c706f52116efee860f8a307d89a",
          "body": "…wser-related classes",
          "is_bot": false,
          "headline": "fix(browser): update imports to use the correct model package for bro…",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-12T01:55:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6beccd178a10a126bdbb689d57e2ba34c41773f8",
          "body": "…wser-related classes",
          "is_bot": false,
          "headline": "fix(browser): update imports to use the correct model package for bro…",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-12T01:48:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0abe2bbebb8bada2c585f3d8c0b63ab265193e71",
          "body": "…t line cap to 5000",
          "is_bot": false,
          "headline": "fix(doctor): change log file collection to return empty list and limi…",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-12T01:38:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7bf6de2e8e9e40092eeb1e8e9b1e1bfdd0f60b43",
          "body": "…eturn type in BrowserTabToolExecutor",
          "is_bot": false,
          "headline": "fix(browser): update import for NavigateEntry and ensure consistent r…",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-12T01:31:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dcce30e0cf129a02da77c414e5d53d5d01b7a5ce",
          "body": "…eturn type in BrowserTabToolExecutor",
          "is_bot": false,
          "headline": "fix(browser): update import for NavigateEntry and ensure consistent r…",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-12T01:18:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bdfc21c39f3da0aa9c754f7ef9323d0697409074",
          "body": "…eturn type in BrowserTabToolExecutor",
          "is_bot": false,
          "headline": "fix(browser): update import for NavigateEntry and ensure consistent r…",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-12T01:07:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f3b05f33489ebc6d85266150db31a517f8316215",
          "body": "…ce CLI doctor with log browsing\n\n- Add executeCdpCommand() to WebDriver API for arbitrary Chrome DevTools Protocol commands\n- Implement CDP command execution in PulsarWebDriver and DirectChromeProtocol\n- Add 'cdp' CLI command with JSON params support (--json, --file, --stdin)\n- Add 'doctor-log' CLI\n[…]\nion to doctor command for destructive repairs\n- Update e2e tests for new doctor options count\n- Move completed coworker tasks from 1ready to 6git-pushed\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(agentic,rest,cli): add arbitrary CDP command execution and enhan…",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-12T00:50:30Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "afb9b34720cad5b84618c43e3c365d916cf48ee5",
          "body": null,
          "is_bot": false,
          "headline": "fix(done): add-skills-cli-command",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-11T19:37:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f9425cb9925e6cac06f97d9f3c21816b12261c06",
          "body": null,
          "is_bot": false,
          "headline": "chore",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-11T19:12:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "04f4d6115070a32e85791ac383993eab451f0f5f",
          "body": "…r user data directory",
          "is_bot": false,
          "headline": "fix: replace computeTestContextDir with computeRandomTmpContextDir fo…",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-11T19:03:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "96044efdb73209599e7332d9f70102756f44ebbb",
          "body": "- Move core API interfaces from pulsar.browser to browser4.api\n- Rename chrome/detail → chrome/network\n- Rename chrome/handler → chrome/protocol\n- Create api subpackages: dom, manage, model, scripting, snapshot\n- Add pulsar.browser.Browser/WebDriver compatibility shims\n- Relocate tests to match new package structure\n- All 176 tests pass\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "refactor(browser4-browser): restructure packages to match 4.12 layout",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-11T19:03:34Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "6a20067881978f67f1e2a5a22d69f790d5dfe4c8",
          "body": "…discovery, improved page classification\n\n- agentic: add --wait-selector/--wait-timeout to eval/evaluateValue for\n  React/SPA pages that load content asynchronously\n- rest: autoDiscoverRepeatingSelector now returns ranked DiscoveredSelector\n  list with text-length scoring bonus to avoid nav-<li> bia\n[…]\nps\n- test: update autoDiscoverRepeatingSelector test for new return type\n- coworker: move Use Cases 20/21/23/24 from 1ready to 6git-pushed (review done)\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(agentic,rest,cli): add --wait-selector to eval, ranked selector …",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-11T16:27:30Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "ef5e1fcb786b74cfa8f40cb364e84228f07a9ea8",
          "body": "…g-looking state dir\n\n - PulsarWebDriver: update navigateUrl after redirect so currentUrl() falls\n   back correctly when document.URL is blank (fixes htmlsnapshot 'Nil url'\n   failures after complex redirects)\n - MCPToolController: surface actionable error message for Nil-url failures\n   in html_sna\n[…]\nfacts from being committed\n - coworker: move reviewed use-case issues to done/discard folders, add\n   new review task and competitive-monitoring summary\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: navigateUrl redirect tracking, better nil-url errors, reject fla…",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-11T15:39:55Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "ef0e44ac82c0a3f88ea71b061049779ea1c639ca",
          "body": "…eview, add due-diligence task\n\n- Move Use Case 12 (Due Diligence Automation) review to review/done\n- Complete Use Case 13 (Competitive Monitoring) review: ACCEPT issue 1, DEFER issue 2, DUPLICATE issue 3\n- Add DUPLICATE checkbox option to all Use Case 13 issues missing it\n- Add new main task for due diligence automation\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "chore(coworker): mark Use Case 12 review done, complete Use Case 13 r…",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-11T15:04:12Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "b2409c27098612f106bf15ece2cf623a1be726dd",
          "body": "…reviews done\n\nCLI (browser4-cli):\n- Remove session-scoped alternation conversion warning; conversion is now\n  silent and documented in --help instead.\n- Update snapshot grep help text to document Rust regex syntax (bare |\n  for alternation, -E is accepted but a no-op).\n\nCoworker:\n- Mark Issues 1-5 \n[…]\nX in Use Case 12 review.\n- Move competitive-product-analysis and hiring-market-cross-platform-comparison\n  from 1ready to 6git-pushed (review complete).\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "chore: silence regex alternation warning, update help, mark coworker …",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-11T15:02:01Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "4e7d6aa22a9fee59ccf5fdd9aff2f3ad7ec17fd1",
          "body": "…improve error messages\n\n- feat(agentic): add optional 'submit' param to type/fill — presses Enter after input\n- fix(rest): include cause.message in MCP tool error responses when distinct\n- docs(cli): add category aliases for --help filtering (nav, extract, kb, session, etc.)\n- docs(cli): add Common\n[…]\nlls): add Windows shell quoting troubleshooting guide to browser4-cli SKILL.md\n- chore(coworker): move reviewed issues to done/discard, add 1ready tasks\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(agentic,cli): add submit param to type/fill, overhaul CLI help, …",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-11T14:55:42Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "47a218035b14a1ecb7f7a4f2ff5fd7e69325e9e4",
          "body": "… review SPA\n\nButton visibility for btn-mark-done, btn-ai-review-all, and btn-mode-toggle\nwas only set inside renderAllIssues(). renderSingleIssue() never touched them,\nso after viewing a zero-issue file in 'all' mode (which hid the buttons),\nswitching to a file with issues in single mode left them \n[…]\n hidden.\n\nCentralize the button show/hide logic in renderReview() so both rendering\nmodes get consistent visibility based on state.parsed.issues.length.\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(coworker): Mark Done button disappearing after switching files in…",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-11T14:53:25Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "c8fd539f475c8048bc44ba9aca3c5095c9ad41b0",
          "body": "- MCPToolController: add actionable guidance in error responses when\n  htmlsnapshot get/all fails (suggest goto <url> first, then htmlsnapshot)\n- CLI: translate backend htmlsnapshot errors into user-friendly messages\n  with a tip to run  first\n- SKILL.md: document  flag for inline snapshot viewing\n- coworker: move reviewed issues to done/discard, add new review task",
          "is_bot": false,
          "headline": "fix(htmlsnapshot): improve error messages for  and  endpoints",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-11T14:39:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bbb62dae9c254bf9dc64936ac0fc149ab72e610f",
          "body": "…essages\n\n- BrowserTabToolExecutorTest: 3 new tests verifying awaitPromise flows through\n  eval/evaluateValue to the two-arg evaluateValueDetail overload\n- MCPToolControllerTest: 4 new tests for awaitPromise pass-through, error\n  message formatting, 'not focusable' tip inclusion, and tip exclusion\n-\n[…]\new Extended scenario testing Promise\n  resolution via eval --await in a live browser\n\nAll 69 Kotlin + 8 Rust unit tests pass. E2E tests compile cleanly.\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "test: add unit + e2e tests for awaitPromise eval and improved error m…",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-11T13:38:47Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "7ffa98d91aa37a7199805dbb2a40cd105e7a68d7",
          "body": "…ved error messages\n\n- Add awaitPromise parameter to evaluateValueDetail across the stack\n  (WebDriver interface, PulsarWebDriver, JsHandler, BrowserTabToolExecutor)\n- Wire --await CLI flag to awaitPromise for eval command in commands.rs\n- Enhance MCPToolController error responses to include cause m\n[…]\nnnection message to show session name and current page\n- Add eval --await and fill/click tips in tips.rs\n- Move completed issue to 6git-pushed directory\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(agentic,cli): add awaitPromise support for async JS eval + impro…",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-11T11:50:12Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "e6ce151db2d01dbffc586d28098e72bcdbca9223",
          "body": "Replace all file-content timestamps with OffsetDateTime format\n(yyyy-MM-ddTHH:mm:sszzz, e.g. 2026-07-11T19:32:00+08:00).\n\n- Add Get-CoworkerTimestamp helper to config.ps1\n- Update all PS scripts: Logging, Locks, task-logger, scheduler,\n  fetch/triage-github, organize-task-files, update-readmes,\n  me\n[…]\nhon (organize.py): isoformat(timespec='seconds')\n- Filename timestamps (yyyyMMdd-HHmmss) left unchanged — compact\n  format is correct for filesystem use\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(coworker): standardize datetime format to OffsetDateTime",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-11T11:44:11Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "3692729ca386724d189b213c90cce3f62b87809e",
          "body": "…support\n\nMCP auto-discover selector (MCPToolController.kt):\n- Add chrome penalty (×0.3) for patterns inside nav/header/footer/aside\n  or elements with ARIA navigation/banner/contentinfo/complementary roles\n- Add viewport position weighting: boost prime content band 100-800px\n  (×1.3), penalize deep\n[…]\nry visual-clustering path\n\nTask management:\n- Move completed issue reviews to review/done\n- Add task files for e-commerce and crawl-link-discovery tasks\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: improve auto-discover selector scoring + enable snapshot batch …",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-11T11:35:33Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "e5778a96c6a01105796d1d1d4691267fb211524c",
          "body": null,
          "is_bot": false,
          "headline": "fix(done): crawl-link-discovery-review",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-11T09:30:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e92976aa07a20a30e1dbccefa4c449fbefdd3a65",
          "body": "…worker.ps1",
          "is_bot": false,
          "headline": "fix(docs): update instructions for handling ACCEPT state issues in co…",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-11T09:20:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ff79e4d23fa1395c5bd77cd0b3416509e61ff705",
          "body": null,
          "is_bot": false,
          "headline": "fix(done): crawl-link-discovery",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-11T09:14:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7892219e8c8ffd923e2a516d003ccaed6707f006",
          "body": "- Move crawl-link-discovery review to done (marked DUPLICATE)\n- Remove stale review files (html-snapshot-extraction reviewed/merged)\n- Add fix-crawl-link-discovery-issues task for 6git-pushed\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "chore: finalize crawl-link-discovery review, add fix task",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-11T08:49:53Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "f5c72d6178a1ce3a768e1fd09769e38d68823b7b",
          "body": null,
          "is_bot": false,
          "headline": "remove stale files",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-11T08:16:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a78f7d38b3fb48b39058ddfb3ab2a3fd963e98d9",
          "body": "…ME files",
          "is_bot": false,
          "headline": "fix(docs): clarify installation instructions for browser4-cli in READ…",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-11T07:57:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "58fe69b2ff08a1188074c71f798c8f445f4c5866",
          "body": "- Move Use Case 6 issues to review/done\n- Add ecommerce category deep analysis task to main/6git-pushed\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "add review done and pushed task files",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-11T06:49:28Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "38a56f72354ecddaee993bfa2252b3b3817c31e3",
          "body": null,
          "is_bot": false,
          "headline": "add issue review tasks tested and generated in 2026/07/10",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-11T06:42:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b2d9724bf100716891a82ee9b12274cc41bc86d6",
          "body": null,
          "is_bot": false,
          "headline": "remove stale files",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-11T06:11:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1ea13c0f37800d551e15462a328af4491f5efe2f",
          "body": null,
          "is_bot": false,
          "headline": "Auto-bump versions",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-11T05:55:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8564463b1e856525f67488e08e09cec29d11cd08",
          "body": "…er creation",
          "is_bot": false,
          "headline": "fix(BrowserToolExecutor): update newTab to navigate to URL after driv…",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-11T05:42:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f368fdaf828417502bf73172b83c7088eec023a1",
          "body": null,
          "is_bot": false,
          "headline": "test report 2026/07/10",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-11T05:41:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "80473ab674c2ecd87d698063496e7e1568ed28b6",
          "body": null,
          "is_bot": false,
          "headline": "test report 2026/07/10",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-11T05:36:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c5ed86b50eb15ca7c2938109da3b8509a6a1a7a1",
          "body": "- Simplify Quick Start to plain text instruction block\n- Regenerate README.zh.md from current README.md\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: update Quick Start section and sync Chinese translation",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-10T10:37:25Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "e8d2bd01c74731475349fb10aba76180daedd9bd",
          "body": null,
          "is_bot": false,
          "headline": "fix(test): correct issue file location",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-10T09:45:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "32f20f5b8431dfdfbf407854e56560c50addd7a4",
          "body": null,
          "is_bot": false,
          "headline": "Auto-bump versions",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-10T09:32:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "105166b8e516e2c986f37b898f9d7625da254e83",
          "body": "Match the documented behavior in the README. Both Restore-OrphanedWorkingFiles\nfunctions (refine-drafts.ps1, refine-github-issues.ps1) now use 120 minutes.\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(coworker): extend orphan recovery timeout from 30 min to 2 hours",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-10T09:25:55Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "3ddd2ea1e432f316d05c97b7330e0fcd4575e1b3",
          "body": "The health check polled /api/issue-review/health every 30s and\ndisplayed an LLM status chip (ready/offline/paused).  This is\nunnecessary noise in the toolbar — the server already handles\ndegradation via circuit breaker and heuristic fallback.\n\nRemoves: checkLlmHealth(), updateAiButtonStates(), llmHealthy var,\nthe llm-chip span, and the 30s polling interval.\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "refactor(review-spa): remove LLM health check polling from UI",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-10T08:42:38Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "8556803041e4cc67ef93cfc56155a201122a86eb",
          "body": "Co-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "chore: move snapshot-mastery issues to done and 6git-pushed",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-10T08:41:51Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "170f63375ff592fffa87ac6bd977b93ae6787ddf",
          "body": "…cision panel\n\nConsolidate the review workflow by moving prev/next issue and\nprev/next file navigation, issue counter, progress bar, and save\nbutton from separate top and bottom nav bars into the floating\nreview decision panel.  This keeps everything the reviewer needs\n— decision buttons, notes, AI review, and navigation — in one\ndraggable panel.\n\nRemoves ~40 lines of fixed nav bar HTML/CSS, replaces with a\ncompact nav row inside the float panel.\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "refactor(review-spa): move prev/next navigation to floating review de…",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-10T08:40:21Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "c90042e651b2b569f975745161386a3c4a30fee6",
          "body": "Co-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "chore: remove stale refine/0ready files",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-10T07:13:39Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "019e3ecfa1952482f7f9172a07188bd6eb24e9c5",
          "body": "Tests cover:\n- _buildArgs: null prompt returns base args + -p (no prompt text),\n  provided prompt includes text (backward compat for short prompts)\n- _writePromptFile: writes to temp file, preserves content including\n  multiline special chars, 100KB+ prompts, empty prompts, unique filenames\n- PROVID\n[…]\ne correct\n- heuristicDecision: rules work correctly when review history is present\n\nAlso export _buildArgs and _writePromptFile from llm.js for testing.\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "test(llm): add unit tests for stdin-based prompt file invocation",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-10T07:13:15Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "0fa34d481b24eb5e5a3e865741c5deabd826167c",
          "body": "…onal arg\n\nPreviously, _invoke() passed the full prompt text as a positional CLI\nargument (claude -p \"long prompt...\").  This hits command-line length\nlimits on Windows and causes escaping issues with special characters,\nnewlines, and quotes.\n\nNow _invoke() writes the prompt to a temp file and pipes\n[…]\nn,\nkeeping -p (--print mode) for non-interactive output.  Short prompts in\n_preWarm() and checkHealth() ('say ok') continue to use the -p flag\ndirectly.\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(llm): pass long prompts via stdin temp file instead of CLI positi…",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-10T07:10:59Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "f8324201aff858d7d3457b9c4800303eea63830e",
          "body": null,
          "is_bot": false,
          "headline": "fix(done): crawl-link-discovery",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-10T06:40:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8f70c9b02311c7ffff8dfbe212995177dd768220",
          "body": null,
          "is_bot": false,
          "headline": "fix(done): 20260709-222157-htmlsnapshot-inspect-discovery.issues",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-10T06:34:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "339768296966657fab5588c05811f18d2715b738",
          "body": null,
          "is_bot": false,
          "headline": "fix(done): 20260709-221858-hacker-news.issues",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-10T06:34:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8b938b3f328c668c921165230842d556b1578fe4",
          "body": null,
          "is_bot": false,
          "headline": "fix(test): move test files to test directory",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-10T06:33:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6367a99a4bafa98757fd7b0338fa2dc2223d2e29",
          "body": "Resolve-Path throws on wildcard patterns that match multiple items\nor on malformed paths. Catch the error and exit with a clear message\ninstead of letting the raw exception crash the script.\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(coworker): wrap Resolve-Path in try/catch for invalid TaskFile paths",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-10T06:23:43Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "afb11a5713223d5172fe2afa1407f4c62f5653be",
          "body": "Replace flat 2-second sleeps with `[Math]::Pow(2, $retryCount)`,\nwhich yields 2s, 4s between the three attempts (max 6s total wait\nvs. the previous 4s). Gives transient failures more breathing room\nbefore giving up.\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(coworker): use exponential backoff in rename retry loop",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-10T06:23:20Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "3b28d4e90013999f246f9fef7d824dee6d86e010",
          "body": "…discarding\n\nPreviously `2>$null` silently discarded all error output from the\nmemory-context script, making failures undiagnosable. Redirect stderr\nto a dated temp file and log its content as a WARN when the script\nproduces no stdout — giving the operator a clue instead of silently\nreturning empty context.\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(coworker): capture memory-context stderr to temp file instead of …",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-10T06:22:50Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "75b4ff7d0179fcc34bab680a1e966d1dc3d414c9",
          "body": "If another process moves or deletes the renamed file between the\nMove-Item and the Get-Item that refreshes the  reference, the\nscript crashes. Wrap in try/catch with a [SKIP] warning and continue.\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(coworker): guard Get-Item after rename against file-vanished race",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-10T06:22:09Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "67d4e3629235f1c344fe053fb9f21005c2dbd99c",
          "body": "The date parts (, , , )\nwere computed both before and inside the taskRoot foreach loop with\nidentical values.  was also created twice. Moved the\nsingle computation to the top (before the loop), added\nthere, and removed both inner duplicates.\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "refactor(coworker): deduplicate date calculations and log-dir creation",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-10T06:21:45Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "07c85cc83a72f9df2c8a73ab270ab8f8d2aceac2",
          "body": "The three Get-Content calls that run after the agent process exits\n(remaining stdout, stderr display, and agent-log append) had no\nerror handling — a transient file lock would crash the task loop.\nEach is now wrapped in try/catch with appropriate WARN / VERBOSE\nlogging so the task can finish gracefully.\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(coworker): wrap post-process Get-Content calls in try/catch",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-10T06:20:50Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "f758af52cf075aaf85c7561f25cd6dbbaf51a7e8",
          "body": "The empty catch block in the agent stdout-monitoring loop silently\ndiscarded transient file-lock failures. Log them at VERBOSE level so\nthe operator can tell whether the agent is producing output or the\nmonitor is starved. Also replaced the wasteful  truthiness\ncheck with .\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(coworker): log stdout-monitor file-lock errors instead of swallowing",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-10T06:20:18Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "e7bf3dc36703279c4cafd84ab6882e912d5b3ce2",
          "body": "…tion",
          "is_bot": false,
          "headline": "fix(cli): update task identifiers and enhance snapshot help documenta…",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-10T06:17:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c9a1daeb881158a46777e3dae1b11c9c846d9459",
          "body": "Replace inline .single-review-block in single-issue mode with a\nfixed-position floating panel that can be dragged by its header,\nresized via a bottom-right handle, and dismissed with a close button.\nPosition and size persist across page reloads via localStorage.\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(gui): floating draggable resizable Review Decision panel",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-10T06:16:12Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "c4f4d96a15c4a9e280a7f577f1c7da9c81332655",
          "body": null,
          "is_bot": false,
          "headline": "fix(done): crawl-link-discovery-review",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-10T06:04:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6a5382e41da6e8c0a86e41cf29f251118f47ef83",
          "body": "The keyboard shortcut Shift+Ctrl+M calls markAllDone() (directory-wide),\nbut the hint was displayed on the single-file Mark Done button. Move it\nto the All Done button so the hint matches actual behavior.\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(gui): move Shift+Ctrl+M hint from Mark Done to All Done button",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-10T05:58:59Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "1182948cbeb6d4d1406d505789292e166c39fa62",
          "body": "On Windows, the npm-installed 'claude' CLI is a Unix shell script\nthat CreateProcess cannot execute directly. With shell: true, cmd.exe\nresolves PATHEXT correctly and launches the .cmd wrapper, which in\nturn invokes the real claude.exe.\n\nWithout this, every execFile('claude', ...) call fails silently and\nthe issue-review SPA shows 'LLM offline' permanently.\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(coworker): enable shell: true for LLM execFile on Windows",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-10T05:37:39Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "cbc386a3e5720fe27c5724651a52e58cb0fb8d65",
          "body": null,
          "is_bot": false,
          "headline": "remove stale files",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-10T05:20:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6eabc7eac36da59634a45331657a9333b4658659",
          "body": "- Update crawl-results.csv and extract-products.sql\n- Add evaluation reports (htmlsnapshot, viewport-pdf)\n- Add SQL queries (comprehensive, books, test, query)\n- Add crawl-results.json and python-extract-schema.json\n- Move issue reviews to done/discard and add new review drafts\n- Update seed-urls and attached-state\n- Remove page_info.js\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "chore: update project files, queries, and evaluation reports",
          "author_name": "galaxyeye",
          "author_login": "galaxyeye",
          "committed_at": "2026-07-10T04:54:31Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "4b64568d3b8a0f42405abef6800b0560781d6a16",
          "body": "…ures\n\n- B4ProjectUtils: add maxDepth, .use{} stream closure, and try-catch\n  to all three Files.walk calls (max depth 5-20) to prevent walking\n  into deeply nested target/ directories in CI environments\n- B4LLMUtils: catch exceptions in copySourceFileAsResource and\n  readSourceFileFromResource, log\n[…]\nermanently poison the JVM state\n- AgentToolExecutor: call generateAllOnce() in init to match\n  BrowserTabToolExecutor pattern and avoid empty tool specs\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: harden resource loading and tool spec generation against CI fail…",
          "author_name": "platon.AI",
          "author_login": "insidegalaxyeye",
          "committed_at": "2026-07-10T04:14:58Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "5764b6fda04fde41077415859a83f84afd392ddc",
          "body": "- Move coworker/tasks/200issues/draft/2026/0709/ → coworker/tasks/issues/draft/2026/0709/\n- Move skills/task-token-usage and skills/organize-task-files → coworker/skills/\n- Update all references in scripts, docs, and task content files\n- Fix organize.py BASE_DIR calculation for new location",
          "is_bot": false,
          "headline": "chore: rename 200issues to issues, move coworker skills under coworker/",
          "author_name": "galaxyeye",
          "author_login": "galaxyeye",
          "committed_at": "2026-07-10T03:23:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6c1dd91b9068d9403af869f5c623559b21709274",
          "body": null,
          "is_bot": false,
          "headline": "fix(done): hacker-news",
          "author_name": "galaxyeye",
          "author_login": "galaxyeye",
          "committed_at": "2026-07-09T09:45:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2a072cf026afd7a179b6c7059a00adf65894d168",
          "body": null,
          "is_bot": false,
          "headline": "fix(done): crawl-link-discovery",
          "author_name": "galaxyeye",
          "author_login": "galaxyeye",
          "committed_at": "2026-07-09T09:44:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9a30d4c10fbdc8ff1ff4694ac39d74da411017c1",
          "body": null,
          "is_bot": false,
          "headline": "fix(done): attach-remote-debug",
          "author_name": "galaxyeye",
          "author_login": "galaxyeye",
          "committed_at": "2026-07-09T09:37:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "016248bb2c60f7228192cff75cc9dd0791f4d1d0",
          "body": null,
          "is_bot": false,
          "headline": "fix(done): advanced-mouse-interaction",
          "author_name": "galaxyeye",
          "author_login": "galaxyeye",
          "committed_at": "2026-07-09T09:36:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6b3de64b766ccc875319e9f3a9b0dc2953b19970",
          "body": null,
          "is_bot": false,
          "headline": "fix(done): Something-else",
          "author_name": "galaxyeye",
          "author_login": "galaxyeye",
          "committed_at": "2026-07-09T09:29:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cc72446dcf3e619b788ca69bf40bc9e8ffeaf558",
          "body": null,
          "is_bot": false,
          "headline": "fix(done): Just-let-me-know-what-you-have-in-mind-and-I-ll-get-started",
          "author_name": "galaxyeye",
          "author_login": "galaxyeye",
          "committed_at": "2026-07-09T09:28:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6bf3e6ed3bc6200c6a12549d9d91b9454cf68403",
          "body": null,
          "is_bot": false,
          "headline": "fix(done): Just-let-me-know-what-you-have-in-mind-and-I-ll-get-started",
          "author_name": "galaxyeye",
          "author_login": "galaxyeye",
          "committed_at": "2026-07-09T09:28:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d09b0f00d6af5796c4286db34988b1eb97b22a23",
          "body": null,
          "is_bot": false,
          "headline": "fix(done): Something-else-entirely-just-let-me-know-what-you-have-in-mi",
          "author_name": "galaxyeye",
          "author_login": "galaxyeye",
          "committed_at": "2026-07-09T09:28:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7f7dbb5462816edbd1e28da0010cb08d2f7d671f",
          "body": null,
          "is_bot": false,
          "headline": "fix(done): What-are-you-looking-to-create",
          "author_name": "galaxyeye",
          "author_login": "galaxyeye",
          "committed_at": "2026-07-09T09:27:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "017fe9ccb970cbcc696c1ad59b2ab0d0e81c7d75",
          "body": null,
          "is_bot": false,
          "headline": "fix(done): What-are-you-looking-to-make",
          "author_name": "galaxyeye",
          "author_login": "galaxyeye",
          "committed_at": "2026-07-09T09:27:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ab5298c774f21e49cd3df40287c889343b42ecf0",
          "body": null,
          "is_bot": false,
          "headline": "fix(done): What-are-you-looking-to-make",
          "author_name": "galaxyeye",
          "author_login": "galaxyeye",
          "committed_at": "2026-07-09T09:27:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c57f3f70e0dfaf2375c38a27b1f1a979db5e40ec",
          "body": null,
          "is_bot": false,
          "headline": "fix(done): Let-me-know-and-I-ll-get-started",
          "author_name": "galaxyeye",
          "author_login": "galaxyeye",
          "committed_at": "2026-07-09T09:27:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ee41c233005c908b55eb17ec3c4b372c50731fc8",
          "body": null,
          "is_bot": false,
          "headline": "fix(done): What-are-you-looking-to-create",
          "author_name": "galaxyeye",
          "author_login": "galaxyeye",
          "committed_at": "2026-07-09T09:27:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "eeb0a9b0cd463d9fce64d60f2e9ca2ddb22230f3",
          "body": null,
          "is_bot": false,
          "headline": "fix(done): 20260708-164841-attach-remote-debug.issues",
          "author_name": "galaxyeye",
          "author_login": "galaxyeye",
          "committed_at": "2026-07-09T09:26:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f49dff9290198338ae22fdcbeb3323d96081bfab",
          "body": null,
          "is_bot": false,
          "headline": "fix(done): 20260708-164441-amazon.issues",
          "author_name": "galaxyeye",
          "author_login": "galaxyeye",
          "committed_at": "2026-07-09T09:26:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cb9795c3aee8b991a1a13f5ac32e3737f5db1cd1",
          "body": null,
          "is_bot": false,
          "headline": "fix(done): Please-provide-more-details-and-I-ll-get-started",
          "author_name": "galaxyeye",
          "author_login": "galaxyeye",
          "committed_at": "2026-07-09T09:26:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "66ba317f2b0417ee916774bf0ca295a99ea4bdb6",
          "body": null,
          "is_bot": false,
          "headline": "fix(done): Something-else-entirely",
          "author_name": "galaxyeye",
          "author_login": "galaxyeye",
          "committed_at": "2026-07-09T09:26:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "661522868b66e73e151f072fbc9dbe9c77208b16",
          "body": null,
          "is_bot": false,
          "headline": "fix(done): 20260708-184937-javascript-evaluation.issues",
          "author_name": "galaxyeye",
          "author_login": "galaxyeye",
          "committed_at": "2026-07-09T09:15:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9121456fe9f872694a0a538fd2b602666e129d52",
          "body": "…r directory filtering\n\nAfter stripping the issues/review/ prefix, the directory is a substring\nof the full file path, not a prefix. Changed indexOf checks from ===0\nto >=0 in triggerAiReviewDirectory(), markAllDone(), and zero-issue\ncounting.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(gui): use substring match (>=0) instead of prefix match (===0) fo…",
          "author_name": "galaxyeye",
          "author_login": "galaxyeye",
          "committed_at": "2026-07-09T09:13:58Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "f43cdf8372c5d0ae84c57f1f1a1247264f2ef33e",
          "body": null,
          "is_bot": false,
          "headline": "fix(done): 20260708-184937-javascript-evaluation.issues",
          "author_name": "galaxyeye",
          "author_login": "galaxyeye",
          "committed_at": "2026-07-09T09:07:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d1f93f5d3175ce40f5d0a1f8eb985a116c6b10b9",
          "body": "The frontend was sending the full path (issues/review/2026/0708) as\nthe directory parameter, but the server joins that with the review\nroot, resulting in a doubled path. Fixed extractDirectory() to strip\nthe issues/review/ prefix before extracting the parent directory.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(gui): strip issues/review/ prefix when extracting directory",
          "author_name": "galaxyeye",
          "author_login": "galaxyeye",
          "committed_at": "2026-07-09T09:05:35Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "5a7b40b6bc9273158802fd7d169ec069f6ca2cd2",
          "body": "- Frontend markDone: refuses with error toast, tells user to discard instead\n- Frontend markAllDone: auto-discards zero-issue files (moves to done/discard)\n- Frontend: hides Mark Done/AI Review buttons for zero-issue files,\n  shows prominent 'discard this file' guidance\n- Server mark-done: rejects w\n[…]\nFound (0)' summary\n  instead of raw content for zero-issue files\n- Fix server.js iss.reviewDecision -> iss.review.decision (missed in refactor)\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(gui): prevent zero-issue files from entering ready queue",
          "author_name": "galaxyeye",
          "author_login": "galaxyeye",
          "committed_at": "2026-07-09T08:59:55Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "0de0611d32a57aedad13e3787c6e76ca2c1acacd",
          "body": "The AI reasoning card wasn't appearing because the regex-based extraction\nfrom notes was fragile. Fixed by storing AI reasoning as a separate\nin-memory field (issue._aiReasoning) when the AI reviews an issue.\n\n- getAiReasoning(issue) replaces extractAiReasoning(notes)\n  - First checks issue._aiReaso\n[…]\ns (single, batch, directory)\n- Removed ^ anchor from regex to handle any leading whitespace\n- Directory review syncs _aiReasoning to live state\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(gui): store AI reasoning as dedicated field, fix invisible card",
          "author_name": "galaxyeye",
          "author_login": "galaxyeye",
          "committed_at": "2026-07-09T08:11:18Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "0505dd769fdfe75cbc99d139a61048f934a320fc",
          "body": "- Increase textarea min-height: 48px->80px (all-issues), 56px->100px (single-issue)\n- Add line-height: 1.5 for better readability\n- Move AI reasoning card from above textarea to below it\n- Move callout below textarea\n- Textarea is now the first editable element after decision buttons,\n  with AI rati\n[…]\nd] [textarea + button] [callout]\nLayout after:  [textarea + button]\n               [AI reasoning card]\n               [callout (if non-ACCEPT)]\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "refactor(gui): bigger textarea, move AI reasoning below it",
          "author_name": "galaxyeye",
          "author_login": "galaxyeye",
          "committed_at": "2026-07-09T08:05:19Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "710ce370ac3c492a189d01ffcc9d707175e34b25",
          "body": "- Single-issue AI review: await saveReview({silent:true}) immediately\n  instead of relying on 2-second auto-save timer\n- Batch AI review (all in file): same immediate save\n- Directory AI review: save EACH file to disk via\n  ISSUE_MODEL.reconstructMarkdown() + apiPost as it's processed\n  (previously \n[…]\n before 2-second auto-save timer fires\n  2. Server crash between AI review and auto-save\n  3. Directory review only persisted the selected file\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(gui): force immediate save after AI review, fix data loss bugs",
          "author_name": "galaxyeye",
          "author_login": "galaxyeye",
          "committed_at": "2026-07-09T07:56:18Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "45dcf9e72da86071a690e847dd3070d11032c95b",
          "body": "Extract the AI's rationale from the [AI suggested: DECISION] prefix and\ndisplay it in a styled accent-bordered card above the editable notes\ntextarea. Works in both single-issue and all-issues views, for both\nACCEPT and non-ACCEPT decisions.\n\n- extractAiReasoning(notes) — parses decision + reasoning\n[…]\ne\n\nBefore: reasoning was only visible inside the textarea (easily missed)\nAfter: 🤖 AI Reasoning → REJECT card displayed prominently above notes\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(gui): show AI reasoning prominently above notes textarea",
          "author_name": "galaxyeye",
          "author_login": "galaxyeye",
          "committed_at": "2026-07-09T07:51:41Z",
          "body_truncated": true,
          "is_coding_agent": true
        }
      ],
      "releases_count": 39,
      "commits_last_year": 5042,
      "latest_release_at": "2026-07-19T16:27:32Z",
      "latest_release_tag": "v4.12.0-rc.3",
      "releases_from_tags": false,
      "days_since_last_push": 0,
      "active_weeks_last_year": 45,
      "days_since_latest_release": 5,
      "mean_days_between_releases": 2.4
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": false,
      "health_percentage": 42,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": false
    },
    "ecosystem": {
      "packages": [
        {
          "name": "browser4-cli",
          "exists": true,
          "license": "Apache-2.0",
          "keywords": [
            "browser",
            "browser4",
            "browser4-cli",
            "automation",
            "headless",
            "chrome",
            "cdp",
            "cli",
            "agent"
          ],
          "ecosystem": "npm",
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/browser4-cli",
          "is_deprecated": false,
          "latest_version": "0.1.32",
          "repository_url": "https://github.com/platonai/Browser4",
          "versions_count": 33,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 1,
          "monthly_downloads": 3322,
          "first_published_at": "2026-05-11T02:11:05.182000Z",
          "latest_published_at": "2026-07-14T07:08:56.103000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 11
        }
      ]
    },
    "popularity": {
      "forks": 145,
      "stars": 1093,
      "watchers": 19,
      "fork_history": {
        "days": [
          {
            "date": "2018-04-10",
            "count": 2
          },
          {
            "date": "2018-04-25",
            "count": 1
          },
          {
            "date": "2018-12-16",
            "count": 1
          },
          {
            "date": "2018-12-22",
            "count": 1
          },
          {
            "date": "2019-01-15",
            "count": 3
          },
          {
            "date": "2019-01-16",
            "count": 3
          },
          {
            "date": "2019-02-24",
            "count": 1
          },
          {
            "date": "2019-06-07",
            "count": 1
          },
          {
            "date": "2019-06-13",
            "count": 1
          },
          {
            "date": "2019-06-14",
            "count": 1
          },
          {
            "date": "2019-07-05",
            "count": 1
          },
          {
            "date": "2019-07-23",
            "count": 1
          },
          {
            "date": "2019-08-10",
            "count": 1
          },
          {
            "date": "2019-09-14",
            "count": 1
          },
          {
            "date": "2019-11-01",
            "count": 1
          },
          {
            "date": "2019-12-16",
            "count": 1
          },
          {
            "date": "2020-02-05",
            "count": 1
          },
          {
            "date": "2020-03-19",
            "count": 1
          },
          {
            "date": "2020-06-10",
            "count": 1
          },
          {
            "date": "2022-04-13",
            "count": 1
          },
          {
            "date": "2022-07-04",
            "count": 1
          },
          {
            "date": "2022-08-15",
            "count": 1
          },
          {
            "date": "2022-09-26",
            "count": 1
          },
          {
            "date": "2022-11-11",
            "count": 1
          },
          {
            "date": "2022-11-20",
            "count": 1
          },
          {
            "date": "2022-11-22",
            "count": 1
          },
          {
            "date": "2022-12-19",
            "count": 1
          },
          {
            "date": "2023-01-06",
            "count": 1
          },
          {
            "date": "2023-02-09",
            "count": 1
          },
          {
            "date": "2023-02-15",
            "count": 1
          },
          {
            "date": "2023-02-21",
            "count": 1
          },
          {
            "date": "2023-02-22",
            "count": 1
          },
          {
            "date": "2023-03-17",
            "count": 1
          },
          {
            "date": "2023-03-24",
            "count": 1
          },
          {
            "date": "2023-04-19",
            "count": 1
          },
          {
            "date": "2023-04-25",
            "count": 1
          },
          {
            "date": "2023-05-04",
            "count": 1
          },
          {
            "date": "2023-05-15",
            "count": 1
          },
          {
            "date": "2023-05-22",
            "count": 1
          },
          {
            "date": "2023-05-23",
            "count": 1
          },
          {
            "date": "2023-05-25",
            "count": 1
          },
          {
            "date": "2023-06-07",
            "count": 1
          },
          {
            "date": "2023-06-12",
            "count": 1
          },
          {
            "date": "2023-06-23",
            "count": 2
          },
          {
            "date": "2023-06-25",
            "count": 1
          },
          {
            "date": "2023-08-31",
            "count": 1
          },
          {
            "date": "2023-09-05",
            "count": 1
          },
          {
            "date": "2023-09-21",
            "count": 1
          },
          {
            "date": "2023-10-13",
            "count": 1
          },
          {
            "date": "2023-10-24",
            "count": 1
          },
          {
            "date": "2023-10-25",
            "count": 1
          },
          {
            "date": "2023-10-27",
            "count": 1
          },
          {
            "date": "2023-10-30",
            "count": 1
          },
          {
            "date": "2023-11-09",
            "count": 2
          },
          {
            "date": "2023-11-21",
            "count": 1
          },
          {
            "date": "2023-11-24",
            "count": 1
          },
          {
            "date": "2023-12-13",
            "count": 1
          },
          {
            "date": "2023-12-15",
            "count": 1
          },
          {
            "date": "2023-12-21",
            "count": 1
          },
          {
            "date": "2024-01-13",
            "count": 1
          },
          {
            "date": "2024-01-15",
            "count": 1
          },
          {
            "date": "2024-01-23",
            "count": 1
          },
          {
            "date": "2024-02-17",
            "count": 1
          },
          {
            "date": "2024-02-25",
            "count": 1
          },
          {
            "date": "2024-02-26",
            "count": 5
          },
          {
            "date": "2024-02-27",
            "count": 2
          },
          {
            "date": "2024-02-28",
            "count": 2
          },
          {
            "date": "2024-02-29",
            "count": 1
          },
          {
            "date": "2024-03-02",
            "count": 1
          },
          {
            "date": "2024-03-05",
            "count": 1
          },
          {
            "date": "2024-03-09",
            "count": 1
          },
          {
            "date": "2024-03-13",
            "count": 1
          },
          {
            "date": "2024-03-14",
            "count": 1
          },
          {
            "date": "2024-03-16",
            "count": 1
          },
          {
            "date": "2024-04-10",
            "count": 1
          },
          {
            "date": "2024-04-13",
            "count": 1
          },
          {
            "date": "2024-04-15",
            "count": 1
          },
          {
            "date": "2024-04-23",
            "count": 1
          },
          {
            "date": "2024-04-25",
            "count": 1
          },
          {
            "date": "2024-05-10",
            "count": 1
          },
          {
            "date": "2024-05-16",
            "count": 1
          },
          {
            "date": "2024-05-20",
            "count": 1
          },
          {
            "date": "2024-05-27",
            "count": 1
          },
          {
            "date": "2024-06-05",
            "count": 1
          },
          {
            "date": "2024-06-13",
            "count": 1
          },
          {
            "date": "2024-06-15",
            "count": 1
          },
          {
            "date": "2024-06-23",
            "count": 1
          },
          {
            "date": "2024-06-28",
            "count": 1
          },
          {
            "date": "2024-07-14",
            "count": 1
          },
          {
            "date": "2024-07-15",
            "count": 1
          },
          {
            "date": "2024-07-27",
            "count": 1
          },
          {
            "date": "2024-07-31",
            "count": 1
          },
          {
            "date": "2024-08-22",
            "count": 1
          },
          {
            "date": "2024-09-01",
            "count": 1
          },
          {
            "date": "2024-10-18",
            "count": 1
          },
          {
            "date": "2024-10-28",
            "count": 1
          },
          {
            "date": "2024-11-19",
            "count": 1
          },
          {
            "date": "2024-12-16",
            "count": 1
          },
          {
            "date": "2025-02-05",
            "count": 1
          },
          {
            "date": "2025-03-06",
            "count": 1
          },
          {
            "date": "2025-03-08",
            "count": 1
          },
          {
            "date": "2025-03-13",
            "count": 1
          },
          {
            "date": "2025-04-02",
            "count": 1
          },
          {
            "date": "2025-04-07",
            "count": 1
          },
          {
            "date": "2025-04-12",
            "count": 1
          },
          {
            "date": "2025-05-16",
            "count": 1
          },
          {
            "date": "2025-05-21",
            "count": 1
          },
          {
            "date": "2025-05-27",
            "count": 1
          },
          {
            "date": "2025-07-01",
            "count": 1
          },
          {
            "date": "2025-07-23",
            "count": 1
          },
          {
            "date": "2025-08-06",
            "count": 2
          },
          {
            "date": "2025-08-13",
            "count": 1
          },
          {
            "date": "2025-09-09",
            "count": 1
          },
          {
            "date": "2025-09-25",
            "count": 1
          },
          {
            "date": "2025-10-12",
            "count": 1
          },
          {
            "date": "2025-11-03",
            "count": 1
          },
          {
            "date": "2025-11-20",
            "count": 1
          },
          {
            "date": "2025-11-22",
            "count": 1
          },
          {
            "date": "2025-12-07",
            "count": 1
          },
          {
            "date": "2025-12-09",
            "count": 1
          },
          {
            "date": "2025-12-27",
            "count": 1
          },
          {
            "date": "2026-01-08",
            "count": 1
          },
          {
            "date": "2026-01-23",
            "count": 1
          },
          {
            "date": "2026-03-17",
            "count": 1
          },
          {
            "date": "2026-05-19",
            "count": 1
          },
          {
            "date": "2026-05-20",
            "count": 2
          },
          {
            "date": "2026-06-03",
            "count": 1
          },
          {
            "date": "2026-07-06",
            "count": 1
          },
          {
            "date": "2026-07-11",
            "count": 1
          },
          {
            "date": "2026-07-23",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 145,
        "total_forks": 145
      },
      "star_history": null,
      "open_issues_and_prs": 3
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [
        "examples",
        "sample"
      ],
      "has_llms_txt": false,
      "has_dockerfile": true,
      "has_mcp_signal": true,
      "bootstrap_files": [],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [],
      "toolchain_manifests": [
        "browser4-agent-tools/pom.xml",
        "browser4-agentic/pom.xml",
        "browser4-apps/browser4-bundle/pom.xml",
        "browser4-apps/browser4-standalone/pom.xml",
        "browser4-apps/pom.xml",
        "browser4-boot/pom.xml",
        "browser4-core/browser4-browser/pom.xml",
        "browser4-core/browser4-common/pom.xml",
        "browser4-core/browser4-plugins/browser4-parse/pom.xml",
        "browser4-core/browser4-plugins/browser4-protocol/pom.xml",
        "browser4-core/browser4-plugins/pom.xml",
        "browser4-core/browser4-resources/pom.xml",
        "browser4-core/browser4-skeleton/pom.xml",
        "browser4-core/pom.xml",
        "browser4-dependencies/pom.xml",
        "browser4-rest/pom.xml",
        "browser4-tests/browser4-rest-tests/pom.xml",
        "browser4-tests/browser4-tests-common/pom.xml",
        "browser4-tests/pom.xml",
        "browser4-tests/pulsar-e2e-tests/pom.xml",
        "browser4-tests/pulsar-it-tests/pom.xml",
        "cli/browser4-cli/Cargo.toml",
        "examples/browser4-examples/pom.xml",
        "examples/pom.xml",
        "pom.xml"
      ],
      "largest_source_bytes": 1073878,
      "source_files_sampled": 809,
      "oversized_source_files": 30,
      "agent_instruction_files": [
        "AGENTS.md",
        "skills/browser4-cli/references/agent.md"
      ],
      "agent_instruction_max_bytes": 27338
    },
    "dependencies": {
      "manifests": [
        "browser4-agent-tools/pom.xml",
        "browser4-agentic/pom.xml",
        "browser4-apps/pom.xml",
        "browser4-boot/pom.xml",
        "browser4-core/pom.xml",
        "browser4-dependencies/pom.xml",
        "browser4-rest/pom.xml",
        "browser4-tests/pom.xml",
        "cli/package.json",
        "examples/pom.xml",
        "pom.xml"
      ],
      "advisories": {
        "error": null,
        "scope": "repository_graph",
        "source": "osv",
        "findings": [
          {
            "name": "com.fasterxml.jackson.core:jackson-databind",
            "direct": true,
            "version": "2.9.9.3",
            "severity": "critical",
            "ecosystem": "maven",
            "cvss_score": 9.8,
            "advisory_ids": [
              "GHSA-27xj-rqx5-2255",
              "GHSA-288c-cq4h-88gq",
              "GHSA-4w82-r329-3q67",
              "GHSA-57j2-w4cx-62h2",
              "GHSA-58pp-9c76-5625",
              "GHSA-5949-rw7g-wx7w",
              "GHSA-5jmj-h7xm-6q6v",
              "GHSA-5p34-5m6p-p58g",
              "GHSA-5r5r-6hpj-8gg9",
              "GHSA-758m-v56v-grj4"
            ],
            "fixed_version": "3.1.4",
            "advisory_count": 50,
            "oldest_advisory_days": 2496
          },
          {
            "name": "quinn-proto",
            "direct": false,
            "version": "0.11.14",
            "severity": "high",
            "ecosystem": "crates",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-4w2j-m93h-cj5j",
              "RUSTSEC-2026-0185"
            ],
            "fixed_version": "0.11.15",
            "advisory_count": 2,
            "oldest_advisory_days": 33
          },
          {
            "name": "body-parser",
            "direct": false,
            "version": "1.20.5",
            "severity": "low",
            "ecosystem": "npm",
            "cvss_score": 3.7,
            "advisory_ids": [
              "GHSA-v422-hmwv-36x6"
            ],
            "fixed_version": "2.3.0",
            "advisory_count": 1,
            "oldest_advisory_days": 4
          },
          {
            "name": "anyhow",
            "direct": false,
            "version": "1.0.102",
            "severity": "unknown",
            "ecosystem": "crates",
            "cvss_score": null,
            "advisory_ids": [
              "RUSTSEC-2026-0190"
            ],
            "fixed_version": "1.0.103",
            "advisory_count": 1,
            "oldest_advisory_days": 30
          }
        ],
        "collected": true,
        "malicious": [],
        "truncated": false,
        "by_severity": {
          "low": 1,
          "high": 1,
          "unknown": 1,
          "critical": 1
        },
        "advisory_count": 54,
        "affected_count": 4,
        "assessed_count": 387,
        "malicious_count": 0,
        "assessed_package": null,
        "unassessed_count": 122,
        "direct_affected_count": 1
      },
      "ecosystems": [
        "maven",
        "npm"
      ],
      "dependencies": [
        {
          "name": "ai.platon.pulsar:browser4-skeleton",
          "manifest": "browser4-agent-tools/pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "ai.platon.pulsar:browser4-parse",
          "manifest": "browser4-agent-tools/pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "ai.platon.pulsar:browser4-agentic",
          "manifest": "browser4-agent-tools/pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "ai.platon.pulsar:pulsar-ql",
          "manifest": "browser4-agent-tools/pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "com.github.ben-manes.caffeine:caffeine",
          "manifest": "browser4-agent-tools/pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "ai.platon.pulsar:browser4-common",
          "manifest": "browser4-agentic/pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "ai.platon.pulsar:browser4-protocol",
          "manifest": "browser4-agentic/pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "ai.platon.pulsar:browser4-browser",
          "manifest": "browser4-agentic/pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "ai.platon.pulsar:browser4-skeleton",
          "manifest": "browser4-agentic/pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "ai.platon.pulsar:pulsar-ql-common",
          "manifest": "browser4-agentic/pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "ai.platon.pulsar:pulsar-ql",
          "manifest": "browser4-agentic/pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "io.modelcontextprotocol:kotlin-sdk-core-jvm",
          "manifest": "browser4-agentic/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "0.8.1"
        },
        {
          "name": "io.modelcontextprotocol:kotlin-sdk-server-jvm",
          "manifest": "browser4-agentic/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "0.8.1"
        },
        {
          "name": "io.opentelemetry:opentelemetry-api",
          "manifest": "browser4-agentic/pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "io.opentelemetry:opentelemetry-sdk",
          "manifest": "browser4-agentic/pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "io.opentelemetry:opentelemetry-exporter-otlp",
          "manifest": "browser4-agentic/pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "io.opentelemetry.semconv:opentelemetry-semconv",
          "manifest": "browser4-agentic/pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "io.micrometer:micrometer-core",
          "manifest": "browser4-agentic/pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "io.micrometer:micrometer-registry-prometheus",
          "manifest": "browser4-agentic/pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "jakarta.annotation:jakarta.annotation-api",
          "manifest": "browser4-agentic/pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "org.yaml:snakeyaml",
          "manifest": "browser4-agentic/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "2.2"
        },
        {
          "name": "ai.platon.pulsar:pulsar-persist",
          "manifest": "browser4-boot/pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "ai.platon.pulsar:browser4-skeleton",
          "manifest": "browser4-boot/pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "ai.platon.pulsar:browser4-protocol",
          "manifest": "browser4-boot/pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "ai.platon.pulsar:browser4-agentic",
          "manifest": "browser4-boot/pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "ai.platon.pulsar:pulsar-ql",
          "manifest": "browser4-boot/pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "org.springframework.boot:spring-boot",
          "manifest": "browser4-boot/pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "org.springframework.boot:spring-boot-autoconfigure",
          "manifest": "browser4-boot/pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "org.springframework.boot:spring-boot-dependencies",
          "manifest": "browser4-dependencies/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${spring-boot.version}"
        },
        {
          "name": "ai.platon.pulsar:pulsar-bom",
          "manifest": "browser4-dependencies/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${browser4-base.version}"
        },
        {
          "name": "org.jetbrains.kotlinx:kotlinx-coroutines-bom",
          "manifest": "browser4-dependencies/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${kotlin.coroutine.version}"
        },
        {
          "name": "org.jetbrains.kotlin:kotlin-bom",
          "manifest": "browser4-dependencies/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${kotlin.version}"
        },
        {
          "name": "org.jetbrains.kotlin:kotlin-serialization",
          "manifest": "browser4-dependencies/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${kotlin.version}"
        },
        {
          "name": "org.apache.tika:tika-core",
          "manifest": "browser4-dependencies/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${tika.version}"
        },
        {
          "name": "org.apache.tika:tika-parser-html-module",
          "manifest": "browser4-dependencies/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${tika.version}"
        },
        {
          "name": "org.apache.tika:tika-parsers",
          "manifest": "browser4-dependencies/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${tika.version}"
        },
        {
          "name": "dev.langchain4j:langchain4j-bom",
          "manifest": "browser4-dependencies/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${langchain4j.version}"
        },
        {
          "name": "commons-io:commons-io",
          "manifest": "browser4-dependencies/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${commons-io.version}"
        },
        {
          "name": "org.apache.commons:commons-text",
          "manifest": "browser4-dependencies/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${commons-text.version}"
        },
        {
          "name": "org.apache.commons:commons-math3",
          "manifest": "browser4-dependencies/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${commons-math3.version}"
        },
        {
          "name": "org.apache.commons:commons-collections4",
          "manifest": "browser4-dependencies/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${commons-collections4.version}"
        },
        {
          "name": "commons-logging:commons-logging",
          "manifest": "browser4-dependencies/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${commons-logging.version}"
        },
        {
          "name": "org.apache.commons:commons-compress",
          "manifest": "browser4-dependencies/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${commons-compress.version}"
        },
        {
          "name": "org.apache.commons:commons-numbers-bom",
          "manifest": "browser4-dependencies/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${commons-numbers-bom.version}"
        },
        {
          "name": "org.apache.poi:poi",
          "manifest": "browser4-dependencies/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${poi.version}"
        },
        {
          "name": "org.apache.poi:poi-ooxml",
          "manifest": "browser4-dependencies/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${poi-ooxml.version}"
        },
        {
          "name": "com.google.guava:guava",
          "manifest": "browser4-dependencies/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${guava.version}"
        },
        {
          "name": "org.apache.httpcomponents:httpcore",
          "manifest": "browser4-dependencies/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${httptrove4j-core.version}"
        },
        {
          "name": "org.apache.httpcomponents:httpclient",
          "manifest": "browser4-dependencies/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${httpclient.version}"
        },
        {
          "name": "io.ktor:ktor-client-core",
          "manifest": "browser4-dependencies/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${ktor.version}"
        },
        {
          "name": "io.ktor:ktor-client-core-jvm",
          "manifest": "browser4-dependencies/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${ktor.version}"
        },
        {
          "name": "io.ktor:ktor-client-cio-jvm",
          "manifest": "browser4-dependencies/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${ktor.version}"
        },
        {
          "name": "io.ktor:ktor-client-websockets",
          "manifest": "browser4-dependencies/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${ktor.version}"
        },
        {
          "name": "io.ktor:ktor-client-cio",
          "manifest": "browser4-dependencies/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${ktor.version}"
        },
        {
          "name": "io.ktor:ktor-serialization-kotlinx-json-jvm",
          "manifest": "browser4-dependencies/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${ktor.version}"
        },
        {
          "name": "com.squareup.okhttp3:okhttp",
          "manifest": "browser4-dependencies/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "4.12.0"
        },
        {
          "name": "io.modelcontextprotocol:kotlin-sdk",
          "manifest": "browser4-dependencies/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${mcp-sdk.version}"
        },
        {
          "name": "org.apache.lucene:lucene-core",
          "manifest": "browser4-dependencies/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${lucene.version}"
        },
        {
          "name": "org.apache.lucene:lucene-analyzers-common",
          "manifest": "browser4-dependencies/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${lucene.version}"
        },
        {
          "name": "org.apache.lucene:lucene-analyzers-smartcn",
          "manifest": "browser4-dependencies/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${lucene.version}"
        },
        {
          "name": "org.jgrapht:jgrapht-core",
          "manifest": "browser4-dependencies/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${jgrapht.version}"
        },
        {
          "name": "org.jgrapht:jgrapht-ext",
          "manifest": "browser4-dependencies/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${jgrapht.version}"
        },
        {
          "name": "com.beust:jcommander",
          "manifest": "browser4-dependencies/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${jcommander.version}"
        },
        {
          "name": "com.udojava:EvalEx",
          "manifest": "browser4-dependencies/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${EvalEx.version}"
        },
        {
          "name": "org.nield:kotlin-statistics",
          "manifest": "browser4-dependencies/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${kotlin-statistics.version}"
        },
        {
          "name": "com.github.oshi:oshi-core",
          "manifest": "browser4-dependencies/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${oshi-trove4j-core.version}"
        },
        {
          "name": "io.dropwizard.metrics:metrics-core",
          "manifest": "browser4-dependencies/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${metrics.version}"
        },
        {
          "name": "io.dropwizard.metrics:metrics-jmx",
          "manifest": "browser4-dependencies/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${metrics.version}"
        },
        {
          "name": "io.dropwizard.metrics:metrics-json",
          "manifest": "browser4-dependencies/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${metrics.version}"
        },
        {
          "name": "io.dropwizard.metrics:metrics-graphite",
          "manifest": "browser4-dependencies/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${metrics.version}"
        },
        {
          "name": "io.opentelemetry.semconv:opentelemetry-semconv",
          "manifest": "browser4-dependencies/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${opentelemetry.semconv.version}"
        },
        {
          "name": "org.nibor.autolink:autolink",
          "manifest": "browser4-dependencies/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${autolink.version}"
        },
        {
          "name": "org.perf4j:perf4j",
          "manifest": "browser4-dependencies/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${perf4j.version}"
        },
        {
          "name": "ai.platon.pulsar:pulsar-h2",
          "manifest": "browser4-dependencies/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${pulsar-h2.version}"
        },
        {
          "name": "ai.platon.pulsar:pulsar-jsoup",
          "manifest": "browser4-dependencies/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${pulsar-jsoup.version}"
        },
        {
          "name": "ai.platon.cdt:cdt-kotlin-client",
          "manifest": "browser4-dependencies/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${cdt-kotlin-client.version}"
        },
        {
          "name": "ai.platon.pulsar:browser4-resources",
          "manifest": "browser4-rest/pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "ai.platon.pulsar:browser4-skeleton",
          "manifest": "browser4-rest/pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "ai.platon.pulsar:browser4-protocol",
          "manifest": "browser4-rest/pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "ai.platon.pulsar:browser4-boot",
          "manifest": "browser4-rest/pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "ai.platon.pulsar:browser4-agentic",
          "manifest": "browser4-rest/pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "ai.platon.pulsar:browser4-agent-tools",
          "manifest": "browser4-rest/pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "ai.platon.pulsar:pulsar-ql-common",
          "manifest": "browser4-rest/pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "ai.platon.pulsar:pulsar-ql",
          "manifest": "browser4-rest/pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "com.google.guava:guava",
          "manifest": "browser4-rest/pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "com.github.ben-manes.caffeine:caffeine",
          "manifest": "browser4-rest/pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "com.google.code.gson:gson",
          "manifest": "browser4-rest/pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "com.fasterxml.jackson.core:jackson-core",
          "manifest": "browser4-rest/pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "com.fasterxml.jackson.core:jackson-annotations",
          "manifest": "browser4-rest/pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "com.fasterxml.jackson.core:jackson-databind",
          "manifest": "browser4-rest/pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "org.springframework.boot:spring-boot-autoconfigure",
          "manifest": "browser4-rest/pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "org.springframework.boot:spring-boot-starter-web",
          "manifest": "browser4-rest/pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "org.springframework.boot:spring-boot-starter-jetty",
          "manifest": "browser4-rest/pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "org.springframework.boot:spring-boot-starter-webflux",
          "manifest": "browser4-rest/pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "org.jetbrains.kotlinx:kotlinx-coroutines-reactor",
          "manifest": "browser4-rest/pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "org.springframework.boot:spring-boot-starter-actuator",
          "manifest": "browser4-rest/pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "com.fasterxml.jackson.module:jackson-module-kotlin",
          "manifest": "browser4-rest/pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "org.jetbrains.kotlin:kotlin-maven-allopen",
          "manifest": "pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${kotlin.version}"
        },
        {
          "name": "org.jetbrains.kotlin:kotlin-maven-noarg",
          "manifest": "pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${kotlin.version}"
        },
        {
          "name": "ai.platon.pulsar:browser4-dependencies",
          "manifest": "pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${project.version}"
        },
        {
          "name": "ai.platon.pulsar:browser4-common",
          "manifest": "pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${project.version}"
        },
        {
          "name": "ai.platon.pulsar:browser4-resources",
          "manifest": "pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${project.version}"
        },
        {
          "name": "ai.platon.pulsar:browser4-skeleton",
          "manifest": "pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${project.version}"
        },
        {
          "name": "ai.platon.pulsar:browser4-plugins",
          "manifest": "pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${project.version}"
        },
        {
          "name": "ai.platon.pulsar:browser4-parse",
          "manifest": "pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${project.version}"
        },
        {
          "name": "ai.platon.pulsar:browser4-protocol",
          "manifest": "pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${project.version}"
        },
        {
          "name": "ai.platon.pulsar:browser4-browser",
          "manifest": "pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${project.version}"
        },
        {
          "name": "ai.platon.pulsar:browser4-agentic",
          "manifest": "pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${project.version}"
        },
        {
          "name": "ai.platon.pulsar:browser4-agent-tools",
          "manifest": "pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${project.version}"
        },
        {
          "name": "ai.platon.pulsar:browser4-rest",
          "manifest": "pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${project.version}"
        },
        {
          "name": "ai.platon.pulsar:browser4-boot",
          "manifest": "pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${project.version}"
        },
        {
          "name": "ai.platon.pulsar:browser4-tests-common",
          "manifest": "pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${project.version}"
        },
        {
          "name": "ai.platon.pulsar:pulsar-it-tests",
          "manifest": "pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${project.version}"
        },
        {
          "name": "org.jetbrains.kotlin:kotlin-stdlib",
          "manifest": "pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "org.jetbrains.kotlin:kotlin-reflect",
          "manifest": "pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "org.jetbrains.kotlinx:kotlinx-coroutines-core",
          "manifest": "pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        }
      ],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [
          {
            "name": "ai.platon.cdt:cdt-kotlin-client",
            "direct": true,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "ai.platon.cdt:cdt-kotlin-client",
            "direct": true,
            "version": "4.8.0",
            "ecosystem": "maven"
          },
          {
            "name": "ai.platon.pulsar:browser4-agent-tools",
            "direct": true,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "ai.platon.pulsar:browser4-agent-tools",
            "direct": true,
            "version": "4.11.22-SNAPSHOT",
            "ecosystem": "maven"
          },
          {
            "name": "ai.platon.pulsar:browser4-agentic",
            "direct": true,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "ai.platon.pulsar:browser4-agentic",
            "direct": true,
            "version": "4.11.22-SNAPSHOT",
            "ecosystem": "maven"
          },
          {
            "name": "ai.platon.pulsar:browser4-boot",
            "direct": true,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "ai.platon.pulsar:browser4-boot",
            "direct": true,
            "version": "4.11.22-SNAPSHOT",
            "ecosystem": "maven"
          },
          {
            "name": "ai.platon.pulsar:browser4-browser",
            "direct": true,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "ai.platon.pulsar:browser4-browser",
            "direct": true,
            "version": "4.11.22-SNAPSHOT",
            "ecosystem": "maven"
          },
          {
            "name": "ai.platon.pulsar:browser4-common",
            "direct": true,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "ai.platon.pulsar:browser4-common",
            "direct": true,
            "version": "4.11.22-SNAPSHOT",
            "ecosystem": "maven"
          },
          {
            "name": "ai.platon.pulsar:browser4-dependencies",
            "direct": true,
            "version": "4.11.22-SNAPSHOT",
            "ecosystem": "maven"
          },
          {
            "name": "ai.platon.pulsar:browser4-parse",
            "direct": true,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "ai.platon.pulsar:browser4-parse",
            "direct": true,
            "version": "4.11.22-SNAPSHOT",
            "ecosystem": "maven"
          },
          {
            "name": "ai.platon.pulsar:browser4-plugins",
            "direct": true,
            "version": "4.11.22-SNAPSHOT",
            "ecosystem": "maven"
          },
          {
            "name": "ai.platon.pulsar:browser4-protocol",
            "direct": true,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "ai.platon.pulsar:browser4-protocol",
            "direct": true,
            "version": "4.11.22-SNAPSHOT",
            "ecosystem": "maven"
          },
          {
            "name": "ai.platon.pulsar:browser4-resources",
            "direct": true,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "ai.platon.pulsar:browser4-resources",
            "direct": true,
            "version": "4.11.22-SNAPSHOT",
            "ecosystem": "maven"
          },
          {
            "name": "ai.platon.pulsar:browser4-rest",
            "direct": true,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "ai.platon.pulsar:browser4-rest",
            "direct": true,
            "version": "4.11.22-SNAPSHOT",
            "ecosystem": "maven"
          },
          {
            "name": "ai.platon.pulsar:browser4-skeleton",
            "direct": true,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "ai.platon.pulsar:browser4-skeleton",
            "direct": true,
            "version": "4.11.22-SNAPSHOT",
            "ecosystem": "maven"
          },
          {
            "name": "ai.platon.pulsar:browser4-tests-common",
            "direct": true,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "ai.platon.pulsar:browser4-tests-common",
            "direct": true,
            "version": "4.11.22-SNAPSHOT",
            "ecosystem": "maven"
          },
          {
            "name": "ai.platon.pulsar:pulsar-bom",
            "direct": true,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "ai.platon.pulsar:pulsar-bom",
            "direct": true,
            "version": "4.8.5",
            "ecosystem": "maven"
          },
          {
            "name": "ai.platon.pulsar:pulsar-h2",
            "direct": true,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "ai.platon.pulsar:pulsar-h2",
            "direct": true,
            "version": "1.4.197",
            "ecosystem": "maven"
          },
          {
            "name": "ai.platon.pulsar:pulsar-it-tests",
            "direct": true,
            "version": "4.11.22-SNAPSHOT",
            "ecosystem": "maven"
          },
          {
            "name": "ai.platon.pulsar:pulsar-jsoup",
            "direct": true,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "ai.platon.pulsar:pulsar-jsoup",
            "direct": true,
            "version": "1.14.3",
            "ecosystem": "maven"
          },
          {
            "name": "ai.platon.pulsar:pulsar-persist",
            "direct": true,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "ai.platon.pulsar:pulsar-ql",
            "direct": true,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "ai.platon.pulsar:pulsar-ql-common",
            "direct": true,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "com.beust:jcommander",
            "direct": true,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "com.beust:jcommander",
            "direct": true,
            "version": "1.82",
            "ecosystem": "maven"
          },
          {
            "name": "com.fasterxml.jackson.core:jackson-annotations",
            "direct": true,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "com.fasterxml.jackson.core:jackson-core",
            "direct": true,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "com.fasterxml.jackson.core:jackson-databind",
            "direct": true,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "com.fasterxml.jackson.core:jackson-databind",
            "direct": true,
            "version": "2.9.9.3",
            "ecosystem": "maven"
          },
          {
            "name": "com.fasterxml.jackson.module:jackson-module-kotlin",
            "direct": true,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "com.github.ben-manes.caffeine:caffeine",
            "direct": true,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "com.github.oshi:oshi-core",
            "direct": true,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "com.github.oshi:oshi-core",
            "direct": true,
            "version": "6.6.6",
            "ecosystem": "maven"
          },
          {
            "name": "com.google.code.gson:gson",
            "direct": true,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "com.google.guava:guava",
            "direct": true,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "com.google.guava:guava",
            "direct": true,
            "version": "33.2.1-jre",
            "ecosystem": "maven"
          },
          {
            "name": "com.squareup.okhttp3:okhttp",
            "direct": true,
            "version": "4.12.0",
            "ecosystem": "maven"
          },
          {
            "name": "com.udojava:EvalEx",
            "direct": true,
            "version": "2.0",
            "ecosystem": "maven"
          },
          {
            "name": "commons-io:commons-io",
            "direct": true,
            "version": "2.16.1",
            "ecosystem": "maven"
          },
          {
            "name": "commons-logging:commons-logging",
            "direct": true,
            "version": "1.3.2",
            "ecosystem": "maven"
          },
          {
            "name": "dev.langchain4j:langchain4j-bom",
            "direct": true,
            "version": "1.5.0",
            "ecosystem": "maven"
          },
          {
            "name": "io.dropwizard.metrics:metrics-core",
            "direct": true,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "io.dropwizard.metrics:metrics-core",
            "direct": true,
            "version": "4.2.12",
            "ecosystem": "maven"
          },
          {
            "name": "io.dropwizard.metrics:metrics-graphite",
            "direct": true,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "io.dropwizard.metrics:metrics-graphite",
            "direct": true,
            "version": "4.2.12",
            "ecosystem": "maven"
          },
          {
            "name": "io.dropwizard.metrics:metrics-jmx",
            "direct": true,
            "version": "4.2.12",
            "ecosystem": "maven"
          },
          {
            "name": "io.dropwizard.metrics:metrics-json",
            "direct": true,
            "version": "4.2.12",
            "ecosystem": "maven"
          },
          {
            "name": "io.ktor:ktor-client-cio",
            "direct": true,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "io.ktor:ktor-client-cio",
            "direct": true,
            "version": "3.2.3",
            "ecosystem": "maven"
          },
          {
            "name": "io.ktor:ktor-client-cio-jvm",
            "direct": true,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "io.ktor:ktor-client-cio-jvm",
            "direct": true,
            "version": "3.2.3",
            "ecosystem": "maven"
          },
          {
            "name": "io.ktor:ktor-client-core",
            "direct": true,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "io.ktor:ktor-client-core",
            "direct": true,
            "version": "3.2.3",
            "ecosystem": "maven"
          },
          {
            "name": "io.ktor:ktor-client-core-jvm",
            "direct": true,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "io.ktor:ktor-client-core-jvm",
            "direct": true,
            "version": "3.2.3",
            "ecosystem": "maven"
          },
          {
            "name": "io.ktor:ktor-client-websockets",
            "direct": true,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "io.ktor:ktor-client-websockets",
            "direct": true,
            "version": "3.2.3",
            "ecosystem": "maven"
          },
          {
            "name": "io.ktor:ktor-serialization-kotlinx-json-jvm",
            "direct": true,
            "version": "3.2.3",
            "ecosystem": "maven"
          },
          {
            "name": "io.micrometer:micrometer-core",
            "direct": true,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "io.micrometer:micrometer-registry-prometheus",
            "direct": true,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "io.modelcontextprotocol:kotlin-sdk",
            "direct": true,
            "version": "0.8.1",
            "ecosystem": "maven"
          },
          {
            "name": "io.modelcontextprotocol:kotlin-sdk-core-jvm",
            "direct": true,
            "version": "0.8.1",
            "ecosystem": "maven"
          },
          {
            "name": "io.modelcontextprotocol:kotlin-sdk-server-jvm",
            "direct": true,
            "version": "0.8.1",
            "ecosystem": "maven"
          },
          {
            "name": "io.opentelemetry.semconv:opentelemetry-semconv",
            "direct": true,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "io.opentelemetry.semconv:opentelemetry-semconv",
            "direct": true,
            "version": "1.37.0",
            "ecosystem": "maven"
          },
          {
            "name": "io.opentelemetry:opentelemetry-api",
            "direct": true,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "io.opentelemetry:opentelemetry-exporter-otlp",
            "direct": true,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "io.opentelemetry:opentelemetry-sdk",
            "direct": true,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "jakarta.annotation:jakarta.annotation-api",
            "direct": true,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.apache.commons:commons-collections4",
            "direct": true,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.apache.commons:commons-collections4",
            "direct": true,
            "version": "4.4",
            "ecosystem": "maven"
          },
          {
            "name": "org.apache.commons:commons-compress",
            "direct": true,
            "version": "1.26.2",
            "ecosystem": "maven"
          },
          {
            "name": "org.apache.commons:commons-math3",
            "direct": true,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.apache.commons:commons-math3",
            "direct": true,
            "version": "3.6.1",
            "ecosystem": "maven"
          },
          {
            "name": "org.apache.commons:commons-numbers-bom",
            "direct": true,
            "version": "1.1",
            "ecosystem": "maven"
          },
          {
            "name": "org.apache.commons:commons-text",
            "direct": true,
            "version": "1.11.0",
            "ecosystem": "maven"
          },
          {
            "name": "org.apache.httpcomponents:httpclient",
            "direct": true,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.apache.httpcomponents:httpclient",
            "direct": true,
            "version": "4.5.13",
            "ecosystem": "maven"
          },
          {
            "name": "org.apache.httpcomponents:httpcore",
            "direct": true,
            "version": "4.4.15",
            "ecosystem": "maven"
          },
          {
            "name": "org.apache.lucene:lucene-analyzers-common",
            "direct": true,
            "version": "7.3.1",
            "ecosystem": "maven"
          },
          {
            "name": "org.apache.lucene:lucene-analyzers-smartcn",
            "direct": true,
            "version": "7.3.1",
            "ecosystem": "maven"
          },
          {
            "name": "org.apache.lucene:lucene-core",
            "direct": true,
            "version": "7.3.1",
            "ecosystem": "maven"
          },
          {
            "name": "org.apache.poi:poi",
            "direct": true,
            "version": "5.3.0",
            "ecosystem": "maven"
          },
          {
            "name": "org.apache.poi:poi-ooxml",
            "direct": true,
            "version": "5.4.0",
            "ecosystem": "maven"
          },
          {
            "name": "org.apache.tika:tika-core",
            "direct": true,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.apache.tika:tika-core",
            "direct": true,
            "version": "3.2.2",
            "ecosystem": "maven"
          },
          {
            "name": "org.apache.tika:tika-parser-html-module",
            "direct": true,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.apache.tika:tika-parser-html-module",
            "direct": true,
            "version": "3.2.2",
            "ecosystem": "maven"
          },
          {
            "name": "org.apache.tika:tika-parsers",
            "direct": true,
            "version": "3.2.2",
            "ecosystem": "maven"
          },
          {
            "name": "org.jetbrains.kotlin:kotlin-bom",
            "direct": true,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.jetbrains.kotlin:kotlin-maven-allopen",
            "direct": true,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.jetbrains.kotlin:kotlin-maven-noarg",
            "direct": true,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.jetbrains.kotlin:kotlin-reflect",
            "direct": true,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.jetbrains.kotlin:kotlin-serialization",
            "direct": true,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.jetbrains.kotlin:kotlin-stdlib",
            "direct": true,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.jetbrains.kotlinx:kotlinx-coroutines-bom",
            "direct": true,
            "version": "1.10.2",
            "ecosystem": "maven"
          },
          {
            "name": "org.jetbrains.kotlinx:kotlinx-coroutines-core",
            "direct": true,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.jetbrains.kotlinx:kotlinx-coroutines-reactor",
            "direct": true,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.jgrapht:jgrapht-core",
            "direct": true,
            "version": "1.0.1",
            "ecosystem": "maven"
          },
          {
            "name": "org.jgrapht:jgrapht-ext",
            "direct": true,
            "version": "1.0.1",
            "ecosystem": "maven"
          },
          {
            "name": "org.nibor.autolink:autolink",
            "direct": true,
            "version": "0.11.0",
            "ecosystem": "maven"
          },
          {
            "name": "org.nield:kotlin-statistics",
            "direct": true,
            "version": "1.2.1",
            "ecosystem": "maven"
          },
          {
            "name": "org.perf4j:perf4j",
            "direct": true,
            "version": "0.9.16",
            "ecosystem": "maven"
          },
          {
            "name": "org.springframework.boot:spring-boot",
            "direct": true,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.springframework.boot:spring-boot-autoconfigure",
            "direct": true,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.springframework.boot:spring-boot-dependencies",
            "direct": true,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.springframework.boot:spring-boot-dependencies",
            "direct": true,
            "version": "4.0.6",
            "ecosystem": "maven"
          },
          {
            "name": "org.springframework.boot:spring-boot-starter-actuator",
            "direct": true,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.springframework.boot:spring-boot-starter-jetty",
            "direct": true,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.springframework.boot:spring-boot-starter-web",
            "direct": true,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.springframework.boot:spring-boot-starter-webflux",
            "direct": true,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.yaml:snakeyaml",
            "direct": true,
            "version": "2.2",
            "ecosystem": "maven"
          },
          {
            "name": "adler2",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "crates"
          },
          {
            "name": "aho-corasick",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "crates"
          },
          {
            "name": "android_system_properties",
            "direct": false,
            "version": "0.1.5",
            "ecosystem": "crates"
          },
          {
            "name": "anyhow",
            "direct": false,
            "version": "1.0.102",
            "ecosystem": "crates"
          },
          {
            "name": "arbitrary",
            "direct": false,
            "version": "1.4.2",
            "ecosystem": "crates"
          },
          {
            "name": "atomic-waker",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "crates"
          },
          {
            "name": "autocfg",
            "direct": false,
            "version": "1.5.0",
            "ecosystem": "crates"
          },
          {
            "name": "aws-lc-rs",
            "direct": false,
            "version": "1.16.3",
            "ecosystem": "crates"
          },
          {
            "name": "aws-lc-sys",
            "direct": false,
            "version": "0.40.0",
            "ecosystem": "crates"
          },
          {
            "name": "base64",
            "direct": false,
            "version": "0.22.1",
            "ecosystem": "crates"
          },
          {
            "name": "bitflags",
            "direct": false,
            "version": "2.11.1",
            "ecosystem": "crates"
          },
          {
            "name": "block-buffer",
            "direct": false,
            "version": "0.10.4",
            "ecosystem": "crates"
          },
          {
            "name": "bumpalo",
            "direct": false,
            "version": "3.20.2",
            "ecosystem": "crates"
          },
          {
            "name": "bytes",
            "direct": false,
            "version": "1.11.1",
            "ecosystem": "crates"
          },
          {
            "name": "cc",
            "direct": false,
            "version": "1.2.62",
            "ecosystem": "crates"
          },
          {
            "name": "cfg-if",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "crates"
          },
          {
            "name": "cfg_aliases",
            "direct": false,
            "version": "0.2.1",
            "ecosystem": "crates"
          },
          {
            "name": "chrono",
            "direct": false,
            "version": "0.4.44",
            "ecosystem": "crates"
          },
          {
            "name": "cmake",
            "direct": false,
            "version": "0.1.58",
            "ecosystem": "crates"
          },
          {
            "name": "combine",
            "direct": false,
            "version": "4.6.7",
            "ecosystem": "crates"
          },
          {
            "name": "core-foundation",
            "direct": false,
            "version": "0.10.1",
            "ecosystem": "crates"
          },
          {
            "name": "core-foundation-sys",
            "direct": false,
            "version": "0.8.7",
            "ecosystem": "crates"
          },
          {
            "name": "cpufeatures",
            "direct": false,
            "version": "0.2.17",
            "ecosystem": "crates"
          },
          {
            "name": "crc32fast",
            "direct": false,
            "version": "1.5.0",
            "ecosystem": "crates"
          },
          {
            "name": "crossbeam-utils",
            "direct": false,
            "version": "0.8.21",
            "ecosystem": "crates"
          },
          {
            "name": "crypto-common",
            "direct": false,
            "version": "0.1.7",
            "ecosystem": "crates"
          },
          {
            "name": "derive_arbitrary",
            "direct": false,
            "version": "1.4.2",
            "ecosystem": "crates"
          },
          {
            "name": "digest",
            "direct": false,
            "version": "0.10.7",
            "ecosystem": "crates"
          },
          {
            "name": "dirs",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "crates"
          },
          {
            "name": "dirs-sys",
            "direct": false,
            "version": "0.5.0",
            "ecosystem": "crates"
          },
          {
            "name": "displaydoc",
            "direct": false,
            "version": "0.2.5",
            "ecosystem": "crates"
          },
          {
            "name": "dunce",
            "direct": false,
            "version": "1.0.5",
            "ecosystem": "crates"
          },
          {
            "name": "equivalent",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "crates"
          },
          {
            "name": "errno",
            "direct": false,
            "version": "0.3.14",
            "ecosystem": "crates"
          },
          {
            "name": "fastrand",
            "direct": false,
            "version": "2.4.1",
            "ecosystem": "crates"
          },
          {
            "name": "filetime",
            "direct": false,
            "version": "0.2.29",
            "ecosystem": "crates"
          },
          {
            "name": "find-msvc-tools",
            "direct": false,
            "version": "0.1.9",
            "ecosystem": "crates"
          },
          {
            "name": "flate2",
            "direct": false,
            "version": "1.1.9",
            "ecosystem": "crates"
          },
          {
            "name": "foldhash",
            "direct": false,
            "version": "0.1.5",
            "ecosystem": "crates"
          },
          {
            "name": "form_urlencoded",
            "direct": false,
            "version": "1.2.2",
            "ecosystem": "crates"
          },
          {
            "name": "fs_extra",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "crates"
          },
          {
            "name": "futures-channel",
            "direct": false,
            "version": "0.3.32",
            "ecosystem": "crates"
          },
          {
            "name": "futures-core",
            "direct": false,
            "version": "0.3.32",
            "ecosystem": "crates"
          },
          {
            "name": "futures-io",
            "direct": false,
            "version": "0.3.32",
            "ecosystem": "crates"
          },
          {
            "name": "futures-sink",
            "direct": false,
            "version": "0.3.32",
            "ecosystem": "crates"
          },
          {
            "name": "futures-task",
            "direct": false,
            "version": "0.3.32",
            "ecosystem": "crates"
          },
          {
            "name": "futures-util",
            "direct": false,
            "version": "0.3.32",
            "ecosystem": "crates"
          },
          {
            "name": "generic-array",
            "direct": false,
            "version": "0.14.7",
            "ecosystem": "crates"
          },
          {
            "name": "getrandom",
            "direct": false,
            "version": "0.2.17",
            "ecosystem": "crates"
          },
          {
            "name": "getrandom",
            "direct": false,
            "version": "0.3.4",
            "ecosystem": "crates"
          },
          {
            "name": "getrandom",
            "direct": false,
            "version": "0.4.2",
            "ecosystem": "crates"
          },
          {
            "name": "hashbrown",
            "direct": false,
            "version": "0.15.5",
            "ecosystem": "crates"
          },
          {
            "name": "hashbrown",
            "direct": false,
            "version": "0.17.1",
            "ecosystem": "crates"
          },
          {
            "name": "heck",
            "direct": false,
            "version": "0.5.0",
            "ecosystem": "crates"
          },
          {
            "name": "http",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "crates"
          },
          {
            "name": "http-body",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "crates"
          },
          {
            "name": "http-body-util",
            "direct": false,
            "version": "0.1.3",
            "ecosystem": "crates"
          },
          {
            "name": "httparse",
            "direct": false,
            "version": "1.10.1",
            "ecosystem": "crates"
          },
          {
            "name": "hyper",
            "direct": false,
            "version": "1.9.0",
            "ecosystem": "crates"
          },
          {
            "name": "hyper-rustls",
            "direct": false,
            "version": "0.27.9",
            "ecosystem": "crates"
          },
          {
            "name": "hyper-util",
            "direct": false,
            "version": "0.1.20",
            "ecosystem": "crates"
          },
          {
            "name": "iana-time-zone",
            "direct": false,
            "version": "0.1.65",
            "ecosystem": "crates"
          },
          {
            "name": "iana-time-zone-haiku",
            "direct": false,
            "version": "0.1.2",
            "ecosystem": "crates"
          },
          {
            "name": "icu_collections",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "crates"
          },
          {
            "name": "icu_locale_core",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "crates"
          },
          {
            "name": "icu_normalizer",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "crates"
          },
          {
            "name": "icu_normalizer_data",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "crates"
          },
          {
            "name": "icu_properties",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "crates"
          },
          {
            "name": "icu_properties_data",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "crates"
          },
          {
            "name": "icu_provider",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "crates"
          },
          {
            "name": "id-arena",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "crates"
          },
          {
            "name": "idna",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "crates"
          },
          {
            "name": "idna_adapter",
            "direct": false,
            "version": "1.2.2",
            "ecosystem": "crates"
          },
          {
            "name": "indexmap",
            "direct": false,
            "version": "2.14.0",
            "ecosystem": "crates"
          },
          {
            "name": "ipnet",
            "direct": false,
            "version": "2.12.0",
            "ecosystem": "crates"
          },
          {
            "name": "itoa",
            "direct": false,
            "version": "1.0.18",
            "ecosystem": "crates"
          },
          {
            "name": "jni",
            "direct": false,
            "version": "0.22.4",
            "ecosystem": "crates"
          },
          {
            "name": "jni-macros",
            "direct": false,
            "version": "0.22.4",
            "ecosystem": "crates"
          },
          {
            "name": "jni-sys",
            "direct": false,
            "version": "0.4.1",
            "ecosystem": "crates"
          },
          {
            "name": "jni-sys-macros",
            "direct": false,
            "version": "0.4.1",
            "ecosystem": "crates"
          },
          {
            "name": "jobserver",
            "direct": false,
            "version": "0.1.34",
            "ecosystem": "crates"
          },
          {
            "name": "js-sys",
            "direct": false,
            "version": "0.3.91",
            "ecosystem": "crates"
          },
          {
            "name": "leb128fmt",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "crates"
          },
          {
            "name": "libc",
            "direct": false,
            "version": "0.2.186",
            "ecosystem": "crates"
          },
          {
            "name": "libredox",
            "direct": false,
            "version": "0.1.16",
            "ecosystem": "crates"
          },
          {
            "name": "linux-raw-sys",
            "direct": false,
            "version": "0.12.1",
            "ecosystem": "crates"
          },
          {
            "name": "litemap",
            "direct": false,
            "version": "0.8.2",
            "ecosystem": "crates"
          },
          {
            "name": "log",
            "direct": false,
            "version": "0.4.29",
            "ecosystem": "crates"
          },
          {
            "name": "lru-slab",
            "direct": false,
            "version": "0.1.2",
            "ecosystem": "crates"
          },
          {
            "name": "memchr",
            "direct": false,
            "version": "2.8.0",
            "ecosystem": "crates"
          },
          {
            "name": "miniz_oxide",
            "direct": false,
            "version": "0.8.9",
            "ecosystem": "crates"
          },
          {
            "name": "mio",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "crates"
          },
          {
            "name": "num-traits",
            "direct": false,
            "version": "0.2.19",
            "ecosystem": "crates"
          },
          {
            "name": "once_cell",
            "direct": false,
            "version": "1.21.4",
            "ecosystem": "crates"
          },
          {
            "name": "openssl-probe",
            "direct": false,
            "version": "0.2.1",
            "ecosystem": "crates"
          },
          {
            "name": "option-ext",
            "direct": false,
            "version": "0.2.0",
            "ecosystem": "crates"
          },
          {
            "name": "percent-encoding",
            "direct": false,
            "version": "2.3.2",
            "ecosystem": "crates"
          },
          {
            "name": "pin-project-lite",
            "direct": false,
            "version": "0.2.17",
            "ecosystem": "crates"
          },
          {
            "name": "potential_utf",
            "direct": false,
            "version": "0.1.5",
            "ecosystem": "crates"
          },
          {
            "name": "ppv-lite86",
            "direct": false,
            "version": "0.2.21",
            "ecosystem": "crates"
          },
          {
            "name": "prettyplease",
            "direct": false,
            "version": "0.2.37",
            "ecosystem": "crates"
          },
          {
            "name": "proc-macro2",
            "direct": false,
            "version": "1.0.106",
            "ecosystem": "crates"
          },
          {
            "name": "quinn",
            "direct": false,
            "version": "0.11.9",
            "ecosystem": "crates"
          },
          {
            "name": "quinn-proto",
            "direct": false,
            "version": "0.11.14",
            "ecosystem": "crates"
          },
          {
            "name": "quinn-udp",
            "direct": false,
            "version": "0.5.14",
            "ecosystem": "crates"
          },
          {
            "name": "quote",
            "direct": false,
            "version": "1.0.45",
            "ecosystem": "crates"
          },
          {
            "name": "r-efi",
            "direct": false,
            "version": "5.3.0",
            "ecosystem": "crates"
          },
          {
            "name": "r-efi",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "crates"
          },
          {
            "name": "rand",
            "direct": false,
            "version": "0.9.4",
            "ecosystem": "crates"
          },
          {
            "name": "rand_chacha",
            "direct": false,
            "version": "0.9.0",
            "ecosystem": "crates"
          },
          {
            "name": "rand_core",
            "direct": false,
            "version": "0.9.5",
            "ecosystem": "crates"
          },
          {
            "name": "redox_users",
            "direct": false,
            "version": "0.5.2",
            "ecosystem": "crates"
          },
          {
            "name": "regex",
            "direct": false,
            "version": "1.12.3",
            "ecosystem": "crates"
          },
          {
            "name": "regex-automata",
            "direct": false,
            "version": "0.4.14",
            "ecosystem": "crates"
          },
          {
            "name": "regex-syntax",
            "direct": false,
            "version": "0.8.10",
            "ecosystem": "crates"
          },
          {
            "name": "reqwest",
            "direct": false,
            "version": "0.13.3",
            "ecosystem": "crates"
          },
          {
            "name": "ring",
            "direct": false,
            "version": "0.17.14",
            "ecosystem": "crates"
          },
          {
            "name": "rustc-hash",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "crates"
          },
          {
            "name": "rustc_version",
            "direct": false,
            "version": "0.4.1",
            "ecosystem": "crates"
          },
          {
            "name": "rustix",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "crates"
          },
          {
            "name": "rustls",
            "direct": false,
            "version": "0.23.40",
            "ecosystem": "crates"
          },
          {
            "name": "rustls-native-certs",
            "direct": false,
            "version": "0.8.3",
            "ecosystem": "crates"
          },
          {
            "name": "rustls-pki-types",
            "direct": false,
            "version": "1.14.1",
            "ecosystem": "crates"
          },
          {
            "name": "rustls-platform-verifier",
            "direct": false,
            "version": "0.7.0",
            "ecosystem": "crates"
          },
          {
            "name": "rustls-platform-verifier-android",
            "direct": false,
            "version": "0.1.1",
            "ecosystem": "crates"
          },
          {
            "name": "rustls-webpki",
            "direct": false,
            "version": "0.103.13",
            "ecosystem": "crates"
          },
          {
            "name": "rustversion",
            "direct": false,
            "version": "1.0.22",
            "ecosystem": "crates"
          },
          {
            "name": "same-file",
            "direct": false,
            "version": "1.0.6",
            "ecosystem": "crates"
          },
          {
            "name": "schannel",
            "direct": false,
            "version": "0.1.29",
            "ecosystem": "crates"
          },
          {
            "name": "security-framework",
            "direct": false,
            "version": "3.7.0",
            "ecosystem": "crates"
          },
          {
            "name": "security-framework-sys",
            "direct": false,
            "version": "2.17.0",
            "ecosystem": "crates"
          },
          {
            "name": "semver",
            "direct": false,
            "version": "1.0.28",
            "ecosystem": "crates"
          },
          {
            "name": "serde",
            "direct": false,
            "version": "1.0.228",
            "ecosystem": "crates"
          },
          {
            "name": "serde_core",
            "direct": false,
            "version": "1.0.228",
            "ecosystem": "crates"
          },
          {
            "name": "serde_derive",
            "direct": false,
            "version": "1.0.228",
            "ecosystem": "crates"
          },
          {
            "name": "serde_json",
            "direct": false,
            "version": "1.0.149",
            "ecosystem": "crates"
          },
          {
            "name": "sha2",
            "direct": false,
            "version": "0.10.9",
            "ecosystem": "crates"
          },
          {
            "name": "shlex",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "crates"
          },
          {
            "name": "signal-hook-registry",
            "direct": false,
            "version": "1.4.8",
            "ecosystem": "crates"
          },
          {
            "name": "simd-adler32",
            "direct": false,
            "version": "0.3.9",
            "ecosystem": "crates"
          },
          {
            "name": "simd_cesu8",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "crates"
          },
          {
            "name": "simdutf8",
            "direct": false,
            "version": "0.1.5",
            "ecosystem": "crates"
          },
          {
            "name": "slab",
            "direct": false,
            "version": "0.4.12",
            "ecosystem": "crates"
          },
          {
            "name": "smallvec",
            "direct": false,
            "version": "1.15.1",
            "ecosystem": "crates"
          },
          {
            "name": "socket2",
            "direct": false,
            "version": "0.6.3",
            "ecosystem": "crates"
          },
          {
            "name": "stable_deref_trait",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "crates"
          },
          {
            "name": "subtle",
            "direct": false,
            "version": "2.6.1",
            "ecosystem": "crates"
          },
          {
            "name": "syn",
            "direct": false,
            "version": "2.0.117",
            "ecosystem": "crates"
          },
          {
            "name": "sync_wrapper",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "crates"
          },
          {
            "name": "synstructure",
            "direct": false,
            "version": "0.13.2",
            "ecosystem": "crates"
          },
          {
            "name": "tar",
            "direct": false,
            "version": "0.4.46",
            "ecosystem": "crates"
          },
          {
            "name": "tempfile",
            "direct": false,
            "version": "3.27.0",
            "ecosystem": "crates"
          },
          {
            "name": "thiserror",
            "direct": false,
            "version": "2.0.18",
            "ecosystem": "crates"
          },
          {
            "name": "thiserror-impl",
            "direct": false,
            "version": "2.0.18",
            "ecosystem": "crates"
          },
          {
            "name": "tinystr",
            "direct": false,
            "version": "0.8.3",
            "ecosystem": "crates"
          },
          {
            "name": "tinyvec",
            "direct": false,
            "version": "1.11.0",
            "ecosystem": "crates"
          },
          {
            "name": "tinyvec_macros",
            "direct": false,
            "version": "0.1.1",
            "ecosystem": "crates"
          },
          {
            "name": "tokio",
            "direct": false,
            "version": "1.52.3",
            "ecosystem": "crates"
          },
          {
            "name": "tokio-macros",
            "direct": false,
            "version": "2.7.0",
            "ecosystem": "crates"
          },
          {
            "name": "tokio-rustls",
            "direct": false,
            "version": "0.26.4",
            "ecosystem": "crates"
          },
          {
            "name": "tower",
            "direct": false,
            "version": "0.5.3",
            "ecosystem": "crates"
          },
          {
            "name": "tower-http",
            "direct": false,
            "version": "0.6.10",
            "ecosystem": "crates"
          },
          {
            "name": "tower-layer",
            "direct": false,
            "version": "0.3.3",
            "ecosystem": "crates"
          },
          {
            "name": "tower-service",
            "direct": false,
            "version": "0.3.3",
            "ecosystem": "crates"
          },
          {
            "name": "tracing",
            "direct": false,
            "version": "0.1.44",
            "ecosystem": "crates"
          },
          {
            "name": "tracing-core",
            "direct": false,
            "version": "0.1.36",
            "ecosystem": "crates"
          },
          {
            "name": "try-lock",
            "direct": false,
            "version": "0.2.5",
            "ecosystem": "crates"
          },
          {
            "name": "typenum",
            "direct": false,
            "version": "1.20.1",
            "ecosystem": "crates"
          },
          {
            "name": "unicode-ident",
            "direct": false,
            "version": "1.0.24",
            "ecosystem": "crates"
          },
          {
            "name": "unicode-xid",
            "direct": false,
            "version": "0.2.6",
            "ecosystem": "crates"
          },
          {
            "name": "untrusted",
            "direct": false,
            "version": "0.9.0",
            "ecosystem": "crates"
          },
          {
            "name": "url",
            "direct": false,
            "version": "2.5.8",
            "ecosystem": "crates"
          },
          {
            "name": "urlencoding",
            "direct": false,
            "version": "2.1.3",
            "ecosystem": "crates"
          },
          {
            "name": "utf8_iter",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "crates"
          },
          {
            "name": "version_check",
            "direct": false,
            "version": "0.9.5",
            "ecosystem": "crates"
          },
          {
            "name": "walkdir",
            "direct": false,
            "version": "2.5.0",
            "ecosystem": "crates"
          },
          {
            "name": "want",
            "direct": false,
            "version": "0.3.1",
            "ecosystem": "crates"
          },
          {
            "name": "wasi",
            "direct": false,
            "version": "0.11.1+wasi-snapshot-preview1",
            "ecosystem": "crates"
          },
          {
            "name": "wasip2",
            "direct": false,
            "version": "1.0.3+wasi-0.2.9",
            "ecosystem": "crates"
          },
          {
            "name": "wasip3",
            "direct": false,
            "version": "0.4.0+wasi-0.3.0-rc-2026-01-06",
            "ecosystem": "crates"
          },
          {
            "name": "wasm-bindgen",
            "direct": false,
            "version": "0.2.114",
            "ecosystem": "crates"
          },
          {
            "name": "wasm-bindgen-futures",
            "direct": false,
            "version": "0.4.64",
            "ecosystem": "crates"
          },
          {
            "name": "wasm-bindgen-macro",
            "direct": false,
            "version": "0.2.114",
            "ecosystem": "crates"
          },
          {
            "name": "wasm-bindgen-macro-support",
            "direct": false,
            "version": "0.2.114",
            "ecosystem": "crates"
          },
          {
            "name": "wasm-bindgen-shared",
            "direct": false,
            "version": "0.2.114",
            "ecosystem": "crates"
          },
          {
            "name": "wasm-encoder",
            "direct": false,
            "version": "0.244.0",
            "ecosystem": "crates"
          },
          {
            "name": "wasm-metadata",
            "direct": false,
            "version": "0.244.0",
            "ecosystem": "crates"
          },
          {
            "name": "wasmparser",
            "direct": false,
            "version": "0.244.0",
            "ecosystem": "crates"
          },
          {
            "name": "web-sys",
            "direct": false,
            "version": "0.3.91",
            "ecosystem": "crates"
          },
          {
            "name": "web-time",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "crates"
          },
          {
            "name": "webpki-root-certs",
            "direct": false,
            "version": "1.0.7",
            "ecosystem": "crates"
          },
          {
            "name": "winapi-util",
            "direct": false,
            "version": "0.1.11",
            "ecosystem": "crates"
          },
          {
            "name": "windows-core",
            "direct": false,
            "version": "0.62.2",
            "ecosystem": "crates"
          },
          {
            "name": "windows-implement",
            "direct": false,
            "version": "0.60.2",
            "ecosystem": "crates"
          },
          {
            "name": "windows-interface",
            "direct": false,
            "version": "0.59.3",
            "ecosystem": "crates"
          },
          {
            "name": "windows-link",
            "direct": false,
            "version": "0.2.1",
            "ecosystem": "crates"
          },
          {
            "name": "windows-result",
            "direct": false,
            "version": "0.4.1",
            "ecosystem": "crates"
          },
          {
            "name": "windows-strings",
            "direct": false,
            "version": "0.5.1",
            "ecosystem": "crates"
          },
          {
            "name": "windows-sys",
            "direct": false,
            "version": "0.52.0",
            "ecosystem": "crates"
          },
          {
            "name": "windows-sys",
            "direct": false,
            "version": "0.60.2",
            "ecosystem": "crates"
          },
          {
            "name": "windows-sys",
            "direct": false,
            "version": "0.61.2",
            "ecosystem": "crates"
          },
          {
            "name": "windows-targets",
            "direct": false,
            "version": "0.52.6",
            "ecosystem": "crates"
          },
          {
            "name": "windows-targets",
            "direct": false,
            "version": "0.53.5",
            "ecosystem": "crates"
          },
          {
            "name": "windows_aarch64_gnullvm",
            "direct": false,
            "version": "0.52.6",
            "ecosystem": "crates"
          },
          {
            "name": "windows_aarch64_gnullvm",
            "direct": false,
            "version": "0.53.1",
            "ecosystem": "crates"
          },
          {
            "name": "windows_aarch64_msvc",
            "direct": false,
            "version": "0.52.6",
            "ecosystem": "crates"
          },
          {
            "name": "windows_aarch64_msvc",
            "direct": false,
            "version": "0.53.1",
            "ecosystem": "crates"
          },
          {
            "name": "windows_i686_gnu",
            "direct": false,
            "version": "0.52.6",
            "ecosystem": "crates"
          },
          {
            "name": "windows_i686_gnu",
            "direct": false,
            "version": "0.53.1",
            "ecosystem": "crates"
          },
          {
            "name": "windows_i686_gnullvm",
            "direct": false,
            "version": "0.52.6",
            "ecosystem": "crates"
          },
          {
            "name": "windows_i686_gnullvm",
            "direct": false,
            "version": "0.53.1",
            "ecosystem": "crates"
          },
          {
            "name": "windows_i686_msvc",
            "direct": false,
            "version": "0.52.6",
            "ecosystem": "crates"
          },
          {
            "name": "windows_i686_msvc",
            "direct": false,
            "version": "0.53.1",
            "ecosystem": "crates"
          },
          {
            "name": "windows_x86_64_gnu",
            "direct": false,
            "version": "0.52.6",
            "ecosystem": "crates"
          },
          {
            "name": "windows_x86_64_gnu",
            "direct": false,
            "version": "0.53.1",
            "ecosystem": "crates"
          },
          {
            "name": "windows_x86_64_gnullvm",
            "direct": false,
            "version": "0.52.6",
            "ecosystem": "crates"
          },
          {
            "name": "windows_x86_64_gnullvm",
            "direct": false,
            "version": "0.53.1",
            "ecosystem": "crates"
          },
          {
            "name": "windows_x86_64_msvc",
            "direct": false,
            "version": "0.52.6",
            "ecosystem": "crates"
          },
          {
            "name": "windows_x86_64_msvc",
            "direct": false,
            "version": "0.53.1",
            "ecosystem": "crates"
          },
          {
            "name": "wit-bindgen",
            "direct": false,
            "version": "0.51.0",
            "ecosystem": "crates"
          },
          {
            "name": "wit-bindgen",
            "direct": false,
            "version": "0.57.1",
            "ecosystem": "crates"
          },
          {
            "name": "wit-bindgen-core",
            "direct": false,
            "version": "0.51.0",
            "ecosystem": "crates"
          },
          {
            "name": "wit-bindgen-rust",
            "direct": false,
            "version": "0.51.0",
            "ecosystem": "crates"
          },
          {
            "name": "wit-bindgen-rust-macro",
            "direct": false,
            "version": "0.51.0",
            "ecosystem": "crates"
          },
          {
            "name": "wit-component",
            "direct": false,
            "version": "0.244.0",
            "ecosystem": "crates"
          },
          {
            "name": "wit-parser",
            "direct": false,
            "version": "0.244.0",
            "ecosystem": "crates"
          },
          {
            "name": "writeable",
            "direct": false,
            "version": "0.6.3",
            "ecosystem": "crates"
          },
          {
            "name": "xattr",
            "direct": false,
            "version": "1.6.1",
            "ecosystem": "crates"
          },
          {
            "name": "yoke",
            "direct": false,
            "version": "0.8.2",
            "ecosystem": "crates"
          },
          {
            "name": "yoke-derive",
            "direct": false,
            "version": "0.8.2",
            "ecosystem": "crates"
          },
          {
            "name": "zerocopy",
            "direct": false,
            "version": "0.8.48",
            "ecosystem": "crates"
          },
          {
            "name": "zerocopy-derive",
            "direct": false,
            "version": "0.8.48",
            "ecosystem": "crates"
          },
          {
            "name": "zerofrom",
            "direct": false,
            "version": "0.1.7",
            "ecosystem": "crates"
          },
          {
            "name": "zerofrom-derive",
            "direct": false,
            "version": "0.1.7",
            "ecosystem": "crates"
          },
          {
            "name": "zeroize",
            "direct": false,
            "version": "1.8.2",
            "ecosystem": "crates"
          },
          {
            "name": "zerotrie",
            "direct": false,
            "version": "0.2.4",
            "ecosystem": "crates"
          },
          {
            "name": "zerovec",
            "direct": false,
            "version": "0.11.6",
            "ecosystem": "crates"
          },
          {
            "name": "zerovec-derive",
            "direct": false,
            "version": "0.11.3",
            "ecosystem": "crates"
          },
          {
            "name": "zip",
            "direct": false,
            "version": "2.4.2",
            "ecosystem": "crates"
          },
          {
            "name": "zmij",
            "direct": false,
            "version": "1.0.21",
            "ecosystem": "crates"
          },
          {
            "name": "zopfli",
            "direct": false,
            "version": "0.8.3",
            "ecosystem": "crates"
          },
          {
            "name": "ai.platon.pulsar:pulsar-common",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "ai.platon.pulsar:pulsar-dom",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "ai.platon.pulsar:pulsar-llm",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "ai.platon.pulsar:pulsar-mapr",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "ch.qos.logback:logback-classic",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "com.fasterxml.jackson.dataformat:jackson-dataformat-yaml",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "com.google.code.crawler-commons:crawler-commons",
            "direct": false,
            "version": "0.5",
            "ecosystem": "maven"
          },
          {
            "name": "com.ninja-squad:springmockk",
            "direct": false,
            "version": "4.0.2",
            "ecosystem": "maven"
          },
          {
            "name": "commons-codec:commons-codec",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "dev.langchain4j:langchain4j-open-ai",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "io.github.git-commit-id:git-commit-id-maven-plugin",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "io.mockk:mockk",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "io.mockk:mockk",
            "direct": false,
            "version": "1.14.6",
            "ecosystem": "maven"
          },
          {
            "name": "io.mockk:mockk-jvm",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "io.mockk:mockk-jvm",
            "direct": false,
            "version": "1.14.6",
            "ecosystem": "maven"
          },
          {
            "name": "io.modelcontextprotocol:kotlin-sdk-client-jvm",
            "direct": false,
            "version": "0.8.1",
            "ecosystem": "maven"
          },
          {
            "name": "javax.servlet:javax.servlet-api",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "javax.servlet:jstl",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "junit:junit",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "net.sourceforge.nekohtml:nekohtml",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.apache.commons:commons-lang3",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.apache.httpcomponents.client5:httpclient5",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.apache.logging.log4j:log4j-core",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.apache.maven.plugins:maven-compiler-plugin",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.apache.maven.plugins:maven-dependency-plugin",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.apache.maven.plugins:maven-gpg-plugin",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.apache.maven.plugins:maven-jar-plugin",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.apache.maven.plugins:maven-surefire-plugin",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.apache.tomcat.embed:tomcat-embed-jasper",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.aspectj:aspectjweaver",
            "direct": false,
            "version": "1.9.1",
            "ecosystem": "maven"
          },
          {
            "name": "org.codehaus.mojo:exec-maven-plugin",
            "direct": false,
            "version": "3.5.0",
            "ecosystem": "maven"
          },
          {
            "name": "org.hamcrest:hamcrest-library",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.hibernate:hibernate-entitymanager",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.jacoco:jacoco-maven-plugin",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.javassist:javassist",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.javassist:javassist",
            "direct": false,
            "version": "3.31.0-GA",
            "ecosystem": "maven"
          },
          {
            "name": "org.jetbrains.kotlin:kotlin-maven-plugin",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.jetbrains.kotlin:kotlin-test-junit5",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.jetbrains.kotlinx:kotlinx-coroutines-jdk8",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.jetbrains.kotlinx:kotlinx-serialization-json",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.junit.jupiter:junit-jupiter-api",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.junit.jupiter:junit-jupiter-engine",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.junit.jupiter:junit-jupiter-params",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.mockito.kotlin:mockito-kotlin",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.mockito.kotlin:mockito-kotlin",
            "direct": false,
            "version": "5.4.0",
            "ecosystem": "maven"
          },
          {
            "name": "org.mockito:mockito-core",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.mockito:mockito-junit-jupiter",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.slf4j:slf4j-api",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.sonatype.central:central-publishing-maven-plugin",
            "direct": false,
            "version": "0.9.0",
            "ecosystem": "maven"
          },
          {
            "name": "org.springframework.boot:spring-boot-devtools",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.springframework.boot:spring-boot-maven-plugin",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.springframework.boot:spring-boot-maven-plugin",
            "direct": false,
            "version": "3.4.1",
            "ecosystem": "maven"
          },
          {
            "name": "org.springframework.boot:spring-boot-starter-restclient-test",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.springframework.boot:spring-boot-starter-test",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.springframework.boot:spring-boot-starter-tomcat",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.springframework.boot:spring-boot-test",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.springframework.data:spring-data-commons",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.springframework.data:spring-data-jpa",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.springframework:spring-aop",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.springframework:spring-beans",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.springframework:spring-context",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.springframework:spring-core",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.springframework:spring-expression",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.springframework:spring-jdbc",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.springframework:spring-orm",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.springframework:spring-test",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.springframework:spring-tx",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.springframework:spring-web",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.springframework:spring-webmvc",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "xml-apis:xml-apis",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "accepts",
            "direct": false,
            "version": "1.3.8",
            "ecosystem": "npm"
          },
          {
            "name": "array-flatten",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "body-parser",
            "direct": false,
            "version": "1.20.5",
            "ecosystem": "npm"
          },
          {
            "name": "browser4-cli",
            "direct": false,
            "version": "0.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "bytes",
            "direct": false,
            "version": "3.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "call-bind-apply-helpers",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "call-bound",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "content-disposition",
            "direct": false,
            "version": "0.5.4",
            "ecosystem": "npm"
          },
          {
            "name": "content-type",
            "direct": false,
            "version": "1.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "cookie",
            "direct": false,
            "version": "0.7.2",
            "ecosystem": "npm"
          },
          {
            "name": "cookie-signature",
            "direct": false,
            "version": "1.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "cors",
            "direct": false,
            "version": "2.8.6",
            "ecosystem": "npm"
          },
          {
            "name": "debug",
            "direct": false,
            "version": "2.6.9",
            "ecosystem": "npm"
          },
          {
            "name": "depd",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "destroy",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "dunder-proto",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "ee-first",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "encodeurl",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "es-define-property",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "es-errors",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "es-object-atoms",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "escape-html",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "etag",
            "direct": false,
            "version": "1.8.1",
            "ecosystem": "npm"
          },
          {
            "name": "express",
            "direct": false,
            "version": "4.22.2",
            "ecosystem": "npm"
          },
          {
            "name": "finalhandler",
            "direct": false,
            "version": "1.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "forwarded",
            "direct": false,
            "version": "0.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "fresh",
            "direct": false,
            "version": "0.5.2",
            "ecosystem": "npm"
          },
          {
            "name": "function-bind",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "get-intrinsic",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "get-proto",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "gopd",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "has-symbols",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "hasown",
            "direct": false,
            "version": "2.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "http-errors",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "iconv-lite",
            "direct": false,
            "version": "0.4.24",
            "ecosystem": "npm"
          },
          {
            "name": "inherits",
            "direct": false,
            "version": "2.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "ipaddr.js",
            "direct": false,
            "version": "1.9.1",
            "ecosystem": "npm"
          },
          {
            "name": "math-intrinsics",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "media-typer",
            "direct": false,
            "version": "0.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "merge-descriptors",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "methods",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "mime",
            "direct": false,
            "version": "1.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "mime-db",
            "direct": false,
            "version": "1.52.0",
            "ecosystem": "npm"
          },
          {
            "name": "mime-types",
            "direct": false,
            "version": "2.1.35",
            "ecosystem": "npm"
          },
          {
            "name": "ms",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "ms",
            "direct": false,
            "version": "2.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "negotiator",
            "direct": false,
            "version": "0.6.3",
            "ecosystem": "npm"
          },
          {
            "name": "object-assign",
            "direct": false,
            "version": "4.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "object-inspect",
            "direct": false,
            "version": "1.13.4",
            "ecosystem": "npm"
          },
          {
            "name": "on-finished",
            "direct": false,
            "version": "2.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "parseurl",
            "direct": false,
            "version": "1.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "path-to-regexp",
            "direct": false,
            "version": "0.1.13",
            "ecosystem": "npm"
          },
          {
            "name": "proxy-addr",
            "direct": false,
            "version": "2.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "qs",
            "direct": false,
            "version": "6.15.2",
            "ecosystem": "npm"
          },
          {
            "name": "range-parser",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "raw-body",
            "direct": false,
            "version": "2.5.3",
            "ecosystem": "npm"
          },
          {
            "name": "safe-buffer",
            "direct": false,
            "version": "5.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "safer-buffer",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "send",
            "direct": false,
            "version": "0.19.2",
            "ecosystem": "npm"
          },
          {
            "name": "serve-static",
            "direct": false,
            "version": "1.16.3",
            "ecosystem": "npm"
          },
          {
            "name": "setprototypeof",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "side-channel",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "side-channel-list",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "side-channel-map",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "side-channel-weakmap",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "statuses",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "toidentifier",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "type-is",
            "direct": false,
            "version": "1.6.18",
            "ecosystem": "npm"
          },
          {
            "name": "unpipe",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "utils-merge",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "vary",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "anthropic",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "mcp",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          }
        ],
        "collected": true,
        "truncated": false,
        "total_count": 509,
        "direct_count": 125,
        "indirect_count": 384
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 3,
        "merged_prs": 184,
        "open_issues": 0,
        "closed_ratio": 1,
        "closed_issues": 210,
        "closed_unmerged_prs": 92
      },
      "bus_factor": 1,
      "bot_contributors": 2,
      "top_contributors": [
        {
          "type": "User",
          "login": "insidegalaxyeye",
          "commits": 5134,
          "avatar_url": "https://avatars.githubusercontent.com/u/4785531?v=4"
        },
        {
          "type": "User",
          "login": "galaxyeye",
          "commits": 1587,
          "avatar_url": "https://avatars.githubusercontent.com/u/1701451?v=4"
        },
        {
          "type": "User",
          "login": "platonai",
          "commits": 1250,
          "avatar_url": "https://avatars.githubusercontent.com/u/37785921?v=4"
        },
        {
          "type": "User",
          "login": "qodana-bot",
          "commits": 2,
          "avatar_url": "https://avatars.githubusercontent.com/u/139879315?v=4"
        }
      ],
      "contributors_sampled": 4,
      "top_contributor_share": 0.644
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "ci.yml",
        "maintenance.yml",
        "nightly-cli.yml",
        "nightly.yml",
        "release-cli.yml",
        "release.yml",
        "sync-to-oss.yml",
        "test-runtime-bundle.yml",
        "test-smoke-cross-platform.yml"
      ],
      "has_docs_dir": true,
      "linter_configs": [
        ".eslintrc"
      ],
      "has_editorconfig": true,
      "has_linter_config": true,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [
        "Cargo.lock",
        "package-lock.json",
        "pnpm-lock.yaml"
      ],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 9,
            "reason": "binaries present in source code",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": 0,
            "reason": "branch protection not enabled on development/release branches",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": null,
            "reason": "no pull request found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
          },
          {
            "name": "CII-Best-Practices",
            "score": 0,
            "reason": "no effort to earn an OpenSSF best practices badge detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
          },
          {
            "name": "Code-Review",
            "score": 0,
            "reason": "Found 0/30 approved changesets -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 3,
            "reason": "project has 1 contributing companies or organizations -- score normalized to 3",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": 10,
            "reason": "no dangerous workflow patterns detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 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 3 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": 3,
            "reason": "dependency not pinned by hash detected -- score normalized to 3",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 0,
            "reason": "no SAST tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 0,
            "reason": "security policy file not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
          },
          {
            "name": "Signed-Releases",
            "score": 0,
            "reason": "Project has not signed or included provenance with any releases.",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
          },
          {
            "name": "Token-Permissions",
            "score": 0,
            "reason": "detected GitHub workflow tokens with excessive permissions",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 7,
            "reason": "3 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "2c3ce18394293ed10a6727944414c1c7f959f49c",
        "ran_at": "2026-07-25T14:21:41Z",
        "aggregate_score": 4.6,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": false,
      "has_dependabot_config": false
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-07-25T08:39:03Z",
      "oldest_open_prs": [
        {
          "number": 49,
          "created_at": "2023-09-29T22:15:08Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 403,
          "created_at": "2026-04-19T21:20:49Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 404,
          "created_at": "2026-04-19T21:20:56Z",
          "last_comment_at": null,
          "last_comment_author": null
        }
      ],
      "last_merged_pr_at": "2026-06-23T07:05:52Z",
      "ci_last_conclusion": "FAILURE",
      "oldest_open_issues": []
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/platonai/Browser4",
    "host": "github.com",
    "name": "Browser4",
    "owner": "platonai"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "good",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 72,
      "inputs": {
        "security": 47,
        "vitality": 93,
        "community": 62,
        "governance": 61,
        "engineering": 93
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "excellent",
        "name": "Vitality",
        "value": 93,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "excellent",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 95,
            "inputs": {
              "commits_last_year": 5042,
              "human_commit_share": 1,
              "days_since_last_push": 0,
              "active_weeks_last_year": 45
            },
            "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": "45/52 weeks with commits",
                "points": 31.2,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 45
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "5042 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 5042
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "30 commit(s) and 3 issue activity found in the last 90 days -- score normalized to 10",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "excellent",
            "name": "Release discipline",
            "note": null,
            "notes": [],
            "value": 90,
            "inputs": {
              "releases_count": 39,
              "latest_release_tag": "v4.12.0-rc.3",
              "releases_from_tags": false,
              "days_since_latest_release": 5,
              "mean_days_between_releases": 2.4
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "39 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 39
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 5 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 5
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~2.4 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 2.4
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "Project has not signed or included provenance with any releases.",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "excellent",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "cap": null,
              "state": "maintained",
              "guards": [],
              "signals": [],
              "red_flag": false,
              "multiplier_pct": 100,
              "declared_reason": null,
              "unverified_reason": null,
              "unanswered_open_prs": null,
              "unanswered_open_issues": null,
              "days_since_last_merged_pr": null,
              "days_since_last_human_commit": 11,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "last human commit 11 days ago",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_maintained",
                    "params": {
                      "days": 11
                    }
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "moderate",
        "name": "Community & Adoption",
        "value": 62,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "good",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 74,
            "inputs": {
              "forks": 145,
              "stars": 1093,
              "watchers": 19,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "1,093 stars",
                "points": 49.3,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 1093
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "145 forks",
                "points": 18,
                "status": "partial",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 145
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "19 watchers",
                "points": 7,
                "status": "partial",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 19
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "moderate",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 50,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "has_contributing": false,
              "has_issue_template": false,
              "has_code_of_conduct": false,
              "has_pull_request_template": false
            },
            "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": 0,
                "status": "missed",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 0,
                "status": "missed",
                "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": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.3
              }
            ]
          },
          {
            "key": "ecosystem_adoption",
            "band": "moderate",
            "name": "Ecosystem adoption (downloads)",
            "note": "Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "registry_dependents"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 59,
            "inputs": {
              "packages": [
                "browser4-cli"
              ],
              "dependents": null,
              "ecosystems": "npm",
              "total_downloads": null,
              "monthly_downloads": 3322
            },
            "components": [
              {
                "key": "monthly_downloads",
                "name": "Monthly downloads",
                "detail": "3,322 downloads/month across npm",
                "points": 47,
                "status": "partial",
                "details": [
                  {
                    "code": "downloads_monthly",
                    "params": {
                      "count": 3322,
                      "ecosystems": "npm"
                    }
                  }
                ],
                "max_points": 80
              },
              {
                "key": "registry_dependents",
                "name": "Registry dependents",
                "detail": "not reported by this ecosystem",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "not_reported_by_this_ecosystem",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "moderate",
        "name": "Sustainability & Governance",
        "value": 61,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "critical",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 25,
            "inputs": {
              "bus_factor": 1,
              "contributors_sampled": 4,
              "top_contributor_share": 0.644
            },
            "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 64% of commits",
                "points": 8,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 64
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "4 contributors",
                "points": 5.4,
                "status": "partial",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 4
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 1 contributing companies or organizations -- score normalized to 3",
                "points": 3,
                "status": "partial",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "good",
            "name": "Issue & PR responsiveness",
            "note": null,
            "notes": [],
            "value": 72,
            "inputs": {
              "merged_prs": 184,
              "open_issues": 0,
              "closed_issues": 210,
              "issue_closed_ratio": 1,
              "closed_unmerged_prs": 92
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "100% of issues closed",
                "points": 46.8,
                "status": "met",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 100
                    }
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "184/276 decided PRs merged",
                "points": 25.5,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 184,
                      "decided": 276
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 0/30 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "moderate",
            "name": "Ownership & stewardship",
            "note": "Excluded from scoring (no data or not applicable): Verified domain. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "verified_domain"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 62,
            "inputs": {
              "followers": 154,
              "owner_type": "User",
              "is_verified": null,
              "owner_login": "platonai",
              "public_repos": 42,
              "account_age_days": 3043
            },
            "components": [
              {
                "key": "ownership_backing",
                "name": "Ownership backing",
                "detail": "personal (user) account",
                "points": 10,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_personal",
                    "params": {}
                  }
                ],
                "max_points": 30
              },
              {
                "key": "verified_domain",
                "name": "Verified domain",
                "detail": "not applicable to user accounts",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "not_applicable_to_user_accounts",
                    "params": {}
                  }
                ],
                "max_points": 20
              },
              {
                "key": "owner_reach",
                "name": "Owner reach",
                "detail": "154 followers of platonai",
                "points": 15.7,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 154,
                      "login": "platonai"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "42 public repos, account ~8 yr old",
                "points": 23.9,
                "status": "partial",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 42
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 8
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "excellent",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "browser4-cli"
              ],
              "ecosystems": "npm",
              "any_deprecated": false,
              "min_days_since_publish": 11
            },
            "components": [
              {
                "key": "published_resolvable",
                "name": "Published & resolvable",
                "detail": "1 package(s) on npm",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "packages_published",
                    "params": {
                      "count": 1,
                      "ecosystems": "npm"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "publish_recency",
                "name": "Publish recency",
                "detail": "latest publish 11 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 11
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "33 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 33
                    }
                  }
                ],
                "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": 93,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "excellent",
            "name": "Engineering practices",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: CI-Tests. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_ci_tests"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 88,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": true,
              "has_linter_config": true,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "9 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 9
                    }
                  }
                ],
                "max_points": 24
              },
              {
                "key": "tests_present",
                "name": "Tests present",
                "detail": null,
                "points": 24,
                "status": "met",
                "details": [],
                "max_points": 24
              },
              {
                "key": "linter_config",
                "name": "Linter config",
                "detail": ".eslintrc",
                "points": 16,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": ".eslintrc"
                    }
                  }
                ],
                "max_points": 16
              },
              {
                "key": "pre_commit_hooks",
                "name": "Pre-commit hooks",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 9.6
              },
              {
                "key": "editorconfig",
                "name": ".editorconfig",
                "detail": null,
                "points": 6.4,
                "status": "met",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "no pull request found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "excellent",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "topics": [
                "agentic-ai",
                "agentic-browser",
                "ai-browser",
                "browser-agent",
                "browser-use-agent",
                "browser-infra"
              ],
              "has_wiki": true,
              "homepage": "https://browser4.io",
              "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://browser4.io",
                "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": "6 topics",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "topics_count",
                    "params": {
                      "count": 6
                    }
                  }
                ],
                "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": "at_risk",
        "name": "Security",
        "value": 47,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "at_risk",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): CI-Tests. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "ci_tests"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 46,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 17,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 1,
              "scorecard_aggregate": 4.6
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "binaries present in source code",
                "points": 6.8,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "branch protection not enabled on development/release branches",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "no pull request found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "Found 0/30 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 1 contributing companies or organizations -- score normalized to 3",
                "points": 0.8,
                "status": "partial",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no dangerous workflow patterns detected",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "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 3 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 3",
                "points": 1.5,
                "status": "partial",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "no SAST tool detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file not detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "Project has not signed or included provenance with any releases.",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "token_permissions",
                "name": "Token-Permissions",
                "detail": "detected GitHub workflow tokens with excessive permissions",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "3 existing vulnerabilities detected",
                "points": 5.2,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "dependency_advisories",
            "band": "moderate",
            "name": "Dependency advisories",
            "note": "Excluded from scoring (no data or not applicable): Indirect dependencies free of known advisories. Remaining weights renormalized. Matched 387 resolved dependencies against OSV; 122 could not be assessed (no resolved version, an unsupported ecosystem, or beyond the reported package list). This repository publishes no package the index resolves, so the repository dependency graph was assessed instead. That graph mixes development and test pins with shipped dependencies, so only the declared runtime dependencies are scored; transitive findings are reported as context and excluded from the score. Reachability is not analyzed.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "indirect_dependencies_free_of_known_advisories"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              },
              {
                "code": "advisories_scope_repository",
                "params": {
                  "assessed": 387
                }
              },
              {
                "code": "advisories_unassessed",
                "params": {
                  "count": 122
                }
              },
              {
                "code": "advisories_repo_graph_caveat",
                "params": {}
              },
              {
                "code": "advisories_reachability",
                "params": {}
              }
            ],
            "value": 53,
            "inputs": {
              "source": "osv",
              "advisories": 54,
              "affected_packages": 4,
              "assessed_packages": 387,
              "unassessed_packages": 122,
              "affected_by_severity": "critical 1, high 1, low 1, unknown 1",
              "direct_affected_packages": 1
            },
            "components": [
              {
                "key": "direct_dependencies_free_of_known_advisories",
                "name": "Direct dependencies free of known advisories",
                "detail": "1 affected: com.fasterxml.jackson.core:jackson-databind 2.9.9.3 (critical 9.8)",
                "points": 7.6,
                "status": "partial",
                "details": [
                  {
                    "code": "advisories_affected",
                    "params": {
                      "count": 1,
                      "packages": "com.fasterxml.jackson.core:jackson-databind 2.9.9.3 (critical 9.8)"
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "indirect_dependencies_free_of_known_advisories",
                "name": "Indirect dependencies free of known advisories",
                "detail": "transitive set not separable from development and test dependencies in this scope",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "advisories_scope_not_separable",
                    "params": {}
                  }
                ],
                "max_points": 25
              },
              {
                "key": "no_advisories_left_outstanding",
                "name": "No advisories left outstanding",
                "detail": "1 advisory-carrying package(s) unaddressed past 90 days; oldest published 2496 days ago",
                "points": 32.1,
                "status": "partial",
                "details": [
                  {
                    "code": "advisories_stale",
                    "params": {
                      "days": 90,
                      "count": 1,
                      "oldest": 2496
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "malicious_dependencies",
            "band": "excellent",
            "name": "Malicious dependencies",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "source": "osv",
              "meaning": "reported as a malicious package by the OpenSSF corpus; the remedy is removal or moving off the compromised name, never an upgrade of the same artifact. Versions the registry has since pulled are listed but not scored",
              "packages": [],
              "red_flag": false,
              "assessed_packages": 387,
              "malicious_packages": 0,
              "direct_malicious_packages": 0,
              "withdrawn_malicious_packages": 0,
              "installable_malicious_packages": 0
            },
            "components": [
              {
                "key": "no_dependency_reported_as_a_malicious_package",
                "name": "No dependency reported as a malicious package",
                "detail": "no dependency is reported as a malicious package",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "no_malicious_dependencies",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          },
          {
            "key": "high_risk_jurisdiction_exposure",
            "band": "excellent",
            "name": "High-Risk Jurisdiction Exposure",
            "note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
            "notes": [
              {
                "code": "jurisdiction_evidence_limits",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "meaning": "self-published location evidence; not nationality or citizenship",
              "red_flag": false,
              "exposures": [],
              "policy_countries": [
                "Russia",
                "Iran",
                "North Korea"
              ],
              "review_only_matches": 0,
              "assessed_self_published_locations": 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": "good",
        "name": "AI Readiness",
        "value": 81,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "excellent",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 85,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 0.88,
              "agent_instruction_files": [
                "AGENTS.md",
                "skills/browser4-cli/references/agent.md"
              ],
              "agent_instruction_max_bytes": 27338
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "AGENTS.md, skills/browser4-cli/references/agent.md",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "AGENTS.md, skills/browser4-cli/references/agent.md"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "machine_readable_docs_llms_txt",
                "name": "Machine-readable docs (llms.txt)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "legible_commit_history",
                "name": "Legible commit history",
                "detail": "88 of 100 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 88,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "good",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 80,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "Cargo.lock",
                "package-lock.json",
                "pnpm-lock.yaml"
              ],
              "has_dockerfile": true,
              "typed_language": true,
              "bootstrap_files": [],
              "has_devcontainer": false,
              "has_linter_config": true,
              "typecheck_configs": [],
              "agent_commit_share": 0.44,
              "toolchain_manifests": [
                "browser4-agent-tools/pom.xml",
                "browser4-agentic/pom.xml",
                "browser4-apps/browser4-bundle/pom.xml",
                "browser4-apps/browser4-standalone/pom.xml",
                "browser4-apps/pom.xml",
                "browser4-boot/pom.xml",
                "browser4-core/browser4-browser/pom.xml",
                "browser4-core/browser4-common/pom.xml",
                "browser4-core/browser4-plugins/browser4-parse/pom.xml",
                "browser4-core/browser4-plugins/browser4-protocol/pom.xml",
                "browser4-core/browser4-plugins/pom.xml",
                "browser4-core/browser4-resources/pom.xml",
                "browser4-core/browser4-skeleton/pom.xml",
                "browser4-core/pom.xml",
                "browser4-dependencies/pom.xml",
                "browser4-rest/pom.xml",
                "browser4-tests/browser4-rest-tests/pom.xml",
                "browser4-tests/browser4-tests-common/pom.xml",
                "browser4-tests/pom.xml",
                "browser4-tests/pulsar-e2e-tests/pom.xml",
                "browser4-tests/pulsar-it-tests/pom.xml",
                "cli/browser4-cli/Cargo.toml",
                "examples/browser4-examples/pom.xml",
                "examples/pom.xml",
                "pom.xml"
              ],
              "dependency_bot_commit_share": 0
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": "browser4-agent-tools/pom.xml, browser4-agentic/pom.xml, browser4-apps/browser4-bundle/pom.xml (toolchain convention, no task runner)",
                "points": 12.6,
                "status": "partial",
                "details": [
                  {
                    "code": "toolchain_convention",
                    "params": {
                      "files": "browser4-agent-tools/pom.xml, browser4-agentic/pom.xml, browser4-apps/browser4-bundle/pom.xml"
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "automated_tests",
                "name": "Automated tests",
                "detail": null,
                "points": 22,
                "status": "met",
                "details": [],
                "max_points": 22
              },
              {
                "key": "lint_format_config",
                "name": "Lint / format config",
                "detail": ".eslintrc",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": ".eslintrc"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": "Kotlin (statically typed)",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "Kotlin"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": "Dockerfile, lockfile",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "Dockerfile, lockfile"
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "44 of the last 100 commits agent-authored or agent-credited",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "agent_authored_commits",
                    "params": {
                      "count": 44,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "no automated dependency updates observed",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_dependency_automation",
                    "params": {}
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 3",
                "points": 3,
                "status": "partial",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "excellent",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 98,
            "inputs": {
              "primary_language": "Kotlin",
              "largest_source_bytes": 1073878,
              "source_files_sampled": 809,
              "oversized_source_files": 30
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "Kotlin (statically typed)",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "Kotlin"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "30/809 source files over 60KB",
                "points": 53,
                "status": "partial",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 809,
                      "oversized": 30
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          },
          {
            "key": "ai_interfaces",
            "band": "moderate",
            "name": "Machine-readable interfaces",
            "note": null,
            "notes": [],
            "value": 60,
            "inputs": {
              "example_dirs": [
                "examples",
                "sample"
              ],
              "has_mcp_signal": true,
              "api_schema_files": []
            },
            "components": [
              {
                "key": "api_schema_openapi_graphql_proto",
                "name": "API schema (OpenAPI/GraphQL/proto)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "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, sample",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "examples, sample"
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
      }
    ],
    "metrics_version": "1.13.0"
  },
  "warnings": [
    "Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token",
    "Could not fetch maven package 'ai.platon.pulsar:browser4-boot' from its registry",
    "Could not fetch maven package 'ai.platon.pulsar:browser4-rest' from its registry",
    "Could not fetch maven package 'ai.platon.pulsar:browser4-agentic' from its registry",
    "Could not fetch maven package 'ai.platon.pulsar:browser4-agent-tools' from its registry"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-25T14:21:52.502350Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/p/platonai/Browser4.svg",
  "full_name": "platonai/Browser4",
  "license_state": "standard",
  "license_spdx": "Apache-2.0"
}

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

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

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