公开记录
软件健康报告模式 0.27.0 · 指标 1.13.0 · 2026-07-31 04:51 UTC

wrmsr / om

My python monorepo.

PythonBSD-3-Clause★ 7 星标⑂ 0 复刻始于 2023年4月在 GitHub 上查看 ↗

wrmsr/om 的健康指数为 100 分中的 48 分,处于「存在风险」区间。 其得分最高的类别是AI Readiness(77/100),最低的是Security(21/100)。 最近一次更新在今天。 近期的大部分工作由 1 位贡献者完成。

48
总分 / 100
存在风险

软件健康指数

指标归入加权类别,统一采用 1–100 量表。总体分先取类别加权平均;当公开证据触发高风险司法辖区政策时,评级会按政策调整,并设置 49(有风险)的上限。AI 就绪度不计入总体分。

48
优秀85-100堪称典范;基本满足所有检验标准
良好70-84健康;仅有轻微不足
中等50-69可接受,但存在明显不足;建议进行审查
存在风险30-49存在重大薄弱环节;采用时应保持审慎
危急1-29问题严重(项目被弃置、仅有单一维护者、缺乏基本工程规范)
活力社区与采用可持续性与治理工程质量安全AI 就绪度

评分画像

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

所有权

wrmsr个人账户
92 关注者240 个公开仓库始于 2011年1月

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

软件包生态系统

注册表软件包版本月下载量版本数最近发布
PyPIomdev0.0.352,7585850 天前
PyPIomllm0.0.35-90 天前
PyPIomcore0.0.3580480 天前
PyPIomxtra0.0.35-690 天前
PyPIominfra0.0.352,5165850 天前

按类别列示的指标

活力

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

60中等 · 占总体的 22%
评分方式
36/36推送新近度 — 最近一次推送于 0 天前
35.3/36提交节奏 — 52 周中有 51 周有提交
18/18提交量 — 最近一年 4,075 次提交
0/10OpenSSF Scorecard:Maintained — 无数据
所用输入
commits_last_year4,075
human_commit_share1
days_since_last_push0
active_weeks_last_year51
评分方式
0/27有发布版本 — 未发布任何发布版本
0/36发布时效 — 没有发布版本
0/27发布节奏 — 没有发布版本
0/10OpenSSF Scorecard:Signed-Releases — 无数据
所用输入
releases_count0

社区与采用

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

38存在风险 · 占总体的 18%
评分方式
12.6/60星标 — 7 个星标
0/25复刻 — 0 个复刻
0/15关注者 — 1 位关注者
所用输入
forks0
stars7
watchers1
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history

社区健康

50中等
评分方式
22.5/22.5README
22.5/22.5许可证 — 可识别的许可证(BSD-3-Clause)
0/18CONTRIBUTING 指南
0/13.5行为准则
0/7.2议题模板
0/6.3PR 模板
所用输入
has_readme
has_license
has_contributing
has_issue_template
has_code_of_conduct
has_pull_request_template
评分方式
50.5/80月度下载量 — pypi 合计每月 6,078 次下载
0/20注册表被依赖数 — 该生态系统不报告此项
所用输入
packagesomdev, omllm, omcore, omxtra, ominfra
dependents
ecosystemspypi
total_downloads
monthly_downloads6,078
已排除计分(无数据或不适用):注册表被依赖数。 其余权重已重新归一化。

可持续性与治理

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

52中等 · 占总体的 24%
评分方式
9/54巴士系数 — 1 位贡献者贡献了半数提交
0/22.5提交分布 — 头号贡献者编写了 100% 的提交
1.4/13.5贡献者广度 — 1 位贡献者
0/10OpenSSF Scorecard:Contributors — 无数据
所用输入
bus_factor1
contributors_sampled1
top_contributor_share1
评分方式
10/30所有权背书 — 个人(用户)账户
0/20已验证域名 — 不适用于个人账户
14.2/25所有者影响力 — wrmsr 有 92 位关注者
25/25既往记录 — 240 个公开仓库,账户约 15 年
所用输入
followers92
owner_typeUser
is_verified
owner_loginwrmsr
public_repos240
account_age_days5,678
已排除计分(无数据或不适用):已验证域名。 其余权重已重新归一化。
评分方式
25/25已发布且可解析 — pypi 上有 5 个软件包
35/35发布时效 — 最近一次发布于 0 天前
20/20版本历史 — 585 个已发布版本
20/20未被弃用 — 活跃,未被弃用或撤回
所用输入
packagesomdev, omllm, omcore, omxtra, ominfra
ecosystemspypi
any_deprecated
min_days_since_publish0

工程质量

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

61中等 · 占总体的 20%

工程实践

68中等
评分方式
24/24CI 工作流 — 1 个工作流
24/24存在测试
0/16Linter 配置
0/9.6Pre-commit 钩子
6.4/6.4.editorconfig
0/20OpenSSF Scorecard:CI-Tests — 无数据
所用输入
has_ci
has_tests
has_editorconfig
has_linter_config
has_precommit_config

文档

50中等
评分方式
30/30README
0/25文档目录
0/15文档 / 主页站点
10/10仓库描述
0/10主题标签
10/10Wiki
所用输入
topics
has_wiki
homepage
has_readme
has_docs_dir
has_description

安全

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

21危急 · 占总体的 16%
评分方式
0/30安全策略(SECURITY.md)
0/25Dependabot 配置
0/25依赖锁定文件 — 已发布的类库——锁定文件属于应用层关注点,不作要求
0/20CodeQL 工作流
所用输入
sourcefile_signals
lockfilesCargo.lock
manifestspyproject.toml, requirements-ci.txt, requirements-dev.txt, requirements-ext.txt, requirements-frz.txt, requirements.txt
has_codeql_workflow
has_security_policy
has_dependabot_config
已排除计分(无数据或不适用):依赖锁定文件。 其余权重已重新归一化。
评分方式
35/35直接依赖不含已知公告 — 没有直接依赖携带已知公告
0/25间接依赖不含已知公告 — 在此范围内,传递依赖集合无法与开发和测试依赖区分
0/40没有长期未处理的公告 — 没有公告带有发布日期
所用输入
sourceosv
advisories9
affected_packages4
assessed_packages371
unassessed_packages69
affected_by_severityhigh 1, moderate 2, unknown 1
direct_affected_packages0
已排除计分(无数据或不适用):间接依赖不含已知公告, 没有长期未处理的公告。 其余权重已重新归一化。 已将 371 个已解析依赖与 OSV 比对。 有 69 项无法评估——没有已解析的版本、生态系统不受支持,或超出所报告的软件包清单。 该仓库未发布任何索引可解析的软件包,因此改为评估仓库依赖图。该图将开发与测试版本固定同交付的依赖混在一起,因此仅对声明的运行时依赖计分;传递性发现仅作为背景信息列出,不计入评分。 未对可达性进行分析。

AI 就绪度

该仓库在多大程度上具备与 AI 编码代理协同开发与维护的条件?这是一枚独立的实验性徽章——权重为 0.0,因此单独呈现,不影响总体健康评分。

77良好 · 占总体的 0%
评分方式
45/45代理指令 — AGENTS.md
0/15机器可读文档(llms.txt)
40/40可读的提交历史 — 100 次人类提交中有 90 次说明了意图(结构化标题或解释性正文)
所用输入
has_llms_txt
legible_history_share0.9
agent_instruction_filesAGENTS.md
agent_instruction_max_bytes3,068
评分方式
18/18一条命令的引导启动 — Makefile, omdev/pyproject/tests/skeleton/Makefile
22/22自动化测试
0/11Lint / 格式化配置
11/11静态类型检查 — omcore/py.typed, omdev/py.typed, ominfra/py.typed, omllm/py.typed, omxtra/py.typed, x/pipdeptree/py.typed
10/10可复现环境 — Dockerfile, lockfile
0/10已体现的代理实践 — 最近 100 次提交中没有代理编写的提交
0/8自动化维护 — 未观察到自动依赖更新
0/10OpenSSF Scorecard:Pinned-Dependencies — 无数据
所用输入
has_nix
has_tests
lockfilesCargo.lock
has_dockerfile
typed_language
bootstrap_filesMakefile, omdev/pyproject/tests/skeleton/Makefile
has_devcontainer
has_linter_config
typecheck_configsomcore/py.typed, omdev/py.typed, ominfra/py.typed, omllm/py.typed, omxtra/py.typed, x/pipdeptree/py.typed
agent_commit_share0
toolchain_manifestsomdev/rs/_boilerplate/Cargo.toml, x/ommlds/nanochat/rustbpe/Cargo.toml
dependency_bot_commit_share0
评分方式
27/45可类型检查的代码 — Python,已配置类型检查(omcore/py.typed, omdev/py.typed, ominfra/py.typed, omllm/py.typed, omxtra/py.typed, x/pipdeptree/py.typed)
54.3/55可控的文件大小 — 采样的 4,878 个源文件中有 61 个超过 60KB
所用输入
primary_languagePython
largest_source_bytes1,397,928
source_files_sampled4,878
oversized_source_files61
评分方式
40/40API 模式(OpenAPI/GraphQL/proto) — omxtra/specs/proto/tests/examples/addressbook.proto
0/20MCP 服务器
40/40可运行示例 — demos, examples, notebooks, samples
所用输入
example_dirsdemos, examples, notebooks, samples
has_mcp_signal
api_schema_filesomxtra/specs/proto/tests/examples/addressbook.proto

关键数据

7GitHub 星标
1贡献者
4,075最近 12 个月提交数
0距最近推送天数
0发布版本数
1巴士系数(bus factor)
0开放议题
PyPI软件包生态系统数

数据采集警告

  • Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token
  • Could not fetch pypi package 'omdev.cexts._boilerplate' from its registry
  • Could not fetch pypi package 'omcore._check' from its registry
  • Could not fetch pypi package 'omxtra.collections.stl._stl' from its registry
  • deps.dev does not index pypi:omdev@0.0.35; advisories assessed against the repository dependency graph instead
  • OpenSSF Scorecard did not return a usable result (2026/07/31 04:51:10 Warning: PATs stored in env variables GITHUB_AUTH_TOKEN and GITHUB_TOKEN differ. Scorecard will use the former.); skipping Scorecard checks

更多细节

直接依赖 9
注册表软件包版本约束清单文件
PyPIomcore== 0.0.36.pkg/omcore-cext/pyproject.toml
PyPIomdev== 0.0.36.pkg/omdev-cext/pyproject.toml
PyPIomdev== 0.0.36.pkg/omdev-cli/pyproject.toml
PyPIomdev== 0.0.36.pkg/omdev-rs/pyproject.toml
PyPIomcore== 0.0.36.pkg/omdev/pyproject.toml
PyPIomcore== 0.0.36.pkg/ominfra/pyproject.toml
PyPIomcore== 0.0.36.pkg/omllm/pyproject.toml
PyPIomxtra== 0.0.36.pkg/omxtra-cext/pyproject.toml
PyPIomcore== 0.0.36.pkg/omxtra/pyproject.toml
全部依赖 440

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

