公开记录
软件健康报告模式 0.29.0 · 指标 2.5.0 · 2026-08-02 20:32 UTC

NeilMacMullen / kusto-loco

C# KQL query engine with flexible I/O layers and visualization

C#MIT★ 139 星标⑂ 26 复刻始于 2023年11月在 GitHub 上查看 ↗
类型命令行工具如何判定

NeilMacMullen/kusto-loco 的健康指数为 100 分中的 81 分,处于「优秀」区间。 其得分最高的类别是Vitality(89/100),最低的是AI Readiness(47/100)。 最近一次更新在 1 天前。 近期的大部分工作由 1 位贡献者完成。

81
总分 / 100
优秀

软件健康指数

指标归入加权类别,统一采用 1–100 量表。总体分先取类别加权平均,再依据公开记录的分布进行校准,使各等级具有百分位含义;当公开证据触发高风险司法辖区政策时,评级会按政策调整,并设置 34(存在风险)的上限。

81
卓越93-100公开记录中的最高层级(约前 5%);基本满足所有检验标准
优秀80-92各方面均表现强劲;仅有少量不足
良好65-79健康;不足之处有限且可控
中等50-64可接受,但存在明显不足;建议进行审查
薄弱35-49多个领域存在实质性薄弱环节
存在风险20-34存在重大薄弱环节;采用时应保持审慎
危急1-19问题严重(项目被弃置、仅有单一维护者、缺乏基本工程规范)
活力社区与采用可持续性与治理工程质量安全AI 就绪度

评分画像

每条轴代表一个类别。形状比平均值更重要——健康的对象会填满整个图形,而“一峰一谷”式画像意味着某一维度的优势正掩盖另一维度的风险。

加权总体分 69 经校准后在公布的指数量表上为 81(记录校准 2026-08-02)。

所有权

Neil MacMullen个人账户
28 关注者25 个公开仓库始于 2014年10月Sensize Ltd

该仓库由个人账户拥有。相较于组织支持的项目,单一所有者项目的延续性风险更高。

软件包生态系统

注册表软件包版本月下载量版本数最近发布
NuGetKustoLoco.Rendering1.4.7-390 天前
NuGetKustoLoco.FileFormats1.4.7-390 天前

按类别列示的指标

活力

项目是否仍有生命——是否仍在编写代码,是否仍在发布版本?

89优秀 · 占总体的 21%
评分方式
36/36推送新近度 — 最近一次推送于 1 天前
24.9/36提交节奏 — 52 周中有 36 周有提交
18/18提交量 — 最近一年 446 次提交
10/10OpenSSF Scorecard:Maintained — 30 commit(s) and 10 issue activity found in the last 90 days -- score normalized to 10
所用输入
commits_last_year446
human_commit_share1
days_since_last_push1
active_weeks_last_year36

发布纪律

90优秀
评分方式
27/27有发布版本 — 已发布 37 个发布版本
36/36发布时效 — 最近一次发布版本于 55 天前
27/27发布节奏 — 约每 30.5 天发布一次
0/10OpenSSF Scorecard:Signed-Releases — Project has not signed or included provenance with any releases.
所用输入
releases_count37
latest_release_tagv1.4.6
releases_from_tags
days_since_latest_release55
mean_days_between_releases30.5

社区与采用

项目是否拥有用户、下载量与关注度,并具备欢迎贡献者参与的配置?

57中等 · 占总体的 17%
评分方式
34.7/60星标 — 139 个星标
11.7/25复刻 — 26 个复刻
0/15关注者 — 2 位关注者
所用输入
forks26
stars139
watchers2
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history

社区健康

65良好
评分方式
22.5/22.5README
22.5/22.5许可证 — 可识别的许可证(MIT)
0/18CONTRIBUTING 指南
13.5/13.5行为准则
0/7.2议题模板
0/6.3PR 模板
所用输入
has_readme
has_license
readme_badges0
has_contributing
has_issue_template
has_code_of_conduct
readme_badge_services
has_pull_request_template
评分方式
49.6/80累计下载量 — nuget 合计历史 59,346 次下载
0/20注册表被依赖数 — 该生态系统不报告此项
所用输入
packagesKustoLoco.Rendering, KustoLoco.FileFormats
dependents
ecosystemsnuget
total_downloads59,346
monthly_downloads
已排除计分(无数据或不适用):注册表被依赖数。 其余权重已重新归一化。

可持续性与治理

项目能否在其成员之外延续——巴士系数、响应能力、由谁支持,以及软件包的维护状况?

60中等 · 占总体的 23%
评分方式
9/54巴士系数 — 1 位贡献者贡献了半数提交
4.4/22.5提交分布 — 头号贡献者编写了 80% 的提交
13.5/13.5贡献者广度 — 14 位贡献者
10/10OpenSSF Scorecard:Contributors — project has 6 contributing companies or organizations
所用输入
bus_factor1
contributors_sampled14
top_contributor_share0.805
评分方式
30.6/42议题解决 — 73% 的议题已关闭
24.5/30PR 接受 — 已裁定的 PR 中 378/463 已合并
0/13Newcomer PR acceptance — 30 天内没有首次贡献者的 PR 得到裁决
0/15OpenSSF Scorecard:Code-Review — Found 0/8 approved changesets -- score normalized to 0
所用输入
merged_prs378
open_issues32
closed_issues86
prs_merged_7d2
prs_decided_7d2
prs_merged_30d3
prs_decided_30d3
issue_closed_ratio0.729
closed_unmerged_prs85
first_time_authors_30d0
first_time_prs_merged_30d0
first_time_prs_decided_30d0
已排除计分(无数据或不适用):newcomer_pr_acceptance。 其余权重已重新归一化。
评分方式
10/30所有权背书 — 个人(用户)账户
0/20已验证域名 — 不适用于个人账户
10.5/25所有者影响力 — NeilMacMullen 有 28 位关注者
22.3/25既往记录 — 25 个公开仓库,账户约 11 年
所用输入
followers28
owner_typeUser
is_verified
owner_loginNeilMacMullen
public_repos25
account_age_days4,314
已排除计分(无数据或不适用):已验证域名。 其余权重已重新归一化。
评分方式
25/25已发布且可解析 — nuget 上有 2 个软件包
35/35发布时效 — 最近一次发布于 0 天前
20/20版本历史 — 39 个已发布版本
20/20未被弃用 — 活跃,未被弃用或撤回
所用输入
packagesKustoLoco.Rendering, KustoLoco.FileFormats
ecosystemsnuget
any_deprecated
min_days_since_publish0

工程质量

基础的工程与文档实践是否到位?

78良好 · 占总体的 19%

工程实践

74良好
评分方式
24/24CI 工作流 — 3 个工作流
24/24存在测试
0/16Linter 配置
0/9.6Pre-commit 钩子
6.4/6.4.editorconfig
20/20OpenSSF Scorecard:CI-Tests — 7 out of 7 merged PRs checked by a CI test -- score normalized to 10
所用输入
has_ci
has_tests
has_editorconfig
has_linter_config
has_precommit_config

文档

85优秀
评分方式
30/30README
25/25文档目录
0/15文档 / 主页站点
10/10仓库描述
10/10主题标签 — 5 个主题标签
10/10Wiki
所用输入
topicscharting, data-mining, data-visualization, kql, kusto
has_wiki
homepage
has_readme
has_docs_dir
has_description

安全

可见的安全与供应链实践是否稳固,且不存在未解决的高风险司法辖区暴露?

62中等 · 占总体的 16%

安全态势

62中等
评分方式
7.5/7.5Binary-Artifacts — no binaries found in the repo
0/7.5Branch-Protection — 无数据
2.5/2.5CI-Tests — 7 out of 7 merged PRs checked by a CI test -- score normalized to 10
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
0/7.5Code-Review — Found 0/8 approved changesets -- score normalized to 0
2.5/2.5Contributors — project has 6 contributing companies or organizations
10/10Dangerous-Workflow — no dangerous workflow patterns detected
7.5/7.5Dependency-Update-Tool — update tool detected
0/5Fuzzing — project is not fuzzed
2.5/2.5许可证 — license file detected
7.5/7.5Maintained — 30 commit(s) and 10 issue activity found in the last 90 days -- score normalized to 10
0/5Packaging — 无数据
0/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
5/5SAST — SAST tool is run on all commits
5/5Security-Policy — security policy file detected
0/7.5Signed-Releases — Project has not signed or included provenance with any releases.
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
7.5/7.5Vulnerabilities — 0 existing vulnerabilities detected
所用输入
sourceopenssf_scorecard
checks_evaluated16
scorecard_versionv5.5.0
checks_inconclusive2
scorecard_aggregate6.2
已排除计分(无数据或不适用):branch_protection, packaging。 其余权重已重新归一化。

AI 就绪度

该仓库在多大程度上具备与 AI 编码代理协同开发与维护的条件?权重刻意设小(4%):代理工具链是一项真实的维护信号,但完全不具备的仓库仍可达到 100/100。

47薄弱 · 占总体的 4%
评分方式
0/45代理指令 — 没有 CLAUDE.md / AGENTS.md / 编辑器规则
0/15机器可读文档(llms.txt)
19.7/40可读的提交历史 — 100 次人类提交中有 37 次说明了意图(结构化标题或解释性正文)
所用输入
has_llms_txt
legible_history_share0.37
agent_instruction_files
agent_instruction_max_bytes
评分方式
12.6/18一条命令的引导启动 — applications/lokql/lokql.csproj, applications/lokqlDx/lokqlDx.csproj, applications/pskql/pskql.csproj(工具链约定,无任务运行器)
22/22自动化测试
0/11Lint / 格式化配置
11/11静态类型检查 — C#(静态类型)
0/10可复现环境
0/10已体现的代理实践 — 最近 100 次提交中没有代理编写的提交
5/8自动化维护 — 已配置依赖自动化,但在抽样提交中未观察到
0/10OpenSSF Scorecard:Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
所用输入
has_nix
has_tests
lockfiles
has_dockerfile
typed_language
bootstrap_files
has_devcontainer
has_linter_config
typecheck_configs
agent_commit_share0
toolchain_manifestsapplications/lokql/lokql.csproj, applications/lokqlDx/lokqlDx.csproj, applications/pskql/pskql.csproj, benchmarks/Benchmarks/Benchmarks.csproj, libraries/AppInsightsSupport/AppInsightsSupport.csproj, libraries/CopilotSupport/CopilotSupport.csproj, libraries/FileFormats/FileFormats.csproj, libraries/Intellisense/Intellisense.csproj, libraries/KustoLoco.Core/KustoLoco.Core.csproj, libraries/LogSetup/LogSetup.csproj, libraries/PluginSupport/PluginSupport.csproj, libraries/Rendering/Rendering.csproj, libraries/ScottPlotRendering/ScottPlotRendering.csproj, libraries/SixelSupport/SixelSupport.csproj, libraries/lokql-engine/lokql-engine.csproj, libraries/lokqlDxComponents/lokqlDxComponents.csproj, samples/Blazor-Server/Blazor-Server.csproj, samples/Blazor-Static/Blazor-Static.csproj, samples/CliRendering/CliRendering.csproj, samples/CustomFunctions/CustomFunctions.csproj, samples/FizzBuzzPlugin/FizzBuzzPlugin.csproj, samples/ProcessesPlugin/ProcessesPlugin.csproj, samples/ProcessesWpf/ProcessesWpf.csproj, samples/WebApp/WebApp.csproj, samples/WebAppClient/WebAppClient.csproj, samples/csvrepl/csvrepl.csproj, samples/processes/processes.csproj, sourceGeneration/SourceGeneration/SourceGeneration.csproj, test/BasicTests/BasicTests.csproj, test/CoreTests/CoreTests.csproj, test/ExtendedCoreTests/ExtendedCoreTests.csproj, test/IntellisenseTests/IntellisenseTests.csproj, test/LokqlEngineTests/LokqlEngineTests.csproj, test/RenderTests/RenderTests.csproj, test/SerializationTests/SerializationTests.csproj, test/SettingsTests/SettingsTests.csproj, test/SourceGenerationTests/SourceGenerationTests.csproj, test/lokqlDxComponentsTests/lokqlDxComponentsTests.csproj, utilities/IntellisenseHelper/IntellisenseHelper.csproj
dependency_bot_commit_share0
评分方式
45/45可类型检查的代码 — C#(静态类型)
54.9/55可控的文件大小 — 采样的 874 个源文件中有 1 个超过 60KB
所用输入
primary_languageC#
largest_source_bytes75,288
source_files_sampled874
oversized_source_files1
评分方式
0/40API 模式(OpenAPI/GraphQL/proto)
0/20MCP 服务器
40/40可运行示例 — samples
所用输入
example_dirssamples
has_mcp_signal
api_schema_files

