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

langgraph4j / langgraph4j

🚀 LangGraph for Java. A library for develop AI Agentic Architectures in the Java ecosystem. Designed to work seamlessly with both Langchain4j and Spring AI.

Java · Jupyter NotebookMIT★ 1 844 зірки⑂ 247 форківз бер. 2024 р.Переглянути на GitHub ↗

langgraph4j/langgraph4j має індекс здоров’я 67 зі 100, що відповідає смузі «Помірний». Найвищий показник — Vitality (98/100), найнижчий — Security (43/100). Останнє оновлення було 3 дні тому. Більшість нещодавньої роботи виконує один учасник.

67
загалом / 100
Помірний

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

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

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

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

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

Власність

LangGraph4jОрганізація
78 підписників17 публічних репозиторіївз трав. 2025 р.

За цим репозиторієм стоїть організація — спільна, підзвітна опіка, здатна пережити будь-якого окремого мейнтейнера.

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

РеєстрПакетВерсіяЗавантажень / місВерсіїОстання публікація
Mavenorg.bsc.langgraph4j:langgraph4j-howtos1.9.0-beta1-977 днів тому
Mavenorg.bsc.langgraph4j:langgraph4j-javelit1.9.0-beta1-307 днів тому
Mavenorg.bsc.langgraph4j:langgraph4j-core1.9.0-beta1-867 днів тому
Mavenorg.bsc.langgraph4j:langgraph4j-mysql-saver1.9.0-beta1-377 днів тому
Mavenorg.bsc.langgraph4j:langgraph4j-redis-saver1.9.0-beta1-217 днів тому
Mavenorg.bsc.langgraph4j:langgraph4j-oracle-saver1.9.0-beta1-387 днів тому
Mavenorg.bsc.langgraph4j:langgraph4j-opentelemetry1.9.0-beta1-237 днів тому
Mavenorg.bsc.langgraph4j:langgraph4j-dynamodb-saver1.9.0-beta1-67 днів тому

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

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

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

98Відмінний · 22% загального індексу
Як обчислюється оцінка
36/36Свіжість push — останній push 3 дн. тому
33.2/36Ритм комітів — 48/52 тижнів із комітами
18/18Обсяг комітів — 1 417 комітів за останній рік
10/10OpenSSF Scorecard: Maintained — 30 commit(s) and 24 issue activity found in the last 90 days -- score normalized to 10
Використані вхідні дані
commits_last_year1 417
human_commit_share1
days_since_last_push3
active_weeks_last_year48
Як обчислюється оцінка
27/27Випускає релізи — опубліковано 100 релізів
36/36Свіжість релізів — останній реліз 7 дн. тому
27/27Ритм релізів — реліз кожні ~10,5 дн.
0/10OpenSSF Scorecard: Signed-Releases — немає даних
Використані вхідні дані
releases_count100
latest_release_tagv1.9.0-beta1
releases_from_tagsні
days_since_latest_release7
mean_days_between_releases10,5
Виключено з оцінювання (немає даних або не застосовно): OpenSSF Scorecard: Signed-Releases. Залишкові ваги перенормовано.

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

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

67Помірний · 18% загального індексу
Як обчислюється оцінка
53/60Зірки — 1 844 зірок
19.9/25Форки — 247 форків
8/15Спостерігачі — 28 спостерігачів
Використані вхідні дані
forks247
stars1 844
watchers28
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
Як обчислюється оцінка
22.5/22.5README
22.5/22.5Ліцензія — визнана ліцензія (MIT)
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ні

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

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

60Помірний · 24% загального індексу
Як обчислюється оцінка
9/54Бас-фактор — на 1 контриб’ютор(ів) припадає половина всіх комітів
0.5/22.5Розподіл комітів — головний контриб’ютор — автор 98% комітів
13.5/13.5Широта контриб’юторів — 25 контриб’юторів
10/10OpenSSF Scorecard: Contributors — project has 13 contributing companies or organizations
Використані вхідні дані
bus_factor1
contributors_sampled25
top_contributor_share0,977
Як обчислюється оцінка
42.6/46.8Вирішення issue — закрито 91% issue
22.2/38.3Прийняття PR — злито 43/74 вирішених PR
0/15OpenSSF Scorecard: Code-Review — Found 1/26 approved changesets -- score normalized to 0
Використані вхідні дані
merged_prs43
open_issues24
closed_issues245
issue_closed_ratio0,911
closed_unmerged_prs31
Як обчислюється оцінка
30/30Підтримка власника — у власності організації
0/20Верифікований домен
13.6/25Охоплення власника — 78 підписників у langgraph4j
11.5/25Послужний список — 17 публічних репозиторіїв, вік облікового запису ~1 р.
Використані вхідні дані
followers78
owner_typeOrganization
is_verified
owner_loginlanggraph4j
public_repos17
account_age_days434

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

100Відмінний
Як обчислюється оцінка
25/25Опубліковано й доступно — 8 пакет(ів) у maven
35/35Свіжість публікацій — остання публікація 7 дн. тому
20/20Історія версій — 97 опублікованих версій
20/20Не застарілий — активний, не deprecated і не yanked
Використані вхідні дані
packagesorg.bsc.langgraph4j:langgraph4j-howtos, org.bsc.langgraph4j:langgraph4j-javelit, org.bsc.langgraph4j:langgraph4j-core, org.bsc.langgraph4j:langgraph4j-mysql-saver, org.bsc.langgraph4j:langgraph4j-redis-saver, org.bsc.langgraph4j:langgraph4j-oracle-saver, org.bsc.langgraph4j:langgraph4j-opentelemetry, org.bsc.langgraph4j:langgraph4j-dynamodb-saver
ecosystemsmaven
any_deprecatedні
min_days_since_publish7

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

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

59Помірний · 20% загального індексу

Інженерні практики

48У зоні ризику
Як обчислюється оцінка
24/24Процеси CI — 5 процес(ів) CI
24/24Наявні тести
0/16Конфігурація лінтера
0/9.6Pre-commit-хуки
0/6.4.editorconfig
0/20OpenSSF Scorecard: CI-Tests — 0 out of 1 merged PRs checked by a CI test -- score normalized to 0
Використані вхідні дані
has_ciтак
has_testsтак
has_editorconfigні
has_linter_configні
has_precommit_configні
Як обчислюється оцінка
30/30README
0/25Каталог документації
15/15Сайт документації / домашня сторінка — https://langgraph4j.github.io/langgraph4j/
10/10Опис репозиторію
10/10Теми — 6 тем
10/10Wiki
Використані вхідні дані
topicsagents, langchain4j, ai, spring-ai, workflow, langgraph
has_wikiтак
homepagehttps://langgraph4j.github.io/langgraph4j/
has_readmeтак
has_docs_dirні
has_descriptionтак

Безпека

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

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

Стан безпеки

32У зоні ризику
Як обчислюється оцінка
7.5/7.5Binary-Artifacts — no binaries found in the repo
0/7.5Branch-Protection — branch protection not enabled on development/release branches
0/2.5CI-Tests — 0 out of 1 merged PRs checked by a CI test -- score normalized to 0
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
0/7.5Code-Review — Found 1/26 approved changesets -- score normalized to 0
2.5/2.5Contributors — project has 13 contributing companies or organizations
10/10Dangerous-Workflow — no dangerous workflow patterns detected
0/7.5Dependency-Update-Tool — no update tool detected
0/5Fuzzing — project is not fuzzed
2.5/2.5Ліцензія — license file detected
7.5/7.5Maintained — 30 commit(s) and 24 issue activity found in the last 90 days -- score normalized to 10
0/5Packaging — немає даних
0/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
0/5SAST — SAST tool is not run on all commits -- score normalized to 0
0/5Security-Policy — security policy file not detected
0/7.5Signed-Releases — немає даних
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
0/7.5Vulnerabilities — 15 existing vulnerabilities detected
Використані вхідні дані
sourceopenssf_scorecard
checks_evaluated16
scorecard_versionv5.5.0
checks_inconclusive2
scorecard_aggregate3,2
Виключено з оцінювання (немає даних або не застосовно): packaging, signed_releases. Залишкові ваги перенормовано.
Як обчислюється оцінка
35/35Прямі залежності без відомих сповіщень — жодна пряма залежність не має відомих сповіщень
12/25Непрямі залежності без відомих сповіщень — уражено 1: com.fasterxml.jackson.core:jackson-databind 2.21.4 (moderate 6.5)
40/40Немає задавнених сповіщень — жодне сповіщення не є публічним довше за 90 дн.
Використані вхідні дані
sourceosv
advisories3
affected_packages1
assessed_packages34
unassessed_packages0
affected_by_severitymoderate 1
direct_affected_packages0
Звірено з runtime-замиканням залежностей maven:org.bsc.langgraph4j:langgraph4j-howtos@1.9.0-beta1 — тим, що тягне за собою встановлення опублікованого пакета, — 34 пакетів. Досяжність не аналізується.

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

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

69Помірний · 0% загального індексу
Як обчислюється оцінка
45/45Інструкції для агентів — AGENT.md, src/site/mkdocs/GEMINI.md
0/15Машиночитана документація (llms.txt)
32/40Читабельна історія комітів — намір зазначено у 60 з 100 людських комітів (структурований заголовок або пояснювальний текст)
Використані вхідні дані
has_llms_txtні
legible_history_share0,6
agent_instruction_filesAGENT.md, src/site/mkdocs/GEMINI.md
agent_instruction_max_bytes2 144
Як обчислюється оцінка
12.6/18Розгортання однією командою — how-tos/pom.xml, javelit/pom.xml, langchain4j/langchain4j-agent/pom.xml (домовленість інструментарію, без раннера задач)
22/22Автоматизовані тести
0/11Конфігурація лінтера / форматера
11/11Статична перевірка типів — studio/webui/tsconfig.json
10/10Відтворюване середовище — Dockerfile
0/10Підтверджена практика роботи з агентами — серед останніх 100 комітів немає створених агентом
0/8Автоматизоване супроводження — автоматичних оновлень залежностей не виявлено
0/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
Використані вхідні дані
has_nixні
has_testsтак
lockfiles
has_dockerfileтак
typed_languageтак
bootstrap_files
has_devcontainerні
has_linter_configні
typecheck_configsstudio/webui/tsconfig.json
agent_commit_share0
toolchain_manifestshow-tos/pom.xml, javelit/pom.xml, langchain4j/langchain4j-agent/pom.xml, langchain4j/langchain4j-core/pom.xml, langgraph4j-bom/pom.xml, langgraph4j-cockroachdb-saver/pom.xml, langgraph4j-core/pom.xml, langgraph4j-dynamodb-saver/pom.xml, langgraph4j-hazelcast-saver/pom.xml, langgraph4j-mysql-saver/pom.xml, langgraph4j-opentelemetry/pom.xml, langgraph4j-oracle-saver/pom.xml, langgraph4j-postgres-saver/pom.xml, langgraph4j-redis-saver/pom.xml, pom.xml, spring-ai/spring-ai-agent-archetype/pom.xml, spring-ai/spring-ai-agent-archetype/src/main/resources/archetype-resources/pom.xml, spring-ai/spring-ai-agent/pom.xml, spring-ai/spring-ai-core/pom.xml, studio/base/pom.xml, studio/jetty/pom.xml, studio/quarkus/pom.xml, studio/springboot/pom.xml
dependency_bot_commit_share0
Як обчислюється оцінка
45/45Типізований код — Java (статично типізована)
51.6/55Керовані розміри файлів — 28/453 файлів вихідного коду понад 60 КБ
Використані вхідні дані
primary_languageJava
largest_source_bytes1 460 316
source_files_sampled453
oversized_source_files28
Як обчислюється оцінка
0/40Схема API (OpenAPI/GraphQL/proto)
20/20Сервер MCP
40/40Придатні до запуску приклади — notebooks, samples
Використані вхідні дані
example_dirsnotebooks, samples
has_mcp_signalтак
api_schema_files

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

1 844зірок GitHub
25контриб'юторів
1 417комітів за останні 12 місяців
3днів від останнього пушу
100релізів
1бас-фактор
24відкритих issue
Mavenпакетних екосистем

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

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

Докладніше

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

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

05010015020025024652024-052025-062026-07
Мажорні 1Мінорні 8Патчі 63

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

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

Незалежна, не прив'язана до інструментів оцінка безпеки від відкритого проєкту OpenSSF Scorecard. Кожна перевірка винагороджує практику безпеки, а не інструмент конкретного постачальника. Перевірки, які Scorecard не зміг визначити, позначено н/д і виключено з оцінки безпеки (вони ніколи не зараховуються як нуль).Scorecard v5.5.0 · 2026-07-25 10:06 UTC

