Öffentliches Register
Software-GesundheitsberichtSchema 0.27.0 · Metriken 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 Sterne⑂ 145 Forksseit März 2018Auf GitHub ansehen ↗

platonai/Browser4 erreicht einen Gesundheitsindex von 72 von 100 und liegt damit im Bereich Gut. Am stärksten schneidet es bei Vitality (93/100) ab, am schwächsten bei Security (47/100). Zuletzt heute aktualisiert. Ein einzelner Mitwirkender trägt den Großteil der jüngsten Arbeit.

72
gesamt / 100
Gut

Software-Gesundheitsindex

Metriken werden auf einer Skala von 1–100 in gewichtete Kategorien gruppiert. Der Gesamtwert beginnt als ihr Mittel; sobald öffentliche Evidenz die Richtlinie für Hochrisikojurisdiktionen auslöst, wird die Bewertung angepasst und erhält die Obergrenze 49 (Gefährdet). AI Readiness liegt außerhalb.

72
Exzellent85-100Vorbildlich; erfüllt im Wesentlichen alle geprüften Kriterien
Gut70-84Gesund; geringfügige Lücken
Mittel50-69Akzeptabel mit deutlichen Lücken; Überprüfung empfohlen
Gefährdet30-49Erhebliche Schwächen; eine Übernahme erfordert Vorsicht
Kritisch1-29Schwerwiegende Probleme (aufgegeben, nur ein Maintainer, keine Hygiene)
VitalitätCommunity &VerbreitungNachhaltigkeit &GovernanceEngineering-QualitätSicherheitAI Readiness

Bewertungsprofil

Jede Achse ist eine Kategorie. Die Form zählt mehr als der Durchschnitt — ein gesundes Projekt füllt die gesamte Fläche, während ein Profil aus Spitzen und Kratern bedeutet, dass Stärke in einer Dimension Risiken in einer anderen verdeckt.

Eigentümerschaft

PlatonAIPersönliches Konto
154 Follower42 öffentliche Reposseit März 2018

Dieses Repository gehört einem persönlichen Konto. Ein Projekt mit nur einem Eigentümer trägt ein höheres Kontinuitätsrisiko als ein organisationsgetragenes.

Paket-Ökosysteme

RegistryPaketVersionDownloads / MonatVersionenZuletzt veröffentlichtTags
npmbrowser4-cli0.1.323.32233vor 11 Tagenbrowserbrowser4browser4-cliautomationheadlesschromecdpcliagent

Metriken nach Kategorie

Vitalität

Lebt das Projekt — wird Code geschrieben und werden Releases ausgeliefert?

93Exzellent · 22 % des Gesamtindex
Wie die Bewertung erfolgt
36/36Push-Aktualität — letzter Push vor 0 Tagen
31.2/36Commit-Rhythmus — 45/52 Wochen mit Commits
18/18Commit-Volumen — 5.042 Commits im letzten Jahr
10/10OpenSSF Scorecard: Maintained — 30 commit(s) and 3 issue activity found in the last 90 days -- score normalized to 10
Verwendete Eingangsdaten
commits_last_year5.042
human_commit_share1
days_since_last_push0
active_weeks_last_year45
Wie die Bewertung erfolgt
27/27Liefert Releases aus — 39 Releases veröffentlicht
36/36Release-Aktualität — letztes Release vor 5 Tagen
27/27Release-Rhythmus — ein Release etwa alle 2,4 Tage
0/10OpenSSF Scorecard: Signed-Releases — Project has not signed or included provenance with any releases.
Verwendete Eingangsdaten
releases_count39
latest_release_tagv4.12.0-rc.3
releases_from_tagsnein
days_since_latest_release5
mean_days_between_releases2,4

Community & Verbreitung

Hat das Projekt Nutzer, Downloads, Aufmerksamkeit und ein einladendes Umfeld für Beitragende?

62Mittel · 18 % des Gesamtindex
Wie die Bewertung erfolgt
49.3/60Stars — 1.093 Stars
18/25Forks — 145 Forks
7/15Watcher — 19 Watcher
Verwendete Eingangsdaten
forks145
stars1.093
watchers19
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
Wie die Bewertung erfolgt
22.5/22.5README
22.5/22.5Lizenz — anerkannte Lizenz (Apache-2.0)
0/18CONTRIBUTING-Leitfaden
0/13.5Verhaltenskodex
0/7.2Issue-Vorlage
0/6.3PR-Vorlage
Verwendete Eingangsdaten
has_readmeja
has_licenseja
has_contributingnein
has_issue_templatenein
has_code_of_conductnein
has_pull_request_templatenein
Wie die Bewertung erfolgt
47/80Downloads pro Monat — 3.322 Downloads/Monat über npm
0/20Abhängige in der Registry — von diesem Ökosystem nicht ausgewiesen
Verwendete Eingangsdaten
packagesbrowser4-cli
dependents
ecosystemsnpm
total_downloads
monthly_downloads3.322
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): Abhängige in der Registry. Die verbleibenden Gewichte wurden renormalisiert.

Nachhaltigkeit & Governance

Überdauert das Projekt die Menschen, die es tragen — Bus-Faktor, Reaktionsfähigkeit, Trägerschaft und Paketpflege?