注册表软件包版本关系
PyPIomcore0.0.36直接
PyPIomdev0.0.36直接
PyPIomxtra0.0.36直接
crates.ioahash0.8.12间接
crates.ioaho-corasick1.1.4间接
crates.ioarc-swap1.8.2间接
crates.ioautocfg1.5.0间接
crates.iobit-set0.8.0间接
crates.iobit-vec0.8.0间接
crates.iocastaway0.2.4间接
crates.iocfg-if1.0.4间接
crates.iocompact_str0.9.0间接
crates.iocrossbeam-deque0.8.6间接
crates.iocrossbeam-epoch0.9.18间接
crates.iocrossbeam-utils0.8.21间接
crates.iodary_heap0.3.8间接
crates.ioeither1.15.0间接
crates.ioequivalent1.0.2间接
crates.iofancy-regex0.16.2间接
crates.iogetrandom0.3.4间接
crates.iohashbrown0.17.0间接
crates.ioheck0.5.0间接
crates.ioindexmap2.14.0间接
crates.ioindoc2.0.7间接
crates.ioitoa1.0.15间接
crates.iolibc0.2.184间接
crates.iolibc0.2.188间接
crates.iolog0.4.29间接
crates.iomemchr2.7.6间接
crates.iomemoffset0.9.1间接
crates.ioonce_cell1.21.4间接
crates.ioportable-atomic1.13.1间接
crates.ioportable-atomic1.14.0间接
crates.ioproc-macro21.0.106间接
crates.ioproc-macro21.0.107间接
crates.iopyo30.27.2间接
crates.iopyo30.29.0间接
crates.iopyo3-build-config0.27.2间接
crates.iopyo3-build-config0.29.0间接
crates.iopyo3-ffi0.27.2间接
crates.iopyo3-ffi0.29.0间接
crates.iopyo3-log0.13.3间接
crates.iopyo3-macros0.27.2间接
crates.iopyo3-macros0.29.0间接
crates.iopyo3-macros-backend0.27.2间接
crates.iopyo3-macros-backend0.29.0间接
crates.ioquote1.0.45间接
crates.ioquote1.0.47间接
crates.ior-efi5.3.0间接
crates.iorayon1.12.0间接
crates.iorayon-core1.13.0间接
crates.ioregex-automata0.4.13间接
crates.ioregex-syntax0.8.8间接
crates.iorustversion1.0.22间接
crates.ioryu1.0.20间接
crates.iostatic_assertions1.1.0间接
crates.iosyn2.0.117间接
crates.iosyn2.0.119间接
crates.iotarget-lexicon0.13.5间接
crates.iounicode-ident1.0.24间接
crates.iounindent0.2.4间接
crates.ioversion_check0.9.5间接
crates.iowasip21.0.1+wasi-0.2.4间接
crates.iowit-bindgen0.46.0间接
crates.iozerocopy0.8.27间接
crates.iozerocopy-derive0.8.27间接
PyPIaiohappyeyeballs2.7.1间接
PyPIaiohttp3.14.3间接
PyPIaiohttp-jinja21.6间接
PyPIaiomysql间接
PyPIaiomysql0.3.2间接
PyPIaiosignal1.4.0间接
PyPIaiosqlite间接
PyPIaiosqlite0.22.1间接
PyPIannotated-doc0.0.5间接
PyPIantlr4-python3-runtime4.13.2间接
PyPIanyio间接
PyPIanyio4.14.2间接
PyPIanyio4.8.0间接
PyPIapsw间接
PyPIapsw3.53.4.0间接
PyPIasgiref3.12.1间接
PyPIasn1crypto1.5.1间接
PyPIast-serialize0.6.0间接
PyPIastpretty3.0.0间接
PyPIasttokens间接
PyPIasttokens3.0.2间接
PyPIasyncpg间接
PyPIasyncpg0.30.0间接
PyPIasyncpg0.31.0间接
PyPIasyncpg-stubs0.31.3间接
PyPIasyncssh间接
PyPIasyncssh2.24.0间接
PyPIattrs26.1.0间接
PyPIbasedpyright1.39.9间接
PyPIbcrypt5.0.0间接
PyPIbitsandbytes0.50.0间接
PyPIblack间接
PyPIblack26.5.1间接
PyPIblobfile3.2.0间接
PyPIboto31.43.60间接
PyPIbotocore1.43.60间接
PyPIbotocore-stubs1.43.14间接
PyPIbrotli间接
PyPIbrotli1.2.0间接
PyPIbuild间接
PyPIbuild1.5.0间接
PyPIcbor2间接
PyPIcbor26.1.3间接
PyPIcertifi2026.7.22间接
PyPIcffi2.1.0间接
PyPIcharset-normalizer3.4.9间接
PyPIclick8.4.2间接
PyPIcloudpickle间接
PyPIcloudpickle3.1.2间接
PyPIcontourpy1.3.3间接
PyPIcramjam2.11.0间接
PyPIcryptography间接
PyPIcryptography49.0.0间接
PyPIcycler0.12.1间接
PyPIcython3.2.9间接
PyPIdatasets5.0.0间接
PyPIddgs9.14.4间接
PyPIdebugpy1.8.21间接
PyPIdecorator5.3.1间接
PyPIdeno2.9.4间接
PyPIdiffusers0.39.0间接
PyPIdill0.4.1间接
PyPIdiskcache5.6.3间接
PyPIdocutils间接
PyPIdocutils0.23间接
PyPIdocutils-stubs0.0.22间接
PyPIduckdb间接
PyPIduckdb1.5.5间接
PyPIexecnet2.1.2间接
PyPIexecuting间接
PyPIexecuting2.2.1间接
PyPIfake-useragent2.2.0间接
PyPIfilelock3.32.2间接
PyPIflake87.3.0间接
PyPIflake8-pyproject1.2.4间接
PyPIflatbuffers25.12.19间接
PyPIfonttools4.63.0间接
PyPIfrozenlist1.8.0间接
PyPIfsspec2026.4.0间接
PyPIgguf0.19.0间接
PyPIgoogle-api-core2.33.0间接
PyPIgoogle-api-python-client2.198.0间接
PyPIgoogle-auth2.56.2间接
PyPIgoogle-auth-httplib20.4.0间接
PyPIgoogle-cloud-compute1.50.0间接
PyPIgoogleapis-common-protos1.75.0间接
PyPIgprof2dot间接
PyPIgprof2dot2025.4.14间接
PyPIgreenlet间接
PyPIgreenlet3.5.4间接
PyPIgrpcio1.83.0间接
PyPIgrpcio-status1.83.0间接
PyPIguppy33.1.7间接
PyPIh110.16.0间接
PyPIh24.4.0间接
PyPIhf-xet1.5.2间接
PyPIhpack4.2.0间接
PyPIhttpcore1.0.9间接
PyPIhttplib20.32.0间接
PyPIhttpx间接
PyPIhttpx0.28.1间接
PyPIhuggingface-hub间接
PyPIhuggingface-hub1.24.0间接
PyPIhyperframe6.1.0间接
PyPIid1.6.1间接
PyPIidna3.18间接
PyPIimageio2.37.4间接
PyPIimportlib-metadata9.0.0间接
PyPIiniconfig2.3.0间接
PyPIinvoke3.0.3间接
PyPIipython间接
PyPIipython9.15.0间接
PyPIipython-pygments-lexers1.1.1间接
PyPIjaraco-classes3.4.0间接
PyPIjaraco-context6.1.2间接
PyPIjaraco-functools4.6.0间接
PyPIjedi0.20.0间接
PyPIjinja2间接
PyPIjinja23.1.6间接
PyPIjmespath1.1.0间接
PyPIjoblib1.5.3间接
PyPIjson50.15.0间接
PyPIkeyring25.7.0间接
PyPIkiwisolver1.5.0间接
PyPIlazy-loader0.5间接
PyPIlibrt0.13.0间接
PyPIlinkify-it-py2.1.0间接
PyPIllama-cpp-python间接
PyPIllama-cpp-python0.3.34间接
PyPIlxml6.1.1间接
PyPIlxml-stubs0.5.1间接
PyPIlz4间接
PyPIlz44.4.5间接
PyPImarkdown-it-py间接
PyPImarkdown-it-py4.2.0间接
PyPImarkupsafe间接
PyPImarkupsafe3.0.3间接
PyPImatplotlib3.11.1间接
PyPImatplotlib-inline0.2.2间接
PyPImccabe0.7.0间接
PyPImdit-py-plugins间接
PyPImdit-py-plugins0.6.1间接
PyPImdurl0.1.2间接
PyPImemray间接
PyPImemray1.19.3间接
PyPImlx间接
PyPImlx0.32.0间接
PyPImlx-lm间接
PyPImlx-lm0.31.3间接
PyPImlx-metal0.32.0间接
PyPImore-itertools11.1.0间接
PyPImpmath1.3.0间接
PyPImsgpack1.2.1间接
PyPImultidict6.7.1间接
PyPImultiprocess0.70.19间接
PyPImwparserfromhell间接
PyPImwparserfromhell0.7.2间接
PyPImypy间接
PyPImypy2.3.0间接
PyPImypy-extensions1.1.0间接
PyPImysql-connector-python间接
PyPImysql-connector-python9.7.0间接
PyPImysqlclient间接
PyPImysqlclient2.2.8间接
PyPInarwhals2.24.0间接
PyPInetworkx3.6.1间接
PyPInh30.3.6间接
PyPInodeenv1.10.0间接
PyPInodejs-wheel-binaries24.16.0间接
PyPInumpy2.5.1间接
PyPIobjgraph3.6.2间接
PyPIominfra0.0.36间接
PyPIomllm0.0.36间接
PyPIonnxruntime1.28.0间接
PyPIopencv-python5.0.0.93间接
PyPIorjson间接
PyPIorjson3.11.9间接
PyPIoutcome1.3.0.post0间接
PyPIpackaging26.2间接
PyPIpandas3.0.5间接
PyPIparamiko间接
PyPIparamiko5.0.0间接
PyPIparso0.8.7间接
PyPIpathspec1.1.1间接
PyPIpcpp间接
PyPIpcpp1.30间接
PyPIpexpect4.9.0间接
PyPIpg8000间接
PyPIpg80001.31.5间接
PyPIpillow间接
PyPIpillow12.3.0间接
PyPIplatformdirs4.11.0间接
PyPIplaywright1.61.0间接
PyPIpluggy1.6.0间接
PyPIpprintpp0.4.0间接
PyPIprimp1.3.1间接
PyPIpriority2.0.0间接
PyPIprompt-toolkit3.0.53间接
PyPIpropcache0.5.2间接
PyPIproto-plus1.28.2间接
PyPIprotobuf7.35.1间接
PyPIpsutil间接
PyPIpsutil7.2.2间接
PyPIpsycopg间接
PyPIpsycopg3.3.4间接
PyPIpsycopg2间接
PyPIpsycopg22.9.12间接
PyPIptyprocess0.7.0间接
PyPIpudb2025.1.5间接
PyPIpure-eval0.2.3间接
PyPIpy-cpuinfo9.0.0间接
PyPIpyarrow25.0.0间接
PyPIpyasn10.6.4间接
PyPIpyasn1-modules0.4.2间接
PyPIpyclipper1.4.0间接
PyPIpycodestyle2.14.0间接
PyPIpycparser间接
PyPIpycparser3.0间接
PyPIpycryptodomex3.23.0间接
PyPIpydantic-monty0.0.19间接
PyPIpydantic-monty-runtime0.0.19间接
PyPIpyee13.0.1间接
PyPIpyflakes3.4.0间接
PyPIpygments间接
PyPIpygments2.20.0间接
PyPIpyinstrument5.1.2间接
PyPIpyjwt2.13.0间接
PyPIpymysql间接
PyPIpymysql1.2.0间接
PyPIpynacl1.6.2间接
PyPIpyopenssl26.3.0间接
PyPIpyparsing3.3.2间接
PyPIpyproject-hooks1.2.0间接
PyPIpyright1.1.411间接
PyPIpytesseract间接
PyPIpytesseract0.3.13间接
PyPIpytest间接
PyPIpytest8.3.4间接
PyPIpytest9.1.1间接
PyPIpytest-benchmark5.2.3间接
PyPIpytest-clarity1.0.1间接
PyPIpytest-mock3.15.1间接
PyPIpytest-stress1.0.1间接
PyPIpytest-subprocess1.6.0间接
PyPIpytest-timeout2.4.0间接
PyPIpytest-xdist3.8.0间接
PyPIpython-dateutil2.9.0.post0间接
PyPIpython-snappy间接
PyPIpython-snappy0.7.3间接
PyPIpytokens0.4.1间接
PyPIpytz2026.3.post1间接
PyPIpyyaml间接
PyPIpyyaml6.0.2间接
PyPIpyyaml6.0.3间接
PyPIrapidocr-onnxruntime间接
PyPIrapidocr-onnxruntime1.4.4间接
PyPIreadme-renderer45.0间接
PyPIregex2026.7.19间接
PyPIrequests2.34.2间接
PyPIrequests-toolbelt1.0.0间接
PyPIrfc39862.0.0间接
PyPIrich间接
PyPIrich15.0.0间接
PyPIripgrep15.1.0间接
PyPIruff0.16.0间接
PyPIs3transfer0.19.2间接
PyPIsafetensors0.8.0间接
PyPIscikit-image0.26.0间接
PyPIscikit-learn1.9.0间接
PyPIscipy1.18.0间接
PyPIscramp1.4.15间接
PyPIsegno间接
PyPIsegno1.6.6间接
PyPIsentence-transformers5.6.0间接
PyPIsentencepiece0.2.2间接
PyPIsetuptools83.0.0间接
PyPIshapely2.1.2间接
PyPIshellingham1.5.4间接
PyPIsix1.17.0间接
PyPIsniffio间接
PyPIsniffio1.3.1间接
PyPIsnowflake-connector-python间接
PyPIsnowflake-connector-python4.7.1间接
PyPIsocksio1.0.0间接
PyPIsortedcontainers2.4.0间接
PyPIsqlalchemy间接
PyPIsqlalchemy2.0.51间接
PyPIsqlean-py间接
PyPIsqlean-py3.50.4.5间接
PyPIsqlite-vec0.1.9间接
PyPIstack-data0.6.3间接
PyPIsympy1.14.0间接
PyPItavily-python0.7.26间接
PyPItextual间接
PyPItextual8.2.8间接
PyPItextual-dev间接
PyPItextual-dev1.8.0间接
PyPItextual-serve1.1.3间接
PyPItextual-speedups间接
PyPItextual-speedups0.2.1间接
PyPIthreadpoolctl3.6.0间接
PyPItifffile2026.7.14间接
PyPItiktoken0.13.0间接
PyPItinygrad间接
PyPItokenizers0.22.2间接
PyPItomlkit0.15.1间接
PyPItorch间接
PyPItorch2.13.0间接
PyPItorchvision0.28.0间接
PyPItqdm4.70.0间接
PyPItraitlets5.15.1间接
PyPItransformers间接
PyPItransformers5.11.0间接
PyPItree-sitter0.26.0间接
PyPItree-sitter-bash0.25.1间接
PyPItree-sitter-css0.25.0间接
PyPItree-sitter-go0.25.0间接
PyPItree-sitter-html0.23.2间接
PyPItree-sitter-java0.23.5间接
PyPItree-sitter-javascript0.25.0间接
PyPItree-sitter-json0.24.8间接
PyPItree-sitter-markdown0.5.1间接
PyPItree-sitter-python0.25.0间接
PyPItree-sitter-regex0.25.0间接
PyPItree-sitter-rust0.24.2间接
PyPItree-sitter-sql0.3.11间接
PyPItree-sitter-toml0.7.0间接
PyPItree-sitter-xml0.7.0间接
PyPItree-sitter-yaml0.7.2间接
PyPItrino0.338.0间接
PyPItrio间接
PyPItrio0.33.0间接
PyPItrio-asyncio间接
PyPItwine间接
PyPItwine7.0.0间接
PyPItyper0.27.0间接
PyPItypes-awscrt0.34.1间接
PyPItypes-boto31.43.60间接
PyPItypes-docutils0.22.3.20260724间接
PyPItypes-greenlet3.5.0.20260518间接
PyPItypes-paramiko5.0.0.20260724间接
PyPItypes-psutil7.2.2.20260518间接
PyPItypes-pygments2.20.0.20260728间接
PyPItypes-pymysql1.2.0.20260724间接
PyPItypes-pyyaml6.0.12.20260724间接
PyPItypes-regex2026.7.19.20260720间接
PyPItypes-s3transfer0.16.0间接
PyPItypes-setuptools83.0.0.20260724间接
PyPItypes-ujson5.10.0.20250822间接
PyPItyping-extensions4.16.0间接
PyPItzlocal5.4.4间接
PyPIuc-micro-py2.0.0间接
PyPIujson间接
PyPIujson5.13.0间接
PyPIunicorn2.1.4间接
PyPIuritemplate4.2.0间接
PyPIurllib32.7.0间接
PyPIurwid4.0.8间接
PyPIurwid-readline0.15.1间接
PyPIuv间接
PyPIuv0.12.0间接
PyPIuvicorn0.51.0间接
PyPIwatchdog6.0.0间接
PyPIwcwidth0.8.2间接
PyPIwheel间接
PyPIwheel0.47.0间接
PyPIwikitextparser间接
PyPIwikitextparser1.0.2间接
PyPIwsproto1.3.2间接
PyPIxxhash3.8.1间接
PyPIyappi1.7.6间接
PyPIyarl1.24.5间接
PyPIzipp4.1.0间接
PyPIzstandard0.25.0间接
依赖安全公告 4

该仓库未发布可被索引解析的包,因此评估的是其自身的依赖图——共 371 个包,其中也包含从不交付的开发与测试版本固定:4 个存在已知公告,0 个为直接依赖。 有 69 个无法评估——没有已解析的版本、生态系统不受支持,或不在所列包清单之内。

软件包版本关系严重程度公告数修复版本
pyo30.27.2间接40.29.0
diskcache5.6.3间接2
pytest8.3.4间接29.0.3
crossbeam-epoch0.9.18间接未知10.9.20

公告表示依赖图中记录的版本落入某条公告的受影响范围。可达性未经分析,且依赖图包含开发与测试的版本固定——某项发现可能只涉及工具链而非交付的软件。

