Публічний реєстр
Звіт про здоров'я програмного забезпеченнясхема 0.27.0 · метрики 1.13.0 · 2026-07-25 14:21 UTC

platonai / Browser4

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

Kotlin · PowerShell · RustApache-2.0★ 1 093 зірки⑂ 145 форківз бер. 2018 р.Переглянути на GitHub ↗

platonai/Browser4 має індекс здоров’я 72 зі 100, що відповідає смузі «Добрий». Найвищий показник — Vitality (93/100), найнижчий — Security (47/100). Останнє оновлення — сьогодні. Більшість нещодавньої роботи виконує один учасник.

72
загалом / 100
Добрий

Індекс здоров'я програмного забезпечення

Метрики згруповано у зважені категорії на шкалі 1–100. Загальна оцінка починається як їхнє середнє; коли публічні дані активують Політику юрисдикцій високого ризику, рейтинг коригується й отримує верхню межу 49 («Під ризиком»). Готовність до ШІ не входить до індексу.

72
Відмінний85-100Зразковий; відповідає практично всім перевіреним критеріям
Добрий70-84Здоровий; незначні прогалини
Помірний50-69Прийнятний, але з помітними прогалинами; рекомендовано перевірку
У зоні ризику30-49Суттєві слабкі місця; впровадження потребує обережності
Критичний1-29Серйозні проблеми (покинутий, єдиний мейнтейнер, без базової гігієни)
ЖиттєздатністьСпільнота тавпровадженняСталість таврядуванняІнженернаякістьБезпекаГотовність доШІ

Профіль оцінок

Кожна вісь — окрема категорія. Форма важить більше, ніж середнє: здоровий об'єкт заповнює всю фігуру, тоді як профіль із піками та провалами означає, що сила в одному вимірі маскує ризик в іншому.

Власність

PlatonAIОсобистий обліковий запис
154 підписники42 публічні репозиторіїз бер. 2018 р.

Цей репозиторій належить особистому обліковому запису. Проєкт з єдиним власником несе більший ризик безперервності, ніж підтримуваний організацією.

Пакетні екосистеми

РеєстрПакетВерсіяЗавантажень / місВерсіїОстання публікаціяТеги
npmbrowser4-cli0.1.323 3223311 днів томуbrowserbrowser4browser4-cliautomationheadlesschromecdpcliagent

Метрики за категоріями

Життєздатність

Чи живий проєкт — чи пишеться код і чи виходять релізи?

93Відмінний · 22% загального індексу
Як обчислюється оцінка
36/36Свіжість push — останній push 0 дн. тому
31.2/36Ритм комітів — 45/52 тижнів із комітами
18/18Обсяг комітів — 5 042 комітів за останній рік
10/10OpenSSF Scorecard: Maintained — 30 commit(s) and 3 issue activity found in the last 90 days -- score normalized to 10
Використані вхідні дані
commits_last_year5 042
human_commit_share1
days_since_last_push0
active_weeks_last_year45
Як обчислюється оцінка
27/27Випускає релізи — опубліковано 39 релізів
36/36Свіжість релізів — останній реліз 5 дн. тому
27/27Ритм релізів — реліз кожні ~2,4 дн.
0/10OpenSSF Scorecard: Signed-Releases — Project has not signed or included provenance with any releases.
Використані вхідні дані
releases_count39
latest_release_tagv4.12.0-rc.3
releases_from_tagsні
days_since_latest_release5
mean_days_between_releases2,4

Спільнота та впровадження

Чи має проєкт користувачів, завантаження, увагу та влаштовані умови для контриб’юторів?

62Помірний · 18% загального індексу
Як обчислюється оцінка
49.3/60Зірки — 1 093 зірок
18/25Форки — 145 форків
7/15Спостерігачі — 19 спостерігачів
Використані вхідні дані
forks145
stars1 093
watchers19
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
Як обчислюється оцінка
22.5/22.5README
22.5/22.5Ліцензія — визнана ліцензія (Apache-2.0)
0/18Настанови CONTRIBUTING
0/13.5Кодекс поведінки
0/7.2Шаблон issue
0/6.3Шаблон PR
Використані вхідні дані
has_readmeтак
has_licenseтак
has_contributingні
has_issue_templateні
has_code_of_conductні
has_pull_request_templateні
Як обчислюється оцінка
47/80Щомісячні завантаження — 3 322 завантажень/місяць у npm
0/20Залежні пакети в реєстрі — ця екосистема цього не повідомляє
Використані вхідні дані
packagesbrowser4-cli
dependents
ecosystemsnpm
total_downloads
monthly_downloads3 322
Виключено з оцінювання (немає даних або не застосовно): Залежні пакети в реєстрі. Залишкові ваги перенормовано.

Сталість та врядування

Чи переживе проєкт своїх людей — бас-фактор, реактивність, хто за ним стоїть і як супроводжуються пакети?

