公开记录
软件健康报告模式 0.23.0 · 指标 1.13.0 · 2026-07-21 15:52 UTC

dahlia / optique

Type-safe combinatorial CLI parser for TypeScript

TypeScriptMIT★ 713 星标⑂ 9 复刻始于 2025年8月在 GitHub 上查看 ↗

dahlia/optique 的健康指数为 100 分中的 73 分,处于「良好」区间。 其得分最高的类别是Vitality(92/100),最低的是Security(54/100)。 最近一次更新在今天。 近期的大部分工作由 1 位贡献者完成。

73
总分 / 100
良好

软件健康指数

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

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

评分画像

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

所有权

1,350 关注者274 个公开仓库始于 2008年6月@fedify-dev

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

软件包生态系统

按类别列示的指标

活力

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

92优秀 · 占总体的 22%
评分方式
36/36推送新近度 — 最近一次推送于 0 天前
31.2/36提交节奏 — 52 周中有 45 周有提交
18/18提交量 — 最近一年 3,636 次提交
10/10OpenSSF Scorecard:Maintained — 30 commit(s) and 30 issue activity found in the last 90 days -- score normalized to 10
所用输入
commits_last_year3,636
human_commit_share1
days_since_last_push0
active_weeks_last_year45

发布纪律

88优秀
评分方式
16.2/27有发布版本 — 94 个版本标签(无 GitHub 发布版本)
36/36发布时效 — 最近一次发布版本于 0 天前
27/27发布节奏 — 约每 16.8 天发布一次
0/10OpenSSF Scorecard:Signed-Releases — 无数据
所用输入
releases_count94
latest_release_tag1.2.0
releases_from_tags
days_since_latest_release0
mean_days_between_releases16.8
已排除计分(无数据或不适用):OpenSSF Scorecard:Signed-Releases。 其余权重已重新归一化。

社区与采用

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

70良好 · 占总体的 18%
评分方式
46.3/60星标 — 713 个星标
7.5/25复刻 — 9 个复刻
2.7/15关注者 — 4 位关注者
所用输入
forks9
stars713
watchers4
growth_stateorganic
growth_factor_pct100

社区健康

70良好
评分方式
22.5/22.5README
22.5/22.5许可证 — 可识别的许可证(MIT)
18/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
评分方式
73.5/80月度下载量 — npm 合计每月 325,578 次下载
0/20注册表被依赖数 — 该生态系统不报告此项
所用输入
packages@optique/env, @optique/git, @optique/man, @optique/run, @optique/zod, @optique/core, @optique/clack, @optique/config
dependents
ecosystemsnpm
total_downloads
monthly_downloads325,578
已排除计分(无数据或不适用):注册表被依赖数。 其余权重已重新归一化。

可持续性与治理

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

67中等 · 占总体的 24%
评分方式
9/54巴士系数 — 1 位贡献者贡献了半数提交
0/22.5提交分布 — 头号贡献者编写了 100% 的提交
8.1/13.5贡献者广度 — 6 位贡献者
10/10OpenSSF Scorecard:Contributors — project has 5 contributing companies or organizations
所用输入
bus_factor1
contributors_sampled6
top_contributor_share0.998
评分方式
46.1/46.8议题解决 — 99% 的议题已关闭
37.4/38.3PR 接受 — 已裁定的 PR 中 305/312 已合并
0/15OpenSSF Scorecard:Code-Review — Found 0/6 approved changesets -- score normalized to 0
所用输入
merged_prs305
open_issues7
closed_issues536
issue_closed_ratio0.987
closed_unmerged_prs7
评分方式
10/30所有权背书 — 个人(用户)账户
0/20已验证域名 — 不适用于个人账户
22.5/25所有者影响力 — dahlia 有 1,350 位关注者
25/25既往记录 — 274 个公开仓库,账户约 18 年
所用输入
followers1,350
owner_typeUser
is_verified
owner_logindahlia
public_repos274
account_age_days6,622
已排除计分(无数据或不适用):已验证域名。 其余权重已重新归一化。
评分方式
25/25已发布且可解析 — npm 上有 8 个软件包
35/35发布时效 — 最近一次发布于 0 天前
20/20版本历史 — 755 个已发布版本
20/20未被弃用 — 活跃,未被弃用或撤回
所用输入
packages@optique/env, @optique/git, @optique/man, @optique/run, @optique/zod, @optique/core, @optique/clack, @optique/config
ecosystemsnpm
any_deprecated
min_days_since_publish0

工程质量

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

77良好 · 占总体的 20%

工程实践

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

文档

90优秀
评分方式
30/30README
25/25文档目录
15/15文档 / 主页站点 — http://optique.dev/
10/10仓库描述
10/10主题标签 — 4 个主题标签
0/10Wiki
所用输入
topicscli, getopt, parser-combinators, typescript
has_wiki
homepagehttp://optique.dev/
has_readme
has_docs_dir
has_description

安全

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

54中等 · 占总体的 16%

安全态势

49存在风险
评分方式
7.5/7.5Binary-Artifacts — no binaries found in the repo
3/7.5Branch-Protection — branch protection is not maximal on development and all release branches
2.5/2.5CI-Tests — 3 out of 3 merged PRs checked by a CI test -- score normalized to 10
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
0/7.5Code-Review — Found 0/6 approved changesets -- score normalized to 0
2.5/2.5Contributors — project has 5 contributing companies or organizations
10/10Dangerous-Workflow — no dangerous workflow patterns detected
0/7.5Dependency-Update-Tool — no update tool detected
5/5Fuzzing — project is fuzzed
2.5/2.5许可证 — license file detected
7.5/7.5Maintained — 30 commit(s) and 30 issue activity found in the last 90 days -- score normalized to 10
0/5Packaging — 无数据
0/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
0/5SAST — SAST tool is not run on all commits -- score normalized to 0
5/5Security-Policy — security policy file detected
0/7.5Signed-Releases — 无数据
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
0/7.5Vulnerabilities — 28 existing vulnerabilities detected
所用输入
sourceopenssf_scorecard
checks_evaluated16
scorecard_versionv5.5.0
checks_inconclusive2
scorecard_aggregate4.9
已排除计分(无数据或不适用):packaging, signed_releases。 其余权重已重新归一化。
评分方式
20.2/35直接依赖不含已知公告 — 1 个受影响:isomorphic-git catalog: (moderate 5.3)
0/25间接依赖不含已知公告 — 在此范围内,传递依赖集合无法与开发和测试依赖区分
35.3/40没有长期未处理的公告 — 1 个携带公告的软件包超过 90 天未处理;最早一条发布于 1,782 天前
所用输入
sourceosv
advisories30
affected_packages16
assessed_packages637
unassessed_packages15
affected_by_severitycritical 1, high 9, moderate 5, low 1
direct_affected_packages1
已排除计分(无数据或不适用):间接依赖不含已知公告。 其余权重已重新归一化。 已将 637 个已解析依赖与 OSV 比对。 有 15 项无法评估——没有已解析的版本、生态系统不受支持,或超出所报告的软件包清单。 该仓库未发布任何索引可解析的软件包,因此改为评估仓库依赖图。该图将开发与测试版本固定同交付的依赖混在一起,因此仅对声明的运行时依赖计分;传递性发现仅作为背景信息列出,不计入评分。 未对可达性进行分析。

AI 就绪度

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

70良好 · 占总体的 0%
评分方式
45/45代理指令 — AGENTS.md, CLAUDE.md, examples/gitique/.cursorrules, examples/gitique/.windsurfrules, examples/gitique/AGENT.md, examples/gitique/AGENTS.md, examples/gitique/CLAUDE.md, examples/gitique/GEMINI.md
0/15机器可读文档(llms.txt)
40/40可读的提交历史 — 100 次人类提交中有 95 次说明了意图(结构化标题或解释性正文)
所用输入
has_llms_txt
legible_history_share0.95
agent_instruction_filesAGENTS.md, CLAUDE.md, examples/gitique/.cursorrules, examples/gitique/.windsurfrules, examples/gitique/AGENT.md, examples/gitique/AGENTS.md, examples/gitique/CLAUDE.md, examples/gitique/GEMINI.md
agent_instruction_max_bytes9,590
评分方式
18/18一条命令的引导启动 — mise.toml
22/22自动化测试
0/11Lint / 格式化配置
11/11静态类型检查 — TypeScript(静态类型)
10/10可复现环境 — lockfile
0/10已体现的代理实践 — 最近 100 次提交中没有代理编写的提交
0/8自动化维护 — 未观察到自动依赖更新
0/10OpenSSF Scorecard:Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
所用输入
has_nix
has_tests
lockfilespnpm-lock.yaml
has_dockerfile
typed_language
bootstrap_filesmise.toml
has_devcontainer
has_linter_config
typecheck_configs
agent_commit_share0
toolchain_manifests
dependency_bot_commit_share0
评分方式
45/45可类型检查的代码 — TypeScript(静态类型)
47.1/55可控的文件大小 — 采样的 202 个源文件中有 29 个超过 60KB
所用输入
primary_languageTypeScript
largest_source_bytes707,468
source_files_sampled202
oversized_source_files29

机器可读接口

40存在风险
评分方式
0/40API 模式(OpenAPI/GraphQL/proto)
0/20MCP 服务器
40/40可运行示例 — examples
所用输入
example_dirsexamples
has_mcp_signal
api_schema_files

关键数据

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

数据采集警告

  • deps.dev does not index npm:@optique/env@1.2.0; advisories assessed against the repository dependency graph instead

更多细节

Star 与 Fork 历史 713 ★ / 9 ⇿
713Star
9Fork
93发布

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

01252503755006257507139612025-082026-022026-07
主版本 1次版本 11修订 81
OpenSSF Scorecard 4.9 / 10
4.9综合

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

10Binary-Artifactsno binaries found in the repo
4Branch-Protectionbranch protection is not maximal on development and all release branches
10CI-Tests3 out of 3 merged PRs checked by a CI test -- score normalized to 10
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
0Code-ReviewFound 0/6 approved changesets -- score normalized to 0
10Contributorsproject has 5 contributing companies or organizations
10Dangerous-Workflowno dangerous workflow patterns detected
0Dependency-Update-Toolno update tool detected
10Fuzzingproject is fuzzed
10Licenselicense file detected
10Maintained30 commit(s) and 30 issue activity found in the last 90 days -- score normalized to 10
不适用Packagingpackaging workflow not detected
0Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 0
0SASTSAST tool is not run on all commits -- score normalized to 0
10Security-Policysecurity policy file detected
不适用Signed-Releasesno releases found
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
0Vulnerabilities28 existing vulnerabilities detected
直接依赖 24
注册表软件包版本约束清单文件
npm@clack/promptscatalog:packages/clack/package.json
npm@optique/coreworkspace:*packages/clack/package.json
npm@optique/promptworkspace:*packages/clack/package.json
npm@optique/coreworkspace:*packages/config/package.json
npm@optique/coreworkspace:*packages/derived-defaults/package.json
npm@optique/coreworkspace:*packages/discover/package.json
npm@optique/runworkspace:*packages/discover/package.json
npm@optique/coreworkspace:*packages/env/package.json
npm@logtape/logtapecatalog:packages/git/package.json
npm@optique/coreworkspace:packages/git/package.json
npmisomorphic-gitcatalog:packages/git/package.json
npm@inquirer/promptscatalog:packages/inquirer/package.json
npm@optique/coreworkspace:*packages/inquirer/package.json
npm@optique/promptworkspace:*packages/inquirer/package.json
npm@optique/coreworkspace:packages/logtape/package.json
npm@optique/coreworkspace:packages/man/package.json
npm@optique/runworkspace:packages/man/package.json
npm@optique/coreworkspace:*packages/prompt/package.json
npm@optique/coreworkspace:*packages/run/package.json
npm@optique/coreworkspace:packages/standard-schema/package.json
npm@js-temporal/polyfill^0.5.1packages/temporal/package.json
npm@optique/coreworkspace:packages/temporal/package.json
npm@optique/coreworkspace:packages/valibot/package.json
npm@optique/coreworkspace:packages/zod/package.json
全部依赖 652

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

