view infinite_canvas/agent_service.h @ 281:c57149ad216e default tip

Copilot-Session: f68442b1-fa8f-46a0-9689-81710613bbd4
author MrJuneJune <me@mrjunejune.com>
date Tue, 18 Aug 2026 22:18:15 -0700
parents 49e9e591c9bb
children
line wrap: on
line source

#ifndef INFINITE_CANVAS_AGENT_SERVICE_H
#define INFINITE_CANVAS_AGENT_SERVICE_H

#include "dowa/dowa.h"
#include "infinite_canvas/canvas.h"

#define CANVAS_AGENT_RESPONSE_CAPACITY 16384

typedef enum {
    CANVAS_AGENT_IDLE = 0,
    CANVAS_AGENT_WORKING,
    CANVAS_AGENT_READY,
    CANVAS_AGENT_ERROR,
} Canvas_Agent_Status;

typedef struct {
    Dowa_Arena *p_arena;
    void *p_native;
    Canvas_Agent_Status status;
    char response[CANVAS_AGENT_RESPONSE_CAPACITY];
    char error[512];
} Canvas_Agent_Service;

boolean Canvas_Agent_Service_Init(
    Canvas_Agent_Service *p_service,
    Dowa_Arena *p_arena);
boolean Canvas_Agent_Service_Submit(
    Canvas_Agent_Service *p_service,
    const char *p_prompt,
    const char *p_context);
Canvas_Agent_Status Canvas_Agent_Service_Poll(
    Canvas_Agent_Service *p_service,
    char *p_response,
    size_t response_capacity,
    char *p_error,
    size_t error_capacity);
void Canvas_Agent_Service_Shutdown(Canvas_Agent_Service *p_service);

#endif