61Помірний · 24% загального індексу
Як обчислюється оцінка
9/54Бас-фактор — на 1 контриб’ютор(ів) припадає половина всіх комітів
8/22.5Розподіл комітів — головний контриб’ютор — автор 64% комітів
5.4/13.5Широта контриб’юторів — 4 контриб’юторів
3/10OpenSSF Scorecard: Contributors — project has 1 contributing companies or organizations -- score normalized to 3
Використані вхідні дані
bus_factor1
contributors_sampled4
top_contributor_share0,644
Як обчислюється оцінка
46.8/46.8Вирішення issue — закрито 100% issue
25.5/38.3Прийняття PR — злито 184/276 вирішених PR
0/15OpenSSF Scorecard: Code-Review — Found 0/30 approved changesets -- score normalized to 0
Використані вхідні дані
merged_prs184
open_issues0
closed_issues210
issue_closed_ratio1
closed_unmerged_prs92
Як обчислюється оцінка
10/30Підтримка власника — особистий (користувацький) обліковий запис
0/20Верифікований домен — не застосовно до користувацьких облікових записів
15.7/25Охоплення власника — 154 підписників у platonai
23.9/25Послужний список — 42 публічних репозиторіїв, вік облікового запису ~8 р.
Використані вхідні дані
followers154
owner_typeUser
is_verified
owner_loginplatonai
public_repos42
account_age_days3 043
Виключено з оцінювання (немає даних або не застосовно): Верифікований домен. Залишкові ваги перенормовано.

Супровід пакетів

100Відмінний
Як обчислюється оцінка
25/25Опубліковано й доступно — 1 пакет(ів) у npm
35/35Свіжість публікацій — остання публікація 11 дн. тому
20/20Історія версій — 33 опублікованих версій
20/20Не застарілий — активний, не deprecated і не yanked
Використані вхідні дані
packagesbrowser4-cli
ecosystemsnpm
any_deprecatedні
min_days_since_publish11

Інженерна якість

Чи наявні базові інженерні практики та документація?

93Відмінний · 20% загального індексу
Як обчислюється оцінка
24/24Процеси CI — 9 процес(ів) CI
24/24Наявні тести
16/16Конфігурація лінтера — .eslintrc
0/9.6Pre-commit-хуки
6.4/6.4.editorconfig
0/20OpenSSF Scorecard: CI-Tests — немає даних
Використані вхідні дані
has_ciтак
has_testsтак
has_editorconfigтак
has_linter_configтак
has_precommit_configні
Виключено з оцінювання (немає даних або не застосовно): OpenSSF Scorecard: CI-Tests. Залишкові ваги перенормовано.

Документація

100Відмінний
Як обчислюється оцінка
30/30README
25/25Каталог документації
15/15Сайт документації / домашня сторінка — https://browser4.io
10/10Опис репозиторію
10/10Теми — 6 тем
10/10Wiki
Використані вхідні дані
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так

Безпека

Чи міцні видимі практики безпеки й ланцюга постачання, без непослабленої пов’язаності з юрисдикціями високого ризику?

47У зоні ризику · 16% загального індексу

Стан безпеки

46У зоні ризику
Як обчислюється оцінка
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 — немає даних
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.5Ліцензія — 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
Використані вхідні дані
sourceopenssf_scorecard
checks_evaluated17
scorecard_versionv5.5.0
checks_inconclusive1
scorecard_aggregate4,6
Виключено з оцінювання (немає даних або не застосовно): ci_tests. Залишкові ваги перенормовано.
Як обчислюється оцінка
7.6/35Прямі залежності без відомих сповіщень — уражено 1: com.fasterxml.jackson.core:jackson-databind 2.9.9.3 (critical 9.8)
0/25Непрямі залежності без відомих сповіщень — транзитивний набір не відокремлюється від залежностей розробки й тестування в цьому обсязі
32.1/40Немає задавнених сповіщень — 1 пакет(ів) зі сповіщеннями без реакції понад 90 дн.; найдавніше опубліковано 2 496 дн. тому
Використані вхідні дані
sourceosv
advisories54
affected_packages4
assessed_packages387
unassessed_packages122
affected_by_severitycritical 1, high 1, low 1, unknown 1
direct_affected_packages1
Виключено з оцінювання (немає даних або не застосовно): Непрямі залежності без відомих сповіщень. Залишкові ваги перенормовано. Звірено 387 резолвлених залежностей із OSV. 122 не вдалося оцінити — немає резолвленої версії, непідтримувана екосистема або поза межами звітованого переліку пакетів. Цей репозиторій не публікує пакета, який резолвить індекс, тож натомість оцінено граф залежностей репозиторію. Цей граф змішує закріплені версії для розробки й тестування зі справді постачаними залежностями, тож оцінюються лише задекларовані runtime-залежності; транзитивні знахідки подаються як контекст і в оцінку не входять. Досяжність не аналізується.

Готовність до ШІ

Наскільки репозиторій оснащений для розробки та супроводу за участі ШІ-агентів? Незалежний, експериментальний бейдж — вага 0.0, тож він подається окремо і не впливає на загальний індекс здоров'я.

81Добрий · 0% загального індексу
Як обчислюється оцінка
45/45Інструкції для агентів — AGENTS.md, skills/browser4-cli/references/agent.md
0/15Машиночитана документація (llms.txt)
40/40Читабельна історія комітів — намір зазначено у 88 з 100 людських комітів (структурований заголовок або пояснювальний текст)
Використані вхідні дані
has_llms_txtні
legible_history_share0,88
agent_instruction_filesAGENTS.md, skills/browser4-cli/references/agent.md
agent_instruction_max_bytes27 338
Як обчислюється оцінка
12.6/18Розгортання однією командою — browser4-agent-tools/pom.xml, browser4-agentic/pom.xml, browser4-apps/browser4-bundle/pom.xml (домовленість інструментарію, без раннера задач)
22/22Автоматизовані тести
11/11Конфігурація лінтера / форматера — .eslintrc
11/11Статична перевірка типів — Kotlin (статично типізована)
10/10Відтворюване середовище — Dockerfile, lockfile
10/10Підтверджена практика роботи з агентами — 44 з останніх 100 комітів створено агентом або з його зазначенням
0/8Автоматизоване супроводження — автоматичних оновлень залежностей не виявлено
3/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 3
Використані вхідні дані
has_nixні
has_testsтак
lockfilesCargo.lock, package-lock.json, pnpm-lock.yaml
has_dockerfileтак
typed_languageтак
bootstrap_files
has_devcontainerні
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
Як обчислюється оцінка
45/45Типізований код — Kotlin (статично типізована)
53/55Керовані розміри файлів — 30/809 файлів вихідного коду понад 60 КБ
Використані вхідні дані
primary_languageKotlin
largest_source_bytes1 073 878
source_files_sampled809
oversized_source_files30
Як обчислюється оцінка
0/40Схема API (OpenAPI/GraphQL/proto)
20/20Сервер MCP
40/40Придатні до запуску приклади — examples, sample
Використані вхідні дані
example_dirsexamples, sample
has_mcp_signalтак
api_schema_files