注册表软件包版本关系
npm@clack/prompts1.6.0直接
npm@clack/promptscatalog:直接
npm@inquirer/prompts8.3.0直接
npm@inquirer/promptscatalog:直接
npm@js-temporal/polyfill0.5.1直接
npm@js-temporal/polyfill^0.5.1直接
npm@logtape/logtape2.2.2直接
npm@logtape/logtapecatalog:直接
npmisomorphic-git1.36.1直接
npmisomorphic-gitcatalog:直接
npm@antfu/install-pkg1.1.0间接
npm@antfu/utils9.2.0间接
npm@ark/schema0.56.0间接
npm@ark/util0.56.0间接
npm@babel/generator7.28.0间接
npm@babel/helper-string-parser7.29.7间接
npm@babel/helper-validator-identifier7.29.7间接
npm@babel/parser7.29.7间接
npm@babel/types7.29.7间接
npm@braintree/sanitize-url6.0.4间接
npm@braintree/sanitize-url7.1.2间接
npm@chevrotain/types11.1.2间接
npm@clack/core1.4.2间接
npm@cloudflare/kv-asset-handler0.5.0间接
npm@cloudflare/unenv-preset2.16.1间接
npm@cloudflare/workerd-darwin-641.20260511.1间接
npm@cloudflare/workerd-darwin-arm641.20260511.1间接
npm@cloudflare/workerd-linux-641.20260511.1间接
npm@cloudflare/workerd-linux-arm641.20260511.1间接
npm@cloudflare/workerd-windows-641.20260511.1间接
npm@cspotcode/source-map-support0.8.1间接
npm@docsearch/css4.6.3间接
npm@docsearch/js4.6.3间接
npm@docsearch/sidepanel-js4.6.3间接
npm@emnapi/core1.4.5间接
npm@emnapi/runtime1.10.0间接
npm@emnapi/wasi-threads1.0.4间接
npm@esbuild/aix-ppc640.27.3间接
npm@esbuild/android-arm0.27.3间接
npm@esbuild/android-arm640.27.3间接
npm@esbuild/android-x640.27.3间接
npm@esbuild/darwin-arm640.27.3间接
npm@esbuild/darwin-x640.27.3间接
npm@esbuild/freebsd-arm640.27.3间接
npm@esbuild/freebsd-x640.27.3间接
npm@esbuild/linux-arm0.27.3间接
npm@esbuild/linux-arm640.27.3间接
npm@esbuild/linux-ia320.27.3间接
npm@esbuild/linux-loong640.27.3间接
npm@esbuild/linux-mips64el0.27.3间接
npm@esbuild/linux-ppc640.27.3间接
npm@esbuild/linux-riscv640.27.3间接
npm@esbuild/linux-s390x0.27.3间接
npm@esbuild/linux-x640.27.3间接
npm@esbuild/netbsd-arm640.27.3间接
npm@esbuild/netbsd-x640.27.3间接
npm@esbuild/openbsd-arm640.27.3间接
npm@esbuild/openbsd-x640.27.3间接
npm@esbuild/openharmony-arm640.27.3间接
npm@esbuild/sunos-x640.27.3间接
npm@esbuild/win32-arm640.27.3间接
npm@esbuild/win32-ia320.27.3间接
npm@esbuild/win32-x640.27.3间接
npm@floating-ui/core1.7.3间接
npm@floating-ui/dom1.1.1间接
npm@floating-ui/utils0.2.10间接
npm@fontsource-variable/space-grotesk5.2.10间接
npm@fontsource-variable/space-grotesk^5.2.10间接
npm@iconify-json/logos1.2.9间接
npm@iconify-json/simple-icons1.2.86间接
npm@iconify-json/vscode-icons1.2.29间接
npm@iconify/types2.0.0间接
npm@iconify/utils3.0.1间接
npm@iconify/utils3.1.3间接
npm@img/colour1.1.0间接
npm@img/sharp-darwin-arm640.34.5间接
npm@img/sharp-darwin-x640.34.5间接
npm@img/sharp-libvips-darwin-arm641.2.4间接
npm@img/sharp-libvips-darwin-x641.2.4间接
npm@img/sharp-libvips-linux-arm1.2.4间接
npm@img/sharp-libvips-linux-arm641.2.4间接
npm@img/sharp-libvips-linux-ppc641.2.4间接
npm@img/sharp-libvips-linux-riscv641.2.4间接
npm@img/sharp-libvips-linux-s390x1.2.4间接
npm@img/sharp-libvips-linux-x641.2.4间接
npm@img/sharp-libvips-linuxmusl-arm641.2.4间接
npm@img/sharp-libvips-linuxmusl-x641.2.4间接
npm@img/sharp-linux-arm0.34.5间接
npm@img/sharp-linux-arm640.34.5间接
npm@img/sharp-linux-ppc640.34.5间接
npm@img/sharp-linux-riscv640.34.5间接
npm@img/sharp-linux-s390x0.34.5间接
npm@img/sharp-linux-x640.34.5间接
npm@img/sharp-linuxmusl-arm640.34.5间接
npm@img/sharp-linuxmusl-x640.34.5间接
npm@img/sharp-wasm320.34.5间接
npm@img/sharp-win32-arm640.34.5间接
npm@img/sharp-win32-ia320.34.5间接
npm@img/sharp-win32-x640.34.5间接
npm@inquirer/ansi2.0.3间接
npm@inquirer/checkbox5.1.0间接
npm@inquirer/confirm6.0.8间接
npm@inquirer/core11.1.5间接
npm@inquirer/editor5.0.8间接
npm@inquirer/expand5.0.8间接
npm@inquirer/external-editor2.0.3间接
npm@inquirer/figures2.0.3间接
npm@inquirer/input5.0.8间接
npm@inquirer/number4.0.8间接
npm@inquirer/password5.0.8间接
npm@inquirer/rawlist5.2.4间接
npm@inquirer/search4.1.4间接
npm@inquirer/select5.1.0间接
npm@inquirer/type4.0.3间接
npm@isaacs/balanced-match4.0.1间接
npm@isaacs/brace-expansion5.0.0间接
npm@jridgewell/gen-mapping0.3.12间接
npm@jridgewell/resolve-uri3.1.2间接
npm@jridgewell/sourcemap-codec1.5.5间接
npm@jridgewell/trace-mapping0.3.29间接
npm@jridgewell/trace-mapping0.3.9间接
npm@logtape/file2.2.2间接
npm@logtape/filecatalog:间接
npm@mermaid-js/mermaid-mindmap9.3.0间接
npm@mermaid-js/parser1.2.0间接
npm@napi-rs/wasm-runtime1.0.1间接
npm@oxc-project/runtime0.77.3间接
npm@oxc-project/types0.77.3间接
npm@poppinss/colors4.1.6间接
npm@poppinss/dumper0.6.5间接
npm@poppinss/exception1.2.3间接
npm@quansync/fs0.1.3间接
npm@rolldown/binding-android-arm641.0.0-beta.29间接
npm@rolldown/binding-darwin-arm641.0.0-beta.29间接
npm@rolldown/binding-darwin-x641.0.0-beta.29间接
npm@rolldown/binding-freebsd-x641.0.0-beta.29间接
npm@rolldown/binding-linux-arm-gnueabihf1.0.0-beta.29间接
npm@rolldown/binding-linux-arm64-gnu1.0.0-beta.29间接
npm@rolldown/binding-linux-arm64-musl1.0.0-beta.29间接
npm@rolldown/binding-linux-arm64-ohos1.0.0-beta.29间接
npm@rolldown/binding-linux-x64-gnu1.0.0-beta.29间接
npm@rolldown/binding-linux-x64-musl1.0.0-beta.29间接
npm@rolldown/binding-wasm32-wasi1.0.0-beta.29间接
npm@rolldown/binding-win32-arm64-msvc1.0.0-beta.29间接
npm@rolldown/binding-win32-ia32-msvc1.0.0-beta.29间接
npm@rolldown/binding-win32-x64-msvc1.0.0-beta.29间接
npm@rolldown/pluginutils1.0.0-beta.29间接
npm@rolldown/pluginutils1.0.1间接
npm@rollup/rollup-android-arm-eabi4.46.3间接
npm@rollup/rollup-android-arm644.46.3间接
npm@rollup/rollup-darwin-arm644.46.3间接
npm@rollup/rollup-darwin-x644.46.3间接
npm@rollup/rollup-freebsd-arm644.46.3间接
npm@rollup/rollup-freebsd-x644.46.3间接
npm@rollup/rollup-linux-arm-gnueabihf4.46.3间接
npm@rollup/rollup-linux-arm-musleabihf4.46.3间接
npm@rollup/rollup-linux-arm64-gnu4.46.3间接
npm@rollup/rollup-linux-arm64-musl4.46.3间接
npm@rollup/rollup-linux-loongarch64-gnu4.46.3间接
npm@rollup/rollup-linux-ppc64-gnu4.46.3间接
npm@rollup/rollup-linux-riscv64-gnu4.46.3间接
npm@rollup/rollup-linux-riscv64-musl4.46.3间接
npm@rollup/rollup-linux-s390x-gnu4.46.3间接
npm@rollup/rollup-linux-x64-gnu4.46.3间接
npm@rollup/rollup-linux-x64-musl4.46.3间接
npm@rollup/rollup-win32-arm64-msvc4.46.3间接
npm@rollup/rollup-win32-ia32-msvc4.46.3间接
npm@rollup/rollup-win32-x64-msvc4.46.3间接
npm@shikijs/core3.20.0间接
npm@shikijs/core3.23.0间接
npm@shikijs/engine-javascript3.20.0间接
npm@shikijs/engine-javascript3.23.0间接
npm@shikijs/engine-oniguruma3.20.0间接
npm@shikijs/engine-oniguruma3.23.0间接
npm@shikijs/langs3.20.0间接
npm@shikijs/langs3.23.0间接
npm@shikijs/themes3.20.0间接
npm@shikijs/themes3.23.0间接
npm@shikijs/transformers3.23.0间接
npm@shikijs/twoslash3.20.0间接
npm@shikijs/types3.20.0间接
npm@shikijs/types3.23.0间接
npm@shikijs/vitepress-twoslash3.20.0间接
npm@shikijs/vitepress-twoslash^3.20.0间接
npm@shikijs/vscode-textmate10.0.2间接
npm@sindresorhus/is7.2.0间接
npm@speed-highlight/core1.2.15间接
npm@standard-schema/spec1.1.0间接
npm@standard-schema/speccatalog:间接
npm@tybys/wasm-util0.10.0间接
npm@types/d37.4.3间接
npm@types/d3-array3.2.2间接
npm@types/d3-axis3.0.6间接
npm@types/d3-brush3.0.6间接
npm@types/d3-chord3.0.6间接
npm@types/d3-color3.1.3间接
npm@types/d3-contour3.0.6间接
npm@types/d3-delaunay6.0.4间接
npm@types/d3-dispatch3.0.7间接
npm@types/d3-drag3.0.7间接
npm@types/d3-dsv3.0.7间接
npm@types/d3-ease3.0.2间接
npm@types/d3-fetch3.0.7间接
npm@types/d3-force3.0.10间接
npm@types/d3-format3.0.4间接
npm@types/d3-geo3.1.0间接
npm@types/d3-hierarchy3.1.7间接
npm@types/d3-interpolate3.0.4间接
npm@types/d3-path3.1.1间接
npm@types/d3-polygon3.0.2间接
npm@types/d3-quadtree3.0.6间接
npm@types/d3-random3.0.3间接
npm@types/d3-scale4.0.9间接
npm@types/d3-scale-chromatic3.1.0间接
npm@types/d3-selection3.0.11间接
npm@types/d3-shape3.1.8间接
npm@types/d3-time3.0.4间接
npm@types/d3-time-format4.0.3间接
npm@types/d3-timer3.0.2间接
npm@types/d3-transition3.0.9间接
npm@types/d3-zoom3.0.8间接
npm@types/debug4.1.12间接
npm@types/estree1.0.8间接
npm@types/geojson7946.0.16间接
npm@types/hast3.0.4间接
npm@types/linkify-it5.0.0间接
npm@types/markdown-it14.1.2间接
npm@types/mdast4.0.4间接
npm@types/mdurl2.0.0间接
npm@types/ms2.1.0间接
npm@types/node20.19.41间接
npm@types/node24.12.4间接
npm@types/node^20.19.9间接
npm@types/nodecatalog:间接
npm@types/trusted-types2.0.7间接
npm@types/unist3.0.3间接
npm@types/web-bluetooth0.0.21间接
npm@typescript/vfs1.6.1间接
npm@ungap/structured-clone1.3.0间接
npm@upsetjs/venn.js2.0.0间接
npm@vitejs/plugin-vue6.0.7间接
npm@volar/language-core2.4.22间接
npm@volar/source-map2.4.22间接
npm@vue/compiler-core3.5.38间接
npm@vue/compiler-dom3.5.38间接
npm@vue/compiler-sfc3.5.38间接
npm@vue/compiler-ssr3.5.38间接
npm@vue/compiler-vue22.7.16间接
npm@vue/devtools-api8.0.5间接
npm@vue/devtools-kit8.0.5间接
npm@vue/devtools-shared8.0.5间接
npm@vue/language-core3.0.5间接
npm@vue/reactivity3.5.38间接
npm@vue/runtime-core3.5.38间接
npm@vue/runtime-dom3.5.38间接
npm@vue/server-renderer3.5.38间接
npm@vue/shared3.5.38间接
npm@vueuse/core14.3.0间接
npm@vueuse/integrations14.3.0间接
npm@vueuse/metadata14.3.0间接
npm@vueuse/shared14.3.0间接
npmabort-controller3.0.0间接
npmacorn8.15.0间接
npmalien-signals2.0.7间接
npmansi-regex5.0.1间接
npmansi-styles4.3.0间接
npmansis4.1.0间接
npmargparse1.0.10间接
npmargparse2.0.1间接
npmarkregex0.0.5间接
npmarktype2.1.29间接
npmarktype^2.1.29间接
npmast-kit2.1.1间接
npmasync-lock1.4.1间接
npmavailable-typed-arrays1.0.7间接
npmbail2.0.2间接
npmbase64-js1.5.1间接
npmbirpc2.9.0间接
npmblake3-wasm2.1.5间接
npmbuffer6.0.3间接
npmbyte-size9.0.1间接
npmcac6.7.14间接
npmcall-bind1.0.8间接
npmcall-bind-apply-helpers1.0.2间接
npmcall-bound1.0.4间接
npmccount2.0.1间接
npmcharacter-entities2.0.2间接
npmcharacter-entities-html42.1.0间接
npmcharacter-entities-legacy3.0.0间接
npmchardet2.1.1间接
npmchokidar4.0.3间接
npmclean-git-ref2.0.1间接
npmcli-width4.1.0间接
npmcliui8.0.1间接
npmcolor-convert2.0.1间接
npmcolor-name1.1.4间接
npmcomma-separated-tokens2.0.3间接
npmcommander7.2.0间接
npmcommander8.3.0间接
npmconfbox0.1.8间接
npmconfbox0.2.2间接
npmcookie1.1.1间接
npmcopy-anything3.0.5间接
npmcose-base1.0.3间接
npmcose-base2.2.0间接
npmcrc-321.2.2间接
npmcsstype3.2.3间接
npmcytoscape3.34.0间接
npmcytoscape-cose-bilkent4.1.0间接
npmcytoscape-fcose2.2.0间接
npmd37.9.0间接
npmd3-array2.12.1间接
npmd3-array3.2.4间接
npmd3-axis3.0.0间接
npmd3-brush3.0.0间接
npmd3-chord3.0.1间接
npmd3-color3.1.0间接
npmd3-contour4.0.2间接
npmd3-delaunay6.0.4间接
npmd3-dispatch3.0.1间接
npmd3-drag3.0.0间接
npmd3-dsv3.0.1间接
npmd3-ease3.0.1间接
npmd3-fetch3.0.1间接
npmd3-force3.0.0间接
npmd3-format3.1.2间接
npmd3-geo3.1.1间接
npmd3-hierarchy3.1.2间接
npmd3-interpolate3.0.1间接
npmd3-path1.0.9间接
npmd3-path3.1.0间接
npmd3-polygon3.0.1间接
npmd3-quadtree3.0.1间接
npmd3-random3.0.1间接
npmd3-sankey0.12.3间接
npmd3-scale4.0.2间接
npmd3-scale-chromatic3.1.0间接
npmd3-selection3.0.0间接
npmd3-shape1.3.7间接
npmd3-shape3.2.0间接
npmd3-time3.1.0间接
npmd3-time-format4.1.0间接
npmd3-timer3.0.1间接
npmd3-transition3.0.1间接
npmd3-zoom3.0.0间接
npmdagre-d3-es7.0.14间接
npmdayjs1.11.21间接
npmde-indent1.0.2间接
npmdebug4.4.1间接
npmdecode-named-character-reference1.2.0间接
npmdecompress-response6.0.0间接
npmdefine-data-property1.1.4间接
npmdefu6.1.4间接
npmdelaunator5.1.0间接
npmdequal2.0.3间接
npmdetect-libc2.1.2间接
npmdevlop1.1.0间接
npmdiff8.0.2间接
npmdiff30.0.3间接
npmdompurify3.4.11间接
npmdts-resolver2.1.1间接
npmdunder-proto1.0.1间接
npmemoji-regex8.0.0间接
npmempathic2.0.0间接
npmentities4.5.0间接
npmentities7.0.1间接
npmerror-stack-parser-es1.0.5间接
npmes-define-property1.0.1间接
npmes-errors1.3.0间接
npmes-git0.4.0间接
npmes-git^0.4.0间接
npmes-git-android-arm-eabi0.4.0间接
npmes-git-android-arm640.4.0间接
npmes-git-darwin-arm640.4.0间接
npmes-git-darwin-x640.4.0间接
npmes-git-linux-arm64-gnu0.4.0间接
npmes-git-linux-arm64-musl0.4.0间接
npmes-git-linux-x64-gnu0.4.0间接
npmes-git-linux-x64-musl0.4.0间接
npmes-git-win32-arm64-msvc0.4.0间接
npmes-git-win32-x64-msvc0.4.0间接
npmes-object-atoms1.1.1间接
npmes-toolkit1.49.0间接
npmesbuild0.27.3间接
npmescalade3.2.0间接
npmescape-string-regexp5.0.0间接
npmesprima4.0.1间接
npmestree-walker2.0.2间接
npmevent-target-shim5.0.1间接
npmevents3.3.0间接
npmexsolve1.0.7间接
npmextend3.0.2间接
npmextend-shallow2.0.1间接
npmfast-check4.7.0间接
npmfast-checkcatalog:间接
npmfast-string-truncated-width3.0.3间接
npmfast-string-width3.0.2间接
npmfast-wrap-ansi0.2.0间接
npmfault2.0.1间接
npmfdir6.5.0间接
npmfloating-vue5.2.2间接
npmfocus-trap8.2.1间接
npmfor-each0.3.5间接
npmformat0.2.2间接
npmfsevents2.3.3间接
npmfunction-bind1.1.2间接
npmget-caller-file2.0.5间接
npmget-intrinsic1.3.0间接
npmget-proto1.0.1间接
npmget-tsconfig4.10.1间接
npmglobals15.15.0间接
npmgopd1.2.0间接
npmgray-matter4.0.3间接
npmhachure-fill0.5.2间接
npmhas-property-descriptors1.0.2间接
npmhas-symbols1.1.0间接
npmhas-tostringtag1.0.2间接
npmhasown2.0.2间接
npmhast-util-to-html9.0.5间接
npmhast-util-whitespace3.0.0间接
npmhe1.2.0间接
npmhookable5.5.3间接
npmhtml-void-elements3.0.0间接
npmiconv-lite0.6.3间接
npmiconv-lite0.7.2间接
npmieee7541.2.1间接
npmignore5.3.2间接
npmimport-meta-resolve4.2.0间接
npminherits2.0.4间接
npminternmap1.0.1间接
npminternmap2.0.3间接
npmis-callable1.2.7间接
npmis-extendable0.1.1间接
npmis-fullwidth-code-point3.0.0间接
npmis-plain-obj4.1.0间接
npmis-typed-array1.1.15间接
npmis-what4.1.16间接
npmisarray2.0.5间接
npmjiti2.5.1间接
npmjs-yaml3.14.1间接
npmjsbi4.3.2间接
npmjsesc3.1.0间接
npmkatex0.16.47间接
npmkhroma2.1.0间接
npmkind-of6.0.3间接
npmkleur4.1.5间接
npmkolorist1.8.0间接
npmlayout-base1.0.2间接
npmlayout-base2.0.1间接
npmlinkify-it5.0.0间接
npmlocal-pkg1.1.2间接
npmlodash-es4.18.1间接
npmlongest-streak3.1.0间接
npmlz-string1.5.0间接
npmmagic-string0.30.21间接
npmmark.js8.11.1间接
npmmarkdown-it14.1.0间接
npmmarkdown-it-deflist3.0.0间接
npmmarkdown-it-deflist^3.0.0间接
npmmarkdown-it-footnote4.0.0间接
npmmarkdown-it-footnote^4.0.0间接
npmmarkdown-table3.0.4间接
npmmarkdown-title1.0.2间接
npmmarked16.4.2间接
npmmath-intrinsics1.1.0间接
npmmdast-util-find-and-replace3.0.2间接
npmmdast-util-from-markdown2.0.2间接
npmmdast-util-frontmatter2.0.1间接
npmmdast-util-gfm3.1.0间接
npmmdast-util-gfm-autolink-literal2.0.1间接
npmmdast-util-gfm-footnote2.1.0间接
npmmdast-util-gfm-strikethrough2.0.0间接
npmmdast-util-gfm-table2.0.0间接
npmmdast-util-gfm-task-list-item2.0.0间接
npmmdast-util-phrasing4.1.0间接
npmmdast-util-to-hast13.2.1间接
npmmdast-util-to-markdown2.1.2间接
npmmdast-util-to-string4.0.0间接
npmmdurl2.0.0间接
npmmermaid11.16.0间接
npmmermaid^11.16.0间接
npmmicromark4.0.2间接
npmmicromark-core-commonmark2.0.3间接
npmmicromark-extension-frontmatter2.0.0间接
npmmicromark-factory-destination2.0.1间接
npmmicromark-factory-label2.0.1间接
npmmicromark-factory-space2.0.1间接
npmmicromark-factory-title2.0.1间接
npmmicromark-factory-whitespace2.0.1间接
npmmicromark-util-character2.1.1间接
npmmicromark-util-chunked2.0.1间接
npmmicromark-util-classify-character2.0.1间接
npmmicromark-util-combine-extensions2.0.1间接
npmmicromark-util-decode-numeric-character-reference2.0.2间接
npmmicromark-util-decode-string2.0.1间接
npmmicromark-util-encode2.0.1间接
npmmicromark-util-html-tag-name2.0.1间接
npmmicromark-util-normalize-identifier2.0.1间接
npmmicromark-util-resolve-all2.0.1间接
npmmicromark-util-sanitize-uri2.0.1间接
npmmicromark-util-subtokenize2.1.0间接
npmmicromark-util-symbol2.0.1间接
npmmicromark-util-types2.0.2间接
npmmillify6.1.0间接
npmmimic-response3.1.0间接
npmminiflare4.20260511.0间接
npmminimatch10.0.3间接
npmminimist1.2.8间接
npmminimisted2.0.1间接
npmminisearch7.2.0间接
npmmitt3.0.1间接
npmmlly1.7.4间接
npmms2.1.3间接
npmmuggle-string0.4.1间接
npmmute-stream3.0.0间接
npmnanoid3.3.14间接
npmnon-layered-tidy-tree-layout2.0.2间接
npmohash2.0.11间接
npmonce1.4.0间接
npmoniguruma-parser0.12.1间接
npmoniguruma-to-es4.3.4间接
npmpackage-manager-detector1.3.0间接
npmpako1.0.11间接
npmpath-browserify1.0.1间接
npmpath-data-parser0.1.0间接
npmpath-to-regexp6.3.0间接
npmpath-to-regexp8.2.0间接
npmpathe2.0.3间接
npmperfect-debounce2.0.0间接
npmpicocolors1.1.1间接
npmpicomatch4.0.3间接
npmpify4.0.1间接
npmpkg-types1.3.1间接
npmpkg-types2.3.0间接
npmpoints-on-curve0.2.0间接
npmpoints-on-path0.2.1间接
npmpossible-typed-array-names1.1.0间接
npmpostcss8.5.15间接
npmprocess0.11.10间接
npmproperty-information7.1.0间接
npmpunycode.js2.3.1间接
npmpure-rand8.4.0间接
npmquansync0.2.11间接
npmreadable-stream4.7.0间接
npmreaddirp4.1.2间接
npmregex6.0.1间接
npmregex-recursion6.0.2间接
npmregex-utilities2.3.0间接
npmremark15.0.1间接
npmremark-frontmatter5.0.0间接
npmremark-parse11.0.0间接
npmremark-stringify11.0.0间接
npmrequire-directory2.1.1间接
npmresolve-pkg-maps1.0.0间接
npmrfdc1.4.1间接
npmrobust-predicates3.0.3间接
npmrolldown1.0.0-beta.29间接
npmrolldown-plugin-dts0.14.1间接
npmrollup4.46.3间接
npmroughjs4.6.6间接
npmrw1.3.3间接
npmsafe-buffer5.2.1间接
npmsafer-buffer2.1.2间接
npmsection-matter1.0.0间接
npmsemver7.8.0间接
npmset-function-length1.2.2间接
npmsha.js2.4.12间接
npmsharp0.34.5间接
npmshiki3.20.0间接
npmshiki3.23.0间接
npmsignal-exit4.1.0间接
npmsimple-concat1.0.1间接
npmsimple-get4.0.1间接
npmsisteransi1.0.5间接
npmsource-map-js1.2.1间接
npmspace-separated-tokens2.0.2间接
npmspeakingurl14.0.1间接
npmsprintf-js1.0.3间接
npmstring-width4.2.3间接
npmstring_decoder1.3.0间接
npmstringify-entities4.0.4间接
npmstrip-ansi6.0.1间接
npmstrip-bom-string1.0.0间接
npmstylis4.4.0间接
npmsuperjson2.2.2间接
npmsupports-color10.2.2间接
npmtabbable6.5.0间接
npmtinyexec1.0.1间接
npmtinyglobby0.2.15间接
npmto-buffer1.2.2间接
npmtokenx1.1.0间接
npmtrim-lines3.0.1间接
npmtrough2.2.0间接
npmts-dedent2.3.0间接
npmtsdown0.13.0间接
npmtsdowncatalog:间接
npmtslib2.8.1间接
npmtsx4.21.0间接
npmtsxcatalog:间接
npmtwoslash0.3.4间接
npmtwoslash-protocol0.3.4间接
npmtwoslash-vue0.3.4间接
npmtyped-array-buffer1.0.3间接
npmtypescript5.8.3间接
npmtypescriptcatalog:间接
npmuc.micro2.1.0间接
npmufo1.6.1间接
npmunconfig7.3.2间接
npmundici7.24.8间接
npmundici-types6.21.0间接
npmundici-types7.16.0间接
npmunenv2.0.0-rc.24间接
npmunified11.0.5间接
npmunist-util-is6.0.0间接
npmunist-util-position5.0.0间接
npmunist-util-remove4.0.0间接
npmunist-util-stringify-position4.0.0间接
npmunist-util-visit5.0.0间接
npmunist-util-visit-parents6.0.1间接
npmuuid14.0.1间接
npmvalibot1.2.0间接
npmvalibotcatalog:间接
npmvfile6.0.3间接
npmvfile-message4.0.3间接
npmvite7.3.5间接
npmvitepress2.0.0-alpha.17间接
npmvitepress^2.0.0-alpha.17间接
npmvitepress-plugin-group-icons1.6.3间接
npmvitepress-plugin-group-icons^1.6.3间接
npmvitepress-plugin-llms1.7.3间接
npmvitepress-plugin-llms^1.7.3间接
npmvitepress-plugin-mermaid2.0.17间接
npmvitepress-plugin-mermaid^2.0.17间接
npmvue3.5.38间接
npmvue-resize2.0.0-alpha.1间接
npmwhich-typed-array1.1.19间接
npmworkerd1.20260511.1间接
npmwrangler4.91.0间接
npmwrangler^4间接
npmwrap-ansi7.0.0间接
npmwrappy1.0.2间接
npmws8.18.0间接
npmy18n5.0.8间接
npmyaml2.8.2间接
npmyaml^2.8.2间接
npmyargs17.7.2间接
npmyargs-parser21.1.1间接
npmyouch4.1.0-beta.10间接
npmyouch-core0.3.3间接
npmzod4.1.12间接
npmzodcatalog:间接
npmzwitch2.0.4间接
依赖安全公告 16

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

软件包版本关系严重程度公告数修复版本
rollup4.46.3间接严重14.59.0
@isaacs/brace-expansion5.0.0间接15.0.1
defu6.1.4间接16.1.5
js-yaml3.14.1间接34.3.0
linkify-it5.0.0间接15.0.1
minimatch10.0.3间接310.2.3
path-to-regexp8.2.0间接28.4.0
picomatch4.0.3间接24.0.4
undici7.24.8间接78.5.0
ws8.18.0间接28.21.0
isomorphic-gitcatalog:直接11.8.2
diff8.0.2间接18.0.3
markdown-it14.1.0间接214.2.0
yaml2.8.2间接12.8.3
zodcatalog:间接13.22.3
esbuild0.27.3间接10.28.1

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