原始 JSON 报告 机器可读
{
  "data": {
    "repo": {
      "topics": [],
      "is_fork": false,
      "size_kb": 54773,
      "has_wiki": true,
      "homepage": null,
      "languages": {
        "C": 106587,
        "C++": 306513,
        "CSS": 5200,
        "GDB": 60,
        "HTML": 4945,
        "Java": 40274,
        "Rust": 60748,
        "ANTLR": 14750,
        "Jinja": 7633,
        "Shell": 9022,
        "Python": 29236729,
        "Clojure": 1802,
        "PLpgSQL": 1515,
        "Makefile": 13302,
        "Dockerfile": 13080,
        "JavaScript": 13418,
        "Vim Script": 92,
        "Jupyter Notebook": 1188
      },
      "pushed_at": "2026-07-31T04:49:43Z",
      "created_at": "2023-04-25T22:05:37Z",
      "owner_type": "User",
      "updated_at": "2026-07-31T04:49:53Z",
      "description": "My python monorepo.",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "BSD-3-Clause",
      "default_branch": "master",
      "license_spdx_raw": "BSD-3-Clause",
      "primary_language": "Python",
      "significant_languages": [
        "Python"
      ]
    },
    "owner": {
      "blog": "http://wrmsr.com/",
      "name": "wrmsr",
      "type": "User",
      "login": "wrmsr",
      "company": null,
      "location": "San Frandisco",
      "followers": 92,
      "avatar_url": "https://avatars.githubusercontent.com/u/559096?v=4",
      "created_at": "2011-01-12T09:06:47Z",
      "is_verified": null,
      "public_repos": 240,
      "account_age_days": 5678
    },
    "license": {
      "state": "standard",
      "spdx_id": "BSD-3-Clause",
      "raw_spdx": "BSD-3-Clause",
      "file_present": true,
      "scorecard_found": null,
      "profile_has_license": true
    },
    "activity": {
      "releases": [],
      "recent_commits": [
        {
          "oid": "b286a1be2ce1a98596e5912ebca432d341991b48",
          "body": "…ies.",
          "is_bot": false,
          "headline": "Bump all package versions to 0.0.36 and align inter‑package dependenc…",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-31T04:49:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cc02e7871c02d67ac933c7098caa056fa1181402",
          "body": "Upgrade tinygrad submodule to the latest commit.",
          "is_bot": false,
          "headline": "Bump boto3, botocore, and types-boto3 to 1.43.60",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-31T04:29:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4734c625789e1972bb35b91af1e8274ceaad398f",
          "body": "… and add proper shutdown semantics to ImmediateExecutor\n\n* Capture and validate return values in async and sync commands, returning a boolean check instead of raw results.\n* Simplify and correct parser class configuration: iterate over MRO directly, delete duplicate entries correctly, and merge ann\n[…]\ncellation logic in `wait_futures` and `wait_dependent_futures`.\n* Add extensive tests covering inheritance precedence, async command validation, executor behavior, and edge cases for futures handling.",
          "is_bot": false,
          "headline": "Fix async CLI return handling, refine Argparse parser MRO processing,…",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-31T04:04:58Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "5cb4d01a3fce21ed05e9a000d3035d0629ce5211",
          "body": "Validate ManifestLoader configuration types, fix class‑key parsing edge cases, and expand tests for config merging, manifest loading, and private class handling.",
          "is_bot": false,
          "headline": "Improve asyncio_maybe_timeout handling and add timeout tests",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-31T03:57:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "33e8ce0b7eae42656ca945dcee2ff6039c8c0667",
          "body": "…ndling\n\nReplace the manual loop in `ConditionDeque.pop` with `cond.wait_for` and raise `TimeoutError` on timeout. Added unit tests covering FnTarget runner chaining, SequentialWait progression, and ConditionDeque behavior including timeout, `if_empty` callback, and thread‑synchronised push.",
          "is_bot": false,
          "headline": "Add tests for targets, waiting and ConditionDeque; fix pop timeout ha…",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-31T03:52:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "438ce242bfd80e63e2f989baae4d4542aeec9996",
          "body": "- Permit port 0 in TcpSocketBinder validation and add tests for default ephemeral ports.\n- Add optional no‑close behavior to StandardSocketHandler.\n- Use SocketWriter when write buffer size is zero, fixing buffer handling.\n- Introduce unit tests for socket binding, handlers, IO pair behavior, and datetime utilities.",
          "is_bot": false,
          "headline": "Allow zero port and improve socket handling",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-31T03:47:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3ea4c8ca96dafb55e12419f60392ceb8b702d05d",
          "body": "Create threads with isolated contextvars, replace rmtree with safe unlink for temporary files, delete callback entries on keyed exit‑stack removal, and add tests for LinuxOsRelease, path checks, temp file cleanup, and keyed exit‑stack reuse.",
          "is_bot": false,
          "headline": "Fix variant ID key case and strengthen path containment logic",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-31T03:43:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2a9026b73aa2f265596bef9eee3ff78166f11fe3",
          "body": "Update Bind placeholder detection, add validation to iterables.chunk, refine recursion limiting logic, and extend test coverage for builders, genmachine, guard, pairs, pipes, cells, class dictionary helpers, datetimes, iterables, and recursion.",
          "is_bot": false,
          "headline": "Fix DebugFnBuilder sys path flag and improve GenMachine.close robustness",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-31T03:35:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2b0c106535ef428803cdfa2aac0b5c21b2b522e6",
          "body": "Remove unnecessary Py_DECREF in StrongCache dispatch and add tests for strong‑cache reference ownership and uncached‑miss handling.",
          "is_bot": false,
          "headline": "Replace manual timedelta to seconds conversion with total_seconds()",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-31T03:20:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "08027702b0b779bd6cc7948311582ddd7fea388e",
          "body": "…tilities, progress bar, decoding, and indent writer.\n\nTests cover global timer context and decorator, ANSI color palette bounds, term coloring selection, progress bar behavior for empty and small sequences, and proper decoding of multibyte offsets. Also correct the bounds check in _clamp_ofs, handle zero‑total progress bars safely, select struct format based on raw input length, and fix newline offset handling in IndentWriter.",
          "is_bot": false,
          "headline": "Add extensive unit tests and fix edge‑case bugs in timers, terminal u…",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-31T03:00:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "876b7a9b509df3ccdeb1b1b6097b572245186a53",
          "body": "Improve rendering by escaping strings and attribute values, remove unused dataclass imports, fix lifecycle manager recursion order, correct pwgen CLI character class selection, and add tests for content removal, rendering, lifecycle dependencies, and password generation.",
          "is_bot": false,
          "headline": "Add strict mode to Dom.remove and enforce content presence",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-31T02:57:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ee54ee90f2fd818bab44b18433c640b6cbf19791",
          "body": "…ests\n\n- Initialize depth‑first traversal with root in seen set and use safe dict.get for immediate dominators.\n- Replace recursive DFS with explicit stack in dominator tree construction.\n- Simplify DOT graph creation, correctly escape IDs, and improve make_simple handling.\n- Strengthen iterator uti\n[…]\npling histogram, and Stats (empty data defaults, percentile bounds, bin count checks, trim behavior).\n- Introduce C‑style division/modulus utilities with zero‑divisor handling and corresponding tests.",
          "is_bot": false,
          "headline": "Fix bugs across graph, iterator, and math modules and add extensive t…",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-31T02:10:13Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "09d7d43f5580a172eab1d0e4909e466d88d160e8",
          "body": "Add tests for distribution, bytes codecs, chain codec, and registry; improve CodecRegistry.register to detect duplicate names atomically.",
          "is_bot": false,
          "headline": "Validate bin count in distribute_evenly and add tests",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-31T02:08:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ed376d1f54fd99961a046f19259851d852d9f397",
          "body": "Correct IdentityWeakSet discard handling, OrderedSet pop behavior, ProxySet operator overloads, SortedListDict deletion and value iteration, SkipList descending iteration edge cases, and add comprehensive tests for frozen, identity, ordered, proxy, mappings, ranked, skiplist, and utils.",
          "is_bot": false,
          "headline": "Fix FrozenDict reuse logic, hashing, and update methods",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-31T02:05:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e06221fe2299faacaa7cec79288ccaafaa4480f5",
          "body": "Synchronize all package versions and internal dependencies to the new 0.0.35 release.",
          "is_bot": false,
          "headline": "Bump version to 0.0.35",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-31T01:59:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3053c41834007f1d36928ad950f06847377dc40f",
          "body": "Introduce a zero‑dependency Redis client built as a non‑HTTP pipeline, including command encoder, response decoder, client handlers, and a demo script for synchronous and asynchronous drivers. Add comprehensive unit tests covering address parsing, fragmented replies, end‑to‑end client behavior, and error handling. Mark `_IoPipelineAsgiStepResult` with a TypeAlias comment.",
          "is_bot": false,
          "headline": "Add RESP2 Redis client pipeline example and tests",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-30T23:44:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d4fe8afd8ca7852b6e915dd52e1fbfb7fcb1cbf0",
          "body": null,
          "is_bot": false,
          "headline": "Add nginx and redis to development and system dependency sets",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-30T23:18:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c710628970e5d42fa4d95fd929f26f9fab6be02a",
          "body": "…tor fast‑path\n\nIntroduce `ElementCollection.provision_plan` cached per key and integrate a fast‑path in `AsyncInjectorImpl` that directly executes compiled plans. Refactor `impl/plans.py` to use async‑native two‑colored nodes, add `is_degenerate` handling, and make `ProvisionPlan.provide` async. Update imports, proxy loading, and tests (planning demo, GC, plan parity) to exercise the new compiler and fast‑path behavior. Adjust documentation and TODO notes accordingly.",
          "is_bot": false,
          "headline": "Add async‑native provision‑plan compiler with per‑key cache and injec…",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-30T23:15:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "38e00cd38c0cc295bdfcb5bc7918cd1a44b8f81a",
          "body": "Inject permissions manager to enable permission handling in the command suite.",
          "is_bot": false,
          "headline": "Add PermissionsCommand to UI command manager",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-30T23:12:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "925b860b15304d5909e2cfc466a04af73790b33e",
          "body": "…parsing\n\nIntroduce _IoPipelineHttpResponseReaderState to manage pending data and end-of-response detection, and _raise_http_response_aborted to surface aborts as HttpClientError. Extend both async and sync pipeline clients to handle IoPipelineHttpResponseAborted messages and enforce proper read sem\n[…]\nlicit default ports, and construct accurate Host headers. Add comprehensive unit tests for request preparation, response streaming, and abort scenarios. Include new permissions command implementation.",
          "is_bot": false,
          "headline": "Add response abort handling, response reader state, and improved URL …",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-30T23:05:20Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "07f00773edcc5d4b38266846dd32e012f66c651d",
          "body": "…prompting\n\nIntroduce an InputPermissionAsker class and switch to StandardPermissionDecider with ASK rules for filesystem permissions, importing the new decider and updating the permission handling logic accordingly.",
          "is_bot": false,
          "headline": "Add fdio client comparability note and enable interactive permission …",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-30T22:46:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4dd875bcf39bd5d935d75760b4da51817546f2e0",
          "body": "Introduce `ProvisionPlan` and `ProvisionPlanCompiler` to compile static provision plans, update `OnceProvisionMap.provide` to accept an optional compute function for compiled scopes, refactor the planning demo to use the new API, and add a full test suite (`test_plans.py`) covering memoization, singleton sharing, scoped caching, cycle detection, unbound keys, listener fallback, parent delegation, cross‑boundary coherence, and compiler reuse.",
          "is_bot": false,
          "headline": "Add experimental provision‑plan compiler",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-30T22:23:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0cef492244e8455e1b0eda0cbbdd0110d056bd52",
          "body": "…P pipelines\n\nIntroduce CanByteStreamBuffer types and ByteStreamBuffers utilities, update compressors, decompressors, aggregators, chunking, websocket handling, and related tests to work with segmented buffers. Drivers (asyncio, fdio, sync, pure) now emit SegmentedByteStreamBuffer instances instead of raw bytes, and decoders adopt mutable buffers without unnecessary copying. This refactors the codebase to a unified, zero‑copy byte buffer model.",
          "is_bot": false,
          "headline": "Replace BytesLike usage with ByteStreamBuffer abstractions across HTT…",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-30T22:16:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9972669f1abc0f78698521d086e22b564cce33ff",
          "body": "Rename `SimplePermissionsManager` to `StandardPermissionsManager` throughout the codebase. Introduce a `PermissionRequestor` alias and a new `PermissionAsker` interface. Update `PermissionDecider` signatures to accept a requestor, add a `StandardPermissionDecider` implementation, and modify all permission checks in tools and UI to pass the execution context (`ctx`). This enhances permission handling with explicit requestor awareness.",
          "is_bot": false,
          "headline": "Refactor permission system to use requestor context and rename manager",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-30T22:15:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "008bf020ef52773be8a2a4cbe7dccb1ac082eb6b",
          "body": "…ring\n\nIntroduce `Plan` and `PlanCompiler` to statically compile injection graphs, allocate slot‑based memoization, handle singleton and delimited scopes, detect cycles at compile time, and fall back to interpreter for unsupported providers. Includes a self‑test suite and benchmarking demo to verify semantics and measure performance.",
          "is_bot": false,
          "headline": "Add experimental provision‑plan compiler with shape/link/execute laye…",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-30T21:50:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2039195635702927a0b4daed6668aa51040491c8",
          "body": "Introduce a tiny, dependency‑free SVG rendering library that supports grouped bar charts, legends, axes, and automatic layout. Includes data models, scaling utilities, and a benchmark_dashboard helper to generate client and server benchmark SVG files.",
          "is_bot": false,
          "headline": "Add SVG dashboard renderer and benchmark generator",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-30T21:47:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "912c1ba5fc1ff6cae39a34c92ad2ab0243d8ea7e",
          "body": "Use a Protocol to define the callable signature, improving type checking and readability.",
          "is_bot": false,
          "headline": "Replace ProvisionListener type alias with Protocol",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-30T21:35:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fd90d729f59dbd1ff5a851a60098e3f9caf708c5",
          "body": "Introduce `read_batch_max_bytes` and `read_batch_max_reads` in the driver configs, validate their values, and modify the read loops of asyncio, fdio, pure, and sync drivers to respect these limits. The changes ensure input flushing occurs before EOF, handle partial read errors correctly, and update related tests to cover the new behavior.",
          "is_bot": false,
          "headline": "Add configurable read batch limits to I/O pipeline drivers",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-30T21:31:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "91c26dcf11879f5145848c96fda7aa1d90b05c31",
          "body": "…tions for request handling and scope entry\n\nImplemented a non‑generator `_RequestGuard` and inlined request‑frame logic in `_try_provide` to eliminate contextmanager overhead. Added manual async context manager `_Entry` in `DelimitedScopeImpl` and `_AsyncScopeEntry` wrapper for `async_enter_scope`, removing `contextlib` usage and importing `types`. Updated imports accordingly and streamlined source‑stack handling. These changes improve hot‑path performance.",
          "is_bot": false,
          "headline": "Replace generator‑based context managers with manual class implementa…",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-30T21:18:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "610da5825e5bf7221ca844f0334ace027bc8a973",
          "body": "Introduce a self‑contained benchmark module with latency and memory tests, auto‑calibrating iteration counts, async support, JSON output, and optional cProfile profiling. Provides a command‑line interface to run, filter, and profile benchmarks, helping detect performance regressions and memory leaks.",
          "is_bot": false,
          "headline": "Add DIY benchmarking and profiling suite for omcore.inject",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-30T21:01:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dd6b55d62b33dd97d6f94bae0a9de25f80ff1a9d",
          "body": "Add `target_factory` and `case_runner` parameters to `_run_client_suite`, defaulting to a fresh Nginx fixture for each case to prevent state leakage. Update documentation to reflect the new behavior. Introduce tests that verify a new target is created for every client case and that an external base URL is reused across cases.",
          "is_bot": false,
          "headline": "Refresh client target per case and make client suite injectable",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-30T20:42:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "06666b0f4c3336675e612431696fc46c39660a6b",
          "body": "Introduce DelimitedScope as the new unit‑of‑work scope, implement ContextVar‑backed opening policies, and update the injector to validate scope registration, prevent redeclaration in child injectors, and enforce eager bindings to be local to their scope. Add new error types (ScopeAlreadyRegisteredError, ScopeNotRegisteredError, ScopeEagerNonLocalError) and adjust default scopes handling. Update documentation, tests, and utility functions to use the new DelimitedScope API.",
          "is_bot": false,
          "headline": "Replace SeededScope with DelimitedScope and add contextual scope support",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-30T20:35:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ad116fe8eb4b4c6892601be4dd1491a5ed8b83cf",
          "body": "Introduce a new bench module providing client and server benchmark implementations, utilities for parsing, partitioning, and result handling, along with a comprehensive test suite covering core functionality.",
          "is_bot": false,
          "headline": "Add self-contained HTTP pipeline benchmarks and tests",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-30T19:23:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "893d3578e7e716f8d4b35598dbe5a38d0e028450",
          "body": "Implemented PermissionRules collection, deciders, FS, shell, and URL matchers, managers, and marshaling support. Replaced the old PermissionGranter with PermissionDecider in filesystem, read, and bash tools, introduced SimplePermissionsManager and a default deny decider, and updated the UI accordingly while removing the obsolete PermissionGranter module and adding comprehensive tests.",
          "is_bot": false,
          "headline": "Add modular permissions system and migrate tools to PermissionDecider",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-30T19:20:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "96680ace6af894fc3bb558d05af54d9141c70e7a",
          "body": null,
          "is_bot": false,
          "headline": "Bump nginx to 1.31.3 and nginx_vts to 0.2.6",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-30T18:56:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "778af450813dd2b66244ba007d12a2d7e4c9cc5e",
          "body": "Simplify runner creation by using the default asyncio.Runner, which already creates a fresh event loop.",
          "is_bot": false,
          "headline": "Remove redundant loop_factory argument from asyncio.Runner",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-30T18:11:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4b2150668e22252872d8f197aca5a72b9ad5ba81",
          "body": "…rencing inj, and asyncio coalescing; refactor pipeline driver attribute declarations\n\nExtended test suite now covers:\n- Verification that injector keys are not type‑checked and can return any bound value.\n- A late‑binding example using a custom getter type that avoids importing the injection machin\n[…]\ner`, `PureIoPipelineDriver`, `SyncSocketIoPipelineDriver`) have been cleaned up by consolidating and reordering attribute definitions, removing duplicated declarations, and simplifying initialization.",
          "is_bot": false,
          "headline": "Add injector tests for type‑unchecked keys, late binding without refe…",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-30T18:02:27Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "1b14ad656f1a68db607b27e9246e87c53cf460a3",
          "body": "…cs, and tunnel mode\n\nIntroduce `is_interim` on response heads and a new `tunnel` body mode. Update the HTTP client pipeline to skip interim responses, correctly process HEAD and CONNECT requests, and reject conflicting Transfer‑Encoding/Content‑Length headers. Implement a client‑aware response deco\n[…]\nndler to manage interim and final response states. Add comprehensive tests for these behaviors and fix the WebSocket client upgrade handler to consume the HTTP response end after a successful upgrade.",
          "is_bot": false,
          "headline": "Add proper handling for interim (1xx) responses, HEAD/CONNECT semanti…",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-30T05:12:59Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "b6ccabc280eb6f8088c396859bd6081a0dd6f9ff",
          "body": "Implement weak reference handling for bound cached methods, including a fallback strong holder for non‑weakrefable objects, new cache spec flags, descriptor adjustments, and code‑gen changes. Add comprehensive tests for weak binding behavior, element‑collection garbage collection, and update related documentation and TODO entries.",
          "is_bot": false,
          "headline": "Add weak‑instance caching with pinning and strong_instance option",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-30T04:49:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4f9fda2c49986888109d7acb0780d12543e9f7c2",
          "body": "…internal constants, add dead‑injector detection, and support weak‑parent private injectors. Update late binding to use weak refs, adjust seeded‑scope manager and child handling, and add comprehensive GC hygiene tests.",
          "is_bot": false,
          "headline": "Fix reference‑cycle leaks by weak‑ref‑ing injector relationships and …",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-30T03:59:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6d657a17e8b29b6cf0205a53e7f78577701ff604",
          "body": "…class\n\nMoved the file to `omcore/diag`, merged a split comment line, replaced `# pragma: no cover` with `# noqa`, and added an `other: ta.Any` attribute to the inline test class.",
          "is_bot": false,
          "headline": "Rename refcycles module, tighten comments, and add type hint to test …",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-30T02:18:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a74f61becfef595287915b0a02e78a83b94b9452",
          "body": "Switches all uses of `uuid.uuid4()` to the newer `uuid.uuid7()` to obtain time‑ordered, sortable identifiers across tagging, multipart encoding, storage journaling, linecache reservations, and LLM backend tool call IDs.",
          "is_bot": false,
          "headline": "Replace uuid4 with uuid7 for UUID generation",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-30T01:09:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d108ef4bee28cee0f3a705fa0e390a85dbc71566",
          "body": null,
          "is_bot": false,
          "headline": "Bump package versions to 0.0.34 across all components.",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-30T00:08:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f1a70eaf08371c0b3cb109d5597493a762c9526c",
          "body": null,
          "is_bot": false,
          "headline": "Add transformers to backend dependency skip list",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-30T00:04:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "87fac6d8d22ebcf89d158d8f89e1679ece2dd879",
          "body": "Replace the pipdeptree module call in the Makefile, drop pipdeptree from dev and frozen requirements, and remove obsolete packages (Flask stack, blinker, installer, itsdangerous, nab‑*, tomli, truststore, Werkzeug, etc.) while adjusting build version.",
          "is_bot": false,
          "headline": "Use x.pipdeptree for the dep‑tree target and prune unused dependencies",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T23:54:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f8f8f68b4947805627bd77180aead1fd6468ad56",
          "body": null,
          "is_bot": false,
          "headline": "Upgrade filelock to 3.32.2 and bump tinygrad submodule",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T23:48:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c3fd8fd19136c18384ba27744a195eff16c40c10",
          "body": "Drop the type:ignore on session.verify and session.pip_proxy assignments, and add a try/except to import stdlib_pkgs from pip._internal.metadata.base for pip 26.2+, falling back to the previous location.",
          "is_bot": false,
          "headline": "Remove unnecessary type:ignore comments and improve stdlib_pkgs import",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T23:47:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "81f20644e6a81b5fd12155bc1db1f1fdf044d604",
          "body": "Introduce CommandContext and CommandClass with full argparse handling, replace ui_text_to_rich_text with text_to_rich_text, add QuitSignal/RaiseQuitSignal, ensure MarkdownText writes a trailing newline, update CommandsManager to use TextDisplayer, add Echo and Quit simple commands, and integrate command handling into Session and the bare UI.",
          "is_bot": false,
          "headline": "Refactor command architecture and UI utilities",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T23:34:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a9df7f67b4f86d8b4e77a00d4a6a9d9b5ad568ad",
          "body": "Add multi‑scope seed discussion to the TODO and refactor the UI module (display, json, rich, text) and related tests to use the new Text, TextStyle, and TextDisplayer names throughout the codebase.",
          "is_bot": false,
          "headline": "Rename UiText API to Text and update all references",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T23:02:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "14af4de74aa963dd6fe3cd049e3ea82a6ada05f6",
          "body": "Introduce base Command classes with argument parsing, error handling, and a CommandsManager that parses text input, resolves commands, and executes them with UI feedback. This provides a structured command infrastructure for the harness.",
          "is_bot": false,
          "headline": "Add command framework to harness",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T22:55:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c50d40548cb7eba79be18ff9f5bec1a3f8366128",
          "body": "…ending‑removal semantics\n\nDocument the required removal contract, reentrant decode handling, and test coverage for inbound/outbound topology mutations.",
          "is_bot": false,
          "headline": "Add comprehensive TODO describing dynamic decoder removal and Netty p…",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T22:47:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9e2882752e4c371bb201e6db2695719f337cdf53",
          "body": "…bda with inj.target\n\nIntroduce `ScopeFrozenError` and a `freeze()` method for `SeededScopeImpl`, adding a frozen flag and guard in provision. Extend `OnceProvisionMap` with a `has()` check and use it to enforce frozen behavior. Ensure async injector initialization before `provide_kwargs` and `injec\n[…]\ndings with the preferred `inj.target` across the codebase, updating imports, docs, and tests. Add new tests for frozen scopes and adjust documentation regarding collection ordering and lambda binding.",
          "is_bot": false,
          "headline": "Add frozen‑scope support and request‑sharing fixes; replace typed_lam…",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T22:44:33Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "2da874e09190a88b6b6facf57d2bdafe39756dfc",
          "body": "…xpose in UI package\n\nIntroduce MarkdownUiText class as a placeholder for markdown rendering and update imports accordingly.",
          "is_bot": false,
          "headline": "Add UiTextDisplayer abstraction with Nop and Print implementations; e…",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T22:40:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8f91dd94fc66b990531bfd777b9660b66b522267",
          "body": "…xamples, and common patterns\n\nInclude tests for graph shapes, failure paths, scopes, multibindings, overrides, lifecycle management, and real‑world composition patterns.",
          "is_bot": false,
          "headline": "Add extensive injector test suite covering adversarial cases, usage e…",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T22:03:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "eb603ecff1091f3d36688f48d5810d7373b405e2",
          "body": "Update documentation to include the pure driver as a reference implementation, adjust fdio and sync drivers to use the flow service’s auto‑read logic, introduce a deterministic PureIoPipelineDriver, add extensive conformance and pure‑driver unit tests, and enable heap scheduler to accept an injected clock for deterministic timing.",
          "is_bot": false,
          "headline": "Add pure no‑I/O driver and comprehensive driver conformance tests",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T21:58:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "96b178a21d79551313800b611846fc05cd0716fe",
          "body": "Introduce a new “interop” package with modules for llama‑cpp, mlx, tavily, tinygrad, torch, and transformers, including utilities for hacks, function creation, name generation, patching, tokenization, generation, loading, and streaming. Extend the project dependencies to include llama‑cpp‑python, mlx, mlx‑lm, tinygrad, torch, and transformers, and rename the huggingface group to “interop”. Add corresponding tests, fixtures, and helper scripts.",
          "is_bot": false,
          "headline": "Add interop support for multiple backends and update dependencies",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T21:57:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a50cc8b8b060d8a1b3c4de4c6dff82825d5c0591",
          "body": "Implemented a new `Session` class that holds an `Agent` and forwards prompts, added the corresponding import, and updated the UI to use `Session.prompt` instead of calling the agent directly. Also renamed agent imports to `agn` and adjusted related references.",
          "is_bot": false,
          "headline": "Add Session wrapper in harness and integrate it into the bare UI",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T21:29:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "09d855eed21a87f88a34101d08cfd61e79982de8",
          "body": "Refactor TurnLoop to build the LLM context in a dedicated method and add a verbose CLI flag for conditional event output.",
          "is_bot": false,
          "headline": "Add error handling to tool execution and expose errors in ToolResult",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T21:22:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "68427b27abb94ea2d600e02d4afc1654ed7ba7f2",
          "body": "Expose the new LlmAiStreamEvent, emit it while iterating over llm.StreamBackend streams, and switch the bare UI example to use the streaming backend with event logging.",
          "is_bot": false,
          "headline": "Add LlmAiStreamEvent and stream handling in TurnLoop",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T20:56:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "54d1b8db4465cbb699065e5a262029ae914b6879",
          "body": "Add a cached RichMarkdown configuration, import typing, lang, and Rich UI utilities, adjust permission prompt formatting, and remove stray debug printing.",
          "is_bot": false,
          "headline": "Render AI text content with Rich Markdown",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T20:41:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e9606d7600ffa4c4c25c1124172023df7ca24339",
          "body": "Upgrade pgvector to 0.8.6, bump boto3, botocore, types‑boto3 to 1.43.59, and update APSW. Refine event handling to print only AiMessage objects and advance the tinygrad submodule reference.",
          "is_bot": false,
          "headline": "Bump pgvector image and update core dependencies",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T20:32:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d8714f408e7eaabf906bf4955802c8fe6c6c0331",
          "body": "Remove unused static _run_* helper methods and the functools import, using check.isinstance within the lambdas to invoke the appropriate instance method directly.",
          "is_bot": false,
          "headline": "Replace timeout callbacks with inline lambdas",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T20:28:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "965bbb670f732f689aae44c17361346f46d74c9b",
          "body": "Introduce DESIGN.md detailing architecture, lifecycle, flow control, scheduling, and driver contracts. Update README with a link to the design doc and clean up the TODO list accordingly.",
          "is_bot": false,
          "headline": "Add comprehensive pipeline design documentation",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T20:14:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "518a02695c82b05e624c2a936c832737d00a5fe7",
          "body": "Add listener logic to record write activity when a FlushOutput completes successfully, introduce WRITE_ACTIVITY_STATES, update documentation, and extend tests to cover flush completion handling, failure cases, and interaction with idle timers.",
          "is_bot": false,
          "headline": "Track successful FlushOutput as write activity",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T20:00:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "04308935dfad716c00add68fc7d0b1c07c79f373",
          "body": "Include tests for immediate and streaming backends using SyncAsyncHttpClient and lang.sync_await to verify synchronous execution.",
          "is_bot": false,
          "headline": "Add sync test cases for OpenAI completions backends",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T19:58:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "57e9abf0c47e0fd4497963a02b777e892c701af4",
          "body": "Implement a new handler that schedules and cancels write deadlines for FlushOutput and FinalOutput fences, emits TimeoutIoPipelineError on expiry, and integrates with pipeline scheduling. Extend tests for sync, asyncio, and fdio drivers to cover timeout behavior and remove obsolete TODO comments.",
          "is_bot": false,
          "headline": "Add WriteTimeoutIoPipelineHandler with outbound timeout enforcement",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T19:37:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ed9309b44d708c43cce5e90fa66ca3d8dbb44f82",
          "body": "…eyed elements concatenate\n\nUpdate ElementCollection to apply overrides by whole‑bucket replacement for keyed elements while concatenating unkeyed ones. Add detailed docstring to `override` explaining the behavior. Adjust tests to reflect the new override logic (remove xfails, add cases for set/map multi‑bindings and eager handling). Clean up imports and TODO notes related to validation.",
          "is_bot": false,
          "headline": "Fix override semantics: per‑key elements now replace wholesale, non‑k…",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T19:33:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3b476a13a331256f008f9fe1fbe940677b9ee03f",
          "body": "Introduce a non‑blocking `drain_socket` helper for tests and a new `TestFdioSslIoPipelineHandlerShutdownTimeout` class that verifies TLS shutdown timeout handling, timer scheduling, error propagation, and proper driver cleanup.",
          "is_bot": false,
          "headline": "Add TLS shutdown timeout test and socket drain helper",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T19:02:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c40884503c57c337082e9324d414a518869240be",
          "body": "These tests capture the intended semantics for set, map, eager bindings, and non‑keyed elements, which currently fail because the override implementation replaces per‑key element lists wholesale (see TODO.md).",
          "is_bot": false,
          "headline": "Add xfail tests for override merging behavior and edge cases",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T18:59:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "db6fa95fcbbba86c7438c55df0c58d19f305ec15",
          "body": "Introduce a RecordingSelectFdioPoller to capture poll timeouts and a new TestFdioSslIoPipelineHandlerTimeout verifying TLS handshake timeout handling with FdioManager. Add InputPermissionGranter that prompts the user for permission instead of using a constant granter.",
          "is_bot": false,
          "headline": "Add FDIO TLS handshake timeout test and interactive permission granter",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T18:55:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ef682bc973b26b324cec62099fc121e0e2d68c31",
          "body": "The `in_` argument now accepts a scope name (`str`) as well as a `Scope` instance, enabling configuration by string identifiers.",
          "is_bot": false,
          "headline": "Allow string values for `in_` scope parameter in bind()",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T18:49:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9e1ccd2de628eadc51d7cedeaefd9cc8af7ff0f0",
          "body": "…ivers\n\nRefactor the fdio and sync socket pipeline drivers to use a new common `HeapIoPipelineSchedulingService` instead of duplicated internal scheduler implementations. Update driver code to call `run_due()` and adjust imports accordingly. Add comprehensive heap scheduler unit tests and a new FDIO HTTP server timeout test covering partial request handling and timeout propagation. Update related test expectations and clean up TODO entries.",
          "is_bot": false,
          "headline": "Extract shared heap‑based scheduling service and integrate it into dr…",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T18:46:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bded591d6230fe627f0e7d9185424b404c5745e7",
          "body": "Introduce a generic `ScopeImpl` with class methods (`scope_cls`, `eager_point`, `auto_elements`), replace `make_scope_impl` usage with a new `get_scope_impl` lookup, update element collection and eager‑point checks accordingly, and restructure the scope implementation registry.",
          "is_bot": false,
          "headline": "Refactor scope handling to generic class‑based implementation",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T18:45:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8c4e51c5ec8dbaf39558171609bb611073ae130b",
          "body": null,
          "is_bot": false,
          "headline": "--",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T18:39:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5f06b3674b3c3d110395e02bf4d23127259a737e",
          "body": "Introduce `_has_init` flag and async helpers in `InputManager` to import `readline` only when stdin is a TTY. Use the manager for all prompts, handling `EOFError` to exit cleanly, and rename the backend variable for clarity. This prevents unnecessary imports and improves graceful shutdown.",
          "is_bot": false,
          "headline": "Add lazy readline initialization and robust input handling",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T18:19:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2cc73da71e2a87dae4a345cab14d81dc02393c6c",
          "body": "Introduces a lock‑protected `input` method that runs `input()` in a background thread, enabling safe concurrent usage in asynchronous contexts.",
          "is_bot": false,
          "headline": "Add async InputManager with thread‑offloaded input handling",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T18:15:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "94c8367358b450452404a5200d7e0125c3c9f7ef",
          "body": "…e in IoPipelineDriverSocketFdioHandler with timer support, deadline handling, cancellation, and manager wake‑up.",
          "is_bot": false,
          "headline": "Add fdio HTTP ping server demo and tests; implement scheduling servic…",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T17:46:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d62be7b6ea8f38920d71778bd1f8fef3ffa251e5",
          "body": "Introduce PermissionGranter and ConstantPermissionGranter, expose them in the agent package, update LsTool, ReadTool, and BashTool to require a PermissionGranter and enforce permission checks, and wire a constant granter into the bare UI.",
          "is_bot": false,
          "headline": "Add permission granter infrastructure and integrate it into tools",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T17:42:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cc7e23681d378e22d8c6733295bd0da34ccdad6f",
          "body": "Eliminate `omcore.lang.cached_function` wrappers and related imports from dummy, filesystem, and shell tools. Update all callers—including tests and the bare UI—to import the tool classes (`GetWeatherTool`, `LsTool`, `ReadTool`, `BashTool`) and invoke `.tool()` on instantiated objects, simplifying the tool registration flow.",
          "is_bot": false,
          "headline": "Remove cached tool factories and use tool class instances directly",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T17:30:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "41a58aa0537b6c75cf24abdef8464f0e0a924429",
          "body": "Introduce `next_deadline` and `on_timeout` abstract methods, compute poll timeout from the earliest handler deadline, validate caller‑provided timeout, invoke `on_timeout` when due, clean up closed handlers, adjust poller unregister behavior, and add extensive unit tests for the new functionality.",
          "is_bot": false,
          "headline": "Add deadline handling and timeout callbacks to FDIO manager and handlers",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T17:24:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1bcd521045da099a42a9707e115ec7948e3358ca",
          "body": "Introduce -S/--start-col and -E/--end-col options with validation and end‑line adjustment, add optional argument logging, and include a regression test for docstring wrapping.",
          "is_bot": false,
          "headline": "Add column support to docwrap CLI",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T17:23:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "13691e20f006a93f6f3788d847ec795be9425d31",
          "body": "This updates the submodule reference from a17387d6a to 3803f1583, bringing in recent changes and fixes.",
          "is_bot": false,
          "headline": "Upgrade tinygrad submodule to newer commit",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T16:40:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3df3b73164386ff5a2ebdcb62ba373e52f7eb36c",
          "body": "…ful shutdown\n\nReplace the previous non‑completable FinalOutput with a dataclass implementing Completable[None]. Adjust pipeline contexts to return the message, add helper methods to finish the Completable on success or error, and update asyncio, fdio, and sync drivers to invoke these helpers during drain and close. Refactor handlers and tests to track and assert the FinalOutput’s completion state, ensuring proper graceful termination without premature aborts.",
          "is_bot": false,
          "headline": "Make FinalOutput a Completable and integrate its lifecycle into grace…",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T04:52:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9e70584ddc9fcbdf990cc1913a66c27761d3e965",
          "body": "… fields class‑level defaults\n\nIntroduce a WeakKeyDictionary cache for dataclass ClassReflection in `reflect_tool_params`, add stricter type checks and return a `Sequence`. Move `_active` and `_active_used` to class attributes in `SegmentedByteStreamBuffer` to define default state more cleanly.",
          "is_bot": false,
          "headline": "Cache dataclass reflection for tool parameters and make active buffer…",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T04:51:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e618472858f15c37166be5687126ed581eae3f98",
          "body": "…ernal `_ref` accesses\n\nRefactor pipeline code to use the new `ref` property, introduce a local `pipeline` variable for state checks, and update propagation, error handling, and handler lookup logic accordingly.",
          "is_bot": false,
          "headline": "Expose public `ref` on `IoPipelineHandlerContext` and replace all int…",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T04:36:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e92316c781ae115a6c1321205c5522ea1a265670",
          "body": "- Added AbortedIoPipelineError and made IoPipelineFlowMessages.FlushOutput implement Completable, ensuring it signals success only after all prior output leaves pipeline buffers.\n- Refactored Completable binding/unbinding, unified finish logic, and aggregated listener exceptions without leaking inte\n[…]\nsted SSL handler to queue pending FlushOutput messages and emit them in order.\n- Extended tests to verify immediate completion without a writer, proper ordering, listener behavior, and abort handling.",
          "is_bot": false,
          "headline": "Make FlushOutput a Completable and improve completion lifecycle handling",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T04:31:00Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d35916f1fccc6cfa50cb463462d79ad1af414512",
          "body": "…ression/TLS pipelines\n\nIntroduce a _TimeoutResponseIoPipelineHandler and a new backpressure test that validates a 504 Gateway Timeout response drains correctly over slow TLS gzip streams. Add reference‑cycle tests for active HTTP compression and TLS handlers, and update pipeline TODOs to reflect timeout scheduling work.",
          "is_bot": false,
          "headline": "Add timeout response integration test and ensure no cyclic GC in comp…",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T03:22:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9f18c24b77c23868491addbd3a0eb35d05e5f0b5",
          "body": "…cies accordingly.",
          "is_bot": false,
          "headline": "Bump all package versions to 0.0.33 and update inter‑package dependen…",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T03:21:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "71263fb6c8856bab183e0ac0837137cd4a6adc4b",
          "body": "Update test helpers to instantiate the lexer via its Config wrapper, matching the new initialization API.",
          "is_bot": false,
          "headline": "Use JsonStreamLexer.Config for lexer construction in tests",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T03:05:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "79fd97883e88a5fbf2dbb97651d5fe3495e6ee50",
          "body": "…f ownership and schedule_context API\n\nReplace direct imports of dataclasses with package-relative imports, refactor HttpHeaders, decoder/encoder, SSL handler, and various pipeline components to store non‑owning weak references. Add a new `schedule_context` method to `IoPipelineScheduling` and updat\n[…]\nUpdate caches, handler contexts, and driver implementations accordingly. Add comprehensive tests to verify that pipeline topology, handlers, and active timers do not require cyclic garbage collection.",
          "is_bot": false,
          "headline": "Break reference cycles in pipeline core and drivers, introduce weakre…",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T02:57:37Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "1c97f8715ee2572c73537c09318179f5110b1ac7",
          "body": "…tructors\n\nIntroduce frozen, kw‑only Config dataclasses for JsonStreamLexer, JsonStreamParser, and JsonValueBuilder, replace multiple keyword arguments with a single config object, and update internal attribute accesses accordingly. Adjust package initialization, utilities, and tests to use the new Config classes and enable code generation, while adding formatting and linting directives.",
          "is_bot": false,
          "headline": "Add Config dataclasses to streaming JSON components and refactor cons…",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T02:00:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1896980e1147d9c3b79a61f0b36c60878eed054f",
          "body": "…enchmark\n\nReplace function‑based reflect_tool_fn usage for the dummy weather and bash tools with ToolClass subclasses, introducing explicit name, params_cls, description, and execute methods. Add a new benchmark suite for the streaming JSON parser that measures performance across feeding modes against stdlib C and pure‑python decoders.",
          "is_bot": false,
          "headline": "Refactor tools to class‑based implementation and add JSON streaming b…",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T01:45:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fe001156402e608cf9f0e011a7acc22af370490b",
          "body": "Introduce a lightweight PackedPosition type and unpack_position helper, store it in Token as packed_pos, and expose a .position property. Update the JSON stream lexer to emit packed tuples and adjust the parser to use the new property, improving token creation performance.",
          "is_bot": false,
          "headline": "Replace Position with packed tuple for token positions",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T01:36:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a5d879367f8bc2db11ea42e8ddb3f2a39c6d0f25",
          "body": "Introduce a unified `_fail` path that marks the driver as FAILED and closes resources, track a closing writer, and handle transport read/write errors as driver failures. Add a `_ReadFailedCommand` to propagate read exceptions, wrap command execution, output handling, and scheduling with fail logic, \n[…]\nfely repeatable. Apply analogous improvements to the fdio and sync drivers. Expand the test suite with lifecycle, error‑propagation, and draining‑abort scenarios, and update documentation accordingly.",
          "is_bot": false,
          "headline": "Add robust failure handling and idempotent close to I/O pipeline drivers",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T01:24:42Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "22ecaa976624dddc4ac4afc1787a98e45915c8c3",
          "body": "Cover eager formatting, streaming modes (including buffered and small read buffers), line mode, JSON5 input handling, and error cases to ensure correct output and exit codes.",
          "is_bot": false,
          "headline": "Add comprehensive tests for the JSON CLI tool",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T01:19:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b64faca5d5896b2898e3ce8106daac78ca7f9f0c",
          "body": "Convert ls and read tools into ToolClass subclasses, simplify tool construction via .tool(), expose ToolClass in package init, and adjust description handling accordingly.",
          "is_bot": false,
          "headline": "Refactor filesystem tools to use the new ToolClass abstraction",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T01:17:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f367d4de2630214100da99b74eee8dfbea59c6e8",
          "body": "…d position tracking and suspendable input handling\n\nIntroduce new buffer management (_more, _read_chars, _consume_to) and fast‑path for single‑character buffers, simplify token scanning, fix string/number/identifier/comment parsing, improve error handling, and update utils and parser to correctly flush EOF and suppress secondary errors during context exit.",
          "is_bot": false,
          "headline": "Refactor streaming JSON lexer to use a single buffer with offset‑base…",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T01:08:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0d1632851bb3b10cbc1a5a336038e0d01dcd48a0",
          "body": "Introduce a drain task, request/cancel logic, and a DrainCompletedCommand to manage writer.drain() without blocking the driver. Queue output messages while a drain is pending, update writability checks, and ensure proper cleanup on shutdown and failure. Extend tests to verify non‑blocking behavior, coalesced drains, and error propagation.",
          "is_bot": false,
          "headline": "Add asynchronous drain handling and coalescing for output writes",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T00:50:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "333700a30094befedb0402b7994fe1f4621cffaf",
          "body": "… utilities\n\nExpose instantiate_tool_params and reflect_tool_params in the agent package and implement a generic cached wrapper that builds llm.Tool instances and executes them with proper parameter handling.",
          "is_bot": false,
          "headline": "Add abstract ToolClass base for LLM tools and expose param reflection…",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T00:44:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "063a0fdd14829c07e0138a513ee88b0aec9b4efd",
          "body": "…boto3 to 1.43.58, upgrade uv to 0.12.0, and update the tinygrad submodule.\n\nRefresh cached model metadata and align frozen requirements with the new dependency versions.",
          "is_bot": false,
          "headline": "Bump MySQL Docker image to 9.7.2, upgrade boto3, botocore, and types‑…",
          "author_name": "wrmsr",
          "author_login": "wrmsr",
          "committed_at": "2026-07-29T00:28:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 0,
      "commits_last_year": 4075,
      "latest_release_at": null,
      "latest_release_tag": null,
      "releases_from_tags": false,
      "days_since_last_push": 0,
      "active_weeks_last_year": 51,
      "days_since_latest_release": null,
      "mean_days_between_releases": null
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": false,
      "health_percentage": 42,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": false
    },
    "ecosystem": {
      "packages": [
        {
          "name": "omdev",
          "exists": true,
          "license": "BSD-3-Clause",
          "keywords": [
            "Intended Audience :: Developers",
            "Operating System :: OS Independent",
            "Operating System :: POSIX",
            "Programming Language :: Python :: 3",
            "Programming Language :: Python :: 3.14"
          ],
          "ecosystem": "pypi",
          "matches_repo": true,
          "registry_url": "https://pypi.org/project/omdev/",
          "is_deprecated": false,
          "latest_version": "0.0.35",
          "repository_url": "https://github.com/wrmsr/om",
          "versions_count": 585,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": 2758,
          "first_published_at": "2024-08-27T16:05:04.836569Z",
          "latest_published_at": "2026-07-31T04:49:25.882405Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 0
        },
        {
          "name": "omllm",
          "exists": true,
          "license": "BSD-3-Clause",
          "keywords": [
            "Intended Audience :: Developers",
            "Operating System :: OS Independent",
            "Operating System :: POSIX",
            "Programming Language :: Python :: 3",
            "Programming Language :: Python :: 3.14"
          ],
          "ecosystem": "pypi",
          "matches_repo": true,
          "registry_url": "https://pypi.org/project/omllm/",
          "is_deprecated": false,
          "latest_version": "0.0.35",
          "repository_url": "https://github.com/wrmsr/om",
          "versions_count": 9,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": null,
          "first_published_at": "2026-07-14T19:33:15.590147Z",
          "latest_published_at": "2026-07-31T04:49:26.649241Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 0
        },
        {
          "name": "omcore",
          "exists": true,
          "license": "BSD-3-Clause",
          "keywords": [
            "Intended Audience :: Developers",
            "Operating System :: OS Independent",
            "Operating System :: POSIX",
            "Programming Language :: Python :: 3",
            "Programming Language :: Python :: 3.14"
          ],
          "ecosystem": "pypi",
          "matches_repo": true,
          "registry_url": "https://pypi.org/project/omcore/",
          "is_deprecated": false,
          "latest_version": "0.0.35",
          "repository_url": "https://github.com/wrmsr/om",
          "versions_count": 8,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": 804,
          "first_published_at": "2026-07-14T20:45:31.052768Z",
          "latest_published_at": "2026-07-31T04:49:14.561944Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 0
        },
        {
          "name": "omxtra",
          "exists": true,
          "license": "BSD-3-Clause",
          "keywords": [
            "Intended Audience :: Developers",
            "Operating System :: OS Independent",
            "Operating System :: POSIX",
            "Programming Language :: Python :: 3",
            "Programming Language :: Python :: 3.14"
          ],
          "ecosystem": "pypi",
          "matches_repo": true,
          "registry_url": "https://pypi.org/project/omxtra/",
          "is_deprecated": false,
          "latest_version": "0.0.35",
          "repository_url": "https://github.com/wrmsr/om",
          "versions_count": 69,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": null,
          "first_published_at": "2026-02-06T19:29:52.615753Z",
          "latest_published_at": "2026-07-31T04:49:17.544445Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 0
        },
        {
          "name": "ominfra",
          "exists": true,
          "license": "BSD-3-Clause",
          "keywords": [
            "Intended Audience :: Developers",
            "Operating System :: OS Independent",
            "Operating System :: POSIX",
            "Programming Language :: Python :: 3",
            "Programming Language :: Python :: 3.14"
          ],
          "ecosystem": "pypi",
          "matches_repo": true,
          "registry_url": "https://pypi.org/project/ominfra/",
          "is_deprecated": false,
          "latest_version": "0.0.35",
          "repository_url": "https://github.com/wrmsr/om",
          "versions_count": 585,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": 2516,
          "first_published_at": "2024-08-27T16:05:07.031671Z",
          "latest_published_at": "2026-07-31T04:49:20.380559Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 0
        }
      ]
    },
    "popularity": {
      "forks": 0,
      "stars": 7,
      "watchers": 1,
      "fork_history": {
        "days": [],
        "complete": true,
        "collected": 0,
        "total_forks": 0
      },
      "star_history": null,
      "open_issues_and_prs": 0
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [
        "demos",
        "examples",
        "notebooks",
        "samples"
      ],
      "has_llms_txt": false,
      "has_dockerfile": true,
      "has_mcp_signal": false,
      "bootstrap_files": [
        "Makefile",
        "omdev/pyproject/tests/skeleton/Makefile"
      ],
      "api_schema_files": [
        "omxtra/specs/proto/tests/examples/addressbook.proto"
      ],
      "has_devcontainer": false,
      "typecheck_configs": [
        "omcore/py.typed",
        "omdev/py.typed",
        "ominfra/py.typed",
        "omllm/py.typed",
        "omxtra/py.typed",
        "x/pipdeptree/py.typed"
      ],
      "toolchain_manifests": [
        "omdev/rs/_boilerplate/Cargo.toml",
        "x/ommlds/nanochat/rustbpe/Cargo.toml"
      ],
      "largest_source_bytes": 1397928,
      "source_files_sampled": 4878,
      "oversized_source_files": 61,
      "agent_instruction_files": [
        "AGENTS.md"
      ],
      "agent_instruction_max_bytes": 3068
    },
    "dependencies": {
      "manifests": [
        "pyproject.toml",
        "requirements-ci.txt",
        "requirements-dev.txt",
        "requirements-ext.txt",
        "requirements-frz.txt",
        "requirements.txt"
      ],
      "advisories": {
        "error": null,
        "scope": "repository_graph",
        "source": "osv",
        "findings": [
          {
            "name": "pyo3",
            "direct": false,
            "version": "0.27.2",
            "severity": "high",
            "ecosystem": "crates",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-36hh-v3qg-5jq4",
              "GHSA-chgr-c6px-7xpp",
              "RUSTSEC-2026-0176",
              "RUSTSEC-2026-0177"
            ],
            "fixed_version": "0.29.0",
            "advisory_count": 4,
            "oldest_advisory_days": 49
          },
          {
            "name": "diskcache",
            "direct": false,
            "version": "5.6.3",
            "severity": "moderate",
            "ecosystem": "pypi",
            "cvss_score": null,
            "advisory_ids": [
              "GHSA-w8v5-vhqr-4h9v",
              "PYSEC-2026-2447"
            ],
            "fixed_version": null,
            "advisory_count": 2,
            "oldest_advisory_days": 169
          },
          {
            "name": "pytest",
            "direct": false,
            "version": "8.3.4",
            "severity": "moderate",
            "ecosystem": "pypi",
            "cvss_score": 6.8,
            "advisory_ids": [
              "GHSA-6w46-j5rx-g56g",
              "PYSEC-2026-1845"
            ],
            "fixed_version": "9.0.3",
            "advisory_count": 2,
            "oldest_advisory_days": 189
          },
          {
            "name": "crossbeam-epoch",
            "direct": false,
            "version": "0.9.18",
            "severity": "unknown",
            "ecosystem": "crates",
            "cvss_score": null,
            "advisory_ids": [
              "RUSTSEC-2026-0204"
            ],
            "fixed_version": "0.9.20",
            "advisory_count": 1,
            "oldest_advisory_days": 24
          }
        ],
        "collected": true,
        "malicious": [],
        "truncated": false,
        "by_severity": {
          "high": 1,
          "unknown": 1,
          "moderate": 2
        },
        "advisory_count": 9,
        "affected_count": 4,
        "assessed_count": 371,
        "malicious_count": 0,
        "assessed_package": null,
        "unassessed_count": 69,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "pypi"
      ],
      "dependencies": [
        {
          "name": "omcore",
          "manifest": ".pkg/omcore-cext/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "== 0.0.36"
        },
        {
          "name": "omdev",
          "manifest": ".pkg/omdev-cext/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "== 0.0.36"
        },
        {
          "name": "omdev",
          "manifest": ".pkg/omdev-cli/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "== 0.0.36"
        },
        {
          "name": "omdev",
          "manifest": ".pkg/omdev-rs/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "== 0.0.36"
        },
        {
          "name": "omcore",
          "manifest": ".pkg/omdev/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "== 0.0.36"
        },
        {
          "name": "omcore",
          "manifest": ".pkg/ominfra/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "== 0.0.36"
        },
        {
          "name": "omcore",
          "manifest": ".pkg/omllm/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "== 0.0.36"
        },
        {
          "name": "omxtra",
          "manifest": ".pkg/omxtra-cext/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "== 0.0.36"
        },
        {
          "name": "omcore",
          "manifest": ".pkg/omxtra/pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": "== 0.0.36"
        }
      ],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [
          {
            "name": "omcore",
            "direct": true,
            "version": "0.0.36",
            "ecosystem": "pypi"
          },
          {
            "name": "omdev",
            "direct": true,
            "version": "0.0.36",
            "ecosystem": "pypi"
          },
          {
            "name": "omxtra",
            "direct": true,
            "version": "0.0.36",
            "ecosystem": "pypi"
          },
          {
            "name": "ahash",
            "direct": false,
            "version": "0.8.12",
            "ecosystem": "crates"
          },
          {
            "name": "aho-corasick",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "crates"
          },
          {
            "name": "arc-swap",
            "direct": false,
            "version": "1.8.2",
            "ecosystem": "crates"
          },
          {
            "name": "autocfg",
            "direct": false,
            "version": "1.5.0",
            "ecosystem": "crates"
          },
          {
            "name": "bit-set",
            "direct": false,
            "version": "0.8.0",
            "ecosystem": "crates"
          },
          {
            "name": "bit-vec",
            "direct": false,
            "version": "0.8.0",
            "ecosystem": "crates"
          },
          {
            "name": "castaway",
            "direct": false,
            "version": "0.2.4",
            "ecosystem": "crates"
          },
          {
            "name": "cfg-if",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "crates"
          },
          {
            "name": "compact_str",
            "direct": false,
            "version": "0.9.0",
            "ecosystem": "crates"
          },
          {
            "name": "crossbeam-deque",
            "direct": false,
            "version": "0.8.6",
            "ecosystem": "crates"
          },
          {
            "name": "crossbeam-epoch",
            "direct": false,
            "version": "0.9.18",
            "ecosystem": "crates"
          },
          {
            "name": "crossbeam-utils",
            "direct": false,
            "version": "0.8.21",
            "ecosystem": "crates"
          },
          {
            "name": "dary_heap",
            "direct": false,
            "version": "0.3.8",
            "ecosystem": "crates"
          },
          {
            "name": "either",
            "direct": false,
            "version": "1.15.0",
            "ecosystem": "crates"
          },
          {
            "name": "equivalent",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "crates"
          },
          {
            "name": "fancy-regex",
            "direct": false,
            "version": "0.16.2",
            "ecosystem": "crates"
          },
          {
            "name": "getrandom",
            "direct": false,
            "version": "0.3.4",
            "ecosystem": "crates"
          },
          {
            "name": "hashbrown",
            "direct": false,
            "version": "0.17.0",
            "ecosystem": "crates"
          },
          {
            "name": "heck",
            "direct": false,
            "version": "0.5.0",
            "ecosystem": "crates"
          },
          {
            "name": "indexmap",
            "direct": false,
            "version": "2.14.0",
            "ecosystem": "crates"
          },
          {
            "name": "indoc",
            "direct": false,
            "version": "2.0.7",
            "ecosystem": "crates"
          },
          {
            "name": "itoa",
            "direct": false,
            "version": "1.0.15",
            "ecosystem": "crates"
          },
          {
            "name": "libc",
            "direct": false,
            "version": "0.2.184",
            "ecosystem": "crates"
          },
          {
            "name": "libc",
            "direct": false,
            "version": "0.2.188",
            "ecosystem": "crates"
          },
          {
            "name": "log",
            "direct": false,
            "version": "0.4.29",
            "ecosystem": "crates"
          },
          {
            "name": "memchr",
            "direct": false,
            "version": "2.7.6",
            "ecosystem": "crates"
          },
          {
            "name": "memoffset",
            "direct": false,
            "version": "0.9.1",
            "ecosystem": "crates"
          },
          {
            "name": "once_cell",
            "direct": false,
            "version": "1.21.4",
            "ecosystem": "crates"
          },
          {
            "name": "portable-atomic",
            "direct": false,
            "version": "1.13.1",
            "ecosystem": "crates"
          },
          {
            "name": "portable-atomic",
            "direct": false,
            "version": "1.14.0",
            "ecosystem": "crates"
          },
          {
            "name": "proc-macro2",
            "direct": false,
            "version": "1.0.106",
            "ecosystem": "crates"
          },
          {
            "name": "proc-macro2",
            "direct": false,
            "version": "1.0.107",
            "ecosystem": "crates"
          },
          {
            "name": "pyo3",
            "direct": false,
            "version": "0.27.2",
            "ecosystem": "crates"
          },
          {
            "name": "pyo3",
            "direct": false,
            "version": "0.29.0",
            "ecosystem": "crates"
          },
          {
            "name": "pyo3-build-config",
            "direct": false,
            "version": "0.27.2",
            "ecosystem": "crates"
          },
          {
            "name": "pyo3-build-config",
            "direct": false,
            "version": "0.29.0",
            "ecosystem": "crates"
          },
          {
            "name": "pyo3-ffi",
            "direct": false,
            "version": "0.27.2",
            "ecosystem": "crates"
          },
          {
            "name": "pyo3-ffi",
            "direct": false,
            "version": "0.29.0",
            "ecosystem": "crates"
          },
          {
            "name": "pyo3-log",
            "direct": false,
            "version": "0.13.3",
            "ecosystem": "crates"
          },
          {
            "name": "pyo3-macros",
            "direct": false,
            "version": "0.27.2",
            "ecosystem": "crates"
          },
          {
            "name": "pyo3-macros",
            "direct": false,
            "version": "0.29.0",
            "ecosystem": "crates"
          },
          {
            "name": "pyo3-macros-backend",
            "direct": false,
            "version": "0.27.2",
            "ecosystem": "crates"
          },
          {
            "name": "pyo3-macros-backend",
            "direct": false,
            "version": "0.29.0",
            "ecosystem": "crates"
          },
          {
            "name": "quote",
            "direct": false,
            "version": "1.0.45",
            "ecosystem": "crates"
          },
          {
            "name": "quote",
            "direct": false,
            "version": "1.0.47",
            "ecosystem": "crates"
          },
          {
            "name": "r-efi",
            "direct": false,
            "version": "5.3.0",
            "ecosystem": "crates"
          },
          {
            "name": "rayon",
            "direct": false,
            "version": "1.12.0",
            "ecosystem": "crates"
          },
          {
            "name": "rayon-core",
            "direct": false,
            "version": "1.13.0",
            "ecosystem": "crates"
          },
          {
            "name": "regex-automata",
            "direct": false,
            "version": "0.4.13",
            "ecosystem": "crates"
          },
          {
            "name": "regex-syntax",
            "direct": false,
            "version": "0.8.8",
            "ecosystem": "crates"
          },
          {
            "name": "rustversion",
            "direct": false,
            "version": "1.0.22",
            "ecosystem": "crates"
          },
          {
            "name": "ryu",
            "direct": false,
            "version": "1.0.20",
            "ecosystem": "crates"
          },
          {
            "name": "static_assertions",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "crates"
          },
          {
            "name": "syn",
            "direct": false,
            "version": "2.0.117",
            "ecosystem": "crates"
          },
          {
            "name": "syn",
            "direct": false,
            "version": "2.0.119",
            "ecosystem": "crates"
          },
          {
            "name": "target-lexicon",
            "direct": false,
            "version": "0.13.5",
            "ecosystem": "crates"
          },
          {
            "name": "unicode-ident",
            "direct": false,
            "version": "1.0.24",
            "ecosystem": "crates"
          },
          {
            "name": "unindent",
            "direct": false,
            "version": "0.2.4",
            "ecosystem": "crates"
          },
          {
            "name": "version_check",
            "direct": false,
            "version": "0.9.5",
            "ecosystem": "crates"
          },
          {
            "name": "wasip2",
            "direct": false,
            "version": "1.0.1+wasi-0.2.4",
            "ecosystem": "crates"
          },
          {
            "name": "wit-bindgen",
            "direct": false,
            "version": "0.46.0",
            "ecosystem": "crates"
          },
          {
            "name": "zerocopy",
            "direct": false,
            "version": "0.8.27",
            "ecosystem": "crates"
          },
          {
            "name": "zerocopy-derive",
            "direct": false,
            "version": "0.8.27",
            "ecosystem": "crates"
          },
          {
            "name": "aiohappyeyeballs",
            "direct": false,
            "version": "2.7.1",
            "ecosystem": "pypi"
          },
          {
            "name": "aiohttp",
            "direct": false,
            "version": "3.14.3",
            "ecosystem": "pypi"
          },
          {
            "name": "aiohttp-jinja2",
            "direct": false,
            "version": "1.6",
            "ecosystem": "pypi"
          },
          {
            "name": "aiomysql",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "aiomysql",
            "direct": false,
            "version": "0.3.2",
            "ecosystem": "pypi"
          },
          {
            "name": "aiosignal",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "aiosqlite",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "aiosqlite",
            "direct": false,
            "version": "0.22.1",
            "ecosystem": "pypi"
          },
          {
            "name": "annotated-doc",
            "direct": false,
            "version": "0.0.5",
            "ecosystem": "pypi"
          },
          {
            "name": "antlr4-python3-runtime",
            "direct": false,
            "version": "4.13.2",
            "ecosystem": "pypi"
          },
          {
            "name": "anyio",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "anyio",
            "direct": false,
            "version": "4.14.2",
            "ecosystem": "pypi"
          },
          {
            "name": "anyio",
            "direct": false,
            "version": "4.8.0",
            "ecosystem": "pypi"
          },
          {
            "name": "apsw",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "apsw",
            "direct": false,
            "version": "3.53.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "asgiref",
            "direct": false,
            "version": "3.12.1",
            "ecosystem": "pypi"
          },
          {
            "name": "asn1crypto",
            "direct": false,
            "version": "1.5.1",
            "ecosystem": "pypi"
          },
          {
            "name": "ast-serialize",
            "direct": false,
            "version": "0.6.0",
            "ecosystem": "pypi"
          },
          {
            "name": "astpretty",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "asttokens",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "asttokens",
            "direct": false,
            "version": "3.0.2",
            "ecosystem": "pypi"
          },
          {
            "name": "asyncpg",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "asyncpg",
            "direct": false,
            "version": "0.30.0",
            "ecosystem": "pypi"
          },
          {
            "name": "asyncpg",
            "direct": false,
            "version": "0.31.0",
            "ecosystem": "pypi"
          },
          {
            "name": "asyncpg-stubs",
            "direct": false,
            "version": "0.31.3",
            "ecosystem": "pypi"
          },
          {
            "name": "asyncssh",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "asyncssh",
            "direct": false,
            "version": "2.24.0",
            "ecosystem": "pypi"
          },
          {
            "name": "attrs",
            "direct": false,
            "version": "26.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "basedpyright",
            "direct": false,
            "version": "1.39.9",
            "ecosystem": "pypi"
          },
          {
            "name": "bcrypt",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "bitsandbytes",
            "direct": false,
            "version": "0.50.0",
            "ecosystem": "pypi"
          },
          {
            "name": "black",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "black",
            "direct": false,
            "version": "26.5.1",
            "ecosystem": "pypi"
          },
          {
            "name": "blobfile",
            "direct": false,
            "version": "3.2.0",
            "ecosystem": "pypi"
          },
          {
            "name": "boto3",
            "direct": false,
            "version": "1.43.60",
            "ecosystem": "pypi"
          },
          {
            "name": "botocore",
            "direct": false,
            "version": "1.43.60",
            "ecosystem": "pypi"
          },
          {
            "name": "botocore-stubs",
            "direct": false,
            "version": "1.43.14",
            "ecosystem": "pypi"
          },
          {
            "name": "brotli",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "brotli",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "pypi"
          },
          {
            "name": "build",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "build",
            "direct": false,
            "version": "1.5.0",
            "ecosystem": "pypi"
          },
          {
            "name": "cbor2",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "cbor2",
            "direct": false,
            "version": "6.1.3",
            "ecosystem": "pypi"
          },
          {
            "name": "certifi",
            "direct": false,
            "version": "2026.7.22",
            "ecosystem": "pypi"
          },
          {
            "name": "cffi",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "charset-normalizer",
            "direct": false,
            "version": "3.4.9",
            "ecosystem": "pypi"
          },
          {
            "name": "click",
            "direct": false,
            "version": "8.4.2",
            "ecosystem": "pypi"
          },
          {
            "name": "cloudpickle",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "cloudpickle",
            "direct": false,
            "version": "3.1.2",
            "ecosystem": "pypi"
          },
          {
            "name": "contourpy",
            "direct": false,
            "version": "1.3.3",
            "ecosystem": "pypi"
          },
          {
            "name": "cramjam",
            "direct": false,
            "version": "2.11.0",
            "ecosystem": "pypi"
          },
          {
            "name": "cryptography",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "cryptography",
            "direct": false,
            "version": "49.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "cycler",
            "direct": false,
            "version": "0.12.1",
            "ecosystem": "pypi"
          },
          {
            "name": "cython",
            "direct": false,
            "version": "3.2.9",
            "ecosystem": "pypi"
          },
          {
            "name": "datasets",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "ddgs",
            "direct": false,
            "version": "9.14.4",
            "ecosystem": "pypi"
          },
          {
            "name": "debugpy",
            "direct": false,
            "version": "1.8.21",
            "ecosystem": "pypi"
          },
          {
            "name": "decorator",
            "direct": false,
            "version": "5.3.1",
            "ecosystem": "pypi"
          },
          {
            "name": "deno",
            "direct": false,
            "version": "2.9.4",
            "ecosystem": "pypi"
          },
          {
            "name": "diffusers",
            "direct": false,
            "version": "0.39.0",
            "ecosystem": "pypi"
          },
          {
            "name": "dill",
            "direct": false,
            "version": "0.4.1",
            "ecosystem": "pypi"
          },
          {
            "name": "diskcache",
            "direct": false,
            "version": "5.6.3",
            "ecosystem": "pypi"
          },
          {
            "name": "docutils",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "docutils",
            "direct": false,
            "version": "0.23",
            "ecosystem": "pypi"
          },
          {
            "name": "docutils-stubs",
            "direct": false,
            "version": "0.0.22",
            "ecosystem": "pypi"
          },
          {
            "name": "duckdb",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "duckdb",
            "direct": false,
            "version": "1.5.5",
            "ecosystem": "pypi"
          },
          {
            "name": "execnet",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "pypi"
          },
          {
            "name": "executing",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "executing",
            "direct": false,
            "version": "2.2.1",
            "ecosystem": "pypi"
          },
          {
            "name": "fake-useragent",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "pypi"
          },
          {
            "name": "filelock",
            "direct": false,
            "version": "3.32.2",
            "ecosystem": "pypi"
          },
          {
            "name": "flake8",
            "direct": false,
            "version": "7.3.0",
            "ecosystem": "pypi"
          },
          {
            "name": "flake8-pyproject",
            "direct": false,
            "version": "1.2.4",
            "ecosystem": "pypi"
          },
          {
            "name": "flatbuffers",
            "direct": false,
            "version": "25.12.19",
            "ecosystem": "pypi"
          },
          {
            "name": "fonttools",
            "direct": false,
            "version": "4.63.0",
            "ecosystem": "pypi"
          },
          {
            "name": "frozenlist",
            "direct": false,
            "version": "1.8.0",
            "ecosystem": "pypi"
          },
          {
            "name": "fsspec",
            "direct": false,
            "version": "2026.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "gguf",
            "direct": false,
            "version": "0.19.0",
            "ecosystem": "pypi"
          },
          {
            "name": "google-api-core",
            "direct": false,
            "version": "2.33.0",
            "ecosystem": "pypi"
          },
          {
            "name": "google-api-python-client",
            "direct": false,
            "version": "2.198.0",
            "ecosystem": "pypi"
          },
          {
            "name": "google-auth",
            "direct": false,
            "version": "2.56.2",
            "ecosystem": "pypi"
          },
          {
            "name": "google-auth-httplib2",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "google-cloud-compute",
            "direct": false,
            "version": "1.50.0",
            "ecosystem": "pypi"
          },
          {
            "name": "googleapis-common-protos",
            "direct": false,
            "version": "1.75.0",
            "ecosystem": "pypi"
          },
          {
            "name": "gprof2dot",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "gprof2dot",
            "direct": false,
            "version": "2025.4.14",
            "ecosystem": "pypi"
          },
          {
            "name": "greenlet",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "greenlet",
            "direct": false,
            "version": "3.5.4",
            "ecosystem": "pypi"
          },
          {
            "name": "grpcio",
            "direct": false,
            "version": "1.83.0",
            "ecosystem": "pypi"
          },
          {
            "name": "grpcio-status",
            "direct": false,
            "version": "1.83.0",
            "ecosystem": "pypi"
          },
          {
            "name": "guppy3",
            "direct": false,
            "version": "3.1.7",
            "ecosystem": "pypi"
          },
          {
            "name": "h11",
            "direct": false,
            "version": "0.16.0",
            "ecosystem": "pypi"
          },
          {
            "name": "h2",
            "direct": false,
            "version": "4.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "hf-xet",
            "direct": false,
            "version": "1.5.2",
            "ecosystem": "pypi"
          },
          {
            "name": "hpack",
            "direct": false,
            "version": "4.2.0",
            "ecosystem": "pypi"
          },
          {
            "name": "httpcore",
            "direct": false,
            "version": "1.0.9",
            "ecosystem": "pypi"
          },
          {
            "name": "httplib2",
            "direct": false,
            "version": "0.32.0",
            "ecosystem": "pypi"
          },
          {
            "name": "httpx",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "httpx",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "pypi"
          },
          {
            "name": "huggingface-hub",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "huggingface-hub",
            "direct": false,
            "version": "1.24.0",
            "ecosystem": "pypi"
          },
          {
            "name": "hyperframe",
            "direct": false,
            "version": "6.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "id",
            "direct": false,
            "version": "1.6.1",
            "ecosystem": "pypi"
          },
          {
            "name": "idna",
            "direct": false,
            "version": "3.18",
            "ecosystem": "pypi"
          },
          {
            "name": "imageio",
            "direct": false,
            "version": "2.37.4",
            "ecosystem": "pypi"
          },
          {
            "name": "importlib-metadata",
            "direct": false,
            "version": "9.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "iniconfig",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "pypi"
          },
          {
            "name": "invoke",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "pypi"
          },
          {
            "name": "ipython",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "ipython",
            "direct": false,
            "version": "9.15.0",
            "ecosystem": "pypi"
          },
          {
            "name": "ipython-pygments-lexers",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "pypi"
          },
          {
            "name": "jaraco-classes",
            "direct": false,
            "version": "3.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "jaraco-context",
            "direct": false,
            "version": "6.1.2",
            "ecosystem": "pypi"
          },
          {
            "name": "jaraco-functools",
            "direct": false,
            "version": "4.6.0",
            "ecosystem": "pypi"
          },
          {
            "name": "jedi",
            "direct": false,
            "version": "0.20.0",
            "ecosystem": "pypi"
          },
          {
            "name": "jinja2",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "jinja2",
            "direct": false,
            "version": "3.1.6",
            "ecosystem": "pypi"
          },
          {
            "name": "jmespath",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "joblib",
            "direct": false,
            "version": "1.5.3",
            "ecosystem": "pypi"
          },
          {
            "name": "json5",
            "direct": false,
            "version": "0.15.0",
            "ecosystem": "pypi"
          },
          {
            "name": "keyring",
            "direct": false,
            "version": "25.7.0",
            "ecosystem": "pypi"
          },
          {
            "name": "kiwisolver",
            "direct": false,
            "version": "1.5.0",
            "ecosystem": "pypi"
          },
          {
            "name": "lazy-loader",
            "direct": false,
            "version": "0.5",
            "ecosystem": "pypi"
          },
          {
            "name": "librt",
            "direct": false,
            "version": "0.13.0",
            "ecosystem": "pypi"
          },
          {
            "name": "linkify-it-py",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "llama-cpp-python",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "llama-cpp-python",
            "direct": false,
            "version": "0.3.34",
            "ecosystem": "pypi"
          },
          {
            "name": "lxml",
            "direct": false,
            "version": "6.1.1",
            "ecosystem": "pypi"
          },
          {
            "name": "lxml-stubs",
            "direct": false,
            "version": "0.5.1",
            "ecosystem": "pypi"
          },
          {
            "name": "lz4",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "lz4",
            "direct": false,
            "version": "4.4.5",
            "ecosystem": "pypi"
          },
          {
            "name": "markdown-it-py",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "markdown-it-py",
            "direct": false,
            "version": "4.2.0",
            "ecosystem": "pypi"
          },
          {
            "name": "markupsafe",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "markupsafe",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "pypi"
          },
          {
            "name": "matplotlib",
            "direct": false,
            "version": "3.11.1",
            "ecosystem": "pypi"
          },
          {
            "name": "matplotlib-inline",
            "direct": false,
            "version": "0.2.2",
            "ecosystem": "pypi"
          },
          {
            "name": "mccabe",
            "direct": false,
            "version": "0.7.0",
            "ecosystem": "pypi"
          },
          {
            "name": "mdit-py-plugins",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "mdit-py-plugins",
            "direct": false,
            "version": "0.6.1",
            "ecosystem": "pypi"
          },
          {
            "name": "mdurl",
            "direct": false,
            "version": "0.1.2",
            "ecosystem": "pypi"
          },
          {
            "name": "memray",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "memray",
            "direct": false,
            "version": "1.19.3",
            "ecosystem": "pypi"
          },
          {
            "name": "mlx",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "mlx",
            "direct": false,
            "version": "0.32.0",
            "ecosystem": "pypi"
          },
          {
            "name": "mlx-lm",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "mlx-lm",
            "direct": false,
            "version": "0.31.3",
            "ecosystem": "pypi"
          },
          {
            "name": "mlx-metal",
            "direct": false,
            "version": "0.32.0",
            "ecosystem": "pypi"
          },
          {
            "name": "more-itertools",
            "direct": false,
            "version": "11.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "mpmath",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "pypi"
          },
          {
            "name": "msgpack",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "pypi"
          },
          {
            "name": "multidict",
            "direct": false,
            "version": "6.7.1",
            "ecosystem": "pypi"
          },
          {
            "name": "multiprocess",
            "direct": false,
            "version": "0.70.19",
            "ecosystem": "pypi"
          },
          {
            "name": "mwparserfromhell",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "mwparserfromhell",
            "direct": false,
            "version": "0.7.2",
            "ecosystem": "pypi"
          },
          {
            "name": "mypy",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "mypy",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "pypi"
          },
          {
            "name": "mypy-extensions",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "mysql-connector-python",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "mysql-connector-python",
            "direct": false,
            "version": "9.7.0",
            "ecosystem": "pypi"
          },
          {
            "name": "mysqlclient",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "mysqlclient",
            "direct": false,
            "version": "2.2.8",
            "ecosystem": "pypi"
          },
          {
            "name": "narwhals",
            "direct": false,
            "version": "2.24.0",
            "ecosystem": "pypi"
          },
          {
            "name": "networkx",
            "direct": false,
            "version": "3.6.1",
            "ecosystem": "pypi"
          },
          {
            "name": "nh3",
            "direct": false,
            "version": "0.3.6",
            "ecosystem": "pypi"
          },
          {
            "name": "nodeenv",
            "direct": false,
            "version": "1.10.0",
            "ecosystem": "pypi"
          },
          {
            "name": "nodejs-wheel-binaries",
            "direct": false,
            "version": "24.16.0",
            "ecosystem": "pypi"
          },
          {
            "name": "numpy",
            "direct": false,
            "version": "2.5.1",
            "ecosystem": "pypi"
          },
          {
            "name": "objgraph",
            "direct": false,
            "version": "3.6.2",
            "ecosystem": "pypi"
          },
          {
            "name": "ominfra",
            "direct": false,
            "version": "0.0.36",
            "ecosystem": "pypi"
          },
          {
            "name": "omllm",
            "direct": false,
            "version": "0.0.36",
            "ecosystem": "pypi"
          },
          {
            "name": "onnxruntime",
            "direct": false,
            "version": "1.28.0",
            "ecosystem": "pypi"
          },
          {
            "name": "opencv-python",
            "direct": false,
            "version": "5.0.0.93",
            "ecosystem": "pypi"
          },
          {
            "name": "orjson",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "orjson",
            "direct": false,
            "version": "3.11.9",
            "ecosystem": "pypi"
          },
          {
            "name": "outcome",
            "direct": false,
            "version": "1.3.0.post0",
            "ecosystem": "pypi"
          },
          {
            "name": "packaging",
            "direct": false,
            "version": "26.2",
            "ecosystem": "pypi"
          },
          {
            "name": "pandas",
            "direct": false,
            "version": "3.0.5",
            "ecosystem": "pypi"
          },
          {
            "name": "paramiko",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "paramiko",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "parso",
            "direct": false,
            "version": "0.8.7",
            "ecosystem": "pypi"
          },
          {
            "name": "pathspec",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "pypi"
          },
          {
            "name": "pcpp",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pcpp",
            "direct": false,
            "version": "1.30",
            "ecosystem": "pypi"
          },
          {
            "name": "pexpect",
            "direct": false,
            "version": "4.9.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pg8000",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pg8000",
            "direct": false,
            "version": "1.31.5",
            "ecosystem": "pypi"
          },
          {
            "name": "pillow",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pillow",
            "direct": false,
            "version": "12.3.0",
            "ecosystem": "pypi"
          },
          {
            "name": "platformdirs",
            "direct": false,
            "version": "4.11.0",
            "ecosystem": "pypi"
          },
          {
            "name": "playwright",
            "direct": false,
            "version": "1.61.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pluggy",
            "direct": false,
            "version": "1.6.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pprintpp",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "primp",
            "direct": false,
            "version": "1.3.1",
            "ecosystem": "pypi"
          },
          {
            "name": "priority",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "prompt-toolkit",
            "direct": false,
            "version": "3.0.53",
            "ecosystem": "pypi"
          },
          {
            "name": "propcache",
            "direct": false,
            "version": "0.5.2",
            "ecosystem": "pypi"
          },
          {
            "name": "proto-plus",
            "direct": false,
            "version": "1.28.2",
            "ecosystem": "pypi"
          },
          {
            "name": "protobuf",
            "direct": false,
            "version": "7.35.1",
            "ecosystem": "pypi"
          },
          {
            "name": "psutil",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "psutil",
            "direct": false,
            "version": "7.2.2",
            "ecosystem": "pypi"
          },
          {
            "name": "psycopg",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "psycopg",
            "direct": false,
            "version": "3.3.4",
            "ecosystem": "pypi"
          },
          {
            "name": "psycopg2",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "psycopg2",
            "direct": false,
            "version": "2.9.12",
            "ecosystem": "pypi"
          },
          {
            "name": "ptyprocess",
            "direct": false,
            "version": "0.7.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pudb",
            "direct": false,
            "version": "2025.1.5",
            "ecosystem": "pypi"
          },
          {
            "name": "pure-eval",
            "direct": false,
            "version": "0.2.3",
            "ecosystem": "pypi"
          },
          {
            "name": "py-cpuinfo",
            "direct": false,
            "version": "9.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pyarrow",
            "direct": false,
            "version": "25.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pyasn1",
            "direct": false,
            "version": "0.6.4",
            "ecosystem": "pypi"
          },
          {
            "name": "pyasn1-modules",
            "direct": false,
            "version": "0.4.2",
            "ecosystem": "pypi"
          },
          {
            "name": "pyclipper",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pycodestyle",
            "direct": false,
            "version": "2.14.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pycparser",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pycparser",
            "direct": false,
            "version": "3.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pycryptodomex",
            "direct": false,
            "version": "3.23.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pydantic-monty",
            "direct": false,
            "version": "0.0.19",
            "ecosystem": "pypi"
          },
          {
            "name": "pydantic-monty-runtime",
            "direct": false,
            "version": "0.0.19",
            "ecosystem": "pypi"
          },
          {
            "name": "pyee",
            "direct": false,
            "version": "13.0.1",
            "ecosystem": "pypi"
          },
          {
            "name": "pyflakes",
            "direct": false,
            "version": "3.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pygments",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pygments",
            "direct": false,
            "version": "2.20.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pyinstrument",
            "direct": false,
            "version": "5.1.2",
            "ecosystem": "pypi"
          },
          {
            "name": "pyjwt",
            "direct": false,
            "version": "2.13.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pymysql",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pymysql",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pynacl",
            "direct": false,
            "version": "1.6.2",
            "ecosystem": "pypi"
          },
          {
            "name": "pyopenssl",
            "direct": false,
            "version": "26.3.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pyparsing",
            "direct": false,
            "version": "3.3.2",
            "ecosystem": "pypi"
          },
          {
            "name": "pyproject-hooks",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pyright",
            "direct": false,
            "version": "1.1.411",
            "ecosystem": "pypi"
          },
          {
            "name": "pytesseract",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pytesseract",
            "direct": false,
            "version": "0.3.13",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pytest",
            "direct": false,
            "version": "8.3.4",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest",
            "direct": false,
            "version": "9.1.1",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-benchmark",
            "direct": false,
            "version": "5.2.3",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-clarity",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-mock",
            "direct": false,
            "version": "3.15.1",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-stress",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-subprocess",
            "direct": false,
            "version": "1.6.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-timeout",
            "direct": false,
            "version": "2.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-xdist",
            "direct": false,
            "version": "3.8.0",
            "ecosystem": "pypi"
          },
          {
            "name": "python-dateutil",
            "direct": false,
            "version": "2.9.0.post0",
            "ecosystem": "pypi"
          },
          {
            "name": "python-snappy",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "python-snappy",
            "direct": false,
            "version": "0.7.3",
            "ecosystem": "pypi"
          },
          {
            "name": "pytokens",
            "direct": false,
            "version": "0.4.1",
            "ecosystem": "pypi"
          },
          {
            "name": "pytz",
            "direct": false,
            "version": "2026.3.post1",
            "ecosystem": "pypi"
          },
          {
            "name": "pyyaml",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "pyyaml",
            "direct": false,
            "version": "6.0.2",
            "ecosystem": "pypi"
          },
          {
            "name": "pyyaml",
            "direct": false,
            "version": "6.0.3",
            "ecosystem": "pypi"
          },
          {
            "name": "rapidocr-onnxruntime",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "rapidocr-onnxruntime",
            "direct": false,
            "version": "1.4.4",
            "ecosystem": "pypi"
          },
          {
            "name": "readme-renderer",
            "direct": false,
            "version": "45.0",
            "ecosystem": "pypi"
          },
          {
            "name": "regex",
            "direct": false,
            "version": "2026.7.19",
            "ecosystem": "pypi"
          },
          {
            "name": "requests",
            "direct": false,
            "version": "2.34.2",
            "ecosystem": "pypi"
          },
          {
            "name": "requests-toolbelt",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "rfc3986",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "rich",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "rich",
            "direct": false,
            "version": "15.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "ripgrep",
            "direct": false,
            "version": "15.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "ruff",
            "direct": false,
            "version": "0.16.0",
            "ecosystem": "pypi"
          },
          {
            "name": "s3transfer",
            "direct": false,
            "version": "0.19.2",
            "ecosystem": "pypi"
          },
          {
            "name": "safetensors",
            "direct": false,
            "version": "0.8.0",
            "ecosystem": "pypi"
          },
          {
            "name": "scikit-image",
            "direct": false,
            "version": "0.26.0",
            "ecosystem": "pypi"
          },
          {
            "name": "scikit-learn",
            "direct": false,
            "version": "1.9.0",
            "ecosystem": "pypi"
          },
          {
            "name": "scipy",
            "direct": false,
            "version": "1.18.0",
            "ecosystem": "pypi"
          },
          {
            "name": "scramp",
            "direct": false,
            "version": "1.4.15",
            "ecosystem": "pypi"
          },
          {
            "name": "segno",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "segno",
            "direct": false,
            "version": "1.6.6",
            "ecosystem": "pypi"
          },
          {
            "name": "sentence-transformers",
            "direct": false,
            "version": "5.6.0",
            "ecosystem": "pypi"
          },
          {
            "name": "sentencepiece",
            "direct": false,
            "version": "0.2.2",
            "ecosystem": "pypi"
          },
          {
            "name": "setuptools",
            "direct": false,
            "version": "83.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "shapely",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "pypi"
          },
          {
            "name": "shellingham",
            "direct": false,
            "version": "1.5.4",
            "ecosystem": "pypi"
          },
          {
            "name": "six",
            "direct": false,
            "version": "1.17.0",
            "ecosystem": "pypi"
          },
          {
            "name": "sniffio",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "sniffio",
            "direct": false,
            "version": "1.3.1",
            "ecosystem": "pypi"
          },
          {
            "name": "snowflake-connector-python",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "snowflake-connector-python",
            "direct": false,
            "version": "4.7.1",
            "ecosystem": "pypi"
          },
          {
            "name": "socksio",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "sortedcontainers",
            "direct": false,
            "version": "2.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "sqlalchemy",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "sqlalchemy",
            "direct": false,
            "version": "2.0.51",
            "ecosystem": "pypi"
          },
          {
            "name": "sqlean-py",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "sqlean-py",
            "direct": false,
            "version": "3.50.4.5",
            "ecosystem": "pypi"
          },
          {
            "name": "sqlite-vec",
            "direct": false,
            "version": "0.1.9",
            "ecosystem": "pypi"
          },
          {
            "name": "stack-data",
            "direct": false,
            "version": "0.6.3",
            "ecosystem": "pypi"
          },
          {
            "name": "sympy",
            "direct": false,
            "version": "1.14.0",
            "ecosystem": "pypi"
          },
          {
            "name": "tavily-python",
            "direct": false,
            "version": "0.7.26",
            "ecosystem": "pypi"
          },
          {
            "name": "textual",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "textual",
            "direct": false,
            "version": "8.2.8",
            "ecosystem": "pypi"
          },
          {
            "name": "textual-dev",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "textual-dev",
            "direct": false,
            "version": "1.8.0",
            "ecosystem": "pypi"
          },
          {
            "name": "textual-serve",
            "direct": false,
            "version": "1.1.3",
            "ecosystem": "pypi"
          },
          {
            "name": "textual-speedups",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "textual-speedups",
            "direct": false,
            "version": "0.2.1",
            "ecosystem": "pypi"
          },
          {
            "name": "threadpoolctl",
            "direct": false,
            "version": "3.6.0",
            "ecosystem": "pypi"
          },
          {
            "name": "tifffile",
            "direct": false,
            "version": "2026.7.14",
            "ecosystem": "pypi"
          },
          {
            "name": "tiktoken",
            "direct": false,
            "version": "0.13.0",
            "ecosystem": "pypi"
          },
          {
            "name": "tinygrad",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "tokenizers",
            "direct": false,
            "version": "0.22.2",
            "ecosystem": "pypi"
          },
          {
            "name": "tomlkit",
            "direct": false,
            "version": "0.15.1",
            "ecosystem": "pypi"
          },
          {
            "name": "torch",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "torch",
            "direct": false,
            "version": "2.13.0",
            "ecosystem": "pypi"
          },
          {
            "name": "torchvision",
            "direct": false,
            "version": "0.28.0",
            "ecosystem": "pypi"
          },
          {
            "name": "tqdm",
            "direct": false,
            "version": "4.70.0",
            "ecosystem": "pypi"
          },
          {
            "name": "traitlets",
            "direct": false,
            "version": "5.15.1",
            "ecosystem": "pypi"
          },
          {
            "name": "transformers",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "transformers",
            "direct": false,
            "version": "5.11.0",
            "ecosystem": "pypi"
          },
          {
            "name": "tree-sitter",
            "direct": false,
            "version": "0.26.0",
            "ecosystem": "pypi"
          },
          {
            "name": "tree-sitter-bash",
            "direct": false,
            "version": "0.25.1",
            "ecosystem": "pypi"
          },
          {
            "name": "tree-sitter-css",
            "direct": false,
            "version": "0.25.0",
            "ecosystem": "pypi"
          },
          {
            "name": "tree-sitter-go",
            "direct": false,
            "version": "0.25.0",
            "ecosystem": "pypi"
          },
          {
            "name": "tree-sitter-html",
            "direct": false,
            "version": "0.23.2",
            "ecosystem": "pypi"
          },
          {
            "name": "tree-sitter-java",
            "direct": false,
            "version": "0.23.5",
            "ecosystem": "pypi"
          },
          {
            "name": "tree-sitter-javascript",
            "direct": false,
            "version": "0.25.0",
            "ecosystem": "pypi"
          },
          {
            "name": "tree-sitter-json",
            "direct": false,
            "version": "0.24.8",
            "ecosystem": "pypi"
          },
          {
            "name": "tree-sitter-markdown",
            "direct": false,
            "version": "0.5.1",
            "ecosystem": "pypi"
          },
          {
            "name": "tree-sitter-python",
            "direct": false,
            "version": "0.25.0",
            "ecosystem": "pypi"
          },
          {
            "name": "tree-sitter-regex",
            "direct": false,
            "version": "0.25.0",
            "ecosystem": "pypi"
          },
          {
            "name": "tree-sitter-rust",
            "direct": false,
            "version": "0.24.2",
            "ecosystem": "pypi"
          },
          {
            "name": "tree-sitter-sql",
            "direct": false,
            "version": "0.3.11",
            "ecosystem": "pypi"
          },
          {
            "name": "tree-sitter-toml",
            "direct": false,
            "version": "0.7.0",
            "ecosystem": "pypi"
          },
          {
            "name": "tree-sitter-xml",
            "direct": false,
            "version": "0.7.0",
            "ecosystem": "pypi"
          },
          {
            "name": "tree-sitter-yaml",
            "direct": false,
            "version": "0.7.2",
            "ecosystem": "pypi"
          },
          {
            "name": "trino",
            "direct": false,
            "version": "0.338.0",
            "ecosystem": "pypi"
          },
          {
            "name": "trio",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "trio",
            "direct": false,
            "version": "0.33.0",
            "ecosystem": "pypi"
          },
          {
            "name": "trio-asyncio",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "twine",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "twine",
            "direct": false,
            "version": "7.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "typer",
            "direct": false,
            "version": "0.27.0",
            "ecosystem": "pypi"
          },
          {
            "name": "types-awscrt",
            "direct": false,
            "version": "0.34.1",
            "ecosystem": "pypi"
          },
          {
            "name": "types-boto3",
            "direct": false,
            "version": "1.43.60",
            "ecosystem": "pypi"
          },
          {
            "name": "types-docutils",
            "direct": false,
            "version": "0.22.3.20260724",
            "ecosystem": "pypi"
          },
          {
            "name": "types-greenlet",
            "direct": false,
            "version": "3.5.0.20260518",
            "ecosystem": "pypi"
          },
          {
            "name": "types-paramiko",
            "direct": false,
            "version": "5.0.0.20260724",
            "ecosystem": "pypi"
          },
          {
            "name": "types-psutil",
            "direct": false,
            "version": "7.2.2.20260518",
            "ecosystem": "pypi"
          },
          {
            "name": "types-pygments",
            "direct": false,
            "version": "2.20.0.20260728",
            "ecosystem": "pypi"
          },
          {
            "name": "types-pymysql",
            "direct": false,
            "version": "1.2.0.20260724",
            "ecosystem": "pypi"
          },
          {
            "name": "types-pyyaml",
            "direct": false,
            "version": "6.0.12.20260724",
            "ecosystem": "pypi"
          },
          {
            "name": "types-regex",
            "direct": false,
            "version": "2026.7.19.20260720",
            "ecosystem": "pypi"
          },
          {
            "name": "types-s3transfer",
            "direct": false,
            "version": "0.16.0",
            "ecosystem": "pypi"
          },
          {
            "name": "types-setuptools",
            "direct": false,
            "version": "83.0.0.20260724",
            "ecosystem": "pypi"
          },
          {
            "name": "types-ujson",
            "direct": false,
            "version": "5.10.0.20250822",
            "ecosystem": "pypi"
          },
          {
            "name": "typing-extensions",
            "direct": false,
            "version": "4.16.0",
            "ecosystem": "pypi"
          },
          {
            "name": "tzlocal",
            "direct": false,
            "version": "5.4.4",
            "ecosystem": "pypi"
          },
          {
            "name": "uc-micro-py",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "ujson",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "ujson",
            "direct": false,
            "version": "5.13.0",
            "ecosystem": "pypi"
          },
          {
            "name": "unicorn",
            "direct": false,
            "version": "2.1.4",
            "ecosystem": "pypi"
          },
          {
            "name": "uritemplate",
            "direct": false,
            "version": "4.2.0",
            "ecosystem": "pypi"
          },
          {
            "name": "urllib3",
            "direct": false,
            "version": "2.7.0",
            "ecosystem": "pypi"
          },
          {
            "name": "urwid",
            "direct": false,
            "version": "4.0.8",
            "ecosystem": "pypi"
          },
          {
            "name": "urwid-readline",
            "direct": false,
            "version": "0.15.1",
            "ecosystem": "pypi"
          },
          {
            "name": "uv",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "uv",
            "direct": false,
            "version": "0.12.0",
            "ecosystem": "pypi"
          },
          {
            "name": "uvicorn",
            "direct": false,
            "version": "0.51.0",
            "ecosystem": "pypi"
          },
          {
            "name": "watchdog",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "wcwidth",
            "direct": false,
            "version": "0.8.2",
            "ecosystem": "pypi"
          },
          {
            "name": "wheel",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "wheel",
            "direct": false,
            "version": "0.47.0",
            "ecosystem": "pypi"
          },
          {
            "name": "wikitextparser",
            "direct": false,
            "version": null,
            "ecosystem": "pypi"
          },
          {
            "name": "wikitextparser",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "pypi"
          },
          {
            "name": "wsproto",
            "direct": false,
            "version": "1.3.2",
            "ecosystem": "pypi"
          },
          {
            "name": "xxhash",
            "direct": false,
            "version": "3.8.1",
            "ecosystem": "pypi"
          },
          {
            "name": "yappi",
            "direct": false,
            "version": "1.7.6",
            "ecosystem": "pypi"
          },
          {
            "name": "yarl",
            "direct": false,
            "version": "1.24.5",
            "ecosystem": "pypi"
          },
          {
            "name": "zipp",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "zstandard",
            "direct": false,
            "version": "0.25.0",
            "ecosystem": "pypi"
          }
        ],
        "collected": true,
        "truncated": false,
        "total_count": 440,
        "direct_count": 3,
        "indirect_count": 437
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 0,
        "merged_prs": 0,
        "open_issues": 0,
        "closed_ratio": null,
        "closed_issues": 0,
        "closed_unmerged_prs": 0
      },
      "bus_factor": 1,
      "bot_contributors": 0,
      "top_contributors": [
        {
          "type": "User",
          "login": "wrmsr",
          "commits": 14002,
          "avatar_url": "https://avatars.githubusercontent.com/u/559096?v=4"
        }
      ],
      "contributors_sampled": 1,
      "top_contributor_share": 1
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "ci.yml"
      ],
      "has_docs_dir": false,
      "linter_configs": [],
      "has_editorconfig": true,
      "has_linter_config": false,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [
        "Cargo.lock"
      ],
      "scorecard": null,
      "has_codeql_workflow": false,
      "has_security_policy": false,
      "has_dependabot_config": false
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-07-31T04:50:53Z",
      "oldest_open_prs": [],
      "last_merged_pr_at": null,
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": []
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/wrmsr/om",
    "host": "github.com",
    "name": "om",
    "owner": "wrmsr"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "at_risk",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 48,
      "inputs": {
        "security": 21,
        "vitality": 60,
        "community": 38,
        "governance": 52,
        "engineering": 61
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "moderate",
        "name": "Vitality",
        "value": 60,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "excellent",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 99,
            "inputs": {
              "commits_last_year": 4075,
              "human_commit_share": 1,
              "days_since_last_push": 0,
              "active_weeks_last_year": 51
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 0 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 0
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "51/52 weeks with commits",
                "points": 35.3,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 51
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "4075 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 4075
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "OpenSSF Scorecard unavailable",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "critical",
            "name": "Release discipline",
            "note": null,
            "notes": [],
            "value": 1,
            "inputs": {
              "releases_count": 0
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "no releases published",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_releases_published",
                    "params": {}
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "no releases",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_releases",
                    "params": {}
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "no releases",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_releases",
                    "params": {}
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "OpenSSF Scorecard unavailable",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "excellent",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "cap": null,
              "state": "maintained",
              "guards": [],
              "signals": [],
              "red_flag": false,
              "multiplier_pct": 100,
              "declared_reason": null,
              "unverified_reason": null,
              "unanswered_open_prs": null,
              "unanswered_open_issues": null,
              "days_since_last_merged_pr": null,
              "days_since_last_human_commit": 0,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "last human commit 0 days ago",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_maintained",
                    "params": {
                      "days": 0
                    }
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "at_risk",
        "name": "Community & Adoption",
        "value": 38,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "critical",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 13,
            "inputs": {
              "forks": 0,
              "stars": 7,
              "watchers": 1,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "7 stars",
                "points": 12.6,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 7
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "0 forks",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 0
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "1 watchers",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "moderate",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 50,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "has_contributing": false,
              "has_issue_template": false,
              "has_code_of_conduct": false,
              "has_pull_request_template": false
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "recognized license (BSD-3-Clause)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "BSD-3-Clause"
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.3
              }
            ]
          },
          {
            "key": "ecosystem_adoption",
            "band": "moderate",
            "name": "Ecosystem adoption (downloads)",
            "note": "Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "registry_dependents"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 63,
            "inputs": {
              "packages": [
                "omdev",
                "omllm",
                "omcore",
                "omxtra",
                "ominfra"
              ],
              "dependents": null,
              "ecosystems": "pypi",
              "total_downloads": null,
              "monthly_downloads": 6078
            },
            "components": [
              {
                "key": "monthly_downloads",
                "name": "Monthly downloads",
                "detail": "6,078 downloads/month across pypi",
                "points": 50.5,
                "status": "partial",
                "details": [
                  {
                    "code": "downloads_monthly",
                    "params": {
                      "count": 6078,
                      "ecosystems": "pypi"
                    }
                  }
                ],
                "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": 52,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "critical",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 12,
            "inputs": {
              "bus_factor": 1,
              "contributors_sampled": 1,
              "top_contributor_share": 1
            },
            "components": [
              {
                "key": "bus_factor",
                "name": "Bus factor",
                "detail": "1 contributor(s) cover half of all commits",
                "points": 9,
                "status": "partial",
                "details": [
                  {
                    "code": "bus_factor",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 54
              },
              {
                "key": "commit_distribution",
                "name": "Commit distribution",
                "detail": "top contributor authored 100% of commits",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 100
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "1 contributors",
                "points": 1.4,
                "status": "partial",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "OpenSSF Scorecard unavailable",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "moderate",
            "name": "Ownership & stewardship",
            "note": "Excluded from scoring (no data or not applicable): Verified domain. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "verified_domain"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 62,
            "inputs": {
              "followers": 92,
              "owner_type": "User",
              "is_verified": null,
              "owner_login": "wrmsr",
              "public_repos": 240,
              "account_age_days": 5678
            },
            "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": "92 followers of wrmsr",
                "points": 14.2,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 92,
                      "login": "wrmsr"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "240 public repos, account ~15 yr old",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 240
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 15
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "excellent",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "omdev",
                "omllm",
                "omcore",
                "omxtra",
                "ominfra"
              ],
              "ecosystems": "pypi",
              "any_deprecated": false,
              "min_days_since_publish": 0
            },
            "components": [
              {
                "key": "published_resolvable",
                "name": "Published & resolvable",
                "detail": "5 package(s) on pypi",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "packages_published",
                    "params": {
                      "count": 5,
                      "ecosystems": "pypi"
                    }
                  }
                ],
                "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": "585 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 585
                    }
                  }
                ],
                "max_points": 20
              },
              {
                "key": "not_deprecated",
                "name": "Not deprecated",
                "detail": "active, not deprecated or yanked",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "package_not_deprecated",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
      },
      {
        "key": "engineering",
        "band": "moderate",
        "name": "Engineering Quality",
        "value": 61,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "moderate",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 68,
            "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": "1 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "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": "OpenSSF Scorecard unavailable",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "moderate",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 50,
            "inputs": {
              "topics": [],
              "has_wiki": true,
              "homepage": null,
              "has_readme": true,
              "has_docs_dir": false,
              "has_description": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 30,
                "status": "met",
                "details": [],
                "max_points": 30
              },
              {
                "key": "documentation_directory",
                "name": "Documentation directory",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": 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": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "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": "critical",
        "name": "Security",
        "value": 21,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "critical",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Dependency lockfiles. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "dependency_lockfiles"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 1,
            "inputs": {
              "source": "file_signals",
              "lockfiles": [
                "Cargo.lock"
              ],
              "manifests": [
                "pyproject.toml",
                "requirements-ci.txt",
                "requirements-dev.txt",
                "requirements-ext.txt",
                "requirements-frz.txt",
                "requirements.txt"
              ],
              "has_codeql_workflow": false,
              "has_security_policy": false,
              "has_dependabot_config": false
            },
            "components": [
              {
                "key": "security_policy_security_md",
                "name": "Security policy (SECURITY.md)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 30
              },
              {
                "key": "dependabot_config",
                "name": "Dependabot config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 25
              },
              {
                "key": "dependency_lockfiles",
                "name": "Dependency lockfiles",
                "detail": "published library — lockfiles are an application concern, not expected",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "lockfiles_not_expected",
                    "params": {}
                  }
                ],
                "max_points": 25
              },
              {
                "key": "codeql_workflow",
                "name": "CodeQL workflow",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "dependency_advisories",
            "band": "excellent",
            "name": "Dependency advisories",
            "note": "Excluded from scoring (no data or not applicable): Indirect dependencies free of known advisories, No advisories left outstanding. Remaining weights renormalized. Matched 371 resolved dependencies against OSV; 69 could not be assessed (no resolved version, an unsupported ecosystem, or beyond the reported package list). This repository publishes no package the index resolves, so the repository dependency graph was assessed instead. That graph mixes development and test pins with shipped dependencies, so only the declared runtime dependencies are scored; transitive findings are reported as context and excluded from the score. Reachability is not analyzed.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "indirect_dependencies_free_of_known_advisories",
                    "no_advisories_left_outstanding"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              },
              {
                "code": "advisories_scope_repository",
                "params": {
                  "assessed": 371
                }
              },
              {
                "code": "advisories_unassessed",
                "params": {
                  "count": 69
                }
              },
              {
                "code": "advisories_repo_graph_caveat",
                "params": {}
              },
              {
                "code": "advisories_reachability",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "source": "osv",
              "advisories": 9,
              "affected_packages": 4,
              "assessed_packages": 371,
              "unassessed_packages": 69,
              "affected_by_severity": "high 1, moderate 2, unknown 1",
              "direct_affected_packages": 0
            },
            "components": [
              {
                "key": "direct_dependencies_free_of_known_advisories",
                "name": "Direct dependencies free of known advisories",
                "detail": "no direct dependency carries a known advisory",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "no_direct_advisories",
                    "params": {}
                  }
                ],
                "max_points": 35
              },
              {
                "key": "indirect_dependencies_free_of_known_advisories",
                "name": "Indirect dependencies free of known advisories",
                "detail": "transitive set not separable from development and test dependencies in this scope",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "advisories_scope_not_separable",
                    "params": {}
                  }
                ],
                "max_points": 25
              },
              {
                "key": "no_advisories_left_outstanding",
                "name": "No advisories left outstanding",
                "detail": "no advisory carries a publication date",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "advisories_no_publication_date",
                    "params": {}
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "malicious_dependencies",
            "band": "excellent",
            "name": "Malicious dependencies",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "source": "osv",
              "meaning": "reported as a malicious package by the OpenSSF corpus; the remedy is removal or moving off the compromised name, never an upgrade of the same artifact. Versions the registry has since pulled are listed but not scored",
              "packages": [],
              "red_flag": false,
              "assessed_packages": 371,
              "malicious_packages": 0,
              "direct_malicious_packages": 0,
              "withdrawn_malicious_packages": 0,
              "installable_malicious_packages": 0
            },
            "components": [
              {
                "key": "no_dependency_reported_as_a_malicious_package",
                "name": "No dependency reported as a malicious package",
                "detail": "no dependency is reported as a malicious package",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "no_malicious_dependencies",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          },
          {
            "key": "high_risk_jurisdiction_exposure",
            "band": "excellent",
            "name": "High-Risk Jurisdiction Exposure",
            "note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
            "notes": [
              {
                "code": "jurisdiction_evidence_limits",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "meaning": "self-published location evidence; not nationality or citizenship",
              "red_flag": false,
              "exposures": [],
              "policy_countries": [
                "Russia",
                "Iran",
                "North Korea"
              ],
              "review_only_matches": 0,
              "assessed_self_published_locations": 2
            },
            "components": [
              {
                "key": "policy_exposure_multiplier",
                "name": "Policy exposure multiplier",
                "detail": "no confirmed policy-scope location match",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "jurisdiction_no_match",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
      },
      {
        "key": "ai_readiness",
        "band": "good",
        "name": "AI Readiness",
        "value": 77,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "excellent",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 85,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 0.9,
              "agent_instruction_files": [
                "AGENTS.md"
              ],
              "agent_instruction_max_bytes": 3068
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "AGENTS.md",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "AGENTS.md"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "machine_readable_docs_llms_txt",
                "name": "Machine-readable docs (llms.txt)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "legible_commit_history",
                "name": "Legible commit history",
                "detail": "90 of 100 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 90,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "moderate",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 68,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "Cargo.lock"
              ],
              "has_dockerfile": true,
              "typed_language": false,
              "bootstrap_files": [
                "Makefile",
                "omdev/pyproject/tests/skeleton/Makefile"
              ],
              "has_devcontainer": false,
              "has_linter_config": false,
              "typecheck_configs": [
                "omcore/py.typed",
                "omdev/py.typed",
                "ominfra/py.typed",
                "omllm/py.typed",
                "omxtra/py.typed",
                "x/pipdeptree/py.typed"
              ],
              "agent_commit_share": 0,
              "toolchain_manifests": [
                "omdev/rs/_boilerplate/Cargo.toml",
                "x/ommlds/nanochat/rustbpe/Cargo.toml"
              ],
              "dependency_bot_commit_share": 0
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": "Makefile, omdev/pyproject/tests/skeleton/Makefile",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "Makefile, omdev/pyproject/tests/skeleton/Makefile"
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "automated_tests",
                "name": "Automated tests",
                "detail": null,
                "points": 22,
                "status": "met",
                "details": [],
                "max_points": 22
              },
              {
                "key": "lint_format_config",
                "name": "Lint / format config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": "omcore/py.typed, omdev/py.typed, ominfra/py.typed, omllm/py.typed, omxtra/py.typed, x/pipdeptree/py.typed",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "omcore/py.typed, omdev/py.typed, ominfra/py.typed, omllm/py.typed, omxtra/py.typed, x/pipdeptree/py.typed"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": "Dockerfile, lockfile",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "Dockerfile, lockfile"
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "no agent-authored commits among the last 100",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_agent_authored_commits",
                    "params": {
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "no automated dependency updates observed",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_dependency_automation",
                    "params": {}
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "OpenSSF Scorecard unavailable",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "good",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 81,
            "inputs": {
              "primary_language": "Python",
              "largest_source_bytes": 1397928,
              "source_files_sampled": 4878,
              "oversized_source_files": 61
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "Python with type-check config (omcore/py.typed, omdev/py.typed, ominfra/py.typed, omllm/py.typed, omxtra/py.typed, x/pipdeptree/py.typed)",
                "points": 27,
                "status": "partial",
                "details": [
                  {
                    "code": "typecheck_config_language",
                    "params": {
                      "files": "omcore/py.typed, omdev/py.typed, ominfra/py.typed, omllm/py.typed, omxtra/py.typed, x/pipdeptree/py.typed",
                      "language": "Python"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "61/4878 source files over 60KB",
                "points": 54.3,
                "status": "partial",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 4878,
                      "oversized": 61
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          },
          {
            "key": "ai_interfaces",
            "band": "good",
            "name": "Machine-readable interfaces",
            "note": null,
            "notes": [],
            "value": 80,
            "inputs": {
              "example_dirs": [
                "demos",
                "examples",
                "notebooks",
                "samples"
              ],
              "has_mcp_signal": false,
              "api_schema_files": [
                "omxtra/specs/proto/tests/examples/addressbook.proto"
              ]
            },
            "components": [
              {
                "key": "api_schema_openapi_graphql_proto",
                "name": "API schema (OpenAPI/GraphQL/proto)",
                "detail": "omxtra/specs/proto/tests/examples/addressbook.proto",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "omxtra/specs/proto/tests/examples/addressbook.proto"
                    }
                  }
                ],
                "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": "demos, examples, notebooks, samples",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "demos, examples, notebooks, samples"
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
      }
    ],
    "metrics_version": "1.13.0"
  },
  "warnings": [
    "Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token",
    "Could not fetch pypi package 'omdev.cexts._boilerplate' from its registry",
    "Could not fetch pypi package 'omcore._check' from its registry",
    "Could not fetch pypi package 'omxtra.collections.stl._stl' from its registry",
    "deps.dev does not index pypi:omdev@0.0.35; advisories assessed against the repository dependency graph instead",
    "OpenSSF Scorecard did not return a usable result (2026/07/31 04:51:10 Warning: PATs stored in env variables GITHUB_AUTH_TOKEN and GITHUB_TOKEN differ. Scorecard will use the former.); skipping Scorecard checks"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-31T04:51:43.342565Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/w/wrmsr/om.svg",
  "full_name": "wrmsr/om",
  "license_state": "standard",
  "license_spdx": "BSD-3-Clause"
}

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

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

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