TOpenCode (OpenCode Zen)
Fonte: source/classes/topencode.prg
TOpenCode usa a API de chat OpenCode Zen
(https://opencode.ai/zen/v1/chat/completions) com
Authorization: Bearer public. Sem chave API. Modelos gratuitos
(hy3-free, mimo-v2.5-free,
deepseek-v4-flash-free, etc.).
SendAsync exige a VM Harbour MT
(build_new.bat <sample> hb32 mt).
Transporte: hbcurl sobre um libcurl estático
(Schannel): não é preciso distribuir o libcurl.dll. Os
fontes do curl e os scripts de build estão em 3rdparty/
(saídas: lib/libcurl_static*.{lib,a} para
bcc32/bcc64/msvc32/msvc64/gcc).
Métodos
| Método | Descrição |
|---|---|
New( cModel ) | Um handle curl por instância (vários agentes em paralelo). |
Send( cPrompt ) / SendWithSystem() | Síncrono; em rate limit tenta outro modelo free. |
SendAsync() / SendWithSystemAsync() | Retorna já. Consultar IsRunning(). |
GetValue() | Texto do assistente (UTF-8 → ACP). |
Async grava oc_<ms>_<seq>.json via .part
+ rename: três SendAsync() no mesmo tick não colidem.
Samples
samples/ai/opencode1.prg— 3 agentes concorrentes.samples/ai/opencode2.prg+opencode2.html— TWebView2 estilo WhatsApp: agentes à esquerda, chat à direita, papéis.
cd samples\ai
build_new.bat opencode2 hb32 mt
Executar a partir de samples\ai para achar libcurl.dll.