docs(ai): update opencode guidance

This commit is contained in:
Guillaume ARM 2026-06-11 01:57:47 +02:00
parent 0690e28d02
commit a98b626a85
8 changed files with 42 additions and 19 deletions

View File

@ -130,7 +130,7 @@ Abort a running generation.
### `POST /session/:id/prompt_async` ### `POST /session/:id/prompt_async`
Fire-and-forget variant. Returns `204` immediately. Include `messageID` in the request body to make the assistant response addressable by `GET /session/:id/message/:messageID`. Opencode validates caller-provided message IDs; use IDs starting with `msg`. Fire-and-forget variant. Returns `204` immediately. Include `messageID` in the request body so the submitted message can be matched to the later assistant response. Opencode validates caller-provided message IDs; use IDs starting with `msg`.
**Request body:** **Request body:**
```json ```json

View File

@ -90,13 +90,23 @@ Optional — override the Basic Auth username (default `opencode`):
set opencc.username myuser set opencc.username myuser
``` ```
Optional but recommended: pick the provider and model. When both are set, `ai` posts to `/session/:id/prompt_async`. Without them, `ai` falls back to blocking `/session/:id/message`, which can use the server default model but is more exposed to HTTP timeouts: Optional but recommended: pick the provider and model. When both are set, `ai` posts to `/session/:id/prompt_async` and polls for completion. Without them, `ai` falls back to blocking `/session/:id/message`, which can use the server default model but is more exposed to HTTP timeouts:
```sh ```sh
set opencc.provider_id anthropic set opencc.provider_id anthropic
set opencc.model_id claude-opus-4-7 set opencc.model_id claude-opus-4-7
``` ```
Optional timeout settings:
```sh
set opencc.timeout_seconds 60
set opencc.poll_timeout_seconds 300
set opencc.poll_interval_seconds 2
```
`opencc.session_id` is auto-managed and saved by `ai`. Set it manually only when you want CC to target an existing session, such as one opened in the attached TUI.
- **CraftOS-PC (localhost):** `http://127.0.0.1:4096` - **CraftOS-PC (localhost):** `http://127.0.0.1:4096`
- **In-game ATM10:** use your LAN IP (e.g. `192.168.x.x`) — add it to `http.rules` in `config/computercraft-server.toml` - **In-game ATM10:** use your LAN IP (e.g. `192.168.x.x`) — add it to `http.rules` in `config/computercraft-server.toml`
@ -107,6 +117,7 @@ ai ping -- ping, reuses existing session
ai "explain what a turtle is" ai "explain what a turtle is"
ai new "start a fresh topic" -- forget current session, start fresh ai new "start a fresh topic" -- forget current session, start fresh
ai sessions -- list all server sessions with their IDs ai sessions -- list all server sessions with their IDs
ai --verbose ping -- show HTTP/session diagnostics
ai --help ai --help
ai --version ai --version
``` ```

View File

