view mrjunejune/inference_bridge.h @ 263:ee04e4e69fed

Add functional JRPG frame and tools Add full-screen background_2 apertures, functional frame chrome, card-driven details, dual-window tools, live conversion workflows, and bounded cleanup for generated downloads. Co-authored-by: Copilot <[email protected]>
author MrJuneJune <mrjunejune@users.noreply.github.com>
date Thu, 06 Aug 2026 11:31:30 -0700
parents b401627fc49e
children 056790c4fb0d
line wrap: on
line source

#ifndef MRJUNEJUNE_INFERENCE_BRIDGE_H
#define MRJUNEJUNE_INFERENCE_BRIDGE_H

#include "dowa/dowa.h"

typedef struct Inference_Bridge Inference_Bridge;

typedef struct {
  const char *type;
  const char *request_id;
  const char *conversation_id;
  const char *delta;
  const char *content;
  const char *error_code;
  const char *error_message;
  const char *raw_json;
  size_t raw_json_length;
  int64 input_tokens;
  int64 output_tokens;
  boolean failed;
  boolean aborted;
} Inference_Event;

typedef void (*Inference_Event_Handler)(
    const Inference_Event *p_event,
    void *p_user_data);

Inference_Bridge *Inference_Bridge_Create(
    const char *sidecar_path,
    const char *copilot_cli_path,
    Inference_Event_Handler handler,
    void *p_user_data);

boolean Inference_Bridge_Start(Inference_Bridge *p_bridge);
boolean Inference_Bridge_Is_Ready(const Inference_Bridge *p_bridge);

boolean Inference_Bridge_Start_Turn(
    Inference_Bridge *p_bridge,
    const char *request_id,
    const char *conversation_id,
    const char *prompt);

boolean Inference_Bridge_Abort_Turn(
    Inference_Bridge *p_bridge,
    const char *request_id,
    const char *conversation_id);

boolean Inference_Bridge_Delete_Conversation(
    Inference_Bridge *p_bridge,
    const char *request_id,
    const char *conversation_id);

void Inference_Bridge_Destroy(Inference_Bridge *p_bridge);

#endif