Eslopes
7 de septiembre de 2026, 21:25
AgentObject ya realiza la llamada al modelo
Hasta ahora el control AgentObject no enviaba ninguna peticion. Ask guardaba el prompt, leia un LastReply que nadie escribia nunca y devolvia la cadena vacia. Como onResponse solo se dispara con una respuesta no vacia, tampoco se disparaba: el formulario se quedaba en "asking..." para siempre, sin error y sin traza.
Que se corrigio
Ask realiza la peticion y devuelve la respuesta. Es sincrono: el metodo documentado es Ask(prompt) devolviendo String y necesita la respuesta para devolverla. El interprete corre en su propio hilo, asi que el formulario sigue pintando mientras espera.
Tres protocolos: OpenAI-compatible (/v1/chat/completions), Ollama nativo (/api/chat) y Anthropic (/v1/messages). AgentAPI elige; la ruta de la URL decide en caso de duda, porque Ollama sirve ambas formas.
Cinco propiedades que no llegaban a ninguna parte ahora llegan a la peticion: AgentAPIKey, AgentAPI, AgentEndpoint, Temperature y MaximumTokens.
Los eventos en cola nunca se despachaban. Una palabra COBOL llega al interprete en mayusculas, asi que Agent-Helper llegaba como AGENT-HELPER, mientras el bucle de eventos generado compara con WHEN "Agent-Helper". El EVALUATE no coincidia nunca. Afectaba a onResponse, onError, onComplete, onCancelled y onTimeout de todos los controles asincronos, y tambien a las aplicaciones ya compiladas.
Verbose, una propiedad nueva del AgentObject, imprime la URL, las cabeceras, el cuerpo enviado, el estado HTTP y la respuesta en bruto, sin recortar. Esta desactivada por omision.
Ejemplo
PROCEDURE DIVISION.
MOVE "asking..." TO Lbl-State::Caption.
Agent-Helper::Ask(Txt-Question::Text).
*> y en el manejador Agent-Helper::onResponse, que ahora SI se ejecuta:
MOVE Agent-Helper::LastReply TO Txt-Reply::Text.
MOVE "answered" TO Lbl-State::Caption.
Si la llamada falla, LastError recibe el motivo, LastReply se vacia (una respuesta vieja tras un fallo es como un manejador informa de un exito que no tuvo) y se dispara onError.
Otras correcciones de este lote
Beautify reformateaba el interior de los literales de bloque, cambiando el valor que el programa muestra. Ahora los deja intactos, vallas incluidas.
ComboBox: BorderStyle se pintaba pero no se podia cambiar; faltaba la fila en el inspector.
El modal del Editor de eventos COBOL se agrandaba solo al ajustar su anchura.
La carpeta de destino del FileDropZone ya tiene selector de carpeta y un boton para borrarla.
El ejemplo PowerDemo3 incluye el formulario AgentObject con los seis botones de idioma.
Documentacion:
PowerRustCOBOL/docs/developers-guide-en.md at main · CloudLandBeta/PowerRustCOBOL · GitHub (https://github.com/CloudLandBeta/PowerRustCOBOL/blob/main/docs/developers-guide-en.md)
Anthropic Claude Codex Agent
Hasta ahora el control AgentObject no enviaba ninguna peticion. Ask guardaba el prompt, leia un LastReply que nadie escribia nunca y devolvia la cadena vacia. Como onResponse solo se dispara con una respuesta no vacia, tampoco se disparaba: el formulario se quedaba en "asking..." para siempre, sin error y sin traza.
Que se corrigio
Ask realiza la peticion y devuelve la respuesta. Es sincrono: el metodo documentado es Ask(prompt) devolviendo String y necesita la respuesta para devolverla. El interprete corre en su propio hilo, asi que el formulario sigue pintando mientras espera.
Tres protocolos: OpenAI-compatible (/v1/chat/completions), Ollama nativo (/api/chat) y Anthropic (/v1/messages). AgentAPI elige; la ruta de la URL decide en caso de duda, porque Ollama sirve ambas formas.
Cinco propiedades que no llegaban a ninguna parte ahora llegan a la peticion: AgentAPIKey, AgentAPI, AgentEndpoint, Temperature y MaximumTokens.
Los eventos en cola nunca se despachaban. Una palabra COBOL llega al interprete en mayusculas, asi que Agent-Helper llegaba como AGENT-HELPER, mientras el bucle de eventos generado compara con WHEN "Agent-Helper". El EVALUATE no coincidia nunca. Afectaba a onResponse, onError, onComplete, onCancelled y onTimeout de todos los controles asincronos, y tambien a las aplicaciones ya compiladas.
Verbose, una propiedad nueva del AgentObject, imprime la URL, las cabeceras, el cuerpo enviado, el estado HTTP y la respuesta en bruto, sin recortar. Esta desactivada por omision.
Ejemplo
PROCEDURE DIVISION.
MOVE "asking..." TO Lbl-State::Caption.
Agent-Helper::Ask(Txt-Question::Text).
*> y en el manejador Agent-Helper::onResponse, que ahora SI se ejecuta:
MOVE Agent-Helper::LastReply TO Txt-Reply::Text.
MOVE "answered" TO Lbl-State::Caption.
Si la llamada falla, LastError recibe el motivo, LastReply se vacia (una respuesta vieja tras un fallo es como un manejador informa de un exito que no tuvo) y se dispara onError.
Otras correcciones de este lote
Beautify reformateaba el interior de los literales de bloque, cambiando el valor que el programa muestra. Ahora los deja intactos, vallas incluidas.
ComboBox: BorderStyle se pintaba pero no se podia cambiar; faltaba la fila en el inspector.
El modal del Editor de eventos COBOL se agrandaba solo al ajustar su anchura.
La carpeta de destino del FileDropZone ya tiene selector de carpeta y un boton para borrarla.
El ejemplo PowerDemo3 incluye el formulario AgentObject con los seis botones de idioma.
Documentacion:
PowerRustCOBOL/docs/developers-guide-en.md at main · CloudLandBeta/PowerRustCOBOL · GitHub (https://github.com/CloudLandBeta/PowerRustCOBOL/blob/main/docs/developers-guide-en.md)
Anthropic Claude Codex Agent