{
  "id": "czg",
  "name": "czg",
  "homepage": "https://cz-git.qbb.sh/cli/",
  "description": "Interactive CLI that generate standardized git commit messages.",
  "executables": [
    "czg"
  ],
  "dotfiles": {
    "paths": [
      "~/.czrc"
    ],
    "exclude": [],
    "secret": [
      "~/.config/.czrc"
    ]
  },
  "commands": {
    "format": 1,
    "label": "Generate a commit",
    "description": "Run the interactive commit prompt, optionally with mode subcommands (ai, emoji, ...) and AI settings. Extra git commit options, aliases and API key setup are left out.",
    "quality": "ai-draft",
    "parser": {
      "end_of_options": "--",
      "interleave": "permute",
      "long_equals": true,
      "short_attached": false,
      "short_bundles": false
    },
    "source": [
      {
        "id": "help",
        "kind": "help",
        "url": "https://cz-git.qbb.sh/cli/",
        "revision": "czg --help on cz-git.qbb.sh/cli",
        "evidence": "SYNOPSIS:\n    czg [subcommand...] [options...] [git-commit-options...]\nSUBCOMMAND:\n    ai               Turn on OpenAI generate subject mode\n    break            Turn on appends a ! after the type/scope\n    emoji            Turn on output message with emoji mode\n    checkbox         Turn on scope checkbox mode\n    gpg              Turn on use GPG sign commit message\nOPTIONS:\n    --config=        Specify the configuration file to use\n    -N=,--ai-num=    Sets AI return multiple subjects and Turn on choose mode\n    -M=,--ai-model=  Sets AI model in this session\nFLAG:\n    -r, --retry      Directly retry submit by the last message\n    --no-ai          Turn off AI prompt mode in this session\n"
      }
    ],
    "field": [
      {
        "id": "modes",
        "label": "Modes",
        "description": "Subcommands that switch on a mode for this commit.",
        "type": "string",
        "position": 0,
        "multiple": true,
        "suggestions": [
          {
            "value": "ai",
            "label": "AI-generated subject"
          },
          {
            "value": "emoji",
            "label": "Emoji"
          },
          {
            "value": "break",
            "label": "Breaking change (!)"
          },
          {
            "value": "checkbox",
            "label": "Scope checkbox"
          },
          {
            "value": "gpg",
            "label": "GPG sign"
          }
        ],
        "sources": [
          "help"
        ]
      },
      {
        "id": "config",
        "label": "Config file",
        "type": "path",
        "option": [
          "--config"
        ],
        "path": {
          "kind": "file",
          "role": "input",
          "must_exist": true
        },
        "sources": [
          "help"
        ]
      },
      {
        "id": "ai_num",
        "label": "Number of AI subjects",
        "type": "integer",
        "option": [
          "--ai-num"
        ],
        "sources": [
          "help"
        ]
      },
      {
        "id": "ai_model",
        "label": "AI model",
        "type": "string",
        "option": [
          "--ai-model"
        ],
        "suggestions": [
          {
            "value": "gpt-4o-mini",
            "label": "gpt-4o-mini"
          },
          {
            "value": "gpt-4o",
            "label": "gpt-4o"
          },
          {
            "value": "gpt-3.5-turbo",
            "label": "gpt-3.5-turbo"
          }
        ],
        "sources": [
          "help"
        ]
      },
      {
        "id": "retry",
        "label": "Retry last message",
        "type": "boolean",
        "option": [
          "--retry",
          "-r"
        ],
        "sources": [
          "help"
        ]
      },
      {
        "id": "no_ai",
        "label": "Turn off AI this session",
        "type": "boolean",
        "option": [
          "--no-ai"
        ],
        "sources": [
          "help"
        ]
      }
    ],
    "task": [
      {
        "id": "commit",
        "label": "Interactive commit",
        "fields": [
          "modes",
          "config"
        ],
        "required": []
      },
      {
        "id": "ai",
        "label": "AI-assisted commit",
        "set": {
          "modes": [
            "ai"
          ]
        },
        "fields": [
          "modes",
          "ai_num",
          "ai_model"
        ],
        "required": []
      },
      {
        "id": "retry",
        "label": "Retry last commit message",
        "set": {
          "retry": [
            true
          ]
        },
        "lock": [
          "retry"
        ],
        "fields": [
          "retry"
        ],
        "required": []
      }
    ],
    "group": [
      {
        "id": "basic",
        "label": "Basic",
        "fields": [
          "modes",
          "ai_num",
          "ai_model",
          "retry"
        ]
      },
      {
        "id": "advanced",
        "label": "Advanced",
        "fields": [
          "config",
          "no_ai"
        ]
      }
    ]
  }
}
