AI models

This commit is contained in:
mdecimus
2024-10-05 19:05:04 +02:00
parent d5c2dcb817
commit d0ce2b1a96
41 changed files with 1171 additions and 406 deletions

View File

@@ -31,7 +31,6 @@ pub trait RunScript: Sync + Send {
script_id: String,
script: Arc<Sieve>,
params: ScriptParameters<'_>,
session_id: u64,
) -> impl Future<Output = ScriptResult> + Send;
}
@@ -41,7 +40,6 @@ impl RunScript for Server {
script_id: String,
script: Arc<Sieve>,
params: ScriptParameters<'_>,
session_id: u64,
) -> ScriptResult {
// Create filter instance
let time = Instant::now();
@@ -56,6 +54,7 @@ impl RunScript for Server {
.with_user_full_name(&params.from_name);
let mut input = Input::script("__script", script);
let mut messages: Vec<Vec<u8>> = Vec::new();
let session_id = params.session_id;
let mut reject_reason = None;
let mut modifications = vec![];
@@ -124,6 +123,7 @@ impl RunScript for Server {
server: self,
message: instance.message(),
modifications: &mut modifications,
access_token: params.access_token,
arguments,
},
)

View File

@@ -132,9 +132,9 @@ impl<T: SessionStream> Session<T> {
script_id,
script,
params
.with_session_id(self.data.session_id)
.with_envelope(&self.server, self, self.data.session_id)
.await,
self.data.session_id,
)
.await
}

View File

@@ -7,7 +7,9 @@
use std::borrow::Cow;
use ahash::AHashMap;
use common::{expr::functions::ResolveVariable, scripts::ScriptModification, Server};
use common::{
auth::AccessToken, expr::functions::ResolveVariable, scripts::ScriptModification, Server,
};
use sieve::{runtime::Variable, Envelope};
pub mod envelope;
@@ -38,6 +40,8 @@ pub struct ScriptParameters<'x> {
sign: Vec<String>,
#[cfg(feature = "test_mode")]
expected_variables: Option<AHashMap<String, Variable>>,
access_token: Option<&'x AccessToken>,
session_id: u64,
}
impl<'x> ScriptParameters<'x> {
@@ -53,6 +57,8 @@ impl<'x> ScriptParameters<'x> {
from_name: Default::default(),
return_path: Default::default(),
sign: Default::default(),
access_token: None,
session_id: Default::default(),
}
}
@@ -108,6 +114,16 @@ impl<'x> ScriptParameters<'x> {
self
}
pub fn with_access_token(mut self, access_token: &'x AccessToken) -> Self {
self.access_token = Some(access_token);
self
}
pub fn with_session_id(mut self, session_id: u64) -> Self {
self.session_id = session_id;
self
}
#[cfg(feature = "test_mode")]
pub fn with_expected_variables(
mut self,