mirror of
https://gitea.toothfairyai.com/ToothFairyAI/tf_code.git
synced 2026-04-07 17:28:53 +00:00
317 lines
6.8 KiB
Plaintext
317 lines
6.8 KiB
Plaintext
---
|
|
title: Komande
|
|
description: Kreirajte prilagođene komande za zadatke koji se ponavljaju.
|
|
---
|
|
|
|
Prilagođene komande vam omogućavaju da odredite prompt koji želite da pokrenete kada se ta naredba izvrši u TUI-ju.
|
|
|
|
```bash frame="none"
|
|
/my-command
|
|
```
|
|
|
|
Prilagođene komande su dodatak ugrađenim komandama kao što su `/init`, `/undo`, `/redo`, `/share`, `/help`. [Saznajte više](/docs/tui#commands).
|
|
|
|
---
|
|
|
|
## Kreirajte komandne fajlove
|
|
|
|
Kreirajte markdown fajlove u direktorijumu `commands/` da definišete prilagođene komande.
|
|
Kreiraj `.opencode/commands/test.md`:
|
|
|
|
```md title=".opencode/commands/test.md"
|
|
---
|
|
description: Run tests with coverage
|
|
agent: build
|
|
model: anthropic/claude-3-5-sonnet-20241022
|
|
---
|
|
|
|
Run the full test suite with coverage report and show any failures.
|
|
Focus on the failing tests and suggest fixes.
|
|
```
|
|
|
|
Frontmatter definira svojstva komande. Sadržaj postaje predložak.
|
|
Koristite komandu tako što ćete upisati `/` nakon čega slijedi naziv komande.
|
|
|
|
```bash frame="none"
|
|
"/test"
|
|
```
|
|
|
|
---
|
|
|
|
## Konfiguriši
|
|
|
|
Možete dodati prilagođene komande kroz OpenCode konfiguraciju ili kreiranjem markdown datoteka u direktoriju `commands/`.
|
|
|
|
---
|
|
|
|
### JSON
|
|
|
|
Koristite opciju `command` u svom OpenCode [config](/docs/config):
|
|
|
|
```json title="opencode.jsonc" {4-12}
|
|
{
|
|
"$schema": "https://opencode.ai/config.json",
|
|
"command": {
|
|
// This becomes the name of the command
|
|
"test": {
|
|
// 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"
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
Sada možete pokrenuti ovu naredbu u TUI:
|
|
|
|
```bash frame="none"
|
|
/test
|
|
```
|
|
|
|
---
|
|
|
|
### Markdown
|
|
|
|
Također možete definirati komande koristeći markdown datoteke. Stavite ih u:
|
|
|
|
- Globalno: `~/.config/opencode/commands/`
|
|
- Po projektu: `.opencode/commands/`
|
|
|
|
```markdown title="~/.config/opencode/commands/test.md"
|
|
---
|
|
description: Run tests with coverage
|
|
agent: build
|
|
model: anthropic/claude-3-5-sonnet-20241022
|
|
---
|
|
|
|
Run the full test suite with coverage report and show any failures.
|
|
Focus on the failing tests and suggest fixes.
|
|
```
|
|
|
|
Ime markdown datoteke postaje ime naredbe. Na primjer, `test.md` vam omogućava da pokrenete:
|
|
|
|
```bash frame="none"
|
|
/test
|
|
```
|
|
|
|
---
|
|
|
|
## Prompt config
|
|
|
|
Promptovi za prilagođene komande podržavaju nekoliko posebnih čuvara mjesta i sintakse.
|
|
|
|
---
|
|
|
|
### Argumenti
|
|
|
|
Proslijedite argumente naredbama koristeći čuvar mjesta `$ARGUMENTS`.
|
|
|
|
```md title=".opencode/commands/component.md"
|
|
---
|
|
description: Create a new component
|
|
---
|
|
|
|
Create a new React component named $ARGUMENTS with TypeScript support.
|
|
Include proper typing and basic structure.
|
|
```
|
|
|
|
Pokrenite naredbu s argumentima:
|
|
|
|
```bash frame="none"
|
|
/component Button
|
|
```
|
|
|
|
I `$ARGUMENTS` će biti zamijenjen sa `Button`.
|
|
Također možete pristupiti pojedinačnim argumentima koristeći pozicione parametre:
|
|
|
|
- `$1` - Prvi argument
|
|
- `$2` - Drugi argument
|
|
- `$3` - Treći argument
|
|
- I tako dalje...
|
|
|
|
Na primjer:
|
|
|
|
```md title=".opencode/commands/create-file.md"
|
|
---
|
|
description: Create a new file with content
|
|
---
|
|
|
|
Create a file named $1 in the directory $2
|
|
with the following content: $3
|
|
```
|
|
|
|
Pokrenite naredbu:
|
|
|
|
```bash frame="none"
|
|
/create-file config.json src "{ \"key\": \"value\" }"
|
|
```
|
|
|
|
Ovo zamjenjuje:
|
|
|
|
- `$1` do `config.json`
|
|
- `$2` do `src`
|
|
- `$3` do `{ "key": "value" }`
|
|
|
|
---
|
|
|
|
### Shell izlaz
|
|
|
|
Koristite _!`command`_ da ubacite izlaz [bash command](/docs/tui#bash-commands) u svoj prompt.
|
|
Na primjer, da kreirate prilagođenu naredbu koja analizira pokrivenost testom:
|
|
|
|
```md title=".opencode/commands/analyze-coverage.md"
|
|
---
|
|
description: Analyze test coverage
|
|
---
|
|
|
|
Here are the current test results:
|
|
!`npm test`
|
|
|
|
Based on these results, suggest improvements to increase coverage.
|
|
```
|
|
|
|
Ili da vidite nedavne promjene:
|
|
|
|
```md title=".opencode/commands/review-changes.md"
|
|
---
|
|
description: Review recent changes
|
|
---
|
|
|
|
Recent git commits:
|
|
!`git log --oneline -10`
|
|
|
|
Review these changes and suggest any improvements.
|
|
```
|
|
|
|
Naredbe se pokreću u korijenskom direktoriju vašeg projekta i njihov izlaz postaje dio prompta.
|
|
|
|
---
|
|
|
|
### Reference fajlova
|
|
|
|
Uključite datoteke u svoju naredbu koristeći `@` nakon čega slijedi naziv datoteke.
|
|
|
|
```md title=".opencode/commands/review-component.md"
|
|
---
|
|
description: Review component
|
|
---
|
|
|
|
Review the component in @src/components/Button.tsx.
|
|
Check for performance issues and suggest improvements.
|
|
```
|
|
|
|
Sadržaj datoteke se automatski uključuje u prompt.
|
|
|
|
---
|
|
|
|
## Opcije
|
|
|
|
Pogledajmo detaljno opcije konfiguracije.
|
|
|
|
---
|
|
|
|
### Template
|
|
|
|
Opcija `template` definira prompt koji će biti poslan LLM-u kada se naredba izvrši.
|
|
|
|
```json title="opencode.json"
|
|
{
|
|
"command": {
|
|
"test": {
|
|
"template": "Run the full test suite with coverage report and show any failures.\nFocus on the failing tests and suggest fixes."
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
Ovo je **obavezna** opcija konfiguracije.
|
|
|
|
---
|
|
|
|
### Opis
|
|
|
|
Koristite opciju `description` da pružite kratak opis onoga što naredba radi.
|
|
|
|
```json title="opencode.json"
|
|
{
|
|
"command": {
|
|
"test": {
|
|
"description": "Run tests with coverage"
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
Ovo se prikazuje kao opis u TUI-u kada unesete naredbu.
|
|
|
|
---
|
|
|
|
### Agent
|
|
|
|
Koristite `agent` konfiguraciju da opciono odredite koji [agent](/docs/agents) treba da izvrši ovu naredbu.
|
|
Ako je ovo [subagent](/docs/agents/#subagents) naredba će po defaultu pokrenuti pozivanje subagenta.
|
|
Da onemogućite ovo ponašanje, postavite `subtask` na `false`.
|
|
|
|
```json title="opencode.json"
|
|
{
|
|
"command": {
|
|
"review": {
|
|
"agent": "plan"
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
Ovo je **opciona** opcija konfiguracije. Ako nije navedeno, podrazumevano je vaš trenutni agent.
|
|
|
|
---
|
|
|
|
### Subtask
|
|
|
|
Koristite `subtask` boolean da prisilite naredbu da pokrene [subagent](/docs/agents/#subagents) pozivanje.
|
|
Ovo je korisno ako želite da naredba ne zagađuje vaš primarni kontekst i da će **primorati** agenta da djeluje kao subagent,
|
|
čak i ako je `mode` postavljeno na `primary` u konfiguraciji [agent](/docs/agents).
|
|
|
|
```json title="opencode.json"
|
|
{
|
|
"command": {
|
|
"analyze": {
|
|
"subtask": true
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
Ovo je **opciona** opcija konfiguracije.
|
|
|
|
---
|
|
|
|
### Model
|
|
|
|
Koristite `model` konfiguraciju da nadjačate zadani model za ovu naredbu.
|
|
|
|
```json title="opencode.json"
|
|
{
|
|
"command": {
|
|
"analyze": {
|
|
"model": "anthropic/claude-3-5-sonnet-20241022"
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
Ovo je **opciona** opcija konfiguracije.
|
|
|
|
---
|
|
|
|
## Ugrađene
|
|
|
|
opencode uključuje nekoliko ugrađenih naredbi kao što su `/init`, `/undo`, `/redo`, `/share`, `/help`; [saznaj više](/docs/tui#commands).
|
|
:::note
|
|
Prilagođene komande mogu nadjačati ugrađene komande.
|
|
:::
|
|
Ako definirate prilagođenu naredbu s istim imenom, ona će nadjačati ugrađenu naredbu.
|