From 052ec0ad6cb2221e38e52a79dd28783103dc3944 Mon Sep 17 00:00:00 2001 From: Andrey Nering Date: Wed, 4 Mar 2026 15:22:04 -0300 Subject: [PATCH] feat: add support for alibaba coding plan * https://github.com/charmbracelet/catwalk/pull/201 --- go.mod | 2 ++ go.sum | 2 -- internal/config/config.go | 8 ++++++++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/go.mod b/go.mod index b708ffa91080bdfc7e13658a8069f1e706e8b477..8ef8ba79748dc11fb91fc01e8aeef2691a10eb17 100644 --- a/go.mod +++ b/go.mod @@ -191,3 +191,5 @@ require ( modernc.org/mathutil v1.7.1 // indirect modernc.org/memory v1.11.0 // indirect ) + +replace charm.land/catwalk => ../catwalk diff --git a/go.sum b/go.sum index 9f58e3288eb0c39fd3a80e09601c85a2be9ec643..19e1579562f725a827abed56a2cd7015ba33af94 100644 --- a/go.sum +++ b/go.sum @@ -2,8 +2,6 @@ charm.land/bubbles/v2 v2.0.0 h1:tE3eK/pHjmtrDiRdoC9uGNLgpopOd8fjhEe31B/ai5s= charm.land/bubbles/v2 v2.0.0/go.mod h1:rCHoleP2XhU8um45NTuOWBPNVHxnkXKTiZqcclL/qOI= charm.land/bubbletea/v2 v2.0.0 h1:p0d6CtWyJXJ9GfzMpUUqbP/XUUhhlk06+vCKWmox1wQ= charm.land/bubbletea/v2 v2.0.0/go.mod h1:3LRff2U4WIYXy7MTxfbAQ+AdfM3D8Xuvz2wbsOD9OHQ= -charm.land/catwalk v0.25.3 h1:mkeICGwUPR9ZeOKNaeRmUrTyDJazTFYiNFWSeyjhM1A= -charm.land/catwalk v0.25.3/go.mod h1:rFC/V96rIHX7VES215c/qzI1EW/Moo1ggs1Q6seTy5s= charm.land/fantasy v0.11.0 h1:KrYa7B3JMCViXsbDyho9vLdzoml9Id8OgyytowrmkNY= charm.land/fantasy v0.11.0/go.mod h1:NtQpqji9blpicYopEzcbgj8mIR4fOMjwK0wyr/D9D5M= charm.land/glamour/v2 v2.0.0-20260123212943-6014aa153a9b h1:A6IUUyChZDWP16RUdRJCfmYISAKWQGyIcfhZJUCViQ0= diff --git a/internal/config/config.go b/internal/config/config.go index c4ef08760ca329d5d0b5644985552e6013d9edd2..333cdb9e47331c4c81664fe7cbcd720e2dd55969 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -799,6 +799,14 @@ func (c *ProviderConfig) TestConnection(resolver VariableResolver) error { return fmt.Errorf("invalid API key format for provider %s", c.ID) } return nil + + case catwalk.InferenceProviderAlibaba: + // NOTE: Alibaba has no good endpoint we can use to validate the API key. + // Let's at least check the pattern. + if !strings.HasPrefix(apiKey, "sk-sp-") { + return fmt.Errorf("invalid API key format for provider %s", c.ID) + } + return nil } switch c.Type {