{"_id":"@agent-manifest/cli","_rev":"3-dff6f776a58fad8f3925707411dc1665","name":"@agent-manifest/cli","dist-tags":{"latest":"0.1.2"},"versions":{"0.1.0":{"name":"@agent-manifest/cli","version":"0.1.0","keywords":["agent-manifest","agent-manifest-spec","agent-declaration","declarative-manifest","agent-boundaries","ai-agent","json-schema","schema-validation","structural-validation","validator"],"author":{"url":"https://orcid.org/0009-0008-7216-3032","name":"Hernán Alfredo Capucci"},"license":"Apache-2.0","_id":"@agent-manifest/cli@0.1.0","maintainers":[{"name":"hernan-capucci","email":"hernancapucci@gmail.com"}],"homepage":"https://agent-manifest-spec.org","bugs":{"url":"https://github.com/agent-manifest/agent-manifest-cli/issues"},"bin":{"agent-manifest":"bin/agent-manifest.js"},"dist":{"shasum":"a582cbc39a21466f68ee75c4c6dca36b59928aa6","tarball":"https://registry.npmjs.org/@agent-manifest/cli/-/cli-0.1.0.tgz","fileCount":15,"integrity":"sha512-smJTOV/GdlpSOq4/gu4Tju8ETYzbMg4igm0/g1MYFfU+/ocw7IVWGUeifQpZEJcWVlkeQLHl+2MHSoHGpGn/5A==","signatures":[{"sig":"MEUCIBPer1tGuftonRrTpqj+Jq86rEw/OWfTbA6JqX/Ki0E9AiEAgpDsRPBTW8xNltQd9c4EiRfJn3pG8EO9MtTlYV/bZfQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":57577},"type":"module","engines":{"node":">=20"},"exports":{"./package.json":"./package.json"},"gitHead":"f767de4c5e42827b6da9211eb7062d94477d2386","scripts":{"test":"node --test","check:package":"npm pack --dry-run"},"_npmUser":{"name":"hernan-capucci","email":"hernancapucci@gmail.com"},"repository":{"url":"git+https://github.com/agent-manifest/agent-manifest-cli.git","type":"git"},"_npmVersion":"11.11.0","description":"Command-line validator for Agent Manifest v1.0 declarations. Checks a manifest's structure against the published Agent Manifest v1.0 JSON Schema; structural validation only. Not affiliated with the unrelated npm packages 'agent-manifest' or '@agentmanifes","directories":{},"_nodeVersion":"25.8.1","dependencies":{"ajv":"^8.17.1","ajv-formats":"^3.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.0_1784630744922_0.47308175669713814","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@agent-manifest/cli","version":"0.1.1","keywords":["agent-manifest","agent-manifest-spec","agent-declaration","declarative-manifest","agent-boundaries","ai-agent","json-schema","schema-validation","structural-validation","validator"],"author":{"url":"https://orcid.org/0009-0008-7216-3032","name":"Hernán Alfredo Capucci"},"license":"Apache-2.0","_id":"@agent-manifest/cli@0.1.1","maintainers":[{"name":"hernan-capucci","email":"hernancapucci@gmail.com"}],"homepage":"https://agent-manifest-spec.org","bugs":{"url":"https://github.com/agent-manifest/agent-manifest-cli/issues"},"bin":{"agent-manifest":"bin/agent-manifest.js"},"dist":{"shasum":"3b39a6236f5678ee68f6556b80885b558a40c05b","tarball":"https://registry.npmjs.org/@agent-manifest/cli/-/cli-0.1.1.tgz","fileCount":15,"integrity":"sha512-R+Vgnb8KhWMSYfm6lAllINS1bpwci0B7D3nKL07dyaCpbteOVKwFvcENlQjt/3aiW0UjOJe2wAMoE5LtTJJSww==","signatures":[{"sig":"MEYCIQDfxPmMiO4dE0xoC9dytzz1j1cOeU62E427HV8Lv3/KbAIhAIat3GARdA7GP8w/7Gt/V7BpyJzkhyHSDsgRvfH2+WnS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agent-manifest%2fcli@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":58841},"type":"module","_from":"file:agent-manifest-cli-0.1.1.tgz","engines":{"node":">=20"},"exports":{"./package.json":"./package.json"},"scripts":{"test":"node --test","check:package":"npm pack --dry-run"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b1937884-d82f-4fba-be32-55ebbeabe823"}},"_resolved":"/home/runner/work/agent-manifest-cli/agent-manifest-cli/agent-manifest-cli-0.1.1.tgz","_integrity":"sha512-R+Vgnb8KhWMSYfm6lAllINS1bpwci0B7D3nKL07dyaCpbteOVKwFvcENlQjt/3aiW0UjOJe2wAMoE5LtTJJSww==","repository":{"url":"git+https://github.com/agent-manifest/agent-manifest-cli.git","type":"git"},"_npmVersion":"12.0.1","description":"Command-line validator for Agent Manifest v1.0 declarations. Checks a manifest's structure against the published Agent Manifest v1.0 JSON Schema; structural validation only. Not affiliated with the unrelated npm packages 'agent-manifest' or '@agentmanifes","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ajv":"^8.17.1","ajv-formats":"^3.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.1_1784662128929_0.7717120515729006","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@agent-manifest/cli","version":"0.1.2","description":"Command-line validator for Agent Manifest v1.0 declarations. Checks a manifest's structure against the published Agent Manifest v1.0 JSON Schema; structural validation only. Not affiliated with the unrelated npm packages 'agent-manifest' or '@agentmanifes","keywords":["agent-manifest","agent-manifest-spec","agent-declaration","declarative-manifest","agent-boundaries","ai-agent","json-schema","schema-validation","structural-validation","validator"],"homepage":"https://agent-manifest-spec.org","repository":{"type":"git","url":"git+https://github.com/agent-manifest/agent-manifest-cli.git"},"bugs":{"url":"https://github.com/agent-manifest/agent-manifest-cli/issues"},"author":{"name":"Hernán Alfredo Capucci","url":"https://orcid.org/0009-0008-7216-3032"},"license":"Apache-2.0","type":"module","engines":{"node":">=20"},"bin":{"agent-manifest":"bin/agent-manifest.js"},"exports":{"./package.json":"./package.json"},"publishConfig":{"access":"public"},"scripts":{"test":"node --test","check:package":"npm pack --dry-run"},"dependencies":{"@agent-manifest/client":"^0.1.0"},"_id":"@agent-manifest/cli@0.1.2","_integrity":"sha512-wuTaUuXLwgDL/DRixzZd+kAhTBDfcFUYwifQPw/nHf5uV82gyKAQs55GgcFAb5gODQwbjDzmhDXCKJtShhQB+Q==","_resolved":"/home/runner/work/agent-manifest-cli/agent-manifest-cli/agent-manifest-cli-0.1.2.tgz","_from":"file:agent-manifest-cli-0.1.2.tgz","_nodeVersion":"24.18.0","_npmVersion":"12.0.2","dist":{"integrity":"sha512-wuTaUuXLwgDL/DRixzZd+kAhTBDfcFUYwifQPw/nHf5uV82gyKAQs55GgcFAb5gODQwbjDzmhDXCKJtShhQB+Q==","shasum":"49927b81b300a69c44a629f5643ea4b7aebd7113","tarball":"https://registry.npmjs.org/@agent-manifest/cli/-/cli-0.1.2.tgz","fileCount":13,"unpackedSize":50892,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agent-manifest%2fcli@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDH0wFSYfx1MvcPPj//6sbsD4aMOPjfczPDuVewQj5pJAIgPjAdDHtJgX0/O7WL1MVnbTQjySThSVZAP5iEYIAEub0="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b1937884-d82f-4fba-be32-55ebbeabe823"}},"directories":{},"maintainers":[{"name":"hernan-capucci","email":"hernancapucci@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/cli_0.1.2_1785872870170_0.32872465182473043"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-21T10:45:44.777Z","modified":"2026-08-04T19:47:50.611Z","0.1.0":"2026-07-21T10:45:45.118Z","0.1.1":"2026-07-21T19:28:49.056Z","0.1.2":"2026-08-04T19:47:50.328Z"},"bugs":{"url":"https://github.com/agent-manifest/agent-manifest-cli/issues"},"author":{"name":"Hernán Alfredo Capucci","url":"https://orcid.org/0009-0008-7216-3032"},"license":"Apache-2.0","homepage":"https://agent-manifest-spec.org","keywords":["agent-manifest","agent-manifest-spec","agent-declaration","declarative-manifest","agent-boundaries","ai-agent","json-schema","schema-validation","structural-validation","validator"],"repository":{"type":"git","url":"git+https://github.com/agent-manifest/agent-manifest-cli.git"},"description":"Command-line validator for Agent Manifest v1.0 declarations. Checks a manifest's structure against the published Agent Manifest v1.0 JSON Schema; structural validation only. Not affiliated with the unrelated npm packages 'agent-manifest' or '@agentmanifes","maintainers":[{"name":"hernan-capucci","email":"hernancapucci@gmail.com"}],"readme":"# @agent-manifest/cli\n\nThe Agent Manifest command-line interface (CLI) — the command-line validator for\n[Agent Manifest](https://agent-manifest-spec.org) v1.0 declarations. Installs the\n`agent-manifest` command.\n\n`agent-manifest` reads a manifest document and checks it against the Agent\nManifest v1.0 JSON Schema. It validates structure only.\n\nThe canonical documentation page for the CLI is\n<https://agent-manifest-spec.org/docs/cli/>. This repository is its source.\n\n## Status\n\n| | |\n| --- | --- |\n| Version | 0.1.1 |\n| npm | [`@agent-manifest/cli`](https://www.npmjs.com/package/@agent-manifest/cli) — published |\n| Command | `agent-manifest` |\n| Specification | Agent Manifest v1.0 (frozen), from `@agent-manifest/schema` |\n| Node.js | >= 20 (tested on 20, 22 and 24; Linux, macOS, Windows) |\n| Module system | ESM |\n| Commands | `validate` — the only command |\n| Licence | Apache-2.0 |\n\n## What it does\n\n- Reads a manifest from a file path, an `http(s)` URL, or standard input.\n- Validates it against the packaged Agent Manifest v1.0 JSON Schema.\n- Reports each failing field with its JSON Pointer path and the validator's own\n  message.\n- Returns `0`, `1` or `2` so a script can distinguish \"valid\", \"invalid\" and\n  \"could not be checked\".\n- Emits a single JSON object with `--json` for machine consumption.\n\n## What it does not do\n\n- It does not score, rank, grade, or recommend.\n- It does not certify, attest, or verify that an agent behaves as declared. A\n  manifest that validates is a well-formed declaration, nothing more.\n- It does not enforce anything at runtime, and it is not a policy engine.\n- It does not modify, format, or write your manifest — or any other file.\n- It does not define the specification. The schema is copied from the canonical\n  source; this repository never edits it.\n- It does not phone home: no telemetry, no analytics, no auto-update, no\n  install-time script.\n\n## Install\n\n```bash\nnpm install -g @agent-manifest/cli                 # global command\nnpx @agent-manifest/cli validate ./manifest.json   # one-off, no install\n```\n\n### From a clone\n\n```bash\ngit clone https://github.com/agent-manifest/agent-manifest-cli.git\ncd agent-manifest-cli\nnpm ci\nnode ./bin/agent-manifest.js validate ./examples/minimal.json\n```\n\nTo get the `agent-manifest` command on your `PATH` from that clone:\n\n```bash\nnpm link          # from the clone; npm unlink -g @agent-manifest/cli to undo\nagent-manifest validate ./examples/minimal.json\n```\n\n> **Naming.** The unscoped npm package `agent-manifest` and the `@agentmanifest/*`\n> scope are unrelated third-party projects. Installing either will not give you\n> this validator. Use the scoped name `@agent-manifest/cli`; the installed\n> command is `agent-manifest`.\n\n### Updating and removing\n\n```bash\nnpm install -g @agent-manifest/cli@latest   # update\nnpm uninstall -g @agent-manifest/cli        # remove\n```\n\nUninstalling removes the package and the `agent-manifest` command. Nothing else\nis written to your system: the CLI creates no configuration directory, cache, or\nstate file.\n\n## Quick start\n\nSave this as `manifest.json`. It contains every required field of v1.0 and is the\nsame document as [`examples/minimal.json`](examples/minimal.json):\n\n```json\n{\n  \"manifest_version\": \"1.0\",\n  \"agent_id\": \"example.minimal-agent\",\n  \"agent_name\": \"Minimal Example Agent\",\n  \"agent_version\": \"0.1.0\",\n  \"owner\": {\n    \"type\": \"organization\",\n    \"identifier\": \"Example Org\"\n  },\n  \"purpose\": {\n    \"primary_code\": \"support\",\n    \"description\": \"Answer basic product questions for end users.\"\n  },\n  \"forbidden_actions\": [\n    \"never delete user data\"\n  ],\n  \"autonomy\": {\n    \"level\": 0\n  },\n  \"risk_profile\": {\n    \"level\": \"low\"\n  },\n  \"data_handling\": {\n    \"stores_personal_data\": false\n  },\n  \"stopping_authority\": {\n    \"stoppable_by\": [\n      \"operator\"\n    ],\n    \"mechanism\": \"runtime disable via admin console\"\n  },\n  \"audit_surface\": {\n    \"logging\": \"basic\",\n    \"reconstructability\": \"partial\"\n  },\n  \"contact\": {\n    \"email\": \"ops@example.com\"\n  }\n}\n```\n\nThen:\n\n```console\n$ agent-manifest validate ./manifest.json\nValid Agent Manifest (schema 1.0): ./manifest.json\n$ echo $?\n0\n```\n\nRemove the `contact` block and run it again:\n\n```console\n$ agent-manifest validate ./manifest.json\nInvalid Agent Manifest (schema 1.0): ./manifest.json\n\n  /contact  must have required property 'contact'\n\n1 error\n$ echo $?\n1\n```\n\nA fully populated example is in [`examples/full.json`](examples/full.json).\n\n## Command\n\n```\nagent-manifest validate <file|url|-> [--schema <path-or-url>] [--json] [--no-color]\n```\n\n`validate` is the only command. `agent-manifest init` is deferred; see\n[BACKLOG.md](BACKLOG.md).\n\n| Argument / option | Description |\n| --- | --- |\n| `<file\\|url\\|->` | Manifest to validate: a file path, an `http(s)` URL, or `-` for standard input. |\n| `--schema <path-or-url>` | Validate against an alternative schema instead of the packaged one. |\n| `--json` | Emit a single machine-readable JSON object on stdout. |\n| `--no-color` | Never emit ANSI colour. |\n| `-h`, `--help` | Show usage. Exits `0`. |\n| `-V`, `--version` | Show the CLI version. Exits `0`. |\n\nOptions may be combined. Anything that is not a recognised option and not `-` is\na positional argument; a second positional argument to `validate` is an error.\n\nExamples:\n\n```bash\nagent-manifest validate ./manifest.json\nagent-manifest validate ./manifest.json --json\ncat ./manifest.json | agent-manifest validate -\nagent-manifest validate https://example.com/agent-manifest.json\nagent-manifest validate ./manifest.json --schema ./local-copy.schema.json\n```\n\n### Streams\n\n| Outcome | Channel |\n| --- | --- |\n| Valid or invalid result (with or without `--json`) | stdout |\n| Operational error, without `--json` | stderr, one line, no stack trace |\n| Operational error, with `--json` | stdout, so a machine consumer reads one object on one channel |\n\n### Colour\n\nColour is presentation only; no information is carried by colour alone, and the\noutput is complete without it. Colour is emitted only when stdout is a terminal.\nPrecedence, highest first: `--no-color`, then `NO_COLOR`\n([no-color.org](https://no-color.org)), then `FORCE_COLOR`, then TTY detection.\n\n## Exit codes\n\n| Code | Meaning |\n| --- | --- |\n| `0` | Manifest is valid. Also returned by `--help` and `--version`. |\n| `1` | Manifest was read and parsed but failed schema validation. |\n| `2` | Validation did not complete: I/O, parse, schema-load, unreachable URL, or usage error. |\n\nThe distinction between `1` and `2` is deliberate: a network failure or a typo in\na path never masquerades as an invalid manifest.\n\n## JSON output contract\n\nWith `--json`, exactly one JSON object is written to stdout, followed by a\nnewline. The `valid` field distinguishes the three outcomes:\n\n| `valid` | Meaning | Exit code |\n| --- | --- | --- |\n| `true` | Manifest is valid. | `0` |\n| `false` | Manifest was read and parsed but failed schema validation. | `1` |\n| `null` | Validation could not be completed. | `2` |\n\n```json\n{\"valid\":true,\"schema_version\":\"1.0\",\"errors\":[]}\n```\n\n```json\n{\"valid\":false,\"schema_version\":\"1.0\",\"errors\":[{\"path\":\"/contact\",\"message\":\"must have required property 'contact'\"}]}\n```\n\n```json\n{\"valid\":null,\"schema_version\":null,\"errors\":[{\"path\":\"\",\"message\":\"Cannot read input file: ./missing.json\"}]}\n```\n\n- The object has exactly three keys: `valid`, `schema_version`, `errors`.\n- Each error object has exactly `path` and `message`. No suggestions, scores, or\n  extra fields are added, and messages come from the schema validator verbatim.\n- For `valid: true` / `false`, `path` is a JSON Pointer to the offending\n  location. For a missing required property, the property name is appended, so\n  the pointer names the field that should exist. A whole-document error uses `/`.\n- For `valid: null`, `errors` holds at least one object whose `path` is `\"\"`.\n- `schema_version` is `\"1.0\"` only for the packaged schema. With `--schema` it is\n  the alternative schema's `version`, else its `$id`, else `null`.\n- For `valid: null`, `schema_version` is `null` if the failure happened before the\n  schema was loaded, and the resolved version if it happened afterwards.\n\n## Use in CI\n\n`validate` is quiet on success and non-zero on failure, so it composes directly:\n\n```yaml\n- name: Validate the agent manifest\n  run: npx --yes @agent-manifest/cli validate ./agent-manifest.json\n```\n\nValidate several manifests and fail on the first invalid one:\n\n```bash\nfind . -name 'agent-manifest.json' -print0 | xargs -0 -n1 agent-manifest validate\n```\n\nMachine-readable, distinguishing \"invalid\" from \"could not be checked\":\n\n```bash\nresult=$(agent-manifest validate ./manifest.json --json); status=$?\ncase \"$status\" in\n  0) echo \"valid\" ;;\n  1) echo \"invalid: $(printf '%s' \"$result\" | jq -c '.errors')\" ;;\n  2) echo \"not checked: $(printf '%s' \"$result\" | jq -r '.errors[0].message')\" ;;\nesac\n```\n\nColour is disabled automatically when stdout is not a terminal, so logs stay\nclean; `--no-color` forces it off in a CI system that fakes a TTY.\n\n## Relationship to Agent Manifest v1.0\n\nThe CLI does not carry its own copy of the schema. It depends on\n[`@agent-manifest/schema`](https://www.npmjs.com/package/@agent-manifest/schema),\nwhich distributes the v1.0 schema byte-for-byte from the canonical\n`spec/v1.0/schema.json` in\n[agent-manifest/agent-manifest](https://github.com/agent-manifest/agent-manifest),\npublished at <https://agent-manifest-spec.org/spec/v1.0/schema.json>. The\nchecking itself is done by the shared validator in\n[`@agent-manifest/client`](https://www.npmjs.com/package/@agent-manifest/client),\nso a manifest gets the same verdict here as it does anywhere else in the\necosystem.\n\n- The default schema is **never fetched over the network**. It arrives at\n  install time and is read from `node_modules` on disk, so validation against it\n  is deterministic: the same manifest gives the same result regardless of\n  network conditions.\n- Determinism refers to the schema, not to the input. `validate <url>` uses the\n  network only to read the manifest; the schema is still local.\n- An unreachable or unreadable input URL is an operational error (exit `2`),\n  never a validation failure (exit `1`).\n- `@agent-manifest/schema` records its own canonical source, sha-256 and\n  synchronisation policy in the `SOURCE.json` it ships. `npm test` verifies that\n  checksum offline; a scheduled repository job compares the installed schema\n  against the canonical published one over the network. Depending on a package\n  instead of keeping a copy does not remove the possibility of drift — it moves\n  where drift would appear, and those checks follow it.\n- v1.0 is frozen, so any difference is drift and is treated as an incident: the\n  CLI is not pinned to a new schema package until the divergence is explained\n  upstream. A future schema version arrives as an additional entry in that\n  package, adopted under a new CLI minor version, never silently.\n\n`--schema <path-or-url>` validates against a different schema. That schema is\nread as given — from disk, or over the network for a URL — and the packaged\nschema is not involved. `schema_version` then never reports `\"1.0\"`.\n\n## Compatibility and limits\n\n- Node.js 20 or later. No transpilation, no build step, no bundler.\n- Input is read as UTF-8. A leading byte order mark is tolerated. Other\n  encodings (for example UTF-16) fail as a parse error with exit `2`.\n- Network reads — an input URL or `--schema <url>` — time out after 30 seconds\n  and are capped at 8 MiB. Redirects are followed.\n- Standard input is capped at 8 MiB.\n- A very large local file fails as a read error rather than exhausting memory\n  silently, and every error output is one line plus, for an invalid manifest, one\n  line per failing field.\n- The packaged schema is Agent Manifest v1.0 only. A manifest declaring another\n  `manifest_version` fails validation against it; that is the schema's rule, not\n  an extra check by the CLI.\n\n## Security\n\nThe CLI never writes files, executes nothing from its input, and reaches the\nnetwork only for a reference you passed as a URL. There is no telemetry and no\ninstall-time script. See [SECURITY.md](SECURITY.md) for the full statement, the\nscope, and how to report a vulnerability privately.\n\n## Reporting problems\n\nOpen an issue at\n<https://github.com/agent-manifest/agent-manifest-cli/issues> with the CLI\nversion, the Node.js version, the operating system, the command, the input, and\nthe expected and observed result. For anything exploitable, follow\n[SECURITY.md](SECURITY.md) instead of opening a public issue.\n\n## Contributing\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md). In short: defect reports, portability\nfixes and tests are welcome; schema changes belong in the specification\nrepository, and scoring, certification and enforcement are out of scope by\ndesign.\n\n## Links\n\n- CLI documentation (canonical): <https://agent-manifest-spec.org/docs/cli/>\n- npm package: <https://www.npmjs.com/package/@agent-manifest/cli>\n- Specification site: <https://agent-manifest-spec.org>\n- Specification v1.0: <https://agent-manifest-spec.org/spec/v1.0/agent_manifest_v1.0.html>\n- JSON Schema v1.0: <https://agent-manifest-spec.org/spec/v1.0/schema.json>\n- Specification repository: <https://github.com/agent-manifest/agent-manifest>\n- This repository: <https://github.com/agent-manifest/agent-manifest-cli>\n- Contact (not for vulnerabilities): <https://agent-manifest-spec.org/contact/>\n\n## Licence and author\n\nApache License 2.0 — see [LICENSE](LICENSE).\n\nHernán Alfredo Capucci — ORCID\n[0009-0008-7216-3032](https://orcid.org/0009-0008-7216-3032).\n\nTo cite the specification rather than this tool, see\n[CITATION.cff](CITATION.cff).\n","readmeFilename":"README.md"}