Ключові факти

1 093зірок GitHub
4контриб'юторів
5 042комітів за останні 12 місяців
0днів від останнього пушу
39релізів
1бас-фактор
0відкритих issue
Maven, npmпакетних екосистем

Попередження щодо збору даних

  • 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

Докладніше

Історія зірок і форків 0 ★ / 145 ⇿
0Зірки
145Форки
39Релізи

Коли додано кожну зірку й форк — зібрано з GitHub і згруповано за днями. Кумулятивне зростання розміщено просто над денними додаваннями, з яких воно складається, тож їх видно одне проти одного: рівномірне органічне накопичення виглядає зовсім інакше, ніж різкий короткочасний сплеск. Там, де цю різницю можна виміряти, її подано як автентичність росту.

0255075100125150145112018-042022-052026-07
Мажорні 1Мінорні 10Патчі 26

Кожна точка охоплює 8 днів.

OpenSSF Scorecard 4.6 / 10
4.6сукупно

Незалежна, не прив'язана до інструментів оцінка безпеки від відкритого проєкту OpenSSF Scorecard. Кожна перевірка винагороджує практику безпеки, а не інструмент конкретного постачальника. Перевірки, які Scorecard не зміг визначити, позначено н/д і виключено з оцінки безпеки (вони ніколи не зараховуються як нуль).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
н/дCI-Testsno pull request found
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
0Code-ReviewFound 0/30 approved changesets -- score normalized to 0
3Contributorsproject has 1 contributing companies or organizations -- score normalized to 3
10Dangerous-Workflowno dangerous workflow patterns detected
10Dependency-Update-Toolupdate tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
10Maintained30 commit(s) and 3 issue activity found in the last 90 days -- score normalized to 10
10Packagingpackaging workflow detected
3Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 3
0SASTno SAST tool detected
0Security-Policysecurity policy file not detected
0Signed-ReleasesProject has not signed or included provenance with any releases.
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
7Vulnerabilities3 existing vulnerabilities detected
Прямі залежності 116
РеєстрПакетОбмеження версіїМаніфест
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
Усі залежності 509

Повний розв'язаний набір залежностей із графа залежностей GitHub: 125 прямих і 384 непрямих (транзитивних) пакетів. Транзитивне замикання є повним, коли в репозиторії закомічено lockfile.

