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

kdeps / kdeps

Run AI workflows locally. Or deploy them anywhere. AI agent framework in YAML — workflow pipelines + autonomous agent loop. NVIDIA Inception member. Build, deploy, export as Docker/K8s/ISO.

GoApache-2.0★ 35 зірок⑂ 5 форківз серп. 2024 р.Переглянути на GitHub ↗

kdeps/kdeps має індекс здоров’я 67 зі 100, що відповідає смузі «Помірний». Найвищий показник — Vitality (89/100), найнижчий — Community & Adoption (49/100). Останнє оновлення — сьогодні. Більшість нещодавньої роботи виконує один учасник.

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

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

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

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

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

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

Власність

kdepsОрганізація
6 підписників11 публічних репозиторіївз трав. 2024 р.

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

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

РеєстрПакетВерсіяЗавантажень / місВерсіїОстання публікація
Gogithub.com/kdeps/kdeps/v2v2.1.2-1080 днів тому

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

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

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

89Відмінний · 22% загального індексу
Як обчислюється оцінка
36/36Свіжість push — останній push 0 дн. тому
24.2/36Ритм комітів — 35/52 тижнів із комітами
18/18Обсяг комітів — 1 953 комітів за останній рік
10/10OpenSSF Scorecard: Maintained — 30 commit(s) and 30 issue activity found in the last 90 days -- score normalized to 10
Використані вхідні дані
commits_last_year1 953
human_commit_share0,92
days_since_last_push0
active_weeks_last_year35
Як обчислюється оцінка
27/27Випускає релізи — опубліковано 100 релізів
36/36Свіжість релізів — останній реліз 0 дн. тому
27/27Ритм релізів — реліз кожні ~0,8 дн.
0/10OpenSSF Scorecard: Signed-Releases — Project has not signed or included provenance with any releases.
Використані вхідні дані
releases_count100
latest_release_tagv2.1.2-nightly202607240533
releases_from_tagsні
days_since_latest_release0
mean_days_between_releases0,8

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

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

49У зоні ризику · 18% загального індексу
Як обчислюється оцінка
24.8/60Зірки — 35 зірок
5/25Форки — 5 форків
0/15Спостерігачі — 1 спостерігачів
Використані вхідні дані
forks5
stars35
watchers1
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
Як обчислюється оцінка
22.5/22.5README
22.5/22.5Ліцензія — визнана ліцензія (Apache-2.0)
18/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ні

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

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

57Помірний · 24% загального індексу
Як обчислюється оцінка
9/54Бас-фактор — на 1 контриб’ютор(ів) припадає половина всіх комітів
0/22.5Розподіл комітів — головний контриб’ютор — автор 100% комітів
1.4/13.5Широта контриб’юторів — 1 контриб’юторів
6/10OpenSSF Scorecard: Contributors — project has 2 contributing companies or organizations -- score normalized to 6
Використані вхідні дані
bus_factor1
contributors_sampled1
top_contributor_share1
Як обчислюється оцінка
45.4/46.8Вирішення issue — закрито 97% issue
33.8/38.3Прийняття PR — злито 220/249 вирішених PR
0/15OpenSSF Scorecard: Code-Review — Found 0/30 approved changesets -- score normalized to 0
Використані вхідні дані
merged_prs220
open_issues11
closed_issues378
issue_closed_ratio0,972
closed_unmerged_prs29

Власність та опіка

48У зоні ризику
Як обчислюється оцінка
30/30Підтримка власника — у власності організації
0/20Верифікований домен
6.1/25Охоплення власника — 6 підписників у kdeps
12.2/25Послужний список — 11 публічних репозиторіїв, вік облікового запису ~2 р.
Використані вхідні дані
followers6
owner_typeOrganization
is_verified
owner_loginkdeps
public_repos11
account_age_days790

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

100Відмінний
Як обчислюється оцінка
25/25Опубліковано й доступно — 1 пакет(ів) у go
35/35Свіжість публікацій — остання публікація 0 дн. тому
20/20Історія версій — 108 опублікованих версій
20/20Не застарілий — активний, не deprecated і не yanked
Використані вхідні дані
packagesgithub.com/kdeps/kdeps/v2
ecosystemsgo
any_deprecatedні
min_days_since_publish0

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

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

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

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

90Відмінний
Як обчислюється оцінка
30/30README
25/25Каталог документації
15/15Сайт документації / домашня сторінка — https://kdeps.com
10/10Опис репозиторію
10/10Теми — 10 тем
0/10Wiki
Використані вхідні дані
topicsagent, llms, workflow, yaml, orchestration, ai, llamafile, nvidia, agentic, gguf
has_wikiні
homepagehttps://kdeps.com
has_readmeтак
has_docs_dirтак
has_descriptionтак

Безпека

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

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

Стан безпеки

52Помірний
Як обчислюється оцінка
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/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
0/7.5Code-Review — Found 0/30 approved changesets -- score normalized to 0
1.5/2.5Contributors — project has 2 contributing companies or organizations -- score normalized to 6
10/10Dangerous-Workflow — no dangerous workflow patterns detected
7.5/7.5Dependency-Update-Tool — update tool detected
0/5Fuzzing — project is not fuzzed
2.5/2.5Ліцензія — license file detected
7.5/7.5Maintained — 30 commit(s) and 30 issue activity found in the last 90 days -- score normalized to 10
5/5Packaging — packaging workflow detected
0/5Pinned-Dependencies — немає даних
5/5SAST — SAST tool detected: CodeQL
2/5Security-Policy — security policy file detected
0/7.5Signed-Releases — Project has not signed or included provenance with any releases.
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
2.2/7.5Vulnerabilities — 7 existing vulnerabilities detected
Використані вхідні дані
sourceopenssf_scorecard
checks_evaluated16
scorecard_versionv5.5.0
checks_inconclusive2
scorecard_aggregate5,2
Виключено з оцінювання (немає даних або не застосовно): ci_tests, pinned_dependencies. Залишкові ваги перенормовано.
Як обчислюється оцінка
10.4/35Прямі залежності без відомих сповіщень — уражено 1: github.com/docker/docker v28.5.2+incompatible (high 8.8)
0/25Непрямі залежності без відомих сповіщень — транзитивний набір не відокремлюється від залежностей розробки й тестування в цьому обсязі
32.8/40Немає задавнених сповіщень — 1 пакет(ів) зі сповіщеннями без реакції понад 90 дн.; найдавніше опубліковано 118 дн. тому
Використані вхідні дані
sourceosv
advisories12
affected_packages3
assessed_packages465
unassessed_packages0
affected_by_severitycritical 1, high 1, unknown 1
direct_affected_packages1
Виключено з оцінювання (немає даних або не застосовно): Непрямі залежності без відомих сповіщень. Залишкові ваги перенормовано. Звірено 465 резолвлених залежностей із OSV. Цей репозиторій не публікує пакета, який резолвить індекс, тож натомість оцінено граф залежностей репозиторію. Цей граф змішує закріплені версії для розробки й тестування зі справді постачаними залежностями, тож оцінюються лише задекларовані runtime-залежності; транзитивні знахідки подаються як контекст і в оцінку не входять. Досяжність не аналізується.

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

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

73Добрий · 0% загального індексу
Як обчислюється оцінка
0/45Інструкції для агентів — немає CLAUDE.md / AGENTS.md / правил редактора
0/15Машиночитана документація (llms.txt)
40/40Читабельна історія комітів — намір зазначено у 91 з 92 людських комітів (структурований заголовок або пояснювальний текст)
Використані вхідні дані
has_llms_txtні
legible_history_share0,989
agent_instruction_files
agent_instruction_max_bytes
Як обчислюється оцінка
18/18Розгортання однією командою — Makefile
22/22Автоматизовані тести
11/11Конфігурація лінтера / форматера — .golangci.yml
11/11Статична перевірка типів — Go (статично типізована)
10/10Відтворюване середовище — Dockerfile, lockfile
10/10Підтверджена практика роботи з агентами — 85 з останніх 100 комітів створено агентом або з його зазначенням
8/8Автоматизоване супроводження — 3 з останніх 100 комітів — автоматичні оновлення залежностей
0/10OpenSSF Scorecard: Pinned-Dependencies — немає даних
Використані вхідні дані
has_nixні
has_testsтак
lockfilesgo.sum, package-lock.json
has_dockerfileтак
typed_languageтак
bootstrap_filesMakefile
has_devcontainerні
has_linter_configтак
typecheck_configs
agent_commit_share0,85
toolchain_manifestsgo.mod
dependency_bot_commit_share0,03
Виключено з оцінювання (немає даних або не застосовно): OpenSSF Scorecard: Pinned-Dependencies. Залишкові ваги перенормовано.
Як обчислюється оцінка
45/45Типізований код — Go (статично типізована)
54.2/55Керовані розміри файлів — 21/1 524 файлів вихідного коду понад 60 КБ
Використані вхідні дані
primary_languageGo
largest_source_bytes179 778
source_files_sampled1 524
oversized_source_files21
Як обчислюється оцінка
0/40Схема API (OpenAPI/GraphQL/proto)
0/20Сервер MCP
40/40Придатні до запуску приклади — examples
Використані вхідні дані
example_dirsexamples
has_mcp_signalні
api_schema_files

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

35зірок GitHub
1контриб'юторів
1 953комітів за останні 12 місяців
0днів від останнього пушу
100релізів
1бас-фактор
11відкритих issue
Go, npmпакетних екосистем

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

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

Докладніше

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

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

12345512025-022025-102026-07
Мажорні 0Мінорні 6Патчі 77

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

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

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

10Binary-Artifactsno binaries found in the repo
0Branch-Protectionbranch protection not enabled on development/release branches
н/дCI-Testsno pull request found
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
0Code-ReviewFound 0/30 approved changesets -- score normalized to 0
6Contributorsproject has 2 contributing companies or organizations -- score normalized to 6
10Dangerous-Workflowno dangerous workflow patterns detected
10Dependency-Update-Toolupdate tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
10Maintained30 commit(s) and 30 issue activity found in the last 90 days -- score normalized to 10
10Packagingpackaging workflow detected
н/дPinned-Dependenciesinternal error: internal error: invalid Dockerfile: Syntax error - can't find = in "{{-". Must be of the form: name=value
10SASTSAST tool detected: CodeQL
4Security-Policysecurity policy file detected
0Signed-ReleasesProject has not signed or included provenance with any releases.
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
3Vulnerabilities7 existing vulnerabilities detected
Прямі залежності 44
РеєстрПакетОбмеження версіїМаніфест
Gogithub.com/DATA-DOG/go-sqlmockv1.5.2go.mod
Gogithub.com/IBM/watsonx-gov1.0.2go.mod
Gogithub.com/PuerkitoBio/goqueryv1.12.0go.mod
Gogithub.com/bwmarrin/discordgov0.29.0go.mod
Gogithub.com/charmbracelet/bubbleteav1.3.10go.mod
Gogithub.com/charmbracelet/glamourv1.0.0go.mod
Gogithub.com/charmbracelet/lipglossv1.1.1-0.20250404203927-76690c660834go.mod
Gogithub.com/charmbracelet/x/ansiv0.11.7go.mod
Gogithub.com/chzyer/readlinev1.5.1go.mod
Gogithub.com/creack/ptyv1.1.24go.mod
Gogithub.com/denisenkom/go-mssqldbv0.12.3go.mod
Gogithub.com/docker/dockerv28.5.2+incompatiblego.mod
Gogithub.com/emersion/go-imap/v2v2.0.0-beta.8go.mod
Gogithub.com/expr-lang/exprv1.17.8go.mod
Gogithub.com/fsnotify/fsnotifyv1.10.1go.mod
Gogithub.com/go-sql-driver/mysqlv1.10.0go.mod
Gogithub.com/go-telegram/botv1.22.0go.mod
Gogithub.com/google/uuidv1.6.0go.mod
Gogithub.com/gorilla/websocketv1.5.3go.mod
Gogithub.com/ledongthuc/pdfv0.0.0-20250511090121-5959a4027728go.mod
Gogithub.com/lib/pqv1.12.3go.mod
Gogithub.com/mattn/go-sqlite3v1.14.48go.mod
Gogithub.com/microcosm-cc/bluemondayv1.0.27go.mod
Gogithub.com/muesli/termenvv0.16.0go.mod
Gogithub.com/nikolalohinski/gonja/v2v2.9.0go.mod
Gogithub.com/pkoukk/tiktoken-gov0.1.8go.mod
Gogithub.com/playwright-community/playwright-gov0.5700.1go.mod
Gogithub.com/robfig/cron/v3v3.0.1go.mod
Gogithub.com/sijms/go-ora/v2v2.9.0go.mod
Gogithub.com/slack-go/slackv0.27.0go.mod
Gogithub.com/spf13/aferov1.15.0go.mod
Gogithub.com/spf13/cobrav1.10.2go.mod
Gogithub.com/spf13/fileflowv0.1.0go.mod
Gogithub.com/spf13/pathologizev1.1.0go.mod
Gogithub.com/stretchr/testifyv1.11.1go.mod
Gogithub.com/tmc/langchaingov0.1.14go.mod
Gogithub.com/xeipuuv/gojsonschemav1.2.0go.mod
Gogo.etcd.io/bboltv1.5.0go.mod
Gogo.mongodb.org/mongo-driverv1.17.9go.mod
Gogolang.org/x/netv0.57.0go.mod
Gogolang.org/x/sysv0.47.0go.mod
Gogolang.org/x/termv0.45.0go.mod
Gogolang.org/x/timev0.15.0go.mod
Gogopkg.in/yaml.v3v3.0.1go.mod
Усі залежності 465

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