10Binary-Artifactsno binaries found in the repo
0Branch-Protectionbranch protection not enabled on development/release branches
0CI-Tests0 out of 1 merged PRs checked by a CI test -- score normalized to 0
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
0Code-ReviewFound 1/26 approved changesets -- score normalized to 0
10Contributorsproject has 13 contributing companies or organizations
10Dangerous-Workflowno dangerous workflow patterns detected
0Dependency-Update-Toolno update tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
10Maintained30 commit(s) and 24 issue activity found in the last 90 days -- score normalized to 10
н/дPackagingpackaging workflow not detected
0Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 0
0SASTSAST tool is not run on all commits -- score normalized to 0
0Security-Policysecurity policy file not detected
н/дSigned-Releasesno releases found
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
0Vulnerabilities15 existing vulnerabilities detected
Прямі залежності 69
РеєстрПакетОбмеження версіїМаніфест
Mavenorg.bsc.langgraph4j:langgraph4j-core${project.version}how-tos/pom.xml
Mavenorg.bsc.langgraph4j:langgraph4j-langchain4j${project.version}how-tos/pom.xml
Mavenorg.bsc.langgraph4j:langgraph4j-agent-executor${project.version}how-tos/pom.xml
Mavendev.langchain4j:langchain4j${langchain4j.version}how-tos/pom.xml
Mavendev.langchain4j:langchain4j-mcp${langchain4j.beta}how-tos/pom.xml
Mavendev.langchain4j:langchain4j-open-ai${langchain4j.version}how-tos/pom.xml
Mavendev.langchain4j:langchain4j-ollama${langchain4j.version}how-tos/pom.xml
Mavendev.langchain4j:langchain4j-web-search-engine-tavily${langchain4j.beta}how-tos/pom.xml
Mavenorg.slf4j:slf4j-apihow-tos/pom.xml
Mavenorg.slf4j:slf4j-jdk14how-tos/pom.xml
Mavenio.javelit:javelit0.86.0javelit/pom.xml
Mavenorg.bsc.langgraph4j:langgraph4j-core${project.version}javelit/pom.xml
Mavennet.sourceforge.plantuml:plantuml-mit1.2025.10javelit/pom.xml
Mavenio.github.ollama4j:ollama4j1.1.6javelit/pom.xml
Mavenorg.bsc.langgraph4j:langgraph4j-core${project.version}langgraph4j-bom/pom.xml
Mavenorg.bsc.langgraph4j:langgraph4j-opentelemetry${project.version}langgraph4j-bom/pom.xml
Mavenorg.bsc.langgraph4j:langgraph4j-langchain4j${project.version}langgraph4j-bom/pom.xml
Mavenorg.bsc.langgraph4j:langgraph4j-agent-executor${project.version}langgraph4j-bom/pom.xml
Mavenorg.bsc.langgraph4j:langgraph4j-spring-ai${project.version}langgraph4j-bom/pom.xml
Mavenorg.bsc.langgraph4j:langgraph4j-springai-agentexecutor${project.version}langgraph4j-bom/pom.xml
Mavenorg.bsc.langgraph4j:langgraph4j-postgres-saver${project.version}langgraph4j-bom/pom.xml
Mavenorg.bsc.langgraph4j:langgraph4j-mysql-saver${project.version}langgraph4j-bom/pom.xml
Mavenorg.bsc.langgraph4j:langgraph4j-oracle-saver${project.version}langgraph4j-bom/pom.xml
Mavenorg.bsc.langgraph4j:langgraph4j-redis-saver${project.version}langgraph4j-bom/pom.xml
Mavenorg.bsc.langgraph4j:langgraph4j-dynamodb-saver${project.version}langgraph4j-bom/pom.xml
Mavenorg.bsc.langgraph4j:langgraph4j-cockroachdb-saver${project.version}langgraph4j-bom/pom.xml
Mavenorg.bsc.langgraph4j:langgraph4j-hazelcast-saver${project.version}langgraph4j-bom/pom.xml
Mavenorg.bsc.langgraph4j:langgraph4j-studio${project.version}langgraph4j-bom/pom.xml
Mavenorg.bsc.langgraph4j:langgraph4j-studio-jetty${project.version}langgraph4j-bom/pom.xml
Mavenorg.bsc.langgraph4j:langgraph4j-studio-quarkus${project.version}langgraph4j-bom/pom.xml
Mavenorg.bsc.langgraph4j:langgraph4j-studio-springboot${project.version}langgraph4j-bom/pom.xml
Mavenorg.bsc.langgraph4j:langgraph4j-javelit${project.version}langgraph4j-bom/pom.xml
Maven${project.parent.groupId}:langgraph4j-core${project.parent.version}langgraph4j-cockroachdb-saver/pom.xml
Mavenorg.postgresql:postgresql42.7.7langgraph4j-cockroachdb-saver/pom.xml
Mavenorg.bsc.async:async-generator${async.generator}langgraph4j-core/pom.xml
Mavenorg.slf4j:slf4j-apilanggraph4j-core/pom.xml
Mavenorg.testcontainers:testcontainers-bom${testcontainers.version}langgraph4j-dynamodb-saver/pom.xml
Maven${project.parent.groupId}:langgraph4j-core${project.parent.version}langgraph4j-dynamodb-saver/pom.xml
Mavensoftware.amazon.awssdk:dynamodb${aws.sdk.version}langgraph4j-dynamodb-saver/pom.xml
Mavensoftware.amazon.awssdk:s3${aws.sdk.version}langgraph4j-dynamodb-saver/pom.xml
Mavensoftware.amazon.awssdk:url-connection-client${aws.sdk.version}langgraph4j-dynamodb-saver/pom.xml
Mavenorg.slf4j:slf4j-apilanggraph4j-dynamodb-saver/pom.xml
Maven${project.parent.groupId}:langgraph4j-core${project.parent.version}langgraph4j-hazelcast-saver/pom.xml
Mavenorg.testcontainers:testcontainers-bom${testcontainers.version}langgraph4j-mysql-saver/pom.xml
Maven${project.parent.groupId}:langgraph4j-core${project.parent.version}langgraph4j-mysql-saver/pom.xml
Mavencom.mysql:mysql-connector-j${mysql.version}langgraph4j-mysql-saver/pom.xml
Mavencom.fasterxml.jackson.core:jackson-databind${jackson.version}langgraph4j-mysql-saver/pom.xml
Mavenio.opentelemetry.instrumentation:opentelemetry-instrumentation-bom2.21.0langgraph4j-opentelemetry/pom.xml
Mavenorg.bsc.langgraph4j:langgraph4j-core${project.parent.version}langgraph4j-opentelemetry/pom.xml
Mavenio.opentelemetry:opentelemetry-sdklanggraph4j-opentelemetry/pom.xml
Mavenio.opentelemetry:opentelemetry-sdk-extension-autoconfigure1.55.0langgraph4j-opentelemetry/pom.xml
Mavenio.opentelemetry:opentelemetry-exporter-otlplanggraph4j-opentelemetry/pom.xml
Mavenio.opentelemetry.instrumentation:opentelemetry-logback-appender-1.02.21.0-alphalanggraph4j-opentelemetry/pom.xml
Mavench.qos.logback:logback-classic1.5.20langgraph4j-opentelemetry/pom.xml
Mavenio.opentelemetry.proto:opentelemetry-proto1.8.0-alphalanggraph4j-opentelemetry/pom.xml
Mavencom.google.protobuf:protobuf-java-util4.33.0langgraph4j-opentelemetry/pom.xml
Mavenorg.testcontainers:testcontainers-bom${testcontainers.version}langgraph4j-oracle-saver/pom.xml
Maven${project.parent.groupId}:langgraph4j-core${project.parent.version}langgraph4j-oracle-saver/pom.xml
Mavencom.oracle.database.jdbc:ojdbc11${ojdbc.version}langgraph4j-oracle-saver/pom.xml
Mavencom.oracle.database.jdbc:ojdbc-provider-jackson-oson1.0.6langgraph4j-oracle-saver/pom.xml
Maven${project.parent.groupId}:langgraph4j-core${project.parent.version}langgraph4j-postgres-saver/pom.xml
Mavenorg.postgresql:postgresql42.7.7langgraph4j-postgres-saver/pom.xml
Mavenorg.testcontainers:testcontainers-bom${testcontainers.version}langgraph4j-redis-saver/pom.xml
Maven${project.parent.groupId}:langgraph4j-core${project.parent.version}langgraph4j-redis-saver/pom.xml
Mavenorg.redisson:redisson${redisson.version}langgraph4j-redis-saver/pom.xml
Mavenorg.slf4j:slf4j-api2.0.9pom.xml
Mavenorg.slf4j:slf4j-jdk142.0.9pom.xml
Mavenorg.junit:junit-bom5.11.0pom.xml
Mavenorg.apache.maven.doxia:doxia-module-markdown2.0.0pom.xml
Усі залежності 131

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

РеєстрПакетВерсіяЗв'язок
Mavench.qos.logback:logback-classic1.5.20пряма
Mavencom.fasterxml.jackson.core:jackson-databind2.15.2пряма
Mavencom.fasterxml.jackson.core:jackson-databind2.17.2пряма
Mavencom.fasterxml.jackson.core:jackson-databind2.18.2пряма
Mavencom.fasterxml.jackson.core:jackson-databind2.21.1пряма
Mavencom.google.protobuf:protobuf-java-util4.33.0пряма
Mavencom.mysql:mysql-connector-j9.2.0пряма
Mavencom.oracle.database.jdbc:ojdbc-provider-jackson-oson1.0.6пряма
Mavencom.oracle.database.jdbc:ojdbc1123.9.0.25.07пряма
Mavendev.langchain4j:langchain4jпряма
Mavendev.langchain4j:langchain4j-mcpпряма
Mavendev.langchain4j:langchain4j-ollamaпряма
Mavendev.langchain4j:langchain4j-open-aiпряма
Mavendev.langchain4j:langchain4j-web-search-engine-tavilyпряма
Mavenio.github.ollama4j:ollama4j1.1.6пряма
Mavenio.javelit:javelit0.86.0пряма
Mavenio.opentelemetry.instrumentation:opentelemetry-instrumentation-bom2.21.0пряма
Mavenio.opentelemetry.instrumentation:opentelemetry-logback-appender-1.02.21.0-alphaпряма
Mavenio.opentelemetry.proto:opentelemetry-proto1.8.0-alphaпряма
Mavenio.opentelemetry:opentelemetry-exporter-otlpпряма
Mavenio.opentelemetry:opentelemetry-sdkпряма
Mavenio.opentelemetry:opentelemetry-sdk-extension-autoconfigure1.55.0пряма
Mavennet.sourceforge.plantuml:plantuml-mit1.2025.10пряма
Mavenorg.apache.maven.doxia:doxia-module-markdown2.0.0пряма
Mavenorg.bsc.async:async-generator4.3.1пряма
Mavenorg.bsc.langgraph4j:langgraph4j-agent-executor1.8.17пряма
Mavenorg.bsc.langgraph4j:langgraph4j-cockroachdb-saver1.8.17пряма
Mavenorg.bsc.langgraph4j:langgraph4j-coreпряма
Mavenorg.bsc.langgraph4j:langgraph4j-core1.8.17пряма
Mavenorg.bsc.langgraph4j:langgraph4j-dynamodb-saver1.8.17пряма
Mavenorg.bsc.langgraph4j:langgraph4j-javelit1.8.17пряма
Mavenorg.bsc.langgraph4j:langgraph4j-langchain4j1.8.17пряма
Mavenorg.bsc.langgraph4j:langgraph4j-mysql-saver1.8.17пряма
Mavenorg.bsc.langgraph4j:langgraph4j-opentelemetry1.8.17пряма
Mavenorg.bsc.langgraph4j:langgraph4j-oracle-saver1.8.17пряма
Mavenorg.bsc.langgraph4j:langgraph4j-postgres-saver1.8.17пряма
Mavenorg.bsc.langgraph4j:langgraph4j-redis-saver1.8.17пряма
Mavenorg.bsc.langgraph4j:langgraph4j-spring-ai1.8.17пряма
Mavenorg.bsc.langgraph4j:langgraph4j-springai-agentexecutor1.8.17пряма
Mavenorg.bsc.langgraph4j:langgraph4j-studio1.8.15пряма
Mavenorg.bsc.langgraph4j:langgraph4j-studio1.8.17пряма
Mavenorg.bsc.langgraph4j:langgraph4j-studio-jetty1.8.17пряма
Mavenorg.bsc.langgraph4j:langgraph4j-studio-quarkus1.8.17пряма
Mavenorg.bsc.langgraph4j:langgraph4j-studio-springboot1.8.17пряма
Mavenorg.junit:junit-bom5.11.0пряма
Mavenorg.postgresql:postgresql42.7.7пряма
Mavenorg.redisson:redisson3.22.0пряма
Mavenorg.slf4j:slf4j-apiпряма
Mavenorg.slf4j:slf4j-api2.0.9пряма
Mavenorg.slf4j:slf4j-jdk14пряма
Mavenorg.slf4j:slf4j-jdk142.0.9пряма
Mavenorg.testcontainers:testcontainers-bom1.21.3пряма
Mavensoftware.amazon.awssdk:dynamodb2.27.21пряма
Mavensoftware.amazon.awssdk:url-connection-client2.27.21пряма
Mavencom.fasterxml.jackson.module:jackson-module-jsonSchema2.17.2непряма
Mavencom.github.victools:jsonschema-generator4.36.0непряма
Mavencom.google.code.gson:gson2.10.1непряма
Mavendev.langchain4j:langchain4j-azure-open-aiнепряма
Mavendev.langchain4j:langchain4j-bomнепряма
Mavendev.langchain4j:langchain4j-google-ai-geminiнепряма
Mavendev.langchain4j:langchain4j-skills1.12.1-beta21непряма
Mavenio.quarkus.platform:quarkus-bom3.18.3непряма
Mavenio.quarkus.platform:quarkus-maven-pluginнепряма
Mavenio.quarkus:quarkus-arcнепряма
Mavenio.quarkus:quarkus-junit5непряма
Mavenio.quarkus:quarkus-restнепряма
Mavenio.quarkus:quarkus-rest-jacksonнепряма
Mavenio.quarkus:quarkus-undertowнепряма
Mavenio.rest-assured:rest-assuredнепряма
Mavenjakarta.servlet:jakarta.servlet-api6.1.0непряма
Mavenorg.apache.maven.plugins:maven-compiler-pluginнепряма
Mavenorg.apache.maven.plugins:maven-compiler-plugin3.13.0непряма
Mavenorg.apache.maven.plugins:maven-deploy-pluginнепряма
Mavenorg.apache.maven.plugins:maven-deploy-plugin3.1.1непряма
Mavenorg.apache.maven.plugins:maven-deploy-plugin3.1.3непряма
Mavenorg.apache.maven.plugins:maven-gpg-plugin3.2.4непряма
Mavenorg.apache.maven.plugins:maven-jar-plugin3.3.0непряма
Mavenorg.apache.maven.plugins:maven-javadoc-plugin3.11.2непряма
Mavenorg.apache.maven.plugins:maven-site-plugin4.0.0-M14непряма
Mavenorg.apache.maven.plugins:maven-surefire-pluginнепряма
Mavenorg.apache.maven.plugins:maven-surefire-plugin3.2.5непряма
Mavenorg.apache.maven.plugins:maven-war-plugin3.4.0непряма
Mavenorg.codehaus.mojo:build-helper-maven-plugin3.0.0непряма
Mavenorg.codehaus.mojo:exec-maven-plugin3.3.0непряма
Mavenorg.codehaus.mojo:flatten-maven-pluginнепряма
Mavenorg.eclipse.jetty.ee10:jetty-ee10-servlet12.0.12непряма
Mavenorg.eclipse.jetty:jetty-server12.0.12непряма
Mavenorg.junit.jupiter:junit-jupiterнепряма
Mavenorg.junit.jupiter:junit-jupiter-paramsнепряма
Mavenorg.junit.platform:junit-platform-launcherнепряма
Mavenorg.junit.vintage:junit-vintage-engineнепряма
Mavenorg.sonatype.central:central-publishing-maven-plugin0.8.0непряма
Mavenorg.springaicommunity:spring-ai-agent-utils0.6.0непряма
Mavenorg.springframework.ai:spring-ai-azure-openaiнепряма
Mavenorg.springframework.ai:spring-ai-bomнепряма
Mavenorg.springframework.ai:spring-ai-client-chatнепряма
Mavenorg.springframework.ai:spring-ai-commonsнепряма
Mavenorg.springframework.ai:spring-ai-google-genaiнепряма
Mavenorg.springframework.ai:spring-ai-modelнепряма
Mavenorg.springframework.ai:spring-ai-ollamaнепряма
Mavenorg.springframework.ai:spring-ai-openaiнепряма
Mavenorg.springframework.boot:spring-boot-devtoolsнепряма
Mavenorg.springframework.boot:spring-boot-maven-plugin3.5.4непряма
Mavenorg.springframework.boot:spring-boot-starter-parent3.4.2непряма
Mavenorg.springframework.boot:spring-boot-starter-parent4.1.0-M4непряма
Mavenorg.springframework.boot:spring-boot-starter-testнепряма
Mavenorg.springframework.boot:spring-boot-starter-webнепряма
Mavenorg.testcontainers:cockroachdb1.21.3непряма
Mavenorg.testcontainers:junit-jupiterнепряма
Mavenorg.testcontainers:mysqlнепряма
Mavenorg.testcontainers:oracle-freeнепряма
Mavenorg.testcontainers:postgresql1.21.3непряма
Mavenorg.testcontainers:testcontainersнепряма
npm@alenaksu/json-viewer^2.0.1непряма
npm@lit/task^1.0.1непряма
npm@microlink/react-json-view^1.27.0непряма
npm@types/bun^1.1.14непряма
npm@types/d3^7.4.3непряма
npm@types/node^20.14.10непряма
npm@types/react^18.3.12непряма
npm@types/react-dom^18.3.1непряма
npmautoprefixer^10.4.20непряма
npmcrypto-browserify^3.12.1непряма
npmdaisyui^4.12.14непряма
npmlit^3.2.1непряма
npmmermaid10.9.3непряма
npmparcel^2.13.2непряма
npmpostcss^8.4.49непряма
npmsvgo^3.3.2непряма
npmtailwindcss^3.4.15непряма
npmtypescript^5.5.4непряма
Сповіщення про залежності 1

Встановлення maven:org.bsc.langgraph4j:langgraph4j-howtos@1.9.0-beta1 тягне 34 пакетів, прямих і транзитивних: 1 мають відомі сповіщення, з них 0 — прямі залежності.

ПакетВерсіяЗв'язокКритичністьСповіщеньВиправлено в
com.fasterxml.jackson.core:jackson-databind2.21.4непрямапомірна33.2.1

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

