diff options
| author | Adam <[email protected]> | 2026-02-09 11:34:35 -0600 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-02-09 11:34:35 -0600 |
| commit | dc53086c1e73d43d3a28fc4cdf161e83d09b1877 (patch) | |
| tree | 45a1d0e38de958d0886a5120b2806b21db74145b /packages/web/src/content/docs/pl | |
| parent | f74c0339cc6315f7e7743e26b7eab47ce026c239 (diff) | |
| download | opencode-dc53086c1e73d43d3a28fc4cdf161e83d09b1877.tar.gz opencode-dc53086c1e73d43d3a28fc4cdf161e83d09b1877.zip | |
wip(docs): i18n (#12681)
Diffstat (limited to 'packages/web/src/content/docs/pl')
35 files changed, 11215 insertions, 0 deletions
diff --git a/packages/web/src/content/docs/pl/1-0.mdx b/packages/web/src/content/docs/pl/1-0.mdx new file mode 100644 index 000000000..e441525ae --- /dev/null +++ b/packages/web/src/content/docs/pl/1-0.mdx @@ -0,0 +1,67 @@ +--- +title: Migracja do wersji 1.0 +description: Co nowego w OpenCode 1.0. +--- + +OpenCode 1.0 do całkowitej przeróbki TUI. + +Przeszliśmy z TUI na go+bubbletea, który miał problemy z wydajnością i możliwościami, do wewnętrznego frameworka (OpenTUI) obciążającego w zig+solidjs. + +Nowy TUI działa jak stary, łączy się z tym samym serwerem opencode. + +--- + +## Aktualizacja + +Nie automatyczna aktualizacja do wersji 1.0, która jest dostępna w wersji 1.0 +wersja. Starsze wersje OpenCode zawsze pobierają najnowszą wersję. + +Aby móc, móc + +```bash +$ opencode upgrade 1.0.0 +``` + +Aby uruchomić wersję 0.x, uruchom + +```bash +$ opencode upgrade 0.15.31 +``` + +--- + +## Zmiany UX + +Historia sesji jest bardziej skompresowana i znaleziono pełne szczegóły narzędzia do edycji w bash. + +Dodaliśmy pasek kontrolny, przez który przepływa prawie wszystko. działanie nie ctrl+p, aby przejść do zdarzenia, które zawiera wszystko, co można regenerować. + +Dodano pasek boczny sesji (możliwość przejścia do urządzenia) z odłączonym dostępem. + +Usunęliśmy pewne funkcje, z których nie ma pewności, czy ktoś faktycznie korzystał. Jeśli brakuje czegoś ważnego, otwórz problem, a my szybko dodamy. + +--- + +## Przełomowe zmiany + +### Zmieniono skrótów klawiszowych + +- wiadomości_przywróć -> wiadomości_cofnij +- uruchomienie_agent -> cykl_agent +- switch_agent_reverse -> agent_cycle_reverse +- tryb_przełączenie -> cykl_agenta +- switch_mode_reverse -> agent_cycle_reverse + +### Usunięto klawisze + +- Przegrzewanie_układu_wiadomości +- wiadomości_następne +- wiadomości_poprzednie +- plik_diff_toggle +- wyszukiwanie_pliku +- plik_zamknij +- lista_plików +- pomoc_aplikacji +- projekt_init +- szczegóły_narzędzia +- myślenie_bloki diff --git a/packages/web/src/content/docs/pl/acp.mdx b/packages/web/src/content/docs/pl/acp.mdx new file mode 100644 index 000000000..c5d7bf43a --- /dev/null +++ b/packages/web/src/content/docs/pl/acp.mdx @@ -0,0 +1,156 @@ +--- +title: Wsparcie AKP +description: przetwarzanie OpenCode w procesorze komunikatu z ACP. +--- + +OpenCode obsługi [Protokół klienta agenta](https://agentclientprotocol.com) lub (ACP), dzięki któremu można przejść do oprogramowania bezpośrednio w zainstalowanych edytorach i środowisku IDE. + +:::tip +Lista edytorów i narzędzi obsługujących ACP w [raportu sprzętu ACP](https://zed.dev/blog/acp-progress-report#available-now). +::: + +ACP do otwierania dokumentów, które standaryzują treść między edytorami kodu a agentem kodującym AI. + +--- + +## Skonfiguruj + +Aby wybrać OpenCode przez ACP, skonfiguruj edytor tak, aby wybrać opcję `opencode acp`. + +Uruchomienie OpenCode jako podproces oprogramowania z ACP, który komunikuje się z edytorem poprzez JSON-RPC poprzez stdio. + +Poniżej znajdują się przykłady procesorów obsługujących ACP. + +--- + +### Zeda + +Dodaj do konstrukcji [Zed](https://zed.dev) (`~/.config/zed/settings.json`): + +```json title="~/.config/zed/settings.json" +{ + "agent_servers": { + "OpenCode": { + "command": "opencode", + "args": ["acp"] + } + } +} +``` + +Aby przejść do akcji, `agent: new thread` w **Palecie redakcji**. + +Można także po skrócie skrótowym, edytując `keymap.json`: + +```json title="keymap.json" +[ + { + "bindings": { + "cmd-alt-o": [ + "agent::NewExternalAgentThread", + { + "agent": { + "custom": { + "name": "OpenCode", + "command": { + "command": "opencode", + "args": ["acp"] + } + } + } + } + ] + } + } +] +``` + +--- + +### IDE JetBrains + +Dodaj do swojego [JetBrains IDE](https://www.jetbrains.com/) acp.json zgodnie z [dokumentacją](https://www.jetbrains.com/help/ai-assistant/acp.html): + +```json title="acp.json" +{ + "agent_servers": { + "OpenCode": { + "command": "/absolute/path/bin/opencode", + "args": ["acp"] + } + } +} +``` + +Aby przejść do nowego agenta „OpenCode” w selektorze agenta AI Chat. + +--- + +### Avante.nvim + +Dodaj do konstrukcji [Avante.nvim](https://github.com/yetone/avante.nvim): + +```lua +{ + acp_providers = { + ["opencode"] = { + command = "opencode", + args = { "acp" } + } + } +} +``` + +Jeśli chcesz zachować bezpieczeństwo: + +```lua {6-8} +{ + acp_providers = { + ["opencode"] = { + command = "opencode", + args = { "acp" }, + env = { + OPENCODE_API_KEY = os.getenv("OPENCODE_API_KEY") + } + } + } +} +``` + +--- + +### CodeCompanion.nvim + +Aby OpenCode jako agenta ACP w [CodeCompanion.nvim](https://github.com/olimorris/codecompanion.nvim), dodaj dodatkowe elementy, aby otrzymać konstrukcje Neovim: + +```lua +require("codecompanion").setup({ + interactions = { + chat = { + adapter = { + name = "opencode", + model = "claude-sonnet-4", + }, + }, + }, +}) +``` + +Ta konfiguracja CodeCompanion wymaga OpenCode jako agenta ACP dla czatu. + +Jeśli jesteś zarejestrowany jako `OPENCODE_API_KEY`, zapoznaj się z sekcją [Konfigurowanie adapterów: Zmienne przebieg](https://codecompanion.olimorris.dev/getting-started#setting-an-api-key) w dokumentacji CodeCompanion.nvim, aby uzyskać szczegółowe informacje. + +## Wsparcie + +OpenCode działa tak samo przez ACP, jak w terminalu. Obsługiwane są wszystkie funkcje: + +:::note +początek źródła ukośnikowego, takie jak `/undo` i `/redo`, nie są aktualne pobierane. +::: + +- Wbudowane narzędzie (operacje na plikach, rozwiązanie terminala itp.) +- Niestandardowe narzędzie i polecenie ukośnikowe +- Serwery MCP skonfigurowane w konfiguracji OpenCode +- Zasady dotyczące projektu od `AGENTS.md` +- Niestandardowe formatory i lintery +- Agentów systemowych i uprawnień diff --git a/packages/web/src/content/docs/pl/agents.mdx b/packages/web/src/content/docs/pl/agents.mdx new file mode 100644 index 000000000..f78d941d3 --- /dev/null +++ b/packages/web/src/content/docs/pl/agents.mdx @@ -0,0 +1,747 @@ +--- +title: Agencja +description: Konfiguruj i używaj funkcjonalnych agentów. +--- + +Agencje do urządzeń asystenci AI, które można podłączyć do gniazd zasilania i przepływów pracy. Umożliwiają tworzenie ukierunkowanych narzędzi z niestandardowymi monitami, modelami i udostępnianiem narzędzi. + +:::tip +Skorzystaj z agenta planu, aby uzyskać dostęp do kodu i przeglądać informacje bez dodatkowych zmian w kodzie. +::: + +Możesz przełączać się między agentami podczas sesji lub wywoływać ich za pomocą wzmianki `@`. + +--- + +## Typowe + +W OpenCode zasada dwóch charakterystycznych agentów; Najpierw pierwotni i subagenci. + +--- + +### Agencja Pierwsi + +Główne zasady asystenci, z podstawowym kontaktem. Możesz je mieć za pomocą klawisza **Tab** lub podwójnego skrótu klawiszowego `switch_agent`. Ci agenci obsługujący urządzenie główne. Dostęp do narzędzia jest konfigurowany za pomocą uprawnień — na przykład w programie Build wszystkie narzędzia są dostępne, a plan jest ograniczony. + +:::tip +Twój klawisz klawisza **Tab**, aby wyłączyć się między agentami podczas sesji. +::: + +OpenCode zawiera dwa puste agenty główne: **Build** i **Plan**. Dobrze +spójrz na te poniżej. + +--- + +### Podagencje + +Podagenci do pomocniczych asystenci, których można przywoływać agenci główni w celu wykonania podstawowych zadań. Możesz także wytwarzać je, **@ wspominając** o nich w swoich wiadomościach. + +OpenCode ma dwóch subagentów: **Ogólne** i **Eksploruj**. Przyjrzymy się temu poniżej. + +--- + +## Wbudowany + +OpenCode ma dwa główne agenty i dwa główne agenty podrzędne. + +--- + +### korzystać z pracy + +_Tryb_: `primary` + +Kompilacja jest **domyślnym** agentem zastosowania z ukrytymi narzędziami. Jest to standardowy agent do prac programistycznych, którego dostęp jest udostępniony do operacji na plikach i podstawowych systemowych. + +--- + +### założenie z planu + +_Tryb_: `primary` + +Zastrzeżony agent do analizy. Używamy systemu, aby włączyć Ci większe ryzyko i zapobiec niezamierzonym zmianom. +Domyślnie są wybrane na `ask`: + +- `file edits`: Wszystkie zapisy, transkrypcja i edycje +- `bash`: Wszystkie polecam bash + +Ten agent jest podłączony, gdy chcesz, aby LLM był kompatybilny z kodem, który wymaga zastosowania lub wersji plastikowej bez konieczności stosowania innej wersji bazy kodu. + +--- + +### miejsce + +_Tryb_: `subagent` + +Rozwiązanie rozwiązania złożone z zadań wieloetapowych. Pełny dostęp do narzędzia (z funkcjonalnymi funkcjami do wykonania), dzięki czemu może w razie potrzeby zostać dostarczone w plikach. Przewoźnik dziesięć, aby określić wiele jednostek roboczych. + +--- + +### eksploracji + +_Tryb_: `subagent` + +Szybki agent tylko do odczytu do eksploracji baz kodu. Nie można modyfikować plików. Użycie tej opcji, jeśli chcesz szybko uzyskać dostęp do plików według wzorców, wyszukać w kodzie słowa kluczowe lub rozwiązania dotyczące zapytań dotyczących bazy kodu. + +--- + +### zagęszczanie danych + +_Tryb_: `primary` + +Ukryty agent systemowy, który jest kontekstem kontekstowym w dużym podsumowaniu. W razie działania nie można przejść do interfejsu użytkownika. + +--- + +### jako tytuł + +_Tryb_: `primary` + +Ukryty agent systemowy, krótki tytuł sesji. Działa automatycznie i nie można przejść do interfejsu użytkownika. + +--- + +### Podsumowanie podsumowania + +_Tryb_: `primary` + +Ukryty agent systemowy, który stanowi podsumowanie podsumowania sesji. Działa automatycznie i nie można przejść do interfejsu użytkownika. + +--- + +## Stosowanie + +1. W przypadku agentów głównych klawisza **Tab**, aby przełączać się między nimi podczas sesji. Można również podać z skrótu klawiszowego `switch_agent`. + +2. Subagent można wytwarzać: + - **Automatycznie** przez głównych agentów do specjalistycznych zadań na podstawie ich opisów. + - Ręcznie, **@ wspomnienie** o subagencji w Twoich wiadomościach. Na przykład. + + ```txt frame="none" + @general help me search for this function + ``` + +3. **Nawigacja pomiędzy sesjami**: Kiedy można mieć własne sesje podrzędne, można nawigować pomiędzy sesjami nadrzędnymi a określonymi podrzędnymi, dostępnymi z: + - **\<Lider>+Prawo** (lub skonfigurowane przez Ciebie klawisze `session_child_cycle`), aby przełączać się między jednostkami nadrzędnymi → podrzędnymi 1 → podrzędnymi 2 → ... → nadrzędnymi + - **\<Leader>+Left** (lub skrót klawiszowy `session_child_cycle_reverse`), aby przejść dalej między macierzym ← podnośnik1 ← podnośnik2 ← ... ← prowadzącym + + Dostępna możliwość płynnego przełączania pomiędzy rozmową główną a pracą specjalistyczną subagentę. + +--- + +## Skonfiguruj + +Możliwość zastosowania agentów lub urządzeń poprzez zastosowanie. Agentów można zidentyfikować na dwóch systemach: + +--- + +### JSON + +Skonfiguruj agenta w pliku konfiguracyjnym `opencode.json`: + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "agent": { + "build": { + "mode": "primary", + "model": "anthropic/claude-sonnet-4-20250514", + "prompt": "{file:./prompts/build.txt}", + "tools": { + "write": true, + "edit": true, + "bash": true + } + }, + "plan": { + "mode": "primary", + "model": "anthropic/claude-haiku-4-20250514", + "tools": { + "write": false, + "edit": false, + "bash": false + } + }, + "code-reviewer": { + "description": "Reviews code for best practices and potential issues", + "mode": "subagent", + "model": "anthropic/claude-sonnet-4-20250514", + "prompt": "You are a code reviewer. Focus on security, performance, and maintainability.", + "tools": { + "write": false, + "edit": false + } + } + } +} +``` + +--- + +### Obniżka cen + +Można także definiować agentów za pomocą plików przecen. Trzymaj je w: + +- Globalnie: `~/.config/opencode/agents/` +- Na projekt: `.opencode/agents/` + +```markdown title="~/.config/opencode/agents/review.md" +--- +description: Reviews code for quality and best practices +mode: subagent +model: anthropic/claude-sonnet-4-20250514 +temperature: 0.1 +tools: + write: false + edit: false + bash: false +--- + +You are in code review mode. Focus on: + +- Code quality and best practices +- Potential bugs and edge cases +- Performance implications +- Security considerations + +Provide constructive feedback without making direct changes. +``` + +Nazwa pliku przecen staje się nazwą agenta. Na przykład `review.md` tworzy agenta `review`. + +--- + +## Opcje + +Przyjrzyjmy się szczegółowo tym opcjom konfiguracji. + +--- + +### Opis + +miejsce `description`, aby krótko tego, co robi agent i kiedy go stosować. + +```json title="opencode.json" +{ + "agent": { + "review": { + "description": "Reviews code for best practices and potential issues" + } + } +} +``` + +Jest to **wymagana** opcja konfiguracji. + +--- + +### Temperatura + +Kontroluj losowość i kreatywność odpowiedzi LLM za pomocą konfiguracji `temperature`. + +Niższe wartości, że odpowiedzi są bardziej skupione i deterministyczne, gdy wartość jest innowacyjna i złożona. + +```json title="opencode.json" +{ + "agent": { + "plan": { + "temperature": 0.1 + }, + "creative": { + "temperature": 0.8 + } + } +} +``` + +Wartość temperatury zwykle waha się od 0,0 do 1,0: + +- **0,0-0,2**: Bardzo skoncentrowane i deterministyczne odpowiedzi, idealne do analizy i kodu źródłowego +- **0,3-0,5**: Zrównoważona odpowiedź z chwilą powstania, dobre do ogólnych zadań rozwojowych +- **0,6–1,0**: Bardziej kreatywne i odpowiedzi, rozstrzygnięte podczas burzy mózgów i eksploracji + +```json title="opencode.json" +{ + "agent": { + "analyze": { + "temperature": 0.1, + "prompt": "{file:./prompts/analysis.txt}" + }, + "build": { + "temperature": 0.3 + }, + "brainstorm": { + "temperature": 0.7, + "prompt": "{file:./prompts/creative.txt}" + } + } +} +``` + +Jeśli nie ma wpływu na kontrolę, OpenCode używa narzędzia do analizy danych dla modelu; 0 dla określonych modeli, 0,55 dla modeli Qwen. + +--- + +### Maksymalna liczba kroków + +Kontroluj funkcjonowanie iteracji agenta, jaki agent może być, zanim będzie dostępny wyłącznie z tekstem. Dzięki temu użytkownicy kontrolujący koszty mogą mieć wpływ na działanie agentów. + +Jeśli ta opcja nie zostanie skonfigurowana, agent będzie obowiązywał iterację, jeśli model nie zostanie wydany lub użytkownik nie będzie regularnie używany. + +```json title="opencode.json" +{ + "agent": { + "quick-thinker": { + "description": "Fast reasoning with limited iterations", + "prompt": "You are a quick thinker. Solve problems with minimal steps.", + "steps": 5 + } + } +} +``` + +Po tym, jak agent limitu otrzymuje specjalny monit systemowy nakazujący podsumowanie swojej pracy i rekomendowanych do wykonywania zadań. + +:::caution +Starsze pole `maxSteps` jest przestarzałe. Zamiast tego nadzoru `steps`. +::: + +--- + +### Wymienne + +Ustaw na `true`, aby wyłączyć agenta. + +```json title="opencode.json" +{ + "agent": { + "review": { + "disable": true + } + } +} +``` + +--- + +### Podpowiedź + +niestandardowy plik podpowiedzi systemowych dla tego agenta z konfiguracją `prompt`. Plik informacyjny powinien zawierać dla celu agenta. + +```json title="opencode.json" +{ + "agent": { + "review": { + "prompt": "{file:./prompts/code-review.txt}" + } + } +} +``` + +Ścieżka ta zależy od miejsca, w którym znajduje się plik konfiguracyjny. Działa również w przypadku globalnej konstrukcji OpenCode, jak i funkcjonalnej dla projektu. + +--- + +### Model + +konstrukcja nośna `model`, aby mieć model dla tego agenta. Przydatne przy różnych modelach konfiguracji w różnych zadaniach. Na przykład zastosowania modelu, skuteczne wykonanie modelu. + +:::tip +Jeśli nie ma wpływu na model, główne są [modelu skonfigurowanego globalnie](/docs/config#models), agenci podrzędni podmiotem modelu agenta, który wywołał subagentę. +::: + +```json title="opencode.json" +{ + "agent": { + "plan": { + "model": "anthropic/claude-haiku-4-20250514" + } + } +} +``` + +Identyfikator modelu w konfiguracji OpenCode w `provider/model-id`. Na koniec, [OpenCode Zen](/docs/zen), przestrzeganie `opencode/gpt-5.1-codex` dla kodeksu GPT 5.1. + +--- + +### Narzędzia + +Kontroluj, które narzędzia są dostępne w tej agencji, za pomocą konfiguracji `tools`. Można włączyć lub dostępne narzędzie, ustawiając je na `true` lub `false`. + +```json title="opencode.json" {3-6,9-12} +{ + "$schema": "https://opencode.ai/config.json", + "tools": { + "write": true, + "bash": true + }, + "agent": { + "plan": { + "tools": { + "write": false, + "bash": false + } + } + } +} +``` + +:::note +Konfiguracja specjalna dla agenta globalnego. +::: + +Można także zastosować symboli wieloznacznych do kontrolowanych wielu narzędzi jednocześnie. Na przykład, aby wyłączyć wszystkie narzędzia z serwera MCP: + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "agent": { + "readonly": { + "tools": { + "mymcp_*": false, + "write": false, + "edit": false + } + } + } +} +``` + +[Dowiedz się więcej o narzędziach](/docs/tools). + +--- + +### Uprawnienia + +Może wystąpić możliwość działania, które może pozostać ostateczne przez agenta. Obecnie proste dla narzędzia `edit`, `bash` i `webfetch` można znaleźć w drodze: + +- `"ask"` — Monituj o zatwierdzenie przed użyciem narzędzia +- `"allow"` — Zezwalaj na wszystkie operacje bez zatwierdzenia +- `"deny"` — Wyłączenie narzędzia + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "permission": { + "edit": "deny" + } +} +``` + +Można mieć odpowiedni dla każdego agenta. + +```json title="opencode.json" {3-5,8-10} +{ + "$schema": "https://opencode.ai/config.json", + "permission": { + "edit": "deny" + }, + "agent": { + "build": { + "permission": { + "edit": "ask" + } + } + } +} +``` + +Można także istnieć w agentach Markdown. + +```markdown title="~/.config/opencode/agents/review.md" +--- +description: Code review without edits +mode: subagent +permission: + edit: deny + bash: + "*": ask + "git diff": allow + "git log*": allow + "grep *": allow + webfetch: deny +--- + +Only analyze code and suggest changes. +``` + +Można podłączyć do gniazda bash. + +```json title="opencode.json" {7} +{ + "$schema": "https://opencode.ai/config.json", + "agent": { + "build": { + "permission": { + "bash": { + "git push": "ask", + "grep *": "allow" + } + } + } + } +} +``` + +Może być przestrzegany globalnym. + +```json title="opencode.json" {7} +{ + "$schema": "https://opencode.ai/config.json", + "agent": { + "build": { + "permission": { + "bash": { + "git *": "ask" + } + } + } + } +} +``` + +Możesz także uzyskać symbolu wieloznacznego `*` do zarządzania uprawnieniami dla wszystkich użytkowników. +Ostatnie dostępne źródło pierwszeństwo, symbol wieloznaczny `*` na pierwszym miejscu, wyodrębnione na końcu. + +```json title="opencode.json" {8} +{ + "$schema": "https://opencode.ai/config.json", + "agent": { + "build": { + "permission": { + "bash": { + "*": "ask", + "git status *": "allow" + } + } + } + } +} +``` + +[Dowiedz się więcej o prawach](/docs/permissions). + +--- + +### Tryb + +Kontroluj tryb agenta za pomocą konfiguracji `mode`. Opcja `mode` umożliwiająca użycie środka. + +```json title="opencode.json" +{ + "agent": { + "review": { + "mode": "subagent" + } + } +} +``` + +Opcję `mode` można ustawić na `primary`, `subagent` lub `all`. Jeśli nie dotyczy `mode`, jest to `all`. + +--- + +### Ukryty + +Ukryj subagenta w menu autouzupełniania `@` za pomocą `hidden: true`. Przydatne w postępowaniu sądowym podagenci, potencjalnie być wywoływani programowo przez innych agentów, którzy korzystają z pomocy jako narzędzia. + +```json title="opencode.json" +{ + "agent": { + "internal-helper": { + "mode": "subagent", + "hidden": true + } + } +} +``` + +Wpływ tylko na użytkownika w menu autouzupełniania. Model może nadal wywoływać ukrytych agentów za pomocą narzędzi do zadań, funkcji użytkowych. + +:::note +Dotyczy tylko agentów `mode: subagent`. +::: + +--- + +### Uprawnienia do zadań + +Kontroluj, których agenci podawców mogą wywołać za pomocą narzędzia zadanie za pomocą `permission.task`. Używa wzorców globalnych do elastycznego dopasowywania. + +```json title="opencode.json" +{ + "agent": { + "orchestrator": { + "mode": "primary", + "permission": { + "task": { + "*": "deny", + "orchestrator-*": "allow", + "code-reviewer": "ask" + } + } + } + } +} +``` + +Po ustawieniu wartości `deny` podagent zostanie usunięty z opisu narzędzia Zadania, więc model nie będzie gotowy do uruchomienia. + +:::tip +Reguły są następujące w kolejności i **ostatnia reguła wygrywająca**. W zasadzie `orchestrator-planner` jest konfiguracją `*` (odmową), jak i `orchestrator-*` (zezwolenie), ale ponieważ `orchestrator-*` użytkownika po `*`, postać jest `allow`. +::: + +:::tip +Zawsze można rozwiązać rozwiązanie, bezpośrednio poprzez menu autouzupełnieniania `@`, nawet jeśli wystąpią zadania agenta temu naprawiające. +::: + +--- + +### Kolor + +Dostosuj wygląd agenta w interfejsie użytkownika za pomocą opcji `color`. Wpływ na wygląd agenta w interfejsie. + +Narodziny kościoła szesnastkowego (np. `#FF5733`) lub koloru motywu: `primary`, `secondary`, `accent`, `success`, `warning`, `error`, `info`. + +```json title="opencode.json" +{ + "agent": { + "creative": { + "color": "#ff6b6b" + }, + "code-reviewer": { + "color": "accent" + } + } +} +``` + +--- + +### Góra P + +Kontroluj różnorodność odpowiedzi za pomocą opcji `top_p`. Alternatywa dla temperatury w celu kontrolowanej braku wartości. + +```json title="opencode.json" +{ + "agent": { + "brainstorm": { + "top_p": 0.9 + } + } +} +``` + +Wartość mieszkalna obejmuje zakres od 0,0 do 1,0. Niższe wartości są bardziej skoncentrowane, wyższe wartości są bardziej zaawansowane. + +--- + +### nadal + +Wszelkie inne konfiguracje w agentach **przekazane bezpośrednio** jako model sprzedawcy. Dostęp do funkcji i parametrów dostarczanych dla dostawcy. + +Na przykład dzięki modelowi rozumowania OpenAI może kontrolować rozumowanie: + +```json title="opencode.json" {6,7} +{ + "agent": { + "deep-thinker": { + "description": "Agent that uses high reasoning effort for complex problems", + "model": "openai/gpt-5", + "reasoningEffort": "high", + "textVerbosity": "low" + } + } +} +``` + +Te dodatkowe cechy można zidentyfikować od modelu i dostawcy. Sprawdź swoje dostawcę pod kątem parametrów. + +:::tip +Uruchomione `opencode models`, aby wyłączyć modele. +::: + +--- + +## Utwórz agentów + +Możesz stworzyć nowych agentów za pomocą innego polecenia: + +```bash +opencode agent create +``` + +Wykonaj decyzję: + +1. Zapytaj, gdzie zapisać agenta; globalne lub szczegółowe dla projektu. +2. Opisz tego, co agent powinien. +3. Wygeneruj właściwy monit systemowy i identyfikator. +4. Wejście do wybrania narzędzia, do którego agenta może być dostęp. +5. Na koniec pliku pliku przecen z konfiguracją agenta. + +--- + +## Przypadki użycia + +Oto kilka typowych zastosowań różnych agentów. + +- **Agent użyciai**: Pełne prace programistyczne z dostępnymi narzędziami +- **Plan agenta**: Analiza i planowanie bez zmian +- **Agent recenzujący**: Przegląd kodu z odczytu i narzędzia do dokumentacji +- **Agent debugujący**: Koncentruje się na urządzeniu z dostępnymi narzędziami bash i odczytu +- **Agent Dokumentów**: Zapisywanie dokumentacji za pomocą operacji na plikach, ale bez konieczności posiadania kopii systemowych + +--- + +## Przykład + +Oto kilka przykładowych agentów, którzy mogą się przydatni. + +:::tip +Czy masz agenta, który jest osobą towarzyszącą? [Prześlij PR](https://github.com/anomalyco/opencode). +::: + +--- + +### Dokumentacja agenta + +```markdown title="~/.config/opencode/agents/docs-writer.md" +--- +description: Writes and maintains project documentation +mode: subagent +tools: + bash: false +--- + +You are a technical writer. Create clear, comprehensive documentation. + +Focus on: + +- Clear explanations +- Proper structure +- Code examples +- User-friendly language +``` + +--- + +### Audytor bezpieczeństwa + +```markdown title="~/.config/opencode/agents/security-auditor.md" +--- +description: Performs security audits and identifies vulnerabilities +mode: subagent +tools: + write: false + edit: false +--- + +You are a security expert. Focus on identifying potential security issues. + +Look for: + +- Input validation vulnerabilities +- Authentication and authorization flaws +- Data exposure risks +- Dependency vulnerabilities +- Configuration security issues +``` diff --git a/packages/web/src/content/docs/pl/cli.mdx b/packages/web/src/content/docs/pl/cli.mdx new file mode 100644 index 000000000..34f0e9029 --- /dev/null +++ b/packages/web/src/content/docs/pl/cli.mdx @@ -0,0 +1,601 @@ +--- +title: interfejs wiersza polecany +description: Opcje i interfejs interfejsu CLI OpenCode. +--- + +import { Tabs, TabItem } from "@astrojs/starlight/components" + +Interfejs CLI OpenCode uruchamia się [TUI](/docs/tui), gdy jest uruchamiany bez żadnych argumentów. + +```bash +opencode +``` + +Ale także instalacja przez tę stronę. pełni przed programową interakcją z OpenCode. + +```bash +opencode run "Explain how closures work in JavaScript" +``` + +--- + +### tui + +Uruchomienie interfejsu użytkownika terminala OpenCode. + +```bash +opencode [project] +``` + +#### Flagi + +| Flaga | Krótkie | Opis | +| ------------ | ----- | ------------------------------------------ | +| `--continue` | `-c` | Kontynuuj ostatnią datę | +| `--session` | `-s` | Identyfikator sesji, aby kontynuować | +| `--prompt` | | Monituj o zastosowanie | +| `--model` | `-m` | Model wykorzystania w postaci dostawcy/modelu | +| `--agent` | | Agent do użycia | +| `--port` | | Port do słuchania | +| `--hostname` | | Nazwa hosta, która jest częścią składową | + +--- + +## Polecenia + +Interfejs CLI OpenCode zawiera także szczegółowe polecenie. + +--- + +### agent + +Zarządzaj agentami OpenCode. + +```bash +opencode agent [command] +``` + +--- + +### przytwierdzić + +Dołącz terminal do już działającego serwera zaplecza OpenCode uruchomionego za pomocą oprogramowania `serve` lub `web`. + +```bash +opencode attach [url] +``` + +Możliwość zabezpieczenia z TUI ze zdalnym backendem OpenCode. Na przykład: + +```bash +# Start the backend server for web/mobile access +opencode web --port 4096 --hostname 0.0.0.0 + +# In another terminal, attach the TUI to the running backend +opencode attach http://10.20.30.40:4096 +``` + +#### Flagi + +| Flaga | Krótkie | Opis | +| ----------- | ----- | --------------------------------- | +| `--dir` | | Katalog roboczy do uruchomienia TUI w | +| `--session` | `-s` | Identyfikator sesji, aby kontynuować | + +--- + +#### co + +Utwórz nowego agenta z niestandardową konfiguracją. + +```bash +opencode agent create +``` + +To działanie poprowadził Cię przez proces tworzenia nowego agenta z niestandardowym monitem systemowym i konfiguracją narzędzia. + +--- + +#### lista + +Lista wszystkich agentów. + +```bash +opencode agent list +``` + +--- + +### autoryzacja + +Polecenie do zarządzania danymi uwierzytelniającymi i logowaniem dla dostawców. + +```bash +opencode auth [command] +``` + +--- + +#### login + +OpenCode jest dostępny przez listę dostawców w [Models.dev](https://models.dev), więc można użyć `opencode auth login` do skonfigurowania klucza API dla dowolnego dostawcy, który może być kontrolowany. Jest to możliwe w `~/.local/share/opencode/auth.json`. + +```bash +opencode auth login +``` + +Po uruchomieniu OpenCode ładuje dostawców z pliku poświadczeń. A jeśli twoje siedliskiem są jakieś klucze lub plik `.env` w twoim projekcie. + +--- + +#### lista + +Wyświetlanie list wszystkich uwierzytelnionych dostawców przechowywanych w pliku poświadczeń. + +```bash +opencode auth list +``` + +Lub krótka wersja. + +```bash +opencode auth ls +``` + +--- + +#### wyloguj się + +Wylogowuje Cię z dostawcy poprzez usunięcie go z pliku poświadczeń. + +```bash +opencode auth logout +``` + +--- + +### githubie + +Zarządzaj agentem GitHub w celu automatyzacji repozytorium. + +```bash +opencode github [command] +``` + +--- + +#### Dowiedz się + +Zainstaluj agenta GitHub w swoim repozytorium. + +```bash +opencode github install +``` + +Spowoduje to konieczność uruchomienia akcji GitHub i przeprowadzi cię przez proces tworzenia. [Dowiedz się więcej](/docs/github). + +--- + +#### chcesz + +Uruchom agenta na GitHubie. Jest to zwykły użytkownik w akcjach GitHub. + +```bash +opencode github run +``` + +##### Flagi + +| Flaga | Opis | +| --------- | -------------------------------------- | +| `--event` | Zdarzenie próbne GitHub, aby sprawdzić agenta dla | +| `--token` | Osobisty token dostępu GitHub | + +--- + +### mcp + +Zarządzaj serwerem kluczowego modelu kontekstowego. + +```bash +opencode mcp [command] +``` + +--- + +#### zaproponować + +Dodaj serwer MCP do swojej konfiguracji. + +```bash +opencode mcp add +``` + +To polecenie poprowadzić Cię przez proces dodawania lokalnego lub zdalnego serwera MCP. + +--- + +#### lista + +Wyświetlanie list wszystkich skonfigurowanych serwerów MCP i ich awarii. + +```bash +opencode mcp list +``` + +Lub skrót krótkiej wersji. + +```bash +opencode mcp ls +``` + +--- + +#### autoryzacja + +Uwierzytelnij się za pomocą serwera MCP z włączoną funkcją OAuth. + +```bash +opencode mcp auth [name] +``` + +Jeśli nie poddasz nazwy serwera, zostaniesz poproszony o wybranie jednego z serwerów obsługujących OAuth. + +Możesz także uruchomić serwery obsługujące OAuth i ich status uwierzytelnienia. + +```bash +opencode mcp auth list +``` + +Lub skrót krótkiej wersji. + +```bash +opencode mcp auth ls +``` + +--- + +#### wyloguj się + +Usuń doświadczenie OAuth dla serwera MCP. + +```bash +opencode mcp logout [name] +``` + +--- + +#### odpluskwić + +Debuguj problemy z połączeniem OAuth dla serwera MCP. + +```bash +opencode mcp debug <name> +``` + +--- + +### modele + +Wyświetlanie list modeli wszystkich skonfigurowanych dostawców. + +```bash +opencode models [provider] +``` + +Do sterowania dostępnymi modelami u dostawców w `provider/model`. + +Jest to wydanie do nazwy modelu, który jest używany w [twoja] (./config/). + +Opcjonalnie możesz udostępnić identyfikator dostawcy, aby filtrować modele według tego dostawcy. + +```bash +opencode models anthropic +``` + +#### Flagi + +| Flaga | Opis | +| ----------- | ------------------------------------------------------------ | +| `--refresh` | Odśwież pamięć podręczną modele z models.dev | +| `--verbose` | Bardziej szczegółowe dane wyjściowe modelu (zawiera metadane, takie jak koszty) | + +flagi `--refresh`, aby znaleźć listę modeli w pamięci podręcznej. Jest to wymagane, gdy dostawca dodano nowe modele, które chcesz zobaczyć w OpenCode. + +```bash +opencode models --refresh +``` + +--- + +### chcesz + +Uruchomiony opencode w trybie nieinteraktywnym, przekazując bezpośrednio monit. + +```bash +opencode run [message..] +``` + +Jest to wymagane w przypadku tworzenia skryptów, automatyzacji lub gdy zostanie wysłane natychmiastowe przesłanie bez uruchomienia TUI. Na przykład. + +```bash "opencode run" +opencode run Explain the use of context in Go +``` + +Można również zastosować, uruchamiając `opencode serve`, aby wyłączyć zimne uruchamianie serwera MCP przy każdym uruchomieniu: + +```bash +# Start a headless server in one terminal +opencode serve + +# In another terminal, run commands that attach to it +opencode run --attach http://localhost:4096 "Explain async/await in JavaScript" +``` + +#### Flagi + +| Flaga | Krótkie | Opis | +| ------------ | ----- | ------------------------------------------------------------------ | +| `--command` | | Polecenie do uruchomienia, komunikatu dla argumentów | +| `--continue` | `-c` | Kontynuuj ostatnią datę | +| `--session` | `-s` | Identyfikator sesji, aby kontynuować | +| `--share` | | Udostępnij sesję | +| `--model` | `-m` | Model wykorzystania w postaci dostawcy/modelu | +| `--agent` | | Agent do użycia | +| `--file` | `-f` | Pliki do załączenia do wiadomości | +| `--format` | | Format: domyślny (sformatowany) lub json (surowe rozwiązanie JSON) | +| `--title` | | Tytuł sesji (używany skróconego monitu, jeśli nie podano wartości) | +| `--attach` | | Dołącz do skutecznego serwera opencode (np. http://localhost:4096) | +| `--port` | | Port dla serwera lokalnego (domyślnie jest do portu losowego) | + +--- + +### podawać + +Uruchom bezgłowy serwer OpenCode w celu uzyskania dostępu do API. Pełny interfejs HTTP w [dokumentacji serwera](/docs/server). + +```bash +opencode serve +``` + +Spowoduje dostęp do serwera HTTP, który zapewnia dostęp do API opencode bez interfejsu TUI. Ustaw `OPENCODE_SERVER_PASSWORD`, aby włączyć podstawowe uwierzytelnianie HTTP (domyślna nazwa użytkownika do `opencode`). + +#### Flagi + +| Flaga | Opis | +| ------------ | ------------------------------------------ | +| `--port` | Port do słuchania | +| `--hostname` | Nazwa hosta, która jest częścią składową | +| `--mdns` | Włącz wykrywanie mDNS | +| `--cors` | Dodatkowe źródło użytkownika CORS | + +--- + +### Sesja + +Zarządzaj sesją OpenCode. + +```bash +opencode session [command] +``` + +--- + +#### lista + +Lista wszystkich sesji OpenCode. + +```bash +opencode session list +``` + +##### Flagi + +| Flaga | Krótkie | Opis | +| ------------- | ----- | ------------------------------------ | +| `--max-count` | `-n` | Ograniczony do ostatniego sesji | +| `--format` | | Format wyjściowy: tabela lub json (tabela) | + +--- + +### statystyki + +Pokaż statystyki wykorzystania tokenów i sesji szkoleniowych OpenCode. + +```bash +opencode stats +``` + +#### Flagi + +| Flaga | Opis | +| ----------- | --------------------------------------------------------------------------- | +| `--days` | Pokaż statystyki z ostatnich N dni (cały czas) | +| `--tools` | Liczba narzędzi do po specyfikacji (wszystkie) | +| `--models` | Pokaż podział modelu wykorzystania (domyślnie ukryty). Podajnik usługowy, aby górne N | +| `--project` | Filtruj według projektu (wszystkie projekty, pusty ciąg: dostęp projekt) | + +--- + +### eksport + +Eksportuj dane sesji jako JSON. + +```bash +opencode export [sessionID] +``` + +Jeśli nie poddasz identyfikatora sesji, zostaniesz poproszony o wybranie jednego z sesji. + +--- + +### import + +Importuj dane sesji z pliku JSON lub adresu URL udostępniania OpenCode. + +```bash +opencode import <file> +``` + +Możesz importować z lokalnego lub adresu URL OpenCode. + +```bash +opencode import session.json +opencode import https://opncd.ai/s/abc123 +``` + +--- + +### sieć + +Uruchomiony bezgłowy serwer OpenCode z interfejsem internetowym. + +```bash +opencode web +``` + +Spowoduje dostęp do serwera HTTP i otwarcie dostępu do OpenCode przez interfejs sieciowy. Ustaw `OPENCODE_SERVER_PASSWORD`, aby włączyć podstawowe uwierzytelnianie HTTP (domyślna nazwa użytkownika do `opencode`). + +#### Flagi + +| Flaga | Opis | +| ------------ | ------------------------------------------ | +| `--port` | Port do słuchania | +| `--hostname` | Nazwa hosta, która jest częścią składową | +| `--mdns` | Włącz wykrywanie mDNS | +| `--cors` | Dodatkowe źródło użytkownika CORS | + +--- + +### akp + +Uruchomiony serwer ACP (Agent Client Protocol). + +```bash +opencode acp +``` + +Aby udostępnić serwer ACP, który komunikuje się poprzez stdin/stdout przy użyciu nd-JSON. + +#### Flagi + +| Flaga | Opis | +| ------------ | --------------------- | +| `--cwd` | Katalog roboczy | +| `--port` | Port do słuchania | +| `--hostname` | Nazwa hosta, która jest częścią składową | + +--- + +### odinstaluj + +Odinstaluj OpenCode i usuń wszystkie pliki powiązane. + +```bash +opencode uninstall +``` + +#### Flagi + +| Flaga | Krótkie | Opis | +| --------------- | ----- | ------------------------------------------- | +| `--keep-config` | `-c` | Zachowaj pliki konfiguracyjne | +| `--keep-data` | `-d` | Przechowuj dane sesji i szczepionek | +| `--dry-run` | | Pokaż, wykluczy bez usuwania | +| `--force` | `-f` | Pomiń monity o potwierdzenie | + +--- + +### aktualizacja + +Aktualizuje opencode do oryginalnej wersji lub oryginalnej wersji. + +```bash +opencode upgrade [target] +``` + +Aby zachować ostatnią wersję. + +```bash +opencode upgrade +``` + +Aby zobaczyć wersję pierwotną. + +```bash +opencode upgrade v0.1.48 +``` + +#### Flagi + +| Flaga | Krótkie | Opis | +| ---------- | ----- | ----------------------------------------------------------------- | +| `--method` | `-m` | Zastosowana metoda instalacji; curl, npm, pnpm, kok, napar | + +--- + +## Flagi globalne + +Interfejs CLI kod opencode przyjmuje flagi globalne. + +| Flaga | Krótkie | Opis | +| -------------- | ----- | ------------------------------------ | +| `--help` | `-h` | Wyświetl pomoc | +| `--version` | `-v` | Drukuj numer wersji | +| `--print-logs` | | Wydrukuj logi na stderr | +| `--log-level` | | Poziom dziennika (DEBUG, INFO, OSTRZEŻ, BŁĄD) | + +--- + +## Zmienne warunki + +OpenCode można wykryć za pomocą czyszczenia alternatywnych. + +| Zmienna | Wpisz | Opis | +| ------------------------------------- | ------- | ------------------------------------------------- | +| `OPENCODE_AUTO_SHARE` | wartość logiczna | Automatycznie udostępniaj sesje | +| `OPENCODE_GIT_BASH_PATH` | ciąg | Ścieżka do pliku wykonywalnego Git Bash w systemie Windows | +| `OPENCODE_CONFIG` | ciąg | Ścieżka do pliku konfiguracyjnego | +| `OPENCODE_CONFIG_DIR` | ciąg | Ścieżka do katalogu konfiguracyjnego | +| `OPENCODE_CONFIG_CONTENT` | ciąg | Wbudowana treść konstrukcji JSON | +| `OPENCODE_DISABLE_AUTOUPDATE` | wartość logiczna | Wyłącz automatyczne sprawdzanie aktualizacji | +| `OPENCODE_DISABLE_PRUNE` | wartość logiczna | Wyłączenie regulowane | +| `OPENCODE_DISABLE_TERMINAL_TITLE` | wartość logiczna | Wyłącz automatycznie tytuł terminala | +| `OPENCODE_PERMISSION` | ciąg | Wbudowane prawo JSON | +| `OPENCODE_DISABLE_DEFAULT_PLUGINS` | wartość logiczna | Wyłączenie wtyczki | +| `OPENCODE_DISABLE_LSP_DOWNLOAD` | wartość logiczna | Wyłącz automatyczne pobieranie z serwera LSP | +| `OPENCODE_ENABLE_EXPERIMENTAL_MODELS` | wartość logiczna | Włącz modele eksperymentalne | +| `OPENCODE_DISABLE_AUTOCOMPACT` | wartość logiczna | Wyłącz automatyczne zagęszczanie kontekstu | +| `OPENCODE_DISABLE_CLAUDE_CODE` | wartość logiczna | Wyłączenie gry z `.claude` (podpowiedź + podłączenie) | +| `OPENCODE_DISABLE_CLAUDE_CODE_PROMPT` | wartość logiczna | Wyłącz czytanie `~/.claude/CLAUDE.md` | +| `OPENCODE_DISABLE_CLAUDE_CODE_SKILLS` | wartość logiczna | Wyłącz ładowanie `.claude/skills` | +| `OPENCODE_DISABLE_MODELS_FETCH` | wartość logiczna | Wyłączenie modeli pobierania ze źródeł niedostępnych | +| `OPENCODE_FAKE_VCS` | ciąg | Fałszywy sprzedawca VCS do celów testowych | +| `OPENCODE_DISABLE_FILETIME_CHECK` | wartość logiczna | Wyłączone sprawdzanie pliku w celu optymalizacji | +| `OPENCODE_CLIENT` | ciąg | Identyfikator klienta (domyślnie `cli`) | +| `OPENCODE_ENABLE_EXA` | wartość logiczna | Włącz narzędzie wyszukiwania internetowego Exa | +| `OPENCODE_SERVER_PASSWORD` | ciąg | Włącz uwierzytelnianie podstawowe dla `serve`/`web` | +| `OPENCODE_SERVER_USERNAME` | ciąg | Zakończenie stosowania użytkownika z autoryzacją (domyślnie `opencode`) | +| `OPENCODE_MODELS_URL` | ciąg | Niestandardowy adres URL do pobrania konfiguracji modeli | + +--- + +### Eksperymentalny + +Te zmienne możliwości użycia funkcji eksperymentalnych, które mogą zostać lub usunięte. + +| Zmienna | Wpisz | Opis | +| ----------------------------------------------- | ------- | --------------------------------------- | +| `OPENCODE_EXPERIMENTAL` | wartość logiczna | Włącz wszystkie funkcje eksperymentalne | +| `OPENCODE_EXPERIMENTAL_ICON_DISCOVERY` | wartość logiczna | Włącz wykrywanie ikon | +| `OPENCODE_EXPERIMENTAL_DISABLE_COPY_ON_SELECT` | wartość logiczna | Wyłączenie kopiowania przy wyborze w TUI | +| `OPENCODE_EXPERIMENTAL_BASH_DEFAULT_TIMEOUT_MS` | numer | Domyślny limit czasu dla ukrytego bash w ms | +| `OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX` | numer | Maksymalne tokeny wyjściowe dla odpowiedzi LLM | +| `OPENCODE_EXPERIMENTAL_FILEWATCHER` | wartość logiczna | Włącz obserwatora plików dla całego katalogu | +| `OPENCODE_EXPERIMENTAL_OXFMT` | wartość logiczna | Włącz formater oxfmt | +| `OPENCODE_EXPERIMENTAL_LSP_TOOL` | wartość logiczna | Włącz eksperymentalne narzędzie LSP | +| `OPENCODE_EXPERIMENTAL_DISABLE_FILEWATCHER` | wartość logiczna | Wyłącz obserwatora plików | +| `OPENCODE_EXPERIMENTAL_EXA` | wartość logiczna | Włącz funkcje eksperymentalne Exa | +| `OPENCODE_EXPERIMENTAL_LSP_TY` | wartość logiczna | Włącz eksperymentalne sprawdzanie typu LSP | +| `OPENCODE_EXPERIMENTAL_MARKDOWN` | wartość logiczna | Włącz funkcje eksperymentalne przecen | +| `OPENCODE_EXPERIMENTAL_PLAN_MODE` | wartość logiczna | Włącz tryb planu | diff --git a/packages/web/src/content/docs/pl/commands.mdx b/packages/web/src/content/docs/pl/commands.mdx new file mode 100644 index 000000000..f5b83b7d3 --- /dev/null +++ b/packages/web/src/content/docs/pl/commands.mdx @@ -0,0 +1,323 @@ +--- +title: Polecenia +description: Tworz polecany dla powtarzalnych zadań. +--- + +Polecenia ustawienia monitu, które może zostać uruchomione po uruchomieniu tego polecenia w TUI. + +```bash frame="none" +/my-command +``` + +Polecenia stanowią dodatek do dostarczonych, takich jak `/init`, `/undo`, `/redo`, `/share`, `/help`. [Dowiedz się więcej](/docs/tui#commands). + +--- + +## Utwórz źródło plikówwe + +Utwórz pliki przecen w katalogu `commands/`, aby móc korzystać z usług polecanych. + +Utwórz `.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 posiada właściwości. Treść staje się szablonem. + +polecany, w rejestrze `/`, a następnie polecany. + +```bash frame="none" +"/test" +``` + +--- + +## Skonfiguruj + +Dostęp do sieci przez połączenie OpenCode lub udostępnia pliki w katalogu `commands/`. + +--- + +### JSON + +opcja opcja `command` w swoim 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" + } + } +} +``` + +Teraz możesz wybrać opcję w TUI: + +```bash frame="none" +/test +``` + +--- + +### Obniżka cen + +Można także definiować polecenia za pomocą plików Markdown. Trzymaj je w: + +- Globalnie: `~/.config/opencode/commands/` +- Na projekt: `.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. +``` + +Nazwa pliku przecen staje się nazwą referencyjną. Na przykład `test.md` pozwala +biegniesz: + +```bash frame="none" +/test +``` + +--- + +## Szybko kliknij + +Monity dotyczące niestandardowych urządzeń obsługujących kilka specjalnych symboli zastępczych i składni. + +--- + +### Argumentacja + +Przekazuj argumentację do ręki, używając symbolu zastępczego `$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. +``` + +Uruchomienie reakcji z argumentami: + +```bash frame="none" +/component Button +``` + +A `$ARGUMENTS` pozostanie pozostawione przez `Button`. + +Dostępność do poszczególnych argumentów można również uzyskać za pomocą parametrów funkcjonalnych: + +- `$1` - Pierwszy argument +- `$2` - Drugi argument +- `$3` - Trzeci argument +- Biorę dalej... + +Na przykład: + +```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 +``` + +Uruchomienie decyzji: + +```bash frame="none" +/create-file config.json src "{ \"key\": \"value\" }" +``` + +Aby przechowywać: + +- `$1` z `config.json` +- `$2` z `src` +- `$3` z `{ "key": "value" }` + +--- + +### Wyjście z pamięci + +urządzenie __!`command`_, aby wstawić dane wyjściowe [polecenie bash](/docs/tui#bash-commands) wykonaj obciążenie. + +Na przykład, aby sprawdzić narzędzie analityczne: + +```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. +``` + +Lub aby ostatnia zmiana: + +```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. +``` + +Polecenia są uruchamiane w systemie wyjściowym, a ich dane wyjściowe są uruchamiane. + +--- + +### Referencje plików + +Dołącz pliki do swojego polecenia, używając `@`, zawierającego plik. + +```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. +``` + +Zawartość pliku jest automatycznie umieszczana w pliku. + +--- + +## Opcje + +Przyjrzyjmy się szczegółowo opcjom konfiguracji. + +--- + +### Szablon + +Opcja `template` została rozstrzygnięta, która została wysłana do LLM po wykonaniu polecenia. + +```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." + } + } +} +``` + +Jest to **wymagana** opcja konfiguracji. + +--- + +### Opis + +Możliwość użycia `description`, aby skrócony opis działania polecenia. + +```json title="opencode.json" +{ + "command": { + "test": { + "description": "Run tests with coverage" + } + } +} +``` + +Jest podany jako opis w TUI po wpisaniu polecenia. + +--- + +### Agent + +Zastosowanie zastosowania `agent`, aby określić, który [agent] (./agents) powinien zostać naprawiony do wyboru. +Jeśli jest to [podagent](/docs/agents/#subagents), rozwiązanie to ujawnione, podagenta. +Aby móc, ustawa `subtask` na `false`. + +```json title="opencode.json" +{ + "command": { + "review": { + "agent": "plan" + } + } +} +``` + +Jest to **opcjonalna** opcja konfiguracji. Jeśli nie jest dostępny, dostępny jest agentem. + +--- + +### Podzadanie + +Użyj wartości logicznej `subtask`, aby wymusić wywołanie [podagenta](/docs/agents/#subagents) polecenia. +Jest to narzędzie, jeśli chcesz, aby decyzja nie zanieczyszczała kontekstu i **zmusiło** agenta do działania jako subagent, +nawet jeśli `mode` jest podłączony na `primary` w konfiguracji [agent](/docs/agents). + +```json title="opencode.json" +{ + "command": { + "analyze": { + "subtask": true + } + } +} +``` + +Jest to **opcjonalna** opcja konfiguracji. + +--- + +### Model + +Używając konstrukcji `model`, aby znaleźć ukryty model dla tego polecenia. + +```json title="opencode.json" +{ + "command": { + "analyze": { + "model": "anthropic/claude-3-5-sonnet-20241022" + } + } +} +``` + +Jest to **opcjonalna** opcja konfiguracji. + +--- + +## Wbudowany + +opencode zawiera kilka istniejących urządzeń, takich jak `/init`, `/undo`, `/redo`, `/share`, `/help`; [dowiedz się więcej](/docs/tui#commands). + +:::note +Polecenia mogą zostać usunięte. +::: + +Jeśli zdefiniujesz tę samą nazwę, nastąpi decyzja. diff --git a/packages/web/src/content/docs/pl/config.mdx b/packages/web/src/content/docs/pl/config.mdx new file mode 100644 index 000000000..2ac980881 --- /dev/null +++ b/packages/web/src/content/docs/pl/config.mdx @@ -0,0 +1,685 @@ +--- +title: Konfig +description: Korzystanie z konstrukcji OpenCode JSON. +--- + +Możesz zagrać z OpenCode za pomocą pliku konfiguracyjnego JSON. + +--- + +## Format + +OpenCode obsługa formaty **JSON** i **JSONC** (JSON z komentarzami). + +```jsonc title="opencode.jsonc" +{ + "$schema": "https://opencode.ai/config.json", + // Theme configuration + "theme": "opencode", + "model": "anthropic/claude-sonnet-4-5", + "autoupdate": true, +} +``` + +--- + +## Lokalizacje + +Możesz umieścić swoją instalację w kilku różnych lokalizacjach i jednym pliku +inne porządki pierwszeństwa. + +:::note +Pliki konfiguracyjne są **łączone**, a nie zastępowane. +::: + +Pliki konfiguracyjne są łączone ze sobą, a nie zastępowane. Ustawienia z lokalizacji konfiguracyjnych są konfigurowalne. Ewentualne konfiguracje zaistnieją tylko w przypadku sprzecznych kluczy. Niekonfliktowe ustawienia ze wszystkich zasobów zachowanych. + +Na zestawie, przygotowana globalna ustawi `theme: "opencode"` i `autoupdate: true`, zestaw zestawu `model: "anthropic/claude-sonnet-4-5"`, ostateczna zestaw będzie zawierał wszystkie trzy ustawienia. + +--- + +### Kolejność pierwszeństwa + +Źródła konfiguracji są ładowane w kolejności (później źródła występują wcześniej): + +1. **Zdalna konfiguracja** (od `.well-known/opencode`) – ustawienia stosowane w organizacji +2. **Konfiguracja globalna** (`~/.config/opencode/opencode.json`) – przestrzeganie użytkownika +3. **Konfiguracja niestandardowa** (`OPENCODE_CONFIG` env var) — zastosowanie zastąpienie +4. **Konfiguracja projektu** (`opencode.json` w projekcie) - ustawienia dla projektu specjalnego +5. **`.opencode` katalogi** - agent, poleca, półki +6. **Konfiguracja wbudowana** (`OPENCODE_CONFIG_CONTENT` env var) — zastąpienie środowiska wykonawczego + +to, że konfiguracje projektu mogą być dostępne na poziomie globalnym konfiguracji, a konfiguracje globalne mogą być zdalne, zdalne konfiguracja organizacji. + +:::note +W katalogach `.opencode` i `~/.config/opencode` użytkownicy są **nazwy w zwykłej mnogiej** dla podkatalogów: `agents/`, `commands/`, `modes/`, `plugins/`, `skills/`, `tools/` i `themes/`. Nazwy wydane (np. `agent/`) są również objęte gwarancją kompatybilności wstecznej. +::: + +--- + +### Zdalny + +Organizacje mogą być podłączone do łączy końcowych `.well-known/opencode`. Jest pobierane automatycznie po uwierzytelnieniu u dostawcy, który obsługuje. + +Zdalna jest ładowana jako pierwsza i podstawowa. Wszystkie inne źródła konfiguracji (globalne, projektowe) mogą zostać udostępnione menu. + +Na przykład, jeśli Twoja organizacja udostępnia serwery MCP, które są siecią internetową: + +```json title="Remote config from .well-known/opencode" +{ + "mcp": { + "jira": { + "type": "remote", + "url": "https://jira.example.com/mcp", + "enabled": false + } + } +} +``` + +Możesz udostępnić serwery w szczegółach: + +```json title="opencode.json" +{ + "mcp": { + "jira": { + "type": "remote", + "url": "https://jira.example.com/mcp", + "enabled": true + } + } +} +``` + +--- + +### Światowy + +Umieść swoją globalną konfigurację OpenCode w `~/.config/opencode/opencode.json`. przestrzeganie funkcji globalnej, aby uzyskać dostęp do całego użytkownika, takie jak motywy, dostawca lub skróty klawiszowe. + +Konfiguracja globalna zaawansowana, zdalne ustawienie konfiguracji. + +--- + +### muszę zrobić projekt + +Dodaj `opencode.json` w katalogu głównym projektu. Konfiguracja projektu ma priorytet wśród plików konfiguracyjnych — zaawansowane konfiguracje globalne i zdalne. + +:::tip +Instalacja wstępna dla katalogu w katalogu. +::: + +Kiedy OpenCode się uruchomi, szuka pliku konfiguracyjnego w katalogu Git. + +Można również sprawdzić w Git i tego samego schematu, co globalny. + +--- + +### Niestandardowa ścieżka + +Niestandardowe rozwiązanie konfiguracyjne, różne opcje `OPENCODE_CONFIG`. + +```bash +export OPENCODE_CONFIG=/path/to/my/custom-config.json +opencode run "Hello world" +``` + +Konfiguracja niestandardowa jest ładowana z konfiguracją globalną i konfiguracją projektu w kolejności pierwszych. + +--- + +### Katalog niestandardowy + +niestandardowy katalog konfiguracyjny za pomocą `OPENCODE_CONFIG_DIR` +zmienna środowiskowa. Katalog ten będzie przeszukiwany pod kątem agentów, ukryty, +tryby i wtyczki, tak jak standardowy katalog `.opencode` i powinienem +podążaj tą samą strukturą. + +```bash +export OPENCODE_CONFIG_DIR=/path/to/my/config-directory +opencode run "Hello world" +``` + +Katalog niestandardowy jest ładowany po katalogach global config i `.opencode`, więc **może być połączony** z ich urządzeniami. + +--- + +## Schemat + +Plik konfiguracyjny ma schemat końcowy w [**`opencode.ai/config.json`**](https://opencode.ai/config.json). + +Twój edytor powinien mieć możliwość sprawdzania poprawności i autouzupełniania na podstawie schematu. + +--- + +### TUI + +Możliwość podłączenia urządzenia dla TUI za pomocą opcji `tui`. + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "tui": { + "scroll_speed": 3, + "scroll_acceleration": { + "enabled": true + }, + "diff_style": "auto" + } +} +``` + +Dostępna opcja: + +- `scroll_acceleration.enabled` - Włącz przyspieszenie przewijania w rysiku macOS. **Ma pierwszeństwo przed `scroll_speed`.** +- `scroll_speed` - Niestandardowy mnożnik szybkości przewijania (domyślnie: `3`, minimalnie: `1`). Ignorowane, jeśli `scroll_acceleration.enabled` do `true`. +- `diff_style` – Sterowanie renderowaniem różnicowym. `"auto"` dostępny jest do szerokości terminala, `"stacked"` zawsze pojawia się pojedyncza kolumna. + +[Dowiedz się więcej o korzystaniu z TUI tutaj](/docs/tui). + +--- + +### Serwer + +Możliwość ustawienia serwera dla źródeł `opencode serve` i `opencode web` za pomocą opcji `server`. + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "server": { + "port": 4096, + "hostname": "0.0.0.0", + "mdns": true, + "mdnsDomain": "myproject.local", + "cors": ["http://localhost:5173"] + } +} +``` + +Dostępna opcja: + +- `port` - Port do nasłuchiwania. +- `hostname` — nazwa hosta, która jest przeznaczona dla Ciebie. Gdy `mdns` jest połączony i nie jest ułożony inną nazwą hosta, jest połączony z `0.0.0.0`. +- `mdns` - Włącz wykrywanie usług mDNS. Dzięki temu zewnętrznemu urządzeniu w sieci może być przesyłany Twój serwer OpenCode. +- `mdnsDomain` - Niestandardowa nazwa domeny dla usług mDNS. Wartość domyślna do `opencode.local`. Przydatne do uruchomienia wielu zastosowań w tej samej sieci. +- `cors` - Dodatkowe źródło CORS podczas korzystania z serwera HTTP z punktu końcowego. Wartość musi być dostępna dla źródeł (schemat + host + port opcjonalny), np. `https://app.example.com`. + +[Dowiedz się więcej o tutaj](/docs/server). + +--- + +### Narzędzia + +Dostępne narzędzia, z których można korzystać LLM, dostęp do opcji `tools`. + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "tools": { + "write": false, + "bash": false + } +} +``` + +[Dowiedz się więcej o narzędziach tutaj](/docs/tools). + +--- + +### Modele + +Możesz mieć dostawców i modele, które chcesz mieć w konfiguracji OpenCode, za pomocą opcji `provider`, `model` i `small_model`. + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "provider": {}, + "model": "anthropic/claude-sonnet-4-5", + "small_model": "anthropic/claude-haiku-4-5" +} +``` + +Opcja `small_model` konfiguruje oddzielny model do lekkich zadań, takich jak generowanie tytułów. Domyślnie OpenCode wyparte przez dostępny model, jeśli jest dostępny u dostawcy, w razie potrzeby powróć do innego modelu. + +Opcje dostawcy mogą być zainstalowane `timeout` i `setCacheKey`: + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "provider": { + "anthropic": { + "options": { + "timeout": 600000, + "setCacheKey": true + } + } + } +} +``` + +- `timeout` - Limit czasu trwania w milisekundach (domyślnie: 300000). Ustaw na `false`, aby wyłączyć. +- `setCacheKey` — wkrótce, że klucz pamięci podręcznej jest zawsze gotowy dla dostawcy. + +Możesz także mieć [model lokalny](/docs/models#local). [Dowiedz się więcej](/docs/models). + +--- + +#### Opcje dostawcy dla dostawcy + +inne udostępnienie dodatkowych możliwości wyposażenia poza urządzeniami `timeout` i `apiKey`. + +##### Podłoże Amazonki + +Amazon Bedrock umożliwia podłączenie wyłącznika dla AWS: + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "provider": { + "amazon-bedrock": { + "options": { + "region": "us-east-1", + "profile": "my-aws-profile", + "endpoint": "https://bedrock-runtime.us-east-1.vpce-xxxxx.amazonaws.com" + } + } + } +} +``` + +- `region` — region AWS dla Bedrock (domyślnie jest do `AWS_REGION` env var lub `us-east-1`) +- `profile` - profil nazwany AWS z `~/.aws/credentials` (domyślnie `AWS_PROFILE` env var) +- `endpoint` — niestandardowy adres URL punktu końcowego dla punktów końcowych VPC. Jest to alias dla opcji ogólnej `baseURL` przy użyciu terminologii specjalnej dla AWS. Jeśli oba, pierwszeństwo ma `endpoint`. + +:::note +Token okaziciela (`AWS_BEARER_TOKEN_BEDROCK` lub `/connect`) ma pierwszeństwo przed uwierzytelnianiem opartym na profilu. Aby uzyskać szczegółowe informacje, zobacz [pierwszeństwo uwierzytelniania](/docs/providers#authentication-precedence). +::: + +[Dowiedz się więcej o budowie Amazon Bedrock](/docs/providers#amazon-bedrock). + +--- + +### Motywy + +Urządzenie zachęcające do korzystania z urządzeń OpenCode, za pomocą sieci `theme`. + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "theme": "" +} +``` + +[Dowiedz się więcej tutaj](/docs/themes). + +--- + +### Agencja + +Możliwość dostępności agentów do gniazd za pomocą opcji `agent`. + +```jsonc title="opencode.jsonc" +{ + "$schema": "https://opencode.ai/config.json", + "agent": { + "code-reviewer": { + "description": "Reviews code for best practices and potential issues", + "model": "anthropic/claude-sonnet-4-5", + "prompt": "You are a code reviewer. Focus on security, performance, and maintainability.", + "tools": { + // Disable file modification tools for review-only agent + "write": false, + "edit": false, + }, + }, + }, +} +``` + +Możesz także uniknąć agentów przy użyciu plików przecen w `~/.config/opencode/agents/` lub `.opencode/agents/`. [Dowiedz się więcej tutaj](/docs/agents). + +--- + +### Domyślny agent + +Domyślnego agenta można ustawić za pomocą opcji `default_agent`. Wykrywacz, który jest używany, jeśli nie został ujawniony. + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "default_agent": "plan" +} +``` + +Agent domyślny musi być agentem (nie subagentem). Może być agentem aplikacji, taki jak `"build"` lub `"plan"`, albo ukryty przez Ciebie [agent niestandardowy](/docs/agents). Jeśli agent nie istnieje lub jest podagentem, OpenCode powróć do `"build"` z ostrzeżeniem. + +Dotyczy urządzeń wszystkich interfejsów: TUI, CLI (`opencode run`), aplikacji komputerowej i akcji GitHub. + +--- + +### Partycypujący + +Możesz udostępnić [udostępnij](/docs/share) za pomocą opcji `share`. + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "share": "manual" +} +``` + +Działaj: + +- `"manual"` – Zezwalaj na ręczne korzystanie z pomocy narzędzi (domyślnie) +- `"auto"` - Automatycznie udostępniaj nowe rozmowy +- `"disabled"` - Całkowicie udostępnienie + +Domyślnie jest rozwiązaniem na tryb medyczny, w którym należy jawnie udostępniać rozmowy za pomocą polecenia `/share`. + +--- + +### Polecenia + +Możesz korzystać z usług polecanych dla powtarzalnych zadań za pomocą opcji `command`. + +```jsonc title="opencode.jsonc" +{ + "$schema": "https://opencode.ai/config.json", + "command": { + "test": { + "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": "Create a new React component named $ARGUMENTS with TypeScript support.\nInclude proper typing and basic structure.", + "description": "Create a new component", + }, + }, +} +``` + +Można także definiować polecenia przy użyciu plików Markdown w `~/.config/opencode/commands/` lub `.opencode/commands/`. [Dowiedz się więcej tutaj](/docs/commands). + +--- + +### Krótki kluczowy + +Możliwość zmiany skrótu klawiszowego za pomocą opcji `keybinds`. + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "keybinds": {} +} +``` + +[Dowiedz się więcej tutaj](/docs/keybinds). + +--- + +### Automatyczna aktualizacja + +OpenCode automatycznie pobierze każde nowe uruchomienie. Można skorzystać z opcji `autoupdate`. + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "autoupdate": false +} +``` + +Jeśli nie chcesz aktualizacji, ale chcesz podłączyć nową wersję, ustaw `autoupdate` na `"notify"`. +Działa tylko wtedy, gdy nie jest uruchamiana przy użyciu menedżera pakietów, jak Homebrew. + +--- + +### Formacja + +Można podać kod formacyjny za pomocą opcji `formatter`. + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "formatter": { + "prettier": { + "disabled": true + }, + "custom-prettier": { + "command": ["npx", "prettier", "--write", "$FILE"], + "environment": { + "NODE_ENV": "development" + }, + "extensions": [".js", ".ts", ".jsx", ".tsx"] + } + } +} +``` + +[Dowiedz się więcej o formaterach tutaj](/docs/formatters). + +--- + +### Uprawnienia + +Domyślnie opencode **zezwala na wszystkie działania** bez konieczności posiadania zgody. Można zmienić opcję `permission`. + +Na przykład, aby można było wykryć, że narzędzie `edit` i `bash` wymaga zgody użytkownika: + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "permission": { + "edit": "ask", + "bash": "ask" + } +} +``` + +[Dowiedz się więcej o prawach tutaj](/docs/permissions). + +--- + +### Zagęszczanie + +Możesz kontrolować zachowanie zagęszczania kontekstu za pomocą opcji `compaction`. + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "compaction": { + "auto": true, + "prune": true + } +} +``` + +- `auto` - Automatycznie kompaktuj, gdy kontekst jest pełny (domyślnie: `true`). +- `prune` - Usuń stare dane narzędzia, aby zapisać tokeny (domyślnie: `true`). + +--- + +### Obserwator + +Rejestracja wzorca plików za pomocą `watcher`. + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "watcher": { + "ignore": ["node_modules/**", "dist/**", ".git/**"] + } +} +``` + +Wzorce są zgodne ze składnią glob. Dostęp tej opcji, aby móc zaszumione katalogi z plikami do przeglądania. + +--- + +### Serwer MPK + +Dostęp do serwerów MCP, których chcesz używać, za pośrednictwem sieci `mcp`. + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "mcp": {} +} +``` + +[Dowiedz się więcej tutaj](/docs/mcp-servers). + +--- + +### Wtyki + +[Wtyczki](/docs/plugins) rozszerzają OpenCode o podstawowe narzędzia, hooki i integracje. + +Pliki plików wtyczek w `.opencode/plugins/` lub `~/.config/opencode/plugins/`. Można także włączyć wtyczkę z npm poprzez opcję `plugin`. + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "plugin": ["opencode-helicone-session", "@my-org/custom-plugin"] +} +``` + +[Dowiedz się więcej tutaj](/docs/plugins). + +--- + +### Instrukcja + +Instrukcja dla modelu, w której można zastosować opcję `instructions`. + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "instructions": ["CONTRIBUTING.md", "docs/guidelines.md", ".cursor/rules/*.md"] +} +``` + +Pobierana do schematów i wzorców globalnych do plików graficznych. [Dowiedz się więcej +o zasadach tutaj](/docs/rules). + +--- + +### Niepełnosprawny sprzedawca + +Zasilacz ładowany automatycznie za pomocą zasilacza `disabled_providers`. Jest to możliwe, gdy istnieje możliwość podłączenia ładowania niektórych dostawców, nawet jeśli dane uwierzytelniające są dostępne. + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "disabled_providers": ["openai", "gemini"] +} +``` + +:::note +`disabled_providers` pierwszeństwo przed `enabled_providers`. +::: + +Opcja `disabled_providers` analiza tablica identyfikatorów dostawców. Gdy dostawca jest wyłączony: + +- Nie istnieje możliwość wystąpienia zagrożenia, które jest możliwe do zastosowania. +- Nie nastąpi uruchomienie, nawet jeśli klucz API zostanie uruchomiony za pomocą polecenia `/connect`. +- Model dostawcy nie pojawia się na liście wyboru modeli. + +--- + +### Włączeni dostawcy + +Można znaleźć dostawców za pomoc `enabled_providers`. Po ustawieniu włączeni tylko dostawcy, a wszyscy będą obecni. + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "enabled_providers": ["anthropic", "openai"] +} +``` + +Jest to urządzenie, gdy urządzenie OpenCode jest używane tylko z urządzeniami, zamiast odłączać ich jedno po drugim. + +:::note +`disabled_providers` pierwszeństwo przed `enabled_providers`. +::: + +Jeśli obowiązująsz w `enabled_providers`, jak i `disabled_providers`, `disabled_providers` pierwszeństwo ze względu na kompatybilność wsteczną. + +--- + +### Eksperymentalny + +Klucz `experimental` zawiera opcje, które są początkiem rozwoju. + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "experimental": {} +} +``` + +:::caution +Opcje eksperymentalne nie są awaryjne. Jedna zmiana lub zmiana bez zniszczenia. +::: + +--- + +## Zmienne + +Możliwość wykorzystania danych zmiennych w plikach konfiguracyjnych, aby odwoływać się do zmiennych zewnętrznych i zawartości plików. + +--- + +### Kop. zm + +zastosowanie `{env:VARIABLE_NAME}`, aby zakończyć zmiennego przebiegu: + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "model": "{env:OPENCODE_MODEL}", + "provider": { + "anthropic": { + "models": {}, + "options": { + "apiKey": "{env:ANTHROPIC_API_KEY}" + } + } + } +} +``` + +Jeżeli zmienna kontrolna nie jest skonfigurowana, należy zastosować do niej pusty ciąg znaków. + +--- + +### Akta + +źródło `{file:path/to/file}`, aby znaleźć zawartość pliku: + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "instructions": ["./custom-instructions.md"], + "provider": { + "openai": { + "options": { + "apiKey": "{file:~/.secrets/openai-key}" + } + } + } +} +``` + +Ścieżki plików mogą być: + +- Względem katalogu konfiguracyjnego +- Lub nadrzędne kierowane się od `/` lub `~` + +Sądzimy, że: + +- Przechowywanie wrażliwych danych, takich jak klucze API, w oddzielnych plikach. +- Do udostępnienia dużych plików bez zaśmiecania konstrukcji. +- Udostępnianie fragmentów konfiguracji w wielu plikach konfiguracyjnych. diff --git a/packages/web/src/content/docs/pl/custom-tools.mdx b/packages/web/src/content/docs/pl/custom-tools.mdx new file mode 100644 index 000000000..3a49c341d --- /dev/null +++ b/packages/web/src/content/docs/pl/custom-tools.mdx @@ -0,0 +1,170 @@ +--- +title: Narzędzia specjalistyczne +description: Twórz narzędzi, które LLM mogą być uruchamiane w otwartym kodzie. +--- + +Narzędzia stosowane do funkcji, z których LLM może korzystać podczas rozmów. Współpracują z [wbudowanymi narzędziami] (./tools) opencode, wtyczka jak `read`, `write` i `bash`. + +--- + +## Narzędzie do tworzenia + +Narzędzia tworzą pliki **TypeScript** lub **JavaScript**. Definicja narzędzia może być odwoływana do skryptów napisanych w **dowolnym języku** — TypeScript lub JavaScript są używane tylko w tym samym narzędziu. + +--- + +### Lokalizacja + +Można je uruchomić: + +- Lokalnie, umieszczając je w katalogu `.opencode/tools/` swojego projektu. +- Lub globalnie, umieszczając je w `~/.config/opencode/tools/`. + +--- + +### Struktura + +Najłatwiejszym sposobem tworzenia narzędzia jest pomocnika `tool()`, który zapewnia bezpieczeństwo i sprawdzanie poprawności. + +```ts title=".opencode/tools/database.ts" {1} +import { tool } from "@opencode-ai/plugin" + +export default tool({ + description: "Query the project database", + args: { + query: tool.schema.string().describe("SQL query to execute"), + }, + async execute(args) { + // Your database logic here + return `Executed query: ${args.query}` + }, +}) +``` + +**Nazwa pliku** staje się **nazwą narzędzia**. Pierwotne narzędzie `database`. + +--- + +#### Wiele narzędzi na plik + +Można także eksportować wiele narzędzi z jednego pliku. Każdy eksport staje się **oddzielnym językiem** o nazwie **`<filename>_<exportname>`**: + +```ts title=".opencode/tools/math.ts" +import { tool } from "@opencode-ai/plugin" + +export const add = tool({ + description: "Add two numbers", + args: { + a: tool.schema.number().describe("First number"), + b: tool.schema.number().describe("Second number"), + }, + async execute(args) { + return args.a + args.b + }, +}) + +export const multiply = tool({ + description: "Multiply two numbers", + args: { + a: tool.schema.number().describe("First number"), + b: tool.schema.number().describe("Second number"), + }, + async execute(args) { + return args.a * args.b + }, +}) +``` + +Tworzy do dwóch narzędzi: `math_add` i `math_multiply`. + +--- + +### Argumentacja + +Do zdefiniowania argumentów można zastosować `tool.schema`, czyli po prostu [Zod](https://zod.dev). + +```ts "tool.schema" +args: { + query: tool.schema.string().describe("SQL query to execute") +} +``` + +Można także bezpośrednio zaimportować [Zod](https://zod.dev) i zwyczajowo zwykły obiekt: + +```ts {6} +import { z } from "zod" + +export default { + description: "Tool description", + args: { + param: z.string().describe("Parameter description"), + }, + async execute(args, context) { + // Tool implementation + return "result" + }, +} +``` + +--- + +### Kontekst + +Narzędzia kontekstowe charakterystycznej sesji: + +```ts title=".opencode/tools/project.ts" {8} +import { tool } from "@opencode-ai/plugin" + +export default tool({ + description: "Get project information", + args: {}, + async execute(args, context) { + // Access context information + const { agent, sessionID, messageID, directory, worktree } = context + return `Agent: ${agent}, Session: ${sessionID}, Message: ${messageID}, Directory: ${directory}, Worktree: ${worktree}` + }, +}) +``` + +`context.directory` jako katalogowy pracodawczy. +`context.worktree` dla katalogu głównego zwalczającego git. + +--- + +## Przykład + +### Napisz narzędzie w Pythonie + +Napisz swoje narzędzie w języku angielskim. Oto przykład dodania dwóch liczb przy użyciu języka Python. + +Fragment utworu jako skrypt w języku Python: + +```python title=".opencode/tools/add.py" +import sys + +a = int(sys.argv[1]) +b = int(sys.argv[2]) +print(a + b) +``` + +Utwór instrumentalny, który jest ukryty: + +```ts title=".opencode/tools/python-add.ts" {10} +import { tool } from "@opencode-ai/plugin" +import path from "path" + +export default tool({ + description: "Add two numbers using Python", + args: { + 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") + const result = await Bun.$`python3 ${script} ${args.a} ${args.b}`.text() + return result.trim() + }, +}) +``` + +Tutaj istnieje narzędzie [`Bun.$`](https://bun.com/docs/runtime/shell) uruchamiające skryptu w języku Python. diff --git a/packages/web/src/content/docs/pl/ecosystem.mdx b/packages/web/src/content/docs/pl/ecosystem.mdx new file mode 100644 index 000000000..774d4d283 --- /dev/null +++ b/packages/web/src/content/docs/pl/ecosystem.mdx @@ -0,0 +1,76 @@ +--- +title: Ekosystem +description: Projekty i integracje zbudowane w OpenCode. +--- + +Zgromadzenie stowarzyszenia organizacji na OpenCode. + +:::note +Chcesz zadać swój projekt badawczy z OpenCode do tej listy? Prześlij PR. +::: + +Możesz także sprawdzić [awesome-opencode](https://github.com/awesome-opencode/awesome-opencode) i [opencode.cafe](https://opencode.cafe), grupę skupiającą ekosystem i społeczność. + +--- + +## Wtyki + +| Imię | Opis | +| --------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | +| [opencode-daytona](https://github.com/jamesmurdza/daytona/blob/main/guides/typescript/opencode/README.md) | Automatycznie uruchamiaj sesje OpenCode w izolowanych piaskownicach Daytona z synchronizacją git i podglądami na żywo | +| [sesja-helicone-opencode](https://github.com/H2Shami/opencode-helicone-session) | Automatycznie wstawiaj nagłówki sesji Helicone w celu grupowania urządzeń | +| [wstrzykiwanie typu opencode](https://github.com/nick-vi/opencode-type-inject) | Automatyczne wstrzykiwacze TypeScript/Svelte do odczytania plików za pomocą narzędzi wyszukiwania | +| [opencode-openai-codex-auth](https://github.com/numman-ali/opencode-openai-codex-auth) | wykorzystać do wykorzystania ChatGPT Plus/Pro zamiast kredytu API | +| [opencode-gemini-auth](https://github.com/jenslys/opencode-gemini-auth) | korzystać z planu Gemini zamiast rozliczeń API | +| [auth-antygrawitacja-opencode](https://github.com/NoeFabris/opencode-antigravity-auth) | Wykorzystanie z bezpłatnych modeli Antigravity zamiast rozliczeń API | +| [opencode-devcontainers](https://github.com/athal7/opencode-devcontainers) | Izolacja wielooddziałowych kontenerów deweloperskich z płytkami klonami i automatycznie przypisywanymi portami | +| [opencode-google-antigravity-auth](https://github.com/shekohex/opencode-google-antigravity-auth) | Wtyczka Google Antigravity OAuth z obsługą obsługi Google i bardziej niezawodną obsługą API | +| [czyszczenie-dynamiczne-kontekstu opencode](https://github.com/Tarquinen/opencode-dynamic-context-pruning) | Zoptymalizuj wykorzystanie tokena, usuwając przestarzałe dane wyjściowe narzędzia | +| [cytowane w opencode-websearch](https://github.com/ghoulr/opencode-websearch-cited.git) | Dodaj natywną obsługę wyszukiwania w sieci dla dostawców w stylu opartym na Google | +| [opencode-pty](https://github.com/shekohex/opencode-pty.git) | Uruchomienie agenta AI uruchamiającego się w tle w PTY i wytwarzanie ich interaktywnych danych. | +| [strategia-powłoki-opencode](https://github.com/JRedeker/opencode-shell-strategy) | Instrukcje dla nieinteraktywnych obowiązków - zaniechanie zawieszenia operacji zależnych od TTY | +| [opencode-wakatime](https://github.com/angristan/opencode-wakatime) | Śledź udostępnić OpenCode za pomocą Wakatime | +| [formatujący tabelę opencode-md](https://github.com/franlol/opencode-md-table-formatter/tree/main) | Oczyść tabelę przecenioną przez LLM | +| [opencode-szybkie-zastosowanie-morficzne](https://github.com/JRedeker/opencode-morph-fast-apply) | 10x szybsza edycja kodu dzięki Morph Fast Apply API i znacznikom leniwej edycji | +| [oh-mój-opencode](https://github.com/code-yeongyu/oh-my-opencode) | Agencje odpowiedzialne w tle, gotowe narzędzia LSP/AST/MCP, wyselekcjonowani agenci, kompatybilni z Claude Code | +| [powiadamiacz opencode](https://github.com/panta82/opencode-notificator) | Powiadomienia na pulpicie i alerty dźwiękowe dotyczące sesji OpenCode | +| [powiadamiający o opencode](https://github.com/mohak34/opencode-notifier) | Powiadomienia na pulpicie i alerty dźwiękowe dotyczące uprawnień, wyników i zdarzeń o błędach | +| [nazwa-opencode-zellij](https://github.com/24601/opencode-zellij-namer) | Automatyczne nazewnictwo sesji Zellij oparte na sztucznej inteligencji w oparciu o kontekst OpenCode | +| [umiejętność obsługi opencode](https://github.com/zenobi-us/opencode-skillful) | Zezwalaj agentom OpenCode na leniwe ładowanie podpowiedzi na podstawie odkrywania możliwości i wstrzykiwania | +| [superpamięć opencode](https://github.com/supermemoryai/opencode-supermemory) | Trwała pamięć w sesjach przy użyciu Supermemory | +| [@plannotator/opencode](https://github.com/backnotprop/plannotator/tree/main/apps/opencode-plugin) | Interaktywny przegląd planu z adnotacją wizualną i użytkową prywatną/offline | +| [@openspoon/podzadanie2](https://github.com/spoons-and-mirrors/subtask2) | Rozszerzony kod otwarty/polecenia do połączenia sieciowego ze szczegółową kontrolą bezpieczeństwa | +| [program planujący opencode](https://github.com/different-ai/opencode-scheduler) | Zaplanuj powtarzające się zadania, używając launchd (Mac) lub systemd (Linux) ze składaną cron | +| [mikod](https://github.com/vtemian/micode) | Ustrukturyzowana burza mózgów → Plan → Wdrożenie wyjścia z ciągłością sesji | +| [okto](https://github.com/vtemian/octto) | Interaktywny interfejs do burzy mózgów AI z formularzami kontrolnymi wielu pytań | +| [agencja-w tle opencode](https://github.com/kdcokenny/opencode-background-agents) | Agencje krytyczne w tle w stylu Claude Code z delegowaniem asynchronicznym i trwałością kontekstu | +| [powiadomienie o opencode](https://github.com/kdcokenny/opencode-notify) | Natywne uruchomienie systemu dla OpenCode – wiesz, kiedy zadania zostaną zakończone | +| [obszar roboczy opencode](https://github.com/kdcokenny/opencode-workspace) | Lista wiązek orkiestracji wieloagentowej – 16 dostępna, jedna instalacja | +| [drzewo robocze opencode](https://github.com/kdcokenny/opencode-worktree) | Drzewa robocze Git o zerowym tarciu dla OpenCode | + +--- + +## Projektowanie + +| Imię | Opis | +| ------------------------------------------------------------------------------------------ | ---------------------------------------------------------------- | +| [kimaki](https://github.com/remorses/kimaki) | Bot Discord do kontrolowania sesji OpenCode, zbudowany na SDK | +| [opencode.nvim](https://github.com/NickvanDyke/opencode.nvim) | Wtyczka Neovim do podpowiedzi, zbudowana w oparciu o API | +| [portal](https://github.com/hosenur/portal) | Interfejs sieciowy do urządzeń mobilnych dla OpenCode poprzez Tailscale/VPN | +| [szablon wtyczki opencode](https://github.com/zenobi-us/opencode-plugin-template/) | Szablon do budowy wtyczek OpenCode | +| [opencode.nvim](https://github.com/sudo-tee/opencode.nvim) | Frontend Neovim dla opencode - agent kodujący AI oparty na terminalu | +| [ai-sdk-provider-opencode-sdk](https://github.com/ben-vargas/ai-sdk-provider-opencode-sdk) | Stosowanie Vercel AI SDK do użytku z OpenCode poprzez @opencode-ai/sdk | +| [OpenChamber](https://github.com/btriapitsyn/openchamber) | Aplikacja internetowa/stacjonarna i rozszerzenie VS Code dla OpenCode | +| [OpenCode-Obsydian](https://github.com/mtymek/opencode-obsidian) | Wtyczka Obsidian osadzająca OpenCode w interfejsie użytkownika Obsidian | +| [OpenWork](https://github.com/different-ai/openwork) | Alternatywa typu open source dla Claude Cowork, obsługa przez OpenCode | +| [ocx](https://github.com/kdcokenny/ocx) | Menedżer rozszerzony OpenCode z przenośnymi, izolowanymi profilami. | +| [CodeNomad](https://github.com/NeuralNomadsAI/CodeNomad) | Aplikacja komputerowa, internetowa, mobilna i zdalna dla OpenCode | + +--- + +## Agencja + +| Imię | Opis | +| ----------------------------------------------------------------- | ------------------------------------------------------------ | +| [Agent](https://github.com/Cluster444/agentic) | Modułowi agencje i polecenia AI do rozwoju strukturalnego | +| [agencja-opencode](https://github.com/darrenhinde/opencode-agents) | Konfiguracje, podpowiedzi, agencje i wtyczki usprawniające przepływ pracy | diff --git a/packages/web/src/content/docs/pl/enterprise.mdx b/packages/web/src/content/docs/pl/enterprise.mdx new file mode 100644 index 000000000..4ed4b6b65 --- /dev/null +++ b/packages/web/src/content/docs/pl/enterprise.mdx @@ -0,0 +1,170 @@ +--- +title: Przedsiębiorstwo +description: Bezpieczne korzystanie z OpenCode w Twojej organizacji. +--- + +import config from "../../../../config.mjs" +export const email = `mailto:${config.email}` + +OpenCode Przedsiębiorstwo jest przeznaczone dla organizacji, która ma dostęp do zasobów, że ich kod i dane nigdy nie opuszczą infrastruktury. Może zostać zarejestrowany za pomocą zapachuralizowanej konfiguracji, która integruje się z logowaniem jednokrotnym i uruchomieniem bramą AI. + +:::note +OpenCode nie przechowuje żadnego kodu ani danych kontekstowych. +::: + +Aby skorzystać z pracy z OpenCode Przedsiębiorstwo: + +1. Przeprowadź próbę wewnętrzną ze swoim systemem. +2. **<a href={email}>Skontaktuj się z nami</a>**, aby omówić ceny i opcję konfiguracji. + +--- + +## Test + +OpenCode jest oprogramowaniem typu open source i nie przechowuje żadnego kodu ani danych kontekstowych, więc programiści mogą po prostu [zacząć](/docs/) i próbować próbną. + +--- + +### Obsługa danych + +**OpenCode nie dotyczy kodu źródłowego ani danych kontekstowych.** Całe zdarzenie odbywa się lokalnie lub poprzez bezpośrednio wywołane API do twojego dostawcy AI. + +to, że korzystasz z usług dostawcy, lub dostawcy zaufania +Brama AI, możesz bezpłatnie korzystać z OpenCode. + +Zastrzeżeniem jest opcjonalna funkcja `/share`. + +--- + +#### Dzielenie się rozmowami + +Jeśli użytkownicy są połączeni z `/share`, połączenie jest połączone z danymi, które zostały przesłane do usług, które są udostępniane przez hosty tych użytkowników w opencode.ai. + +Dane są aktualnie dostępne przez sieć brzegową naszego CDN i są buforowane na brzegu w pobliżu Twoich użytkowników. + +Zalecamy tę opcję na okres próbny. + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "share": "disabled" +} +``` + +[Więcej informacji o udostępnianiu](/docs/share). + +--- + +### Własność kodu + +**Jesteś właścicielem całości kodu źródłowego przez OpenCode.** Nie ma żadnych ograniczeń licencyjnych ani należących do własności. + +--- + +## Wycena + +W przypadku OpenCode Enterprise model per-seat. Jeśli posiadasz własną bramkę LLM, nie pobieramy opłat za korzystanie z tokenów. Aby uzyskać więcej informacji na temat, jeśli jest możliwe, **<a href={email}>skontaktuj się z nami</a>**. + +--- + +## Zastosowanie + +Gdy zasięgsz okres próbny i nadzorujesz użytkowanie z OpenCode na +swoją organizację, możesz **<a href={email}>skontaktować się z nami</a>**, aby omówić te dźwięki +opcja cenowa i wdrożeniowa. + +--- + +### Konfiguracja centralna + +Możliwości wykorzystania OpenCode tak, aby skorzystać z jednego zastosowania dla całej organizacji. + +Tę zapachową konfigurację można zintegrować z dostawcą SSO i specyfikacje wszyscy użytkownicy mają dostęp wyłącznie do bram wewnętrznych AI. + +--- + +### Integracja SSO + +Dzięki zastosowaniu konfiguracji OpenCode może zostać włączone z dostawcą SSO Twojej organizacji w celu uwierzytelnienia. + +Dzięki temu OpenCode może uzyskać dane uwierzytelniające dla wewnętrznej bramy AI za pośrednictwem transmisji systemu zarządzania tożsamością. + +--- + +### Wewnętrzna bramka AI + +Dzięki zastosowaniu konfiguracji OpenCode można również skorzystać z tego, że można korzystać tylko z wewnętrznych bram AI. + +Możesz także dołączyć do wszystkich innych dostawców sztucznej inteligencji, upewniając się, że wszystkie elementy przechodzą przez zatwierdzenie wykorzystania Twojej organizacji. + +--- + +### Hosting własny + +Zalecamy, aby można było je udostępnić, aby Twoje dane nigdy nie zostały opuszczone +Twoja organizacja może być pomocna w utrzymaniu ich w Twojej infrastrukturze. + +Jest to obecnie w naszym planie działania. Jeśli jesteś zainteresowany, **<a href={email}>daj nam znać</a>**. + +--- + +## Często zadawane pytania + +<details> +<summary>What is OpenCode Enterprise?</summary> + +OpenCode Przedsiębiorstwo jest przeznaczone dla organizacji, która ma dostęp do zasobów, że ich kod i dane nigdy nie opuszczą infrastruktury. Może zostać zarejestrowany za pomocą zapachuralizowanej konfiguracji, która integruje się z logowaniem jednokrotnym i uruchomieniem bramą AI. + +</details> + +<details> +<summary>How do I get started with OpenCode Enterprise?</summary> + +Po prostu uruchom wersję próbną ze swoim. OpenCode urządzenia niezabezpieczone kodu ani danych kontekstowych, co ułatwia uruchomienie pracy. + +**<a href={email}>skontaktuj się z nami</a>**, aby omówić ceny i wybrać opcję. + +</details> + +<details> +<summary>How does enterprise pricing work?</summary> + +Oferujemy ceny korporacyjne za jedno stanowisko. Jeśli posiadasz własną bramkę LLM, nie pobieramy opłat za korzystanie z tokenów. Aby uzyskać więcej informacji, **<a href={email}>skontaktuj się z nami</a>**, aby uzyskać wynik określony dla potrzeb Twojej organizacji. + +</details> + +<details> +<summary>Is my data secure with OpenCode Enterprise?</summary> + +Tak. OpenCode nie przechowuje kodu ani danych kontekstowych. Całe zdarzenie odbywa się lokalnie lub poprzez bezpośrednie wywołanie API przez dostawcę AI. Dostęp do konfiguracji i integracji z logowaniem jednokrotnym Twoje dane pozostają bezpieczne w infrastrukturze organizacji. + +</details> + +<details> +<summary>Can we use our own private NPM registry?</summary> + +OpenCode obsługuje prywatny rejestry npm poprzez natywną usługę plików `.npmrc` Buna. Jeśli Twoja organizacja korzysta z rejestru prywatnego, takiego jak JFrog Artifactory, Nexus lub wylot, przed uruchomieniem OpenCode się, że programiści zostali uwierzytelnieni. + +Aby zapewnić uwierzytelnianie w rejestrze prywatnym: + +```bash +npm login --registry=https://your-company.jfrog.io/api/npm/npm-virtual/ +``` + +Spowoduje to do `~/.npmrc` ze szczegółami uwierzytelniania. OpenCode zrobi to automatycznie +podniesc do. + +:::caution +Przed uruchomieniem OpenCode musisz być zalogowany do rejestru prywatnego. +::: + +Alternatywnie możesz skorzystać z pliku `.npmrc`: + +```bash title="~/.npmrc" +registry=https://your-company.jfrog.io/api/npm/npm-virtual/ +//your-company.jfrog.io/api/npm/npm-virtual/:_authToken=${NPM_AUTH_TOKEN} +``` + +Programiści muszą się zgłosić do rejestru prywatnego przed uruchomieniem OpenCode, aby mieć dostęp, że pakiety będą dostępne z rejestru przedsiębiorstwa. + +</details> diff --git a/packages/web/src/content/docs/pl/formatters.mdx b/packages/web/src/content/docs/pl/formatters.mdx new file mode 100644 index 000000000..d2a0181fb --- /dev/null +++ b/packages/web/src/content/docs/pl/formatters.mdx @@ -0,0 +1,130 @@ +--- +title: Formatery +description: OpenCode używa formaterów specyficznych dla języka. +--- + +OpenCode automatycznie formatuje pliki po ich zapisaniu lub edycję przy użyciu formaterów przesyłanych dla języka. Dzięki temu wygenerowany kod będzie używany ze stylami kodu Twojego projektu. + +--- + +## Wbudowany + +OpenCode zawiera kilka wbudowanych formaterów dla nauki języków i frameworków. Zawiera listę formaterów, rozszerzonych plików oraz rozszerzenia i konfiguratory, których potrzebujesz. + +| Formater | Rozszerzenia | Wymagania | +| -------------------- | -------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | +| gofmt | .idź | Komenda `gofmt` dostępna | +| ryzyko | .ex, .exs, .eex, .heex, .leex, .neex, .sface | Komenda `mix` dostępna | +| ładniejsza | .js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml i [więcej](https://prettier.io/docs/en/index.html) | Zależność `prettier` w `package.json` | +| biom | .js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml i [więcej](https://biomejs.dev/) | `biome.json(c)` plik konfiguracyjny | +| zyg | .zig, .zon | Komenda `zig` dostępna | +| formatuj brzęk | .c, .cpp, .h, .hpp, .ino i [więcej](https://clang.llvm.org/docs/ClangFormat.html) | `.clang-format` plik konfiguracyjny | +| ktlint | .kt, .kts | Komenda `ktlint` dostępna | +| kryza | .py, .pyi | Komenda `ruff` dostępna w konstrukcji | +| rustfmt | .rs | Komenda `rustfmt` dostępna | +| załadunek | .rs | Komenda `cargo fmt` dostępna | +| UV | .py, .pyi | Komenda `uv` dostępna | +| rubocop | .rb, .rake, .gemspec, .ru | Komenda `rubocop` dostępna | +| standardowe | .rb, .rake, .gemspec, .ru | Komenda `standardrb` dostępna | +| htmlupiększacz | .erb, .html.erb | Komenda `htmlbeautifier` dostępna | +| powietrze | .R | Komenda `air` dostępna | +| strzałka | .dart | Komenda `dart` dostępna | +| formatuj ocaml | .ml, .mli | Dostępna opcja `ocamlformat` i plik konfiguracyjny `.ocamlformat` | +| terraforma | .tf, .tfvars | Komenda `terraform` dostępna | +| blask | .blask | Komenda `gleam` dostępna | +| nixfmt | .nix | Komenda `nixfmt` dostępna | +| shfmt | .sh, .bash | Komenda `shfmt` dostępna | +| kufel | .php | Zależność `laravel/pint` w `composer.json` | +| oxfmt (eksperymentalny) | .js, .jsx, .ts, .tsx | wykonanie `oxfmt` w `package.json` i [flaga eksperymentalna zmienna env](/docs/cli/#experimental) | +| ormolu | .hs | Komenda `ormolu` dostępna | + +Jeśli więc Twój projekt zawiera `prettier` w `package.json`, OpenCode automatycznie przejdź do podmiote. + +--- + +## Jak to działa + +Kiedy OpenCode zapisuje lub edytuje plik: + +1. Badanie pliku dotyczącego wszystkich danych formaterów. +2. Uruchamia decyzje wykonawcze formatujące na plik. +3. Automatycznie stosuje zmiany formatowania. + +Dziesięć procesów zachodzi w tle, konieczne jest zachowanie stylów kodu bez konieczności wykonania czynności czynnościowych. + +--- + +## Skonfiguruj + +Można dostosować formatery za pomocą sekcji `formatter` w konstrukcji OpenCode. + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "formatter": {} +} +``` + +obsługiwane formatyzator Zobacz elementy: + +| Nieruchomość | Wpisz | Opis | +| ------------- | -------- | ------------------------------------------------------- | +| `disabled` | wartość logiczna | Ustaw tę opcję na `true`, aby wyłączyć formater | +| `command` | ciąg[] | Polecenie uruchomienia formatowania | +| `environment` | obiekt | Zmienne ustawienia do ustawień podczas uruchamiania programu formatującego | +| `extensions` | ciąg[] | Rozszerzenia plików, które powinny opuścić ten formater | + +Spójrzmy na kilka przykładów. + +--- + +### Wyłączanie formaterów + +Aby globalnie wyłączyć **wszystkie** formatery, ustaw `formatter` na `false`: + +```json title="opencode.json" {3} +{ + "$schema": "https://opencode.ai/config.json", + "formatter": false +} +``` + +Aby wyłączyć **określony** formater, ustaw `disabled` na `true`: + +```json title="opencode.json" {5} +{ + "$schema": "https://opencode.ai/config.json", + "formatter": { + "prettier": { + "disabled": true + } + } +} +``` + +--- + +### Niestandardowe formatery + +Może wystąpić, gdyby nastąpiło nowe, uruchomienie, zmienne udostępnienie i udostępnienie plików: + +```json title="opencode.json" {4-14} +{ + "$schema": "https://opencode.ai/config.json", + "formatter": { + "prettier": { + "command": ["npx", "prettier", "--write", "$FILE"], + "environment": { + "NODE_ENV": "development" + }, + "extensions": [".js", ".ts", ".jsx", ".tsx"] + }, + "custom-markdown-formatter": { + "command": ["deno", "fmt", "$FILE"], + "extensions": [".md"] + } + } +} +``` + +Symbol zastępczy **`$FILE`** w poleceniu pochodziony z formatowanego pliku. diff --git a/packages/web/src/content/docs/pl/github.mdx b/packages/web/src/content/docs/pl/github.mdx new file mode 100644 index 000000000..9511d1b32 --- /dev/null +++ b/packages/web/src/content/docs/pl/github.mdx @@ -0,0 +1,321 @@ +--- +title: GitHub +description: Użyj OpenCode w problemach z GitHubem i zastosujch ściągnięcia. +--- + +OpenCode integruje się z przepływem pracy w GitHub. Wspomnij o `/opencode` lub `/oc` w swoim komentarzu, a OpenCode wykonaj zadania w ramach modułu uruchamiającego GitHub Actions. + +--- + +## Cechy + +- **Problem związany z segregacją**: Poproś OpenCode o szczegółowe wyjaśnienie problemu i wyjaśnienie go. +- **Napraw i zaimplementuj**: Poproś OpenCode o naprawienie problemu lub zaimplementowanie funkcji. Będzie dostępny w następnym oddziale i wysyłać PR ze stosowaniem dodatku. +- **Bezpieczny**: OpenCode działa w modułach sprzętowych GitHuba. + +--- + +## Instalacja + +Uruchomione dalsze postępowanie w przypadku wystąpienia w repozytorium GitHub: + +```bash +opencode github install +``` + +Aby przeprowadzić Cię przez proces instalacji aplikacji GitHub, utwórz działanie i skonfiguruj wpisy tajnych. + +--- + +### Konfiguracja ręczna + +Można też uszkodzić to rozwiązanie. + +1. **Zainstaluj aplikację GitHub** + + Wejdź na [**github.com/apps/opencode-agent**](https://github.com/apps/opencode-agent). wystąpienie się, że jest natychmiastowe w repozytorium usuwam. + +2. **Dodaj przepływ pracy** + + Dodaj zdalny plik pracy do `.github/workflows/opencode.yml` w swoim repozytorium. wystąpił, że ustawiłeś sędziego `model` i wymagany klucz API w `env`. + + ```yml title=".github/workflows/opencode.yml" {24,26} + name: opencode + + on: + issue_comment: + types: [created] + pull_request_review_comment: + types: [created] + + jobs: + opencode: + if: | + contains(github.event.comment.body, '/oc') || + contains(github.event.comment.body, '/opencode') + runs-on: ubuntu-latest + permissions: + id-token: write + steps: + - name: Checkout repository + uses: actions/checkout@v6 + with: + fetch-depth: 1 + persist-credentials: false + + - name: Run OpenCode + uses: anomalyco/opencode/github@latest + env: + ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} + with: + model: anthropic/claude-sonnet-4-20250514 + # share: true + # github_token: xxxx + ``` + +3. **Przechowuj klucze API w tajemnicy** + + W **ustawieniach** swojej organizacji lub projektu rozwiń **Sekretne i zmienne** po lewej stronie i wybierz **Działania**. Dodałem wymagane klucze API. + +--- + +## Konfiguracja + +- `model`: Model używany z OpenCode. Przyjmuje format `provider/model`. To **wymagane**. +- `agent`: Agent, którego należy używać. Musi być odległym agentem. Wraca do `default_agent` z konfiguracją lub `"build"`, jeśli nie został znaleziony. +- `share`: Czyć funkcję sesji OpenCode. Domyślnie **true** dla repozytoriów publicznych. +- `prompt`: Opcjonalny niestandardowy monit o zastąpienie przestrzegania zachowania. Wykorzystanie tego, aby dostosować sposób przetwarzania przez OpenCode. +- `token`: opcjonalny token dostępu GitHub podstawowe operacje, takie jak tworzenie komentarzy, zatwierdzanie zmian i otwieranie zastosowania ściągnięcia. Domyślnie OpenCode używa tokena dostępu do instalacji z aplikacji OpenCode GitHub, więc zatwierdzenia, komentarze i zasady ściągnięcia widoczne jako źródło z aplikacji. + + Alternatywnie możesz użyć [wbudowanego `GITHUB_TOKEN`](https://docs.github.com/en/actions/tutorials/authenticate-with-github_token) modułu uruchamiającego GitHub Action bez instalacji aplikacji OpenCode GitHub. Pamiętaj tylko o przyznaniu wymaganych mocy w przepływie pracy: + + ```yaml + permissions: + id-token: write + contents: write + pull-requests: write + issues: write + ``` + + Jeśli chcesz, możesz także użyć [osobistych tokenów dostępu](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens)(PAT). + +--- + +## Obsługiwane wydarzenia + +OpenCode może zostać wywołany przez zdarzenie GitHub: + +| Typ zdarzenia | Wywołane przez | Szczegóły | +| ----------------------------- | -------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | +| `issue_comment` | Skomentuj problem lub PR | Wspomnij o `/opencode` lub `/oc` w swoim komentarzu. OpenCode odczytuje kontekst i może być częścią składową, otwieraną przez PR lub odpowiedzialną. | +| `pull_request_review_comment` | Komentarz określonym kodem w PR | Wspomnij o `/opencode` lub `/oc` podczas przeglądania kodu. OpenCode źródło pochodzenia, numery linii i kontekst różnicowy. | +| `issues` | Wydanie otwarte lub edytowane | Automatycznie wyzwalaj OpenCode po utworzeniu lub zmodyfikowaniu problemów. Wymaga wejścia `prompt`. | +| `pull_request` | PR otwarty lub zaktualizowany | Automatycznie wyzwalaj OpenCode, gdy PR są otwierane, synchronizowane lub ponownie otwierane. Przydatne w przypadku automatycznych znajomych. | +| `schedule` | Harmonogram oparty na Cron | Uruchom OpenCode zgodnie z harmonogramem. Wymagane wejście `prompt`. Dane wejściowe trafiają do dzienników i trafiań PR (nie ma problemu z recenzją). | +| `workflow_dispatch` | Ręczny wyłącznik z interfejsu użytkownika GitHub | Uruchom OpenCode na karcie Akcje. Wymagane wejście `prompt`. Dane wejściowe trafiają do dzienników i odbiorców PR. | + +### Przykład harmonogramu + +Uruchamiaj OpenCode zgodnie z harmonogramem, aby wykonać zautomatyzowane zadania: + +```yaml title=".github/workflows/opencode-scheduled.yml" +name: Scheduled OpenCode Task + +on: + schedule: + - cron: "0 9 * * 1" # Every Monday at 9am UTC + +jobs: + opencode: + runs-on: ubuntu-latest + permissions: + id-token: write + contents: write + pull-requests: write + issues: write + steps: + - name: Checkout repository + uses: actions/checkout@v6 + with: + persist-credentials: false + + - name: Run OpenCode + uses: anomalyco/opencode/github@latest + env: + ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} + with: + model: anthropic/claude-sonnet-4-20250514 + prompt: | + Review the codebase for any TODO comments and create a summary. + If you find issues worth addressing, open an issue to track them. +``` + +W przypadku wystąpienia danych wyjściowych `prompt` są **wymagane**, które nie są dostarczane, z których można wyodrębnić instrukcje. Zaplanowane przepływomierze pracy bez kontekstu użytkownika, który został uruchomiony, więc przepływ pracy musi `contents: write` i `pull-requests: write`, wystąpisz, że OpenCode utworzył główne lub PR. + +--- + +### Przykład żądania ściągnięcia + +Automatycznie przeglądaj żądania ściągnięcia po ich otwarciu lub aktualizacji: + +```yaml title=".github/workflows/opencode-review.yml" +name: opencode-review + +on: + pull_request: + types: [opened, synchronize, reopened, ready_for_review] + +jobs: + review: + runs-on: ubuntu-latest + permissions: + id-token: write + contents: read + pull-requests: read + issues: read + steps: + - uses: actions/checkout@v6 + with: + persist-credentials: false + - uses: anomalyco/opencode/github@latest + env: + ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + model: anthropic/claude-sonnet-4-20250514 + use_github_token: true + prompt: | + Review this pull request: + - Check for code quality issues + - Look for potential bugs + - Suggest improvements +``` + +W przypadku zdarzenia `pull_request`, jeśli nie podano `prompt`, OpenCode użytkownika przeglądającego ściągnięcie. + +--- + +### Przykład segregacji problemów + +Automatycznie segreguj nowe problemy. Dziesięć przykładów filtruje do kont starszych niż 30 dni w celu ograniczenia spamu: + +```yaml title=".github/workflows/opencode-triage.yml" +name: Issue Triage + +on: + issues: + types: [opened] + +jobs: + triage: + runs-on: ubuntu-latest + permissions: + id-token: write + contents: write + pull-requests: write + issues: write + steps: + - name: Check account age + id: check + uses: actions/github-script@v7 + with: + script: | + const user = await github.rest.users.getByUsername({ + username: context.payload.issue.user.login + }); + const created = new Date(user.data.created_at); + const days = (Date.now() - created) / (1000 * 60 * 60 * 24); + return days >= 30; + result-encoding: string + + - uses: actions/checkout@v6 + if: steps.check.outputs.result == 'true' + with: + persist-credentials: false + + - uses: anomalyco/opencode/github@latest + if: steps.check.outputs.result == 'true' + env: + ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} + with: + model: anthropic/claude-sonnet-4-20250514 + prompt: | + 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. +``` + +W przypadku zdarzenia `issues` wprowadzenie `prompt` jest **wymagane**, ponieważ nie ma komentarza, z którego można wyodrębnić instrukcje. + +--- + +## Niestandardowe monity + +Zastąp domyślne monit, aby zastosować zachowanie OpenCode do twojego własnego pracy. + +```yaml title=".github/workflows/opencode.yml" +- uses: anomalyco/opencode/github@latest + with: + model: anthropic/claude-sonnet-4-5 + prompt: | + Review this pull request: + - Check for code quality issues + - Look for potential bugs + - Suggest improvements +``` + +Jest to przepis wykonawczy, który podlega przepisom kodowania lub zakresów tematycznych dla twojego projektu. + +--- + +## Przykłady + +Oto kilka możliwości wykorzystania OpenCode w GitHubie. + +- **Wyjaśnij problem** + + Dodaj dziesięć komentarzy w numerze GitHub. + + ``` + /opencode explain this issue + ``` + + OpenCode przeczytaj całość, zawierając dodatek z komentarzami i odpowiedzią z jasnym wyjaśnieniem. + +- **Napraw problem** + + W numerze GitHub powiedz: + + ``` + /opencode fix this + ``` + + A OpenCode utworzy nową podstawę, wdroży zmiany i zastąpi PR ze zmiany. + +- **Przegląd zmiany PR i wprowadzenie zmiany** + + Zostaw komentarz w PR GitHub. + + ``` + Delete the attachment from S3 when the note is removed /oc + ``` + + OpenCode zaimplementuje uruchomioną zmianę i zatwierdzi ją do tego samego PR. + +- **Przejrzyj konkretne linie kodu** + + Zostaw komentarz bezpośrednio w wierszu kodu w dodatku „Pliki” PR. OpenCode automatyczne wykrywanie pliku, numery linii i kontekst różnicowy, aby sprawdzić odpowiedzi. + + ``` + [Comment on specific lines in Files tab] + /oc add error handling here + ``` + + Komentując określone linie, OpenCode otrzymuje: + - Dokładny plik, który jest sprawdzany + - Konkretne linie kodu + - Otaczający kontekst różnicowy + - Informacje o numerze linii + + Dostępne na bardziej szczegółowe rozwiązanie bez konieczności stosowania ręcznego określania plików lub numerów wierszy. diff --git a/packages/web/src/content/docs/pl/gitlab.mdx b/packages/web/src/content/docs/pl/gitlab.mdx new file mode 100644 index 000000000..72b78f067 --- /dev/null +++ b/packages/web/src/content/docs/pl/gitlab.mdx @@ -0,0 +1,195 @@ +--- +title: GitLab +description: użyj OpenCode w problemach z GitLabem i zastosujch scalania. +--- + +OpenCode integruje się z przepływem pracy GitLab poprzez potok GitLab CI/CD lub z GitLab Duo. + +W obu przypadkach OpenCode będzie modułem GitLab. + +--- + +## GitLab CI + +OpenCode działa w zwykłym potoku GitLab. Możesz wbudować go w potok jako [komponent CI](https://docs.gitlab.com/ee/ci/components/) + +Tutaj obowiązkowego przez społeczność komponentu CI/CD dla OpenCode — [nagyv/gitlab-opencode](https://gitlab.com/nagyv/gitlab-opencode). + +--- + +### Cechy + +- **Użyj konfiguracji dla każdego zadania**: Skonfiguruj OpenCode z niestandardowym katalogiem konfiguracyjnym, na przykładzie `./config/#custom-directory`, aby włączyć lub funkcjonalności na każde wywołanie OpenCode. +- **Konfiguracja minimalna**: Komponent CI konfiguruje OpenCode w tle, wystarczy skonfigurować OpenCode i początkowy monit. +- **Elastyczny**: Komponent CI obsługuje kilka danych, które są stosowane w celu dostosowania jego zachowania + +--- + +### Organizować coś + +1. Przechowuj dane uwierzytelniające OpenCode w formacie JSON jako zmienne parametry CI typu pliku w specyfikacji **Ustawienia** > **CI/CD** > **Zmienne**. Zachowaj, aby być oznaczony jako „Zamaskowane i ukryte”. +2. Dodaj elementy do swojego pliku `.gitlab-ci.yml`. + + ```yaml title=".gitlab-ci.yml" + include: + - component: $CI_SERVER_FQDN/nagyv/gitlab-opencode/opencode@2 + inputs: + config_dir: ${CI_PROJECT_DIR}/opencode-config + auth_json: $OPENCODE_AUTH_JSON # The variable name for your OpenCode authentication JSON + command: optional-custom-command + message: "Your prompt here" + ``` + +Więcej danych dotyczących użycia [sprawdź opis](https://gitlab.com/explore/catalog/nagyv/gitlab-opencode) tego komponentu. + +--- + +## Duet GitLab + +OpenCode integruje się z przepływem pracy GitLab. +Wspomnij o `@opencode` w komentarzu, a OpenCode wykonaj zadania w ramach swojego potoku GitLab CI. + +--- + +### Cechy + +- **Problem związany z segregacją**: Poproś OpenCode o szczegółowe wyjaśnienie problemu i wyjaśnienie go. +- **Napraw i zaimplementuj**: Poproś OpenCode o naprawienie problemu lub zaimplementowanie funkcji. + Utworzył nowy oddział i zgłosi ataku ze sobą. +- **Bezpieczny**: OpenCode działa na modułach GitLab. + +--- + +### Organizować coś + +OpenCode działa w potoku CI/CD GitLab. Oto, czego potrzebujesz, aby przejść do: + +:::tip +Aktualne instrukcje dotyczące [**dokumentacji GitLab**](https://docs.gitlab.com/user/duo_agent_platform/agent_assistant/). +::: + +1. Skonfiguruj swoje środowisko GitLab +2. Skonfiguruj CI/CD +3. Uzyskaj klucz API dostawca modelu AI +4. Utwórz konto usługi +5. Skonfiguruj zmienne CI/CD +6. Utwórz plik konfiguracyjny, oto przykład: + + <details> + + <summary>Flow configuration</summary> + + ```yaml + image: node:22-slim + commands: + - echo "Installing opencode" + - npm install --global opencode-ai + - 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 "Configuring glab" + - echo $GITLAB_HOST + - echo "Creating OpenCode auth configuration" + - mkdir --parents ~/.local/share/opencode + - | + cat > ~/.local/share/opencode/auth.json << EOF + { + "anthropic": { + "type": "api", + "key": "$ANTHROPIC_API_KEY" + } + } + EOF + - echo "Configuring git" + - git config --global user.email "[email protected]" + - git config --global user.name "OpenCode" + - echo "Testing glab" + - glab issue list + - echo "Running OpenCode" + - | + opencode run " + You are an AI assistant helping with GitLab operations. + + Context: $AI_FLOW_CONTEXT + Task: $AI_FLOW_INPUT + Event: $AI_FLOW_EVENT + + Please execute the requested task using the available GitLab tools. + Be thorough in your analysis and provide clear explanations. + + <important> + Please use the glab CLI to access data from GitLab. The glab CLI has already been authenticated. You can run the corresponding commands. + + 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 "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 "Git changes detected, adding and pushing..." + git add . + if git diff --cached --quiet; then + echo "No staged changes to commit" + else + 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 "Changes successfully pushed" + fi + else + echo "No git changes detected, skipping push" + fi + variables: + - ANTHROPIC_API_KEY + - GITLAB_TOKEN_OPENCODE + - GITLAB_HOST + ``` + + </details> + +Szczegółowe instrukcje w [dokumentacji agentów GitLab CLI](https://docs.gitlab.com/user/duo_agent_platform/agent_assistant/). + +--- + +### Przykłady + +Oto kilka możliwości wykorzystania OpenCode w GitLabie. + +:::tip +Można zastosować inną metodę ograniczającą niż `@opencode`. +::: + +- **Wyjaśnij problem** + + Dodaj dziesięć komentarzy w numerze GitLab. + + ``` + @opencode explain this issue + ``` + + OpenCode przeczytaj problem i odpowiedź z wyjaśnieniem. + +- **Napraw problem** + + W numerze GitLab powiedz: + + ``` + @opencode fix this + ``` + + OpenCode utworzy nową podstawę, zaimplementuje zmiany i spowoduje, że skalowanie będzie możliwe. + +- **Przejrzyj prośby o połączenie** + + Zostaw komentarz w sprawie rozwiązania połączenia GitLab. + + ``` + @opencode review this merge request + ``` + + OpenCode sprawdzenie rozwiązania i przepuszczenie. diff --git a/packages/web/src/content/docs/pl/ide.mdx b/packages/web/src/content/docs/pl/ide.mdx new file mode 100644 index 000000000..a09475f6a --- /dev/null +++ b/packages/web/src/content/docs/pl/ide.mdx @@ -0,0 +1,48 @@ +--- +title: IDE +description: Rozszerzenie OpenCode dla VS Code, Cursor i innych IDE +--- + +OpenCode integruje się z VS Code, Cursorem lub obsługującym terminal IDE. Aby uruchomić, po prostu uruchom `opencode` w terminalu. + +--- + +## Stosowanie + +- **Szybkie uruchomienie**: użycie `Cmd+Esc` (Mac) lub `Ctrl+Esc` (Windows/Linux), aby uruchomić OpenCode w uruchamianiu terminala lub skoncentruj się na uruchamianiu terminala, jeśli jest już uruchomiony. +- **Nowa sesja**: `Cmd+Shift+Esc` (Mac) lub `Ctrl+Shift+Esc` (Windows/Linux), aby została nowa konfiguracja terminala OpenCode, nawet jeśli jest już otwarta. Możesz także kliknąć przycisk OpenCode w interfejsie użytkownika. +- **Świadomość kontekstu**: Automatycznie udostępnia wybór lub kartę za pomocą OpenCode. +- **Skróty do odwołania do plików**: `Cmd+Option+K` (Mac) lub `Alt+Ctrl+K` (Linux/Windows), aby wstawić odnośnik do plików. Na przykład `@File#L37-42`. + +--- + +## Instalacja + +Aby poznać OpenCode na VS Code w forkach, takich jak Cursor, Windsurf, VSCodium: + +1. Otwórz kod VS +2. Otwórz innowacyjny terminal +3. Uruchom `opencode` — rozszerzenie instaluje się automatycznie + +Jeśli z drugiej strony chcesz zainstalować własne IDE po uruchomieniu `/editor` lub `/export` z TUI, należy zainstalować `export EDITOR="code --wait"`. [Dowiedz się więcej](/docs/tui/#editor-setup). + +--- + +### Instalacja ręczna + +Wyszukaj **OpenCode** na rynku rozszerzonym i kliknij **Zainstaluj**. + +--- + +### Rozwiązywanie problemów + +Jeśli rozwiązanie nie zostanie zainstalowane automatycznie: + +- zastosowanie się, że użycie `opencode` w terminalu. +- zadziałanie, że CLI dla Twojego IDE jest zainstalowane: + - Dla kodu VS: polecenie `code` + - Dla kura: polecenie `cursor` + - Dla windsurfingu: decyzja `windsurf` + - Dla VSCodium: decyzja `codium` + - Jeśli nie, uruchom `Cmd+Shift+P` (Mac) lub `Ctrl+Shift+P` (Windows/Linux) i wyszukaj „Polecenie: zastosowanie decyzji„ kod ”w PATH” (lub właściwyk dla twojego IDE) +- zadziałanie, że VS Code ma pozwolenie na instalację rozszerzoną diff --git a/packages/web/src/content/docs/pl/index.mdx b/packages/web/src/content/docs/pl/index.mdx new file mode 100644 index 000000000..df97fd93f --- /dev/null +++ b/packages/web/src/content/docs/pl/index.mdx @@ -0,0 +1,359 @@ +--- +title: Wprowadzenie +description: Rozpocznij pracę z OpenCode. +--- + +import { Tabs, TabItem } from "@astrojs/starlight/components" +import config from "../../../../config.mjs" +export const console = config.console + +[**OpenCode**](/) do agenta kodującego AI typu open source. Dostępny jest jako interfejs terminalowy, aplikacja komputerowa lub rozszerzenie IDE. + + + +Zacznijmy. + +--- + +#### Warunki wstępne + +Aby uzyskać dostęp do OpenCode w swoim terminalu, będziesz potrzebować: + +1. Nowoczesny emulator terminala, taki jak: + - [WezTerm](https://wezterm.org), wieloplatformowy + - [Alacritty](https://alacritty.org), wieloplatformowy + - [Ghostty](https://ghostty.org), Linux i macOS + - [Kitty](https://sw.kovidgoyal.net/kitty/), Linux i macOS + +2. Klucze API dla dostawców LLM, z których korzystasz. + +--- + +## Zainstalować + +Najłatwiejszym sposobem instalowania OpenCode jest zastosowanie skryptu instalacyjnego. + +```bash +curl -fsSL https://opencode.ai/install | bash +``` + +Można także zalogować się do urządzenia instalacyjnego: + +- **Przy użyciu Node.js** + + <Tabs> + + <TabItem label="npm"> + ```bash + npm install -g opencode-ai + ``` + + </TabItem> + + <TabItem label="Bun"> + ```bash + bun install -g opencode-ai + ``` + + </TabItem> + + <TabItem label="pnpm"> + ```bash + pnpm install -g opencode-ai + ``` + + </TabItem> + + <TabItem label="Yarn"> + ```bash + yarn global add opencode-ai + ``` + + </TabItem> + + </Tabs> + +- **Korzystanie z Homebrew na macOS i Linux** + + ```bash + brew install anomalyco/tap/opencode + ``` + + > W celu uzyskania najbardziej aktualnej wersji zalecamy korzystanie z OpenCode. Oficjalna formuła `brew install opencode` jest utrzymywana przez zespół Homebrew i jest aktualizowana. + +- **Korzystanie z Paru na Arch Linux** + + ```bash + paru -S opencode-bin + ``` + +#### Okna + +:::tip[Zalecane: prowadzenie WSL] +Aby najlepiej wykorzystać działanie w systemie Windows, zalecamy udostępnienie [Podsystemu Windows dla systemu Linux (WSL)](/docs/windows-wsl). pozwolenie na użytkowanie i pełna kompatybilność z funkcjami OpenCode. +::: + +- **Używając czekolady** + + ```bash + choco install opencode + ``` + +- **Korzystanie z miarki** + + ```bash + scoop install opencode + ``` + +- **Przy użyciu NPM** + + ```bash + npm install -g opencode-ai + ``` + +- **Używając Mise’a** + + ```bash + mise use -g github:anomalyco/opencode + ``` + +- **Korzystanie z Dockera** + + ```bash + docker run -it --rm ghcr.io/anomalyco/opencode + ``` + +Obecnie trwają prace nad instalacją OpenCode w systemie Windows za pomocą Bun. + +Możesz także otrzymać plik binarny z [Releases](https://github.com/anomalyco/opencode/releases). + +--- + +## Skonfiguruj + +Dzięki OpenCode możesz korzystać z dowolnego dostawcy LLM, konfigurując jego klucze API. + +Jeśli nadal będziesz korzystać z dostawców LLM, zalecamy skorzystanie z [OpenCode Zen](/docs/zen). +Do wyselekcjonowanej listy modeli, które zostały zatwierdzone i zweryfikowane przez OpenCode +zespół. + +1. Uruchom opcję `/connect` w TUI, wybierz opencode i przejdź do [opencode.ai/auth](https://opencode.ai/auth). + + ```txt + /connect + ``` + +2. Zaloguj się, dodaj szczegóły rozliczeniowe i skopiuj klucz API. + +3. Wklej swój klucz API. + + ```txt + ┌ API key + │ + │ + └ enter + ``` + +Alternatywnie możesz wybrać jednego z dodatkowych dostawców. [Dowiedz się więcej](/docs/providers#directory). + +--- + +## Zainicjuj + +Po skonfigurowaniu dostawcy, który może przejść do projektu, który +chcesz pracować. + +```bash +cd /path/to/project +``` + +Uruchamiam OpenCode. + +```bash +opencode +``` + +Następnie zainicjuj OpenCode dla projektu, uruchamiając odpowiednią instrukcję. + +```bash frame="none" +/init +``` + +Spowoduje to, że OpenCode przeanalizuje Twój projekt i utworzy plik `AGENTS.md` +katalog główny projektu. + +:::tip +Powinieneś zatwierdzić plik `AGENTS.md` swojego projektu w Git. +::: + +Pomaga w OpenCode zrozumieniu struktury projektu i wzorce kodowania +używany. + +--- + +## Stosowanie + +Teraz możesz pracować nad swoim projektem. Możesz o to zapytać +wszystko! + +Jeśli tylko zaczniesz korzystać z agenta kodującego AI, oto kilka, które mogą być używane +pomoc. + +--- + +### Zadawaj pytania + +Możesz uruchomić OpenCode o wyjaśnienie bazy kodu. + +:::tip +klawisza klawisza `@` do wyszukiwania rozmytego plików w projekcie. +::: + +```txt frame="none" "@packages/functions/src/api/index.ts" +How is authentication handled in @packages/functions/src/api/index.ts +``` + +Jest to pomocne, jeśli istnieje część bazy kodu, nad którą nie pracowałeś. + +--- + +### Dodaj funkcje + +Możesz zastosować OpenCode o nowej funkcji do Twojego projektu. Najpierw zalecamy poproszenie o wypłacenie planu. + +1. **Plan Stworza** + + OpenCode ma _tryb płaski_, który umożliwia wyłączenie zmian i + zamiast tego zasugeruj, jak_ zaimplementuje tę funkcję. + + Przejdź do niego za pomocą klawisza **Tab**. W osobnym dolnym rogu zobacz właściwy wskaźnik. + + ```bash frame="none" title="Switch to Plan mode" + <TAB> + ``` + + Opiszmy teraz, co chcemy, żeby robił. + + ```txt frame="none" + 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. + ``` + + Wersja OpenCode zawiera dużo oprogramowania, aby zrozumieć, czego chcesz. To pomaga + rozmawiaj z nim tak, jakbyś rozmawiał z młodszym programistą w swoim zespole. + + :::tip + Podaj OpenCode kontekstu i kontekstu, które można zrozumieć, co Ty + chcieć. + ::: + +2. **Postęp zgodnie z planem** + + Gdy będziesz mieć plan, możesz pozostawić go lub podłączyć więcej. + + ```txt frame="none" + 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 + Przeciągnij i upuść obrazy do terminala, aby dodać je do monitu. + ::: + + OpenCode może zeskanować obrazy, które mu przekażesz i poprosisz o potwierdzenie. Możesz + należy to, przeciągając i upuszczając obraz do terminala. + +3. **Stwórz przełącza** + + Kiedy już jest komfortowo z planem, przełącz się z powrotem do _trybu_ + zamknięcie na klawisza **Tab**. + + ```bash frame="none" + <TAB> + ``` + + Poproszę o wprowadzenie zmian. + + ```bash frame="none" + Sounds good! Go ahead and make the changes. + ``` + +--- + +### Wprowadź zmiany + +Aby zastosować następczą zmianę, można zastosować OpenCode lub bezpośrednio zbudowanie go +bez konieczności wcześniejszego przeglądania planu. + +```txt frame="none" "@packages/functions/src/settings.ts" "@packages/functions/src/notes.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 +``` + +Musisz mieć dostęp, że pod warunkiem dostępności narzędzia, więc OpenCode ma właściwie +zmiany. + +--- + +### Cofnij zmiany + +Załóżmy, że prosisz OpenCode o wprowadzenie zmian. + +```txt frame="none" "@packages/functions/src/api/index.ts" +Can you refactor the function in @packages/functions/src/api/index.ts? +``` + +Ale z sobie sobie sprawę, że to nie jest to, czego chciałeś. **Możesz być** zmiany +za pomoc polecenia `/undo`. + +```bash frame="none" +/undo +``` + +OpenCode cofnie teraz zmiany i wyświetli wiadomość +Ponownie. + +```txt frame="none" "@packages/functions/src/api/index.ts" +Can you refactor the function in @packages/functions/src/api/index.ts? +``` + +Można zastosować monit i zastosować OpenCode o próbę próby. + +:::tip +Można `/undo` wiele razy, aby uniknąć wielu zmian. +::: + +Możesz też **możesz powtórzyć** zmianę za pomocą polecenia `/redo`. + +```bash frame="none" +/redo +``` + +--- + +## Udział + +Rozmowy z OpenCode można [udostępniać swoim +zespół](/docs/share). + +```bash frame="none" +/share +``` + +Spowoduje to, że łącza do bieżących połączeń idą do schowki. + +:::note +Rozmowy nie są ogólnodostępne. +::: + +Oto [przykładowa rozmowa](https://opencode.ai/s/4XP1fce5) z OpenCode. + +--- + +## Dostosuj + +tyle! Jesteś teraz profesjonalistą w korzystaniu z OpenCode. + +Aby dostosować go do potrzeb, zalecamy [wybranie motywu](/docs/themes), [dostosowanie skrótów klawiaturowych](/docs/keybinds), [konfigurowanie programów formatujących kod](/docs/formatters), [tworzenie niestandardowych kodów](/docs/commands) lub grę z [konfiguracją OpenCode](/docs/config). diff --git a/packages/web/src/content/docs/pl/keybinds.mdx b/packages/web/src/content/docs/pl/keybinds.mdx new file mode 100644 index 000000000..106e7c1ed --- /dev/null +++ b/packages/web/src/content/docs/pl/keybinds.mdx @@ -0,0 +1,192 @@ +--- +title: Skróty klawiszowe +description: Dostosuj swoje skróty klawiszowe. +--- + +OpenCode zawiera listę skrótów klawiszowych, które można zastosować poprzez OpenCode. + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "keybinds": { + "leader": "ctrl+x", + "app_exit": "ctrl+c,ctrl+d,<leader>q", + "editor_open": "<leader>e", + "theme_list": "<leader>t", + "sidebar_toggle": "<leader>b", + "scrollbar_toggle": "none", + "username_toggle": "none", + "status_view": "<leader>s", + "tool_details": "none", + "session_export": "<leader>x", + "session_new": "<leader>n", + "session_list": "<leader>l", + "session_timeline": "<leader>g", + "session_fork": "none", + "session_rename": "none", + "session_share": "none", + "session_unshare": "none", + "session_interrupt": "escape", + "session_compact": "<leader>c", + "session_child_cycle": "<leader>right", + "session_child_cycle_reverse": "<leader>left", + "session_parent": "<leader>up", + "messages_page_up": "pageup,ctrl+alt+b", + "messages_page_down": "pagedown,ctrl+alt+f", + "messages_line_up": "ctrl+alt+y", + "messages_line_down": "ctrl+alt+e", + "messages_half_page_up": "ctrl+alt+u", + "messages_half_page_down": "ctrl+alt+d", + "messages_first": "ctrl+g,home", + "messages_last": "ctrl+alt+g,end", + "messages_next": "none", + "messages_previous": "none", + "messages_copy": "<leader>y", + "messages_undo": "<leader>u", + "messages_redo": "<leader>r", + "messages_last_user": "none", + "messages_toggle_conceal": "<leader>h", + "model_list": "<leader>m", + "model_cycle_recent": "f2", + "model_cycle_recent_reverse": "shift+f2", + "model_cycle_favorite": "none", + "model_cycle_favorite_reverse": "none", + "variant_cycle": "ctrl+t", + "command_list": "ctrl+p", + "agent_list": "<leader>a", + "agent_cycle": "tab", + "agent_cycle_reverse": "shift+tab", + "input_clear": "ctrl+c", + "input_paste": "ctrl+v", + "input_submit": "return", + "input_newline": "shift+return,ctrl+return,alt+return,ctrl+j", + "input_move_left": "left,ctrl+b", + "input_move_right": "right,ctrl+f", + "input_move_up": "up", + "input_move_down": "down", + "input_select_left": "shift+left", + "input_select_right": "shift+right", + "input_select_up": "shift+up", + "input_select_down": "shift+down", + "input_line_home": "ctrl+a", + "input_line_end": "ctrl+e", + "input_select_line_home": "ctrl+shift+a", + "input_select_line_end": "ctrl+shift+e", + "input_visual_line_home": "alt+a", + "input_visual_line_end": "alt+e", + "input_select_visual_line_home": "alt+shift+a", + "input_select_visual_line_end": "alt+shift+e", + "input_buffer_home": "home", + "input_buffer_end": "end", + "input_select_buffer_home": "shift+home", + "input_select_buffer_end": "shift+end", + "input_delete_line": "ctrl+shift+d", + "input_delete_to_line_end": "ctrl+k", + "input_delete_to_line_start": "ctrl+u", + "input_backspace": "backspace,shift+backspace", + "input_delete": "ctrl+d,delete,shift+delete", + "input_undo": "ctrl+-,super+z", + "input_redo": "ctrl+.,super+shift+z", + "input_word_forward": "alt+f,alt+right,ctrl+right", + "input_word_backward": "alt+b,alt+left,ctrl+left", + "input_select_word_forward": "alt+shift+f,alt+shift+right", + "input_select_word_backward": "alt+shift+b,alt+shift+left", + "input_delete_word_forward": "alt+d,alt+delete,ctrl+delete", + "input_delete_word_backward": "ctrl+w,ctrl+backspace,alt+backspace", + "history_previous": "up", + "history_next": "down", + "terminal_suspend": "ctrl+z", + "terminal_title_toggle": "none", + "tips_toggle": "<leader>h", + "display_thinking": "none" + } +} +``` + +--- + +## Klucz lidera + +OpenCode używa klucza `leader` dla głównych skrótów klawiszowych. Rozwiązanie problemu konfliktów w terminalu. + +Domyślnie `ctrl+x` jest klawiszem głównym i główną akcją wymaga najpierw naciśnięcia klawisza lidera, a następnie skrótu. Na przykład, aby ponownie zastosować, następnie następuje `ctrl+x`, a następnie następuje `n`. + +Nie musisz mieć klawisza wiodącego do skrótów klawiszowych, ale zalecamy to Reg. + +--- + +## Wyłącz powiązanie klawiszy + +Możesz podłączyć powiązanie klawiszy, dodając klucz do swojej konfiguracji z wartością „none”. + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "keybinds": { + "session_compact": "none" + } +} +``` + +--- + +## Skróty monitów na pulpicie + +Pole sprawdzania aplikacji komputerowej OpenCode obsługuje popularne skróty w stylu Readline/Emacs do edycji tekstu. Są one dostępne i obecnie nie można ich skonfigurować za pomocą `opencode.json`. + +| Skrót | Akcja | +| -------- | ---------------------------------------- | +| `ctrl+a` | Przejdź do źródła regularnej linii | +| `ctrl+e` | Przejdź na koniec bieżącej linii | +| `ctrl+b` | Przesuń kursor do tyłu o jeden znak | +| `ctrl+f` | Przesuń kursor o jeden znak do przodu | +| `alt+b` | Przesuń kursor o jedno słowo wstecz | +| `alt+f` | Przesuń kursor do przodu o jedno słowo | +| `ctrl+d` | Usuń znak pod kursorem | +| `ctrl+k` | Zabij do końca linii | +| `ctrl+u` | Zabij na początek linii | +| `ctrl+w` | Zabij poprzednie słowo | +| `alt+d` | Zabij następne słowo | +| `ctrl+t` | Transponuj znaki | +| `ctrl+g` | Anuluj wyskakujące okienka / przerwij uruchamianie odpowiedzi | + +--- + +## Shift+Enter + +Istnieją terminale, które nie wysyłają klawiszy modyfikujących z Enterem. Może być konieczne skonfigurowanie terminala tak, aby wysłać `Shift+Enter` jako przerwanie zakończenia. + +### Terminal Windowsowy + +Otwórz swój `settings.json` pod adresem: + +``` +%LOCALAPPDATA%\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\settings.json +``` + +Dodaj do tablicy `actions` na poziomie wyższym: + +```json +"actions": [ + { + "command": { + "action": "sendInput", + "input": "\u001b[13;2u" + }, + "id": "User.sendInput.ShiftEnterCustom" + } +] +``` + +Dodaj do tablicy `keybindings` na poziomie wyższym: + +```json +"keybindings": [ + { + "keys": "shift+enter", + "id": "User.sendInput.ShiftEnterCustom" + } +] +``` + +Zapisz plik i uruchom ponownie terminal Windows lub otwórz nową kartę. diff --git a/packages/web/src/content/docs/pl/lsp.mdx b/packages/web/src/content/docs/pl/lsp.mdx new file mode 100644 index 000000000..970602e7a --- /dev/null +++ b/packages/web/src/content/docs/pl/lsp.mdx @@ -0,0 +1,188 @@ +--- +title: Serwery LSP +description: OpenCode integruje się z serwerem LSP. +--- + +OpenCode integruje się z protokołem serwera językowego (LSP), aby pomóc LLM w korzystaniu z bazowego kodu. Wykorzystuje diagnostykę, aby otrzymać odpowiedź zwrotną do LLM. + +--- + +## Wbudowany + +OpenCode posiada kilka wbudowanych serwerów LSP dla języków: + +| Serwer LSP | Rozszerzenie | Wymagania | +| ------------------ | ------------------------------------------------------------------- | ------------------------------------------------------------ | +| astro | .astro | Automatyczne instalacje dla Astro | +| bash | .sh, .bash, .zsh, .ksh | Automatycznie instaluje serwer języka bash | +| brzęk | .c, .cpp, .cc, .cxx, .c++, .h, .hpp, .hh, .hxx, .h++ | Automatyczne instalacje dla C/C++ | +| csharp | .cs | `.NET SDK` zainstalowany | +| clojure-lsp | .clj, .cljs, .cljc, .edn | Komenda `clojure-lsp` dostępna | +| strzałka | .dart | Komenda `dart` dostępna | +| nie | .ts, .tsx, .js, .jsx, .mjs | Dostępne rozwiązanie `deno` (automatyczne wykrywanie deno.json/deno.jsonc) | +| eliksir-ls | .ex, .exs | Komenda `elixir` dostępna | +| eslin | .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts, .vue | `eslint` zależność w projekcie | +| fsharp | .fs, .fsi, .fsx, .fsscript | `.NET SDK` zainstalowany | +| blask | .blask | Komenda `gleam` dostępna | +| gopls | .idź | Komenda `go` dostępna | +| hl | .hs, .lhs | Komenda `haskell-language-server-wrapper` dostępna | +| jdtl | .java | `Java SDK (version 21+)` zainstalowany | +| kotlin-ls | .kt, .kts | Automatyczne instalacje dla Kotlin | +| lua-ls | .lua | Automatyczne instalacje dla Lua | +| nixd | .nix | Komenda `nixd` dostępna | +| ocaml-lsp | .ml, .mli | Komenda `ocamllsp` dostępna | +| oxlint | .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts, .vue, .astro, .svelte | `oxlint` zależność w projekcie | +| php inteligentny | .php | Automatyczne instalacje dla PHP | +| pryzma | .prysma | Komenda `prisma` dostępna | +| pirat | .py, .pyi | Zainstalowana zależność `pyright` | +| ruby-lsp (rubocop) | .rb, .rake, .gemspec, .ru | Dostępne polecenie `ruby` i `gem` | +| rdza | .rs | Komenda `rust-analyzer` dostępna | +| sourcekit-lsp | .swift, .objc, .objcpp | `swift` zainstalowany (`xcode` na macOS) | +| smukły | smukły | Automatyczne instalacje dla aplikacji Svelte | +| terraforma | .tf, .tfvars | Automatyczne instalacje z wydań GitHub | +| malutka | .typ, .typc | Automatyczne instalacje z wydań GitHub | +| maszynopis | .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts | `typescript` zależność w projekcie | +| vue | .vue | Automatyczne instalacje dla Vue | +| yaml-ls | .yaml, .yml | Automatycznie instaluje serwer języka yaml Red Hat | +| zł | .zig, .zon | Komenda `zig` dostępna | + +Serwery LSP są automatycznie włączane po wykryciu jednego z rozszerzonych plików i wymagań. + +:::note +Możliwość automatycznego pobierania z serwera LSP, ustawianie zmiennej środowiska `OPENCODE_DISABLE_LSP_DOWNLOAD` na `true`. +::: + +--- + +## Jak to działa + +Gdy opencode otwiera plik, to: + +1. Sprawdzanie pliku na wszystkich dostępnych serwerach LSP. +2. Uruchamia właściwy serwer LSP, jeśli jeszcze nie działa. + +--- + +## Skonfiguruj + +Możesz dostosować serwery LSP poprzez sekcję `lsp` w konfiguracji opencode. + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "lsp": {} +} +``` + +Każdy serwer LSP obsługuje szczegółowe elementy: + +| Nieruchomość | Wpisz | Opis | +| ---------------- | -------- | ------------------------------------------------- | +| `disabled` | wartość logiczna | Ustaw tę opcję na `true`, aby włączyć serwer LSP | +| `command` | ciąg[] | Polecenie uruchomienia serwera LSP | +| `extensions` | ciąg[] | Rozszerzenia plików, które powinny mieć ten serwer LSP | +| `env` | obiekt | Zmienne ustawienia podczas uruchamiania serwera | +| `initialization` | obiekt | Opcje inicjalizacji do wysłania na serwer LSP | + +Spójrzmy na kilka przykładów. + +--- + +### Zmienne środowiskowe + +Zastosowanie `env`, aby ustawić zmienne parametry transmisji podczas uruchamiania serwera LSP: + +```json title="opencode.json" {5-7} +{ + "$schema": "https://opencode.ai/config.json", + "lsp": { + "rust": { + "env": { + "RUST_LOG": "debug" + } + } + } +} +``` + +--- + +### Opcje inicjalizacji + +właściwości `initialization`, aby mieć możliwość inicjalizacji na serwerze LSP. Są to ustawienia dla serwera wysyłającego podczas przełączania LSP `initialize`: + +```json title="opencode.json" {5-9} +{ + "$schema": "https://opencode.ai/config.json", + "lsp": { + "typescript": { + "initialization": { + "preferences": { + "importModuleSpecifierPreference": "relative" + } + } + } + } +} +``` + +:::note +Opcje inicjalizacji różnią się w zależności od serwera LSP. Sprawdź swój serwer LSP pod gniazdem. +::: + +--- + +### Wyłączanie serwerów LSP + +Aby wyłączyć **wszystkie** serwery LSP globalnie, ustaw `lsp` na `false`: + +```json title="opencode.json" {3} +{ + "$schema": "https://opencode.ai/config.json", + "lsp": false +} +``` + +Aby wyłączyć **określony** serwer LSP, ustawa `disabled` na `true`: + +```json title="opencode.json" {5} +{ + "$schema": "https://opencode.ai/config.json", + "lsp": { + "typescript": { + "disabled": true + } + } +} +``` + +--- + +### Niestandardowe serwery LSP + +Serwer udostępniający serwery LSP, mechanizmy sterujące i udostępniane pliki: + +```json title="opencode.json" {4-7} +{ + "$schema": "https://opencode.ai/config.json", + "lsp": { + "custom-lsp": { + "command": ["custom-lsp-server", "--stdio"], + "extensions": [".custom"] + } + } +} +``` + +--- + +## Dodatkowe informacje + +### PHP Intelefense + +PHP Intelephense oferuje funkcje premium poprzez klucz licencyjny. Możesz przechowywać klucz licencyjny umieszczając (tylko) klucz w pliku tekstowym pod adresem: + +- W systemie macOS/Linux: `$HOME/intelephense/licence.txt` +- W systemie Windows: `%USERPROFILE%/intelephense/licence.txt` + +Plik powinien zawierać wyłącznie klucz licencyjny, bez udostępniania treści. diff --git a/packages/web/src/content/docs/pl/mcp-servers.mdx b/packages/web/src/content/docs/pl/mcp-servers.mdx new file mode 100644 index 000000000..f0acec9b0 --- /dev/null +++ b/packages/web/src/content/docs/pl/mcp-servers.mdx @@ -0,0 +1,511 @@ +--- +title: Serwery MPK +description: Dodaj lokalne i zdalne narzędzie MCP. +--- + +Możesz dodać dodatkowe informacje do OpenCode za pomocą _Model Context Protocol_, w skrócie MCP. OpenCode obsługuje zarówno serwery lokalne, jak i zdalne. + +Po dodaniu narzędzi MCP są automatycznie dostępne dla LLM wraz z narzędziami narzędziowymi. + +--- + +#### Zastrzeżenia + +Kiedy używasz serwera MCP, zmieniając kontekst. Może szybko się sumować, jeśli masz dużo narzędzia. Zalecamy ostrożność, z jakich serwerów MCP korzystasz. + +:::tip +Serwery MCP dodają do twojego kontekstu, dlatego należy zachować ostrożność przy wyłączaniu tych serwerów. +::: + +Niektóre serwery MCP, takie jak serwer MCP GitHub, mają szerokie możliwości dodawania wielu tokenów i mogą łatwo przekraczać limit kontekstu. + +--- + +## Włączać + +Dostępny serwery MCP w [OpenCode Config](https://opencode.ai/docs/config/) w `mcp`. Dodaj każdy MCP z unikalną nazwą. Możesz zgłosić się do tego MCP po nazwie, pytając LLM. + +```jsonc title="opencode.jsonc" {6} +{ + "$schema": "https://opencode.ai/config.json", + "mcp": { + "name-of-mcp-server": { + // ... + "enabled": true, + }, + "name-of-other-mcp-server": { + // ... + }, + }, +} +``` + +Możesz także wyłączyć serwer, ustawiając `enabled` na `false`. Jest to urządzenie, które jest urządzeniem biologicznym, bez usuwania z urządzenia. + +--- + +### Zastępowanie zdalnych ustawień domyślnych + +Organizacje mogą udostępniać serwery MCP za pośrednictwem punktu końcowego `.well-known/opencode`. Serwer może być podłączony, dzięki czemu użytkownicy mogą wybrać te, których. + +Aby włączyć serwer ze zdalnej konfiguracji organizacji, dodaj go do wyłączenia za pomocą `enabled: true`: + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "mcp": { + "jira": { + "type": "remote", + "url": "https://jira.example.com/mcp", + "enabled": true + } + } +} +``` + +Lokalne wartości konfiguracyjne za występujące zdalne wartości. Aby uzyskać więcej informacji, zobacz [pierwszeństwo konfiguracji](/docs/config#precedence-order). + +--- + +## Lokalny + +Dodaj lokalne serwery MCP za pomocą `type` do `"local"` w obiekcie MCP. + +```jsonc title="opencode.jsonc" {15} +{ + "$schema": "https://opencode.ai/config.json", + "mcp": { + "my-local-mcp-server": { + "type": "local", + // Or ["bun", "x", "my-mcp-command"] + "command": ["npx", "-y", "my-mcp-command"], + "enabled": true, + "environment": { + "MY_ENV_VAR": "my_env_var_value", + }, + }, + }, +} +``` + +Polecenie sposobu uruchamiania lokalnego serwera MCP. Można także zainstalować listę konfiguracyjną. + +Oto przykładowy sposób dodania testowego serwera MCP [`@modelcontextprotocol/server-everything`](https://www.npmjs.com/package/@modelcontextprotocol/server-everything). + +```jsonc title="opencode.jsonc" +{ + "$schema": "https://opencode.ai/config.json", + "mcp": { + "mcp_everything": { + "type": "local", + "command": ["npx", "-y", "@modelcontextprotocol/server-everything"], + }, + }, +} +``` + +Aby z niego skorzystać, można dodać `use the mcp_everything tool` do moich podpowiedzi. + +```txt "mcp_everything" +use the mcp_everything tool to add the number 3 and 4 +``` + +--- + +#### Opcje + +Oto wszystkie opcje lokalnego serwera MCP. + +| Opcja | Wpisz | Wymagane | Opis | +| ------------- | ------- | -------- | ----------------------------------------------------------------------------------- | +| `type` | Ciąg | Y | Typ połączenia z serwerem MCP musi być `"local"`. | +| `command` | Tablica | Y | Polecenie i argumenty uruchamiające serwer MCP. | +| `environment` | Obiekt | | Zmienne ustawienia podczas uruchamiania serwera. | +| `enabled` | Wartość logiczna | | Włącz lub wyłącz serwer MCP podczas uruchamiania. | +| `timeout` | Numer | | Limit czasu w ms na pobieranie narzędzia z serwera MCP. Wartość domyślna do 5000 (5 sekund). | + +--- + +## Zdalny + +Dodaj zdalne serwery MCP, ustawiając `type` na `"remote"`. + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "mcp": { + "my-remote-mcp": { + "type": "remote", + "url": "https://my-mcp-server.com", + "enabled": true, + "headers": { + "Authorization": "Bearer MY_API_KEY" + } + } + } +} +``` + +`url` na adres URL zdalnego serwera MCP i za pomocą opcji `headers` można znaleźć listę nagłówków. + +--- + +#### Opcje + +| Opcja | Wpisz | Wymagane | Opis | +| --------- | ------- | -------- | ----------------------------------------------------------------------------------- | +| `type` | Ciąg | Y | Typ połączenia z serwerem MCP musi być `"remote"`. | +| `url` | Ciąg | Y | Adres URL zdalnego serwera MCP. | +| `enabled` | Wartość logiczna | | Włącz lub wyłącz serwer MCP podczas uruchamiania. | +| `headers` | Obiekt | | Nagłówki do wysłania z wprowadzenia. | +| `oauth` | Obiekt | | Konfiguracja uwierzytelniania OAuth. Zobacz sekcję [OAuth](#oauth) poniżej. | +| `timeout` | Numer | | Limit czasu w ms na pobieranie narzędzia z serwera MCP. Wartość domyślna do 5000 (5 sekund). | + +--- + +## OAuth + +OpenCode automatyczne uwierzytelnianie OAuth dla zdalnych serwerów MCP. Gdy serwer wymaga uwierzytelnienia, OpenCode: + +1. Wykryj odpowiedź 401 i zainijuj przepływ OAuth +2. używa **Dynamicznej rejestracji klienta (RFC 7591)**, jeśli jest obsługiwana przez serwer +3. Bezpiecznie przechowuj tokeny na wypadek ewentualnego zastosowania + +--- + +### Automatyczny + +W innym serwerze MCP z włączoną funkcją OAuth nie jest wymagana specjalna funkcja. Dostępny serwer bezprzewodowy: + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "mcp": { + "my-oauth-server": { + "type": "remote", + "url": "https://mcp.example.com/mcp" + } + } +} +``` + +Jeśli serwer wymaga uwierzytelnienia, OpenCode poprosi Cię o uwierzytelnienie przy próbie jego użycia. Jeśli nie, możesz [ręcznie podłączyć przepływ] (#authenticating) za pomocą `opencode mcp auth <server-name>`. + +--- + +### Wstępnie zarejestrowany + +Jeśli posiadasz dostęp do klienta od dostawcy serwera MCP, możesz je udostępnić: + +```json title="opencode.json" {7-11} +{ + "$schema": "https://opencode.ai/config.json", + "mcp": { + "my-oauth-server": { + "type": "remote", + "url": "https://mcp.example.com/mcp", + "oauth": { + "clientId": "{env:MY_MCP_CLIENT_ID}", + "clientSecret": "{env:MY_MCP_CLIENT_SECRET}", + "scope": "tools:read tools:execute" + } + } + } +} +``` + +--- + +### Uwierzytelnianie + +Możesz podać potwierdzenie lub potwierdzenie poświadczenia. + +Uwierzytelnij się za pomocą standardowego serwera MCP: + +```bash +opencode mcp auth my-oauth-server +``` + +Lista wszystkich serwerów MCP i ich status uwierzytelnienia: + +```bash +opencode mcp list +``` + +Usuń zapisane dane uwierzytelniające: + +```bash +opencode mcp logout my-oauth-server +``` + +Komenda `mcp auth` została udostępniona w celu autoryzacji. Po autoryzacji OpenCode bezpieczne przechowa tokeny w `~/.local/share/opencode/mcp-auth.json`. + +--- + +#### Wyłączanie OAuth + +Jeśli chcesz włączyć automatyczne OAuth dla serwera (np. dla serwerów, które zamiast tego używać kluczy API), ustaw `oauth` na `false`: + +```json title="opencode.json" {7} +{ + "$schema": "https://opencode.ai/config.json", + "mcp": { + "my-api-key-server": { + "type": "remote", + "url": "https://mcp.example.com/mcp", + "oauth": false, + "headers": { + "Authorization": "Bearer {env:MY_API_KEY}" + } + } + } +} +``` + +--- + +#### Opcje OAuth + +| Opcja | Wpisz | Opis | +| -------------- | --------------- | -------------------------------------------------------------------------------- | +| `oauth` | Obiekt \| fałszywe | Obiekt konfiguracyjny OAuth lub `false`, aby wyłączyć automatyczne wykrywanie OAuth. | +| `clientId` | Ciąg | Identyfikator klienta OAuth. Jeżeli nie zostanie podany, zostanie podjęta próba dynamicznej rejestracji klienta. | +| `clientSecret` | Ciąg | Sekret klienta OAuth, plik jest wymagany przez serwer autoryzacji. | +| `scope` | Ciąg | Zakresy protokołu OAuth, których należy żądać podczas autoryzacji. | + +#### Debugowanie + +Jeśli serwer MCP nie może zostać uwierzytelniony, możesz zdiagnozować problemy z: + +```bash +# View auth status for all OAuth-capable servers +opencode mcp auth list + +# Debug connection and OAuth flow for a specific server +opencode mcp debug my-oauth-server +``` + +Komenda `mcp debug` wyświetlanie stanu uwierzytelniania, testuje sprawdzanie protokołu HTTP i sprawdzenie sprawdzenia procesu OAuth. + +--- + +## Zarządzać + +Twoje MCP są dostępne jako narzędzie w OpenCode, obok narzędzi dodatkowych. Można to zrobić poprzez podłączenie OpenCode, jak również w innym przypadku. + +--- + +### Światowy + +Możesz to włączyć lub wyłączyć globalnie. + +```json title="opencode.json" {14} +{ + "$schema": "https://opencode.ai/config.json", + "mcp": { + "my-mcp-foo": { + "type": "local", + "command": ["bun", "x", "my-mcp-command-foo"] + }, + "my-mcp-bar": { + "type": "local", + "command": ["bun", "x", "my-mcp-command-bar"] + } + }, + "tools": { + "my-mcp-foo": false + } +} +``` + +Dostępne są również wzorca globu, aby wyłączyć wszystkie dyski MCP. + +```json title="opencode.json" {14} +{ + "$schema": "https://opencode.ai/config.json", + "mcp": { + "my-mcp-foo": { + "type": "local", + "command": ["bun", "x", "my-mcp-command-foo"] + }, + "my-mcp-bar": { + "type": "local", + "command": ["bun", "x", "my-mcp-command-bar"] + } + }, + "tools": { + "my-mcp*": false + } +} +``` + +Tutaj znajdziesz wzorca globalnego `my-mcp*`, aby wyłączyć wszystkie MCP. + +--- + +### Na agenta + +Jeśli masz największe serwery MCP, możesz włączyć je tylko dla poszczególnych agentów i być globalnie. Aby to zrobić: + +1. Wyłącz go jako narzędzie globalnie. +2. W [konfiguracji agenta](/docs/agents#tools) włącz serwer MCP jako narzędzie. + +```json title="opencode.json" {11, 14-18} +{ + "$schema": "https://opencode.ai/config.json", + "mcp": { + "my-mcp": { + "type": "local", + "command": ["bun", "x", "my-mcp-command"], + "enabled": true + } + }, + "tools": { + "my-mcp*": false + }, + "agent": { + "my-agent": { + "tools": { + "my-mcp*": true + } + } + } +} +``` + +--- + +#### Wzory globusów + +Wzorzec glob wykorzystuje proste wzorce globowania regularnych: + +- `*` dopasowuje zero lub więcej dowolnego znaku (np. `"my-mcp*"` dopasowuje `my-mcp_search`, `my-mcp_list` itd.) +- `?` odpowiada dokładnie jednemu znakowi +- Wszystkie pozostałe znaki pasują dosłownie + +:::note +Narzędzia serwera MCP są rejestrowane z nazwą serwera jako prefiksem, więc aby uzyskać dostęp do wszystkich narzędzi dla serwera, po prostu dostęp do: + +``` +"mymcpservername_*": false +``` + +::: + +--- + +## Przykłady + +Poniżej znajdują się przykłady niektórych serwerów MCP. Twój prywatny PR, udostępniany przez inne serwery. + +--- + +### Wartownik + +Dodaj [serwer Sentry MCP](https://mcp.sentry.dev), aby móc wejść w interakcję z projektem i udostępnić Sentry. + +```json title="opencode.json" {4-8} +{ + "$schema": "https://opencode.ai/config.json", + "mcp": { + "sentry": { + "type": "remote", + "url": "https://mcp.sentry.dev/mcp", + "oauth": {} + } + } +} +``` + +Po dodaniu konfiguracji uwierzytelnij się za pomocą Sentry: + +```bash +opencode mcp auth sentry +``` + +Spowoduje otwarcie okna konfiguracji, w którym można zakończyć proces OAuth i połączyć OpenCode z kontem Sentry. + +Po uwierzytelnieniu oprogramowania Sentry w swoich monitach, aby rozprzestrzeniać zagrożenia, dane i błędy. + +```txt "use sentry" +Show me the latest unresolved issues in my project. use sentry +``` + +--- + +### Kontekst7 + +Dodaj [serwer Context7 MCP](https://github.com/upstash/context7), aby przeszukać dokumenty. + +```json title="opencode.json" {4-7} +{ + "$schema": "https://opencode.ai/config.json", + "mcp": { + "context7": { + "type": "remote", + "url": "https://mcp.context7.com/mcp" + } + } +} +``` + +Jeśli założyłeś darmowe konto, możesz użyć klucza API i uzyskać wyższy limit stawek. + +```json title="opencode.json" {7-9} +{ + "$schema": "https://opencode.ai/config.json", + "mcp": { + "context7": { + "type": "remote", + "url": "https://mcp.context7.com/mcp", + "headers": { + "CONTEXT7_API_KEY": "{env:CONTEXT7_API_KEY}" + } + } + } +} +``` + +Załóż tutaj, że masz ustawioną zmienną środowiskową `CONTEXT7_API_KEY`. + +Dodaj `use context7` do swoich podpowiedzi, aby skorzystać z serwera Context7 MCP. + +```txt "use context7" +Configure a Cloudflare Worker script to cache JSON API responses for five minutes. use context7 +``` + +Alternatywnie możesz zadać coś takiego do pliku [AGENTS.md](/docs/rules/). + +```md title="AGENTS.md" +When you need to search docs, use `context7` tools. +``` + +--- + +### Grep firmy Vercel + +Dodaj serwer MCP [Grep by Vercel](https://grep.app), aby przeszukać fragmenty kodu w serwisie GitHub. + +```json title="opencode.json" {4-7} +{ + "$schema": "https://opencode.ai/config.json", + "mcp": { + "gh_grep": { + "type": "remote", + "url": "https://mcp.grep.app" + } + } +} +``` + +Nazwaliśmy nasz serwer MCP `gh_grep`, możesz dodać `use the gh_grep tool` do swoich podpowiedzi, aby agent mógł z niego korzystać. + +```txt "use the gh_grep tool" +What's the right way to set a custom domain in an SST Astro component? use the gh_grep tool +``` + +Alternatywnie możesz zadać coś takiego do pliku [AGENTS.md](/docs/rules/). + +```md title="AGENTS.md" +If you are unsure how to do something, use `gh_grep` to search code examples from GitHub. +``` diff --git a/packages/web/src/content/docs/pl/models.mdx b/packages/web/src/content/docs/pl/models.mdx new file mode 100644 index 000000000..580295fd4 --- /dev/null +++ b/packages/web/src/content/docs/pl/models.mdx @@ -0,0 +1,223 @@ +--- +title: Modele +description: Konfigurowanie dostawcy i modelu LLM. +--- + +OpenCode używa [AI SDK](https://ai-sdk.dev/) i [Models.dev](https://models.dev) do obsługi **ponad 75 dostawców LLM** i obsługi uruchamiania modeli pierwszych. + +--- + +## Dostawcy + +Dostępna usługa dostawcy jest dostępna. Jeśli otrzymasz poświadczenie dostawcy za pomocą polecenia `/connect`, będzie on dostępny po uruchomieniu OpenCode. + +Dowiedz się więcej o [dostawcach](/docs/providers). + +--- + +## Wybierz model + +Po skonfigurowaniu dostawcy możesz wybrać dostępny model, wpisując: + +```bash frame="none" +/models +``` + +--- + +## Polecane modele + +Na rynku jest mnóstwo modeli, co tydzień pojawia się nowe. + +:::tip +Rozważ skorzystanie z jednego z rekomendowanych przez nas modeli. +::: + +Jednak tylko kilka z nich jest dobrych przy generowaniu kodu, jak i wywołaniu narzędzia. + +Oto kilka modeli, które dobrze współpracują z OpenCode, w kolejności. (Nie jest to lista wyczerpująca i nie jest konieczna aktualna): + +- GPT 5.2 +- Kodeks GPT 5.1 +- Klaudiusz Opus 4.5 +- Claude Sonnet 4.5 +- Minimax M2.1 +- Bliźnięta 3Pro + +--- + +## Ustaw wartość domyślną + +Aby zainstalować jeden z nich jako model domyślny, możesz zainstalować klucz `model` w swoim +OpenCode konfiguracja + +```json title="opencode.json" {3} +{ + "$schema": "https://opencode.ai/config.json", + "model": "lmstudio/google/gemma-3n-e4b" +} +``` + +Tutaj pełny identyfikator do `provider_id/model_id`. Na przykład, użycie [OpenCode Zen](/docs/zen), przestrzeganie `opencode/gpt-5.1-codex` dla Kodeksu GPT 5.1. + +Jeśli skonfigurowałeś [dostawcę zwykłegogo] (./providers#custom), `provider_id` jest kluczem z części `provider` twojej konfiguracji, a `model_id` jest kluczem z `provider.models`. + +--- + +## Skonfiguruj modele + +Można globalnie skorzystać z opcji modelu poprzez plik config. + +```jsonc title="opencode.jsonc" {7-12,19-24} +{ + "$schema": "https://opencode.ai/config.json", + "provider": { + "openai": { + "models": { + "gpt-5": { + "options": { + "reasoningEffort": "high", + "textVerbosity": "low", + "reasoningSummary": "auto", + "include": ["reasoning.encrypted_content"], + }, + }, + }, + }, + "anthropic": { + "models": { + "claude-sonnet-4-5-20250929": { + "options": { + "thinking": { + "type": "enabled", + "budgetTokens": 16000, + }, + }, + }, + }, + }, + }, +} +``` + +Tutaj konfigurujemy urządzenia globalne dla dwóch modeli: `gpt-5` w przypadku dostępu za pośrednictwem dostawcy `openai` i `claude-sonnet-4-20250514` w przypadku dostępu za pośrednictwem dostawcy `anthropic`. +Wbudowane nazwy dostawców i modele można znaleźć na [Models.dev](https://models.dev). + +Można także skorzystać z opcji dla dowolnych agentów, których używa się. Konfiguracja agenta jest dostępna jako opcja globalna. [Dowiedz się więcej](/docs/agents/#additional). + +Można również zastosować alternatywne warianty, które wykluczają. Warianty konfiguracji ustawień konfiguracyjnych dla tego samego modelu bez tworzenia duplikatów wpisów: + +```jsonc title="opencode.jsonc" {6-21} +{ + "$schema": "https://opencode.ai/config.json", + "provider": { + "opencode": { + "models": { + "gpt-5": { + "variants": { + "high": { + "reasoningEffort": "high", + "textVerbosity": "low", + "reasoningSummary": "auto", + }, + "low": { + "reasoningEffort": "low", + "textVerbosity": "low", + "reasoningSummary": "auto", + }, + }, + }, + }, + }, + }, +} +``` + +--- + +## Warianty + +Wiele modeli obsługuje wiele wariantów lub różnych wybranych. OpenCode jest dostarczany z podstawowymi wariantami wariantów dla dostawców. + +### Wbudowane warianty + +OpenCode jest dostarczany z domyślnymi wariantami dla wielu dostawców: + +**Antropiczny**: + +- `high` – Wysoki budżet na przemyślenie (domyślnie) +- `max` - Maksymalny budżet na myślenie + +**OpenAI**: + +Różni się zależnością od modelu, ale mniej więcej: + +- `none` – Brak uzasadnienia +- `minimal` - Minimalny wysiłek rozumowania +- `low` - Niewielki wysiłek w zakresie rozumowania +- `medium` – Średni wysiłek rozumowania +- `high` - Duży wysiłek w zakresie rozumowania +- `xhigh` - Bardzo duży wysiłek w zakresie rozumowania + +**Google**: + +- `low` — Mniejszy nakład pracy/budżet tokena +- `high` — Większy nakład pracy/budżet tokena + +:::tip +Lista ta nie jest kompletna. Wielu innych dostawców oferuje także opcję odchylenia ustawień. +::: + +### Warianty niestandardowe + +Można uwzględnić warianty lub dodać własne: + +```jsonc title="opencode.jsonc" {7-18} +{ + "$schema": "https://opencode.ai/config.json", + "provider": { + "openai": { + "models": { + "gpt-5": { + "variants": { + "thinking": { + "reasoningEffort": "high", + "textVerbosity": "low", + }, + "fast": { + "disabled": true, + }, + }, + }, + }, + }, + }, +} +``` + +### Warianty cyklu + +Naciśnij klawisza `variant_cycle`, aby szybko przełączać się między wariantami. [Dowiedz się więcej](/docs/keybinds). + +--- + +## Ładowanie modeli + +Po uruchomieniu OpenCode sprawdzanie modeli w następującej kolejności: + +1. Flaga wiersza autora `--model` lub `-m`. Format jest taki sam jak w pliku konfiguracyjnym: `provider_id/model_id`. + +2. Lista modeli w konstrukcji OpenCode. + + ```json title="opencode.json" + { + "$schema": "https://opencode.ai/config.json", + "model": "anthropic/claude-sonnet-4-20250514" + } + ``` + + Sformatuj tutaj na `provider/model`. + +3. Ostatni używany model. + +4. Pierwszy model sterujący priorytetem wewnętrznym. diff --git a/packages/web/src/content/docs/pl/modes.mdx b/packages/web/src/content/docs/pl/modes.mdx new file mode 100644 index 000000000..a5348251d --- /dev/null +++ b/packages/web/src/content/docs/pl/modes.mdx @@ -0,0 +1,331 @@ +--- +title: Tryby +description: Różne tryby dla różnych zastosowań. +--- + +:::caution +Tryby są teraz konfigurowane za pomocą opcji `agent` w konfiguracji opencode. +Opcja `mode` jest obecnie przestarzała. [Dowiedz się więcej](/docs/agents). +::: + +Tryb udostępniania możliwości stosowania, narzędzie i podpowiedzi do różnych zastosowań. + +Posiadanie dwa tryby: **budowanie** i **planowanie**. Można dostosować +te lub skonfiguruj własne za pomocą konfiguracji opencode. + +Można przełączać się między trybami podczas sesji lub konfigurować je w pliku konfiguracyjnym. + +--- + +## Wbudowany + +opencode ma dwa puste tryby. + +--- + +### Zbudować + +Kompilacja jest trybem **domyślnym** z dostępnymi narzędziami. Jest to standardowy tryb pracy programistycznej, który jest dostępny z pełnym dostępem do operacji na plikach i oryginalnych systemach systemowych. + +--- + +### Plan + +Tryb ograniczony do analizy. W urządzeniu planowym narzędzia są przydatne: + +- `write` - Nie można stworzyć nowych plików +- `edit` — Nie można zastosować naruszenia plików, z naruszeniem praw autorskich w `.opencode/plans/*.md` w celu uszczegółowienia samego planu +- `patch` - Nie można zastosować poprawek +- `bash` - Nie można wykonać poleceń powłoki + +Ten tryb jest alternatywny, gdy chcesz, aby sztuczna inteligencja analizowała kod, sugerowała zmianę lub tworzyła projekty bez źródła zewnętrznego, które stanowi bazę kodu. + +--- + +## Przełączanie + +Możesz przełączać się między trybami podczas sesji za pomocą klawisza _Tab_. Lub skrót klawiszowy `switch_mode`. + +Zobacz także: [Formaterzy](/docs/formatters), aby uzyskać informacje na temat konfiguracji formatowania kodu. + +--- + +## Skonfiguruj + +Możliwość dostosowania alternatywnego trybu lub konfiguracji poprzez własną konfigurację. Tryb można skonfigurować na dwa systemy: + +### Konfiguracja JSON-a + +Skonfiguruj tryb w pliku konfiguracyjnym `opencode.json`: + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "mode": { + "build": { + "model": "anthropic/claude-sonnet-4-20250514", + "prompt": "{file:./prompts/build.txt}", + "tools": { + "write": true, + "edit": true, + "bash": true + } + }, + "plan": { + "model": "anthropic/claude-haiku-4-20250514", + "tools": { + "write": false, + "edit": false, + "bash": false + } + } + } +} +``` + +### Konfiguracja przecen + +Można także definiować tryby za pomocą plików przecen. Trzymaj je w: + +- Globalnie: `~/.config/opencode/modes/` +- Projekt: `.opencode/modes/` + +```markdown title="~/.config/opencode/modes/review.md" +--- +model: anthropic/claude-sonnet-4-20250514 +temperature: 0.1 +tools: + write: false + edit: false + bash: false +--- + +You are in code review mode. Focus on: + +- Code quality and best practices +- Potential bugs and edge cases +- Performance implications +- Security considerations + +Provide constructive feedback without making direct changes. +``` + +Nazwa pliku przecen staje się kluczem trybunału (np. `review.md` tworzy tryb `review`). + +Przyjrzyjmy się szczegółowo tym opcjom konfiguracji. + +--- + +### Model + +Zastosowanie konstrukcji `model`, aby zastosować domyślny model dla tego trybunału. Przydatne przy wykorzystaniu różnych modeli dostępnych w różnych zadaniach. Na przykład zastosowanie modelu, skuteczniejsze wykonanie modelu. + +```json title="opencode.json" +{ + "mode": { + "plan": { + "model": "anthropic/claude-haiku-4-20250514" + } + } +} +``` + +--- + +### Temperatura + +Kontroluj losowość i kreatywność reakcji AI za pomocą konstrukcji `temperature`. Niższe wartości, że odpowiedzi są bardziej skupione i deterministyczne, podczas gdy najwyższa wartość jest innowacyjna i złożona. + +```json title="opencode.json" +{ + "mode": { + "plan": { + "temperature": 0.1 + }, + "creative": { + "temperature": 0.8 + } + } +} +``` + +Wartości temperatury zazwyczaj wahają się od 0,0 do 1,0: + +- **0,0-0,2**: Bardzo skoncentrowane i deterministyczne odpowiedzi, idealne do analizy i kodu źródłowego +- **0,3-0,5**: Zrównoważona odpowiedź z chwilą powstania, dobre do ogólnych zadań rozwojowych +- **0,6–1,0**: Bardziej kreatywne i odpowiedzi, rozstrzygnięte podczas burzy mózgów i eksploracji + +```json title="opencode.json" +{ + "mode": { + "analyze": { + "temperature": 0.1, + "prompt": "{file:./prompts/analysis.txt}" + }, + "build": { + "temperature": 0.3 + }, + "brainstorm": { + "temperature": 0.7, + "prompt": "{file:./prompts/creative.txt}" + } + } +} +``` + +Jeśli nie ma wpływu na temperaturę, opencode stosuje się narzędzia badawcze dla modelu (zwykle 0 dla największych modeli, 0,55 dla modeli Qwen). + +--- + +### Podpowiedź + +niestandardowy plik podpowiedzi systemowych dla tej procedury za pomocą konfiguracji `prompt`. Plik informacyjny powinien zawierać instrukcje dotyczące przeznaczenia trybunału. + +```json title="opencode.json" +{ + "mode": { + "review": { + "prompt": "{file:./prompts/code-review.txt}" + } + } +} +``` + +Ścieżka ta zależy od miejsca, w którym znajduje się plik konfiguracyjny. Więc to dla działa +zarówno globalna opencode, jak i specjalna dla projektu. + +--- + +### Narzędzia + +Kontroluj, które narzędzia są dostępne w tym urządzeniu, za pomocą konfiguracji `tools`. Można włączyć lub dostępne narzędzie, ustawiając je na `true` lub `false`. + +```json +{ + "mode": { + "readonly": { + "tools": { + "write": false, + "edit": false, + "bash": false, + "read": true, + "grep": true, + "glob": true + } + } + } +} +``` + +Jeśli nie ma żadnych narzędzi, wszystkie narzędzia są wyłączone. + +--- + +#### Dostępne narzędzie + +Oto wszystkie narzędzia, które można sterować za pomocą konfiguracji trybunałów. + +| Narzędzie | Opis | +| ----------- | ------------------------------------- | +| `bash` | Wykonaj polecenia powłoki | +| `edit` | Modyfikuj istniejące pliki | +| `write` | Utwórz nowe pliki | +| `read` | Przeczytaj zawartość pliku | +| `grep` | Wyszukaj zawartość pliku | +| `glob` | Znajdź pliki według wzorca | +| `list` | Lista zawartości katalogu | +| `patch` | Zastosuj poprawki do plików | +| `todowrite` | Zarządzaj listami rzeczy do wykonania | +| `todoread` | Przeczytaj listy rzeczy do zrobienia | +| `webfetch` | Pobierz zawartość internetową | + +--- + +## Tryby niestandardowe + +Możesz stworzyć własny tryb prywatny, dodając je do konfiguracji. Oto zastosowanie obu rozwiązań: + +### Korzystanie z konfiguracji JSON + +```json title="opencode.json" {4-14} +{ + "$schema": "https://opencode.ai/config.json", + "mode": { + "docs": { + "prompt": "{file:./prompts/documentation.txt}", + "tools": { + "write": true, + "edit": true, + "bash": false, + "read": true, + "grep": true, + "glob": true + } + } + } +} +``` + +### Korzystanie z plików Markdown + +Utwórz pliki trybów w `.opencode/modes/` dla trybów zapisanych dla projektu lub `~/.config/opencode/modes/` dla trybów globalnych: + +```markdown title=".opencode/modes/debug.md" +--- +temperature: 0.1 +tools: + bash: true + read: true + grep: true + write: false + edit: false +--- + +You are in debug mode. Your primary goal is to help investigate and diagnose issues. + +Focus on: + +- 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 + +Do not make any changes to files. Only investigate and report. +``` + +```markdown title="~/.config/opencode/modes/refactor.md" +--- +model: anthropic/claude-sonnet-4-20250514 +temperature: 0.2 +tools: + edit: true + read: true + grep: true + glob: true +--- + +You are in refactoring mode. Focus on improving code quality without changing functionality. + +Priorities: + +- Improve code readability and maintainability +- Apply consistent naming conventions +- Reduce code duplication +- Optimize performance where appropriate +- Ensure all tests continue to pass +``` + +--- + +### Przypadki użycia + +Oto kilka typowych zastosowań dla różnych trybów. + +- **Tryb stosowania**: Pełne prace programistyczne z dostępnymi narzędziami +- **Tryb planowania**: Analiza i planowanie bez zmian +- **Wypróbuj**: Przegląd kodu z możliwością odczytu i narzędzi do dokumentacji +- **Spróbuj debugowania**: Koncentruje się na urządzeniu z dostępnymi narzędziami bash i odczytu +- **Tryb Dokumenty**: Zapisywanie dokumentacji przy użyciu operacji na plikach, ale bez oryginalnych systemów systemowych + +Może się również zdarzyć, że różne modele są dobre w różnych wersjach użycia. diff --git a/packages/web/src/content/docs/pl/network.mdx b/packages/web/src/content/docs/pl/network.mdx new file mode 100644 index 000000000..bbb6fc1eb --- /dev/null +++ b/packages/web/src/content/docs/pl/network.mdx @@ -0,0 +1,57 @@ +--- +title: Sieć +description: Skonfiguruj serwery proxy i certyfikaty uwierzytelniające. +--- + +OpenCode obsługa standardowego zmiennego proxy i certyfikatów dla usług sieciowych przedsiębiorstw. + +--- + +## Pełnomocnik + +OpenCode respektuje standardowe zmienne środowiskowe proxy. + +```bash +# HTTPS proxy (recommended) +export HTTPS_PROXY=https://proxy.example.com:8080 + +# HTTP proxy (if HTTPS not available) +export HTTP_PROXY=http://proxy.example.com:8080 + +# Bypass proxy for local server (required) +export NO_PROXY=localhost,127.0.0.1 +``` + +:::caution +TUI komunikuje się z popularnym serwerem HTTP. Aby zapobiec łączem routingu, należy ominąć serwer proxy dla tego połączenia. +::: + +Możesz pozostawić port serwera i hosta za pomocą [flaga CLI](/docs/cli#run). + +--- + +### Uwierzytelniać + +Jeśli Twój serwer proxy wymaga podstawowego uwierzytelniania, dołącz dane uwierzytelniające w adresie URL. + +```bash +export HTTPS_PROXY=http://username:[email protected]:8080 +``` + +:::caution +Unikaj kodowania haseł na stałe. Użyj testów kontrolnych lub oprogramowania poświadczeń. +::: + +W przypadku serwera proxy zaawansowanego uwierzytelniania, jak NTLM lub Kerberos, dostęp do bram LLM, który umożliwia uwierzytelnianie. + +--- + +## Certyfikaty niestandardowe + +Jeśli Twoje przedsiębiorstwo korzysta z niestandardowych usług, urzędów dostępu do HTTPS, skonfiguruj OpenCode tak, aby im ufać. + +```bash +export NODE_EXTRA_CA_CERTS=/path/to/ca-cert.pem +``` + +Działają tylko w przypadku proxy, jak i bezpośredniego dostępu do API. diff --git a/packages/web/src/content/docs/pl/permissions.mdx b/packages/web/src/content/docs/pl/permissions.mdx new file mode 100644 index 000000000..d824a2ec5 --- /dev/null +++ b/packages/web/src/content/docs/pl/permissions.mdx @@ -0,0 +1,237 @@ +--- +title: Uprawnienia +description: Kontroluj, które Akcje wymagają zatwierdzenia do uruchomienia. +--- + +OpenCode używa `permission`, aby uniknąć, czy dana akcja została wykonana automatycznie, zachowana monit lub została zablokowana. + +Od `v1.1.1` starsza stworzona logiczna `tools` jest przestarzała i została stworzona scalona z `permission`. Stara wersja `tools` jest nadal obsługiwana w celu zapewnienia zgodności wstecznej. + +--- + +## Działania + +Każda reguła uprawnień skutkuje jedną z: + +- `"allow"` — uruchamiany bez zgody +- `"ask"` — monit o zatwierdzenie +- `"deny"` — zablokuj akcję + +--- + +## Konfiguracja + +Możesz zainstalować uprawnienia globalnie (za pomocą `*`) i znajdującego się w nim narzędzia. + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "permission": { + "*": "ask", + "bash": "allow", + "edit": "deny" + } +} +``` + +Możesz także zainstalować wszystkie uprawnienia na raz: + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "permission": "allow" +} +``` + +--- + +## Szczegółowe reguły (składnia obiektu) + +Można skorzystać z różnych działań, które zależą od danych użytkowych. + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "permission": { + "bash": { + "*": "ask", + "git *": "allow", + "npm *": "allow", + "rm *": "deny", + "grep *": "allow" + }, + "edit": { + "*": "deny", + "packages/web/src/content/docs/*.mdx": "allow" + } + } +} +``` + +Reguły są zalecane na podstawie odpowiedniego wzorca, przy czym **ostatnia wynikaca reguła wygrywa**. Powszechnym wzorcem jest umieszczenie na pierwszym miejscu odpowiedniego catch-all `"*"`, a po bardziej szczegółowe zasady. + +### Symbole wieloznaczne + +Wzorce uprawnień z prostych dopasowywania symboli wieloznacznych: + +- `*` dopasowuje zero lub więcej dowolnego znaku +- `?` odpowiada dokładnie jednemu znakowi +- Wszystkie pozostałe znaki pasują dosłownie + +### Rozszerzenie katalogu domowego + +Możesz używać `~` lub `$HOME` na początku wzorca, aby zastosować się do swojego katalogu domowego. Jest to szczególnie szczególne w przypadku reguły [`external_directory`](#external-directories). + +- `~/projects/*` -> `/Users/username/projects/*` +- `$HOME/projects/*` -> `/Users/username/projects/*` +- `~` -> `/Users/username` + +### Katalogi zewnętrzne + +Użycie `external_directory`, aby zezwolić na wywołanie narzędzia, które obsługuje obsługę poza katalogiem roboczym, z uruchomieniem OpenCode. Dotyczy każdego narzędzia, które jako dane wejściowe zostało przyjęte (na przykład `read`, `edit`, `list`, `glob`, `grep` i wiele założycieli `bash`). + +Rozszerzenie domu (jak `~/...`) wpływa tylko na sposób za zwyczajowy wzorca. Nie powoduje to, że strategie zewnętrzne stają się stosowane przez `external_directory`. + +Na przykład umożliwia dostęp do wszystkiego pod `~/projects/personal/`: + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "permission": { + "external_directory": { + "~/projects/personal/**": "allow" + } + } +} +``` + +Każdy dopuszczony tutaj katalog jest dziedziczy tych samych ustawień, co dostęp do obszaru roboczego. Ponieważ [`read` ma wartość domyślną `allow`](#defaults), odczyty są również dostępne dla wpisów poniżej `external_directory`, chyba że zagłębione. Dodaj dodatkowe rozwiązanie, kiedy narzędzie powinno być rozwiązaniem w tych ścieżkach, np. blokowanie edycji przy zachowaniu odczytów: + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "permission": { + "external_directory": { + "~/projects/personal/**": "allow" + }, + "edit": { + "~/projects/personal/**": "deny" + } + } +} +``` + +Skoncentruj listę na zaufanych ścieżkach i dodaj dodatkowe zezwolenie lub odmowę, jeśli jest potrzebne w innych narzędziach (na przykład `bash`). + +--- + +## Dostępne uprawnienia + +Uprawnienia OpenCode są określane na podstawie nazwy narzędzia i kilku zabezpieczeń: + +- `read` — odczyt pliku (odpowiada ścieżce pliku) +- `edit` — wszystkie modyfikacje plików (obejmuje `edit`, `write`, `patch`, `multiedit`) +- `glob` — maglowanie plików (pasuje do wzorców globowania) +- `grep` — wyszukiwanie treści (pasuje do wzorca regularnego) +- `list` — wyświetlanie listy plików w katalogu (pasuje do katalogu) +- `bash` — uruchamianie poleceń powłoki (pasuje do poleceń przeanalizowanych, takich jak `git status --porcelain`) +- `task` — uruchamianie podagentów (odpowiada typowi podagenta) +- `skill` — ładowanie umiejętności (pasuje do nazwy umiejętności) +- `lsp` — uruchamianie zapytań LSP (obecnie nieszczegółowych) +- `todoread`, `todowrite` — czytanie/aktualizacja list rzeczy do wykonania +- `webfetch` — pobieranie adresu URL (pasuje do adresu URL) +- `websearch`, `codesearch` — wyszukiwanie sieci/kodu (pasuje do zapytań) +- `external_directory` — wywoływacz, gdy narzędzie jest dostępne poza katalogiem roboczym projektu +- `doom_loop` — wyzwalane, gdy samo wywołanie narzędzia zostanie powtórzone 3 razy z tymi samymi danymi podstawowymi + +--- + +## Domyślne + +Jeżeli nic nie jest określone, OpenCode zostanie uruchomione od dopuszczalnych rozwiązań diagnostycznych: + +- Dostępne uprawnienia ma wartość domyślną `"allow"`. +- `doom_loop` i `external_directory` zamek ma wartość `"ask"`. +- `read` do `"allow"`, ale pliki `.env` są odrzucane: + +```json title="opencode.json" +{ + "permission": { + "read": { + "*": "allow", + "*.env": "deny", + "*.env.*": "deny", + "*.env.example": "allow" + } + } +} +``` + +--- + +## Co robi „Zapytaj”. + +Gdy OpenCode poprosi o zatwierdzenie, interfejs użytkownika oferujący trzy wyniki: + +- `once` — zatwierdź tylko tę prośbę +- `always` — zastosowanie, które następuje po zastosowaniu sugerowanych wzorców (przez następczą bieżącą sesję OpenCode) +- `reject` — odrzucić + +Zestaw wzorców, które `always` zatwierdziłby, jest udostępniony przez narzędzie (na przykładzie zatwierdzenia bash zazwyczaj umieszczają na częstotliwości bezpiecznej prefiksy polecenia, takie jak `git status*`). + +--- + +## Agenci + +Można uzyskać dostęp do poszczególnych agentów. Uprawnienia agenta są skalowane z konfiguracją globalną, a następnie agenta ma pierwszeństwo. [Dowiedz się więcej](/docs/agents#permissions) o prawach agenta. + +:::note +Bardziej szczegółowe przykłady dopasowywania wzorców można znaleźć w sekcji [Reguły szczegółowe (składnia obiektu) (#granular-rules-object-syntax) powyżej. +::: + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "permission": { + "bash": { + "*": "ask", + "git *": "allow", + "git commit *": "deny", + "git push *": "deny", + "grep *": "allow" + } + }, + "agent": { + "build": { + "permission": { + "bash": { + "*": "ask", + "git *": "allow", + "git commit *": "ask", + "git push *": "deny", + "grep *": "allow" + } + } + } + } +} +``` + +Możesz także mieć pozwolenie na agenta w Markdown: + +```markdown title="~/.config/opencode/agents/review.md" +--- +description: Code review without edits +mode: subagent +permission: + edit: deny + bash: ask + webfetch: deny +--- + +Only analyze code and suggest changes. +``` + +:::tip +zastosowanie dopasowywania wzorców dla pierwotnych z argumentami. `"grep *"` pozwala na `grep pattern file.txt`, podczas gdy sam `"grep"` blokuje to. Polecenia takie jak `git status` w przypadku postępowania dyscyplinarnego, ale ostatecznego zastosowania (np. `"git status *"`) podczas stosowania argumentów. +::: diff --git a/packages/web/src/content/docs/pl/plugins.mdx b/packages/web/src/content/docs/pl/plugins.mdx new file mode 100644 index 000000000..8747c1048 --- /dev/null +++ b/packages/web/src/content/docs/pl/plugins.mdx @@ -0,0 +1,385 @@ +--- +title: Wtyczki +description: Napisz własną wtyczkę, aby rozszerzyć OpenCode. +--- + +Wtyczki umożliwiające wyłączenie OpenCode poprzez podjęcie różnych zdarzeń i zachowanie. Można utworzyć wtyczkę, aby sprawdzić nowe funkcje, integrować się z usługami lub sprawdzaniem zachowania OpenCode. + +Aby znaleźć się z przykładami, przejrzyj [wtyczki](/docs/ecosystem#plugins) utworzone przez społeczność. + +--- + +## użyj wtyczki + +Istnieją dwa sposoby ładowania wtyczek. + +--- + +### Z plików lokalnych + +Miejsce plików JavaScript lub TypeScript w katalogu wtyczki. + +- `.opencode/plugins/` - Wtyczki na poziomie projektu +- `~/.config/opencode/plugins/` - Wtyczki globalne + +Pliki w tych katalogach są automatycznie ładowane podczas uruchamiania. + +--- + +### Z npm + +szczegółowy pakiet npm w pliku konfiguracyjnym. + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "plugin": ["opencode-helicone-session", "opencode-wakatime", "@my-org/custom-plugin"] +} +``` + +Obsługiwane są zarówno pakiety zwykłe, jak i pakiety npm o określonym zakresie. + +Przeglądaj dostępną wtyczkę w [ekosystemie](/docs/ecosystem#plugins). + +--- + +### Sposób instalacji wtyczek + +**wtyczki npm** są instalowane automatycznie przy użyciu Bun podczas uruchamiania. Pakiety i ich zależności są buforowane w `~/.cache/opencode/node_modules/`. + +**Wtyczki lokalne** są ładowane bezpośrednio z katalogu wtyczek. Aby uzyskać dostęp do zewnętrznych pakietów, musisz zainstalować `package.json` w swoim katalogu konfiguracyjnym (zobacz [Zależności](#dependencies)) lub opublikować wtyczkę w npm i [dodaj ją do swojej konfiguracji](/docs/config#plugins). + +--- + +### Załaduj zamówienie + +Wtyczki są ładowane ze wszystkich źródeł, a wszystkie hooki napisane po kolei. Kolejność ładowania do: + +1. Konfiguracja globalna (`~/.config/opencode/opencode.json`) +2. Konfiguracja projektu (`opencode.json`) +3. Globalny katalog wtyczek (`~/.config/opencode/plugins/`) +4. Katalog wtyczek projektu (`.opencode/plugins/`) + +Zduplikowane pakiety npm o tej samej nazwie i wersji są ładowane raz. Równie ważny jest dostęp lokalny i zewnętrzny npm o dodatkowych nazwach, które są zewnętrzne. + +--- + +## Utwórz wtyczkę + +Wtyczka do **moduł JavaScript/TypeScript**, który eksportuje jeden lub więcej wtyczek +funkcje. dostępna funkcja korzystania z obiektu kontekstu i głównego obiektu hooks. + +--- + +### Zależności + +Lokalne narzędzie i narzędzie, które można wykorzystać z zewnętrznych pakietów npm. Dodaj `package.json` do swojego katalogu konfiguracyjnego z zależnościami. + +```json title=".opencode/package.json" +{ + "dependencies": { + "shescape": "^2.1.0" + } +} +``` + +OpenCode uruchomienie `bun install` przy uruchomieniu, aby je uruchomić. Twoje dodatkowe funkcje będą dostępne po zaimportowaniu. + +```ts title=".opencode/plugins/my-plugin.ts" +import { escape } from "shescape" + +export const MyPlugin = async (ctx) => { + return { + "tool.execute.before": async (input, output) => { + if (input.tool === "bash") { + output.args.command = escape(output.args.command) + } + }, + } +} +``` + +--- + +### Podstawowa struktura + +```js title=".opencode/plugins/example.js" +export const MyPlugin = async ({ project, client, $, directory, worktree }) => { + console.log("Plugin initialized!") + + return { + // Hook implementations go here + } +} +``` + +Funkcja dostępu do: + +- `project`: Aktualne informacje o projekcie. +- `directory`: Bieżący katalog roboczy. +- `worktree`: Ścieżka eksploatacyjna Git. +- `client`: Klient SDK z otwartym kodem do sztucznej inteligencji. +- `$`: [API obudowy](https://bun.com/docs/runtime/shell) Buna do wykonywania oprogramowania. + +--- + +### Obsługa TypeScriptu + +W przypadku wtyczek TypeScript możesz importować typy z pakietu wtyczek: + +```ts title="my-plugin.ts" {1} +import type { Plugin } from "@opencode-ai/plugin" + +export const MyPlugin: Plugin = async ({ project, client, $, directory, worktree }) => { + return { + // Type-safe hook implementations + } +} +``` + +--- + +### Wydarzenia + +Wtyczki mogą subskrybować zdarzenia, jak zastosować poniżej sekcji Przykłady. Oto lista różnych działań. + +#### Wydarzenia dowodzenia + +- `command.executed` + +#### Plik Wydarzenia + +- `file.edited` +- `file.watcher.updated` + +#### Wydarzenia instalacyjne + +- `installation.updated` + +#### Wydarzenia LSP + +- `lsp.client.diagnostics` +- `lsp.updated` + +#### Wydarzenia w wiadomościach + +- `message.part.removed` +- `message.part.updated` +- `message.removed` +- `message.updated` + +#### Wydarzenia związane z uprawnieniami + +- `permission.asked` +- `permission.replied` + +#### Wydarzenia serwerowe + +- `server.connected` + +#### Wydarzenia sesyjne + +- `session.created` +- `session.compacted` +- `session.deleted` +- `session.diff` +- `session.error` +- `session.idle` +- `session.status` +- `session.updated` + +#### Wydarzenia do zrobienia + +- `todo.updated` + +#### Wydarzenia powłoki + +- `shell.env` + +#### Wydarzenia narzędziowe + +- `tool.execute.after` +- `tool.execute.before` + +#### Wydarzenia TUI + +- `tui.prompt.append` +- `tui.command.execute` +- `tui.toast.show` + +--- + +## Przykłady + +Oto kilka dostępnych wtyczek, które można udostępnić do kodu opencode. + +--- + +### Wysyłaj powiadomienia + +Wysyłaj powiadomienia, gdy wystąpią określone zdarzenia: + +```js title=".opencode/plugins/notification.js" +export const NotificationPlugin = async ({ project, client, $, directory, worktree }) => { + return { + event: async ({ event }) => { + // Send notification on session completion + if (event.type === "session.idle") { + await $`osascript -e 'display notification "Session completed!" with title "opencode"'` + } + }, + } +} +``` + +Używamy `osascript` do uruchamiania AppleScript na macOS. Tutaj możesz przejść do wysyłania pozostałości. + +:::note +Jeśli korzystasz z aplikacji komputerowej OpenCode, może ona automatycznie wysłać wiadomość systemową, gdy odpowiedź jest gotowa lub gdy wystąpią błędy sesji. +::: + +--- + +### ochrona .env + +Zablokuj opencode czytanie plików `.env`: + +```javascript title=".opencode/plugins/env-protection.js" +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("Do not read .env files") + } + }, + } +} +``` + +--- + +### Wstrzyknij zmienne środowiskowe + +Wstrzyknij zmienne konsekwencje dla wszystkich wykonań (narzędzia AI i terminale użytkownika): + +```javascript title=".opencode/plugins/inject-env.js" +export const InjectEnvPlugin = async () => { + return { + "shell.env": async (input, output) => { + output.env.MY_API_KEY = "secret" + output.env.PROJECT_ROOT = input.cwd + }, + } +} +``` + +--- + +### Niestandardowe narzędzia + +Wtyczki mogą również dodawać niestandardowe narzędzia do opencode: + +```ts title=".opencode/plugins/custom-tools.ts" +import { type Plugin, tool } from "@opencode-ai/plugin" + +export const CustomToolsPlugin: Plugin = async (ctx) => { + return { + tool: { + mytool: tool({ + description: "This is a custom tool", + args: { + foo: tool.schema.string(), + }, + async execute(args, context) { + const { directory, worktree } = context + return `Hello ${args.foo} from ${directory} (worktree: ${worktree})` + }, + }), + }, + } +} +``` + +Pomocnik `tool` tworzy narzędzie użytkowe, które może wywołać kod opencode. Pobierane schematu Zoda i narzędzie wyszukiwania za pomocą: + +- `description`: Co robi do narzędzia +- `args`: Schemat Zoda dla narzędzi argumentów +- `execute`: Funkcja uruchamiania po wywołaniu narzędzia + +Twoje narzędzie będzie dostępne dla otwartego kodu wraz z narzędziami użytkowymi. + +--- + +### Wycięcie lasu + +użyj `client.app.log()` zamiast `console.log` do rejestracji strukturalnego: + +```ts title=".opencode/plugins/my-plugin.ts" +export const MyPlugin = async ({ client }) => { + await client.app.log({ + body: { + service: "my-plugin", + level: "info", + message: "Plugin initialized", + extra: { foo: "bar" }, + }, + }) +} +``` + +Poziomy: `debug`, `info`, `warn`, `error`. Aby uzyskać szczegółowe informacje, zobacz [dokumentację pakietu SDK](https://opencode.ai/docs/sdk). + +--- + +### Haki zagęszczające + +Dostosuj kontekst dołączony podczas kompaktowania sesji: + +```ts title=".opencode/plugins/compaction.ts" +import type { Plugin } from "@opencode-ai/plugin" + +export const CompactionPlugin: Plugin = async (ctx) => { + return { + "experimental.session.compacting": async (input, output) => { + // Inject additional context into the compaction prompt + output.context.push(` +## Custom Context + +Include any state that should persist across compaction: +- Current task status +- Important decisions made +- Files being actively worked on +`) + }, + } +} +``` + +Hak `experimental.session.compacting` jest uruchamiany, zanim LLM wygeneruje podsumowanie kontynuacji. go, aby wstrzyknąć kontekst kontekstu dla domeny, której nie dostrzeżono przez domyślny monit o zagęszczenie. + +Można także umieścić kompletny monit o zagęszczenie, ustawiając `output.prompt`: + +```ts title=".opencode/plugins/custom-compaction.ts" +import type { Plugin } from "@opencode-ai/plugin" + +export const CustomCompactionPlugin: Plugin = async (ctx) => { + return { + "experimental.session.compacting": async (input, output) => { + // Replace the entire compaction prompt + output.prompt = ` +You are generating a continuation prompt for a multi-agent swarm session. + +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 + +Format as a structured prompt that a new agent can use to resume work. +` + }, + } +} +``` + +Gdy urządzenie jest `output.prompt`, jest całkowicie dostępne na domyślnym monit o zagęszczanie. Tablica `output.context` jest w tym przypadku poniesiona. diff --git a/packages/web/src/content/docs/pl/providers.mdx b/packages/web/src/content/docs/pl/providers.mdx new file mode 100644 index 000000000..55364dd29 --- /dev/null +++ b/packages/web/src/content/docs/pl/providers.mdx @@ -0,0 +1,1888 @@ +--- +title: Providers +description: Korzystanie z dowolnego dostawcy LLM w OpenCode. +--- + +import config from "../../../../config.mjs" +export const console = config.console + +OpenCode używa [AI SDK](https://ai-sdk.dev/) i [Models.dev](https://models.dev) do obsługi **ponad 75 dostawców LLM** i obsługuje uruchamianie modeli lokalnych. + +Aby dodać dostawcę należy: + +1. Dodaj klucze API dla dostawcy za pomocą komendy `/connect`. +2. Skonfiguruj dostawcę w konfiguracji OpenCode. + +--- + +### Credentials + +Po dodaniu kluczy API dostawcy za pomocą polecenia `/connect` są one przechowywane +in `~/.local/share/opencode/auth.json`. + +--- + +### Config + +Możesz dostosować dostawców za pomocą sekcji `provider` w swoim OpenCode +config. + +--- + +#### Base URL + +Możesz dostosować podstawowy adres URL dla dowolnego dostawcy, ustawiając opcję `baseURL`. Jest to przydatne podczas korzystania z usług proxy lub niestandardowych punktów końcowych. + +```json title="opencode.json" {6} +{ + "$schema": "https://opencode.ai/config.json", + "provider": { + "anthropic": { + "options": { + "baseURL": "https://api.anthropic.com/v1" + } + } + } +} +``` + +--- + +## OpenCode Zen + +OpenCode Zen to lista modeli dostarczonych przez zespół OpenCode, które zostały +przetestowane i zweryfikowane, aby dobrze współpracować z OpenCode. [Dowiedz się więcej](/docs/zen). + +:::tip +Jeśli jesteś nowy, zalecamy rozpoczęcie od OpenCode Zen. +::: + +1. Uruchom polecenie `/connect` w TUI, wybierz opencode i przejdź do [opencode.ai/auth](https://opencode.ai/auth). + + ```txt + /connect + ``` + +2. Zaloguj się, dodaj szczegóły rozliczeniowe i skopiuj klucz API. + +3. Wklej swój klucz API. + + ```txt + ┌ API key + │ + │ + └ enter + ``` + +4. Uruchom `/models` w TUI, aby zobaczyć listę zalecanych przez nas modeli. + + ```txt + /models + ``` + +Działa jak każdy inny dostawca w OpenCode i jest całkowicie opcjonalny w użyciu. + +--- + +## Directory + +Przyjrzyjmy się szczegółowo niektórym dostawcom. Jeśli chcesz dodać dostawcę do +listę, możesz otworzyć PR. + +:::note +Nie widzisz tutaj dostawcy? Prześlij PR. +::: + +--- + +### 302.AI + +1. Przejdź do [konsoli 302.AI](https://302.ai/), utwórz konto i wygeneruj klucz API. + +2. Uruchom komendę `/connect` i wyszukaj **302.AI**. + + ```txt + /connect + ``` + +3. Wpisz swój klucz API 302.AI. + + ```txt + ┌ API key + │ + │ + └ enter + ``` + +4. Uruchom komendę `/models`, aby wybrać model. + + ```txt + /models + ``` + +--- + +### Amazon Bedrock + +Aby używać Amazon Bedrock z OpenCode: + +1. Przejdź do **Katalogu modeli** w konsoli Amazon Bedrock i poproś + dostęp do wybranych modeli. + + :::tip + Musisz mieć dostęp do żądanego modelu w Amazon Bedrock. + ::: + +2. **Skonfiguruj uwierzytelnianie** przy użyciu jednej z następujących metod: + + #### Zmienne środowiskowe (Szybki start) + + Set one of these environment variables while running opencode: + + ```bash + # Option 1: Using AWS access keys + AWS_ACCESS_KEY_ID=XXX AWS_SECRET_ACCESS_KEY=YYY opencode + + # Option 2: Using named AWS profile + AWS_PROFILE=my-profile opencode + + # Option 3: Using Bedrock bearer token + AWS_BEARER_TOKEN_BEDROCK=XXX opencode + ``` + + Lub dodaj je do swojego profilu bash: + + ```bash title="~/.bash_profile" + export AWS_PROFILE=my-dev-profile + export AWS_REGION=us-east-1 + ``` + + #### Configuration File (Recommended) + + W przypadku konfiguracji specyficznej dla projektu lub trwałej użyj `opencode.json`: + + ```json title="opencode.json" + { + "$schema": "https://opencode.ai/config.json", + "provider": { + "amazon-bedrock": { + "options": { + "region": "us-east-1", + "profile": "my-aws-profile" + } + } + } + } + ``` + + **Dostępne opcje:** + - `region` - AWS region (e.g., `us-east-1`, `eu-west-1`) + - `profile` - AWS named profile from `~/.aws/credentials` + - `endpoint` — niestandardowy adres URL punktu końcowego dla punktów końcowych VPC (alias dla ogólnej opcji `baseURL`) + + :::tip + Configuration file options take precedence over environment variables. + ::: + + #### Advanced: VPC Endpoints + + Jeśli używasz punktów końcowych VPC dla Bedrock: + + ```json title="opencode.json" + { + "$schema": "https://opencode.ai/config.json", + "provider": { + "amazon-bedrock": { + "options": { + "region": "us-east-1", + "profile": "production", + "endpoint": "https://bedrock-runtime.us-east-1.vpce-xxxxx.amazonaws.com" + } + } + } + } + ``` + + :::note + Opcja `endpoint` jest aliasem ogólnej opcji `baseURL`, używając terminologii specyficznej dla AWS. Jeśli określono zarówno `endpoint`, jak i `baseURL`, pierwszeństwo ma `endpoint`. + ::: + + #### Authentication Methods + - **`AWS_ACCESS_KEY_ID` / `AWS_SECRET_ACCESS_KEY`**: Utwórz użytkownika IAM i wygeneruj klucze dostępu w konsoli AWS + - **`AWS_PROFILE`**: Użyj nazwanych profili z `~/.aws/credentials`. Najpierw skonfiguruj za pomocą `aws configure --profile my-profile` lub `aws sso login` + - **`AWS_BEARER_TOKEN_BEDROCK`**: Wygeneruj długoterminowe klucze API z konsoli Amazon Bedrock + - **`AWS_WEB_IDENTITY_TOKEN_FILE` / `AWS_ROLE_ARN`**: Dla EKS IRSA (Role IAM dla kont usług) lub innych środowisk Kubernetes z federacją OIDC. Te zmienne środowiskowe są automatycznie wstrzykiwane przez Kubernetes podczas korzystania z adnotacji konta usługi. + + #### Authentication Precedence + + Amazon Bedrock wykorzystuje następujący priorytet uwierzytelniania: + 1. **Token nośnika** - zmienna środowiskowa `AWS_BEARER_TOKEN_BEDROCK` lub token z komendy `/connect` + 2. **AWS Credential Chain** - Profile, access keys, shared credentials, IAM roles, Web Identity Tokens (EKS IRSA), instance metadata + + :::note + When a bearer token is set (via `/connect` or `AWS_BEARER_TOKEN_BEDROCK`), it takes precedence over all AWS credential methods including configured profiles. + ::: + +3. Uruchom komendę `/models`, aby wybrać żądany model. + + ```txt + /models + ``` + +:::note +W przypadku niestandardowych profili wnioskowania użyj nazwy modelu i dostawcy w kluczu i ustaw właściwość `id` na wartość arn. Zapewnia to prawidłowe buforowanie: + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "provider": { + "amazon-bedrock": { + // ... + "models": { + "anthropic-claude-sonnet-4.5": { + "id": "arn:aws:bedrock:us-east-1:xxx:application-inference-profile/yyy" + } + } + } + } +} +``` + +::: + +--- + +### Anthropic + +1. Po zarejestrowaniu się uruchom komendę `/connect` i wybierz opcję Anthropic. + + ```txt + /connect + ``` + +2. Tutaj możesz wybrać opcję **Claude Pro/Max**, co spowoduje otwarcie przeglądarki + i poproś o uwierzytelnienie. + + ```txt + ┌ Select auth method + │ + │ Claude Pro/Max + │ Create an API Key + │ Manually enter API Key + └ + ``` + +3. Teraz wszystkie modele antropiczne powinny być dostępne po użyciu polecenia `/models`. + + ```txt + /models + ``` + +:::info +Korzystanie z subskrypcji Claude Pro/Max w OpenCode nie jest oficjalnie obsługiwane przez [Anthropic](https://anthropic.com). +::: + +##### Using API keys + +Możesz także wybrać opcję **Utwórz klucz API**, jeśli nie masz subskrypcji Pro/Max. Otworzy się także Twoja przeglądarka i poprosi Cię o zalogowanie się do Anthropic i poda kod, który możesz wkleić w terminalu. + +Lub jeśli masz już klucz API, możesz wybrać **Wprowadź klucz API ręcznie** i wkleić go w terminalu. + +--- + +### Azure OpenAI + +:::note +Jeśli napotkasz błędy „Przykro mi, ale nie mogę pomóc w tej prośbie”, spróbuj zmienić filtr zawartości z **DefaultV2** na **Default** w zasobie platformy Azure. +::: + +1. Przejdź do [Azure portal](https://portal.azure.com/) i utwórz zasób **Azure OpenAI**. Będziesz potrzebować: + - **Nazwa zasobu**: staje się częścią punktu końcowego interfejsu API (`https://RESOURCE_NAME.openai.azure.com/`) + - **Klucz API**: `KEY 1` lub `KEY 2` z Twojego zasobu + +2. Przejdź do [Azure AI Foundry](https://ai.azure.com/) i wdróż model. + + :::note + Aby kod opencode działał poprawnie, nazwa wdrożenia musi być zgodna z nazwą modelu. + ::: + +3. Uruchom polecenie `/connect` i wyszukaj **Azure**. + + ```txt + /connect + ``` + +4. Wpisz swój klucz API. + + ```txt + ┌ API key + │ + │ + └ enter + ``` + +5. Ustaw nazwę zasobu jako zmienną środowiskową: + + ```bash + AZURE_RESOURCE_NAME=XXX opencode + ``` + + Lub dodaj go do swojego profilu bash: + + ```bash title="~/.bash_profile" + export AZURE_RESOURCE_NAME=XXX + ``` + +6. Uruchom komendę `/models`, aby wybrać wdrożony model. + + ```txt + /models + ``` + +--- + +### Azure Cognitive Services + +1. Przejdź do [Azure portal](https://portal.azure.com/) i utwórz zasób **Azure OpenAI**. Będziesz potrzebować: + - **Nazwa zasobu**: staje się częścią punktu końcowego interfejsu API (`https://AZURE_COGNITIVE_SERVICES_RESOURCE_NAME.cognitiveservices.azure.com/`) + - **Klucz API**: `KEY 1` lub `KEY 2` z Twojego zasobu + +2. Przejdź do [Azure AI Foundry](https://ai.azure.com/) i wdróż model. + + :::note + Aby kod opencode działał poprawnie, nazwa wdrożenia musi być zgodna z nazwą modelu. + ::: + +3. Uruchom polecenie `/connect` i wyszukaj **Azure Cognitive Services**. + + ```txt + /connect + ``` + +4. Wpisz swój klucz API. + + ```txt + ┌ API key + │ + │ + └ enter + ``` + +5. Ustaw nazwę zasobu jako zmienną środowiskową: + + ```bash + AZURE_COGNITIVE_SERVICES_RESOURCE_NAME=XXX opencode + ``` + + Lub dodaj go do swojego profilu bash: + + ```bash title="~/.bash_profile" + export AZURE_COGNITIVE_SERVICES_RESOURCE_NAME=XXX + ``` + +6. Uruchom komendę `/models`, aby wybrać wdrożony model. + + ```txt + /models + ``` + +--- + +### Baseten + +1. Udaj się do [Baseten](https://app.baseten.co/), utwórz konto i wygeneruj klucz API. + +2. Uruchom komendę `/connect` i wyszukaj **Baseten**. + + ```txt + /connect + ``` + +3. Wprowadź swój klucz API Baseten. + + ```txt + ┌ API key + │ + │ + └ enter + ``` + +4. Uruchom komendę `/models`, aby wybrać model. + + ```txt + /models + ``` + +--- + +### Cerebras + +1. Przejdź do [konsoli Cerebras](https://inference.cerebras.ai/), utwórz konto i wygeneruj klucz API. + +2. Uruchom komendę `/connect` i wyszukaj **Cerebras**. + + ```txt + /connect + ``` + +3. Wprowadź swój klucz API Cerebras. + + ```txt + ┌ API key + │ + │ + └ enter + ``` + +4. Uruchom polecenie `/models`, aby wybrać model taki jak _Qwen 3 Coder 480B_. + + ```txt + /models + ``` + +--- + +### Cloudflare AI Gateway + +Cloudflare AI Gateway umożliwia dostęp do modeli z OpenAI, Anthropic, Workers AI i innych za pośrednictwem ujednoliconego punktu końcowego. Dzięki [Ujednoliconemu rozliczeniu](https://developers.cloudflare.com/ai-gateway/features/unified-billing/) nie potrzebujesz oddzielnych kluczy API dla każdego dostawcy. + +1. Przejdź do [panelu Cloudflare](https://dash.cloudflare.com/), przejdź do **AI** > **AI Gateway** i utwórz nową bramę. + +2. Ustaw identyfikator konta i identyfikator bramy jako zmienne środowiskowe. + + ```bash title="~/.bash_profile" + export CLOUDFLARE_ACCOUNT_ID=your-32-character-account-id + export CLOUDFLARE_GATEWAY_ID=your-gateway-id + ``` + +3. Uruchom polecenie `/connect` i wyszukaj **Cloudflare AI Gateway**. + + ```txt + /connect + ``` + +4. Wprowadź swój token API Cloudflare. + + ```txt + ┌ API key + │ + │ + └ enter + ``` + + Or set it as an environment variable. + + ```bash title="~/.bash_profile" + export CLOUDFLARE_API_TOKEN=your-api-token + ``` + +5. Uruchom komendę `/models`, aby wybrać model. + + ```txt + /models + ``` + + Możesz także dodawać modele za pomocą konfiguracji opencode. + + ```json title="opencode.json" + { + "$schema": "https://opencode.ai/config.json", + "provider": { + "cloudflare-ai-gateway": { + "models": { + "openai/gpt-4o": {}, + "anthropic/claude-sonnet-4": {} + } + } + } + } + ``` + +--- + +### Cortecs + +1. Przejdź do [konsoli Cortecs](https://cortecs.ai/), utwórz konto i wygeneruj klucz API. + +2. Uruchom komendę `/connect` i wyszukaj **Cortecs**. + + ```txt + /connect + ``` + +3. Wprowadź klucz API Cortecs. + + ```txt + ┌ API key + │ + │ + └ enter + ``` + +4. Uruchom polecenie `/models`, aby wybrać model taki jak _Kimi K2 Instruct_. + + ```txt + /models + ``` + +--- + +### DeepSeek + +1. Przejdź do [konsoli DeepSeek](https://platform.deepseek.com/), utwórz konto i kliknij **Utwórz nowy klucz API**. + +2. Uruchom polecenie `/connect` i wyszukaj **DeepSeek**. + + ```txt + /connect + ``` + +3. Wprowadź klucz API DeepSeek. + + ```txt + ┌ API key + │ + │ + └ enter + ``` + +4. Uruchom polecenie `/models`, aby wybrać model DeepSeek, np. _DeepSeek Reasoner_. + + ```txt + /models + ``` + +--- + +### Deep Infra + +1. Przejdź do [panelu Deep Infra](https://deepinfra.com/dash), utwórz konto i wygeneruj klucz API. + +2. Uruchom komendę `/connect` i wyszukaj **Deep Infra**. + + ```txt + /connect + ``` + +3. Wprowadź swój klucz API Deep Infra. + + ```txt + ┌ API key + │ + │ + └ enter + ``` + +4. Uruchom komendę `/models`, aby wybrać model. + + ```txt + /models + ``` + +--- + +### Firmware + +1. Przejdź do [panelu oprogramowania sprzętowego](https://app.firmware.ai/signup), utwórz konto i wygeneruj klucz API. + +2. Uruchom polecenie `/connect` i wyszukaj **Oprogramowanie sprzętowe**. + + ```txt + /connect + ``` + +3. Wprowadź klucz API oprogramowania układowego. + + ```txt + ┌ API key + │ + │ + └ enter + ``` + +4. Uruchom komendę `/models`, aby wybrać model. + + ```txt + /models + ``` + +--- + +### Fireworks AI + +1. Przejdź do [konsoli Fireworks AI](https://app.fireworks.ai/), utwórz konto i kliknij **Utwórz klucz API**. + +2. Uruchom polecenie `/connect` i wyszukaj **Fireworks AI**. + + ```txt + /connect + ``` + +3. Wprowadź klucz API programu Fireworks AI. + + ```txt + ┌ API key + │ + │ + └ enter + ``` + +4. Uruchom polecenie `/models`, aby wybrać model taki jak _Kimi K2 Instruct_. + + ```txt + /models + ``` + +--- + +### GitLab Duo + +GitLab Duo zapewnia czat agentowy oparty na sztucznej inteligencji z natywnymi możliwościami wywoływania narzędzi za pośrednictwem Anthropic proxy GitLab. + +1. Uruchom komendę `/connect` i wybierz GitLab. + + ```txt + /connect + ``` + +2. Wybierz metodę uwierzytelniania: + + ```txt + ┌ Select auth method + │ + │ OAuth (Recommended) + │ Personal Access Token + └ + ``` + + #### Using OAuth (Recommended) + + Wybierz **OAuth**, a Twoja przeglądarka otworzy się w celu autoryzacji. + + #### Using Personal Access Token + 1. Przejdź do [Ustawienia użytkownika GitLab > Tokeny dostępu](https://gitlab.com/-/user_settings/personal_access_tokens) + 2. Click **Add new token** + 3. Name: `OpenCode`, Scopes: `api` + 4. Skopiuj token (zaczyna się od `glpat-`) + 5. Wpisz go w terminalu + +3. Uruchom komendę `/models`, aby zobaczyć dostępne modele. + + ```txt + /models + ``` + + Dostępne są trzy modele oparte na Claude: + - **duo-chat-haiku-4-5** (Domyślnie) - Szybkie odpowiedzi dla szybkich zadań + - **duo-chat-sonnet-4-5** - Zrównoważona wydajność dla większości przepływów pracy + - **duo-chat-opus-4-5** - Najbardziej zdolny do złożonej analizy + +:::note +Jeśli nie chcesz, możesz także określić zmienną środowiskową „GITLAB_TOKEN”. +to store token in opencode auth storage. +::: + +##### Self-Hosted GitLab + +:::note[compliance note] +OpenCode używa małego modelu do niektórych zadań AI, takich jak generowanie tytułu sesji. +Domyślnie jest skonfigurowany do używania gpt-5-nano, hostowanego przez Zen. Aby zablokować OpenCode +aby używać tylko własnej instancji hostowanej przez GitLab, dodaj następujące elementy do pliku +`opencode.json` plik. Zalecane jest również wyłączenie udostępniania sesji. + +```json +{ + "$schema": "https://opencode.ai/config.json", + "small_model": "gitlab/duo-chat-haiku-4-5", + "share": "disabled" +} +``` + +::: + +W przypadku samodzielnie hostowanych instancji GitLab: + +```bash +export GITLAB_INSTANCE_URL=https://gitlab.company.com +export GITLAB_TOKEN=glpat-... +``` + +Jeśli w Twojej instancji działa niestandardowa brama AI: + +```bash +GITLAB_AI_GATEWAY_URL=https://ai-gateway.company.com +``` + +Lub dodaj do swojego profilu bash: + +```bash title="~/.bash_profile" +export GITLAB_INSTANCE_URL=https://gitlab.company.com +export GITLAB_AI_GATEWAY_URL=https://ai-gateway.company.com +export GITLAB_TOKEN=glpat-... +``` + +:::note +Twój administrator GitLab musi włączyć następujące opcje: + +1. [Platforma Duo Agent](https://docs.gitlab.com/user/gitlab_duo/turn_on_off/) dla użytkownika, grupy lub instancji +2. Feature flags (via Rails console): + - `agent_platform_claude_code` + - `third_party_agents_enabled` + ::: + +##### OAuth dla instancji hostowanych samodzielnie + +Aby Oauth mógł działać w przypadku Twojej instancji hostowanej samodzielnie, musisz utworzyć +nową aplikację (Ustawienia → Aplikacje) z +Adres URL wywołania zwrotnego `http://127.0.0.1:8080/callback` i następujące zakresy: + +- api (Uzyskaj dostęp do API w swoim imieniu) +- read_user (Przeczytaj swoje dane osobowe) +- read_repository (umożliwia dostęp do repozytorium tylko do odczytu) + +Then expose application ID as environment variable: + +```bash +export GITLAB_OAUTH_CLIENT_ID=your_application_id_here +``` + +More documentation on [opencode-gitlab-auth](https://www.npmjs.com/package/@gitlab/opencode-gitlab-auth) homepage. + +##### Configuration + +Customize through `opencode.json`: + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "provider": { + "gitlab": { + "options": { + "instanceUrl": "https://gitlab.com", + "featureFlags": { + "duo_agent_platform_agentic_chat": true, + "duo_agent_platform": true + } + } + } + } +} +``` + +##### GitLab API Tools (Optional, but highly recommended) + +To access GitLab tools (merge requests, issues, pipelines, CI/CD, etc.): + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "plugin": ["@gitlab/opencode-gitlab-plugin"] +} +``` + +Ta wtyczka zapewnia kompleksowe możliwości zarządzania repozytorium GitLab, w tym recenzje MR, śledzenie problemów, monitorowanie rurociągów i inne. + +--- + +### GitHub Copilot + +Aby korzystać z subskrypcji GitHub Copilot z kodem opencode: + +:::note +Niektóre modele mogą wymagać [subskrypcji Pro+](https://github.com/features/copilot/plans), aby z nich korzystać. + +Niektóre modele należy włączyć ręcznie w [ustawieniach GitHub Copilot](https://docs.github.com/en/copilot/how-tos/use-ai-models/configure-access-to-ai-models#setup-for-individual-use). +::: + +1. Uruchom komendę `/connect` i wyszukaj GitHub Copilot. + + ```txt + /connect + ``` + +2. Przejdź do [github.com/login/device](https://github.com/login/device) i wpisz kod. + + ```txt + ┌ Login with GitHub Copilot + │ + │ https://github.com/login/device + │ + │ Enter code: 8F43-6FCF + │ + └ Waiting for authorization... + ``` + +3. Teraz uruchom polecenie `/models`, aby wybrać żądany model. + + ```txt + /models + ``` + +--- + +### Google Vertex AI + +Aby używać Google Vertex AI z OpenCode: + +1. Przejdź do **Model Garden** w Google Cloud Console i sprawdź + modele dostępne w Twoim regionie. + + :::note + Musisz mieć projekt Google Cloud z włączonym interfejsem API Vertex AI. + ::: + +2. Ustaw wymagane zmienne środowiskowe: + - `GOOGLE_CLOUD_PROJECT`: identyfikator Twojego projektu Google Cloud + - `VERTEX_LOCATION` (opcjonalnie): region Vertex AI (domyślnie `global`) + - Authentication (choose one): + - `GOOGLE_APPLICATION_CREDENTIALS`: Ścieżka do pliku klucza JSON konta usługi + - Uwierzytelnij się za pomocą interfejsu CLI gcloud: `gcloud auth application-default login` + + Set them while running opencode. + + ```bash + GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json GOOGLE_CLOUD_PROJECT=your-project-id opencode + ``` + + Lub dodaj je do swojego profilu bash. + + ```bash title="~/.bash_profile" + export GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json + export GOOGLE_CLOUD_PROJECT=your-project-id + export VERTEX_LOCATION=global + ``` + +:::tip +Region `global` poprawia dostępność i zmniejsza liczbę błędów bez dodatkowych kosztów. Użyj regionalnych punktów końcowych (np. `us-central1`) w celu spełnienia wymagań dotyczących miejsca przechowywania danych. [Dowiedz się więcej](https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/use-partner-models#regional_and_global_endpoints) +::: + +3. Uruchom komendę `/models`, aby wybrać żądany model. + + ```txt + /models + ``` + +--- + +### Groq + +1. Przejdź do [konsoli Groq](https://console.groq.com/), kliknij **Utwórz klucz API** i skopiuj klucz. + +2. Uruchom komendę `/connect` i wyszukaj Groq. + + ```txt + /connect + ``` + +3. Wprowadź klucz API dla dostawcy. + + ```txt + ┌ API key + │ + │ + └ enter + ``` + +4. Uruchom polecenie `/models`, aby wybrać żądany. + + ```txt + /models + ``` + +--- + +### Hugging Face + +[Dostawcy wnioskowania o uścisku twarzy](https://huggingface.co/docs/inference-providers) zapewniają dostęp do otwartych modeli obsługiwanych przez ponad 17 dostawców. + +1. Przejdź do [Ustawień uścisku twarzy](https://huggingface.co/settings/tokens/new?ownUserPermissions=inference.serverless.write&tokenType=fineGrained), aby utworzyć token z uprawnieniami do wykonywania połączeń z dostawcami wnioskowania. + +2. Uruchom komendę `/connect` i wyszukaj **Przytulona twarz**. + + ```txt + /connect + ``` + +3. Wprowadź swój token Przytulającej Twarzy. + + ```txt + ┌ API key + │ + │ + └ enter + ``` + +4. Uruchom polecenie `/models`, aby wybrać model taki jak _Kimi-K2-Instruct_ lub _GLM-4.6_. + + ```txt + /models + ``` + +--- + +### Helicone + +[Helicone](https://helicone.ai) to platforma obserwowalności LLM, która zapewnia rejestrowanie, monitorowanie i analizy dla aplikacji AI. Helicone AI Gateway automatycznie kieruje Twoje żądania do odpowiedniego dostawcy w oparciu o model. + +1. Udaj się do [Helicone](https://helicone.ai), utwórz konto i wygeneruj klucz API ze swojego panelu. + +2. Uruchom komendę `/connect` i wyszukaj **Helicone**. + + ```txt + /connect + ``` + +3. Wprowadź swój klucz API Helicone. + + ```txt + ┌ API key + │ + │ + └ enter + ``` + +4. Uruchom komendę `/models`, aby wybrać model. + + ```txt + /models + ``` + +Więcej dostawców i zaawansowanych funkcji, takich jak buforowanie i ograniczanie szybkości, znajdziesz w [dokumentacji Helicone](https://docs.helicone.ai). + +#### Optional Configs + +Jeśli zobaczysz funkcję lub model firmy Helicone, która nie jest konfigurowana automatycznie za pomocą kodu opencode, zawsze możesz ją skonfigurować samodzielnie. + +Oto [Katalog modeli Helicone](https://helicone.ai/models), będziesz go potrzebować, aby pobrać identyfikatory modeli, które chcesz dodać. + +```jsonc title="~/.config/opencode/opencode.jsonc" +{ + "$schema": "https://opencode.ai/config.json", + "provider": { + "helicone": { + "npm": "@ai-sdk/openai-compatible", + "name": "Helicone", + "options": { + "baseURL": "https://ai-gateway.helicone.ai", + }, + "models": { + "gpt-4o": { + // 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", + }, + }, + }, + }, +} +``` + +#### Custom Headers + +Helicone obsługuje niestandardowe nagłówki dla funkcji takich jak buforowanie, śledzenie użytkowników i zarządzanie sesjami. Dodaj je do konfiguracji dostawcy za pomocą `options.headers`: + +```jsonc title="~/.config/opencode/opencode.jsonc" +{ + "$schema": "https://opencode.ai/config.json", + "provider": { + "helicone": { + "npm": "@ai-sdk/openai-compatible", + "name": "Helicone", + "options": { + "baseURL": "https://ai-gateway.helicone.ai", + "headers": { + "Helicone-Cache-Enabled": "true", + "Helicone-User-Id": "opencode", + }, + }, + }, + }, +} +``` + +##### Śledzenie sesji + +Funkcja [Sesje](https://docs.helicone.ai/features/sessions) firmy Helicone umożliwia grupowanie powiązanych żądań LLM. Użyj wtyczki [opencode-helicone-session](https://github.com/H2Shami/opencode-helicone-session), aby automatycznie rejestrować każdą konwersację OpenCode jako sesję w Helicone. + +```bash +npm install -g opencode-helicone-session +``` + +Dodaj go do swojej konfiguracji. + +```json title="opencode.json" +{ + "plugin": ["opencode-helicone-session"] +} +``` + +Wtyczka wstawia nagłówki `Helicone-Session-Id` i `Helicone-Session-Name` do Twoich żądań. Na stronie Sesje Helicone każda konwersacja OpenCode będzie wymieniona jako osobna sesja. + +##### Common Helicone headers + +| Header | Description | +| -------------------------- | ------------------------------------------------------------- | +| `Helicone-Cache-Enabled` | Enable response caching (`true`/`false`) | +| `Helicone-User-Id` | Track metrics by user | +| `Helicone-Property-[Name]` | Add custom properties (e.g., `Helicone-Property-Environment`) | +| `Helicone-Prompt-Id` | Powiąż żądania z wersjami podpowiedzi | + +Zobacz [Katalog nagłówków Helicone](https://docs.helicone.ai/helicone-headers/header-directory), aby poznać wszystkie dostępne nagłówki. + +--- + +### llama.cpp + +Możesz skonfigurować kod otwarty tak, aby korzystał z modeli lokalnych, za pomocą narzędzia llama-server [llama.cpp](https://github.com/ggml-org/llama.cpp) + +```json title="opencode.json" "llama.cpp" {5, 6, 8, 10-15} +{ + "$schema": "https://opencode.ai/config.json", + "provider": { + "llama.cpp": { + "npm": "@ai-sdk/openai-compatible", + "name": "llama-server (local)", + "options": { + "baseURL": "http://127.0.0.1:8080/v1" + }, + "models": { + "qwen3-coder:a3b": { + "name": "Qwen3-Coder: a3b-30b (local)", + "limit": { + "context": 128000, + "output": 65536 + } + } + } + } + } +} +``` + +W tym przykładzie: + +- `llama.cpp` to niestandardowy identyfikator dostawcy. Może to być dowolny ciąg znaków. +- `npm` określa pakiet, który ma być używany dla tego dostawcy. Tutaj `@ai-sdk/openai-compatible` jest używany dla dowolnego interfejsu API zgodnego z OpenAI. +- `name` to nazwa wyświetlana dostawcy w interfejsie użytkownika. +- `options.baseURL` jest punktem końcowym serwera lokalnego. +- `models` to mapa identyfikatorów modeli do ich konfiguracji. Nazwa modelu zostanie wyświetlona na liście wyboru modelu. + +--- + +### IO.NET + +IO.NET oferuje 17 modeli zoptymalizowanych pod kątem różnych zastosowań: + +1. Przejdź do [konsoli IO.NET](https://ai.io.net/), utwórz konto i wygeneruj klucz API. + +2. Uruchom komendę `/connect` i wyszukaj **IO.NET**. + + ```txt + /connect + ``` + +3. Wprowadź swój klucz API IO.NET. + + ```txt + ┌ API key + │ + │ + └ enter + ``` + +4. Uruchom komendę `/models`, aby wybrać model. + + ```txt + /models + ``` + +--- + +### LM Studio + +Możesz skonfigurować kod otwarty tak, aby korzystał z modeli lokalnych poprzez LM Studio. + +```json title="opencode.json" "lmstudio" {5, 6, 8, 10-14} +{ + "$schema": "https://opencode.ai/config.json", + "provider": { + "lmstudio": { + "npm": "@ai-sdk/openai-compatible", + "name": "LM Studio (local)", + "options": { + "baseURL": "http://127.0.0.1:1234/v1" + }, + "models": { + "google/gemma-3n-e4b": { + "name": "Gemma 3n-e4b (local)" + } + } + } + } +} +``` + +W tym przykładzie: + +- `lmstudio` to niestandardowy identyfikator dostawcy. Może to być dowolny ciąg znaków. +- `npm` określa pakiet, który ma być używany dla tego dostawcy. Tutaj `@ai-sdk/openai-compatible` jest używany dla dowolnego interfejsu API zgodnego z OpenAI. +- `name` to nazwa wyświetlana dostawcy w interfejsie użytkownika. +- `options.baseURL` jest punktem końcowym serwera lokalnego. +- `models` to mapa identyfikatorów modeli do ich konfiguracji. Nazwa modelu zostanie wyświetlona na liście wyboru modelu. + +--- + +### Moonshot AI + +Aby użyć Kimi K2 z Moonshot AI: + +1. Przejdź do [konsoli Moonshot AI](https://platform.moonshot.ai/console), utwórz konto i kliknij **Utwórz klucz API**. + +2. Uruchom polecenie `/connect` i wyszukaj **Moonshot AI**. + + ```txt + /connect + ``` + +3. Wprowadź klucz API Moonshot. + + ```txt + ┌ API key + │ + │ + └ enter + ``` + +4. Uruchom komendę `/models`, aby wybrać _Kimi K2_. + + ```txt + /models + ``` + +--- + +### MiniMax + +1. Przejdź do [Konsoli API MiniMax](https://platform.minimax.io/login), utwórz konto i wygeneruj klucz API. + +2. Uruchom komendę `/connect` i wyszukaj **MiniMax**. + + ```txt + /connect + ``` + +3. Wprowadź swój klucz API MiniMax. + + ```txt + ┌ API key + │ + │ + └ enter + ``` + +4. Uruchom komendę `/models`, aby wybrać model taki jak _M2.1_. + + ```txt + /models + ``` + +--- + +### Nebius Token Factory + +1. Przejdź do [konsoli Nebius Token Factory](https://tokenfactory.nebius.com/), utwórz konto i kliknij **Dodaj klucz**. + +2. Uruchom komendę `/connect` i wyszukaj **Fabrykę tokenów Nebius**. + + ```txt + /connect + ``` + +3. Wprowadź klucz API Nebius Token Factory. + + ```txt + ┌ API key + │ + │ + └ enter + ``` + +4. Uruchom polecenie `/models`, aby wybrać model taki jak _Kimi K2 Instruct_. + + ```txt + /models + ``` + +--- + +### Ollama + +Możesz skonfigurować kod otwarty tak, aby korzystał z modeli lokalnych poprzez Ollamę. + +:::tip +Ollama może automatycznie skonfigurować się pod kątem OpenCode. Aby uzyskać szczegółowe informacje, zobacz [dokumentację integracji Ollama](https://docs.ollama.com/integrations/opencode). +::: + +```json title="opencode.json" "ollama" {5, 6, 8, 10-14} +{ + "$schema": "https://opencode.ai/config.json", + "provider": { + "ollama": { + "npm": "@ai-sdk/openai-compatible", + "name": "Ollama (local)", + "options": { + "baseURL": "http://localhost:11434/v1" + }, + "models": { + "llama2": { + "name": "Llama 2" + } + } + } + } +} +``` + +W tym przykładzie: + +- `ollama` to niestandardowy identyfikator dostawcy. Może to być dowolny ciąg znaków. +- `npm` określa pakiet, który ma być używany dla tego dostawcy. Tutaj `@ai-sdk/openai-compatible` jest używany dla dowolnego interfejsu API zgodnego z OpenAI. +- `name` to nazwa wyświetlana dostawcy w interfejsie użytkownika. +- `options.baseURL` jest punktem końcowym serwera lokalnego. +- `models` to mapa identyfikatorów modeli do ich konfiguracji. Nazwa modelu zostanie wyświetlona na liście wyboru modelu. + +:::tip +Jeśli wywołania narzędzi nie działają, spróbuj zwiększyć `num_ctx` w Ollama. Zacznij około 16 tys. - 32 tys. +::: + +--- + +### Ollama Cloud + +Aby korzystać z Ollama Cloud z OpenCode: + +1. Udaj się do [https://ollama.com/](https://ollama.com/) i zaloguj się lub utwórz konto. + +2. Przejdź do **Ustawienia** > **Klucze** i kliknij **Dodaj klucz API**, aby wygenerować nowy klucz API. + +3. Skopiuj klucz API do użycia w OpenCode. + +4. Uruchom polecenie `/connect` i wyszukaj **Ollama Cloud**. + + ```txt + /connect + ``` + +5. Wprowadź swój klucz API Ollama Cloud. + + ```txt + ┌ API key + │ + │ + └ enter + ``` + +6. **Ważne**: Przed użyciem modeli chmurowych w OpenCode musisz pobrać informacje o modelu lokalnie: + + ```bash + ollama pull gpt-oss:20b-cloud + ``` + +7. Uruchom polecenie `/models`, aby wybrać model Ollama Cloud. + + ```txt + /models + ``` + +--- + +### OpenAI + +Zalecamy zarejestrowanie się w [ChatGPT Plus lub Pro](https://chatgpt.com/pricing). + +1. Po zarejestrowaniu się uruchom komendę `/connect` i wybierz OpenAI. + + ```txt + /connect + ``` + +2. Tutaj możesz wybrać opcję **ChatGPT Plus/Pro**, co spowoduje otwarcie przeglądarki + i poproś o uwierzytelnienie. + + ```txt + ┌ Select auth method + │ + │ ChatGPT Plus/Pro + │ Manually enter API Key + └ + ``` + +3. Teraz wszystkie modele OpenAI powinny być dostępne po użyciu polecenia `/models`. + + ```txt + /models + ``` + +##### Using API keys + +Jeśli posiadasz już klucz API, możesz wybrać opcję **Wprowadź klucz API ręcznie** i wkleić go w terminalu. + +--- + +### OpenCode Zen + +OpenCode Zen to lista przetestowanych i zweryfikowanych modeli udostępniona przez zespół OpenCode. [Dowiedz się więcej](/docs/zen). + +1. Zaloguj się do **<a href={console}>OpenCode Zen</a>** i kliknij **Utwórz klucz API**. + +2. Uruchom polecenie `/connect` i wyszukaj **OpenCode Zen**. + + ```txt + /connect + ``` + +3. Wprowadź klucz API OpenCode. + + ```txt + ┌ API key + │ + │ + └ enter + ``` + +4. Uruchom polecenie `/models`, aby wybrać model taki jak _Qwen 3 Coder 480B_. + + ```txt + /models + ``` + +--- + +### OpenRouter + +1. Przejdź do [panelu OpenRouter](https://openrouter.ai/settings/keys), kliknij **Utwórz klucz API** i skopiuj klucz. + +2. Uruchom komendę `/connect` i wyszukaj OpenRouter. + + ```txt + /connect + ``` + +3. Wprowadź klucz API dla dostawcy. + + ```txt + ┌ API key + │ + │ + └ enter + ``` + +4. Wiele modeli OpenRouter jest domyślnie załadowanych fabrycznie. Uruchom komendę `/models`, aby wybrać ten, który chcesz. + + ```txt + /models + ``` + + Możesz także dodać dodatkowe modele za pomocą konfiguracji opencode. + + ```json title="opencode.json" {6} + { + "$schema": "https://opencode.ai/config.json", + "provider": { + "openrouter": { + "models": { + "somecoolnewmodel": {} + } + } + } + } + ``` + +5. Możesz je także dostosować za pomocą konfiguracji opencode. Oto przykład określenia dostawcy + + ```json title="opencode.json" + { + "$schema": "https://opencode.ai/config.json", + "provider": { + "openrouter": { + "models": { + "moonshotai/kimi-k2": { + "options": { + "provider": { + "order": ["baseten"], + "allow_fallbacks": false + } + } + } + } + } + } + } + ``` + +--- + +### SAP AI Core + +SAP AI Core zapewnia dostęp do ponad 40 modeli z OpenAI, Anthropic, Google, Amazon, Meta, Mistral i AI21 za pośrednictwem ujednoliconej platformy. + +1. Przejdź do [SAP BTP Cockpit](https://account.hana.ondemand.com/), przejdź do instancji usługi SAP AI Core i utwórz klucz usługi. + + :::tip + Klucz usługi to obiekt JSON zawierający `clientid`, `clientsecret`, `url` i `serviceurls.AI_API_URL`. Instancję AI Core znajdziesz w sekcji **Usługi** > **Instancje i subskrypcje** w Kokpicie BTP. + ::: + +2. Uruchom polecenie `/connect` i wyszukaj **SAP AI Core**. + + ```txt + /connect + ``` + +3. Wpisz swój klucz usługi JSON. + + ```txt + ┌ Service key + │ + │ + └ enter + ``` + + Lub ustaw zmienną środowiskową `AICORE_SERVICE_KEY`: + + ```bash + AICORE_SERVICE_KEY='{"clientid":"...","clientsecret":"...","url":"...","serviceurls":{"AI_API_URL":"..."}}' opencode + ``` + + Lub dodaj go do swojego profilu bash: + + ```bash title="~/.bash_profile" + export AICORE_SERVICE_KEY='{"clientid":"...","clientsecret":"...","url":"...","serviceurls":{"AI_API_URL":"..."}}' + ``` + +4. Opcjonalnie ustaw identyfikator wdrożenia i grupę zasobów: + + ```bash + AICORE_DEPLOYMENT_ID=your-deployment-id AICORE_RESOURCE_GROUP=your-resource-group opencode + ``` + + :::note + Te ustawienia są opcjonalne i należy je skonfigurować zgodnie z konfiguracją SAP AI Core. + ::: + +5. Uruchom polecenie `/models`, aby wybrać spośród ponad 40 dostępnych modeli. + + ```txt + /models + ``` + +--- + +### OVHcloud AI Endpoints + +1. Przejdź do [panelu OVHcloud](https://ovh.com/manager). Przejdź do sekcji `Public Cloud`, `AI & Machine Learning` > `AI Endpoints` i na karcie `API Keys` kliknij **Utwórz nowy klucz API**. + +2. Uruchom polecenie `/connect` i wyszukaj **Punkty końcowe AI OVHcloud**. + + ```txt + /connect + ``` + +3. Wpisz klucz API punktów końcowych AI OVHcloud. + + ```txt + ┌ API key + │ + │ + └ enter + ``` + +4. Uruchom polecenie `/models`, aby wybrać model taki jak _gpt-oss-120b_. + + ```txt + /models + ``` + +--- + +### Scaleway + +Aby używać [generatywnych interfejsów API Scaleway](https://www.scaleway.com/en/docs/generative-apis/) z kodem Opencode: + +1. Przejdź do [Ustawień uprawnień konsoli Scaleway](https://console.scaleway.com/iam/api-keys), aby wygenerować nowy klucz API. + +2. Uruchom komendę `/connect` i wyszukaj **Scaleway**. + + ```txt + /connect + ``` + +3. Wprowadź swój klucz API Scaleway. + + ```txt + ┌ API key + │ + │ + └ enter + ``` + +4. Uruchom komendę `/models`, aby wybrać model taki jak _devstral-2-123b-instruct-2512_ lub _gpt-oss-120b_. + + ```txt + /models + ``` + +--- + +### Together AI + +1. Przejdź do [konsoli Razem AI](https://api.together.ai), utwórz konto i kliknij **Dodaj klucz**. + +2. Uruchom komendę `/connect` i wyszukaj **Razem AI**. + + ```txt + /connect + ``` + +3. Wprowadź klucz API Together AI. + + ```txt + ┌ API key + │ + │ + └ enter + ``` + +4. Uruchom polecenie `/models`, aby wybrać model taki jak _Kimi K2 Instruct_. + + ```txt + /models + ``` + +--- + +### Venice AI + +1. Przejdź do [konsoli Venice AI](https://venice.ai), utwórz konto i wygeneruj klucz API. + +2. Uruchom polecenie `/connect` i wyszukaj **Venice AI**. + + ```txt + /connect + ``` + +3. Wprowadź klucz API Wenecji AI. + + ```txt + ┌ API key + │ + │ + └ enter + ``` + +4. Uruchom polecenie `/models`, aby wybrać model taki jak _Llama 3.3 70B_. + + ```txt + /models + ``` + +--- + +### Vercel AI Gateway + +Vercel AI Gateway umożliwia dostęp do modeli z OpenAI, Anthropic, Google, xAI i innych za pośrednictwem ujednoliconego punktu końcowego. Modele oferowane są po cenie katalogowej bez marży. + +1. Przejdź do [panelu Vercel](https://vercel.com/), przejdź do karty **AI Gateway** i kliknij **Klucze API**, aby utworzyć nowy klucz API. + +2. Uruchom polecenie `/connect` i wyszukaj **Vercel AI Gateway**. + + ```txt + /connect + ``` + +3. Wprowadź klucz API Vercel AI Gateway. + + ```txt + ┌ API key + │ + │ + └ enter + ``` + +4. Uruchom komendę `/models`, aby wybrać model. + + ```txt + /models + ``` + +Możesz także dostosować modele za pomocą konfiguracji opencode. Oto przykład określenia kolejności routingu dostawcy. + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "provider": { + "vercel": { + "models": { + "anthropic/claude-sonnet-4": { + "options": { + "order": ["anthropic", "vertex"] + } + } + } + } + } +} +``` + +Some useful routing options: + +| Opcja | Opis | +| ------------------- | ---------------------------------------------------------------------------- | +| `order` | Sekwencja dostawcy do wypróbowania | +| `only` | Restrict to specific providers | +| `zeroDataRetention` | Korzystaj wyłącznie z dostawców, którzy nie mają zasad przechowywania danych | + +--- + +### xAI + +1. Przejdź do [konsoli xAI](https://console.x.ai/), utwórz konto i wygeneruj klucz API. + +2. Uruchom komendę `/connect` i wyszukaj **xAI**. + + ```txt + /connect + ``` + +3. Wprowadź swój klucz API xAI. + + ```txt + ┌ API key + │ + │ + └ enter + ``` + +4. Uruchom polecenie `/models`, aby wybrać model taki jak _Grok Beta_. + + ```txt + /models + ``` + +--- + +### Z.AI + +1. Przejdź do [konsoli API Z.AI](https://z.ai/manage-apikey/apikey-list), utwórz konto i kliknij **Utwórz nowy klucz API**. + +2. Uruchom komendę `/connect` i wyszukaj **Z.AI**. + + ```txt + /connect + ``` + + Jeżeli jesteś abonentem **Planu kodowania GLM**, wybierz **Plan kodowania Z.AI**. + +3. Wpisz swój klucz API Z.AI. + + ```txt + ┌ API key + │ + │ + └ enter + ``` + +4. Uruchom komendę `/models`, aby wybrać model taki jak _GLM-4.7_. + + ```txt + /models + ``` + +--- + +### ZenMux + +1. Przejdź do [panelu ZenMux](https://zenmux.ai/settings/keys), kliknij **Utwórz klucz API** i skopiuj klucz. + +2. Uruchom polecenie `/connect` i wyszukaj ZenMux. + + ```txt + /connect + ``` + +3. Wprowadź klucz API dla dostawcy. + + ```txt + ┌ API key + │ + │ + └ enter + ``` + +4. Wiele modeli ZenMux jest domyślnie załadowanych fabrycznie. Uruchom komendę `/models`, aby wybrać żądany model. + + ```txt + /models + ``` + + Możesz także dodać dodatkowe modele za pomocą konfiguracji opencode. + + ```json title="opencode.json" {6} + { + "$schema": "https://opencode.ai/config.json", + "provider": { + "zenmux": { + "models": { + "somecoolnewmodel": {} + } + } + } + } + ``` + +--- + +## Niestandardowy dostawca + +Aby dodać dowolnego dostawcę **kompatybilnego z OpenAI**, którego nie ma na liście w poleceniu `/connect`: + +:::tip +Możesz użyć dowolnego dostawcy kompatybilnego z OpenAI z otwartym kodem. Większość nowoczesnych dostawców sztucznej inteligencji oferuje interfejsy API kompatybilne z OpenAI. +::: + +1. Uruchom polecenie `/connect` i przewiń w dół do **Inne**. + + ```bash + $ /connect + + ┌ Add credential + │ + ◆ Select provider + │ ... + │ ● Other + └ + ``` + +2. Wprowadź unikalny identyfikator dostawcy. + + ```bash + $ /connect + + ┌ Add credential + │ + ◇ Enter provider id + │ myprovider + └ + ``` + + :::note + Wybierz niezapomniany identyfikator, użyjesz go w swoim pliku konfiguracyjnym. + ::: + +3. Wprowadź klucz API dla dostawcy. + + ```bash + $ /connect + + ┌ Add credential + │ + ▲ This only stores a credential for myprovider - you will need to configure it in opencode.json, check the docs for examples. + │ + ◇ Enter your API key + │ sk-... + └ + ``` + +4. Utwórz lub zaktualizuj plik `opencode.json` w katalogu projektu: + + ```json title="opencode.json" ""myprovider"" {5-15} + { + "$schema": "https://opencode.ai/config.json", + "provider": { + "myprovider": { + "npm": "@ai-sdk/openai-compatible", + "name": "My AI ProviderDisplay Name", + "options": { + "baseURL": "https://api.myprovider.com/v1" + }, + "models": { + "my-model-name": { + "name": "My Model Display Name" + } + } + } + } + } + ``` + + Oto opcje konfiguracji: + - **npm**: pakiet AI SDK do użycia, `@ai-sdk/openai-compatible` dla dostawców kompatybilnych z OpenAI + - **name**: Display name in UI. + - **modele**: Dostępne modele. + - **options.baseURL**: API endpoint URL. + - **options.apiKey**: Opcjonalnie ustaw klucz API, jeśli nie używasz autoryzacji. + - **options.headers**: Optionally set custom headers. + + Więcej o opcjach zaawansowanych w przykładzie poniżej. + +5. Uruchom polecenie `/models`, a niestandardowy dostawca i modele pojawią się na liście wyboru. + +--- + +##### Przykład + +Oto przykład ustawienia opcji `apiKey`, `headers` i modelu `limit`. + +```json title="opencode.json" {9,11,17-20} +{ + "$schema": "https://opencode.ai/config.json", + "provider": { + "myprovider": { + "npm": "@ai-sdk/openai-compatible", + "name": "My AI ProviderDisplay Name", + "options": { + "baseURL": "https://api.myprovider.com/v1", + "apiKey": "{env:ANTHROPIC_API_KEY}", + "headers": { + "Authorization": "Bearer custom-token" + } + }, + "models": { + "my-model-name": { + "name": "My Model Display Name", + "limit": { + "context": 200000, + "output": 65536 + } + } + } + } + } +} +``` + +Configuration details: + +- **apiKey**: Ustaw przy użyciu składni zmiennej `env`, [dowiedz się więcej](/docs/config#env-vars). +- **nagłówki**: niestandardowe nagłówki wysyłane z każdym żądaniem. +- **limit.context**: Maksymalna liczba żetonów wejściowych akceptowanych przez model. +- **limit.output**: Maksymalna liczba tokenów, które model może wygenerować. + +Pola `limit` pozwalają OpenCode zrozumieć, ile kontekstu pozostało. Standardowi dostawcy pobierają je automatycznie z models.dev. + +--- + +## Troubleshooting + +Jeśli masz problemy z konfiguracją dostawcy, sprawdź następujące elementy: + +1. **Sprawdź konfigurację uwierzytelniania**: Uruchom `opencode auth list`, aby sprawdzić, czy poświadczenia + dla dostawcy są dodawane do Twojej konfiguracji. + + Nie dotyczy to dostawców takich jak Amazon Bedrock, którzy w procesie uwierzytelniania opierają się na zmiennych środowiskowych. + +2. W przypadku dostawców niestandardowych sprawdź konfigurację kodu opencode i: + - Upewnij się, że identyfikator dostawcy użyty w poleceniu `/connect` jest zgodny z identyfikatorem w konfiguracji kodu opencode. + - Dla dostawcy używany jest właściwy pakiet npm. Na przykład użyj `@ai-sdk/cerebras` dla Cerebras. W przypadku wszystkich innych dostawców zgodnych z OpenAI użyj `@ai-sdk/openai-compatible`. + - Sprawdź, czy w polu `options.baseURL` użyto prawidłowego punktu końcowego API. diff --git a/packages/web/src/content/docs/pl/rules.mdx b/packages/web/src/content/docs/pl/rules.mdx new file mode 100644 index 000000000..361a8fa7c --- /dev/null +++ b/packages/web/src/content/docs/pl/rules.mdx @@ -0,0 +1,180 @@ +--- +title: Rules +description: Ustaw niestandardowe instrukcje dla opencode. +--- + +Możesz dostarczyć niestandardowe instrukcje do kodu opencode, tworząc plik `AGENTS.md`. Jest to podobne do zasad Cursora. Zawiera instrukcje, które zostaną uwzględnione w kontekście LLM, aby dostosować jego zachowanie do konkretnego projektu. + +--- + +## Inicjalizacja + +Aby utworzyć nowy plik `AGENTS.md`, możesz uruchomić komendę `/init` w otwartym kodzie. + +:::tip +Powinieneś zatwierdzić plik `AGENTS.md` swojego projektu w Git. +::: + +Spowoduje to przeskanowanie projektu i całej jego zawartości, aby zrozumieć, czego dotyczy projekt i wygenerować z nim plik `AGENTS.md`. Pomaga to otwartemu kodowi lepiej poruszać się po projekcie. + +Jeśli masz istniejący plik `AGENTS.md`, spróbujemy go dodać. + +--- + +## Przykład + +Możesz także po prostu utworzyć ten plik ręcznie. Oto przykład niektórych rzeczy, które można umieścić w pliku `AGENTS.md`. + +```markdown title="AGENTS.md" +# SST v3 Monorepo Project + +This is an SST v3 monorepo with TypeScript. The project uses bun workspaces for package management. + +## Project Structure + +- `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 + +## Code Standards + +- 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/` + +## Monorepo Conventions + +- Import shared modules using workspace names: `@my-app/core/example` +``` + +Dodajemy tutaj instrukcje dotyczące konkretnego projektu, które zostaną udostępnione całemu zespołowi. + +--- + +## Types + +opencode obsługuje także odczytywanie pliku `AGENTS.md` z wielu lokalizacji. A to służy różnym celom. + +### Project + +Umieść `AGENTS.md` w katalogu głównym projektu, aby uzyskać reguły specyficzne dla projektu. Mają one zastosowanie tylko wtedy, gdy pracujesz w tym katalogu lub jego podkatalogach. + +### Global + +Możesz także mieć reguły globalne w pliku `~/.config/opencode/AGENTS.md`. Jest to stosowane we wszystkich sesjach opencode. + +Ponieważ nie jest to wymagane dla Git ani udostępniane Twojemu zespołowi, zalecamy użycie tego do określenia wszelkich osobistych zasad, których powinien przestrzegać LLM. + +### Claude Code Compatibility + +W przypadku użytkowników migrujących z Claude Code OpenCode obsługuje konwencje plików Claude Code jako rozwiązania awaryjne: + +- **Zasady projektu**: `CLAUDE.md` w katalogu projektu (używane, jeśli nie istnieje `AGENTS.md`) +- **Zasady globalne**: `~/.claude/CLAUDE.md` (używane, jeśli nie istnieje `~/.config/opencode/AGENTS.md`) +- **Umiejętności**: `~/.claude/skills/` — szczegóły znajdziesz w [Umiejętnościach agenta](/docs/skills/) + +Aby wyłączyć kompatybilność z Claude Code, ustaw jedną z tych zmiennych środowiskowych: + +```bash +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 +``` + +--- + +## Precedence + +Po uruchomieniu opencode szuka plików reguł w następującej kolejności: + +1. **Pliki lokalne** poprzez przejście z bieżącego katalogu (`AGENTS.md`, `CLAUDE.md`) +2. **Plik globalny** w `~/.config/opencode/AGENTS.md` +3. **Plik Claude Code** w `~/.claude/CLAUDE.md` (chyba że wyłączony) + +Pierwszy pasujący plik wygrywa w każdej kategorii. Na przykład, jeśli masz zarówno `AGENTS.md`, jak i `CLAUDE.md`, używany jest tylko `AGENTS.md`. Podobnie `~/.config/opencode/AGENTS.md` ma pierwszeństwo przed `~/.claude/CLAUDE.md`. + +--- + +## Instrukcje niestandardowe + +Możesz określić niestandardowe pliki instrukcji w swoim `opencode.json` lub globalnym `~/.config/opencode/opencode.json`. Dzięki temu Ty i Twój zespół możecie ponownie wykorzystać istniejące reguły, zamiast duplikować je w pliku AGENTS.md. + +Przykład: + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "instructions": ["CONTRIBUTING.md", "docs/guidelines.md", ".cursor/rules/*.md"] +} +``` + +Możesz także użyć zdalnych adresów URL, aby załadować instrukcje z Internetu. + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "instructions": ["https://raw.githubusercontent.com/my-org/shared-rules/main/style.md"] +} +``` + +Instrukcje zdalne są pobierane z 5-sekundowym limitem czasu. + +Wszystkie pliki instrukcji są łączone z plikami `AGENTS.md`. + +--- + +## Odwoływanie się do plików zewnętrznych + +Chociaż opencode nie analizuje automatycznie odniesień do plików w `AGENTS.md`, możesz osiągnąć podobną funkcjonalność na dwa sposoby: + +### Używanie opencode.json + +Zalecanym podejściem jest użycie pola `instructions` w `opencode.json`: + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "instructions": ["docs/development-standards.md", "test/testing-guidelines.md", "packages/*/AGENTS.md"] +} +``` + +### Manual Instructions in AGENTS.md + +Możesz nauczyć opencode czytać pliki zewnętrzne, podając wyraźne instrukcje w swoim `AGENTS.md`. Oto praktyczny przykład: + +```markdown title="AGENTS.md" +# TypeScript Project Rules + +## External File Loading + +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. + +Instructions: + +- 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 + +## Development Guidelines + +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 + +## General Guidelines + +Read the following file immediately as it's relevant to all workflows: @rules/general-guidelines.md. +``` + +Takie podejście pozwala: + +- Twórz modułowe pliki reguł wielokrotnego użytku +- Share rules across projects via symlinks or git submodules +- Keep AGENTS.md concise while referencing detailed guidelines +- Upewnij się, że opencode ładuje pliki tylko wtedy, gdy są potrzebne do konkretnego zadania + +:::tip +W przypadku monorepo lub projektów ze wspólnymi standardami użycie `opencode.json` ze wzorami globalnymi (takimi jak `packages/*/AGENTS.md`) jest łatwiejsze w utrzymaniu niż instrukcje ręczne. +::: diff --git a/packages/web/src/content/docs/pl/sdk.mdx b/packages/web/src/content/docs/pl/sdk.mdx new file mode 100644 index 000000000..28ac06eb6 --- /dev/null +++ b/packages/web/src/content/docs/pl/sdk.mdx @@ -0,0 +1,391 @@ +--- +title: SDK +description: Klient JS bezpieczny dla typu dla serwera opencode. +--- + +import config from "../../../../config.mjs" +export const typesUrl = `${config.github}/blob/dev/packages/sdk/js/src/gen/types.gen.ts` + +Pakiet SDK JS/TS z otwartym kodem zapewnia klienta bezpiecznego typu do interakcji z serwerem. +Użyj go do budowania integracji i programowej kontroli otwartego kodu. + +[Dowiedz się więcej](/docs/server) o działaniu serwera. Przykłady znajdziesz w [projektach](/docs/ecosystem#projects) stworzonych przez społeczność. + +--- + +## Zainstalować + +Zainstaluj pakiet SDK z npm: + +```bash +npm install @opencode-ai/sdk +``` + +--- + +## Utwórz klienta + +Utwórz instancję otwartego kodu: + +```javascript +import { createOpencode } from "@opencode-ai/sdk" + +const { client } = await createOpencode() +``` + +Spowoduje to uruchomienie zarówno serwera, jak i klienta + +#### Options + +| Opcja | Wpisz | Opis | Domyślne | +| ---------- | ------------- | ------------------------------ | ----------- | +| `hostname` | `string` | Nazwa hosta serwera | `127.0.0.1` | +| `port` | `number` | Port serwera | `4096` | +| `signal` | `AbortSignal` | Sygnał przerwania w celu anulowania | `undefined` | +| `timeout` | `number` | Limit czasu w ms dla uruchomienia serwera | `5000` | +| `config` | `Config` | Configuration object | `{}` | + +--- + +## Config + +Można przekazać obiekt konfiguracyjny, aby dostosować zachowanie. Instancja nadal pobiera `opencode.json`, ale możesz zastąpić lub dodać konfigurację bezpośrednio: + +```javascript +import { createOpencode } from "@opencode-ai/sdk" + +const opencode = await createOpencode({ + hostname: "127.0.0.1", + port: 4096, + config: { + model: "anthropic/claude-3-5-sonnet-20241022", + }, +}) + +console.log(`Server running at ${opencode.server.url}`) + +opencode.server.close() +``` + +## Client only + +Jeśli masz już działającą instancję opencode, możesz utworzyć instancję klienta, aby się z nią połączyć: + +```javascript +import { createOpencodeClient } from "@opencode-ai/sdk" + +const client = createOpencodeClient({ + baseUrl: "http://localhost:4096", +}) +``` + +#### Options + +| Opcja | Wpisz | Opis | Domyślne | +| --------------- | ---------- | -------------------------------- | ----------------------- | +| `baseUrl` | `string` | Adres URL serwera | `http://localhost:4096` | +| `fetch` | `function` | Custom fetch implementation | `globalThis.fetch` | +| `parseAs` | `string` | Response parsing method | `auto` | +| `responseStyle` | `string` | Return style: `data` or `fields` | `fields` | +| `throwOnError` | `boolean` | Throw errors instead of return | `false` | + +--- + +## Types + +Zestaw SDK zawiera definicje TypeScript dla wszystkich typów API. Zaimportuj je bezpośrednio: + +```typescript +import type { Session, Message, Part } from "@opencode-ai/sdk" +``` + +Wszystkie typy są generowane na podstawie specyfikacji OpenAPI serwera i dostępne w <a href={typesUrl}>pliku typów</a>. + +--- + +## Errors + +SDK może generować błędy, które można przechwycić i obsłużyć: + +```typescript +try { + await client.session.get({ path: { id: "invalid-id" } }) +} catch (error) { + console.error("Failed to get session:", (error as Error).message) +} +``` + +--- + +## APIs + +Zestaw SDK udostępnia wszystkie interfejsy API serwera za pośrednictwem klienta bezpiecznego typu. + +--- + +### Global + +| Method | Description | Response | +| ----------------- | ------------------------------- | ------------------------------------ | +| `global.health()` | Sprawdź stan i wersję serwera | `{ healthy: true, version: string }` | + +--- + +#### Examples + +```javascript +const health = await client.global.health() +console.log(health.data.version) +``` + +--- + +### App + +| Method | Description | Response | +| -------------- | ------------------------- | ------------------------------------------- | +| `app.log()` | Write a log entry | `boolean` | +| `app.agents()` | Lista wszystkich dostępnych agentów | <a href={typesUrl}><code>Agent[]</code></a> | + +--- + +#### Examples + +```javascript +// Write a log entry +await client.app.log({ + body: { + service: "my-app", + level: "info", + message: "Operation completed", + }, +}) + +// List available agents +const agents = await client.app.agents() +``` + +--- + +### Project + +| Method | Description | Response | +| ------------------- | ------------------- | --------------------------------------------- | +| `project.list()` | Lista wszystkich projektów | <a href={typesUrl}><code>Projekt[]</code></a> | +| `project.current()` | Get current project | <a href={typesUrl}><code>Project</code></a> | + +--- + +#### Examples + +```javascript +// List all projects +const projects = await client.project.list() + +// Get current project +const currentProject = await client.project.current() +``` + +--- + +### Path + +| Method | Description | Response | +| ------------ | ---------------- | ---------------------------------------- | +| `path.get()` | Get current path | <a href={typesUrl}><code>Path</code></a> | + +--- + +#### Examples + +```javascript +// Get current path information +const pathInfo = await client.path.get() +``` + +--- + +### Config + +| Method | Description | Response | +| -------------------- | --------------------------------- | ----------------------------------------------------------------------------------------------------- | +| `config.get()` | Get config info | <a href={typesUrl}><code>Config</code></a> | +| `config.providers()` | Lista dostawców i modeli domyślnych | `{ providers: `<a href={typesUrl}><code>Dostawca[]</code></a>`, default: { [key: string]: string } }` | + +--- + +#### Examples + +```javascript +const config = await client.config.get() + +const { providers, default: defaults } = await client.config.providers() +``` + +--- + +### Sessions + +| Method | Description | Notes | +| ---------------------------------------------------------- | ---------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | +| `session.list()` | Lista sesji | Zwraca <a href={typesUrl}><code>Sesja[]</code></a> | +| `session.get({ path })` | Uzyskaj sesję | Zwraca <a href={typesUrl}><code>Sesja</code></a> | +| `session.children({ path })` | Lista sesji podrzędnych | Zwraca <a href={typesUrl}><code>Sesja[]</code></a> | +| `session.create({ body })` | Utwórz sesję | Zwraca <a href={typesUrl}><code>Sesja</code></a> | +| `session.delete({ path })` | Usuń sesję | Zwraca `boolean` | +| `session.update({ path, body })` | Aktualizuj właściwości sesji | Zwraca <a href={typesUrl}><code>Sesja</code></a> | +| `session.init({ path, body })` | Przeanalizuj aplikację i utwórz `AGENTS.md` | Zwraca `boolean` | +| `session.abort({ path })` | Przerwij trwającą sesję | Zwraca `boolean` | +| `session.share({ path })` | Udostępnij sesję | Zwraca <a href={typesUrl}><code>Sesja</code></a> | +| `session.unshare({ path })` | Cofnij udostępnianie sesji | Zwraca <a href={typesUrl}><code>Sesja</code></a> | +| `session.summarize({ path, body })` | Podsumowanie sesji | Zwraca `boolean` | +| `session.messages({ path })` | Lista wiadomości w sesji | Zwraca `{ info: `<a href={typesUrl}><code>Wiadomość</code></a>`, parts: `<a href={typesUrl}><code>Część[]</code></a>`}[]` | +| `session.message({ path })` | Uzyskaj szczegóły wiadomości | Zwraca `{ info: `<a href={typesUrl}><code>Wiadomość</code></a>`, parts: `<a href={typesUrl}><code>Część[]</code></a>`}` | +| `session.prompt({ path, body })` | Wyślij wiadomość | `body.noReply: true` zwraca UserMessage (tylko kontekst). Domyślnie zwraca <a href={typesUrl}><code>AssistantMessage</code></a> z odpowiedzią AI | +| `session.command({ path, body })` | Wyślij polecenie do sesji | Zwraca `{ info: `<a href={typesUrl}><code>Wiadomość Asystenta</code></a>`, parts: `<a href={typesUrl}><code>Część[]</code></a>`}` | +| `session.shell({ path, body })` | Uruchom polecenie powłoki | Zwraca <a href={typesUrl}><code>Wiadomość Asystenta</code></a> | +| `session.revert({ path, body })` | Przywróć wiadomość | Zwraca <a href={typesUrl}><code>Sesja</code></a> | +| `session.unrevert({ path })` | Przywróć przywrócone wiadomości | Zwraca <a href={typesUrl}><code>Sesja</code></a> | +| `postSessionByIdPermissionsByPermissionId({ path, body })` | Respond to a permission request | Returns `boolean` | + +--- + +#### Examples + +```javascript +// Create and manage sessions +const session = await client.session.create({ + body: { title: "My session" }, +}) + +const sessions = await client.session.list() + +// 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: "Hello!" }], + }, +}) + +// Inject context without triggering AI response (useful for plugins) +await client.session.prompt({ + path: { id: session.id }, + body: { + noReply: true, + parts: [{ type: "text", text: "You are a helpful assistant." }], + }, +}) +``` + +--- + +### Files + +| Method | Description | Response | +| ------------------------- | ---------------------------------- | ------------------------------------------------------------------------------------------- | +| `find.text({ query })` | Szukaj tekstu w plikach | Tablica obiektów dopasowania z `path`, `lines`, `line_number`, `absolute_offset`, `submatches` | +| `find.files({ query })` | Znajdź pliki i katalogi według nazwy | `string[]` (ścieżki) | +| `find.symbols({ query })` | Find workspace symbols | <a href={typesUrl}><code>Symbol[]</code></a> | +| `file.read({ query })` | Read a file | `{ type: "raw" \| "patch", content: string }` | +| `file.status({ query? })` | Uzyskaj status śledzonych plików | <a href={typesUrl}><code>Plik[]</code></a> | + +`find.files` supports a few optional query fields: + +- `type`: `"file"` or `"directory"` +- `directory`: zastąp katalog główny projektu dla wyszukiwania +- `limit`: max results (1–200) + +--- + +#### Examples + +```javascript +// Search and read files +const textResults = await client.find.text({ + query: { pattern: "function.*opencode" }, +}) + +const files = await client.find.files({ + query: { query: "*.ts", type: "file" }, +}) + +const directories = await client.find.files({ + query: { query: "packages", type: "directory", limit: 20 }, +}) + +const content = await client.file.read({ + query: { path: "src/index.ts" }, +}) +``` + +--- + +### TUI + +| Method | Description | Response | +| ------------------------------ | ------------------------- | --------- | +| `tui.appendPrompt({ body })` | Dołącz tekst do zachęty | `boolean` | +| `tui.openHelp()` | Otwórz okno pomocy | `boolean` | +| `tui.openSessions()` | Otwórz selektor sesji | `boolean` | +| `tui.openThemes()` | Otwórz selektor motywów | `boolean` | +| `tui.openModels()` | Otwórz selektor modelu | `boolean` | +| `tui.submitPrompt()` | Prześlij bieżący monit | `boolean` | +| `tui.clearPrompt()` | Wyczyść monit | `boolean` | +| `tui.executeCommand({ body })` | Wykonaj polecenie | `boolean` | +| `tui.showToast({ body })` | Pokaż powiadomienie tostowe | `boolean` | + +--- + +#### Examples + +```javascript +// Control TUI interface +await client.tui.appendPrompt({ + body: { text: "Add this to prompt" }, +}) + +await client.tui.showToast({ + body: { message: "Task completed", variant: "success" }, +}) +``` + +--- + +### Auth + +| Method | Description | Response | +| ------------------- | ------------------------------ | --------- | +| `auth.set({ ... })` | Set authentication credentials | `boolean` | + +--- + +#### Examples + +```javascript +await client.auth.set({ + path: { id: "anthropic" }, + body: { type: "api", key: "your-api-key" }, +}) +``` + +--- + +### Events + +| Method | Description | Response | +| ------------------- | ------------------------- | ------------------------- | +| `event.subscribe()` | Strumień zdarzeń wysłanych przez serwer | Strumień zdarzeń wysłanych przez serwer | + +--- + +#### Examples + +```javascript +// Listen to real-time events +const events = await client.event.subscribe() +for await (const event of events.stream) { + console.log("Event:", event.type, event.properties) +} +``` diff --git a/packages/web/src/content/docs/pl/server.mdx b/packages/web/src/content/docs/pl/server.mdx new file mode 100644 index 000000000..0c6bfb1eb --- /dev/null +++ b/packages/web/src/content/docs/pl/server.mdx @@ -0,0 +1,287 @@ +--- +title: Serwer +description: Interakcja z serwerem opencode za pośrednictwem protokołu HTTP. +--- + +import config from "../../../../config.mjs" +export const typesUrl = `${config.github}/blob/dev/packages/sdk/js/src/gen/types.gen.ts` + +Komenda `opencode serve` uruchamia bezgłowy serwer HTTP, który udostępnia punkt końcowy OpenAPI, z którego może korzystać klient opencode. + +--- + +### Użycie + +```bash +opencode serve [--port <number>] [--hostname <string>] [--cors <origin>] +``` + +#### Opcje + +| Flaga | Opis | Domyślne | +| --------------- | -------------------------------------------- | ---------------- | +| `--port` | Port nasłuchiwania | `4096` | +| `--hostname` | Nazwa hosta do nasłuchiwania | `127.0.0.1` | +| `--mdns` | Włącz wykrywanie mDNS | `false` | +| `--mdns-domain` | Niestandardowa nazwa domeny dla usługi mDNS | `opencode.local` | +| `--cors` | Dodatkowe originy przeglądarki do dozwolenia | `[]` | + +`--cors` można przekazać wiele razy: + +```bash +opencode serve --cors http://localhost:5173 --cors https://app.example.com +``` + +--- + +### Uwierzytelnianie + +Ustaw `OPENCODE_SERVER_PASSWORD`, aby chronić serwer za pomocą podstawowego uwierzytelniania HTTP. Domyślną nazwą użytkownika jest `opencode` lub ustaw `OPENCODE_SERVER_USERNAME`, aby ją zastąpić. Dotyczy to zarówno `opencode serve`, jak i `opencode web`. + +```bash +OPENCODE_SERVER_PASSWORD=your-password opencode serve +``` + +--- + +### How it works + +Kiedy uruchomisz `opencode`, uruchomi się TUI i serwer. Gdzie jest TUI +klient komunikujący się z serwerem. Serwer udostępnia specyfikację OpenAPI 3.1 +punkt końcowy. Ten punkt końcowy jest również używany do generowania [SDK](/docs/sdk). + +:::tip +Użyj serwera opencode do programowej interakcji z opencode. +::: + +Ta architektura umożliwia obsługę wielu klientów przez kod otwarty i programową interakcję z kodem otwartym. + +Możesz uruchomić `opencode serve`, aby uruchomić samodzielny serwer. Jeśli masz +opencode TUI działa, `opencode serve` uruchomi nowy serwer. + +--- + +#### Połącz się z istniejącym serwerem + +Po uruchomieniu TUI losowo przypisuje port i nazwę hosta. Zamiast tego możesz przekazać `--hostname` i `--port` [flagi](/docs/cli). Następnie użyj tego, aby połączyć się z serwerem. + +Punktu końcowego [`/tui`](#tui) można użyć do sterowania TUI przez serwer. Można na przykład wstępnie wypełnić lub uruchomić monit. Ta konfiguracja jest używana przez wtyczki OpenCode [IDE](/docs/ide). + +--- + +## Spec + +Serwer publikuje specyfikację OpenAPI 3.1, którą można obejrzeć pod adresem: + +``` +http://<hostname>:<port>/doc +``` + +Na przykład `http://localhost:4096/doc`. Użyj specyfikacji, aby wygenerować klientów lub sprawdzić typy żądań i odpowiedzi. Możesz też wyświetlić go w eksploratorze Swagger. + +--- + +## APIs + +Serwer opencode udostępnia następujące interfejsy API. + +--- + +### Global + +| Method | Path | Description | Response | +| ------ | ---------------- | ------------------------------ | ------------------------------------ | +| `GET` | `/global/health` | Uzyskaj stan i wersję serwera | `{ healthy: true, version: string }` | +| `GET` | `/global/event` | Get global events (SSE stream) | Event stream | + +--- + +### Project + +| Method | Path | Description | Response | +| ------ | ------------------ | -------------------------- | --------------------------------------------- | +| `GET` | `/project` | Lista wszystkich projektów | <a href={typesUrl}><code>Projekt[]</code></a> | +| `GET` | `/project/current` | Pobierz bieżący projekt | <a href={typesUrl}><code>Projekt</code></a> | + +--- + +### Path & VCS + +| Method | Path | Description | Response | +| ------ | ------- | --------------------------------------------- | ------------------------------------------- | +| `GET` | `/path` | Pobierz bieżącą ścieżkę | <a href={typesUrl}><code>Ścieżka</code></a> | +| `GET` | `/vcs` | Uzyskaj informacje VCS dla bieżącego projektu | <a href={typesUrl}><code>VcsInfo</code></a> | + +--- + +### Instance + +| Method | Path | Description | Response | +| ------ | ------------------- | ---------------------- | --------- | +| `POST` | `/instance/dispose` | Usuń bieżącą instancję | `boolean` | + +--- + +### Config + +| Method | Path | Description | Response | +| ------- | ------------------- | ----------------------------------- | ---------------------------------------------------------------------------------------- | +| `GET` | `/config` | Get config info | <a href={typesUrl}><code>Config</code></a> | +| `PATCH` | `/config` | Update config | <a href={typesUrl}><code>Config</code></a> | +| `GET` | `/config/providers` | Lista dostawców i modeli domyślnych | `{ providers: `<a href={typesUrl}>Dostawca[]</a>`, default: { [key: string]: string } }` | + +--- + +### Dostawca + +| Method | Path | Description | Response | +| ------ | -------------------------------- | ---------------------------------------------- | ----------------------------------------------------------------------------------- | +| `GET` | `/provider` | Lista wszystkich dostawców | `{ all: `<a href={typesUrl}>Dostawca[]</a>`, default: {...}, connected: string[] }` | +| `GET` | `/provider/auth` | Uzyskaj metody uwierzytelniania dostawcy | `{ [providerID: string]: `<a href={typesUrl}>ProviderAuthMethod[]</a>` }` | +| `POST` | `/provider/{id}/oauth/authorize` | Autoryzuj dostawcę za pomocą protokołu OAuth | <a href={typesUrl}><code>ProviderAuthAuthorization</code></a> | +| `POST` | `/provider/{id}/oauth/callback` | Obsługa wywołania zwrotnego OAuth dla dostawcy | `boolean` | + +--- + +### Sessions + +| Method | Path | Description | Notes | +| -------- | ---------------------------------------- | ------------------------------------------- | -------------------------------------------------------------------------------- | +| `GET` | `/session` | Lista wszystkich sesji | Zwraca <a href={typesUrl}><code>Sesja[]</code></a> | +| `POST` | `/session` | Utwórz nową sesję | treść: `{ parentID?, title? }`, zwraca <a href={typesUrl}><code>Sesja</code></a> | +| `GET` | `/session/status` | Uzyskaj status sesji dla wszystkich sesji | Zwraca `{ [sessionID: string]: `<a href={typesUrl}>Status sesji</a>` }` | +| `GET` | `/session/:id` | Uzyskaj szczegóły sesji | Zwraca <a href={typesUrl}><code>Sesja</code></a> | +| `DELETE` | `/session/:id` | Usuń sesję i wszystkie jej dane | Zwraca `boolean` | +| `PATCH` | `/session/:id` | Aktualizuj właściwości sesji | treść: `{ title? }`, zwraca <a href={typesUrl}><code>Sesja</code></a> | +| `GET` | `/session/:id/children` | Pobierz sesje podrzędne sesji | Zwraca <a href={typesUrl}><code>Sesja[]</code></a> | +| `GET` | `/session/:id/todo` | Pobierz listę rzeczy do zrobienia dla sesji | Zwraca <a href={typesUrl}><code>Do zrobienia[]</code></a> | +| `POST` | `/session/:id/init` | Przeanalizuj aplikację i utwórz `AGENTS.md` | treść: `{ messageID, providerID, modelID }`, zwraca `boolean` | +| `POST` | `/session/:id/fork` | Rozwiń istniejącą sesję w wiadomości | treść: `{ messageID? }`, zwraca <a href={typesUrl}><code>Sesja</code></a> | +| `POST` | `/session/:id/abort` | Przerwij trwającą sesję | Zwraca `boolean` | +| `POST` | `/session/:id/share` | Udostępnij sesję | Zwraca <a href={typesUrl}><code>Sesja</code></a> | +| `DELETE` | `/session/:id/share` | Anuluj udostępnianie sesji | Zwraca <a href={typesUrl}><code>Sesja</code></a> | +| `GET` | `/session/:id/diff` | Pobierz różnicę dla tej sesji | zapytanie: `messageID?`, zwraca <a href={typesUrl}><code>FileDiff[]</code></a> | +| `POST` | `/session/:id/summarize` | Podsumuj sesję | treść: `{ providerID, modelID }`, zwraca `boolean` | +| `POST` | `/session/:id/revert` | Przywróć wiadomość | treść: `{ messageID, partID? }`, zwraca `boolean` | +| `POST` | `/session/:id/unrevert` | Przywróć wszystkie przywrócone wiadomości | Zwraca `boolean` | +| `POST` | `/session/:id/permissions/:permissionID` | Odpowiedz na prośbę o pozwolenie | treść: `{ response, remember? }`, zwraca `boolean` | + +--- + +### Messages + +| Method | Path | Description | Notes | +| ------ | --------------------------------- | ----------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `GET` | `/session/:id/message` | Lista wiadomości w sesji | zapytanie: `limit?`, zwraca `{ info: `<a href={typesUrl}>Wiadomość</a>`, parts: `<a href={typesUrl}>Część[]</a>`}[]` | +| `POST` | `/session/:id/message` | Wyślij wiadomość i poczekaj na odpowiedź | treść: `{ messageID?, model?, agent?, noReply?, system?, tools?, parts }`, zwraca `{ info: `<a href={typesUrl}>Wiadomość</a>`, parts: `<a href={typesUrl}>Część[]</a>`}` | +| `GET` | `/session/:id/message/:messageID` | Uzyskaj szczegóły wiadomości | Zwraca `{ info: `<a href={typesUrl}>Wiadomość</a>`, parts: `<a href={typesUrl}>Część[]</a>`}` | +| `POST` | `/session/:id/prompt_async` | Wyślij wiadomość asynchronicznie (bez czekania) | treść: taka sama jak `/session/:id/message`, zwraca `204 No Content` | +| `POST` | `/session/:id/command` | Wykonaj polecenie ukośnika | treść: `{ messageID?, agent?, model?, command, arguments }`, zwraca `{ info: `<a href={typesUrl}>Wiadomość</a>`, parts: `<a href={typesUrl}>Część[]</a>`}` | +| `POST` | `/session/:id/shell` | Uruchom polecenie powłoki | treść: `{ agent, model?, command }`, zwraca `{ info: `<a href={typesUrl}>Wiadomość</a>`, parts: `<a href={typesUrl}>Część[]</a>`}` | + +--- + +### Komendy + +| Metoda | Ścieżka | Opis | Odpowiedź | +| ------ | ---------- | ------------------------ | ----------------------------------------------- | +| `GET` | `/command` | Lista wszystkich poleceń | <a href={typesUrl}><code>Polecenie[]</code></a> | + +--- + +### Pliki + +| Method | Path | Description | Response | +| ------ | ------------------------ | ------------------------------------ | ---------------------------------------------------------------------------------------------- | +| `GET` | `/find?pattern=<pat>` | Szukaj tekstu w plikach | Tablica obiektów dopasowania z `path`, `lines`, `line_number`, `absolute_offset`, `submatches` | +| `GET` | `/find/file?query=<q>` | Znajdź pliki i katalogi według nazwy | `string[]` (ścieżki) | +| `GET` | `/find/symbol?query=<q>` | Find workspace symbols | <a href={typesUrl}><code>Symbol[]</code></a> | +| `GET` | `/file?path=<path>` | Lista plików i katalogów | <a href={typesUrl}><code>FileNode[]</code></a> | +| `GET` | `/file/content?path=<p>` | Read a file | <a href={typesUrl}><code>FileContent</code></a> | +| `GET` | `/file/status` | Uzyskaj status śledzonych plików | <a href={typesUrl}><code>Plik[]</code></a> | + +#### `/find/file` query parameters + +- `query` (required) — search string (fuzzy match) +- `type` (optional) — limit results to `"file"` or `"directory"` +- `directory` (opcjonalnie) — zastąp katalog główny projektu dla wyszukiwania +- `limit` (optional) — max results (1–200) +- `dirs` (optional) — legacy flag (`"false"` returns only files) + +--- + +### Tools (Experimental) + +| Method | Path | Description | Response | +| ------ | ------------------------------------------- | -------------------------------------------- | ----------------------------------------------------------- | +| `GET` | `/experimental/tool/ids` | Lista wszystkich identyfikatorów narzędzi | <a href={typesUrl}><code>Identyfikatory narzędzi</code></a> | +| `GET` | `/experimental/tool?provider=<p>&model=<m>` | Lista narzędzi ze schematami JSON dla modelu | <a href={typesUrl}><code>Lista narzędzi</code></a> | + +--- + +### LSP, Formatters & MCP + +| Method | Path | Description | Response | +| ------ | ------------ | ---------------------------- | -------------------------------------------------------- | +| `GET` | `/lsp` | Uzyskaj status serwera LSP | <a href={typesUrl}><code>LSPStatus[]</code></a> | +| `GET` | `/formatter` | Get formatter status | <a href={typesUrl}><code>FormatterStatus[]</code></a> | +| `GET` | `/mcp` | Uzyskaj status serwera MCP | `{ [name: string]: `<a href={typesUrl}>MCPStatus</a>` }` | +| `POST` | `/mcp` | Dodaj dynamicznie serwer MCP | treść: `{ name, config }`, zwraca obiekt stanu MCP | + +--- + +### Agents + +| Method | Path | Description | Response | +| ------ | -------- | ----------------------------------- | ------------------------------------------- | +| `GET` | `/agent` | Lista wszystkich dostępnych agentów | <a href={typesUrl}><code>Agent[]</code></a> | + +--- + +### Logging + +| Method | Path | Description | Response | +| ------ | ------ | ------------------------------------------------------------ | --------- | +| `POST` | `/log` | Write log entry. Body: `{ service, level, message, extra? }` | `boolean` | + +--- + +### TUI + +| Method | Path | Description | Response | +| ------ | ----------------------- | -------------------------------------------- | ----------------------- | +| `POST` | `/tui/append-prompt` | Dołącz tekst do zachęty | `boolean` | +| `POST` | `/tui/open-help` | Otwórz okno pomocy | `boolean` | +| `POST` | `/tui/open-sessions` | Otwórz selektor sesji | `boolean` | +| `POST` | `/tui/open-themes` | Otwórz selektor motywów | `boolean` | +| `POST` | `/tui/open-models` | Otwórz selektor modelu | `boolean` | +| `POST` | `/tui/submit-prompt` | Prześlij bieżący monit | `boolean` | +| `POST` | `/tui/clear-prompt` | Wyczyść monit | `boolean` | +| `POST` | `/tui/execute-command` | Wykonaj polecenie (`{ command }`) | `boolean` | +| `POST` | `/tui/show-toast` | Pokaż toast (`{ title?, message, variant }`) | `boolean` | +| `GET` | `/tui/control/next` | Poczekaj na następne żądanie kontroli | Obiekt żądania kontroli | +| `POST` | `/tui/control/response` | Respond to a control request (`{ body }`) | `boolean` | + +--- + +### Auth + +| Method | Path | Description | Response | +| ------ | ----------- | --------------------------------------------------------------------- | --------- | +| `PUT` | `/auth/:id` | Ustaw dane uwierzytelniające. Treść musi pasować do schematu dostawcy | `boolean` | + +--- + +### Events + +| Method | Path | Description | Response | +| ------ | -------- | -------------------------------------------------------------------------------------------------------------------- | --------------------------------------- | +| `GET` | `/event` | Strumień zdarzeń wysyłanych przez serwer. Pierwsze wydarzenie to `server.connected`, następnie wydarzenia autobusowe | Strumień zdarzeń wysłanych przez serwer | + +--- + +### Docs + +| Method | Path | Description | Response | +| ------ | ------ | ------------------------ | ----------------------------------- | +| `GET` | `/doc` | Specyfikacja OpenAPI 3.1 | Strona HTML ze specyfikacją OpenAPI | diff --git a/packages/web/src/content/docs/pl/share.mdx b/packages/web/src/content/docs/pl/share.mdx new file mode 100644 index 000000000..0411571d3 --- /dev/null +++ b/packages/web/src/content/docs/pl/share.mdx @@ -0,0 +1,128 @@ +--- +title: Share +description: Udostępnij swoje rozmowy dotyczące OpenCode. +--- + +Funkcja udostępniania OpenCode umożliwia tworzenie publicznych linków do konwersacji OpenCode, dzięki czemu możesz współpracować z członkami zespołu lub uzyskać pomoc od innych. + +:::note +Udostępnione konwersacje są publicznie dostępne dla każdej osoby mającej link. +::: + +--- + +## How it works + +Kiedy udostępniasz rozmowę, OpenCode: + +1. Tworzy unikalny publiczny adres URL sesji +2. Synchronizuje historię rozmów z naszymi serwerami +3. Udostępnia rozmowę za pośrednictwem łącza do udostępniania — `opncd.ai/s/<share-id>` + +--- + +## Sharing + +OpenCode obsługuje trzy tryby udostępniania, które kontrolują sposób udostępniania rozmów: + +--- + +### Ręczny (domyślny) + +Domyślnie OpenCode korzysta z ręcznego trybu udostępniania. Sesje nie są udostępniane automatycznie, ale możesz je udostępnić ręcznie za pomocą polecenia `/share`: + +``` +/share +``` + +Spowoduje to wygenerowanie unikalnego adresu URL, który zostanie skopiowany do schowka. + +Aby jawnie ustawić tryb ręczny w [pliku konfiguracyjnym] (./config): + +```json title="opencode.json" +{ + "$schema": "https://opncd.ai/config.json", + "share": "manual" +} +``` + +--- + +### Auto-share + +Możesz włączyć automatyczne udostępnianie dla wszystkich nowych rozmów, ustawiając opcję `share` na `"auto"` w [pliku konfiguracyjnym] (./config): + +```json title="opencode.json" +{ + "$schema": "https://opncd.ai/config.json", + "share": "auto" +} +``` + +Po włączeniu automatycznego udostępniania każda nowa rozmowa będzie automatycznie udostępniana i generowany będzie link. + +--- + +### Disabled + +Możesz całkowicie wyłączyć udostępnianie, ustawiając opcję `share` na `"disabled"` w [pliku konfiguracyjnym] (./config): + +```json title="opencode.json" +{ + "$schema": "https://opncd.ai/config.json", + "share": "disabled" +} +``` + +Aby wymusić to w całym zespole dla danego projektu, dodaj go do `opencode.json` w swoim projekcie i sprawdź w Git. + +--- + +## Un-sharing + +Aby zatrzymać udostępnianie rozmowy i usunąć ją z dostępu publicznego: + +``` +/unshare +``` + +Spowoduje to usunięcie łącza udostępniania i danych związanych z rozmową. + +--- + +## Privacy + +There are a few things to keep in mind when sharing a conversation. + +--- + +### Data retention + +Udostępnione rozmowy pozostają dostępne, dopóki wyraźnie ich nie udostępnisz. Ten +includes: + +- Full conversation history +- Wszystkie wiadomości i odpowiedzi +- Metadane sesji + +--- + +### Recommendations + +- Udostępniaj tylko rozmowy, które nie zawierają poufnych informacji. +- Review conversation content before sharing. +- Unshare conversations when collaboration is complete. +- Unikaj udostępniania rozmów zawierających zastrzeżony kod lub poufne dane. +- W przypadku wrażliwych projektów całkowicie wyłącz udostępnianie. + +--- + +## Dla przedsiębiorstw + +W przypadku wdrożeń korporacyjnych funkcją udostępniania może być: + +- **Wyłączone** całkowicie ze względu na bezpieczeństwo +- **Restricted** to users authenticated through SSO only +- **Własny hosting** na własnej infrastrukturze + +[Dowiedz się więcej](/docs/enterprise) o używaniu kodu opencode w Twojej organizacji. diff --git a/packages/web/src/content/docs/pl/skills.mdx b/packages/web/src/content/docs/pl/skills.mdx new file mode 100644 index 000000000..1517a0c7b --- /dev/null +++ b/packages/web/src/content/docs/pl/skills.mdx @@ -0,0 +1,222 @@ +--- +title: "Agent Skills" +description: "Define reusable behavior via SKILL.md definitions" +--- + +Umiejętności agenta pozwalają OpenCode odkryć instrukcje wielokrotnego użytku z repozytorium lub katalogu domowego. +Umiejętności są ładowane na żądanie za pośrednictwem natywnego narzędzia `skill` — agenci widzą dostępne umiejętności i w razie potrzeby mogą załadować pełną zawartość. + +--- + +## Place files + +Utwórz jeden folder na nazwę umiejętności i umieść w nim `SKILL.md`. +OpenCode searches these locations: + +- Project config: `.opencode/skills/<name>/SKILL.md` +- Global config: `~/.config/opencode/skills/<name>/SKILL.md` +- Project Claude-compatible: `.claude/skills/<name>/SKILL.md` +- Global Claude-compatible: `~/.claude/skills/<name>/SKILL.md` +- Project agent-compatible: `.agents/skills/<name>/SKILL.md` +- Global agent-compatible: `~/.agents/skills/<name>/SKILL.md` + +--- + +## Understand discovery + +W przypadku ścieżek lokalnych projektu OpenCode przechodzi od bieżącego katalogu roboczego, aż dotrze do drzewa roboczego git. +Ładuje po drodze dowolne pasujące `skills/*/SKILL.md` w `.opencode/` i dowolne pasujące `.claude/skills/*/SKILL.md` lub `.agents/skills/*/SKILL.md`. + +Ładowane są także definicje globalne z `~/.config/opencode/skills/*/SKILL.md`, `~/.claude/skills/*/SKILL.md` i `~/.agents/skills/*/SKILL.md`. + +--- + +## Write frontmatter + +Każdy `SKILL.md` musi zaczynać się od treści YAML. +Only these fields are recognized: + +- `name` (required) +- `description` (required) +- `license` (optional) +- `compatibility` (optional) +- `metadata` (optional, string-to-string map) + +Unknown frontmatter fields are ignored. + +--- + +## Validate names + +`name` must: + +- Be 1–64 characters +- Należy używać małych liter alfanumerycznych i oddzielać je pojedynczym łącznikiem +- Nie zaczyna się ani nie kończy na `-` +- Not contain consecutive `--` +- Dopasuj nazwę katalogu zawierającą `SKILL.md` + +Equivalent regex: + +```text +^[a-z0-9]+(-[a-z0-9]+)*$ +``` + +--- + +## Follow length rules + +`description` must be 1-1024 characters. +Zadbaj o to, aby agent mógł dokonać prawidłowego wyboru. + +--- + +## Skorzystaj z przykładu + +Utwórz `.opencode/skills/git-release/SKILL.md` w ten sposób: + +```markdown +--- +name: git-release +description: Create consistent releases and changelogs +license: MIT +compatibility: opencode +metadata: + audience: maintainers + workflow: github +--- + +## What I do + +- Draft release notes from merged PRs +- Propose a version bump +- Provide a copy-pasteable `gh release create` command + +## When to use me + +Use this when you are preparing a tagged release. +Ask clarifying questions if the target versioning scheme is unclear. +``` + +--- + +## Recognize tool description + +OpenCode wymienia dostępne umiejętności w opisie narzędzia `skill`. +Każdy wpis zawiera nazwę i opis umiejętności: + +```xml +<available_skills> + <skill> + <name>git-release</name> + <description>Create consistent releases and changelogs</description> + </skill> +</available_skills> +``` + +Agent ładuje umiejętność wywołując narzędzie: + +``` +skill({ name: "git-release" }) +``` + +--- + +## Skonfiguruj uprawnienia + +Control which skills agents can access using pattern-based permissions in `opencode.json`: + +```json +{ + "permission": { + "skill": { + "*": "allow", + "pr-review": "allow", + "internal-*": "deny", + "experimental-*": "ask" + } + } +} +``` + +| Permission | Behavior | +| ---------- | ----------------------------------------- | +| `allow` | Skill loads immediately | +| `deny` | Skill hidden from agent, access rejected | +| `ask` | Użytkownik proszony o zatwierdzenie przed załadowaniem | + +Wzorce obsługują symbole wieloznaczne: `internal-*` odpowiada `internal-docs`, `internal-tools` itd. + +--- + +## Override per agent + +Nadaj konkretnym agentom inne uprawnienia niż globalne ustawienia domyślne. + +**Dla agentów niestandardowych** (w temacie agentów): + +```yaml +--- +permission: + skill: + "documents-*": "allow" +--- +``` + +**Dla agentów wbudowanych** (w `opencode.json`): + +```json +{ + "agent": { + "plan": { + "permission": { + "skill": { + "internal-*": "allow" + } + } + } + } +} +``` + +--- + +## Wyłącz narzędzie umiejętności + +Całkowicie wyłącz umiejętności agentów, którzy nie powinni ich używać: + +**Dla agentów celnych**: + +```yaml +--- +tools: + skill: false +--- +``` + +**W przypadku agentów wbudowanych**: + +```json +{ + "agent": { + "plan": { + "tools": { + "skill": false + } + } + } +} +``` + +Jeśli opcja jest wyłączona, sekcja `<available_skills>` jest całkowicie pomijana. + +--- + +## Troubleshoot loading + +Jeśli umiejętność nie pojawi się: + +1. Verify `SKILL.md` is spelled in all caps +2. Sprawdź, czy frontmatter zawiera `name` i `description` +3. Ensure skill names are unique across all locations +4. Sprawdź uprawnienia — umiejętności z `deny` są ukryte przed agentami diff --git a/packages/web/src/content/docs/pl/themes.mdx b/packages/web/src/content/docs/pl/themes.mdx new file mode 100644 index 000000000..c3dd9ec81 --- /dev/null +++ b/packages/web/src/content/docs/pl/themes.mdx @@ -0,0 +1,369 @@ +--- +title: Themes +description: Wybierz wbudowany motyw lub zdefiniuj własny. +--- + +Dzięki OpenCode możesz wybrać jeden z kilku wbudowanych motywów, użyć motywu, który dostosowuje się do motywu terminala lub zdefiniować własny, niestandardowy motyw. + +Domyślnie OpenCode używa naszego własnego motywu `opencode`. + +--- + +## Terminal requirements + +Aby motywy wyświetlały się poprawnie z pełną paletą kolorów, Twój terminal musi obsługiwać **truecolor** (kolor 24-bitowy). Większość nowoczesnych terminali domyślnie obsługuje tę opcję, ale może być konieczne jej włączenie: + +- **Sprawdź wsparcie**: Uruchom `echo $COLORTERM` - powinno wypisać `truecolor` lub `24bit` +- **Włącz truecolor**: Ustaw zmienną środowiskową `COLORTERM=truecolor` w swoim profilu powłoki +- **Zgodność terminala**: Upewnij się, że emulator terminala obsługuje 24-bitowy kolor (większość nowoczesnych terminali, takich jak iTerm2, Alacritty, Kitty, Windows Terminal i najnowsze wersje terminala GNOME tak) + +Bez obsługi Truecolor motywy mogą pojawiać się ze zmniejszoną dokładnością kolorów lub wracać do najbliższego przybliżenia 256 kolorów. + +--- + +## Wbudowane motywy + +OpenCode ma kilka wbudowanych motywów. + +| Name | Description | +| ---------------------- | --------------------------------------------------------------------------------- | +| `system` | Dopasowuje się do koloru tła terminala | +| `tokyonight` | Na podstawie motywu [Tokyonight](https://github.com/folke/tokyonight.nvim) | +| `everforest` | Na podstawie motywu [Everforest](https://github.com/sainnhe/everforest) | +| `ayu` | Na podstawie ciemnego motywu [Ayu](https://github.com/ayu-theme) | +| `catppuccin` | Na podstawie motywu [Catppuccin](https://github.com/catppuccin) | +| `catppuccin-macchiato` | Na podstawie motywu [Catppuccin](https://github.com/catppuccin) | +| `gruvbox` | Na podstawie motywu [Gruvbox](https://github.com/morhetz/gruvbox) | +| `kanagawa` | Na podstawie motywu [Kanagawa](https://github.com/rebelot/kanagawa.nvim) | +| `nord` | Na podstawie motywu [Nord](https://github.com/nordtheme/nord) | +| `matrix` | Hacker-style green on black theme | +| `one-dark` | Na podstawie ciemnego motywu [Atom One](https://github.com/Th3Whit3Wolf/one-nvim) | + +Co więcej, stale dodajemy nowe motywy. + +--- + +## System theme + +Motyw `system` został zaprojektowany tak, aby automatycznie dostosowywał się do schematu kolorów terminala. W przeciwieństwie do tradycyjnych motywów, które używają stałych kolorów, motyw _system_: + +- **Generuje skalę szarości**: Tworzy niestandardową skalę szarości w oparciu o kolor tła terminala, zapewniając optymalny kontrast. +- **Używa kolorów ANSI**: Wykorzystuje standardowe kolory ANSI (0-15) do podświetlania składni i elementów interfejsu użytkownika, które odpowiadają palecie kolorów terminala. +- **Zachowuje ustawienia domyślne terminala**: Używa `none` dla kolorów tekstu i tła, aby zachować natywny wygląd terminala. + +Motyw systemu przeznaczony jest dla użytkowników, którzy: + +- Want OpenCode to match their terminal's appearance +- Użyj niestandardowych schematów kolorów terminali +- Prefer a consistent look across all terminal applications + +--- + +## Using a theme + +Możesz wybrać motyw, wywołując opcję wyboru motywu za pomocą polecenia `/theme`. Możesz też określić to w [config](/docs/config). + +```json title="opencode.json" {3} +{ + "$schema": "https://opencode.ai/config.json", + "theme": "tokyonight" +} +``` + +--- + +## Custom themes + +OpenCode obsługuje elastyczny system motywów oparty na JSON, który pozwala użytkownikom łatwo tworzyć i dostosowywać motywy. + +--- + +### Hierarchy + +Motywy są ładowane z wielu katalogów w następującej kolejności, przy czym późniejsze katalogi zastępują wcześniejsze: + +1. **Wbudowane motywy** – są osadzone w formacie binarnym +2. **User config directory** - Defined in `~/.config/opencode/themes/*.json` or `$XDG_CONFIG_HOME/opencode/themes/*.json` +3. **Katalog główny projektu** - Zdefiniowany w `<project-root>/.opencode/themes/*.json` +4. **Current working directory** - Defined in `./.opencode/themes/*.json` + +Jeśli wiele katalogów zawiera motyw o tej samej nazwie, zostanie użyty motyw z katalogu o wyższym priorytecie. + +--- + +### Creating a theme + +Aby utworzyć niestandardowy motyw, utwórz plik JSON w jednym z katalogów motywów. + +W przypadku motywów dla całego użytkownika: + +```bash no-frame +mkdir -p ~/.config/opencode/themes +vim ~/.config/opencode/themes/my-theme.json +``` + +Oraz dla tematów specyficznych dla projektu. + +```bash no-frame +mkdir -p .opencode/themes +vim .opencode/themes/my-theme.json +``` + +--- + +### JSON format + +Motywy korzystają z elastycznego formatu JSON z obsługą: + +- **Hex colors**: `"#ffffff"` +- **ANSI colors**: `3` (0-255) +- **Color references**: `"primary"` or custom definitions +- **Dark/light variants**: `{"dark": "#000", "light": "#fff"}` +- **Brak koloru**: `"none"` - Używa domyślnego koloru terminala lub przezroczystości + +--- + +### Color definitions + +Sekcja `defs` jest opcjonalna i pozwala zdefiniować kolory wielokrotnego użytku, do których można się odwoływać w motywie. + +--- + +### Terminal defaults + +Wartość specjalna `"none"` może zostać użyta dla dowolnego koloru, aby przejąć domyślny kolor terminala. Jest to szczególnie przydatne do tworzenia motywów, które płynnie komponują się ze schematem kolorów terminala: + +- `"text": "none"` - Używa domyślnego koloru pierwszego planu terminala +- `"background": "none"` - Używa domyślnego koloru tła terminala + +--- + +### Przykład + +Here's an example of a custom theme: + +```json title="my-theme.json" +{ + "$schema": "https://opencode.ai/theme.json", + "defs": { + "nord0": "#2E3440", + "nord1": "#3B4252", + "nord2": "#434C5E", + "nord3": "#4C566A", + "nord4": "#D8DEE9", + "nord5": "#E5E9F0", + "nord6": "#ECEFF4", + "nord7": "#8FBCBB", + "nord8": "#88C0D0", + "nord9": "#81A1C1", + "nord10": "#5E81AC", + "nord11": "#BF616A", + "nord12": "#D08770", + "nord13": "#EBCB8B", + "nord14": "#A3BE8C", + "nord15": "#B48EAD" + }, + "theme": { + "primary": { + "dark": "nord8", + "light": "nord10" + }, + "secondary": { + "dark": "nord9", + "light": "nord9" + }, + "accent": { + "dark": "nord7", + "light": "nord7" + }, + "error": { + "dark": "nord11", + "light": "nord11" + }, + "warning": { + "dark": "nord12", + "light": "nord12" + }, + "success": { + "dark": "nord14", + "light": "nord14" + }, + "info": { + "dark": "nord8", + "light": "nord10" + }, + "text": { + "dark": "nord4", + "light": "nord0" + }, + "textMuted": { + "dark": "nord3", + "light": "nord1" + }, + "background": { + "dark": "nord0", + "light": "nord6" + }, + "backgroundPanel": { + "dark": "nord1", + "light": "nord5" + }, + "backgroundElement": { + "dark": "nord1", + "light": "nord4" + }, + "border": { + "dark": "nord2", + "light": "nord3" + }, + "borderActive": { + "dark": "nord3", + "light": "nord2" + }, + "borderSubtle": { + "dark": "nord2", + "light": "nord3" + }, + "diffAdded": { + "dark": "nord14", + "light": "nord14" + }, + "diffRemoved": { + "dark": "nord11", + "light": "nord11" + }, + "diffContext": { + "dark": "nord3", + "light": "nord3" + }, + "diffHunkHeader": { + "dark": "nord3", + "light": "nord3" + }, + "diffHighlightAdded": { + "dark": "nord14", + "light": "nord14" + }, + "diffHighlightRemoved": { + "dark": "nord11", + "light": "nord11" + }, + "diffAddedBg": { + "dark": "#3B4252", + "light": "#E5E9F0" + }, + "diffRemovedBg": { + "dark": "#3B4252", + "light": "#E5E9F0" + }, + "diffContextBg": { + "dark": "nord1", + "light": "nord5" + }, + "diffLineNumber": { + "dark": "nord2", + "light": "nord4" + }, + "diffAddedLineNumberBg": { + "dark": "#3B4252", + "light": "#E5E9F0" + }, + "diffRemovedLineNumberBg": { + "dark": "#3B4252", + "light": "#E5E9F0" + }, + "markdownText": { + "dark": "nord4", + "light": "nord0" + }, + "markdownHeading": { + "dark": "nord8", + "light": "nord10" + }, + "markdownLink": { + "dark": "nord9", + "light": "nord9" + }, + "markdownLinkText": { + "dark": "nord7", + "light": "nord7" + }, + "markdownCode": { + "dark": "nord14", + "light": "nord14" + }, + "markdownBlockQuote": { + "dark": "nord3", + "light": "nord3" + }, + "markdownEmph": { + "dark": "nord12", + "light": "nord12" + }, + "markdownStrong": { + "dark": "nord13", + "light": "nord13" + }, + "markdownHorizontalRule": { + "dark": "nord3", + "light": "nord3" + }, + "markdownListItem": { + "dark": "nord8", + "light": "nord10" + }, + "markdownListEnumeration": { + "dark": "nord7", + "light": "nord7" + }, + "markdownImage": { + "dark": "nord9", + "light": "nord9" + }, + "markdownImageText": { + "dark": "nord7", + "light": "nord7" + }, + "markdownCodeBlock": { + "dark": "nord4", + "light": "nord0" + }, + "syntaxComment": { + "dark": "nord3", + "light": "nord3" + }, + "syntaxKeyword": { + "dark": "nord9", + "light": "nord9" + }, + "syntaxFunction": { + "dark": "nord8", + "light": "nord8" + }, + "syntaxVariable": { + "dark": "nord7", + "light": "nord7" + }, + "syntaxString": { + "dark": "nord14", + "light": "nord14" + }, + "syntaxNumber": { + "dark": "nord15", + "light": "nord15" + }, + "syntaxType": { + "dark": "nord7", + "light": "nord7" + }, + "syntaxOperator": { + "dark": "nord9", + "light": "nord9" + }, + "syntaxPunctuation": { + "dark": "nord4", + "light": "nord0" + } + } +} +``` diff --git a/packages/web/src/content/docs/pl/tools.mdx b/packages/web/src/content/docs/pl/tools.mdx new file mode 100644 index 000000000..1c97c84ac --- /dev/null +++ b/packages/web/src/content/docs/pl/tools.mdx @@ -0,0 +1,379 @@ +--- +title: Tools +description: Zarządzaj narzędziami, z których może korzystać LLM. +--- + +Narzędzia umożliwiają LLM wykonywanie działań w bazie kodu. OpenCode ma zestaw wbudowanych narzędzi, ale możesz go rozszerzyć o [narzędzia niestandardowe](/docs/custom-tools) lub [serwery MCP](/docs/mcp-servers). + +Domyślnie wszystkie narzędzia są **włączone** i nie wymagają pozwolenia na uruchomienie. Możesz kontrolować zachowanie narzędzia poprzez [uprawnienia](/docs/permissions). + +--- + +## Skonfiguruj + +Użyj pola `permission` do kontrolowania zachowania narzędzia. Dla każdego narzędzia możesz zezwolić, odmówić lub wymagać zatwierdzenia. + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "permission": { + "edit": "deny", + "bash": "ask", + "webfetch": "allow" + } +} +``` + +Możesz także używać symboli wieloznacznych do kontrolowania wielu narzędzi jednocześnie. Na przykład, aby wymagać zatwierdzenia wszystkich narzędzi z serwera MCP: + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "permission": { + "mymcp_*": "ask" + } +} +``` + +[Dowiedz się więcej](/docs/permissions) o konfigurowaniu uprawnień. + +--- + +## Wbudowane + +Oto wszystkie wbudowane narzędzia dostępne w OpenCode. + +--- + +### bash + +Wykonuj polecenia powłoki w środowisku projektu. + +```json title="opencode.json" {4} +{ + "$schema": "https://opencode.ai/config.json", + "permission": { + "bash": "allow" + } +} +``` + +To narzędzie umożliwia LLM uruchamianie poleceń terminalowych, takich jak `npm install`, `git status` lub dowolne inne polecenie powłoki. + +--- + +### edit + +Modify existing files using exact string replacements. + +```json title="opencode.json" {4} +{ + "$schema": "https://opencode.ai/config.json", + "permission": { + "edit": "allow" + } +} +``` + +To narzędzie umożliwia precyzyjną edycję plików poprzez zastąpienie dokładnych dopasowań tekstu. Jest to główny sposób, w jaki LLM modyfikuje kod. + +--- + +### write + +Utwórz nowe pliki lub nadpisz istniejące. + +```json title="opencode.json" {4} +{ + "$schema": "https://opencode.ai/config.json", + "permission": { + "edit": "allow" + } +} +``` + +Użyj tego, aby umożliwić LLM tworzenie nowych plików. Zastąpi istniejące pliki, jeśli już istnieją. + +:::note +Narzędzie `write` jest kontrolowane przez uprawnienie `edit`, które obejmuje wszystkie modyfikacje plików (`edit`, `write`, `patch`, `multiedit`). +::: + +--- + +### read + +Przeczytaj zawartość pliku z bazy kodu. + +```json title="opencode.json" {4} +{ + "$schema": "https://opencode.ai/config.json", + "permission": { + "read": "allow" + } +} +``` + +Narzędzie to odczytuje pliki i zwraca ich zawartość. Obsługuje czytanie określonych zakresów linii w przypadku dużych plików. + +--- + +### grep + +Search file contents using regular expressions. + +```json title="opencode.json" {4} +{ + "$schema": "https://opencode.ai/config.json", + "permission": { + "grep": "allow" + } +} +``` + +Szybkie wyszukiwanie treści w całej bazie kodu. Obsługuje pełną składnię wyrażeń regularnych i filtrowanie wzorców plików. + +--- + +### glob + +Find files by pattern matching. + +```json title="opencode.json" {4} +{ + "$schema": "https://opencode.ai/config.json", + "permission": { + "glob": "allow" + } +} +``` + +Szukaj plików przy użyciu wzorców globalnych, takich jak `**/*.js` lub `src/**/*.ts`. Zwraca pasujące ścieżki plików posortowane według czasu modyfikacji. + +--- + +### lista + +Wyświetla listę plików i katalogów w podanej ścieżce. + +```json title="opencode.json" {4} +{ + "$schema": "https://opencode.ai/config.json", + "permission": { + "list": "allow" + } +} +``` + +To narzędzie wyświetla zawartość katalogu. Akceptuje wzorce globalne do filtrowania wyników. + +--- + +### lsp (experimental) + +Wejdź w interakcję ze skonfigurowanymi serwerami LSP, aby uzyskać funkcje analizy kodu, takie jak definicje, odniesienia, informacje o najechaniu myszką i hierarchia połączeń. + +:::note +To narzędzie jest dostępne tylko wtedy, gdy `OPENCODE_EXPERIMENTAL_LSP_TOOL=true` (lub `OPENCODE_EXPERIMENTAL=true`). +::: + +```json title="opencode.json" {4} +{ + "$schema": "https://opencode.ai/config.json", + "permission": { + "lsp": "allow" + } +} +``` + +Obsługiwane operacje obejmują `goToDefinition`, `findReferences`, `hover`, `documentSymbol`, `workspaceSymbol`, `goToImplementation`, `prepareCallHierarchy`, `incomingCalls` i `outgoingCalls`. + +Aby skonfigurować, które serwery LSP są dostępne dla Twojego projektu, zobacz [Serwery LSP](/docs/lsp). + +--- + +### patch + +Apply patches to files. + +```json title="opencode.json" {4} +{ + "$schema": "https://opencode.ai/config.json", + "permission": { + "edit": "allow" + } +} +``` + +To narzędzie stosuje pliki poprawek do bazy kodu. Przydatne do stosowania różnic i poprawek z różnych źródeł. + +:::note +Narzędzie `patch` jest kontrolowane przez uprawnienie `edit`, które obejmuje wszystkie modyfikacje plików (`edit`, `write`, `patch`, `multiedit`). +::: + +--- + +### skill + +Załaduj [umiejętność](/docs/skills) (plik `SKILL.md`) i zwróć jej treść w rozmowie. + +```json title="opencode.json" {4} +{ + "$schema": "https://opencode.ai/config.json", + "permission": { + "skill": "allow" + } +} +``` + +--- + +### todowrite + +Zarządzaj listami rzeczy do zrobienia podczas sesji kodowania. + +```json title="opencode.json" {4} +{ + "$schema": "https://opencode.ai/config.json", + "permission": { + "todowrite": "allow" + } +} +``` + +Tworzy i aktualizuje listy zadań w celu śledzenia postępu podczas złożonych operacji. LLM wykorzystuje to do organizowania zadań wieloetapowych. + +:::note +To narzędzie jest domyślnie wyłączone dla podagentów, ale można je włączyć ręcznie. [Dowiedz się więcej](/docs/agents/#permissions) +::: + +--- + +### todoread + +Read existing todo lists. + +```json title="opencode.json" {4} +{ + "$schema": "https://opencode.ai/config.json", + "permission": { + "todoread": "allow" + } +} +``` + +Odczytuje bieżący stan listy rzeczy do zrobienia. Używany przez LLM do śledzenia zadań oczekujących lub ukończonych. + +:::note +To narzędzie jest domyślnie wyłączone dla podagentów, ale można je włączyć ręcznie. [Dowiedz się więcej](/docs/agents/#permissions) +::: + +--- + +### webfetch + +Fetch web content. + +```json title="opencode.json" {4} +{ + "$schema": "https://opencode.ai/config.json", + "permission": { + "webfetch": "allow" + } +} +``` + +Umożliwia LLM pobieranie i odczytywanie stron internetowych. Przydatne do wyszukiwania dokumentacji lub wyszukiwania zasobów online. + +--- + +### websearch + +Wyszukaj informacje w Internecie. + +:::note +To narzędzie jest dostępne tylko w przypadku korzystania z dostawcy OpenCode lub gdy zmienna środowiskowa `OPENCODE_ENABLE_EXA` jest ustawiona na dowolną wartość prawdziwą (np. `true` lub `1`). + +To enable when launching OpenCode: + +```bash +OPENCODE_ENABLE_EXA=1 opencode +``` + +::: + +```json title="opencode.json" {4} +{ + "$schema": "https://opencode.ai/config.json", + "permission": { + "websearch": "allow" + } +} +``` + +Przeszukuje Internet za pomocą Exa AI, aby znaleźć odpowiednie informacje w Internecie. Przydatne do badania tematów, znajdowania bieżących wydarzeń lub zbierania informacji wykraczających poza limit danych szkoleniowych. + +Nie jest wymagany żaden klucz API — narzędzie łączy się bezpośrednio z usługą MCP hostowaną przez Exa AI bez uwierzytelniania. + +:::tip +Użyj `websearch`, gdy chcesz znaleźć informacje (odkrycie), i `webfetch`, gdy musisz pobrać treść z określonego adresu URL (pobieranie). +::: + +--- + +### question + +Zadawaj pytania użytkownikowi podczas wykonywania. + +```json title="opencode.json" {4} +{ + "$schema": "https://opencode.ai/config.json", + "permission": { + "question": "allow" + } +} +``` + +To narzędzie umożliwia LLM zadawanie pytań użytkownikowi podczas wykonywania zadania. Jest to przydatne dla: + +- Gathering user preferences or requirements +- Clarifying ambiguous instructions +- Getting decisions on implementation choices +- Offering choices about what direction to take + +Każde pytanie zawiera nagłówek, tekst pytania i listę opcji. Użytkownicy mogą wybierać spośród dostępnych opcji lub wpisać niestandardową odpowiedź. Jeśli pytań jest wiele, użytkownicy mogą nawigować między nimi przed przesłaniem wszystkich odpowiedzi. + +--- + +## Custom tools + +Niestandardowe narzędzia pozwalają zdefiniować własne funkcje, które LLM może wywołać. Są one zdefiniowane w pliku konfiguracyjnym i mogą wykonywać dowolny kod. + +[Więcej informacji](/docs/custom-tools) o tworzeniu narzędzi niestandardowych. + +--- + +## MCP servers + +Serwery MCP (Model Context Protocol) umożliwiają integrację zewnętrznych narzędzi i usług. Obejmuje to dostęp do baz danych, integracje API i usługi stron trzecich. + +[Dowiedz się więcej](/docs/mcp-servers) o konfigurowaniu serwerów MCP. + +--- + +## Internals + +Wewnętrznie narzędzia takie jak `grep`, `glob` i `list` używają pod maską [ripgrep](https://github.com/BurntSushi/ripgrep). Domyślnie ripgrep respektuje wzorce `.gitignore`, co oznacza, że pliki i katalogi wymienione w Twoim `.gitignore` zostaną wykluczone z wyszukiwań i list. + +--- + +### Ignore patterns + +Aby uwzględnić pliki, które normalnie byłyby ignorowane, utwórz plik `.ignore` w katalogu głównym projektu. Ten plik może jawnie zezwalać na określone ścieżki. + +```text title=".ignore" +!node_modules/ +!dist/ +!build/ +``` + +Na przykład ten plik `.ignore` pozwala ripgrepowi przeszukiwać katalogi `node_modules/`, `dist/` i `build/`, nawet jeśli są one wymienione w `.gitignore`. diff --git a/packages/web/src/content/docs/pl/troubleshooting.mdx b/packages/web/src/content/docs/pl/troubleshooting.mdx new file mode 100644 index 000000000..844d5b91f --- /dev/null +++ b/packages/web/src/content/docs/pl/troubleshooting.mdx @@ -0,0 +1,300 @@ +--- +title: Troubleshooting +description: Typowe problemy i sposoby ich rozwiązywania. +--- + +Aby debugować problemy z OpenCode, zacznij od sprawdzenia dzienników i danych lokalnych przechowywanych na dysku. + +--- + +## Logs + +Log files are written to: + +- **macOS/Linux**: `~/.local/share/opencode/log/` +- **Windows**: Naciśnij `WIN+R` i wklej `%USERPROFILE%\.local\share\opencode\log` + +Nazwy plików dziennika zawierają znaczniki czasu (np. `2025-01-09T123456.log`) i przechowywanych jest 10 ostatnich plików dziennika. + +Możesz ustawić poziom dziennika za pomocą opcji wiersza poleceń `--log-level`, aby uzyskać bardziej szczegółowe informacje debugowania. Na przykład `opencode --log-level DEBUG`. + +--- + +## Storage + +opencode przechowuje dane sesji i inne dane aplikacji na dysku pod adresem: + +- **macOS/Linux**: `~/.local/share/opencode/` +- **Windows**: Naciśnij `WIN+R` i wklej `%USERPROFILE%\.local\share\opencode` + +Ten katalog zawiera: + +- `auth.json` - Authentication data like API keys, OAuth tokens +- `log/` - Application logs +- `project/` — Dane specyficzne dla projektu, takie jak dane sesji i komunikatów + - Jeśli projekt znajduje się w repozytorium Git, jest on przechowywany w `./<project-slug>/storage/` + - If it is not a Git repo, it is stored in `./global/storage/` + +--- + +## Desktop app + +OpenCode Desktop uruchamia w tle lokalny serwer OpenCode (wózek boczny `opencode-cli`). Większość problemów jest spowodowana nieprawidłowo działającą wtyczką, uszkodzoną pamięcią podręczną lub złymi ustawieniami serwera. + +### Quick checks + +- Całkowicie zakończ i uruchom ponownie aplikację. +- Jeśli aplikacja wyświetli ekran błędu, kliknij **Uruchom ponownie** i skopiuj szczegóły błędu. +- Tylko macOS: menu `OpenCode` -> **Załaduj ponownie przeglądarkę internetową** (pomaga, jeśli interfejs użytkownika jest pusty/zawieszony). + +--- + +### Disable plugins + +Jeśli aplikacja komputerowa ulega awarii podczas uruchamiania, zawiesza się lub zachowuje się dziwnie, zacznij od wyłączenia wtyczek. + +#### Sprawdź konfigurację globalną + +Otwórz globalny plik konfiguracyjny i poszukaj klucza `plugin`. + +- **macOS/Linux**: `~/.config/opencode/opencode.jsonc` (or `~/.config/opencode/opencode.json`) +- **macOS/Linux** (older installs): `~/.local/share/opencode/opencode.jsonc` +- **Windows**: Naciśnij `WIN+R` i wklej `%USERPROFILE%\.config\opencode\opencode.jsonc` + +Jeśli masz skonfigurowane wtyczki, tymczasowo je wyłącz, usuwając klucz lub ustawiając go na pustą tablicę: + +```jsonc +{ + "$schema": "https://opencode.ai/config.json", + "plugin": [], +} +``` + +#### Check plugin directories + +OpenCode może także ładować lokalne wtyczki z dysku. Tymczasowo usuń je (lub zmień nazwę folderu) i uruchom ponownie aplikację komputerową: + +- **Global plugins** + - **macOS/Linux**: `~/.config/opencode/plugins/` + - **Windows**: Naciśnij `WIN+R` i wklej `%USERPROFILE%\.config\opencode\plugins` +- **Wtyczki projektowe** (tylko jeśli używasz konfiguracji dla poszczególnych projektów) + - `<your-project>/.opencode/plugins/` + +Jeśli aplikacja ponownie zacznie działać, włączaj ponownie wtyczki pojedynczo, aby dowiedzieć się, która powoduje problem. + +--- + +### Wyczyść pamięć podręczną + +Jeśli wyłączenie wtyczek nie pomoże (lub instalacja wtyczki utknęła), wyczyść pamięć podręczną, aby OpenCode mógł ją odbudować. + +1. Quit OpenCode Desktop completely. +2. Usuń katalog pamięci podręcznej: + +- **macOS**: Finder -> `Cmd+Shift+G` -> paste `~/.cache/opencode` +- **Linux**: usuń `~/.cache/opencode` (lub uruchom `rm -rf ~/.cache/opencode`) +- **Windows**: Naciśnij `WIN+R` i wklej `%USERPROFILE%\.cache\opencode` + +3. Restart OpenCode Desktop. + +--- + +### Napraw problemy z połączeniem z serwerem + +OpenCode Desktop może uruchomić własny serwer lokalny (domyślnie) lub połączyć się ze skonfigurowanym adresem URL serwera. + +Jeśli zobaczysz okno dialogowe **„Połączenie nie powiodło się”** (lub aplikacja nigdy nie wychodzi poza ekran powitalny), sprawdź, czy jest niestandardowy adres URL serwera. + +#### Wyczyść domyślny adres URL serwera na komputerze + +Na ekranie głównym kliknij nazwę serwera (z kropką stanu), aby otworzyć selektor serwerów. W sekcji **Serwer domyślny** kliknij **Wyczyść**. + +#### Usuń `server.port` / `server.hostname` ze swojej konfiguracji + +Jeśli Twój `opencode.json(c)` zawiera sekcję `server`, tymczasowo usuń ją i uruchom ponownie aplikację komputerową. + +#### Check environment variables + +Jeśli w swoim środowisku masz ustawiony `OPENCODE_PORT`, aplikacja komputerowa spróbuje użyć tego portu dla serwera lokalnego. + +- Rozbierz `OPENCODE_PORT` (lub wybierz wolny port) i uruchom ponownie. + +--- + +### Linux: Wayland / X11 issues + +On Linux, some Wayland setups can cause blank windows or compositor errors. + +- Jeśli korzystasz z Wayland, a aplikacja jest pusta/ ulega awarii, spróbuj uruchomić ją za pomocą `OC_ALLOW_WAYLAND=1`. +- Jeśli to pogorszy sprawę, usuń go i zamiast tego spróbuj uruchomić w sesji X11. + +--- + +### Windows: WebView2 runtime + +W systemie Windows OpenCode Desktop wymaga Microsoft Edge **WebView2 Runtime**. Jeśli aplikacja otwiera się w pustym oknie lub nie uruchamia się, zainstaluj/zaktualizuj WebView2 i spróbuj ponownie. + +--- + +### Windows: General performance issues + +Jeśli doświadczasz niskiej wydajności, problemów z dostępem do plików lub problemów z terminalem w systemie Windows, spróbuj użyć [WSL (podsystem Windows dla systemu Linux) (./windows-wsl). WSL zapewnia środowisko Linux, które płynniej współpracuje z funkcjami OpenCode. + +--- + +### Notifications not showing + +OpenCode Desktop only shows system notifications when: + +- powiadomienia są włączone dla OpenCode w ustawieniach systemu operacyjnego, oraz +- okno aplikacji nie jest aktywne. + +--- + +### Reset desktop app storage (last resort) + +Jeśli aplikacja nie uruchamia się i nie możesz wyczyścić ustawień w interfejsie użytkownika, zresetuj zapisany stan aplikacji komputerowej. + +1. Quit OpenCode Desktop. +2. Znajdź i usuń te pliki (znajdują się w katalogu danych aplikacji OpenCode Desktop): + +- `opencode.settings.dat` (domyślny adres URL serwera na komputerze stacjonarnym) +- `opencode.global.dat` i `opencode.workspace.*.dat` (stan interfejsu użytkownika, taki jak najnowsze serwery/projekty) + +Aby szybko znaleźć katalog: + +- **macOS**: Finder -> `Cmd+Shift+G` -> `~/Library/Application Support` (następnie wyszukaj nazwy plików powyżej) +- **Linux**: wyszukaj powyższe nazwy plików pod `~/.local/share` +- **Windows**: Naciśnij `WIN+R` -> `%APPDATA%` (następnie wyszukaj nazwy plików powyżej) + +--- + +## Getting help + +Jeśli masz problemy z OpenCode: + +1. **Report issues on GitHub** + + Najlepszym sposobem zgłaszania błędów lub zgłaszania żądań funkcji jest skorzystanie z naszego repozytorium GitHub: + + [**github.com/anomalyco/opencode/issues**](https://github.com/anomalyco/opencode/issues) + + Przed utworzeniem nowego problemu przeszukaj istniejące i sprawdź, czy Twój problem nie został już zgłoszony. + +2. **Join our Discord** + + Aby uzyskać pomoc w czasie rzeczywistym i dyskusję społeczności, dołącz do naszego serwera Discord: + + [**opencode.ai/discord**](https://opencode.ai/discord) + +--- + +## Common issues + +Oto kilka typowych problemów i sposobów ich rozwiązania. + +--- + +### OpenCode nie uruchamia się + +1. Sprawdź dzienniki pod kątem komunikatów o błędach +2. Spróbuj uruchomić z `--print-logs`, aby zobaczyć dane wyjściowe w terminalu +3. Upewnij się, że masz najnowszą wersję z `opencode upgrade` + +--- + +### Authentication issues + +1. Spróbuj ponownie uwierzytelnić się za pomocą polecenia `/connect` w TUI +2. Sprawdź, czy klucze API są ważne +3. Upewnij się, że Twoja sieć umożliwia połączenia z interfejsem API dostawcy + +--- + +### Model niedostępny + +1. Sprawdź, czy dokonałeś uwierzytelnienia u dostawcy +2. Sprawdź, czy nazwa modelu w konfiguracji jest poprawna +3. Some models may require specific access or subscriptions + +Jeśli napotkasz `ProviderModelNotFoundError`, najprawdopodobniej się mylisz +odwołując się gdzieś do modelu. +Models should be referenced like so: `<providerId>/<modelId>` + +Examples: + +- `openai/gpt-4.1` +- `openrouter/google/gemini-2.5-flash` +- `opencode/kimi-k2` + +Aby dowiedzieć się, do jakich modeli masz dostęp, uruchom `opencode models` + +--- + +### ProviderInitError + +Jeśli napotkasz błąd ProviderInitError, prawdopodobnie masz nieprawidłową lub uszkodzoną konfigurację. + +Aby rozwiązać ten problem: + +1. Najpierw sprawdź, czy Twój dostawca jest prawidłowo skonfigurowany, postępując zgodnie z [przewodnikiem dostawców](/docs/providers) +2. Jeśli problem będzie się powtarzał, spróbuj wyczyścić zapisaną konfigurację: + + ```bash + rm -rf ~/.local/share/opencode + ``` + + W systemie Windows naciśnij `WIN+R` i usuń: `%USERPROFILE%\.local\share\opencode` + +3. Ponownie uwierzytelnij się u swojego dostawcy za pomocą polecenia `/connect` w TUI. + +--- + +### Problemy z AI_APICallError i pakietem dostawcy + +Jeśli napotkasz błędy wywołań API, może to wynikać z nieaktualnych pakietów dostawców. opencode dynamicznie instaluje pakiety dostawców (OpenAI, Anthropic, Google itp.) w razie potrzeby i przechowuje je lokalnie w pamięci podręcznej. + +Aby rozwiązać problemy z pakietem dostawcy: + +1. Wyczyść pamięć podręczną pakietu dostawcy: + + ```bash + rm -rf ~/.cache/opencode + ``` + + W systemie Windows naciśnij `WIN+R` i usuń: `%USERPROFILE%\.cache\opencode` + +2. Uruchom ponownie kod opencode, aby ponownie zainstalować najnowsze pakiety dostawców + +Zmusi to opencode do pobrania najnowszych wersji pakietów dostawców, co często rozwiązuje problemy ze zgodnością z parametrami modelu i zmianami API. + +--- + +### Copy/paste not working on Linux + +Aby funkcja kopiowania/wklejania działała, użytkownicy systemu Linux muszą mieć zainstalowane jedno z następujących narzędzi schowka: + +**Dla systemów X11:** + +```bash +apt install -y xclip +# or +apt install -y xsel +``` + +**Dla systemów Wayland:** + +```bash +apt install -y wl-clipboard +``` + +**Dla środowisk bezgłowych:** + +```bash +apt install -y xvfb +# and run: +Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 & +export DISPLAY=:99.0 +``` + +opencode wykryje, czy używasz Waylanda i wolisz `wl-clipboard`, w przeciwnym razie spróbuje znaleźć narzędzia schowka w kolejności: `xclip` i `xsel`. diff --git a/packages/web/src/content/docs/pl/tui.mdx b/packages/web/src/content/docs/pl/tui.mdx new file mode 100644 index 000000000..8a5dbe7a7 --- /dev/null +++ b/packages/web/src/content/docs/pl/tui.mdx @@ -0,0 +1,390 @@ +--- +title: TUI +description: Korzystanie z interfejsu użytkownika terminala OpenCode. +--- + +import { Tabs, TabItem } from "@astrojs/starlight/components" + +OpenCode zapewnia interaktywny interfejs terminala lub TUI do pracy nad projektami za pomocą LLM. + +Uruchomienie OpenCode uruchamia TUI dla bieżącego katalogu. + +```bash +opencode +``` + +Możesz też uruchomić go dla określonego katalogu roboczego. + +```bash +opencode /path/to/project +``` + +Gdy znajdziesz się w TUI, możesz wyświetlić monit za pomocą komunikatu. + +```text +Give me a quick summary of the codebase. +``` + +--- + +## File references + +Możesz odwoływać się do plików w swoich wiadomościach, używając `@`. Spowoduje to rozmyte wyszukiwanie plików w bieżącym katalogu roboczym. + +:::tip +Możesz także użyć `@` do odwoływania się do plików w swoich wiadomościach. +::: + +```text "@packages/functions/src/api/index.ts" +How is auth handled in @packages/functions/src/api/index.ts? +``` + +Zawartość pliku jest automatycznie dodawana do rozmowy. + +--- + +## Bash commands + +Rozpocznij wiadomość od `!`, aby uruchomić polecenie powłoki. + +```bash frame="none" +!ls -la +``` + +Dane wyjściowe polecenia są dodawane do konwersacji jako wynik narzędzia. + +--- + +## Komendy + +Korzystając z TUI OpenCode, możesz wpisać `/`, po którym następuje nazwa polecenia, aby szybko wykonać działania. Na przykład: + +```bash frame="none" +/help +``` + +Większość poleceń ma również skrót klawiszowy wykorzystujący `ctrl+x` jako klucz wiodący, gdzie `ctrl+x` jest domyślnym klawiszem wiodącym. [Dowiedz się więcej](/docs/keybinds). + +Oto wszystkie dostępne polecenia ukośnika: + +--- + +### connect + +Dodaj dostawcę do OpenCode. Umożliwia wybór dostępnych dostawców i dodanie ich kluczy API. + +```bash frame="none" +/connect +``` + +--- + +### compact + +Kompaktuj bieżącą sesję. _Alias_: `/summarize` + +```bash frame="none" +/compact +``` + +**Keybind:** `ctrl+x c` + +--- + +### details + +Toggle tool execution details. + +```bash frame="none" +/details +``` + +**Keybind:** `ctrl+x d` + +--- + +### editor + +Otwórz zewnętrzny edytor do tworzenia wiadomości. Używa edytora ustawionego w zmiennej środowiskowej `EDITOR`. [Dowiedz się więcej](#editor-setup). + +```bash frame="none" +/editor +``` + +**Keybind:** `ctrl+x e` + +--- + +### exit + +Exit OpenCode. _Aliases_: `/quit`, `/q` + +```bash frame="none" +/exit +``` + +**Keybind:** `ctrl+x q` + +--- + +### export + +Wyeksportuj bieżącą rozmowę do Markdown i otwórz ją w domyślnym edytorze. Używa edytora ustawionego w zmiennej środowiskowej `EDITOR`. [Dowiedz się więcej](#editor-setup). + +```bash frame="none" +/export +``` + +**Keybind:** `ctrl+x x` + +--- + +### help + +Pokaż okno pomocy. + +```bash frame="none" +/help +``` + +**Keybind:** `ctrl+x h` + +--- + +### init + +Utwórz lub zaktualizuj plik `AGENTS.md`. [Dowiedz się więcej](/docs/rules). + +```bash frame="none" +/init +``` + +**Keybind:** `ctrl+x i` + +--- + +### models + +Lista dostępnych modeli. + +```bash frame="none" +/models +``` + +**Keybind:** `ctrl+x m` + +--- + +### new + +Rozpocznij nową sesję. _Alias_: `/clear` + +```bash frame="none" +/new +``` + +**Keybind:** `ctrl+x n` + +--- + +### redo + +Ponów cofniętą wcześniej wiadomość. Dostępne tylko po użyciu `/undo`. + +:::tip +Any file changes will also be restored. +::: + +Wewnętrznie używa Git do zarządzania zmianami plików. Więc Twój projekt ** musi +be a Git repository**. + +```bash frame="none" +/redo +``` + +**Keybind:** `ctrl+x r` + +--- + +### sessions + +Wyświetl listę i przełączaj się między sesjami. _Aliasy_: `/resume`, `/continue` + +```bash frame="none" +/sessions +``` + +**Keybind:** `ctrl+x l` + +--- + +### share + +Udostępnij bieżącą sesję. [Dowiedz się więcej](/docs/share). + +```bash frame="none" +/share +``` + +**Keybind:** `ctrl+x s` + +--- + +### themes + +Lista dostępnych motywów. + +```bash frame="none" +/theme +``` + +**Keybind:** `ctrl+x t` + +--- + +### thinking + +Przełącz widoczność bloków myślenia/rozumowania w rozmowie. Po włączeniu tej opcji można zobaczyć proces wnioskowania modelu w przypadku modeli obsługujących myślenie rozszerzone. + +:::note +To polecenie kontroluje jedynie, czy bloki myślowe są **wyświetlane** - nie włącza ani nie wyłącza możliwości wnioskowania modelu. Aby przełączyć rzeczywiste możliwości wnioskowania, użyj `ctrl+t` do przełączania wariantów modelu. +::: + +```bash frame="none" +/thinking +``` + +--- + +### undo + +Cofnij ostatnią wiadomość w rozmowie. Usuwa najnowszą wiadomość użytkownika, wszystkie kolejne odpowiedzi i wszelkie zmiany w plikach. + +:::tip +Any file changes made will also be reverted. +::: + +Wewnętrznie używa Git do zarządzania zmianami plików. Więc Twój projekt ** musi +be a Git repository**. + +```bash frame="none" +/undo +``` + +**Keybind:** `ctrl+x u` + +--- + +### unshare + +Anuluj udostępnianie bieżącej sesji. [Dowiedz się więcej](/docs/share#un-sharing). + +```bash frame="none" +/unshare +``` + +--- + +## Editor setup + +Zarówno polecenia `/editor`, jak i `/export` korzystają z edytora określonego w zmiennej środowiskowej `EDITOR`. + +<Tabs> + <TabItem label="Linux/macOS"> + ```bash + # Example for nano or vim + export EDITOR=nano + export EDITOR=vim + + # For GUI editors, VS Code, Cursor, VSCodium, Windsurf, Zed, etc. + # include --wait + export EDITOR="code --wait" + ``` + + Aby było to trwałe, dodaj to do swojego profilu powłoki; + `~/.bashrc`, `~/.zshrc`, etc. + + </TabItem> + + <TabItem label="Windows (CMD)"> + ```bash + set EDITOR=notepad + + # For GUI editors, VS Code, Cursor, VSCodium, Windsurf, Zed, etc. + # include --wait + set EDITOR=code --wait + ``` + + Aby ustawić tę opcję na stałe, użyj opcji **Właściwości systemu** > **Środowisko + Variables**. + + </TabItem> + + <TabItem label="Windows (PowerShell)"> + ```powershell + $env:EDITOR = "notepad" + + # For GUI editors, VS Code, Cursor, VSCodium, Windsurf, Zed, etc. + # include --wait + $env:EDITOR = "code --wait" + ``` + + Aby uczynić to trwałym, dodaj to do swojego profilu PowerShell. + + </TabItem> +</Tabs> + +Popular editor options include: + +- `code` - Visual Studio Code +- `cursor` - Cursor +- `windsurf` - Windsurf +- `nvim` - Neovim editor +- `vim` - Vim editor +- `nano` - Nano editor +- `notepad` - Windows Notepad +- `subl` - Sublime Text + +:::note +Niektóre edytory, takie jak VS Code, należy uruchamiać z flagą `--wait`. +::: + +Niektórzy redaktorzy potrzebują argumentów wiersza poleceń, aby działać w trybie blokowania. Flaga `--wait` blokuje proces edytora aż do jego zamknięcia. + +--- + +## Skonfiguruj + +Możesz dostosować zachowanie TUI za pomocą pliku konfiguracyjnego OpenCode. + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "tui": { + "scroll_speed": 3, + "scroll_acceleration": { + "enabled": true + } + } +} +``` + +### Options + +- `scroll_acceleration` — Włącz przyspieszenie przewijania w stylu macOS, aby zapewnić płynne, naturalne przewijanie. Po włączeniu prędkość przewijania wzrasta wraz z szybkimi gestami przewijania i pozostaje precyzyjna w przypadku wolniejszych ruchów. **To ustawienie ma pierwszeństwo przed `scroll_speed` i zastępuje je, gdy jest włączone.** +- `scroll_speed` - Kontroluje szybkość przewijania TUI podczas korzystania z poleceń przewijania (minimum: `1`). Wartość domyślna to `3`. **Uwaga: jest to ignorowane, jeśli `scroll_acceleration.enabled` jest ustawione na `true`.** + +--- + +## Customization + +Za pomocą palety poleceń (`ctrl+x h` lub `/help`) można dostosować różne aspekty widoku TUI. Te ustawienia są zachowywane po ponownym uruchomieniu. + +--- + +#### Username display + +Włącz lub wyłącz wyświetlanie Twojej nazwy użytkownika w wiadomościach na czacie. Dostęp do tego poprzez: + +- Paleta poleceń: Wyszukaj „nazwę użytkownika” lub „ukryj nazwę użytkownika” +- Ustawienie zostanie zapamiętane automatycznie i będzie pamiętane podczas sesji TUI diff --git a/packages/web/src/content/docs/pl/web.mdx b/packages/web/src/content/docs/pl/web.mdx new file mode 100644 index 000000000..689d22d7d --- /dev/null +++ b/packages/web/src/content/docs/pl/web.mdx @@ -0,0 +1,142 @@ +--- +title: Web +description: Korzystanie z OpenCode w przeglądarce. +--- + +OpenCode może działać jako aplikacja internetowa w przeglądarce, zapewniając takie same możliwości kodowania AI bez konieczności korzystania z terminala. + + + +## Getting Started + +Uruchom interfejs sieciowy, uruchamiając: + +```bash +opencode web +``` + +Spowoduje to uruchomienie lokalnego serwera na `127.0.0.1` z losowo dostępnym portem i automatyczne otwarcie OpenCode w domyślnej przeglądarce. + +:::caution +Jeśli `OPENCODE_SERVER_PASSWORD` nie jest ustawione, serwer będzie niezabezpieczony. Jest to dobre rozwiązanie do użytku lokalnego, ale powinno być ustawione na dostęp do sieci. +::: + +:::tip[Windows Users] +Aby uzyskać najlepsze wyniki, uruchom `opencode web` z [WSL](/docs/windows-wsl) zamiast programu PowerShell. Zapewnia to prawidłowy dostęp do systemu plików i integrację terminala. +::: + +--- + +## Configuration + +Możesz skonfigurować serwer WWW za pomocą flag wiersza poleceń lub w [pliku konfiguracyjnym] (./config). + +### Port + +Domyślnie OpenCode wybiera dostępny port. Możesz określić port: + +```bash +opencode web --port 4096 +``` + +### Hostname + +Domyślnie serwer łączy się z `127.0.0.1` (tylko localhost). Aby udostępnić OpenCode w swojej sieci: + +```bash +opencode web --hostname 0.0.0.0 +``` + +Podczas korzystania z `0.0.0.0` OpenCode wyświetli zarówno adresy lokalne, jak i sieciowe: + +``` + Local access: http://localhost:4096 + Network access: http://192.168.1.100:4096 +``` + +### mDNS Discovery + +Włącz mDNS, aby Twój serwer był wykrywalny w sieci lokalnej: + +```bash +opencode web --mdns +``` + +To automatycznie ustawia nazwę hosta na `0.0.0.0` i anonsuje serwer jako `opencode.local`. + +Możesz dostosować nazwę domeny mDNS, aby uruchamiała wiele instancji w tej samej sieci: + +```bash +opencode web --mdns --mdns-domain myproject.local +``` + +### CORS + +Aby zezwolić na dodatkowe domeny dla CORS (przydatne w przypadku niestandardowych interfejsów): + +```bash +opencode web --cors https://example.com +``` + +### Authentication + +Aby chronić dostęp, ustaw hasło za pomocą zmiennej środowiskowej `OPENCODE_SERVER_PASSWORD`: + +```bash +OPENCODE_SERVER_PASSWORD=secret opencode web +``` + +Domyślna nazwa użytkownika to `opencode`, ale można ją zmienić za pomocą `OPENCODE_SERVER_USERNAME`. + +--- + +## Korzystanie z interfejsu internetowego + +Po uruchomieniu interfejs sieciowy zapewnia dostęp do sesji OpenCode. + +### Sessions + +Przeglądaj sesje i zarządzaj nimi ze strony głównej. Możesz zobaczyć aktywne sesje i rozpocząć nowe. + + + +### Stan serwera + +Kliknij „Zobacz serwery”, aby wyświetlić podłączone serwery i ich status. + + + +--- + +## Attaching a Terminal + +Możesz podłączyć terminal TUI do działającego serwera WWW: + +```bash +# Start the web server +opencode web --port 4096 + +# In another terminal, attach the TUI +opencode attach http://localhost:4096 +``` + +Umożliwia to jednoczesne korzystanie z interfejsu sieciowego i terminala, współdzieląc te same sesje i stan. + +--- + +## Config File + +Możesz także skonfigurować ustawienia serwera w pliku konfiguracyjnym `opencode.json`: + +```json +{ + "server": { + "port": 4096, + "hostname": "0.0.0.0", + "mdns": true, + "cors": ["https://example.com"] + } +} +``` + +Flagi wiersza poleceń mają pierwszeństwo przed ustawieniami pliku konfiguracyjnego. diff --git a/packages/web/src/content/docs/pl/windows-wsl.mdx b/packages/web/src/content/docs/pl/windows-wsl.mdx new file mode 100644 index 000000000..b930cf637 --- /dev/null +++ b/packages/web/src/content/docs/pl/windows-wsl.mdx @@ -0,0 +1,113 @@ +--- +title: Windows (WSL) +description: Uruchamiaj OpenCode na Windows z WSL dla najlepszych efektow. +--- + +import { Steps } from "@astrojs/starlight/components" + +Chociaz OpenCode moze dzialac bezposrednio na Windows, dla najlepszych rezultatow zalecamy [Windows Subsystem for Linux (WSL)](https://learn.microsoft.com/en-us/windows/wsl/install). WSL zapewnia srodowisko Linuksa, ktore bardzo dobrze wspolpracuje z funkcjami OpenCode. + +:::tip[Dlaczego WSL?] +WSL oferuje lepsza wydajnosc systemu plikow, pelna obsluge terminala i zgodnosc z narzedziami developerskimi, na ktorych opiera sie OpenCode. +::: + +--- + +## Konfiguracja + +<Steps> + +1. **Zainstaluj WSL** + + Jesli jeszcze tego nie zrobiles, [zainstaluj WSL](https://learn.microsoft.com/en-us/windows/wsl/install) wedlug oficjalnego przewodnika Microsoft. + +2. **Zainstaluj OpenCode w WSL** + + Po skonfigurowaniu WSL otworz terminal WSL i zainstaluj OpenCode jedna z [metod instalacji](/docs/). + + ```bash + curl -fsSL https://opencode.ai/install | bash + ``` + +3. **Korzystaj z OpenCode przez WSL** + + Przejdz do katalogu projektu (pliki Windows sa dostepne przez `/mnt/c/`, `/mnt/d/` itd.) i uruchom OpenCode. + + ```bash + cd /mnt/c/Users/YourName/project + opencode + ``` + +</Steps> + +--- + +## Aplikacja desktopowa + serwer WSL + +Jesli wolisz aplikacje desktopowa OpenCode, ale chcesz uruchamiac serwer w WSL: + +1. **Uruchom serwer w WSL** z `--hostname 0.0.0.0`, aby zezwolic na polaczenia zewnetrzne: + + ```bash + opencode serve --hostname 0.0.0.0 --port 4096 + ``` + +2. **Polacz aplikacje desktopowa** z `http://localhost:4096` + +:::note +Jesli `localhost` nie dziala w Twojej konfiguracji, polacz sie przez adres IP WSL (w WSL: `hostname -I`) i uzyj `http://<wsl-ip>:4096`. +::: + +:::caution +Przy uzyciu `--hostname 0.0.0.0` ustaw `OPENCODE_SERVER_PASSWORD`, aby zabezpieczyc serwer. + +```bash +OPENCODE_SERVER_PASSWORD=your-password opencode serve --hostname 0.0.0.0 +``` + +::: + +--- + +## Klient web + WSL + +Dla najlepszej pracy w przegladarce na Windows: + +1. **Uruchamiaj `opencode web` w terminalu WSL**, a nie w PowerShell: + + ```bash + opencode web --hostname 0.0.0.0 + ``` + +2. **Otworz w przegladarce Windows** pod adresem `http://localhost:<port>` (OpenCode wypisze URL) + +Uruchamianie `opencode web` z WSL zapewnia poprawny dostep do systemu plikow i integracje z terminalem, a nadal pozostaje dostepne z przegladarki Windows. + +--- + +## Dostep do plikow Windows + +WSL moze uzyskac dostep do wszystkich plikow Windows przez katalog `/mnt/`: + +- Dysk `C:` → `/mnt/c/` +- Dysk `D:` → `/mnt/d/` +- I tak dalej... + +Przyklad: + +```bash +cd /mnt/c/Users/YourName/Documents/project +opencode +``` + +:::tip +Aby uzyskac najplynniejsza prace, rozwaz sklonowanie/skopiowanie repozytorium do systemu plikow WSL (np. do `~/code/`) i uruchamianie tam OpenCode. +::: + +--- + +## Wskazowki + +- Uruchamiaj OpenCode w WSL dla projektow zapisanych na dyskach Windows - dostep do plikow jest bezproblemowy +- Uzywaj [rozszerzenia WSL dla VS Code](https://code.visualstudio.com/docs/remote/wsl) razem z OpenCode, aby miec zintegrowany workflow +- Konfiguracja OpenCode i sesje sa przechowywane w srodowisku WSL pod `~/.local/share/opencode/` diff --git a/packages/web/src/content/docs/pl/zen.mdx b/packages/web/src/content/docs/pl/zen.mdx new file mode 100644 index 000000000..31f263e32 --- /dev/null +++ b/packages/web/src/content/docs/pl/zen.mdx @@ -0,0 +1,254 @@ +--- +title: Zen +description: Wyselekcjonowana lista modeli dostarczonych przez OpenCode. +--- + +import config from "../../../../config.mjs" +export const console = config.console +export const email = `mailto:${config.email}` + +OpenCode Zen to lista przetestowanych i zweryfikowanych modeli udostępniona przez zespół OpenCode. + +:::note +OpenCode Zen is currently in beta. +::: + +Zen działa jak każdy inny dostawca OpenCode. Logujesz się do OpenCode Zen i dostajesz +Twój klucz API. Jest **całkowicie opcjonalny** i nie musisz go używać, aby z niego korzystać +OpenCode. + +--- + +## Background + +There are a large number of models out there but only a few of +these models work well as coding agents. Additionally, most providers are +skonfigurowany bardzo różnie; więc otrzymujesz zupełnie inną wydajność i jakość. + +:::tip +Przetestowaliśmy wybraną grupę modeli i dostawców, którzy dobrze współpracują z OpenCode. +::: + +Jeśli więc używasz modelu za pośrednictwem czegoś takiego jak OpenRouter, nigdy nie będzie to możliwe +pewien, czy otrzymujesz najlepszą wersję modelu, jaki chcesz. + +Aby to naprawić, zrobiliśmy kilka rzeczy: + +1. Przetestowaliśmy wybraną grupę modeli i rozmawialiśmy z ich zespołami o tym, jak to zrobić + najlepiej je uruchom. +2. Następnie współpracowaliśmy z kilkoma dostawcami, aby upewnić się, że są one obsługiwane + correctly. +3. Na koniec porównaliśmy kombinację modelu/dostawcy i otrzymaliśmy wynik + z listą, którą z przyjemnością polecamy. + +OpenCode Zen to brama AI, która zapewnia dostęp do tych modeli. + +--- + +## How it works + +OpenCode Zen działa jak każdy inny dostawca OpenCode. + +1. Logujesz się do **<a href={console}>OpenCode Zen</a>**, dodajesz swoje rozliczenia + szczegóły i skopiuj klucz API. +2. Uruchamiasz polecenie `/connect` w TUI, wybierasz OpenCode Zen i wklejasz klucz API. +3. Uruchom `/models` w TUI, aby zobaczyć listę zalecanych przez nas modeli. + +Opłata jest pobierana za każde żądanie i możesz dodać kredyty do swojego konta. + +--- + +## Endpoints + +Dostęp do naszych modeli można również uzyskać za pośrednictwem następujących punktów końcowych interfejsu API. + +| Modelka | Identyfikator modelu | Punkt końcowy | Pakiet SDK AI | +| ------------------ | ------------------ | -------------------------------------------------- | --------------------------- | +| GPT 5.2 | gpt-5.2 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.2 Codex | gpt-5.2-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 | gpt-5.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 Codex | gpt-5.1-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 Codex Max | gpt-5.1-codex-max | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5.1 Codex Mini | gpt-5.1-codex-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5 | gpt-5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5 Codex | gpt-5-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| GPT 5 Nano | gpt-5-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| Claude Sonnet 4.5 | claude-sonnet-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Claude Sonnet 4 | claude-sonnet-4 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Claude Haiku 4.5 | claude-haiku-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Claude Haiku 3.5 | claude-3-5-haiku | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Claude Opus 4.6 | claude-opus-4-6 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Claude Opus 4.5 | claude-opus-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Claude Opus 4.1 | claude-opus-4-1 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Gemini 3 Pro | gemini-3-pro | `https://opencode.ai/zen/v1/models/gemini-3-pro` | `@ai-sdk/google` | +| Gemini 3 Flash | gemini-3-flash | `https://opencode.ai/zen/v1/models/gemini-3-flash` | `@ai-sdk/google` | +| MiniMax M2.1 | minimax-m2.1 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| MiniMax M2.1 Free | minimax-m2.1-free | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| GLM 4.7 | glm-4.7 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| GLM 4.7 Free | glm-4.7-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| GLM 4.6 | glm-4.6 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Kimi K2.5 | kimi-k2.5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Kimi K2.5 Free | kimi-k2.5-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Kimi K2 Thinking | kimi-k2-thinking | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Kimi K2 | kimi-k2 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Qwen3 Coder 480B | qwen3-coder | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Big Pickle | big-pickle | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | + +[Identyfikator modelu](/docs/config/#models) w konfiguracji OpenCode +używa formatu `opencode/<model-id>`. Na przykład w przypadku Kodeksu GPT 5.2 zrobiłbyś to +użyj `opencode/gpt-5.2-codex` w swojej konfiguracji. + +--- + +### Models + +Pełną listę dostępnych modeli i ich metadane możesz pobrać z: + +``` +https://opencode.ai/zen/v1/models +``` + +--- + +## Pricing + +Wspieramy model pay-as-you-go. Poniżej znajdują się ceny **za 1M tokenów**. + +| Modelka | Wejście | Wyjście | Odczyt w pamięci podręcznej | Zapis w pamięci podręcznej | +| --------------------------------- | ------ | ------ | ----------- | ------------ | +| Big Pickle | Free | Free | Free | - | +| MiniMax M2.1 Free | Free | Free | Free | - | +| MiniMax M2.1 | $0.30 | $1.20 | $0.10 | - | +| GLM 4.7 Free | Free | Free | Free | - | +| GLM 4.7 | $0.60 | $2.20 | $0.10 | - | +| GLM 4.6 | $0.60 | $2.20 | $0.10 | - | +| Kimi K2.5 Free | Free | Free | Free | - | +| Kimi K2.5 | $0.60 | $3.00 | $0.08 | - | +| Kimi K2 Thinking | $0.40 | $2.50 | - | - | +| Kimi K2 | $0.40 | $2.50 | - | - | +| Qwen3 Coder 480B | $0.45 | $1.50 | - | - | +| Claude Sonnet 4.5 (≤ 200K tokens) | $3.00 | $15.00 | $0.30 | $3.75 | +| Claude Sonnet 4.5 (> 200K tokens) | $6.00 | $22.50 | $0.60 | $7.50 | +| Claude Sonnet 4 (≤ 200K tokens) | $3.00 | $15.00 | $0.30 | $3.75 | +| Claude Sonnet 4 (> 200K tokens) | $6.00 | $22.50 | $0.60 | $7.50 | +| Claude Haiku 4.5 | $1.00 | $5.00 | $0.10 | $1.25 | +| Claude Haiku 3.5 | $0.80 | $4.00 | $0.08 | $1.00 | +| Claude Opus 4.6 (≤ 200K tokens) | $5.00 | $25.00 | $0.50 | $6.25 | +| Claude Opus 4.6 (> 200K tokens) | $10.00 | $37.50 | $1.00 | $12.50 | +| Claude Opus 4.5 | $5.00 | $25.00 | $0.50 | $6.25 | +| Claude Opus 4.1 | $15.00 | $75.00 | $1.50 | $18.75 | +| Gemini 3 Pro (≤ 200K tokens) | $2.00 | $12.00 | $0.20 | - | +| Gemini 3 Pro (> 200K tokens) | $4.00 | $18.00 | $0.40 | - | +| Gemini 3 Flash | $0.50 | $3.00 | $0.05 | - | +| GPT 5.2 | $1.75 | $14.00 | $0.175 | - | +| GPT 5.2 Codex | $1.75 | $14.00 | $0.175 | - | +| GPT 5.1 | $1.07 | $8.50 | $0.107 | - | +| GPT 5.1 Codex | $1.07 | $8.50 | $0.107 | - | +| GPT 5.1 Codex Max | $1.25 | $10.00 | $0.125 | - | +| GPT 5.1 Codex Mini | $0.25 | $2.00 | $0.025 | - | +| GPT 5 | $1.07 | $8.50 | $0.107 | - | +| GPT 5 Codex | $1.07 | $8.50 | $0.107 | - | +| GPT 5 Nano | Free | Free | Free | - | + +Możesz zauważyć _Claude Haiku 3.5_ w swojej historii użytkowania. To jest [model niskokosztowy](/docs/config/#models), który służy do generowania tytułów sesji. + +:::note +Opłaty za karty kredytowe są przenoszone na koszt (4,4% + 0,30 USD za transakcję); nie pobieramy żadnych dodatkowych opłat. +::: + +Darmowe modele: + +- GLM 4.7 Free jest dostępny na platformie OpenCode przez ograniczony czas. Zespół wykorzystuje ten czas na zbieranie opinii i ulepszanie modelu. +- Kimi K2.5 Free jest dostępny na OpenCode przez ograniczony czas. Zespół wykorzystuje ten czas na zbieranie opinii i ulepszanie modelu. +- MiniMax M2.1 Free jest dostępny na platformie OpenCode przez ograniczony czas. Zespół wykorzystuje ten czas na zbieranie opinii i ulepszanie modelu. +- Big Pickle to ukryty model, który jest bezpłatny w OpenCode przez ograniczony czas. Zespół wykorzystuje ten czas na zbieranie opinii i ulepszanie modelu. + +<a href={email}>Skontaktuj się z nami</a>, jeśli masz jakieś pytania. + +--- + +### Auto-reload + +Jeśli Twoje saldo spadnie poniżej 5 USD, Zen automatycznie doładuje 20 USD. + +Możesz zmienić kwotę automatycznego doładowania. Możesz także całkowicie wyłączyć automatyczne przeładowywanie. + +--- + +### Monthly limits + +Możesz także ustawić miesięczny limit wykorzystania dla całego obszaru roboczego i dla każdego z nich +członek Twojego zespołu. + +Załóżmy na przykład, że ustawiłeś miesięczny limit użytkowania na 20 USD, Zen nie będzie z niego korzystał +ponad 20 dolarów miesięcznie. Ale jeśli masz włączone automatyczne przeładowywanie, Zen może się skończyć +obciąży Cię kwotą wyższą niż 20 USD, jeśli saldo spadnie poniżej 5 USD. + +--- + +## Privacy + +Wszystkie nasze modele są hostowane w USA. Nasi dostawcy przestrzegają polityki zerowego przechowywania i nie wykorzystują Twoich danych do szkolenia modeli, z następującymi wyjątkami: + +- Big Pickle: W okresie bezpłatnym zebrane dane mogą zostać wykorzystane do udoskonalenia modelu. +- GLM 4.7 Bezpłatna: W okresie bezpłatnym zebrane dane mogą zostać wykorzystane do udoskonalenia modelu. +- Kimi K2.5 Free: W okresie bezpłatnym zebrane dane mogą zostać wykorzystane do udoskonalenia modelu. +- MiniMax M2.1 Free: W okresie bezpłatnym zebrane dane mogą zostać wykorzystane do udoskonalenia modelu. +- Interfejsy API OpenAI: żądania są przechowywane przez 30 dni zgodnie z [Zasadami dotyczącymi danych OpenAI](https://platform.openai.com/docs/guides/your-data). +- Interfejsy API Anthropic: żądania są przechowywane przez 30 dni zgodnie z [Zasadami dotyczącymi danych firmy Anthropic] (https://docs.anthropic.com/en/docs/claude-code/data-usage). + +--- + +## Dla zespołów + +Zen świetnie sprawdza się także w zespołach. Możesz zapraszać członków zespołu, przypisywać role, zarządzać +modele, z których korzysta Twój zespół i nie tylko. + +:::note +Obszary robocze są obecnie bezpłatne dla zespołów w ramach wersji beta. +::: + +Zarządzanie obszarem roboczym jest obecnie bezpłatne dla zespołów w ramach wersji beta. Będziemy +wkrótce udostępnimy więcej szczegółów na temat cen. + +--- + +### Roles + +Możesz zapraszać członków zespołu do swojego obszaru roboczego i przypisywać role: + +- **Administrator**: Zarządzaj modelami, członkami, kluczami API i rozliczeniami +- **Członek**: Zarządzaj tylko własnymi kluczami API + +Administratorzy mogą także ustawić miesięczne limity wydatków dla każdego członka, aby utrzymać koszty pod kontrolą. + +--- + +### Dostęp do modelu + +Administratorzy mogą włączać i wyłączać określone modele w obszarze roboczym. Żądania skierowane do wyłączonego modelu zwrócą błąd. + +Jest to przydatne w przypadkach, gdy chcesz wyłączyć korzystanie z modelu, który +collects data. + +--- + +### Przynieś swój własny klucz + +Możesz używać własnych kluczy OpenAI lub Anthropic API, jednocześnie uzyskując dostęp do innych modeli w Zen. + +Kiedy używasz własnych kluczy, tokeny są rozliczane bezpośrednio przez dostawcę, a nie przez Zen. + +Na przykład Twoja organizacja może już mieć klucz do OpenAI lub Anthropic +i chcesz go używać zamiast tego, który zapewnia Zen. + +--- + +## Goals + +We created OpenCode Zen to: + +1. **Benchmark** najlepsze modele/dostawcy dla agentów kodujących. +2. Miej dostęp do opcji **najwyższej jakości**, a nie obniżaj wydajności ani nie kieruj się do tańszych dostawców. +3. Przekaż wszelkie **obniżki cen**, sprzedając po kosztach; więc jedyną marżą jest pokrycie naszych opłat manipulacyjnych. +4. Nie **nie blokuj**, umożliwiając używanie go z dowolnym innym agentem kodującym. I zawsze pozwalaj na korzystanie z OpenCode dowolnego innego dostawcy. |