原始 JSON 报告 机器可读
{
  "data": {
    "repo": {
      "topics": [
        "cli",
        "getopt",
        "parser-combinators",
        "typescript"
      ],
      "is_fork": false,
      "size_kb": 13484,
      "has_wiki": false,
      "homepage": "http://optique.dev/",
      "languages": {
        "TypeScript": 7680813
      },
      "pushed_at": "2026-07-21T05:40:46Z",
      "created_at": "2025-08-19T05:34:10Z",
      "owner_type": "User",
      "updated_at": "2026-07-21T14:56:17Z",
      "description": "Type-safe combinatorial CLI parser for TypeScript",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "MIT",
      "default_branch": "main",
      "license_spdx_raw": "MIT",
      "primary_language": "TypeScript",
      "significant_languages": [
        "TypeScript"
      ]
    },
    "owner": {
      "blog": "https://hongminhee.org/",
      "name": "Hong Minhee (洪 民憙)",
      "type": "User",
      "login": "dahlia",
      "company": "@fedify-dev",
      "location": "Seoul, Republic of Korea",
      "followers": 1350,
      "avatar_url": "https://avatars.githubusercontent.com/u/12431?v=4",
      "created_at": "2008-06-03T13:54:07Z",
      "is_verified": null,
      "public_repos": 274,
      "account_age_days": 6622
    },
    "license": {
      "state": "standard",
      "spdx_id": "MIT",
      "raw_spdx": "MIT",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "1.2.0",
          "kind": "minor",
          "published_at": "2026-07-21T05:39:53Z"
        },
        {
          "tag": "1.1.1",
          "kind": "patch",
          "published_at": "2026-06-29T03:48:53Z"
        },
        {
          "tag": "1.1.0",
          "kind": "minor",
          "published_at": "2026-06-16T03:00:52Z"
        },
        {
          "tag": "1.0.3",
          "kind": "patch",
          "published_at": "2026-06-10T09:39:11Z"
        },
        {
          "tag": "1.0.2",
          "kind": "patch",
          "published_at": "2026-04-24T08:35:05Z"
        },
        {
          "tag": "1.0.1",
          "kind": "patch",
          "published_at": "2026-04-22T14:53:54Z"
        },
        {
          "tag": "1.0.0",
          "kind": "major",
          "published_at": "2026-04-14T14:40:04Z"
        },
        {
          "tag": "0.10.7",
          "kind": "patch",
          "published_at": "2026-03-03T22:31:33Z"
        },
        {
          "tag": "0.10.6",
          "kind": "patch",
          "published_at": "2026-02-19T22:03:07Z"
        },
        {
          "tag": "0.10.5",
          "kind": "patch",
          "published_at": "2026-02-19T18:20:01Z"
        },
        {
          "tag": "0.10.4",
          "kind": "patch",
          "published_at": "2026-02-19T08:15:07Z"
        },
        {
          "tag": "0.10.3",
          "kind": "patch",
          "published_at": "2026-02-18T09:15:52Z"
        },
        {
          "tag": "0.10.2",
          "kind": "patch",
          "published_at": "2026-02-17T16:49:54Z"
        },
        {
          "tag": "0.10.1",
          "kind": "patch",
          "published_at": "2026-02-16T20:03:46Z"
        },
        {
          "tag": "0.10.0",
          "kind": "minor",
          "published_at": "2026-02-15T13:23:47Z"
        },
        {
          "tag": "0.9.11",
          "kind": "patch",
          "published_at": "2026-02-19T18:17:27Z"
        },
        {
          "tag": "0.9.10",
          "kind": "patch",
          "published_at": "2026-02-19T08:11:36Z"
        },
        {
          "tag": "0.9.9",
          "kind": "patch",
          "published_at": "2026-02-18T09:09:54Z"
        },
        {
          "tag": "0.9.8",
          "kind": "patch",
          "published_at": "2026-02-17T16:44:26Z"
        },
        {
          "tag": "0.9.7",
          "kind": "patch",
          "published_at": "2026-02-16T20:01:12Z"
        },
        {
          "tag": "0.9.6",
          "kind": "patch",
          "published_at": "2026-02-14T11:48:53Z"
        },
        {
          "tag": "0.9.5",
          "kind": "patch",
          "published_at": "2026-02-13T09:32:56Z"
        },
        {
          "tag": "0.9.4",
          "kind": "patch",
          "published_at": "2026-02-12T11:51:47Z"
        },
        {
          "tag": "0.9.3",
          "kind": "patch",
          "published_at": "2026-02-12T10:07:46Z"
        },
        {
          "tag": "0.9.2",
          "kind": "patch",
          "published_at": "2026-01-30T05:49:40Z"
        },
        {
          "tag": "0.9.1",
          "kind": "patch",
          "published_at": "2026-01-19T12:49:58Z"
        },
        {
          "tag": "0.9.0",
          "kind": "minor",
          "published_at": "2026-01-05T16:43:51Z"
        },
        {
          "tag": "0.8.17",
          "kind": "patch",
          "published_at": "2026-02-19T18:09:59Z"
        },
        {
          "tag": "0.8.16",
          "kind": "patch",
          "published_at": "2026-02-19T08:08:50Z"
        },
        {
          "tag": "0.8.15",
          "kind": "patch",
          "published_at": "2026-02-18T08:50:15Z"
        },
        {
          "tag": "0.8.14",
          "kind": "patch",
          "published_at": "2026-02-17T16:42:11Z"
        },
        {
          "tag": "0.8.13",
          "kind": "patch",
          "published_at": "2026-02-16T19:58:58Z"
        },
        {
          "tag": "0.8.12",
          "kind": "patch",
          "published_at": "2026-02-14T11:41:25Z"
        },
        {
          "tag": "0.8.11",
          "kind": "patch",
          "published_at": "2026-02-13T09:24:08Z"
        },
        {
          "tag": "0.8.10",
          "kind": "patch",
          "published_at": "2026-02-12T11:46:17Z"
        },
        {
          "tag": "0.8.9",
          "kind": "patch",
          "published_at": "2026-02-12T10:00:37Z"
        },
        {
          "tag": "0.8.8",
          "kind": "patch",
          "published_at": "2026-01-19T12:42:39Z"
        },
        {
          "tag": "0.8.7",
          "kind": "patch",
          "published_at": "2026-01-05T09:53:22Z"
        },
        {
          "tag": "0.8.6",
          "kind": "patch",
          "published_at": "2026-01-01T05:54:19Z"
        },
        {
          "tag": "0.8.5",
          "kind": "patch",
          "published_at": "2025-12-30T08:43:48Z"
        },
        {
          "tag": "0.8.4",
          "kind": "patch",
          "published_at": "2025-12-30T06:34:07Z"
        },
        {
          "tag": "0.8.3",
          "kind": "patch",
          "published_at": "2025-12-29T15:57:45Z"
        },
        {
          "tag": "0.8.2",
          "kind": "patch",
          "published_at": "2025-12-21T05:14:06Z"
        },
        {
          "tag": "0.8.1",
          "kind": "patch",
          "published_at": "2025-12-16T13:14:17Z"
        },
        {
          "tag": "0.8.0",
          "kind": "minor",
          "published_at": "2025-12-09T04:23:39Z"
        },
        {
          "tag": "0.7.19",
          "kind": "patch",
          "published_at": "2026-02-19T18:06:55Z"
        },
        {
          "tag": "0.7.18",
          "kind": "patch",
          "published_at": "2026-02-19T08:05:26Z"
        },
        {
          "tag": "0.7.17",
          "kind": "patch",
          "published_at": "2026-02-18T08:39:16Z"
        },
        {
          "tag": "0.7.16",
          "kind": "patch",
          "published_at": "2026-02-17T16:36:44Z"
        },
        {
          "tag": "0.7.15",
          "kind": "patch",
          "published_at": "2026-02-16T19:57:39Z"
        },
        {
          "tag": "0.7.14",
          "kind": "patch",
          "published_at": "2026-02-14T11:40:02Z"
        },
        {
          "tag": "0.7.13",
          "kind": "patch",
          "published_at": "2026-02-13T09:19:18Z"
        },
        {
          "tag": "0.7.12",
          "kind": "patch",
          "published_at": "2026-02-12T11:44:14Z"
        },
        {
          "tag": "0.7.11",
          "kind": "patch",
          "published_at": "2026-02-12T09:55:51Z"
        },
        {
          "tag": "0.7.10",
          "kind": "patch",
          "published_at": "2026-01-19T12:39:29Z"
        },
        {
          "tag": "0.7.9",
          "kind": "patch",
          "published_at": "2026-01-05T09:51:27Z"
        },
        {
          "tag": "0.7.8",
          "kind": "patch",
          "published_at": "2026-01-01T05:46:50Z"
        },
        {
          "tag": "0.7.7",
          "kind": "patch",
          "published_at": "2025-12-30T08:39:00Z"
        },
        {
          "tag": "0.7.6",
          "kind": "patch",
          "published_at": "2025-12-30T06:28:58Z"
        },
        {
          "tag": "0.7.5",
          "kind": "patch",
          "published_at": "2025-12-29T15:55:41Z"
        },
        {
          "tag": "0.7.4",
          "kind": "patch",
          "published_at": "2025-12-21T05:11:32Z"
        },
        {
          "tag": "0.7.3",
          "kind": "patch",
          "published_at": "2025-12-16T13:09:36Z"
        },
        {
          "tag": "0.7.2",
          "kind": "patch",
          "published_at": "2025-12-02T10:47:10Z"
        },
        {
          "tag": "0.7.1",
          "kind": "patch",
          "published_at": "2025-12-01T17:02:30Z"
        },
        {
          "tag": "0.7.0",
          "kind": "minor",
          "published_at": "2025-11-25T14:46:39Z"
        },
        {
          "tag": "0.6.11",
          "kind": "patch",
          "published_at": "2026-01-05T09:49:13Z"
        },
        {
          "tag": "0.6.10",
          "kind": "patch",
          "published_at": "2026-01-01T05:41:54Z"
        },
        {
          "tag": "0.6.9",
          "kind": "patch",
          "published_at": "2025-12-30T08:32:43Z"
        },
        {
          "tag": "0.6.8",
          "kind": "patch",
          "published_at": "2025-12-30T06:25:56Z"
        },
        {
          "tag": "0.6.7",
          "kind": "patch",
          "published_at": "2025-12-29T15:53:16Z"
        },
        {
          "tag": "0.6.6",
          "kind": "patch",
          "published_at": "2025-12-21T05:08:32Z"
        },
        {
          "tag": "0.6.5",
          "kind": "patch",
          "published_at": "2025-12-02T10:41:44Z"
        },
        {
          "tag": "0.6.4",
          "kind": "patch",
          "published_at": "2025-12-01T16:57:35Z"
        },
        {
          "tag": "0.6.3",
          "kind": "patch",
          "published_at": "2025-11-25T12:27:28Z"
        },
        {
          "tag": "0.6.2",
          "kind": "patch",
          "published_at": "2025-10-27T08:56:57Z"
        },
        {
          "tag": "0.6.1",
          "kind": "patch",
          "published_at": "2025-10-08T10:07:45Z"
        },
        {
          "tag": "0.6.0",
          "kind": "minor",
          "published_at": "2025-10-02T10:32:27Z"
        },
        {
          "tag": "0.5.3",
          "kind": "patch",
          "published_at": "2025-10-27T08:52:22Z"
        },
        {
          "tag": "0.5.2",
          "kind": "patch",
          "published_at": "2025-10-08T10:04:55Z"
        },
        {
          "tag": "0.5.1",
          "kind": "patch",
          "published_at": "2025-09-26T04:43:22Z"
        },
        {
          "tag": "0.5.0",
          "kind": "minor",
          "published_at": "2025-09-23T07:40:08Z"
        },
        {
          "tag": "0.4.4",
          "kind": "patch",
          "published_at": "2025-09-18T02:49:36Z"
        },
        {
          "tag": "0.4.3",
          "kind": "patch",
          "published_at": "2025-09-16T07:54:55Z"
        },
        {
          "tag": "0.4.2",
          "kind": "patch",
          "published_at": "2025-09-09T15:04:47Z"
        },
        {
          "tag": "0.4.1",
          "kind": "patch",
          "published_at": "2025-09-08T06:45:28Z"
        },
        {
          "tag": "0.4.0",
          "kind": "minor",
          "published_at": "2025-09-05T15:18:38Z"
        },
        {
          "tag": "0.3.2",
          "kind": "patch",
          "published_at": "2025-09-09T15:02:23Z"
        },
        {
          "tag": "0.3.1",
          "kind": "patch",
          "published_at": "2025-09-08T06:42:30Z"
        },
        {
          "tag": "0.3.0",
          "kind": "minor",
          "published_at": "2025-08-29T12:14:15Z"
        },
        {
          "tag": "0.2.1",
          "kind": "patch",
          "published_at": "2025-09-09T14:59:54Z"
        },
        {
          "tag": "0.2.0",
          "kind": "minor",
          "published_at": "2025-08-22T00:52:41Z"
        },
        {
          "tag": "0.1.2",
          "kind": "patch",
          "published_at": "2025-09-09T14:57:40Z"
        },
        {
          "tag": "0.1.1",
          "kind": "patch",
          "published_at": "2025-08-21T05:55:41Z"
        },
        {
          "tag": "0.1.0",
          "kind": "minor",
          "published_at": "2025-08-21T02:31:17Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "4b4f49a4e93fe89710d0324444f8b5e69eddeee1",
          "body": "[ci skip]",
          "is_bot": false,
          "headline": "Version bump",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-07-21T05:40:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "61de61c0699bef2fdbf22f90911e9295ed2ac904",
          "body": "Also introduce Sacho, a changelog manager.\n\nhttps://sacho.dev/",
          "is_bot": false,
          "headline": "Release 1.2.0",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-07-21T05:39:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3840be9c2ab886298e0509911a60f396269b2818",
          "body": "Type lifecycle hook resources",
          "is_bot": false,
          "headline": "Merge pull request #876 from dahlia/hook-types",
          "author_name": "Hong Minhee (洪 民憙)",
          "author_login": "dahlia",
          "committed_at": "2026-07-20T08:14:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "36ffc4e162d1d06f7bdb2245232a57c891c9b26d",
          "body": "The program context is a fallback only for command hook scopes without their own beforeEach hook. Starting a scope with an empty context when beforeEach exists prevents a rejected command preflight from exposing the program resource to command onError.\n\nhttps://github.com/dahlia/optique/pull/876#discussion_r3612746267\n\nAssisted-by: Codex:gpt-5.6-sol",
          "is_bot": false,
          "headline": "Isolate failed command preflight context",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-07-20T08:02:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c7fe56fd29c16187b0e5c7cf3d4542c672861b0d",
          "body": "These APIs require structured option or definition objects, but arrays could\nreach later validation and produce misleading errors or even behave like an\nempty module map. Reject arrays and other non-objects at the boundary with the\nsame terse diagnostics used elsewhere in the repository.\n\nhttps://gi\n[…]\nique/pull/876#discussion_r3612731818\nhttps://github.com/dahlia/optique/pull/876#discussion_r3612731826\nhttps://github.com/dahlia/optique/pull/876#discussion_r3612731829\n\nAssisted-by: Codex:gpt-5.6-sol",
          "is_bot": false,
          "headline": "Reject arrays for object inputs",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-07-20T08:00:05Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "26079d6bdd72ad6796ace8b073f49162924ee147",
          "body": "Command-level afterEach and onError hooks run inside the program hook scope.\nWhen the command has no beforeEach hook of its own, reuse the program context\ninstead of replacing it with an empty object so those hooks observe the same\nresource as the handler.\n\nAdd regressions for both success and failure paths, and correct the cookbook's\nem dash spacing.\n\nhttps://github.com/dahlia/optique/pull/876#pullrequestreview-4732969481\n\nAssisted-by: Codex:gpt-5.6-sol",
          "is_bot": false,
          "headline": "Preserve program hook context",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-07-20T07:48:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f7f47e8be61c393aa9dcebfe2e320dace77fced5",
          "body": "Static commands without their own beforeEach hook receive the program-level\ncontext at runtime, so accepting an erased handler resource type could pair a\nhandler with a context it cannot safely consume. Preserve that relationship\nthrough runProgram's static command and command-entry paths while allo\n[…]\nry mismatches with compile-time\nregressions, and document how program and command resources interact.\n\nhttps://github.com/dahlia/optique/pull/876#discussion_r3612440534\n\nAssisted-by: Codex:gpt-5.6-sol",
          "is_bot": false,
          "headline": "Keep static hook resources type-safe",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-07-20T07:37:08Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "0f3b5a2e7d40ec6d7914580e941b354b1a670956",
          "body": "Thread the caller-defined resource type through lifecycle hook contexts,\ncommand definitions, run options, and the internal dispatcher. Keep the\nresource optional while making producer and consumer mismatches visible\nto TypeScript.\n\nAdd compile-time coverage for inferred and explicit resources, and update\nthe lifecycle documentation and examples to avoid casts.\n\nFixes https://github.com/dahlia/optique/issues/875\nhttps://github.com/dahlia/optique/pull/876\n\nAssisted-by: Codex:gpt-5.6-sol",
          "is_bot": false,
          "headline": "Type lifecycle hook resources",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-07-20T06:36:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "04ec5386f698b21a03ac0bb909c96c119fcbc036",
          "body": "Arrange package sections and feature entries so related changes are easier\nto scan. Preserve package-specific help options and consolidate the\nLogTape formatter additions from the same pull request.\n\nAssisted-by: Codex:gpt-5.6-sol",
          "is_bot": false,
          "headline": "Group related 1.2.0 changelog entries",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-07-19T06:39:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6776ce1713106a302cb8649035b90a4093b8552f",
          "body": "Publish the bundled Optique skill through a Claude Code marketplace while\nkeeping repository-only workflow skills hidden from public installers.\n\nDocument both repository-based and npm-aligned installation, and link the\ninstallation page from the Guide navigation.\n\nhttps://github.com/dahlia/optique/issues/850\nhttps://github.com/dahlia/optique/pull/852\n\nAssisted-by: Codex:gpt-5.6-sol",
          "is_bot": false,
          "headline": "Support Agent Skill installation paths",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-07-16T14:23:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7836254a875bbf96687372b07bafd0a7294771a6",
          "body": "Support LogTape formatter selection",
          "is_bot": false,
          "headline": "Merge pull request #867 from dahlia/packages/logtape/formatters",
          "author_name": "Hong Minhee (洪 民憙)",
          "author_login": "dahlia",
          "committed_at": "2026-07-03T01:38:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "60a64f082607ac457174d504a7cf53ffe8030b07",
          "body": "Custom formatter callbacks can still return unexpected values at\nruntime, especially from plain JavaScript callers.  Normalize those\nvalues before spreading them into console methods so invalid returns do\nnot turn into console sink failures.\n\nhttps://github.com/dahlia/optique/pull/867#discussion_r3516570709\n\nAssisted-by: Codex:gpt-5.5",
          "is_bot": false,
          "headline": "Harden console formatter output",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-07-02T23:33:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6dcaa6541c132cb71d205d0731b576a59bb2c5c7",
          "body": "The shared formatter option helper is exported for use by the preset,\nso it should carry the same API documentation as the rest of the\npackage surface.\n\nhttps://github.com/dahlia/optique/pull/867#discussion_r3516550517\n\nAssisted-by: Codex:gpt-5.5",
          "is_bot": false,
          "headline": "Document LogTape formatter helper",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-07-02T23:15:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2563cc61eae53f1951ec2a88adf9c987677985e5",
          "body": "The formatter option parser now lives in one place, so the preset and\nlogOutput() cannot drift in option names, descriptions, or value parsing.\nThe console sink tests also share a small capture helper instead of\nrepeating manual console.log restore blocks.\n\nhttps://github.com/dahlia/optique/pull/867#discussion_r3516519287\nhttps://github.com/dahlia/optique/pull/867#discussion_r3516519292\n\nAssisted-by: Codex:gpt-5.5",
          "is_bot": false,
          "headline": "Share LogTape formatter helpers",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-07-02T23:01:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e7424813a1222a1051055f392afb17a689a935ad",
          "body": "Log output parsers now carry parsed or fixed LogTape text formatters\nthrough the LogOutput value, so createSink() can apply the selected\nformat to both console and file sinks.\n\nThe loggingOptions() preset exposes formatter at the top level because\nit configures the generated sink rather than only the output destination\noption.\n\nhttps://github.com/dahlia/optique/pull/867\n\nAssisted-by: Codex:gpt-5.5",
          "is_bot": false,
          "headline": "Wire LogTape formatter options",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-07-02T22:37:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0d01ded2d4810d8af61a283ad662d10d8bdf0816",
          "body": "Add textFormatter() for mapping jsonl, logfmt, color, and plain\nCLI values to LogTape's built-in text formatter functions.  Export the\nparser from @optique/logtape and cover parsing, suggestions, formatting,\nand option integration.\n\nDocument the new parser in the LogTape integration guide, package README,\nparser catalog, changelog, and Optique agent skill.\n\nhttps://github.com/dahlia/optique/pull/867\n\nAssisted-by: Codex:gpt-5.5",
          "is_bot": false,
          "headline": "Add LogTape text formatter parser",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-07-02T21:43:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a8d42c41b15198507f0d525ebf38a9b18688704b",
          "body": "Allow createConsoleSink() to accept LogTape text and console\nformatters while preserving Optique's existing stream routing and\ndefault console output format.  Text formatter output follows LogTape's\nconsole sink behavior by trimming a trailing line ending before calling\nthe selected console method.\n\n[…]\nogfmtFormatter and refresh\nLogTape dependency locks so the documented formatter is available during\nTwoslash and package checks.\n\nhttps://github.com/dahlia/optique/pull/867\n\nAssisted-by: Codex:gpt-5.5",
          "is_bot": false,
          "headline": "Support LogTape console formatters",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-07-02T17:32:25Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "747f36a79d0fbf501b122074655db0b763493e58",
          "body": "Reversible value parser mapping",
          "is_bot": false,
          "headline": "Merge pull request #866 from dahlia/transform",
          "author_name": "Hong Minhee (洪 民憙)",
          "author_login": "dahlia",
          "committed_at": "2026-07-02T17:30:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fa56f91eba0c6db0809add5bf7584aed767ede92",
          "body": "The transformed sync fallback validator now checks the formatted value\nbefore replaying it through the inner parser, so malformed fallback shapes\ncannot slip through as non-string input.  It also routes the replay through\nwrapForMode so sync validation reports an accidental Promise return at the\nsam\n[…]\n/optique/pull/866#discussion_r3514843797\nhttps://github.com/dahlia/optique/pull/866#discussion_r3514843821\nhttps://github.com/dahlia/optique/pull/866#discussion_r3514874552\n\nAssisted-by: Codex:gpt-5.5",
          "is_bot": false,
          "headline": "Validate transformed sync fallbacks",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-07-02T17:11:36Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "6a72f083187278edda82811c90e57589e4d993c4",
          "body": "The transformed value parser should keep deferred placeholder results\nalive when the placeholder cannot be mapped, since phase-two parsing still\nneeds to replay the real value later.  Direct dependency sources are now\nrejected instead of silently registering transformed dependency values\nagainst an \n[…]\n/optique/pull/866#discussion_r3514751118\nhttps://github.com/dahlia/optique/pull/866#discussion_r3514817857\nhttps://github.com/dahlia/optique/pull/866#discussion_r3514817863\n\nAssisted-by: Codex:gpt-5.5",
          "is_bot": false,
          "headline": "Tighten transformed value edge cases",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-07-02T17:01:14Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "be3862cebafa0a059f2e12c10be0b764fc58c768",
          "body": "The transformed parser should treat unmap() failures consistently whether the\nwrapped parser provides validate() directly or falls back to a round-trip\nvalidator.  Preserve sentinel fallback values when the inverse mapping cannot\nserialize them, while still letting inner validate() failures report normally.\n\nhttps://github.com/dahlia/optique/pull/866#discussion_r3514680323\n\nAssisted-by: Codex:gpt-5.5",
          "is_bot": false,
          "headline": "Preserve validated transform fallbacks",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-07-02T16:44:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7a578ce1e907861edc3c3034bc7795272d93f364",
          "body": "Sync fallback validation should distinguish failures while preparing the\nround-trip from failures while parsing the formatted value.  Preserve the\noriginal transformed fallback when unmap() or format() cannot produce a CLI\nspelling, while keeping malformed fallbacks that collapse to undefined rejected.\n\nhttps://github.com/dahlia/optique/pull/866#pullrequestreview-4619216701\n\nAssisted-by: Codex:gpt-5.5",
          "is_bot": false,
          "headline": "Preserve transformed fallback values",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-07-02T16:32:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a847eac51671879f20d244c4b04323c2de1c187b",
          "body": "Transformed placeholders can come from lazy or dependency-derived getters.\nRead the wrapped placeholder once inside the guarded path so a throwing getter\nis treated the same way as a throwing mapping: the transformed parser simply\nhas no placeholder.\n\nhttps://github.com/dahlia/optique/pull/866#discussion_r3514290576\n\nAssisted-by: Codex:gpt-5.5",
          "is_bot": false,
          "headline": "Guard transformed placeholders",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-07-02T15:50:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "03f76ba15f00082884b3db88d74e17266ec5fdfa",
          "body": "Transformed derived value parsers need to preserve the receiver context of\nsuggestWithDependency.  Bind the delegated method before wrapping it through\nthe iterable mode boundary so custom derived parsers that use this keep\nworking after transform().\n\nhttps://github.com/dahlia/optique/pull/866#discussion_r3514121586\n\nAssisted-by: Codex:gpt-5.5",
          "is_bot": false,
          "headline": "Bind derived transform suggestions",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-07-02T15:31:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1dd4b70d50036956ea4c81b4bb75285c03c1b482",
          "body": "Transformed value parser validation should not accept malformed fallback\nvalues when the inverse mapping or the inner round trip cannot handle the\ninput.  Return a structured transform failure instead, and keep suggestions\nbehind the iterable mode boundary so sync wrappers reject async iterables\nwit\n[…]\n/optique/pull/866#discussion_r3514044124\nhttps://github.com/dahlia/optique/pull/866#discussion_r3514048802\nhttps://github.com/dahlia/optique/pull/866#discussion_r3514049152\n\nAssisted-by: Codex:gpt-5.5",
          "is_bot": false,
          "headline": "Reject malformed transform fallbacks",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-07-02T15:05:41Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "90bbb84be8d28ba5e4a470025effd70ddee200e8",
          "body": "Transform should keep parser boundaries intact when user mapping code\nthrows.  This commit turns parse-time mapping failures into structured\nvalue parser failures, and keeps fallback validation tolerant when an\ninverse mapping cannot claim the supplied value.\n\nIt also centralizes the async iterable probe in wrapIterableForMode so\nboth mode branches use the same checked value.\n\nhttps://github.com/dahlia/optique/pull/866#pullrequestreview-4618730163\n\nAssisted-by: Codex:gpt-5.5",
          "is_bot": false,
          "headline": "Guard transform mapping failures",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-07-02T15:03:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ddd68ea0fff7d8b0d060169a63e06cb65f8f1b6b",
          "body": "The TypeScript overloads describe object mappings, but JavaScript callers can\nstill pass null or primitive values at runtime. Reject those values with a\nTypeError before enumerating keys, so strings cannot become accidental indexed\nmappings and null does not fall through to the empty-mapping RangeError.\n\nhttps://github.com/dahlia/optique/pull/866#discussion_r3513995794\nhttps://github.com/dahlia/optique/pull/866#discussion_r3513995805\n\nAssisted-by: Codex:gpt-5.5",
          "is_bot": false,
          "headline": "Reject invalid biject mappings early",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-07-02T14:51:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a04840e1d6c6ddf9e38cd34538e3c4e66f7ade85",
          "body": "Fallback validation should not crash when the validation round trip cannot\nserialize a transformed value. Preserve the original transformed value when\nunmapping, formatting, or parsing throws, matching the existing fallback\nvalidation behavior elsewhere in the parser stack.\n\nAlso pin the duplicate-v\n[…]\nuctor-time error messages stay covered.\n\nhttps://github.com/dahlia/optique/pull/866#discussion_r3513969690\nhttps://github.com/dahlia/optique/pull/866#discussion_r3513969711\n\nAssisted-by: Codex:gpt-5.5",
          "is_bot": false,
          "headline": "Preserve transformed fallback validation",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-07-02T14:50:16Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "43dec86872dc57f31f597eecaf960d1b7b3affab",
          "body": "Transformed value parsers sit on top of existing parser contracts, so they\nneed to keep the same mode and metadata guardrails as other wrappers. Route\nwrapped parse results through the mode boundary, keep missing placeholders\nmissing, and leave transformed placeholders enumerable for dependency sour\n[…]\noptique/pull/866#discussion_r3513909409\nhttps://github.com/dahlia/optique/pull/866#discussion_r3513909418\nhttps://github.com/dahlia/optique/pull/866#issuecomment-4866983319\n\nAssisted-by: Codex:gpt-5.5",
          "is_bot": false,
          "headline": "Harden transformed value parser wrappers",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-07-02T14:47:53Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "77665cb5be912651e0c0623cae8b1c75020746e0",
          "body": "Value parsers need a first-class way to expose domain values while\nstill preserving CLI-facing spelling, formatting, fallback validation,\nand completion metadata. Add transform() for reversible value-parser\nmapping and biject() for one-to-one string-to-value dictionaries.\n\nThe biject() parser snapsh\n[…]\ncts\narrays, empty mappings, empty keys, and duplicate mapped values, and\nkeeps fallback validation tied to the mapped value set.\n\nhttps://github.com/dahlia/optique/pull/866\n\nAssisted-by: Codex:gpt-5.5",
          "is_bot": false,
          "headline": "Add reversible value parser mapping",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-07-02T14:26:19Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "0ed97d69be14d3b62fdfaf32d7c0ba14c4093419",
          "body": "Add transform() for value parsers that can map parsed values to a\npublic type while using the inverse mapping for formatting and fallback\nvalidation.  The wrapper preserves parser mode, suggestions, dependency\nmetadata, and derived default snapshots.\n\nDocument the combinator in the value parser guide, catalog, agent skill,\nand changelog for the PR #866 branch.\n\nhttps://github.com/dahlia/optique/pull/866\n\nAssisted-by: Codex:gpt-5.5",
          "is_bot": false,
          "headline": "Add reversible value parser transforms",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-07-02T13:17:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7cd22796d1cf6033f5680f168368d83f11c6fbf5",
          "body": "Allow compact root command lists in help output",
          "is_bot": false,
          "headline": "Merge pull request #865 from dahlia/feature/command-list",
          "author_name": "Hong Minhee (洪 民憙)",
          "author_login": "dahlia",
          "committed_at": "2026-06-30T19:18:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0a42d85386d6fb56bc2eba634a130747e26da017",
          "body": "Skip the rest of a top-level command group once its root help entry has\nbeen selected, and strip synthetic command docs before storing the entry.\nThis keeps the commandList top-level path from doing a second lookup and\npost-processing pass.\n\nhttps://github.com/dahlia/optique/pull/865#discussion_r3501229086\n\nAssisted-by: Codex:gpt-5.5",
          "is_bot": false,
          "headline": "Avoid repeated root command lookups",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-06-30T19:13:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cfdf8d4c71fc4d9b517190d1aaee63a8c2b23577",
          "body": "Add a commandList option to the core, run, and discover help\nsurfaces so large command trees can keep root help focused on\nfirst-level command groups while preserving recursive listings by\ndefault.\n\nThe implementation also keeps aboveError help consistent for\nroot-level parse errors with non-empty argv, and documents the new\noption across the runner and discover guides.\n\nFixes https://github.com/dahlia/optique/issues/864\nhttps://github.com/dahlia/optique/pull/865\n\nAssisted-by: Codex:gpt-5.5",
          "is_bot": false,
          "headline": "Add compact command list help",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-06-30T18:56:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a0394b067d3f496ff74e4ef3f3bf0e16a1de28b2",
          "body": "The landing page listed every @optique/* package under the \"Batteries\nincluded\" section, whose lead is specifically about value parsers and\ncombinators. Most packages don't provide value parsers, so the grid sat\nawkwardly under that framing.\n\nPull the package grid out into its own ecosystem section,\n[…]\neuses the parser catalog's\nlabeled-row grammar so the two sections read as siblings, and the\npackage-sync guidance in AGENTS.md points at the new role groups.\n\nAssisted-by: Claude Code:claude-opus-4-8",
          "is_bot": false,
          "headline": "Move packages to their own ecosystem section",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-06-30T01:14:06Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c8c9ac4ace30f120b15ad96017f88f00d1b9d41e",
          "body": "Standard Schema value parser adapter",
          "is_bot": false,
          "headline": "Merge pull request #863 from dahlia/packages/standard-schema",
          "author_name": "Hong Minhee (洪 民憙)",
          "author_login": "dahlia",
          "committed_at": "2026-06-30T00:37:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f3b0373753ed3ac3bac23d67ba9a5aa4232510d1",
          "body": "The default Standard Schema formatter used String(value) directly in several branches. Null-prototype objects can throw there, so route those conversions through a small guarded helper while preserving the existing JSON formatting path for plain objects.\n\nThe regression test covers Object.create(nul\n[…]\n longer crash help/default formatting.\n\nhttps://github.com/dahlia/optique/pull/863#discussion_r3495305052\n\nhttps://github.com/dahlia/optique/pull/863#discussion_r3495305056\n\nAssisted-by: Codex:gpt-5.5",
          "is_bot": false,
          "headline": "Guard schema value formatting",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-06-29T23:53:24Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "063939ad6436f0eb3124845aaee2f182d49f864b",
          "body": "Validate Standard Schema inputs before constructing parsers so invalid schemas fail with a clear TypeError instead of a property-access crash.\n\nThis also keeps the options validation tests local to their fixture objects and wraps the landing-page parser section line flagged during review.\n\nhttps://g\n[…]\nptique/pull/863#discussion_r3494807152\n\nhttps://github.com/dahlia/optique/pull/863#discussion_r3494807166\n\nhttps://github.com/dahlia/optique/pull/863#discussion_r3494807175\n\nAssisted-by: Codex:gpt-5.5",
          "is_bot": false,
          "headline": "Harden Standard Schema review fixes",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-06-29T23:39:54Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "b38c4f83c7c5b88783c19228ab4d9d3036412302",
          "body": "The landing parser catalog should show the schema adapter helpers that\nOptique ships directly, not only mention schema libraries in prose. The\ncatalog now lists the Standard Schema, Zod, and Valibot sync and async\nhelpers together, and the landing count reflects those parser entries.\n\nhttps://github.com/dahlia/optique/pull/863#discussion_r3494699005\n\nAssisted-by: Codex:gpt-5.5",
          "is_bot": false,
          "headline": "Catalog schema parsers on landing",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-06-29T21:22:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "347f5e8af6ed2aa5593d0d8e10ece4a714fff38d",
          "body": "Standard Schema parser options should come from a plain options object\nwith an own placeholder property. Otherwise inherited properties can make\nan invalid options value look complete, and class instances can bypass the\nshape check that callers expect.\n\nThe regression tests cover both non-plain options objects and inherited\nplaceholder values.\n\nAssisted-by: Codex:gpt-5.5",
          "is_bot": false,
          "headline": "Require plain schema options",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-06-29T21:08:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "99bce0589a328e7428588bc99837076dfb125863",
          "body": "The generic adapter should fail consistently when options are not a\nplain options object, and the sync helper should not leave rejected async\nvalidation results unobserved after reporting that the async helper is\nrequired.\n\nThe fallback validation message now follows the repository rule that\nuser-fa\n[…]\n/optique/pull/863#discussion_r3494616208\nhttps://github.com/dahlia/optique/pull/863#discussion_r3494631195\nhttps://github.com/dahlia/optique/pull/863#discussion_r3494631209\n\nAssisted-by: Codex:gpt-5.5",
          "is_bot": false,
          "headline": "Harden Standard Schema validation",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-06-29T20:55:03Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "52430745ce8b56d70a02c29ad33ef3de1890aa2f",
          "body": "Add @optique/standard-schema so Standard Schema-compatible validators\ncan be reused as Optique value parsers in sync and async parser modes.\nThe adapter keeps the portable path conservative, with explicit\nplaceholders, configurable metavars, formatting, and validation errors.\n\nDocument the integrati\n[…]\nthe new generic schema adapter alongside the richer Zod and\nValibot packages.\n\nFixes https://github.com/dahlia/optique/issues/862\nhttps://github.com/dahlia/optique/pull/863\n\nAssisted-by: Codex:gpt-5.5",
          "is_bot": false,
          "headline": "Add Standard Schema adapter",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-06-29T20:35:48Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "709d075c96527d95141d98cbf36c19f1e25897d9",
          "body": "The docs/compare/ pages were only reachable from the top nav and the\nend of why.md, so a visitor weighing Optique against a library they\nalready use had no path to them from the home page.\n\nAdd a CompareBand component before the closing call to action, plus a\nCompare button on that call to action.  \n[…]\name straight to its\npage, without reproducing the tables, which would turn the landing\npage's confident pitch into a defensive one.\n\nAssisted-by: Claude Code:claude-opus-4-8\nAssisted-by: Codex:gpt-5.5",
          "is_bot": false,
          "headline": "Surface CLI comparisons on the landing page",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-06-29T14:58:16Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "15f1cc9b6266b1c38b369ed88297ba9da7758051",
          "body": "Skip co-located test files during discovery",
          "is_bot": false,
          "headline": "Skip co-located test files during discovery (#861)",
          "author_name": "이호연",
          "author_login": "ho991217",
          "committed_at": "2026-06-29T14:34:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "86d0fd208e30461e22e9242319f0041c05c4b01d",
          "body": "The docs explained Optique on its own terms but never placed it side by\nside with the libraries developers already know, which is exactly what\nsomeone evaluating it wants.  This adds a balanced comparison section\nunder docs/compare/ covering nine libraries:\n\n- Commander.js, Yargs, Cliffy, Gunshi, Cl\n[…]\nd with a Codex review loop.\n\nThe \"Comparison\" group sits after Integrations in the nav and sidebar,\nand \"Why Optique?\" links to it.\n\nAssisted-by: Claude Code:claude-opus-4-8\nAssisted-by: Codex:gpt-5.5",
          "is_bot": false,
          "headline": "Compare Optique with other CLI libraries",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-06-29T14:12:58Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "313ee645d00030e45aae1b20252605ddc251b6e4",
          "body": "- Removed spaces around em dashes used mid-sentence\n- Converted headings to sentence case\n- Replaced backtick-wrapped package names with italics\n- Replaced backtick-wrapped file paths, file names, and extensions\n  with italics\n- Updated AGENTS.md style guide to reflect file path/name/extension\n  convention\n\n[ci skip]\n\nAssisted-by: OpenCode:deepseek-v4-flash",
          "is_bot": false,
          "headline": "Apply Markdown style conventions across documentation",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-06-29T05:23:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0e2088561b5773e5912cb218422552ddb3105a07",
          "body": "Hide usage lines in full help output",
          "is_bot": false,
          "headline": "Merge pull request #860 from dahlia/feature/show-usage",
          "author_name": "Hong Minhee (洪 民憙)",
          "author_login": "dahlia",
          "committed_at": "2026-06-29T05:00:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1d3b3041fc0e5d895367622674835da7ba8e3b3d",
          "body": "Forward sectionOrder when rendering full help above parse errors, matching\nthe normal help path.  Add a regression test that orders grouped help\nsections through aboveError: \"help\" so this path stays covered.\n\nhttps://github.com/dahlia/optique/issues/856\nhttps://github.com/dahlia/optique/pull/860\n\nAssisted-by: Codex:gpt-5.5",
          "is_bot": false,
          "headline": "Preserve section order in error help",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-06-29T04:50:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ff9c6461a5619e5182b49bd00a04f3633bf52b07",
          "body": "Add showUsage to the core document formatter and runner options so\nlarge command menus can omit the generated Usage synopsis from full\nhelp pages.  Thread the option through @optique/run and @optique/discover\nwhile keeping usage-only error preambles unchanged.\n\nDocument the new option, update the Op\n[…]\nskill guidance, and\nrecord the public and exposed API surfaces in CHANGES.md.\n\nFixes https://github.com/dahlia/optique/issues/856\nhttps://github.com/dahlia/optique/pull/860\n\nAssisted-by: Codex:gpt-5.5",
          "is_bot": false,
          "headline": "Allow hiding help usage",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-06-29T04:17:36Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c9c5009825d4310c5c435d4c5dc1220488466d8c",
          "body": "Add fixed suppressions to generated command modules",
          "is_bot": false,
          "headline": "Merge pull request #858 from dahlia/fix-854",
          "author_name": "Hong Minhee (洪 民憙)",
          "author_login": "dahlia",
          "committed_at": "2026-06-29T04:03:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9d37b9cc0b4fbe72f8d93029aaac4481f329b143",
          "body": "Optique 1.1.1",
          "is_bot": false,
          "headline": "Merge tag '1.1.1'",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-06-29T03:52:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b8d39082fdeb37bb16c68b2dc2396d4c9c45b1d5",
          "body": null,
          "is_bot": false,
          "headline": "Release 1.1.1",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-06-29T03:48:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9a0bf2c8bfffc3a15b66bec8f8b69f60e505719b",
          "body": "Keep nested help scoped with completion enabled",
          "is_bot": false,
          "headline": "Merge pull request #859 from dahlia/bugfix/issue-855",
          "author_name": "Hong Minhee (洪 民憙)",
          "author_login": "dahlia",
          "committed_at": "2026-06-29T03:47:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f4844f9b8d903fe26e4eda9ec280b6ded1d5ed1d",
          "body": "Place Biome file-level suppressions at the start of the generated header so\nBiome sees them before any other generated comments. Build the header from\nexplicit LF-joined lines to make the generated output independent from source\nfile line endings.\n\nhttps://github.com/dahlia/optique/pull/858#discussion_r3489159716\nhttps://github.com/dahlia/optique/pull/858#discussion_r3489159721\nhttps://github.com/dahlia/optique/pull/858#discussion_r3489166439\n\nAssisted-by: Codex:gpt-5.5",
          "is_bot": false,
          "headline": "Make generated header Biome-friendly",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-06-29T03:45:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6585ea20d233071669cc01bede3d5135cd0ff23f",
          "body": "Nested subcommand help should use the selected user command's\ndocumentation even when completion meta options are enabled.  Keep the\naugmented parser for validating help paths and root help, but use the\noriginal parser when rendering user subcommand docs so sibling commands and\nmeta usages do not leak into the scoped help page.\n\nFixes https://github.com/dahlia/optique/issues/855\n\nAssisted-by: Codex:gpt-5.5",
          "is_bot": false,
          "headline": "Scope nested help with completion",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-06-29T03:39:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "39785bdbbebdff49aefc5f27b0e03d2cdf7827f2",
          "body": "Generated optique-discover modules now include a fixed header with\nmachine-owned, lint, formatter, and TypeScript check suppression comments.\nThis keeps generated static module maps quiet without adding public CLI or\nAPI switches before the command has shipped.\n\nThe documentation now explains the fixed header and points Prettier and\nOxfmt users to formatter-level ignore configuration.\n\nFix https://github.com/dahlia/optique/issues/854\n\nAssisted-by: Codex:gpt-5.5",
          "is_bot": false,
          "headline": "Add generated module suppressions",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-06-29T03:36:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "399ee0569851d9e275479838fa822d4b6badec5e",
          "body": "The watch test now observes the intermediate file-set state after\nremoving one command file before removing the last one. This matches the\npolling watcher's actual contract and avoids relying on two filesystem\nchanges being coalesced in CI.\n\nFixes https://github.com/dahlia/optique/issues/853\n\nAssisted-by: Codex:gpt-5.5",
          "is_bot": false,
          "headline": "Stabilize discover watch test",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-06-28T01:57:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "420e278954aa563f9143093140f9ad7112926a79",
          "body": "Add official Optique agent skill",
          "is_bot": false,
          "headline": "Merge pull request #852 from dahlia/skill",
          "author_name": "Hong Minhee (洪 民憙)",
          "author_login": "dahlia",
          "committed_at": "2026-06-28T01:51:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "09f5a730262b6415b84da221548f0ad91de69194",
          "body": "The frontmatter assertion stays anchored to the start of SKILL.md but\nnow accepts CRLF line endings, so the test still passes on Windows\ncheckouts.\n\nhttps://github.com/dahlia/optique/pull/852#discussion_r3487116397\n\nAssisted-by: OpenCode:gpt-5.5",
          "is_bot": false,
          "headline": "Allow CRLF in skill frontmatter test",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-06-28T01:17:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "003646d030cc997b9c87879245796cc0e1ddcadf",
          "body": "The skill snippet test now accepts string-valued Deno exports while\nalso asserting that each Deno export is present in package.json.  This\nkeeps workspace import resolution tied to the published package surface\nwithout requiring built dist files during the focused test.\n\nThe frontmatter assertion no\n[…]\ntique/pull/852#discussion_r3486816071\nhttps://github.com/dahlia/optique/pull/852#discussion_r3486818550\nhttps://github.com/dahlia/optique/pull/852#discussion_r3486818553\n\nAssisted-by: OpenCode:gpt-5.5",
          "is_bot": false,
          "headline": "Harden skill test export checks",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-06-28T01:04:23Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "4a8db163c59468e7f871f8f8ab2248609c35d958",
          "body": "Use file URL conversion and normalized virtual compiler paths so the\nskill snippet tests do not depend on POSIX pathname behavior. This keeps\nthe test harness usable on Windows as well as Unix-like runtimes.\n\nhttps://github.com/dahlia/optique/pull/852#discussion_r3486518324\nhttps://github.com/dahlia/optique/pull/852#discussion_r3486518325\n\nAssisted-by: OpenCode:gpt-5.5",
          "is_bot": false,
          "headline": "Make skill tests path-portable",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-06-27T21:24:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c3fb3a9554dd3e652a3006dfe2dd7297ae2569dd",
          "body": "Document that the official Optique Agent Skill needs updates alongside\nuser-facing documentation when features, parsers, API contracts, or common\npitfalls change.\n\nAssisted-by: OpenCode:gpt-5.5\nAssisted-by: Codex:gpt-5.5",
          "is_bot": false,
          "headline": "Keep agent guidance in sync",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-06-27T18:04:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bbf10758d701780063c7281acb4e7d2e857918d3",
          "body": "Ship the first-party Optique Agent Skill from @optique/core so coding\nagents can discover concise project guidance from the package metadata.\nKeep the skill examples type-checked and exclude the colocated test from\npublished skill assets.\n\nFixes https://github.com/dahlia/optique/issues/850\n\nAssisted-by: OpenCode:gpt-5.5\nAssisted-by: Codex:gpt-5.5",
          "is_bot": false,
          "headline": "Add official Optique agent skill",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-06-27T17:59:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cc03d22d392fe2ba4f26305e95de6c003dd6a1df",
          "body": "Lifecycle hooks for `runProgram()`",
          "is_bot": false,
          "headline": "Merge pull request #851 from dahlia/lifecycle-hooks",
          "author_name": "Hong Minhee (洪 民憙)",
          "author_login": "dahlia",
          "committed_at": "2026-06-27T17:39:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0b30260eb2ffe78f142685e783d486479593de18",
          "body": "runHookScope() already normalizes a nullish beforeEach() result to an\nempty context, but the type still required a ProgramHookContext return,\nforcing side-effect-only hooks to write \"return {}\" or cast.  Widen the\nbeforeEach return type to also accept void and null (and the matching\nPromise), so a hook that threads no resource can simply omit its return.\n\nAssisted-by: Claude Code:claude-opus-4-8",
          "is_bot": false,
          "headline": "Allow beforeEach hooks to omit a return",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-06-27T16:12:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "45872e7dc5f8751e49d0750d60af9763d93bc95d",
          "body": "Two PR review comments noted the program-hooks example only handled\nthe success path:\n\n- The deploy command released its auth token in afterEach but not on\n  failure.  Add an onError that releases it too, so the example shows\n  try/finally-style teardown across both paths.\n- The program-level onErro\n[…]\n back to a default label.\n\nhttps://github.com/dahlia/optique/pull/851#discussion_r3486287302\nhttps://github.com/dahlia/optique/pull/851#discussion_r3486287306\n\nAssisted-by: Claude Code:claude-opus-4-8",
          "is_bot": false,
          "headline": "Release resources on the error path in hooks example",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-06-27T16:00:15Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "87de53a35d13f9b5e55c7bfdb59c2b21ea011990",
          "body": "Two PR review comments flagged ways malformed runtime values could\nslip past the new lifecycle-hook handling:\n\n- validateHooks() accepted arrays, because typeof [] is \"object\" and\n  the per-hook loop never reads array indices.  Reject arrays\n  explicitly with a distinct message.\n- A beforeEach() tha\n[…]\nesult to an empty object.\n\nhttps://github.com/dahlia/optique/pull/851#discussion_r3486283873\nhttps://github.com/dahlia/optique/pull/851#discussion_r3486283874\n\nAssisted-by: Claude Code:claude-opus-4-8",
          "is_bot": false,
          "headline": "Harden lifecycle hook handling against bad values",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-06-27T15:59:49Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a902c666c52cb8e738f0a8f59d6a7151f81beaae",
          "body": "Add a \"Lifecycle hooks\" section to the command discovery concept page and\na \"Program-level lifecycle hooks\" recipe to the cookbook, covering the\nhook contract, context threading, program-to-command ordering (as a\nMermaid flowchart), and the difference between a parse error and a\nhandler error.  Add a runnable examples/patterns/program-hooks.ts that\nmirrors the command-discovery example.\n\nAssisted-by: Claude Code:claude-opus-4-8\nAssisted-by: Codex:gpt-5.5",
          "is_bot": false,
          "headline": "Document discover lifecycle hooks",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-06-27T15:00:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5b48d21849145dc1865c951ae183041e768064e3",
          "body": "The lifecycle-hooks docs need a flow diagram, and Mermaid renders a\ncleaner, more maintainable diagram than hand-drawn ASCII art.\n\nWire withMermaid() around the VitePress config and add mermaid plus\nvitepress-plugin-mermaid to the docs dev dependencies.  The plugin's\npeer range predates VitePress 2, but it works with the alpha the docs\nuse (verified by a production build and a rendered diagram).\n\nAssisted-by: Claude Code:claude-opus-4-8",
          "is_bot": false,
          "headline": "Render docs diagrams with vitepress-plugin-mermaid",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-06-27T15:00:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5f9074525cc47975ca6af268210524cbdc8f5ade",
          "body": "runProgram() dispatched straight to a command's handler, leaving no\nsingle place for cross-cutting around-handler concerns such as log\nscopes, tracing spans, lazy resource setup, and failure reporting.\nTeams worked around this by duplicating try/finally in every handler or\nby shadowing defineCommand\n[…]\nhen no beforeEach runs, the handler is\ncalled with just the value, preserving the exact call shape of a hookless\nrunProgram() call.\n\nAssisted-by: Claude Code:claude-opus-4-8\nAssisted-by: Codex:gpt-5.5",
          "is_bot": false,
          "headline": "Add lifecycle hooks to @optique/discover",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-06-27T15:00:00Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "1719f063c314f20ba00417ecc9b91e33bff6dfdc",
          "body": "Newcomers repeatedly hit the same misconceptions: or() treated as\n\"optional alternatives\", optional() versus withDefault(), free-order\n(priority-based) parsing, async contagion, and forgetting to register\nsource contexts.  Collect these into a single docs/pitfalls.md page\nthat states the correct men\n[…]\nfalls) under a new \"Guide\" section in both the nav and the sidebar,\nso the top level no longer carries four loose links.\n\n[ci skip]\n\nAssisted-by: Claude Code:claude-opus-4-8\nAssisted-by: Codex:gpt-5.5",
          "is_bot": false,
          "headline": "Add a common pitfalls guide to the docs",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-06-27T14:59:51Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "22b59099ec210bcec8db2694a63fddbcb9624e85",
          "body": "“Did you mean?” hints for `choice()` value typos",
          "is_bot": false,
          "headline": "Merge pull request #849 from dahlia/choice-did-you-mean",
          "author_name": "Hong Minhee (洪 民憙)",
          "author_login": "dahlia",
          "committed_at": "2026-06-27T12:34:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "23a526b7fa4f0f7bb55971db7acc64465cbf0787",
          "body": "When suggest is an object ({ maxDistance?, maxSuggestions? }), the\nparser closure previously captured the caller's original reference.\nA caller who mutates the object after calling choice() could silently\nchange hint behavior or bypass the validation that ran at construction.\n\nSnapshot the two relev\n[…]\nitialized with,\nconsistent with how choices and errors.invalidChoice are already treated.\n\nhttps://github.com/dahlia/optique/pull/849#discussion_r3485978329\n\nAssisted-by: Claude Code:claude-sonnet-4-6",
          "is_bot": false,
          "headline": "Snapshot suggest object option at construction time",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-06-27T12:18:26Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "694ee20a569a1770fbc07ac619fded74f3922cdc",
          "body": "The suggestion hint renders values using the value() term, which formats\nthem with double quotes (e.g. \"dev\"), not backticks. Update the two\nexample outputs in the docs to match.\n\nhttps://github.com/dahlia/optique/pull/849#discussion_r3485961538\nhttps://github.com/dahlia/optique/pull/849#discussion_r3485961543\n\nAssisted-by: Claude Code:claude-sonnet-4-6",
          "is_bot": false,
          "headline": "Fix Did you mean? format in docs",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-06-27T12:06:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e16654a6a31485f06aa1b2dfc35217741b3c73a4",
          "body": "Extract appendValueSuggestions() from appendValueHint() as a separate\npublic helper that formats and appends a pre-filtered list of suggestion\nstrings.  appendValueHint() now delegates to it after calling findSimilar.\n\nThe multi-suggestion path was using text(\"\\n  \") to separate items, but\nformatMes\n[…]\n9#discussion_r3485945785\nhttps://github.com/dahlia/optique/pull/849#discussion_r3485945789\nhttps://github.com/dahlia/optique/pull/849#discussion_r3485949409\n\nAssisted-by: Claude Code:claude-sonnet-4-6",
          "is_bot": false,
          "headline": "Extract appendValueSuggestions, fix multi-hint rendering",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-06-27T11:54:31Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ff2594d8e429ba914f39779be976e5043c75d423",
          "body": "Floating-point values and negative numbers produce nonsensical results\nfor Levenshtein distance thresholds.  The validation now requires:\n\n- suggest.maxDistance: a non-negative integer (0 is allowed; it means\n  only exact matches)\n- suggest.maxSuggestions: a positive integer (0 would return nothing)\n[…]\nin the function\nform of formatStringChoiceError() for consistency with appendValueHint().\n\nhttps://github.com/dahlia/optique/pull/849#discussion_r3485913352\n\nAssisted-by: Claude Code:claude-sonnet-4-6",
          "is_bot": false,
          "headline": "Require integers for suggest.maxDistance/maxSuggestions",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-06-27T11:39:18Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "465989226470cab84093eeb3341389361bc7d53b",
          "body": "Two improvements to appendValueHint() in suggestion.ts:\n\n- Switch from optionName terms to value terms for the candidates in\n  the hint message.  optionName wraps in raw backticks without\n  escaping, so a choice like \"foo`bar\" would produce a broken\n  \"`foo`bar`\" output.  value terms use JSON.string\n[…]\nemantics\n  unambiguous.\n\nhttps://github.com/dahlia/optique/pull/849#discussion_r3485913351\nhttps://github.com/dahlia/optique/pull/849#discussion_r3485918614\n\nAssisted-by: Claude Code:claude-sonnet-4-6",
          "is_bot": false,
          "headline": "Use value terms for Did you mean? hints in appendValueHint()",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-06-27T11:38:58Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "b3c70b3c1de4e9a402898d42822ea1524db92c6f",
          "body": "Per the docs convention, mid-sentence em dashes should not have\nsurrounding spaces.\n\nhttps://github.com/dahlia/optique/pull/849#discussion_r3485899086\n\nAssisted-by: Claude Code:claude-sonnet-4-6",
          "is_bot": false,
          "headline": "Remove spaces around em dashes in cookbook",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-06-27T11:17:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1aa50a37640318a70f0af635065f9f75ee467fbc",
          "body": "When base is empty, the unconditional lineBreak()/lineBreak() prefix\nrendered \"\\n\\nDid you mean ...\" instead of just the hint.  Now the\nseparators are only inserted when base is non-empty.\n\nAlso fix the close-candidate test to use a base message that does not\nalready contain the candidate string, so\n[…]\nng the empty-base path.\n\nhttps://github.com/dahlia/optique/pull/849#discussion_r3485899088\nhttps://github.com/dahlia/optique/pull/849#discussion_r3485899093\n\nAssisted-by: Claude Code:claude-sonnet-4-6",
          "is_bot": false,
          "headline": "Fix appendValueHint() with empty base message",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-06-27T11:17:51Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "377ece65b8f807b593945fb420ecd763095cb8d5",
          "body": "- Reject arrays passed as suggest (typeof [] === \"object\" was a\n  loophole); report \"array\" in the error type for clarity\n- Validate suggest.maxDistance and suggest.maxSuggestions are\n  finite numbers when the object form is used, so invalid values\n  like { maxSuggestions: 1n } throw at construction\n[…]\n9#discussion_r3485895188\nhttps://github.com/dahlia/optique/pull/849#discussion_r3485899096\nhttps://github.com/dahlia/optique/pull/849#discussion_r3485901383\n\nAssisted-by: Claude Code:claude-sonnet-4-6",
          "is_bot": false,
          "headline": "Harden suggest option validation in choice()",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-06-27T11:17:26Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "4f7a5e894d0254099f65090b716cf9942dbf62d7",
          "body": "Assisted-by: Claude Code:claude-sonnet-4-6",
          "is_bot": false,
          "headline": "Add CHANGES.md entry for choice() suggest option",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-06-27T11:00:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8863eafc4e44f9d1e19ba05134326c2c34245b06",
          "body": "Invalid runtime values for suggest (e.g. true, \"nearset\", 0) previously\nfell through to the object-form branch, silently enabling nearest\nsuggestions instead of rejecting the bad input. This is inconsistent\nwith how nearby options like caseInsensitive are validated.\n\nNow throws TypeError at construction time when suggest is defined but\nis not \"nearest\", \"never\", a plain object, or a function. Tests added\nfor true, a misspelled string, and a number.\n\nAssisted-by: Claude Code:claude-sonnet-4-6",
          "is_bot": false,
          "headline": "Validate suggest option at choice() construction time",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-06-27T10:51:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cec0d853164273d92cb46d4bcfa78cab48c90cce",
          "body": "The suggest option was on ChoiceOptionsBase, which meant number choices\nalso inherited it via ChoiceOptionsNumber — but the number parser branch\nnever read or applied it, silently ignoring a documented option.\n\nMoving suggest to ChoiceOptionsString only, since:\n- The candidate set is always string[]\n[…]\n function form's\n  (input: string, choices: readonly string[]) signature.\n- Number choices have no meaningful string-distance semantics without\n  an explicit toString step.\n\nAssisted-by: Codex:gpt-5.5",
          "is_bot": false,
          "headline": "Move suggest option from ChoiceOptionsBase to ChoiceOptionsString",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-06-27T10:22:06Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c973886e95846fb5a3c2fa80ea012db8dbb9f3c1",
          "body": "Adds a `suggest` option to `choice()` and a shared `appendValueHint()`\nhelper in `suggestion.ts`, implementing issue #9.\n\nChanges:\n\n- `ChoiceOptionsBase.suggest`: new option accepting \"nearest\", \"never\"\n  (default), a `{ maxDistance?, maxSuggestions? }` object, or a\n  custom `(input, choices) => str\n[…]\nndidate sets.\n\n- `docs/concepts/valueparsers.md` updated with a \"Did you mean? hints\"\n  subsection and definition-list reference for all `suggest` variants.\n\nAssisted-by: Claude Code:claude-sonnet-4-6",
          "is_bot": false,
          "headline": "Add \"Did you mean?\" hints to choice() value parser",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-06-27T10:17:08Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d223bc0715c80eb7fd922e49047784daba8f22f6",
          "body": "Closes the gap described in issue 8: Optique's async completion\npath has been working (used throughout @optique/git) but was\nundocumented, leaving users to infer the pattern from source code.\n\nChanges:\n\n- packages/core/src/valueparser.ts: expand the JSDoc for\n  ValueParser.suggest() to describe the \n[…]\n async-validation.ts, using a stub tag\n  list in place of a real registry call, running via runAsync()\n  with completion: \"both\".\n\nAssisted-by: Claude Code:claude-sonnet-4-6\nAssisted-by: Codex:gpt-5.5",
          "is_bot": false,
          "headline": "Document and officialize async completion sources",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-06-27T06:03:26Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "cab8d488a35141278e910aecc44ad355b3f99302",
          "body": "Closes the discoverability gap described in issue 4: the\nmerge(globals, or(...)) pattern was already a tested invariant in\nthe core package but had no named recipe in the documentation.\n\nChanges:\n\n- docs/cookbook.md: add \"Shared options across subcommands\" recipe\n  immediately after \"Subcommands wit\n[…]\nues/ to the global exclude list so that deno fmt\n  --check no longer scans local-only issue files that use the\n  project's setext-style Markdown convention.\n\nAssisted-by: Claude Code:claude-sonnet-4-6",
          "is_bot": false,
          "headline": "Document shared options across subcommands",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-06-27T05:16:14Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "3e38d9b43a827508e21f667eec178e5e47b52e23",
          "body": "These files (.cursorrules, .windsurfrules, AGENT.md, GEMINI.md,\n.github/copilot-instructions.md) were stubs that duplicated\nguidance already covered in AGENTS.md.  Removing them reduces\nmaintenance surface and avoids confusion about which file is\nauthoritative.\n\n[ci skip]",
          "is_bot": false,
          "headline": "Remove per-agent instruction stub files",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-06-27T01:37:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "70c4e0175772689259a3138850d3c4d2304f93d1",
          "body": "Deferred handler-time values",
          "is_bot": false,
          "headline": "Merge pull request #848 from dahlia/deferred-values",
          "author_name": "Hong Minhee (洪 民憙)",
          "author_login": "dahlia",
          "committed_at": "2026-06-27T01:11:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "45b15d3c659c2cffba3f57fd045115cb6d0ce46a",
          "body": "Cloning optional()'s descriptors also copied\ndependencyMetadata.source.preservesSourceValue: true, so when\ndeferredValue() wrapped a dependency source the runtime would register\nthe produced DeferredValue function as the source value, and derived\nparsers would validate against a function instead of \n[…]\nches map(), which is the established value-transforming wrapper.\n\nhttps://github.com/dahlia/optique/pull/848#discussion_r3484009107\n\nAssisted-by: Claude Code:claude-opus-4-8\nAssisted-by: Codex:gpt-5.5",
          "is_bot": false,
          "headline": "Mark deferred dependency sources as transformed",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-06-26T22:55:09Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "88a40b64d011c6c68f8202f8a1469dd378bebece",
          "body": "The source reference said an explicitly produced undefined counts as\n\"specified\", but deferredValue() selects the fallback whenever the\nwrapped parser yields undefined. Describe the actual behavior and note\nthat source-bound values still count as \"specified\".\n\nhttps://github.com/dahlia/optique/pull/848#discussion_r3483741700\n\nAssisted-by: Claude Code:claude-opus-4-8\nAssisted-by: Codex:gpt-5.5",
          "is_bot": false,
          "headline": "Correct deferred undefined-source documentation",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-06-26T20:33:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6f89276d5a28efa25b459f7830a24d5c58602095",
          "body": "The two-overload signature let a fallback with an optional context\nparameter, such as (ctx?: Ctx) => ..., match the zero-argument overload,\ntyping the parsed field as DeferredValue<T> so token(ctx) failed to\ncompile even though the runtime forwards the context.\n\nCollapse the standalone function and \n[…]\nle context yields a value callable with or without the\nargument.\n\nhttps://github.com/dahlia/optique/pull/848#discussion_r3483741690\n\nAssisted-by: Claude Code:claude-opus-4-8\nAssisted-by: Codex:gpt-5.5",
          "is_bot": false,
          "headline": "Fix deferredValue inference for optional context",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-06-26T20:27:15Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "2e2903b81db0d965f992539c8cd4bc39122ecc38",
          "body": "Returning the mapped inner result directly meant a synchronous caller\ncould receive a Promise unnoticed when the wrapped parser is\nasynchronous. Route the completion through wrapForMode() so that\nmismatch is validated at runtime, matching the convention used by the\nother parser wrappers.\n\nhttps://github.com/dahlia/optique/pull/848#discussion_r3483727109\n\nAssisted-by: Claude Code:claude-opus-4-8",
          "is_bot": false,
          "headline": "Guard deferredValue completion with wrapForMode",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-06-26T20:25:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "763fcd3ed4540ac7d8fb5e31883afc83b3759f88",
          "body": "The repository style guide requires an @since tag on every exported\nAPI, including the method-style modifiers. The new .deferredValue()\nfluent method omitted it.\n\nhttps://github.com/dahlia/optique/pull/848#discussion_r3483521838\n\nAssisted-by: Claude Code:claude-opus-4-8",
          "is_bot": false,
          "headline": "Add @since tag to the deferredValue fluent method",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-06-26T19:39:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9234aeaddb8558e6003eb7b83f4f72bbcebeca2d",
          "body": "deferredValue() built its result with map(), whose object spread drops\nthe non-enumerable annotation markers that route bindEnv()/bindConfig()\nvalues. A source-bound value therefore looked absent and wrongly\nselected the fallback, even though the API advertises such values as\n\"specified\".\n\nBuild on \n[…]\nn tests covering env and CLI precedence\nthrough deferredValue().\n\nhttps://github.com/dahlia/optique/pull/848#discussion_r3483583058\n\nAssisted-by: Claude Code:claude-opus-4-8\nAssisted-by: Codex:gpt-5.5",
          "is_bot": false,
          "headline": "Preserve source-bound values through deferredValue",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-06-26T19:38:00Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "9fc28f4477b180918bb25e801d4ae4274f3833fa",
          "body": "When deferredValue()'s fallback takes a context whose type already\nincludes undefined, the caller can omit it safely. The previous type\nstill required an explicit argument, so callers had to pass undefined\njust to satisfy the signature. Add a (ctx?: C) branch so the deferred\nvalue is callable with no arguments when undefined is assignable to C,\nwhile a non-nullable context stays required.\n\nhttps://github.com/dahlia/optique/pull/848#discussion_r3483439311\n\nAssisted-by: Claude Code:claude-opus-4-8",
          "is_bot": false,
          "headline": "Allow no-arg deferred call for nullable context",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-06-26T18:57:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7ac5924a6db16c45e2790d6ebfa36298a2937ea2",
          "body": "Document deferredValue() in the cookbook's \"Default value patterns\" section\nnext to derived defaults, and add a runnable\nexamples/patterns/deferred-values.ts showing an API token that is only\nresolved when the deployment branch needs it.  Both pass the resolved token\nto a deploy stand-in without logging it, so the example does not teach\nwriting secrets to stdout.\n\nhttps://github.com/dahlia/optique/issues/846\n\nAssisted-by: Claude Code:claude-opus-4-8\nAssisted-by: Codex:gpt-5.5",
          "is_bot": false,
          "headline": "Add deferred values cookbook recipe and example",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-06-26T18:30:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7678a60b8d22f87033555c58d62e4ce3f634de32",
          "body": "The DeferredValue source JSDoc said \"specified\" means a CLI value, but the\nbranch is actually keyed on whether the wrapped parser produced any value,\nincluding bindEnv()/bindConfig() sources.  Correct the wording and add\nregression tests: a value produced during completion (via constant(), the\nsame \n[…]\nspecified\", and deferredValue()\nforwards shouldDeferCompletion to the wrapped parser.\n\nhttps://github.com/dahlia/optique/issues/846\n\nAssisted-by: Claude Code:claude-opus-4-8\nAssisted-by: Codex:gpt-5.5",
          "is_bot": false,
          "headline": "Cover deferredValue() non-CLI source values",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-06-26T18:05:36Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a24ff88c51c63c8e2a20fd259eb41c260a6aadfc",
          "body": "Record the new deferredValue()/isDeferredValue() API and the\n.deferredValue() fluent method under @optique/core for the 1.2.0 release.\n\nhttps://github.com/dahlia/optique/issues/846\n\nAssisted-by: Claude Code:claude-opus-4-8",
          "is_bot": false,
          "headline": "Note deferredValue() in the changelog",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-06-26T17:56:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0c9e40d4a0be433fc75658ef011e67371ee94994",
          "body": "Add a deferredValue() parser section to the modifiers concept page, covering\nthe specified and fallback branches, the source property, handler-time\ncontext, memoization, and isDeferredValue().  Also list it in the landing\npage parser catalog's Modifiers group.\n\nhttps://github.com/dahlia/optique/issues/846\n\nAssisted-by: Claude Code:claude-opus-4-8\nAssisted-by: Codex:gpt-5.5",
          "is_bot": false,
          "headline": "Document the deferredValue() modifier",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-06-26T17:53:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "86b3b088422848a05e58ad620d0443f56052e7a6",
          "body": "Version 1.2.0 added method-style modifiers (map, optional, withDefault,\nmultiple, nonEmpty) alongside the standalone functions.  deferredValue()\nnow joins that surface so it can be chained on parsers returned by the\nbuilt-in factories, for example\noption(\"--token\", string()).deferredValue(...), instead of only being\navailable as a standalone wrapper.\n\nhttps://github.com/dahlia/optique/issues/846\n\nAssisted-by: Claude Code:claude-opus-4-8",
          "is_bot": false,
          "headline": "Add .deferredValue() fluent modifier method",
          "author_name": "Hong Minhee",
          "author_login": "dahlia",
          "committed_at": "2026-06-26T17:32:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 94,
      "commits_last_year": 3636,
      "latest_release_at": "2026-07-21T05:39:53Z",
      "latest_release_tag": "1.2.0",
      "releases_from_tags": true,
      "days_since_last_push": 0,
      "active_weeks_last_year": 45,
      "days_since_latest_release": 0,
      "mean_days_between_releases": 16.8
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": true,
      "health_percentage": 71,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": false
    },
    "ecosystem": {
      "packages": [
        {
          "name": "@optique/env",
          "exists": true,
          "license": "MIT",
          "keywords": [
            "CLI",
            "command-line",
            "commandline",
            "parser",
            "environment",
            "env"
          ],
          "ecosystem": "npm",
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/@optique/env",
          "is_deprecated": false,
          "latest_version": "1.2.0",
          "repository_url": "https://github.com/dahlia/optique",
          "versions_count": 441,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 1,
          "monthly_downloads": 17173,
          "first_published_at": "2026-03-01T07:45:43.113000Z",
          "latest_published_at": "2026-07-21T05:45:13.477000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 0
        },
        {
          "name": "@optique/git",
          "exists": true,
          "license": "MIT",
          "keywords": [
            "CLI",
            "command-line",
            "commandline",
            "parser",
            "git",
            "git-reference",
            "branch",
            "tag",
            "commit"
          ],
          "ecosystem": "npm",
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/@optique/git",
          "is_deprecated": false,
          "latest_version": "1.2.0",
          "repository_url": "https://github.com/dahlia/optique",
          "versions_count": 556,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 1,
          "monthly_downloads": 12037,
          "first_published_at": "2026-01-02T11:06:45.616000Z",
          "latest_published_at": "2026-07-21T05:45:28.185000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 0
        },
        {
          "name": "@optique/man",
          "exists": true,
          "license": "MIT",
          "keywords": [
            "CLI",
            "command-line",
            "commandline",
            "parser",
            "man",
            "manpage",
            "documentation",
            "roff",
            "groff"
          ],
          "ecosystem": "npm",
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/@optique/man",
          "is_deprecated": false,
          "latest_version": "1.2.0",
          "repository_url": "https://github.com/dahlia/optique",
          "versions_count": 494,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 1,
          "monthly_downloads": 11115,
          "first_published_at": "2026-01-22T17:35:20.540000Z",
          "latest_published_at": "2026-07-21T05:46:21.953000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 0
        },
        {
          "name": "@optique/run",
          "exists": true,
          "license": "MIT",
          "keywords": [
            "CLI",
            "command-line",
            "commandline",
            "parser",
            "getopt",
            "optparse"
          ],
          "ecosystem": "npm",
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/@optique/run",
          "is_deprecated": false,
          "latest_version": "1.2.0",
          "repository_url": "https://github.com/dahlia/optique",
          "versions_count": 748,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 1,
          "monthly_downloads": 103537,
          "first_published_at": "2025-08-19T05:37:33.748000Z",
          "latest_published_at": "2026-07-21T05:45:39.992000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 0
        },
        {
          "name": "@optique/zod",
          "exists": true,
          "license": "MIT",
          "keywords": [
            "CLI",
            "command-line",
            "commandline",
            "parser",
            "zod",
            "validation"
          ],
          "ecosystem": "npm",
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/@optique/zod",
          "is_deprecated": false,
          "latest_version": "1.2.0",
          "repository_url": "https://github.com/dahlia/optique",
          "versions_count": 649,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 1,
          "monthly_downloads": 25807,
          "first_published_at": "2025-11-18T14:41:12.617000Z",
          "latest_published_at": "2026-07-21T05:46:03.846000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 0
        },
        {
          "name": "@optique/core",
          "exists": true,
          "license": "MIT",
          "keywords": [
            "CLI",
            "command-line",
            "commandline",
            "parser",
            "getopt",
            "optparse"
          ],
          "ecosystem": "npm",
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/@optique/core",
          "is_deprecated": false,
          "latest_version": "1.2.0",
          "repository_url": "https://github.com/dahlia/optique",
          "versions_count": 755,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 1,
          "monthly_downloads": 126256,
          "first_published_at": "2025-08-19T05:37:25.911000Z",
          "latest_published_at": "2026-07-21T05:45:22.251000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 0
        },
        {
          "name": "@optique/clack",
          "exists": true,
          "license": "MIT",
          "keywords": [
            "CLI",
            "command-line",
            "commandline",
            "parser",
            "prompt",
            "interactive",
            "clack"
          ],
          "ecosystem": "npm",
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/@optique/clack",
          "is_deprecated": false,
          "latest_version": "1.2.0",
          "repository_url": "https://github.com/dahlia/optique",
          "versions_count": 62,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 1,
          "monthly_downloads": 9486,
          "first_published_at": "2026-06-25T03:27:58.889000Z",
          "latest_published_at": "2026-07-21T05:46:33.016000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 0
        },
        {
          "name": "@optique/config",
          "exists": true,
          "license": "MIT",
          "keywords": [
            "CLI",
            "command-line",
            "commandline",
            "parser",
            "config",
            "configuration",
            "standard-schema",
            "validation"
          ],
          "ecosystem": "npm",
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/@optique/config",
          "is_deprecated": false,
          "latest_version": "1.2.0",
          "repository_url": "https://github.com/dahlia/optique",
          "versions_count": 490,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 1,
          "monthly_downloads": 20167,
          "first_published_at": "2026-01-25T17:44:28.806000Z",
          "latest_published_at": "2026-07-21T05:45:07.456000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 0
        }
      ]
    },
    "popularity": {
      "forks": 9,
      "stars": 713,
      "watchers": 4,
      "fork_history": {
        "days": [
          {
            "date": "2025-08-28",
            "count": 1
          },
          {
            "date": "2025-09-07",
            "count": 1
          },
          {
            "date": "2025-11-20",
            "count": 1
          },
          {
            "date": "2025-12-13",
            "count": 1
          },
          {
            "date": "2025-12-31",
            "count": 1
          },
          {
            "date": "2026-02-26",
            "count": 1
          },
          {
            "date": "2026-04-02",
            "count": 1
          },
          {
            "date": "2026-06-28",
            "count": 1
          },
          {
            "date": "2026-07-13",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 9,
        "total_forks": 9
      },
      "star_history": {
        "days": [
          {
            "date": "2025-08-19",
            "count": 8
          },
          {
            "date": "2025-08-20",
            "count": 3
          },
          {
            "date": "2025-08-21",
            "count": 25
          },
          {
            "date": "2025-08-22",
            "count": 30
          },
          {
            "date": "2025-08-23",
            "count": 25
          },
          {
            "date": "2025-08-24",
            "count": 14
          },
          {
            "date": "2025-08-25",
            "count": 8
          },
          {
            "date": "2025-08-26",
            "count": 5
          },
          {
            "date": "2025-08-27",
            "count": 8
          },
          {
            "date": "2025-08-28",
            "count": 27
          },
          {
            "date": "2025-08-29",
            "count": 5
          },
          {
            "date": "2025-08-30",
            "count": 4
          },
          {
            "date": "2025-08-31",
            "count": 2
          },
          {
            "date": "2025-09-01",
            "count": 1
          },
          {
            "date": "2025-09-02",
            "count": 2
          },
          {
            "date": "2025-09-03",
            "count": 6
          },
          {
            "date": "2025-09-04",
            "count": 2
          },
          {
            "date": "2025-09-05",
            "count": 3
          },
          {
            "date": "2025-09-06",
            "count": 30
          },
          {
            "date": "2025-09-07",
            "count": 61
          },
          {
            "date": "2025-09-08",
            "count": 22
          },
          {
            "date": "2025-09-09",
            "count": 4
          },
          {
            "date": "2025-09-10",
            "count": 3
          },
          {
            "date": "2025-09-11",
            "count": 13
          },
          {
            "date": "2025-09-12",
            "count": 41
          },
          {
            "date": "2025-09-13",
            "count": 17
          },
          {
            "date": "2025-09-14",
            "count": 11
          },
          {
            "date": "2025-09-15",
            "count": 10
          },
          {
            "date": "2025-09-16",
            "count": 8
          },
          {
            "date": "2025-09-17",
            "count": 6
          },
          {
            "date": "2025-09-18",
            "count": 3
          },
          {
            "date": "2025-09-19",
            "count": 5
          },
          {
            "date": "2025-09-20",
            "count": 1
          },
          {
            "date": "2025-09-21",
            "count": 3
          },
          {
            "date": "2025-09-22",
            "count": 2
          },
          {
            "date": "2025-09-23",
            "count": 2
          },
          {
            "date": "2025-09-24",
            "count": 3
          },
          {
            "date": "2025-09-25",
            "count": 3
          },
          {
            "date": "2025-09-26",
            "count": 2
          },
          {
            "date": "2025-09-27",
            "count": 1
          },
          {
            "date": "2025-09-29",
            "count": 1
          },
          {
            "date": "2025-09-30",
            "count": 1
          },
          {
            "date": "2025-10-01",
            "count": 1
          },
          {
            "date": "2025-10-04",
            "count": 2
          },
          {
            "date": "2025-10-05",
            "count": 4
          },
          {
            "date": "2025-10-06",
            "count": 2
          },
          {
            "date": "2025-10-07",
            "count": 1
          },
          {
            "date": "2025-10-09",
            "count": 2
          },
          {
            "date": "2025-10-13",
            "count": 1
          },
          {
            "date": "2025-10-14",
            "count": 2
          },
          {
            "date": "2025-10-15",
            "count": 3
          },
          {
            "date": "2025-10-18",
            "count": 3
          },
          {
            "date": "2025-10-19",
            "count": 2
          },
          {
            "date": "2025-10-21",
            "count": 4
          },
          {
            "date": "2025-10-25",
            "count": 2
          },
          {
            "date": "2025-10-26",
            "count": 2
          },
          {
            "date": "2025-10-29",
            "count": 1
          },
          {
            "date": "2025-10-31",
            "count": 1
          },
          {
            "date": "2025-11-02",
            "count": 1
          },
          {
            "date": "2025-11-10",
            "count": 2
          },
          {
            "date": "2025-11-11",
            "count": 1
          },
          {
            "date": "2025-11-12",
            "count": 1
          },
          {
            "date": "2025-11-15",
            "count": 1
          },
          {
            "date": "2025-11-17",
            "count": 1
          },
          {
            "date": "2025-11-20",
            "count": 1
          },
          {
            "date": "2025-11-24",
            "count": 1
          },
          {
            "date": "2025-11-25",
            "count": 2
          },
          {
            "date": "2025-11-27",
            "count": 1
          },
          {
            "date": "2025-11-28",
            "count": 1
          },
          {
            "date": "2025-11-29",
            "count": 1
          },
          {
            "date": "2025-11-30",
            "count": 1
          },
          {
            "date": "2025-12-06",
            "count": 1
          },
          {
            "date": "2025-12-07",
            "count": 2
          },
          {
            "date": "2025-12-08",
            "count": 1
          },
          {
            "date": "2025-12-09",
            "count": 8
          },
          {
            "date": "2025-12-10",
            "count": 2
          },
          {
            "date": "2025-12-11",
            "count": 1
          },
          {
            "date": "2025-12-12",
            "count": 1
          },
          {
            "date": "2025-12-13",
            "count": 2
          },
          {
            "date": "2025-12-14",
            "count": 5
          },
          {
            "date": "2025-12-15",
            "count": 9
          },
          {
            "date": "2025-12-16",
            "count": 1
          },
          {
            "date": "2025-12-17",
            "count": 3
          },
          {
            "date": "2025-12-18",
            "count": 2
          },
          {
            "date": "2025-12-19",
            "count": 5
          },
          {
            "date": "2025-12-21",
            "count": 3
          },
          {
            "date": "2025-12-22",
            "count": 1
          },
          {
            "date": "2025-12-23",
            "count": 2
          },
          {
            "date": "2025-12-25",
            "count": 1
          },
          {
            "date": "2025-12-26",
            "count": 1
          },
          {
            "date": "2025-12-28",
            "count": 1
          },
          {
            "date": "2025-12-29",
            "count": 1
          },
          {
            "date": "2026-01-02",
            "count": 5
          },
          {
            "date": "2026-01-03",
            "count": 2
          },
          {
            "date": "2026-01-04",
            "count": 1
          },
          {
            "date": "2026-01-05",
            "count": 1
          },
          {
            "date": "2026-01-06",
            "count": 1
          },
          {
            "date": "2026-01-07",
            "count": 1
          },
          {
            "date": "2026-01-08",
            "count": 1
          },
          {
            "date": "2026-01-09",
            "count": 1
          },
          {
            "date": "2026-01-10",
            "count": 2
          },
          {
            "date": "2026-01-12",
            "count": 1
          },
          {
            "date": "2026-01-13",
            "count": 2
          },
          {
            "date": "2026-01-14",
            "count": 3
          },
          {
            "date": "2026-01-15",
            "count": 1
          },
          {
            "date": "2026-01-16",
            "count": 5
          },
          {
            "date": "2026-01-17",
            "count": 3
          },
          {
            "date": "2026-01-18",
            "count": 2
          },
          {
            "date": "2026-01-19",
            "count": 1
          },
          {
            "date": "2026-01-20",
            "count": 2
          },
          {
            "date": "2026-01-23",
            "count": 2
          },
          {
            "date": "2026-01-27",
            "count": 1
          },
          {
            "date": "2026-02-04",
            "count": 2
          },
          {
            "date": "2026-02-09",
            "count": 2
          },
          {
            "date": "2026-02-13",
            "count": 1
          },
          {
            "date": "2026-02-15",
            "count": 1
          },
          {
            "date": "2026-02-16",
            "count": 6
          },
          {
            "date": "2026-02-18",
            "count": 1
          },
          {
            "date": "2026-02-23",
            "count": 1
          },
          {
            "date": "2026-02-24",
            "count": 2
          },
          {
            "date": "2026-02-25",
            "count": 2
          },
          {
            "date": "2026-03-01",
            "count": 1
          },
          {
            "date": "2026-03-11",
            "count": 1
          },
          {
            "date": "2026-03-12",
            "count": 1
          },
          {
            "date": "2026-03-13",
            "count": 1
          },
          {
            "date": "2026-03-16",
            "count": 4
          },
          {
            "date": "2026-03-17",
            "count": 2
          },
          {
            "date": "2026-03-21",
            "count": 1
          },
          {
            "date": "2026-03-23",
            "count": 1
          },
          {
            "date": "2026-03-27",
            "count": 1
          },
          {
            "date": "2026-03-28",
            "count": 1
          },
          {
            "date": "2026-04-01",
            "count": 1
          },
          {
            "date": "2026-04-06",
            "count": 1
          },
          {
            "date": "2026-04-09",
            "count": 1
          },
          {
            "date": "2026-04-12",
            "count": 2
          },
          {
            "date": "2026-04-13",
            "count": 2
          },
          {
            "date": "2026-04-14",
            "count": 4
          },
          {
            "date": "2026-04-15",
            "count": 5
          },
          {
            "date": "2026-04-16",
            "count": 2
          },
          {
            "date": "2026-04-17",
            "count": 4
          },
          {
            "date": "2026-04-18",
            "count": 1
          },
          {
            "date": "2026-04-19",
            "count": 2
          },
          {
            "date": "2026-04-20",
            "count": 1
          },
          {
            "date": "2026-04-21",
            "count": 2
          },
          {
            "date": "2026-04-23",
            "count": 10
          },
          {
            "date": "2026-04-24",
            "count": 15
          },
          {
            "date": "2026-04-25",
            "count": 3
          },
          {
            "date": "2026-04-26",
            "count": 2
          },
          {
            "date": "2026-04-27",
            "count": 1
          },
          {
            "date": "2026-04-28",
            "count": 4
          },
          {
            "date": "2026-05-04",
            "count": 3
          },
          {
            "date": "2026-05-07",
            "count": 3
          },
          {
            "date": "2026-05-08",
            "count": 1
          },
          {
            "date": "2026-05-09",
            "count": 1
          },
          {
            "date": "2026-05-10",
            "count": 2
          },
          {
            "date": "2026-05-11",
            "count": 1
          },
          {
            "date": "2026-05-12",
            "count": 2
          },
          {
            "date": "2026-05-14",
            "count": 1
          },
          {
            "date": "2026-05-15",
            "count": 2
          },
          {
            "date": "2026-05-16",
            "count": 1
          },
          {
            "date": "2026-05-18",
            "count": 1
          },
          {
            "date": "2026-05-22",
            "count": 2
          },
          {
            "date": "2026-05-24",
            "count": 1
          },
          {
            "date": "2026-05-25",
            "count": 1
          },
          {
            "date": "2026-05-26",
            "count": 1
          },
          {
            "date": "2026-05-30",
            "count": 1
          },
          {
            "date": "2026-05-31",
            "count": 1
          },
          {
            "date": "2026-06-07",
            "count": 2
          },
          {
            "date": "2026-06-08",
            "count": 1
          },
          {
            "date": "2026-06-09",
            "count": 1
          },
          {
            "date": "2026-06-14",
            "count": 1
          },
          {
            "date": "2026-06-16",
            "count": 1
          },
          {
            "date": "2026-06-17",
            "count": 1
          },
          {
            "date": "2026-06-20",
            "count": 1
          },
          {
            "date": "2026-06-25",
            "count": 1
          },
          {
            "date": "2026-06-26",
            "count": 1
          },
          {
            "date": "2026-06-29",
            "count": 1
          },
          {
            "date": "2026-07-01",
            "count": 1
          },
          {
            "date": "2026-07-04",
            "count": 2
          },
          {
            "date": "2026-07-05",
            "count": 1
          },
          {
            "date": "2026-07-06",
            "count": 1
          },
          {
            "date": "2026-07-09",
            "count": 1
          },
          {
            "date": "2026-07-12",
            "count": 1
          },
          {
            "date": "2026-07-14",
            "count": 1
          },
          {
            "date": "2026-07-18",
            "count": 1
          },
          {
            "date": "2026-07-21",
            "count": 3
          }
        ],
        "complete": true,
        "collected": 713,
        "total_stars": 713
      },
      "open_issues_and_prs": 7
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [
        "examples"
      ],
      "has_llms_txt": false,
      "has_dockerfile": false,
      "has_mcp_signal": false,
      "bootstrap_files": [
        "mise.toml"
      ],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [],
      "toolchain_manifests": [],
      "largest_source_bytes": 707468,
      "source_files_sampled": 202,
      "oversized_source_files": 29,
      "agent_instruction_files": [
        "AGENTS.md",
        "CLAUDE.md",
        "examples/gitique/.cursorrules",
        "examples/gitique/.windsurfrules",
        "examples/gitique/AGENT.md",
        "examples/gitique/AGENTS.md",
        "examples/gitique/CLAUDE.md",
        "examples/gitique/GEMINI.md"
      ],
      "agent_instruction_max_bytes": 9590
    },
    "dependencies": {
      "manifests": [
        "docs/package.json"
      ],
      "advisories": {
        "error": null,
        "scope": "repository_graph",
        "source": "osv",
        "findings": [
          {
            "name": "rollup",
            "direct": false,
            "version": "4.46.3",
            "severity": "critical",
            "ecosystem": "npm",
            "cvss_score": 9.1,
            "advisory_ids": [
              "GHSA-mw96-cpmx-2vgc"
            ],
            "fixed_version": "4.59.0",
            "advisory_count": 1,
            "oldest_advisory_days": 145
          },
          {
            "name": "@isaacs/brace-expansion",
            "direct": false,
            "version": "5.0.0",
            "severity": "high",
            "ecosystem": "npm",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-7h2j-956f-4vf2"
            ],
            "fixed_version": "5.0.1",
            "advisory_count": 1,
            "oldest_advisory_days": 167
          },
          {
            "name": "defu",
            "direct": false,
            "version": "6.1.4",
            "severity": "high",
            "ecosystem": "npm",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-737v-mqg7-c878"
            ],
            "fixed_version": "6.1.5",
            "advisory_count": 1,
            "oldest_advisory_days": 108
          },
          {
            "name": "js-yaml",
            "direct": false,
            "version": "3.14.1",
            "severity": "high",
            "ecosystem": "npm",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-52cp-r559-cp3m",
              "GHSA-h67p-54hq-rp68",
              "GHSA-mh29-5h37-fv8m"
            ],
            "fixed_version": "4.3.0",
            "advisory_count": 3,
            "oldest_advisory_days": 249
          },
          {
            "name": "linkify-it",
            "direct": false,
            "version": "5.0.0",
            "severity": "high",
            "ecosystem": "npm",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-22p9-wv53-3rq4"
            ],
            "fixed_version": "5.0.1",
            "advisory_count": 1,
            "oldest_advisory_days": 24
          },
          {
            "name": "minimatch",
            "direct": false,
            "version": "10.0.3",
            "severity": "high",
            "ecosystem": "npm",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-23c5-xmqv-rm74",
              "GHSA-3ppc-4f35-3m26",
              "GHSA-7r86-cg39-jmmj"
            ],
            "fixed_version": "10.2.3",
            "advisory_count": 3,
            "oldest_advisory_days": 152
          },
          {
            "name": "path-to-regexp",
            "direct": false,
            "version": "8.2.0",
            "severity": "high",
            "ecosystem": "npm",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-27v5-c462-wpq7",
              "GHSA-j3q9-mxjg-w52f"
            ],
            "fixed_version": "8.4.0",
            "advisory_count": 2,
            "oldest_advisory_days": 115
          },
          {
            "name": "picomatch",
            "direct": false,
            "version": "4.0.3",
            "severity": "high",
            "ecosystem": "npm",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-3v7f-55p6-f55p",
              "GHSA-c2c7-rcm5-vvqj"
            ],
            "fixed_version": "4.0.4",
            "advisory_count": 2,
            "oldest_advisory_days": 117
          },
          {
            "name": "undici",
            "direct": false,
            "version": "7.24.8",
            "severity": "high",
            "ecosystem": "npm",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-35p6-xmwp-9g52",
              "GHSA-g8m3-5g58-fq7m",
              "GHSA-hm92-r4w5-c3mj",
              "GHSA-p88m-4jfj-68fv",
              "GHSA-pr7r-676h-xcf6",
              "GHSA-vmh5-mc38-953g",
              "GHSA-vxpw-j846-p89q"
            ],
            "fixed_version": "8.5.0",
            "advisory_count": 7,
            "oldest_advisory_days": 33
          },
          {
            "name": "ws",
            "direct": false,
            "version": "8.18.0",
            "severity": "high",
            "ecosystem": "npm",
            "cvss_score": 7.5,
            "advisory_ids": [
              "GHSA-58qx-3vcg-4xpx",
              "GHSA-96hv-2xvq-fx4p"
            ],
            "fixed_version": "8.21.0",
            "advisory_count": 2,
            "oldest_advisory_days": 63
          },
          {
            "name": "isomorphic-git",
            "direct": true,
            "version": "catalog:",
            "severity": "moderate",
            "ecosystem": "npm",
            "cvss_score": 5.3,
            "advisory_ids": [
              "GHSA-fgxq-p49f-qw99"
            ],
            "fixed_version": "1.8.2",
            "advisory_count": 1,
            "oldest_advisory_days": 1782
          },
          {
            "name": "diff",
            "direct": false,
            "version": "8.0.2",
            "severity": "moderate",
            "ecosystem": "npm",
            "cvss_score": 5.3,
            "advisory_ids": [
              "GHSA-73rr-hh4g-fpgx"
            ],
            "fixed_version": "8.0.3",
            "advisory_count": 1,
            "oldest_advisory_days": 187
          },
          {
            "name": "markdown-it",
            "direct": false,
            "version": "14.1.0",
            "severity": "moderate",
            "ecosystem": "npm",
            "cvss_score": 5.3,
            "advisory_ids": [
              "GHSA-38c4-r59v-3vqw",
              "GHSA-6v5v-wf23-fmfq"
            ],
            "fixed_version": "14.2.0",
            "advisory_count": 2,
            "oldest_advisory_days": 159
          },
          {
            "name": "yaml",
            "direct": false,
            "version": "2.8.2",
            "severity": "moderate",
            "ecosystem": "npm",
            "cvss_score": 4.3,
            "advisory_ids": [
              "GHSA-48c2-rrv3-qjmp"
            ],
            "fixed_version": "2.8.3",
            "advisory_count": 1,
            "oldest_advisory_days": 117
          },
          {
            "name": "zod",
            "direct": false,
            "version": "catalog:",
            "severity": "moderate",
            "ecosystem": "npm",
            "cvss_score": 5.3,
            "advisory_ids": [
              "GHSA-m95q-7qp3-xv42"
            ],
            "fixed_version": "3.22.3",
            "advisory_count": 1,
            "oldest_advisory_days": 1026
          },
          {
            "name": "esbuild",
            "direct": false,
            "version": "0.27.3",
            "severity": "low",
            "ecosystem": "npm",
            "cvss_score": 2.5,
            "advisory_ids": [
              "GHSA-g7r4-m6w7-qqqr"
            ],
            "fixed_version": "0.28.1",
            "advisory_count": 1,
            "oldest_advisory_days": 38
          }
        ],
        "collected": true,
        "truncated": false,
        "by_severity": {
          "low": 1,
          "high": 9,
          "critical": 1,
          "moderate": 5
        },
        "advisory_count": 30,
        "affected_count": 16,
        "assessed_count": 637,
        "assessed_package": null,
        "unassessed_count": 15,
        "direct_affected_count": 1
      },
      "ecosystems": [
        "npm"
      ],
      "dependencies": [
        {
          "name": "@clack/prompts",
          "manifest": "packages/clack/package.json",
          "ecosystem": "npm",
          "version_constraint": "catalog:"
        },
        {
          "name": "@optique/core",
          "manifest": "packages/clack/package.json",
          "ecosystem": "npm",
          "version_constraint": "workspace:*"
        },
        {
          "name": "@optique/prompt",
          "manifest": "packages/clack/package.json",
          "ecosystem": "npm",
          "version_constraint": "workspace:*"
        },
        {
          "name": "@optique/core",
          "manifest": "packages/config/package.json",
          "ecosystem": "npm",
          "version_constraint": "workspace:*"
        },
        {
          "name": "@optique/core",
          "manifest": "packages/derived-defaults/package.json",
          "ecosystem": "npm",
          "version_constraint": "workspace:*"
        },
        {
          "name": "@optique/core",
          "manifest": "packages/discover/package.json",
          "ecosystem": "npm",
          "version_constraint": "workspace:*"
        },
        {
          "name": "@optique/run",
          "manifest": "packages/discover/package.json",
          "ecosystem": "npm",
          "version_constraint": "workspace:*"
        },
        {
          "name": "@optique/core",
          "manifest": "packages/env/package.json",
          "ecosystem": "npm",
          "version_constraint": "workspace:*"
        },
        {
          "name": "@logtape/logtape",
          "manifest": "packages/git/package.json",
          "ecosystem": "npm",
          "version_constraint": "catalog:"
        },
        {
          "name": "@optique/core",
          "manifest": "packages/git/package.json",
          "ecosystem": "npm",
          "version_constraint": "workspace:"
        },
        {
          "name": "isomorphic-git",
          "manifest": "packages/git/package.json",
          "ecosystem": "npm",
          "version_constraint": "catalog:"
        },
        {
          "name": "@inquirer/prompts",
          "manifest": "packages/inquirer/package.json",
          "ecosystem": "npm",
          "version_constraint": "catalog:"
        },
        {
          "name": "@optique/core",
          "manifest": "packages/inquirer/package.json",
          "ecosystem": "npm",
          "version_constraint": "workspace:*"
        },
        {
          "name": "@optique/prompt",
          "manifest": "packages/inquirer/package.json",
          "ecosystem": "npm",
          "version_constraint": "workspace:*"
        },
        {
          "name": "@optique/core",
          "manifest": "packages/logtape/package.json",
          "ecosystem": "npm",
          "version_constraint": "workspace:"
        },
        {
          "name": "@optique/core",
          "manifest": "packages/man/package.json",
          "ecosystem": "npm",
          "version_constraint": "workspace:"
        },
        {
          "name": "@optique/run",
          "manifest": "packages/man/package.json",
          "ecosystem": "npm",
          "version_constraint": "workspace:"
        },
        {
          "name": "@optique/core",
          "manifest": "packages/prompt/package.json",
          "ecosystem": "npm",
          "version_constraint": "workspace:*"
        },
        {
          "name": "@optique/core",
          "manifest": "packages/run/package.json",
          "ecosystem": "npm",
          "version_constraint": "workspace:*"
        },
        {
          "name": "@optique/core",
          "manifest": "packages/standard-schema/package.json",
          "ecosystem": "npm",
          "version_constraint": "workspace:"
        },
        {
          "name": "@js-temporal/polyfill",
          "manifest": "packages/temporal/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.5.1"
        },
        {
          "name": "@optique/core",
          "manifest": "packages/temporal/package.json",
          "ecosystem": "npm",
          "version_constraint": "workspace:"
        },
        {
          "name": "@optique/core",
          "manifest": "packages/valibot/package.json",
          "ecosystem": "npm",
          "version_constraint": "workspace:"
        },
        {
          "name": "@optique/core",
          "manifest": "packages/zod/package.json",
          "ecosystem": "npm",
          "version_constraint": "workspace:"
        }
      ],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [
          {
            "name": "@clack/prompts",
            "direct": true,
            "version": "1.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "@clack/prompts",
            "direct": true,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "@inquirer/prompts",
            "direct": true,
            "version": "8.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "@inquirer/prompts",
            "direct": true,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "@js-temporal/polyfill",
            "direct": true,
            "version": "0.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "@js-temporal/polyfill",
            "direct": true,
            "version": "^0.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "@logtape/logtape",
            "direct": true,
            "version": "2.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "@logtape/logtape",
            "direct": true,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "isomorphic-git",
            "direct": true,
            "version": "1.36.1",
            "ecosystem": "npm"
          },
          {
            "name": "isomorphic-git",
            "direct": true,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "@antfu/install-pkg",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@antfu/utils",
            "direct": false,
            "version": "9.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@ark/schema",
            "direct": false,
            "version": "0.56.0",
            "ecosystem": "npm"
          },
          {
            "name": "@ark/util",
            "direct": false,
            "version": "0.56.0",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/generator",
            "direct": false,
            "version": "7.28.0",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-string-parser",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/helper-validator-identifier",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/parser",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@babel/types",
            "direct": false,
            "version": "7.29.7",
            "ecosystem": "npm"
          },
          {
            "name": "@braintree/sanitize-url",
            "direct": false,
            "version": "6.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "@braintree/sanitize-url",
            "direct": false,
            "version": "7.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "@chevrotain/types",
            "direct": false,
            "version": "11.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "@clack/core",
            "direct": false,
            "version": "1.4.2",
            "ecosystem": "npm"
          },
          {
            "name": "@cloudflare/kv-asset-handler",
            "direct": false,
            "version": "0.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "@cloudflare/unenv-preset",
            "direct": false,
            "version": "2.16.1",
            "ecosystem": "npm"
          },
          {
            "name": "@cloudflare/workerd-darwin-64",
            "direct": false,
            "version": "1.20260511.1",
            "ecosystem": "npm"
          },
          {
            "name": "@cloudflare/workerd-darwin-arm64",
            "direct": false,
            "version": "1.20260511.1",
            "ecosystem": "npm"
          },
          {
            "name": "@cloudflare/workerd-linux-64",
            "direct": false,
            "version": "1.20260511.1",
            "ecosystem": "npm"
          },
          {
            "name": "@cloudflare/workerd-linux-arm64",
            "direct": false,
            "version": "1.20260511.1",
            "ecosystem": "npm"
          },
          {
            "name": "@cloudflare/workerd-windows-64",
            "direct": false,
            "version": "1.20260511.1",
            "ecosystem": "npm"
          },
          {
            "name": "@cspotcode/source-map-support",
            "direct": false,
            "version": "0.8.1",
            "ecosystem": "npm"
          },
          {
            "name": "@docsearch/css",
            "direct": false,
            "version": "4.6.3",
            "ecosystem": "npm"
          },
          {
            "name": "@docsearch/js",
            "direct": false,
            "version": "4.6.3",
            "ecosystem": "npm"
          },
          {
            "name": "@docsearch/sidepanel-js",
            "direct": false,
            "version": "4.6.3",
            "ecosystem": "npm"
          },
          {
            "name": "@emnapi/core",
            "direct": false,
            "version": "1.4.5",
            "ecosystem": "npm"
          },
          {
            "name": "@emnapi/runtime",
            "direct": false,
            "version": "1.10.0",
            "ecosystem": "npm"
          },
          {
            "name": "@emnapi/wasi-threads",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/aix-ppc64",
            "direct": false,
            "version": "0.27.3",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/android-arm",
            "direct": false,
            "version": "0.27.3",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/android-arm64",
            "direct": false,
            "version": "0.27.3",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/android-x64",
            "direct": false,
            "version": "0.27.3",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/darwin-arm64",
            "direct": false,
            "version": "0.27.3",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/darwin-x64",
            "direct": false,
            "version": "0.27.3",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/freebsd-arm64",
            "direct": false,
            "version": "0.27.3",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/freebsd-x64",
            "direct": false,
            "version": "0.27.3",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-arm",
            "direct": false,
            "version": "0.27.3",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-arm64",
            "direct": false,
            "version": "0.27.3",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-ia32",
            "direct": false,
            "version": "0.27.3",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-loong64",
            "direct": false,
            "version": "0.27.3",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-mips64el",
            "direct": false,
            "version": "0.27.3",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-ppc64",
            "direct": false,
            "version": "0.27.3",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-riscv64",
            "direct": false,
            "version": "0.27.3",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-s390x",
            "direct": false,
            "version": "0.27.3",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-x64",
            "direct": false,
            "version": "0.27.3",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/netbsd-arm64",
            "direct": false,
            "version": "0.27.3",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/netbsd-x64",
            "direct": false,
            "version": "0.27.3",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/openbsd-arm64",
            "direct": false,
            "version": "0.27.3",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/openbsd-x64",
            "direct": false,
            "version": "0.27.3",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/openharmony-arm64",
            "direct": false,
            "version": "0.27.3",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/sunos-x64",
            "direct": false,
            "version": "0.27.3",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/win32-arm64",
            "direct": false,
            "version": "0.27.3",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/win32-ia32",
            "direct": false,
            "version": "0.27.3",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/win32-x64",
            "direct": false,
            "version": "0.27.3",
            "ecosystem": "npm"
          },
          {
            "name": "@floating-ui/core",
            "direct": false,
            "version": "1.7.3",
            "ecosystem": "npm"
          },
          {
            "name": "@floating-ui/dom",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "@floating-ui/utils",
            "direct": false,
            "version": "0.2.10",
            "ecosystem": "npm"
          },
          {
            "name": "@fontsource-variable/space-grotesk",
            "direct": false,
            "version": "5.2.10",
            "ecosystem": "npm"
          },
          {
            "name": "@fontsource-variable/space-grotesk",
            "direct": false,
            "version": "^5.2.10",
            "ecosystem": "npm"
          },
          {
            "name": "@iconify-json/logos",
            "direct": false,
            "version": "1.2.9",
            "ecosystem": "npm"
          },
          {
            "name": "@iconify-json/simple-icons",
            "direct": false,
            "version": "1.2.86",
            "ecosystem": "npm"
          },
          {
            "name": "@iconify-json/vscode-icons",
            "direct": false,
            "version": "1.2.29",
            "ecosystem": "npm"
          },
          {
            "name": "@iconify/types",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "@iconify/utils",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "@iconify/utils",
            "direct": false,
            "version": "3.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "@img/colour",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-darwin-arm64",
            "direct": false,
            "version": "0.34.5",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-darwin-x64",
            "direct": false,
            "version": "0.34.5",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-libvips-darwin-arm64",
            "direct": false,
            "version": "1.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-libvips-darwin-x64",
            "direct": false,
            "version": "1.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-libvips-linux-arm",
            "direct": false,
            "version": "1.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-libvips-linux-arm64",
            "direct": false,
            "version": "1.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-libvips-linux-ppc64",
            "direct": false,
            "version": "1.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-libvips-linux-riscv64",
            "direct": false,
            "version": "1.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-libvips-linux-s390x",
            "direct": false,
            "version": "1.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-libvips-linux-x64",
            "direct": false,
            "version": "1.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-libvips-linuxmusl-arm64",
            "direct": false,
            "version": "1.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-libvips-linuxmusl-x64",
            "direct": false,
            "version": "1.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-linux-arm",
            "direct": false,
            "version": "0.34.5",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-linux-arm64",
            "direct": false,
            "version": "0.34.5",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-linux-ppc64",
            "direct": false,
            "version": "0.34.5",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-linux-riscv64",
            "direct": false,
            "version": "0.34.5",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-linux-s390x",
            "direct": false,
            "version": "0.34.5",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-linux-x64",
            "direct": false,
            "version": "0.34.5",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-linuxmusl-arm64",
            "direct": false,
            "version": "0.34.5",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-linuxmusl-x64",
            "direct": false,
            "version": "0.34.5",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-wasm32",
            "direct": false,
            "version": "0.34.5",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-win32-arm64",
            "direct": false,
            "version": "0.34.5",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-win32-ia32",
            "direct": false,
            "version": "0.34.5",
            "ecosystem": "npm"
          },
          {
            "name": "@img/sharp-win32-x64",
            "direct": false,
            "version": "0.34.5",
            "ecosystem": "npm"
          },
          {
            "name": "@inquirer/ansi",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@inquirer/checkbox",
            "direct": false,
            "version": "5.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@inquirer/confirm",
            "direct": false,
            "version": "6.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "@inquirer/core",
            "direct": false,
            "version": "11.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "@inquirer/editor",
            "direct": false,
            "version": "5.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "@inquirer/expand",
            "direct": false,
            "version": "5.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "@inquirer/external-editor",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@inquirer/figures",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@inquirer/input",
            "direct": false,
            "version": "5.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "@inquirer/number",
            "direct": false,
            "version": "4.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "@inquirer/password",
            "direct": false,
            "version": "5.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "@inquirer/rawlist",
            "direct": false,
            "version": "5.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "@inquirer/search",
            "direct": false,
            "version": "4.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "@inquirer/select",
            "direct": false,
            "version": "5.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@inquirer/type",
            "direct": false,
            "version": "4.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@isaacs/balanced-match",
            "direct": false,
            "version": "4.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "@isaacs/brace-expansion",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/gen-mapping",
            "direct": false,
            "version": "0.3.12",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/resolve-uri",
            "direct": false,
            "version": "3.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/sourcemap-codec",
            "direct": false,
            "version": "1.5.5",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/trace-mapping",
            "direct": false,
            "version": "0.3.29",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/trace-mapping",
            "direct": false,
            "version": "0.3.9",
            "ecosystem": "npm"
          },
          {
            "name": "@logtape/file",
            "direct": false,
            "version": "2.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "@logtape/file",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "@mermaid-js/mermaid-mindmap",
            "direct": false,
            "version": "9.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "@mermaid-js/parser",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@napi-rs/wasm-runtime",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-project/runtime",
            "direct": false,
            "version": "0.77.3",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-project/types",
            "direct": false,
            "version": "0.77.3",
            "ecosystem": "npm"
          },
          {
            "name": "@poppinss/colors",
            "direct": false,
            "version": "4.1.6",
            "ecosystem": "npm"
          },
          {
            "name": "@poppinss/dumper",
            "direct": false,
            "version": "0.6.5",
            "ecosystem": "npm"
          },
          {
            "name": "@poppinss/exception",
            "direct": false,
            "version": "1.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "@quansync/fs",
            "direct": false,
            "version": "0.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-android-arm64",
            "direct": false,
            "version": "1.0.0-beta.29",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-darwin-arm64",
            "direct": false,
            "version": "1.0.0-beta.29",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-darwin-x64",
            "direct": false,
            "version": "1.0.0-beta.29",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-freebsd-x64",
            "direct": false,
            "version": "1.0.0-beta.29",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-arm-gnueabihf",
            "direct": false,
            "version": "1.0.0-beta.29",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-arm64-gnu",
            "direct": false,
            "version": "1.0.0-beta.29",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-arm64-musl",
            "direct": false,
            "version": "1.0.0-beta.29",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-arm64-ohos",
            "direct": false,
            "version": "1.0.0-beta.29",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-x64-gnu",
            "direct": false,
            "version": "1.0.0-beta.29",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-x64-musl",
            "direct": false,
            "version": "1.0.0-beta.29",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-wasm32-wasi",
            "direct": false,
            "version": "1.0.0-beta.29",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-win32-arm64-msvc",
            "direct": false,
            "version": "1.0.0-beta.29",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-win32-ia32-msvc",
            "direct": false,
            "version": "1.0.0-beta.29",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-win32-x64-msvc",
            "direct": false,
            "version": "1.0.0-beta.29",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/pluginutils",
            "direct": false,
            "version": "1.0.0-beta.29",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/pluginutils",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-android-arm-eabi",
            "direct": false,
            "version": "4.46.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-android-arm64",
            "direct": false,
            "version": "4.46.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-darwin-arm64",
            "direct": false,
            "version": "4.46.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-darwin-x64",
            "direct": false,
            "version": "4.46.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-freebsd-arm64",
            "direct": false,
            "version": "4.46.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-freebsd-x64",
            "direct": false,
            "version": "4.46.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-arm-gnueabihf",
            "direct": false,
            "version": "4.46.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-arm-musleabihf",
            "direct": false,
            "version": "4.46.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-arm64-gnu",
            "direct": false,
            "version": "4.46.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-arm64-musl",
            "direct": false,
            "version": "4.46.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-loongarch64-gnu",
            "direct": false,
            "version": "4.46.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-ppc64-gnu",
            "direct": false,
            "version": "4.46.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-riscv64-gnu",
            "direct": false,
            "version": "4.46.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-riscv64-musl",
            "direct": false,
            "version": "4.46.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-s390x-gnu",
            "direct": false,
            "version": "4.46.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-x64-gnu",
            "direct": false,
            "version": "4.46.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-x64-musl",
            "direct": false,
            "version": "4.46.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-win32-arm64-msvc",
            "direct": false,
            "version": "4.46.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-win32-ia32-msvc",
            "direct": false,
            "version": "4.46.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-win32-x64-msvc",
            "direct": false,
            "version": "4.46.3",
            "ecosystem": "npm"
          },
          {
            "name": "@shikijs/core",
            "direct": false,
            "version": "3.20.0",
            "ecosystem": "npm"
          },
          {
            "name": "@shikijs/core",
            "direct": false,
            "version": "3.23.0",
            "ecosystem": "npm"
          },
          {
            "name": "@shikijs/engine-javascript",
            "direct": false,
            "version": "3.20.0",
            "ecosystem": "npm"
          },
          {
            "name": "@shikijs/engine-javascript",
            "direct": false,
            "version": "3.23.0",
            "ecosystem": "npm"
          },
          {
            "name": "@shikijs/engine-oniguruma",
            "direct": false,
            "version": "3.20.0",
            "ecosystem": "npm"
          },
          {
            "name": "@shikijs/engine-oniguruma",
            "direct": false,
            "version": "3.23.0",
            "ecosystem": "npm"
          },
          {
            "name": "@shikijs/langs",
            "direct": false,
            "version": "3.20.0",
            "ecosystem": "npm"
          },
          {
            "name": "@shikijs/langs",
            "direct": false,
            "version": "3.23.0",
            "ecosystem": "npm"
          },
          {
            "name": "@shikijs/themes",
            "direct": false,
            "version": "3.20.0",
            "ecosystem": "npm"
          },
          {
            "name": "@shikijs/themes",
            "direct": false,
            "version": "3.23.0",
            "ecosystem": "npm"
          },
          {
            "name": "@shikijs/transformers",
            "direct": false,
            "version": "3.23.0",
            "ecosystem": "npm"
          },
          {
            "name": "@shikijs/twoslash",
            "direct": false,
            "version": "3.20.0",
            "ecosystem": "npm"
          },
          {
            "name": "@shikijs/types",
            "direct": false,
            "version": "3.20.0",
            "ecosystem": "npm"
          },
          {
            "name": "@shikijs/types",
            "direct": false,
            "version": "3.23.0",
            "ecosystem": "npm"
          },
          {
            "name": "@shikijs/vitepress-twoslash",
            "direct": false,
            "version": "3.20.0",
            "ecosystem": "npm"
          },
          {
            "name": "@shikijs/vitepress-twoslash",
            "direct": false,
            "version": "^3.20.0",
            "ecosystem": "npm"
          },
          {
            "name": "@shikijs/vscode-textmate",
            "direct": false,
            "version": "10.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@sindresorhus/is",
            "direct": false,
            "version": "7.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "@speed-highlight/core",
            "direct": false,
            "version": "1.2.15",
            "ecosystem": "npm"
          },
          {
            "name": "@standard-schema/spec",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@standard-schema/spec",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "@tybys/wasm-util",
            "direct": false,
            "version": "0.10.0",
            "ecosystem": "npm"
          },
          {
            "name": "@types/d3",
            "direct": false,
            "version": "7.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/d3-array",
            "direct": false,
            "version": "3.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "@types/d3-axis",
            "direct": false,
            "version": "3.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "@types/d3-brush",
            "direct": false,
            "version": "3.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "@types/d3-chord",
            "direct": false,
            "version": "3.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "@types/d3-color",
            "direct": false,
            "version": "3.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/d3-contour",
            "direct": false,
            "version": "3.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "@types/d3-delaunay",
            "direct": false,
            "version": "6.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "@types/d3-dispatch",
            "direct": false,
            "version": "3.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "@types/d3-drag",
            "direct": false,
            "version": "3.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "@types/d3-dsv",
            "direct": false,
            "version": "3.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "@types/d3-ease",
            "direct": false,
            "version": "3.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@types/d3-fetch",
            "direct": false,
            "version": "3.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "@types/d3-force",
            "direct": false,
            "version": "3.0.10",
            "ecosystem": "npm"
          },
          {
            "name": "@types/d3-format",
            "direct": false,
            "version": "3.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "@types/d3-geo",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@types/d3-hierarchy",
            "direct": false,
            "version": "3.1.7",
            "ecosystem": "npm"
          },
          {
            "name": "@types/d3-interpolate",
            "direct": false,
            "version": "3.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "@types/d3-path",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "@types/d3-polygon",
            "direct": false,
            "version": "3.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@types/d3-quadtree",
            "direct": false,
            "version": "3.0.6",
            "ecosystem": "npm"
          },
          {
            "name": "@types/d3-random",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/d3-scale",
            "direct": false,
            "version": "4.0.9",
            "ecosystem": "npm"
          },
          {
            "name": "@types/d3-scale-chromatic",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@types/d3-selection",
            "direct": false,
            "version": "3.0.11",
            "ecosystem": "npm"
          },
          {
            "name": "@types/d3-shape",
            "direct": false,
            "version": "3.1.8",
            "ecosystem": "npm"
          },
          {
            "name": "@types/d3-time",
            "direct": false,
            "version": "3.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "@types/d3-time-format",
            "direct": false,
            "version": "4.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/d3-timer",
            "direct": false,
            "version": "3.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@types/d3-transition",
            "direct": false,
            "version": "3.0.9",
            "ecosystem": "npm"
          },
          {
            "name": "@types/d3-zoom",
            "direct": false,
            "version": "3.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "@types/debug",
            "direct": false,
            "version": "4.1.12",
            "ecosystem": "npm"
          },
          {
            "name": "@types/estree",
            "direct": false,
            "version": "1.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "@types/geojson",
            "direct": false,
            "version": "7946.0.16",
            "ecosystem": "npm"
          },
          {
            "name": "@types/hast",
            "direct": false,
            "version": "3.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "@types/linkify-it",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "@types/markdown-it",
            "direct": false,
            "version": "14.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "@types/mdast",
            "direct": false,
            "version": "4.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "@types/mdurl",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "@types/ms",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@types/node",
            "direct": false,
            "version": "20.19.41",
            "ecosystem": "npm"
          },
          {
            "name": "@types/node",
            "direct": false,
            "version": "24.12.4",
            "ecosystem": "npm"
          },
          {
            "name": "@types/node",
            "direct": false,
            "version": "^20.19.9",
            "ecosystem": "npm"
          },
          {
            "name": "@types/node",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "@types/trusted-types",
            "direct": false,
            "version": "2.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "@types/unist",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/web-bluetooth",
            "direct": false,
            "version": "0.0.21",
            "ecosystem": "npm"
          },
          {
            "name": "@typescript/vfs",
            "direct": false,
            "version": "1.6.1",
            "ecosystem": "npm"
          },
          {
            "name": "@ungap/structured-clone",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "@upsetjs/venn.js",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "@vitejs/plugin-vue",
            "direct": false,
            "version": "6.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "@volar/language-core",
            "direct": false,
            "version": "2.4.22",
            "ecosystem": "npm"
          },
          {
            "name": "@volar/source-map",
            "direct": false,
            "version": "2.4.22",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/compiler-core",
            "direct": false,
            "version": "3.5.38",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/compiler-dom",
            "direct": false,
            "version": "3.5.38",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/compiler-sfc",
            "direct": false,
            "version": "3.5.38",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/compiler-ssr",
            "direct": false,
            "version": "3.5.38",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/compiler-vue2",
            "direct": false,
            "version": "2.7.16",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/devtools-api",
            "direct": false,
            "version": "8.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/devtools-kit",
            "direct": false,
            "version": "8.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/devtools-shared",
            "direct": false,
            "version": "8.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/language-core",
            "direct": false,
            "version": "3.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/reactivity",
            "direct": false,
            "version": "3.5.38",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/runtime-core",
            "direct": false,
            "version": "3.5.38",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/runtime-dom",
            "direct": false,
            "version": "3.5.38",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/server-renderer",
            "direct": false,
            "version": "3.5.38",
            "ecosystem": "npm"
          },
          {
            "name": "@vue/shared",
            "direct": false,
            "version": "3.5.38",
            "ecosystem": "npm"
          },
          {
            "name": "@vueuse/core",
            "direct": false,
            "version": "14.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "@vueuse/integrations",
            "direct": false,
            "version": "14.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "@vueuse/metadata",
            "direct": false,
            "version": "14.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "@vueuse/shared",
            "direct": false,
            "version": "14.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "abort-controller",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "acorn",
            "direct": false,
            "version": "8.15.0",
            "ecosystem": "npm"
          },
          {
            "name": "alien-signals",
            "direct": false,
            "version": "2.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-regex",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "ansi-styles",
            "direct": false,
            "version": "4.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "ansis",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "argparse",
            "direct": false,
            "version": "1.0.10",
            "ecosystem": "npm"
          },
          {
            "name": "argparse",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "arkregex",
            "direct": false,
            "version": "0.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "arktype",
            "direct": false,
            "version": "2.1.29",
            "ecosystem": "npm"
          },
          {
            "name": "arktype",
            "direct": false,
            "version": "^2.1.29",
            "ecosystem": "npm"
          },
          {
            "name": "ast-kit",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "async-lock",
            "direct": false,
            "version": "1.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "available-typed-arrays",
            "direct": false,
            "version": "1.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "bail",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "base64-js",
            "direct": false,
            "version": "1.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "birpc",
            "direct": false,
            "version": "2.9.0",
            "ecosystem": "npm"
          },
          {
            "name": "blake3-wasm",
            "direct": false,
            "version": "2.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "buffer",
            "direct": false,
            "version": "6.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "byte-size",
            "direct": false,
            "version": "9.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "cac",
            "direct": false,
            "version": "6.7.14",
            "ecosystem": "npm"
          },
          {
            "name": "call-bind",
            "direct": false,
            "version": "1.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "call-bind-apply-helpers",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "call-bound",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "ccount",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "character-entities",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "character-entities-html4",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "character-entities-legacy",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "chardet",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "chokidar",
            "direct": false,
            "version": "4.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "clean-git-ref",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "cli-width",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "cliui",
            "direct": false,
            "version": "8.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "color-convert",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "color-name",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "comma-separated-tokens",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "commander",
            "direct": false,
            "version": "7.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "commander",
            "direct": false,
            "version": "8.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "confbox",
            "direct": false,
            "version": "0.1.8",
            "ecosystem": "npm"
          },
          {
            "name": "confbox",
            "direct": false,
            "version": "0.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "cookie",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "copy-anything",
            "direct": false,
            "version": "3.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "cose-base",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "cose-base",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "crc-32",
            "direct": false,
            "version": "1.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "csstype",
            "direct": false,
            "version": "3.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "cytoscape",
            "direct": false,
            "version": "3.34.0",
            "ecosystem": "npm"
          },
          {
            "name": "cytoscape-cose-bilkent",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "cytoscape-fcose",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "d3",
            "direct": false,
            "version": "7.9.0",
            "ecosystem": "npm"
          },
          {
            "name": "d3-array",
            "direct": false,
            "version": "2.12.1",
            "ecosystem": "npm"
          },
          {
            "name": "d3-array",
            "direct": false,
            "version": "3.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "d3-axis",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "d3-brush",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "d3-chord",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "d3-color",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "d3-contour",
            "direct": false,
            "version": "4.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "d3-delaunay",
            "direct": false,
            "version": "6.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "d3-dispatch",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "d3-drag",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "d3-dsv",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "d3-ease",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "d3-fetch",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "d3-force",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "d3-format",
            "direct": false,
            "version": "3.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "d3-geo",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "d3-hierarchy",
            "direct": false,
            "version": "3.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "d3-interpolate",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "d3-path",
            "direct": false,
            "version": "1.0.9",
            "ecosystem": "npm"
          },
          {
            "name": "d3-path",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "d3-polygon",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "d3-quadtree",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "d3-random",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "d3-sankey",
            "direct": false,
            "version": "0.12.3",
            "ecosystem": "npm"
          },
          {
            "name": "d3-scale",
            "direct": false,
            "version": "4.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "d3-scale-chromatic",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "d3-selection",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "d3-shape",
            "direct": false,
            "version": "1.3.7",
            "ecosystem": "npm"
          },
          {
            "name": "d3-shape",
            "direct": false,
            "version": "3.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "d3-time",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "d3-time-format",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "d3-timer",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "d3-transition",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "d3-zoom",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "dagre-d3-es",
            "direct": false,
            "version": "7.0.14",
            "ecosystem": "npm"
          },
          {
            "name": "dayjs",
            "direct": false,
            "version": "1.11.21",
            "ecosystem": "npm"
          },
          {
            "name": "de-indent",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "debug",
            "direct": false,
            "version": "4.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "decode-named-character-reference",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "decompress-response",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "define-data-property",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "defu",
            "direct": false,
            "version": "6.1.4",
            "ecosystem": "npm"
          },
          {
            "name": "delaunator",
            "direct": false,
            "version": "5.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "dequal",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "detect-libc",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "devlop",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "diff",
            "direct": false,
            "version": "8.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "diff3",
            "direct": false,
            "version": "0.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "dompurify",
            "direct": false,
            "version": "3.4.11",
            "ecosystem": "npm"
          },
          {
            "name": "dts-resolver",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "dunder-proto",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "emoji-regex",
            "direct": false,
            "version": "8.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "empathic",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "entities",
            "direct": false,
            "version": "4.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "entities",
            "direct": false,
            "version": "7.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "error-stack-parser-es",
            "direct": false,
            "version": "1.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "es-define-property",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "es-errors",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "es-git",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "es-git",
            "direct": false,
            "version": "^0.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "es-git-android-arm-eabi",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "es-git-android-arm64",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "es-git-darwin-arm64",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "es-git-darwin-x64",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "es-git-linux-arm64-gnu",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "es-git-linux-arm64-musl",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "es-git-linux-x64-gnu",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "es-git-linux-x64-musl",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "es-git-win32-arm64-msvc",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "es-git-win32-x64-msvc",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "es-object-atoms",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "es-toolkit",
            "direct": false,
            "version": "1.49.0",
            "ecosystem": "npm"
          },
          {
            "name": "esbuild",
            "direct": false,
            "version": "0.27.3",
            "ecosystem": "npm"
          },
          {
            "name": "escalade",
            "direct": false,
            "version": "3.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "escape-string-regexp",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "esprima",
            "direct": false,
            "version": "4.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "estree-walker",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "event-target-shim",
            "direct": false,
            "version": "5.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "events",
            "direct": false,
            "version": "3.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "exsolve",
            "direct": false,
            "version": "1.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "extend",
            "direct": false,
            "version": "3.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "extend-shallow",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "fast-check",
            "direct": false,
            "version": "4.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "fast-check",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "fast-string-truncated-width",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "fast-string-width",
            "direct": false,
            "version": "3.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "fast-wrap-ansi",
            "direct": false,
            "version": "0.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "fault",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "fdir",
            "direct": false,
            "version": "6.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "floating-vue",
            "direct": false,
            "version": "5.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "focus-trap",
            "direct": false,
            "version": "8.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "for-each",
            "direct": false,
            "version": "0.3.5",
            "ecosystem": "npm"
          },
          {
            "name": "format",
            "direct": false,
            "version": "0.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "fsevents",
            "direct": false,
            "version": "2.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "function-bind",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "get-caller-file",
            "direct": false,
            "version": "2.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "get-intrinsic",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "get-proto",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "get-tsconfig",
            "direct": false,
            "version": "4.10.1",
            "ecosystem": "npm"
          },
          {
            "name": "globals",
            "direct": false,
            "version": "15.15.0",
            "ecosystem": "npm"
          },
          {
            "name": "gopd",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "gray-matter",
            "direct": false,
            "version": "4.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "hachure-fill",
            "direct": false,
            "version": "0.5.2",
            "ecosystem": "npm"
          },
          {
            "name": "has-property-descriptors",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "has-symbols",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "has-tostringtag",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "hasown",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "hast-util-to-html",
            "direct": false,
            "version": "9.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "hast-util-whitespace",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "he",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "hookable",
            "direct": false,
            "version": "5.5.3",
            "ecosystem": "npm"
          },
          {
            "name": "html-void-elements",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "iconv-lite",
            "direct": false,
            "version": "0.6.3",
            "ecosystem": "npm"
          },
          {
            "name": "iconv-lite",
            "direct": false,
            "version": "0.7.2",
            "ecosystem": "npm"
          },
          {
            "name": "ieee754",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "ignore",
            "direct": false,
            "version": "5.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "import-meta-resolve",
            "direct": false,
            "version": "4.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "inherits",
            "direct": false,
            "version": "2.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "internmap",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "internmap",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "is-callable",
            "direct": false,
            "version": "1.2.7",
            "ecosystem": "npm"
          },
          {
            "name": "is-extendable",
            "direct": false,
            "version": "0.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "is-fullwidth-code-point",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-plain-obj",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "is-typed-array",
            "direct": false,
            "version": "1.1.15",
            "ecosystem": "npm"
          },
          {
            "name": "is-what",
            "direct": false,
            "version": "4.1.16",
            "ecosystem": "npm"
          },
          {
            "name": "isarray",
            "direct": false,
            "version": "2.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "jiti",
            "direct": false,
            "version": "2.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "js-yaml",
            "direct": false,
            "version": "3.14.1",
            "ecosystem": "npm"
          },
          {
            "name": "jsbi",
            "direct": false,
            "version": "4.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "jsesc",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "katex",
            "direct": false,
            "version": "0.16.47",
            "ecosystem": "npm"
          },
          {
            "name": "khroma",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "kind-of",
            "direct": false,
            "version": "6.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "kleur",
            "direct": false,
            "version": "4.1.5",
            "ecosystem": "npm"
          },
          {
            "name": "kolorist",
            "direct": false,
            "version": "1.8.0",
            "ecosystem": "npm"
          },
          {
            "name": "layout-base",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "layout-base",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "linkify-it",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "local-pkg",
            "direct": false,
            "version": "1.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "lodash-es",
            "direct": false,
            "version": "4.18.1",
            "ecosystem": "npm"
          },
          {
            "name": "longest-streak",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "lz-string",
            "direct": false,
            "version": "1.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "magic-string",
            "direct": false,
            "version": "0.30.21",
            "ecosystem": "npm"
          },
          {
            "name": "mark.js",
            "direct": false,
            "version": "8.11.1",
            "ecosystem": "npm"
          },
          {
            "name": "markdown-it",
            "direct": false,
            "version": "14.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "markdown-it-deflist",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "markdown-it-deflist",
            "direct": false,
            "version": "^3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "markdown-it-footnote",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "markdown-it-footnote",
            "direct": false,
            "version": "^4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "markdown-table",
            "direct": false,
            "version": "3.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "markdown-title",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "marked",
            "direct": false,
            "version": "16.4.2",
            "ecosystem": "npm"
          },
          {
            "name": "math-intrinsics",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "mdast-util-find-and-replace",
            "direct": false,
            "version": "3.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "mdast-util-from-markdown",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "mdast-util-frontmatter",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "mdast-util-gfm",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "mdast-util-gfm-autolink-literal",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "mdast-util-gfm-footnote",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "mdast-util-gfm-strikethrough",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "mdast-util-gfm-table",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "mdast-util-gfm-task-list-item",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "mdast-util-phrasing",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "mdast-util-to-hast",
            "direct": false,
            "version": "13.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "mdast-util-to-markdown",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "mdast-util-to-string",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "mdurl",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "mermaid",
            "direct": false,
            "version": "11.16.0",
            "ecosystem": "npm"
          },
          {
            "name": "mermaid",
            "direct": false,
            "version": "^11.16.0",
            "ecosystem": "npm"
          },
          {
            "name": "micromark",
            "direct": false,
            "version": "4.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-core-commonmark",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-extension-frontmatter",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-factory-destination",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-factory-label",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-factory-space",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-factory-title",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-factory-whitespace",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-util-character",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-util-chunked",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-util-classify-character",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-util-combine-extensions",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-util-decode-numeric-character-reference",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-util-decode-string",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-util-encode",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-util-html-tag-name",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-util-normalize-identifier",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-util-resolve-all",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-util-sanitize-uri",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-util-subtokenize",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-util-symbol",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "micromark-util-types",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "millify",
            "direct": false,
            "version": "6.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "mimic-response",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "miniflare",
            "direct": false,
            "version": "4.20260511.0",
            "ecosystem": "npm"
          },
          {
            "name": "minimatch",
            "direct": false,
            "version": "10.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "minimist",
            "direct": false,
            "version": "1.2.8",
            "ecosystem": "npm"
          },
          {
            "name": "minimisted",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "minisearch",
            "direct": false,
            "version": "7.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "mitt",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "mlly",
            "direct": false,
            "version": "1.7.4",
            "ecosystem": "npm"
          },
          {
            "name": "ms",
            "direct": false,
            "version": "2.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "muggle-string",
            "direct": false,
            "version": "0.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "mute-stream",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "nanoid",
            "direct": false,
            "version": "3.3.14",
            "ecosystem": "npm"
          },
          {
            "name": "non-layered-tidy-tree-layout",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "ohash",
            "direct": false,
            "version": "2.0.11",
            "ecosystem": "npm"
          },
          {
            "name": "once",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "oniguruma-parser",
            "direct": false,
            "version": "0.12.1",
            "ecosystem": "npm"
          },
          {
            "name": "oniguruma-to-es",
            "direct": false,
            "version": "4.3.4",
            "ecosystem": "npm"
          },
          {
            "name": "package-manager-detector",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "pako",
            "direct": false,
            "version": "1.0.11",
            "ecosystem": "npm"
          },
          {
            "name": "path-browserify",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "path-data-parser",
            "direct": false,
            "version": "0.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "path-to-regexp",
            "direct": false,
            "version": "6.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "path-to-regexp",
            "direct": false,
            "version": "8.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "pathe",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "perfect-debounce",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "picocolors",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "picomatch",
            "direct": false,
            "version": "4.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "pify",
            "direct": false,
            "version": "4.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "pkg-types",
            "direct": false,
            "version": "1.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "pkg-types",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "points-on-curve",
            "direct": false,
            "version": "0.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "points-on-path",
            "direct": false,
            "version": "0.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "possible-typed-array-names",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "postcss",
            "direct": false,
            "version": "8.5.15",
            "ecosystem": "npm"
          },
          {
            "name": "process",
            "direct": false,
            "version": "0.11.10",
            "ecosystem": "npm"
          },
          {
            "name": "property-information",
            "direct": false,
            "version": "7.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "punycode.js",
            "direct": false,
            "version": "2.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "pure-rand",
            "direct": false,
            "version": "8.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "quansync",
            "direct": false,
            "version": "0.2.11",
            "ecosystem": "npm"
          },
          {
            "name": "readable-stream",
            "direct": false,
            "version": "4.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "readdirp",
            "direct": false,
            "version": "4.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "regex",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "regex-recursion",
            "direct": false,
            "version": "6.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "regex-utilities",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "remark",
            "direct": false,
            "version": "15.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "remark-frontmatter",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "remark-parse",
            "direct": false,
            "version": "11.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "remark-stringify",
            "direct": false,
            "version": "11.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "require-directory",
            "direct": false,
            "version": "2.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "resolve-pkg-maps",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "rfdc",
            "direct": false,
            "version": "1.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "robust-predicates",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "rolldown",
            "direct": false,
            "version": "1.0.0-beta.29",
            "ecosystem": "npm"
          },
          {
            "name": "rolldown-plugin-dts",
            "direct": false,
            "version": "0.14.1",
            "ecosystem": "npm"
          },
          {
            "name": "rollup",
            "direct": false,
            "version": "4.46.3",
            "ecosystem": "npm"
          },
          {
            "name": "roughjs",
            "direct": false,
            "version": "4.6.6",
            "ecosystem": "npm"
          },
          {
            "name": "rw",
            "direct": false,
            "version": "1.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "safe-buffer",
            "direct": false,
            "version": "5.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "safer-buffer",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "section-matter",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "semver",
            "direct": false,
            "version": "7.8.0",
            "ecosystem": "npm"
          },
          {
            "name": "set-function-length",
            "direct": false,
            "version": "1.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "sha.js",
            "direct": false,
            "version": "2.4.12",
            "ecosystem": "npm"
          },
          {
            "name": "sharp",
            "direct": false,
            "version": "0.34.5",
            "ecosystem": "npm"
          },
          {
            "name": "shiki",
            "direct": false,
            "version": "3.20.0",
            "ecosystem": "npm"
          },
          {
            "name": "shiki",
            "direct": false,
            "version": "3.23.0",
            "ecosystem": "npm"
          },
          {
            "name": "signal-exit",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "simple-concat",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "simple-get",
            "direct": false,
            "version": "4.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "sisteransi",
            "direct": false,
            "version": "1.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "source-map-js",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "space-separated-tokens",
            "direct": false,
            "version": "2.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "speakingurl",
            "direct": false,
            "version": "14.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "sprintf-js",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "string-width",
            "direct": false,
            "version": "4.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "string_decoder",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "stringify-entities",
            "direct": false,
            "version": "4.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "strip-ansi",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "strip-bom-string",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "stylis",
            "direct": false,
            "version": "4.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "superjson",
            "direct": false,
            "version": "2.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "supports-color",
            "direct": false,
            "version": "10.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "tabbable",
            "direct": false,
            "version": "6.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "tinyexec",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "tinyglobby",
            "direct": false,
            "version": "0.2.15",
            "ecosystem": "npm"
          },
          {
            "name": "to-buffer",
            "direct": false,
            "version": "1.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "tokenx",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "trim-lines",
            "direct": false,
            "version": "3.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "trough",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "ts-dedent",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "tsdown",
            "direct": false,
            "version": "0.13.0",
            "ecosystem": "npm"
          },
          {
            "name": "tsdown",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "tslib",
            "direct": false,
            "version": "2.8.1",
            "ecosystem": "npm"
          },
          {
            "name": "tsx",
            "direct": false,
            "version": "4.21.0",
            "ecosystem": "npm"
          },
          {
            "name": "tsx",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "twoslash",
            "direct": false,
            "version": "0.3.4",
            "ecosystem": "npm"
          },
          {
            "name": "twoslash-protocol",
            "direct": false,
            "version": "0.3.4",
            "ecosystem": "npm"
          },
          {
            "name": "twoslash-vue",
            "direct": false,
            "version": "0.3.4",
            "ecosystem": "npm"
          },
          {
            "name": "typed-array-buffer",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "typescript",
            "direct": false,
            "version": "5.8.3",
            "ecosystem": "npm"
          },
          {
            "name": "typescript",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "uc.micro",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "ufo",
            "direct": false,
            "version": "1.6.1",
            "ecosystem": "npm"
          },
          {
            "name": "unconfig",
            "direct": false,
            "version": "7.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "undici",
            "direct": false,
            "version": "7.24.8",
            "ecosystem": "npm"
          },
          {
            "name": "undici-types",
            "direct": false,
            "version": "6.21.0",
            "ecosystem": "npm"
          },
          {
            "name": "undici-types",
            "direct": false,
            "version": "7.16.0",
            "ecosystem": "npm"
          },
          {
            "name": "unenv",
            "direct": false,
            "version": "2.0.0-rc.24",
            "ecosystem": "npm"
          },
          {
            "name": "unified",
            "direct": false,
            "version": "11.0.5",
            "ecosystem": "npm"
          },
          {
            "name": "unist-util-is",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "unist-util-position",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "unist-util-remove",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "unist-util-stringify-position",
            "direct": false,
            "version": "4.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "unist-util-visit",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "unist-util-visit-parents",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "uuid",
            "direct": false,
            "version": "14.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "valibot",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "npm"
          },
          {
            "name": "valibot",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "vfile",
            "direct": false,
            "version": "6.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "vfile-message",
            "direct": false,
            "version": "4.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "vite",
            "direct": false,
            "version": "7.3.5",
            "ecosystem": "npm"
          },
          {
            "name": "vitepress",
            "direct": false,
            "version": "2.0.0-alpha.17",
            "ecosystem": "npm"
          },
          {
            "name": "vitepress",
            "direct": false,
            "version": "^2.0.0-alpha.17",
            "ecosystem": "npm"
          },
          {
            "name": "vitepress-plugin-group-icons",
            "direct": false,
            "version": "1.6.3",
            "ecosystem": "npm"
          },
          {
            "name": "vitepress-plugin-group-icons",
            "direct": false,
            "version": "^1.6.3",
            "ecosystem": "npm"
          },
          {
            "name": "vitepress-plugin-llms",
            "direct": false,
            "version": "1.7.3",
            "ecosystem": "npm"
          },
          {
            "name": "vitepress-plugin-llms",
            "direct": false,
            "version": "^1.7.3",
            "ecosystem": "npm"
          },
          {
            "name": "vitepress-plugin-mermaid",
            "direct": false,
            "version": "2.0.17",
            "ecosystem": "npm"
          },
          {
            "name": "vitepress-plugin-mermaid",
            "direct": false,
            "version": "^2.0.17",
            "ecosystem": "npm"
          },
          {
            "name": "vue",
            "direct": false,
            "version": "3.5.38",
            "ecosystem": "npm"
          },
          {
            "name": "vue-resize",
            "direct": false,
            "version": "2.0.0-alpha.1",
            "ecosystem": "npm"
          },
          {
            "name": "which-typed-array",
            "direct": false,
            "version": "1.1.19",
            "ecosystem": "npm"
          },
          {
            "name": "workerd",
            "direct": false,
            "version": "1.20260511.1",
            "ecosystem": "npm"
          },
          {
            "name": "wrangler",
            "direct": false,
            "version": "4.91.0",
            "ecosystem": "npm"
          },
          {
            "name": "wrangler",
            "direct": false,
            "version": "^4",
            "ecosystem": "npm"
          },
          {
            "name": "wrap-ansi",
            "direct": false,
            "version": "7.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "wrappy",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "ws",
            "direct": false,
            "version": "8.18.0",
            "ecosystem": "npm"
          },
          {
            "name": "y18n",
            "direct": false,
            "version": "5.0.8",
            "ecosystem": "npm"
          },
          {
            "name": "yaml",
            "direct": false,
            "version": "2.8.2",
            "ecosystem": "npm"
          },
          {
            "name": "yaml",
            "direct": false,
            "version": "^2.8.2",
            "ecosystem": "npm"
          },
          {
            "name": "yargs",
            "direct": false,
            "version": "17.7.2",
            "ecosystem": "npm"
          },
          {
            "name": "yargs-parser",
            "direct": false,
            "version": "21.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "youch",
            "direct": false,
            "version": "4.1.0-beta.10",
            "ecosystem": "npm"
          },
          {
            "name": "youch-core",
            "direct": false,
            "version": "0.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "zod",
            "direct": false,
            "version": "4.1.12",
            "ecosystem": "npm"
          },
          {
            "name": "zod",
            "direct": false,
            "version": "catalog:",
            "ecosystem": "npm"
          },
          {
            "name": "zwitch",
            "direct": false,
            "version": "2.0.4",
            "ecosystem": "npm"
          }
        ],
        "collected": true,
        "truncated": false,
        "total_count": 652,
        "direct_count": 10,
        "indirect_count": 642
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 0,
        "merged_prs": 305,
        "open_issues": 7,
        "closed_ratio": 0.987,
        "closed_issues": 536,
        "closed_unmerged_prs": 7
      },
      "bus_factor": 1,
      "bot_contributors": 0,
      "top_contributors": [
        {
          "type": "User",
          "login": "dahlia",
          "commits": 3630,
          "avatar_url": "https://avatars.githubusercontent.com/u/12431?v=4"
        },
        {
          "type": "User",
          "login": "benvan",
          "commits": 2,
          "avatar_url": "https://avatars.githubusercontent.com/u/387597?v=4"
        },
        {
          "type": "User",
          "login": "mjkoo",
          "commits": 2,
          "avatar_url": "https://avatars.githubusercontent.com/u/30420?v=4"
        },
        {
          "type": "User",
          "login": "saschabuehrle",
          "commits": 2,
          "avatar_url": "https://avatars.githubusercontent.com/u/47737812?v=4"
        },
        {
          "type": "User",
          "login": "claude",
          "commits": 1,
          "avatar_url": "https://avatars.githubusercontent.com/u/81847?v=4"
        },
        {
          "type": "User",
          "login": "ho991217",
          "commits": 1,
          "avatar_url": "https://avatars.githubusercontent.com/u/84632077?v=4"
        }
      ],
      "contributors_sampled": 6,
      "top_contributor_share": 0.998
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "main.yaml"
      ],
      "has_docs_dir": true,
      "linter_configs": [],
      "has_editorconfig": false,
      "has_linter_config": false,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [
        "pnpm-lock.yaml"
      ],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 10,
            "reason": "no binaries found in the repo",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": 4,
            "reason": "branch protection is not maximal on development and all release branches",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": 10,
            "reason": "3 out of 3 merged PRs checked by a CI test -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
          },
          {
            "name": "CII-Best-Practices",
            "score": 0,
            "reason": "no effort to earn an OpenSSF best practices badge detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
          },
          {
            "name": "Code-Review",
            "score": 0,
            "reason": "Found 0/6 approved changesets -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 10,
            "reason": "project has 5 contributing companies or organizations",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": 10,
            "reason": "no dangerous workflow patterns detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 0,
            "reason": "no update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 10,
            "reason": "project is fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 10,
            "reason": "license file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 10,
            "reason": "30 commit(s) and 30 issue activity found in the last 90 days -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
          },
          {
            "name": "Packaging",
            "score": null,
            "reason": "packaging workflow not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": 0,
            "reason": "dependency not pinned by hash detected -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 0,
            "reason": "SAST tool is not run on all commits -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 10,
            "reason": "security policy file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
          },
          {
            "name": "Signed-Releases",
            "score": null,
            "reason": "no releases found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
          },
          {
            "name": "Token-Permissions",
            "score": 0,
            "reason": "detected GitHub workflow tokens with excessive permissions",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 0,
            "reason": "28 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "4b4f49a4e93fe89710d0324444f8b5e69eddeee1",
        "ran_at": "2026-07-21T15:52:19Z",
        "aggregate_score": 4.9,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": true,
      "has_dependabot_config": false
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/dahlia/optique",
    "host": "github.com",
    "name": "optique",
    "owner": "dahlia"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "good",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 73,
      "inputs": {
        "security": 54,
        "vitality": 92,
        "community": 70,
        "governance": 67,
        "engineering": 77
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "excellent",
        "name": "Vitality",
        "value": 92,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "excellent",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 95,
            "inputs": {
              "commits_last_year": 3636,
              "human_commit_share": 1,
              "days_since_last_push": 0,
              "active_weeks_last_year": 45
            },
            "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": "45/52 weeks with commits",
                "points": 31.2,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 45
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "3636 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 3636
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "30 commit(s) and 30 issue activity found in the last 90 days -- score normalized to 10",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "excellent",
            "name": "Release discipline",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 88,
            "inputs": {
              "releases_count": 94,
              "latest_release_tag": "1.2.0",
              "releases_from_tags": true,
              "days_since_latest_release": 0,
              "mean_days_between_releases": 16.8
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "94 version tags (no GitHub releases)",
                "points": 16.2,
                "status": "partial",
                "details": [
                  {
                    "code": "version_tags_no_releases",
                    "params": {
                      "count": 94
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 0 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 0
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~16.8 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 16.8
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "excellent",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "cap": null,
              "state": "maintained",
              "guards": [],
              "signals": [],
              "red_flag": false,
              "multiplier_pct": 100,
              "declared_reason": null,
              "unverified_reason": null,
              "unanswered_open_prs": null,
              "unanswered_open_issues": null,
              "days_since_last_merged_pr": null,
              "days_since_last_human_commit": 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": "good",
        "name": "Community & Adoption",
        "value": 70,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "moderate",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 56,
            "inputs": {
              "forks": 9,
              "stars": 713,
              "watchers": 4,
              "growth_state": "organic",
              "growth_factor_pct": 100
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "713 stars",
                "points": 46.3,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 713
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "9 forks",
                "points": 7.5,
                "status": "partial",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 9
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "4 watchers",
                "points": 2.7,
                "status": "partial",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 4
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "good",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 70,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "has_contributing": true,
              "has_issue_template": false,
              "has_code_of_conduct": false,
              "has_pull_request_template": false
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "recognized license (MIT)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "MIT"
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 18,
                "status": "met",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.3
              }
            ]
          },
          {
            "key": "ecosystem_adoption",
            "band": "excellent",
            "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": 92,
            "inputs": {
              "packages": [
                "@optique/env",
                "@optique/git",
                "@optique/man",
                "@optique/run",
                "@optique/zod",
                "@optique/core",
                "@optique/clack",
                "@optique/config"
              ],
              "dependents": null,
              "ecosystems": "npm",
              "total_downloads": null,
              "monthly_downloads": 325578
            },
            "components": [
              {
                "key": "monthly_downloads",
                "name": "Monthly downloads",
                "detail": "325,578 downloads/month across npm",
                "points": 73.5,
                "status": "partial",
                "details": [
                  {
                    "code": "downloads_monthly",
                    "params": {
                      "count": 325578,
                      "ecosystems": "npm"
                    }
                  }
                ],
                "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": 67,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "critical",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 27,
            "inputs": {
              "bus_factor": 1,
              "contributors_sampled": 6,
              "top_contributor_share": 0.998
            },
            "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": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 100
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "6 contributors",
                "points": 8.1,
                "status": "partial",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 6
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 5 contributing companies or organizations",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "good",
            "name": "Issue & PR responsiveness",
            "note": null,
            "notes": [],
            "value": 84,
            "inputs": {
              "merged_prs": 305,
              "open_issues": 7,
              "closed_issues": 536,
              "issue_closed_ratio": 0.987,
              "closed_unmerged_prs": 7
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "99% of issues closed",
                "points": 46.1,
                "status": "partial",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 99
                    }
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "305/312 decided PRs merged",
                "points": 37.4,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 305,
                      "decided": 312
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 0/6 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "good",
            "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": 72,
            "inputs": {
              "followers": 1350,
              "owner_type": "User",
              "is_verified": null,
              "owner_login": "dahlia",
              "public_repos": 274,
              "account_age_days": 6622
            },
            "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": "1,350 followers of dahlia",
                "points": 22.5,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 1350,
                      "login": "dahlia"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "274 public repos, account ~18 yr old",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 274
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 18
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "excellent",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "@optique/env",
                "@optique/git",
                "@optique/man",
                "@optique/run",
                "@optique/zod",
                "@optique/core",
                "@optique/clack",
                "@optique/config"
              ],
              "ecosystems": "npm",
              "any_deprecated": false,
              "min_days_since_publish": 0
            },
            "components": [
              {
                "key": "published_resolvable",
                "name": "Published & resolvable",
                "detail": "8 package(s) on npm",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "packages_published",
                    "params": {
                      "count": 8,
                      "ecosystems": "npm"
                    }
                  }
                ],
                "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": "755 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 755
                    }
                  }
                ],
                "max_points": 20
              },
              {
                "key": "not_deprecated",
                "name": "Not deprecated",
                "detail": "active, not deprecated or yanked",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "package_not_deprecated",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
      },
      {
        "key": "engineering",
        "band": "good",
        "name": "Engineering Quality",
        "value": 77,
        "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": false,
              "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": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "3 out of 3 merged PRs checked by a CI test -- score normalized to 10",
                "points": 20,
                "status": "met",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "excellent",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 90,
            "inputs": {
              "topics": [
                "cli",
                "getopt",
                "parser-combinators",
                "typescript"
              ],
              "has_wiki": false,
              "homepage": "http://optique.dev/",
              "has_readme": true,
              "has_docs_dir": true,
              "has_description": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 30,
                "status": "met",
                "details": [],
                "max_points": 30
              },
              {
                "key": "documentation_directory",
                "name": "Documentation directory",
                "detail": null,
                "points": 25,
                "status": "met",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": "http://optique.dev/",
                "points": 15,
                "status": "met",
                "details": [],
                "max_points": 15
              },
              {
                "key": "repository_description",
                "name": "Repository description",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": "4 topics",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "topics_count",
                    "params": {
                      "count": 4
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "moderate",
        "name": "Security",
        "value": 54,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "at_risk",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Packaging, Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "packaging",
                    "signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 49,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 16,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 2,
              "scorecard_aggregate": 4.9
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "no binaries found in the repo",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "branch protection is not maximal on development and all release branches",
                "points": 3,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "3 out of 3 merged PRs checked by a CI test -- score normalized to 10",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "Found 0/6 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 5 contributing companies or organizations",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no dangerous workflow patterns detected",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "no update tool detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is fuzzed",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file detected",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "30 commit(s) and 30 issue activity found in the last 90 days -- score normalized to 10",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "packaging",
                "name": "Packaging",
                "detail": "packaging workflow not detected",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "SAST tool is not run on all commits -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file detected",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "token_permissions",
                "name": "Token-Permissions",
                "detail": "detected GitHub workflow tokens with excessive permissions",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "28 existing vulnerabilities detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "dependency_advisories",
            "band": "good",
            "name": "Dependency advisories",
            "note": "Excluded from scoring (no data or not applicable): Indirect dependencies free of known advisories. Remaining weights renormalized. Matched 637 resolved dependencies against OSV; 15 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"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              },
              {
                "code": "advisories_scope_repository",
                "params": {
                  "assessed": 637
                }
              },
              {
                "code": "advisories_unassessed",
                "params": {
                  "count": 15
                }
              },
              {
                "code": "advisories_repo_graph_caveat",
                "params": {}
              },
              {
                "code": "advisories_reachability",
                "params": {}
              }
            ],
            "value": 74,
            "inputs": {
              "source": "osv",
              "advisories": 30,
              "affected_packages": 16,
              "assessed_packages": 637,
              "unassessed_packages": 15,
              "affected_by_severity": "critical 1, high 9, moderate 5, low 1",
              "direct_affected_packages": 1
            },
            "components": [
              {
                "key": "direct_dependencies_free_of_known_advisories",
                "name": "Direct dependencies free of known advisories",
                "detail": "1 affected: isomorphic-git catalog: (moderate 5.3)",
                "points": 20.2,
                "status": "partial",
                "details": [
                  {
                    "code": "advisories_affected",
                    "params": {
                      "count": 1,
                      "packages": "isomorphic-git catalog: (moderate 5.3)"
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "indirect_dependencies_free_of_known_advisories",
                "name": "Indirect dependencies free of known advisories",
                "detail": "transitive set not separable from development and test dependencies in this scope",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "advisories_scope_not_separable",
                    "params": {}
                  }
                ],
                "max_points": 25
              },
              {
                "key": "no_advisories_left_outstanding",
                "name": "No advisories left outstanding",
                "detail": "1 advisory-carrying package(s) unaddressed past 90 days; oldest published 1782 days ago",
                "points": 35.3,
                "status": "partial",
                "details": [
                  {
                    "code": "advisories_stale",
                    "params": {
                      "days": 90,
                      "count": 1,
                      "oldest": 1782
                    }
                  }
                ],
                "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": 637,
              "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": 5
            },
            "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": 70,
        "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.95,
              "agent_instruction_files": [
                "AGENTS.md",
                "CLAUDE.md",
                "examples/gitique/.cursorrules",
                "examples/gitique/.windsurfrules",
                "examples/gitique/AGENT.md",
                "examples/gitique/AGENTS.md",
                "examples/gitique/CLAUDE.md",
                "examples/gitique/GEMINI.md"
              ],
              "agent_instruction_max_bytes": 9590
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "AGENTS.md, CLAUDE.md, examples/gitique/.cursorrules, examples/gitique/.windsurfrules, examples/gitique/AGENT.md, examples/gitique/AGENTS.md, examples/gitique/CLAUDE.md, examples/gitique/GEMINI.md",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "AGENTS.md, CLAUDE.md, examples/gitique/.cursorrules, examples/gitique/.windsurfrules, examples/gitique/AGENT.md, examples/gitique/AGENTS.md, examples/gitique/CLAUDE.md, examples/gitique/GEMINI.md"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "machine_readable_docs_llms_txt",
                "name": "Machine-readable docs (llms.txt)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "legible_commit_history",
                "name": "Legible commit history",
                "detail": "95 of 100 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 95,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "moderate",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 61,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "pnpm-lock.yaml"
              ],
              "has_dockerfile": false,
              "typed_language": true,
              "bootstrap_files": [
                "mise.toml"
              ],
              "has_devcontainer": false,
              "has_linter_config": false,
              "typecheck_configs": [],
              "agent_commit_share": 0,
              "toolchain_manifests": [],
              "dependency_bot_commit_share": 0
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": "mise.toml",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "mise.toml"
                    }
                  }
                ],
                "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": "TypeScript (statically typed)",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "TypeScript"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": "lockfile",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "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": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "excellent",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 92,
            "inputs": {
              "primary_language": "TypeScript",
              "largest_source_bytes": 707468,
              "source_files_sampled": 202,
              "oversized_source_files": 29
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "TypeScript (statically typed)",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "TypeScript"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "29/202 source files over 60KB",
                "points": 47.1,
                "status": "partial",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 202,
                      "oversized": 29
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          },
          {
            "key": "ai_interfaces",
            "band": "at_risk",
            "name": "Machine-readable interfaces",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "example_dirs": [
                "examples"
              ],
              "has_mcp_signal": false,
              "api_schema_files": []
            },
            "components": [
              {
                "key": "api_schema_openapi_graphql_proto",
                "name": "API schema (OpenAPI/GraphQL/proto)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 40
              },
              {
                "key": "mcp_server",
                "name": "MCP server",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "runnable_examples",
                "name": "Runnable examples",
                "detail": "examples",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "examples"
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
      }
    ],
    "metrics_version": "1.13.0"
  },
  "warnings": [
    "deps.dev does not index npm:@optique/env@1.2.0; advisories assessed against the repository dependency graph instead"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-21T15:52:36.591212Z",
  "schema_version": "0.23.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/d/dahlia/optique.svg",
  "full_name": "dahlia/optique",
  "license_state": "standard",
  "license_spdx": "MIT"
}

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

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

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