РеєстрПакетВерсіяЗв'язок
Gogithub.com/bwmarrin/discordgov0.29.0пряма
Gogithub.com/charmbracelet/bubbleteav1.3.10пряма
Gogithub.com/charmbracelet/glamourv1.0.0пряма
Gogithub.com/charmbracelet/lipglossv1.1.1-0.20250404203927-76690c660834пряма
Gogithub.com/charmbracelet/x/ansiv0.11.7пряма
Gogithub.com/chzyer/readlinev1.5.1пряма
Gogithub.com/creack/ptyv1.1.24пряма
Gogithub.com/data-dog/go-sqlmockv1.5.2пряма
Gogithub.com/denisenkom/go-mssqldbv0.12.3пряма
Gogithub.com/docker/dockerv28.5.2+incompatibleпряма
Gogithub.com/emersion/go-imap/v2v2.0.0-beta.8пряма
Gogithub.com/expr-lang/exprv1.17.8пряма
Gogithub.com/fsnotify/fsnotifyv1.10.1пряма
Gogithub.com/go-sql-driver/mysqlv1.10.0пряма
Gogithub.com/go-telegram/botv1.22.0пряма
Gogithub.com/google/uuidv1.6.0пряма
Gogithub.com/gorilla/websocketv1.5.3пряма
Gogithub.com/ibm/watsonx-gov1.0.2пряма
Gogithub.com/ledongthuc/pdfv0.0.0-20250511090121-5959a4027728пряма
Gogithub.com/lib/pqv1.12.3пряма
Gogithub.com/mattn/go-sqlite3v1.14.48пряма
Gogithub.com/microcosm-cc/bluemondayv1.0.27пряма
Gogithub.com/muesli/termenvv0.16.0пряма
Gogithub.com/nikolalohinski/gonja/v2v2.9.0пряма
Gogithub.com/pkoukk/tiktoken-gov0.1.8пряма
Gogithub.com/playwright-community/playwright-gov0.5700.1пряма
Gogithub.com/puerkitobio/goqueryv1.12.0пряма
Gogithub.com/robfig/cron/v3v3.0.1пряма
Gogithub.com/sijms/go-ora/v2v2.9.0пряма
Gogithub.com/slack-go/slackv0.27.0пряма
Gogithub.com/spf13/aferov1.15.0пряма
Gogithub.com/spf13/cobrav1.10.2пряма
Gogithub.com/spf13/fileflowv0.1.0пряма
Gogithub.com/spf13/pathologizev1.1.0пряма
Gogithub.com/stretchr/testifyv1.11.1пряма
Gogithub.com/tmc/langchaingov0.1.14пряма
Gogithub.com/xeipuuv/gojsonschemav1.2.0пряма
Gogo.etcd.io/bboltv1.5.0пряма
Gogo.mongodb.org/mongo-driverv1.17.9пряма
Gogolang.org/x/netv0.57.0пряма
Gogolang.org/x/sysv0.47.0пряма
Gogolang.org/x/termv0.45.0пряма
Gogolang.org/x/timev0.15.0пряма
Gogopkg.in/yaml.v3v3.0.1пряма
Gocloud.google.com/gov0.123.0непряма
Gocloud.google.com/go/aiv0.7.0непряма
Gocloud.google.com/go/aiplatformv1.125.0непряма
Gocloud.google.com/go/authv0.20.0непряма
Gocloud.google.com/go/auth/oauth2adaptv0.2.8непряма
Gocloud.google.com/go/compute/metadatav0.9.0непряма
Gocloud.google.com/go/iamv1.11.0непряма
Gocloud.google.com/go/longrunningv1.0.0непряма
Gocloud.google.com/go/vertexaiv0.19.0непряма
Gofilippo.io/edwards25519v1.2.0непряма
Gogithub.com/alecthomas/chroma/v2v2.27.0непряма
Gogithub.com/andybalholm/cascadiav1.3.4непряма
Gogithub.com/antchfx/htmlqueryv1.3.6непряма
Gogithub.com/antchfx/xmlqueryv1.5.1непряма
Gogithub.com/antchfx/xpathv1.3.6непряма
Gogithub.com/aws/aws-sdk-go-v2v1.42.0непряма
Gogithub.com/aws/aws-sdk-go-v2/aws/protocol/eventstreamv1.7.13непряма
Gogithub.com/aws/aws-sdk-go-v2/configv1.32.25непряма
Gogithub.com/aws/aws-sdk-go-v2/credentialsv1.19.24непряма
Gogithub.com/aws/aws-sdk-go-v2/feature/ec2/imdsv1.18.29непряма
Gogithub.com/aws/aws-sdk-go-v2/internal/configsourcesv1.4.29непряма
Gogithub.com/aws/aws-sdk-go-v2/internal/endpoints/v2v2.7.29непряма
Gogithub.com/aws/aws-sdk-go-v2/internal/v4av1.4.30непряма
Gogithub.com/aws/aws-sdk-go-v2/service/bedrockagentv1.56.0непряма
Gogithub.com/aws/aws-sdk-go-v2/service/bedrockagentruntimev1.53.0непряма
Gogithub.com/aws/aws-sdk-go-v2/service/bedrockruntimev1.54.0непряма
Gogithub.com/aws/aws-sdk-go-v2/service/internal/accept-encodingv1.13.12непряма
Gogithub.com/aws/aws-sdk-go-v2/service/internal/checksumv1.9.22непряма
Gogithub.com/aws/aws-sdk-go-v2/service/internal/presigned-urlv1.13.29непряма
Gogithub.com/aws/aws-sdk-go-v2/service/internal/s3sharedv1.19.29непряма
Gogithub.com/aws/aws-sdk-go-v2/service/s3v1.104.0непряма
Gogithub.com/aws/aws-sdk-go-v2/service/signinv1.2.0непряма
Gogithub.com/aws/aws-sdk-go-v2/service/ssov1.31.3непряма
Gogithub.com/aws/aws-sdk-go-v2/service/ssooidcv1.36.6непряма
Gogithub.com/aws/aws-sdk-go-v2/service/stsv1.43.3непряма
Gogithub.com/aws/smithy-gov1.27.2непряма
Gogithub.com/aymanbagabas/go-osc52/v2v2.0.1непряма
Gogithub.com/aymanbagabas/go-udiffv0.3.1непряма
Gogithub.com/aymerick/douceurv0.2.0непряма
Gogithub.com/cespare/xxhash/v2v2.3.0непряма
Gogithub.com/charmbracelet/colorprofilev0.4.3непряма
Gogithub.com/charmbracelet/x/cellbufv0.0.15непряма
Gogithub.com/charmbracelet/x/exp/goldenv0.0.0-20241011142426-46044092ad91непряма
Gogithub.com/charmbracelet/x/exp/slicev0.0.0-20260622092256-25656177ba8eнепряма
Gogithub.com/charmbracelet/x/termv0.2.2непряма
Gogithub.com/clipperhouse/displaywidthv0.11.0непряма
Gogithub.com/clipperhouse/uax29/v2v2.7.0непряма
Gogithub.com/containerd/errdefsv1.0.0непряма
Gogithub.com/containerd/errdefs/pkgv0.3.0непряма
Gogithub.com/davecgh/go-spewv1.1.2-0.20180830191138-d8f796af33ccнепряма
Gogithub.com/deckarep/golang-set/v2v2.9.0непряма
Gogithub.com/distribution/referencev0.6.0непряма
Gogithub.com/dlclark/regexp2v1.12.0непряма
Gogithub.com/dlclark/regexp2/v2v2.2.2непряма
Gogithub.com/docker/go-connectionsv0.7.0непряма
Gogithub.com/docker/go-unitsv0.5.0непряма
Gogithub.com/dustin/go-humanizev1.0.1непряма
Gogithub.com/emersion/go-messagev0.18.2непряма
Gogithub.com/emersion/go-saslv0.0.0-20241020182733-b788ff22d5a6непряма
Gogithub.com/erikgeiser/coninputv0.0.0-20211004153227-1c3628e74d0fнепряма
Gogithub.com/felixge/httpsnoopv1.1.0непряма
Gogithub.com/go-jose/go-jose/v3v3.0.5непряма
Gogithub.com/go-logr/logrv1.4.3непряма
Gogithub.com/go-logr/stdrv1.2.2непряма
Gogithub.com/go-stack/stackv1.8.1непряма
Gogithub.com/gobwas/globv0.2.3непряма
Gogithub.com/gocolly/collyv1.2.0непряма
Gogithub.com/golang-sql/civilv0.0.0-20220223132316-b832511892a9непряма
Gogithub.com/golang-sql/sqlexpv0.1.0непряма
Gogithub.com/golang/groupcachev0.0.0-20241129210726-2c02b8208cf8непряма
Gogithub.com/golang/protobufv1.5.4непряма
Gogithub.com/golang/snappyv1.0.0непряма
Gogithub.com/google/flatbuffersv25.12.19+incompatibleнепряма
Gogithub.com/google/generative-ai-gov0.15.1непряма
Gogithub.com/google/go-cmpv0.7.0непряма
Gogithub.com/google/s2a-gov0.1.9непряма
Gogithub.com/googleapis/enterprise-certificate-proxyv0.3.16непряма
Gogithub.com/googleapis/gax-go/v2v2.22.0непряма
Gogithub.com/gorilla/cssv1.0.1непряма
Gogithub.com/inconshreveable/mousetrapv1.1.0непряма
Gogithub.com/json-iterator/gov1.1.12непряма
Gogithub.com/kennygrant/sanitizev1.2.4непряма
Gogithub.com/klauspost/compressv1.18.6непряма
Gogithub.com/klauspost/cpuid/v2v2.3.0непряма
Gogithub.com/lucasb-eyer/go-colorfulv1.4.0непряма
Gogithub.com/mattn/go-colorablev0.1.15непряма
Gogithub.com/mattn/go-isattyv0.0.22непряма
Gogithub.com/mattn/go-localereaderv0.0.1непряма
Gogithub.com/mattn/go-runewidthv0.0.24непряма
Gogithub.com/microsoft/go-winiov0.6.2непряма
Gogithub.com/moby/docker-image-specv1.3.1непряма
Gogithub.com/moby/sys/atomicwriterv0.1.0непряма
Gogithub.com/modern-go/concurrentv0.0.0-20180306012644-bacd9c7ef1ddнепряма
Gogithub.com/modern-go/reflect2v1.0.2непряма
Gogithub.com/montanaflynn/statsv0.9.0непряма
Gogithub.com/morikuni/aecv1.1.0непряма
Gogithub.com/muesli/ansiv0.0.0-20230316100256-276c6243b2f6непряма
Gogithub.com/muesli/cancelreaderv0.2.2непряма
Gogithub.com/muesli/reflowv0.3.0непряма
Gogithub.com/nlpodyssey/cybertronv0.2.1непряма
Gogithub.com/nlpodyssey/gopicklev0.3.0непряма
Gogithub.com/nlpodyssey/gotokenizersv0.2.0непряма
Gogithub.com/nlpodyssey/spagov1.1.0непряма
Gogithub.com/opencontainers/go-digestv1.0.0непряма
Gogithub.com/opencontainers/image-specv1.1.1непряма
Gogithub.com/pkg/errorsv0.9.1непряма
Gogithub.com/pmezard/go-difflibv1.0.1-0.20181226105442-5d4384ee4fb2непряма
Gogithub.com/redis/rueidisv1.0.76непряма
Gogithub.com/rivo/unisegv0.4.7непряма
Gogithub.com/rs/zerologv1.35.1непряма
Gogithub.com/saintfish/chardetv0.0.0-20230101081208-5e3ef4b5456dнепряма
Gogithub.com/sirupsen/logrusv1.9.4непряма
Gogithub.com/spf13/pflagv1.0.10непряма
Gogithub.com/temoto/robotstxtv1.1.2непряма
Gogithub.com/xdg-go/pbkdf2v1.0.0непряма
Gogithub.com/xdg-go/scramv1.2.0непряма
Gogithub.com/xdg-go/stringprepv1.0.4непряма
Gogithub.com/xeipuuv/gojsonpointerv0.0.0-20190905194746-02993c407bfbнепряма
Gogithub.com/xeipuuv/gojsonreferencev0.0.0-20180127040603-bd5ef7bd5415непряма
Gogithub.com/xo/terminfov0.0.0-20220910002029-abceb7e1c41eнепряма
Gogithub.com/youmark/pkcs8v0.0.0-20240726163527-a2c0da244d78непряма
Gogithub.com/yuin/goldmarkv1.8.2непряма
Gogithub.com/yuin/goldmark-emojiv1.0.6непряма
Gogithub.com/zeebo/blake3v0.2.4непряма
Gogitlab.com/golang-commonmark/htmlv0.0.0-20191124015941-a22733972181непряма
Gogitlab.com/golang-commonmark/linkifyv0.0.0-20200225224916-64bca66f6ad3непряма
Gogitlab.com/golang-commonmark/markdownv0.0.0-20211110145824-bf3e522c626aнепряма
Gogitlab.com/golang-commonmark/mdurlv0.0.0-20191124015652-932350d1cb84непряма
Gogitlab.com/golang-commonmark/punyv0.0.0-20191124015043-9f83538fa04fнепряма
Gogo.opentelemetry.io/auto/sdkv1.2.1непряма
Gogo.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpcv0.69.0непряма
Gogo.opentelemetry.io/contrib/instrumentation/net/http/otelhttpv0.69.0непряма
Gogo.opentelemetry.io/otelv1.44.0непряма
Gogo.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttpv1.43.0непряма
Gogo.opentelemetry.io/otel/metricv1.44.0непряма
Gogo.opentelemetry.io/otel/tracev1.44.0непряма
Gogo.starlark.netv0.0.0-20260613233743-8ba36ccb83fbнепряма
Gogo.yaml.in/yaml/v2v2.4.4непряма
Gogolang.org/x/cryptov0.54.0непряма
Gogolang.org/x/expv0.0.0-20260611194520-c48552f49976непряма
Gogolang.org/x/modv0.37.0непряма
Gogolang.org/x/oauth2v0.36.0непряма
Gogolang.org/x/syncv0.22.0непряма
Gogolang.org/x/telemetryv0.0.0-20260625142307-59b4966ccb57непряма
Gogolang.org/x/textv0.40.0непряма
Gogolang.org/x/toolsv0.47.0непряма
Gogolang.org/x/vulnv1.3.0непряма
Gogoogle.golang.org/apiv0.285.0непряма
Gogoogle.golang.org/appenginev1.6.8непряма
Gogoogle.golang.org/genaiv1.61.0непряма
Gogoogle.golang.org/genprotov0.0.0-20260618152121-87f3d3e198d3непряма
Gogoogle.golang.org/genproto/googleapis/apiv0.0.0-20260618152121-87f3d3e198d3непряма
Gogoogle.golang.org/genproto/googleapis/rpcv0.0.0-20260618152121-87f3d3e198d3непряма
Gogoogle.golang.org/grpcv1.81.1непряма
Gogoogle.golang.org/protobufv1.36.11непряма
Gogotest.tools/v3v3.5.2непряма
Gosigs.k8s.io/yamlv1.6.0непряма
npm@algolia/abtesting1.16.2непряма
npm@algolia/abtesting1.20.0непряма
npm@algolia/autocomplete-core1.17.7непряма
npm@algolia/autocomplete-plugin-algolia-insights1.17.7непряма
npm@algolia/autocomplete-preset-algolia1.17.7непряма
npm@algolia/autocomplete-shared1.17.7непряма
npm@algolia/client-abtesting5.50.2непряма
npm@algolia/client-abtesting5.54.0непряма
npm@algolia/client-analytics5.50.2непряма
npm@algolia/client-analytics5.54.0непряма
npm@algolia/client-common5.50.2непряма
npm@algolia/client-common5.54.0непряма
npm@algolia/client-insights5.50.2непряма
npm@algolia/client-insights5.54.0непряма
npm@algolia/client-personalization5.50.2непряма
npm@algolia/client-personalization5.54.0непряма
npm@algolia/client-query-suggestions5.50.2непряма
npm@algolia/client-query-suggestions5.54.0непряма
npm@algolia/client-search5.50.2непряма
npm@algolia/client-search5.54.0непряма
npm@algolia/ingestion1.50.2непряма
npm@algolia/ingestion1.54.0непряма
npm@algolia/monitoring1.50.2непряма
npm@algolia/monitoring1.54.0непряма
npm@algolia/recommend5.50.2непряма
npm@algolia/recommend5.54.0непряма
npm@algolia/requester-browser-xhr5.50.2непряма
npm@algolia/requester-browser-xhr5.54.0непряма
npm@algolia/requester-fetch5.50.2непряма
npm@algolia/requester-fetch5.54.0непряма
npm@algolia/requester-node-http5.50.2непряма
npm@algolia/requester-node-http5.54.0непряма
npm@babel/helper-string-parser7.27.1непряма
npm@babel/helper-string-parser7.29.7непряма
npm@babel/helper-validator-identifier7.28.5непряма
npm@babel/helper-validator-identifier7.29.7непряма
npm@babel/parser7.29.2непряма
npm@babel/parser7.29.7непряма
npm@babel/types7.29.0непряма
npm@babel/types7.29.7непряма
npm@docsearch/css3.8.2непряма
npm@docsearch/js3.8.2непряма
npm@docsearch/react3.8.2непряма
npm@esbuild/aix-ppc640.25.12непряма
npm@esbuild/android-arm0.25.12непряма
npm@esbuild/android-arm640.25.12непряма
npm@esbuild/android-x640.25.12непряма
npm@esbuild/darwin-arm640.25.12непряма
npm@esbuild/darwin-x640.25.12непряма
npm@esbuild/freebsd-arm640.25.12непряма
npm@esbuild/freebsd-x640.25.12непряма
npm@esbuild/linux-arm0.25.12непряма
npm@esbuild/linux-arm640.25.12непряма
npm@esbuild/linux-ia320.25.12непряма
npm@esbuild/linux-loong640.25.12непряма
npm@esbuild/linux-mips64el0.25.12непряма
npm@esbuild/linux-ppc640.25.12непряма
npm@esbuild/linux-riscv640.25.12непряма
npm@esbuild/linux-s390x0.25.12непряма
npm@esbuild/linux-x640.25.12непряма
npm@esbuild/netbsd-arm640.25.12непряма
npm@esbuild/netbsd-x640.25.12непряма
npm@esbuild/openbsd-arm640.25.12непряма
npm@esbuild/openbsd-x640.25.12непряма
npm@esbuild/openharmony-arm640.25.12непряма
npm@esbuild/sunos-x640.25.12непряма
npm@esbuild/win32-arm640.25.12непряма
npm@esbuild/win32-ia320.25.12непряма
npm@esbuild/win32-x640.25.12непряма
npm@iconify-json/simple-icons1.2.78непряма
npm@iconify-json/simple-icons1.2.86непряма
npm@iconify/types2.0.0непряма
npm@jridgewell/sourcemap-codec1.5.5непряма
npm@puppeteer/browsers3.0.6непряма
npm@rollup/rollup-android-arm-eabi4.60.1непряма
npm@rollup/rollup-android-arm-eabi4.62.0непряма
npm@rollup/rollup-android-arm644.60.1непряма
npm@rollup/rollup-android-arm644.62.0непряма
npm@rollup/rollup-darwin-arm644.60.1непряма
npm@rollup/rollup-darwin-arm644.62.0непряма
npm@rollup/rollup-darwin-x644.60.1непряма
npm@rollup/rollup-darwin-x644.62.0непряма
npm@rollup/rollup-freebsd-arm644.60.1непряма
npm@rollup/rollup-freebsd-arm644.62.0непряма
npm@rollup/rollup-freebsd-x644.60.1непряма
npm@rollup/rollup-freebsd-x644.62.0непряма
npm@rollup/rollup-linux-arm-gnueabihf4.60.1непряма
npm@rollup/rollup-linux-arm-gnueabihf4.62.0непряма
npm@rollup/rollup-linux-arm-musleabihf4.60.1непряма
npm@rollup/rollup-linux-arm-musleabihf4.62.0непряма
npm@rollup/rollup-linux-arm64-gnu4.60.1непряма
npm@rollup/rollup-linux-arm64-gnu4.62.0непряма
npm@rollup/rollup-linux-arm64-musl4.60.1непряма
npm@rollup/rollup-linux-arm64-musl4.62.0непряма
npm@rollup/rollup-linux-loong64-gnu4.60.1непряма
npm@rollup/rollup-linux-loong64-gnu4.62.0непряма
npm@rollup/rollup-linux-loong64-musl4.60.1непряма
npm@rollup/rollup-linux-loong64-musl4.62.0непряма
npm@rollup/rollup-linux-ppc64-gnu4.60.1непряма
npm@rollup/rollup-linux-ppc64-gnu4.62.0непряма
npm@rollup/rollup-linux-ppc64-musl4.60.1непряма
npm@rollup/rollup-linux-ppc64-musl4.62.0непряма
npm@rollup/rollup-linux-riscv64-gnu4.60.1непряма
npm@rollup/rollup-linux-riscv64-gnu4.62.0непряма
npm@rollup/rollup-linux-riscv64-musl4.60.1непряма
npm@rollup/rollup-linux-riscv64-musl4.62.0непряма
npm@rollup/rollup-linux-s390x-gnu4.60.1непряма
npm@rollup/rollup-linux-s390x-gnu4.62.0непряма
npm@rollup/rollup-linux-x64-gnu4.60.1непряма
npm@rollup/rollup-linux-x64-gnu4.62.0непряма
npm@rollup/rollup-linux-x64-musl4.60.1непряма
npm@rollup/rollup-linux-x64-musl4.62.0непряма
npm@rollup/rollup-openbsd-x644.60.1непряма
npm@rollup/rollup-openbsd-x644.62.0непряма
npm@rollup/rollup-openharmony-arm644.60.1непряма
npm@rollup/rollup-openharmony-arm644.62.0непряма
npm@rollup/rollup-win32-arm64-msvc4.60.1непряма
npm@rollup/rollup-win32-arm64-msvc4.62.0непряма
npm@rollup/rollup-win32-ia32-msvc4.60.1непряма
npm@rollup/rollup-win32-ia32-msvc4.62.0непряма
npm@rollup/rollup-win32-x64-gnu4.60.1непряма
npm@rollup/rollup-win32-x64-gnu4.62.0непряма
npm@rollup/rollup-win32-x64-msvc4.60.1непряма
npm@rollup/rollup-win32-x64-msvc4.62.0непряма
npm@shikijs/core2.5.0непряма
npm@shikijs/engine-javascript2.5.0непряма
npm@shikijs/engine-oniguruma2.5.0непряма
npm@shikijs/langs2.5.0непряма
npm@shikijs/themes2.5.0непряма
npm@shikijs/transformers2.5.0непряма
npm@shikijs/types2.5.0непряма
npm@shikijs/vscode-textmate10.0.2непряма
npm@types/estree1.0.8непряма
npm@types/estree1.0.9непряма
npm@types/hast3.0.4непряма
npm@types/linkify-it5.0.0непряма
npm@types/markdown-it14.1.2непряма
npm@types/mdast4.0.4непряма
npm@types/mdurl2.0.0непряма
npm@types/unist3.0.3непряма
npm@types/web-bluetooth0.0.21непряма
npm@ungap/structured-clone1.3.0непряма
npm@ungap/structured-clone1.3.1непряма
npm@vitejs/plugin-vue5.2.4непряма
npm@vue/compiler-core3.5.32непряма
npm@vue/compiler-core3.5.38непряма
npm@vue/compiler-dom3.5.32непряма
npm@vue/compiler-dom3.5.38непряма
npm@vue/compiler-sfc3.5.32непряма
npm@vue/compiler-sfc3.5.38непряма
npm@vue/compiler-ssr3.5.32непряма
npm@vue/compiler-ssr3.5.38непряма
npm@vue/devtools-api7.7.9непряма
npm@vue/devtools-kit7.7.9непряма
npm@vue/devtools-shared7.7.9непряма
npm@vue/reactivity3.5.32непряма
npm@vue/reactivity3.5.38непряма
npm@vue/runtime-core3.5.32непряма
npm@vue/runtime-core3.5.38непряма
npm@vue/runtime-dom3.5.32непряма
npm@vue/runtime-dom3.5.38непряма
npm@vue/server-renderer3.5.32непряма
npm@vue/server-renderer3.5.38непряма
npm@vue/shared3.5.32непряма
npm@vue/shared3.5.38непряма
npm@vueuse/core12.8.2непряма
npm@vueuse/integrations12.8.2непряма
npm@vueuse/metadata12.8.2непряма
npm@vueuse/shared12.8.2непряма
npmalgoliasearch5.50.2непряма
npmalgoliasearch5.54.0непряма
npmansi-regex6.2.2непряма
npmansi-styles6.2.3непряма
npmbirpc2.9.0непряма
npmccount2.0.1непряма
npmcharacter-entities-html42.1.0непряма
npmcharacter-entities-legacy3.0.0непряма
npmchromium-bidi16.0.1непряма
npmcliui9.0.1непряма
npmcomma-separated-tokens2.0.3непряма
npmcopy-anything4.0.5непряма
npmcsstype3.2.3непряма
npmdequal2.0.3непряма
npmdevlop1.1.0непряма
npmdevtools-protocol0.0.1638949непряма
npmemoji-regex10.6.0непряма
npmemoji-regex-xs1.0.0непряма
npmentities7.0.1непряма
npmesbuild0.25.12непряма
npmescalade3.2.0непряма
npmestree-walker2.0.2непряма
npmfdir6.5.0непряма
npmfocus-trap7.8.0непряма
npmfsevents2.3.3непряма
npmget-caller-file2.0.5непряма
npmget-east-asian-width1.6.0непряма
npmhast-util-to-html9.0.5непряма
npmhast-util-whitespace3.0.0непряма
npmhookable5.5.3непряма
npmhtml-void-elements3.0.0непряма
npmis-what5.5.0непряма
npmlilconfig3.1.3непряма
npmmagic-string0.30.21непряма
npmmark.js8.11.1непряма
npmmdast-util-to-hast13.2.1непряма
npmmicromark-util-character2.1.1непряма
npmmicromark-util-encode2.0.1непряма
npmmicromark-util-sanitize-uri2.0.1непряма
npmmicromark-util-symbol2.0.1непряма
npmmicromark-util-types2.0.2непряма
npmminisearch7.2.0непряма
npmmitt3.0.1непряма
npmmodern-tar0.7.6непряма
npmnanoid3.3.12непряма
npmoniguruma-to-es3.1.1непряма
npmperfect-debounce1.0.0непряма
npmpicocolors1.1.1непряма
npmpicomatch4.0.5непряма
npmpostcss8.5.15непряма
npmpreact10.29.1непряма
npmpreact10.29.2непряма
npmproperty-information7.1.0непряма
npmproperty-information7.2.0непряма
npmpuppeteer25.3.0непряма
npmpuppeteer-core25.3.0непряма
npmregex6.1.0непряма
npmregex-recursion6.0.2непряма
npmregex-utilities2.3.0непряма
npmrfdc1.4.1непряма
npmrollup4.60.1непряма
npmrollup4.62.0непряма
npmsearch-insights2.17.3непряма
npmshiki2.5.0непряма
npmsource-map-js1.2.1непряма
npmspace-separated-tokens2.0.2непряма
npmspeakingurl14.0.1непряма
npmstring-width7.2.0непряма
npmstringify-entities4.0.4непряма
npmstrip-ansi7.2.0непряма
npmsuperjson2.2.6непряма
npmtabbable6.4.0непряма
npmtinyglobby0.2.17непряма
npmtrim-lines3.0.1непряма
npmtyped-query-selector2.12.2непряма
npmunist-util-is6.0.1непряма
npmunist-util-position5.0.0непряма
npmunist-util-stringify-position4.0.0непряма
npmunist-util-visit5.1.0непряма
npmunist-util-visit-parents6.0.2непряма
npmvfile6.0.3непряма
npmvfile-message4.0.3непряма
npmvite6.4.3непряма
npmvitepress1.6.4непряма
npmvitepress-plugin-d21.1.0непряма
npmvue3.5.32непряма
npmvue3.5.38непряма
npmwebdriver-bidi-protocol0.4.2непряма
npmwrap-ansi9.0.2непряма
npmws8.21.0непряма
npmy18n5.0.8непряма
npmyargs18.0.0непряма
npmyargs-parser22.0.0непряма
npmzod3.25.76непряма
npmzwitch2.0.4непряма
Сповіщення про залежності 3

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

ПакетВерсіяЗв'язокКритичністьСповіщеньВиправлено в
google.golang.org/grpcv1.81.1непрямакритична11.82.1
github.com/docker/dockerv28.5.2+incompatibleпрямависока1029.3.1
golang.org/x/cryptov0.54.0непряманевідома1

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

