feat: add fallbacks to plugin loading

This commit is contained in:
Nicholai Vogel 2026-02-04 23:07:34 -07:00
parent ff817a4f97
commit c7c973e16f

View File

@ -301,12 +301,40 @@ return {
end end
_99.setup({ _99.setup({
provider = Providers.CustomOpenCodeProvider, -- Auto-detect provider: OpenCode with server if available, else Claude Code
model = "anthropic/claude-sonnet-4-5", provider = (function()
-- Custom provider adds --attach flag to connect to OpenCode server for tool use -- Check if opencode is installed
-- or for CLAUDE: local opencode_installed = vim.fn.executable("opencode") == 1
-- provider = Providers.ClaudeCodeProvider, if not opencode_installed then
-- model = "claude-sonnet-4-5", return Providers.ClaudeCodeProvider
end
-- Check if opencode serve is running on port 4096
local handle = io.popen("curl -s -o /dev/null -w '%{http_code}' http://localhost:4096/health 2>/dev/null || echo '000'")
local result = handle:read("*a")
handle:close()
-- If server is responding (any 2xx or 404), use CustomOpenCodeProvider
if result:match("^[24]%d%d") then
return Providers.CustomOpenCodeProvider
end
-- Fallback to Claude Code
return Providers.ClaudeCodeProvider
end)(),
model = (function()
-- Use appropriate model format based on provider
local opencode_installed = vim.fn.executable("opencode") == 1
if opencode_installed then
local handle = io.popen("curl -s -o /dev/null -w '%{http_code}' http://localhost:4096/health 2>/dev/null || echo '000'")
local result = handle:read("*a")
handle:close()
if result:match("^[24]%d%d") then
return "anthropic/claude-sonnet-4-5"
end
end
return "claude-sonnet-4-5"
end)(),
logger = { logger = {
level = _99.DEBUG, level = _99.DEBUG,