关键数据

139GitHub 星标
14贡献者
446最近 12 个月提交数
1距最近推送天数
37发布版本数
1巴士系数(bus factor)
32开放议题
软件包生态系统数

数据采集警告

  • Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token
  • No resolved dependencies carried a version and a supported ecosystem

更多细节

Star 与 Fork 历史 0 ★ / 26 ⇿
0Star
26Fork
33发布

每颗 star 和每个 fork 的添加时间,来自 GitHub 并按天汇总。累计增长位于其构成来源——每日新增——的正上方,二者可相互对照:稳定的自然增长与短暂的突增形态截然不同。当这一差别可被衡量时,它会作为增长真实性予以报告。

0510152025302622024-062025-072026-07
主版本 0次版本 4修订 29

每个点涵盖 2 天。

OpenSSF Scorecard 6.2 / 10
6.2综合

来自开源项目 OpenSSF Scorecard 的独立、工具无关的安全评估。每项检查奖励的是安全实践本身,而非特定供应商的工具。Scorecard 无法判定的检查项标记为 不适用,并从安全评分中剔除(绝不按零分计)。Scorecard v5.5.0 · 2026-08-02 20:32 UTC

10Binary-Artifactsno binaries found in the repo
不适用Branch-Protectioninternal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md
10CI-Tests7 out of 7 merged PRs checked by a CI test -- score normalized to 10
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
0Code-ReviewFound 0/8 approved changesets -- score normalized to 0
10Contributorsproject has 6 contributing companies or organizations
10Dangerous-Workflowno dangerous workflow patterns detected
10Dependency-Update-Toolupdate tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
10Maintained30 commit(s) and 10 issue activity found in the last 90 days -- score normalized to 10
不适用Packagingpackaging workflow not detected
0Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 0
10SASTSAST tool is run on all commits
10Security-Policysecurity policy file detected
0Signed-ReleasesProject has not signed or included provenance with any releases.
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
10Vulnerabilities0 existing vulnerabilities detected
直接依赖 95
注册表软件包版本约束清单文件
NuGetCommandLineParserapplications/lokql/lokql.csproj
NuGetCsvHelperapplications/lokql/lokql.csproj
NuGetNLogapplications/lokql/lokql.csproj
NuGetShapeCrawlerapplications/lokql/lokql.csproj
NuGetSpectre.Consoleapplications/lokql/lokql.csproj
NuGetSystem.CommandLineapplications/lokql/lokql.csproj
NuGetAvaloniaapplications/lokql/lokql.csproj
NuGetMagick.NET-Q16-AnyCPUapplications/lokql/lokql.csproj
NuGetTmds.DBus.Protocolapplications/lokqlDx/lokqlDx.csproj
NuGetAvaloniaapplications/lokqlDx/lokqlDx.csproj
NuGetAvalonia.AvaloniaEditapplications/lokqlDx/lokqlDx.csproj
NuGetTreeDataGridapplications/lokqlDx/lokqlDx.csproj
NuGetAvalonia.Desktopapplications/lokqlDx/lokqlDx.csproj
NuGetAvalonia.Labs.Controlsapplications/lokqlDx/lokqlDx.csproj
NuGetAvalonia.Labs.Panelsapplications/lokqlDx/lokqlDx.csproj
NuGetAvalonia.Skiaapplications/lokqlDx/lokqlDx.csproj
NuGetAvalonia.Themes.Fluentapplications/lokqlDx/lokqlDx.csproj
NuGetAvalonia.Fonts.Interapplications/lokqlDx/lokqlDx.csproj
NuGetAvaloniaEdit.TextMateapplications/lokqlDx/lokqlDx.csproj
NuGetClowd.Clipboard.Avaloniaapplications/lokqlDx/lokqlDx.csproj
NuGetCommunityToolkit.Mvvmapplications/lokqlDx/lokqlDx.csproj
NuGetDock.Avaloniaapplications/lokqlDx/lokqlDx.csproj
NuGetDock.Avalonia.Themes.Fluentapplications/lokqlDx/lokqlDx.csproj
NuGetDock.Model.Mvvmapplications/lokqlDx/lokqlDx.csproj
NuGetHotAvaloniaapplications/lokqlDx/lokqlDx.csproj
NuGetMapsui.Avalonia12applications/lokqlDx/lokqlDx.csproj
NuGetMarkdownViewer.Coreapplications/lokqlDx/lokqlDx.csproj
NuGetNotNullStringsapplications/lokqlDx/lokqlDx.csproj
NuGetScottPlot.Avaloniaapplications/lokqlDx/lokqlDx.csproj
NuGetMagick.NET-Q16-AnyCPUapplications/lokqlDx/lokqlDx.csproj
NuGetStaticViewLocatorapplications/lokqlDx/lokqlDx.csproj
NuGetTopten.RichTextKitapplications/lokqlDx/lokqlDx.csproj
NuGetJabapplications/lokqlDx/lokqlDx.csproj
NuGetMicrosoft.Extensions.DependencyInjectionapplications/lokqlDx/lokqlDx.csproj
NuGetMessageBox.Avaloniaapplications/lokqlDx/lokqlDx.csproj
NuGetDependencyPropertyGeneratorapplications/lokqlDx/lokqlDx.csproj
NuGetMicrosoft.VisualStudio.Threadingapplications/lokqlDx/lokqlDx.csproj
NuGetXaml.Behaviors.Avaloniaapplications/lokqlDx/lokqlDx.csproj
NuGetMicrosoft.PowerShell.SDKapplications/pskql/pskql.csproj
NuGetSystem.Security.Cryptography.Xmlapplications/pskql/pskql.csproj
NuGetAzure.Identitylibraries/AppInsightsSupport/AppInsightsSupport.csproj
NuGetAzure.Monitor.Query.Logslibraries/AppInsightsSupport/AppInsightsSupport.csproj
NuGetMicrosoft.Azure.Kusto.Datalibraries/AppInsightsSupport/AppInsightsSupport.csproj
NuGetAnthropic.SDKlibraries/CopilotSupport/CopilotSupport.csproj
NuGetAzure.AI.OpenAIlibraries/CopilotSupport/CopilotSupport.csproj
NuGetMicrosoft.Extensions.AI.Abstractionslibraries/CopilotSupport/CopilotSupport.csproj
NuGetMicrosoft.Extensions.AI.OpenAIlibraries/CopilotSupport/CopilotSupport.csproj
NuGetOpenAIlibraries/CopilotSupport/CopilotSupport.csproj
NuGetClosedXMLlibraries/FileFormats/FileFormats.csproj
NuGetCsvHelperlibraries/FileFormats/FileFormats.csproj
NuGetExcelDataReader.DataSetlibraries/FileFormats/FileFormats.csproj
NuGetNotNullStringslibraries/FileFormats/FileFormats.csproj
NuGetParquet.Netlibraries/FileFormats/FileFormats.csproj
NuGetJablibraries/Intellisense/Intellisense.csproj
NuGetMicrosoft.Extensions.Hostinglibraries/Intellisense/Intellisense.csproj
NuGetMicrosoft.Extensions.Logginglibraries/Intellisense/Intellisense.csproj
NuGetNotNullStringslibraries/Intellisense/Intellisense.csproj
NuGetSystem.CommandLinelibraries/Intellisense/Intellisense.csproj
NuGetSystem.Linq.Asynclibraries/Intellisense/Intellisense.csproj
NuGetTestableIO.System.IO.Abstractionslibraries/Intellisense/Intellisense.csproj
NuGetTestableIO.System.IO.Abstractions.Wrapperslibraries/Intellisense/Intellisense.csproj
NuGetTestableIO.System.IO.Abstractions.TestingHelperslibraries/Intellisense/Intellisense.csproj
NuGetVanara.Corelibraries/Intellisense/Intellisense.csproj
NuGetVanara.PInvoke.NetApi32libraries/Intellisense/Intellisense.csproj
NuGetCommunityToolkit.HighPerformancelibraries/KustoLoco.Core/KustoLoco.Core.csproj
NuGetFastenshteinlibraries/KustoLoco.Core/KustoLoco.Core.csproj
NuGetgeohash-dotnetlibraries/KustoLoco.Core/KustoLoco.Core.csproj
NuGetMicrosoft.Azure.Kusto.Languagelibraries/KustoLoco.Core/KustoLoco.Core.csproj
NuGetNotNullStringslibraries/KustoLoco.Core/KustoLoco.Core.csproj
NuGetSystem.Linq.Asynclibraries/KustoLoco.Core/KustoLoco.Core.csproj
NuGetT-Digest.NETlibraries/KustoLoco.Core/KustoLoco.Core.csproj
NuGetJablibraries/LogSetup/LogSetup.csproj
NuGetMicrosoft.Extensions.Hostinglibraries/LogSetup/LogSetup.csproj
NuGetNLoglibraries/LogSetup/LogSetup.csproj
NuGetNLog.Extensions.Logginglibraries/LogSetup/LogSetup.csproj
NuGetNLog.Layouts.ClefJsonLayoutlibraries/LogSetup/LogSetup.csproj
NuGetVegaGeneratorlibraries/Rendering/Rendering.csproj
NuGetmorelinqlibraries/ScottPlotRendering/ScottPlotRendering.csproj
NuGetScottPlotlibraries/ScottPlotRendering/ScottPlotRendering.csproj
NuGetClowd.Clipboard.Avalonialibraries/lokql-engine/lokql-engine.csproj
NuGetCommandLineParserlibraries/lokql-engine/lokql-engine.csproj
NuGetMcMaster.NETCore.Pluginslibraries/lokql-engine/lokql-engine.csproj
NuGetShapeCrawlerlibraries/lokql-engine/lokql-engine.csproj
NuGetSystem.CommandLinelibraries/lokql-engine/lokql-engine.csproj
NuGetMagick.NET-Q16-AnyCPUlibraries/lokql-engine/lokql-engine.csproj
NuGetAvalonialibraries/lokql-engine/lokql-engine.csproj
NuGetAvalonialibraries/lokqlDxComponents/lokqlDxComponents.csproj
NuGetAvalonia.AvaloniaEditlibraries/lokqlDxComponents/lokqlDxComponents.csproj
NuGetAvalonia.Skialibraries/lokqlDxComponents/lokqlDxComponents.csproj
NuGetJablibraries/lokqlDxComponents/lokqlDxComponents.csproj
NuGetNotNullStringslibraries/lokqlDxComponents/lokqlDxComponents.csproj
NuGetSvg.Controls.Avalonialibraries/lokqlDxComponents/lokqlDxComponents.csproj
NuGetMagick.NET-Q16-AnyCPUlibraries/lokqlDxComponents/lokqlDxComponents.csproj
NuGetMicrosoft.CodeAnalysis.AnalyzerssourceGeneration/SourceGeneration/SourceGeneration.csproj
NuGetMicrosoft.CodeAnalysis.CSharpsourceGeneration/SourceGeneration/SourceGeneration.csproj
全部依赖 94

来自 GitHub 依赖图的完整解析依赖集合:71 个直接依赖与 23 个间接(传递)软件包。仓库提交锁文件时,传递闭包才是完整的。

