zugzbot 1.0.0 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +99 -23
- package/bin/init.js +8 -6
- package/package.json +2 -3
- package/.utils/docs_opencode/acp.md +0 -165
- package/.utils/docs_opencode/acp.pdf +0 -0
- package/.utils/docs_opencode/agents.md +0 -803
- package/.utils/docs_opencode/agents.pdf +0 -0
- package/.utils/docs_opencode/commands.md +0 -354
- package/.utils/docs_opencode/commands.pdf +0 -0
- package/.utils/docs_opencode/custom-tools.md +0 -209
- package/.utils/docs_opencode/custom-tools.pdf +0 -0
- package/.utils/docs_opencode/ecosystem.md +0 -81
- package/.utils/docs_opencode/ecosystem.pdf +0 -0
- package/.utils/docs_opencode/formatters.md +0 -142
- package/.utils/docs_opencode/formatters.pdf +0 -0
- package/.utils/docs_opencode/keybinds.md +0 -205
- package/.utils/docs_opencode/keybinds.pdf +0 -0
- package/.utils/docs_opencode/lsp.md +0 -202
- package/.utils/docs_opencode/lsp.pdf +0 -0
- package/.utils/docs_opencode/mcp-servers.md +0 -565
- package/.utils/docs_opencode/mcp-servers.pdf +0 -0
- package/.utils/docs_opencode/models.md +0 -234
- package/.utils/docs_opencode/models.pdf +0 -0
- package/.utils/docs_opencode/permissions.md +0 -248
- package/.utils/docs_opencode/permissions.pdf +0 -0
- package/.utils/docs_opencode/plugins.md +0 -409
- package/.utils/docs_opencode/plugins.pdf +0 -0
- package/.utils/docs_opencode/rules.md +0 -189
- package/.utils/docs_opencode/rules.pdf +0 -0
- package/.utils/docs_opencode/sdk.md +0 -522
- package/.utils/docs_opencode/sdk.pdf +0 -0
- package/.utils/docs_opencode/server.md +0 -324
- package/.utils/docs_opencode/server.pdf +0 -0
- package/.utils/docs_opencode/skills.md +0 -235
- package/.utils/docs_opencode/skills.pdf +0 -0
- package/.utils/docs_opencode/themes.md +0 -378
- package/.utils/docs_opencode/themes.pdf +0 -0
- package/.utils/docs_opencode/tools.md +0 -364
- package/.utils/docs_opencode/tools.pdf +0 -0
- package/.utils/export_opencode_session.py +0 -242
- package/.utils/toggle_model.py +0 -208
|
@@ -1,324 +0,0 @@
|
|
|
1
|
-
# Servidor
|
|
2
|
-
|
|
3
|
-
Interactuar con el servidor opencode a través de HTTP.
|
|
4
|
-
|
|
5
|
-
El comando `opencode serve` ejecuta un servidor HTTP sin cabeza que expone un punto final OpenAPI que un cliente opencode puede usar.
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
### [Uso](#uso)
|
|
10
|
-
|
|
11
|
-
**File**: Ventana de terminal
|
|
12
|
-
|
|
13
|
-
```bash
|
|
14
|
-
opencode serve [--port ] [--hostname ] [--cors ]
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
#### [Opciones](#opciones)
|
|
18
|
-
````````````````````
|
|
19
|
-
|
|
20
|
-
| Bandera Descripción Predeterminado |
|
|
21
|
-
| --- |
|
|
22
|
-
| --port Puerto para escuchar 4096 |
|
|
23
|
-
| --hostname Nombre de host para escuchar 127.0.0.1 |
|
|
24
|
-
| --mdns Habilitar el descubrimiento de mDNS false |
|
|
25
|
-
| --mdns-domain Nombre de dominio personalizado para el servicio mDNS opencode.local |
|
|
26
|
-
| --cors Orígenes de navegador adicionales para permitir [] |
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
`--cors` se puede pasar varias veces:
|
|
30
|
-
|
|
31
|
-
**File**: Ventana de terminal
|
|
32
|
-
|
|
33
|
-
```bash
|
|
34
|
-
opencode serve --cors http://localhost:5173 --cors https://app.example.com
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
---
|
|
38
|
-
|
|
39
|
-
### [Autenticación](#autenticación)
|
|
40
|
-
|
|
41
|
-
Configure `OPENCODE_SERVER_PASSWORD` para proteger el servidor con autenticación básica HTTP. El nombre de usuario predeterminado es `opencode`, o configure `OPENCODE_SERVER_USERNAME` para anularlo. Esto se aplica tanto a `opencode serve` como a `opencode web`.
|
|
42
|
-
|
|
43
|
-
**File**: Ventana de terminal
|
|
44
|
-
|
|
45
|
-
```bash
|
|
46
|
-
OPENCODE_SERVER_PASSWORD=your-password opencode serve
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
---
|
|
50
|
-
|
|
51
|
-
### [Cómo funciona](#cómo-funciona)
|
|
52
|
-
|
|
53
|
-
Cuando ejecuta `opencode`, inicia un TUI y un servidor. Donde el TUI es el Cliente que habla con el servidor. El servidor expone una especificación OpenAPI 3.1 punto final. Este punto final también se utiliza para generar un [SDK](https://opencode.ai/docs/sdk).
|
|
54
|
-
|
|
55
|
-
> [!TIP]
|
|
56
|
-
> Utilice el servidor opencode para interactuar con opencode mediante programación.
|
|
57
|
-
|
|
58
|
-
Esta arquitectura permite que opencode admita múltiples clientes y le permite interactuar con opencode mediante programación.
|
|
59
|
-
|
|
60
|
-
Puede ejecutar `opencode serve` para iniciar un servidor independiente. Si tienes el opencode TUI ejecutándose, `opencode serve` iniciará un nuevo servidor.
|
|
61
|
-
|
|
62
|
-
---
|
|
63
|
-
|
|
64
|
-
#### [Conectarse a un servidor existente](#conectarse-a-un-servidor-existente)
|
|
65
|
-
|
|
66
|
-
Cuando inicia el TUI, asigna aleatoriamente un puerto y un nombre de host. En su lugar, puede pasar `--hostname` y `--port` [banderas](https://opencode.ai/docs/cli). Luego use esto para conectarse a su servidor.
|
|
67
|
-
|
|
68
|
-
El punto final ``[/tui](#tui) se puede utilizar para conducir el TUI a través del servidor. Por ejemplo, puede completar previamente o ejecutar un mensaje. Esta configuración es utilizada por los complementos OpenCode [IDE](https://opencode.ai/docs/ide).
|
|
69
|
-
|
|
70
|
-
---
|
|
71
|
-
|
|
72
|
-
## [Especificaciones](#especificaciones)
|
|
73
|
-
|
|
74
|
-
El servidor publica una especificación OpenAPI 3.1 que se puede ver en:
|
|
75
|
-
|
|
76
|
-
**File**:
|
|
77
|
-
|
|
78
|
-
```plaintext
|
|
79
|
-
http://:/doc
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
Por ejemplo, `http://localhost:4096/doc`. Utilice la especificación para generar clientes o inspeccionar tipos de solicitudes y respuestas. O verlo en un explorador Swagger.
|
|
83
|
-
|
|
84
|
-
---
|
|
85
|
-
|
|
86
|
-
## [API](#api)
|
|
87
|
-
|
|
88
|
-
El servidor opencode expone las siguientes API.
|
|
89
|
-
|
|
90
|
-
---
|
|
91
|
-
|
|
92
|
-
### [Global](#global)
|
|
93
|
-
``````````
|
|
94
|
-
|
|
95
|
-
| Método Ruta Descripción Respuesta |
|
|
96
|
-
| --- |
|
|
97
|
-
| GET /global/health Obtener el estado y la versión del servidor { healthy: true, version: string } |
|
|
98
|
-
| GET /global/event Obtenga eventos globales (transmisión SSE) Flujo de eventos |
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
---
|
|
102
|
-
|
|
103
|
-
### [Proyecto](#proyecto)
|
|
104
|
-
``````[Project[]](https://github.com/anomalyco/opencode/blob/dev/packages/sdk/js/src/gen/types.gen.ts)``````[Project](https://github.com/anomalyco/opencode/blob/dev/packages/sdk/js/src/gen/types.gen.ts)
|
|
105
|
-
|
|
106
|
-
| Método Ruta Descripción Respuesta |
|
|
107
|
-
| --- |
|
|
108
|
-
| GET /project Listar todos los proyectos |
|
|
109
|
-
| GET /project/current Obtener el proyecto actual |
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
---
|
|
113
|
-
|
|
114
|
-
### [Ruta y VCS](#ruta-y-vcs)
|
|
115
|
-
``````[Path](https://github.com/anomalyco/opencode/blob/dev/packages/sdk/js/src/gen/types.gen.ts)``````[VcsInfo](https://github.com/anomalyco/opencode/blob/dev/packages/sdk/js/src/gen/types.gen.ts)
|
|
116
|
-
|
|
117
|
-
| Método Ruta Descripción Respuesta |
|
|
118
|
-
| --- |
|
|
119
|
-
| GET /path Obtener la ruta actual |
|
|
120
|
-
| GET /vcs Obtenga información de VCS para el proyecto actual |
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
---
|
|
124
|
-
|
|
125
|
-
### [Instancia](#instancia)
|
|
126
|
-
``````
|
|
127
|
-
|
|
128
|
-
| Método Ruta Descripción Respuesta |
|
|
129
|
-
| --- |
|
|
130
|
-
| POST /instance/dispose Eliminar la instancia actual boolean |
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
---
|
|
134
|
-
|
|
135
|
-
### [Configuración](#configuración)
|
|
136
|
-
``````[Config](https://github.com/anomalyco/opencode/blob/dev/packages/sdk/js/src/gen/types.gen.ts)``````[Config](https://github.com/anomalyco/opencode/blob/dev/packages/sdk/js/src/gen/types.gen.ts)``````[Proveedor[]](https://github.com/anomalyco/opencode/blob/dev/packages/sdk/js/src/gen/types.gen.ts)``
|
|
137
|
-
|
|
138
|
-
| Método Ruta Descripción Respuesta |
|
|
139
|
-
| --- |
|
|
140
|
-
| GET /config Obtener información de configuración |
|
|
141
|
-
| PATCH /config Actualizar configuración |
|
|
142
|
-
| GET /config/providers Lista de proveedores y modelos predeterminados { providers: , default: { [key: string]: string } } |
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
---
|
|
146
|
-
|
|
147
|
-
### [Proveedor](#proveedor)
|
|
148
|
-
``````[Proveedor[]](https://github.com/anomalyco/opencode/blob/dev/packages/sdk/js/src/gen/types.gen.ts)````````[ProviderAuthMethod[]](https://github.com/anomalyco/opencode/blob/dev/packages/sdk/js/src/gen/types.gen.ts)````````[ProviderAuthAuthorization](https://github.com/anomalyco/opencode/blob/dev/packages/sdk/js/src/gen/types.gen.ts)``````
|
|
149
|
-
|
|
150
|
-
| Método Ruta Descripción Respuesta |
|
|
151
|
-
| --- |
|
|
152
|
-
| GET /provider Listar todos los proveedores { all: , default: {...}, connected: string[] } |
|
|
153
|
-
| GET /provider/auth Obtener métodos de autenticación de proveedores { [providerID: string]: } |
|
|
154
|
-
| POST /provider/{id}/oauth/authorize Autorizar a un proveedor usando OAuth |
|
|
155
|
-
| POST /provider/{id}/oauth/callback Manejar la devolución de llamada OAuth para un proveedor boolean |
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
---
|
|
159
|
-
|
|
160
|
-
### [Sesiones](#sesiones)
|
|
161
|
-
``````[Session[]](https://github.com/anomalyco/opencode/blob/dev/packages/sdk/js/src/gen/types.gen.ts)````````[Session](https://github.com/anomalyco/opencode/blob/dev/packages/sdk/js/src/gen/types.gen.ts)``````[SessionStatus](https://github.com/anomalyco/opencode/blob/dev/packages/sdk/js/src/gen/types.gen.ts)````````[Session](https://github.com/anomalyco/opencode/blob/dev/packages/sdk/js/src/gen/types.gen.ts)``````````````[Session](https://github.com/anomalyco/opencode/blob/dev/packages/sdk/js/src/gen/types.gen.ts)``````[Session[]](https://github.com/anomalyco/opencode/blob/dev/packages/sdk/js/src/gen/types.gen.ts)``````[Todo[]](https://github.com/anomalyco/opencode/blob/dev/packages/sdk/js/src/gen/types.gen.ts)``````````````````[Session](https://github.com/anomalyco/opencode/blob/dev/packages/sdk/js/src/gen/types.gen.ts)````````````[Session](https://github.com/anomalyco/opencode/blob/dev/packages/sdk/js/src/gen/types.gen.ts)``````[Session](https://github.com/anomalyco/opencode/blob/dev/packages/sdk/js/src/gen/types.gen.ts)````````[FileDiff[]](https://github.com/anomalyco/opencode/blob/dev/packages/sdk/js/src/gen/types.gen.ts)``````````````````````````````
|
|
162
|
-
|
|
163
|
-
| Método Ruta Descripción Notas |
|
|
164
|
-
| --- |
|
|
165
|
-
| GET /session Listar todas las sesiones Devuelve |
|
|
166
|
-
| POST /session Crear una nueva sesión cuerpo: { parentID?, title? } , devuelve |
|
|
167
|
-
| GET /session/status Obtener el estado de la sesión para todas las sesiones Devuelve { [sessionID: string]: } |
|
|
168
|
-
| GET /session/:id Obtener detalles de la sesión Devuelve |
|
|
169
|
-
| DELETE /session/:id Eliminar una sesión y todos sus datos Devuelve boolean |
|
|
170
|
-
| PATCH /session/:id Actualizar propiedades de sesión cuerpo: { title? } , devuelve |
|
|
171
|
-
| GET /session/:id/children Obtener las sesiones secundarias de una sesión Devuelve |
|
|
172
|
-
| GET /session/:id/todo Obtener la lista de tareas pendientes para una sesión Devuelve |
|
|
173
|
-
| POST /session/:id/init Analizar aplicación y crear AGENTS.md cuerpo: { messageID, providerID, modelID } , devuelve boolean |
|
|
174
|
-
| POST /session/:id/fork Bifurca una sesión existente en un mensaje cuerpo: { messageID? } , devuelve |
|
|
175
|
-
| POST /session/:id/abort Cancelar una sesión en ejecución Devuelve boolean |
|
|
176
|
-
| POST /session/:id/share Compartir una sesión Devuelve |
|
|
177
|
-
| DELETE /session/:id/share Dejar de compartir una sesión Devuelve |
|
|
178
|
-
| GET /session/:id/diff Obtenga la diferencia para esta sesión consulta: messageID? , devuelve |
|
|
179
|
-
| POST /session/:id/summarize Resumir la sesión cuerpo: { providerID, modelID } , devuelve boolean |
|
|
180
|
-
| POST /session/:id/revert Revertir un mensaje cuerpo: { messageID, partID? } , devuelve boolean |
|
|
181
|
-
| POST /session/:id/unrevert Restaurar todos los mensajes revertidos Devuelve boolean |
|
|
182
|
-
| POST /session/:id/permissions/:permissionID Responder a una solicitud de permiso cuerpo: { response, remember? } , devuelve boolean |
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
---
|
|
186
|
-
|
|
187
|
-
### [Mensajes](#mensajes)
|
|
188
|
-
````````[Mensaje](https://github.com/anomalyco/opencode/blob/dev/packages/sdk/js/src/gen/types.gen.ts)``[Parte[]](https://github.com/anomalyco/opencode/blob/dev/packages/sdk/js/src/gen/types.gen.ts)``````````[Mensaje](https://github.com/anomalyco/opencode/blob/dev/packages/sdk/js/src/gen/types.gen.ts)``[Parte[]](https://github.com/anomalyco/opencode/blob/dev/packages/sdk/js/src/gen/types.gen.ts)````````[Mensaje](https://github.com/anomalyco/opencode/blob/dev/packages/sdk/js/src/gen/types.gen.ts)``[Parte[]](https://github.com/anomalyco/opencode/blob/dev/packages/sdk/js/src/gen/types.gen.ts)``````````````````[Mensaje](https://github.com/anomalyco/opencode/blob/dev/packages/sdk/js/src/gen/types.gen.ts)``[Parte[]](https://github.com/anomalyco/opencode/blob/dev/packages/sdk/js/src/gen/types.gen.ts)``````````[Mensaje](https://github.com/anomalyco/opencode/blob/dev/packages/sdk/js/src/gen/types.gen.ts)``[Parte[]](https://github.com/anomalyco/opencode/blob/dev/packages/sdk/js/src/gen/types.gen.ts)``
|
|
189
|
-
|
|
190
|
-
| Método Ruta Descripción Notas |
|
|
191
|
-
| --- |
|
|
192
|
-
| GET /session/:id/message Listar mensajes en una sesión consulta: limit? , devuelve { info: , parts: }[] |
|
|
193
|
-
| POST /session/:id/message Envía un mensaje y espera respuesta cuerpo: { messageID?, model?, agent?, noReply?, system?, tools?, parts } , devuelve { info: , parts: } |
|
|
194
|
-
| GET /session/:id/message/:messageID Obtener detalles del mensaje Devuelve { info: , parts: } |
|
|
195
|
-
| POST /session/:id/prompt_async Enviar un mensaje de forma asincrónica (sin espera) cuerpo: igual que /session/:id/message , devuelve 204 No Content |
|
|
196
|
-
| POST /session/:id/command Ejecutar un comando de barra diagonal cuerpo: { messageID?, agent?, model?, command, arguments } , devuelve { info: , parts: } |
|
|
197
|
-
| POST /session/:id/shell Ejecute un comando de shell cuerpo: { agent, model?, command } , devuelve { info: , parts: } |
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
---
|
|
201
|
-
|
|
202
|
-
### [Comandos](#comandos)
|
|
203
|
-
``````[Command[]](https://github.com/anomalyco/opencode/blob/dev/packages/sdk/js/src/gen/types.gen.ts)
|
|
204
|
-
|
|
205
|
-
| Método Ruta Descripción Respuesta |
|
|
206
|
-
| --- |
|
|
207
|
-
| GET /command Listar todos los comandos |
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
---
|
|
211
|
-
|
|
212
|
-
### [Archivos](#archivos)
|
|
213
|
-
``````````````````````````[Symbol[]](https://github.com/anomalyco/opencode/blob/dev/packages/sdk/js/src/gen/types.gen.ts)``````[FileNode[]](https://github.com/anomalyco/opencode/blob/dev/packages/sdk/js/src/gen/types.gen.ts)``````[FileContent](https://github.com/anomalyco/opencode/blob/dev/packages/sdk/js/src/gen/types.gen.ts)``````[File[]](https://github.com/anomalyco/opencode/blob/dev/packages/sdk/js/src/gen/types.gen.ts)
|
|
214
|
-
|
|
215
|
-
| Método Ruta Descripción Respuesta |
|
|
216
|
-
| --- |
|
|
217
|
-
| GET /find?pattern= Buscar texto en archivos Matriz de objetos coincidentes con path , lines , line_number , absolute_offset , submatches |
|
|
218
|
-
| GET /find/file?query= Buscar archivos y directorios por nombre string[] (caminos) |
|
|
219
|
-
| GET /find/symbol?query= Buscar símbolos del espacio de trabajo |
|
|
220
|
-
| GET /file?path= Listar archivos y directorios |
|
|
221
|
-
| GET /file/content?path= Leer un archivo |
|
|
222
|
-
| GET /file/status Obtener el estado de los archivos rastreados |
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
#### [Parámetros de consulta de /find/file](#parámetros-de-consulta-de-findfile)
|
|
226
|
-
|
|
227
|
-
- `query` (obligatorio) — cadena de búsqueda (coincidencia aproximada)
|
|
228
|
-
- `type` (opcional): limita los resultados a `"file"` o `"directory"`
|
|
229
|
-
- `directory` (opcional): anula la raíz del proyecto para la búsqueda.
|
|
230
|
-
- `limit` (opcional) — resultados máximos (1–200)
|
|
231
|
-
- `dirs` (opcional): indicador heredado (`"false"` devuelve solo archivos)
|
|
232
|
-
|
|
233
|
-
---
|
|
234
|
-
|
|
235
|
-
### [Herramientas (experimentales)](#herramientas-experimentales)
|
|
236
|
-
``````[ToolIDs](https://github.com/anomalyco/opencode/blob/dev/packages/sdk/js/src/gen/types.gen.ts)``````[ToolList](https://github.com/anomalyco/opencode/blob/dev/packages/sdk/js/src/gen/types.gen.ts)
|
|
237
|
-
|
|
238
|
-
| Método Ruta Descripción Respuesta |
|
|
239
|
-
| --- |
|
|
240
|
-
| GET /experimental/tool/ids Listar todos los ID de herramientas |
|
|
241
|
-
| GET /experimental/tool?provider=&model= Listar herramientas con esquemas JSON para un modelo |
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
---
|
|
245
|
-
|
|
246
|
-
### [LSP, formateadores y MCP](#lsp-formateadores-y-mcp)
|
|
247
|
-
``````[LSPStatus[]](https://github.com/anomalyco/opencode/blob/dev/packages/sdk/js/src/gen/types.gen.ts)``````[FormatterStatus[]](https://github.com/anomalyco/opencode/blob/dev/packages/sdk/js/src/gen/types.gen.ts)``````[MCPStatus](https://github.com/anomalyco/opencode/blob/dev/packages/sdk/js/src/gen/types.gen.ts)````````
|
|
248
|
-
|
|
249
|
-
| Método Ruta Descripción Respuesta |
|
|
250
|
-
| --- |
|
|
251
|
-
| GET /lsp Obtener el estado del servidor LSP |
|
|
252
|
-
| GET /formatter Obtener estado del formateador |
|
|
253
|
-
| GET /mcp Obtener el estado del servidor MCP { [name: string]: } |
|
|
254
|
-
| POST /mcp Agregue el servidor MCP dinámicamente cuerpo: { name, config } , devuelve MCP objeto de estado |
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
---
|
|
258
|
-
|
|
259
|
-
### [Agentes](#agentes)
|
|
260
|
-
``````[Agent[]](https://github.com/anomalyco/opencode/blob/dev/packages/sdk/js/src/gen/types.gen.ts)
|
|
261
|
-
|
|
262
|
-
| Método Ruta Descripción Respuesta |
|
|
263
|
-
| --- |
|
|
264
|
-
| GET /agent Listar todos los agentes disponibles |
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
---
|
|
268
|
-
|
|
269
|
-
### [Registro](#registro)
|
|
270
|
-
````````
|
|
271
|
-
|
|
272
|
-
| Método Ruta Descripción Respuesta |
|
|
273
|
-
| --- |
|
|
274
|
-
| POST /log Escribir entrada de registro. Cuerpo: { service, level, message, extra? } boolean |
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
---
|
|
278
|
-
|
|
279
|
-
### [TUI](#tui)
|
|
280
|
-
``````````````````````````````````````````````````````````````````````
|
|
281
|
-
|
|
282
|
-
| Método Ruta Descripción Respuesta |
|
|
283
|
-
| --- |
|
|
284
|
-
| POST /tui/append-prompt Agregar texto al mensaje boolean |
|
|
285
|
-
| POST /tui/open-help Abra el cuadro de diálogo de ayuda boolean |
|
|
286
|
-
| POST /tui/open-sessions Abrir el selector de sesiones boolean |
|
|
287
|
-
| POST /tui/open-themes Abra el selector de temas boolean |
|
|
288
|
-
| POST /tui/open-models Abrir el selector de modelo boolean |
|
|
289
|
-
| POST /tui/submit-prompt Enviar el mensaje actual boolean |
|
|
290
|
-
| POST /tui/clear-prompt Borrar el mensaje boolean |
|
|
291
|
-
| POST /tui/execute-command Ejecutar un comando ( { command } ) boolean |
|
|
292
|
-
| POST /tui/show-toast Mostrar brindis ( { title?, message, variant } ) boolean |
|
|
293
|
-
| GET /tui/control/next Espere la próxima solicitud de control Objeto de solicitud de control |
|
|
294
|
-
| POST /tui/control/response Responder a una solicitud de control ( { body } ) boolean |
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
---
|
|
298
|
-
|
|
299
|
-
### [Autenticación](#autenticación-1)
|
|
300
|
-
``````
|
|
301
|
-
|
|
302
|
-
| Método Ruta Descripción Respuesta |
|
|
303
|
-
| --- |
|
|
304
|
-
| PUT /auth/:id Establecer credenciales de autenticación. El cuerpo debe coincidir con el esquema del proveedor boolean |
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
---
|
|
308
|
-
|
|
309
|
-
### [Eventos](#eventos)
|
|
310
|
-
``````
|
|
311
|
-
|
|
312
|
-
| Método Ruta Descripción Respuesta |
|
|
313
|
-
| --- |
|
|
314
|
-
| GET /event Transmisión de eventos enviados por el servidor. El primer evento es server.connected , luego eventos de bus Transmisión de eventos enviados por el servidor |
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
---
|
|
318
|
-
|
|
319
|
-
### [Documentación](#documentación)
|
|
320
|
-
````
|
|
321
|
-
|
|
322
|
-
| Método Ruta Descripción Respuesta |
|
|
323
|
-
| --- |
|
|
324
|
-
| GET /doc Especificación OpenAPI 3.1 Página HTML con especificación OpenAPI |
|
|
Binary file
|
|
@@ -1,235 +0,0 @@
|
|
|
1
|
-
# Habilidades del agente
|
|
2
|
-
|
|
3
|
-
Defina el comportamiento reutilizable mediante definiciones de SKILL.md
|
|
4
|
-
|
|
5
|
-
Las habilidades del agente permiten a OpenCode descubrir instrucciones reutilizables de su repositorio o directorio de inicio. Las habilidades se cargan bajo demanda a través de la herramienta nativa `skill`: los agentes ven las habilidades disponibles y pueden cargar el contenido completo cuando sea necesario.
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## [Colocar archivos](#colocar-archivos)
|
|
10
|
-
|
|
11
|
-
Cree una carpeta por nombre de habilidad y coloque un `SKILL.md` dentro de ella. OpenCode busca estas ubicaciones:
|
|
12
|
-
|
|
13
|
-
- Configuración del proyecto: `.opencode/skills//SKILL.md`
|
|
14
|
-
- Configuración global: `~/.config/opencode/skills//SKILL.md`
|
|
15
|
-
- Compatible con Proyecto Claude: `.claude/skills//SKILL.md`
|
|
16
|
-
- Compatible con Claude global: `~/.claude/skills//SKILL.md`
|
|
17
|
-
- Compatible con agente de proyecto: `.agents/skills//SKILL.md`
|
|
18
|
-
- Compatible con agentes globales: `~/.agents/skills//SKILL.md`
|
|
19
|
-
|
|
20
|
-
---
|
|
21
|
-
|
|
22
|
-
## [Entender el descubrimiento](#entender-el-descubrimiento)
|
|
23
|
-
|
|
24
|
-
Para las rutas locales del proyecto, OpenCode sube desde su directorio de trabajo actual hasta llegar al árbol de trabajo de git. Carga cualquier `skills/*/SKILL.md` coincidente en `.opencode/` y cualquier `.claude/skills/*/SKILL.md` o `.agents/skills/*/SKILL.md` coincidente a lo largo del camino.
|
|
25
|
-
|
|
26
|
-
Las definiciones globales también se cargan desde `~/.config/opencode/skills/*/SKILL.md`, `~/.claude/skills/*/SKILL.md` y `~/.agents/skills/*/SKILL.md`.
|
|
27
|
-
|
|
28
|
-
---
|
|
29
|
-
|
|
30
|
-
## [Escribir la introducción](#escribir-la-introducción)
|
|
31
|
-
|
|
32
|
-
Cada `SKILL.md` debe comenzar con el frontmatter de YAML. Sólo se reconocen estos campos:
|
|
33
|
-
|
|
34
|
-
- `name` (obligatorio)
|
|
35
|
-
- `description` (obligatorio)
|
|
36
|
-
- `license` (opcional)
|
|
37
|
-
- `compatibility` (opcional)
|
|
38
|
-
- `metadata` (opcional, mapa de cadena a cadena)
|
|
39
|
-
|
|
40
|
-
Los campos desconocidos se ignoran.
|
|
41
|
-
|
|
42
|
-
---
|
|
43
|
-
|
|
44
|
-
## [Validar nombres](#validar-nombres)
|
|
45
|
-
|
|
46
|
-
`name` debe:
|
|
47
|
-
|
|
48
|
-
- Tener entre 1 y 64 caracteres.
|
|
49
|
-
- Ser alfanuméricos en minúsculas con separadores de guión simple
|
|
50
|
-
- No comienza ni termina con `-`
|
|
51
|
-
- No contener `--` consecutivos
|
|
52
|
-
- Coincide con el nombre del directorio que contiene `SKILL.md`
|
|
53
|
-
|
|
54
|
-
expresión regular equivalente:
|
|
55
|
-
|
|
56
|
-
**File**:
|
|
57
|
-
|
|
58
|
-
```text
|
|
59
|
-
^[a-z0-9]+(-[a-z0-9]+)*$
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
---
|
|
63
|
-
|
|
64
|
-
## [Seguir las reglas de longitud](#seguir-las-reglas-de-longitud)
|
|
65
|
-
|
|
66
|
-
`description` debe tener entre 1 y 1024 caracteres. Manténgalo lo suficientemente específico para que el agente elija correctamente.
|
|
67
|
-
|
|
68
|
-
---
|
|
69
|
-
|
|
70
|
-
## [Usar un ejemplo](#usar-un-ejemplo)
|
|
71
|
-
|
|
72
|
-
Crea `.opencode/skills/git-release/SKILL.md` así:
|
|
73
|
-
|
|
74
|
-
**File**:
|
|
75
|
-
|
|
76
|
-
```markdown
|
|
77
|
-
---
|
|
78
|
-
name: git-release
|
|
79
|
-
description: Create consistent releases and changelogs
|
|
80
|
-
license: MIT
|
|
81
|
-
compatibility: opencode
|
|
82
|
-
metadata:
|
|
83
|
-
audience: maintainers
|
|
84
|
-
workflow: github
|
|
85
|
-
---
|
|
86
|
-
|
|
87
|
-
## What I do
|
|
88
|
-
|
|
89
|
-
- Draft release notes from merged PRs
|
|
90
|
-
- Propose a version bump
|
|
91
|
-
- Provide a copy-pasteable `gh release create` command
|
|
92
|
-
|
|
93
|
-
## When to use me
|
|
94
|
-
|
|
95
|
-
Use this when you are preparing a tagged release.
|
|
96
|
-
Ask clarifying questions if the target versioning scheme is unclear.
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
---
|
|
100
|
-
|
|
101
|
-
## [Reconocer la descripción de la herramienta](#reconocer-la-descripción-de-la-herramienta)
|
|
102
|
-
|
|
103
|
-
OpenCode enumera las habilidades disponibles en la descripción de la herramienta `skill`. Cada entrada incluye el nombre y la descripción de la habilidad:
|
|
104
|
-
|
|
105
|
-
**File**:
|
|
106
|
-
|
|
107
|
-
```xml
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
git-release
|
|
111
|
-
Create consistent releases and changelogs
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
El agente carga una habilidad llamando a la herramienta:
|
|
117
|
-
|
|
118
|
-
**File**:
|
|
119
|
-
|
|
120
|
-
```plaintext
|
|
121
|
-
skill({ name: "git-release" })
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
---
|
|
125
|
-
|
|
126
|
-
## [Configurar permisos](#configurar-permisos)
|
|
127
|
-
|
|
128
|
-
Controle a qué agentes de habilidades pueden acceder utilizando permisos basados en patrones en `opencode.json`:
|
|
129
|
-
|
|
130
|
-
**File**:
|
|
131
|
-
|
|
132
|
-
```json
|
|
133
|
-
{
|
|
134
|
-
"permission": {
|
|
135
|
-
"skill": {
|
|
136
|
-
"*": "allow",
|
|
137
|
-
"pr-review": "allow",
|
|
138
|
-
"internal-*": "deny",
|
|
139
|
-
"experimental-*": "ask"
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
```
|
|
144
|
-
``````
|
|
145
|
-
|
|
146
|
-
| Permiso Comportamiento |
|
|
147
|
-
| --- |
|
|
148
|
-
| allow La habilidad se carga inmediatamente |
|
|
149
|
-
| deny Habilidad oculta al agente, acceso rechazado |
|
|
150
|
-
| ask Se solicita al usuario aprobación antes de cargar |
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
Los patrones admiten comodines: `internal-*` coincide con `internal-docs`, `internal-tools`, etc.
|
|
154
|
-
|
|
155
|
-
---
|
|
156
|
-
|
|
157
|
-
## [Anulación por agente](#anulación-por-agente)
|
|
158
|
-
|
|
159
|
-
Otorgue a agentes específicos permisos diferentes a los predeterminados globales.
|
|
160
|
-
|
|
161
|
-
**Para agentes personalizados** (en el frente del agente):
|
|
162
|
-
|
|
163
|
-
**File**:
|
|
164
|
-
|
|
165
|
-
```yaml
|
|
166
|
-
---
|
|
167
|
-
permission:
|
|
168
|
-
skill:
|
|
169
|
-
"documents-*": "allow"
|
|
170
|
-
---
|
|
171
|
-
```
|
|
172
|
-
|
|
173
|
-
**Para agentes integrados** (en `opencode.json`):
|
|
174
|
-
|
|
175
|
-
**File**:
|
|
176
|
-
|
|
177
|
-
```json
|
|
178
|
-
{
|
|
179
|
-
"agent": {
|
|
180
|
-
"plan": {
|
|
181
|
-
"permission": {
|
|
182
|
-
"skill": {
|
|
183
|
-
"internal-*": "allow"
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
```
|
|
190
|
-
|
|
191
|
-
---
|
|
192
|
-
|
|
193
|
-
## [Deshabilitar la herramienta de habilidades](#deshabilitar-la-herramienta-de-habilidades)
|
|
194
|
-
|
|
195
|
-
Deshabilite completamente las habilidades para los agentes que no deberían usarlas:
|
|
196
|
-
|
|
197
|
-
**Para agentes personalizados**:
|
|
198
|
-
|
|
199
|
-
**File**:
|
|
200
|
-
|
|
201
|
-
```yaml
|
|
202
|
-
---
|
|
203
|
-
tools:
|
|
204
|
-
skill: false
|
|
205
|
-
---
|
|
206
|
-
```
|
|
207
|
-
|
|
208
|
-
**Para agentes integrados**:
|
|
209
|
-
|
|
210
|
-
**File**:
|
|
211
|
-
|
|
212
|
-
```json
|
|
213
|
-
{
|
|
214
|
-
"agent": {
|
|
215
|
-
"plan": {
|
|
216
|
-
"tools": {
|
|
217
|
-
"skill": false
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
```
|
|
223
|
-
|
|
224
|
-
Cuando está deshabilitada, la sección `` se omite por completo.
|
|
225
|
-
|
|
226
|
-
---
|
|
227
|
-
|
|
228
|
-
## [Solucionar problemas de carga](#solucionar-problemas-de-carga)
|
|
229
|
-
|
|
230
|
-
Si una habilidad no aparece:
|
|
231
|
-
|
|
232
|
-
1. Verifique que `SKILL.md` esté escrito en mayúsculas.
|
|
233
|
-
1. Verifique que el frontmatter incluya `name` y `description`
|
|
234
|
-
1. Asegúrese de que los nombres de las habilidades sean únicos en todas las ubicaciones
|
|
235
|
-
1. Verifique los permisos: las habilidades con `deny` están ocultas para los agentes
|
|
Binary file
|