morning-start/prism/sdk does not have a README file
pub struct ConversionMeta {
source_provider : String
diagnostics : Array[ConversionDiagnostic]
provider_payload : Json?
extra_fields : Map[String, Json]?
}fn ConversionMeta::new(source_provider : String, diagnostics : Array[ConversionDiagnostic], provider_payload : Json?, extra_fields : Map[String, Json]?) -> ConversionMetapub struct FieldConstraint {
min_val : Double?
max_val : Double?
required : Bool
allowed_values : Array[String]?
}fn FieldConstraint::new(min_val : Double?, max_val : Double?, required : Bool, allowed_values : Array[String]?) -> FieldConstraintpub struct Prism {
provider : String
}fn Prism::complete(self : Prism, text : String, opts : PrismOptions, send : (String) -> Result[String, String]) -> Result[String, String]fn Prism::decode_response_with_diagnostics(self : Prism, json_str : String) -> Result[ConversionResult[LucentResponse], String]fn Prism::decode_response_with_meta(self : Prism, json_str : String) -> Result[DecodedResponse, String]fn Prism::encode_request(self : Prism, text : String, opts : PrismOptions) -> Result[String, String]fn Prism::encode_request_with_diagnostics(self : Prism, text : String, opts : PrismOptions) -> Result[ConversionResult[String], String]fn Prism::encode_stream_request(self : Prism, text : String, opts : PrismOptions) -> Result[String, String]fn Prism::stream(self : Prism, ctx : Context, send : (String) -> Result[String, String]) -> Result[Array[PrismEvent], String]pub(all) enum PrismEvent {
TextDelta(String)
ToolCall(PrismToolCall)
ToolResult(PrismToolResult)
Thinking(PrismThinking)
Finish(PrismFinishReason)
}pub(all) enum PrismFinishReason {
Stop
Length
ToolCalls
ContentFilter
Error
}fn PrismOptions::new(model : String?, temperature : Double?, max_tokens : Int?, store : Bool?, extras : Map[String, Json]?) -> PrismOptionspub struct PrismThinking {
text : String
signature : String?
redacted : Bool
}pub struct PrismToolCall {
id : String
name : String
arguments_json : String
}pub struct PrismToolResult {
tool_use_id : String
content : String
is_error : Bool
}pub struct ProviderRegistration {
name : String
aliases : Array[String]
capability : ProviderCapability
model_pattern : String
request_decode : (String) -> Result[ConversionResult[LucentRequest], String]
request_encode : (LucentRequest) -> Result[ConversionResult[String], String]
response_decode : (String) -> Result[ConversionResult[LucentResponse], String]
response_encode : (LucentResponse) -> Result[ConversionResult[String], String]
events_decode : (String) -> Result[ConversionResult[Array[LucentStreamEvent]], String]
events_encode : (Array[LucentStreamEvent]) -> Result[ConversionResult[String], String]
}fn ProviderRegistration::new(name : String, aliases : Array[String], capability : ProviderCapability, model_pattern : String, request_decode : (String) -> Result[ConversionResult[LucentRequest], String], request_encode : (LucentRequest) -> Result[ConversionResult[String], String], response_decode : (String) -> Result[ConversionResult[LucentResponse], String], response_encode : (LucentResponse) -> Result[ConversionResult[String], String], events_decode : (String) -> Result[ConversionResult[Array[LucentStreamEvent]], String], events_encode : (Array[LucentStreamEvent]) -> Result[ConversionResult[String], String]) -> ProviderRegistrationpub struct ProviderSchema {
provider_name : String
temperature : FieldConstraint
top_p : FieldConstraint
top_k : FieldConstraint
max_output_tokens : FieldConstraint
resp_min_choices : Int
supports_tools : Bool
supports_system_instruction : Bool
supported_reasoning_efforts : Array[String]?
extra_checks : Array[() -> Array[String]]?
}pub struct SdkMessage {
role : String
content : String
tool_use_id : String?
is_error : Bool?
}pub struct SdkTool {
name : String
description : String
parameters_json : String
}fn convert_request(source : String, json_str : String, target : String) -> Result[ConversionResult[String], String]fn convert_response(source : String, json_str : String, target : String) -> Result[ConversionResult[String], String]fn convert_response_with_meta(source : String, json_str : String, target : String) -> Result[ConvertMetaResult, String]fn convert_stream(source : String, sse_str : String, target : String) -> Result[ConversionResult[String], String]A unified LLM protocol middleware converting between OpenAI, Anthropic, Gemini and other provider formats via the Lucent IR neutral protocol