Files
tf_code/packages/web/src/content/docs/bs/commands.mdx
2026-02-10 20:22:30 +00:00

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.