61Mittel · 24 % des Gesamtindex
Wie die Bewertung erfolgt
9/54Bus-Faktor — 1 Beitragende decken die Hälfte aller Commits ab
8/22.5Commit-Verteilung — wichtigste beitragende Person verfasste 64 % der Commits
5.4/13.5Breite der Beitragenden — 4 Beitragende
3/10OpenSSF Scorecard: Contributors — project has 1 contributing companies or organizations -- score normalized to 3
Verwendete Eingangsdaten
bus_factor1
contributors_sampled4
top_contributor_share0,644
Wie die Bewertung erfolgt
46.8/46.8Issue-Lösungsquote — 100 % der Issues geschlossen
25.5/38.3PR-Annahme — 184/276 entschiedene PRs gemergt
0/15OpenSSF Scorecard: Code-Review — Found 0/30 approved changesets -- score normalized to 0
Verwendete Eingangsdaten
merged_prs184
open_issues0
closed_issues210
issue_closed_ratio1
closed_unmerged_prs92
Wie die Bewertung erfolgt
10/30Organisatorische Trägerschaft — persönliches (Nutzer-)Konto
0/20Verifizierte Domain — für Nutzerkonten nicht anwendbar
15.7/25Reichweite des Inhabers — 154 Follower von platonai
23.9/25Kontohistorie — 42 öffentliche Repos, Kontoalter ca. 8 Jahre
Verwendete Eingangsdaten
followers154
owner_typeUser
is_verified
owner_loginplatonai
public_repos42
account_age_days3.043
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): Verifizierte Domain. Die verbleibenden Gewichte wurden renormalisiert.

Paketpflege

100Exzellent
Wie die Bewertung erfolgt
25/25Veröffentlicht & auflösbar — 1 Paket(e) auf npm
35/35Veröffentlichungsaktualität — letzte Veröffentlichung vor 11 Tagen
20/20Versionshistorie — 33 veröffentlichte Versionen
20/20Nicht veraltet — aktiv, nicht veraltet oder zurückgezogen
Verwendete Eingangsdaten
packagesbrowser4-cli
ecosystemsnpm
any_deprecatednein
min_days_since_publish11

Engineering-Qualität

Sind grundlegende Engineering- und Dokumentationspraktiken vorhanden?

93Exzellent · 20 % des Gesamtindex
Wie die Bewertung erfolgt
24/24CI-Workflows — 9 Workflow(s)
24/24Tests vorhanden
16/16Linter-Konfiguration — .eslintrc
0/9.6Pre-Commit-Hooks
6.4/6.4.editorconfig
0/20OpenSSF Scorecard: CI-Tests — keine Daten
Verwendete Eingangsdaten
has_cija
has_testsja
has_editorconfigja
has_linter_configja
has_precommit_confignein
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): OpenSSF Scorecard: CI-Tests. Die verbleibenden Gewichte wurden renormalisiert.

Dokumentation

100Exzellent
Wie die Bewertung erfolgt
30/30README
25/25Dokumentationsverzeichnis
15/15Dokumentations-/Homepage-Site — https://browser4.io
10/10Repository-Beschreibung
10/10Topics — 6 Topics
10/10Wiki
Verwendete Eingangsdaten
topicsagentic-ai, agentic-browser, ai-browser, browser-agent, browser-use-agent, browser-infra
has_wikija
homepagehttps://browser4.io
has_readmeja
has_docs_dirja
has_descriptionja

Sicherheit

Sind die sichtbaren Sicherheits- und Lieferkettenpraktiken belastbar, ohne ungeklärte Exposition gegenüber Hochrisikojurisdiktionen?

47Gefährdet · 16 % des Gesamtindex

Sicherheitslage

46Gefährdet
Wie die Bewertung erfolgt
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 — keine Daten
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.5Lizenz — 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
Verwendete Eingangsdaten
sourceopenssf_scorecard
checks_evaluated17
scorecard_versionv5.5.0
checks_inconclusive1
scorecard_aggregate4,6
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): ci_tests. Die verbleibenden Gewichte wurden renormalisiert.
Wie die Bewertung erfolgt
7.6/35Direkte Abhängigkeiten ohne bekannte Advisories — 1 betroffen: com.fasterxml.jackson.core:jackson-databind 2.9.9.3 (critical 9.8)
0/25Indirekte Abhängigkeiten ohne bekannte Advisories — transitive Menge in diesem Bereich nicht von Entwicklungs- und Test-Abhängigkeiten trennbar
32.1/40Keine offenen Advisories — 1 Paket(e) mit Advisory seit über 90 Tagen unbehandelt; ältestes vor 2.496 Tagen veröffentlicht
Verwendete Eingangsdaten
sourceosv
advisories54
affected_packages4
assessed_packages387
unassessed_packages122
affected_by_severitycritical 1, high 1, low 1, unknown 1
direct_affected_packages1
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): Indirekte Abhängigkeiten ohne bekannte Advisories. Die verbleibenden Gewichte wurden renormalisiert. 387 aufgelöste Abhängigkeiten wurden mit OSV abgeglichen. 122 konnten nicht bewertet werden — keine aufgelöste Version, ein nicht unterstütztes Ökosystem oder außerhalb der ausgewiesenen Paketliste. Dieses Repository veröffentlicht kein Paket, das der Index auflöst; bewertet wurde daher der Abhängigkeitsgraph des Repositorys. Dieser Graph vermischt Entwicklungs- und Test-Pins mit ausgelieferten Abhängigkeiten, daher werden nur die deklarierten Laufzeit-Abhängigkeiten bewertet; transitive Befunde werden als Kontext ausgewiesen und fließen nicht in die Bewertung ein. Erreichbarkeit wird nicht analysiert.

AI Readiness

Wie gut ist das Repository dafür ausgestattet, mit KI-Coding-Agenten entwickelt und gepflegt zu werden? Ein unabhängiges, experimentelles Badge — Gewicht 0,0, es wird eigenständig ausgewiesen und verändert den Gesamt-Gesundheitswert nicht.