Звіт у форматі JSON машиночитний
{
  "data": {
    "repo": {
      "topics": [
        "agents",
        "langchain4j",
        "ai",
        "spring-ai",
        "workflow",
        "langgraph"
      ],
      "is_fork": false,
      "size_kb": 56880,
      "has_wiki": true,
      "homepage": "https://langgraph4j.github.io/langgraph4j/",
      "languages": {
        "CSS": 58,
        "HTML": 10681,
        "Java": 1570014,
        "Shell": 3608,
        "PLpgSQL": 2045,
        "Mustache": 16529,
        "JavaScript": 58572,
        "TypeScript": 596,
        "Jupyter Notebook": 891030
      },
      "pushed_at": "2026-07-21T17:03:51Z",
      "created_at": "2024-03-18T19:38:47Z",
      "owner_type": "Organization",
      "updated_at": "2026-07-25T09:17:35Z",
      "description": "🚀 LangGraph for Java. A library for develop AI Agentic Architectures in the Java ecosystem. Designed to work seamlessly with both Langchain4j and Spring AI.",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "MIT",
      "default_branch": "main",
      "license_spdx_raw": "MIT",
      "primary_language": "Java",
      "significant_languages": [
        "Java",
        "Jupyter Notebook"
      ]
    },
    "owner": {
      "blog": "https://langgraph4j.github.io/langgraph4j/",
      "name": "LangGraph4j",
      "type": "Organization",
      "login": "langgraph4j",
      "company": null,
      "location": null,
      "followers": 78,
      "avatar_url": "https://avatars.githubusercontent.com/u/212100817?v=4",
      "created_at": "2025-05-17T08:34:24Z",
      "is_verified": null,
      "public_repos": 17,
      "account_age_days": 434
    },
    "license": {
      "state": "standard",
      "spdx_id": "MIT",
      "raw_spdx": "MIT",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "v1.9.0-beta1",
          "kind": "prerelease",
          "published_at": "2026-07-17T16:45:07Z"
        },
        {
          "tag": "v1.8.20",
          "kind": "patch",
          "published_at": "2026-06-27T18:05:42Z"
        },
        {
          "tag": "v1.8.19",
          "kind": "patch",
          "published_at": "2026-06-16T08:19:00Z"
        },
        {
          "tag": "v1.8.18",
          "kind": "patch",
          "published_at": "2026-06-12T19:45:08Z"
        },
        {
          "tag": "v1.8.17",
          "kind": "patch",
          "published_at": "2026-05-22T12:39:55Z"
        },
        {
          "tag": "v1.8.16",
          "kind": "patch",
          "published_at": "2026-05-11T14:52:45Z"
        },
        {
          "tag": "v1.8.15",
          "kind": "patch",
          "published_at": "2026-05-07T14:25:53Z"
        },
        {
          "tag": "v1.8.14",
          "kind": "patch",
          "published_at": "2026-04-27T14:37:41Z"
        },
        {
          "tag": "v1.8.13",
          "kind": "patch",
          "published_at": "2026-04-19T21:26:41Z"
        },
        {
          "tag": "v1.8.12",
          "kind": "patch",
          "published_at": "2026-04-14T13:29:48Z"
        },
        {
          "tag": "v1.8.11",
          "kind": "patch",
          "published_at": "2026-03-30T22:05:53Z"
        },
        {
          "tag": "v1.8.10",
          "kind": "patch",
          "published_at": "2026-03-18T09:55:10Z"
        },
        {
          "tag": "v1.8.9",
          "kind": "patch",
          "published_at": "2026-03-14T16:36:09Z"
        },
        {
          "tag": "v1.8.8",
          "kind": "patch",
          "published_at": "2026-03-11T08:32:17Z"
        },
        {
          "tag": "v1.8.7",
          "kind": "patch",
          "published_at": "2026-03-05T23:09:23Z"
        },
        {
          "tag": "v1.8.6",
          "kind": "patch",
          "published_at": "2026-03-05T05:42:32Z"
        },
        {
          "tag": "v1.8.5",
          "kind": "patch",
          "published_at": "2026-03-02T18:38:42Z"
        },
        {
          "tag": "v1.8.4",
          "kind": "patch",
          "published_at": "2026-02-24T09:08:07Z"
        },
        {
          "tag": "v1.8.3",
          "kind": "patch",
          "published_at": "2026-02-18T10:11:17Z"
        },
        {
          "tag": "v1.8.2",
          "kind": "patch",
          "published_at": "2026-02-14T11:22:43Z"
        },
        {
          "tag": "v1.8.1",
          "kind": "patch",
          "published_at": "2026-02-07T14:52:14Z"
        },
        {
          "tag": "v1.8.0",
          "kind": "minor",
          "published_at": "2026-02-02T20:28:32Z"
        },
        {
          "tag": "v1.8.0-beta5",
          "kind": "prerelease",
          "published_at": "2026-01-30T11:36:04Z"
        },
        {
          "tag": "v1.8.0-beta4",
          "kind": "prerelease",
          "published_at": "2026-01-27T11:15:24Z"
        },
        {
          "tag": "v1.8.0-beta3",
          "kind": "prerelease",
          "published_at": "2026-01-22T17:21:23Z"
        },
        {
          "tag": "v1.8.0-beta2",
          "kind": "prerelease",
          "published_at": "2026-01-17T15:02:51Z"
        },
        {
          "tag": "v1.8.0-beta1",
          "kind": "prerelease",
          "published_at": "2026-01-14T16:53:11Z"
        },
        {
          "tag": "v1.7.10",
          "kind": "patch",
          "published_at": "2026-01-04T21:14:41Z"
        },
        {
          "tag": "v1.7.9",
          "kind": "patch",
          "published_at": "2025-12-29T18:37:57Z"
        },
        {
          "tag": "v1.7.8",
          "kind": "patch",
          "published_at": "2025-12-20T05:24:56Z"
        },
        {
          "tag": "v1.7.7",
          "kind": "patch",
          "published_at": "2025-12-17T20:23:27Z"
        },
        {
          "tag": "v1.7.6",
          "kind": "patch",
          "published_at": "2025-12-11T13:39:19Z"
        },
        {
          "tag": "v1.7.5",
          "kind": "patch",
          "published_at": "2025-11-27T16:08:32Z"
        },
        {
          "tag": "v1.7.4",
          "kind": "patch",
          "published_at": "2025-11-17T11:15:04Z"
        },
        {
          "tag": "v1.7.3",
          "kind": "patch",
          "published_at": "2025-11-13T11:35:51Z"
        },
        {
          "tag": "v1.7.2",
          "kind": "patch",
          "published_at": "2025-10-30T16:51:17Z"
        },
        {
          "tag": "v1.7.1",
          "kind": "patch",
          "published_at": "2025-10-24T10:46:43Z"
        },
        {
          "tag": "v1.7.0",
          "kind": "minor",
          "published_at": "2025-10-22T21:14:05Z"
        },
        {
          "tag": "v1.7.0-beta3",
          "kind": "prerelease",
          "published_at": "2025-10-14T21:51:54Z"
        },
        {
          "tag": "v1.7.0-beta2",
          "kind": "prerelease",
          "published_at": "2025-10-13T16:39:34Z"
        },
        {
          "tag": "v1.7.0-beta1",
          "kind": "prerelease",
          "published_at": "2025-10-04T17:13:09Z"
        },
        {
          "tag": "v1.6.5",
          "kind": "patch",
          "published_at": "2025-09-27T14:57:17Z"
        },
        {
          "tag": "v1.6.4",
          "kind": "patch",
          "published_at": "2025-09-18T21:10:49Z"
        },
        {
          "tag": "v1.6.3",
          "kind": "patch",
          "published_at": "2025-09-14T14:19:08Z"
        },
        {
          "tag": "v1.6.2",
          "kind": "patch",
          "published_at": "2025-08-28T10:20:50Z"
        },
        {
          "tag": "v1.6.1",
          "kind": "patch",
          "published_at": "2025-08-21T08:38:40Z"
        },
        {
          "tag": "v1.6.0",
          "kind": "minor",
          "published_at": "2025-08-12T12:55:08Z"
        },
        {
          "tag": "v1.6.0-rc4",
          "kind": "prerelease",
          "published_at": "2025-08-04T21:15:50Z"
        },
        {
          "tag": "v1.6.0-rc3",
          "kind": "prerelease",
          "published_at": "2025-08-01T16:03:25Z"
        },
        {
          "tag": "v1.6.0-rc2",
          "kind": "prerelease",
          "published_at": "2025-07-22T13:38:46Z"
        },
        {
          "tag": "v1.6.0-rc1",
          "kind": "prerelease",
          "published_at": "2025-07-12T17:42:55Z"
        },
        {
          "tag": "v1.6.0-beta6",
          "kind": "prerelease",
          "published_at": "2025-07-06T19:27:23Z"
        },
        {
          "tag": "v1.6.0-beta5",
          "kind": "prerelease",
          "published_at": "2025-06-27T14:00:39Z"
        },
        {
          "tag": "v1.6.0-beta4",
          "kind": "prerelease",
          "published_at": "2025-06-19T13:25:22Z"
        },
        {
          "tag": "v1.6.0-beta3",
          "kind": "prerelease",
          "published_at": "2025-06-09T17:14:08Z"
        },
        {
          "tag": "v1.6.0-beta2",
          "kind": "prerelease",
          "published_at": "2025-06-05T17:54:43Z"
        },
        {
          "tag": "v1.6.0-beta1",
          "kind": "prerelease",
          "published_at": "2025-06-02T14:07:41Z"
        },
        {
          "tag": "v1.5.14",
          "kind": "patch",
          "published_at": "2025-05-28T15:13:43Z"
        },
        {
          "tag": "v1.5.13",
          "kind": "patch",
          "published_at": "2025-05-21T10:14:39Z"
        },
        {
          "tag": "v1.5.12",
          "kind": "patch",
          "published_at": "2025-05-15T10:53:27Z"
        },
        {
          "tag": "v1.5.11",
          "kind": "patch",
          "published_at": "2025-05-13T16:35:07Z"
        },
        {
          "tag": "v1.5.10",
          "kind": "patch",
          "published_at": "2025-05-12T17:07:51Z"
        },
        {
          "tag": "v1.5.9",
          "kind": "patch",
          "published_at": "2025-05-06T22:14:22Z"
        },
        {
          "tag": "v1.5.8",
          "kind": "patch",
          "published_at": "2025-04-26T17:01:24Z"
        },
        {
          "tag": "v1.5.7",
          "kind": "patch",
          "published_at": "2025-04-22T16:02:29Z"
        },
        {
          "tag": "v1.5.6",
          "kind": "patch",
          "published_at": "2025-04-16T16:34:02Z"
        },
        {
          "tag": "v1.5.5",
          "kind": "patch",
          "published_at": "2025-04-09T15:38:31Z"
        },
        {
          "tag": "v1.5.4",
          "kind": "patch",
          "published_at": "2025-04-06T14:37:51Z"
        },
        {
          "tag": "v1.5.3",
          "kind": "patch",
          "published_at": "2025-04-03T16:21:35Z"
        },
        {
          "tag": "v1.5.2",
          "kind": "patch",
          "published_at": "2025-04-01T13:53:22Z"
        },
        {
          "tag": "v1.5.1",
          "kind": "patch",
          "published_at": "2025-03-28T15:03:39Z"
        },
        {
          "tag": "v1.5.0",
          "kind": "minor",
          "published_at": "2025-03-25T16:00:12Z"
        },
        {
          "tag": "v1.4.4-patch1",
          "kind": "prerelease",
          "published_at": "2025-03-21T09:50:55Z"
        },
        {
          "tag": "v1.4.3",
          "kind": "patch",
          "published_at": "2025-03-15T16:15:09Z"
        },
        {
          "tag": "v1.4.2",
          "kind": "patch",
          "published_at": "2025-03-11T18:05:51Z"
        },
        {
          "tag": "v1.4.1",
          "kind": "patch",
          "published_at": "2025-02-24T16:30:52Z"
        },
        {
          "tag": "v1.4.0",
          "kind": "minor",
          "published_at": "2025-02-17T19:34:06Z"
        },
        {
          "tag": "v1.4.0-beta2",
          "kind": "prerelease",
          "published_at": "2025-02-12T16:53:13Z"
        },
        {
          "tag": "v1.4.0-beta1",
          "kind": "prerelease",
          "published_at": "2025-02-12T01:01:20Z"
        },
        {
          "tag": "v1.3.1",
          "kind": "patch",
          "published_at": "2025-02-04T12:11:07Z"
        },
        {
          "tag": "v1.3.0",
          "kind": "minor",
          "published_at": "2025-01-30T19:09:11Z"
        },
        {
          "tag": "v1.2.5",
          "kind": "patch",
          "published_at": "2025-01-23T19:19:18Z"
        },
        {
          "tag": "v1.2.4",
          "kind": "patch",
          "published_at": "2025-01-22T17:35:01Z"
        },
        {
          "tag": "v1.2.3",
          "kind": "patch",
          "published_at": "2025-01-13T22:31:45Z"
        },
        {
          "tag": "v1.2.2",
          "kind": "patch",
          "published_at": "2025-01-10T21:39:18Z"
        },
        {
          "tag": "v1.2.1",
          "kind": "patch",
          "published_at": "2025-01-08T15:41:52Z"
        },
        {
          "tag": "v1.2.0",
          "kind": "minor",
          "published_at": "2025-01-05T21:43:51Z"
        },
        {
          "tag": "v1.1.5",
          "kind": "patch",
          "published_at": "2024-12-14T20:56:15Z"
        },
        {
          "tag": "v1.1.4",
          "kind": "patch",
          "published_at": "2024-12-11T12:35:36Z"
        },
        {
          "tag": "v1.1.3",
          "kind": "patch",
          "published_at": "2024-12-03T09:13:11Z"
        },
        {
          "tag": "v1.1.2",
          "kind": "patch",
          "published_at": "2024-11-29T18:38:11Z"
        },
        {
          "tag": "v1.1.1",
          "kind": "patch",
          "published_at": "2024-11-26T22:24:28Z"
        },
        {
          "tag": "v1.1.0",
          "kind": "minor",
          "published_at": "2024-11-26T15:13:38Z"
        },
        {
          "tag": "v1.0.0",
          "kind": "major",
          "published_at": "2024-11-15T17:13:22Z"
        },
        {
          "tag": "v1.0-rc2",
          "kind": "other",
          "published_at": "2024-10-25T21:12:32Z"
        },
        {
          "tag": "v1.0-rc1",
          "kind": "other",
          "published_at": "2024-10-12T11:48:13Z"
        },
        {
          "tag": "v1.0-beta5",
          "kind": "other",
          "published_at": "2024-09-24T11:01:42Z"
        },
        {
          "tag": "v1.0-beta4",
          "kind": "other",
          "published_at": "2024-09-06T09:04:40Z"
        },
        {
          "tag": "v1.0-beta3",
          "kind": "other",
          "published_at": "2024-09-03T15:56:09Z"
        },
        {
          "tag": "v1.0-beta2",
          "kind": "other",
          "published_at": "2024-08-10T11:02:56Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "7023d0dda0a61b372132418d49b916c9ff98ad98",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'hotfix/star_history'",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-06-30T09:10:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b7facaed9aedf1ded759a1f0ba52ac578c18f28d",
          "body": null,
          "is_bot": false,
          "headline": "docs: update star history chart to use new API",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-06-30T09:10:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f784edd5f89cd2ceb0f5d96b1bb663d210f8f528",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'hotfix/changelog'",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-06-27T18:00:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "174858f49738aca3b239c5f871759442403dddf7",
          "body": null,
          "is_bot": false,
          "headline": "docs: update changelog",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-06-27T18:00:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b2321905dd0833bdd489359d46b914892935c268",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'release/1.8.20'",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-06-27T17:59:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8bc083595a7062e6ea26b9be43c815682d30535a",
          "body": null,
          "is_bot": false,
          "headline": "build: bump to next version 1.8.20",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-06-27T17:59:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "87c5d770c42271cf9bd77cfe40cd4b56996618ed",
          "body": null,
          "is_bot": false,
          "headline": "ci: comment out push trigger for main branch in deploy-site.yml",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-06-27T17:52:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "087bce076ca58e3808c23d36bd46d4219afabe22",
          "body": null,
          "is_bot": false,
          "headline": "docs: update root-index.html for LangGraph4j documentation portal",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-06-27T17:51:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f6f627ee8d095fd4a9ac6b5a7410ccdb66a2e57e",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'feature/hazelcast-saver' into develop",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-06-27T17:43:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fd5cbbe11fddfe02a46232d5a27f7d2812c0b0e0",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'develop' into feature/hazelcast-saver",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-06-27T17:41:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "eb32672ab0fcea788a00688b3e107c42baf9f97f",
          "body": "Add langgraph4j-hazelcast-saver to the project-structure module tree, and\nrestore the missing langgraph4j-redis-saver line while there.",
          "is_bot": false,
          "headline": "docs: list hazelcast saver in root README",
          "author_name": "arodionov",
          "author_login": "arodionov",
          "committed_at": "2026-06-25T11:26:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f83e7f68cb8c87593ee3bf84d248e8874491cd3d",
          "body": "- Correct the integration-module artifact names (langgraph4j-langchain4j and\n  langgraph4j-spring-ai, not the *-core variants) for the JSON serializer examples.\n- Note that the CPMap usage example needs the Hazelcast Enterprise jar/cluster;\n  the Community Edition dependency shown covers only the IMap path.",
          "is_bot": false,
          "headline": "docs: fix Hazelcast saver README review findings",
          "author_name": "arodionov",
          "author_login": "arodionov",
          "committed_at": "2026-06-25T11:14:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "903ecd35ddb19248c1068f87639703b6cae37f35",
          "body": "- Remove FileSystemSaver references from the README and class Javadoc/comment.\n- Correct the IMap durability note: tolerates up to `backup-count` simultaneous\n  member losses (default 1), instead of \"survives one member loss\".\n- Expand the README state-serialization section: explain why JacksonStateSerializer\n  must be subclassed and point to the ready-made LC4jJacksonStateSerializer /\n  SpringAIJacksonStateSerializer.\n- Drop the now-unnecessary checked-exception declaration on decode().",
          "is_bot": false,
          "headline": "docs: refine Hazelcast saver docs",
          "author_name": "arodionov",
          "author_login": "arodionov",
          "committed_at": "2026-06-25T11:04:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6fbb677863861a3d48e0812f4eb2d1f38fb0e4d7",
          "body": "…review fixes\n\nRework HazelcastSaver to serialize the whole checkpoint list through the\nframework's checkpoint-list serializers (JacksonCheckpointListSerializer for\nJSON, CheckpointListSerializer for binary), mirroring FileSystemSaver, instead\nof a hand-rolled per-checkpoint JSON envelope. The state\n[…]\n JSON and binary\n  serializers (not just history size).\n- Remove an orphaned pom comment left above the junit dependency.\n\nDocs (README, how-tos/persistence.ipynb) updated for the required serializer.",
          "is_bot": false,
          "headline": "refactor: align Hazelcast saver serialization with FileSystemSaver + …",
          "author_name": "arodionov",
          "author_login": "arodionov",
          "committed_at": "2026-06-24T17:51:35Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "f68a374a0252fcc866b4c8dbec3893eb8f82066a",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'main' into develop",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-06-24T15:37:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d85057d9303f7cdd4cad500f12a42a700fcba198",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'hotfix/multi_ver_docs'",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-06-24T15:37:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8657ae207ce5e9924f141cb2b8abaa68a2d8313f",
          "body": null,
          "is_bot": false,
          "headline": "docs: redirect to main version of documentation if available",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-06-24T15:37:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ee244ca0644f677441164f1e48684f482cec1f43",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'main' into develop",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-06-24T15:02:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a25cf6ab03f7fd6008ea68b9c090890aa1ddc9b7",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'hotfix/multi_ver_docs'",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-06-24T15:01:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c832830faac7d0f5f5968de10f942b4a4d606d8b",
          "body": null,
          "is_bot": false,
          "headline": "ci: fix cache configuration for Python dependencies in deploy workflow",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-06-24T15:01:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "09a8cc4fb861d141fd9e4e5d8849961ad269bb80",
          "body": null,
          "is_bot": false,
          "headline": "ci: disable automatic deployment on push for versioned documentation",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-06-24T14:52:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "01c16a4f3c972567948bcdfdfe50f2813f4feed5",
          "body": null,
          "is_bot": false,
          "headline": "ci: disable automatic deployment on push for versioned documentation",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-06-24T14:51:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "95ad926f1402d6effe1c1f471a778dc5e85d84a4",
          "body": null,
          "is_bot": false,
          "headline": "ci: update Java setup action to v5 and simplify dependency installation",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-06-24T14:43:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "90f5f5fbeecdaec620a94d062d3e47c02fcfcc46",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'main' into develop",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-06-24T14:13:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "342b7bab12fef4b39c9715471bc75f8f6ff68427",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'hotfix/multi_ver_docs'",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-06-24T14:13:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "663fe93c299379bba6835b7bddd8bba1c02f5e7e",
          "body": null,
          "is_bot": false,
          "headline": "ci: disable start on push in deploy documentation workflow",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-06-24T14:13:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5338be725979c8b0c8a8483190b51ee2fff51e1b",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'main' into develop",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-06-24T14:10:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "33f317808ba821d9b3b3cb6e713b61d5815022c4",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'hotfix/multi_ver_docs'",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-06-24T14:10:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4e0ae171f6e1e87218f68a14e12898ad7f9486a2",
          "body": "…amic content loading",
          "is_bot": false,
          "headline": "docs: add initial documentation portal with version selection and dyn…",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-06-24T14:10:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "13d57db35cd63d2f7a11045022d8b4530ea7363d",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'main' into develop",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-06-24T13:56:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a5627587a6f4fc41521e909d6f9b409533303a0f",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'hotfix/multi_ver_docs'",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-06-24T13:56:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "12472e5ba014180a296b67696812ece809b717a7",
          "body": null,
          "is_bot": false,
          "headline": "ci: restore original deploy site github action as fallback startegy",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-06-24T13:56:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8d3a9e72dc9cf127a76cd19fe9e75b3e0cdc34c0",
          "body": null,
          "is_bot": false,
          "headline": "chore: update git ignore",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-06-24T13:54:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f4253665d636ba6c3969089b2112def789f290a3",
          "body": "…nt preparation",
          "is_bot": false,
          "headline": "ci: update deployment workflow to include Java setup and MkDocs conte…",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-06-24T13:54:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6675ec24c25e5aabe8f9957d644b912b4afe44ce",
          "body": "…itional features",
          "is_bot": false,
          "headline": "docs: enhance mkdocs configuration with theme palette toggles and add…",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-06-24T13:50:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2d4b1ad3230e52acf65e094eb9b49f30e5136699",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'main' into develop",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-06-24T10:41:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "464e0b77f9b30fb72bf984b86d106cd61e9801aa",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'hotfix/multi_ver_docs'",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-06-24T10:40:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "574f940660883473fbe18f7daa8ec90b5d4d6306",
          "body": null,
          "is_bot": false,
          "headline": "ci: remove old deploy docs actions",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-06-24T10:40:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8d6a7b8d213d2cb24c3b9c62451d87cec161db6f",
          "body": "…yment",
          "is_bot": false,
          "headline": "ci: add GitHub Actions workflow for multi-version documentation deplo…",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-06-24T10:39:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5be51b69e3c448cd5743abd7837a2c77458258e1",
          "body": "Add langgraph4j-hazelcast-saver, a BaseCheckpointSaver that persists\nworkflow checkpoints in a Hazelcast distributed map so state survives\nrestarts and can be shared across a cluster.\n\n- HazelcastSaver: single-value-per-thread storage; map type selectable\n  via mapType(MapType.I_MAP | MapType.CP_MAP\n[…]\npt-in\n  enterprise-it profile (license-gated, excluded from CI).\n- Register the module in the root pom and the BOM.\n- Document usage in the module README and a new how-tos/persistence.ipynb\n  section.",
          "is_bot": false,
          "headline": "feat: add Hazelcast checkpoint saver",
          "author_name": "arodionov",
          "author_login": "arodionov",
          "committed_at": "2026-06-24T09:19:31Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "30d03b05b6d72ce642ce5622834eda67e9dba4b2",
          "body": "When a node fails during graph execution the error is wrapped in a\nGraphRunnerException. The failing node is reachable via the carried\nRunnableConfig, but RunnableConfig.nodeId() calls orElseThrow(), so\nconfig().nodeId() throws when the exception is raised outside a node\ncontext (e.g. entry-point re\n[…]\nring>, resolved\nfrom the carried config and safe to call while handling a failure.\ncheckPointId is intentionally omitted, since config().checkPointId()\nalready returns an Optional<String>.\n\nCloses #90",
          "is_bot": false,
          "headline": "feat(core): expose null-safe nodeId() on GraphRunnerException",
          "author_name": "subhash polisetti",
          "author_login": "subhashpolisetti",
          "committed_at": "2026-06-21T21:30:08Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "25e8f37608c0c4b2bf46a7043b944b0c338a19e6",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'hotfix/changelog'",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-06-16T08:15:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "eba30913aa58b2c62827db032c1ee32f2281934f",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'main' into develop",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-06-16T08:15:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b7419ec051a3fac12753f504816a0a83a48fea40",
          "body": null,
          "is_bot": false,
          "headline": "docs: update changelog",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-06-16T08:15:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b4a21b31d5d946751d90c866cbe22c93cac786d2",
          "body": "new release 1.8.19 v1.8.19",
          "is_bot": false,
          "headline": "Merge tag 'v1.8.19' into develop",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-06-16T08:15:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "24d146002ddd344685d7f22d2ba2e2fbe917a2ae",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'release/1.8.19'",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-06-16T08:15:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "848f5666463ed9bfb4893f4b647d76d7234ccf04",
          "body": null,
          "is_bot": false,
          "headline": "build: bump to next version 1.8.19",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-06-16T08:07:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0cd754b6b9174e5a993fe391bcece8a427de1def",
          "body": null,
          "is_bot": false,
          "headline": "build: update spring-ai version to 2.0.0",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-06-15T08:48:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "534b4a6309b513f83a96b5f506e3a8f1da1fb4ae",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'bugfix/#409_lc4j_skills' into develop",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-06-14T15:00:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "66c30c7a123054cc76f36addd965a9601205967c",
          "body": "work on #409",
          "is_bot": false,
          "headline": "test(lancchain4j-agent): test the agent's skills availability",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-06-14T14:59:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "af9dfc17f7060d7bb27ee2b1e422a9d1069366a9",
          "body": "…kills\n\nwork on #409",
          "is_bot": false,
          "headline": "fix(lancchain4j-agent): enhance system message to include available s…",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-06-14T14:58:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4d6d808ac0862de7674e2161e7200fe13f3eed0e",
          "body": "work on #409",
          "is_bot": false,
          "headline": "fix: save skills for agent usage",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-06-14T14:57:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8c3f43080495639e0736c7464446d52042990e36",
          "body": null,
          "is_bot": false,
          "headline": "build: update langchain4j version to 1.16.2",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-06-14T10:42:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "70bbdeec11a1cdd2e668ced6a8ca87c04833a902",
          "body": "…ecutor\n\nwork on #409",
          "is_bot": false,
          "headline": "test(langchain4j): : add integration test for skill usage in agent ex…",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-06-14T10:31:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "368b0d7d58874a8324b2b35525b765e9df556974",
          "body": "Reject dynamic skill tool providers until supported and build a ToolProviderRequest with invocation context and user message.\n\nwork on 409",
          "is_bot": false,
          "headline": "fix(LC4jToolMapBuilder): adapt skill tool loading to ai service tools",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-06-14T10:30:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "744cd0530e61c29686c1eebf45f74b353df63e0d",
          "body": "…igure-pages, setup-java, upload-pages-artifact, and deploy-pages",
          "is_bot": false,
          "headline": "build: update GitHub Actions to use latest versions of checkout, conf…",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-06-14T08:39:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "33630a1488f5952e4724b56d62d810a7de91751a",
          "body": "…p-java, and upload-artifact",
          "is_bot": false,
          "headline": "build: update GitHub Actions to use latest versions of checkout, setu…",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-06-14T08:39:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9cd240b04a4fb16ed033b8b84e630cdfd56d083b",
          "body": "…p-java, and upload-artifact",
          "is_bot": false,
          "headline": "build: update GitHub Actions to use latest versions of checkout, setu…",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-06-13T15:54:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "79b9a572b84050ac4296eceb73dbf96e257a5472",
          "body": null,
          "is_bot": false,
          "headline": "build: bump to next dev version 1.8-SNAPSHOT",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-06-13T15:49:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e618bfdf070e0cdb37ddd80555a796e6711f1f41",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'hotfix/changelog'",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-06-12T19:39:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0f8d9c1477d1c67001bbf6fa11d7bc1b4c2ea45f",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'main' into develop",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-06-12T19:39:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c4cd47cb7d0a3f3b286545d648079befbb505899",
          "body": null,
          "is_bot": false,
          "headline": "docs: update changelog",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-06-12T19:39:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "619beb5107365f78ce504f572cdc090ea72c841c",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'release/1.8.18'",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-06-12T19:33:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d2fcab6f76d4361680726a4c75a49ef326a53d62",
          "body": "new release 1.8.18 v1.8.18",
          "is_bot": false,
          "headline": "Merge tag 'v1.8.18' into develop",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-06-12T19:33:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0821ff8155048f563a93dc57e1944198d90e9ddc",
          "body": null,
          "is_bot": false,
          "headline": "build: bump to next version 1.8.18",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-06-12T19:32:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ff34cf184ed85d1a668486b07eb28778e5a8dc61",
          "body": "…cy from pom.xml",
          "is_bot": false,
          "headline": "build(spring-ai-agent): remove unused spring-ai-azure-openai dependen…",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-06-12T19:19:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "28e8e0f261f79f2c7548abebfd58d6af8b2a2afd",
          "body": null,
          "is_bot": false,
          "headline": "chore: clean code",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-06-12T19:14:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8732e5cef01af07481a4c30dce80e326ffb7b3f5",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'feature/#410_springai_2_0_0' into develop",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-06-12T19:13:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c00571b8a9466cb34ed48099e03c5f0676b0d13d",
          "body": null,
          "is_bot": false,
          "headline": "chore: clean code",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-06-12T19:12:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4a4679540d5c47689a8de5c2637f55993f43a819",
          "body": "work on #410",
          "is_bot": false,
          "headline": "fix(spring-ai-agent): reintroduce default system message",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-06-12T19:12:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a6ce4b7815c383a5f7154d242ea2f7670b060a8c",
          "body": "…n of ChatOptions and avoid use of ChatClient\n\nresolve #410",
          "is_bot": false,
          "headline": "fix: replace usage of internalToolExecutionEnabled(9 with introductio…",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-06-12T18:13:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "938c1a175355c1a1bb7aa38f293a3141fbaa14ea",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'feature/s3-storage-strategy' into develop",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-06-10T20:27:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "76cc1f230cfbd902bf32950e0a21c087bbcbf345",
          "body": "…moDbClient` and S3Client, replacing deprecated region and endpoint URI builder methods.",
          "is_bot": false,
          "headline": " Refactored client configuration to allow injecting an external `Dyna…",
          "author_name": "sushantrawat4-sketch",
          "author_login": "sushantrawat4-sketch",
          "committed_at": "2026-06-09T15:37:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1405b10fe607da75240c8d46c9f14011f93a0ba9",
          "body": "- Added StorageStrategy class to manage data storage between DynamoDB and S3 based on payload size.\n- Implemented methods for storing, retrieving, and deleting data from both storage backends.\n- Introduced lifecycle management for S3 objects with TTL support.\n- Created unit tests for StorageStrategy\n[…]\nunctions.\n- Enhanced DynamoDBSaverTest with additional tests for thread deletion and conditional writes.\n- Integrated MinIO for S3 testing and configured DynamoDB local instance for integration tests.",
          "is_bot": false,
          "headline": "Implement StorageStrategy for DynamoDB and S3 integration",
          "author_name": "sushantrawat4-sketch",
          "author_login": "sushantrawat4-sketch",
          "committed_at": "2026-06-09T15:34:10Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "b845b4554db0c001d0a704b7b6796e4c7cad3c80",
          "body": "…1-beta26",
          "is_bot": false,
          "headline": "build: update langchain4j version to 1.16.1 and beta version to 1.16.…",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-06-08T09:03:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3c4a07818e3bb9275b482303766bc7014df47098",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'main' into develop",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-05-22T12:34:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4206519f2ec5f43877370f1206dffd3aca1cc750",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'hotfix/docs'",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-05-22T12:34:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fd60db55ded69146d142fac62535ea7681512228",
          "body": null,
          "is_bot": false,
          "headline": "docs: add dynamodb-saver and ockroachdb-saver",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-05-22T12:34:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "32321e250eb38276c61cbd775ff58297554e4af0",
          "body": null,
          "is_bot": false,
          "headline": "build(bom): add dynamodb-saver and ockroachdb-saver",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-05-22T12:33:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a3fb52fb11fb907edb73bed6a9051685116fa268",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'main' into develop",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-05-22T11:11:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "10685c57bbc7421e021304e272ea835c0b90bacf",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'hotfix/changelog'",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-05-22T11:11:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "15d816e911a75acea1538032eccd898751538aba",
          "body": null,
          "is_bot": false,
          "headline": "docs: update changelog",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-05-22T11:10:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8dcdfb634721397d210b9bd4abd09a35af62c2fb",
          "body": "new release 1.8.17 v1.8.17",
          "is_bot": false,
          "headline": "Merge tag 'v1.8.17' into develop",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-05-22T11:10:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "aad6cfa3a3c004c57df0d28c882b3bb33632503d",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'release/1.8.17'",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-05-22T11:10:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e62acf513599204e719768f54fca967d8d3ede3c",
          "body": null,
          "is_bot": false,
          "headline": "build: bump to next version 1.8.17",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-05-22T11:09:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "01117a31e652d0e531640b8725ba1fbb7f5b708b",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'develop' into feat/postgres-properties-setter",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-05-22T11:02:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e13f5aea40e7ccb4b8960f593c26437541bc97bb",
          "body": null,
          "is_bot": false,
          "headline": "Add support for additional conenction properties in Builder",
          "author_name": "Egor Svinarev",
          "author_login": "EgorSvinarev",
          "committed_at": "2026-05-20T22:38:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "752a4d182f1b86c5ca59ed5cb1cf87333b28689d",
          "body": "CockroachDBSaver is a sync checkpoint saver backed by CockroachDB. It\nextends AbstractCheckpointSaver and mirrors PostgresSaver one-for-one\nin DDL and SQL so cross-database migration between Postgres and\nCockroachDB is straightforward.\n\nCockroachDB speaks the PostgreSQL wire protocol, so the standar\n[…]\nph4j's\ncheckpoint contract (BaseCheckpointSaver) has no async API. Callers\non JDK 21 or later can invoke this saver from a virtual thread for\ngenuinely non-blocking concurrency without any API change.",
          "is_bot": false,
          "headline": "Add langgraph4j-cockroachdb-saver",
          "author_name": "Amine El Kouhen",
          "author_login": "amine-crl",
          "committed_at": "2026-05-18T16:50:46Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d8f875266895ce4b72da4838c906d033e0553918",
          "body": "work on #401",
          "is_bot": false,
          "headline": "test: verification and proposed resolution",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-05-15T10:43:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "28ae0c8672729843292bd6615b51be7d6fd2abaa",
          "body": "Update the snapshot deployment workflow trigger and checkout references from develop-1.8 to develop.",
          "is_bot": false,
          "headline": "ci(deploy-snapshot): target develop branch for snapshot deployment",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-05-11T15:41:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bb4f1f57774a6c81697c3caa2d214103848e4408",
          "body": null,
          "is_bot": false,
          "headline": "Merge remote-tracking branch 'origin/develop-1.8'",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-05-11T14:49:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8290f591aeee32a9ea3f9ebd3dfd8009f30f0813",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'support/1.8' into develop-1.8",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-05-11T14:43:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fd02481e567ebeb519ac78710b1a82d1436e0b9c",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'hotfix/changelog' into support/1.8",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-05-11T14:43:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0adfb47897937b6657085764baf143412cbf7408",
          "body": null,
          "is_bot": false,
          "headline": "docs: update changelog",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-05-11T14:43:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "448529735f2e277a021c5659d6b40823cd577935",
          "body": "new release 1.8.16 v1.8.16",
          "is_bot": false,
          "headline": "Merge tag 'v1.8.16' into develop-1.8",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-05-11T14:41:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7073b2f305095611a31cf8ff4b44312ebc7c2647",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'release/1.8.16' into support/1.8",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-05-11T14:41:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "34418447a9f8b1862637d1c2c772f6ef1b04c1f9",
          "body": null,
          "is_bot": false,
          "headline": "docs(site): update references",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-05-11T14:40:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1b57599d5fb61fdb73c6b8cfc707e1c539acc6b8",
          "body": null,
          "is_bot": false,
          "headline": "build: bump to next version 1.8.16",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-05-11T14:33:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "63a2a7a28148bdb029d347d8b5597c5138041c53",
          "body": null,
          "is_bot": false,
          "headline": "build(spring-ai-agent): sync maven archetype",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-05-11T14:28:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b059a522d6de9a0a5789529597e69d45c024da87",
          "body": null,
          "is_bot": false,
          "headline": "Merge remote-tracking branch 'origin/develop-1.8'",
          "author_name": "bsorrentino",
          "author_login": "bsorrentino",
          "committed_at": "2026-05-10T09:25:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 100,
      "commits_last_year": 1417,
      "latest_release_at": "2026-07-17T16:45:07Z",
      "latest_release_tag": "v1.9.0-beta1",
      "releases_from_tags": false,
      "days_since_last_push": 3,
      "active_weeks_last_year": 48,
      "days_since_latest_release": 7,
      "mean_days_between_releases": 10.5
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": false,
      "health_percentage": 37,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": false
    },
    "ecosystem": {
      "packages": [
        {
          "name": "org.bsc.langgraph4j:langgraph4j-howtos",
          "exists": true,
          "license": null,
          "keywords": [],
          "ecosystem": "maven",
          "matches_repo": null,
          "registry_url": "https://central.sonatype.com/artifact/org.bsc.langgraph4j/langgraph4j-howtos",
          "is_deprecated": false,
          "latest_version": "1.9.0-beta1",
          "repository_url": null,
          "versions_count": 97,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": null,
          "first_published_at": null,
          "latest_published_at": "2026-07-17T16:43:44Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 7
        },
        {
          "name": "org.bsc.langgraph4j:langgraph4j-javelit",
          "exists": true,
          "license": null,
          "keywords": [],
          "ecosystem": "maven",
          "matches_repo": null,
          "registry_url": "https://central.sonatype.com/artifact/org.bsc.langgraph4j/langgraph4j-javelit",
          "is_deprecated": false,
          "latest_version": "1.9.0-beta1",
          "repository_url": null,
          "versions_count": 30,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": null,
          "first_published_at": null,
          "latest_published_at": "2026-07-17T16:43:46Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 7
        },
        {
          "name": "org.bsc.langgraph4j:langgraph4j-core",
          "exists": true,
          "license": null,
          "keywords": [],
          "ecosystem": "maven",
          "matches_repo": null,
          "registry_url": "https://central.sonatype.com/artifact/org.bsc.langgraph4j/langgraph4j-core",
          "is_deprecated": false,
          "latest_version": "1.9.0-beta1",
          "repository_url": null,
          "versions_count": 86,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": null,
          "first_published_at": null,
          "latest_published_at": "2026-07-17T16:43:42Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 7
        },
        {
          "name": "org.bsc.langgraph4j:langgraph4j-mysql-saver",
          "exists": true,
          "license": null,
          "keywords": [],
          "ecosystem": "maven",
          "matches_repo": true,
          "registry_url": "https://central.sonatype.com/artifact/org.bsc.langgraph4j/langgraph4j-mysql-saver",
          "is_deprecated": false,
          "latest_version": "1.9.0-beta1",
          "repository_url": "https://github.com/langgraph4j/langgraph4j",
          "versions_count": 37,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": null,
          "first_published_at": null,
          "latest_published_at": "2026-07-17T16:43:44Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 7
        },
        {
          "name": "org.bsc.langgraph4j:langgraph4j-redis-saver",
          "exists": true,
          "license": null,
          "keywords": [],
          "ecosystem": "maven",
          "matches_repo": true,
          "registry_url": "https://central.sonatype.com/artifact/org.bsc.langgraph4j/langgraph4j-redis-saver",
          "is_deprecated": false,
          "latest_version": "1.9.0-beta1",
          "repository_url": "https://github.com/langgraph4j/langgraph4j",
          "versions_count": 21,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": null,
          "first_published_at": null,
          "latest_published_at": "2026-07-17T16:43:45Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 7
        },
        {
          "name": "org.bsc.langgraph4j:langgraph4j-oracle-saver",
          "exists": true,
          "license": null,
          "keywords": [],
          "ecosystem": "maven",
          "matches_repo": true,
          "registry_url": "https://central.sonatype.com/artifact/org.bsc.langgraph4j/langgraph4j-oracle-saver",
          "is_deprecated": false,
          "latest_version": "1.9.0-beta1",
          "repository_url": "https://github.com/langgraph4j/langgraph4j",
          "versions_count": 38,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": null,
          "first_published_at": null,
          "latest_published_at": "2026-07-17T16:43:45Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 7
        },
        {
          "name": "org.bsc.langgraph4j:langgraph4j-opentelemetry",
          "exists": true,
          "license": null,
          "keywords": [],
          "ecosystem": "maven",
          "matches_repo": null,
          "registry_url": "https://central.sonatype.com/artifact/org.bsc.langgraph4j/langgraph4j-opentelemetry",
          "is_deprecated": false,
          "latest_version": "1.9.0-beta1",
          "repository_url": null,
          "versions_count": 23,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": null,
          "first_published_at": null,
          "latest_published_at": "2026-07-17T16:43:45Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 7
        },
        {
          "name": "org.bsc.langgraph4j:langgraph4j-dynamodb-saver",
          "exists": true,
          "license": null,
          "keywords": [],
          "ecosystem": "maven",
          "matches_repo": true,
          "registry_url": "https://central.sonatype.com/artifact/org.bsc.langgraph4j/langgraph4j-dynamodb-saver",
          "is_deprecated": false,
          "latest_version": "1.9.0-beta1",
          "repository_url": "https://github.com/langgraph4j/langgraph4j",
          "versions_count": 6,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": null,
          "first_published_at": null,
          "latest_published_at": "2026-07-17T16:43:48Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 7
        }
      ]
    },
    "popularity": {
      "forks": 247,
      "stars": 1844,
      "watchers": 28,
      "fork_history": {
        "days": [
          {
            "date": "2024-05-03",
            "count": 1
          },
          {
            "date": "2024-07-01",
            "count": 1
          },
          {
            "date": "2024-07-03",
            "count": 1
          },
          {
            "date": "2024-07-24",
            "count": 1
          },
          {
            "date": "2024-08-05",
            "count": 2
          },
          {
            "date": "2024-08-06",
            "count": 1
          },
          {
            "date": "2024-08-13",
            "count": 1
          },
          {
            "date": "2024-08-21",
            "count": 1
          },
          {
            "date": "2024-09-02",
            "count": 1
          },
          {
            "date": "2024-09-04",
            "count": 1
          },
          {
            "date": "2024-09-06",
            "count": 1
          },
          {
            "date": "2024-09-17",
            "count": 1
          },
          {
            "date": "2024-09-25",
            "count": 1
          },
          {
            "date": "2024-10-11",
            "count": 1
          },
          {
            "date": "2024-10-14",
            "count": 1
          },
          {
            "date": "2024-10-21",
            "count": 2
          },
          {
            "date": "2024-10-25",
            "count": 1
          },
          {
            "date": "2024-11-02",
            "count": 1
          },
          {
            "date": "2024-11-13",
            "count": 1
          },
          {
            "date": "2024-11-16",
            "count": 1
          },
          {
            "date": "2024-11-26",
            "count": 1
          },
          {
            "date": "2024-11-27",
            "count": 1
          },
          {
            "date": "2024-11-29",
            "count": 1
          },
          {
            "date": "2024-12-09",
            "count": 1
          },
          {
            "date": "2024-12-12",
            "count": 1
          },
          {
            "date": "2024-12-16",
            "count": 1
          },
          {
            "date": "2024-12-22",
            "count": 1
          },
          {
            "date": "2024-12-26",
            "count": 1
          },
          {
            "date": "2025-01-01",
            "count": 1
          },
          {
            "date": "2025-01-08",
            "count": 1
          },
          {
            "date": "2025-01-09",
            "count": 1
          },
          {
            "date": "2025-01-10",
            "count": 2
          },
          {
            "date": "2025-01-20",
            "count": 2
          },
          {
            "date": "2025-01-21",
            "count": 1
          },
          {
            "date": "2025-01-23",
            "count": 2
          },
          {
            "date": "2025-02-05",
            "count": 1
          },
          {
            "date": "2025-02-13",
            "count": 1
          },
          {
            "date": "2025-02-19",
            "count": 1
          },
          {
            "date": "2025-02-21",
            "count": 1
          },
          {
            "date": "2025-02-24",
            "count": 1
          },
          {
            "date": "2025-02-26",
            "count": 1
          },
          {
            "date": "2025-03-07",
            "count": 1
          },
          {
            "date": "2025-03-09",
            "count": 1
          },
          {
            "date": "2025-03-13",
            "count": 1
          },
          {
            "date": "2025-03-27",
            "count": 2
          },
          {
            "date": "2025-03-30",
            "count": 1
          },
          {
            "date": "2025-04-08",
            "count": 1
          },
          {
            "date": "2025-04-09",
            "count": 1
          },
          {
            "date": "2025-04-10",
            "count": 2
          },
          {
            "date": "2025-04-17",
            "count": 1
          },
          {
            "date": "2025-04-18",
            "count": 1
          },
          {
            "date": "2025-04-19",
            "count": 1
          },
          {
            "date": "2025-04-22",
            "count": 1
          },
          {
            "date": "2025-04-24",
            "count": 1
          },
          {
            "date": "2025-04-29",
            "count": 2
          },
          {
            "date": "2025-05-02",
            "count": 1
          },
          {
            "date": "2025-05-05",
            "count": 1
          },
          {
            "date": "2025-05-08",
            "count": 1
          },
          {
            "date": "2025-05-14",
            "count": 1
          },
          {
            "date": "2025-05-15",
            "count": 1
          },
          {
            "date": "2025-05-19",
            "count": 2
          },
          {
            "date": "2025-05-23",
            "count": 1
          },
          {
            "date": "2025-05-27",
            "count": 1
          },
          {
            "date": "2025-05-31",
            "count": 1
          },
          {
            "date": "2025-06-03",
            "count": 1
          },
          {
            "date": "2025-06-06",
            "count": 3
          },
          {
            "date": "2025-06-09",
            "count": 2
          },
          {
            "date": "2025-06-11",
            "count": 3
          },
          {
            "date": "2025-06-13",
            "count": 1
          },
          {
            "date": "2025-06-15",
            "count": 1
          },
          {
            "date": "2025-06-16",
            "count": 1
          },
          {
            "date": "2025-06-17",
            "count": 1
          },
          {
            "date": "2025-06-19",
            "count": 1
          },
          {
            "date": "2025-06-26",
            "count": 1
          },
          {
            "date": "2025-06-27",
            "count": 2
          },
          {
            "date": "2025-06-29",
            "count": 1
          },
          {
            "date": "2025-07-06",
            "count": 1
          },
          {
            "date": "2025-07-08",
            "count": 1
          },
          {
            "date": "2025-07-12",
            "count": 1
          },
          {
            "date": "2025-07-13",
            "count": 1
          },
          {
            "date": "2025-07-20",
            "count": 1
          },
          {
            "date": "2025-07-21",
            "count": 1
          },
          {
            "date": "2025-07-29",
            "count": 3
          },
          {
            "date": "2025-08-02",
            "count": 1
          },
          {
            "date": "2025-08-05",
            "count": 1
          },
          {
            "date": "2025-08-10",
            "count": 1
          },
          {
            "date": "2025-08-11",
            "count": 1
          },
          {
            "date": "2025-08-14",
            "count": 1
          },
          {
            "date": "2025-08-20",
            "count": 1
          },
          {
            "date": "2025-08-21",
            "count": 2
          },
          {
            "date": "2025-08-26",
            "count": 1
          },
          {
            "date": "2025-08-27",
            "count": 3
          },
          {
            "date": "2025-09-01",
            "count": 1
          },
          {
            "date": "2025-09-03",
            "count": 1
          },
          {
            "date": "2025-09-12",
            "count": 1
          },
          {
            "date": "2025-09-13",
            "count": 1
          },
          {
            "date": "2025-09-14",
            "count": 1
          },
          {
            "date": "2025-09-15",
            "count": 1
          },
          {
            "date": "2025-09-16",
            "count": 1
          },
          {
            "date": "2025-09-17",
            "count": 1
          },
          {
            "date": "2025-09-20",
            "count": 1
          },
          {
            "date": "2025-09-21",
            "count": 1
          },
          {
            "date": "2025-09-22",
            "count": 1
          },
          {
            "date": "2025-09-23",
            "count": 2
          },
          {
            "date": "2025-09-26",
            "count": 1
          },
          {
            "date": "2025-10-06",
            "count": 1
          },
          {
            "date": "2025-10-10",
            "count": 1
          },
          {
            "date": "2025-10-11",
            "count": 1
          },
          {
            "date": "2025-10-12",
            "count": 1
          },
          {
            "date": "2025-10-13",
            "count": 2
          },
          {
            "date": "2025-10-15",
            "count": 1
          },
          {
            "date": "2025-10-23",
            "count": 1
          },
          {
            "date": "2025-10-26",
            "count": 1
          },
          {
            "date": "2025-10-30",
            "count": 1
          },
          {
            "date": "2025-10-31",
            "count": 1
          },
          {
            "date": "2025-11-05",
            "count": 1
          },
          {
            "date": "2025-11-11",
            "count": 1
          },
          {
            "date": "2025-11-14",
            "count": 1
          },
          {
            "date": "2025-11-17",
            "count": 1
          },
          {
            "date": "2025-11-18",
            "count": 1
          },
          {
            "date": "2025-11-19",
            "count": 1
          },
          {
            "date": "2025-11-21",
            "count": 2
          },
          {
            "date": "2025-11-24",
            "count": 2
          },
          {
            "date": "2025-11-26",
            "count": 1
          },
          {
            "date": "2025-11-27",
            "count": 1
          },
          {
            "date": "2025-12-14",
            "count": 2
          },
          {
            "date": "2025-12-16",
            "count": 3
          },
          {
            "date": "2025-12-19",
            "count": 1
          },
          {
            "date": "2025-12-23",
            "count": 1
          },
          {
            "date": "2025-12-24",
            "count": 1
          },
          {
            "date": "2025-12-29",
            "count": 1
          },
          {
            "date": "2026-01-04",
            "count": 1
          },
          {
            "date": "2026-01-07",
            "count": 4
          },
          {
            "date": "2026-01-09",
            "count": 1
          },
          {
            "date": "2026-01-15",
            "count": 3
          },
          {
            "date": "2026-01-17",
            "count": 1
          },
          {
            "date": "2026-01-20",
            "count": 2
          },
          {
            "date": "2026-01-21",
            "count": 1
          },
          {
            "date": "2026-01-22",
            "count": 2
          },
          {
            "date": "2026-01-26",
            "count": 1
          },
          {
            "date": "2026-01-28",
            "count": 1
          },
          {
            "date": "2026-01-30",
            "count": 1
          },
          {
            "date": "2026-02-09",
            "count": 1
          },
          {
            "date": "2026-02-12",
            "count": 1
          },
          {
            "date": "2026-02-24",
            "count": 1
          },
          {
            "date": "2026-02-26",
            "count": 1
          },
          {
            "date": "2026-03-01",
            "count": 1
          },
          {
            "date": "2026-03-02",
            "count": 1
          },
          {
            "date": "2026-03-05",
            "count": 2
          },
          {
            "date": "2026-03-06",
            "count": 1
          },
          {
            "date": "2026-03-11",
            "count": 1
          },
          {
            "date": "2026-03-14",
            "count": 2
          },
          {
            "date": "2026-03-17",
            "count": 1
          },
          {
            "date": "2026-03-19",
            "count": 1
          },
          {
            "date": "2026-03-20",
            "count": 2
          },
          {
            "date": "2026-03-21",
            "count": 1
          },
          {
            "date": "2026-03-22",
            "count": 1
          },
          {
            "date": "2026-03-23",
            "count": 1
          },
          {
            "date": "2026-03-25",
            "count": 3
          },
          {
            "date": "2026-03-26",
            "count": 1
          },
          {
            "date": "2026-03-27",
            "count": 1
          },
          {
            "date": "2026-04-03",
            "count": 2
          },
          {
            "date": "2026-04-08",
            "count": 1
          },
          {
            "date": "2026-04-10",
            "count": 2
          },
          {
            "date": "2026-04-13",
            "count": 1
          },
          {
            "date": "2026-04-17",
            "count": 2
          },
          {
            "date": "2026-04-21",
            "count": 1
          },
          {
            "date": "2026-04-22",
            "count": 1
          },
          {
            "date": "2026-04-26",
            "count": 1
          },
          {
            "date": "2026-04-27",
            "count": 1
          },
          {
            "date": "2026-04-29",
            "count": 1
          },
          {
            "date": "2026-05-02",
            "count": 1
          },
          {
            "date": "2026-05-08",
            "count": 2
          },
          {
            "date": "2026-05-09",
            "count": 1
          },
          {
            "date": "2026-05-11",
            "count": 1
          },
          {
            "date": "2026-05-12",
            "count": 1
          },
          {
            "date": "2026-05-18",
            "count": 1
          },
          {
            "date": "2026-05-20",
            "count": 1
          },
          {
            "date": "2026-05-23",
            "count": 2
          },
          {
            "date": "2026-05-25",
            "count": 1
          },
          {
            "date": "2026-05-26",
            "count": 1
          },
          {
            "date": "2026-05-29",
            "count": 1
          },
          {
            "date": "2026-06-02",
            "count": 1
          },
          {
            "date": "2026-06-04",
            "count": 1
          },
          {
            "date": "2026-06-07",
            "count": 2
          },
          {
            "date": "2026-06-09",
            "count": 1
          },
          {
            "date": "2026-06-11",
            "count": 2
          },
          {
            "date": "2026-06-12",
            "count": 1
          },
          {
            "date": "2026-06-18",
            "count": 1
          },
          {
            "date": "2026-06-19",
            "count": 1
          },
          {
            "date": "2026-06-24",
            "count": 1
          },
          {
            "date": "2026-06-25",
            "count": 1
          },
          {
            "date": "2026-06-29",
            "count": 2
          },
          {
            "date": "2026-07-01",
            "count": 1
          },
          {
            "date": "2026-07-03",
            "count": 1
          },
          {
            "date": "2026-07-13",
            "count": 1
          },
          {
            "date": "2026-07-16",
            "count": 1
          },
          {
            "date": "2026-07-21",
            "count": 1
          },
          {
            "date": "2026-07-22",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 246,
        "total_forks": 247
      },
      "star_history": null,
      "open_issues_and_prs": 24
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [
        "notebooks",
        "samples"
      ],
      "has_llms_txt": false,
      "has_dockerfile": true,
      "has_mcp_signal": true,
      "bootstrap_files": [],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [
        "studio/webui/tsconfig.json"
      ],
      "toolchain_manifests": [
        "how-tos/pom.xml",
        "javelit/pom.xml",
        "langchain4j/langchain4j-agent/pom.xml",
        "langchain4j/langchain4j-core/pom.xml",
        "langgraph4j-bom/pom.xml",
        "langgraph4j-cockroachdb-saver/pom.xml",
        "langgraph4j-core/pom.xml",
        "langgraph4j-dynamodb-saver/pom.xml",
        "langgraph4j-hazelcast-saver/pom.xml",
        "langgraph4j-mysql-saver/pom.xml",
        "langgraph4j-opentelemetry/pom.xml",
        "langgraph4j-oracle-saver/pom.xml",
        "langgraph4j-postgres-saver/pom.xml",
        "langgraph4j-redis-saver/pom.xml",
        "pom.xml",
        "spring-ai/spring-ai-agent-archetype/pom.xml",
        "spring-ai/spring-ai-agent-archetype/src/main/resources/archetype-resources/pom.xml",
        "spring-ai/spring-ai-agent/pom.xml",
        "spring-ai/spring-ai-core/pom.xml",
        "studio/base/pom.xml",
        "studio/jetty/pom.xml",
        "studio/quarkus/pom.xml",
        "studio/springboot/pom.xml"
      ],
      "largest_source_bytes": 1460316,
      "source_files_sampled": 453,
      "oversized_source_files": 28,
      "agent_instruction_files": [
        "AGENT.md",
        "src/site/mkdocs/GEMINI.md"
      ],
      "agent_instruction_max_bytes": 2144
    },
    "dependencies": {
      "manifests": [
        "how-tos/pom.xml",
        "javelit/pom.xml",
        "langgraph4j-bom/pom.xml",
        "langgraph4j-cockroachdb-saver/pom.xml",
        "langgraph4j-core/pom.xml",
        "langgraph4j-dynamodb-saver/pom.xml",
        "langgraph4j-hazelcast-saver/pom.xml",
        "langgraph4j-mysql-saver/pom.xml",
        "langgraph4j-opentelemetry/pom.xml",
        "langgraph4j-oracle-saver/pom.xml",
        "langgraph4j-postgres-saver/pom.xml",
        "langgraph4j-redis-saver/pom.xml",
        "pom.xml"
      ],
      "advisories": {
        "error": null,
        "scope": "published_package",
        "source": "osv",
        "findings": [
          {
            "name": "com.fasterxml.jackson.core:jackson-databind",
            "direct": false,
            "version": "2.21.4",
            "severity": "moderate",
            "ecosystem": "maven",
            "cvss_score": 6.5,
            "advisory_ids": [
              "GHSA-5gvw-p9qm-jgwh",
              "GHSA-5jmj-h7xm-6q6v",
              "GHSA-mhm7-754m-9p8w"
            ],
            "fixed_version": "3.2.1",
            "advisory_count": 3,
            "oldest_advisory_days": 31
          }
        ],
        "collected": true,
        "malicious": [],
        "truncated": false,
        "by_severity": {
          "moderate": 1
        },
        "advisory_count": 3,
        "affected_count": 1,
        "assessed_count": 34,
        "malicious_count": 0,
        "assessed_package": "maven:org.bsc.langgraph4j:langgraph4j-howtos@1.9.0-beta1",
        "unassessed_count": 0,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "maven"
      ],
      "dependencies": [
        {
          "name": "org.bsc.langgraph4j:langgraph4j-core",
          "manifest": "how-tos/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${project.version}"
        },
        {
          "name": "org.bsc.langgraph4j:langgraph4j-langchain4j",
          "manifest": "how-tos/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${project.version}"
        },
        {
          "name": "org.bsc.langgraph4j:langgraph4j-agent-executor",
          "manifest": "how-tos/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${project.version}"
        },
        {
          "name": "dev.langchain4j:langchain4j",
          "manifest": "how-tos/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${langchain4j.version}"
        },
        {
          "name": "dev.langchain4j:langchain4j-mcp",
          "manifest": "how-tos/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${langchain4j.beta}"
        },
        {
          "name": "dev.langchain4j:langchain4j-open-ai",
          "manifest": "how-tos/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${langchain4j.version}"
        },
        {
          "name": "dev.langchain4j:langchain4j-ollama",
          "manifest": "how-tos/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${langchain4j.version}"
        },
        {
          "name": "dev.langchain4j:langchain4j-web-search-engine-tavily",
          "manifest": "how-tos/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${langchain4j.beta}"
        },
        {
          "name": "org.slf4j:slf4j-api",
          "manifest": "how-tos/pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "org.slf4j:slf4j-jdk14",
          "manifest": "how-tos/pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "io.javelit:javelit",
          "manifest": "javelit/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "0.86.0"
        },
        {
          "name": "org.bsc.langgraph4j:langgraph4j-core",
          "manifest": "javelit/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${project.version}"
        },
        {
          "name": "net.sourceforge.plantuml:plantuml-mit",
          "manifest": "javelit/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "1.2025.10"
        },
        {
          "name": "io.github.ollama4j:ollama4j",
          "manifest": "javelit/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "1.1.6"
        },
        {
          "name": "org.bsc.langgraph4j:langgraph4j-core",
          "manifest": "langgraph4j-bom/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${project.version}"
        },
        {
          "name": "org.bsc.langgraph4j:langgraph4j-opentelemetry",
          "manifest": "langgraph4j-bom/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${project.version}"
        },
        {
          "name": "org.bsc.langgraph4j:langgraph4j-langchain4j",
          "manifest": "langgraph4j-bom/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${project.version}"
        },
        {
          "name": "org.bsc.langgraph4j:langgraph4j-agent-executor",
          "manifest": "langgraph4j-bom/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${project.version}"
        },
        {
          "name": "org.bsc.langgraph4j:langgraph4j-spring-ai",
          "manifest": "langgraph4j-bom/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${project.version}"
        },
        {
          "name": "org.bsc.langgraph4j:langgraph4j-springai-agentexecutor",
          "manifest": "langgraph4j-bom/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${project.version}"
        },
        {
          "name": "org.bsc.langgraph4j:langgraph4j-postgres-saver",
          "manifest": "langgraph4j-bom/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${project.version}"
        },
        {
          "name": "org.bsc.langgraph4j:langgraph4j-mysql-saver",
          "manifest": "langgraph4j-bom/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${project.version}"
        },
        {
          "name": "org.bsc.langgraph4j:langgraph4j-oracle-saver",
          "manifest": "langgraph4j-bom/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${project.version}"
        },
        {
          "name": "org.bsc.langgraph4j:langgraph4j-redis-saver",
          "manifest": "langgraph4j-bom/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${project.version}"
        },
        {
          "name": "org.bsc.langgraph4j:langgraph4j-dynamodb-saver",
          "manifest": "langgraph4j-bom/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${project.version}"
        },
        {
          "name": "org.bsc.langgraph4j:langgraph4j-cockroachdb-saver",
          "manifest": "langgraph4j-bom/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${project.version}"
        },
        {
          "name": "org.bsc.langgraph4j:langgraph4j-hazelcast-saver",
          "manifest": "langgraph4j-bom/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${project.version}"
        },
        {
          "name": "org.bsc.langgraph4j:langgraph4j-studio",
          "manifest": "langgraph4j-bom/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${project.version}"
        },
        {
          "name": "org.bsc.langgraph4j:langgraph4j-studio-jetty",
          "manifest": "langgraph4j-bom/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${project.version}"
        },
        {
          "name": "org.bsc.langgraph4j:langgraph4j-studio-quarkus",
          "manifest": "langgraph4j-bom/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${project.version}"
        },
        {
          "name": "org.bsc.langgraph4j:langgraph4j-studio-springboot",
          "manifest": "langgraph4j-bom/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${project.version}"
        },
        {
          "name": "org.bsc.langgraph4j:langgraph4j-javelit",
          "manifest": "langgraph4j-bom/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${project.version}"
        },
        {
          "name": "${project.parent.groupId}:langgraph4j-core",
          "manifest": "langgraph4j-cockroachdb-saver/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${project.parent.version}"
        },
        {
          "name": "org.postgresql:postgresql",
          "manifest": "langgraph4j-cockroachdb-saver/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "42.7.7"
        },
        {
          "name": "org.bsc.async:async-generator",
          "manifest": "langgraph4j-core/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${async.generator}"
        },
        {
          "name": "org.slf4j:slf4j-api",
          "manifest": "langgraph4j-core/pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "org.testcontainers:testcontainers-bom",
          "manifest": "langgraph4j-dynamodb-saver/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${testcontainers.version}"
        },
        {
          "name": "${project.parent.groupId}:langgraph4j-core",
          "manifest": "langgraph4j-dynamodb-saver/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${project.parent.version}"
        },
        {
          "name": "software.amazon.awssdk:dynamodb",
          "manifest": "langgraph4j-dynamodb-saver/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${aws.sdk.version}"
        },
        {
          "name": "software.amazon.awssdk:s3",
          "manifest": "langgraph4j-dynamodb-saver/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${aws.sdk.version}"
        },
        {
          "name": "software.amazon.awssdk:url-connection-client",
          "manifest": "langgraph4j-dynamodb-saver/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${aws.sdk.version}"
        },
        {
          "name": "org.slf4j:slf4j-api",
          "manifest": "langgraph4j-dynamodb-saver/pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "${project.parent.groupId}:langgraph4j-core",
          "manifest": "langgraph4j-hazelcast-saver/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${project.parent.version}"
        },
        {
          "name": "org.testcontainers:testcontainers-bom",
          "manifest": "langgraph4j-mysql-saver/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${testcontainers.version}"
        },
        {
          "name": "${project.parent.groupId}:langgraph4j-core",
          "manifest": "langgraph4j-mysql-saver/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${project.parent.version}"
        },
        {
          "name": "com.mysql:mysql-connector-j",
          "manifest": "langgraph4j-mysql-saver/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${mysql.version}"
        },
        {
          "name": "com.fasterxml.jackson.core:jackson-databind",
          "manifest": "langgraph4j-mysql-saver/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${jackson.version}"
        },
        {
          "name": "io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom",
          "manifest": "langgraph4j-opentelemetry/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "2.21.0"
        },
        {
          "name": "org.bsc.langgraph4j:langgraph4j-core",
          "manifest": "langgraph4j-opentelemetry/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${project.parent.version}"
        },
        {
          "name": "io.opentelemetry:opentelemetry-sdk",
          "manifest": "langgraph4j-opentelemetry/pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure",
          "manifest": "langgraph4j-opentelemetry/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "1.55.0"
        },
        {
          "name": "io.opentelemetry:opentelemetry-exporter-otlp",
          "manifest": "langgraph4j-opentelemetry/pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "io.opentelemetry.instrumentation:opentelemetry-logback-appender-1.0",
          "manifest": "langgraph4j-opentelemetry/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "2.21.0-alpha"
        },
        {
          "name": "ch.qos.logback:logback-classic",
          "manifest": "langgraph4j-opentelemetry/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "1.5.20"
        },
        {
          "name": "io.opentelemetry.proto:opentelemetry-proto",
          "manifest": "langgraph4j-opentelemetry/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "1.8.0-alpha"
        },
        {
          "name": "com.google.protobuf:protobuf-java-util",
          "manifest": "langgraph4j-opentelemetry/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "4.33.0"
        },
        {
          "name": "org.testcontainers:testcontainers-bom",
          "manifest": "langgraph4j-oracle-saver/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${testcontainers.version}"
        },
        {
          "name": "${project.parent.groupId}:langgraph4j-core",
          "manifest": "langgraph4j-oracle-saver/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${project.parent.version}"
        },
        {
          "name": "com.oracle.database.jdbc:ojdbc11",
          "manifest": "langgraph4j-oracle-saver/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${ojdbc.version}"
        },
        {
          "name": "com.oracle.database.jdbc:ojdbc-provider-jackson-oson",
          "manifest": "langgraph4j-oracle-saver/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "1.0.6"
        },
        {
          "name": "${project.parent.groupId}:langgraph4j-core",
          "manifest": "langgraph4j-postgres-saver/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${project.parent.version}"
        },
        {
          "name": "org.postgresql:postgresql",
          "manifest": "langgraph4j-postgres-saver/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "42.7.7"
        },
        {
          "name": "org.testcontainers:testcontainers-bom",
          "manifest": "langgraph4j-redis-saver/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${testcontainers.version}"
        },
        {
          "name": "${project.parent.groupId}:langgraph4j-core",
          "manifest": "langgraph4j-redis-saver/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${project.parent.version}"
        },
        {
          "name": "org.redisson:redisson",
          "manifest": "langgraph4j-redis-saver/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${redisson.version}"
        },
        {
          "name": "org.slf4j:slf4j-api",
          "manifest": "pom.xml",
          "ecosystem": "maven",
          "version_constraint": "2.0.9"
        },
        {
          "name": "org.slf4j:slf4j-jdk14",
          "manifest": "pom.xml",
          "ecosystem": "maven",
          "version_constraint": "2.0.9"
        },
        {
          "name": "org.junit:junit-bom",
          "manifest": "pom.xml",
          "ecosystem": "maven",
          "version_constraint": "5.11.0"
        },
        {
          "name": "org.apache.maven.doxia:doxia-module-markdown",
          "manifest": "pom.xml",
          "ecosystem": "maven",
          "version_constraint": "2.0.0"
        }
      ],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [
          {
            "name": "ch.qos.logback:logback-classic",
            "direct": true,
            "version": "1.5.20",
            "ecosystem": "maven"
          },
          {
            "name": "com.fasterxml.jackson.core:jackson-databind",
            "direct": true,
            "version": "2.15.2",
            "ecosystem": "maven"
          },
          {
            "name": "com.fasterxml.jackson.core:jackson-databind",
            "direct": true,
            "version": "2.17.2",
            "ecosystem": "maven"
          },
          {
            "name": "com.fasterxml.jackson.core:jackson-databind",
            "direct": true,
            "version": "2.18.2",
            "ecosystem": "maven"
          },
          {
            "name": "com.fasterxml.jackson.core:jackson-databind",
            "direct": true,
            "version": "2.21.1",
            "ecosystem": "maven"
          },
          {
            "name": "com.google.protobuf:protobuf-java-util",
            "direct": true,
            "version": "4.33.0",
            "ecosystem": "maven"
          },
          {
            "name": "com.mysql:mysql-connector-j",
            "direct": true,
            "version": "9.2.0",
            "ecosystem": "maven"
          },
          {
            "name": "com.oracle.database.jdbc:ojdbc-provider-jackson-oson",
            "direct": true,
            "version": "1.0.6",
            "ecosystem": "maven"
          },
          {
            "name": "com.oracle.database.jdbc:ojdbc11",
            "direct": true,
            "version": "23.9.0.25.07",
            "ecosystem": "maven"
          },
          {
            "name": "dev.langchain4j:langchain4j",
            "direct": true,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "dev.langchain4j:langchain4j-mcp",
            "direct": true,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "dev.langchain4j:langchain4j-ollama",
            "direct": true,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "dev.langchain4j:langchain4j-open-ai",
            "direct": true,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "dev.langchain4j:langchain4j-web-search-engine-tavily",
            "direct": true,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "io.github.ollama4j:ollama4j",
            "direct": true,
            "version": "1.1.6",
            "ecosystem": "maven"
          },
          {
            "name": "io.javelit:javelit",
            "direct": true,
            "version": "0.86.0",
            "ecosystem": "maven"
          },
          {
            "name": "io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom",
            "direct": true,
            "version": "2.21.0",
            "ecosystem": "maven"
          },
          {
            "name": "io.opentelemetry.instrumentation:opentelemetry-logback-appender-1.0",
            "direct": true,
            "version": "2.21.0-alpha",
            "ecosystem": "maven"
          },
          {
            "name": "io.opentelemetry.proto:opentelemetry-proto",
            "direct": true,
            "version": "1.8.0-alpha",
            "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": "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure",
            "direct": true,
            "version": "1.55.0",
            "ecosystem": "maven"
          },
          {
            "name": "net.sourceforge.plantuml:plantuml-mit",
            "direct": true,
            "version": "1.2025.10",
            "ecosystem": "maven"
          },
          {
            "name": "org.apache.maven.doxia:doxia-module-markdown",
            "direct": true,
            "version": "2.0.0",
            "ecosystem": "maven"
          },
          {
            "name": "org.bsc.async:async-generator",
            "direct": true,
            "version": "4.3.1",
            "ecosystem": "maven"
          },
          {
            "name": "org.bsc.langgraph4j:langgraph4j-agent-executor",
            "direct": true,
            "version": "1.8.17",
            "ecosystem": "maven"
          },
          {
            "name": "org.bsc.langgraph4j:langgraph4j-cockroachdb-saver",
            "direct": true,
            "version": "1.8.17",
            "ecosystem": "maven"
          },
          {
            "name": "org.bsc.langgraph4j:langgraph4j-core",
            "direct": true,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.bsc.langgraph4j:langgraph4j-core",
            "direct": true,
            "version": "1.8.17",
            "ecosystem": "maven"
          },
          {
            "name": "org.bsc.langgraph4j:langgraph4j-dynamodb-saver",
            "direct": true,
            "version": "1.8.17",
            "ecosystem": "maven"
          },
          {
            "name": "org.bsc.langgraph4j:langgraph4j-javelit",
            "direct": true,
            "version": "1.8.17",
            "ecosystem": "maven"
          },
          {
            "name": "org.bsc.langgraph4j:langgraph4j-langchain4j",
            "direct": true,
            "version": "1.8.17",
            "ecosystem": "maven"
          },
          {
            "name": "org.bsc.langgraph4j:langgraph4j-mysql-saver",
            "direct": true,
            "version": "1.8.17",
            "ecosystem": "maven"
          },
          {
            "name": "org.bsc.langgraph4j:langgraph4j-opentelemetry",
            "direct": true,
            "version": "1.8.17",
            "ecosystem": "maven"
          },
          {
            "name": "org.bsc.langgraph4j:langgraph4j-oracle-saver",
            "direct": true,
            "version": "1.8.17",
            "ecosystem": "maven"
          },
          {
            "name": "org.bsc.langgraph4j:langgraph4j-postgres-saver",
            "direct": true,
            "version": "1.8.17",
            "ecosystem": "maven"
          },
          {
            "name": "org.bsc.langgraph4j:langgraph4j-redis-saver",
            "direct": true,
            "version": "1.8.17",
            "ecosystem": "maven"
          },
          {
            "name": "org.bsc.langgraph4j:langgraph4j-spring-ai",
            "direct": true,
            "version": "1.8.17",
            "ecosystem": "maven"
          },
          {
            "name": "org.bsc.langgraph4j:langgraph4j-springai-agentexecutor",
            "direct": true,
            "version": "1.8.17",
            "ecosystem": "maven"
          },
          {
            "name": "org.bsc.langgraph4j:langgraph4j-studio",
            "direct": true,
            "version": "1.8.15",
            "ecosystem": "maven"
          },
          {
            "name": "org.bsc.langgraph4j:langgraph4j-studio",
            "direct": true,
            "version": "1.8.17",
            "ecosystem": "maven"
          },
          {
            "name": "org.bsc.langgraph4j:langgraph4j-studio-jetty",
            "direct": true,
            "version": "1.8.17",
            "ecosystem": "maven"
          },
          {
            "name": "org.bsc.langgraph4j:langgraph4j-studio-quarkus",
            "direct": true,
            "version": "1.8.17",
            "ecosystem": "maven"
          },
          {
            "name": "org.bsc.langgraph4j:langgraph4j-studio-springboot",
            "direct": true,
            "version": "1.8.17",
            "ecosystem": "maven"
          },
          {
            "name": "org.junit:junit-bom",
            "direct": true,
            "version": "5.11.0",
            "ecosystem": "maven"
          },
          {
            "name": "org.postgresql:postgresql",
            "direct": true,
            "version": "42.7.7",
            "ecosystem": "maven"
          },
          {
            "name": "org.redisson:redisson",
            "direct": true,
            "version": "3.22.0",
            "ecosystem": "maven"
          },
          {
            "name": "org.slf4j:slf4j-api",
            "direct": true,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.slf4j:slf4j-api",
            "direct": true,
            "version": "2.0.9",
            "ecosystem": "maven"
          },
          {
            "name": "org.slf4j:slf4j-jdk14",
            "direct": true,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.slf4j:slf4j-jdk14",
            "direct": true,
            "version": "2.0.9",
            "ecosystem": "maven"
          },
          {
            "name": "org.testcontainers:testcontainers-bom",
            "direct": true,
            "version": "1.21.3",
            "ecosystem": "maven"
          },
          {
            "name": "software.amazon.awssdk:dynamodb",
            "direct": true,
            "version": "2.27.21",
            "ecosystem": "maven"
          },
          {
            "name": "software.amazon.awssdk:url-connection-client",
            "direct": true,
            "version": "2.27.21",
            "ecosystem": "maven"
          },
          {
            "name": "com.fasterxml.jackson.module:jackson-module-jsonSchema",
            "direct": false,
            "version": "2.17.2",
            "ecosystem": "maven"
          },
          {
            "name": "com.github.victools:jsonschema-generator",
            "direct": false,
            "version": "4.36.0",
            "ecosystem": "maven"
          },
          {
            "name": "com.google.code.gson:gson",
            "direct": false,
            "version": "2.10.1",
            "ecosystem": "maven"
          },
          {
            "name": "dev.langchain4j:langchain4j-azure-open-ai",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "dev.langchain4j:langchain4j-bom",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "dev.langchain4j:langchain4j-google-ai-gemini",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "dev.langchain4j:langchain4j-skills",
            "direct": false,
            "version": "1.12.1-beta21",
            "ecosystem": "maven"
          },
          {
            "name": "io.quarkus.platform:quarkus-bom",
            "direct": false,
            "version": "3.18.3",
            "ecosystem": "maven"
          },
          {
            "name": "io.quarkus.platform:quarkus-maven-plugin",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "io.quarkus:quarkus-arc",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "io.quarkus:quarkus-junit5",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "io.quarkus:quarkus-rest",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "io.quarkus:quarkus-rest-jackson",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "io.quarkus:quarkus-undertow",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "io.rest-assured:rest-assured",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "jakarta.servlet:jakarta.servlet-api",
            "direct": false,
            "version": "6.1.0",
            "ecosystem": "maven"
          },
          {
            "name": "org.apache.maven.plugins:maven-compiler-plugin",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.apache.maven.plugins:maven-compiler-plugin",
            "direct": false,
            "version": "3.13.0",
            "ecosystem": "maven"
          },
          {
            "name": "org.apache.maven.plugins:maven-deploy-plugin",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.apache.maven.plugins:maven-deploy-plugin",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "maven"
          },
          {
            "name": "org.apache.maven.plugins:maven-deploy-plugin",
            "direct": false,
            "version": "3.1.3",
            "ecosystem": "maven"
          },
          {
            "name": "org.apache.maven.plugins:maven-gpg-plugin",
            "direct": false,
            "version": "3.2.4",
            "ecosystem": "maven"
          },
          {
            "name": "org.apache.maven.plugins:maven-jar-plugin",
            "direct": false,
            "version": "3.3.0",
            "ecosystem": "maven"
          },
          {
            "name": "org.apache.maven.plugins:maven-javadoc-plugin",
            "direct": false,
            "version": "3.11.2",
            "ecosystem": "maven"
          },
          {
            "name": "org.apache.maven.plugins:maven-site-plugin",
            "direct": false,
            "version": "4.0.0-M14",
            "ecosystem": "maven"
          },
          {
            "name": "org.apache.maven.plugins:maven-surefire-plugin",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.apache.maven.plugins:maven-surefire-plugin",
            "direct": false,
            "version": "3.2.5",
            "ecosystem": "maven"
          },
          {
            "name": "org.apache.maven.plugins:maven-war-plugin",
            "direct": false,
            "version": "3.4.0",
            "ecosystem": "maven"
          },
          {
            "name": "org.codehaus.mojo:build-helper-maven-plugin",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "maven"
          },
          {
            "name": "org.codehaus.mojo:exec-maven-plugin",
            "direct": false,
            "version": "3.3.0",
            "ecosystem": "maven"
          },
          {
            "name": "org.codehaus.mojo:flatten-maven-plugin",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.eclipse.jetty.ee10:jetty-ee10-servlet",
            "direct": false,
            "version": "12.0.12",
            "ecosystem": "maven"
          },
          {
            "name": "org.eclipse.jetty:jetty-server",
            "direct": false,
            "version": "12.0.12",
            "ecosystem": "maven"
          },
          {
            "name": "org.junit.jupiter:junit-jupiter",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.junit.jupiter:junit-jupiter-params",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.junit.platform:junit-platform-launcher",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.junit.vintage:junit-vintage-engine",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.sonatype.central:central-publishing-maven-plugin",
            "direct": false,
            "version": "0.8.0",
            "ecosystem": "maven"
          },
          {
            "name": "org.springaicommunity:spring-ai-agent-utils",
            "direct": false,
            "version": "0.6.0",
            "ecosystem": "maven"
          },
          {
            "name": "org.springframework.ai:spring-ai-azure-openai",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.springframework.ai:spring-ai-bom",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.springframework.ai:spring-ai-client-chat",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.springframework.ai:spring-ai-commons",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.springframework.ai:spring-ai-google-genai",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.springframework.ai:spring-ai-model",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.springframework.ai:spring-ai-ollama",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.springframework.ai:spring-ai-openai",
            "direct": false,
            "version": null,
            "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": "3.5.4",
            "ecosystem": "maven"
          },
          {
            "name": "org.springframework.boot:spring-boot-starter-parent",
            "direct": false,
            "version": "3.4.2",
            "ecosystem": "maven"
          },
          {
            "name": "org.springframework.boot:spring-boot-starter-parent",
            "direct": false,
            "version": "4.1.0-M4",
            "ecosystem": "maven"
          },
          {
            "name": "org.springframework.boot:spring-boot-starter-test",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.springframework.boot:spring-boot-starter-web",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.testcontainers:cockroachdb",
            "direct": false,
            "version": "1.21.3",
            "ecosystem": "maven"
          },
          {
            "name": "org.testcontainers:junit-jupiter",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.testcontainers:mysql",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.testcontainers:oracle-free",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "org.testcontainers:postgresql",
            "direct": false,
            "version": "1.21.3",
            "ecosystem": "maven"
          },
          {
            "name": "org.testcontainers:testcontainers",
            "direct": false,
            "version": null,
            "ecosystem": "maven"
          },
          {
            "name": "@alenaksu/json-viewer",
            "direct": false,
            "version": "^2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "@lit/task",
            "direct": false,
            "version": "^1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "@microlink/react-json-view",
            "direct": false,
            "version": "^1.27.0",
            "ecosystem": "npm"
          },
          {
            "name": "@types/bun",
            "direct": false,
            "version": "^1.1.14",
            "ecosystem": "npm"
          },
          {
            "name": "@types/d3",
            "direct": false,
            "version": "^7.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/node",
            "direct": false,
            "version": "^20.14.10",
            "ecosystem": "npm"
          },
          {
            "name": "@types/react",
            "direct": false,
            "version": "^18.3.12",
            "ecosystem": "npm"
          },
          {
            "name": "@types/react-dom",
            "direct": false,
            "version": "^18.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "autoprefixer",
            "direct": false,
            "version": "^10.4.20",
            "ecosystem": "npm"
          },
          {
            "name": "crypto-browserify",
            "direct": false,
            "version": "^3.12.1",
            "ecosystem": "npm"
          },
          {
            "name": "daisyui",
            "direct": false,
            "version": "^4.12.14",
            "ecosystem": "npm"
          },
          {
            "name": "lit",
            "direct": false,
            "version": "^3.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "mermaid",
            "direct": false,
            "version": "10.9.3",
            "ecosystem": "npm"
          },
          {
            "name": "parcel",
            "direct": false,
            "version": "^2.13.2",
            "ecosystem": "npm"
          },
          {
            "name": "postcss",
            "direct": false,
            "version": "^8.4.49",
            "ecosystem": "npm"
          },
          {
            "name": "svgo",
            "direct": false,
            "version": "^3.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "tailwindcss",
            "direct": false,
            "version": "^3.4.15",
            "ecosystem": "npm"
          },
          {
            "name": "typescript",
            "direct": false,
            "version": "^5.5.4",
            "ecosystem": "npm"
          }
        ],
        "collected": true,
        "truncated": false,
        "total_count": 131,
        "direct_count": 54,
        "indirect_count": 77
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 0,
        "merged_prs": 43,
        "open_issues": 24,
        "closed_ratio": 0.911,
        "closed_issues": 245,
        "closed_unmerged_prs": 31
      },
      "bus_factor": 1,
      "bot_contributors": 1,
      "top_contributors": [
        {
          "type": "User",
          "login": "bsorrentino",
          "commits": 3486,
          "avatar_url": "https://avatars.githubusercontent.com/u/301596?v=4"
        },
        {
          "type": "User",
          "login": "hongling-dev",
          "commits": 13,
          "avatar_url": "https://avatars.githubusercontent.com/u/28445132?v=4"
        },
        {
          "type": "User",
          "login": "however-yir",
          "commits": 11,
          "avatar_url": "https://avatars.githubusercontent.com/u/192181740?v=4"
        },
        {
          "type": "User",
          "login": "Lucas-Yu-Chen",
          "commits": 9,
          "avatar_url": "https://avatars.githubusercontent.com/u/25530498?v=4"
        },
        {
          "type": "User",
          "login": "psilberk",
          "commits": 6,
          "avatar_url": "https://avatars.githubusercontent.com/u/47338417?v=4"
        },
        {
          "type": "User",
          "login": "arodionov",
          "commits": 5,
          "avatar_url": "https://avatars.githubusercontent.com/u/1538227?v=4"
        },
        {
          "type": "User",
          "login": "helloHuiW",
          "commits": 5,
          "avatar_url": "https://avatars.githubusercontent.com/u/19246225?v=4"
        },
        {
          "type": "User",
          "login": "fmeheust",
          "commits": 4,
          "avatar_url": "https://avatars.githubusercontent.com/u/116098254?v=4"
        },
        {
          "type": "User",
          "login": "PeatBoy",
          "commits": 4,
          "avatar_url": "https://avatars.githubusercontent.com/u/64261406?v=4"
        },
        {
          "type": "User",
          "login": "sushantrawat4-sketch",
          "commits": 4,
          "avatar_url": "https://avatars.githubusercontent.com/u/226963985?v=4"
        }
      ],
      "contributors_sampled": 25,
      "top_contributor_share": 0.977
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "baseline-ci.yml",
        "deploy-docs.yml",
        "deploy-site.yml",
        "deploy-snapshot.yaml",
        "deploy.yaml"
      ],
      "has_docs_dir": false,
      "linter_configs": [],
      "has_editorconfig": false,
      "has_linter_config": false,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 10,
            "reason": "no binaries found in the repo",
            "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": 0,
            "reason": "0 out of 1 merged PRs checked by a CI test -- score normalized to 0",
            "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 1/26 approved changesets -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 10,
            "reason": "project has 13 contributing companies or organizations",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": 10,
            "reason": "no dangerous workflow patterns detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 0,
            "reason": "no 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 24 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": null,
            "reason": "packaging workflow not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": 0,
            "reason": "dependency not pinned by hash detected -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 0,
            "reason": "SAST tool is not run on all commits -- score normalized to 0",
            "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": null,
            "reason": "no releases found",
            "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": 0,
            "reason": "15 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "7023d0dda0a61b372132418d49b916c9ff98ad98",
        "ran_at": "2026-07-25T10:06:26Z",
        "aggregate_score": 3.2,
        "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-06-30T09:11:33Z",
      "oldest_open_prs": [],
      "last_merged_pr_at": "2026-06-27T18:01:10Z",
      "ci_last_conclusion": null,
      "oldest_open_issues": [
        {
          "number": 8,
          "created_at": "2024-07-03T13:28:47Z",
          "last_comment_at": "2025-05-07T18:24:05Z",
          "last_comment_author": "bsorrentino"
        },
        {
          "number": 48,
          "created_at": "2024-11-18T07:48:10Z",
          "last_comment_at": "2024-11-21T11:09:29Z",
          "last_comment_author": "bsorrentino"
        },
        {
          "number": 116,
          "created_at": "2025-04-29T06:43:35Z",
          "last_comment_at": "2025-04-29T15:45:49Z",
          "last_comment_author": "bsorrentino"
        },
        {
          "number": 118,
          "created_at": "2025-04-30T08:24:12Z",
          "last_comment_at": "2025-05-06T22:57:20Z",
          "last_comment_author": "bsorrentino"
        },
        {
          "number": 126,
          "created_at": "2025-05-11T08:53:43Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 127,
          "created_at": "2025-05-11T11:36:48Z",
          "last_comment_at": "2025-05-12T08:46:55Z",
          "last_comment_author": "bsorrentino"
        },
        {
          "number": 141,
          "created_at": "2025-05-18T02:16:28Z",
          "last_comment_at": "2025-05-22T06:04:46Z",
          "last_comment_author": "bsorrentino"
        },
        {
          "number": 147,
          "created_at": "2025-05-23T09:00:51Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 157,
          "created_at": "2025-06-06T10:58:31Z",
          "last_comment_at": "2025-09-10T09:28:42Z",
          "last_comment_author": "bsorrentino"
        },
        {
          "number": 234,
          "created_at": "2025-09-10T10:37:31Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 275,
          "created_at": "2025-11-07T04:33:43Z",
          "last_comment_at": "2025-11-07T09:16:16Z",
          "last_comment_author": "bsorrentino"
        },
        {
          "number": 306,
          "created_at": "2026-01-04T11:45:27Z",
          "last_comment_at": "2026-02-20T23:10:03Z",
          "last_comment_author": "bsorrentino"
        },
        {
          "number": 320,
          "created_at": "2026-01-22T16:35:42Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 321,
          "created_at": "2026-01-22T23:11:16Z",
          "last_comment_at": "2026-04-14T14:28:19Z",
          "last_comment_author": "bsorrentino"
        },
        {
          "number": 386,
          "created_at": "2026-04-19T20:18:59Z",
          "last_comment_at": "2026-06-24T14:41:08Z",
          "last_comment_author": "bsorrentino"
        },
        {
          "number": 391,
          "created_at": "2026-04-29T17:05:38Z",
          "last_comment_at": "2026-05-05T14:00:33Z",
          "last_comment_author": "poeylizn"
        },
        {
          "number": 401,
          "created_at": "2026-05-14T07:02:51Z",
          "last_comment_at": "2026-05-15T10:41:19Z",
          "last_comment_author": "bsorrentino"
        },
        {
          "number": 407,
          "created_at": "2026-05-29T10:53:22Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 411,
          "created_at": "2026-06-17T01:38:50Z",
          "last_comment_at": "2026-06-17T16:20:20Z",
          "last_comment_author": "bsorrentino"
        },
        {
          "number": 412,
          "created_at": "2026-06-18T08:07:03Z",
          "last_comment_at": "2026-06-22T20:48:22Z",
          "last_comment_author": "bsorrentino"
        }
      ]
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/langgraph4j/langgraph4j",
    "host": "github.com",
    "name": "langgraph4j",
    "owner": "langgraph4j"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "moderate",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 67,
      "inputs": {
        "security": 43,
        "vitality": 98,
        "community": 67,
        "governance": 60,
        "engineering": 59
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "excellent",
        "name": "Vitality",
        "value": 98,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "excellent",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 97,
            "inputs": {
              "commits_last_year": 1417,
              "human_commit_share": 1,
              "days_since_last_push": 3,
              "active_weeks_last_year": 48
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 3 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 3
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "48/52 weeks with commits",
                "points": 33.2,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 48
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "1417 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 1417
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "30 commit(s) and 24 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": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "releases_count": 100,
              "latest_release_tag": "v1.9.0-beta1",
              "releases_from_tags": false,
              "days_since_latest_release": 7,
              "mean_days_between_releases": 10.5
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "100 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 100
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 7 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 7
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~10.5 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 10.5
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "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": 25,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "last human commit 25 days ago",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_maintained",
                    "params": {
                      "days": 25
                    }
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "moderate",
        "name": "Community & Adoption",
        "value": 67,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "good",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 81,
            "inputs": {
              "forks": 247,
              "stars": 1844,
              "watchers": 28,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "1,844 stars",
                "points": 53,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 1844
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "247 forks",
                "points": 19.9,
                "status": "partial",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 247
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "28 watchers",
                "points": 8,
                "status": "partial",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 28
                    }
                  }
                ],
                "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 (MIT)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "MIT"
                    }
                  }
                ],
                "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
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "moderate",
        "name": "Sustainability & Governance",
        "value": 60,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "at_risk",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 33,
            "inputs": {
              "bus_factor": 1,
              "contributors_sampled": 25,
              "top_contributor_share": 0.977
            },
            "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 98% of commits",
                "points": 0.5,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 98
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "25 contributors",
                "points": 13.5,
                "status": "met",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 25
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 13 contributing companies or organizations",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "moderate",
            "name": "Issue & PR responsiveness",
            "note": null,
            "notes": [],
            "value": 65,
            "inputs": {
              "merged_prs": 43,
              "open_issues": 24,
              "closed_issues": 245,
              "issue_closed_ratio": 0.911,
              "closed_unmerged_prs": 31
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "91% of issues closed",
                "points": 42.6,
                "status": "partial",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 91
                    }
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "43/74 decided PRs merged",
                "points": 22.2,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 43,
                      "decided": 74
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 1/26 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "moderate",
            "name": "Ownership & stewardship",
            "note": null,
            "notes": [],
            "value": 55,
            "inputs": {
              "followers": 78,
              "owner_type": "Organization",
              "is_verified": null,
              "owner_login": "langgraph4j",
              "public_repos": 17,
              "account_age_days": 434
            },
            "components": [
              {
                "key": "ownership_backing",
                "name": "Ownership backing",
                "detail": "organization-owned",
                "points": 30,
                "status": "met",
                "details": [
                  {
                    "code": "owner_organization",
                    "params": {}
                  }
                ],
                "max_points": 30
              },
              {
                "key": "verified_domain",
                "name": "Verified domain",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "owner_reach",
                "name": "Owner reach",
                "detail": "78 followers of langgraph4j",
                "points": 13.6,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 78,
                      "login": "langgraph4j"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "17 public repos, account ~1 yr old",
                "points": 11.5,
                "status": "partial",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 17
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 1
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "excellent",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "org.bsc.langgraph4j:langgraph4j-howtos",
                "org.bsc.langgraph4j:langgraph4j-javelit",
                "org.bsc.langgraph4j:langgraph4j-core",
                "org.bsc.langgraph4j:langgraph4j-mysql-saver",
                "org.bsc.langgraph4j:langgraph4j-redis-saver",
                "org.bsc.langgraph4j:langgraph4j-oracle-saver",
                "org.bsc.langgraph4j:langgraph4j-opentelemetry",
                "org.bsc.langgraph4j:langgraph4j-dynamodb-saver"
              ],
              "ecosystems": "maven",
              "any_deprecated": false,
              "min_days_since_publish": 7
            },
            "components": [
              {
                "key": "published_resolvable",
                "name": "Published & resolvable",
                "detail": "8 package(s) on maven",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "packages_published",
                    "params": {
                      "count": 8,
                      "ecosystems": "maven"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "publish_recency",
                "name": "Publish recency",
                "detail": "latest publish 7 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 7
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "97 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 97
                    }
                  }
                ],
                "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": "moderate",
        "name": "Engineering Quality",
        "value": 59,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "at_risk",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 48,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": false,
              "has_linter_config": false,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "5 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 5
                    }
                  }
                ],
                "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": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "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": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "0 out of 1 merged PRs checked by a CI test -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "good",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 75,
            "inputs": {
              "topics": [
                "agents",
                "langchain4j",
                "ai",
                "spring-ai",
                "workflow",
                "langgraph"
              ],
              "has_wiki": true,
              "homepage": "https://langgraph4j.github.io/langgraph4j/",
              "has_readme": true,
              "has_docs_dir": false,
              "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": 0,
                "status": "missed",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": "https://langgraph4j.github.io/langgraph4j/",
                "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": 43,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "at_risk",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Packaging, Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "packaging",
                    "signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 32,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 16,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 2,
              "scorecard_aggregate": 3.2
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "no binaries found in the repo",
                "points": 7.5,
                "status": "met",
                "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": "0 out of 1 merged PRs checked by a CI test -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "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 1/26 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 13 contributing companies or organizations",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no dangerous workflow patterns detected",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "no update tool detected",
                "points": 0,
                "status": "missed",
                "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 24 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 not detected",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "SAST tool is not run on all commits -- score normalized to 0",
                "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": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "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": "15 existing vulnerabilities detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "dependency_advisories",
            "band": "excellent",
            "name": "Dependency advisories",
            "note": "Matched the maven:org.bsc.langgraph4j:langgraph4j-howtos@1.9.0-beta1 runtime dependency closure — what installing the published package pulls in — 34 packages. Reachability is not analyzed.",
            "notes": [
              {
                "code": "advisories_scope_published",
                "params": {
                  "package": "maven:org.bsc.langgraph4j:langgraph4j-howtos@1.9.0-beta1",
                  "assessed": 34
                }
              },
              {
                "code": "advisories_reachability",
                "params": {}
              }
            ],
            "value": 87,
            "inputs": {
              "source": "osv",
              "advisories": 3,
              "affected_packages": 1,
              "assessed_packages": 34,
              "unassessed_packages": 0,
              "affected_by_severity": "moderate 1",
              "direct_affected_packages": 0
            },
            "components": [
              {
                "key": "direct_dependencies_free_of_known_advisories",
                "name": "Direct dependencies free of known advisories",
                "detail": "no direct dependency carries a known advisory",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "no_direct_advisories",
                    "params": {}
                  }
                ],
                "max_points": 35
              },
              {
                "key": "indirect_dependencies_free_of_known_advisories",
                "name": "Indirect dependencies free of known advisories",
                "detail": "1 affected: com.fasterxml.jackson.core:jackson-databind 2.21.4 (moderate 6.5)",
                "points": 12,
                "status": "partial",
                "details": [
                  {
                    "code": "advisories_affected",
                    "params": {
                      "count": 1,
                      "packages": "com.fasterxml.jackson.core:jackson-databind 2.21.4 (moderate 6.5)"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "no_advisories_left_outstanding",
                "name": "No advisories left outstanding",
                "detail": "no advisory has been public longer than 90 days",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "advisories_none_stale",
                    "params": {
                      "days": 90
                    }
                  }
                ],
                "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": 34,
              "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": 12
            },
            "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": "moderate",
        "name": "AI Readiness",
        "value": 69,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "good",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 77,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 0.6,
              "agent_instruction_files": [
                "AGENT.md",
                "src/site/mkdocs/GEMINI.md"
              ],
              "agent_instruction_max_bytes": 2144
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "AGENT.md, src/site/mkdocs/GEMINI.md",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "AGENT.md, src/site/mkdocs/GEMINI.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": "60 of 100 human commits state their intent (structured subject or explanatory body)",
                "points": 32,
                "status": "partial",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 60,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "moderate",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 56,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [],
              "has_dockerfile": true,
              "typed_language": true,
              "bootstrap_files": [],
              "has_devcontainer": false,
              "has_linter_config": false,
              "typecheck_configs": [
                "studio/webui/tsconfig.json"
              ],
              "agent_commit_share": 0,
              "toolchain_manifests": [
                "how-tos/pom.xml",
                "javelit/pom.xml",
                "langchain4j/langchain4j-agent/pom.xml",
                "langchain4j/langchain4j-core/pom.xml",
                "langgraph4j-bom/pom.xml",
                "langgraph4j-cockroachdb-saver/pom.xml",
                "langgraph4j-core/pom.xml",
                "langgraph4j-dynamodb-saver/pom.xml",
                "langgraph4j-hazelcast-saver/pom.xml",
                "langgraph4j-mysql-saver/pom.xml",
                "langgraph4j-opentelemetry/pom.xml",
                "langgraph4j-oracle-saver/pom.xml",
                "langgraph4j-postgres-saver/pom.xml",
                "langgraph4j-redis-saver/pom.xml",
                "pom.xml",
                "spring-ai/spring-ai-agent-archetype/pom.xml",
                "spring-ai/spring-ai-agent-archetype/src/main/resources/archetype-resources/pom.xml",
                "spring-ai/spring-ai-agent/pom.xml",
                "spring-ai/spring-ai-core/pom.xml",
                "studio/base/pom.xml",
                "studio/jetty/pom.xml",
                "studio/quarkus/pom.xml",
                "studio/springboot/pom.xml"
              ],
              "dependency_bot_commit_share": 0
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": "how-tos/pom.xml, javelit/pom.xml, langchain4j/langchain4j-agent/pom.xml (toolchain convention, no task runner)",
                "points": 12.6,
                "status": "partial",
                "details": [
                  {
                    "code": "toolchain_convention",
                    "params": {
                      "files": "how-tos/pom.xml, javelit/pom.xml, langchain4j/langchain4j-agent/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": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": "studio/webui/tsconfig.json",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "studio/webui/tsconfig.json"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": "Dockerfile",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "Dockerfile"
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "no agent-authored commits among the last 100",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_agent_authored_commits",
                    "params": {
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "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 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "excellent",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 97,
            "inputs": {
              "primary_language": "Java",
              "largest_source_bytes": 1460316,
              "source_files_sampled": 453,
              "oversized_source_files": 28
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "Java (statically typed)",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "Java"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "28/453 source files over 60KB",
                "points": 51.6,
                "status": "partial",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 453,
                      "oversized": 28
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          },
          {
            "key": "ai_interfaces",
            "band": "moderate",
            "name": "Machine-readable interfaces",
            "note": null,
            "notes": [],
            "value": 60,
            "inputs": {
              "example_dirs": [
                "notebooks",
                "samples"
              ],
              "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": "notebooks, samples",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "notebooks, samples"
                    }
                  }
                ],
                "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"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-25T10:06:47.706855Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/l/langgraph4j/langgraph4j.svg",
  "full_name": "langgraph4j/langgraph4j",
  "license_state": "standard",
  "license_spdx": "MIT"
}

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

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

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