Registro público
Informe de salud del softwareesquema 0.27.0 · métricas 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★ 1093 estrellas⑂ 145 forksdesde mar 2018Ver en GitHub ↗

platonai/Browser4 tiene un índice de salud de 72 sobre 100, lo que lo sitúa en la banda Bueno. Su puntuación más alta es Vitality (93/100) y la más baja, Security (47/100). Se actualizó por última vez hoy. Una sola persona concentra la mayor parte del trabajo reciente.

72
global / 100
Bueno

Índice de salud del software

Las métricas se agrupan en categorías ponderadas sobre una escala de 1 a 100. El resultado global parte de su media; cuando la evidencia pública activa la Política de Jurisdicciones de Alto Riesgo, la calificación se ajusta y recibe el límite 49 (En riesgo). Preparación para IA queda fuera.

72
Excelente85-100Ejemplar; cumple prácticamente todos los criterios evaluados
Bueno70-84Saludable; carencias menores
Moderado50-69Aceptable con carencias notables; se recomienda revisión
En riesgo30-49Debilidades significativas; su adopción exige cautela
Crítico1-29Problemas graves (proyecto abandonado, un solo mantenedor, sin higiene)
VitalidadComunidad yAdopciónSostenibilidady GobernanzaCalidad deIngenieríaSeguridadPreparaciónpara IA

Perfil de puntuación

Cada eje es una categoría. La forma importa más que la media: un proyecto sano llena toda la figura, mientras que un perfil de picos y cráteres indica que la fortaleza en una dimensión enmascara el riesgo en otra.

Titularidad

PlatonAICuenta personal
154 seguidores42 repositorios públicosdesde mar 2018

Este repositorio pertenece a una cuenta personal. Un proyecto con un único propietario conlleva más riesgo de continuidad que uno respaldado por una organización.

Ecosistemas de paquetes

RegistroPaqueteVersiónDescargas / mesVersionesÚltima publicaciónEtiquetas
npmbrowser4-cli0.1.32332233hace 11 díasbrowserbrowser4browser4-cliautomationheadlesschromecdpcliagent

Métricas por categoría

Vitalidad

¿Está vivo el proyecto: se escribe código y se publican versiones?

93Excelente · 22% del índice global
Cómo se puntúa
36/36Recencia de push — último push hace 0 días
31.2/36Cadencia de commits — 45/52 semanas con commits
18/18Volumen de commits — 5042 commits en el último año
10/10OpenSSF Scorecard: Maintained — 30 commit(s) and 3 issue activity found in the last 90 days -- score normalized to 10
Datos de entrada utilizados
commits_last_year5042
human_commit_share1
days_since_last_push0
active_weeks_last_year45
Cómo se puntúa
27/27Publica versiones — 39 versiones publicadas
36/36Recencia de las versiones — última versión hace 5 días
27/27Cadencia de publicación — una versión cada ~2,4 días
0/10OpenSSF Scorecard: Signed-Releases — Project has not signed or included provenance with any releases.
Datos de entrada utilizados
releases_count39
latest_release_tagv4.12.0-rc.3
releases_from_tagsno
days_since_latest_release5
mean_days_between_releases2,4

Comunidad y Adopción

¿Tiene el proyecto usuarios, descargas, atención y unas condiciones acogedoras para quienes contribuyen?

62Moderado · 18% del índice global
Cómo se puntúa
49.3/60Estrellas — 1093 estrellas
18/25Forks — 145 forks
7/15Observadores — 19 observadores
Datos de entrada utilizados
forks145
stars1093
watchers19
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
Cómo se puntúa
22.5/22.5README
22.5/22.5Licencia — licencia reconocida (Apache-2.0)
0/18Guía CONTRIBUTING
0/13.5Código de conducta
0/7.2Plantilla de issues
0/6.3Plantilla de PR
Datos de entrada utilizados
has_readme
has_license
has_contributingno
has_issue_templateno
has_code_of_conductno
has_pull_request_templateno
Cómo se puntúa
47/80Descargas mensuales — 3322 descargas/mes en npm
0/20Dependientes en el registro — no lo informa este ecosistema
Datos de entrada utilizados
packagesbrowser4-cli
dependents
ecosystemsnpm
total_downloads
monthly_downloads3322
Excluidos de la puntuación (sin datos o no aplicable): Dependientes en el registro. Los pesos restantes se han renormalizado.

Sostenibilidad y Gobernanza

¿Sobrevivirá el proyecto a sus personas: factor bus, capacidad de respuesta, quién lo respalda y mantenimiento del paquete?

61Moderado · 24% del índice global
Cómo se puntúa
9/54Factor bus — la mitad de los commits recae en 1 contribuyente(s)
8/22.5Distribución de commits — el principal contribuyente firma el 64% de los commits
5.4/13.5Amplitud de contribuyentes — 4 contribuyentes
3/10OpenSSF Scorecard: Contributors — project has 1 contributing companies or organizations -- score normalized to 3
Datos de entrada utilizados
bus_factor1
contributors_sampled4
top_contributor_share0,644
Cómo se puntúa
46.8/46.8Resolución de issues — 100% de issues cerradas
25.5/38.3Aceptación de PR — 184/276 PR decididos fusionados
0/15OpenSSF Scorecard: Code-Review — Found 0/30 approved changesets -- score normalized to 0
Datos de entrada utilizados
merged_prs184
open_issues0
closed_issues210
issue_closed_ratio1
closed_unmerged_prs92
Cómo se puntúa
10/30Respaldo de la propiedad — cuenta personal (usuario)
0/20Dominio verificado — no aplicable a cuentas de usuario
15.7/25Alcance del propietario — 154 seguidores de platonai
23.9/25Trayectoria — 42 repos públicos, cuenta de ~8 años
Datos de entrada utilizados
followers154
owner_typeUser
is_verified
owner_loginplatonai
public_repos42
account_age_days3043
Excluidos de la puntuación (sin datos o no aplicable): Dominio verificado. Los pesos restantes se han renormalizado.
Cómo se puntúa
25/25Publicado y resoluble — 1 paquete(s) en npm
35/35Recencia de publicación — última publicación hace 11 días
20/20Historial de versiones — 33 versiones en el registro
20/20No obsoleto — activo, ni obsoleto ni retirado
Datos de entrada utilizados
packagesbrowser4-cli
ecosystemsnpm
any_deprecatedno
min_days_since_publish11