81Gut · 0 % des Gesamtindex
Wie die Bewertung erfolgt
45/45Agentenanweisungen — AGENTS.md, skills/browser4-cli/references/agent.md
0/15Maschinenlesbare Doku (llms.txt)
40/40Lesbare Commit-Historie — 88 von 100 menschlichen Commits benennen ihre Absicht (strukturierter Betreff oder erläuternder Text)
Verwendete Eingangsdaten
has_llms_txtnein
legible_history_share0,88
agent_instruction_filesAGENTS.md, skills/browser4-cli/references/agent.md
agent_instruction_max_bytes27.338
Wie die Bewertung erfolgt
12.6/18Bootstrap mit einem Befehl — browser4-agent-tools/pom.xml, browser4-agentic/pom.xml, browser4-apps/browser4-bundle/pom.xml (Toolchain-Konvention, kein Task-Runner)
22/22Automatisierte Tests
11/11Lint-/Format-Konfiguration — .eslintrc
11/11Statische Typprüfung — Kotlin (statisch typisiert)
10/10Reproduzierbare Umgebung — Dockerfile, lockfile
10/10Belegte Agentenpraxis — 44 der letzten 100 Commits von Agenten verfasst oder ihnen zugeschrieben
0/8Automatisierte Wartung — keine automatisierten Abhängigkeits-Updates beobachtet
3/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 3
Verwendete Eingangsdaten
has_nixnein
has_testsja
lockfilesCargo.lock, package-lock.json, pnpm-lock.yaml
has_dockerfileja
typed_languageja
bootstrap_files
has_devcontainernein
has_linter_configja
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
Wie die Bewertung erfolgt
45/45Typprüfbarer Code — Kotlin (statisch typisiert)
53/55Handhabbare Dateigrößen — 30/809 Quelldateien über 60 KB
Verwendete Eingangsdaten
primary_languageKotlin
largest_source_bytes1.073.878
source_files_sampled809
oversized_source_files30
Wie die Bewertung erfolgt
0/40API-Schema (OpenAPI/GraphQL/proto)
20/20MCP-Server
40/40Lauffähige Beispiele — examples, sample
Verwendete Eingangsdaten
example_dirsexamples, sample
has_mcp_signalja
api_schema_files

Eckdaten

1.093GitHub-Sterne
4Mitwirkende
5.042Commits, letzte 12 Monate
0Tage seit letztem Push
39Releases
1Bus-Faktor
0offene Issues
Maven, npmPaket-Ökosysteme

Warnungen zur Datenerhebung

  • 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

Weitere Details

Stern- und Fork-Verlauf 0 ★ / 145 ⇿
0Sterne
145Forks
39Releases

Wann jeder Stern und Fork hinzugefügt wurde, von GitHub erfasst und nach Tagen gruppiert. Das kumulierte Wachstum steht direkt über den täglichen Zugängen, aus denen es besteht, sodass beide gegeneinander lesbar sind: stetiger organischer Zuwachs sieht ganz anders aus als ein abrupter, kurzlebiger Ausschlag. Wo dieser Unterschied messbar ist, wird er als Wachstumsauthentizität ausgewiesen.

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

Jeder Punkt umfasst 8 Tage.

OpenSSF Scorecard 4.6 / 10
4.6Gesamtwert

Unabhängige, werkzeugneutrale Sicherheitsbewertung durch das quelloffene OpenSSF Scorecard. Jede Prüfung honoriert eine Sicherheits-Praxis, nicht das Werkzeug eines bestimmten Anbieters. Prüfungen, die Scorecard nicht ermitteln konnte, sind mit k. A. markiert und vom Sicherheitswert ausgeschlossen (nie als null gezählt).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
k. A.CI-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
Direkte Abhängigkeiten 116
RegistryPaketVersionsvorgabeManifest
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
Alle Abhängigkeiten 509

Vollständig aufgelöster Abhängigkeitssatz aus dem GitHub-Abhängigkeitsgraphen: 125 direkte und 384 indirekte (transitive) Pakete. Die transitive Hülle ist vollständig, wenn das Repository eine Lockfile eincheckt.