Звіт у форматі JSON машиночитний
{
  "data": {
    "repo": {
      "topics": [
        "agent",
        "llms",
        "workflow",
        "yaml",
        "orchestration",
        "ai",
        "llamafile",
        "nvidia",
        "agentic",
        "gguf"
      ],
      "is_fork": false,
      "size_kb": 149419,
      "has_wiki": false,
      "homepage": "https://kdeps.com",
      "languages": {
        "Go": 9950585,
        "Jinja": 16471,
        "Shell": 14968,
        "Python": 19822,
        "Makefile": 15431,
        "Go Template": 23425
      },
      "pushed_at": "2026-07-24T06:06:09Z",
      "created_at": "2024-08-01T01:46:41Z",
      "owner_type": "Organization",
      "updated_at": "2026-07-24T06:06:21Z",
      "description": "Run AI workflows locally. Or deploy them anywhere. AI agent framework in YAML — workflow pipelines + autonomous agent loop. NVIDIA Inception member. Build, deploy, export as Docker/K8s/ISO.",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "Apache-2.0",
      "default_branch": "main",
      "license_spdx_raw": "Apache-2.0",
      "primary_language": "Go",
      "significant_languages": [
        "Go"
      ]
    },
    "owner": {
      "blog": "https://kdeps.com",
      "name": "kdeps",
      "type": "Organization",
      "login": "kdeps",
      "company": null,
      "location": "Netherlands",
      "followers": 6,
      "avatar_url": "https://avatars.githubusercontent.com/u/170785189?v=4",
      "created_at": "2024-05-25T04:28:24Z",
      "is_verified": null,
      "public_repos": 11,
      "account_age_days": 790
    },
    "license": {
      "state": "standard",
      "spdx_id": "Apache-2.0",
      "raw_spdx": "Apache-2.0",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "v2.1.2-nightly202607240533",
          "kind": "prerelease",
          "published_at": "2026-07-24T05:38:29Z"
        },
        {
          "tag": "v2.1.2",
          "kind": "patch",
          "published_at": "2026-07-23T22:13:49Z"
        },
        {
          "tag": "v2.1.1",
          "kind": "patch",
          "published_at": "2026-07-23T20:49:11Z"
        },
        {
          "tag": "v2.1.0-nightly202607230538",
          "kind": "prerelease",
          "published_at": "2026-07-23T05:44:04Z"
        },
        {
          "tag": "v2.1.0-nightly202607220530",
          "kind": "prerelease",
          "published_at": "2026-07-22T05:45:42Z"
        },
        {
          "tag": "v2.1.0-nightly202607210532",
          "kind": "prerelease",
          "published_at": "2026-07-21T05:49:25Z"
        },
        {
          "tag": "v2.1.0-nightly202607200552",
          "kind": "prerelease",
          "published_at": "2026-07-20T05:58:38Z"
        },
        {
          "tag": "v2.1.0-nightly202607190533",
          "kind": "prerelease",
          "published_at": "2026-07-19T05:39:20Z"
        },
        {
          "tag": "v2.1.0-nightly202607180501",
          "kind": "prerelease",
          "published_at": "2026-07-18T05:06:43Z"
        },
        {
          "tag": "v2.1.0-nightly202607170526",
          "kind": "prerelease",
          "published_at": "2026-07-17T05:44:44Z"
        },
        {
          "tag": "v2.1.0",
          "kind": "minor",
          "published_at": "2026-07-16T16:10:46Z"
        },
        {
          "tag": "v2.0.8-nightly202607160524",
          "kind": "prerelease",
          "published_at": "2026-07-16T05:30:49Z"
        },
        {
          "tag": "v2.0.8-nightly202607150511",
          "kind": "prerelease",
          "published_at": "2026-07-15T05:16:47Z"
        },
        {
          "tag": "v2.0.8",
          "kind": "patch",
          "published_at": "2026-07-14T06:54:02Z"
        },
        {
          "tag": "v2.0.7-nightly202607140516",
          "kind": "prerelease",
          "published_at": "2026-07-14T05:33:02Z"
        },
        {
          "tag": "v2.0.7-nightly202607130550",
          "kind": "prerelease",
          "published_at": "2026-07-13T06:06:11Z"
        },
        {
          "tag": "v2.0.7-nightly202607110523",
          "kind": "prerelease",
          "published_at": "2026-07-11T05:40:53Z"
        },
        {
          "tag": "v2.0.7",
          "kind": "patch",
          "published_at": "2026-07-11T04:38:30Z"
        },
        {
          "tag": "v2.0.6-nightly202607101834",
          "kind": "prerelease",
          "published_at": "2026-07-10T18:51:56Z"
        },
        {
          "tag": "v2.0.6",
          "kind": "patch",
          "published_at": "2026-06-17T17:01:19Z"
        },
        {
          "tag": "v2.0.5",
          "kind": "patch",
          "published_at": "2026-06-10T16:43:17Z"
        },
        {
          "tag": "v2.0.4",
          "kind": "patch",
          "published_at": "2026-06-03T13:51:29Z"
        },
        {
          "tag": "v2.0.3",
          "kind": "patch",
          "published_at": "2026-05-04T06:20:10Z"
        },
        {
          "tag": "v2.0.2",
          "kind": "patch",
          "published_at": "2026-03-17T00:29:29Z"
        },
        {
          "tag": "v2.0.1",
          "kind": "patch",
          "published_at": "2026-02-24T13:57:57Z"
        },
        {
          "tag": "v1.9.45",
          "kind": "patch",
          "published_at": "2026-02-13T13:28:28Z"
        },
        {
          "tag": "v1.9.44",
          "kind": "patch",
          "published_at": "2026-02-13T09:32:11Z"
        },
        {
          "tag": "v1.9.43",
          "kind": "patch",
          "published_at": "2026-02-12T07:27:12Z"
        },
        {
          "tag": "v1.9.42",
          "kind": "patch",
          "published_at": "2026-02-12T05:34:04Z"
        },
        {
          "tag": "v1.9.41",
          "kind": "patch",
          "published_at": "2026-02-12T03:30:16Z"
        },
        {
          "tag": "v1.9.40",
          "kind": "patch",
          "published_at": "2026-02-12T02:59:04Z"
        },
        {
          "tag": "v1.9.39",
          "kind": "patch",
          "published_at": "2026-02-12T02:30:12Z"
        },
        {
          "tag": "v1.9.38",
          "kind": "patch",
          "published_at": "2026-02-11T12:15:55Z"
        },
        {
          "tag": "v1.9.37",
          "kind": "patch",
          "published_at": "2026-02-10T23:25:01Z"
        },
        {
          "tag": "v1.9.36-rc1",
          "kind": "prerelease",
          "published_at": "2026-02-10T22:44:03Z"
        },
        {
          "tag": "v1.9.35",
          "kind": "patch",
          "published_at": "2026-02-10T09:50:42Z"
        },
        {
          "tag": "v1.9.34",
          "kind": "patch",
          "published_at": "2026-02-10T00:15:54Z"
        },
        {
          "tag": "v1.9.33",
          "kind": "patch",
          "published_at": "2026-02-05T23:01:42Z"
        },
        {
          "tag": "v1.9.32",
          "kind": "patch",
          "published_at": "2026-02-04T12:08:03Z"
        },
        {
          "tag": "v1.9.31",
          "kind": "patch",
          "published_at": "2026-02-04T09:17:46Z"
        },
        {
          "tag": "v1.9.30",
          "kind": "patch",
          "published_at": "2026-02-04T07:31:46Z"
        },
        {
          "tag": "v1.9.29",
          "kind": "patch",
          "published_at": "2026-02-03T14:06:26Z"
        },
        {
          "tag": "v1.9.28",
          "kind": "patch",
          "published_at": "2026-02-03T09:01:53Z"
        },
        {
          "tag": "v1.9.27",
          "kind": "patch",
          "published_at": "2026-02-03T07:57:01Z"
        },
        {
          "tag": "v1.9.26",
          "kind": "patch",
          "published_at": "2026-02-03T07:14:02Z"
        },
        {
          "tag": "v1.9.25",
          "kind": "patch",
          "published_at": "2026-02-03T05:01:48Z"
        },
        {
          "tag": "v1.9.24",
          "kind": "patch",
          "published_at": "2026-02-03T04:12:45Z"
        },
        {
          "tag": "v1.9.23",
          "kind": "patch",
          "published_at": "2026-02-03T03:37:52Z"
        },
        {
          "tag": "v1.9.22",
          "kind": "patch",
          "published_at": "2026-02-02T15:09:36Z"
        },
        {
          "tag": "v1.9.21",
          "kind": "patch",
          "published_at": "2026-02-02T14:40:13Z"
        },
        {
          "tag": "v1.9.20",
          "kind": "patch",
          "published_at": "2026-02-02T13:21:20Z"
        },
        {
          "tag": "v1.9.19",
          "kind": "patch",
          "published_at": "2026-02-02T13:09:42Z"
        },
        {
          "tag": "v1.9.18",
          "kind": "patch",
          "published_at": "2026-02-02T12:51:44Z"
        },
        {
          "tag": "v1.9.17",
          "kind": "patch",
          "published_at": "2026-02-02T12:43:48Z"
        },
        {
          "tag": "v1.9.16",
          "kind": "patch",
          "published_at": "2026-02-02T11:16:46Z"
        },
        {
          "tag": "v1.9.15",
          "kind": "patch",
          "published_at": "2026-02-02T11:07:17Z"
        },
        {
          "tag": "v1.9.14",
          "kind": "patch",
          "published_at": "2026-02-02T06:25:23Z"
        },
        {
          "tag": "v1.9.13",
          "kind": "patch",
          "published_at": "2026-02-01T22:02:49Z"
        },
        {
          "tag": "v0.6.12",
          "kind": "patch",
          "published_at": "2025-12-24T06:32:47Z"
        },
        {
          "tag": "v0.6.11",
          "kind": "patch",
          "published_at": "2025-12-07T17:32:52Z"
        },
        {
          "tag": "v0.6.10",
          "kind": "patch",
          "published_at": "2025-10-14T22:45:20Z"
        },
        {
          "tag": "v0.6.9",
          "kind": "patch",
          "published_at": "2025-10-14T22:18:25Z"
        },
        {
          "tag": "v0.6.8",
          "kind": "patch",
          "published_at": "2025-10-14T06:26:36Z"
        },
        {
          "tag": "v0.6.7",
          "kind": "patch",
          "published_at": "2025-09-05T02:31:14Z"
        },
        {
          "tag": "v0.6.5",
          "kind": "patch",
          "published_at": "2025-08-21T19:12:24Z"
        },
        {
          "tag": "v0.6.4",
          "kind": "patch",
          "published_at": "2025-08-21T14:14:23Z"
        },
        {
          "tag": "v0.6.3",
          "kind": "patch",
          "published_at": "2025-08-20T16:24:02Z"
        },
        {
          "tag": "v0.6.2",
          "kind": "patch",
          "published_at": "2025-08-20T10:30:46Z"
        },
        {
          "tag": "v0.6.1",
          "kind": "patch",
          "published_at": "2025-08-12T18:06:42Z"
        },
        {
          "tag": "v0.6.0",
          "kind": "minor",
          "published_at": "2025-08-06T22:05:22Z"
        },
        {
          "tag": "v0.5.4",
          "kind": "patch",
          "published_at": "2025-07-01T11:45:09Z"
        },
        {
          "tag": "v0.5.3",
          "kind": "patch",
          "published_at": "2025-06-30T20:01:25Z"
        },
        {
          "tag": "v0.5.2",
          "kind": "patch",
          "published_at": "2025-06-30T17:55:15Z"
        },
        {
          "tag": "v0.5.1",
          "kind": "patch",
          "published_at": "2025-06-30T08:04:08Z"
        },
        {
          "tag": "v0.5.0",
          "kind": "minor",
          "published_at": "2025-05-25T22:21:25Z"
        },
        {
          "tag": "v0.4.2",
          "kind": "patch",
          "published_at": "2025-05-21T21:32:52Z"
        },
        {
          "tag": "v0.4.1",
          "kind": "patch",
          "published_at": "2025-05-19T12:59:12Z"
        },
        {
          "tag": "v0.4.0",
          "kind": "minor",
          "published_at": "2025-05-16T10:00:37Z"
        },
        {
          "tag": "v0.3.0",
          "kind": "minor",
          "published_at": "2025-05-09T08:22:53Z"
        },
        {
          "tag": "v0.2.2",
          "kind": "patch",
          "published_at": "2025-05-08T15:12:01Z"
        },
        {
          "tag": "v0.2.1",
          "kind": "patch",
          "published_at": "2025-04-29T19:58:14Z"
        },
        {
          "tag": "v0.2.0",
          "kind": "minor",
          "published_at": "2025-04-19T20:14:32Z"
        },
        {
          "tag": "v0.1.28",
          "kind": "patch",
          "published_at": "2025-04-16T20:17:28Z"
        },
        {
          "tag": "v0.1.27",
          "kind": "patch",
          "published_at": "2025-04-16T15:25:05Z"
        },
        {
          "tag": "v0.1.26",
          "kind": "patch",
          "published_at": "2025-04-16T07:46:42Z"
        },
        {
          "tag": "v0.1.25",
          "kind": "patch",
          "published_at": "2025-04-16T05:41:13Z"
        },
        {
          "tag": "v0.1.24",
          "kind": "patch",
          "published_at": "2025-04-16T04:34:03Z"
        },
        {
          "tag": "v0.1.23",
          "kind": "patch",
          "published_at": "2025-04-15T09:02:57Z"
        },
        {
          "tag": "v0.1.22",
          "kind": "patch",
          "published_at": "2025-04-14T23:45:59Z"
        },
        {
          "tag": "v0.1.21",
          "kind": "patch",
          "published_at": "2025-03-10T11:47:07Z"
        },
        {
          "tag": "v0.1.20",
          "kind": "patch",
          "published_at": "2025-02-16T14:31:37Z"
        },
        {
          "tag": "v0.1.19",
          "kind": "patch",
          "published_at": "2025-02-11T04:54:20Z"
        },
        {
          "tag": "v0.1.18",
          "kind": "patch",
          "published_at": "2025-02-10T07:14:27Z"
        },
        {
          "tag": "v0.1.17",
          "kind": "patch",
          "published_at": "2025-02-08T05:12:43Z"
        },
        {
          "tag": "v0.1.16",
          "kind": "patch",
          "published_at": "2025-02-07T04:22:45Z"
        },
        {
          "tag": "v0.1.15",
          "kind": "patch",
          "published_at": "2025-02-06T21:23:32Z"
        },
        {
          "tag": "v0.1.14",
          "kind": "patch",
          "published_at": "2025-02-06T13:45:46Z"
        },
        {
          "tag": "v0.1.13",
          "kind": "patch",
          "published_at": "2025-02-05T12:01:43Z"
        },
        {
          "tag": "v0.1.12",
          "kind": "patch",
          "published_at": "2025-02-04T12:43:50Z"
        },
        {
          "tag": "v0.1.11",
          "kind": "patch",
          "published_at": "2025-02-04T01:33:55Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "913d19631bcbeb4f4574ab3b6db8c0f3619fa2fc",
          "body": "… a rune\n\nTwo defects in gatheredToolDigest:\n\n- It filled the budget from the oldest results forward, so on a long\n  research turn the early web_search snippets consumed the digest and the\n  later page scrapes -- which carry most of the answer -- were dropped.\n  Now the newest results that fit are s\n[…]\nary.\n\nTests: KeepsMostRecent, KeepsLastEvenIfOversized, TruncatesOnRuneBoundary,\nTruncateAtRune. go test (force-answer): 10 pass. make lint: 0.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(agent): force-answer digest keeps newest results and never splits…",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-24T06:06:07Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "9297dac29a4cdba1030b385a6ac28e6e14cfae39",
          "body": "Match the turo binary: the arrow stage (connective phrases -> \"->\") is now\non by default; disable with /turo arrows off or TURO_ARROWS=off. Removed the\nnow-unused turoEnvOn helper. Docs updated.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(agent): turo arrows stage on by default",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-24T05:41:31Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "7f7dddcaa4ebc7465d4fd3d71df88436f0ebb7e2",
          "body": "…ult inlining\n\nAsk mode (KDEPS_PERMISSION_MODE=ask or `/permission ask`): read-only tools\nrun freely; mutating tools prompt the user (allow once / allow always /\ndeny) at the streaming gate in dispatchStreamToolCall. \"Allow always\" mints\na session-scoped granted approval token (GlobalApprovalTokenRe\n[…]\nop_forceanswer_test.go\n(all green; full-package suite blocked only by a pre-existing MemoryStore\nconcurrent-access deadlock, fixed separately).\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(agent): add `ask` interactive permission mode + force-answer res…",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-24T05:41:31Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "b18b472af05617500e523ab21c4ba623cba5d2a0",
          "body": null,
          "is_bot": true,
          "headline": "chore: update llamafile/GGUF registry [nightly]",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-24T05:33:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4e38a00b8819dd6ed46df37f9894c0397fa136fd",
          "body": "Wire the new turo -arrows stage into the agent loop reducer and /turo:\n\n- turoState gains an arrows toggle (off by default; TURO_ARROWS=on\n  pre-enables). turoReduce passes -arrows=%t to the binary.\n- \"arrows\" is a valid /turo stage: `/turo arrows on|off`, shown in\n  `/turo` status, and persisted to\n[…]\nws; persist round-trip\nasserts TuroArrows; resetTuroState saves/restores it.\n\ngo test ./pkg/agent ./pkg/tui: 738 passed. make lint (pinned): 0.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(agent): add opt-in turo arrows stage + persist it",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-23T22:07:03Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "f91b7d8d7abb74c3b03a838e4ae548e6a6b28938",
          "body": "The selector's vim j/k cursor keys were missing (only arrows worked),\nfailing TestModel_CursorDown/Up; restore them. The modelpicker is a text\nfilter, so j/k must type into the query, not navigate — keep it\narrows-only and update its tests to assert type-to-filter.\n\ngo test ./pkg/tui: 140 passed.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(tui): selector j/k navigation; modelpicker keeps letters as filter",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-23T20:38:49Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "9ef9154a4aa2584dc8738816b0e8c2e6313fe92c",
          "body": "The turo level, on/off, and stage toggles (filler/synonyms/gloss) now\nsave to ~/.kdeps/agent-loop-settings.yaml alongside the tool-tuning\nsettings and restore on startup, so a chosen reducer configuration\nsurvives restarts.\n\n- ToolTuning / AgentLoopTuning: add Turo{Level,Off,Filler,Synonyms,Gloss}\n-\n[…]\n on every change (persistTuning helper)\n- test: TestToolTuning_TuroPersistRoundTrip\n\ngo test ./pkg/agent (turo), ./pkg/tui: pass. make lint: 0.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: persist turo settings across sessions",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-23T20:38:49Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "c00322a4af1fb2a90567e408ff1d494475dd7ca9",
          "body": "Previously the segment was omitted entirely when turo was absent; now it\nalways renders — gray turo:off when unavailable or disabled, green level\nwhen active.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: turo modeline shows gray turo:off when the binary is not installed",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-23T20:22:41Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "ccb7c6963bd8c8a4565c5292a63a93b11cadce87",
          "body": "Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: turo modeline — off is gray, every active level is green",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-23T20:21:41Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "488381fb0dcd3129e65931266e12265a59106efa",
          "body": "Setting a level via /turo full|lite|ultra|wenyan now clears the runtime\noff override, so the modeline updates from turo:off to the chosen level.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: /turo <level> re-enables turo after /turo off",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-23T20:21:02Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "a8574acf672155e164dd71d8a76f7335341543ad",
          "body": "The modeline special-cased only ultra/lite/off, so full and wenyan\nrendered as bare 'turo'. Always render turo:<level> (ultra/wenyan\nhighlighted, others in meta, off dimmed).\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: turo modeline shows the level for every state",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-23T20:18:45Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "f433909ee56ad3b19eeaf8f7e9a7c643add1a172",
          "body": "turo renamed its ultra-wenyan level to wenyan; match it in the /turo\ncommand, level validation, usage/help, and docs.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: /turo wenyan level (was ultra-wenyan)",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-23T18:56:24Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "fb32b7309755ca00851ecf8a415c8ff2b7573947",
          "body": "turo gained wenyan / wenyan-all / ultra-wenyan levels (swap reduced words\nfor Classical Chinese characters, for CJK-tokenizer models). Accept them\nin the kdeps /turo command and level validation.\n\n- turo.go: add the three wenyan levels to turoValidLevels\n- repl.go: /turo <level> accepts them; usage/help updated\n- docs: mention the wenyan levels\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: accept wenyan turo levels in /turo",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-23T17:35:16Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "bc0926541486f5ee313b0d9dab2aa40e5f4e953b",
          "body": "…ultra default\n\nAgent loop:\n- Forceful stop: after a convergence-blocked tool round, strip every\n  tool and force a text answer (convergenceStop). One blocked round is\n  enough (maxConvergenceBlocks=1); covers web/bash/file/code. Fixes the\n  model flailing on blocked calls under unlimited rounds.\n- \n[…]\ne consts, nilerr/ineffassign\ncleanup in runRG and validateSearchRoot.\n\ngo test ./pkg/agent ./pkg/executor/codeintelligence: pass. make lint: 0.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: forceful convergence stop, wider web budget, date in preamble, …",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-23T17:35:16Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "607a499d4f022f220f7e8c092e69d9b5a77996d4",
          "body": "A code_search with an over-broad path (e.g. \"/\" or $HOME) made rg recurse\nsystem directories, hitting /dev/fd (bad inherited descriptors) and\n/Library/Caches (permission denied); it ran ~90s then failed with\n\"rg failed: rg: /dev/fd/6: Bad file descriptor\".\n\n- validateSearchRoot rejects filesystem ro\n[…]\nectsSystemRoot; mock\n  runner ignores --no-messages when matching fixtures\n\ngo test ./pkg/executor/codeintelligence: 193 passed. go vet: clean.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: code_search no longer walks the whole filesystem on a bad path",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-23T17:35:16Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "5ddd77419754c25eacffc67a6ae9c5f8a9104da7",
          "body": "kdeps now passes -filler/-synonyms/-gloss to the turo binary and exposes\nthem at runtime, so the lossy stages can be turned off without leaving\nthe REPL.\n\n- turo.go: filler/synonyms/gloss state (default on, env can pre-disable\n  via TURO_FILLER/TURO_SYNONYMS/TURO_GLOSS); TuroStage/SetTuroStage;\n  tu\n[…]\nge_ToggleAndUnknown; resetTuroState restores\n  the new fields\n- docs: document the stage subcommands\n\ngo test ./pkg/agent: pass. go vet: clean.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: runtime /turo stage toggles (filler/synonyms/gloss)",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-23T17:35:16Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "d780bbed0797d7e40aeb6d0328660382d983116b",
          "body": "turo now runs filler -> synonym -> gloss -> reduce (all on by default,\nto convergence). kdeps spawns turo inheriting its environment, so the\nTURO_FILLER / TURO_SYNONYMS / TURO_GLOSS vars disable individual stages;\ndocument them, and note that stages 2-4 change wording (agent context is\ncompressed but no longer verbatim). No code change: kdeps passes only\n-level, and the binary applies the new defaults.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: sync turo section with the four-stage glossy pipeline",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-23T17:35:16Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "24580f77467f999134d35e65f2ae07e07f1d8955",
          "body": "turo's --max-depth flag became a no-op when its output changed from an\nedge graph to a deduplicated content-word stream. Drop the max-depth\nplumbing on the kdeps side and update the descriptions.\n\n- turo.go: remove maxDepth field, TuroMaxDepth/SetTuroMaxDepth, and the\n  -max-depth arg passed to the \n[…]\n reducer\n  (no edge graph, no max-depth), note the pass-through-if-not-smaller\n  guard.\n\nmake lint: 0 issues. go test ./pkg/agent/: 597 passed.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "refactor: sync turo integration with the new reducer output",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-23T17:35:16Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "447b202f2c799d06ae0c8997b619621c6bdb4a4c",
          "body": "Add turo, an optional external CLI (github.com/kdeps/turo) that\ncompresses prompts, tool output, and conversation history before they\nreach the LLM. Probed once on PATH (or KDEPS_TURO_PATH); no-op when\nabsent, disabled via KDEPS_TURO=off / TURO_DISABLED=1.\n\n- turo.go: probe, level/max-depth state, c\n[…]\nsuites\n\nAlso: regenerate gguf/llamafile harvester version data, drop unused\n.github logo SVGs, Makefile tweak, docs update for agent-loop mode.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: integrate optional turo prompt reducer into agent loop",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-23T17:35:16Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "f9d981968afbdf9f0358ab238a4b4fab4dd52b7d",
          "body": null,
          "is_bot": true,
          "headline": "chore: update llamafile/GGUF registry [nightly]",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-23T05:37:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5dcd89c1e1ea416a0f2a9c4e666b6d92a53df436",
          "body": "token counter now updates correctly:\n- in=163178 out=103 per LLM call\n- accumulated totals visible during tool execution\n- [token] debug confirmed recordTokenUsage fires\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "chore: remove token debug print — counter confirmed working",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-22T11:46:10Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "f65be30ca26736bfc101bbc6a548f8cd159e4b4e",
          "body": "Root cause: withObservability only wraps model when debug.Enabled().\nIn production, the callback never fired and recordTokenUsage was\nnever called — token counter always showed 0.\n\n- Moved recordTokenUsage(resp) from observedLLM.GenerateContent\n  to Executor.StreamChat — always fires regardless of d\n[…]\n Fixed trackBashCall return value discard\n- Fixed kartographer convergence section (inline, no helper)\n- Removed 'k' from stall messages (only ^C works)\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: recordTokenUsage in StreamChat (not debug-only callback)",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-22T11:41:07Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "d146f88e613a06cde72f8e62962372fbafcf8c26",
          "body": "'k' key handling via readline filter doesn't fire during tool\nexecution. Ctrl+C reliably cancels the turn. Messages now say\n'^C to cancel turn' instead of 'k kill tool, ^C cancel turn'.\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: remove 'k' from stall messages — only ^C works",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-22T11:36:14Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "20bace9d59a490b688277c3ed577cbdde47d3887",
          "body": "Verifies whether observabilityLLM.GenerateContent fires.\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "debug: print [token-cb] on every observed LLM call",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-22T11:32:59Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "771f9b2637b53ae4099b0393379fcbdac583e298",
          "body": "Temporary debug to verify recordTokenUsage fires and extracts\ncorrect token counts from GenerationInfo.\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "debug: token counter — print to stderr on every LLM call",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-22T11:26:44Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "46a81063d2f4d92ffc1c43b58ca1866bff8417ad",
          "body": "Replaced the TokenRecorder function hook (which was never firing) with\nsimple exported int64 variables in the executor/llm package.\nrecordTokenUsage now accumulates directly into TokenInputs/TokenOutputs.\ncompactTokenStatus and tokenCounterStr read these directly.\n\nRemoved the sync.Once hook wiring in NewREPL — no longer needed.\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: token counter reads directly from llm.TokenInputs/TokenOutputs",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-22T11:17:28Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "ced44112081c34c61228c3e0c165e3d9d599ce9c",
          "body": "deepseek-chat · 478/64k · in:317k · out:992 · mem:232\n\nNo more left/right split with space fill. Clean · separated.\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "refactor: single-line modeline with · separators",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-22T11:14:03Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "f678dae6bd779df093ec0f549dd4a6399b7da8a6",
          "body": "Modeline now: model · context/tokens on left, in/out + mem on right.\nTurns is an internal counter; the user cares about context headroom.\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: remove 'N turns' from modeline — noise, not actionable",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-22T11:12:25Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "9f26d0602d8d7d8d90472a89e85f5ea20585af24",
          "body": "Arrow keys only. j/k vim bindings removed to avoid conflicts\nwith terminal input handling.\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: remove j/k navigation from model picker and selector",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-22T11:09:05Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "b235c02d697764f3374d027695ca5c92dcf8b8ae",
          "body": "The model picker TUI uses j/k for vim-style navigation. 'k' in\nthe readline filter was intercepting it even though the guard\nshould have passed it through when no tool was active.\n\nReverted to original Ctrl+C/Ctrl+Z-only filter. The goroutine\nleak fix (removing startStdinKillReader) already solved the\noriginal stdin-theft problem without needing 'k' in the filter.\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: remove 'k' from filterToolInterrupt — conflicts with model picker",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-22T11:07:38Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "a8899bdf9c2f8f4665f09024c10b5981a2f007cf",
          "body": "Co-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: clearer stall messages — 'k' kills tool, ^C cancels turn",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-22T11:00:10Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "3f8235313fea95eb9f6ce257a1a2297fec85df23",
          "body": "- filterToolInterrupt now handles 'k'/'K' to kill stalled tools\n  via readline's FuncFilterInputRune — no separate stdin goroutine\n- Removed startStdinKillReader function entirely (dead code)\n- Removed killCh channel, killReaderStarted tracking from monitor\n- monitorStatus simplified to pure text — \n[…]\nry REPL prompt after a tool timed out.\nAfter:  readline filter intercepts 'k' only during tool execution.\n        No goroutine, no leak, no stdin theft.\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: 'k' key handled by readline filter — no stdin goroutine leak",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-22T10:59:00Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "1142b6c963d3ddf87e56383f7822a5fe0f2a4da9",
          "body": "- Changed org prefix filter to case-insensitive substring match\n- Simplified CHINESE_AI_LABS to (name_filter, query) pairs\n- Added verbose per-lab logging (results found, models added)\n- Removed silent except-pass — errors now printed\n\nBefore: deepseek-ai/: 50 results, 0 after org filter\nAfter:  deepseek: 50 results, 50 after name filter\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: Chinese AI lab GGUF harvest — substring name filter",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-22T10:50:46Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "29bc4682353feaf66a5aa442400089b59f9e6c09",
          "body": "- loadOrSeedLocalFile: compares cached file with embedded default.\n  If binary was rebuilt with updated registry, cache is refreshed.\n- Replaced sync.Once with bool flag so registries can reload.\n- ReloadGGUFRegistry/ReloadRegistry called at REPL startup via\n  refreshREPLModelLists.\n- Removed unused sync imports.\n\nBefore: 'make build' invisible — local cache always won.\nAfter:  'make build' → new models appear in /model immediately.\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: registry reloads on startup, embedded data beats stale cache",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-22T10:36:01Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "c77841670c433eede3d0add5839f3955d4f31d07",
          "body": "loadOrSeedLocalFile now compares cached file with embedded default.\nIf they differ (binary was rebuilt with updated registry), the local\ncache is refreshed and the embedded data is used. Previously, the\ncached file always won, making 'make build' invisible to /model.\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: embedded registry takes precedence over stale local cache",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-22T10:28:46Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "2e3df139feef33ec543cf9b0d9c2cafd2b8688a9",
          "body": "Added to ToolTuning + AgentLoopTuning + Config:\n- web-limit (default 3): max web_search/web_scraper per request\n- bash-limit (default 25): max bash_exec per request\n- file-limit (default 40): max read_file/list_files per request\n- code-limit (default 15): max search_local/code_search per request\n\nSe\n[…]\nset web-limit 5\nList via: /model tool list\nPersisted across sessions in settings YAML.\nSetConvergenceLimits() applies configured values on each request.\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: convergence limits configurable via /model tool set",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-22T10:01:07Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "8d8459b4f56a25c42c9fab388709fc0dde40658e",
          "body": "- ResetConvergence() clears all four caches (web, bash, file, code)\n- Called at start of processInput — each > prompt gets fresh budget\n- User can search again after completing a task\n\nBefore: 3 web calls total for entire session\nAfter:  3 web calls per user question\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: convergence counters reset per user message, not per session",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-22T09:55:13Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "2aa726d810bbfc39d562f6bf7778e3eba556e7a4",
          "body": "- bash: 10→25 (complex tasks need more shell commands)\n- file: 20→40 (reading many files during investigation)\n- code: 10→15 (searching across a codebase)\n\n10 bash calls gets exhausted quickly with grep+sed+python+make.\n25 gives enough headroom while still preventing infinite loops.\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: raise convergence limits — 10 was too tight for real work",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-22T09:52:53Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "b8adc1b2f26fcaf67def6d8b463130903822c0b3",
          "body": "Moved recordTokenUsage from StreamChat into the observabilityLLM\ncallback, which wraps every GenerateContent call (streaming and\nnon-streaming). The callback always sees the full GenerationInfo\nwith token counts, even for streaming responses where the final\naggregated response may have empty GenerationInfo.\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: record token usage from observability callback",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-22T09:51:46Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "edceb1f230809acda91e449bb35dfc10e3204873",
          "body": "- Error messages: 'ALL web/search calls blocked — do NOT retry with\n  different queries. Synthesize your answer NOW.'\n- <internals> section: convergence is a session-wide hard block, not\n  a per-query failure. Explicitly lists all blocked tools.\n- Same pattern for bash, file, and code convergence errors.\n\nLLM was treating convergence as per-query failure and retrying with\ndifferent search terms. Now the error explicitly says ALL blocked.\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: convergence errors now say ALL blocked — not per-query",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-22T09:48:42Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "850ba7e8170ce57fddfdf5235c44b07d7923339e",
          "body": "…zero\n\n- Modeline: model · turns · context on left, in/out + mem on right\n- Convergence counters removed from modeline (see /kartographer instead)\n- Monitor line: convergence counters only shown when >0 calls active\n- Zero counters hidden to reduce noise\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "refactor: clean modeline — tokens+memory only, convergence hidden at …",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-22T09:41:21Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "0bd527c434c14db64629b9916baeb97bddea9f0c",
          "body": "Co-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: '7 turns' instead of cryptic '7t' in modeline",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-22T09:39:09Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "c8aeadd3a4d67f18539fd8bd5f382d31b1d4d50e",
          "body": "- Left: model name · turn count · context usage\n- Right: only non-zero pipeline metrics (web, sh, file, src, mem)\n  with in/out always shown. Double-space separated.\n- No brackets, no dashes — clean space-filled layout\n- Zero counters hidden to reduce noise\n\nBefore: [in:317k|out:992|web:0/3|sh:0/10|...] ─── model───\nAfter:  model · 7t · 972/64k          in:317k  out:992  web:3/3  mem:228\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "refactor: clean modeline — model on left, active metrics on right",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-22T09:36:56Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "cd60655e046b9c596b6c08d36f2180e043d31b58",
          "body": "- modeline() renders a single-line status bar with pipeline counters\n  on the left and model info on the right, separated by dashes\n- Printed before each Readline prompt via fmt.Fprint\n- dynamicPrompt simplified to just '> ' — no more mouthful prompt\n- Modeline is independent of the input line — always visible when\n  REPL is idle; monitor/spinner show compact status during activity\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: dedicated modeline for kartographer status",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-22T09:26:33Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "782715903aed2f14ba1d3e26e0c07512acf2bbeb",
          "body": "Removed calls > 0 guard — web:0/3, sh:0/10, file:0/20, src:0/10\nnow show from session start, same as in:0|out:0.\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: convergence counters always visible at zero",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-22T09:10:58Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "c7f9a4b2ee2bf357659d763a14843b5d451e8790",
          "body": "webCache was a separate instance from globalWebCache — tool calls\nincremented webCache but WebConvergenceCalls() read globalWebCache\n(always zero). Now both share the same globalWebCache instance.\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: WebConvergenceCalls reads from correct cache instance",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-22T09:09:14Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "7c09aab86ead3b85465fbe22e0d7c15292dbd8dc",
          "body": "Removed defer c.mu.Unlock() — get() unlocks explicitly on each return\npath. The defer + explicit unlock at the c.calls++ path caused a fatal\n'unlock of unlocked mutex' panic on the first tool call.\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: double unlock in convergenceCache.get()",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-22T09:06:54Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "d75338848af8a0ef808f9bc1dced21a1f20d251e",
          "body": "- list_files: trackFileCall with directory path as cache key\n- search_local: trackCodeCall with query string as cache key\n- /kartographer: added file and code pipeline sections\n- All four convergence caches now fully wired:\n  web:3, sh:10, file:20, src:10\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: wire convergence tracking for all tool categories",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-22T09:02:07Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "7522ec4b842d1c5f5399604b7b23a79c67ee1a65",
          "body": "- bashCallCache tracks distinct bash_exec commands (limit: 10)\n- Repeated same-command calls are cached and free\n- trackBashCall() enforces maxBashToolCalls, caches results\n- Status line shows sh:N/M when >0 shell commands used:\n  [in:317k|out:1k|web:0/3|sh:2/10|mem:227]\n- /kartographer shows shell pipeline section\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: bash convergence tracking — sh counter on kartographer status",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-22T08:55:45Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "d68190a9b65c7e442eb2527ed95c9ea527bfe6b2",
          "body": "Renders ASCII diagram of all four kdeps internal chains with live state:\n- token: GenerateContent → recordTokenUsage → [in:X|out:Y]\n- converge: web_search → webToolCache → N/M calls (limit indicator)\n- compact: shouldAutoCompact → LLM summary → CompactWith\n- memory: ExtractTurn → AutoCapture → N entries\n\nEach chain shows current state (token counts, convergence progress,\nturn count, memory entries). Arrow/pipe connectors visualize flow.\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: /kartographer — live map of internal data-flow pipelines",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-22T08:48:59Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "307c5235282184776d913f4d55d27ed6561868bd",
          "body": "tokenCounter field was declared but never set — tokenCounterStr()\nalways returned \"\" because r.tokenCounter was nil.\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: initialize tokenCounter in NewREPL struct literal",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-22T08:46:52Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "9dd2df0071e0ef1623c09b6371222fb7ca0465a3",
          "body": "- runToolMonitor: tcStr prefix on tick and kill frames\n- runQuietMonitor: tcStr prefix on drawFrame\n- drawSpinnerFrames (generating): tcStr prefix on spinner\n- thinking spinner: already had tcStr\n\nAll four display surfaces now show [in:X|out:Y|web:N/M] prefix.\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: kartographer status line now visible on all display lines",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-22T08:45:12Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "702192930bfc3462c88f0307b164045794035f1f",
          "body": "Expanded [in:0|out:0] token counter into a multi-metric status line:\n- in/out: token counts (input/output)\n- web:2/3: convergence state (calls made / max allowed)\n- mem:8: memory entries saved this session\n\nDisplayed on all status lines:\n  [in:12k|out:3k|web:2/3|mem:8] [model|6|backend|auto|478/64k] >\n\nAdded &lt;internals&gt; section to system prompt so LLM understands\nthe pipeline mechanics.\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: kartographer-style live pipeline status line",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-22T08:39:39Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "dcb6bc057de77ba0381246f32c0ad445d0cc600a",
          "body": "…ness\n\nDocuments four internal chains so the LLM understands kdeps mechanics:\n- Token counter: auto-tracked per GenerateContent, displayed as [in:...|out:...]\n- Convergence: hard limit after 3 web calls, signals synthesis\n- Compaction: auto-compaction pipeline, summary injected as context\n- Memory b\n[…]\nitch survival, mandatory check-and-save\n\nLLM receives pipeline context in system prompt; user sees real-time\nindicators on monitor/spinner/prompt lines.\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: add &lt;internals&gt; section to system prompt — pipeline aware…",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-22T08:28:51Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "c4fd459e7041f738705b423479ed4df1ef5fef0b",
          "body": "- errWebToolConvergence shortened to \"convergence\"\n- Error format: \"convergence (3 calls): stop searching — synthesize\n  from data already gathered\"\n- User sees clean failure line; LLM gets synthesis instruction in result\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: clean convergence error — short user display, full LLM guidance",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-22T08:22:29Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "d12faccd9010e969329883d755d4b14cc1c34ce6",
          "body": "- TokenCounter struct with atomic input/output counters\n- syncTokenCounter() feeds GlobalPromptCacheStats records into counter\n- tokenCounterStr() always returns a value (starts at [in:0|out:0])\n- compactTokenStatus() always returns a value for monitor/spinner lines\n- syncTokenCounter called after all LLM paths: streaming, non-streaming,\n  bang command, and processInput\n- dynamicPrompt prepends token counter status bar on prompt line\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: token counter always visible, proper TokenCounter infrastructure",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-22T08:21:11Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "b61c2e3d57ee9618ee520fd90a10224b52b9fdd5",
          "body": "- stream.go: TokenRecorder hook variable + recordTokenUsage() called\n  after every GenerateContent, extracting PromptTokens/CompletionTokens\n  from GenerationInfo\n- repl.go: registerTokenRecorderOnce wires the hook to\n  GlobalPromptCacheStats.RecordCacheUsageFromTokens\n- token counter now actually updates after LLM calls\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: wire token counter recording hook in stream.go and repl.go",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-22T08:14:10Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "c5bc30029e493ed6e73ace6a94d1c1e1de57cf01",
          "body": "- maxWebToolCalls = 3: after 3 distinct web_search/web_scraper calls\n  in a session, subsequent calls return a convergence error\n- webToolCache tracks call count; cached repeats are free\n- Prevents the 50+ tool call research loops\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: hard convergence limit on web tool calls",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-22T08:02:29Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "4445ea9b0f18497ab44b449572044128bc5cfaff",
          "body": "- TokenRecorder hook in executor/llm: called after every GenerateContent\n  with prompt/completion token counts from GenerationInfo\n- Wired to GlobalPromptCacheStats.RecordCacheUsageFromTokens via sync.Once\n- compactTokenStatus() displays [in:12k|out:3k] in monitor, spinner, prompt\n- Token counter vi\n[…]\nline), LLM\n  streaming (generating spinner), thinking spinner, and REPL prompt\n- formatCompactCount helper for human-readable token counts (12.4k, 1.2m)\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: omnipresent token counter in REPL status lines",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-22T08:00:41Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "66556511562fc4ea09b3187ebc5df01ee6b4eed7",
          "body": "- Tool struct: added Category, Constraints, OutputFormat, SeeAlso fields\n- Registry.ToolPrompt(): grouped by category (file/search/web/shell/code),\n  each tool gets markdown-formatted entry with parameters, constraints,\n  output format, and related tools\n- Annotated read_file, write_file, edit_file,\n[…]\nory and usage constraints\n- registerCachedQueryTool accepts metadata for web/search tool variants\n- Wired into buildSystemPreamble after toolUseGuidance\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: rich tool metadata in dynamic tool prompt",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-22T07:45:51Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "be525f062aed4aafd0fb7ea5dc9690d5fb8dc2b3",
          "body": "- Registry.ToolPrompt() generates a formatted <available_tools> block\n  with every tool's name, description, and parameter schema.\n- Injected into buildSystemPreamble after toolUseGuidance.\n- LLM sees exact tool capabilities in the system prompt, not just\n  via the API's tools parameter — helps models without native\n  tool calling and gives better adherence for all models.\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: inject dynamic tool prompt into system preamble",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-22T07:38:14Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "b035295508b9365c6593163d9e227418782792bc",
          "body": "- <output> rules 24-26: research convergence (stop after 3 sources),\n  no repeated URLs/queries, list questions need at most 3 sources\n- <output>: removed 'Two tools max per turn' (was rule 22, ignored)\n- <errors>: timed-out scrapes/searches mean the source is unavailable\n- memory.go: type assertion check on openStores.Load return\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: anti-loop rules in system prompt, errcheck fix in memory.go",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-22T07:32:50Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "9cfe64e5a84e2d266bd0e62b8751ce4176928550",
          "body": "- openStores sync.Map caches *MemoryStorage by resolved path\n- First NewMemoryStorage call opens bbolt DB; subsequent callers\n  for the same path receive the cached handle\n- bbolt handles concurrent goroutine access internally via MVCC\n  and read-write serialization — no flock contention within a process\n- Removed isTestBinary / unique-temp-file workaround; the shared\n  handle makes the fixed ~/.kdeps/memory.db path safe\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: share bbolt handle via openStores cache for concurrent access",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-22T06:31:05Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "5b60e4777c44bf2609aa0ceef8a64c66b576bb53",
          "body": "- Production: ~/.kdeps/memory.db (persists across sessions, bbolt\n  handles concurrent goroutines within a single process)\n- Tests: unique temp file per process via isTestBinary() check\n  (prevents bbolt flock contention between parallel test suites)\n- KDEPS_MEMORY_DB_PATH env var overrides both pat\n[…]\n within a single process, so\nthe fixed path works correctly in production. The flock only blocks\nwhen separate test processes try to open the same file.\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: memory DB uses persistent path in production, unique temp in tests",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-22T06:23:23Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "07f62be5a497fa26e349aa9c812d2d659bdc8488",
          "body": "- CompactWithLLM: when LLM produces empty summary, fall back to\n  session.Compact() (truncation) instead of returning error\n- formatLoopResult: scan nested maps for content/text/response/output\n  keys when the standard message.content path returns empty\n- Reduced cognitive complexity by extracting isMap var and using\n  distinct variable names (innerOK, strOK) to avoid shadowing\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: agent_loop_compact falls back to truncation when LLM returns empty",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-22T06:02:59Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "050e945a7c61b8feefc03c8ffd2e12e1a72c50da",
          "body": null,
          "is_bot": true,
          "headline": "chore: update llamafile/GGUF registry [nightly]",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-22T05:30:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "55622a7c0bed27dc5296866b379328b5a8844f8b",
          "body": "Added sections from Claude Code, Cursor, and Pi prompts:\n- <autonomy>: autonomous operation charter — proceed without asking for\n  reversible actions, don't stop because context is long\n- <errors>: structured error handling decision tree — permission denied,\n  tool not found, transient, impossible, \n[…]\nad directory guidance under /tmp/kdeps/\n\nRemoved hardcoded tool list from <tools> (it's dynamic per registry).\nRenumbered rules to reflect new sections.\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: restructure system prompt with mined patterns from leaked prompts",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-22T05:04:29Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "082c4297e60f1bc42c8a71fa661bb104a50b72d1",
          "body": "- Removed ExecuteWorkflowStepsWithFlags call so env only prints env vars\n- Export lines go to stdout (for eval), header comments to stderr\n- Updated Short/Long descriptions and examples\n- Removed --dev from agency example (no longer executes)\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: kdeps env prints shell exports only, does not run workflow",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-22T05:04:29Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "c5c11931f83063cf48dc44db8ef63d5c28213ffa",
          "body": "…nitor\n\n- loop.go: process one tool call per LLM round (toolCalls[:1]) so the LLM\n  re-evaluates after each result instead of blindly executing all calls\n  in a batch. A 33-minute make test no longer chains into a redundant\n  second call.\n\n- tool_monitor.go: add killReaderStarted guard so startStdin\n[…]\nithout the guard,\n  a 33-minute silent tool leaked ~1680 goroutines all competing for stdin\n  bytes, making the REPL unresponsive after tool completion.\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: prevent redundant tool calls and stdin goroutine leak in tool mo…",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-22T05:04:29Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "97f8c662f4c7f1eb9127b5ed545af1590cbfd616",
          "body": "Bumps [actions/checkout](https://github.com/actions/checkout) from 7.0.0 to 7.0.1.\n- [Release notes](https://github.com/actions/checkout/releases)\n- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/actions/checkout/compare/9c091bb21b7c1c1d1991bb9\n[…]\nirect:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): bump actions/checkout from 7.0.0 to 7.0.1 (#644)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-21T21:17:26Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "6e5011a9ad353aaed203c57b4f301566e1ffbe62",
          "body": "The @v3 tag now points to v3.37.2 which ships a config requiring\nCodeQL CLI v4.37.1, but the GitHub runner image has v4.37.0.\nPin to the last v3.36.x release which uses CodeQL bundle v2.25.6.\n\nCo-Authored-By: kdeps (deepseek/deepseek-chat) <noreply@kdeps.com>",
          "is_bot": false,
          "headline": "Pin codeql-action to v3.36.3 (compatible with runner CLI v4.37.0)",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-21T21:15:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "beaacee468fd0a5a161ae330eab74b2f3fb815db",
          "body": "The v4 commit hash pins were out of sync with the runner's CodeQL CLI\nversion (v4.37.0 runner vs v4.37.1 action). Pin to the v3 stable tag\ninstead, which is widely deployed and avoids commit-hash drift.\n\nCo-Authored-By: kdeps (deepseek/deepseek-chat) <noreply@kdeps.com>",
          "is_bot": false,
          "headline": "fix: pin codeql-action to v3 stable tag",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-21T20:32:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8cf0048ba7c3e2984c8cf675ced2abe972340984",
          "body": "Adds an optional 'limit' parameter (default 3) to the search_local\nbuilt-in tool, allowing callers to control how many results are returned.\n\nCo-Authored-By: kdeps (deepseek/deepseek-chat) <noreply@kdeps.com>",
          "is_bot": false,
          "headline": "feat: add limit parameter to search_local tool",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-21T20:08:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "49f6432c3db54ce7a9d7509aca92d2d3bddb661b",
          "body": "Adopts XML-section structure and 8 specific patterns from analysis of\nCursor, Pi, OpenCode, and 19 Anthropic prompts (Claude Code, Opus 4.6-4.8,\nSonnet 4.6/5, Fable 5).\n\nChanges vs old flat numbered list:\n- <memory> — adds what NOT to save, permanence advice\n- <safety> — NEW: blast-radius protocol w\n[…]\n)\n- <tools> — adds concurrent call guidance\n- Renumbered rules flow through XML sections\n\nOld: 17 flat rules. New: 21 rules in 7 XML-delimited sections.\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "refactor: restructure system prompt with mined patterns from 22 prompts",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-21T19:51:43Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "2b227f3c947090a7922005652bdb1dbe5b6a1f4c",
          "body": "- /search index — builds inverted index for CWD on demand\n- /search <query> — indexed TF-IDF search with snippets, printed to stdout\n- Lazy auto-indexing: read_file indexes read files; search_local indexes result\n  files; no startup indexing delay\n- IndexFile/IndexFiles on Executor for single/batch \n[…]\nLM staircase output from deepseek\n- Removed auto-StartIndex from tool registration and memory_search fallback\n- Muted startup notice about /search index\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: /search command, lazy auto-indexing, staircase dedent",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-21T19:44:57Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "0d99effc85ef051f8e5fbbc1f8e4e50261866fea",
          "body": "The ProgressWriter message was leaking into agent loop tool output on every\nmemory_search / search_local invocation. Moved to debug log only.\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: silence index-already-exists message from stderr",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-21T19:09:19Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "843f893488dd219f33d90bd6329e8518c519f736",
          "body": "generateSnippet reads the file on-the-fly at search time (not stored in\nthe index) and returns ~240 chars of context around the first query match.\nPrefixed/suffixed with ... when truncated.\n\nSnippets included in both indexed and non-indexed (walk) search results\nwhen a query is provided. Falls back to the first ~240 chars if the query\nisn't found in the raw text (token mismatch).\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: add content snippets to searchlocal results",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-21T18:37:28Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "da8a116f0c191490546b13b8bd9a84197b866324",
          "body": "Extension whitelist (~50 extensions): only indexable file types are\ntokenized and stored. Files without extensions (Makefile, README, etc.)\npass through. Non-indexable extensions are skipped before read/stat.\n\nIncremental indexing via ModTime tracking:\n- walkIndex skips files whose ModTime matches t\n[…]\nPurgeDocs(keepDocIDs) -> removes docs not in keep set\n\n4 new tests: incremental skip, modified re-index, deleted cleanup,\nextension whitelist filtering.\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: extension whitelist + incremental indexing for searchlocal",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-21T18:27:59Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "eb5437b3eac3faf1674f4e83dba6cf8f585cd6aa",
          "body": "- Document.Content was stored in memory and gob-encoded to bbolt on every\n  file index but never read in search results. Removing it eliminates\n  gigabytes of wasted I/O for large directories.\n- Skip files larger than 1 MiB (maxFileSize) — stat before read avoids\n  loading binaries and data files into the tokenizer.\n- Increase batch size from 500 to 2000 for fewer bbolt transactions.\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "perf: remove Content from Document, skip large files, larger batch",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-21T18:09:42Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "217527674f8f25d292fd901f84f39e885363f417",
          "body": "…(terms)\n\nexecuteIndexed called walkIndex on every search, triggering a full re-index\nof all files. For 60k docs this meant re-reading, re-tokenizing, and re-writing\nevery file to bbolt on every tool invocation. Even worse: removeDocumentInTx\niterated ALL terms per document removal, making BatchAddD\n[…]\nhes read the existing index.\n2. batchRemoveDocsInTx makes a single pass over terms for all docIDs in the\n   batch — O(terms) instead of O(docs * terms).\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: skip re-index in executeIndexed when DB has docs, batch remove O…",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-21T18:07:59Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "3752bcca72068e38d4f24da7186dbafc63c8d239",
          "body": "Expands the hardcoded directory ignore list from 18 to 43 entries,\norganized by ecosystem (JS/TS, Python, Go, Rust/Java/C++/C#, IaC, test, misc).\nCovers common build outputs, dependency dirs, caches, and virtual environments.\n\nAlso moves go.etcd.io/bbolt from indirect to direct (go mod tidy).",
          "is_bot": false,
          "headline": "feat: comprehensive noIndexDirs ignore rules for searchlocal indexer",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-21T11:29:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f857b5b93ec2f97313372ff4a95c4ca7b86d2f88",
          "body": null,
          "is_bot": true,
          "headline": "chore: update llamafile/GGUF registry [nightly]",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-21T05:32:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "35749c9f8eb6363834da370166106a34a4306b7f",
          "body": "WalkDir feeds file paths into a channel; GOMAXPROCS workers read and\ntokenize files in parallel; results stream to a single writer goroutine\nthat batches 500 docs per bbolt transaction.\n\nBefore: single-threaded walk+read+tokenize+write\nAfter:  walk -> N workers (parallel read+tokenize) -> 1 writer (batch bbolt)\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "perf: parallel file reading and tokenization during indexing",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-21T01:52:35Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "65b05dffeddb9cc8143813d8ff17a8bf467e64be",
          "body": "Instead of one bbolt write transaction per file (10k files = 10k txns),\ncollect files into batches of 500 and flush in a single transaction\n(10k files = 20 txns). Bbolt serializes writes, so this dramatically\nreduces fsync overhead during index creation.\n\n- Add BatchAddDocuments to index package (single txn for multiple docs)\n- Replace indexFile with prepareDoc (deferred write)\n- walkIndex collects batches and flushes every indexBatchSize files\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "perf: batch index writes in groups of 500 files per bbolt transaction",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-21T01:49:39Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "690767d7f07edcac64d172166ba3217b8f88a3fa",
          "body": "When .kdeps/index.db exists but is not a valid bbolt database\n(e.g. old gob-format index or corrupted file), openOrCreateIndex\nnow removes the invalid file and creates a fresh database instead\nof returning an error.\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: auto-recreate corrupt/stale searchlocal index on open",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-21T00:30:55Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "43ba9fb5dc6ceb314ee4d24e6927b1d1b571b5e3",
          "body": "- Remove dead onOff helper (was used by removed autokill toggle)\n- Fix golines formatting in session_store.go and env_overrides.go\n- Fix nilerr in loadMetaFromBolt (use named err check)\n- Remove unused nolint:nilerr directives\n- Add nolint:unparam for legacy loadMetaFromPathLocked\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: remove unused onOff function, final lint fixes",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-20T23:24:30Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "52b671cb3d0033a9242170cf327141549b7961f1",
          "body": "- Add nolint explanations (nilerr, mnd, gochecknoglobals)\n- Remove unused nolint directives (gocognit, nestif)\n- Rename unused parameter (prefix -> _) in botEnvFields\n- Replace fmt.Errorf with errors.New in session_db.go\n- Fix golines formatting in multiple files\n- Add missing errors import\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: remaining lint issues across all changed files",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-20T23:03:57Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "30699c1df2176e82d7c38e62772ba9675e450900",
          "body": "…ltin_tools, env_overrides\n\n- Refactor runToolMonitor: extract startStdinKillReader, isHeadless, monitorStatus helpers\n- Fix golines formatting in repl.go and env_overrides.go\n- Add nilerr nolint comments in builtin_tools.go\n- Remove unused gocognit directive in loop.go nolint\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: pre-existing CI lint issues across tool_monitor, repl, loop, bui…",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-20T22:43:50Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "b3aa508a012cde9147d990b569d7bb0c68a604a1",
          "body": "- Fix goimports in session.go (nolint comment placement)\n- Fix golines: split long lines in session_store.go and testsupport_notjs_test.go\n- Fix shadow declaration in findSessionFileLocked\n- Add nilerr nolint comment in loadMetaFromBolt\n- Use integer range (Go 1.22+) in loadMetaFromJSONL\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: additional CI lint issues",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-20T22:13:27Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "94ccc249dd6bffde145c13dde6ca493bd66d01b7",
          "body": "- Add nolint:gochecknoglobals for SessionsBucket\n- Reduce cognitive complexity of loadMetaFromPathLocked (extract loadMetaFromBolt + loadMetaFromJSONL)\n- Fix goimports formatting across session_store.go, session_test.go, and pre-existing files\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: CI lint and formatting issues",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-20T21:40:50Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "b7181260e674da7507c605d544f2743dacd64865",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'main' of https://github.com/kdeps/kdeps",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-20T21:06:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5a109d533e730596636aa9e5653be36d1cdf9abb",
          "body": "…nt stores)\n\nReplace gob-serialized files, SQLite/CGO, and JSONL files with go.etcd.io/bbolt:\n\nPhase 1 - SearchLocal inverted index (gob -> bbolt):\n- Rewrite internal/index/index.go: bbolt buckets (terms, docs, __meta__)\n- Remove Serialize/Deserialize, writeAtomic, persistIndex from executor.go\n- At\n[…]\nternal/ source files\n- Wire ConnectionEnvFields into non-interactive workflow runtime path\n- Export MemoryBucket/SessionsBucket for external test access\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: bbolt-backed storage migration (searchlocal, infra/storage, age…",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-20T21:05:50Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "2d67823979834fb8884ee2675ed43301b717fa8c",
          "body": "…9.0 (#643)\n\nBumps [github.com/nikolalohinski/gonja/v2](https://github.com/nikolalohinski/gonja) from 2.8.0 to 2.9.0.\n- [Commits](https://github.com/nikolalohinski/gonja/compare/v2.8.0...v2.9.0)\n\n---\nupdated-dependencies:\n- dependency-name: github.com/nikolalohinski/gonja/v2\n  dependency-version: 2.\n[…]\nirect:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): bump github.com/nikolalohinski/gonja/v2 from 2.8.0 to 2.…",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-20T17:45:39Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "74901622581efb70d2a7f9f514b036643e50d2f3",
          "body": "Bumps [github/codeql-action/init](https://github.com/github/codeql-action) from 4.37.0 to 4.37.1.\n- [Release notes](https://github.com/github/codeql-action/releases)\n- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/github/codeql-action/comp\n[…]\nirect:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): bump github/codeql-action/init from 4.37.0 to 4.37.1 (#639)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-20T17:45:13Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e054267bc6434bd20d94626ccae97e1c650af873",
          "body": null,
          "is_bot": false,
          "headline": "chore: update coverage badge [skip ci]",
          "author_name": "jjuliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-20T06:15:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fc74666e8b760c6a46f0406642a3153732124e44",
          "body": "Named connections were the only config sections with no env path — executors\nread them from the Config struct, and nothing overlaid env onto it, so they\ncould only come from config.yaml. Add a dynamic env convention that overlays\nconnection values onto the struct at load time (in load(), so Load, Lo\n[…]\non (env-only connection via LoadStruct), e2e (sql\nconnection resolved from env + announced). Docs: README + email env-var\nconvention reference.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: make named connections fully settable via environment variables",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-20T06:05:28Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "f165e85b97fdd8b175cdadfa63aba7887b9681f6",
          "body": null,
          "is_bot": true,
          "headline": "chore: update llamafile/GGUF registry [nightly]",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-20T05:52:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5f302cbc8c9e1c8d41e9cf71e5638202d5ca25e8",
          "body": "The pre-flight already treated env-supplied LLM keys and api tokens as present,\nbut skipped them silently. Now it distinguishes the source (config.yaml vs env\nvs missing): values in config.yaml pass quietly, values supplied by an\nenvironment variable are announced (\"detected in environment (VAR) — u\n[…]\n: unit (source detection for keys + token, cmd resolvers), e2e (env api\ntoken announced and config left unmodified). Docs: README + email page.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: skip prompting when a value comes from an env var, and say so",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-20T05:30:48Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "2422dabff987344a24b85cf36ebc30b2ceff2a32",
          "body": "Model resolution: a chat resource may now omit `model:`. Resolution order is\nresource model -> config router (KDEPS_LLM_ROUTER) -> first llm.models entry ->\nbuilt-in llama3.2:1b (file backend). A cloud/gguf/ollama backend with no model\nand no llm.models errors clearly instead of guessing an unservab\n[…]\n + router), e2e (omitted-model cloud error vs\nllm.models fallback). Docs: README, installation first-run section, llm\nresolution-order section.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: omitted-model config fallback and backend-type onboarding wizard",
          "author_name": "Joel Bryan Juliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-20T05:09:46Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "a6c5a9c5a43cb534d34a6657685cc0d7b2317990",
          "body": null,
          "is_bot": false,
          "headline": "chore: update coverage badge [skip ci]",
          "author_name": "jjuliano",
          "author_login": "jjuliano",
          "committed_at": "2026-07-19T23:29:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 100,
      "commits_last_year": 1953,
      "latest_release_at": "2026-07-24T05:38:29Z",
      "latest_release_tag": "v2.1.2-nightly202607240533",
      "releases_from_tags": false,
      "days_since_last_push": 0,
      "active_weeks_last_year": 35,
      "days_since_latest_release": 0,
      "mean_days_between_releases": 0.8
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": true,
      "health_percentage": 62,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": false
    },
    "ecosystem": {
      "packages": [
        {
          "name": "github.com/kdeps/kdeps/v2",
          "exists": true,
          "license": null,
          "keywords": [],
          "ecosystem": "go",
          "matches_repo": true,
          "registry_url": "https://pkg.go.dev/github.com/kdeps/kdeps/v2",
          "is_deprecated": false,
          "latest_version": "v2.1.2",
          "repository_url": "https://github.com/kdeps/kdeps",
          "versions_count": 108,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": null,
          "first_published_at": null,
          "latest_published_at": "2026-07-23T22:07:03Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 0
        }
      ]
    },
    "popularity": {
      "forks": 5,
      "stars": 35,
      "watchers": 1,
      "fork_history": {
        "days": [
          {
            "date": "2025-02-04",
            "count": 1
          },
          {
            "date": "2025-07-05",
            "count": 1
          },
          {
            "date": "2025-07-06",
            "count": 1
          },
          {
            "date": "2026-02-10",
            "count": 1
          },
          {
            "date": "2026-07-24",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 5,
        "total_forks": 5
      },
      "star_history": null,
      "open_issues_and_prs": 14
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [
        "examples"
      ],
      "has_llms_txt": false,
      "has_dockerfile": true,
      "has_mcp_signal": false,
      "bootstrap_files": [
        "Makefile"
      ],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [],
      "toolchain_manifests": [
        "go.mod"
      ],
      "largest_source_bytes": 179778,
      "source_files_sampled": 1524,
      "oversized_source_files": 21,
      "agent_instruction_files": [],
      "agent_instruction_max_bytes": null
    },
    "dependencies": {
      "manifests": [
        "go.mod",
        "package.json"
      ],
      "advisories": {
        "error": null,
        "scope": "repository_graph",
        "source": "osv",
        "findings": [
          {
            "name": "google.golang.org/grpc",
            "direct": false,
            "version": "v1.81.1",
            "severity": "critical",
            "ecosystem": "go",
            "cvss_score": 9.1,
            "advisory_ids": [
              "GHSA-hrxh-6v49-42gf"
            ],
            "fixed_version": "1.82.1",
            "advisory_count": 1,
            "oldest_advisory_days": 2
          },
          {
            "name": "github.com/docker/docker",
            "direct": true,
            "version": "v28.5.2+incompatible",
            "severity": "high",
            "ecosystem": "go",
            "cvss_score": 8.8,
            "advisory_ids": [
              "GHSA-pxq6-2prw-chj9",
              "GHSA-rg2x-37c3-w2rh",
              "GHSA-vp62-88p7-qqf5",
              "GHSA-x744-4wpc-v9h2",
              "GHSA-x86f-5xw2-fm2r",
              "GO-2026-4883",
              "GO-2026-4887",
              "GO-2026-5617",
              "GO-2026-5668",
              "GO-2026-5746"
            ],
            "fixed_version": "29.3.1",
            "advisory_count": 10,
            "oldest_advisory_days": 118
          },
          {
            "name": "golang.org/x/crypto",
            "direct": false,
            "version": "v0.54.0",
            "severity": "unknown",
            "ecosystem": "go",
            "cvss_score": null,
            "advisory_ids": [
              "GO-2026-5932"
            ],
            "fixed_version": null,
            "advisory_count": 1,
            "oldest_advisory_days": 16
          }
        ],
        "collected": true,
        "malicious": [],
        "truncated": false,
        "by_severity": {
          "high": 1,
          "unknown": 1,
          "critical": 1
        },
        "advisory_count": 12,
        "affected_count": 3,
        "assessed_count": 465,
        "malicious_count": 0,
        "assessed_package": null,
        "unassessed_count": 0,
        "direct_affected_count": 1
      },
      "ecosystems": [
        "go",
        "npm"
      ],
      "dependencies": [
        {
          "name": "github.com/DATA-DOG/go-sqlmock",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.5.2"
        },
        {
          "name": "github.com/IBM/watsonx-go",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.0.2"
        },
        {
          "name": "github.com/PuerkitoBio/goquery",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.12.0"
        },
        {
          "name": "github.com/bwmarrin/discordgo",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v0.29.0"
        },
        {
          "name": "github.com/charmbracelet/bubbletea",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.3.10"
        },
        {
          "name": "github.com/charmbracelet/glamour",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.0.0"
        },
        {
          "name": "github.com/charmbracelet/lipgloss",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.1.1-0.20250404203927-76690c660834"
        },
        {
          "name": "github.com/charmbracelet/x/ansi",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v0.11.7"
        },
        {
          "name": "github.com/chzyer/readline",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.5.1"
        },
        {
          "name": "github.com/creack/pty",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.1.24"
        },
        {
          "name": "github.com/denisenkom/go-mssqldb",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v0.12.3"
        },
        {
          "name": "github.com/docker/docker",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v28.5.2+incompatible"
        },
        {
          "name": "github.com/emersion/go-imap/v2",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v2.0.0-beta.8"
        },
        {
          "name": "github.com/expr-lang/expr",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.17.8"
        },
        {
          "name": "github.com/fsnotify/fsnotify",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.10.1"
        },
        {
          "name": "github.com/go-sql-driver/mysql",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.10.0"
        },
        {
          "name": "github.com/go-telegram/bot",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.22.0"
        },
        {
          "name": "github.com/google/uuid",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.6.0"
        },
        {
          "name": "github.com/gorilla/websocket",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.5.3"
        },
        {
          "name": "github.com/ledongthuc/pdf",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v0.0.0-20250511090121-5959a4027728"
        },
        {
          "name": "github.com/lib/pq",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.12.3"
        },
        {
          "name": "github.com/mattn/go-sqlite3",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.14.48"
        },
        {
          "name": "github.com/microcosm-cc/bluemonday",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.0.27"
        },
        {
          "name": "github.com/muesli/termenv",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v0.16.0"
        },
        {
          "name": "github.com/nikolalohinski/gonja/v2",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v2.9.0"
        },
        {
          "name": "github.com/pkoukk/tiktoken-go",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v0.1.8"
        },
        {
          "name": "github.com/playwright-community/playwright-go",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v0.5700.1"
        },
        {
          "name": "github.com/robfig/cron/v3",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v3.0.1"
        },
        {
          "name": "github.com/sijms/go-ora/v2",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v2.9.0"
        },
        {
          "name": "github.com/slack-go/slack",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v0.27.0"
        },
        {
          "name": "github.com/spf13/afero",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.15.0"
        },
        {
          "name": "github.com/spf13/cobra",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.10.2"
        },
        {
          "name": "github.com/spf13/fileflow",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v0.1.0"
        },
        {
          "name": "github.com/spf13/pathologize",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.1.0"
        },
        {
          "name": "github.com/stretchr/testify",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.11.1"
        },
        {
          "name": "github.com/tmc/langchaingo",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v0.1.14"
        },
        {
          "name": "github.com/xeipuuv/gojsonschema",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.2.0"
        },
        {
          "name": "go.etcd.io/bbolt",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.5.0"
        },
        {
          "name": "go.mongodb.org/mongo-driver",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.17.9"
        },
        {
          "name": "golang.org/x/net",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v0.57.0"
        },
        {
          "name": "golang.org/x/sys",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v0.47.0"
        },
        {
          "name": "golang.org/x/term",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v0.45.0"
        },
        {
          "name": "golang.org/x/time",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v0.15.0"
        },
        {
          "name": "gopkg.in/yaml.v3",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v3.0.1"
        }
      ],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [
          {
            "name": "github.com/bwmarrin/discordgo",
            "direct": true,
            "version": "v0.29.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/charmbracelet/bubbletea",
            "direct": true,
            "version": "v1.3.10",
            "ecosystem": "go"
          },
          {
            "name": "github.com/charmbracelet/glamour",
            "direct": true,
            "version": "v1.0.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/charmbracelet/lipgloss",
            "direct": true,
            "version": "v1.1.1-0.20250404203927-76690c660834",
            "ecosystem": "go"
          },
          {
            "name": "github.com/charmbracelet/x/ansi",
            "direct": true,
            "version": "v0.11.7",
            "ecosystem": "go"
          },
          {
            "name": "github.com/chzyer/readline",
            "direct": true,
            "version": "v1.5.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/creack/pty",
            "direct": true,
            "version": "v1.1.24",
            "ecosystem": "go"
          },
          {
            "name": "github.com/data-dog/go-sqlmock",
            "direct": true,
            "version": "v1.5.2",
            "ecosystem": "go"
          },
          {
            "name": "github.com/denisenkom/go-mssqldb",
            "direct": true,
            "version": "v0.12.3",
            "ecosystem": "go"
          },
          {
            "name": "github.com/docker/docker",
            "direct": true,
            "version": "v28.5.2+incompatible",
            "ecosystem": "go"
          },
          {
            "name": "github.com/emersion/go-imap/v2",
            "direct": true,
            "version": "v2.0.0-beta.8",
            "ecosystem": "go"
          },
          {
            "name": "github.com/expr-lang/expr",
            "direct": true,
            "version": "v1.17.8",
            "ecosystem": "go"
          },
          {
            "name": "github.com/fsnotify/fsnotify",
            "direct": true,
            "version": "v1.10.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/go-sql-driver/mysql",
            "direct": true,
            "version": "v1.10.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/go-telegram/bot",
            "direct": true,
            "version": "v1.22.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/google/uuid",
            "direct": true,
            "version": "v1.6.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/gorilla/websocket",
            "direct": true,
            "version": "v1.5.3",
            "ecosystem": "go"
          },
          {
            "name": "github.com/ibm/watsonx-go",
            "direct": true,
            "version": "v1.0.2",
            "ecosystem": "go"
          },
          {
            "name": "github.com/ledongthuc/pdf",
            "direct": true,
            "version": "v0.0.0-20250511090121-5959a4027728",
            "ecosystem": "go"
          },
          {
            "name": "github.com/lib/pq",
            "direct": true,
            "version": "v1.12.3",
            "ecosystem": "go"
          },
          {
            "name": "github.com/mattn/go-sqlite3",
            "direct": true,
            "version": "v1.14.48",
            "ecosystem": "go"
          },
          {
            "name": "github.com/microcosm-cc/bluemonday",
            "direct": true,
            "version": "v1.0.27",
            "ecosystem": "go"
          },
          {
            "name": "github.com/muesli/termenv",
            "direct": true,
            "version": "v0.16.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/nikolalohinski/gonja/v2",
            "direct": true,
            "version": "v2.9.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/pkoukk/tiktoken-go",
            "direct": true,
            "version": "v0.1.8",
            "ecosystem": "go"
          },
          {
            "name": "github.com/playwright-community/playwright-go",
            "direct": true,
            "version": "v0.5700.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/puerkitobio/goquery",
            "direct": true,
            "version": "v1.12.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/robfig/cron/v3",
            "direct": true,
            "version": "v3.0.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/sijms/go-ora/v2",
            "direct": true,
            "version": "v2.9.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/slack-go/slack",
            "direct": true,
            "version": "v0.27.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/spf13/afero",
            "direct": true,
            "version": "v1.15.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/spf13/cobra",
            "direct": true,
            "version": "v1.10.2",
            "ecosystem": "go"
          },
          {
            "name": "github.com/spf13/fileflow",
            "direct": true,
            "version": "v0.1.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/spf13/pathologize",
            "direct": true,
            "version": "v1.1.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/stretchr/testify",
            "direct": true,
            "version": "v1.11.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/tmc/langchaingo",
            "direct": true,
            "version": "v0.1.14",
            "ecosystem": "go"
          },
          {
            "name": "github.com/xeipuuv/gojsonschema",
            "direct": true,
            "version": "v1.2.0",
            "ecosystem": "go"
          },
          {
            "name": "go.etcd.io/bbolt",
            "direct": true,
            "version": "v1.5.0",
            "ecosystem": "go"
          },
          {
            "name": "go.mongodb.org/mongo-driver",
            "direct": true,
            "version": "v1.17.9",
            "ecosystem": "go"
          },
          {
            "name": "golang.org/x/net",
            "direct": true,
            "version": "v0.57.0",
            "ecosystem": "go"
          },
          {
            "name": "golang.org/x/sys",
            "direct": true,
            "version": "v0.47.0",
            "ecosystem": "go"
          },
          {
            "name": "golang.org/x/term",
            "direct": true,
            "version": "v0.45.0",
            "ecosystem": "go"
          },
          {
            "name": "golang.org/x/time",
            "direct": true,
            "version": "v0.15.0",
            "ecosystem": "go"
          },
          {
            "name": "gopkg.in/yaml.v3",
            "direct": true,
            "version": "v3.0.1",
            "ecosystem": "go"
          },
          {
            "name": "cloud.google.com/go",
            "direct": false,
            "version": "v0.123.0",
            "ecosystem": "go"
          },
          {
            "name": "cloud.google.com/go/ai",
            "direct": false,
            "version": "v0.7.0",
            "ecosystem": "go"
          },
          {
            "name": "cloud.google.com/go/aiplatform",
            "direct": false,
            "version": "v1.125.0",
            "ecosystem": "go"
          },
          {
            "name": "cloud.google.com/go/auth",
            "direct": false,
            "version": "v0.20.0",
            "ecosystem": "go"
          },
          {
            "name": "cloud.google.com/go/auth/oauth2adapt",
            "direct": false,
            "version": "v0.2.8",
            "ecosystem": "go"
          },
          {
            "name": "cloud.google.com/go/compute/metadata",
            "direct": false,
            "version": "v0.9.0",
            "ecosystem": "go"
          },
          {
            "name": "cloud.google.com/go/iam",
            "direct": false,
            "version": "v1.11.0",
            "ecosystem": "go"
          },
          {
            "name": "cloud.google.com/go/longrunning",
            "direct": false,
            "version": "v1.0.0",
            "ecosystem": "go"
          },
          {
            "name": "cloud.google.com/go/vertexai",
            "direct": false,
            "version": "v0.19.0",
            "ecosystem": "go"
          },
          {
            "name": "filippo.io/edwards25519",
            "direct": false,
            "version": "v1.2.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/alecthomas/chroma/v2",
            "direct": false,
            "version": "v2.27.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/andybalholm/cascadia",
            "direct": false,
            "version": "v1.3.4",
            "ecosystem": "go"
          },
          {
            "name": "github.com/antchfx/htmlquery",
            "direct": false,
            "version": "v1.3.6",
            "ecosystem": "go"
          },
          {
            "name": "github.com/antchfx/xmlquery",
            "direct": false,
            "version": "v1.5.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/antchfx/xpath",
            "direct": false,
            "version": "v1.3.6",
            "ecosystem": "go"
          },
          {
            "name": "github.com/aws/aws-sdk-go-v2",
            "direct": false,
            "version": "v1.42.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream",
            "direct": false,
            "version": "v1.7.13",
            "ecosystem": "go"
          },
          {
            "name": "github.com/aws/aws-sdk-go-v2/config",
            "direct": false,
            "version": "v1.32.25",
            "ecosystem": "go"
          },
          {
            "name": "github.com/aws/aws-sdk-go-v2/credentials",
            "direct": false,
            "version": "v1.19.24",
            "ecosystem": "go"
          },
          {
            "name": "github.com/aws/aws-sdk-go-v2/feature/ec2/imds",
            "direct": false,
            "version": "v1.18.29",
            "ecosystem": "go"
          },
          {
            "name": "github.com/aws/aws-sdk-go-v2/internal/configsources",
            "direct": false,
            "version": "v1.4.29",
            "ecosystem": "go"
          },
          {
            "name": "github.com/aws/aws-sdk-go-v2/internal/endpoints/v2",
            "direct": false,
            "version": "v2.7.29",
            "ecosystem": "go"
          },
          {
            "name": "github.com/aws/aws-sdk-go-v2/internal/v4a",
            "direct": false,
            "version": "v1.4.30",
            "ecosystem": "go"
          },
          {
            "name": "github.com/aws/aws-sdk-go-v2/service/bedrockagent",
            "direct": false,
            "version": "v1.56.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/aws/aws-sdk-go-v2/service/bedrockagentruntime",
            "direct": false,
            "version": "v1.53.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/aws/aws-sdk-go-v2/service/bedrockruntime",
            "direct": false,
            "version": "v1.54.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding",
            "direct": false,
            "version": "v1.13.12",
            "ecosystem": "go"
          },
          {
            "name": "github.com/aws/aws-sdk-go-v2/service/internal/checksum",
            "direct": false,
            "version": "v1.9.22",
            "ecosystem": "go"
          },
          {
            "name": "github.com/aws/aws-sdk-go-v2/service/internal/presigned-url",
            "direct": false,
            "version": "v1.13.29",
            "ecosystem": "go"
          },
          {
            "name": "github.com/aws/aws-sdk-go-v2/service/internal/s3shared",
            "direct": false,
            "version": "v1.19.29",
            "ecosystem": "go"
          },
          {
            "name": "github.com/aws/aws-sdk-go-v2/service/s3",
            "direct": false,
            "version": "v1.104.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/aws/aws-sdk-go-v2/service/signin",
            "direct": false,
            "version": "v1.2.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/aws/aws-sdk-go-v2/service/sso",
            "direct": false,
            "version": "v1.31.3",
            "ecosystem": "go"
          },
          {
            "name": "github.com/aws/aws-sdk-go-v2/service/ssooidc",
            "direct": false,
            "version": "v1.36.6",
            "ecosystem": "go"
          },
          {
            "name": "github.com/aws/aws-sdk-go-v2/service/sts",
            "direct": false,
            "version": "v1.43.3",
            "ecosystem": "go"
          },
          {
            "name": "github.com/aws/smithy-go",
            "direct": false,
            "version": "v1.27.2",
            "ecosystem": "go"
          },
          {
            "name": "github.com/aymanbagabas/go-osc52/v2",
            "direct": false,
            "version": "v2.0.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/aymanbagabas/go-udiff",
            "direct": false,
            "version": "v0.3.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/aymerick/douceur",
            "direct": false,
            "version": "v0.2.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/cespare/xxhash/v2",
            "direct": false,
            "version": "v2.3.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/charmbracelet/colorprofile",
            "direct": false,
            "version": "v0.4.3",
            "ecosystem": "go"
          },
          {
            "name": "github.com/charmbracelet/x/cellbuf",
            "direct": false,
            "version": "v0.0.15",
            "ecosystem": "go"
          },
          {
            "name": "github.com/charmbracelet/x/exp/golden",
            "direct": false,
            "version": "v0.0.0-20241011142426-46044092ad91",
            "ecosystem": "go"
          },
          {
            "name": "github.com/charmbracelet/x/exp/slice",
            "direct": false,
            "version": "v0.0.0-20260622092256-25656177ba8e",
            "ecosystem": "go"
          },
          {
            "name": "github.com/charmbracelet/x/term",
            "direct": false,
            "version": "v0.2.2",
            "ecosystem": "go"
          },
          {
            "name": "github.com/clipperhouse/displaywidth",
            "direct": false,
            "version": "v0.11.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/clipperhouse/uax29/v2",
            "direct": false,
            "version": "v2.7.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/containerd/errdefs",
            "direct": false,
            "version": "v1.0.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/containerd/errdefs/pkg",
            "direct": false,
            "version": "v0.3.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/davecgh/go-spew",
            "direct": false,
            "version": "v1.1.2-0.20180830191138-d8f796af33cc",
            "ecosystem": "go"
          },
          {
            "name": "github.com/deckarep/golang-set/v2",
            "direct": false,
            "version": "v2.9.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/distribution/reference",
            "direct": false,
            "version": "v0.6.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/dlclark/regexp2",
            "direct": false,
            "version": "v1.12.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/dlclark/regexp2/v2",
            "direct": false,
            "version": "v2.2.2",
            "ecosystem": "go"
          },
          {
            "name": "github.com/docker/go-connections",
            "direct": false,
            "version": "v0.7.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/docker/go-units",
            "direct": false,
            "version": "v0.5.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/dustin/go-humanize",
            "direct": false,
            "version": "v1.0.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/emersion/go-message",
            "direct": false,
            "version": "v0.18.2",
            "ecosystem": "go"
          },
          {
            "name": "github.com/emersion/go-sasl",
            "direct": false,
            "version": "v0.0.0-20241020182733-b788ff22d5a6",
            "ecosystem": "go"
          },
          {
            "name": "github.com/erikgeiser/coninput",
            "direct": false,
            "version": "v0.0.0-20211004153227-1c3628e74d0f",
            "ecosystem": "go"
          },
          {
            "name": "github.com/felixge/httpsnoop",
            "direct": false,
            "version": "v1.1.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/go-jose/go-jose/v3",
            "direct": false,
            "version": "v3.0.5",
            "ecosystem": "go"
          },
          {
            "name": "github.com/go-logr/logr",
            "direct": false,
            "version": "v1.4.3",
            "ecosystem": "go"
          },
          {
            "name": "github.com/go-logr/stdr",
            "direct": false,
            "version": "v1.2.2",
            "ecosystem": "go"
          },
          {
            "name": "github.com/go-stack/stack",
            "direct": false,
            "version": "v1.8.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/gobwas/glob",
            "direct": false,
            "version": "v0.2.3",
            "ecosystem": "go"
          },
          {
            "name": "github.com/gocolly/colly",
            "direct": false,
            "version": "v1.2.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/golang-sql/civil",
            "direct": false,
            "version": "v0.0.0-20220223132316-b832511892a9",
            "ecosystem": "go"
          },
          {
            "name": "github.com/golang-sql/sqlexp",
            "direct": false,
            "version": "v0.1.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/golang/groupcache",
            "direct": false,
            "version": "v0.0.0-20241129210726-2c02b8208cf8",
            "ecosystem": "go"
          },
          {
            "name": "github.com/golang/protobuf",
            "direct": false,
            "version": "v1.5.4",
            "ecosystem": "go"
          },
          {
            "name": "github.com/golang/snappy",
            "direct": false,
            "version": "v1.0.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/google/flatbuffers",
            "direct": false,
            "version": "v25.12.19+incompatible",
            "ecosystem": "go"
          },
          {
            "name": "github.com/google/generative-ai-go",
            "direct": false,
            "version": "v0.15.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/google/go-cmp",
            "direct": false,
            "version": "v0.7.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/google/s2a-go",
            "direct": false,
            "version": "v0.1.9",
            "ecosystem": "go"
          },
          {
            "name": "github.com/googleapis/enterprise-certificate-proxy",
            "direct": false,
            "version": "v0.3.16",
            "ecosystem": "go"
          },
          {
            "name": "github.com/googleapis/gax-go/v2",
            "direct": false,
            "version": "v2.22.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/gorilla/css",
            "direct": false,
            "version": "v1.0.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/inconshreveable/mousetrap",
            "direct": false,
            "version": "v1.1.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/json-iterator/go",
            "direct": false,
            "version": "v1.1.12",
            "ecosystem": "go"
          },
          {
            "name": "github.com/kennygrant/sanitize",
            "direct": false,
            "version": "v1.2.4",
            "ecosystem": "go"
          },
          {
            "name": "github.com/klauspost/compress",
            "direct": false,
            "version": "v1.18.6",
            "ecosystem": "go"
          },
          {
            "name": "github.com/klauspost/cpuid/v2",
            "direct": false,
            "version": "v2.3.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/lucasb-eyer/go-colorful",
            "direct": false,
            "version": "v1.4.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/mattn/go-colorable",
            "direct": false,
            "version": "v0.1.15",
            "ecosystem": "go"
          },
          {
            "name": "github.com/mattn/go-isatty",
            "direct": false,
            "version": "v0.0.22",
            "ecosystem": "go"
          },
          {
            "name": "github.com/mattn/go-localereader",
            "direct": false,
            "version": "v0.0.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/mattn/go-runewidth",
            "direct": false,
            "version": "v0.0.24",
            "ecosystem": "go"
          },
          {
            "name": "github.com/microsoft/go-winio",
            "direct": false,
            "version": "v0.6.2",
            "ecosystem": "go"
          },
          {
            "name": "github.com/moby/docker-image-spec",
            "direct": false,
            "version": "v1.3.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/moby/sys/atomicwriter",
            "direct": false,
            "version": "v0.1.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/modern-go/concurrent",
            "direct": false,
            "version": "v0.0.0-20180306012644-bacd9c7ef1dd",
            "ecosystem": "go"
          },
          {
            "name": "github.com/modern-go/reflect2",
            "direct": false,
            "version": "v1.0.2",
            "ecosystem": "go"
          },
          {
            "name": "github.com/montanaflynn/stats",
            "direct": false,
            "version": "v0.9.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/morikuni/aec",
            "direct": false,
            "version": "v1.1.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/muesli/ansi",
            "direct": false,
            "version": "v0.0.0-20230316100256-276c6243b2f6",
            "ecosystem": "go"
          },
          {
            "name": "github.com/muesli/cancelreader",
            "direct": false,
            "version": "v0.2.2",
            "ecosystem": "go"
          },
          {
            "name": "github.com/muesli/reflow",
            "direct": false,
            "version": "v0.3.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/nlpodyssey/cybertron",
            "direct": false,
            "version": "v0.2.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/nlpodyssey/gopickle",
            "direct": false,
            "version": "v0.3.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/nlpodyssey/gotokenizers",
            "direct": false,
            "version": "v0.2.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/nlpodyssey/spago",
            "direct": false,
            "version": "v1.1.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/opencontainers/go-digest",
            "direct": false,
            "version": "v1.0.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/opencontainers/image-spec",
            "direct": false,
            "version": "v1.1.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/pkg/errors",
            "direct": false,
            "version": "v0.9.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/pmezard/go-difflib",
            "direct": false,
            "version": "v1.0.1-0.20181226105442-5d4384ee4fb2",
            "ecosystem": "go"
          },
          {
            "name": "github.com/redis/rueidis",
            "direct": false,
            "version": "v1.0.76",
            "ecosystem": "go"
          },
          {
            "name": "github.com/rivo/uniseg",
            "direct": false,
            "version": "v0.4.7",
            "ecosystem": "go"
          },
          {
            "name": "github.com/rs/zerolog",
            "direct": false,
            "version": "v1.35.1",
            "ecosystem": "go"
          },
          {
            "name": "github.com/saintfish/chardet",
            "direct": false,
            "version": "v0.0.0-20230101081208-5e3ef4b5456d",
            "ecosystem": "go"
          },
          {
            "name": "github.com/sirupsen/logrus",
            "direct": false,
            "version": "v1.9.4",
            "ecosystem": "go"
          },
          {
            "name": "github.com/spf13/pflag",
            "direct": false,
            "version": "v1.0.10",
            "ecosystem": "go"
          },
          {
            "name": "github.com/temoto/robotstxt",
            "direct": false,
            "version": "v1.1.2",
            "ecosystem": "go"
          },
          {
            "name": "github.com/xdg-go/pbkdf2",
            "direct": false,
            "version": "v1.0.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/xdg-go/scram",
            "direct": false,
            "version": "v1.2.0",
            "ecosystem": "go"
          },
          {
            "name": "github.com/xdg-go/stringprep",
            "direct": false,
            "version": "v1.0.4",
            "ecosystem": "go"
          },
          {
            "name": "github.com/xeipuuv/gojsonpointer",
            "direct": false,
            "version": "v0.0.0-20190905194746-02993c407bfb",
            "ecosystem": "go"
          },
          {
            "name": "github.com/xeipuuv/gojsonreference",
            "direct": false,
            "version": "v0.0.0-20180127040603-bd5ef7bd5415",
            "ecosystem": "go"
          },
          {
            "name": "github.com/xo/terminfo",
            "direct": false,
            "version": "v0.0.0-20220910002029-abceb7e1c41e",
            "ecosystem": "go"
          },
          {
            "name": "github.com/youmark/pkcs8",
            "direct": false,
            "version": "v0.0.0-20240726163527-a2c0da244d78",
            "ecosystem": "go"
          },
          {
            "name": "github.com/yuin/goldmark",
            "direct": false,
            "version": "v1.8.2",
            "ecosystem": "go"
          },
          {
            "name": "github.com/yuin/goldmark-emoji",
            "direct": false,
            "version": "v1.0.6",
            "ecosystem": "go"
          },
          {
            "name": "github.com/zeebo/blake3",
            "direct": false,
            "version": "v0.2.4",
            "ecosystem": "go"
          },
          {
            "name": "gitlab.com/golang-commonmark/html",
            "direct": false,
            "version": "v0.0.0-20191124015941-a22733972181",
            "ecosystem": "go"
          },
          {
            "name": "gitlab.com/golang-commonmark/linkify",
            "direct": false,
            "version": "v0.0.0-20200225224916-64bca66f6ad3",
            "ecosystem": "go"
          },
          {
            "name": "gitlab.com/golang-commonmark/markdown",
            "direct": false,
            "version": "v0.0.0-20211110145824-bf3e522c626a",
            "ecosystem": "go"
          },
          {
            "name": "gitlab.com/golang-commonmark/mdurl",
            "direct": false,
            "version": "v0.0.0-20191124015652-932350d1cb84",
            "ecosystem": "go"
          },
          {
            "name": "gitlab.com/golang-commonmark/puny",
            "direct": false,
            "version": "v0.0.0-20191124015043-9f83538fa04f",
            "ecosystem": "go"
          },
          {
            "name": "go.opentelemetry.io/auto/sdk",
            "direct": false,
            "version": "v1.2.1",
            "ecosystem": "go"
          },
          {
            "name": "go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc",
            "direct": false,
            "version": "v0.69.0",
            "ecosystem": "go"
          },
          {
            "name": "go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp",
            "direct": false,
            "version": "v0.69.0",
            "ecosystem": "go"
          },
          {
            "name": "go.opentelemetry.io/otel",
            "direct": false,
            "version": "v1.44.0",
            "ecosystem": "go"
          },
          {
            "name": "go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp",
            "direct": false,
            "version": "v1.43.0",
            "ecosystem": "go"
          },
          {
            "name": "go.opentelemetry.io/otel/metric",
            "direct": false,
            "version": "v1.44.0",
            "ecosystem": "go"
          },
          {
            "name": "go.opentelemetry.io/otel/trace",
            "direct": false,
            "version": "v1.44.0",
            "ecosystem": "go"
          },
          {
            "name": "go.starlark.net",
            "direct": false,
            "version": "v0.0.0-20260613233743-8ba36ccb83fb",
            "ecosystem": "go"
          },
          {
            "name": "go.yaml.in/yaml/v2",
            "direct": false,
            "version": "v2.4.4",
            "ecosystem": "go"
          },
          {
            "name": "golang.org/x/crypto",
            "direct": false,
            "version": "v0.54.0",
            "ecosystem": "go"
          },
          {
            "name": "golang.org/x/exp",
            "direct": false,
            "version": "v0.0.0-20260611194520-c48552f49976",
            "ecosystem": "go"
          },
          {
            "name": "golang.org/x/mod",
            "direct": false,
            "version": "v0.37.0",
            "ecosystem": "go"
          },
          {
            "name": "golang.org/x/oauth2",
            "direct": false,
            "version": "v0.36.0",
            "ecosystem": "go"
          },
          {
            "name": "golang.org/x/sync",
            "direct": false,
            "version": "v0.22.0",
            "ecosystem": "go"
          },
          {
            "name": "golang.org/x/telemetry",
            "direct": false,
            "version": "v0.0.0-20260625142307-59b4966ccb57",
            "ecosystem": "go"
          },
          {
            "name": "golang.org/x/text",
            "direct": false,
            "version": "v0.40.0",
            "ecosystem": "go"
          },
          {
            "name": "golang.org/x/tools",
            "direct": false,
            "version": "v0.47.0",
            "ecosystem": "go"
          },
          {
            "name": "golang.org/x/vuln",
            "direct": false,
            "version": "v1.3.0",
            "ecosystem": "go"
          },
          {
            "name": "google.golang.org/api",
            "direct": false,
            "version": "v0.285.0",
            "ecosystem": "go"
          },
          {
            "name": "google.golang.org/appengine",
            "direct": false,
            "version": "v1.6.8",
            "ecosystem": "go"
          },
          {
            "name": "google.golang.org/genai",
            "direct": false,
            "version": "v1.61.0",
            "ecosystem": "go"
          },
          {
            "name": "google.golang.org/genproto",
            "direct": false,
            "version": "v0.0.0-20260618152121-87f3d3e198d3",
            "ecosystem": "go"
          },
          {
            "name": "google.golang.org/genproto/googleapis/api",
            "direct": false,
            "version": "v0.0.0-20260618152121-87f3d3e198d3",
            "ecosystem": "go"
          },
          {
            "name": "google.golang.org/genproto/googleapis/rpc",
            "direct": false,
            "version": "v0.0.0-20260618152121-87f3d3e198d3",
            "ecosystem": "go"
          },
          {
            "name": "google.golang.org/grpc",
            "direct": false,
            "version": "v1.81.1",
            "ecosystem": "go"
          },
          {
            "name": "google.golang.org/protobuf",
            "direct": false,
            "version": "v1.36.11",
            "ecosystem": "go"
          },
          {
            "name": "gotest.tools/v3",
            "direct": false,
            "version": "v3.5.2",
            "ecosystem": "go"
          },
          {
            "name": "sigs.k8s.io/yaml",
            "direct": false,
            "version": "v1.6.0",
            "ecosystem": "go"
          },
          {
            "name": "@algolia/abtesting",
            "direct": false,
            "version": "1.16.2",
            "ecosystem": "npm"
          },
          {
            "name": "@algolia/abtesting",
            "direct": false,
            "version": "1.20.0",
            "ecosystem": "npm"
          },
          {
            "name": "@algolia/autocomplete-core",
            "direct": false,
            "version": "1.17.7",
            "ecosystem": "npm"
          },
          {
            "name": "@algolia/autocomplete-plugin-algolia-insights",
            "direct": false,
            "version": "1.17.7",
            "ecosystem": "npm"
          },
          {
            "name": "@algolia/autocomplete-preset-algolia",
            "direct": false,
            "version": "1.17.7",
            "ecosystem": "npm"
          },
          {
            "name": "@algolia/autocomplete-shared",
            "direct": false,
            "version": "1.17.7",
            "ecosystem": "npm"
          },
          {
            "name": "@algolia/client-abtesting",
            "direct": false,
            "version": "5.50.2",
            "ecosystem": "npm"
          },
          {
            "name": "@algolia/client-abtesting",
            "direct": false,
            "version": "5.54.0",
            "ecosystem": "npm"
          },
          {
            "name": "@algolia/client-analytics",
            "direct": false,
            "version": "5.50.2",
            "ecosystem": "npm"
          },
          {
            "name": "@algolia/client-analytics",
            "direct": false,
            "version": "5.54.0",
            "ecosystem": "npm"
          },
          {
            "name": "@algolia/client-common",
            "direct": false,
            "version": "5.50.2",
            "ecosystem": "npm"
          },
          {
            "name": "@algolia/client-common",
            "direct": false,
            "version": "5.54.0",
            "ecosystem": "npm"
          },
          {
            "name": "@algolia/client-insights",
            "direct": false,
            "version": "5.50.2",
            "ecosystem": "npm"
          },
          {
            "name": "@algolia/client-insights",
            "direct": false,
            "version": "5.54.0",
            "ecosystem": "npm"
          },
          {
            "name": "@algolia/client-personalization",
            "direct": false,
            "version": "5.50.2",
            "ecosystem": "npm"
          },
          {
            "name": "@algolia/client-personalization",
            "direct": false,
            "version": "5.54.0",
            "ecosystem": "npm"
          },
          {
            "name": "@algolia/client-query-suggestions",
            "direct": false,
            "version": "5.50.2",
            "ecosystem": "npm"
          },
          {
            "name": "@algolia/client-query-suggestions",
            "direct": false,
            "version": "5.54.0",
            "ecosystem": "npm"
          },
          {
            "name": "@algolia/client-search",
            "direct": false,
            "version": "5.50.2",
            "ecosystem": "npm"
          },
          {
            "name": "@algolia/client-search",
            "direct": false,
            "version": "5.54.0",
            "ecosystem": "npm"
          },
          {
            "name": "@algolia/ingestion",
            "direct": false,
            "version": "1.50.2",
            "ecosystem": "npm"
          },
          {
            "name": "@algolia/ingestion",
            "direct": false,
            "version": "1.54.0",
            "ecosystem": "npm"
          },
          {
            "name": "@algolia/monitoring",
            "direct": false,
            "version": "1.50.2",
            "ecosystem": "npm"
          },
          {
            "name": "@algolia/monitoring",
            "direct": false,
            "version": "1.54.0",
            "ecosystem": "npm"
          },
          {
            "name": "@algolia/recommend",
            "direct": false,
            "version": "5.50.2",
            "ecosystem": "npm"
          },
          {
            "name": "@algolia/recommend",
            "direct": false,
            "version": "5.54.0",
            "ecosystem": "npm"
          },
          {
            "name": "@algolia/requester-browser-xhr",
            "direct": false,
            "version": "5.50.2",
            "ecosystem": "npm"
          },
          {
            "name": "@algolia/requester-browser-xhr",
            "direct": false,
            "version": "5.54.0",
            "ecosystem": "npm"
          },
          {
            "name": "@algolia/requester-fetch",
            "direct": false,
            "version": "5.50.2",
            "ecosystem": "npm"
          },
          {
            "name": "@algolia/requester-fetch",
            "direct": false,
            "version": "5.54.0",
            "ecosystem": "npm"
          },
          {
            "name": "@algolia/requester-node-http",
            "direct": false,
            "version": "5.50.2",
            "ecosystem": "npm"
          },
          {
            "name": "@algolia/requester-node-http",
            "direct": false,
            "version": "5.54.0",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-string-parser",
            "direct": false,
            "version": "7.27.1",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-string-parser",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-validator-identifier",
            "direct": false,
            "version": "7.28.5",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-validator-identifier",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/parser",
            "direct": false,
            "version": "7.29.2",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/parser",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/types",
            "direct": false,
            "version": "7.29.0",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/types",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@docsearch/css",
            "direct": false,
            "version": "3.8.2",
            "ecosystem": "npm"
          },
          {
            "name": "@docsearch/js",
            "direct": false,
            "version": "3.8.2",
            "ecosystem": "npm"
          },
          {
            "name": "@docsearch/react",
            "direct": false,
            "version": "3.8.2",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/aix-ppc64",
            "direct": false,
            "version": "0.25.12",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/android-arm",
            "direct": false,
            "version": "0.25.12",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/android-arm64",
            "direct": false,
            "version": "0.25.12",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/android-x64",
            "direct": false,
            "version": "0.25.12",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/darwin-arm64",
            "direct": false,
            "version": "0.25.12",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/darwin-x64",
            "direct": false,
            "version": "0.25.12",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/freebsd-arm64",
            "direct": false,
            "version": "0.25.12",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/freebsd-x64",
            "direct": false,
            "version": "0.25.12",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-arm",
            "direct": false,
            "version": "0.25.12",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-arm64",
            "direct": false,
            "version": "0.25.12",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-ia32",
            "direct": false,
            "version": "0.25.12",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-loong64",
            "direct": false,
            "version": "0.25.12",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-mips64el",
            "direct": false,
            "version": "0.25.12",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-ppc64",
            "direct": false,
            "version": "0.25.12",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-riscv64",
            "direct": false,
            "version": "0.25.12",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-s390x",
            "direct": false,
            "version": "0.25.12",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-x64",
            "direct": false,
            "version": "0.25.12",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/netbsd-arm64",
            "direct": false,
            "version": "0.25.12",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/netbsd-x64",
            "direct": false,
            "version": "0.25.12",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/openbsd-arm64",
            "direct": false,
            "version": "0.25.12",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/openbsd-x64",
            "direct": false,
            "version": "0.25.12",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/openharmony-arm64",
            "direct": false,
            "version": "0.25.12",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/sunos-x64",
            "direct": false,
            "version": "0.25.12",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/win32-arm64",
            "direct": false,
            "version": "0.25.12",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/win32-ia32",
            "direct": false,
            "version": "0.25.12",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/win32-x64",
            "direct": false,
            "version": "0.25.12",
            "ecosystem": "npm"
          },
          {
            "name": "@iconify-json/simple-icons",
            "direct": false,
            "version": "1.2.78",
            "ecosystem": "npm"
          },
          {
            "name": "@iconify-json/simple-icons",
            "direct": false,
            "version": "1.2.86",
            "ecosystem": "npm"
          },
          {
            "name": "@iconify/types",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/sourcemap-codec",
            "direct": false,
            "version": "1.5.5",
            "ecosystem": "npm"
          },
          {
            "name": "@puppeteer/browsers",
            "direct": false,
            "version": "3.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-android-arm-eabi",
            "direct": false,
            "version": "4.60.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-android-arm-eabi",
            "direct": false,
            "version": "4.62.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-android-arm64",
            "direct": false,
            "version": "4.60.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-android-arm64",
            "direct": false,
            "version": "4.62.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-darwin-arm64",
            "direct": false,
            "version": "4.60.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-darwin-arm64",
            "direct": false,
            "version": "4.62.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-darwin-x64",
            "direct": false,
            "version": "4.60.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-darwin-x64",
            "direct": false,
            "version": "4.62.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-freebsd-arm64",
            "direct": false,
            "version": "4.60.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-freebsd-arm64",
            "direct": false,
            "version": "4.62.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-freebsd-x64",
            "direct": false,
            "version": "4.60.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-freebsd-x64",
            "direct": false,
            "version": "4.62.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-arm-gnueabihf",
            "direct": false,
            "version": "4.60.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-arm-gnueabihf",
            "direct": false,
            "version": "4.62.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-arm-musleabihf",
            "direct": false,
            "version": "4.60.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-arm-musleabihf",
            "direct": false,
            "version": "4.62.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-arm64-gnu",
            "direct": false,
            "version": "4.60.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-arm64-gnu",
            "direct": false,
            "version": "4.62.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-arm64-musl",
            "direct": false,
            "version": "4.60.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-arm64-musl",
            "direct": false,
            "version": "4.62.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-loong64-gnu",
            "direct": false,
            "version": "4.60.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-loong64-gnu",
            "direct": false,
            "version": "4.62.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-loong64-musl",
            "direct": false,
            "version": "4.60.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-loong64-musl",
            "direct": false,
            "version": "4.62.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-ppc64-gnu",
            "direct": false,
            "version": "4.60.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-ppc64-gnu",
            "direct": false,
            "version": "4.62.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-ppc64-musl",
            "direct": false,
            "version": "4.60.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-ppc64-musl",
            "direct": false,
            "version": "4.62.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-riscv64-gnu",
            "direct": false,
            "version": "4.60.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-riscv64-gnu",
            "direct": false,
            "version": "4.62.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-riscv64-musl",
            "direct": false,
            "version": "4.60.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-riscv64-musl",
            "direct": false,
            "version": "4.62.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-s390x-gnu",
            "direct": false,
            "version": "4.60.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-s390x-gnu",
            "direct": false,
            "version": "4.62.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-x64-gnu",
            "direct": false,
            "version": "4.60.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-x64-gnu",
            "direct": false,
            "version": "4.62.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-x64-musl",
            "direct": false,
            "version": "4.60.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-x64-musl",
            "direct": false,
            "version": "4.62.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-openbsd-x64",
            "direct": false,
            "version": "4.60.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-openbsd-x64",
            "direct": false,
            "version": "4.62.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-openharmony-arm64",
            "direct": false,
            "version": "4.60.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-openharmony-arm64",
            "direct": false,
            "version": "4.62.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-win32-arm64-msvc",
            "direct": false,
            "version": "4.60.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-win32-arm64-msvc",
            "direct": false,
            "version": "4.62.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-win32-ia32-msvc",
            "direct": false,
            "version": "4.60.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-win32-ia32-msvc",
            "direct": false,
            "version": "4.62.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-win32-x64-gnu",
            "direct": false,
            "version": "4.60.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-win32-x64-gnu",
            "direct": false,
            "version": "4.62.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-win32-x64-msvc",
            "direct": false,
            "version": "4.60.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-win32-x64-msvc",
            "direct": false,
            "version": "4.62.0",
            "ecosystem": "npm"
          },
          {
            "name": "@shikijs/core",
            "direct": false,
            "version": "2.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "@shikijs/engine-javascript",
            "direct": false,
            "version": "2.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "@shikijs/engine-oniguruma",
            "direct": false,
            "version": "2.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "@shikijs/langs",
            "direct": false,
            "version": "2.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "@shikijs/themes",
            "direct": false,
            "version": "2.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "@shikijs/transformers",
            "direct": false,
            "version": "2.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "@shikijs/types",
            "direct": false,
            "version": "2.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "@shikijs/vscode-textmate",
            "direct": false,
            "version": "10.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@types/estree",
            "direct": false,
            "version": "1.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "@types/estree",
            "direct": false,
            "version": "1.0.9",
            "ecosystem": "npm"
          },
          {
            "name": "@types/hast",
            "direct": false,
            "version": "3.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "@types/linkify-it",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "@types/markdown-it",
            "direct": false,
            "version": "14.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "@types/mdast",
            "direct": false,
            "version": "4.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "@types/mdurl",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "@types/unist",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/web-bluetooth",
            "direct": false,
            "version": "0.0.21",
            "ecosystem": "npm"
          },
          {
            "name": "@ungap/structured-clone",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "@ungap/structured-clone",
            "direct": false,
            "version": "1.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "@vitejs/plugin-vue",
            "direct": false,
            "version": "5.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/compiler-core",
            "direct": false,
            "version": "3.5.32",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/compiler-core",
            "direct": false,
            "version": "3.5.38",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/compiler-dom",
            "direct": false,
            "version": "3.5.32",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/compiler-dom",
            "direct": false,
            "version": "3.5.38",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/compiler-sfc",
            "direct": false,
            "version": "3.5.32",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/compiler-sfc",
            "direct": false,
            "version": "3.5.38",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/compiler-ssr",
            "direct": false,
            "version": "3.5.32",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/compiler-ssr",
            "direct": false,
            "version": "3.5.38",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/devtools-api",
            "direct": false,
            "version": "7.7.9",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/devtools-kit",
            "direct": false,
            "version": "7.7.9",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/devtools-shared",
            "direct": false,
            "version": "7.7.9",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/reactivity",
            "direct": false,
            "version": "3.5.32",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/reactivity",
            "direct": false,
            "version": "3.5.38",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/runtime-core",
            "direct": false,
            "version": "3.5.32",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/runtime-core",
            "direct": false,
            "version": "3.5.38",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/runtime-dom",
            "direct": false,
            "version": "3.5.32",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/runtime-dom",
            "direct": false,
            "version": "3.5.38",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/server-renderer",
            "direct": false,
            "version": "3.5.32",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/server-renderer",
            "direct": false,
            "version": "3.5.38",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/shared",
            "direct": false,
            "version": "3.5.32",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/shared",
            "direct": false,
            "version": "3.5.38",
            "ecosystem": "npm"
          },
          {
            "name": "@vueuse/core",
            "direct": false,
            "version": "12.8.2",
            "ecosystem": "npm"
          },
          {
            "name": "@vueuse/integrations",
            "direct": false,
            "version": "12.8.2",
            "ecosystem": "npm"
          },
          {
            "name": "@vueuse/metadata",
            "direct": false,
            "version": "12.8.2",
            "ecosystem": "npm"
          },
          {
            "name": "@vueuse/shared",
            "direct": false,
            "version": "12.8.2",
            "ecosystem": "npm"
          },
          {
            "name": "algoliasearch",
            "direct": false,
            "version": "5.50.2",
            "ecosystem": "npm"
          },
          {
            "name": "algoliasearch",
            "direct": false,
            "version": "5.54.0",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-regex",
            "direct": false,
            "version": "6.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-styles",
            "direct": false,
            "version": "6.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "birpc",
            "direct": false,
            "version": "2.9.0",
            "ecosystem": "npm"
          },
          {
            "name": "ccount",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "character-entities-html4",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "character-entities-legacy",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "chromium-bidi",
            "direct": false,
            "version": "16.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "cliui",
            "direct": false,
            "version": "9.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "comma-separated-tokens",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "copy-anything",
            "direct": false,
            "version": "4.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "csstype",
            "direct": false,
            "version": "3.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "dequal",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "devlop",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "devtools-protocol",
            "direct": false,
            "version": "0.0.1638949",
            "ecosystem": "npm"
          },
          {
            "name": "emoji-regex",
            "direct": false,
            "version": "10.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "emoji-regex-xs",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "entities",
            "direct": false,
            "version": "7.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "esbuild",
            "direct": false,
            "version": "0.25.12",
            "ecosystem": "npm"
          },
          {
            "name": "escalade",
            "direct": false,
            "version": "3.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "estree-walker",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "fdir",
            "direct": false,
            "version": "6.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "focus-trap",
            "direct": false,
            "version": "7.8.0",
            "ecosystem": "npm"
          },
          {
            "name": "fsevents",
            "direct": false,
            "version": "2.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "get-caller-file",
            "direct": false,
            "version": "2.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "get-east-asian-width",
            "direct": false,
            "version": "1.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "hast-util-to-html",
            "direct": false,
            "version": "9.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "hast-util-whitespace",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "hookable",
            "direct": false,
            "version": "5.5.3",
            "ecosystem": "npm"
          },
          {
            "name": "html-void-elements",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-what",
            "direct": false,
            "version": "5.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "lilconfig",
            "direct": false,
            "version": "3.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "magic-string",
            "direct": false,
            "version": "0.30.21",
            "ecosystem": "npm"
          },
          {
            "name": "mark.js",
            "direct": false,
            "version": "8.11.1",
            "ecosystem": "npm"
          },
          {
            "name": "mdast-util-to-hast",
            "direct": false,
            "version": "13.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-util-character",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-util-encode",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-util-sanitize-uri",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-util-symbol",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-util-types",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "minisearch",
            "direct": false,
            "version": "7.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "mitt",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "modern-tar",
            "direct": false,
            "version": "0.7.6",
            "ecosystem": "npm"
          },
          {
            "name": "nanoid",
            "direct": false,
            "version": "3.3.12",
            "ecosystem": "npm"
          },
          {
            "name": "oniguruma-to-es",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "perfect-debounce",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "picocolors",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "picomatch",
            "direct": false,
            "version": "4.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "postcss",
            "direct": false,
            "version": "8.5.15",
            "ecosystem": "npm"
          },
          {
            "name": "preact",
            "direct": false,
            "version": "10.29.1",
            "ecosystem": "npm"
          },
          {
            "name": "preact",
            "direct": false,
            "version": "10.29.2",
            "ecosystem": "npm"
          },
          {
            "name": "property-information",
            "direct": false,
            "version": "7.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "property-information",
            "direct": false,
            "version": "7.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "puppeteer",
            "direct": false,
            "version": "25.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "puppeteer-core",
            "direct": false,
            "version": "25.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "regex",
            "direct": false,
            "version": "6.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "regex-recursion",
            "direct": false,
            "version": "6.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "regex-utilities",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "rfdc",
            "direct": false,
            "version": "1.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "rollup",
            "direct": false,
            "version": "4.60.1",
            "ecosystem": "npm"
          },
          {
            "name": "rollup",
            "direct": false,
            "version": "4.62.0",
            "ecosystem": "npm"
          },
          {
            "name": "search-insights",
            "direct": false,
            "version": "2.17.3",
            "ecosystem": "npm"
          },
          {
            "name": "shiki",
            "direct": false,
            "version": "2.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "source-map-js",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "space-separated-tokens",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "speakingurl",
            "direct": false,
            "version": "14.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "string-width",
            "direct": false,
            "version": "7.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "stringify-entities",
            "direct": false,
            "version": "4.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "strip-ansi",
            "direct": false,
            "version": "7.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "superjson",
            "direct": false,
            "version": "2.2.6",
            "ecosystem": "npm"
          },
          {
            "name": "tabbable",
            "direct": false,
            "version": "6.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "tinyglobby",
            "direct": false,
            "version": "0.2.17",
            "ecosystem": "npm"
          },
          {
            "name": "trim-lines",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "typed-query-selector",
            "direct": false,
            "version": "2.12.2",
            "ecosystem": "npm"
          },
          {
            "name": "unist-util-is",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "unist-util-position",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "unist-util-stringify-position",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "unist-util-visit",
            "direct": false,
            "version": "5.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "unist-util-visit-parents",
            "direct": false,
            "version": "6.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "vfile",
            "direct": false,
            "version": "6.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "vfile-message",
            "direct": false,
            "version": "4.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "vite",
            "direct": false,
            "version": "6.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "vitepress",
            "direct": false,
            "version": "1.6.4",
            "ecosystem": "npm"
          },
          {
            "name": "vitepress-plugin-d2",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "vue",
            "direct": false,
            "version": "3.5.32",
            "ecosystem": "npm"
          },
          {
            "name": "vue",
            "direct": false,
            "version": "3.5.38",
            "ecosystem": "npm"
          },
          {
            "name": "webdriver-bidi-protocol",
            "direct": false,
            "version": "0.4.2",
            "ecosystem": "npm"
          },
          {
            "name": "wrap-ansi",
            "direct": false,
            "version": "9.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "ws",
            "direct": false,
            "version": "8.21.0",
            "ecosystem": "npm"
          },
          {
            "name": "y18n",
            "direct": false,
            "version": "5.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "yargs",
            "direct": false,
            "version": "18.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "yargs-parser",
            "direct": false,
            "version": "22.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "zod",
            "direct": false,
            "version": "3.25.76",
            "ecosystem": "npm"
          },
          {
            "name": "zwitch",
            "direct": false,
            "version": "2.0.4",
            "ecosystem": "npm"
          }
        ],
        "collected": true,
        "truncated": false,
        "total_count": 465,
        "direct_count": 44,
        "indirect_count": 421
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 3,
        "merged_prs": 220,
        "open_issues": 11,
        "closed_ratio": 0.972,
        "closed_issues": 378,
        "closed_unmerged_prs": 29
      },
      "bus_factor": 1,
      "bot_contributors": 3,
      "top_contributors": [
        {
          "type": "User",
          "login": "jjuliano",
          "commits": 2130,
          "avatar_url": "https://avatars.githubusercontent.com/u/439095?v=4"
        }
      ],
      "contributors_sampled": 1,
      "top_contributor_share": 1
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "build-test.yml",
        "bump-version.yaml",
        "cleanup.yml",
        "codeql.yml",
        "dependabot-auto-merge.yml",
        "docs.yml",
        "nightly-release.yml",
        "release.yml"
      ],
      "has_docs_dir": true,
      "linter_configs": [
        ".golangci.yml"
      ],
      "has_editorconfig": false,
      "has_linter_config": true,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [
        "go.sum",
        "package-lock.json"
      ],
      "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": null,
            "reason": "no pull request found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
          },
          {
            "name": "CII-Best-Practices",
            "score": 0,
            "reason": "no effort to earn an OpenSSF best practices badge detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
          },
          {
            "name": "Code-Review",
            "score": 0,
            "reason": "Found 0/30 approved changesets -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 6,
            "reason": "project has 2 contributing companies or organizations -- score normalized to 6",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": 10,
            "reason": "no dangerous workflow patterns detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 10,
            "reason": "update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 0,
            "reason": "project is not fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 10,
            "reason": "license file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 10,
            "reason": "30 commit(s) and 30 issue activity found in the last 90 days -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
          },
          {
            "name": "Packaging",
            "score": 10,
            "reason": "packaging workflow detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": null,
            "reason": "internal error: internal error: invalid Dockerfile: Syntax error - can't find = in \"{{-\". Must be of the form: name=value",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 10,
            "reason": "SAST tool detected: CodeQL",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 4,
            "reason": "security policy file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
          },
          {
            "name": "Signed-Releases",
            "score": 0,
            "reason": "Project has not signed or included provenance with any releases.",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
          },
          {
            "name": "Token-Permissions",
            "score": 0,
            "reason": "detected GitHub workflow tokens with excessive permissions",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 3,
            "reason": "7 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "913d19631bcbeb4f4574ab3b6db8c0f3619fa2fc",
        "ran_at": "2026-07-24T06:33:19Z",
        "aggregate_score": 5.2,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": true,
      "has_security_policy": true,
      "has_dependabot_config": true
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-07-24T06:10:43Z",
      "oldest_open_prs": [
        {
          "number": 640,
          "created_at": "2026-07-20T17:45:12Z",
          "last_comment_at": "2026-07-20T17:45:13Z",
          "last_comment_author": "dependabot"
        },
        {
          "number": 641,
          "created_at": "2026-07-20T17:45:15Z",
          "last_comment_at": "2026-07-20T17:45:16Z",
          "last_comment_author": "dependabot"
        },
        {
          "number": 642,
          "created_at": "2026-07-20T17:45:19Z",
          "last_comment_at": "2026-07-20T17:45:20Z",
          "last_comment_author": "dependabot"
        }
      ],
      "last_merged_pr_at": "2026-07-21T21:17:26Z",
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": [
        {
          "number": 222,
          "created_at": "2026-05-06T07:29:20Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 223,
          "created_at": "2026-05-06T07:29:22Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 225,
          "created_at": "2026-05-06T07:29:27Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 226,
          "created_at": "2026-05-06T07:29:29Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 227,
          "created_at": "2026-05-06T07:29:32Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 228,
          "created_at": "2026-05-06T07:29:34Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 308,
          "created_at": "2026-05-08T08:23:07Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 335,
          "created_at": "2026-05-22T11:45:37Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 459,
          "created_at": "2026-06-11T11:54:30Z",
          "last_comment_at": "2026-07-11T20:37:50Z",
          "last_comment_author": "jjuliano"
        },
        {
          "number": 575,
          "created_at": "2026-06-21T17:33:18Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 576,
          "created_at": "2026-06-21T17:33:34Z",
          "last_comment_at": null,
          "last_comment_author": null
        }
      ]
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/kdeps/kdeps",
    "host": "github.com",
    "name": "kdeps",
    "owner": "kdeps"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "moderate",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 67,
      "inputs": {
        "security": 53,
        "vitality": 89,
        "community": 49,
        "governance": 57,
        "engineering": 84
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "excellent",
        "name": "Vitality",
        "value": 89,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "excellent",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 88,
            "inputs": {
              "commits_last_year": 1953,
              "human_commit_share": 0.92,
              "days_since_last_push": 0,
              "active_weeks_last_year": 35
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 0 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 0
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "35/52 weeks with commits",
                "points": 24.2,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 35
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "1953 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 1953
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "30 commit(s) and 30 issue activity found in the last 90 days -- score normalized to 10",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "excellent",
            "name": "Release discipline",
            "note": null,
            "notes": [],
            "value": 90,
            "inputs": {
              "releases_count": 100,
              "latest_release_tag": "v2.1.2-nightly202607240533",
              "releases_from_tags": false,
              "days_since_latest_release": 0,
              "mean_days_between_releases": 0.8
            },
            "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 0 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 0
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~0.8 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 0.8
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "Project has not signed or included provenance with any releases.",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "excellent",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "cap": null,
              "state": "maintained",
              "guards": [],
              "signals": [],
              "red_flag": false,
              "multiplier_pct": 100,
              "declared_reason": null,
              "unverified_reason": null,
              "unanswered_open_prs": null,
              "unanswered_open_issues": null,
              "days_since_last_merged_pr": null,
              "days_since_last_human_commit": 0,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "last human commit 0 days ago",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_maintained",
                    "params": {
                      "days": 0
                    }
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "at_risk",
        "name": "Community & Adoption",
        "value": 49,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "at_risk",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 30,
            "inputs": {
              "forks": 5,
              "stars": 35,
              "watchers": 1,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "35 stars",
                "points": 24.8,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 35
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "5 forks",
                "points": 5,
                "status": "partial",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 5
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "1 watchers",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "good",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 70,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "has_contributing": true,
              "has_issue_template": false,
              "has_code_of_conduct": false,
              "has_pull_request_template": false
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "recognized license (Apache-2.0)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "Apache-2.0"
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 18,
                "status": "met",
                "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": 57,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "critical",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 16,
            "inputs": {
              "bus_factor": 1,
              "contributors_sampled": 1,
              "top_contributor_share": 1
            },
            "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 100% of commits",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 100
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "1 contributors",
                "points": 1.4,
                "status": "partial",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 2 contributing companies or organizations -- score normalized to 6",
                "points": 6,
                "status": "partial",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "good",
            "name": "Issue & PR responsiveness",
            "note": null,
            "notes": [],
            "value": 79,
            "inputs": {
              "merged_prs": 220,
              "open_issues": 11,
              "closed_issues": 378,
              "issue_closed_ratio": 0.972,
              "closed_unmerged_prs": 29
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "97% of issues closed",
                "points": 45.4,
                "status": "partial",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 97
                    }
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "220/249 decided PRs merged",
                "points": 33.8,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 220,
                      "decided": 249
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 0/30 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "at_risk",
            "name": "Ownership & stewardship",
            "note": null,
            "notes": [],
            "value": 48,
            "inputs": {
              "followers": 6,
              "owner_type": "Organization",
              "is_verified": null,
              "owner_login": "kdeps",
              "public_repos": 11,
              "account_age_days": 790
            },
            "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": "6 followers of kdeps",
                "points": 6.1,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 6,
                      "login": "kdeps"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "11 public repos, account ~2 yr old",
                "points": 12.2,
                "status": "partial",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 11
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 2
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "excellent",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "github.com/kdeps/kdeps/v2"
              ],
              "ecosystems": "go",
              "any_deprecated": false,
              "min_days_since_publish": 0
            },
            "components": [
              {
                "key": "published_resolvable",
                "name": "Published & resolvable",
                "detail": "1 package(s) on go",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "packages_published",
                    "params": {
                      "count": 1,
                      "ecosystems": "go"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "publish_recency",
                "name": "Publish recency",
                "detail": "latest publish 0 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 0
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "108 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 108
                    }
                  }
                ],
                "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": "good",
        "name": "Engineering Quality",
        "value": 84,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "good",
            "name": "Engineering practices",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: CI-Tests. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_ci_tests"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 80,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": false,
              "has_linter_config": true,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "8 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 8
                    }
                  }
                ],
                "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": ".golangci.yml",
                "points": 16,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": ".golangci.yml"
                    }
                  }
                ],
                "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": "no pull request found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "excellent",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 90,
            "inputs": {
              "topics": [
                "agent",
                "llms",
                "workflow",
                "yaml",
                "orchestration",
                "ai",
                "llamafile",
                "nvidia",
                "agentic",
                "gguf"
              ],
              "has_wiki": false,
              "homepage": "https://kdeps.com",
              "has_readme": true,
              "has_docs_dir": true,
              "has_description": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 30,
                "status": "met",
                "details": [],
                "max_points": 30
              },
              {
                "key": "documentation_directory",
                "name": "Documentation directory",
                "detail": null,
                "points": 25,
                "status": "met",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": "https://kdeps.com",
                "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": "10 topics",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "topics_count",
                    "params": {
                      "count": 10
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "moderate",
        "name": "Security",
        "value": 53,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "moderate",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): CI-Tests, Pinned-Dependencies. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "ci_tests",
                    "pinned_dependencies"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 52,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 16,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 2,
              "scorecard_aggregate": 5.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": "no pull request found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "Found 0/30 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 2 contributing companies or organizations -- score normalized to 6",
                "points": 1.5,
                "status": "partial",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no dangerous workflow patterns detected",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "update tool detected",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is not fuzzed",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file detected",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "30 commit(s) and 30 issue activity found in the last 90 days -- score normalized to 10",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "packaging",
                "name": "Packaging",
                "detail": "packaging workflow detected",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "internal error: internal error: invalid Dockerfile: Syntax error - can't find = in \"{{-\". Must be of the form: name=value",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "SAST tool detected: CodeQL",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file detected",
                "points": 2,
                "status": "partial",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "Project has not signed or included provenance with any releases.",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "token_permissions",
                "name": "Token-Permissions",
                "detail": "detected GitHub workflow tokens with excessive permissions",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "7 existing vulnerabilities detected",
                "points": 2.2,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "dependency_advisories",
            "band": "moderate",
            "name": "Dependency advisories",
            "note": "Excluded from scoring (no data or not applicable): Indirect dependencies free of known advisories. Remaining weights renormalized. Matched 465 resolved dependencies against OSV. This repository publishes no package the index resolves, so the repository dependency graph was assessed instead. That graph mixes development and test pins with shipped dependencies, so only the declared runtime dependencies are scored; transitive findings are reported as context and excluded from the score. Reachability is not analyzed.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "indirect_dependencies_free_of_known_advisories"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              },
              {
                "code": "advisories_scope_repository",
                "params": {
                  "assessed": 465
                }
              },
              {
                "code": "advisories_repo_graph_caveat",
                "params": {}
              },
              {
                "code": "advisories_reachability",
                "params": {}
              }
            ],
            "value": 58,
            "inputs": {
              "source": "osv",
              "advisories": 12,
              "affected_packages": 3,
              "assessed_packages": 465,
              "unassessed_packages": 0,
              "affected_by_severity": "critical 1, high 1, unknown 1",
              "direct_affected_packages": 1
            },
            "components": [
              {
                "key": "direct_dependencies_free_of_known_advisories",
                "name": "Direct dependencies free of known advisories",
                "detail": "1 affected: github.com/docker/docker v28.5.2+incompatible (high 8.8)",
                "points": 10.4,
                "status": "partial",
                "details": [
                  {
                    "code": "advisories_affected",
                    "params": {
                      "count": 1,
                      "packages": "github.com/docker/docker v28.5.2+incompatible (high 8.8)"
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "indirect_dependencies_free_of_known_advisories",
                "name": "Indirect dependencies free of known advisories",
                "detail": "transitive set not separable from development and test dependencies in this scope",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "advisories_scope_not_separable",
                    "params": {}
                  }
                ],
                "max_points": 25
              },
              {
                "key": "no_advisories_left_outstanding",
                "name": "No advisories left outstanding",
                "detail": "1 advisory-carrying package(s) unaddressed past 90 days; oldest published 118 days ago",
                "points": 32.8,
                "status": "partial",
                "details": [
                  {
                    "code": "advisories_stale",
                    "params": {
                      "days": 90,
                      "count": 1,
                      "oldest": 118
                    }
                  }
                ],
                "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": 465,
              "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": 3
            },
            "components": [
              {
                "key": "policy_exposure_multiplier",
                "name": "Policy exposure multiplier",
                "detail": "no confirmed policy-scope location match",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "jurisdiction_no_match",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
      },
      {
        "key": "ai_readiness",
        "band": "good",
        "name": "AI Readiness",
        "value": 73,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "at_risk",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 0.989,
              "agent_instruction_files": [],
              "agent_instruction_max_bytes": null
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "no CLAUDE.md / AGENTS.md / editor rules",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_agent_instructions",
                    "params": {}
                  }
                ],
                "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": "91 of 92 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 91,
                      "sampled": 92
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "excellent",
            "name": "Verify loop (build / test / typecheck)",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Pinned-Dependencies. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_pinned_dependencies"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "go.sum",
                "package-lock.json"
              ],
              "has_dockerfile": true,
              "typed_language": true,
              "bootstrap_files": [
                "Makefile"
              ],
              "has_devcontainer": false,
              "has_linter_config": true,
              "typecheck_configs": [],
              "agent_commit_share": 0.85,
              "toolchain_manifests": [
                "go.mod"
              ],
              "dependency_bot_commit_share": 0.03
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": "Makefile",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "Makefile"
                    }
                  }
                ],
                "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": ".golangci.yml",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": ".golangci.yml"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": "Go (statically typed)",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "Go"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": "Dockerfile, lockfile",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "Dockerfile, lockfile"
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "85 of the last 100 commits agent-authored or agent-credited",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "agent_authored_commits",
                    "params": {
                      "count": 85,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "3 of the last 100 commits are automated dependency updates",
                "points": 8,
                "status": "met",
                "details": [
                  {
                    "code": "dependency_bot_commits",
                    "params": {
                      "count": 3,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "internal error: internal error: invalid Dockerfile: Syntax error - can't find = in \"{{-\". Must be of the form: name=value",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "excellent",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 99,
            "inputs": {
              "primary_language": "Go",
              "largest_source_bytes": 179778,
              "source_files_sampled": 1524,
              "oversized_source_files": 21
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "Go (statically typed)",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "Go"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "21/1524 source files over 60KB",
                "points": 54.2,
                "status": "partial",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 1524,
                      "oversized": 21
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          },
          {
            "key": "ai_interfaces",
            "band": "at_risk",
            "name": "Machine-readable interfaces",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "example_dirs": [
                "examples"
              ],
              "has_mcp_signal": false,
              "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": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "runnable_examples",
                "name": "Runnable examples",
                "detail": "examples",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "examples"
                    }
                  }
                ],
                "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-24T06:33:27.632443Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/k/kdeps/kdeps.svg",
  "full_name": "kdeps/kdeps",
  "license_state": "standard",
  "license_spdx": "Apache-2.0"
}

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

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

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