Calidad de Ingeniería

¿Existen unas prácticas mínimas de ingeniería y documentación?

93Excelente · 20% del índice global
Cómo se puntúa
24/24Flujos de trabajo de CI — 9 flujo(s) de trabajo
24/24Pruebas presentes
16/16Configuración de linter — .eslintrc
0/9.6Hooks de pre-commit
6.4/6.4.editorconfig
0/20OpenSSF Scorecard: CI-Tests — sin datos
Datos de entrada utilizados
has_ci
has_tests
has_editorconfig
has_linter_config
has_precommit_configno
Excluidos de la puntuación (sin datos o no aplicable): OpenSSF Scorecard: CI-Tests. Los pesos restantes se han renormalizado.

Documentación

100Excelente
Cómo se puntúa
30/30README
25/25Directorio de documentación
15/15Sitio de documentación / página del proyecto — https://browser4.io
10/10Descripción del repositorio
10/10Topics — 6 topics
10/10Wiki
Datos de entrada utilizados
topicsagentic-ai, agentic-browser, ai-browser, browser-agent, browser-use-agent, browser-infra
has_wiki
homepagehttps://browser4.io
has_readme
has_docs_dir
has_description

Seguridad

¿Son sólidas las prácticas visibles de seguridad y de cadena de suministro, sin exposición jurisdiccional de alto riesgo sin resolver?

47En riesgo · 16% del índice global
Cómo se puntúa
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 — sin datos
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.5Licencia — 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
Datos de entrada utilizados
sourceopenssf_scorecard
checks_evaluated17
scorecard_versionv5.5.0
checks_inconclusive1
scorecard_aggregate4,6
Excluidos de la puntuación (sin datos o no aplicable): ci_tests. Los pesos restantes se han renormalizado.
Cómo se puntúa
7.6/35Dependencias directas libres de avisos conocidos — 1 afectados: com.fasterxml.jackson.core:jackson-databind 2.9.9.3 (critical 9.8)
0/25Dependencias indirectas libres de avisos conocidos — el conjunto transitivo no es separable de las dependencias de desarrollo y prueba en este alcance
32.1/40Sin avisos pendientes — 1 paquete(s) con avisos sin atender más allá de 90 días; el más antiguo publicado hace 2496 días
Datos de entrada utilizados
sourceosv
advisories54
affected_packages4
assessed_packages387
unassessed_packages122
affected_by_severitycritical 1, high 1, low 1, unknown 1
direct_affected_packages1
Excluidos de la puntuación (sin datos o no aplicable): Dependencias indirectas libres de avisos conocidos. Los pesos restantes se han renormalizado. Se cotejaron 387 dependencias resueltas con OSV. 122 no pudieron evaluarse: sin versión resuelta, ecosistema no admitido o fuera de la lista de paquetes informada. Este repositorio no publica ningún paquete que el índice resuelva, por lo que se evaluó en su lugar el grafo de dependencias del repositorio. Ese grafo mezcla fijaciones de desarrollo y prueba con las dependencias distribuidas, de modo que solo se puntúan las dependencias declaradas en tiempo de ejecución; los hallazgos transitivos se informan como contexto y quedan excluidos de la puntuación. No se analiza la alcanzabilidad.

Preparación para IA

¿Hasta qué punto está el repositorio preparado para desarrollarse y mantenerse con agentes de codificación de IA? Es una insignia independiente y experimental — peso 0,0, de modo que se presenta por separado y no afecta a la puntuación de salud global.

81Bueno · 0% del índice global
Cómo se puntúa
45/45Instrucciones para agentes — AGENTS.md, skills/browser4-cli/references/agent.md
0/15Documentación legible por máquinas (llms.txt)
40/40Historial de commits legible — 88 de 100 commits humanos declaran su intención (asunto estructurado o cuerpo explicativo)
Datos de entrada utilizados
has_llms_txtno
legible_history_share0,88
agent_instruction_filesAGENTS.md, skills/browser4-cli/references/agent.md
agent_instruction_max_bytes27.338
Cómo se puntúa
12.6/18Arranque con un solo comando — browser4-agent-tools/pom.xml, browser4-agentic/pom.xml, browser4-apps/browser4-bundle/pom.xml (convención del toolchain, sin ejecutor de tareas)
22/22Pruebas automatizadas
11/11Configuración de lint / formato — .eslintrc
11/11Verificación estática de tipos — Kotlin (tipado estático)
10/10Entorno reproducible — Dockerfile, lockfile
10/10Práctica demostrada con agentes — 44 de los últimos 100 commits con autoría o crédito de agente
0/8Mantenimiento automatizado — no se observan actualizaciones automáticas de dependencias
3/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 3
Datos de entrada utilizados
has_nixno
has_tests
lockfilesCargo.lock, package-lock.json, pnpm-lock.yaml
has_dockerfile
typed_language
bootstrap_files
has_devcontainerno
has_linter_config
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
Cómo se puntúa
45/45Código verificable por tipos — Kotlin (tipado estático)
53/55Tamaños de archivo manejables — 30/809 archivos fuente de más de 60 KB
Datos de entrada utilizados
primary_languageKotlin
largest_source_bytes1.073.878
source_files_sampled809
oversized_source_files30
Cómo se puntúa
0/40Esquema de API (OpenAPI/GraphQL/proto)
20/20Servidor MCP
40/40Ejemplos ejecutables — examples, sample
Datos de entrada utilizados
example_dirsexamples, sample
has_mcp_signal
api_schema_files