RegistryPaketVersionBeziehung
Mavenai.platon.cdt:cdt-kotlin-clientdirekt
Mavenai.platon.cdt:cdt-kotlin-client4.8.0direkt
Mavenai.platon.pulsar:browser4-agent-toolsdirekt
Mavenai.platon.pulsar:browser4-agent-tools4.11.22-SNAPSHOTdirekt
Mavenai.platon.pulsar:browser4-agenticdirekt
Mavenai.platon.pulsar:browser4-agentic4.11.22-SNAPSHOTdirekt
Mavenai.platon.pulsar:browser4-bootdirekt
Mavenai.platon.pulsar:browser4-boot4.11.22-SNAPSHOTdirekt
Mavenai.platon.pulsar:browser4-browserdirekt
Mavenai.platon.pulsar:browser4-browser4.11.22-SNAPSHOTdirekt
Mavenai.platon.pulsar:browser4-commondirekt
Mavenai.platon.pulsar:browser4-common4.11.22-SNAPSHOTdirekt
Mavenai.platon.pulsar:browser4-dependencies4.11.22-SNAPSHOTdirekt
Mavenai.platon.pulsar:browser4-parsedirekt
Mavenai.platon.pulsar:browser4-parse4.11.22-SNAPSHOTdirekt
Mavenai.platon.pulsar:browser4-plugins4.11.22-SNAPSHOTdirekt
Mavenai.platon.pulsar:browser4-protocoldirekt
Mavenai.platon.pulsar:browser4-protocol4.11.22-SNAPSHOTdirekt
Mavenai.platon.pulsar:browser4-resourcesdirekt
Mavenai.platon.pulsar:browser4-resources4.11.22-SNAPSHOTdirekt
Mavenai.platon.pulsar:browser4-restdirekt
Mavenai.platon.pulsar:browser4-rest4.11.22-SNAPSHOTdirekt
Mavenai.platon.pulsar:browser4-skeletondirekt
Mavenai.platon.pulsar:browser4-skeleton4.11.22-SNAPSHOTdirekt
Mavenai.platon.pulsar:browser4-tests-commondirekt
Mavenai.platon.pulsar:browser4-tests-common4.11.22-SNAPSHOTdirekt
Mavenai.platon.pulsar:pulsar-bomdirekt
Mavenai.platon.pulsar:pulsar-bom4.8.5direkt
Mavenai.platon.pulsar:pulsar-h2direkt
Mavenai.platon.pulsar:pulsar-h21.4.197direkt
Mavenai.platon.pulsar:pulsar-it-tests4.11.22-SNAPSHOTdirekt
Mavenai.platon.pulsar:pulsar-jsoupdirekt
Mavenai.platon.pulsar:pulsar-jsoup1.14.3direkt
Mavenai.platon.pulsar:pulsar-persistdirekt
Mavenai.platon.pulsar:pulsar-qldirekt
Mavenai.platon.pulsar:pulsar-ql-commondirekt
Mavencom.beust:jcommanderdirekt
Mavencom.beust:jcommander1.82direkt
Mavencom.fasterxml.jackson.core:jackson-annotationsdirekt
Mavencom.fasterxml.jackson.core:jackson-coredirekt
Mavencom.fasterxml.jackson.core:jackson-databinddirekt
Mavencom.fasterxml.jackson.core:jackson-databind2.9.9.3direkt
Mavencom.fasterxml.jackson.module:jackson-module-kotlindirekt
Mavencom.github.ben-manes.caffeine:caffeinedirekt
Mavencom.github.oshi:oshi-coredirekt
Mavencom.github.oshi:oshi-core6.6.6direkt
Mavencom.google.code.gson:gsondirekt
Mavencom.google.guava:guavadirekt
Mavencom.google.guava:guava33.2.1-jredirekt
Mavencom.squareup.okhttp3:okhttp4.12.0direkt
Mavencom.udojava:EvalEx2.0direkt
Mavencommons-io:commons-io2.16.1direkt
Mavencommons-logging:commons-logging1.3.2direkt
Mavendev.langchain4j:langchain4j-bom1.5.0direkt
Mavenio.dropwizard.metrics:metrics-coredirekt
Mavenio.dropwizard.metrics:metrics-core4.2.12direkt
Mavenio.dropwizard.metrics:metrics-graphitedirekt
Mavenio.dropwizard.metrics:metrics-graphite4.2.12direkt
Mavenio.dropwizard.metrics:metrics-jmx4.2.12direkt
Mavenio.dropwizard.metrics:metrics-json4.2.12direkt
Mavenio.ktor:ktor-client-ciodirekt
Mavenio.ktor:ktor-client-cio3.2.3direkt
Mavenio.ktor:ktor-client-cio-jvmdirekt
Mavenio.ktor:ktor-client-cio-jvm3.2.3direkt
Mavenio.ktor:ktor-client-coredirekt
Mavenio.ktor:ktor-client-core3.2.3direkt
Mavenio.ktor:ktor-client-core-jvmdirekt
Mavenio.ktor:ktor-client-core-jvm3.2.3direkt
Mavenio.ktor:ktor-client-websocketsdirekt
Mavenio.ktor:ktor-client-websockets3.2.3direkt
Mavenio.ktor:ktor-serialization-kotlinx-json-jvm3.2.3direkt
Mavenio.micrometer:micrometer-coredirekt
Mavenio.micrometer:micrometer-registry-prometheusdirekt
Mavenio.modelcontextprotocol:kotlin-sdk0.8.1direkt
Mavenio.modelcontextprotocol:kotlin-sdk-core-jvm0.8.1direkt
Mavenio.modelcontextprotocol:kotlin-sdk-server-jvm0.8.1direkt
Mavenio.opentelemetry.semconv:opentelemetry-semconvdirekt
Mavenio.opentelemetry.semconv:opentelemetry-semconv1.37.0direkt
Mavenio.opentelemetry:opentelemetry-apidirekt
Mavenio.opentelemetry:opentelemetry-exporter-otlpdirekt
Mavenio.opentelemetry:opentelemetry-sdkdirekt
Mavenjakarta.annotation:jakarta.annotation-apidirekt
Mavenorg.apache.commons:commons-collections4direkt
Mavenorg.apache.commons:commons-collections44.4direkt
Mavenorg.apache.commons:commons-compress1.26.2direkt
Mavenorg.apache.commons:commons-math3direkt
Mavenorg.apache.commons:commons-math33.6.1direkt
Mavenorg.apache.commons:commons-numbers-bom1.1direkt
Mavenorg.apache.commons:commons-text1.11.0direkt
Mavenorg.apache.httpcomponents:httpclientdirekt
Mavenorg.apache.httpcomponents:httpclient4.5.13direkt
Mavenorg.apache.httpcomponents:httpcore4.4.15direkt
Mavenorg.apache.lucene:lucene-analyzers-common7.3.1direkt
Mavenorg.apache.lucene:lucene-analyzers-smartcn7.3.1direkt
Mavenorg.apache.lucene:lucene-core7.3.1direkt
Mavenorg.apache.poi:poi5.3.0direkt
Mavenorg.apache.poi:poi-ooxml5.4.0direkt
Mavenorg.apache.tika:tika-coredirekt
Mavenorg.apache.tika:tika-core3.2.2direkt
Mavenorg.apache.tika:tika-parser-html-moduledirekt
Mavenorg.apache.tika:tika-parser-html-module3.2.2direkt
Mavenorg.apache.tika:tika-parsers3.2.2direkt
Mavenorg.jetbrains.kotlin:kotlin-bomdirekt
Mavenorg.jetbrains.kotlin:kotlin-maven-allopendirekt
Mavenorg.jetbrains.kotlin:kotlin-maven-noargdirekt
Mavenorg.jetbrains.kotlin:kotlin-reflectdirekt
Mavenorg.jetbrains.kotlin:kotlin-serializationdirekt
Mavenorg.jetbrains.kotlin:kotlin-stdlibdirekt
Mavenorg.jetbrains.kotlinx:kotlinx-coroutines-bom1.10.2direkt
Mavenorg.jetbrains.kotlinx:kotlinx-coroutines-coredirekt
Mavenorg.jetbrains.kotlinx:kotlinx-coroutines-reactordirekt
Mavenorg.jgrapht:jgrapht-core1.0.1direkt
Mavenorg.jgrapht:jgrapht-ext1.0.1direkt
Mavenorg.nibor.autolink:autolink0.11.0direkt
Mavenorg.nield:kotlin-statistics1.2.1direkt
Mavenorg.perf4j:perf4j0.9.16direkt
Mavenorg.springframework.boot:spring-bootdirekt
Mavenorg.springframework.boot:spring-boot-autoconfiguredirekt
Mavenorg.springframework.boot:spring-boot-dependenciesdirekt
Mavenorg.springframework.boot:spring-boot-dependencies4.0.6direkt
Mavenorg.springframework.boot:spring-boot-starter-actuatordirekt
Mavenorg.springframework.boot:spring-boot-starter-jettydirekt
Mavenorg.springframework.boot:spring-boot-starter-webdirekt
Mavenorg.springframework.boot:spring-boot-starter-webfluxdirekt
Mavenorg.yaml:snakeyaml2.2direkt
crates.ioadler22.0.1indirekt
crates.ioaho-corasick1.1.4indirekt
crates.ioandroid_system_properties0.1.5indirekt
crates.ioanyhow1.0.102indirekt
crates.ioarbitrary1.4.2indirekt
crates.ioatomic-waker1.1.2indirekt
crates.ioautocfg1.5.0indirekt
crates.ioaws-lc-rs1.16.3indirekt
crates.ioaws-lc-sys0.40.0indirekt
crates.iobase640.22.1indirekt
crates.iobitflags2.11.1indirekt
crates.ioblock-buffer0.10.4indirekt
crates.iobumpalo3.20.2indirekt
crates.iobytes1.11.1indirekt
crates.iocc1.2.62indirekt
crates.iocfg-if1.0.4indirekt
crates.iocfg_aliases0.2.1indirekt
crates.iochrono0.4.44indirekt
crates.iocmake0.1.58indirekt
crates.iocombine4.6.7indirekt
crates.iocore-foundation0.10.1indirekt
crates.iocore-foundation-sys0.8.7indirekt
crates.iocpufeatures0.2.17indirekt
crates.iocrc32fast1.5.0indirekt
crates.iocrossbeam-utils0.8.21indirekt
crates.iocrypto-common0.1.7indirekt
crates.ioderive_arbitrary1.4.2indirekt
crates.iodigest0.10.7indirekt
crates.iodirs6.0.0indirekt
crates.iodirs-sys0.5.0indirekt
crates.iodisplaydoc0.2.5indirekt
crates.iodunce1.0.5indirekt
crates.ioequivalent1.0.2indirekt
crates.ioerrno0.3.14indirekt
crates.iofastrand2.4.1indirekt
crates.iofiletime0.2.29indirekt
crates.iofind-msvc-tools0.1.9indirekt
crates.ioflate21.1.9indirekt
crates.iofoldhash0.1.5indirekt
crates.ioform_urlencoded1.2.2indirekt
crates.iofs_extra1.3.0indirekt
crates.iofutures-channel0.3.32indirekt
crates.iofutures-core0.3.32indirekt
crates.iofutures-io0.3.32indirekt
crates.iofutures-sink0.3.32indirekt
crates.iofutures-task0.3.32indirekt
crates.iofutures-util0.3.32indirekt
crates.iogeneric-array0.14.7indirekt
crates.iogetrandom0.2.17indirekt
crates.iogetrandom0.3.4indirekt
crates.iogetrandom0.4.2indirekt
crates.iohashbrown0.15.5indirekt
crates.iohashbrown0.17.1indirekt
crates.ioheck0.5.0indirekt
crates.iohttp1.4.0indirekt
crates.iohttp-body1.0.1indirekt
crates.iohttp-body-util0.1.3indirekt
crates.iohttparse1.10.1indirekt
crates.iohyper1.9.0indirekt
crates.iohyper-rustls0.27.9indirekt
crates.iohyper-util0.1.20indirekt
crates.ioiana-time-zone0.1.65indirekt
crates.ioiana-time-zone-haiku0.1.2indirekt
crates.ioicu_collections2.2.0indirekt
crates.ioicu_locale_core2.2.0indirekt
crates.ioicu_normalizer2.2.0indirekt
crates.ioicu_normalizer_data2.2.0indirekt
crates.ioicu_properties2.2.0indirekt
crates.ioicu_properties_data2.2.0indirekt
crates.ioicu_provider2.2.0indirekt
crates.ioid-arena2.3.0indirekt
crates.ioidna1.1.0indirekt
crates.ioidna_adapter1.2.2indirekt
crates.ioindexmap2.14.0indirekt
crates.ioipnet2.12.0indirekt
crates.ioitoa1.0.18indirekt
crates.iojni0.22.4indirekt
crates.iojni-macros0.22.4indirekt
crates.iojni-sys0.4.1indirekt
crates.iojni-sys-macros0.4.1indirekt
crates.iojobserver0.1.34indirekt
crates.iojs-sys0.3.91indirekt
crates.ioleb128fmt0.1.0indirekt
crates.iolibc0.2.186indirekt
crates.iolibredox0.1.16indirekt
crates.iolinux-raw-sys0.12.1indirekt
crates.iolitemap0.8.2indirekt
crates.iolog0.4.29indirekt
crates.iolru-slab0.1.2indirekt
crates.iomemchr2.8.0indirekt
crates.iominiz_oxide0.8.9indirekt
crates.iomio1.2.0indirekt
crates.ionum-traits0.2.19indirekt
crates.ioonce_cell1.21.4indirekt
crates.ioopenssl-probe0.2.1indirekt
crates.iooption-ext0.2.0indirekt
crates.iopercent-encoding2.3.2indirekt
crates.iopin-project-lite0.2.17indirekt
crates.iopotential_utf0.1.5indirekt
crates.ioppv-lite860.2.21indirekt
crates.ioprettyplease0.2.37indirekt
crates.ioproc-macro21.0.106indirekt
crates.ioquinn0.11.9indirekt
crates.ioquinn-proto0.11.14indirekt
crates.ioquinn-udp0.5.14indirekt
crates.ioquote1.0.45indirekt
crates.ior-efi5.3.0indirekt
crates.ior-efi6.0.0indirekt
crates.iorand0.9.4indirekt
crates.iorand_chacha0.9.0indirekt
crates.iorand_core0.9.5indirekt
crates.ioredox_users0.5.2indirekt
crates.ioregex1.12.3indirekt
crates.ioregex-automata0.4.14indirekt
crates.ioregex-syntax0.8.10indirekt
crates.ioreqwest0.13.3indirekt
crates.ioring0.17.14indirekt
crates.iorustc-hash2.1.2indirekt
crates.iorustc_version0.4.1indirekt
crates.iorustix1.1.4indirekt
crates.iorustls0.23.40indirekt
crates.iorustls-native-certs0.8.3indirekt
crates.iorustls-pki-types1.14.1indirekt
crates.iorustls-platform-verifier0.7.0indirekt
crates.iorustls-platform-verifier-android0.1.1indirekt
crates.iorustls-webpki0.103.13indirekt
crates.iorustversion1.0.22indirekt
crates.iosame-file1.0.6indirekt
crates.ioschannel0.1.29indirekt
crates.iosecurity-framework3.7.0indirekt
crates.iosecurity-framework-sys2.17.0indirekt
crates.iosemver1.0.28indirekt
crates.ioserde1.0.228indirekt
crates.ioserde_core1.0.228indirekt
crates.ioserde_derive1.0.228indirekt
crates.ioserde_json1.0.149indirekt
crates.iosha20.10.9indirekt
crates.ioshlex1.3.0indirekt
crates.iosignal-hook-registry1.4.8indirekt
crates.iosimd-adler320.3.9indirekt
crates.iosimd_cesu81.1.1indirekt
crates.iosimdutf80.1.5indirekt
crates.ioslab0.4.12indirekt
crates.iosmallvec1.15.1indirekt
crates.iosocket20.6.3indirekt
crates.iostable_deref_trait1.2.1indirekt
crates.iosubtle2.6.1indirekt
crates.iosyn2.0.117indirekt
crates.iosync_wrapper1.0.2indirekt
crates.iosynstructure0.13.2indirekt
crates.iotar0.4.46indirekt
crates.iotempfile3.27.0indirekt
crates.iothiserror2.0.18indirekt
crates.iothiserror-impl2.0.18indirekt
crates.iotinystr0.8.3indirekt
crates.iotinyvec1.11.0indirekt
crates.iotinyvec_macros0.1.1indirekt
crates.iotokio1.52.3indirekt
crates.iotokio-macros2.7.0indirekt
crates.iotokio-rustls0.26.4indirekt
crates.iotower0.5.3indirekt
crates.iotower-http0.6.10indirekt
crates.iotower-layer0.3.3indirekt
crates.iotower-service0.3.3indirekt
crates.iotracing0.1.44indirekt
crates.iotracing-core0.1.36indirekt
crates.iotry-lock0.2.5indirekt
crates.iotypenum1.20.1indirekt
crates.iounicode-ident1.0.24indirekt
crates.iounicode-xid0.2.6indirekt
crates.iountrusted0.9.0indirekt
crates.iourl2.5.8indirekt
crates.iourlencoding2.1.3indirekt
crates.ioutf8_iter1.0.4indirekt
crates.ioversion_check0.9.5indirekt
crates.iowalkdir2.5.0indirekt
crates.iowant0.3.1indirekt
crates.iowasi0.11.1+wasi-snapshot-preview1indirekt
crates.iowasip21.0.3+wasi-0.2.9indirekt
crates.iowasip30.4.0+wasi-0.3.0-rc-2026-01-06indirekt
crates.iowasm-bindgen0.2.114indirekt
crates.iowasm-bindgen-futures0.4.64indirekt
crates.iowasm-bindgen-macro0.2.114indirekt
crates.iowasm-bindgen-macro-support0.2.114indirekt
crates.iowasm-bindgen-shared0.2.114indirekt
crates.iowasm-encoder0.244.0indirekt
crates.iowasm-metadata0.244.0indirekt
crates.iowasmparser0.244.0indirekt
crates.ioweb-sys0.3.91indirekt
crates.ioweb-time1.1.0indirekt
crates.iowebpki-root-certs1.0.7indirekt
crates.iowinapi-util0.1.11indirekt
crates.iowindows-core0.62.2indirekt
crates.iowindows-implement0.60.2indirekt
crates.iowindows-interface0.59.3indirekt
crates.iowindows-link0.2.1indirekt
crates.iowindows-result0.4.1indirekt
crates.iowindows-strings0.5.1indirekt
crates.iowindows-sys0.52.0indirekt
crates.iowindows-sys0.60.2indirekt
crates.iowindows-sys0.61.2indirekt
crates.iowindows-targets0.52.6indirekt
crates.iowindows-targets0.53.5indirekt
crates.iowindows_aarch64_gnullvm0.52.6indirekt
crates.iowindows_aarch64_gnullvm0.53.1indirekt
crates.iowindows_aarch64_msvc0.52.6indirekt
crates.iowindows_aarch64_msvc0.53.1indirekt
crates.iowindows_i686_gnu0.52.6indirekt
crates.iowindows_i686_gnu0.53.1indirekt
crates.iowindows_i686_gnullvm0.52.6indirekt
crates.iowindows_i686_gnullvm0.53.1indirekt
crates.iowindows_i686_msvc0.52.6indirekt
crates.iowindows_i686_msvc0.53.1indirekt
crates.iowindows_x86_64_gnu0.52.6indirekt
crates.iowindows_x86_64_gnu0.53.1indirekt
crates.iowindows_x86_64_gnullvm0.52.6indirekt
crates.iowindows_x86_64_gnullvm0.53.1indirekt
crates.iowindows_x86_64_msvc0.52.6indirekt
crates.iowindows_x86_64_msvc0.53.1indirekt
crates.iowit-bindgen0.51.0indirekt
crates.iowit-bindgen0.57.1indirekt
crates.iowit-bindgen-core0.51.0indirekt
crates.iowit-bindgen-rust0.51.0indirekt
crates.iowit-bindgen-rust-macro0.51.0indirekt
crates.iowit-component0.244.0indirekt
crates.iowit-parser0.244.0indirekt
crates.iowriteable0.6.3indirekt
crates.ioxattr1.6.1indirekt
crates.ioyoke0.8.2indirekt
crates.ioyoke-derive0.8.2indirekt
crates.iozerocopy0.8.48indirekt
crates.iozerocopy-derive0.8.48indirekt
crates.iozerofrom0.1.7indirekt
crates.iozerofrom-derive0.1.7indirekt
crates.iozeroize1.8.2indirekt
crates.iozerotrie0.2.4indirekt
crates.iozerovec0.11.6indirekt
crates.iozerovec-derive0.11.3indirekt
crates.iozip2.4.2indirekt
crates.iozmij1.0.21indirekt
crates.iozopfli0.8.3indirekt
Mavenai.platon.pulsar:pulsar-commonindirekt
Mavenai.platon.pulsar:pulsar-domindirekt
Mavenai.platon.pulsar:pulsar-llmindirekt
Mavenai.platon.pulsar:pulsar-maprindirekt
Mavench.qos.logback:logback-classicindirekt
Mavencom.fasterxml.jackson.dataformat:jackson-dataformat-yamlindirekt
Mavencom.google.code.crawler-commons:crawler-commons0.5indirekt
Mavencom.ninja-squad:springmockk4.0.2indirekt
Mavencommons-codec:commons-codecindirekt
Mavendev.langchain4j:langchain4j-open-aiindirekt
Mavenio.github.git-commit-id:git-commit-id-maven-pluginindirekt
Mavenio.mockk:mockkindirekt
Mavenio.mockk:mockk1.14.6indirekt
Mavenio.mockk:mockk-jvmindirekt
Mavenio.mockk:mockk-jvm1.14.6indirekt
Mavenio.modelcontextprotocol:kotlin-sdk-client-jvm0.8.1indirekt
Mavenjavax.servlet:javax.servlet-apiindirekt
Mavenjavax.servlet:jstlindirekt
Mavenjunit:junitindirekt
Mavennet.sourceforge.nekohtml:nekohtmlindirekt
Mavenorg.apache.commons:commons-lang3indirekt
Mavenorg.apache.httpcomponents.client5:httpclient5indirekt
Mavenorg.apache.logging.log4j:log4j-coreindirekt
Mavenorg.apache.maven.plugins:maven-compiler-pluginindirekt
Mavenorg.apache.maven.plugins:maven-dependency-pluginindirekt
Mavenorg.apache.maven.plugins:maven-gpg-pluginindirekt
Mavenorg.apache.maven.plugins:maven-jar-pluginindirekt
Mavenorg.apache.maven.plugins:maven-surefire-pluginindirekt
Mavenorg.apache.tomcat.embed:tomcat-embed-jasperindirekt
Mavenorg.aspectj:aspectjweaver1.9.1indirekt
Mavenorg.codehaus.mojo:exec-maven-plugin3.5.0indirekt
Mavenorg.hamcrest:hamcrest-libraryindirekt
Mavenorg.hibernate:hibernate-entitymanagerindirekt
Mavenorg.jacoco:jacoco-maven-pluginindirekt
Mavenorg.javassist:javassistindirekt
Mavenorg.javassist:javassist3.31.0-GAindirekt
Mavenorg.jetbrains.kotlin:kotlin-maven-pluginindirekt
Mavenorg.jetbrains.kotlin:kotlin-test-junit5indirekt
Mavenorg.jetbrains.kotlinx:kotlinx-coroutines-jdk8indirekt
Mavenorg.jetbrains.kotlinx:kotlinx-serialization-jsonindirekt
Mavenorg.junit.jupiter:junit-jupiter-apiindirekt
Mavenorg.junit.jupiter:junit-jupiter-engineindirekt
Mavenorg.junit.jupiter:junit-jupiter-paramsindirekt
Mavenorg.mockito.kotlin:mockito-kotlinindirekt
Mavenorg.mockito.kotlin:mockito-kotlin5.4.0indirekt
Mavenorg.mockito:mockito-coreindirekt
Mavenorg.mockito:mockito-junit-jupiterindirekt
Mavenorg.slf4j:slf4j-apiindirekt
Mavenorg.sonatype.central:central-publishing-maven-plugin0.9.0indirekt
Mavenorg.springframework.boot:spring-boot-devtoolsindirekt
Mavenorg.springframework.boot:spring-boot-maven-pluginindirekt
Mavenorg.springframework.boot:spring-boot-maven-plugin3.4.1indirekt
Mavenorg.springframework.boot:spring-boot-starter-restclient-testindirekt
Mavenorg.springframework.boot:spring-boot-starter-testindirekt
Mavenorg.springframework.boot:spring-boot-starter-tomcatindirekt
Mavenorg.springframework.boot:spring-boot-testindirekt
Mavenorg.springframework.data:spring-data-commonsindirekt
Mavenorg.springframework.data:spring-data-jpaindirekt
Mavenorg.springframework:spring-aopindirekt
Mavenorg.springframework:spring-beansindirekt
Mavenorg.springframework:spring-contextindirekt
Mavenorg.springframework:spring-coreindirekt
Mavenorg.springframework:spring-expressionindirekt
Mavenorg.springframework:spring-jdbcindirekt
Mavenorg.springframework:spring-ormindirekt
Mavenorg.springframework:spring-testindirekt
Mavenorg.springframework:spring-txindirekt
Mavenorg.springframework:spring-webindirekt
Mavenorg.springframework:spring-webmvcindirekt
Mavenxml-apis:xml-apisindirekt
npmaccepts1.3.8indirekt
npmarray-flatten1.1.1indirekt
npmbody-parser1.20.5indirekt
npmbrowser4-cli0.1.5indirekt
npmbytes3.1.2indirekt
npmcall-bind-apply-helpers1.0.2indirekt
npmcall-bound1.0.4indirekt
npmcontent-disposition0.5.4indirekt
npmcontent-type1.0.5indirekt
npmcookie0.7.2indirekt
npmcookie-signature1.0.7indirekt
npmcors2.8.6indirekt
npmdebug2.6.9indirekt
npmdepd2.0.0indirekt
npmdestroy1.2.0indirekt
npmdunder-proto1.0.1indirekt
npmee-first1.1.1indirekt
npmencodeurl2.0.0indirekt
npmes-define-property1.0.1indirekt
npmes-errors1.3.0indirekt
npmes-object-atoms1.1.2indirekt
npmescape-html1.0.3indirekt
npmetag1.8.1indirekt
npmexpress4.22.2indirekt
npmfinalhandler1.3.2indirekt
npmforwarded0.2.0indirekt
npmfresh0.5.2indirekt
npmfunction-bind1.1.2indirekt
npmget-intrinsic1.3.0indirekt
npmget-proto1.0.1indirekt
npmgopd1.2.0indirekt
npmhas-symbols1.1.0indirekt
npmhasown2.0.4indirekt
npmhttp-errors2.0.1indirekt
npmiconv-lite0.4.24indirekt
npminherits2.0.4indirekt
npmipaddr.js1.9.1indirekt
npmmath-intrinsics1.1.0indirekt
npmmedia-typer0.3.0indirekt
npmmerge-descriptors1.0.3indirekt
npmmethods1.1.2indirekt
npmmime1.6.0indirekt
npmmime-db1.52.0indirekt
npmmime-types2.1.35indirekt
npmms2.0.0indirekt
npmms2.1.3indirekt
npmnegotiator0.6.3indirekt
npmobject-assign4.1.1indirekt
npmobject-inspect1.13.4indirekt
npmon-finished2.4.1indirekt
npmparseurl1.3.3indirekt
npmpath-to-regexp0.1.13indirekt
npmproxy-addr2.0.7indirekt
npmqs6.15.2indirekt
npmrange-parser1.2.1indirekt
npmraw-body2.5.3indirekt
npmsafe-buffer5.2.1indirekt
npmsafer-buffer2.1.2indirekt
npmsend0.19.2indirekt
npmserve-static1.16.3indirekt
npmsetprototypeof1.2.0indirekt
npmside-channel1.1.1indirekt
npmside-channel-list1.0.1indirekt
npmside-channel-map1.0.1indirekt
npmside-channel-weakmap1.0.2indirekt
npmstatuses2.0.2indirekt
npmtoidentifier1.0.1indirekt
npmtype-is1.6.18indirekt
npmunpipe1.0.0indirekt
npmutils-merge1.0.1indirekt
npmvary1.1.2indirekt
PyPIanthropicindirekt
PyPImcpindirekt
Abhängigkeits-Advisories 4

