sim-lib-openai-server 0.1.3

OpenAI-compatible gateway skeleton for SIM.
Documentation
use sim_kernel::{Callable, Error, eval_fabric_capability};

use crate::OpenAiGatewayFunction;

#[test]
fn fabric_function_requires_eval_fabric_capability() {
    let mut cx = super::cx();

    let err = OpenAiGatewayFunction::fabric()
        .call(&mut cx, sim_kernel::Args::new(Vec::new()))
        .unwrap_err();
    assert!(matches!(
        err,
        Error::CapabilityDenied { capability } if capability == eval_fabric_capability()
    ));

    cx.grant(eval_fabric_capability());
    let value = OpenAiGatewayFunction::fabric()
        .call(&mut cx, sim_kernel::Args::new(Vec::new()))
        .unwrap();
    assert!(value.object().as_eval_fabric().is_some());
}