{
  "schema_version": "x07.website.package-index@0.2.0",
  "name": "ext-cli",
  "version": "0.1.17",
  "description": "Command-line argument parsing, help, and shell completion.",
  "docs": "Specrows-based CLI parsing.\n\n- Compile a specrows JSON command spec with ext.cli.specrows.compile.\n- Render help with ext.cli.render_help(spec_json_or_specbin, scope_bytes) (empty scope = root).\n- Parse argv bytes with ext.cli.parse_specrows(spec_json_bytes, argv_v1_bytes).\n- Parse argv bytes with env defaults using ext.cli.parse_specrows_v2(spec_json_bytes, argv_v1_bytes, env_v1_bytes).\n- On error, use ext.cli.err_msg / ext.cli.err_hint / ext.cli.err_usage (or ext.cli.err_doc_v2 for a canonical map).\n- On success, use ext.cli.matches_cmd and ext.cli.matches_get.\n\nTyped option value kinds:\n- STR, PATH, U32, I32, BOOL, ENUM, BYTES, BYTES_HEX\n\nTyped opt encodings (matches_get kind=2):\n- STR|PATH|ENUM|BYTES: raw token bytes\n- U32|I32: 4-byte little-endian\n- BOOL: 1 byte (0 or 1)\n- BYTES_HEX: decoded bytes\n\nError schema (via ext.cli.err_doc_v2):\n- { code, message, hint, usage, arg?, scope? }\n",
  "module_root": "modules",
  "meta": {
    "x07c_compat": ">=0.1.111 <0.3.0",
    "determinism_tier": "pure",
    "requires_packages": [
      "ext-data-model@0.1.11",
      "ext-json-rs@0.1.7"
    ],
    "worlds_allowed": [
      "solve-pure",
      "solve-fs",
      "solve-rr",
      "solve-kv",
      "solve-full",
      "run-os",
      "run-os-sandboxed"
    ],
    "import_mode": "handwritten"
  },
  "modules": [
    {
      "module_id": "ext.cli",
      "path": "ext/cli.x07.json",
      "exports": [
        "ext.cli.err_arg",
        "ext.cli.err_code",
        "ext.cli.err_doc_v2",
        "ext.cli.err_hint",
        "ext.cli.err_msg",
        "ext.cli.err_scope",
        "ext.cli.err_usage",
        "ext.cli.is_ok",
        "ext.cli.matches_cmd",
        "ext.cli.matches_get",
        "ext.cli.parse_compiled",
        "ext.cli.parse_compiled_v2",
        "ext.cli.parse_specrows",
        "ext.cli.parse_specrows_v2",
        "ext.cli.render_help"
      ]
    },
    {
      "module_id": "ext.cli.complete",
      "path": "ext/cli/complete.x07.json",
      "exports": [
        "ext.cli.complete.render"
      ]
    },
    {
      "module_id": "ext.cli.help",
      "path": "ext/cli/help.x07.json",
      "exports": [
        "ext.cli.help.render"
      ]
    },
    {
      "module_id": "ext.cli.specrows",
      "path": "ext/cli/specrows.x07.json",
      "exports": [
        "ext.cli.specrows.compile",
        "ext.cli.specrows.validate"
      ]
    },
    {
      "module_id": "ext.cli.tests",
      "path": "ext/cli/tests.x07.json",
      "exports": [
        "ext.cli.tests.test_dashdash_delimiter",
        "ext.cli.tests.test_env_defaults_v2",
        "ext.cli.tests.test_err_doc_v2_shape",
        "ext.cli.tests.test_implied_help_flag",
        "ext.cli.tests.test_invalid_value_hint_u32",
        "ext.cli.tests.test_long_opt_equals",
        "ext.cli.tests.test_long_opt_next_token",
        "ext.cli.tests.test_missing_required_arg",
        "ext.cli.tests.test_missing_required_opt",
        "ext.cli.tests.test_render_help_sections",
        "ext.cli.tests.test_repeated_opt_multiple",
        "ext.cli.tests.test_short_bundle_flags",
        "ext.cli.tests.test_subcmd_opt_after_subcmd",
        "ext.cli.tests.test_typed_options_v2"
      ]
    }
  ]
}