Dieses Repository veröffentlicht kein vom Index auflösbares Paket, daher wurde sein eigener Abhängigkeitsgraph bewertet – 387 Pakete, darunter auch Entwicklungs- und Test-Pins, die nie ausgeliefert werden: 4 tragen bekannte Advisories, davon 1 direkte. 122 konnten nicht bewertet werden – keine aufgelöste Version, ein nicht unterstütztes Ökosystem, oder außerhalb der ausgewiesenen Paketliste.

PaketVersionBeziehungSchweregradAdvisoriesBehoben in
com.fasterxml.jackson.core:jackson-databind2.9.9.3direktkritisch503.1.4
quinn-proto0.11.14indirekthoch20.11.15
body-parser1.20.5indirektniedrig12.3.0
anyhow1.0.102indirektunbekannt11.0.103

Ein Advisory bedeutet, dass die im Abhängigkeitsgraphen erfasste Version in den betroffenen Bereich eines Advisories fällt. Erreichbarkeit wird nicht analysiert, und der Graph enthält Entwicklungs- und Test-Pins — ein Fund kann das Werkzeug betreffen und nicht die ausgelieferte Software.

JSON-Rohbericht maschinenlesbar
{
  "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"
}

Bewertungen sind Signale, keine Garantien. Sie spiegeln öffentlich sichtbare Praxis auf GitHub wider — kein Code-Audit und keine Sicherheitsgarantie.

Fehlende Daten werden ausgeschlossen und die Gewichte neu normiert, nie als null bewertet. Die Methodik ist versioniert und offen: Metriken v1.13.0, Schema v0.27.0 — vollständige Methodik · Metriken-Wiki.

Wie ein einzelnes Ergebnis im Gesamtregister steht: aggregierte Statistikennpm.