@ -1,15 +1,15 @@
# TrapGPT Guide # TrapGPT Guide
TrapGPT est un serveur TrapOS qui ecoute le chat Minecraft avec une Chat Box Advanced Peripherals, envoie les nouveaux messages a `opencode serve`, puis repond tres brievement dans le chat. TrapGPT est un programme TrapOS qui ecoute le chat Minecraft avec une Chat Box Advanced Peripherals, envoie les nouveaux messages a `opencode serve`, puis repond tres brievement dans le chat.
## Prerequis ## Prerequis
- Une Chat Box Advanced Peripherals connectee au computer. - Une Chat Box Advanced Peripherals connectee au computer.
- TrapOS installe avec le package `trapos-ai`. - TrapOS installe. Le package complet `trapos` inclut `trapos-ai`; sinon installe `trapos-ai` separement.
- Un serveur `opencode serve` accessible depuis ComputerCraft HTTP. - Un serveur `opencode serve` accessible depuis ComputerCraft HTTP.
- HTTP active cote serveur Minecraft/ComputerCraft. - HTTP active cote serveur Minecraft/ComputerCraft.
Voir aussi [`docs/opencode_server_guide.md`](opencode_server_guide.md) pour lancer `opencode serve`. Voir aussi [`opencode_server_guide.md`](opencode_server_guide.md) pour lancer `opencode serve`.
## Configuration In-Game ## Configuration In-Game
@ -26,6 +26,13 @@ Si ton serveur opencode demande un mot de passe Basic Auth:
set opencc.password ton_mot_de_passe set opencc.password ton_mot_de_passe
``` ```
TrapGPT utilise les memes settings `opencc.*` que le programme `ai`. Il profite aussi de `opencc.provider_id` et `opencc.model_id`; quand ils sont configures, `libai` utilise l'endpoint async de opencode et evite mieux les timeouts HTTP longs.
```lua
set opencc.provider_id anthropic
set opencc.model_id claude-opus-4-7
```
Settings optionnels pour TrapGPT: Settings optionnels pour TrapGPT:
```lua ```lua
@ -34,12 +41,6 @@ set trapgpt.max_reply_chars 160
set trapgpt.prefix TrapGPT set trapgpt.prefix TrapGPT
``` ```
Sauvegarde les settings:
```lua
settings save
```
## Lancement ## Lancement
Depuis le shell CraftOS: Depuis le shell CraftOS:
@ -60,11 +61,15 @@ Ensuite, parle normalement dans le chat Minecraft. TrapGPT collecte les messages
- TrapGPT ecoute pour l'instant seulement les messages joueur `chat`. - TrapGPT ecoute pour l'instant seulement les messages joueur `chat`.
- Les morts et connexions seront ajoutes plus tard. - Les morts et connexions seront ajoutes plus tard.
- Les messages caches, vides, ou envoyes avec le meme nom que `trapgpt.prefix` sont ignores.
- Quand `messageUtf8` est fourni par l'evenement `chat`, TrapGPT l'utilise a la place de `message`.
- Il ne lance jamais deux appels LLM en meme temps. - Il ne lance jamais deux appels LLM en meme temps.
- Les messages recus pendant un appel opencode sont gardes en queue. - Les messages recus pendant un appel opencode sont gardes en queue.
- Si plusieurs messages sont en queue, ils sont envoyes ensemble au batch suivant. - Si plusieurs messages sont en queue, ils sont envoyes ensemble au batch suivant.
- La session opencode est separee du programme `ai`: elle utilise `trapgpt.opencc.session_id`. - Si l'appel opencode echoue, la queue est conservee pour un prochain essai.
- La session opencode est separee du programme `ai`: elle utilise `trapgpt.opencc.session_id` et le titre de session `trapgpt`.
- Si le LLM repond exactement `SILENCE`, rien n'est envoye dans le chat. - Si le LLM repond exactement `SILENCE`, rien n'est envoye dans le chat.
- Les reponses sont tronquees a `trapgpt.max_reply_chars` caracteres.
## Redemarrer Une Session TrapGPT ## Redemarrer Une Session TrapGPT
@ -103,3 +108,9 @@ Pour voir la version installee:
```lua ```lua
trapgpt --version trapgpt --version
``` ```
Pour afficher l'aide:
```lua
trapgpt --help
```

View File

@ -1,6 +1,6 @@
{ {
"name": "TrapOS", "name": "TrapOS",
"version": "0.8.4", "version": "0.8.5",
"branch": "next", "branch": "next",
"packages": [ "packages": [
"trapos" "trapos"

View File

@ -5,8 +5,8 @@
"trapos-boot": "0.3.2", "trapos-boot": "0.3.2",
"trapos-net": "0.3.0", "trapos-net": "0.3.0",
"trapos-ui": "0.2.2", "trapos-ui": "0.2.2",
"trapos-ai": "0.6.3", "trapos-ai": "0.6.4",
"trapos-sandbox": "0.1.1", "trapos-sandbox": "0.1.1",
"trapos": "0.8.4" "trapos": "0.8.5"
} }
} }

View File

@ -1,6 +1,6 @@
{ {
"name": "trapos-ai", "name": "trapos-ai",
"version": "0.6.3", "version": "0.6.4",
"description": "TrapOS AI client for opencode serve", "description": "TrapOS AI client for opencode serve",
"dependencies": ["trapos-core"], "dependencies": ["trapos-core"],
"files": [ "files": [

View File

@ -1,6 +1,6 @@
{ {
"name": "trapos", "name": "trapos",
"version": "0.8.4", "version": "0.8.5",
"description": "TrapOS full install meta-package", "description": "TrapOS full install meta-package",
"dependencies": ["trapos-boot", "trapos-net", "trapos-ui", "trapos-test", "trapos-ai"], "dependencies": ["trapos-boot", "trapos-net", "trapos-ui", "trapos-test", "trapos-ai"],
"files": [], "files": [],

View File

@ -21,8 +21,8 @@ local function printUsage()
print(' ai ping'); print(' ai ping');
print(' ai new <prompt>'); print(' ai new <prompt>');
print(' ai --new <prompt>'); print(' ai --new <prompt>');
print(' ai lua-exec <prompt>'); print(' ai lua-exec <prompt> (deprecated)');
print(' ai --lua-exec <prompt>'); print(' ai --lua-exec <prompt> (deprecated)');
print(' ai sessions'); print(' ai sessions');
print(' ai --sessions'); print(' ai --sessions');
print(' ai --verbose <command>'); print(' ai --verbose <command>');
@ -174,6 +174,7 @@ if command == 'lua-exec' or command == '--lua-exec' then
printUsage(); printUsage();
return; return;
end end
print('warning: ai lua-exec is deprecated and will be removed');
luaExec(ai, prompt); luaExec(ai, prompt);
return; return;
end end