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étodoDescriçã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

cd samples\ai
build_new.bat opencode2 hb32 mt

Executar a partir de samples\ai para achar libcurl.dll.

Ver também