view infinite_canvas/agent_service_test.c @ 280:49e9e591c9bb

Add persistent dictation, prewarmed WebRTC speech input, Copilot SDK routing, animated conversation lifecycle controls, parking, and architecture coverage.
author MrJuneJune <me@mrjunejune.com>
date Tue, 18 Aug 2026 19:14:53 -0700
parents
children
line wrap: on
line source

#include "infinite_canvas/agent_service.h"

#include <assert.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>

int main(int argc, char **p_argv)
{
    assert(argc == 2);
    assert(setenv(
        "INFINITE_CANVAS_COPILOT_SIDECAR_PATH",
        p_argv[1],
        1) == 0);
    assert(setenv(
        "INFINITE_CANVAS_COPILOT_CLI_PATH",
        p_argv[1],
        1) == 0);

    Dowa_Arena *p_arena = Dowa_Arena_Create(ONE_MEGA_BYTE);
    assert(p_arena);
    Canvas_Agent_Service service;
    assert(Canvas_Agent_Service_Init(&service, p_arena));
    assert(Canvas_Agent_Service_Submit(
        &service,
        "Create a rendering session",
        "entity id=42 type=Agent conversation"));

    Canvas_Agent_Status status = CANVAS_AGENT_WORKING;
    char response[CANVAS_AGENT_RESPONSE_CAPACITY] = {0};
    char error[512] = {0};
    for (int32 attempt = 0;
        attempt < 200 && status == CANVAS_AGENT_WORKING;
        attempt++) {
        usleep(10000);
        status = Canvas_Agent_Service_Poll(
            &service,
            response,
            sizeof(response),
            error,
            sizeof(error));
    }
    assert(status == CANVAS_AGENT_READY);
    assert(strstr(response, "hello traveler"));

    Canvas_Agent_Service_Shutdown(&service);
    Dowa_Arena_Free(p_arena);
    return 0;
}