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