Datos clave

1093estrellas de GitHub
4contribuidores
5042commits en los últimos 12 meses
0días desde el último push
39versiones publicadas
1factor bus
0issues abiertas
Maven, npmecosistemas de paquetes

Advertencias de recopilación de datos

  • 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

Más detalle

Historial de estrellas y forks 0 ★ / 145 ⇿
0Estrellas
145Forks
39Versiones

Cuándo se añadió cada estrella y fork, recopilado de GitHub y agrupado por día. El crecimiento acumulado se sitúa justo encima de las adiciones diarias que lo componen, de modo que ambos se leen en conjunto: la acumulación orgánica sostenida no se parece en nada a un pico abrupto y efímero. Cuando esa diferencia es medible, se informa como autenticidad del crecimiento.

0255075100125150145112018-042022-052026-07
Mayor 1Menor 10Parche 26

Cada punto abarca 8 días.

OpenSSF Scorecard 4.6 / 10
4.6agregado

Evaluación de seguridad independiente y agnóstica en cuanto a herramientas, procedente del proyecto de código abierto OpenSSF Scorecard. Cada comprobación premia una práctica de seguridad, no la herramienta de un proveedor concreto. Las comprobaciones que Scorecard no pudo determinar se marcan como n/d y se excluyen de la puntuación de seguridad (nunca se cuentan como cero).Scorecard v5.5.0 · 2026-07-25 14:21 UTC

9Binary-Artifactsbinaries present in source code
0Branch-Protectionbranch protection not enabled on development/release branches
n/dCI-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
Dependencias directas 116
RegistroPaqueteRestricción de versiónManifiesto
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
Todas las dependencias 509

Conjunto completo de dependencias resueltas según el grafo de dependencias de GitHub: 125 paquetes directos y 384 indirectos (transitivos). El cierre transitivo es completo cuando el repositorio incluye un lockfile.

