From 979eba7b9e9f4fbe38d0d196bf3b62a7746ddf26 Mon Sep 17 00:00:00 2001 From: Francisco Solla Date: Sun, 23 Aug 2026 14:40:03 -0300 Subject: [PATCH] =?UTF-8?q?plano=20OPS78:=20vercel=20=C3=A9=20built-in;=20?= =?UTF-8?q?fix=20de=20variantes=20via=20override=20no=20repo=20opencode.js?= =?UTF-8?q?on?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/plans/worktree-launch-default-llm-max-gateway.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/plans/worktree-launch-default-llm-max-gateway.md b/docs/plans/worktree-launch-default-llm-max-gateway.md index 7fe53bc9..b4c63c32 100644 --- a/docs/plans/worktree-launch-default-llm-max-gateway.md +++ b/docs/plans/worktree-launch-default-llm-max-gateway.md @@ -32,7 +32,7 @@ Dados: N/A — item de tooling/launch, sem superfície de dados. ## Direção no codebase (hipótese) - **Áreas prováveis:** `scripts/lib/worktree.mjs:23` (constante do preset, emitida em `:143`); testes `tests/unit/worktree.unit.spec.ts:151-197` e `tests/unit/opencodeCommands.unit.spec.ts:37`; repo `opencode.json` (adicionar provider OpenAI-compatible do gateway e expor a variante max); textos de doc `.agents/shell/worktree.sh:10`, `scripts/worktree.mjs:27,778`, `.agents/skills/worktree-next-issue/SKILL.md:34`. -- **Fix de variantes (observação ao vivo):** as variantes `low`/`high`/`max` não aparecem no TUI do opencode para um provider Vercel AI Gateway porque o campo `variants` precisa estar declarado no **modelo** dentro do `opencode.json`. O repo hoje define `cheapest-inference/deepseek-v4-flash` sem `variants`; o global define `cheapestinference/deepseek-v4-flash` COM `variants`. Ao adicionar o provider do gateway em `opencode.json`, o model config DEVE incluir `variants` com as definições (low/high/max com `reasoningEffort`) — sem isso, o TUI nunca oferece a seleção. Formato: `provider..models..variants..{ reasoningEffort: "max", ... }`. +- **Fix de variantes (observação ao vivo):** o provider `vercel` (Vercel AI Gateway) é **built-in** do opencode (documentado em `opencode.ai/docs/providers/#vercel-ai-gateway`), mas o catálogo built-in **não define `variants`** para `deepseek-v4-flash` — por isso as variantes `low`/`high`/`max` não aparecem no TUI. O SDK do opencode permite `variants` no model config (tipo `types.gen.d.ts:1453`), mas o built-in não os expõe. **Fix:** sobrescrever o model config no repo `opencode.json` adicionando `provider.vercel.models["deepseek/deepseek-v4-flash"].variants` com as definições (low/high/max com `reasoningEffort`). O built-in já lista `vercel/deepseek/deepseek-v4-flash` como modelo disponível; a sobrescreve só adiciona as variantes sem quebrar o routing existente. - **Precedente a olhar:** OPS26 (criou o preset e o mecanismo "trocar modelo = editar a constante"), OPS31/OPS25 (extensões do launch). - **Risco de acoplamento:** baixo — a constante é single source e os testes a seguram; qualquer mudança de string quebra testes, o que é a verificação do item. Fix de variantes é config-only em `opencode.json`. @@ -51,12 +51,12 @@ Dados: N/A — item de tooling/launch, sem superfície de dados. - **"Só completar a string nos comandos".** Se alguém apenas trocar o modelo nos frontmatters dos comandos, muda a execução de Issues (fora de escopo) e ignora o provider do gateway. **Corte neste item:** a mudança é no default de LAUNCH do worktree (preset + provider no repo), não no cardápio de execução. - **"Configurar o gateway no global".** Se alguém criar o provider no opencode.jsonc global, vira config de máquina do humano e contamina todas as sessões. **Corte neste item:** provider no repo `opencode.json`, apenas para expor o caminho que o preset usa. -- **"Adicionar o provider sem variantes".** Se alguém adicionar o provider Vercel AI Gateway no `opencode.json` mas esquecer o campo `variants` no model config, as variantes não aparecem no TUI e a max não pode ser selecionada. **Corte neste item:** ao adicionar o provider, o model config DEVE incluir `variants` com as definições low/high/max (cada uma com `reasoningEffort`). O fix é config-only em `opencode.json` — sem migration, sem code. +- **"Adicionar o provider sem variantes".** Se alguém adicionar o provider Vercel AI Gateway no `opencode.json` mas esquecer o campo `variants` no model config, as variantes não aparecem no TUI e a max não pode ser selecionada. **Corte neste item:** ao sobrescrever o model config, o campo `variants` DEVE incluir as definições low/high/max (cada uma com `reasoningEffort`). O fix é config-only em `opencode.json` — sem migration, sem code. ## Questões em aberto (produto) - **Os comandos de execução de Issues acompanham o novo default ou ficam como estão?** **Opções:** A) ficam como estão (execução = escolha estável, só o launch muda) | B) alinhar também. **Recomendação:** A — o item é o default de LAUNCH; o cardápio de execução é outro mecanismo e está fora de escopo. -- **Onde expor a variante max: no provider do repo ou como flag no preset?** **Opções:** A) default no provider (campo `variants` no model config) | B) flag nova (`--variant max`) na emissão do launch. **Recomendação:** A — default explícito no provider, mantendo a emissão atual de `--model` intacta e o teste unitário como guarda. Observação: o campo `variants` no model config é o que faz as variantes aparecerem no TUI (Ctrl+T) — sem ele, nenhuma variante é selecionável. +- **Onde expor a variante max: no provider built-in ou como override no repo?** **Opções:** A) sobrescrever o model config do provider `vercel` no repo `opencode.json` (adicionar `variants`) | B) flag nova (`--variant max`) na emissão do launch. **Recomendação:** A — sobrescrever o model config do provider built-in, mantendo a emissão atual de `--model` intacta e o teste unitário como guarda. O provider `vercel` é built-in; a sobrescreve só adiciona as variantes sem quebrar o routing. ## Referências