РеєстрПакетВерсіяЗв'язок
Mavenai.platon.cdt:cdt-kotlin-clientпряма
Mavenai.platon.cdt:cdt-kotlin-client4.8.0пряма
Mavenai.platon.pulsar:browser4-agent-toolsпряма
Mavenai.platon.pulsar:browser4-agent-tools4.11.22-SNAPSHOTпряма
Mavenai.platon.pulsar:browser4-agenticпряма
Mavenai.platon.pulsar:browser4-agentic4.11.22-SNAPSHOTпряма
Mavenai.platon.pulsar:browser4-bootпряма
Mavenai.platon.pulsar:browser4-boot4.11.22-SNAPSHOTпряма
Mavenai.platon.pulsar:browser4-browserпряма
Mavenai.platon.pulsar:browser4-browser4.11.22-SNAPSHOTпряма
Mavenai.platon.pulsar:browser4-commonпряма
Mavenai.platon.pulsar:browser4-common4.11.22-SNAPSHOTпряма
Mavenai.platon.pulsar:browser4-dependencies4.11.22-SNAPSHOTпряма
Mavenai.platon.pulsar:browser4-parseпряма
Mavenai.platon.pulsar:browser4-parse4.11.22-SNAPSHOTпряма
Mavenai.platon.pulsar:browser4-plugins4.11.22-SNAPSHOTпряма
Mavenai.platon.pulsar:browser4-protocolпряма
Mavenai.platon.pulsar:browser4-protocol4.11.22-SNAPSHOTпряма
Mavenai.platon.pulsar:browser4-resourcesпряма
Mavenai.platon.pulsar:browser4-resources4.11.22-SNAPSHOTпряма
Mavenai.platon.pulsar:browser4-restпряма
Mavenai.platon.pulsar:browser4-rest4.11.22-SNAPSHOTпряма
Mavenai.platon.pulsar:browser4-skeletonпряма
Mavenai.platon.pulsar:browser4-skeleton4.11.22-SNAPSHOTпряма
Mavenai.platon.pulsar:browser4-tests-commonпряма
Mavenai.platon.pulsar:browser4-tests-common4.11.22-SNAPSHOTпряма
Mavenai.platon.pulsar:pulsar-bomпряма
Mavenai.platon.pulsar:pulsar-bom4.8.5пряма
Mavenai.platon.pulsar:pulsar-h2пряма
Mavenai.platon.pulsar:pulsar-h21.4.197пряма
Mavenai.platon.pulsar:pulsar-it-tests4.11.22-SNAPSHOTпряма
Mavenai.platon.pulsar:pulsar-jsoupпряма
Mavenai.platon.pulsar:pulsar-jsoup1.14.3пряма
Mavenai.platon.pulsar:pulsar-persistпряма
Mavenai.platon.pulsar:pulsar-qlпряма
Mavenai.platon.pulsar:pulsar-ql-commonпряма
Mavencom.beust:jcommanderпряма
Mavencom.beust:jcommander1.82пряма
Mavencom.fasterxml.jackson.core:jackson-annotationsпряма
Mavencom.fasterxml.jackson.core:jackson-coreпряма
Mavencom.fasterxml.jackson.core:jackson-databindпряма
Mavencom.fasterxml.jackson.core:jackson-databind2.9.9.3пряма
Mavencom.fasterxml.jackson.module:jackson-module-kotlinпряма
Mavencom.github.ben-manes.caffeine:caffeineпряма
Mavencom.github.oshi:oshi-coreпряма
Mavencom.github.oshi:oshi-core6.6.6пряма
Mavencom.google.code.gson:gsonпряма
Mavencom.google.guava:guavaпряма
Mavencom.google.guava:guava33.2.1-jreпряма
Mavencom.squareup.okhttp3:okhttp4.12.0пряма
Mavencom.udojava:EvalEx2.0пряма
Mavencommons-io:commons-io2.16.1пряма
Mavencommons-logging:commons-logging1.3.2пряма
Mavendev.langchain4j:langchain4j-bom1.5.0пряма
Mavenio.dropwizard.metrics:metrics-coreпряма
Mavenio.dropwizard.metrics:metrics-core4.2.12пряма
Mavenio.dropwizard.metrics:metrics-graphiteпряма
Mavenio.dropwizard.metrics:metrics-graphite4.2.12пряма
Mavenio.dropwizard.metrics:metrics-jmx4.2.12пряма
Mavenio.dropwizard.metrics:metrics-json4.2.12пряма
Mavenio.ktor:ktor-client-cioпряма
Mavenio.ktor:ktor-client-cio3.2.3пряма
Mavenio.ktor:ktor-client-cio-jvmпряма
Mavenio.ktor:ktor-client-cio-jvm3.2.3пряма
Mavenio.ktor:ktor-client-coreпряма
Mavenio.ktor:ktor-client-core3.2.3пряма
Mavenio.ktor:ktor-client-core-jvmпряма
Mavenio.ktor:ktor-client-core-jvm3.2.3пряма
Mavenio.ktor:ktor-client-websocketsпряма
Mavenio.ktor:ktor-client-websockets3.2.3пряма
Mavenio.ktor:ktor-serialization-kotlinx-json-jvm3.2.3пряма
Mavenio.micrometer:micrometer-coreпряма
Mavenio.micrometer:micrometer-registry-prometheusпряма
Mavenio.modelcontextprotocol:kotlin-sdk0.8.1пряма
Mavenio.modelcontextprotocol:kotlin-sdk-core-jvm0.8.1пряма
Mavenio.modelcontextprotocol:kotlin-sdk-server-jvm0.8.1пряма
Mavenio.opentelemetry.semconv:opentelemetry-semconvпряма
Mavenio.opentelemetry.semconv:opentelemetry-semconv1.37.0пряма
Mavenio.opentelemetry:opentelemetry-apiпряма
Mavenio.opentelemetry:opentelemetry-exporter-otlpпряма
Mavenio.opentelemetry:opentelemetry-sdkпряма
Mavenjakarta.annotation:jakarta.annotation-apiпряма
Mavenorg.apache.commons:commons-collections4пряма
Mavenorg.apache.commons:commons-collections44.4пряма
Mavenorg.apache.commons:commons-compress1.26.2пряма
Mavenorg.apache.commons:commons-math3пряма
Mavenorg.apache.commons:commons-math33.6.1пряма
Mavenorg.apache.commons:commons-numbers-bom1.1пряма
Mavenorg.apache.commons:commons-text1.11.0пряма
Mavenorg.apache.httpcomponents:httpclientпряма
Mavenorg.apache.httpcomponents:httpclient4.5.13пряма
Mavenorg.apache.httpcomponents:httpcore4.4.15пряма
Mavenorg.apache.lucene:lucene-analyzers-common7.3.1пряма
Mavenorg.apache.lucene:lucene-analyzers-smartcn7.3.1пряма
Mavenorg.apache.lucene:lucene-core7.3.1пряма
Mavenorg.apache.poi:poi5.3.0пряма
Mavenorg.apache.poi:poi-ooxml5.4.0пряма
Mavenorg.apache.tika:tika-coreпряма
Mavenorg.apache.tika:tika-core3.2.2пряма
Mavenorg.apache.tika:tika-parser-html-moduleпряма
Mavenorg.apache.tika:tika-parser-html-module3.2.2пряма
Mavenorg.apache.tika:tika-parsers3.2.2пряма
Mavenorg.jetbrains.kotlin:kotlin-bomпряма
Mavenorg.jetbrains.kotlin:kotlin-maven-allopenпряма
Mavenorg.jetbrains.kotlin:kotlin-maven-noargпряма
Mavenorg.jetbrains.kotlin:kotlin-reflectпряма
Mavenorg.jetbrains.kotlin:kotlin-serializationпряма
Mavenorg.jetbrains.kotlin:kotlin-stdlibпряма
Mavenorg.jetbrains.kotlinx:kotlinx-coroutines-bom1.10.2пряма
Mavenorg.jetbrains.kotlinx:kotlinx-coroutines-coreпряма
Mavenorg.jetbrains.kotlinx:kotlinx-coroutines-reactorпряма
Mavenorg.jgrapht:jgrapht-core1.0.1пряма
Mavenorg.jgrapht:jgrapht-ext1.0.1пряма
Mavenorg.nibor.autolink:autolink0.11.0пряма
Mavenorg.nield:kotlin-statistics1.2.1пряма
Mavenorg.perf4j:perf4j0.9.16пряма
Mavenorg.springframework.boot:spring-bootпряма
Mavenorg.springframework.boot:spring-boot-autoconfigureпряма
Mavenorg.springframework.boot:spring-boot-dependenciesпряма
Mavenorg.springframework.boot:spring-boot-dependencies4.0.6пряма
Mavenorg.springframework.boot:spring-boot-starter-actuatorпряма
Mavenorg.springframework.boot:spring-boot-starter-jettyпряма
Mavenorg.springframework.boot:spring-boot-starter-webпряма
Mavenorg.springframework.boot:spring-boot-starter-webfluxпряма
Mavenorg.yaml:snakeyaml2.2пряма
crates.ioadler22.0.1непряма
crates.ioaho-corasick1.1.4непряма
crates.ioandroid_system_properties0.1.5непряма
crates.ioanyhow1.0.102непряма
crates.ioarbitrary1.4.2непряма
crates.ioatomic-waker1.1.2непряма
crates.ioautocfg1.5.0непряма
crates.ioaws-lc-rs1.16.3непряма
crates.ioaws-lc-sys0.40.0непряма
crates.iobase640.22.1непряма
crates.iobitflags2.11.1непряма
crates.ioblock-buffer0.10.4непряма
crates.iobumpalo3.20.2непряма
crates.iobytes1.11.1непряма
crates.iocc1.2.62непряма
crates.iocfg-if1.0.4непряма
crates.iocfg_aliases0.2.1непряма
crates.iochrono0.4.44непряма
crates.iocmake0.1.58непряма
crates.iocombine4.6.7непряма
crates.iocore-foundation0.10.1непряма
crates.iocore-foundation-sys0.8.7непряма
crates.iocpufeatures0.2.17непряма
crates.iocrc32fast1.5.0непряма
crates.iocrossbeam-utils0.8.21непряма
crates.iocrypto-common0.1.7непряма
crates.ioderive_arbitrary1.4.2непряма
crates.iodigest0.10.7непряма
crates.iodirs6.0.0непряма
crates.iodirs-sys0.5.0непряма
crates.iodisplaydoc0.2.5непряма
crates.iodunce1.0.5непряма
crates.ioequivalent1.0.2непряма
crates.ioerrno0.3.14непряма
crates.iofastrand2.4.1непряма
crates.iofiletime0.2.29непряма
crates.iofind-msvc-tools0.1.9непряма
crates.ioflate21.1.9непряма
crates.iofoldhash0.1.5непряма
crates.ioform_urlencoded1.2.2непряма
crates.iofs_extra1.3.0непряма
crates.iofutures-channel0.3.32непряма
crates.iofutures-core0.3.32непряма
crates.iofutures-io0.3.32непряма
crates.iofutures-sink0.3.32непряма
crates.iofutures-task0.3.32непряма
crates.iofutures-util0.3.32непряма
crates.iogeneric-array0.14.7непряма
crates.iogetrandom0.2.17непряма
crates.iogetrandom0.3.4непряма
crates.iogetrandom0.4.2непряма
crates.iohashbrown0.15.5непряма
crates.iohashbrown0.17.1непряма
crates.ioheck0.5.0непряма
crates.iohttp1.4.0непряма
crates.iohttp-body1.0.1непряма
crates.iohttp-body-util0.1.3непряма
crates.iohttparse1.10.1непряма
crates.iohyper1.9.0непряма
crates.iohyper-rustls0.27.9непряма
crates.iohyper-util0.1.20непряма
crates.ioiana-time-zone0.1.65непряма
crates.ioiana-time-zone-haiku0.1.2непряма
crates.ioicu_collections2.2.0непряма
crates.ioicu_locale_core2.2.0непряма
crates.ioicu_normalizer2.2.0непряма
crates.ioicu_normalizer_data2.2.0непряма
crates.ioicu_properties2.2.0непряма
crates.ioicu_properties_data2.2.0непряма
crates.ioicu_provider2.2.0непряма
crates.ioid-arena2.3.0непряма
crates.ioidna1.1.0непряма
crates.ioidna_adapter1.2.2непряма
crates.ioindexmap2.14.0непряма
crates.ioipnet2.12.0непряма
crates.ioitoa1.0.18непряма
crates.iojni0.22.4непряма
crates.iojni-macros0.22.4непряма
crates.iojni-sys0.4.1непряма
crates.iojni-sys-macros0.4.1непряма
crates.iojobserver0.1.34непряма
crates.iojs-sys0.3.91непряма
crates.ioleb128fmt0.1.0непряма
crates.iolibc0.2.186непряма
crates.iolibredox0.1.16непряма
crates.iolinux-raw-sys0.12.1непряма
crates.iolitemap0.8.2непряма
crates.iolog0.4.29непряма
crates.iolru-slab0.1.2непряма
crates.iomemchr2.8.0непряма
crates.iominiz_oxide0.8.9непряма
crates.iomio1.2.0непряма
crates.ionum-traits0.2.19непряма
crates.ioonce_cell1.21.4непряма
crates.ioopenssl-probe0.2.1непряма
crates.iooption-ext0.2.0непряма
crates.iopercent-encoding2.3.2непряма
crates.iopin-project-lite0.2.17непряма
crates.iopotential_utf0.1.5непряма
crates.ioppv-lite860.2.21непряма
crates.ioprettyplease0.2.37непряма
crates.ioproc-macro21.0.106непряма
crates.ioquinn0.11.9непряма
crates.ioquinn-proto0.11.14непряма
crates.ioquinn-udp0.5.14непряма
crates.ioquote1.0.45непряма
crates.ior-efi5.3.0непряма
crates.ior-efi6.0.0непряма
crates.iorand0.9.4непряма
crates.iorand_chacha0.9.0непряма
crates.iorand_core0.9.5непряма
crates.ioredox_users0.5.2непряма
crates.ioregex1.12.3непряма
crates.ioregex-automata0.4.14непряма
crates.ioregex-syntax0.8.10непряма
crates.ioreqwest0.13.3непряма
crates.ioring0.17.14непряма
crates.iorustc-hash2.1.2непряма
crates.iorustc_version0.4.1непряма
crates.iorustix1.1.4непряма
crates.iorustls0.23.40непряма
crates.iorustls-native-certs0.8.3непряма
crates.iorustls-pki-types1.14.1непряма
crates.iorustls-platform-verifier0.7.0непряма
crates.iorustls-platform-verifier-android0.1.1непряма
crates.iorustls-webpki0.103.13непряма
crates.iorustversion1.0.22непряма
crates.iosame-file1.0.6непряма
crates.ioschannel0.1.29непряма
crates.iosecurity-framework3.7.0непряма
crates.iosecurity-framework-sys2.17.0непряма
crates.iosemver1.0.28непряма
crates.ioserde1.0.228непряма
crates.ioserde_core1.0.228непряма
crates.ioserde_derive1.0.228непряма
crates.ioserde_json1.0.149непряма
crates.iosha20.10.9непряма
crates.ioshlex1.3.0непряма
crates.iosignal-hook-registry1.4.8непряма
crates.iosimd-adler320.3.9непряма
crates.iosimd_cesu81.1.1непряма
crates.iosimdutf80.1.5непряма
crates.ioslab0.4.12непряма
crates.iosmallvec1.15.1непряма
crates.iosocket20.6.3непряма
crates.iostable_deref_trait1.2.1непряма
crates.iosubtle2.6.1непряма
crates.iosyn2.0.117непряма
crates.iosync_wrapper1.0.2непряма
crates.iosynstructure0.13.2непряма
crates.iotar0.4.46непряма
crates.iotempfile3.27.0непряма
crates.iothiserror2.0.18непряма
crates.iothiserror-impl2.0.18непряма
crates.iotinystr0.8.3непряма
crates.iotinyvec1.11.0непряма
crates.iotinyvec_macros0.1.1непряма
crates.iotokio1.52.3непряма
crates.iotokio-macros2.7.0непряма
crates.iotokio-rustls0.26.4непряма
crates.iotower0.5.3непряма
crates.iotower-http0.6.10непряма
crates.iotower-layer0.3.3непряма
crates.iotower-service0.3.3непряма
crates.iotracing0.1.44непряма
crates.iotracing-core0.1.36непряма
crates.iotry-lock0.2.5непряма
crates.iotypenum1.20.1непряма
crates.iounicode-ident1.0.24непряма
crates.iounicode-xid0.2.6непряма
crates.iountrusted0.9.0непряма
crates.iourl2.5.8непряма
crates.iourlencoding2.1.3непряма
crates.ioutf8_iter1.0.4непряма
crates.ioversion_check0.9.5непряма
crates.iowalkdir2.5.0непряма
crates.iowant0.3.1непряма
crates.iowasi0.11.1+wasi-snapshot-preview1непряма
crates.iowasip21.0.3+wasi-0.2.9непряма
crates.iowasip30.4.0+wasi-0.3.0-rc-2026-01-06непряма
crates.iowasm-bindgen0.2.114непряма
crates.iowasm-bindgen-futures0.4.64непряма
crates.iowasm-bindgen-macro0.2.114непряма
crates.iowasm-bindgen-macro-support0.2.114непряма
crates.iowasm-bindgen-shared0.2.114непряма
crates.iowasm-encoder0.244.0непряма
crates.iowasm-metadata0.244.0непряма
crates.iowasmparser0.244.0непряма
crates.ioweb-sys0.3.91непряма
crates.ioweb-time1.1.0непряма
crates.iowebpki-root-certs1.0.7непряма
crates.iowinapi-util0.1.11непряма
crates.iowindows-core0.62.2непряма
crates.iowindows-implement0.60.2непряма
crates.iowindows-interface0.59.3непряма
crates.iowindows-link0.2.1непряма
crates.iowindows-result0.4.1непряма
crates.iowindows-strings0.5.1непряма
crates.iowindows-sys0.52.0непряма
crates.iowindows-sys0.60.2непряма
crates.iowindows-sys0.61.2непряма
crates.iowindows-targets0.52.6непряма
crates.iowindows-targets0.53.5непряма
crates.iowindows_aarch64_gnullvm0.52.6непряма
crates.iowindows_aarch64_gnullvm0.53.1непряма
crates.iowindows_aarch64_msvc0.52.6непряма
crates.iowindows_aarch64_msvc0.53.1непряма
crates.iowindows_i686_gnu0.52.6непряма
crates.iowindows_i686_gnu0.53.1непряма
crates.iowindows_i686_gnullvm0.52.6непряма
crates.iowindows_i686_gnullvm0.53.1непряма
crates.iowindows_i686_msvc0.52.6непряма
crates.iowindows_i686_msvc0.53.1непряма
crates.iowindows_x86_64_gnu0.52.6непряма
crates.iowindows_x86_64_gnu0.53.1непряма
crates.iowindows_x86_64_gnullvm0.52.6непряма
crates.iowindows_x86_64_gnullvm0.53.1непряма
crates.iowindows_x86_64_msvc0.52.6непряма
crates.iowindows_x86_64_msvc0.53.1непряма
crates.iowit-bindgen0.51.0непряма
crates.iowit-bindgen0.57.1непряма
crates.iowit-bindgen-core0.51.0непряма
crates.iowit-bindgen-rust0.51.0непряма
crates.iowit-bindgen-rust-macro0.51.0непряма
crates.iowit-component0.244.0непряма
crates.iowit-parser0.244.0непряма
crates.iowriteable0.6.3непряма
crates.ioxattr1.6.1непряма
crates.ioyoke0.8.2непряма
crates.ioyoke-derive0.8.2непряма
crates.iozerocopy0.8.48непряма
crates.iozerocopy-derive0.8.48непряма
crates.iozerofrom0.1.7непряма
crates.iozerofrom-derive0.1.7непряма
crates.iozeroize1.8.2непряма
crates.iozerotrie0.2.4непряма
crates.iozerovec0.11.6непряма
crates.iozerovec-derive0.11.3непряма
crates.iozip2.4.2непряма
crates.iozmij1.0.21непряма
crates.iozopfli0.8.3непряма
Mavenai.platon.pulsar:pulsar-commonнепряма
Mavenai.platon.pulsar:pulsar-domнепряма
Mavenai.platon.pulsar:pulsar-llmнепряма
Mavenai.platon.pulsar:pulsar-maprнепряма
Mavench.qos.logback:logback-classicнепряма
Mavencom.fasterxml.jackson.dataformat:jackson-dataformat-yamlнепряма
Mavencom.google.code.crawler-commons:crawler-commons0.5непряма
Mavencom.ninja-squad:springmockk4.0.2непряма
Mavencommons-codec:commons-codecнепряма
Mavendev.langchain4j:langchain4j-open-aiнепряма
Mavenio.github.git-commit-id:git-commit-id-maven-pluginнепряма
Mavenio.mockk:mockkнепряма
Mavenio.mockk:mockk1.14.6непряма
Mavenio.mockk:mockk-jvmнепряма
Mavenio.mockk:mockk-jvm1.14.6непряма
Mavenio.modelcontextprotocol:kotlin-sdk-client-jvm0.8.1непряма
Mavenjavax.servlet:javax.servlet-apiнепряма
Mavenjavax.servlet:jstlнепряма
Mavenjunit:junitнепряма
Mavennet.sourceforge.nekohtml:nekohtmlнепряма
Mavenorg.apache.commons:commons-lang3непряма
Mavenorg.apache.httpcomponents.client5:httpclient5непряма
Mavenorg.apache.logging.log4j:log4j-coreнепряма
Mavenorg.apache.maven.plugins:maven-compiler-pluginнепряма
Mavenorg.apache.maven.plugins:maven-dependency-pluginнепряма
Mavenorg.apache.maven.plugins:maven-gpg-pluginнепряма
Mavenorg.apache.maven.plugins:maven-jar-pluginнепряма
Mavenorg.apache.maven.plugins:maven-surefire-pluginнепряма
Mavenorg.apache.tomcat.embed:tomcat-embed-jasperнепряма
Mavenorg.aspectj:aspectjweaver1.9.1непряма
Mavenorg.codehaus.mojo:exec-maven-plugin3.5.0непряма
Mavenorg.hamcrest:hamcrest-libraryнепряма
Mavenorg.hibernate:hibernate-entitymanagerнепряма
Mavenorg.jacoco:jacoco-maven-pluginнепряма
Mavenorg.javassist:javassistнепряма
Mavenorg.javassist:javassist3.31.0-GAнепряма
Mavenorg.jetbrains.kotlin:kotlin-maven-pluginнепряма
Mavenorg.jetbrains.kotlin:kotlin-test-junit5непряма
Mavenorg.jetbrains.kotlinx:kotlinx-coroutines-jdk8непряма
Mavenorg.jetbrains.kotlinx:kotlinx-serialization-jsonнепряма
Mavenorg.junit.jupiter:junit-jupiter-apiнепряма
Mavenorg.junit.jupiter:junit-jupiter-engineнепряма
Mavenorg.junit.jupiter:junit-jupiter-paramsнепряма
Mavenorg.mockito.kotlin:mockito-kotlinнепряма
Mavenorg.mockito.kotlin:mockito-kotlin5.4.0непряма
Mavenorg.mockito:mockito-coreнепряма
Mavenorg.mockito:mockito-junit-jupiterнепряма
Mavenorg.slf4j:slf4j-apiнепряма
Mavenorg.sonatype.central:central-publishing-maven-plugin0.9.0непряма
Mavenorg.springframework.boot:spring-boot-devtoolsнепряма
Mavenorg.springframework.boot:spring-boot-maven-pluginнепряма
Mavenorg.springframework.boot:spring-boot-maven-plugin3.4.1непряма
Mavenorg.springframework.boot:spring-boot-starter-restclient-testнепряма
Mavenorg.springframework.boot:spring-boot-starter-testнепряма
Mavenorg.springframework.boot:spring-boot-starter-tomcatнепряма
Mavenorg.springframework.boot:spring-boot-testнепряма
Mavenorg.springframework.data:spring-data-commonsнепряма
Mavenorg.springframework.data:spring-data-jpaнепряма
Mavenorg.springframework:spring-aopнепряма
Mavenorg.springframework:spring-beansнепряма
Mavenorg.springframework:spring-contextнепряма
Mavenorg.springframework:spring-coreнепряма
Mavenorg.springframework:spring-expressionнепряма
Mavenorg.springframework:spring-jdbcнепряма
Mavenorg.springframework:spring-ormнепряма
Mavenorg.springframework:spring-testнепряма
Mavenorg.springframework:spring-txнепряма
Mavenorg.springframework:spring-webнепряма
Mavenorg.springframework:spring-webmvcнепряма
Mavenxml-apis:xml-apisнепряма
npmaccepts1.3.8непряма
npmarray-flatten1.1.1непряма
npmbody-parser1.20.5непряма
npmbrowser4-cli0.1.5непряма
npmbytes3.1.2непряма
npmcall-bind-apply-helpers1.0.2непряма
npmcall-bound1.0.4непряма
npmcontent-disposition0.5.4непряма
npmcontent-type1.0.5непряма
npmcookie0.7.2непряма
npmcookie-signature1.0.7непряма
npmcors2.8.6непряма
npmdebug2.6.9непряма
npmdepd2.0.0непряма
npmdestroy1.2.0непряма
npmdunder-proto1.0.1непряма
npmee-first1.1.1непряма
npmencodeurl2.0.0непряма
npmes-define-property1.0.1непряма
npmes-errors1.3.0непряма
npmes-object-atoms1.1.2непряма
npmescape-html1.0.3непряма
npmetag1.8.1непряма
npmexpress4.22.2непряма
npmfinalhandler1.3.2непряма
npmforwarded0.2.0непряма
npmfresh0.5.2непряма
npmfunction-bind1.1.2непряма
npmget-intrinsic1.3.0непряма
npmget-proto1.0.1непряма
npmgopd1.2.0непряма
npmhas-symbols1.1.0непряма
npmhasown2.0.4непряма
npmhttp-errors2.0.1непряма
npmiconv-lite0.4.24непряма
npminherits2.0.4непряма
npmipaddr.js1.9.1непряма
npmmath-intrinsics1.1.0непряма
npmmedia-typer0.3.0непряма
npmmerge-descriptors1.0.3непряма
npmmethods1.1.2непряма
npmmime1.6.0непряма
npmmime-db1.52.0непряма
npmmime-types2.1.35непряма
npmms2.0.0непряма
npmms2.1.3непряма
npmnegotiator0.6.3непряма
npmobject-assign4.1.1непряма
npmobject-inspect1.13.4непряма
npmon-finished2.4.1непряма
npmparseurl1.3.3непряма
npmpath-to-regexp0.1.13непряма
npmproxy-addr2.0.7непряма
npmqs6.15.2непряма
npmrange-parser1.2.1непряма
npmraw-body2.5.3непряма
npmsafe-buffer5.2.1непряма
npmsafer-buffer2.1.2непряма
npmsend0.19.2непряма
npmserve-static1.16.3непряма
npmsetprototypeof1.2.0непряма
npmside-channel1.1.1непряма
npmside-channel-list1.0.1непряма
npmside-channel-map1.0.1непряма
npmside-channel-weakmap1.0.2непряма
npmstatuses2.0.2непряма
npmtoidentifier1.0.1непряма
npmtype-is1.6.18непряма
npmunpipe1.0.0непряма
npmutils-merge1.0.1непряма
npmvary1.1.2непряма
PyPIanthropicнепряма
PyPImcpнепряма
Сповіщення про залежності 4

