use super::{default_ffi_runtime_session_timeout_ms, default_json_object};
use crate::runtime_context::RuntimeRequestContext;
use crate::runtime_options::{LuaInvocationContext, RuntimeSkillRoot};
use crate::{
LuaEngineOptions, SkillInstallRequest, SkillManagementAuthority, SkillUninstallOptions,
};
use serde::{Deserialize, Serialize};
use serde_json::Value;
#[derive(Debug, Serialize, Deserialize)]
pub(super) struct EngineNewJsonRequest {
pub(super) options: LuaEngineOptions,
}
#[derive(Debug, Serialize, Deserialize)]
pub(super) struct EngineHandleJsonResult {
pub(super) engine_id: u64,
}
#[derive(Debug, Serialize, Deserialize)]
pub(super) struct EngineIdJsonRequest {
pub(super) engine_id: u64,
}
#[derive(Debug, Serialize, Deserialize)]
pub(super) struct EngineAuthorityJsonRequest {
pub(super) engine_id: u64,
pub(super) authority: Option<SkillManagementAuthority>,
}
#[derive(Debug, Serialize, Deserialize)]
pub(super) struct EngineRootsJsonRequest {
pub(super) engine_id: u64,
pub(super) skill_roots: Vec<RuntimeSkillRoot>,
}
#[derive(Debug, Serialize, Deserialize)]
pub(super) struct RenderHelpJsonRequest {
pub(super) engine_id: u64,
pub(super) skill_id: String,
pub(super) flow_name: String,
#[serde(default)]
pub(super) request_context: Option<RuntimeRequestContext>,
pub(super) authority: Option<SkillManagementAuthority>,
}
#[derive(Debug, Serialize, Deserialize)]
pub(super) struct PromptCompletionJsonRequest {
pub(super) engine_id: u64,
pub(super) authority: Option<SkillManagementAuthority>,
pub(super) prompt_name: String,
pub(super) argument_name: String,
}
#[derive(Debug, Serialize, Deserialize)]
pub(super) struct IsSkillJsonRequest {
pub(super) engine_id: u64,
pub(super) tool_name: String,
pub(super) authority: Option<SkillManagementAuthority>,
}
#[derive(Debug, Serialize, Deserialize)]
pub(super) struct BoolJsonResult {
pub(super) value: bool,
}
#[derive(Debug, Serialize, Deserialize)]
pub(super) struct SkillNameForToolJsonRequest {
pub(super) engine_id: u64,
pub(super) tool_name: String,
pub(super) authority: Option<SkillManagementAuthority>,
}
#[derive(Debug, Serialize, Deserialize)]
pub(super) struct OptionalSkillNameJsonResult {
#[serde(skip_serializing_if = "Option::is_none")]
pub(super) skill_id: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub(super) struct SkillConfigListJsonRequest {
pub(super) engine_id: u64,
#[serde(default)]
pub(super) skill_id: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub(super) struct SkillConfigGetJsonRequest {
pub(super) engine_id: u64,
pub(super) skill_id: String,
pub(super) key: String,
}
#[derive(Debug, Serialize, Deserialize)]
pub(super) struct SkillConfigSetJsonRequest {
pub(super) engine_id: u64,
pub(super) skill_id: String,
pub(super) key: String,
pub(super) value: String,
}
#[derive(Debug, Serialize, Deserialize)]
pub(super) struct SkillConfigGetJsonResult {
pub(super) found: bool,
pub(super) skill_id: String,
pub(super) key: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub(super) value: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub(super) struct SkillConfigMutationJsonResult {
pub(super) action: String,
pub(super) skill_id: String,
pub(super) key: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub(super) value: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub(super) deleted: Option<bool>,
}
#[derive(Debug, Serialize, Deserialize)]
pub(super) struct CallSkillJsonRequest {
pub(super) engine_id: u64,
pub(super) tool_name: String,
#[serde(default = "default_json_object")]
pub(super) args: Value,
#[serde(default)]
pub(super) invocation_context: Option<LuaInvocationContext>,
}
#[derive(Debug, Serialize, Deserialize)]
pub(super) struct RunLuaJsonRequest {
pub(super) engine_id: u64,
pub(super) code: String,
#[serde(default = "default_json_object")]
pub(super) args: Value,
#[serde(default)]
pub(super) invocation_context: Option<LuaInvocationContext>,
}
#[derive(Debug, Serialize, Deserialize)]
pub(super) struct RuntimeSessionCreateJsonRequest {
pub(super) engine_id: u64,
pub(super) sid: String,
#[serde(default)]
pub(super) ttl_sec: Option<u64>,
#[serde(default)]
pub(super) replace: bool,
#[serde(default)]
pub(super) cwd: Option<String>,
#[serde(default)]
pub(super) workspace_root: Option<String>,
#[serde(default)]
pub(super) lua_roots: Vec<String>,
#[serde(default)]
pub(super) c_roots: Vec<String>,
#[serde(default = "default_json_object")]
pub(super) mounts: Value,
#[serde(default)]
pub(super) authority: Option<SkillManagementAuthority>,
}
#[derive(Debug, Serialize, Deserialize)]
pub(super) struct RuntimeSessionEvalJsonRequest {
pub(super) engine_id: u64,
pub(super) lease_id: String,
#[serde(default)]
pub(super) sid: Option<String>,
#[serde(default)]
pub(super) generation: Option<u64>,
pub(super) code: String,
#[serde(default = "default_json_object")]
pub(super) args: Value,
#[serde(default = "default_ffi_runtime_session_timeout_ms")]
pub(super) timeout_ms: u64,
#[serde(default)]
pub(super) invocation_context: Option<LuaInvocationContext>,
#[serde(default)]
pub(super) authority: Option<SkillManagementAuthority>,
}
#[derive(Debug, Serialize, Deserialize)]
pub(super) struct RuntimeSessionLeaseJsonRequest {
pub(super) engine_id: u64,
pub(super) lease_id: String,
#[serde(default)]
pub(super) sid: Option<String>,
#[serde(default)]
pub(super) generation: Option<u64>,
#[serde(default)]
pub(super) authority: Option<SkillManagementAuthority>,
}
#[derive(Debug, Serialize, Deserialize)]
pub(super) struct RuntimeSessionListJsonRequest {
pub(super) engine_id: u64,
#[serde(default)]
pub(super) sid: Option<String>,
#[serde(default)]
pub(super) authority: Option<SkillManagementAuthority>,
}
#[derive(Debug, Serialize, Deserialize)]
pub(super) struct DisableSkillJsonRequest {
pub(super) engine_id: u64,
pub(super) skill_roots: Vec<RuntimeSkillRoot>,
pub(super) skill_id: String,
#[serde(default)]
pub(super) reason: Option<String>,
#[serde(default)]
pub(super) authority: Option<SkillManagementAuthority>,
}
#[derive(Debug, Serialize, Deserialize)]
pub(super) struct EnableSkillJsonRequest {
pub(super) engine_id: u64,
pub(super) skill_roots: Vec<RuntimeSkillRoot>,
pub(super) skill_id: String,
#[serde(default)]
pub(super) authority: Option<SkillManagementAuthority>,
}
#[derive(Debug, Serialize, Deserialize)]
pub(super) struct UninstallSkillJsonRequest {
pub(super) engine_id: u64,
pub(super) skill_roots: Vec<RuntimeSkillRoot>,
pub(super) skill_id: String,
#[serde(default)]
pub(super) target_root: Option<RuntimeSkillRoot>,
#[serde(default)]
pub(super) options: SkillUninstallOptions,
#[serde(default)]
pub(super) authority: Option<SkillManagementAuthority>,
}
#[derive(Debug, Serialize, Deserialize)]
pub(super) struct ApplySkillJsonRequest {
pub(super) engine_id: u64,
pub(super) skill_roots: Vec<RuntimeSkillRoot>,
pub(super) request: SkillInstallRequest,
#[serde(default)]
pub(super) target_root: Option<RuntimeSkillRoot>,
#[serde(default)]
pub(super) authority: Option<SkillManagementAuthority>,
}
#[derive(Debug, Serialize, Deserialize)]
pub(super) struct FfiDescribeJsonResult {
pub(super) ffi_version: String,
pub(super) exported_functions: Vec<String>,
}