Звіт у форматі 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 <internals> 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 <internals> 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"
}