RegistroPaqueteVersiónRelación
Mavenai.platon.cdt:cdt-kotlin-clientdirecta
Mavenai.platon.cdt:cdt-kotlin-client4.8.0directa
Mavenai.platon.pulsar:browser4-agent-toolsdirecta
Mavenai.platon.pulsar:browser4-agent-tools4.11.22-SNAPSHOTdirecta
Mavenai.platon.pulsar:browser4-agenticdirecta
Mavenai.platon.pulsar:browser4-agentic4.11.22-SNAPSHOTdirecta
Mavenai.platon.pulsar:browser4-bootdirecta
Mavenai.platon.pulsar:browser4-boot4.11.22-SNAPSHOTdirecta
Mavenai.platon.pulsar:browser4-browserdirecta
Mavenai.platon.pulsar:browser4-browser4.11.22-SNAPSHOTdirecta
Mavenai.platon.pulsar:browser4-commondirecta
Mavenai.platon.pulsar:browser4-common4.11.22-SNAPSHOTdirecta
Mavenai.platon.pulsar:browser4-dependencies4.11.22-SNAPSHOTdirecta
Mavenai.platon.pulsar:browser4-parsedirecta
Mavenai.platon.pulsar:browser4-parse4.11.22-SNAPSHOTdirecta
Mavenai.platon.pulsar:browser4-plugins4.11.22-SNAPSHOTdirecta
Mavenai.platon.pulsar:browser4-protocoldirecta
Mavenai.platon.pulsar:browser4-protocol4.11.22-SNAPSHOTdirecta
Mavenai.platon.pulsar:browser4-resourcesdirecta
Mavenai.platon.pulsar:browser4-resources4.11.22-SNAPSHOTdirecta
Mavenai.platon.pulsar:browser4-restdirecta
Mavenai.platon.pulsar:browser4-rest4.11.22-SNAPSHOTdirecta
Mavenai.platon.pulsar:browser4-skeletondirecta
Mavenai.platon.pulsar:browser4-skeleton4.11.22-SNAPSHOTdirecta
Mavenai.platon.pulsar:browser4-tests-commondirecta
Mavenai.platon.pulsar:browser4-tests-common4.11.22-SNAPSHOTdirecta
Mavenai.platon.pulsar:pulsar-bomdirecta
Mavenai.platon.pulsar:pulsar-bom4.8.5directa
Mavenai.platon.pulsar:pulsar-h2directa
Mavenai.platon.pulsar:pulsar-h21.4.197directa
Mavenai.platon.pulsar:pulsar-it-tests4.11.22-SNAPSHOTdirecta
Mavenai.platon.pulsar:pulsar-jsoupdirecta
Mavenai.platon.pulsar:pulsar-jsoup1.14.3directa
Mavenai.platon.pulsar:pulsar-persistdirecta
Mavenai.platon.pulsar:pulsar-qldirecta
Mavenai.platon.pulsar:pulsar-ql-commondirecta
Mavencom.beust:jcommanderdirecta
Mavencom.beust:jcommander1.82directa
Mavencom.fasterxml.jackson.core:jackson-annotationsdirecta
Mavencom.fasterxml.jackson.core:jackson-coredirecta
Mavencom.fasterxml.jackson.core:jackson-databinddirecta
Mavencom.fasterxml.jackson.core:jackson-databind2.9.9.3directa
Mavencom.fasterxml.jackson.module:jackson-module-kotlindirecta
Mavencom.github.ben-manes.caffeine:caffeinedirecta
Mavencom.github.oshi:oshi-coredirecta
Mavencom.github.oshi:oshi-core6.6.6directa
Mavencom.google.code.gson:gsondirecta
Mavencom.google.guava:guavadirecta
Mavencom.google.guava:guava33.2.1-jredirecta
Mavencom.squareup.okhttp3:okhttp4.12.0directa
Mavencom.udojava:EvalEx2.0directa
Mavencommons-io:commons-io2.16.1directa
Mavencommons-logging:commons-logging1.3.2directa
Mavendev.langchain4j:langchain4j-bom1.5.0directa
Mavenio.dropwizard.metrics:metrics-coredirecta
Mavenio.dropwizard.metrics:metrics-core4.2.12directa
Mavenio.dropwizard.metrics:metrics-graphitedirecta
Mavenio.dropwizard.metrics:metrics-graphite4.2.12directa
Mavenio.dropwizard.metrics:metrics-jmx4.2.12directa
Mavenio.dropwizard.metrics:metrics-json4.2.12directa
Mavenio.ktor:ktor-client-ciodirecta
Mavenio.ktor:ktor-client-cio3.2.3directa
Mavenio.ktor:ktor-client-cio-jvmdirecta
Mavenio.ktor:ktor-client-cio-jvm3.2.3directa
Mavenio.ktor:ktor-client-coredirecta
Mavenio.ktor:ktor-client-core3.2.3directa
Mavenio.ktor:ktor-client-core-jvmdirecta
Mavenio.ktor:ktor-client-core-jvm3.2.3directa
Mavenio.ktor:ktor-client-websocketsdirecta
Mavenio.ktor:ktor-client-websockets3.2.3directa
Mavenio.ktor:ktor-serialization-kotlinx-json-jvm3.2.3directa
Mavenio.micrometer:micrometer-coredirecta
Mavenio.micrometer:micrometer-registry-prometheusdirecta
Mavenio.modelcontextprotocol:kotlin-sdk0.8.1directa
Mavenio.modelcontextprotocol:kotlin-sdk-core-jvm0.8.1directa
Mavenio.modelcontextprotocol:kotlin-sdk-server-jvm0.8.1directa
Mavenio.opentelemetry.semconv:opentelemetry-semconvdirecta
Mavenio.opentelemetry.semconv:opentelemetry-semconv1.37.0directa
Mavenio.opentelemetry:opentelemetry-apidirecta
Mavenio.opentelemetry:opentelemetry-exporter-otlpdirecta
Mavenio.opentelemetry:opentelemetry-sdkdirecta
Mavenjakarta.annotation:jakarta.annotation-apidirecta
Mavenorg.apache.commons:commons-collections4directa
Mavenorg.apache.commons:commons-collections44.4directa
Mavenorg.apache.commons:commons-compress1.26.2directa
Mavenorg.apache.commons:commons-math3directa
Mavenorg.apache.commons:commons-math33.6.1directa
Mavenorg.apache.commons:commons-numbers-bom1.1directa
Mavenorg.apache.commons:commons-text1.11.0directa
Mavenorg.apache.httpcomponents:httpclientdirecta
Mavenorg.apache.httpcomponents:httpclient4.5.13directa
Mavenorg.apache.httpcomponents:httpcore4.4.15directa
Mavenorg.apache.lucene:lucene-analyzers-common7.3.1directa
Mavenorg.apache.lucene:lucene-analyzers-smartcn7.3.1directa
Mavenorg.apache.lucene:lucene-core7.3.1directa
Mavenorg.apache.poi:poi5.3.0directa
Mavenorg.apache.poi:poi-ooxml5.4.0directa
Mavenorg.apache.tika:tika-coredirecta
Mavenorg.apache.tika:tika-core3.2.2directa
Mavenorg.apache.tika:tika-parser-html-moduledirecta
Mavenorg.apache.tika:tika-parser-html-module3.2.2directa
Mavenorg.apache.tika:tika-parsers3.2.2directa
Mavenorg.jetbrains.kotlin:kotlin-bomdirecta
Mavenorg.jetbrains.kotlin:kotlin-maven-allopendirecta
Mavenorg.jetbrains.kotlin:kotlin-maven-noargdirecta
Mavenorg.jetbrains.kotlin:kotlin-reflectdirecta
Mavenorg.jetbrains.kotlin:kotlin-serializationdirecta
Mavenorg.jetbrains.kotlin:kotlin-stdlibdirecta
Mavenorg.jetbrains.kotlinx:kotlinx-coroutines-bom1.10.2directa
Mavenorg.jetbrains.kotlinx:kotlinx-coroutines-coredirecta
Mavenorg.jetbrains.kotlinx:kotlinx-coroutines-reactordirecta
Mavenorg.jgrapht:jgrapht-core1.0.1directa
Mavenorg.jgrapht:jgrapht-ext1.0.1directa
Mavenorg.nibor.autolink:autolink0.11.0directa
Mavenorg.nield:kotlin-statistics1.2.1directa
Mavenorg.perf4j:perf4j0.9.16directa
Mavenorg.springframework.boot:spring-bootdirecta
Mavenorg.springframework.boot:spring-boot-autoconfiguredirecta
Mavenorg.springframework.boot:spring-boot-dependenciesdirecta
Mavenorg.springframework.boot:spring-boot-dependencies4.0.6directa
Mavenorg.springframework.boot:spring-boot-starter-actuatordirecta
Mavenorg.springframework.boot:spring-boot-starter-jettydirecta
Mavenorg.springframework.boot:spring-boot-starter-webdirecta
Mavenorg.springframework.boot:spring-boot-starter-webfluxdirecta
Mavenorg.yaml:snakeyaml2.2directa
crates.ioadler22.0.1indirecta
crates.ioaho-corasick1.1.4indirecta
crates.ioandroid_system_properties0.1.5indirecta
crates.ioanyhow1.0.102indirecta
crates.ioarbitrary1.4.2indirecta
crates.ioatomic-waker1.1.2indirecta
crates.ioautocfg1.5.0indirecta
crates.ioaws-lc-rs1.16.3indirecta
crates.ioaws-lc-sys0.40.0indirecta
crates.iobase640.22.1indirecta
crates.iobitflags2.11.1indirecta
crates.ioblock-buffer0.10.4indirecta
crates.iobumpalo3.20.2indirecta
crates.iobytes1.11.1indirecta
crates.iocc1.2.62indirecta
crates.iocfg-if1.0.4indirecta
crates.iocfg_aliases0.2.1indirecta
crates.iochrono0.4.44indirecta
crates.iocmake0.1.58indirecta
crates.iocombine4.6.7indirecta
crates.iocore-foundation0.10.1indirecta
crates.iocore-foundation-sys0.8.7indirecta
crates.iocpufeatures0.2.17indirecta
crates.iocrc32fast1.5.0indirecta
crates.iocrossbeam-utils0.8.21indirecta
crates.iocrypto-common0.1.7indirecta
crates.ioderive_arbitrary1.4.2indirecta
crates.iodigest0.10.7indirecta
crates.iodirs6.0.0indirecta
crates.iodirs-sys0.5.0indirecta
crates.iodisplaydoc0.2.5indirecta
crates.iodunce1.0.5indirecta
crates.ioequivalent1.0.2indirecta
crates.ioerrno0.3.14indirecta
crates.iofastrand2.4.1indirecta
crates.iofiletime0.2.29indirecta
crates.iofind-msvc-tools0.1.9indirecta
crates.ioflate21.1.9indirecta
crates.iofoldhash0.1.5indirecta
crates.ioform_urlencoded1.2.2indirecta
crates.iofs_extra1.3.0indirecta
crates.iofutures-channel0.3.32indirecta
crates.iofutures-core0.3.32indirecta
crates.iofutures-io0.3.32indirecta
crates.iofutures-sink0.3.32indirecta
crates.iofutures-task0.3.32indirecta
crates.iofutures-util0.3.32indirecta
crates.iogeneric-array0.14.7indirecta
crates.iogetrandom0.2.17indirecta
crates.iogetrandom0.3.4indirecta
crates.iogetrandom0.4.2indirecta
crates.iohashbrown0.15.5indirecta
crates.iohashbrown0.17.1indirecta
crates.ioheck0.5.0indirecta
crates.iohttp1.4.0indirecta
crates.iohttp-body1.0.1indirecta
crates.iohttp-body-util0.1.3indirecta
crates.iohttparse1.10.1indirecta
crates.iohyper1.9.0indirecta
crates.iohyper-rustls0.27.9indirecta
crates.iohyper-util0.1.20indirecta
crates.ioiana-time-zone0.1.65indirecta
crates.ioiana-time-zone-haiku0.1.2indirecta
crates.ioicu_collections2.2.0indirecta
crates.ioicu_locale_core2.2.0indirecta
crates.ioicu_normalizer2.2.0indirecta
crates.ioicu_normalizer_data2.2.0indirecta
crates.ioicu_properties2.2.0indirecta
crates.ioicu_properties_data2.2.0indirecta
crates.ioicu_provider2.2.0indirecta
crates.ioid-arena2.3.0indirecta
crates.ioidna1.1.0indirecta
crates.ioidna_adapter1.2.2indirecta
crates.ioindexmap2.14.0indirecta
crates.ioipnet2.12.0indirecta
crates.ioitoa1.0.18indirecta
crates.iojni0.22.4indirecta
crates.iojni-macros0.22.4indirecta
crates.iojni-sys0.4.1indirecta
crates.iojni-sys-macros0.4.1indirecta
crates.iojobserver0.1.34indirecta
crates.iojs-sys0.3.91indirecta
crates.ioleb128fmt0.1.0indirecta
crates.iolibc0.2.186indirecta
crates.iolibredox0.1.16indirecta
crates.iolinux-raw-sys0.12.1indirecta
crates.iolitemap0.8.2indirecta
crates.iolog0.4.29indirecta
crates.iolru-slab0.1.2indirecta
crates.iomemchr2.8.0indirecta
crates.iominiz_oxide0.8.9indirecta
crates.iomio1.2.0indirecta
crates.ionum-traits0.2.19indirecta
crates.ioonce_cell1.21.4indirecta
crates.ioopenssl-probe0.2.1indirecta
crates.iooption-ext0.2.0indirecta
crates.iopercent-encoding2.3.2indirecta
crates.iopin-project-lite0.2.17indirecta
crates.iopotential_utf0.1.5indirecta
crates.ioppv-lite860.2.21indirecta
crates.ioprettyplease0.2.37indirecta
crates.ioproc-macro21.0.106indirecta
crates.ioquinn0.11.9indirecta
crates.ioquinn-proto0.11.14indirecta
crates.ioquinn-udp0.5.14indirecta
crates.ioquote1.0.45indirecta
crates.ior-efi5.3.0indirecta
crates.ior-efi6.0.0indirecta
crates.iorand0.9.4indirecta
crates.iorand_chacha0.9.0indirecta
crates.iorand_core0.9.5indirecta
crates.ioredox_users0.5.2indirecta
crates.ioregex1.12.3indirecta
crates.ioregex-automata0.4.14indirecta
crates.ioregex-syntax0.8.10indirecta
crates.ioreqwest0.13.3indirecta
crates.ioring0.17.14indirecta
crates.iorustc-hash2.1.2indirecta
crates.iorustc_version0.4.1indirecta
crates.iorustix1.1.4indirecta
crates.iorustls0.23.40indirecta
crates.iorustls-native-certs0.8.3indirecta
crates.iorustls-pki-types1.14.1indirecta
crates.iorustls-platform-verifier0.7.0indirecta
crates.iorustls-platform-verifier-android0.1.1indirecta
crates.iorustls-webpki0.103.13indirecta
crates.iorustversion1.0.22indirecta
crates.iosame-file1.0.6indirecta
crates.ioschannel0.1.29indirecta
crates.iosecurity-framework3.7.0indirecta
crates.iosecurity-framework-sys2.17.0indirecta
crates.iosemver1.0.28indirecta
crates.ioserde1.0.228indirecta
crates.ioserde_core1.0.228indirecta
crates.ioserde_derive1.0.228indirecta
crates.ioserde_json1.0.149indirecta
crates.iosha20.10.9indirecta
crates.ioshlex1.3.0indirecta
crates.iosignal-hook-registry1.4.8indirecta
crates.iosimd-adler320.3.9indirecta
crates.iosimd_cesu81.1.1indirecta
crates.iosimdutf80.1.5indirecta
crates.ioslab0.4.12indirecta
crates.iosmallvec1.15.1indirecta
crates.iosocket20.6.3indirecta
crates.iostable_deref_trait1.2.1indirecta
crates.iosubtle2.6.1indirecta
crates.iosyn2.0.117indirecta
crates.iosync_wrapper1.0.2indirecta
crates.iosynstructure0.13.2indirecta
crates.iotar0.4.46indirecta
crates.iotempfile3.27.0indirecta
crates.iothiserror2.0.18indirecta
crates.iothiserror-impl2.0.18indirecta
crates.iotinystr0.8.3indirecta
crates.iotinyvec1.11.0indirecta
crates.iotinyvec_macros0.1.1indirecta
crates.iotokio1.52.3indirecta
crates.iotokio-macros2.7.0indirecta
crates.iotokio-rustls0.26.4indirecta
crates.iotower0.5.3indirecta
crates.iotower-http0.6.10indirecta
crates.iotower-layer0.3.3indirecta
crates.iotower-service0.3.3indirecta
crates.iotracing0.1.44indirecta
crates.iotracing-core0.1.36indirecta
crates.iotry-lock0.2.5indirecta
crates.iotypenum1.20.1indirecta
crates.iounicode-ident1.0.24indirecta
crates.iounicode-xid0.2.6indirecta
crates.iountrusted0.9.0indirecta
crates.iourl2.5.8indirecta
crates.iourlencoding2.1.3indirecta
crates.ioutf8_iter1.0.4indirecta
crates.ioversion_check0.9.5indirecta
crates.iowalkdir2.5.0indirecta
crates.iowant0.3.1indirecta
crates.iowasi0.11.1+wasi-snapshot-preview1indirecta
crates.iowasip21.0.3+wasi-0.2.9indirecta
crates.iowasip30.4.0+wasi-0.3.0-rc-2026-01-06indirecta
crates.iowasm-bindgen0.2.114indirecta
crates.iowasm-bindgen-futures0.4.64indirecta
crates.iowasm-bindgen-macro0.2.114indirecta
crates.iowasm-bindgen-macro-support0.2.114indirecta
crates.iowasm-bindgen-shared0.2.114indirecta
crates.iowasm-encoder0.244.0indirecta
crates.iowasm-metadata0.244.0indirecta
crates.iowasmparser0.244.0indirecta
crates.ioweb-sys0.3.91indirecta
crates.ioweb-time1.1.0indirecta
crates.iowebpki-root-certs1.0.7indirecta
crates.iowinapi-util0.1.11indirecta
crates.iowindows-core0.62.2indirecta
crates.iowindows-implement0.60.2indirecta
crates.iowindows-interface0.59.3indirecta
crates.iowindows-link0.2.1indirecta
crates.iowindows-result0.4.1indirecta
crates.iowindows-strings0.5.1indirecta
crates.iowindows-sys0.52.0indirecta
crates.iowindows-sys0.60.2indirecta
crates.iowindows-sys0.61.2indirecta
crates.iowindows-targets0.52.6indirecta
crates.iowindows-targets0.53.5indirecta
crates.iowindows_aarch64_gnullvm0.52.6indirecta
crates.iowindows_aarch64_gnullvm0.53.1indirecta
crates.iowindows_aarch64_msvc0.52.6indirecta
crates.iowindows_aarch64_msvc0.53.1indirecta
crates.iowindows_i686_gnu0.52.6indirecta
crates.iowindows_i686_gnu0.53.1indirecta
crates.iowindows_i686_gnullvm0.52.6indirecta
crates.iowindows_i686_gnullvm0.53.1indirecta
crates.iowindows_i686_msvc0.52.6indirecta
crates.iowindows_i686_msvc0.53.1indirecta
crates.iowindows_x86_64_gnu0.52.6indirecta
crates.iowindows_x86_64_gnu0.53.1indirecta
crates.iowindows_x86_64_gnullvm0.52.6indirecta
crates.iowindows_x86_64_gnullvm0.53.1indirecta
crates.iowindows_x86_64_msvc0.52.6indirecta
crates.iowindows_x86_64_msvc0.53.1indirecta
crates.iowit-bindgen0.51.0indirecta
crates.iowit-bindgen0.57.1indirecta
crates.iowit-bindgen-core0.51.0indirecta
crates.iowit-bindgen-rust0.51.0indirecta
crates.iowit-bindgen-rust-macro0.51.0indirecta
crates.iowit-component0.244.0indirecta
crates.iowit-parser0.244.0indirecta
crates.iowriteable0.6.3indirecta
crates.ioxattr1.6.1indirecta
crates.ioyoke0.8.2indirecta
crates.ioyoke-derive0.8.2indirecta
crates.iozerocopy0.8.48indirecta
crates.iozerocopy-derive0.8.48indirecta
crates.iozerofrom0.1.7indirecta
crates.iozerofrom-derive0.1.7indirecta
crates.iozeroize1.8.2indirecta
crates.iozerotrie0.2.4indirecta
crates.iozerovec0.11.6indirecta
crates.iozerovec-derive0.11.3indirecta
crates.iozip2.4.2indirecta
crates.iozmij1.0.21indirecta
crates.iozopfli0.8.3indirecta
Mavenai.platon.pulsar:pulsar-commonindirecta
Mavenai.platon.pulsar:pulsar-domindirecta
Mavenai.platon.pulsar:pulsar-llmindirecta
Mavenai.platon.pulsar:pulsar-maprindirecta
Mavench.qos.logback:logback-classicindirecta
Mavencom.fasterxml.jackson.dataformat:jackson-dataformat-yamlindirecta
Mavencom.google.code.crawler-commons:crawler-commons0.5indirecta
Mavencom.ninja-squad:springmockk4.0.2indirecta
Mavencommons-codec:commons-codecindirecta
Mavendev.langchain4j:langchain4j-open-aiindirecta
Mavenio.github.git-commit-id:git-commit-id-maven-pluginindirecta
Mavenio.mockk:mockkindirecta
Mavenio.mockk:mockk1.14.6indirecta
Mavenio.mockk:mockk-jvmindirecta
Mavenio.mockk:mockk-jvm1.14.6indirecta
Mavenio.modelcontextprotocol:kotlin-sdk-client-jvm0.8.1indirecta
Mavenjavax.servlet:javax.servlet-apiindirecta
Mavenjavax.servlet:jstlindirecta
Mavenjunit:junitindirecta
Mavennet.sourceforge.nekohtml:nekohtmlindirecta
Mavenorg.apache.commons:commons-lang3indirecta
Mavenorg.apache.httpcomponents.client5:httpclient5indirecta
Mavenorg.apache.logging.log4j:log4j-coreindirecta
Mavenorg.apache.maven.plugins:maven-compiler-pluginindirecta
Mavenorg.apache.maven.plugins:maven-dependency-pluginindirecta
Mavenorg.apache.maven.plugins:maven-gpg-pluginindirecta
Mavenorg.apache.maven.plugins:maven-jar-pluginindirecta
Mavenorg.apache.maven.plugins:maven-surefire-pluginindirecta
Mavenorg.apache.tomcat.embed:tomcat-embed-jasperindirecta
Mavenorg.aspectj:aspectjweaver1.9.1indirecta
Mavenorg.codehaus.mojo:exec-maven-plugin3.5.0indirecta
Mavenorg.hamcrest:hamcrest-libraryindirecta
Mavenorg.hibernate:hibernate-entitymanagerindirecta
Mavenorg.jacoco:jacoco-maven-pluginindirecta
Mavenorg.javassist:javassistindirecta
Mavenorg.javassist:javassist3.31.0-GAindirecta
Mavenorg.jetbrains.kotlin:kotlin-maven-pluginindirecta
Mavenorg.jetbrains.kotlin:kotlin-test-junit5indirecta
Mavenorg.jetbrains.kotlinx:kotlinx-coroutines-jdk8indirecta
Mavenorg.jetbrains.kotlinx:kotlinx-serialization-jsonindirecta
Mavenorg.junit.jupiter:junit-jupiter-apiindirecta
Mavenorg.junit.jupiter:junit-jupiter-engineindirecta
Mavenorg.junit.jupiter:junit-jupiter-paramsindirecta
Mavenorg.mockito.kotlin:mockito-kotlinindirecta
Mavenorg.mockito.kotlin:mockito-kotlin5.4.0indirecta
Mavenorg.mockito:mockito-coreindirecta
Mavenorg.mockito:mockito-junit-jupiterindirecta
Mavenorg.slf4j:slf4j-apiindirecta
Mavenorg.sonatype.central:central-publishing-maven-plugin0.9.0indirecta
Mavenorg.springframework.boot:spring-boot-devtoolsindirecta
Mavenorg.springframework.boot:spring-boot-maven-pluginindirecta
Mavenorg.springframework.boot:spring-boot-maven-plugin3.4.1indirecta
Mavenorg.springframework.boot:spring-boot-starter-restclient-testindirecta
Mavenorg.springframework.boot:spring-boot-starter-testindirecta
Mavenorg.springframework.boot:spring-boot-starter-tomcatindirecta
Mavenorg.springframework.boot:spring-boot-testindirecta
Mavenorg.springframework.data:spring-data-commonsindirecta
Mavenorg.springframework.data:spring-data-jpaindirecta
Mavenorg.springframework:spring-aopindirecta
Mavenorg.springframework:spring-beansindirecta
Mavenorg.springframework:spring-contextindirecta
Mavenorg.springframework:spring-coreindirecta
Mavenorg.springframework:spring-expressionindirecta
Mavenorg.springframework:spring-jdbcindirecta
Mavenorg.springframework:spring-ormindirecta
Mavenorg.springframework:spring-testindirecta
Mavenorg.springframework:spring-txindirecta
Mavenorg.springframework:spring-webindirecta
Mavenorg.springframework:spring-webmvcindirecta
Mavenxml-apis:xml-apisindirecta
npmaccepts1.3.8indirecta
npmarray-flatten1.1.1indirecta
npmbody-parser1.20.5indirecta
npmbrowser4-cli0.1.5indirecta
npmbytes3.1.2indirecta
npmcall-bind-apply-helpers1.0.2indirecta
npmcall-bound1.0.4indirecta
npmcontent-disposition0.5.4indirecta
npmcontent-type1.0.5indirecta
npmcookie0.7.2indirecta
npmcookie-signature1.0.7indirecta
npmcors2.8.6indirecta
npmdebug2.6.9indirecta
npmdepd2.0.0indirecta
npmdestroy1.2.0indirecta
npmdunder-proto1.0.1indirecta
npmee-first1.1.1indirecta
npmencodeurl2.0.0indirecta
npmes-define-property1.0.1indirecta
npmes-errors1.3.0indirecta
npmes-object-atoms1.1.2indirecta
npmescape-html1.0.3indirecta
npmetag1.8.1indirecta
npmexpress4.22.2indirecta
npmfinalhandler1.3.2indirecta
npmforwarded0.2.0indirecta
npmfresh0.5.2indirecta
npmfunction-bind1.1.2indirecta
npmget-intrinsic1.3.0indirecta
npmget-proto1.0.1indirecta
npmgopd1.2.0indirecta
npmhas-symbols1.1.0indirecta
npmhasown2.0.4indirecta
npmhttp-errors2.0.1indirecta
npmiconv-lite0.4.24indirecta
npminherits2.0.4indirecta
npmipaddr.js1.9.1indirecta
npmmath-intrinsics1.1.0indirecta
npmmedia-typer0.3.0indirecta
npmmerge-descriptors1.0.3indirecta
npmmethods1.1.2indirecta
npmmime1.6.0indirecta
npmmime-db1.52.0indirecta
npmmime-types2.1.35indirecta
npmms2.0.0indirecta
npmms2.1.3indirecta
npmnegotiator0.6.3indirecta
npmobject-assign4.1.1indirecta
npmobject-inspect1.13.4indirecta
npmon-finished2.4.1indirecta
npmparseurl1.3.3indirecta
npmpath-to-regexp0.1.13indirecta
npmproxy-addr2.0.7indirecta
npmqs6.15.2indirecta
npmrange-parser1.2.1indirecta
npmraw-body2.5.3indirecta
npmsafe-buffer5.2.1indirecta
npmsafer-buffer2.1.2indirecta
npmsend0.19.2indirecta
npmserve-static1.16.3indirecta
npmsetprototypeof1.2.0indirecta
npmside-channel1.1.1indirecta
npmside-channel-list1.0.1indirecta
npmside-channel-map1.0.1indirecta
npmside-channel-weakmap1.0.2indirecta
npmstatuses2.0.2indirecta
npmtoidentifier1.0.1indirecta
npmtype-is1.6.18indirecta
npmunpipe1.0.0indirecta
npmutils-merge1.0.1indirecta
npmvary1.1.2indirecta
PyPIanthropicindirecta
PyPImcpindirecta
Avisos de dependencias 4

