fix(docs): locale translations
This commit is contained in:
@@ -9,7 +9,7 @@ opencode suporta o [Agent Client Protocol](https://agentclientprotocol.com) ou (
|
||||
Para uma lista de editores e ferramentas que suportam ACP, confira o [relatório de progresso do ACP](https://zed.dev/blog/acp-progress-report#available-now).
|
||||
:::
|
||||
|
||||
ACP é um protocolo aberto que padroniza a comunicação entre editores de código e agentes de codificação de IA.
|
||||
ACP é um protocolo aberto que padroniza a comunicação entre editores de código e agentes de codificação de AI.
|
||||
|
||||
---
|
||||
|
||||
@@ -30,7 +30,7 @@ Adicione à sua configuração do [Zed](https://zed.dev) (`~/.config/zed/setting
|
||||
```json title="~/.config/zed/settings.json"
|
||||
{
|
||||
"agent_servers": {
|
||||
"opencode": {
|
||||
"OpenCode": {
|
||||
"command": "opencode",
|
||||
"args": ["acp"]
|
||||
}
|
||||
@@ -51,7 +51,7 @@ Você também pode vincular um atalho de teclado editando seu `keymap.json`:
|
||||
{
|
||||
"agent": {
|
||||
"custom": {
|
||||
"name": "opencode",
|
||||
"name": "OpenCode",
|
||||
"command": {
|
||||
"command": "opencode",
|
||||
"args": ["acp"]
|
||||
@@ -74,7 +74,7 @@ Adicione ao seu acp.json do [JetBrains IDE](https://www.jetbrains.com/) de acord
|
||||
```json title="acp.json"
|
||||
{
|
||||
"agent_servers": {
|
||||
"opencode": {
|
||||
"OpenCode": {
|
||||
"command": "/absolute/path/bin/opencode",
|
||||
"args": ["acp"]
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@ title: Agentes
|
||||
description: Configure e use agentes especializados.
|
||||
---
|
||||
|
||||
Agentes são assistentes de IA especializados que podem ser configurados para tarefas e fluxos de trabalho específicos. Eles permitem que você crie ferramentas focadas com prompts, modelos e acesso a ferramentas personalizados.
|
||||
Agentes são assistentes de AI especializados que podem ser configurados para tarefas e fluxos de trabalho específicos. Eles permitem que você crie ferramentas focadas com prompts, modelos e acesso a ferramentas personalizados.
|
||||
|
||||
:::tip
|
||||
Use o agente de planejamento para analisar código e revisar sugestões sem fazer alterações no código.
|
||||
@@ -162,10 +162,10 @@ Configure os agentes em seu arquivo de configuração `opencode.json`:
|
||||
}
|
||||
},
|
||||
"code-reviewer": {
|
||||
"description": "Revisa o código em busca de melhores práticas e problemas potenciais",
|
||||
"description": "Reviews code for best practices and potential issues",
|
||||
"mode": "subagent",
|
||||
"model": "anthropic/claude-sonnet-4-20250514",
|
||||
"prompt": "Você é um revisor de código. Foque em segurança, desempenho e manutenibilidade.",
|
||||
"prompt": "You are a code reviewer. Focus on security, performance, and maintainability.",
|
||||
"tools": {
|
||||
"write": false,
|
||||
"edit": false
|
||||
@@ -186,7 +186,7 @@ Você também pode definir agentes usando arquivos markdown. Coloque-os em:
|
||||
|
||||
```markdown title="~/.config/opencode/agents/review.md"
|
||||
---
|
||||
description: Revisa o código em busca de qualidade e melhores práticas
|
||||
description: Reviews code for quality and best practices
|
||||
mode: subagent
|
||||
model: anthropic/claude-sonnet-4-20250514
|
||||
temperature: 0.1
|
||||
@@ -196,14 +196,14 @@ tools:
|
||||
bash: false
|
||||
---
|
||||
|
||||
Você está no modo de revisão de código. Foque em:
|
||||
You are in code review mode. Focus on:
|
||||
|
||||
- Qualidade do código e melhores práticas
|
||||
- Bugs potenciais e casos extremos
|
||||
- Implicações de desempenho
|
||||
- Considerações de segurança
|
||||
- Code quality and best practices
|
||||
- Potential bugs and edge cases
|
||||
- Performance implications
|
||||
- Security considerations
|
||||
|
||||
Forneça feedback construtivo sem fazer alterações diretas.
|
||||
Provide constructive feedback without making direct changes.
|
||||
```
|
||||
|
||||
O nome do arquivo markdown se torna o nome do agente. Por exemplo, `review.md` cria um agente `review`.
|
||||
@@ -224,7 +224,7 @@ Use a opção `description` para fornecer uma breve descrição do que o agente
|
||||
{
|
||||
"agent": {
|
||||
"review": {
|
||||
"description": "Revisa o código em busca de melhores práticas e problemas potenciais"
|
||||
"description": "Reviews code for best practices and potential issues"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -291,8 +291,8 @@ Se isso não for definido, o agente continuará a iterar até que o modelo decid
|
||||
{
|
||||
"agent": {
|
||||
"quick-thinker": {
|
||||
"description": "Raciocínio rápido com iterações limitadas",
|
||||
"prompt": "Você é um pensador rápido. Resolva problemas com o mínimo de etapas.",
|
||||
"description": "Fast reasoning with limited iterations",
|
||||
"prompt": "You are a quick thinker. Solve problems with minimal steps.",
|
||||
"steps": 5
|
||||
}
|
||||
}
|
||||
@@ -449,7 +449,7 @@ Você também pode definir permissões em agentes Markdown.
|
||||
|
||||
```markdown title="~/.config/opencode/agents/review.md"
|
||||
---
|
||||
description: Revisão de código sem edições
|
||||
description: Code review without edits
|
||||
mode: subagent
|
||||
permission:
|
||||
edit: deny
|
||||
@@ -461,7 +461,7 @@ permission:
|
||||
webfetch: deny
|
||||
---
|
||||
|
||||
Apenas analise o código e sugira alterações.
|
||||
Only analyze code and suggest changes.
|
||||
```
|
||||
|
||||
Você pode definir permissões para comandos bash específicos.
|
||||
@@ -645,7 +645,7 @@ Por exemplo, com os modelos de raciocínio da OpenAI, você pode controlar o esf
|
||||
{
|
||||
"agent": {
|
||||
"deep-thinker": {
|
||||
"description": "Agente que usa alto esforço de raciocínio para problemas complexos",
|
||||
"description": "Agent that uses high reasoning effort for complex problems",
|
||||
"model": "openai/gpt-5",
|
||||
"reasoningEffort": "high",
|
||||
"textVerbosity": "low"
|
||||
@@ -706,20 +706,20 @@ Você tem um agente que gostaria de compartilhar? [Envie um PR](https://github.c
|
||||
|
||||
```markdown title="~/.config/opencode/agents/docs-writer.md"
|
||||
---
|
||||
description: Escreve e mantém a documentação do projeto
|
||||
description: Writes and maintains project documentation
|
||||
mode: subagent
|
||||
tools:
|
||||
bash: false
|
||||
---
|
||||
|
||||
Você é um redator técnico. Crie documentação clara e abrangente.
|
||||
You are a technical writer. Create clear, comprehensive documentation.
|
||||
|
||||
Foque em:
|
||||
Focus on:
|
||||
|
||||
- Explicações claras
|
||||
- Estrutura adequada
|
||||
- Exemplos de código
|
||||
- Linguagem amigável ao usuário
|
||||
- Clear explanations
|
||||
- Proper structure
|
||||
- Code examples
|
||||
- User-friendly language
|
||||
```
|
||||
|
||||
---
|
||||
@@ -728,20 +728,20 @@ Foque em:
|
||||
|
||||
```markdown title="~/.config/opencode/agents/security-auditor.md"
|
||||
---
|
||||
description: Realiza auditorias de segurança e identifica vulnerabilidades
|
||||
description: Performs security audits and identifies vulnerabilities
|
||||
mode: subagent
|
||||
tools:
|
||||
write: false
|
||||
edit: false
|
||||
---
|
||||
|
||||
Você é um especialista em segurança. Foque em identificar problemas potenciais de segurança.
|
||||
You are a security expert. Focus on identifying potential security issues.
|
||||
|
||||
Procure por:
|
||||
Look for:
|
||||
|
||||
- Vulnerabilidades de validação de entrada
|
||||
- Falhas de autenticação e autorização
|
||||
- Riscos de exposição de dados
|
||||
- Vulnerabilidades de dependência
|
||||
- Problemas de segurança de configuração
|
||||
- Input validation vulnerabilities
|
||||
- Authentication and authorization flaws
|
||||
- Data exposure risks
|
||||
- Dependency vulnerabilities
|
||||
- Configuration security issues
|
||||
```
|
||||
|
||||
@@ -14,7 +14,7 @@ opencode
|
||||
Mas também aceita comandos conforme documentado nesta página. Isso permite que você interaja com o opencode programaticamente.
|
||||
|
||||
```bash
|
||||
opencode run "Explique como closures funcionam em JavaScript"
|
||||
opencode run "Explain how closures work in JavaScript"
|
||||
```
|
||||
|
||||
---
|
||||
@@ -24,7 +24,7 @@ opencode run "Explique como closures funcionam em JavaScript"
|
||||
Inicie a interface de usuário do terminal do opencode.
|
||||
|
||||
```bash
|
||||
opencode [projeto]
|
||||
opencode [project]
|
||||
```
|
||||
|
||||
#### Flags
|
||||
@@ -53,7 +53,7 @@ A CLI do opencode também possui os seguintes comandos.
|
||||
Gerencie agentes para o opencode.
|
||||
|
||||
```bash
|
||||
opencode agent [comando]
|
||||
opencode agent [command]
|
||||
```
|
||||
|
||||
---
|
||||
@@ -69,10 +69,10 @@ opencode attach [url]
|
||||
Isso permite usar o TUI com um backend opencode remoto. Por exemplo:
|
||||
|
||||
```bash
|
||||
# Inicie o servidor backend para acesso web/móvel
|
||||
# Start the backend server for web/mobile access
|
||||
opencode web --port 4096 --hostname 0.0.0.0
|
||||
|
||||
# Em outro terminal, anexe o TUI ao backend em execução
|
||||
# In another terminal, attach the TUI to the running backend
|
||||
opencode attach http://10.20.30.40:4096
|
||||
```
|
||||
|
||||
@@ -112,7 +112,7 @@ opencode agent list
|
||||
Comando para gerenciar credenciais e login para provedores.
|
||||
|
||||
```bash
|
||||
opencode auth [comando]
|
||||
opencode auth [command]
|
||||
```
|
||||
|
||||
---
|
||||
@@ -160,7 +160,7 @@ opencode auth logout
|
||||
Gerencie o agente do GitHub para automação de repositórios.
|
||||
|
||||
```bash
|
||||
opencode github [comando]
|
||||
opencode github [command]
|
||||
```
|
||||
|
||||
---
|
||||
@@ -199,7 +199,7 @@ opencode github run
|
||||
Gerencie servidores do Model Context Protocol.
|
||||
|
||||
```bash
|
||||
opencode mcp [comando]
|
||||
opencode mcp [command]
|
||||
```
|
||||
|
||||
---
|
||||
@@ -237,7 +237,7 @@ opencode mcp ls
|
||||
Autentique-se com um servidor MCP habilitado para OAuth.
|
||||
|
||||
```bash
|
||||
opencode mcp auth [nome]
|
||||
opencode mcp auth [name]
|
||||
```
|
||||
|
||||
Se você não fornecer um nome de servidor, será solicitado que você selecione entre os servidores disponíveis habilitados para OAuth.
|
||||
@@ -261,7 +261,7 @@ opencode mcp auth ls
|
||||
Remova credenciais OAuth para um servidor MCP.
|
||||
|
||||
```bash
|
||||
opencode mcp logout [nome]
|
||||
opencode mcp logout [name]
|
||||
```
|
||||
|
||||
---
|
||||
@@ -271,7 +271,7 @@ opencode mcp logout [nome]
|
||||
Depure problemas de conexão OAuth para um servidor MCP.
|
||||
|
||||
```bash
|
||||
opencode mcp debug <nome>
|
||||
opencode mcp debug <name>
|
||||
```
|
||||
|
||||
---
|
||||
@@ -281,7 +281,7 @@ opencode mcp debug <nome>
|
||||
Liste todos os modelos disponíveis dos provedores configurados.
|
||||
|
||||
```bash
|
||||
opencode models [provedor]
|
||||
opencode models [provider]
|
||||
```
|
||||
|
||||
Este comando exibe todos os modelos disponíveis entre seus provedores configurados no formato `provider/model`.
|
||||
@@ -314,23 +314,23 @@ opencode models --refresh
|
||||
Execute o opencode em modo não interativo passando um prompt diretamente.
|
||||
|
||||
```bash
|
||||
opencode run [mensagem..]
|
||||
opencode run [message..]
|
||||
```
|
||||
|
||||
Isso é útil para scripts, automação ou quando você deseja uma resposta rápida sem iniciar o TUI completo. Por exemplo.
|
||||
|
||||
```bash "opencode run"
|
||||
opencode run Explique o uso de contexto em Go
|
||||
opencode run Explain the use of context in Go
|
||||
```
|
||||
|
||||
Você também pode se anexar a uma instância em execução do `opencode serve` para evitar tempos de inicialização a frio do servidor MCP em cada execução:
|
||||
|
||||
```bash
|
||||
# Inicie um servidor sem cabeça em um terminal
|
||||
# Start a headless server in one terminal
|
||||
opencode serve
|
||||
|
||||
# Em outro terminal, execute comandos que se anexam a ele
|
||||
opencode run --attach http://localhost:4096 "Explique async/await em JavaScript"
|
||||
# In another terminal, run commands that attach to it
|
||||
opencode run --attach http://localhost:4096 "Explain async/await in JavaScript"
|
||||
```
|
||||
|
||||
#### Flags
|
||||
@@ -378,7 +378,7 @@ Isso inicia um servidor HTTP que fornece acesso à funcionalidade do opencode se
|
||||
Gerencie sessões do opencode.
|
||||
|
||||
```bash
|
||||
opencode session [comando]
|
||||
opencode session [command]
|
||||
```
|
||||
|
||||
---
|
||||
@@ -436,7 +436,7 @@ Se você não fornecer um ID de sessão, será solicitado que você selecione en
|
||||
Importe dados da sessão de um arquivo JSON ou URL de compartilhamento do opencode.
|
||||
|
||||
```bash
|
||||
opencode import <arquivo>
|
||||
opencode import <file>
|
||||
```
|
||||
|
||||
Você pode importar de um arquivo local ou de uma URL de compartilhamento do opencode.
|
||||
@@ -513,7 +513,7 @@ opencode uninstall
|
||||
Atualiza o opencode para a versão mais recente ou uma versão específica.
|
||||
|
||||
```bash
|
||||
opencode upgrade [alvo]
|
||||
opencode upgrade [target]
|
||||
```
|
||||
|
||||
Para atualizar para a versão mais recente.
|
||||
|
||||
@@ -21,13 +21,13 @@ Crie `.opencode/commands/test.md`:
|
||||
|
||||
```md title=".opencode/commands/test.md"
|
||||
---
|
||||
description: Execute testes com cobertura
|
||||
description: Run tests with coverage
|
||||
agent: build
|
||||
model: anthropic/claude-3-5-sonnet-20241022
|
||||
---
|
||||
|
||||
Execute a suíte de testes completa com relatório de cobertura e mostre quaisquer falhas.
|
||||
Concentre-se nos testes que falharam e sugira correções.
|
||||
Run the full test suite with coverage report and show any failures.
|
||||
Focus on the failing tests and suggest fixes.
|
||||
```
|
||||
|
||||
O frontmatter define as propriedades do comando. O conteúdo se torna o template.
|
||||
@@ -54,12 +54,12 @@ Use a opção `command` na sua [configuração](/docs/config) do opencode:
|
||||
{
|
||||
"$schema": "https://opencode.ai/config.json",
|
||||
"command": {
|
||||
// Este se torna o nome do comando
|
||||
// This becomes the name of the command
|
||||
"test": {
|
||||
// Este é o prompt que será enviado ao LLM
|
||||
"template": "Execute a suíte de testes completa com relatório de cobertura e mostre quaisquer falhas.\nConcentre-se nos testes que falharam e sugira correções.",
|
||||
// Este é exibido como a descrição no TUI
|
||||
"description": "Execute testes com cobertura",
|
||||
// This is the prompt that will be sent to the LLM
|
||||
"template": "Run the full test suite with coverage report and show any failures.\nFocus on the failing tests and suggest fixes.",
|
||||
// This is shown as the description in the TUI
|
||||
"description": "Run tests with coverage",
|
||||
"agent": "build",
|
||||
"model": "anthropic/claude-3-5-sonnet-20241022"
|
||||
}
|
||||
@@ -84,13 +84,13 @@ Você também pode definir comandos usando arquivos markdown. Coloque-os em:
|
||||
|
||||
```markdown title="~/.config/opencode/commands/test.md"
|
||||
---
|
||||
description: Execute testes com cobertura
|
||||
description: Run tests with coverage
|
||||
agent: build
|
||||
model: anthropic/claude-3-5-sonnet-20241022
|
||||
---
|
||||
|
||||
Execute a suíte de testes completa com relatório de cobertura e mostre quaisquer falhas.
|
||||
Concentre-se nos testes que falharam e sugira correções.
|
||||
Run the full test suite with coverage report and show any failures.
|
||||
Focus on the failing tests and suggest fixes.
|
||||
```
|
||||
|
||||
O nome do arquivo markdown se torna o nome do comando. Por exemplo, `test.md` permite que você execute:
|
||||
@@ -113,11 +113,11 @@ Passe argumentos para os comandos usando o espaço reservado `$ARGUMENTS`.
|
||||
|
||||
```md title=".opencode/commands/component.md"
|
||||
---
|
||||
description: Crie um novo componente
|
||||
description: Create a new component
|
||||
---
|
||||
|
||||
Crie um novo componente React chamado $ARGUMENTS com suporte a TypeScript.
|
||||
Inclua tipagem adequada e estrutura básica.
|
||||
Create a new React component named $ARGUMENTS with TypeScript support.
|
||||
Include proper typing and basic structure.
|
||||
```
|
||||
|
||||
Execute o comando com argumentos:
|
||||
@@ -139,11 +139,11 @@ Por exemplo:
|
||||
|
||||
```md title=".opencode/commands/create-file.md"
|
||||
---
|
||||
description: Crie um novo arquivo com conteúdo
|
||||
description: Create a new file with content
|
||||
---
|
||||
|
||||
Crie um arquivo chamado $1 no diretório $2
|
||||
com o seguinte conteúdo: $3
|
||||
Create a file named $1 in the directory $2
|
||||
with the following content: $3
|
||||
```
|
||||
|
||||
Execute o comando:
|
||||
@@ -162,32 +162,32 @@ Isso substitui:
|
||||
|
||||
### Saída do shell
|
||||
|
||||
Use _!`comando`_ para injetar a saída do [comando bash](/docs/tui#bash-commands) no seu prompt.
|
||||
Use _!`command`_ para injetar a saída do [comando bash](/docs/tui#bash-commands) no seu prompt.
|
||||
|
||||
Por exemplo, para criar um comando personalizado que analisa a cobertura de testes:
|
||||
|
||||
```md title=".opencode/commands/analyze-coverage.md"
|
||||
---
|
||||
description: Analise a cobertura de testes
|
||||
description: Analyze test coverage
|
||||
---
|
||||
|
||||
Aqui estão os resultados atuais dos testes:
|
||||
Here are the current test results:
|
||||
!`npm test`
|
||||
|
||||
Com base nesses resultados, sugira melhorias para aumentar a cobertura.
|
||||
Based on these results, suggest improvements to increase coverage.
|
||||
```
|
||||
|
||||
Ou para revisar alterações recentes:
|
||||
|
||||
```md title=".opencode/commands/review-changes.md"
|
||||
---
|
||||
description: Revise alterações recentes
|
||||
description: Review recent changes
|
||||
---
|
||||
|
||||
Commits git recentes:
|
||||
Recent git commits:
|
||||
!`git log --oneline -10`
|
||||
|
||||
Revise essas alterações e sugira quaisquer melhorias.
|
||||
Review these changes and suggest any improvements.
|
||||
```
|
||||
|
||||
Os comandos são executados no diretório raiz do seu projeto e sua saída se torna parte do prompt.
|
||||
@@ -200,11 +200,11 @@ Inclua arquivos no seu comando usando `@` seguido pelo nome do arquivo.
|
||||
|
||||
```md title=".opencode/commands/review-component.md"
|
||||
---
|
||||
description: Revise componente
|
||||
description: Review component
|
||||
---
|
||||
|
||||
Revise o componente em @src/components/Button.tsx.
|
||||
Verifique problemas de desempenho e sugira melhorias.
|
||||
Review the component in @src/components/Button.tsx.
|
||||
Check for performance issues and suggest improvements.
|
||||
```
|
||||
|
||||
O conteúdo do arquivo é incluído automaticamente no prompt.
|
||||
@@ -225,7 +225,7 @@ A opção `template` define o prompt que será enviado ao LLM quando o comando f
|
||||
{
|
||||
"command": {
|
||||
"test": {
|
||||
"template": "Execute a suíte de testes completa com relatório de cobertura e mostre quaisquer falhas.\nConcentre-se nos testes que falharam e sugira correções."
|
||||
"template": "Run the full test suite with coverage report and show any failures.\nFocus on the failing tests and suggest fixes."
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -243,7 +243,7 @@ Use a opção `description` para fornecer uma breve descrição do que o comando
|
||||
{
|
||||
"command": {
|
||||
"test": {
|
||||
"description": "Execute testes com cobertura"
|
||||
"description": "Run tests with coverage"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@ O opencode suporta os formatos **JSON** e **JSONC** (JSON com Comentários).
|
||||
```jsonc title="opencode.jsonc"
|
||||
{
|
||||
"$schema": "https://opencode.ai/config.json",
|
||||
// Configuração do tema
|
||||
// Theme configuration
|
||||
"theme": "opencode",
|
||||
"model": "anthropic/claude-sonnet-4-5",
|
||||
"autoupdate": true,
|
||||
@@ -65,7 +65,7 @@ A configuração remota é carregada primeiro, servindo como a camada base. Toda
|
||||
|
||||
Por exemplo, se sua organização fornece servidores MCP que estão desativados por padrão:
|
||||
|
||||
```json title="Configuração remota de .well-known/opencode"
|
||||
```json title="Remote config from .well-known/opencode"
|
||||
{
|
||||
"mcp": {
|
||||
"jira": {
|
||||
@@ -320,11 +320,11 @@ Você pode configurar agentes especializados para tarefas específicas através
|
||||
"$schema": "https://opencode.ai/config.json",
|
||||
"agent": {
|
||||
"code-reviewer": {
|
||||
"description": "Revisa o código em busca de melhores práticas e problemas potenciais",
|
||||
"description": "Reviews code for best practices and potential issues",
|
||||
"model": "anthropic/claude-sonnet-4-5",
|
||||
"prompt": "Você é um revisor de código. Foque em segurança, desempenho e manutenibilidade.",
|
||||
"prompt": "You are a code reviewer. Focus on security, performance, and maintainability.",
|
||||
"tools": {
|
||||
// Desabilitar ferramentas de modificação de arquivos para agente somente de revisão
|
||||
// Disable file modification tools for review-only agent
|
||||
"write": false,
|
||||
"edit": false,
|
||||
},
|
||||
@@ -384,14 +384,14 @@ Você pode configurar comandos personalizados para tarefas repetitivas através
|
||||
"$schema": "https://opencode.ai/config.json",
|
||||
"command": {
|
||||
"test": {
|
||||
"template": "Execute a suíte de testes completa com relatório de cobertura e mostre quaisquer falhas.\nFoque nos testes que falharam e sugira correções.",
|
||||
"description": "Executar testes com cobertura",
|
||||
"template": "Run the full test suite with coverage report and show any failures.\nFocus on the failing tests and suggest fixes.",
|
||||
"description": "Run tests with coverage",
|
||||
"agent": "build",
|
||||
"model": "anthropic/claude-haiku-4-5",
|
||||
},
|
||||
"component": {
|
||||
"template": "Crie um novo componente React chamado $ARGUMENTS com suporte a TypeScript.\nInclua tipagem adequada e estrutura básica.",
|
||||
"description": "Criar um novo componente",
|
||||
"template": "Create a new React component named $ARGUMENTS with TypeScript support.\nInclude proper typing and basic structure.",
|
||||
"description": "Create a new component",
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
@@ -30,12 +30,12 @@ A maneira mais fácil de criar ferramentas é usando o helper `tool()`, que forn
|
||||
import { tool } from "@opencode-ai/plugin"
|
||||
|
||||
export default tool({
|
||||
description: "Consultar o banco de dados do projeto",
|
||||
description: "Query the project database",
|
||||
args: {
|
||||
query: tool.schema.string().describe("Consulta SQL a ser executada"),
|
||||
query: tool.schema.string().describe("SQL query to execute"),
|
||||
},
|
||||
async execute(args) {
|
||||
// Sua lógica de banco de dados aqui
|
||||
// Your database logic here
|
||||
return `Executed query: ${args.query}`
|
||||
},
|
||||
})
|
||||
@@ -53,10 +53,10 @@ Você também pode exportar várias ferramentas de um único arquivo. Cada expor
|
||||
import { tool } from "@opencode-ai/plugin"
|
||||
|
||||
export const add = tool({
|
||||
description: "Adicionar dois números",
|
||||
description: "Add two numbers",
|
||||
args: {
|
||||
a: tool.schema.number().describe("Primeiro número"),
|
||||
b: tool.schema.number().describe("Segundo número"),
|
||||
a: tool.schema.number().describe("First number"),
|
||||
b: tool.schema.number().describe("Second number"),
|
||||
},
|
||||
async execute(args) {
|
||||
return args.a + args.b
|
||||
@@ -64,10 +64,10 @@ export const add = tool({
|
||||
})
|
||||
|
||||
export const multiply = tool({
|
||||
description: "Multiplicar dois números",
|
||||
description: "Multiply two numbers",
|
||||
args: {
|
||||
a: tool.schema.number().describe("Primeiro número"),
|
||||
b: tool.schema.number().describe("Segundo número"),
|
||||
a: tool.schema.number().describe("First number"),
|
||||
b: tool.schema.number().describe("Second number"),
|
||||
},
|
||||
async execute(args) {
|
||||
return args.a * args.b
|
||||
@@ -85,7 +85,7 @@ Você pode usar `tool.schema`, que é apenas [Zod](https://zod.dev), para defini
|
||||
|
||||
```ts "tool.schema"
|
||||
args: {
|
||||
query: tool.schema.string().describe("Consulta SQL a ser executada")
|
||||
query: tool.schema.string().describe("SQL query to execute")
|
||||
}
|
||||
```
|
||||
|
||||
@@ -95,13 +95,13 @@ Você também pode importar [Zod](https://zod.dev) diretamente e retornar um obj
|
||||
import { z } from "zod"
|
||||
|
||||
export default {
|
||||
description: "Descrição da ferramenta",
|
||||
description: "Tool description",
|
||||
args: {
|
||||
param: z.string().describe("Descrição do parâmetro"),
|
||||
param: z.string().describe("Parameter description"),
|
||||
},
|
||||
async execute(args, context) {
|
||||
// Implementação da ferramenta
|
||||
return "resultado"
|
||||
// Tool implementation
|
||||
return "result"
|
||||
},
|
||||
}
|
||||
```
|
||||
@@ -116,10 +116,10 @@ As ferramentas recebem contexto sobre a sessão atual:
|
||||
import { tool } from "@opencode-ai/plugin"
|
||||
|
||||
export default tool({
|
||||
description: "Obter informações do projeto",
|
||||
description: "Get project information",
|
||||
args: {},
|
||||
async execute(args, context) {
|
||||
// Acessar informações do contexto
|
||||
// Access context information
|
||||
const { agent, sessionID, messageID, directory, worktree } = context
|
||||
return `Agent: ${agent}, Session: ${sessionID}, Message: ${messageID}, Directory: ${directory}, Worktree: ${worktree}`
|
||||
},
|
||||
@@ -154,10 +154,10 @@ import { tool } from "@opencode-ai/plugin"
|
||||
import path from "path"
|
||||
|
||||
export default tool({
|
||||
description: "Adicionar dois números usando Python",
|
||||
description: "Add two numbers using Python",
|
||||
args: {
|
||||
a: tool.schema.number().describe("Primeiro número"),
|
||||
b: tool.schema.number().describe("Segundo número"),
|
||||
a: tool.schema.number().describe("First number"),
|
||||
b: tool.schema.number().describe("Second number"),
|
||||
},
|
||||
async execute(args, context) {
|
||||
const script = path.join(context.worktree, ".opencode/tools/add.py")
|
||||
|
||||
@@ -27,7 +27,7 @@ Você também pode conferir [awesome-opencode](https://github.com/awesome-openco
|
||||
| [opencode-google-antigravity-auth](https://github.com/shekohex/opencode-google-antigravity-auth) | Plugin Google Antigravity OAuth, com suporte para Google Search e manuseio de API mais robusto |
|
||||
| [opencode-dynamic-context-pruning](https://github.com/Tarquinen/opencode-dynamic-context-pruning) | Otimize o uso de tokens podando saídas de ferramentas obsoletas |
|
||||
| [opencode-websearch-cited](https://github.com/ghoulr/opencode-websearch-cited.git) | Adicione suporte nativo de pesquisa na web para provedores suportados com estilo fundamentado no Google |
|
||||
| [opencode-pty](https://github.com/shekohex/opencode-pty.git) | Permite que agentes de IA executem processos em segundo plano em um PTY, enviando entrada interativa para eles. |
|
||||
| [opencode-pty](https://github.com/shekohex/opencode-pty.git) | Permite que agentes de AI executem processos em segundo plano em um PTY, enviando entrada interativa para eles. |
|
||||
| [opencode-shell-strategy](https://github.com/JRedeker/opencode-shell-strategy) | Instruções para comandos de shell não interativos - evita travamentos de operações dependentes de TTY |
|
||||
| [opencode-wakatime](https://github.com/angristan/opencode-wakatime) | Acompanhe o uso do opencode com Wakatime |
|
||||
| [opencode-md-table-formatter](https://github.com/franlol/opencode-md-table-formatter/tree/main) | Limpe tabelas markdown produzidas por LLMs |
|
||||
@@ -35,14 +35,14 @@ Você também pode conferir [awesome-opencode](https://github.com/awesome-openco
|
||||
| [oh-my-opencode](https://github.com/code-yeongyu/oh-my-opencode) | Agentes em segundo plano, ferramentas LSP/AST/MCP pré-construídas, agentes curados, compatível com Claude Code |
|
||||
| [opencode-notificator](https://github.com/panta82/opencode-notificator) | Notificações de desktop e alertas sonoros para sessões do opencode |
|
||||
| [opencode-notifier](https://github.com/mohak34/opencode-notifier) | Notificações de desktop e alertas sonoros para eventos de permissão, conclusão e erro |
|
||||
| [opencode-zellij-namer](https://github.com/24601/opencode-zellij-namer) | Nomeação automática de sessões Zellij com suporte de IA com base no contexto do opencode |
|
||||
| [opencode-zellij-namer](https://github.com/24601/opencode-zellij-namer) | Nomeação automática de sessões Zellij com suporte de AI com base no contexto do opencode |
|
||||
| [opencode-skillful](https://github.com/zenobi-us/opencode-skillful) | Permite que agentes do opencode carreguem prompts sob demanda com descoberta e injeção de habilidades |
|
||||
| [opencode-supermemory](https://github.com/supermemoryai/opencode-supermemory) | Memória persistente entre sessões usando Supermemory |
|
||||
| [@plannotator/opencode](https://github.com/backnotprop/plannotator/tree/main/apps/opencode-plugin) | Revisão de plano interativa com anotação visual e compartilhamento privado/offline |
|
||||
| [@openspoon/subtask2](https://github.com/spoons-and-mirrors/subtask2) | Estenda opencode /commands em um poderoso sistema de orquestração com controle de fluxo granular |
|
||||
| [opencode-scheduler](https://github.com/different-ai/opencode-scheduler) | Agende trabalhos recorrentes usando launchd (Mac) ou systemd (Linux) com sintaxe cron |
|
||||
| [micode](https://github.com/vtemian/micode) | Fluxo de trabalho Estruturado Brainstorm → Planejar → Implementar com continuidade de sessão |
|
||||
| [octto](https://github.com/vtemian/octto) | UI interativa do navegador para brainstorming de IA com formulários de múltiplas perguntas |
|
||||
| [octto](https://github.com/vtemian/octto) | UI interativa do navegador para brainstorming de AI com formulários de múltiplas perguntas |
|
||||
| [opencode-background-agents](https://github.com/kdcokenny/opencode-background-agents) | Agentes em segundo plano estilo Claude Code com delegação assíncrona e persistência de contexto |
|
||||
| [opencode-notify](https://github.com/kdcokenny/opencode-notify) | Notificações nativas do OS para opencode – saiba quando as tarefas são concluídas |
|
||||
| [opencode-workspace](https://github.com/kdcokenny/opencode-workspace) | Conjunto de orquestração multi-agente – 16 componentes, uma instalação |
|
||||
@@ -72,5 +72,5 @@ Você também pode conferir [awesome-opencode](https://github.com/awesome-openco
|
||||
|
||||
| Nome | Descrição |
|
||||
| ----------------------------------------------------------------- | ----------------------------------------------------------------------------- |
|
||||
| [Agentic](https://github.com/Cluster444/agentic) | Agentes e comandos de IA modulares para desenvolvimento estruturado |
|
||||
| [Agentic](https://github.com/Cluster444/agentic) | Agentes e comandos de AI modulares para desenvolvimento estruturado |
|
||||
| [opencode-agents](https://github.com/darrenhinde/opencode-agents) | Configurações, prompts, agentes e plugins para fluxos de trabalho aprimorados |
|
||||
|
||||
@@ -6,7 +6,7 @@ description: Usando opencode com segurança em sua organização.
|
||||
import config from "../../../../config.mjs"
|
||||
export const email = `mailto:${config.email}`
|
||||
|
||||
opencode Enterprise é para organizações que desejam garantir que seu código e dados nunca deixem sua infraestrutura. Isso pode ser feito usando uma configuração centralizada que se integra ao seu SSO e gateway de IA interno.
|
||||
opencode Enterprise é para organizações que desejam garantir que seu código e dados nunca deixem sua infraestrutura. Isso pode ser feito usando uma configuração centralizada que se integra ao seu SSO e gateway de AI interno.
|
||||
|
||||
:::note
|
||||
opencode não armazena nenhum de seus códigos ou dados de contexto.
|
||||
@@ -27,9 +27,9 @@ opencode é de código aberto e não armazena nenhum de seus códigos ou dados d
|
||||
|
||||
### Manipulação de dados
|
||||
|
||||
**opencode não armazena seu código ou dados de contexto.** Todo o processamento acontece localmente ou através de chamadas diretas de API para seu provedor de IA.
|
||||
**opencode não armazena seu código ou dados de contexto.** Todo o processamento acontece localmente ou através de chamadas diretas de API para seu provedor de AI.
|
||||
|
||||
Isso significa que, enquanto você estiver usando um provedor em quem confia, ou um gateway de IA interno, você pode usar o opencode com segurança.
|
||||
Isso significa que, enquanto você estiver usando um provedor em quem confia, ou um gateway de AI interno, você pode usar o opencode com segurança.
|
||||
|
||||
A única ressalva aqui é o recurso opcional `/share`.
|
||||
|
||||
@@ -76,7 +76,7 @@ Uma vez que você tenha concluído seu teste e esteja pronto para usar o opencod
|
||||
|
||||
Podemos configurar o opencode para usar uma única configuração central para toda a sua organização.
|
||||
|
||||
Essa configuração centralizada pode se integrar ao seu provedor de SSO e garante que todos os usuários acessem apenas seu gateway de IA interno.
|
||||
Essa configuração centralizada pode se integrar ao seu provedor de SSO e garante que todos os usuários acessem apenas seu gateway de AI interno.
|
||||
|
||||
---
|
||||
|
||||
@@ -84,15 +84,15 @@ Essa configuração centralizada pode se integrar ao seu provedor de SSO e garan
|
||||
|
||||
Através da configuração central, o opencode pode se integrar ao provedor de SSO de sua organização para autenticação.
|
||||
|
||||
Isso permite que o opencode obtenha credenciais para seu gateway de IA interno através do seu sistema de gerenciamento de identidade existente.
|
||||
Isso permite que o opencode obtenha credenciais para seu gateway de AI interno através do seu sistema de gerenciamento de identidade existente.
|
||||
|
||||
---
|
||||
|
||||
### Gateway de IA Interno
|
||||
### Gateway de AI Interno
|
||||
|
||||
Com a configuração central, o opencode também pode ser configurado para usar apenas seu gateway de IA interno.
|
||||
Com a configuração central, o opencode também pode ser configurado para usar apenas seu gateway de AI interno.
|
||||
|
||||
Você também pode desativar todos os outros provedores de IA, garantindo que todas as solicitações passem pela infraestrutura aprovada de sua organização.
|
||||
Você também pode desativar todos os outros provedores de AI, garantindo que todas as solicitações passem pela infraestrutura aprovada de sua organização.
|
||||
|
||||
---
|
||||
|
||||
@@ -109,7 +109,7 @@ Isso está atualmente em nosso roadmap. Se você estiver interessado, **<a href=
|
||||
<details>
|
||||
<summary>O que é opencode Enterprise?</summary>
|
||||
|
||||
opencode Enterprise é para organizações que desejam garantir que seu código e dados nunca deixem sua infraestrutura. Isso pode ser feito usando uma configuração centralizada que se integra ao seu SSO e gateway de IA interno.
|
||||
opencode Enterprise é para organizações que desejam garantir que seu código e dados nunca deixem sua infraestrutura. Isso pode ser feito usando uma configuração centralizada que se integra ao seu SSO e gateway de AI interno.
|
||||
|
||||
</details>
|
||||
|
||||
@@ -132,7 +132,7 @@ Oferecemos preços empresariais por assento. Se você tiver seu próprio gateway
|
||||
<details>
|
||||
<summary>Meus dados estão seguros com opencode Enterprise?</summary>
|
||||
|
||||
Sim. O opencode não armazena seu código ou dados de contexto. Todo o processamento acontece localmente ou através de chamadas diretas de API para seu provedor de IA. Com a configuração central e a integração SSO, seus dados permanecem seguros dentro da infraestrutura de sua organização.
|
||||
Sim. O opencode não armazena seu código ou dados de contexto. Todo o processamento acontece localmente ou através de chamadas diretas de API para seu provedor de AI. Com a configuração central e a integração SSO, seus dados permanecem seguros dentro da infraestrutura de sua organização.
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
@@ -63,7 +63,7 @@ Ou você pode configurá-lo manualmente.
|
||||
fetch-depth: 1
|
||||
persist-credentials: false
|
||||
|
||||
- name: Run opencode
|
||||
- name: Run OpenCode
|
||||
uses: anomalyco/opencode/github@latest
|
||||
env:
|
||||
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
|
||||
@@ -119,11 +119,11 @@ O opencode pode ser acionado pelos seguintes eventos do GitHub:
|
||||
Execute o opencode em um cronograma para realizar tarefas automatizadas:
|
||||
|
||||
```yaml title=".github/workflows/opencode-scheduled.yml"
|
||||
name: Tarefa Agendada opencode
|
||||
name: Scheduled OpenCode Task
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: "0 9 * * 1" # Toda segunda-feira às 9h UTC
|
||||
- cron: "0 9 * * 1" # Every Monday at 9am UTC
|
||||
|
||||
jobs:
|
||||
opencode:
|
||||
@@ -139,15 +139,15 @@ jobs:
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
- name: Run opencode
|
||||
- name: Run OpenCode
|
||||
uses: anomalyco/opencode/github@latest
|
||||
env:
|
||||
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
|
||||
with:
|
||||
model: anthropic/claude-sonnet-4-20250514
|
||||
prompt: |
|
||||
Revise a base de código em busca de comentários TODO e crie um resumo.
|
||||
Se você encontrar problemas que valem a pena serem abordados, abra um problema para rastreá-los.
|
||||
Review the codebase for any TODO comments and create a summary.
|
||||
If you find issues worth addressing, open an issue to track them.
|
||||
```
|
||||
|
||||
Para eventos agendados, a entrada `prompt` é **obrigatória** uma vez que não há comentário para extrair instruções. Fluxos de trabalho agendados são executados sem um contexto de usuário para verificação de permissões, então o fluxo de trabalho deve conceder `contents: write` e `pull-requests: write` se você espera que o opencode crie branches ou PRs.
|
||||
@@ -185,10 +185,10 @@ jobs:
|
||||
model: anthropic/claude-sonnet-4-20250514
|
||||
use_github_token: true
|
||||
prompt: |
|
||||
Revise este pull request:
|
||||
- Verifique se há problemas de qualidade de código
|
||||
- Procure por bugs potenciais
|
||||
- Sugira melhorias
|
||||
Review this pull request:
|
||||
- Check for code quality issues
|
||||
- Look for potential bugs
|
||||
- Suggest improvements
|
||||
```
|
||||
|
||||
Para eventos de `pull_request`, se nenhum `prompt` for fornecido, o opencode padrão será revisar o pull request.
|
||||
@@ -200,7 +200,7 @@ Para eventos de `pull_request`, se nenhum `prompt` for fornecido, o opencode pad
|
||||
Triagem automática de novos problemas. Este exemplo filtra contas com mais de 30 dias para reduzir spam:
|
||||
|
||||
```yaml title=".github/workflows/opencode-triage.yml"
|
||||
name: Triagem de Problemas
|
||||
name: Issue Triage
|
||||
|
||||
on:
|
||||
issues:
|
||||
@@ -215,7 +215,7 @@ jobs:
|
||||
pull-requests: write
|
||||
issues: write
|
||||
steps:
|
||||
- name: Verificar idade da conta
|
||||
- name: Check account age
|
||||
id: check
|
||||
uses: actions/github-script@v7
|
||||
with:
|
||||
@@ -240,10 +240,10 @@ jobs:
|
||||
with:
|
||||
model: anthropic/claude-sonnet-4-20250514
|
||||
prompt: |
|
||||
Revise este problema. Se houver uma correção clara ou documentos relevantes:
|
||||
- Forneça links de documentação
|
||||
- Adicione orientações de tratamento de erros para exemplos de código
|
||||
Caso contrário, não comente.
|
||||
Review this issue. If there's a clear fix or relevant docs:
|
||||
- Provide documentation links
|
||||
- Add error handling guidance for code examples
|
||||
Otherwise, do not comment.
|
||||
```
|
||||
|
||||
Para eventos de `issues`, a entrada `prompt` é **obrigatória** uma vez que não há comentário para extrair instruções.
|
||||
@@ -259,10 +259,10 @@ Substitua o prompt padrão para personalizar o comportamento do opencode para se
|
||||
with:
|
||||
model: anthropic/claude-sonnet-4-5
|
||||
prompt: |
|
||||
Revise este pull request:
|
||||
- Verifique se há problemas de qualidade de código
|
||||
- Procure por bugs potenciais
|
||||
- Sugira melhorias
|
||||
Review this pull request:
|
||||
- Check for code quality issues
|
||||
- Look for potential bugs
|
||||
- Suggest improvements
|
||||
```
|
||||
|
||||
Isso é útil para impor critérios de revisão específicos, padrões de codificação ou áreas de foco relevantes para seu projeto.
|
||||
@@ -308,7 +308,7 @@ Aqui estão alguns exemplos de como você pode usar o opencode no GitHub.
|
||||
Deixe um comentário diretamente nas linhas de código na aba "Files" do PR. O opencode detecta automaticamente o arquivo, os números das linhas e o contexto do diff para fornecer respostas precisas.
|
||||
|
||||
```
|
||||
[Comentário sobre linhas específicas na aba Files]
|
||||
[Comment on specific lines in Files tab]
|
||||
/oc add error handling here
|
||||
```
|
||||
|
||||
|
||||
@@ -35,9 +35,9 @@ Aqui estamos usando um componente CI/CD criado pela comunidade para opencode —
|
||||
- component: $CI_SERVER_FQDN/nagyv/gitlab-opencode/opencode@2
|
||||
inputs:
|
||||
config_dir: ${CI_PROJECT_DIR}/opencode-config
|
||||
auth_json: $OPENCODE_AUTH_JSON # O nome da variável para seu JSON de autenticação do opencode
|
||||
auth_json: $OPENCODE_AUTH_JSON # The variable name for your OpenCode authentication JSON
|
||||
command: optional-custom-command
|
||||
message: "Seu prompt aqui"
|
||||
message: "Your prompt here"
|
||||
```
|
||||
|
||||
Para mais entradas e casos de uso [consulte a documentação](https://gitlab.com/explore/catalog/nagyv/gitlab-opencode) deste componente.
|
||||
@@ -70,7 +70,7 @@ Consulte a [**documentação do GitLab**](https://docs.gitlab.com/user/duo_agent
|
||||
|
||||
1. Configure seu ambiente GitLab
|
||||
2. Configure CI/CD
|
||||
3. Obtenha uma chave de API do provedor de modelo de IA
|
||||
3. Obtenha uma chave de API do provedor de modelo de AI
|
||||
4. Crie uma conta de serviço
|
||||
5. Configure variáveis de CI/CD
|
||||
6. Crie um arquivo de configuração de fluxo, aqui está um exemplo:
|
||||
@@ -82,16 +82,16 @@ Consulte a [**documentação do GitLab**](https://docs.gitlab.com/user/duo_agent
|
||||
```yaml
|
||||
image: node:22-slim
|
||||
commands:
|
||||
- echo "Instalando opencode"
|
||||
- echo "Installing opencode"
|
||||
- npm install --global opencode-ai
|
||||
- echo "Instalando glab"
|
||||
- echo "Installing glab"
|
||||
- export GITLAB_TOKEN=$GITLAB_TOKEN_OPENCODE
|
||||
- apt-get update --quiet && apt-get install --yes curl wget gpg git && rm --recursive --force /var/lib/apt/lists/*
|
||||
- curl --silent --show-error --location "https://raw.githubusercontent.com/upciti/wakemeops/main/assets/install_repository" | bash
|
||||
- apt-get install --yes glab
|
||||
- echo "Configurando glab"
|
||||
- echo "Configuring glab"
|
||||
- echo $GITLAB_HOST
|
||||
- echo "Criando configuração de autenticação do opencode"
|
||||
- echo "Creating OpenCode auth configuration"
|
||||
- mkdir --parents ~/.local/share/opencode
|
||||
- |
|
||||
cat > ~/.local/share/opencode/auth.json << EOF
|
||||
@@ -102,47 +102,47 @@ Consulte a [**documentação do GitLab**](https://docs.gitlab.com/user/duo_agent
|
||||
}
|
||||
}
|
||||
EOF
|
||||
- echo "Configurando git"
|
||||
- echo "Configuring git"
|
||||
- git config --global user.email "opencode@gitlab.com"
|
||||
- git config --global user.name "opencode"
|
||||
- echo "Testando glab"
|
||||
- git config --global user.name "OpenCode"
|
||||
- echo "Testing glab"
|
||||
- glab issue list
|
||||
- echo "Executando opencode"
|
||||
- echo "Running OpenCode"
|
||||
- |
|
||||
opencode run "
|
||||
Você é um assistente de IA ajudando com operações do GitLab.
|
||||
You are an AI assistant helping with GitLab operations.
|
||||
|
||||
Contexto: $AI_FLOW_CONTEXT
|
||||
Tarefa: $AI_FLOW_INPUT
|
||||
Evento: $AI_FLOW_EVENT
|
||||
Context: $AI_FLOW_CONTEXT
|
||||
Task: $AI_FLOW_INPUT
|
||||
Event: $AI_FLOW_EVENT
|
||||
|
||||
Por favor, execute a tarefa solicitada usando as ferramentas disponíveis do GitLab.
|
||||
Seja minucioso em sua análise e forneça explicações claras.
|
||||
Please execute the requested task using the available GitLab tools.
|
||||
Be thorough in your analysis and provide clear explanations.
|
||||
|
||||
<important>
|
||||
Por favor, use a CLI do glab para acessar dados do GitLab. A CLI do glab já foi autenticada. Você pode executar os comandos correspondentes.
|
||||
Please use the glab CLI to access data from GitLab. The glab CLI has already been authenticated. You can run the corresponding commands.
|
||||
|
||||
Se você for solicitado a resumir um MR ou problema ou a fornecer mais informações, então, por favor, poste uma nota de volta ao MR/Problema para que o usuário possa vê-la.
|
||||
Você não precisa fazer commit ou push das alterações, isso será feito automaticamente com base nas alterações de arquivo que você fizer.
|
||||
If you are asked to summarize an MR or issue or asked to provide more information then please post back a note to the MR/Issue so that the user can see it.
|
||||
You don't need to commit or push up changes, those will be done automatically based on the file changes you make.
|
||||
</important>
|
||||
"
|
||||
- git checkout --branch $CI_WORKLOAD_REF origin/$CI_WORKLOAD_REF
|
||||
- echo "Verificando alterações no git e fazendo push se existirem"
|
||||
- echo "Checking for git changes and pushing if any exist"
|
||||
- |
|
||||
if ! git diff --quiet || ! git diff --cached --quiet || [ --not --zero "$(git ls-files --others --exclude-standard)" ]; then
|
||||
echo "Alterações no Git detectadas, adicionando e fazendo push..."
|
||||
echo "Git changes detected, adding and pushing..."
|
||||
git add .
|
||||
if git diff --cached --quiet; then
|
||||
echo "Nenhuma alteração em estágio para fazer commit"
|
||||
echo "No staged changes to commit"
|
||||
else
|
||||
echo "Fazendo commit das alterações no branch: $CI_WORKLOAD_REF"
|
||||
git commit --message "Alterações do Codex"
|
||||
echo "Fazendo push das alterações para $CI_WORKLOAD_REF"
|
||||
echo "Committing changes to branch: $CI_WORKLOAD_REF"
|
||||
git commit --message "Codex changes"
|
||||
echo "Pushing changes up to $CI_WORKLOAD_REF"
|
||||
git push https://gitlab-ci-token:$GITLAB_TOKEN@$GITLAB_HOST/gl-demo-ultimate-dev-ai-epic-17570/test-java-project.git $CI_WORKLOAD_REF
|
||||
echo "Alterações enviadas com sucesso"
|
||||
echo "Changes successfully pushed"
|
||||
fi
|
||||
else
|
||||
echo "Nenhuma alteração no git detectada, pulando push"
|
||||
echo "No git changes detected, skipping push"
|
||||
fi
|
||||
variables:
|
||||
- ANTHROPIC_API_KEY
|
||||
|
||||
@@ -147,7 +147,7 @@ Se você é novo no uso de provedores de LLM, recomendamos usar o [OpenCode Zen]
|
||||
3. Cole sua chave de API.
|
||||
|
||||
```txt
|
||||
┌ Chave de API
|
||||
┌ API key
|
||||
│
|
||||
│
|
||||
└ enter
|
||||
@@ -162,7 +162,7 @@ Alternativamente, você pode selecionar um dos outros provedores. [Saiba mais](/
|
||||
Agora que você configurou um provedor, pode navegar até um projeto no qual deseja trabalhar.
|
||||
|
||||
```bash
|
||||
cd /caminho/para/projeto
|
||||
cd /path/to/project
|
||||
```
|
||||
|
||||
E execute o opencode.
|
||||
@@ -204,7 +204,7 @@ Use a tecla `@` para buscar arquivos no projeto.
|
||||
:::
|
||||
|
||||
```txt frame="none" "@packages/functions/src/api/index.ts"
|
||||
Como a autenticação é tratada em @packages/functions/src/api/index.ts
|
||||
How is authentication handled in @packages/functions/src/api/index.ts
|
||||
```
|
||||
|
||||
Isso é útil se houver uma parte da base de código na qual você não trabalhou.
|
||||
@@ -221,16 +221,16 @@ Você pode pedir ao opencode para adicionar novos recursos ao seu projeto. Embor
|
||||
|
||||
Mude para ele usando a tecla **Tab**. Você verá um indicador para isso no canto inferior direito.
|
||||
|
||||
```bash frame="none" title="Mudar para o modo de plano"
|
||||
```bash frame="none" title="Switch to Plan mode"
|
||||
<TAB>
|
||||
```
|
||||
|
||||
Agora vamos descrever o que queremos que ele faça.
|
||||
|
||||
```txt frame="none"
|
||||
Quando um usuário excluir uma nota, gostaríamos de marcá-la como excluída no banco de dados.
|
||||
Em seguida, crie uma tela que mostre todas as notas recentemente excluídas.
|
||||
A partir dessa tela, o usuário pode restaurar uma nota ou excluí-la permanentemente.
|
||||
When a user deletes a note, we'd like to flag it as deleted in the database.
|
||||
Then create a screen that shows all the recently deleted notes.
|
||||
From this screen, the user can undelete a note or permanently delete it.
|
||||
```
|
||||
|
||||
Você quer dar ao opencode detalhes suficientes para entender o que você deseja. Ajuda conversar com ele como se você estivesse falando com um desenvolvedor júnior da sua equipe.
|
||||
@@ -244,8 +244,8 @@ Você pode pedir ao opencode para adicionar novos recursos ao seu projeto. Embor
|
||||
Uma vez que ele lhe der um plano, você pode dar feedback ou adicionar mais detalhes.
|
||||
|
||||
```txt frame="none"
|
||||
Gostaríamos de projetar essa nova tela usando um design que já usei antes.
|
||||
[Imagem #1] Dê uma olhada nesta imagem e use-a como referência.
|
||||
We'd like to design this new screen using a design I've used before.
|
||||
[Image #1] Take a look at this image and use it as a reference.
|
||||
```
|
||||
|
||||
:::tip
|
||||
@@ -265,7 +265,7 @@ Você pode pedir ao opencode para adicionar novos recursos ao seu projeto. Embor
|
||||
E peça para ele fazer as alterações.
|
||||
|
||||
```bash frame="none"
|
||||
Parece bom! Vá em frente e faça as alterações.
|
||||
Sounds good! Go ahead and make the changes.
|
||||
```
|
||||
|
||||
---
|
||||
@@ -275,7 +275,9 @@ Você pode pedir ao opencode para adicionar novos recursos ao seu projeto. Embor
|
||||
Para alterações mais simples, você pode pedir ao opencode para construí-las diretamente sem precisar revisar o plano primeiro.
|
||||
|
||||
```txt frame="none" "@packages/functions/src/settings.ts" "@packages/functions/src/notes.ts"
|
||||
Precisamos adicionar autenticação à rota /settings. Dê uma olhada em como isso é tratado na rota /notes em @packages/functions/src/notes.ts e implemente a mesma lógica em @packages/functions/src/settings.ts
|
||||
We need to add authentication to the /settings route. Take a look at how this is
|
||||
handled in the /notes route in @packages/functions/src/notes.ts and implement
|
||||
the same logic in @packages/functions/src/settings.ts
|
||||
```
|
||||
|
||||
Você quer ter certeza de fornecer uma boa quantidade de detalhes para que o opencode faça as alterações corretas.
|
||||
@@ -287,7 +289,7 @@ Você quer ter certeza de fornecer uma boa quantidade de detalhes para que o ope
|
||||
Vamos supor que você peça ao opencode para fazer algumas alterações.
|
||||
|
||||
```txt frame="none" "@packages/functions/src/api/index.ts"
|
||||
Você pode refatorar a função em @packages/functions/src/api/index.ts?
|
||||
Can you refactor the function in @packages/functions/src/api/index.ts?
|
||||
```
|
||||
|
||||
Mas você percebe que não era isso que você queria. Você **pode desfazer** as alterações usando o comando `/undo`.
|
||||
@@ -299,7 +301,7 @@ Mas você percebe que não era isso que você queria. Você **pode desfazer** as
|
||||
O opencode agora reverterá as alterações que você fez e mostrará sua mensagem original novamente.
|
||||
|
||||
```txt frame="none" "@packages/functions/src/api/index.ts"
|
||||
Você pode refatorar a função em @packages/functions/src/api/index.ts?
|
||||
Can you refactor the function in @packages/functions/src/api/index.ts?
|
||||
```
|
||||
|
||||
A partir daqui, você pode ajustar o prompt e pedir ao opencode para tentar novamente.
|
||||
|
||||
@@ -182,7 +182,7 @@ Você pode adicionar servidores LSP personalizados especificando o comando e as
|
||||
|
||||
PHP Intelephense oferece recursos premium através de uma chave de licença. Você pode fornecer uma chave de licença colocando (apenas) a chave em um arquivo de texto em:
|
||||
|
||||
- No macOS/Linux: `$HOME/intelephense/licence.txt`
|
||||
- No Windows: `%USERPROFILE%/intelephense/licence.txt`
|
||||
- No macOS/Linux: `$HOME/intelephense/license.txt`
|
||||
- No Windows: `%USERPROFILE%/intelephense/license.txt`
|
||||
|
||||
O arquivo deve conter apenas a chave de licença sem conteúdo adicional.
|
||||
|
||||
@@ -29,11 +29,11 @@ Você pode definir servidores MCP em sua [Configuração do opencode](https://op
|
||||
{
|
||||
"$schema": "https://opencode.ai/config.json",
|
||||
"mcp": {
|
||||
"mcp-server-name": {
|
||||
"name-of-mcp-server": {
|
||||
// ...
|
||||
"enabled": true,
|
||||
},
|
||||
"another-mcp-server-name": {
|
||||
"name-of-other-mcp-server": {
|
||||
// ...
|
||||
},
|
||||
},
|
||||
@@ -77,11 +77,11 @@ Adicione servidores MCP locais usando `type` como `"local"` dentro do objeto MCP
|
||||
"mcp": {
|
||||
"my-local-mcp-server": {
|
||||
"type": "local",
|
||||
// Ou ["bun", "x", "my-mcp-command"]
|
||||
// Or ["bun", "x", "my-mcp-command"]
|
||||
"command": ["npx", "-y", "my-mcp-command"],
|
||||
"enabled": true,
|
||||
"environment": {
|
||||
"MY_ENV_VAR": "env_var_value",
|
||||
"MY_ENV_VAR": "my_env_var_value",
|
||||
},
|
||||
},
|
||||
},
|
||||
@@ -183,7 +183,7 @@ Para a maioria dos servidores MCP habilitados para OAuth, nenhuma configuração
|
||||
"mcp": {
|
||||
"my-oauth-server": {
|
||||
"type": "remote",
|
||||
"url": "https://mcp.exemplo.com/mcp"
|
||||
"url": "https://mcp.example.com/mcp"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -203,9 +203,9 @@ Se você tiver credenciais de cliente do provedor do servidor MCP, pode configur
|
||||
"mcp": {
|
||||
"my-oauth-server": {
|
||||
"type": "remote",
|
||||
"url": "https://mcp.exemplo.com/mcp",
|
||||
"url": "https://mcp.example.com/mcp",
|
||||
"oauth": {
|
||||
"clientId": "{env:MY_MCP_CLIENT_KEY}",
|
||||
"clientId": "{env:MY_MCP_CLIENT_ID}",
|
||||
"clientSecret": "{env:MY_MCP_CLIENT_SECRET}",
|
||||
"scope": "tools:read tools:execute"
|
||||
}
|
||||
@@ -252,7 +252,7 @@ Se você quiser desabilitar o OAuth automático para um servidor (por exemplo, p
|
||||
"mcp": {
|
||||
"my-api-key-server": {
|
||||
"type": "remote",
|
||||
"url": "https://mcp.exemplo.com/mcp",
|
||||
"url": "https://mcp.example.com/mcp",
|
||||
"oauth": false,
|
||||
"headers": {
|
||||
"Authorization": "Bearer {env:MY_API_KEY}"
|
||||
@@ -278,10 +278,10 @@ Se você quiser desabilitar o OAuth automático para um servidor (por exemplo, p
|
||||
Se um servidor MCP remoto estiver falhando na autenticação, você pode diagnosticar problemas com:
|
||||
|
||||
```bash
|
||||
# Ver status de autenticação para todos os servidores com capacidade OAuth
|
||||
# View auth status for all OAuth-capable servers
|
||||
opencode mcp auth list
|
||||
|
||||
# Depurar conexão e fluxo OAuth para um servidor específico
|
||||
# Debug connection and OAuth flow for a specific server
|
||||
opencode mcp debug my-oauth-server
|
||||
```
|
||||
|
||||
@@ -387,7 +387,7 @@ O padrão glob usa padrões simples de regex globbing:
|
||||
As ferramentas do servidor MCP são registradas com o nome do servidor como prefixo, então para desabilitar todas as ferramentas de um servidor, simplesmente use:
|
||||
|
||||
```
|
||||
"mynome_do_servidor_mcp_*": false
|
||||
"mymcpservername_*": false
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
@@ -36,7 +36,7 @@ Um modo restrito projetado para planejamento e análise. No modo plan, as seguin
|
||||
- `patch` - Não pode aplicar patches
|
||||
- `bash` - Não pode executar comandos de shell
|
||||
|
||||
Este modo é útil quando você deseja que a IA analise o código, sugira alterações ou crie planos sem fazer modificações reais em sua base de código.
|
||||
Este modo é útil quando você deseja que a AI analise o código, sugira alterações ou crie planos sem fazer modificações reais em sua base de código.
|
||||
|
||||
---
|
||||
|
||||
@@ -98,14 +98,14 @@ tools:
|
||||
bash: false
|
||||
---
|
||||
|
||||
Você está no modo de revisão de código. Foque em:
|
||||
You are in code review mode. Focus on:
|
||||
|
||||
- Qualidade do código e melhores práticas
|
||||
- Bugs potenciais e casos extremos
|
||||
- Implicações de desempenho
|
||||
- Considerações de segurança
|
||||
- Code quality and best practices
|
||||
- Potential bugs and edge cases
|
||||
- Performance implications
|
||||
- Security considerations
|
||||
|
||||
Forneça feedback construtivo sem fazer alterações diretas.
|
||||
Provide constructive feedback without making direct changes.
|
||||
```
|
||||
|
||||
O nome do arquivo markdown se torna o nome do modo (por exemplo, `review.md` cria um modo `review`).
|
||||
@@ -132,7 +132,7 @@ Use a configuração `model` para substituir o modelo padrão para este modo. Ú
|
||||
|
||||
### Temperatura
|
||||
|
||||
Controle a aleatoriedade e a criatividade das respostas da IA com a configuração `temperature`. Valores mais baixos tornam as respostas mais focadas e determinísticas, enquanto valores mais altos aumentam a criatividade e a variabilidade.
|
||||
Controle a aleatoriedade e a criatividade das respostas da AI com a configuração `temperature`. Valores mais baixos tornam as respostas mais focadas e determinísticas, enquanto valores mais altos aumentam a criatividade e a variabilidade.
|
||||
|
||||
```json title="opencode.json"
|
||||
{
|
||||
@@ -278,17 +278,17 @@ tools:
|
||||
edit: false
|
||||
---
|
||||
|
||||
Você está no modo de depuração. Seu objetivo principal é ajudar a investigar e diagnosticar problemas.
|
||||
You are in debug mode. Your primary goal is to help investigate and diagnose issues.
|
||||
|
||||
Foque em:
|
||||
Focus on:
|
||||
|
||||
- Compreender o problema através de uma análise cuidadosa
|
||||
- Usar comandos bash para inspecionar o estado do sistema
|
||||
- Ler arquivos e logs relevantes
|
||||
- Pesquisar padrões e anomalias
|
||||
- Fornecer explicações claras das descobertas
|
||||
- Understanding the problem through careful analysis
|
||||
- Using bash commands to inspect system state
|
||||
- Reading relevant files and logs
|
||||
- Searching for patterns and anomalies
|
||||
- Providing clear explanations of findings
|
||||
|
||||
Não faça alterações em arquivos. Apenas investigue e relate.
|
||||
Do not make any changes to files. Only investigate and report.
|
||||
```
|
||||
|
||||
```markdown title="~/.config/opencode/modes/refactor.md"
|
||||
@@ -302,15 +302,15 @@ tools:
|
||||
glob: true
|
||||
---
|
||||
|
||||
Você está no modo de refatoração. Foque em melhorar a qualidade do código sem alterar a funcionalidade.
|
||||
You are in refactoring mode. Focus on improving code quality without changing functionality.
|
||||
|
||||
Prioridades:
|
||||
Priorities:
|
||||
|
||||
- Melhorar a legibilidade e a manutenibilidade do código
|
||||
- Aplicar convenções de nomenclatura consistentes
|
||||
- Reduzir a duplicação de código
|
||||
- Otimizar o desempenho onde apropriado
|
||||
- Garantir que todos os testes continuem passando
|
||||
- Improve code readability and maintainability
|
||||
- Apply consistent naming conventions
|
||||
- Reduce code duplication
|
||||
- Optimize performance where appropriate
|
||||
- Ensure all tests continue to pass
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
@@ -12,13 +12,13 @@ opencode suporta variáveis de ambiente de proxy padrão e certificados personal
|
||||
opencode respeita variáveis de ambiente de proxy padrão.
|
||||
|
||||
```bash
|
||||
# Proxy HTTPS (recomendado)
|
||||
# HTTPS proxy (recommended)
|
||||
export HTTPS_PROXY=https://proxy.example.com:8080
|
||||
|
||||
# Proxy HTTP (se HTTPS não estiver disponível)
|
||||
# HTTP proxy (if HTTPS not available)
|
||||
export HTTP_PROXY=http://proxy.example.com:8080
|
||||
|
||||
# Ignorar proxy para servidor local (obrigatório)
|
||||
# Bypass proxy for local server (required)
|
||||
export NO_PROXY=localhost,127.0.0.1
|
||||
```
|
||||
|
||||
|
||||
@@ -221,7 +221,7 @@ Você também pode configurar permissões de agentes em Markdown:
|
||||
|
||||
```markdown title="~/.config/opencode/agents/review.md"
|
||||
---
|
||||
description: Revisão de código sem edições
|
||||
description: Code review without edits
|
||||
mode: subagent
|
||||
permission:
|
||||
edit: deny
|
||||
@@ -229,7 +229,7 @@ permission:
|
||||
webfetch: deny
|
||||
---
|
||||
|
||||
Apenas analise o código e sugira alterações.
|
||||
Only analyze code and suggest changes.
|
||||
```
|
||||
|
||||
:::tip
|
||||
|
||||
@@ -104,10 +104,10 @@ export const MyPlugin = async (ctx) => {
|
||||
|
||||
```js title=".opencode/plugins/example.js"
|
||||
export const MyPlugin = async ({ project, client, $, directory, worktree }) => {
|
||||
console.log("Plugin inicializado!")
|
||||
console.log("Plugin initialized!")
|
||||
|
||||
return {
|
||||
// Implementações de hooks vão aqui
|
||||
// Hook implementations go here
|
||||
}
|
||||
}
|
||||
```
|
||||
@@ -117,7 +117,7 @@ A função do plugin recebe:
|
||||
- `project`: As informações do projeto atual.
|
||||
- `directory`: O diretório de trabalho atual.
|
||||
- `worktree`: O caminho do worktree do git.
|
||||
- `client`: Um cliente SDK do opencode para interagir com a IA.
|
||||
- `client`: Um cliente SDK do opencode para interagir com a AI.
|
||||
- `$`: A [API shell](https://bun.com/docs/runtime/shell) do Bun para executar comandos.
|
||||
|
||||
---
|
||||
@@ -131,7 +131,7 @@ import type { Plugin } from "@opencode-ai/plugin"
|
||||
|
||||
export const MyPlugin: Plugin = async ({ project, client, $, directory, worktree }) => {
|
||||
return {
|
||||
// Implementações de hooks seguras em tipo
|
||||
// Type-safe hook implementations
|
||||
}
|
||||
}
|
||||
```
|
||||
@@ -222,7 +222,7 @@ Envie notificações quando certos eventos ocorrerem:
|
||||
export const NotificationPlugin = async ({ project, client, $, directory, worktree }) => {
|
||||
return {
|
||||
event: async ({ event }) => {
|
||||
// Enviar notificação ao concluir a sessão
|
||||
// Send notification on session completion
|
||||
if (event.type === "session.idle") {
|
||||
await $`osascript -e 'display notification "Session completed!" with title "opencode"'`
|
||||
}
|
||||
@@ -248,7 +248,7 @@ export const EnvProtection = async ({ project, client, $, directory, worktree })
|
||||
return {
|
||||
"tool.execute.before": async (input, output) => {
|
||||
if (input.tool === "read" && output.args.filePath.includes(".env")) {
|
||||
throw new Error("Não leia arquivos .env")
|
||||
throw new Error("Do not read .env files")
|
||||
}
|
||||
},
|
||||
}
|
||||
@@ -259,13 +259,13 @@ export const EnvProtection = async ({ project, client, $, directory, worktree })
|
||||
|
||||
### Injetar variáveis de ambiente
|
||||
|
||||
Injete variáveis de ambiente em todas as execuções de shell (ferramentas de IA e terminais de usuário):
|
||||
Injete variáveis de ambiente em todas as execuções de shell (ferramentas de AI e terminais de usuário):
|
||||
|
||||
```javascript title=".opencode/plugins/inject-env.js"
|
||||
export const InjectEnvPlugin = async () => {
|
||||
return {
|
||||
"shell.env": async (input, output) => {
|
||||
output.env.MY_API_KEY = "secreto"
|
||||
output.env.MY_API_KEY = "secret"
|
||||
output.env.PROJECT_ROOT = input.cwd
|
||||
},
|
||||
}
|
||||
@@ -285,7 +285,7 @@ export const CustomToolsPlugin: Plugin = async (ctx) => {
|
||||
return {
|
||||
tool: {
|
||||
mytool: tool({
|
||||
description: "Esta é uma ferramenta personalizada",
|
||||
description: "This is a custom tool",
|
||||
args: {
|
||||
foo: tool.schema.string(),
|
||||
},
|
||||
@@ -319,7 +319,7 @@ export const MyPlugin = async ({ client }) => {
|
||||
body: {
|
||||
service: "my-plugin",
|
||||
level: "info",
|
||||
message: "Plugin inicializado",
|
||||
message: "Plugin initialized",
|
||||
extra: { foo: "bar" },
|
||||
},
|
||||
})
|
||||
@@ -340,14 +340,14 @@ import type { Plugin } from "@opencode-ai/plugin"
|
||||
export const CompactionPlugin: Plugin = async (ctx) => {
|
||||
return {
|
||||
"experimental.session.compacting": async (input, output) => {
|
||||
// Injetar contexto adicional no prompt de compactação
|
||||
// Inject additional context into the compaction prompt
|
||||
output.context.push(`
|
||||
## Contexto Personalizado
|
||||
## Custom Context
|
||||
|
||||
Inclua qualquer estado que deve persistir entre as compactações:
|
||||
- Status da tarefa atual
|
||||
- Decisões importantes tomadas
|
||||
- Arquivos sendo trabalhados ativamente
|
||||
Include any state that should persist across compaction:
|
||||
- Current task status
|
||||
- Important decisions made
|
||||
- Files being actively worked on
|
||||
`)
|
||||
},
|
||||
}
|
||||
@@ -364,17 +364,17 @@ import type { Plugin } from "@opencode-ai/plugin"
|
||||
export const CustomCompactionPlugin: Plugin = async (ctx) => {
|
||||
return {
|
||||
"experimental.session.compacting": async (input, output) => {
|
||||
// Substituir todo o prompt de compactação
|
||||
// Replace the entire compaction prompt
|
||||
output.prompt = `
|
||||
Você está gerando um prompt de continuação para uma sessão de enxame multi-agente.
|
||||
You are generating a continuation prompt for a multi-agent swarm session.
|
||||
|
||||
Resuma:
|
||||
1. A tarefa atual e seu status
|
||||
2. Quais arquivos estão sendo modificados e por quem
|
||||
3. Quaisquer bloqueios ou dependências entre agentes
|
||||
4. Os próximos passos para concluir o trabalho
|
||||
Summarize:
|
||||
1. The current task and its status
|
||||
2. Which files are being modified and by whom
|
||||
3. Any blockers or dependencies between agents
|
||||
4. The next steps to complete the work
|
||||
|
||||
Formate como um prompt estruturado que um novo agente pode usar para retomar o trabalho.
|
||||
Format as a structured prompt that a new agent can use to resume work.
|
||||
`
|
||||
},
|
||||
}
|
||||
|
||||
@@ -65,7 +65,7 @@ Se você é novo, recomendamos começar com o OpenCode Zen.
|
||||
3. Cole sua chave da API.
|
||||
|
||||
```txt
|
||||
┌ Chave da API
|
||||
┌ API key
|
||||
│
|
||||
│
|
||||
└ enter
|
||||
@@ -104,7 +104,7 @@ Não vê um provedor aqui? Envie um PR.
|
||||
3. Insira sua chave da API 302.AI.
|
||||
|
||||
```txt
|
||||
┌ Chave da API
|
||||
┌ API key
|
||||
│
|
||||
│
|
||||
└ enter
|
||||
@@ -135,13 +135,13 @@ Para usar o Amazon Bedrock com o opencode:
|
||||
Defina uma dessas variáveis de ambiente ao executar o opencode:
|
||||
|
||||
```bash
|
||||
# Opção 1: Usando chaves de acesso da AWS
|
||||
# Option 1: Using AWS access keys
|
||||
AWS_ACCESS_KEY_ID=XXX AWS_SECRET_ACCESS_KEY=YYY opencode
|
||||
|
||||
# Opção 2: Usando perfil nomeado da AWS
|
||||
# Option 2: Using named AWS profile
|
||||
AWS_PROFILE=my-profile opencode
|
||||
|
||||
# Opção 3: Usando token bearer do Bedrock
|
||||
# Option 3: Using Bedrock bearer token
|
||||
AWS_BEARER_TOKEN_BEDROCK=XXX opencode
|
||||
```
|
||||
|
||||
@@ -258,11 +258,11 @@ Para perfis de inferência personalizados, use o nome do modelo e do provedor na
|
||||
2. Aqui você pode selecionar a opção **Claude Pro/Max** e isso abrirá seu navegador e pedirá para você se autenticar.
|
||||
|
||||
```txt
|
||||
┌ Selecionar método de autenticação
|
||||
┌ Select auth method
|
||||
│
|
||||
│ Claude Pro/Max
|
||||
│ Criar uma chave da API
|
||||
│ Inserir chave da API manualmente
|
||||
│ Create an API Key
|
||||
│ Manually enter API Key
|
||||
└
|
||||
```
|
||||
|
||||
@@ -309,7 +309,7 @@ Se você encontrar erros "Desculpe, mas não posso ajudar com esse pedido", tent
|
||||
4. Insira sua chave da API.
|
||||
|
||||
```txt
|
||||
┌ Chave da API
|
||||
┌ API key
|
||||
│
|
||||
│
|
||||
└ enter
|
||||
@@ -356,7 +356,7 @@ Se você encontrar erros "Desculpe, mas não posso ajudar com esse pedido", tent
|
||||
4. Insira sua chave da API.
|
||||
|
||||
```txt
|
||||
┌ Chave da API
|
||||
┌ API key
|
||||
│
|
||||
│
|
||||
└ enter
|
||||
@@ -395,7 +395,7 @@ Se você encontrar erros "Desculpe, mas não posso ajudar com esse pedido", tent
|
||||
3. Insira sua chave da API Baseten.
|
||||
|
||||
```txt
|
||||
┌ Chave da API
|
||||
┌ API key
|
||||
│
|
||||
│
|
||||
└ enter
|
||||
@@ -422,7 +422,7 @@ Se você encontrar erros "Desculpe, mas não posso ajudar com esse pedido", tent
|
||||
3. Insira sua chave da API Cerebras.
|
||||
|
||||
```txt
|
||||
┌ Chave da API
|
||||
┌ API key
|
||||
│
|
||||
│
|
||||
└ enter
|
||||
@@ -445,8 +445,8 @@ O Cloudflare AI Gateway permite que você acesse modelos do OpenAI, Anthropic, W
|
||||
2. Defina seu ID de Conta e ID de Gateway como variáveis de ambiente.
|
||||
|
||||
```bash title="~/.bash_profile"
|
||||
export CLOUDFLARE_ACCOUNT_ID=seu-id-de-conta-de-32-caracteres
|
||||
export CLOUDFLARE_GATEWAY_ID=seu-id-de-gateway
|
||||
export CLOUDFLARE_ACCOUNT_ID=your-32-character-account-id
|
||||
export CLOUDFLARE_GATEWAY_ID=your-gateway-id
|
||||
```
|
||||
|
||||
3. Execute o comando `/connect` e procure por **Cloudflare AI Gateway**.
|
||||
@@ -458,7 +458,7 @@ O Cloudflare AI Gateway permite que você acesse modelos do OpenAI, Anthropic, W
|
||||
4. Insira seu token da API do Cloudflare.
|
||||
|
||||
```txt
|
||||
┌ Chave da API
|
||||
┌ API key
|
||||
│
|
||||
│
|
||||
└ enter
|
||||
@@ -467,7 +467,7 @@ O Cloudflare AI Gateway permite que você acesse modelos do OpenAI, Anthropic, W
|
||||
Ou defina como uma variável de ambiente.
|
||||
|
||||
```bash title="~/.bash_profile"
|
||||
export CLOUDFLARE_API_TOKEN=seu-token-da-api
|
||||
export CLOUDFLARE_API_TOKEN=your-api-token
|
||||
```
|
||||
|
||||
5. Execute o comando `/models` para selecionar um modelo.
|
||||
@@ -507,7 +507,7 @@ O Cloudflare AI Gateway permite que você acesse modelos do OpenAI, Anthropic, W
|
||||
3. Insira sua chave da API Cortecs.
|
||||
|
||||
```txt
|
||||
┌ Chave da API
|
||||
┌ API key
|
||||
│
|
||||
│
|
||||
└ enter
|
||||
@@ -534,7 +534,7 @@ O Cloudflare AI Gateway permite que você acesse modelos do OpenAI, Anthropic, W
|
||||
3. Insira sua chave da API DeepSeek.
|
||||
|
||||
```txt
|
||||
┌ Chave da API
|
||||
┌ API key
|
||||
│
|
||||
│
|
||||
└ enter
|
||||
@@ -561,7 +561,7 @@ O Cloudflare AI Gateway permite que você acesse modelos do OpenAI, Anthropic, W
|
||||
3. Insira sua chave da API Deep Infra.
|
||||
|
||||
```txt
|
||||
┌ Chave da API
|
||||
┌ API key
|
||||
│
|
||||
│
|
||||
└ enter
|
||||
@@ -588,7 +588,7 @@ O Cloudflare AI Gateway permite que você acesse modelos do OpenAI, Anthropic, W
|
||||
3. Insira sua chave da API Firmware.
|
||||
|
||||
```txt
|
||||
┌ Chave da API
|
||||
┌ API key
|
||||
│
|
||||
│
|
||||
└ enter
|
||||
@@ -615,7 +615,7 @@ O Cloudflare AI Gateway permite que você acesse modelos do OpenAI, Anthropic, W
|
||||
3. Insira sua chave da API Fireworks AI.
|
||||
|
||||
```txt
|
||||
┌ Chave da API
|
||||
┌ API key
|
||||
│
|
||||
│
|
||||
└ enter
|
||||
@@ -642,10 +642,10 @@ GitLab Duo fornece um chat agente com suporte a ferramentas nativas através do
|
||||
2. Escolha seu método de autenticação:
|
||||
|
||||
```txt
|
||||
┌ Selecionar método de autenticação
|
||||
┌ Select auth method
|
||||
│
|
||||
│ OAuth (Recomendado)
|
||||
│ Token de Acesso Pessoal
|
||||
│ OAuth (Recommended)
|
||||
│ Personal Access Token
|
||||
└
|
||||
```
|
||||
|
||||
@@ -656,7 +656,7 @@ GitLab Duo fornece um chat agente com suporte a ferramentas nativas através do
|
||||
#### Usando Token de Acesso Pessoal
|
||||
1. Vá para [Configurações do Usuário do GitLab > Tokens de Acesso](https://gitlab.com/-/user_settings/personal_access_tokens)
|
||||
2. Clique em **Adicionar novo token**
|
||||
3. Nome: `opencode`, Escopos: `api`
|
||||
3. Nome: `OpenCode`, Escopos: `api`
|
||||
4. Copie o token (começa com `glpat-`)
|
||||
5. Insira-o no terminal
|
||||
|
||||
@@ -679,7 +679,7 @@ armazenar o token no armazenamento de autenticação do opencode.
|
||||
##### GitLab Auto-Hospedado
|
||||
|
||||
:::note[nota de conformidade]
|
||||
opencode usa um pequeno modelo para algumas tarefas de IA, como gerar o título da sessão.
|
||||
opencode usa um pequeno modelo para algumas tarefas de AI, como gerar o título da sessão.
|
||||
Ele está configurado para usar gpt-5-nano por padrão, hospedado pela Zen. Para bloquear o opencode
|
||||
para usar apenas sua própria instância hospedada do GitLab, adicione o seguinte ao seu
|
||||
arquivo `opencode.json`. Também é recomendado desativar o compartilhamento de sessões.
|
||||
@@ -737,7 +737,7 @@ URL de callback `http://127.0.0.1:8080/callback` e os seguintes escopos:
|
||||
Em seguida, exponha o ID do aplicativo como variável de ambiente:
|
||||
|
||||
```bash
|
||||
export GITLAB_OAUTH_CLIENT_ID=seu_id_do_aplicativo_aqui
|
||||
export GITLAB_OAUTH_CLIENT_ID=your_application_id_here
|
||||
```
|
||||
|
||||
Mais documentação na página [opencode-gitlab-auth](https://www.npmjs.com/package/@gitlab/opencode-gitlab-auth).
|
||||
@@ -797,13 +797,13 @@ Alguns modelos precisam ser habilitados manualmente nas suas [configurações do
|
||||
2. Navegue até [github.com/login/device](https://github.com/login/device) e insira o código.
|
||||
|
||||
```txt
|
||||
┌ Login com GitHub Copilot
|
||||
┌ Login with GitHub Copilot
|
||||
│
|
||||
│ https://github.com/login/device
|
||||
│
|
||||
│ Insira o código: 8F43-6FCF
|
||||
│ Enter code: 8F43-6FCF
|
||||
│
|
||||
└ Aguardando autorização...
|
||||
└ Waiting for authorization...
|
||||
```
|
||||
|
||||
3. Agora execute o comando `/models` para selecionar o modelo que você deseja.
|
||||
@@ -835,14 +835,14 @@ Para usar o Google Vertex AI com o opencode:
|
||||
Defina-as ao executar o opencode.
|
||||
|
||||
```bash
|
||||
GOOGLE_APPLICATION_CREDENTIALS=/caminho/para/service-account.json GOOGLE_CLOUD_PROJECT=seu-id-do-projeto opencode
|
||||
GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json GOOGLE_CLOUD_PROJECT=your-project-id opencode
|
||||
```
|
||||
|
||||
Ou adicione-as ao seu perfil bash.
|
||||
|
||||
```bash title="~/.bash_profile"
|
||||
export GOOGLE_APPLICATION_CREDENTIALS=/caminho/para/service-account.json
|
||||
export GOOGLE_CLOUD_PROJECT=seu-id-do-projeto
|
||||
export GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json
|
||||
export GOOGLE_CLOUD_PROJECT=your-project-id
|
||||
export VERTEX_LOCATION=global
|
||||
```
|
||||
|
||||
@@ -871,7 +871,7 @@ A região `global` melhora a disponibilidade e reduz erros sem custo adicional.
|
||||
3. Insira a chave da API para o provedor.
|
||||
|
||||
```txt
|
||||
┌ Chave da API
|
||||
┌ API key
|
||||
│
|
||||
│
|
||||
└ enter
|
||||
@@ -900,7 +900,7 @@ A região `global` melhora a disponibilidade e reduz erros sem custo adicional.
|
||||
3. Insira seu token do Hugging Face.
|
||||
|
||||
```txt
|
||||
┌ Chave da API
|
||||
┌ API key
|
||||
│
|
||||
│
|
||||
└ enter
|
||||
@@ -916,7 +916,7 @@ A região `global` melhora a disponibilidade e reduz erros sem custo adicional.
|
||||
|
||||
### Helicone
|
||||
|
||||
[Helicone](https://helicone.ai) é uma plataforma de observabilidade LLM que fornece registro, monitoramento e análises para suas aplicações de IA. O Helicone AI Gateway roteia suas solicitações para o provedor apropriado automaticamente com base no modelo.
|
||||
[Helicone](https://helicone.ai) é uma plataforma de observabilidade LLM que fornece registro, monitoramento e análises para suas aplicações de AI. O Helicone AI Gateway roteia suas solicitações para o provedor apropriado automaticamente com base no modelo.
|
||||
|
||||
1. Acesse [Helicone](https://helicone.ai), crie uma conta e gere uma chave da API a partir do seu painel.
|
||||
|
||||
@@ -929,7 +929,7 @@ A região `global` melhora a disponibilidade e reduz erros sem custo adicional.
|
||||
3. Insira sua chave da API Helicone.
|
||||
|
||||
```txt
|
||||
┌ Chave da API
|
||||
┌ API key
|
||||
│
|
||||
│
|
||||
└ enter
|
||||
@@ -961,8 +961,8 @@ Aqui está o [Diretório de Modelos do Helicone](https://helicone.ai/models), vo
|
||||
},
|
||||
"models": {
|
||||
"gpt-4o": {
|
||||
// ID do modelo (da página do diretório de modelos do Helicone)
|
||||
"name": "GPT-4o", // Seu próprio nome personalizado para o modelo
|
||||
// Model ID (from Helicone's model directory page)
|
||||
"name": "GPT-4o", // Your own custom name for the model
|
||||
},
|
||||
"claude-sonnet-4-20250514": {
|
||||
"name": "Claude Sonnet 4",
|
||||
@@ -1080,7 +1080,7 @@ IO.NET oferece 17 modelos otimizados para vários casos de uso:
|
||||
3. Insira sua chave da API IO.NET.
|
||||
|
||||
```txt
|
||||
┌ Chave da API
|
||||
┌ API key
|
||||
│
|
||||
│
|
||||
└ enter
|
||||
@@ -1143,7 +1143,7 @@ Para usar Kimi K2 do Moonshot AI:
|
||||
3. Insira sua chave da API Moonshot.
|
||||
|
||||
```txt
|
||||
┌ Chave da API
|
||||
┌ API key
|
||||
│
|
||||
│
|
||||
└ enter
|
||||
@@ -1170,7 +1170,7 @@ Para usar Kimi K2 do Moonshot AI:
|
||||
3. Insira sua chave da API MiniMax.
|
||||
|
||||
```txt
|
||||
┌ Chave da API
|
||||
┌ API key
|
||||
│
|
||||
│
|
||||
└ enter
|
||||
@@ -1197,7 +1197,7 @@ Para usar Kimi K2 do Moonshot AI:
|
||||
3. Insira sua chave da API Nebius Token Factory.
|
||||
|
||||
```txt
|
||||
┌ Chave da API
|
||||
┌ API key
|
||||
│
|
||||
│
|
||||
└ enter
|
||||
@@ -1272,7 +1272,7 @@ Para usar o Ollama Cloud com o opencode:
|
||||
5. Insira sua chave da API do Ollama Cloud.
|
||||
|
||||
```txt
|
||||
┌ Chave da API
|
||||
┌ API key
|
||||
│
|
||||
│
|
||||
└ enter
|
||||
@@ -1305,10 +1305,10 @@ Recomendamos se inscrever para [ChatGPT Plus ou Pro](https://chatgpt.com/pricing
|
||||
2. Aqui você pode selecionar a opção **ChatGPT Plus/Pro** e isso abrirá seu navegador e pedirá para você se autenticar.
|
||||
|
||||
```txt
|
||||
┌ Selecionar método de autenticação
|
||||
┌ Select auth method
|
||||
│
|
||||
│ ChatGPT Plus/Pro
|
||||
│ Inserir chave da API manualmente
|
||||
│ Manually enter API Key
|
||||
└
|
||||
```
|
||||
|
||||
@@ -1339,7 +1339,7 @@ OpenCode Zen é uma lista de modelos testados e verificados fornecidos pela equi
|
||||
3. Insira sua chave da API do opencode.
|
||||
|
||||
```txt
|
||||
┌ Chave da API
|
||||
┌ API key
|
||||
│
|
||||
│
|
||||
└ enter
|
||||
@@ -1366,7 +1366,7 @@ OpenCode Zen é uma lista de modelos testados e verificados fornecidos pela equi
|
||||
3. Insira a chave da API para o provedor.
|
||||
|
||||
```txt
|
||||
┌ Chave da API
|
||||
┌ API key
|
||||
│
|
||||
│
|
||||
└ enter
|
||||
@@ -1436,7 +1436,7 @@ SAP AI Core fornece acesso a mais de 40 modelos do OpenAI, Anthropic, Google, Am
|
||||
3. Insira seu JSON da chave de serviço.
|
||||
|
||||
```txt
|
||||
┌ Chave de serviço
|
||||
┌ Service key
|
||||
│
|
||||
│
|
||||
└ enter
|
||||
@@ -1457,7 +1457,7 @@ SAP AI Core fornece acesso a mais de 40 modelos do OpenAI, Anthropic, Google, Am
|
||||
4. Opcionalmente, defina o ID de implantação e o grupo de recursos:
|
||||
|
||||
```bash
|
||||
AICORE_DEPLOYMENT_ID=seu-id-de-implantação AICORE_RESOURCE_GROUP=seu-grupo-de-recursos opencode
|
||||
AICORE_DEPLOYMENT_ID=your-deployment-id AICORE_RESOURCE_GROUP=your-resource-group opencode
|
||||
```
|
||||
|
||||
:::note
|
||||
@@ -1474,7 +1474,7 @@ SAP AI Core fornece acesso a mais de 40 modelos do OpenAI, Anthropic, Google, Am
|
||||
|
||||
### OVHcloud AI Endpoints
|
||||
|
||||
1. Acesse o [painel OVHcloud](https://ovh.com/manager). Navegue até a seção `Public Cloud`, `AI & Machine Learning` > `Endpoints de IA` e na aba `API Keys`, clique em **Criar uma nova chave da API**.
|
||||
1. Acesse o [painel OVHcloud](https://ovh.com/manager). Navegue até a seção `Public Cloud`, `AI & Machine Learning` > `AI Endpoints` e na aba `API Keys`, clique em **Criar uma nova chave da API**.
|
||||
|
||||
2. Execute o comando `/connect` e procure por **OVHcloud AI Endpoints**.
|
||||
|
||||
@@ -1485,7 +1485,7 @@ SAP AI Core fornece acesso a mais de 40 modelos do OpenAI, Anthropic, Google, Am
|
||||
3. Insira sua chave da API OVHcloud AI Endpoints.
|
||||
|
||||
```txt
|
||||
┌ Chave da API
|
||||
┌ API key
|
||||
│
|
||||
│
|
||||
└ enter
|
||||
@@ -1514,7 +1514,7 @@ Para usar [APIs Generativas Scaleway](https://www.scaleway.com/en/docs/generativ
|
||||
3. Insira sua chave da API Scaleway.
|
||||
|
||||
```txt
|
||||
┌ Chave da API
|
||||
┌ API key
|
||||
│
|
||||
│
|
||||
└ enter
|
||||
@@ -1541,7 +1541,7 @@ Para usar [APIs Generativas Scaleway](https://www.scaleway.com/en/docs/generativ
|
||||
3. Insira sua chave da API Together AI.
|
||||
|
||||
```txt
|
||||
┌ Chave da API
|
||||
┌ API key
|
||||
│
|
||||
│
|
||||
└ enter
|
||||
@@ -1568,7 +1568,7 @@ Para usar [APIs Generativas Scaleway](https://www.scaleway.com/en/docs/generativ
|
||||
3. Insira sua chave da API Venice AI.
|
||||
|
||||
```txt
|
||||
┌ Chave da API
|
||||
┌ API key
|
||||
│
|
||||
│
|
||||
└ enter
|
||||
@@ -1597,7 +1597,7 @@ O Vercel AI Gateway permite que você acesse modelos do OpenAI, Anthropic, Googl
|
||||
3. Insira sua chave da API do Vercel AI Gateway.
|
||||
|
||||
```txt
|
||||
┌ Chave da API
|
||||
┌ API key
|
||||
│
|
||||
│
|
||||
└ enter
|
||||
@@ -1651,7 +1651,7 @@ Algumas opções de roteamento úteis:
|
||||
3. Insira sua chave da API xAI.
|
||||
|
||||
```txt
|
||||
┌ Chave da API
|
||||
┌ API key
|
||||
│
|
||||
│
|
||||
└ enter
|
||||
@@ -1680,7 +1680,7 @@ Algumas opções de roteamento úteis:
|
||||
3. Insira sua chave da API Z.AI.
|
||||
|
||||
```txt
|
||||
┌ Chave da API
|
||||
┌ API key
|
||||
│
|
||||
│
|
||||
└ enter
|
||||
@@ -1707,7 +1707,7 @@ Algumas opções de roteamento úteis:
|
||||
3. Insira a chave da API para o provedor.
|
||||
|
||||
```txt
|
||||
┌ Chave da API
|
||||
┌ API key
|
||||
│
|
||||
│
|
||||
└ enter
|
||||
@@ -1741,7 +1741,7 @@ Algumas opções de roteamento úteis:
|
||||
Para adicionar qualquer provedor **compatível com OpenAI** que não esteja listado no comando `/connect`:
|
||||
|
||||
:::tip
|
||||
Você pode usar qualquer provedor compatível com OpenAI com o opencode. A maioria dos provedores de IA modernos oferece APIs compatíveis com OpenAI.
|
||||
Você pode usar qualquer provedor compatível com OpenAI com o opencode. A maioria dos provedores de AI modernos oferece APIs compatíveis com OpenAI.
|
||||
:::
|
||||
|
||||
1. Execute o comando `/connect` e role para baixo até **Outro**.
|
||||
@@ -1749,11 +1749,11 @@ Você pode usar qualquer provedor compatível com OpenAI com o opencode. A maior
|
||||
```bash
|
||||
$ /connect
|
||||
|
||||
┌ Adicionar credencial
|
||||
┌ Add credential
|
||||
│
|
||||
◆ Selecionar provedor
|
||||
◆ Select provider
|
||||
│ ...
|
||||
│ ● Outro
|
||||
│ ● Other
|
||||
└
|
||||
```
|
||||
|
||||
@@ -1762,9 +1762,9 @@ Você pode usar qualquer provedor compatível com OpenAI com o opencode. A maior
|
||||
```bash
|
||||
$ /connect
|
||||
|
||||
┌ Adicionar credencial
|
||||
┌ Add credential
|
||||
│
|
||||
◇ Insira o id do provedor
|
||||
◇ Enter provider id
|
||||
│ myprovider
|
||||
└
|
||||
```
|
||||
@@ -1778,11 +1778,11 @@ Você pode usar qualquer provedor compatível com OpenAI com o opencode. A maior
|
||||
```bash
|
||||
$ /connect
|
||||
|
||||
┌ Adicionar credencial
|
||||
┌ Add credential
|
||||
│
|
||||
▲ Isso apenas armazena uma credencial para myprovider - você precisará configurá-la no opencode.json, verifique a documentação para exemplos.
|
||||
▲ This only stores a credential for myprovider - you will need to configure it in opencode.json, check the docs for examples.
|
||||
│
|
||||
◇ Insira sua chave da API
|
||||
◇ Enter your API key
|
||||
│ sk-...
|
||||
└
|
||||
```
|
||||
@@ -1795,13 +1795,13 @@ Você pode usar qualquer provedor compatível com OpenAI com o opencode. A maior
|
||||
"provider": {
|
||||
"myprovider": {
|
||||
"npm": "@ai-sdk/openai-compatible",
|
||||
"name": "Nome de Exibição do Meu Provedor de IA",
|
||||
"name": "My AI ProviderDisplay Name",
|
||||
"options": {
|
||||
"baseURL": "https://api.myprovider.com/v1"
|
||||
},
|
||||
"models": {
|
||||
"my-model-name": {
|
||||
"name": "Nome de Exibição do Meu Modelo"
|
||||
"name": "My Model Display Name"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1810,7 +1810,7 @@ Você pode usar qualquer provedor compatível com OpenAI com o opencode. A maior
|
||||
```
|
||||
|
||||
Aqui estão as opções de configuração:
|
||||
- **npm**: Pacote do SDK de IA a ser usado, `@ai-sdk/openai-compatible` para provedores compatíveis com OpenAI
|
||||
- **npm**: Pacote do SDK de AI a ser usado, `@ai-sdk/openai-compatible` para provedores compatíveis com OpenAI
|
||||
- **name**: Nome de exibição na interface do usuário.
|
||||
- **models**: Modelos disponíveis.
|
||||
- **options.baseURL**: URL do endpoint da API.
|
||||
@@ -1833,7 +1833,7 @@ Aqui está um exemplo definindo as opções `apiKey`, `headers` e `limit` do mod
|
||||
"provider": {
|
||||
"myprovider": {
|
||||
"npm": "@ai-sdk/openai-compatible",
|
||||
"name": "Nome de Exibição do Meu Provedor de IA",
|
||||
"name": "My AI ProviderDisplay Name",
|
||||
"options": {
|
||||
"baseURL": "https://api.myprovider.com/v1",
|
||||
"apiKey": "{env:ANTHROPIC_API_KEY}",
|
||||
@@ -1843,7 +1843,7 @@ Aqui está um exemplo definindo as opções `apiKey`, `headers` e `limit` do mod
|
||||
},
|
||||
"models": {
|
||||
"my-model-name": {
|
||||
"name": "Nome de Exibição do Meu Modelo",
|
||||
"name": "My Model Display Name",
|
||||
"limit": {
|
||||
"context": 200000,
|
||||
"output": 65536
|
||||
|
||||
@@ -26,26 +26,26 @@ Se você já tiver um arquivo `AGENTS.md` existente, isso tentará adicionar a e
|
||||
Você também pode criar este arquivo manualmente. Aqui está um exemplo de algumas coisas que você pode colocar em um arquivo `AGENTS.md`.
|
||||
|
||||
```markdown title="AGENTS.md"
|
||||
# Projeto Monorepo SST v3
|
||||
# SST v3 Monorepo Project
|
||||
|
||||
Este é um monorepo SST v3 com TypeScript. O projeto usa bun workspaces para gerenciamento de pacotes.
|
||||
This is an SST v3 monorepo with TypeScript. The project uses bun workspaces for package management.
|
||||
|
||||
## Estrutura do Projeto
|
||||
## Project Structure
|
||||
|
||||
- `packages/` - Contém todos os pacotes do workspace (funções, núcleo, web, etc.)
|
||||
- `infra/` - Definições de infraestrutura divididas por serviço (storage.ts, api.ts, web.ts)
|
||||
- `sst.config.ts` - Configuração principal do SST com imports dinâmicos
|
||||
- `packages/` - Contains all workspace packages (functions, core, web, etc.)
|
||||
- `infra/` - Infrastructure definitions split by service (storage.ts, api.ts, web.ts)
|
||||
- `sst.config.ts` - Main SST configuration with dynamic imports
|
||||
|
||||
## Padrões de Código
|
||||
## Code Standards
|
||||
|
||||
- Use TypeScript com o modo estrito habilitado
|
||||
- O código compartilhado vai em `packages/core/` com a configuração de exports adequada
|
||||
- Funções vão em `packages/functions/`
|
||||
- A infraestrutura deve ser dividida em arquivos lógicos em `infra/`
|
||||
- Use TypeScript with strict mode enabled
|
||||
- Shared code goes in `packages/core/` with proper exports configuration
|
||||
- Functions go in `packages/functions/`
|
||||
- Infrastructure should be split into logical files in `infra/`
|
||||
|
||||
## Convenções de Monorepo
|
||||
## Monorepo Conventions
|
||||
|
||||
- Importe módulos compartilhados usando nomes de workspace: `@my-app/core/example`
|
||||
- Import shared modules using workspace names: `@my-app/core/example`
|
||||
```
|
||||
|
||||
Estamos adicionando instruções específicas do projeto aqui e isso será compartilhado entre sua equipe.
|
||||
@@ -77,9 +77,9 @@ Para usuários migrando do Claude Code, o opencode suporta as convenções de ar
|
||||
Para desabilitar a compatibilidade com Claude Code, defina uma dessas variáveis de ambiente:
|
||||
|
||||
```bash
|
||||
export OPENCODE_DISABLE_CLAUDE_CODE=1 # Desabilitar todo suporte a .claude
|
||||
export OPENCODE_DISABLE_CLAUDE_CODE_PROMPT=1 # Desabilitar apenas ~/.claude/CLAUDE.md
|
||||
export OPENCODE_DISABLE_CLAUDE_CODE_SKILLS=1 # Desabilitar apenas .claude/skills
|
||||
export OPENCODE_DISABLE_CLAUDE_CODE=1 # Disable all .claude support
|
||||
export OPENCODE_DISABLE_CLAUDE_CODE_PROMPT=1 # Disable only ~/.claude/CLAUDE.md
|
||||
export OPENCODE_DISABLE_CLAUDE_CODE_SKILLS=1 # Disable only .claude/skills
|
||||
```
|
||||
|
||||
---
|
||||
@@ -144,28 +144,28 @@ A abordagem recomendada é usar o campo `instructions` em `opencode.json`:
|
||||
Você pode ensinar o opencode a ler arquivos externos fornecendo instruções explícitas em seu `AGENTS.md`. Aqui está um exemplo prático:
|
||||
|
||||
```markdown title="AGENTS.md"
|
||||
# Regras do Projeto TypeScript
|
||||
# TypeScript Project Rules
|
||||
|
||||
## Carregamento de Arquivos Externos
|
||||
## External File Loading
|
||||
|
||||
CRÍTICO: Quando você encontrar uma referência de arquivo (por exemplo, @rules/general.md), use sua ferramenta de Leitura para carregá-lo conforme necessário. Eles são relevantes para a TAREFA ESPECÍFICA em questão.
|
||||
CRITICAL: When you encounter a file reference (e.g., @rules/general.md), use your Read tool to load it on a need-to-know basis. They're relevant to the SPECIFIC task at hand.
|
||||
|
||||
Instruções:
|
||||
Instructions:
|
||||
|
||||
- NÃO carregue todas as referências de forma preemptiva - use carregamento sob demanda com base na necessidade real
|
||||
- Quando carregado, trate o conteúdo como instruções obrigatórias que substituem os padrões
|
||||
- Siga referências recursivamente quando necessário
|
||||
- Do NOT preemptively load all references - use lazy loading based on actual need
|
||||
- When loaded, treat content as mandatory instructions that override defaults
|
||||
- Follow references recursively when needed
|
||||
|
||||
## Diretrizes de Desenvolvimento
|
||||
## Development Guidelines
|
||||
|
||||
Para estilo de código TypeScript e melhores práticas: @docs/typescript-guidelines.md
|
||||
Para arquitetura de componentes React e padrões de hooks: @docs/react-patterns.md
|
||||
Para design de API REST e tratamento de erros: @docs/api-standards.md
|
||||
Para estratégias de teste e requisitos de cobertura: @test/testing-guidelines.md
|
||||
For TypeScript code style and best practices: @docs/typescript-guidelines.md
|
||||
For React component architecture and hooks patterns: @docs/react-patterns.md
|
||||
For REST API design and error handling: @docs/api-standards.md
|
||||
For testing strategies and coverage requirements: @test/testing-guidelines.md
|
||||
|
||||
## Diretrizes Gerais
|
||||
## General Guidelines
|
||||
|
||||
Leia o seguinte arquivo imediatamente, pois é relevante para todos os fluxos de trabalho: @rules/general-guidelines.md.
|
||||
Read the following file immediately as it's relevant to all workflows: @rules/general-guidelines.md.
|
||||
```
|
||||
|
||||
Essa abordagem permite que você:
|
||||
|
||||
@@ -111,7 +111,7 @@ O SDK pode lançar erros que você pode capturar e tratar:
|
||||
try {
|
||||
await client.session.get({ path: { id: "invalid-id" } })
|
||||
} catch (error) {
|
||||
console.error("Falha ao obter a sessão:", (error as Error).message)
|
||||
console.error("Failed to get session:", (error as Error).message)
|
||||
}
|
||||
```
|
||||
|
||||
@@ -152,16 +152,16 @@ console.log(health.data.version)
|
||||
#### Exemplos
|
||||
|
||||
```javascript
|
||||
// Escrever uma entrada de log
|
||||
// Write a log entry
|
||||
await client.app.log({
|
||||
body: {
|
||||
service: "my-app",
|
||||
level: "info",
|
||||
message: "Operação concluída",
|
||||
message: "Operation completed",
|
||||
},
|
||||
})
|
||||
|
||||
// Listar agentes disponíveis
|
||||
// List available agents
|
||||
const agents = await client.app.agents()
|
||||
```
|
||||
|
||||
@@ -179,10 +179,10 @@ const agents = await client.app.agents()
|
||||
#### Exemplos
|
||||
|
||||
```javascript
|
||||
// Listar todos os projetos
|
||||
// List all projects
|
||||
const projects = await client.project.list()
|
||||
|
||||
// Obter projeto atual
|
||||
// Get current project
|
||||
const currentProject = await client.project.current()
|
||||
```
|
||||
|
||||
@@ -199,7 +199,7 @@ const currentProject = await client.project.current()
|
||||
#### Exemplos
|
||||
|
||||
```javascript
|
||||
// Obter informações do caminho atual
|
||||
// Get current path information
|
||||
const pathInfo = await client.path.get()
|
||||
```
|
||||
|
||||
@@ -241,7 +241,7 @@ const { providers, default: defaults } = await client.config.providers()
|
||||
| `session.summarize({ path, body })` | Resumir sessão | Retorna `boolean` |
|
||||
| `session.messages({ path })` | Listar mensagens em uma sessão | Retorna `{ info: `<a href={typesUrl}><code>Message</code></a>`, parts: `<a href={typesUrl}><code>Part[]</code></a>`}[]` |
|
||||
| `session.message({ path })` | Obter detalhes da mensagem | Retorna `{ info: `<a href={typesUrl}><code>Message</code></a>`, parts: `<a href={typesUrl}><code>Part[]</code></a>`}` |
|
||||
| `session.prompt({ path, body })` | Enviar mensagem de prompt | `body.noReply: true` retorna UserMessage (apenas contexto). O padrão retorna <a href={typesUrl}><code>AssistantMessage</code></a> com resposta da IA |
|
||||
| `session.prompt({ path, body })` | Enviar mensagem de prompt | `body.noReply: true` retorna UserMessage (apenas contexto). O padrão retorna <a href={typesUrl}><code>AssistantMessage</code></a> com resposta da AI |
|
||||
| `session.command({ path, body })` | Enviar comando para a sessão | Retorna `{ info: `<a href={typesUrl}><code>AssistantMessage</code></a>`, parts: `<a href={typesUrl}><code>Part[]</code></a>`}` |
|
||||
| `session.shell({ path, body })` | Executar um comando shell | Retorna <a href={typesUrl}><code>AssistantMessage</code></a> |
|
||||
| `session.revert({ path, body })` | Reverter uma mensagem | Retorna <a href={typesUrl}><code>Session</code></a> |
|
||||
@@ -253,28 +253,28 @@ const { providers, default: defaults } = await client.config.providers()
|
||||
#### Exemplos
|
||||
|
||||
```javascript
|
||||
// Criar e gerenciar sessões
|
||||
// Create and manage sessions
|
||||
const session = await client.session.create({
|
||||
body: { title: "Minha sessão" },
|
||||
body: { title: "My session" },
|
||||
})
|
||||
|
||||
const sessions = await client.session.list()
|
||||
|
||||
// Enviar uma mensagem de prompt
|
||||
// Send a prompt message
|
||||
const result = await client.session.prompt({
|
||||
path: { id: session.id },
|
||||
body: {
|
||||
model: { providerID: "anthropic", modelID: "claude-3-5-sonnet-20241022" },
|
||||
parts: [{ type: "text", text: "Olá!" }],
|
||||
parts: [{ type: "text", text: "Hello!" }],
|
||||
},
|
||||
})
|
||||
|
||||
// Injetar contexto sem acionar resposta da IA (útil para plugins)
|
||||
// Inject context without triggering AI response (useful for plugins)
|
||||
await client.session.prompt({
|
||||
path: { id: session.id },
|
||||
body: {
|
||||
noReply: true,
|
||||
parts: [{ type: "text", text: "Você é um assistente útil." }],
|
||||
parts: [{ type: "text", text: "You are a helpful assistant." }],
|
||||
},
|
||||
})
|
||||
```
|
||||
@@ -302,7 +302,7 @@ await client.session.prompt({
|
||||
#### Exemplos
|
||||
|
||||
```javascript
|
||||
// Pesquisar e ler arquivos
|
||||
// Search and read files
|
||||
const textResults = await client.find.text({
|
||||
query: { pattern: "function.*opencode" },
|
||||
})
|
||||
@@ -341,13 +341,13 @@ const content = await client.file.read({
|
||||
#### Exemplos
|
||||
|
||||
```javascript
|
||||
// Controlar a interface TUI
|
||||
// Control TUI interface
|
||||
await client.tui.appendPrompt({
|
||||
body: { text: "Adicione isso ao prompt" },
|
||||
body: { text: "Add this to prompt" },
|
||||
})
|
||||
|
||||
await client.tui.showToast({
|
||||
body: { message: "Tarefa concluída", variant: "success" },
|
||||
body: { message: "Task completed", variant: "success" },
|
||||
})
|
||||
```
|
||||
|
||||
@@ -366,7 +366,7 @@ await client.tui.showToast({
|
||||
```javascript
|
||||
await client.auth.set({
|
||||
path: { id: "anthropic" },
|
||||
body: { type: "api", key: "sua-chave-api" },
|
||||
body: { type: "api", key: "your-api-key" },
|
||||
})
|
||||
```
|
||||
|
||||
@@ -383,9 +383,9 @@ await client.auth.set({
|
||||
#### Exemplos
|
||||
|
||||
```javascript
|
||||
// Ouvir eventos em tempo real
|
||||
// Listen to real-time events
|
||||
const events = await client.event.subscribe()
|
||||
for await (const event of events.stream) {
|
||||
console.log("Evento:", event.type, event.properties)
|
||||
console.log("Event:", event.type, event.properties)
|
||||
}
|
||||
```
|
||||
|
||||
@@ -13,7 +13,7 @@ O comando `opencode serve` executa um servidor HTTP sem cabeça que expõe um en
|
||||
### Uso
|
||||
|
||||
```bash
|
||||
opencode serve [--port <número>] [--hostname <string>] [--cors <origem>]
|
||||
opencode serve [--port <number>] [--hostname <string>] [--cors <origin>]
|
||||
```
|
||||
|
||||
#### Opções
|
||||
@@ -39,7 +39,7 @@ opencode serve --cors http://localhost:5173 --cors https://app.example.com
|
||||
Defina `OPENCODE_SERVER_PASSWORD` para proteger o servidor com autenticação básica HTTP. O nome de usuário padrão é `opencode`, ou defina `OPENCODE_SERVER_USERNAME` para substituí-lo. Isso se aplica tanto ao `opencode serve` quanto ao `opencode web`.
|
||||
|
||||
```bash
|
||||
OPENCODE_SERVER_PASSWORD=sua-senha opencode serve
|
||||
OPENCODE_SERVER_PASSWORD=your-password opencode serve
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
@@ -78,24 +78,24 @@ Crie `.opencode/skills/git-release/SKILL.md` assim:
|
||||
```markdown
|
||||
---
|
||||
name: git-release
|
||||
description: Crie lançamentos e changelogs consistentes
|
||||
description: Create consistent releases and changelogs
|
||||
license: MIT
|
||||
compatibility: opencode
|
||||
metadata:
|
||||
audience: mantenedores
|
||||
audience: maintainers
|
||||
workflow: github
|
||||
---
|
||||
|
||||
## O que eu faço
|
||||
## What I do
|
||||
|
||||
- Redigir notas de lançamento a partir de PRs mesclados
|
||||
- Propor um aumento de versão
|
||||
- Fornecer um comando `gh release create` copiável e colável
|
||||
- Draft release notes from merged PRs
|
||||
- Propose a version bump
|
||||
- Provide a copy-pasteable `gh release create` command
|
||||
|
||||
## Quando me usar
|
||||
## When to use me
|
||||
|
||||
Use isso quando estiver preparando um lançamento marcado.
|
||||
Faça perguntas esclarecedoras se o esquema de versionamento alvo não estiver claro.
|
||||
Use this when you are preparing a tagged release.
|
||||
Ask clarifying questions if the target versioning scheme is unclear.
|
||||
```
|
||||
|
||||
---
|
||||
@@ -109,7 +109,7 @@ Cada entrada inclui o nome e a descrição da habilidade:
|
||||
<available_skills>
|
||||
<skill>
|
||||
<name>git-release</name>
|
||||
<description>Crie lançamentos e changelogs consistentes</description>
|
||||
<description>Create consistent releases and changelogs</description>
|
||||
</skill>
|
||||
</available_skills>
|
||||
```
|
||||
|
||||
@@ -45,7 +45,7 @@ opencode Desktop executa um servidor opencode local (o sidecar `opencode-cli`) e
|
||||
|
||||
- Saia completamente do aplicativo e reinicie-o.
|
||||
- Se o aplicativo mostrar uma tela de erro, clique em **Reiniciar** e copie os detalhes do erro.
|
||||
- Apenas macOS: menu `opencode` -> **Recarregar Webview** (ajuda se a interface estiver em branco/congelada).
|
||||
- Apenas macOS: menu `OpenCode` -> **Recarregar Webview** (ajuda se a interface estiver em branco/congelada).
|
||||
|
||||
---
|
||||
|
||||
@@ -277,7 +277,7 @@ Usuários do Linux precisam ter um dos seguintes utilitários de área de transf
|
||||
|
||||
```bash
|
||||
apt install -y xclip
|
||||
# ou
|
||||
# or
|
||||
apt install -y xsel
|
||||
```
|
||||
|
||||
@@ -291,7 +291,7 @@ apt install -y wl-clipboard
|
||||
|
||||
```bash
|
||||
apt install -y xvfb
|
||||
# e execute:
|
||||
# and run:
|
||||
Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 &
|
||||
export DISPLAY=:99.0
|
||||
```
|
||||
|
||||
@@ -16,13 +16,13 @@ opencode
|
||||
Ou você pode iniciá-lo para um diretório de trabalho específico.
|
||||
|
||||
```bash
|
||||
opencode /caminho/para/projeto
|
||||
opencode /path/to/project
|
||||
```
|
||||
|
||||
Uma vez que você esteja no TUI, você pode solicitar com uma mensagem.
|
||||
|
||||
```text
|
||||
Me dê um resumo rápido da base de código.
|
||||
Give me a quick summary of the codebase.
|
||||
```
|
||||
|
||||
---
|
||||
@@ -36,7 +36,7 @@ Você também pode usar `@` para referenciar arquivos em suas mensagens.
|
||||
:::
|
||||
|
||||
```text "@packages/functions/src/api/index.ts"
|
||||
Como a autenticação é tratada em @packages/functions/src/api/index.ts?
|
||||
How is auth handled in @packages/functions/src/api/index.ts?
|
||||
```
|
||||
|
||||
O conteúdo do arquivo é adicionado à conversa automaticamente.
|
||||
@@ -290,12 +290,12 @@ Tanto os comandos `/editor` quanto `/export` usam o editor especificado na sua v
|
||||
<Tabs>
|
||||
<TabItem label="Linux/macOS">
|
||||
```bash
|
||||
# Exemplo para nano ou vim
|
||||
# Example for nano or vim
|
||||
export EDITOR=nano
|
||||
export EDITOR=vim
|
||||
|
||||
# Para editores GUI, VS Code, Cursor, VSCodium, Windsurf, Zed, etc.
|
||||
# inclua --wait
|
||||
# For GUI editors, VS Code, Cursor, VSCodium, Windsurf, Zed, etc.
|
||||
# include --wait
|
||||
export EDITOR="code --wait"
|
||||
```
|
||||
|
||||
@@ -308,8 +308,8 @@ Tanto os comandos `/editor` quanto `/export` usam o editor especificado na sua v
|
||||
```bash
|
||||
set EDITOR=notepad
|
||||
|
||||
# Para editores GUI, VS Code, Cursor, VSCodium, Windsurf, Zed, etc.
|
||||
# inclua --wait
|
||||
# For GUI editors, VS Code, Cursor, VSCodium, Windsurf, Zed, etc.
|
||||
# include --wait
|
||||
set EDITOR=code --wait
|
||||
```
|
||||
|
||||
@@ -321,8 +321,8 @@ Tanto os comandos `/editor` quanto `/export` usam o editor especificado na sua v
|
||||
```powershell
|
||||
$env:EDITOR = "notepad"
|
||||
|
||||
# Para editores GUI, VS Code, Cursor, VSCodium, Windsurf, Zed, etc.
|
||||
# inclua --wait
|
||||
# For GUI editors, VS Code, Cursor, VSCodium, Windsurf, Zed, etc.
|
||||
# include --wait
|
||||
$env:EDITOR = "code --wait"
|
||||
```
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ title: Web
|
||||
description: Usando opencode no seu navegador.
|
||||
---
|
||||
|
||||
opencode pode ser executado como uma aplicação web no seu navegador, proporcionando a mesma poderosa experiência de codificação com IA sem precisar de um terminal.
|
||||
opencode pode ser executado como uma aplicação web no seu navegador, proporcionando a mesma poderosa experiência de codificação com AI sem precisar de um terminal.
|
||||
|
||||

|
||||
|
||||
@@ -50,8 +50,8 @@ opencode web --hostname 0.0.0.0
|
||||
Ao usar `0.0.0.0`, o opencode exibirá endereços locais e de rede:
|
||||
|
||||
```
|
||||
Acesso local: http://localhost:4096
|
||||
Acesso à rede: http://192.168.1.100:4096
|
||||
Local access: http://localhost:4096
|
||||
Network access: http://192.168.1.100:4096
|
||||
```
|
||||
|
||||
### Descoberta mDNS
|
||||
@@ -113,10 +113,10 @@ Clique em "Ver Servidores" para visualizar os servidores conectados e seu status
|
||||
Você pode anexar um terminal TUI a um servidor web em execução:
|
||||
|
||||
```bash
|
||||
# Inicie o servidor web
|
||||
# Start the web server
|
||||
opencode web --port 4096
|
||||
|
||||
# Em outro terminal, anexe o TUI
|
||||
# In another terminal, attach the TUI
|
||||
opencode attach http://localhost:4096
|
||||
```
|
||||
|
||||
|
||||
@@ -33,7 +33,7 @@ Para resolver isso, fizemos algumas coisas:
|
||||
2. Trabalhamos com alguns provedores para garantir que esses modelos estivessem sendo servidos corretamente.
|
||||
3. Finalmente, realizamos benchmarks da combinação modelo/provedor e elaboramos uma lista que nos sentimos bem em recomendar.
|
||||
|
||||
OpenCode Zen é um gateway de IA que lhe dá acesso a esses modelos.
|
||||
OpenCode Zen é um gateway de AI que lhe dá acesso a esses modelos.
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user