@fazaboa/opencode-auto-continue
v0.1.0
Published
OpenCode plugin: automatically continues responses that were cut off by the model's output limit.
Maintainers
Readme
opencode-auto-continue
Plugin do OpenCode que autocontinua respostas cortadas pelo limite de output do modelo.
O problema
Modelos de contexto grande às vezes param no meio da resposta — o output é truncado pelo teto de tokens (ou o modelo entra em loop de raciocínio e bate no limite), e você fica com metade de um arquivo, um diff quebrado ou uma explicação pela metade. Aí precisa digitar "continue" manualmente… toda hora.
Se você já passou por isso, sabe como é chato:

A solução
O plugin observa a sessão por fora. Quando a última mensagem do assistant:
- termina com
finish: "length"/MessageOutputLengthError, ou - passa de um soft limit de tokens de output (~88% do teto),
ele injeta automaticamente um prompt pedindo para o modelo continuar exatamente de onde parou — sem repetir nada.

Guardrails
| Proteção | Padrão | |---|---| | Máx. de autocontinuações por turno do usuário (anti-loop infinito) | 3 | | Contador reseta quando você manda mensagem nova | ✓ | | Soft limit bem abaixo do teto (pega também "terminou colado no teto") | 115k tokens | | Falha silenciosa (nunca quebra sua sessão) | ✓ |
Instalação
npm install @fazaboa/opencode-auto-continueE registre no seu opencode.json:
{
"plugin": ["@fazaboa/opencode-auto-continue"]
}Ou copie o arquivo-fonte direto para .opencode/plugins/auto-continue.ts no seu projeto — é um arquivo único e autocontido.
Configuração (opcional)
{
"plugin": [
[
"opencode-auto-continue",
{
"outputSoftLimit": 115000,
"maxAutoContinues": 3,
"continueText": "[auto-continue] Continue exatamente de onde parou."
}
]
]
}| Opção | Tipo | Padrão | Descrição |
|---|---|---|---|
| outputSoftLimit | number | 115_000 | Limite de tokens de output que dispara a continuação |
| maxAutoContinues | number | 3 | Máx. de continuações por turno do usuário |
| continueText | string | (ver código) | Prompt injetado na continuação |
Uso programático:
import { autoContinue } from "@fazaboa/opencode-auto-continue"
export const AutoContinuePlugin = autoContinue({ maxAutoContinues: 5 })Como funciona
- Escuta os eventos do OpenCode.
- No
session.idle, busca as mensagens da sessão via client do SDK. - Verifica se a última mensagem do assistant foi truncada (
finish === "length"/MessageOutputLengthError) ou passou do soft limit. - Se disparou, envia um
promptAsynccom o texto de continuação e incrementa o contador da sessão. - Mensagem nova do usuário reseta o contador.