Este repositorio no publica ningún paquete que el índice resuelva, así que se evaluó su propio grafo de dependencias — 387 paquetes, que incluyen también fijaciones de desarrollo y prueba que nunca se distribuyen: 4 tienen avisos conocidos, de los cuales 1 son directas. 122 no pudieron evaluarse: sin versión resuelta, ecosistema no admitido, o fuera de la lista de paquetes informada.

PaqueteVersiónRelaciónGravedadAvisosCorregido en
com.fasterxml.jackson.core:jackson-databind2.9.9.3directacrítica503.1.4
quinn-proto0.11.14indirectaalta20.11.15
body-parser1.20.5indirectabaja12.3.0
anyhow1.0.102indirectadesconocida11.0.103

Un aviso significa que la versión registrada en el grafo de dependencias cae dentro del rango afectado de un aviso. No se analiza la alcanzabilidad, y el grafo incluye fijaciones de desarrollo y prueba: un hallazgo puede referirse al utillaje y no al software distribuido.

Informe JSON sin procesar legible por máquina
{
  "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"
}

Las puntuaciones son señales, no garantías. Reflejan prácticas públicamente visibles en GitHub; no son una auditoría de código ni una garantía de seguridad.

Los datos ausentes se excluyen y los pesos se renormalizan; nunca se puntúan como cero. La metodología es versionada y abierta: métricas v1.13.0, esquema v0.27.0 — metodología completa · wiki de métricas.

Cómo se sitúa un resultado dentro del registro general: estadísticas agregadasnpm.