注册表软件包版本关系
NuGetAnthropic.SDK直接
NuGetAvalonia直接
NuGetAvalonia.AvaloniaEdit直接
NuGetAvalonia.Desktop直接
NuGetAvalonia.Fonts.Inter直接
NuGetAvalonia.Labs.Controls直接
NuGetAvalonia.Labs.Panels直接
NuGetAvalonia.Skia直接
NuGetAvalonia.Themes.Fluent直接
NuGetAvaloniaEdit.TextMate直接
NuGetAzure.AI.OpenAI直接
NuGetAzure.Identity直接
NuGetAzure.Monitor.Query.Logs直接
NuGetClosedXML直接
NuGetClowd.Clipboard.Avalonia直接
NuGetCommandLineParser直接
NuGetCommunityToolkit.HighPerformance直接
NuGetCommunityToolkit.Mvvm直接
NuGetCsvHelper直接
NuGetDependencyPropertyGenerator直接
NuGetDock.Avalonia直接
NuGetDock.Avalonia.Themes.Fluent直接
NuGetDock.Model.Mvvm直接
NuGetExcelDataReader.DataSet直接
NuGetFastenshtein直接
NuGetgeohash-dotnet直接
NuGetHotAvalonia直接
NuGetJab直接
NuGetMagick.NET-Q16-AnyCPU直接
NuGetMapsui.Avalonia12直接
NuGetMarkdownViewer.Core直接
NuGetMcMaster.NETCore.Plugins直接
NuGetMessageBox.Avalonia直接
NuGetMicrosoft.Azure.Kusto.Data直接
NuGetMicrosoft.Azure.Kusto.Language直接
NuGetMicrosoft.CodeAnalysis.Analyzers直接
NuGetMicrosoft.CodeAnalysis.CSharp直接
NuGetMicrosoft.Extensions.AI.Abstractions直接
NuGetMicrosoft.Extensions.AI.OpenAI直接
NuGetMicrosoft.Extensions.DependencyInjection直接
NuGetMicrosoft.Extensions.Hosting直接
NuGetMicrosoft.Extensions.Logging直接
NuGetMicrosoft.PowerShell.SDK直接
NuGetMicrosoft.VisualStudio.Threading直接
NuGetmorelinq直接
NuGetNLog直接
NuGetNLog.Extensions.Logging直接
NuGetNLog.Layouts.ClefJsonLayout直接
NuGetNotNullStrings直接
NuGetOpenAI直接
NuGetParquet.Net直接
NuGetScottPlot直接
NuGetScottPlot.Avalonia直接
NuGetShapeCrawler直接
NuGetSpectre.Console直接
NuGetStaticViewLocator直接
NuGetSvg.Controls.Avalonia直接
NuGetSystem.CommandLine直接
NuGetSystem.Linq.Async直接
NuGetSystem.Security.Cryptography.Xml直接
NuGetT-Digest.NET直接
NuGetTestableIO.System.IO.Abstractions直接
NuGetTestableIO.System.IO.Abstractions.TestingHelpers直接
NuGetTestableIO.System.IO.Abstractions.Wrappers直接
NuGetTmds.DBus.Protocol直接
NuGetTopten.RichTextKit直接
NuGetTreeDataGrid直接
NuGetVanara.Core直接
NuGetVanara.PInvoke.NetApi32直接
NuGetVegaGenerator直接
NuGetXaml.Behaviors.Avalonia直接
NuGetAvalonia.Headless.XUnit间接
NuGetAwesomeAssertions间接
NuGetBenchmarkDotNet间接
NuGetBlazored.LocalStorage间接
NuGetcoverlet.collector间接
NuGetMicrosoft.AspNetCore.Components.WebAssembly间接
NuGetMicrosoft.AspNetCore.Components.WebAssembly.DevServer间接
NuGetMicrosoft.Extensions.AI间接
NuGetMicrosoft.Extensions.Diagnostics.Testing间接
NuGetMicrosoft.NET.Sdk.WebAssembly.Pack间接
NuGetMicrosoft.NET.Test.Sdk间接
NuGetMoq间接
NuGetMSTest.TestAdapter间接
NuGetMSTest.TestFramework间接
NuGetNewtonsoft.Json间接
NuGetScottPlot.WPF间接
NuGetSimpleExec间接
NuGetSwashbuckle.AspNetCore间接
NuGetSystem.ServiceProcess.ServiceController间接
NuGetWPF-UI间接
NuGetxunit间接
NuGetxunit.runner.visualstudio间接
NuGetxunit.v3间接
依赖安全公告 未评估

本报告未能完成公告比对:No resolved dependencies carried a version and a supported ecosystem

