# Core tools versions for provisioning system (Nickel IaC)
# Migrated from KCL - defines tool versions with detection methods

{
  core_versions = [
    {
      name = "nushell",
      version = { current = "0.109.1", source = "https://github.com/nushell/nushell/releases", tags = "https://github.com/nushell/nushell/tags", site = "https://www.nushell.sh/", check_latest = false, grace_period = 86400 },
      dependencies = [],
      detector = { method = "command", command = "nu -v", pattern = "(?P<capture0>[\\d.]+\\.[\\d.]+)", capture = "capture0" },
    },
    {
      name = "nickel",
      version = { current = "1.15.1", source = "https://github.com/tweag/nickel/releases", tags = "https://github.com/tweag/nickel/tags", site = "https://nickel-lang.org", check_latest = false, grace_period = 86400 },
      dependencies = [],
      detector = { method = "command", command = "nickel --version", pattern = "nickel\\s+(?P<capture0>[\\d.]+)", capture = "capture0" },
    },
    {
      name = "sops",
      version = { current = "3.10.2", source = "https://github.com/getsops/sops/releases", tags = "https://github.com/getsops/sops/tags", site = "https://github.com/getsops/sops", check_latest = false, grace_period = 86400 },
      dependencies = ["age"],
      detector = { method = "command", command = "sops -v", pattern = "sops\\s+(?P<capture0>[\\d.]+)", capture = "capture0" },
    },
    {
      name = "age",
      version = { current = "1.2.1", source = "https://github.com/FiloSottile/age/releases", tags = "https://github.com/FiloSottile/age/tags", site = "https://github.com/FiloSottile/age", check_latest = false, grace_period = 86400 },
      dependencies = [],
      detector = { method = "command", command = "age --version", pattern = "v(?P<capture0>[\\d.]+)", capture = "capture0" },
    },
    {
      name = "k9s",
      version = { current = "0.50.6", source = "https://github.com/derailed/k9s/releases", tags = "https://github.com/derailed/k9s/tags", site = "https://k9scli.io/", check_latest = true, grace_period = 86400 },
      dependencies = [],
      detector = { method = "command", command = "k9s version", pattern = "Version\\s+v(?P<capture0>[\\d.]+)", capture = "capture0" },
    },
    {
      name = "typedialog",
      version = { current = "0.1.0", source = "https://github.com/typedialog/typedialog/releases", tags = "https://github.com/typedialog/typedialog/tags", site = "https://github.com/typedialog/typedialog", check_latest = true, grace_period = 86400 },
      dependencies = [],
      detector = { method = "command", command = "typedialog --version", pattern = "typedialog\\s+(?P<capture0>[\\d.]+)", capture = "capture0" },
    },
    {
      name = "typedialog-tui",
      version = { current = "0.1.0", source = "https://github.com/typedialog/typedialog/releases", tags = "https://github.com/typedialog/typedialog/tags", site = "https://github.com/typedialog/typedialog", check_latest = false, grace_period = 86400 },
      dependencies = ["typedialog"],
      detector = { method = "command", command = "typedialog-tui --version", pattern = "typedialog-tui\\s+(?P<capture0>[\\d.]+)", capture = "capture0" },
    },
    {
      name = "typedialog-web",
      version = { current = "0.1.0", source = "https://github.com/typedialog/typedialog/releases", tags = "https://github.com/typedialog/typedialog/tags", site = "https://github.com/typedialog/typedialog", check_latest = false, grace_period = 86400 },
      dependencies = ["typedialog"],
      detector = { method = "command", command = "typedialog-web --version", pattern = "typedialog-web\\s+(?P<capture0>[\\d.]+)", capture = "capture0" },
    },
    {
      name = "typedialog-ag",
      version = { current = "0.1.0", source = "https://github.com/typedialog/typedialog/releases", tags = "https://github.com/typedialog/typedialog/tags", site = "https://github.com/typedialog/typedialog", check_latest = false, grace_period = 86400 },
      dependencies = ["typedialog"],
      detector = { method = "command", command = "typedialog-ag --help", pattern = "(?P<capture0>[\\d.]+)", capture = "capture0" },
    },
    {
      name = "typedialog-ai",
      version = { current = "0.1.0", source = "https://github.com/typedialog/typedialog/releases", tags = "https://github.com/typedialog/typedialog/tags", site = "https://github.com/typedialog/typedialog", check_latest = false, grace_period = 86400 },
      dependencies = ["typedialog"],
      detector = { method = "command", command = "typedialog-ai --help", pattern = "(?P<capture0>[\\d.]+)", capture = "capture0" },
    },
    {
      name = "typedialog-prov-gen",
      version = { current = "0.1.0", source = "https://github.com/typedialog/typedialog/releases", tags = "https://github.com/typedialog/typedialog/tags", site = "https://github.com/typedialog/typedialog", check_latest = false, grace_period = 86400 },
      dependencies = ["typedialog"],
      detector = { method = "command", command = "typedialog-prov-gen --help", pattern = "(?P<capture0>[\\d.]+)", capture = "capture0" },
    },
  ]
}