Цей репозиторій не публікує пакета, який розпізнає індекс, тож оцінено його власний граф залежностей — 387 пакетів, серед яких є й піниї розробки та тестування, що ніколи не постачаються: 4 мають відомі сповіщення, з них 1 прямі. 122 не вдалося оцінити — немає резолвленої версії, непідтримувана екосистема або поза наведеним переліком пакетів.

ПакетВерсіяЗв'язокКритичністьСповіщеньВиправлено в
com.fasterxml.jackson.core:jackson-databind2.9.9.3прямакритична503.1.4
quinn-proto0.11.14непрямависока20.11.15
body-parser1.20.5непряманизька12.3.0
anyhow1.0.102непряманевідома11.0.103

Сповіщення означає, що версія, записана в графі залежностей, потрапляє в уражений діапазон. Досяжність не аналізується, а граф містить піниї розробки й тестування — знахідка може стосуватися інструментів, а не поставленого коду.

Звіт у форматі JSON машиночитний
{
  "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"
}

Оцінки — це сигнали, а не гарантії. Вони відображають публічно видимі практики на GitHub — це не аудит коду й не гарантія безпеки.

Відсутні дані виключаються, а ваги перенормовуються — нуль за відсутність ніколи не ставиться. Методологія версіонована й відкрита: метрики v1.13.0, схема v0.27.0 — повна методологія · вікі метрик.

Як окремий результат виглядає на тлі всього реєстру: сукупна статистикаnpm.