原始 JSON 报告 机器可读
{
  "data": {
    "repo": {
      "topics": [
        "charting",
        "data-mining",
        "data-visualization",
        "kql",
        "kusto"
      ],
      "is_fork": false,
      "size_kb": 137169,
      "has_wiki": true,
      "homepage": null,
      "languages": {
        "C#": 1839212,
        "Inno Setup": 8700,
        "PowerShell": 6921
      },
      "pushed_at": "2026-08-01T17:22:20Z",
      "created_at": "2023-11-13T10:48:10Z",
      "owner_type": "User",
      "updated_at": "2026-08-01T17:26:09Z",
      "description": "C# KQL query engine with flexible I/O layers and visualization ",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "MIT",
      "default_branch": "main",
      "license_spdx_raw": "MIT",
      "primary_language": "C#",
      "significant_languages": [
        "C#"
      ]
    },
    "owner": {
      "blog": "https://neilmacmullen.github.io/",
      "name": "Neil MacMullen",
      "type": "User",
      "login": "NeilMacMullen",
      "company": "Sensize Ltd",
      "location": "Cambridge, UK",
      "followers": 28,
      "avatar_url": "https://avatars.githubusercontent.com/u/9131337?v=4",
      "created_at": "2014-10-10T09:03:45Z",
      "is_verified": null,
      "public_repos": 25,
      "account_age_days": 4314
    },
    "license": {
      "state": "standard",
      "spdx_id": "MIT",
      "raw_spdx": "MIT",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "v1.4.6",
          "kind": "patch",
          "published_at": "2026-06-08T20:10:58Z"
        },
        {
          "tag": "v1.4.5",
          "kind": "patch",
          "published_at": "2026-05-28T19:46:20Z"
        },
        {
          "tag": "v1.4.4",
          "kind": "patch",
          "published_at": "2026-04-25T14:39:02Z"
        },
        {
          "tag": "v1.4.3",
          "kind": "patch",
          "published_at": "2026-03-29T18:31:34Z"
        },
        {
          "tag": "v1.4.2",
          "kind": "patch",
          "published_at": "2026-01-17T23:44:16Z"
        },
        {
          "tag": "v1.4.1",
          "kind": "patch",
          "published_at": "2025-11-24T21:27:14Z"
        },
        {
          "tag": "v1.4.0",
          "kind": "minor",
          "published_at": "2025-11-16T11:54:02Z"
        },
        {
          "tag": "v1.3.9",
          "kind": "patch",
          "published_at": "2025-10-05T19:58:44Z"
        },
        {
          "tag": "v1.3.8",
          "kind": "patch",
          "published_at": "2025-09-21T17:22:08Z"
        },
        {
          "tag": "v1.3.6",
          "kind": "patch",
          "published_at": "2025-09-07T18:42:27Z"
        },
        {
          "tag": "v1.3.5",
          "kind": "patch",
          "published_at": "2025-08-31T16:28:23Z"
        },
        {
          "tag": "v1.3.4",
          "kind": "patch",
          "published_at": "2025-08-20T12:47:23Z"
        },
        {
          "tag": "v1.3.3",
          "kind": "patch",
          "published_at": "2025-08-17T09:56:10Z"
        },
        {
          "tag": "v1.3.2",
          "kind": "patch",
          "published_at": "2025-08-13T19:30:03Z"
        },
        {
          "tag": "v1.3.0",
          "kind": "minor",
          "published_at": "2025-08-10T16:28:31Z"
        },
        {
          "tag": "v1.2.8",
          "kind": "patch",
          "published_at": "2025-07-27T19:10:01Z"
        },
        {
          "tag": "v1.2.7",
          "kind": "patch",
          "published_at": "2025-07-19T18:53:52Z"
        },
        {
          "tag": "v1.2.6",
          "kind": "patch",
          "published_at": "2025-07-06T16:41:42Z"
        },
        {
          "tag": "v1.2.5",
          "kind": "patch",
          "published_at": "2025-06-09T10:11:31Z"
        },
        {
          "tag": "v1.2.4",
          "kind": "patch",
          "published_at": "2025-05-25T15:20:37Z"
        },
        {
          "tag": "v1.2.3",
          "kind": "patch",
          "published_at": "2025-05-19T17:38:49Z"
        },
        {
          "tag": "v1.2.2",
          "kind": "patch",
          "published_at": "2025-05-12T15:23:11Z"
        },
        {
          "tag": "v1.2.0",
          "kind": "minor",
          "published_at": "2025-04-23T13:51:37Z"
        },
        {
          "tag": "v1.1.4",
          "kind": "patch",
          "published_at": "2025-03-24T09:53:21Z"
        },
        {
          "tag": "v1.1.3",
          "kind": "patch",
          "published_at": "2025-02-23T12:10:52Z"
        },
        {
          "tag": "v1.1.2",
          "kind": "patch",
          "published_at": "2025-02-12T14:15:49Z"
        },
        {
          "tag": "v1.1.1",
          "kind": "patch",
          "published_at": "2025-01-18T15:50:44Z"
        },
        {
          "tag": "v1.1.0",
          "kind": "minor",
          "published_at": "2025-01-02T17:56:14Z"
        },
        {
          "tag": "v1.0.9",
          "kind": "patch",
          "published_at": "2024-10-07T13:51:27Z"
        },
        {
          "tag": "v1.0.8",
          "kind": "patch",
          "published_at": "2024-09-27T09:36:51Z"
        },
        {
          "tag": "v1.0.7",
          "kind": "patch",
          "published_at": "2024-08-12T15:42:08Z"
        },
        {
          "tag": "v1.0.6",
          "kind": "patch",
          "published_at": "2024-07-15T18:31:01Z"
        },
        {
          "tag": "v1.0.5",
          "kind": "patch",
          "published_at": "2024-06-30T18:52:42Z"
        },
        {
          "tag": "v1.0.4",
          "kind": "patch",
          "published_at": "2024-06-09T18:52:37Z"
        },
        {
          "tag": "v1.0.3",
          "kind": "patch",
          "published_at": "2024-05-27T17:54:00Z"
        },
        {
          "tag": "v1.0.2",
          "kind": "patch",
          "published_at": "2024-05-19T17:30:25Z"
        },
        {
          "tag": "v1.0.1",
          "kind": "patch",
          "published_at": "2024-05-06T19:51:54Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "202622144c8c1ceb87405aa8bc2d400765f6c017",
          "body": "Port lokqldx to Avalonia 12",
          "is_bot": false,
          "headline": "Merge pull request #626 from NeilMacMullen/avalonia12",
          "author_name": "Neil MacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-08-01T17:15:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "be9c0095e9341e25113f382c1191e7a48b8a8ba8",
          "body": null,
          "is_bot": false,
          "headline": "Force reference to updated cryptography.xml",
          "author_name": "NeilMacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-08-01T17:09:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4b768b98d5c394721240de8c4956fefda4e8a4bb",
          "body": null,
          "is_bot": false,
          "headline": "Fix tests",
          "author_name": "NeilMacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-08-01T16:50:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "93935bc72c0327352f20dc44b83b8d066f84a0ef",
          "body": null,
          "is_bot": false,
          "headline": "Fix up compile error",
          "author_name": "NeilMacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-08-01T16:28:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3e9cdf30b3ddbe75ec299e4a76b6b49b6da1b305",
          "body": null,
          "is_bot": false,
          "headline": "Remove redundant popup",
          "author_name": "NeilMacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-08-01T16:24:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7daffed6c903edfa45eaf5b7dfd770beda58bb9f",
          "body": null,
          "is_bot": false,
          "headline": "Fix up tests",
          "author_name": "NeilMacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-08-01T16:18:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f9537df387697dfaa6512ddf5205d38dca3252f3",
          "body": null,
          "is_bot": false,
          "headline": "Switch to correct mapsui version",
          "author_name": "NeilMacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-08-01T16:01:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8715c57bf8ec2b4764f31a690351492ec4e90dfa",
          "body": null,
          "is_bot": false,
          "headline": "Working except for map",
          "author_name": "NeilMacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-08-01T15:30:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3c37879ff366661a31b05e8231861003514e2ace",
          "body": null,
          "is_bot": false,
          "headline": "Drop Datagrid dependency",
          "author_name": "NeilMacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-08-01T15:09:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ab948d6e4345ed1e5c9394034c723abc7cc78860",
          "body": "Nuget 20260801",
          "is_bot": false,
          "headline": "Merge pull request #625 from NeilMacMullen/nuget_20260801",
          "author_name": "Neil MacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-08-01T15:02:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fba4b3cf79b03f927e4afda0d14177be0fc47125",
          "body": null,
          "is_bot": false,
          "headline": "dep gen",
          "author_name": "NeilMacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-08-01T13:54:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "236427f03e74942d532a678b0d80fe96adad98cf",
          "body": null,
          "is_bot": false,
          "headline": "ai",
          "author_name": "NeilMacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-08-01T13:50:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9b5adef1690499e8db5b9c73af1c4df670c4ddc9",
          "body": null,
          "is_bot": false,
          "headline": "awesomeassertions",
          "author_name": "NeilMacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-08-01T13:48:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cc7c98461d4e7f58612ae603c9d1ff33240aeea2",
          "body": null,
          "is_bot": false,
          "headline": "More updates",
          "author_name": "NeilMacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-08-01T13:47:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4e42ca429f3443862c42604b6b886be671f07328",
          "body": null,
          "is_bot": false,
          "headline": "More udpates",
          "author_name": "NeilMacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-08-01T13:41:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0da9b7c10e7883e891c04fd5f2cd0095ce608281",
          "body": null,
          "is_bot": false,
          "headline": "Geohash",
          "author_name": "NeilMacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-08-01T13:38:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ebd1c77aed09fba3cc442fa236d07dffa3d23c2d",
          "body": null,
          "is_bot": false,
          "headline": "More updates, fix up test deps",
          "author_name": "NeilMacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-08-01T13:34:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5ae3c1210b45c615f7d183e248bc9018489f4661",
          "body": null,
          "is_bot": false,
          "headline": "more updates",
          "author_name": "NeilMacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-08-01T13:27:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8830ebf6e505f7fbbd6fed1d0d032d564cf02db3",
          "body": null,
          "is_bot": false,
          "headline": "Update1",
          "author_name": "NeilMacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-08-01T13:13:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3e44c209be3d22b0baa4842761b746d2eb9f7ad3",
          "body": "Fixes an issue where DateTimes imported from CSV or sources that requ…",
          "is_bot": false,
          "headline": "Merge pull request #624 from NeilMacMullen/tzfix",
          "author_name": "Neil MacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-07-16T12:01:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b01195ec949fd655351ec1df1271d357b6b9d9c3",
          "body": "…ired type-inference, did not correctly use UTC timezone",
          "is_bot": false,
          "headline": "Fixes an issue where DateTimes imported from CSV or sources that requ…",
          "author_name": "Neil MacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-07-16T10:33:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9c4c5659b705b97403543796c7274503b92d9e6d",
          "body": "Catch a few more unhighlighted keywords",
          "is_bot": false,
          "headline": "Merge pull request #616 from NeilMacMullen/issue_610_syntaxhighlighting",
          "author_name": "Neil MacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-06-24T21:48:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "13904eb121192f8e6bf8e3a02b469d5a0267ce96",
          "body": null,
          "is_bot": false,
          "headline": "Catch a few more unhighlighted keywords",
          "author_name": "NeilMacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-06-24T21:42:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "afe641badb8afa2c1b63d5fd47e771f554b41865",
          "body": "Add additional unary minus overload for int promoted to long",
          "is_bot": false,
          "headline": "Merge pull request #615 from NeilMacMullen/issue_614_unaryminus",
          "author_name": "Neil MacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-06-24T21:38:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6e654a29d0a248da815a15d850cfa51be524ec0a",
          "body": null,
          "is_bot": false,
          "headline": "Add additional unary minus overload for int promoted to long",
          "author_name": "NeilMacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-06-24T21:28:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "97803018fa2d951a624e265782873deec24cd8c5",
          "body": null,
          "is_bot": false,
          "headline": "Update README.md",
          "author_name": "Neil MacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-06-22T20:15:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9e54b8af948aac5165986bcf6de3067159c422c8",
          "body": "Add 'offset' implementations for startofX datetime functions",
          "is_bot": false,
          "headline": "Merge pull request #609 from NeilMacMullen/startof",
          "author_name": "Neil MacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-06-17T15:24:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8b233f8904bf034d8f8a0957be98441d8e2bdd21",
          "body": null,
          "is_bot": false,
          "headline": "Add 'offset' implementations for startofX datetime functions",
          "author_name": "Neil MacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-06-17T14:57:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "70611509e0657259bc410abb14641b440f26e020",
          "body": "Dependency update",
          "is_bot": false,
          "headline": "Merge pull request #601 from NeilMacMullen/dependencyupdate",
          "author_name": "Neil MacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-06-08T19:41:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e77d43621b1b4fa62c5e189ac112c3a2d3ec0e2a",
          "body": null,
          "is_bot": false,
          "headline": "Dependency update",
          "author_name": "NeilMacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-06-08T19:34:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "32b5106f423e57aa51d8ac9ce31f27242c1c3991",
          "body": "feat: add bag_merge and pack_all",
          "is_bot": false,
          "headline": "Merge pull request #600 from cyril-iselin/feat/bag_merge_pack_all",
          "author_name": "Neil MacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-06-01T18:28:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "53b288911a34e65830956a1c1df4e02c5226cb6b",
          "body": null,
          "is_bot": false,
          "headline": "feat: pack-all",
          "author_name": "Cyril Iselin",
          "author_login": "cyril-iselin",
          "committed_at": "2026-05-28T21:08:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2a7893823381364251c6c9986aa4081f575f17b1",
          "body": null,
          "is_bot": false,
          "headline": "feat: bag-merge",
          "author_name": "Cyril Iselin",
          "author_login": "cyril-iselin",
          "committed_at": "2026-05-28T21:08:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3975675de9723ba533939a5169045caa50544e04",
          "body": null,
          "is_bot": false,
          "headline": "fix: todatetime timezone independence",
          "author_name": "Cyril Iselin",
          "author_login": "cyril-iselin",
          "committed_at": "2026-05-28T21:07:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f201b3da8533f633b63ef07e5c94c6f2bf23ef75",
          "body": "Update README.md",
          "is_bot": false,
          "headline": "Merge pull request #598 from NeilMacMullen/NeilMacMullen-patch-1",
          "author_name": "Neil MacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-05-28T19:19:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b15e048c5c07a3aa544807657fa77c3791f6abef",
          "body": null,
          "is_bot": false,
          "headline": "Update README.md",
          "author_name": "Neil MacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-05-28T19:18:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f54a0cb590b7b284013faf2d569aa49c4464565c",
          "body": "feat: bag-pack-variadic",
          "is_bot": false,
          "headline": "Merge pull request #597 from cyril-iselin/feat/bag-pack-variadic",
          "author_name": "Neil MacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-05-26T13:00:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "621a3216ea4c54b740ab8146627767fe5c4ff29d",
          "body": null,
          "is_bot": false,
          "headline": "feat: bag-pack-variadic",
          "author_name": "Cyril Iselin",
          "author_login": "cyril-iselin",
          "committed_at": "2026-05-26T08:02:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8179c4f8d36cfb6307032a6a0831e486275639e5",
          "body": "Fix crash on and implmenent  multi-select",
          "is_bot": false,
          "headline": "Merge pull request #596 from NeilMacMullen/multiselect",
          "author_name": "Neil MacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-05-25T15:00:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c6b50a4bcaaa2b0eecef5abde6e634134815fb0e",
          "body": null,
          "is_bot": false,
          "headline": "Fix crash on and implmenent  multi-select",
          "author_name": "NeilMacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-05-25T14:53:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "abe9f36d53972aaecfe4b3b53a4be6da056fe165",
          "body": "Further improvements to lokql",
          "is_bot": false,
          "headline": "Merge pull request #595 from NeilMacMullen/misc",
          "author_name": "Neil MacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-05-25T13:34:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9523de274fa2c3195703276183814a1607192b43",
          "body": " - Add \"convert\" command\n- More commonlity between \"run\" and \"explore\"\n- Allow data files to be loaded at startup\n- Chart size can be controlled with sixel.width/height\n- --noheader correctly skips header for text files",
          "is_bot": false,
          "headline": "Further improvements to lokql",
          "author_name": "NeilMacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-05-25T13:26:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b7ee7514707ec5c40aef26d2e08dc704aa510aed",
          "body": "Improve lokql by allowing:",
          "is_bot": false,
          "headline": "Merge pull request #594 from NeilMacMullen/lokql_improvements",
          "author_name": "Neil MacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-05-22T21:50:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ed524789097e0cbeb2db4475cd24bd8dbe71a545",
          "body": " - passing of arguments to command/scripts\n - allow multiple command and files to be executed by run command",
          "is_bot": false,
          "headline": "Improve lokql by allowing:",
          "author_name": "NeilMacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-05-22T21:41:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "80a3bb9e7b4e8068314aef51fcbca8427828a3fe",
          "body": "Reset console colors on (clean) lokql exit",
          "is_bot": false,
          "headline": "Merge pull request #593 from NeilMacMullen/consolecolors",
          "author_name": "Neil MacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-05-21T22:54:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "48c6831ff2a260df2d220aed237c3102c7ebeade",
          "body": null,
          "is_bot": false,
          "headline": "Reset console colors on (clean) lokql exit",
          "author_name": "NeilMacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-05-21T22:49:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e80713eb9306801550aba8943f74f026dd99dbd3",
          "body": "Fix crash on column charts when only one column",
          "is_bot": false,
          "headline": "Merge pull request #592 from NeilMacMullen/chartcrash",
          "author_name": "Neil MacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-05-21T22:26:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a7cf490611459d88c229ae2d25888854037659b1",
          "body": null,
          "is_bot": false,
          "headline": "Fix crash on column charts when only one column",
          "author_name": "NeilMacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-05-21T22:20:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "91e648d87fb8b35e2c3eccd86385532a75f044f8",
          "body": "Add syntax highlighting for distinct, lookup",
          "is_bot": false,
          "headline": "Merge pull request #591 from NeilMacMullen/modulo_fixes",
          "author_name": "Neil MacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-05-21T22:13:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0e7e97c117b83c23c56618651a718df0f0d71121",
          "body": "Fix % for TimeSpans\nImplement % for DateTime,Timespan\nAdd unix_time, net_time convenience functions",
          "is_bot": false,
          "headline": "Add syntax highlighting for distinct, lookup",
          "author_name": "NeilMacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-05-21T21:56:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "abd9626f84dc9bae1bb9dcab6ebe691a6672129f",
          "body": "Dependency update 20260516",
          "is_bot": false,
          "headline": "Merge pull request #587 from NeilMacMullen/nuget_20260516",
          "author_name": "Neil MacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-05-16T11:42:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6b387c9363d055442542a3f521c1f36bafa0cca8",
          "body": null,
          "is_bot": false,
          "headline": "more updates",
          "author_name": "NeilMacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-05-16T10:25:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "893d62ed9f0312e85d0016b3b6c529b19593d9c9",
          "body": null,
          "is_bot": false,
          "headline": "Package updates",
          "author_name": "NeilMacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-05-16T10:17:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "eb537a42c5c7a14e7f74d797a7f872a2b1d165d4",
          "body": null,
          "is_bot": false,
          "headline": "Allow KustoQueryResult.ToRecords to support readonly record structs",
          "author_name": "Neil MacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-04-27T10:13:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d8e2b0f73e1a587c1deb247a07afed5c33d0e2af",
          "body": "Add dcount to known operators for syntax hightlighting",
          "is_bot": false,
          "headline": "Merge pull request #584 from NeilMacMullen/syntax",
          "author_name": "Neil MacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-04-25T14:06:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4d34dfcc23688fcda01a44443569e6a238875645",
          "body": null,
          "is_bot": false,
          "headline": "Add dcount to known operators for syntax hightlighting",
          "author_name": "NeilMacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-04-25T14:01:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2857f8e880ec89aa029b74885eac539e17b3d6a3",
          "body": "Update dependencies",
          "is_bot": false,
          "headline": "Merge pull request #583 from NeilMacMullen/nuget_20260425",
          "author_name": "Neil MacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-04-25T13:57:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9abe702b888cb0705c55e82c93739f166ac0dee0",
          "body": null,
          "is_bot": false,
          "headline": "Update dependencies",
          "author_name": "NeilMacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-04-25T13:52:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f00852852d7a41a11b34803cfd2566bcab49184e",
          "body": "Dependency updates",
          "is_bot": false,
          "headline": "Merge pull request #582 from NeilMacMullen/nuget_20260418",
          "author_name": "Neil MacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-04-18T11:48:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "25bff4b7df43d1aa0ed9b068f0f064c047b2195a",
          "body": null,
          "is_bot": false,
          "headline": "Dependency updates",
          "author_name": "NeilMacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-04-18T10:17:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1f7e760932c95625c393ddfbcaf4e4115fd9a261",
          "body": "Improved prompt, token usage and debug",
          "is_bot": false,
          "headline": "Merge pull request #577 from NeilMacMullen/copilot3",
          "author_name": "Neil MacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-04-11T14:11:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "04000aa12f6d51cd508e3e7bf079d9104b347fc2",
          "body": null,
          "is_bot": false,
          "headline": "Improved prompt, token usage and debug",
          "author_name": "NeilMacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-04-11T14:03:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1fe024d5ea414ce444702df7cd05d46a79ff054f",
          "body": "Cd and ls commands",
          "is_bot": false,
          "headline": "Merge pull request #576 from NeilMacMullen/cdls",
          "author_name": "Neil MacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-04-11T12:27:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e3cdc1a8b301763a6eadb6b829f495b448feda51",
          "body": null,
          "is_bot": false,
          "headline": "Add lsfiles command and tweak help text for other commands",
          "author_name": "NeilMacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-04-11T12:21:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b9a7eeb2ca4bfe2c7e8f67c84b0e652464d1415c",
          "body": null,
          "is_bot": false,
          "headline": "Add cd command",
          "author_name": "NeilMacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-04-11T11:59:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "28eafff59c2d40a462659ff13b4a55d6069e70f4",
          "body": null,
          "is_bot": false,
          "headline": "Merge remote-tracking branch 'origin/main' into copilot3",
          "author_name": "NeilMacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-04-11T11:11:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ed52373febd23f870897198dfdb6103cdbcde8e4",
          "body": "Minmaxfix",
          "is_bot": false,
          "headline": "Merge pull request #575 from NeilMacMullen/minmaxfix",
          "author_name": "Neil MacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-04-11T11:10:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d81b45a26f7f9a92abc5fa85a86ad944973927b8",
          "body": null,
          "is_bot": false,
          "headline": "Further unit testing to verify compatibility with ADX",
          "author_name": "NeilMacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-04-11T11:04:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d026ae12567c3aedaab39996003bdadb0c1cdebb",
          "body": null,
          "is_bot": false,
          "headline": "Fix min/max aggregation of ints",
          "author_name": "NeilMacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-04-11T10:52:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "88880f0ed6e2a9d5ed5c170a8ccd6ebc72d93b02",
          "body": null,
          "is_bot": false,
          "headline": "Merge remote-tracking branch 'origin/main' into copilot3",
          "author_name": "NeilMacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-04-11T10:21:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f37cd10c805cf13fab7d71cc79edc0875a40b7a3",
          "body": null,
          "is_bot": false,
          "headline": "Better debug for copilot",
          "author_name": "NeilMacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-04-11T10:20:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "42b31f7ad836890c6ce1fdefd6f748f868600608",
          "body": "Nuget10042026",
          "is_bot": false,
          "headline": "Merge pull request #574 from NeilMacMullen/nuget10042026",
          "author_name": "Neil MacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-04-10T18:08:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "42215ab3bce8e212a01b8cc29e331f6392b56a7b",
          "body": null,
          "is_bot": false,
          "headline": "Dependency update",
          "author_name": "Neil MacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-04-10T17:59:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "982b4f11657ef95bb3ed339f4ca93fcbdcda3a13",
          "body": null,
          "is_bot": false,
          "headline": "Improve ToRecords implementation",
          "author_name": "Neil MacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-04-10T17:22:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1398fc228d7836d76c9d84b257376885ee4fa5c3",
          "body": "Update dependencies",
          "is_bot": false,
          "headline": "Merge pull request #567 from NeilMacMullen/nuget_20260329",
          "author_name": "Neil MacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-03-29T17:49:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "17b000fd079fd4a92e4b90bdc90770403d73356e",
          "body": null,
          "is_bot": false,
          "headline": "Update dependencies",
          "author_name": "NeilMacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-03-29T17:16:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "60428b5c5c6900285f5f55c7ee78214b4fe0b3cc",
          "body": "Add experimental copilot support",
          "is_bot": false,
          "headline": "Merge pull request #559 from NeilMacMullen/copilot2",
          "author_name": "Neil MacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-03-29T17:01:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "95989eff0b1daeacc154cf3c9af4ebd3399e1a50",
          "body": null,
          "is_bot": false,
          "headline": "Fix response parsing",
          "author_name": "NeilMacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-03-28T14:21:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "18d3991de73cf0c873cff3625d41b2ff0dbd68bd",
          "body": null,
          "is_bot": false,
          "headline": "Add token/price estimate",
          "author_name": "NeilMacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-03-28T13:58:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f31735de5e42ad49dfdcfc0c9c05e3baafd38f7c",
          "body": null,
          "is_bot": false,
          "headline": "Improve system prompt for maps and ensure model can see errors",
          "author_name": "NeilMacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-03-28T13:40:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "31c5e3de6f2c08f9702fc71810b5c73e3efba9a2",
          "body": null,
          "is_bot": false,
          "headline": "Much improved behaviour with application insights",
          "author_name": "NeilMacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-03-28T13:20:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e7f7072274b2539c79dbc027b451fbece240a72c",
          "body": null,
          "is_bot": false,
          "headline": "Update dependencies",
          "author_name": "NeilMacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-03-28T10:21:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b717cea497abea5cb7ef4e7b1944a54a4dd8ab2f",
          "body": null,
          "is_bot": false,
          "headline": "Merge remote-tracking branch 'origin/main' into copilot2",
          "author_name": "NeilMacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-03-28T10:14:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a2b3c1e91afc7117c5a6dd5a9b03f1cadebdac33",
          "body": null,
          "is_bot": false,
          "headline": "More improvements",
          "author_name": "NeilMacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-03-15T18:52:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "da3abe15497f7fc29e4c1d7a7b211aaaef0b5996",
          "body": null,
          "is_bot": false,
          "headline": "Add simple copilot support",
          "author_name": "NeilMacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-03-15T18:15:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8c4cf1d8ced990aed71f24d156c21284a1e2a817",
          "body": "Upgrade nuget packages, fix CI test issue",
          "is_bot": false,
          "headline": "Merge pull request #558 from NeilMacMullen/nuget_15032026",
          "author_name": "Neil MacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-03-15T16:20:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6bcf0bd4c9764a6137f80077f2d017cd8d8ee891",
          "body": null,
          "is_bot": false,
          "headline": "downgrade codeanalysis",
          "author_name": "NeilMacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-03-15T16:06:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7245ea241ba30095b6e3ca34fb66f13c45f5d795",
          "body": null,
          "is_bot": false,
          "headline": "Work around vanara breakage",
          "author_name": "NeilMacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-03-15T16:02:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dc7e4a2b670a30d6edfe07104af72f4a9de7baae",
          "body": null,
          "is_bot": false,
          "headline": "Upgrade nuget packages, fix CI test issue",
          "author_name": "NeilMacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-03-15T15:38:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "808df7a9da95092776d9efcf5739725e836d8343",
          "body": "Add basic label capability to maps",
          "is_bot": false,
          "headline": "Merge pull request #550 from NeilMacMullen/maplabels",
          "author_name": "Neil MacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-02-28T12:41:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c5f1283de119a8d206ec0d05e422ab3427e733f7",
          "body": null,
          "is_bot": false,
          "headline": "fix up error",
          "author_name": "NeilMacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-02-28T12:30:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5ec21c1997a3cffd33e81d134ac1a43c076b69b3",
          "body": null,
          "is_bot": false,
          "headline": "Add basic map labels",
          "author_name": "NeilMacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-02-28T12:28:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "000dcb0eb772290d065edfd5391eada8c70ddf81",
          "body": "Nuget udpate 20260228",
          "is_bot": false,
          "headline": "Merge pull request #549 from NeilMacMullen/nuget_20260228",
          "author_name": "Neil MacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-02-28T12:17:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "92cc6480d5aa63e149f6d70e628ef9f08f41d9be",
          "body": null,
          "is_bot": false,
          "headline": "FIx up xhapecrawler",
          "author_name": "NeilMacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-02-28T11:57:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8e74f7dbd82fe030752598a47de8328f0749bc2b",
          "body": null,
          "is_bot": false,
          "headline": "Update avalonia diagnostics",
          "author_name": "NeilMacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-02-28T11:52:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "809c0ba729284a400dc2a6a5459ffa958295674e",
          "body": null,
          "is_bot": false,
          "headline": "Update datagrid",
          "author_name": "NeilMacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-02-28T11:50:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bf7c0234adba01f626d8d4797d9a5299af9dc090",
          "body": null,
          "is_bot": false,
          "headline": "Update kusto language",
          "author_name": "NeilMacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-02-28T11:47:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "033f8791319b072c932725877026de67a303469e",
          "body": "…sActive\" property on queryviewmodel",
          "is_bot": false,
          "headline": "Nuget update of most packages with call adjustments for openAI and \"I…",
          "author_name": "NeilMacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-02-28T11:43:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "61a97c64e52de9e89ffc9bb5db09ca9e70ec9fe0",
          "body": "Fix deadlock/timing issue on release",
          "is_bot": false,
          "headline": "Merge pull request #539 from NeilMacMullen/deadlockfix",
          "author_name": "Neil MacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-01-17T23:06:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "900440633e36f3de9440243a45d50895c486bee8",
          "body": null,
          "is_bot": false,
          "headline": "Fix deadlock/timing issue on release",
          "author_name": "NeilMacMullen",
          "author_login": "NeilMacMullen",
          "committed_at": "2026-01-17T23:01:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 37,
      "commits_last_year": 446,
      "latest_release_at": "2026-06-08T20:10:58Z",
      "latest_release_tag": "v1.4.6",
      "releases_from_tags": false,
      "days_since_last_push": 1,
      "active_weeks_last_year": 36,
      "days_since_latest_release": 55,
      "mean_days_between_releases": 30.5
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "readme_badges": {
        "hosts": [],
        "total": 0,
        "header": 0,
        "collected": true,
        "has_inspect_badge": false
      },
      "has_description": true,
      "has_contributing": false,
      "health_percentage": 71,
      "has_issue_template": false,
      "has_code_of_conduct": true,
      "has_pull_request_template": false
    },
    "ecosystem": {
      "packages": [
        {
          "name": "KustoLoco.Rendering",
          "exists": true,
          "license": null,
          "keywords": [],
          "ecosystem": "nuget",
          "matches_repo": true,
          "registry_url": "https://www.nuget.org/packages/KustoLoco.Rendering",
          "is_deprecated": false,
          "latest_version": "1.4.7",
          "repository_url": "https://github.com/NeilMacMullen/kusto-loco",
          "versions_count": 39,
          "total_downloads": 33438,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": null,
          "first_published_at": null,
          "latest_published_at": "2026-08-02T20:23:58.857000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 0
        },
        {
          "name": "KustoLoco.FileFormats",
          "exists": true,
          "license": null,
          "keywords": [],
          "ecosystem": "nuget",
          "matches_repo": true,
          "registry_url": "https://www.nuget.org/packages/KustoLoco.FileFormats",
          "is_deprecated": false,
          "latest_version": "1.4.7",
          "repository_url": "https://github.com/NeilMacMullen/kusto-loco",
          "versions_count": 39,
          "total_downloads": 25908,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": null,
          "first_published_at": null,
          "latest_published_at": "2026-08-02T20:23:57.833000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 0
        }
      ]
    },
    "popularity": {
      "forks": 26,
      "stars": 139,
      "watchers": 2,
      "fork_history": {
        "days": [
          {
            "date": "2024-06-14",
            "count": 1
          },
          {
            "date": "2024-07-01",
            "count": 1
          },
          {
            "date": "2024-09-19",
            "count": 1
          },
          {
            "date": "2024-09-27",
            "count": 1
          },
          {
            "date": "2024-10-27",
            "count": 1
          },
          {
            "date": "2024-12-02",
            "count": 1
          },
          {
            "date": "2024-12-05",
            "count": 1
          },
          {
            "date": "2024-12-14",
            "count": 1
          },
          {
            "date": "2024-12-27",
            "count": 1
          },
          {
            "date": "2024-12-28",
            "count": 1
          },
          {
            "date": "2025-01-10",
            "count": 1
          },
          {
            "date": "2025-01-11",
            "count": 1
          },
          {
            "date": "2025-03-04",
            "count": 1
          },
          {
            "date": "2025-03-05",
            "count": 1
          },
          {
            "date": "2025-03-11",
            "count": 1
          },
          {
            "date": "2025-03-21",
            "count": 1
          },
          {
            "date": "2025-05-08",
            "count": 1
          },
          {
            "date": "2025-05-18",
            "count": 1
          },
          {
            "date": "2025-05-20",
            "count": 1
          },
          {
            "date": "2025-06-30",
            "count": 1
          },
          {
            "date": "2025-07-24",
            "count": 1
          },
          {
            "date": "2025-08-18",
            "count": 1
          },
          {
            "date": "2025-08-19",
            "count": 1
          },
          {
            "date": "2025-11-20",
            "count": 1
          },
          {
            "date": "2026-05-26",
            "count": 1
          },
          {
            "date": "2026-07-30",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 26,
        "total_forks": 26
      },
      "star_history": null,
      "open_issues_and_prs": 32
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [
        "samples"
      ],
      "has_llms_txt": false,
      "has_dockerfile": false,
      "has_mcp_signal": false,
      "bootstrap_files": [],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [],
      "toolchain_manifests": [
        "applications/lokql/lokql.csproj",
        "applications/lokqlDx/lokqlDx.csproj",
        "applications/pskql/pskql.csproj",
        "benchmarks/Benchmarks/Benchmarks.csproj",
        "libraries/AppInsightsSupport/AppInsightsSupport.csproj",
        "libraries/CopilotSupport/CopilotSupport.csproj",
        "libraries/FileFormats/FileFormats.csproj",
        "libraries/Intellisense/Intellisense.csproj",
        "libraries/KustoLoco.Core/KustoLoco.Core.csproj",
        "libraries/LogSetup/LogSetup.csproj",
        "libraries/PluginSupport/PluginSupport.csproj",
        "libraries/Rendering/Rendering.csproj",
        "libraries/ScottPlotRendering/ScottPlotRendering.csproj",
        "libraries/SixelSupport/SixelSupport.csproj",
        "libraries/lokql-engine/lokql-engine.csproj",
        "libraries/lokqlDxComponents/lokqlDxComponents.csproj",
        "samples/Blazor-Server/Blazor-Server.csproj",
        "samples/Blazor-Static/Blazor-Static.csproj",
        "samples/CliRendering/CliRendering.csproj",
        "samples/CustomFunctions/CustomFunctions.csproj",
        "samples/FizzBuzzPlugin/FizzBuzzPlugin.csproj",
        "samples/ProcessesPlugin/ProcessesPlugin.csproj",
        "samples/ProcessesWpf/ProcessesWpf.csproj",
        "samples/WebApp/WebApp.csproj",
        "samples/WebAppClient/WebAppClient.csproj",
        "samples/csvrepl/csvrepl.csproj",
        "samples/processes/processes.csproj",
        "sourceGeneration/SourceGeneration/SourceGeneration.csproj",
        "test/BasicTests/BasicTests.csproj",
        "test/CoreTests/CoreTests.csproj",
        "test/ExtendedCoreTests/ExtendedCoreTests.csproj",
        "test/IntellisenseTests/IntellisenseTests.csproj",
        "test/LokqlEngineTests/LokqlEngineTests.csproj",
        "test/RenderTests/RenderTests.csproj",
        "test/SerializationTests/SerializationTests.csproj",
        "test/SettingsTests/SettingsTests.csproj",
        "test/SourceGenerationTests/SourceGenerationTests.csproj",
        "test/lokqlDxComponentsTests/lokqlDxComponentsTests.csproj",
        "utilities/IntellisenseHelper/IntellisenseHelper.csproj"
      ],
      "largest_source_bytes": 75288,
      "source_files_sampled": 874,
      "oversized_source_files": 1,
      "agent_instruction_files": [],
      "agent_instruction_max_bytes": null
    },
    "dependencies": {
      "manifests": [],
      "advisories": {
        "error": "No resolved dependencies carried a version and a supported ecosystem",
        "scope": "repository_graph",
        "source": null,
        "findings": [],
        "collected": false,
        "malicious": [],
        "truncated": false,
        "by_severity": {},
        "advisory_count": 0,
        "affected_count": 0,
        "assessed_count": 0,
        "malicious_count": 0,
        "assessed_package": null,
        "unassessed_count": 94,
        "direct_affected_count": 0
      },
      "ecosystems": [],
      "dependencies": [
        {
          "name": "CommandLineParser",
          "manifest": "applications/lokql/lokql.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "CsvHelper",
          "manifest": "applications/lokql/lokql.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "NLog",
          "manifest": "applications/lokql/lokql.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "ShapeCrawler",
          "manifest": "applications/lokql/lokql.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Spectre.Console",
          "manifest": "applications/lokql/lokql.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "System.CommandLine",
          "manifest": "applications/lokql/lokql.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Avalonia",
          "manifest": "applications/lokql/lokql.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Magick.NET-Q16-AnyCPU",
          "manifest": "applications/lokql/lokql.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Tmds.DBus.Protocol",
          "manifest": "applications/lokqlDx/lokqlDx.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Avalonia",
          "manifest": "applications/lokqlDx/lokqlDx.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Avalonia.AvaloniaEdit",
          "manifest": "applications/lokqlDx/lokqlDx.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "TreeDataGrid",
          "manifest": "applications/lokqlDx/lokqlDx.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Avalonia.Desktop",
          "manifest": "applications/lokqlDx/lokqlDx.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Avalonia.Labs.Controls",
          "manifest": "applications/lokqlDx/lokqlDx.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Avalonia.Labs.Panels",
          "manifest": "applications/lokqlDx/lokqlDx.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Avalonia.Skia",
          "manifest": "applications/lokqlDx/lokqlDx.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Avalonia.Themes.Fluent",
          "manifest": "applications/lokqlDx/lokqlDx.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Avalonia.Fonts.Inter",
          "manifest": "applications/lokqlDx/lokqlDx.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "AvaloniaEdit.TextMate",
          "manifest": "applications/lokqlDx/lokqlDx.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Clowd.Clipboard.Avalonia",
          "manifest": "applications/lokqlDx/lokqlDx.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "CommunityToolkit.Mvvm",
          "manifest": "applications/lokqlDx/lokqlDx.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Dock.Avalonia",
          "manifest": "applications/lokqlDx/lokqlDx.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Dock.Avalonia.Themes.Fluent",
          "manifest": "applications/lokqlDx/lokqlDx.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Dock.Model.Mvvm",
          "manifest": "applications/lokqlDx/lokqlDx.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "HotAvalonia",
          "manifest": "applications/lokqlDx/lokqlDx.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Mapsui.Avalonia12",
          "manifest": "applications/lokqlDx/lokqlDx.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "MarkdownViewer.Core",
          "manifest": "applications/lokqlDx/lokqlDx.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "NotNullStrings",
          "manifest": "applications/lokqlDx/lokqlDx.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "ScottPlot.Avalonia",
          "manifest": "applications/lokqlDx/lokqlDx.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Magick.NET-Q16-AnyCPU",
          "manifest": "applications/lokqlDx/lokqlDx.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "StaticViewLocator",
          "manifest": "applications/lokqlDx/lokqlDx.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Topten.RichTextKit",
          "manifest": "applications/lokqlDx/lokqlDx.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Jab",
          "manifest": "applications/lokqlDx/lokqlDx.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Microsoft.Extensions.DependencyInjection",
          "manifest": "applications/lokqlDx/lokqlDx.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "MessageBox.Avalonia",
          "manifest": "applications/lokqlDx/lokqlDx.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "DependencyPropertyGenerator",
          "manifest": "applications/lokqlDx/lokqlDx.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Microsoft.VisualStudio.Threading",
          "manifest": "applications/lokqlDx/lokqlDx.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Xaml.Behaviors.Avalonia",
          "manifest": "applications/lokqlDx/lokqlDx.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Microsoft.PowerShell.SDK",
          "manifest": "applications/pskql/pskql.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "System.Security.Cryptography.Xml",
          "manifest": "applications/pskql/pskql.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Azure.Identity",
          "manifest": "libraries/AppInsightsSupport/AppInsightsSupport.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Azure.Monitor.Query.Logs",
          "manifest": "libraries/AppInsightsSupport/AppInsightsSupport.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Microsoft.Azure.Kusto.Data",
          "manifest": "libraries/AppInsightsSupport/AppInsightsSupport.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Anthropic.SDK",
          "manifest": "libraries/CopilotSupport/CopilotSupport.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Azure.AI.OpenAI",
          "manifest": "libraries/CopilotSupport/CopilotSupport.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Microsoft.Extensions.AI.Abstractions",
          "manifest": "libraries/CopilotSupport/CopilotSupport.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Microsoft.Extensions.AI.OpenAI",
          "manifest": "libraries/CopilotSupport/CopilotSupport.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "OpenAI",
          "manifest": "libraries/CopilotSupport/CopilotSupport.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "ClosedXML",
          "manifest": "libraries/FileFormats/FileFormats.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "CsvHelper",
          "manifest": "libraries/FileFormats/FileFormats.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "ExcelDataReader.DataSet",
          "manifest": "libraries/FileFormats/FileFormats.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "NotNullStrings",
          "manifest": "libraries/FileFormats/FileFormats.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Parquet.Net",
          "manifest": "libraries/FileFormats/FileFormats.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Jab",
          "manifest": "libraries/Intellisense/Intellisense.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Microsoft.Extensions.Hosting",
          "manifest": "libraries/Intellisense/Intellisense.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Microsoft.Extensions.Logging",
          "manifest": "libraries/Intellisense/Intellisense.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "NotNullStrings",
          "manifest": "libraries/Intellisense/Intellisense.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "System.CommandLine",
          "manifest": "libraries/Intellisense/Intellisense.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "System.Linq.Async",
          "manifest": "libraries/Intellisense/Intellisense.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "TestableIO.System.IO.Abstractions",
          "manifest": "libraries/Intellisense/Intellisense.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "TestableIO.System.IO.Abstractions.Wrappers",
          "manifest": "libraries/Intellisense/Intellisense.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "TestableIO.System.IO.Abstractions.TestingHelpers",
          "manifest": "libraries/Intellisense/Intellisense.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Vanara.Core",
          "manifest": "libraries/Intellisense/Intellisense.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Vanara.PInvoke.NetApi32",
          "manifest": "libraries/Intellisense/Intellisense.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "CommunityToolkit.HighPerformance",
          "manifest": "libraries/KustoLoco.Core/KustoLoco.Core.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Fastenshtein",
          "manifest": "libraries/KustoLoco.Core/KustoLoco.Core.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "geohash-dotnet",
          "manifest": "libraries/KustoLoco.Core/KustoLoco.Core.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Microsoft.Azure.Kusto.Language",
          "manifest": "libraries/KustoLoco.Core/KustoLoco.Core.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "NotNullStrings",
          "manifest": "libraries/KustoLoco.Core/KustoLoco.Core.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "System.Linq.Async",
          "manifest": "libraries/KustoLoco.Core/KustoLoco.Core.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "T-Digest.NET",
          "manifest": "libraries/KustoLoco.Core/KustoLoco.Core.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Jab",
          "manifest": "libraries/LogSetup/LogSetup.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Microsoft.Extensions.Hosting",
          "manifest": "libraries/LogSetup/LogSetup.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "NLog",
          "manifest": "libraries/LogSetup/LogSetup.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "NLog.Extensions.Logging",
          "manifest": "libraries/LogSetup/LogSetup.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "NLog.Layouts.ClefJsonLayout",
          "manifest": "libraries/LogSetup/LogSetup.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "VegaGenerator",
          "manifest": "libraries/Rendering/Rendering.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "morelinq",
          "manifest": "libraries/ScottPlotRendering/ScottPlotRendering.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "ScottPlot",
          "manifest": "libraries/ScottPlotRendering/ScottPlotRendering.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Clowd.Clipboard.Avalonia",
          "manifest": "libraries/lokql-engine/lokql-engine.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "CommandLineParser",
          "manifest": "libraries/lokql-engine/lokql-engine.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "McMaster.NETCore.Plugins",
          "manifest": "libraries/lokql-engine/lokql-engine.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "ShapeCrawler",
          "manifest": "libraries/lokql-engine/lokql-engine.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "System.CommandLine",
          "manifest": "libraries/lokql-engine/lokql-engine.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Magick.NET-Q16-AnyCPU",
          "manifest": "libraries/lokql-engine/lokql-engine.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Avalonia",
          "manifest": "libraries/lokql-engine/lokql-engine.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Avalonia",
          "manifest": "libraries/lokqlDxComponents/lokqlDxComponents.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Avalonia.AvaloniaEdit",
          "manifest": "libraries/lokqlDxComponents/lokqlDxComponents.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Avalonia.Skia",
          "manifest": "libraries/lokqlDxComponents/lokqlDxComponents.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Jab",
          "manifest": "libraries/lokqlDxComponents/lokqlDxComponents.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "NotNullStrings",
          "manifest": "libraries/lokqlDxComponents/lokqlDxComponents.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Svg.Controls.Avalonia",
          "manifest": "libraries/lokqlDxComponents/lokqlDxComponents.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Magick.NET-Q16-AnyCPU",
          "manifest": "libraries/lokqlDxComponents/lokqlDxComponents.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Microsoft.CodeAnalysis.Analyzers",
          "manifest": "sourceGeneration/SourceGeneration/SourceGeneration.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Microsoft.CodeAnalysis.CSharp",
          "manifest": "sourceGeneration/SourceGeneration/SourceGeneration.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        }
      ],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [
          {
            "name": "Anthropic.SDK",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Avalonia",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Avalonia.AvaloniaEdit",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Avalonia.Desktop",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Avalonia.Fonts.Inter",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Avalonia.Labs.Controls",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Avalonia.Labs.Panels",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Avalonia.Skia",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Avalonia.Themes.Fluent",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "AvaloniaEdit.TextMate",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Azure.AI.OpenAI",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Azure.Identity",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Azure.Monitor.Query.Logs",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "ClosedXML",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Clowd.Clipboard.Avalonia",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "CommandLineParser",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "CommunityToolkit.HighPerformance",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "CommunityToolkit.Mvvm",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "CsvHelper",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "DependencyPropertyGenerator",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Dock.Avalonia",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Dock.Avalonia.Themes.Fluent",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Dock.Model.Mvvm",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "ExcelDataReader.DataSet",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Fastenshtein",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "geohash-dotnet",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "HotAvalonia",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Jab",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Magick.NET-Q16-AnyCPU",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Mapsui.Avalonia12",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "MarkdownViewer.Core",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "McMaster.NETCore.Plugins",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "MessageBox.Avalonia",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.Azure.Kusto.Data",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.Azure.Kusto.Language",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.CodeAnalysis.Analyzers",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.CodeAnalysis.CSharp",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.Extensions.AI.Abstractions",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.Extensions.AI.OpenAI",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.Extensions.DependencyInjection",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.Extensions.Hosting",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.Extensions.Logging",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.PowerShell.SDK",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.VisualStudio.Threading",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "morelinq",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "NLog",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "NLog.Extensions.Logging",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "NLog.Layouts.ClefJsonLayout",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "NotNullStrings",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "OpenAI",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Parquet.Net",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "ScottPlot",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "ScottPlot.Avalonia",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "ShapeCrawler",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Spectre.Console",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "StaticViewLocator",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Svg.Controls.Avalonia",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "System.CommandLine",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "System.Linq.Async",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "System.Security.Cryptography.Xml",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "T-Digest.NET",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "TestableIO.System.IO.Abstractions",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "TestableIO.System.IO.Abstractions.TestingHelpers",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "TestableIO.System.IO.Abstractions.Wrappers",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Tmds.DBus.Protocol",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Topten.RichTextKit",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "TreeDataGrid",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Vanara.Core",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Vanara.PInvoke.NetApi32",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "VegaGenerator",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Xaml.Behaviors.Avalonia",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Avalonia.Headless.XUnit",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "AwesomeAssertions",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "BenchmarkDotNet",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Blazored.LocalStorage",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "coverlet.collector",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.AspNetCore.Components.WebAssembly",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.AspNetCore.Components.WebAssembly.DevServer",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.Extensions.AI",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.Extensions.Diagnostics.Testing",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.NET.Sdk.WebAssembly.Pack",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.NET.Test.Sdk",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Moq",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "MSTest.TestAdapter",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "MSTest.TestFramework",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Newtonsoft.Json",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "ScottPlot.WPF",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "SimpleExec",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Swashbuckle.AspNetCore",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "System.ServiceProcess.ServiceController",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "WPF-UI",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "xunit",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "xunit.runner.visualstudio",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "xunit.v3",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          }
        ],
        "collected": true,
        "truncated": false,
        "total_count": 94,
        "direct_count": 71,
        "indirect_count": 23
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 0,
        "merged_prs": 378,
        "open_issues": 32,
        "closed_ratio": 0.729,
        "closed_issues": 86,
        "closed_unmerged_prs": 85
      },
      "bus_factor": 1,
      "bot_contributors": 2,
      "top_contributors": [
        {
          "type": "User",
          "login": "NeilMacMullen",
          "commits": 1387,
          "avatar_url": "https://avatars.githubusercontent.com/u/9131337?v=4"
        },
        {
          "type": "User",
          "login": "tbui17",
          "commits": 109,
          "avatar_url": "https://avatars.githubusercontent.com/u/86227911?v=4"
        },
        {
          "type": "User",
          "login": "davidnx",
          "commits": 92,
          "avatar_url": "https://avatars.githubusercontent.com/u/44079650?v=4"
        },
        {
          "type": "User",
          "login": "davidni",
          "commits": 78,
          "avatar_url": "https://avatars.githubusercontent.com/u/5666247?v=4"
        },
        {
          "type": "User",
          "login": "Epacik",
          "commits": 13,
          "avatar_url": "https://avatars.githubusercontent.com/u/23077337?v=4"
        },
        {
          "type": "User",
          "login": "ADefWebserver",
          "commits": 10,
          "avatar_url": "https://avatars.githubusercontent.com/u/1857799?v=4"
        },
        {
          "type": "User",
          "login": "VickyLi2021",
          "commits": 10,
          "avatar_url": "https://avatars.githubusercontent.com/u/92544828?v=4"
        },
        {
          "type": "User",
          "login": "pheobeayo",
          "commits": 5,
          "avatar_url": "https://avatars.githubusercontent.com/u/47613365?v=4"
        },
        {
          "type": "User",
          "login": "Bridgetamana",
          "commits": 4,
          "avatar_url": "https://avatars.githubusercontent.com/u/156615932?v=4"
        },
        {
          "type": "User",
          "login": "cyril-iselin",
          "commits": 4,
          "avatar_url": "https://avatars.githubusercontent.com/u/67055137?v=4"
        }
      ],
      "contributors_sampled": 14,
      "top_contributor_share": 0.805
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "build-main.yml",
        "build-pr.yml",
        "update-wiki.yml"
      ],
      "has_docs_dir": true,
      "linter_configs": [],
      "has_editorconfig": true,
      "has_linter_config": false,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 10,
            "reason": "no binaries found in the repo",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": null,
            "reason": "internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": 10,
            "reason": "7 out of 7 merged PRs checked by a CI test -- score normalized to 10",
            "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/8 approved changesets -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 10,
            "reason": "project has 6 contributing companies or organizations",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": 10,
            "reason": "no dangerous workflow patterns detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 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 10 issue activity found in the last 90 days -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
          },
          {
            "name": "Packaging",
            "score": null,
            "reason": "packaging workflow not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": 0,
            "reason": "dependency not pinned by hash detected -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 10,
            "reason": "SAST tool is run on all commits",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 10,
            "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": 10,
            "reason": "0 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "202622144c8c1ceb87405aa8bc2d400765f6c017",
        "ran_at": "2026-08-02T20:32:35Z",
        "aggregate_score": 6.2,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": true,
      "has_dependabot_config": true
    },
    "contribution_flow": {
      "collected": true,
      "recent_prs": {
        "merged_7d": 2,
        "decided_7d": 2,
        "merged_30d": 3,
        "authors_30d": 1,
        "decided_30d": 3,
        "sample_size": 60,
        "window_days": 30,
        "sample_exhausted": false,
        "authors_probed_30d": 1,
        "newcomer_merged_30d": 0,
        "bot_prs_excluded_30d": 5,
        "newcomer_authors_30d": 0,
        "newcomer_decided_30d": 0
      },
      "ci_last_run_at": "2026-08-01T17:19:57Z",
      "oldest_open_prs": [],
      "last_merged_pr_at": "2026-08-01T17:16:00Z",
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": [
        {
          "number": 5,
          "created_at": "2024-01-05T08:51:27Z",
          "last_comment_at": "2025-08-25T04:56:39Z",
          "last_comment_author": "NeilMacMullen"
        },
        {
          "number": 29,
          "created_at": "2024-06-01T11:26:13Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 57,
          "created_at": "2024-09-03T11:42:56Z",
          "last_comment_at": "2024-09-04T23:07:10Z",
          "last_comment_author": "NeilMacMullen"
        },
        {
          "number": 78,
          "created_at": "2024-12-31T13:50:11Z",
          "last_comment_at": "2025-01-11T15:14:26Z",
          "last_comment_author": "ADefWebserver"
        },
        {
          "number": 90,
          "created_at": "2025-01-04T18:16:04Z",
          "last_comment_at": "2025-07-24T18:50:20Z",
          "last_comment_author": "NeilMacMullen"
        },
        {
          "number": 97,
          "created_at": "2025-01-15T12:54:26Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 98,
          "created_at": "2025-01-15T12:58:53Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 102,
          "created_at": "2025-01-18T18:25:10Z",
          "last_comment_at": "2025-01-18T18:26:47Z",
          "last_comment_author": "NeilMacMullen"
        },
        {
          "number": 103,
          "created_at": "2025-01-18T18:50:15Z",
          "last_comment_at": "2025-01-31T13:51:38Z",
          "last_comment_author": "NeilMacMullen"
        },
        {
          "number": 114,
          "created_at": "2025-02-05T11:14:35Z",
          "last_comment_at": "2025-04-10T17:26:00Z",
          "last_comment_author": "NeilMacMullen"
        },
        {
          "number": 129,
          "created_at": "2025-02-16T19:02:11Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 130,
          "created_at": "2025-02-16T19:03:49Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 172,
          "created_at": "2025-03-31T15:03:12Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 190,
          "created_at": "2025-04-15T12:58:24Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 191,
          "created_at": "2025-04-15T15:34:59Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 266,
          "created_at": "2025-05-26T09:03:37Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 279,
          "created_at": "2025-05-27T11:07:51Z",
          "last_comment_at": "2025-05-27T11:11:45Z",
          "last_comment_author": "NeilMacMullen"
        },
        {
          "number": 280,
          "created_at": "2025-05-27T12:35:14Z",
          "last_comment_at": "2025-07-26T12:34:33Z",
          "last_comment_author": "Ali6nXI"
        },
        {
          "number": 283,
          "created_at": "2025-05-27T12:47:46Z",
          "last_comment_at": "2025-08-03T19:07:43Z",
          "last_comment_author": "NeilMacMullen"
        },
        {
          "number": 309,
          "created_at": "2025-06-06T16:20:25Z",
          "last_comment_at": null,
          "last_comment_author": null
        }
      ]
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/NeilMacMullen/kusto-loco",
    "host": "github.com",
    "name": "kusto-loco",
    "owner": "NeilMacMullen"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "excellent",
      "name": "Overall health",
      "note": "The weighted overall 69 is calibrated to 81 on the published index scale (record calibration 2026-08-02).",
      "notes": [
        {
          "code": "overall_calibration",
          "params": {
            "raw": 69,
            "calibrated": 81,
            "calibration": "2026-08-02"
          }
        }
      ],
      "value": 81,
      "inputs": {
        "security": 62,
        "vitality": 89,
        "community": 57,
        "governance": 60,
        "calibration": "2026-08-02",
        "engineering": 78,
        "ai_readiness": 47,
        "weighted_overall_raw": 69
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "excellent",
        "name": "Vitality",
        "value": 89,
        "weight": 0.21,
        "metrics": [
          {
            "key": "development_activity",
            "band": "excellent",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 89,
            "inputs": {
              "commits_last_year": 446,
              "human_commit_share": 1,
              "days_since_last_push": 1,
              "active_weeks_last_year": 36
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 1 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 1
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "36/52 weeks with commits",
                "points": 24.9,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 36
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "446 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 446
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "30 commit(s) and 10 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": 37,
              "latest_release_tag": "v1.4.6",
              "releases_from_tags": false,
              "days_since_latest_release": 55,
              "mean_days_between_releases": 30.5
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "37 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 37
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 55 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 55
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~30.5 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 30.5
                    }
                  }
                ],
                "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": "exceptional",
            "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": 3,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "last human commit 3 days ago",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_maintained",
                    "params": {
                      "days": 3
                    }
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "moderate",
        "name": "Community & Adoption",
        "value": 57,
        "weight": 0.17,
        "metrics": [
          {
            "key": "popularity",
            "band": "weak",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 46,
            "inputs": {
              "forks": 26,
              "stars": 139,
              "watchers": 2,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "139 stars",
                "points": 34.7,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 139
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "26 forks",
                "points": 11.7,
                "status": "partial",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 26
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "2 watchers",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 2
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "good",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 65,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "readme_badges": 0,
              "has_contributing": false,
              "has_issue_template": false,
              "has_code_of_conduct": true,
              "readme_badge_services": [],
              "has_pull_request_template": false
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "recognized license (MIT)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "MIT"
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 13.5,
                "status": "met",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.3
              }
            ]
          },
          {
            "key": "ecosystem_adoption",
            "band": "moderate",
            "name": "Ecosystem adoption (downloads)",
            "note": "Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "registry_dependents"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 62,
            "inputs": {
              "packages": [
                "KustoLoco.Rendering",
                "KustoLoco.FileFormats"
              ],
              "dependents": null,
              "ecosystems": "nuget",
              "total_downloads": 59346,
              "monthly_downloads": null
            },
            "components": [
              {
                "key": "total_downloads",
                "name": "Total downloads",
                "detail": "59,346 downloads all-time across nuget",
                "points": 49.6,
                "status": "partial",
                "details": [
                  {
                    "code": "downloads_total",
                    "params": {
                      "count": 59346,
                      "ecosystems": "nuget"
                    }
                  }
                ],
                "max_points": 80
              },
              {
                "key": "registry_dependents",
                "name": "Registry dependents",
                "detail": "not reported by this ecosystem",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "not_reported_by_this_ecosystem",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "moderate",
        "name": "Sustainability & Governance",
        "value": 60,
        "weight": 0.23,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "weak",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 37,
            "inputs": {
              "bus_factor": 1,
              "contributors_sampled": 14,
              "top_contributor_share": 0.805
            },
            "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 80% of commits",
                "points": 4.4,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 80
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "14 contributors",
                "points": 13.5,
                "status": "met",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 14
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 6 contributing companies or organizations",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "moderate",
            "name": "Issue & PR responsiveness",
            "note": "Excluded from scoring (no data or not applicable): Newcomer PR acceptance. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "newcomer_pr_acceptance"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 63,
            "inputs": {
              "merged_prs": 378,
              "open_issues": 32,
              "closed_issues": 86,
              "prs_merged_7d": 2,
              "prs_decided_7d": 2,
              "prs_merged_30d": 3,
              "prs_decided_30d": 3,
              "issue_closed_ratio": 0.729,
              "closed_unmerged_prs": 85,
              "first_time_authors_30d": 0,
              "first_time_prs_merged_30d": 0,
              "first_time_prs_decided_30d": 0
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "73% of issues closed",
                "points": 30.6,
                "status": "partial",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 73
                    }
                  }
                ],
                "max_points": 42
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "378/463 decided PRs merged",
                "points": 24.5,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 378,
                      "decided": 463
                    }
                  }
                ],
                "max_points": 30
              },
              {
                "key": "newcomer_pr_acceptance",
                "name": "Newcomer PR acceptance",
                "detail": "no first-time contributor's PR decided in 30d",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_newcomer_prs",
                    "params": {
                      "days": 30
                    }
                  }
                ],
                "max_points": 13
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 0/8 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "moderate",
            "name": "Ownership & stewardship",
            "note": "Excluded from scoring (no data or not applicable): Verified domain. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "verified_domain"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 54,
            "inputs": {
              "followers": 28,
              "owner_type": "User",
              "is_verified": null,
              "owner_login": "NeilMacMullen",
              "public_repos": 25,
              "account_age_days": 4314
            },
            "components": [
              {
                "key": "ownership_backing",
                "name": "Ownership backing",
                "detail": "personal (user) account",
                "points": 10,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_personal",
                    "params": {}
                  }
                ],
                "max_points": 30
              },
              {
                "key": "verified_domain",
                "name": "Verified domain",
                "detail": "not applicable to user accounts",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "not_applicable_to_user_accounts",
                    "params": {}
                  }
                ],
                "max_points": 20
              },
              {
                "key": "owner_reach",
                "name": "Owner reach",
                "detail": "28 followers of NeilMacMullen",
                "points": 10.5,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 28,
                      "login": "NeilMacMullen"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "25 public repos, account ~11 yr old",
                "points": 22.3,
                "status": "partial",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 25
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 11
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "exceptional",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "KustoLoco.Rendering",
                "KustoLoco.FileFormats"
              ],
              "ecosystems": "nuget",
              "any_deprecated": false,
              "min_days_since_publish": 0
            },
            "components": [
              {
                "key": "published_resolvable",
                "name": "Published & resolvable",
                "detail": "2 package(s) on nuget",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "packages_published",
                    "params": {
                      "count": 2,
                      "ecosystems": "nuget"
                    }
                  }
                ],
                "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": "39 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 39
                    }
                  }
                ],
                "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": 78,
        "weight": 0.19,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "good",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 74,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": true,
              "has_linter_config": false,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "3 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 3
                    }
                  }
                ],
                "max_points": 24
              },
              {
                "key": "tests_present",
                "name": "Tests present",
                "detail": null,
                "points": 24,
                "status": "met",
                "details": [],
                "max_points": 24
              },
              {
                "key": "linter_config",
                "name": "Linter config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 16
              },
              {
                "key": "pre_commit_hooks",
                "name": "Pre-commit hooks",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 9.6
              },
              {
                "key": "editorconfig",
                "name": ".editorconfig",
                "detail": null,
                "points": 6.4,
                "status": "met",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "7 out of 7 merged PRs checked by a CI test -- score normalized to 10",
                "points": 20,
                "status": "met",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "excellent",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 85,
            "inputs": {
              "topics": [
                "charting",
                "data-mining",
                "data-visualization",
                "kql",
                "kusto"
              ],
              "has_wiki": true,
              "homepage": null,
              "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": null,
                "points": 0,
                "status": "missed",
                "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": "5 topics",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "topics_count",
                    "params": {
                      "count": 5
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "moderate",
        "name": "Security",
        "value": 62,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "moderate",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Branch-Protection, Packaging. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "branch_protection",
                    "packaging"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 62,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 16,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 2,
              "scorecard_aggregate": 6.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": "internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "7 out of 7 merged PRs checked by a CI test -- score normalized to 10",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "Found 0/8 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 6 contributing companies or organizations",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no dangerous workflow patterns detected",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "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 10 issue activity found in the last 90 days -- score normalized to 10",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "packaging",
                "name": "Packaging",
                "detail": "packaging workflow not detected",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "SAST tool is run on all commits",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file detected",
                "points": 5,
                "status": "met",
                "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": "0 existing vulnerabilities detected",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "high_risk_jurisdiction_exposure",
            "band": "exceptional",
            "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"
              ],
              "commit_weight_rule": {
                "min_commits": 50,
                "min_commit_share": 0.1
              },
              "review_only_matches": 0,
              "below_threshold_exposures": [],
              "assessed_self_published_locations": 8
            },
            "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": "weak",
        "name": "AI Readiness",
        "value": 47,
        "weight": 0.04,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "at_risk",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 20,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 0.37,
              "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": "37 of 100 human commits state their intent (structured subject or explanatory body)",
                "points": 19.7,
                "status": "partial",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 37,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "moderate",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 51,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [],
              "has_dockerfile": false,
              "typed_language": true,
              "bootstrap_files": [],
              "has_devcontainer": false,
              "has_linter_config": false,
              "typecheck_configs": [],
              "agent_commit_share": 0,
              "toolchain_manifests": [
                "applications/lokql/lokql.csproj",
                "applications/lokqlDx/lokqlDx.csproj",
                "applications/pskql/pskql.csproj",
                "benchmarks/Benchmarks/Benchmarks.csproj",
                "libraries/AppInsightsSupport/AppInsightsSupport.csproj",
                "libraries/CopilotSupport/CopilotSupport.csproj",
                "libraries/FileFormats/FileFormats.csproj",
                "libraries/Intellisense/Intellisense.csproj",
                "libraries/KustoLoco.Core/KustoLoco.Core.csproj",
                "libraries/LogSetup/LogSetup.csproj",
                "libraries/PluginSupport/PluginSupport.csproj",
                "libraries/Rendering/Rendering.csproj",
                "libraries/ScottPlotRendering/ScottPlotRendering.csproj",
                "libraries/SixelSupport/SixelSupport.csproj",
                "libraries/lokql-engine/lokql-engine.csproj",
                "libraries/lokqlDxComponents/lokqlDxComponents.csproj",
                "samples/Blazor-Server/Blazor-Server.csproj",
                "samples/Blazor-Static/Blazor-Static.csproj",
                "samples/CliRendering/CliRendering.csproj",
                "samples/CustomFunctions/CustomFunctions.csproj",
                "samples/FizzBuzzPlugin/FizzBuzzPlugin.csproj",
                "samples/ProcessesPlugin/ProcessesPlugin.csproj",
                "samples/ProcessesWpf/ProcessesWpf.csproj",
                "samples/WebApp/WebApp.csproj",
                "samples/WebAppClient/WebAppClient.csproj",
                "samples/csvrepl/csvrepl.csproj",
                "samples/processes/processes.csproj",
                "sourceGeneration/SourceGeneration/SourceGeneration.csproj",
                "test/BasicTests/BasicTests.csproj",
                "test/CoreTests/CoreTests.csproj",
                "test/ExtendedCoreTests/ExtendedCoreTests.csproj",
                "test/IntellisenseTests/IntellisenseTests.csproj",
                "test/LokqlEngineTests/LokqlEngineTests.csproj",
                "test/RenderTests/RenderTests.csproj",
                "test/SerializationTests/SerializationTests.csproj",
                "test/SettingsTests/SettingsTests.csproj",
                "test/SourceGenerationTests/SourceGenerationTests.csproj",
                "test/lokqlDxComponentsTests/lokqlDxComponentsTests.csproj",
                "utilities/IntellisenseHelper/IntellisenseHelper.csproj"
              ],
              "dependency_bot_commit_share": 0
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": "applications/lokql/lokql.csproj, applications/lokqlDx/lokqlDx.csproj, applications/pskql/pskql.csproj (toolchain convention, no task runner)",
                "points": 12.6,
                "status": "partial",
                "details": [
                  {
                    "code": "toolchain_convention",
                    "params": {
                      "files": "applications/lokql/lokql.csproj, applications/lokqlDx/lokqlDx.csproj, applications/pskql/pskql.csproj"
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "automated_tests",
                "name": "Automated tests",
                "detail": null,
                "points": 22,
                "status": "met",
                "details": [],
                "max_points": 22
              },
              {
                "key": "lint_format_config",
                "name": "Lint / format config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": "C# (statically typed)",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "C#"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "no agent-authored commits among the last 100",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_agent_authored_commits",
                    "params": {
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "dependency automation configured, none observed in the sampled commits",
                "points": 5,
                "status": "partial",
                "details": [
                  {
                    "code": "dependency_bot_config_only",
                    "params": {}
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "exceptional",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "primary_language": "C#",
              "largest_source_bytes": 75288,
              "source_files_sampled": 874,
              "oversized_source_files": 1
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "C# (statically typed)",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "C#"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "1/874 source files over 60KB",
                "points": 54.9,
                "status": "partial",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 874,
                      "oversized": 1
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          },
          {
            "key": "ai_interfaces",
            "band": "weak",
            "name": "Machine-readable interfaces",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "example_dirs": [
                "samples"
              ],
              "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": "samples",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "samples"
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? Carries a deliberately small weight: agent tooling is a real maintenance signal, but its absence must never gate the top of the scale (calibration saturates at raw 91, so 100/100 remains reachable with AI Readiness at zero)."
      }
    ],
    "classification": {
      "top": [
        "library",
        "application"
      ],
      "labels": [
        "library",
        "cli"
      ],
      "scores": {
        "cli": 4,
        "library": 6
      },
      "primary": "library",
      "evidence": [
        {
          "tier": "distribution",
          "label": "library",
          "source": "registry:nuget",
          "weight": 6
        },
        {
          "tier": "dependencies",
          "label": "cli",
          "source": "dep:System.CommandLine",
          "weight": 4
        }
      ],
      "artifacts": [],
      "confidence": "medium",
      "host_extension": false,
      "runs_as_process": true,
      "consumed_by_code": true
    },
    "metrics_version": "2.5.0"
  },
  "warnings": [
    "Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token",
    "No resolved dependencies carried a version and a supported ecosystem"
  ],
  "report_type": "repository",
  "generated_at": "2026-08-02T20:32:56.778836Z",
  "schema_version": "0.29.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/n/NeilMacMullen/kusto-loco.svg",
  "full_name": "NeilMacMullen/kusto-loco",
  "license_state": "standard",
  "license_spdx": "MIT"
}

评分是信号,而非担保。 评分反映的是 GitHub 上公开可见的实践——不是代码审计,也不是安全保证。

缺失数据将被剔除并重新归一化权重,绝不按零分计。方法论已版本化并公开:指标 v2.5.0、模式 v0.29.0—— 完整方法论 · 指标知识库.

单项结果在整体记录中的位置: 汇总统计NuGet.