Release 0.1.1 [auto-version-bump]
This commit is contained in:
Generated
+1978
File diff suppressed because it is too large
Load Diff
+1
-1
@@ -3,7 +3,7 @@ members = ["crates/rule-engine"]
|
|||||||
resolver = "2"
|
resolver = "2"
|
||||||
|
|
||||||
[workspace.package]
|
[workspace.package]
|
||||||
version = "0.1.0"
|
version = "0.1.1"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
license = "MIT"
|
license = "MIT"
|
||||||
|
|
||||||
|
|||||||
@@ -129,8 +129,8 @@ impl LuauRuntime {
|
|||||||
if effects.len() > MAX_EFFECTS {
|
if effects.len() > MAX_EFFECTS {
|
||||||
return Err(RuleError::TooManyEffects);
|
return Err(RuleError::TooManyEffects);
|
||||||
}
|
}
|
||||||
let encoded = serde_json::to_vec(&effects)
|
let encoded =
|
||||||
.map_err(|error| RuleError::Sandbox(error.to_string()))?;
|
serde_json::to_vec(&effects).map_err(|error| RuleError::Sandbox(error.to_string()))?;
|
||||||
if encoded.len() > MAX_RESULT_BYTES {
|
if encoded.len() > MAX_RESULT_BYTES {
|
||||||
return Err(RuleError::ResultTooLarge);
|
return Err(RuleError::ResultTooLarge);
|
||||||
}
|
}
|
||||||
@@ -220,9 +220,7 @@ mod tests {
|
|||||||
"return function() return {{ kind = 'advance_time', payload = 'not an object' }} end",
|
"return function() return {{ kind = 'advance_time', payload = 'not an object' }} end",
|
||||||
));
|
));
|
||||||
assert!(matches!(result.outcome, EvaluationOutcome::Rejected { .. }));
|
assert!(matches!(result.outcome, EvaluationOutcome::Rejected { .. }));
|
||||||
let result = evaluate_request(request(
|
let result = evaluate_request(request("return function() return 'not an effect list' end"));
|
||||||
"return function() return 'not an effect list' end",
|
|
||||||
));
|
|
||||||
assert!(matches!(result.outcome, EvaluationOutcome::Rejected { .. }));
|
assert!(matches!(result.outcome, EvaluationOutcome::Rejected { .. }));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
use ai_spel_rule_engine::{
|
use ai_spel_rule_engine::{
|
||||||
CONTRACT_VERSION, EVALUATION_SUBJECT, EvaluationRequest, EvaluationResponse, evaluate_request,
|
CONTRACT_VERSION, EVALUATION_SUBJECT, EvaluationRequest, EvaluationResponse, evaluate_request,
|
||||||
};
|
};
|
||||||
use async_nats::{Client, ConnectOptions, Subscriber, Subject};
|
use async_nats::{Client, ConnectOptions, Subject, Subscriber};
|
||||||
use axum::{Router, extract::State, http::StatusCode, routing::get};
|
use axum::{Router, extract::State, http::StatusCode, routing::get};
|
||||||
use futures_util::StreamExt;
|
use futures_util::StreamExt;
|
||||||
use std::{env, sync::Arc, time::Duration};
|
use std::{env, sync::Arc, time::Duration};
|
||||||
@@ -131,13 +131,18 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|||||||
.with_state(health.clone());
|
.with_state(health.clone());
|
||||||
let health_address = env::var("HEALTH_ADDR").unwrap_or_else(|_| "0.0.0.0:8080".into());
|
let health_address = env::var("HEALTH_ADDR").unwrap_or_else(|_| "0.0.0.0:8080".into());
|
||||||
let health_listener = tokio::net::TcpListener::bind(health_address).await?;
|
let health_listener = tokio::net::TcpListener::bind(health_address).await?;
|
||||||
tokio::spawn(async move { let _ = axum::serve(health_listener, health_router).await; });
|
tokio::spawn(async move {
|
||||||
|
let _ = axum::serve(health_listener, health_router).await;
|
||||||
|
});
|
||||||
|
|
||||||
let client = loop {
|
let client = loop {
|
||||||
match connect_nats().await {
|
match connect_nats().await {
|
||||||
Ok(client) => break client,
|
Ok(client) => break client,
|
||||||
Err(error) => {
|
Err(error) => {
|
||||||
eprintln!("{{\"level\":\"warn\",\"event\":\"nats.connect_retry\",\"error_category\":\"nats_connect\",\"detail\":{:?}}}", error.to_string());
|
eprintln!(
|
||||||
|
"{{\"level\":\"warn\",\"event\":\"nats.connect_retry\",\"error_category\":\"nats_connect\",\"detail\":{:?}}}",
|
||||||
|
error.to_string()
|
||||||
|
);
|
||||||
time::sleep(Duration::from_secs(2)).await;
|
time::sleep(Duration::from_secs(2)).await;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -166,6 +171,9 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|||||||
.and_then(|value| value.parse::<usize>().ok())
|
.and_then(|value| value.parse::<usize>().ok())
|
||||||
.filter(|value| (1..=32).contains(value))
|
.filter(|value| (1..=32).contains(value))
|
||||||
.unwrap_or(8);
|
.unwrap_or(8);
|
||||||
eprintln!("{{\"level\":\"info\",\"event\":\"rule_engine.ready\",\"contract_version\":{},\"max_concurrency\":{}}}", CONTRACT_VERSION, concurrency);
|
eprintln!(
|
||||||
|
"{{\"level\":\"info\",\"event\":\"rule_engine.ready\",\"contract_version\":{},\"max_concurrency\":{}}}",
|
||||||
|
CONTRACT_VERSION, concurrency
|
||||||
|
);
|
||||||
serve_rule_requests(client, subscriber, concurrency).await
|
serve_rule_requests(client, subscriber, concurrency).await
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ spec:
|
|||||||
source:
|
source:
|
||||||
repoURL: harbor.k3s.k0.nu/ai-spel
|
repoURL: harbor.k3s.k0.nu/ai-spel
|
||||||
chart: ai-spel-rule-engine
|
chart: ai-spel-rule-engine
|
||||||
targetRevision: "0.1.0"
|
targetRevision: "0.1.1"
|
||||||
helm:
|
helm:
|
||||||
releaseName: ai-spel-rule-engine
|
releaseName: ai-spel-rule-engine
|
||||||
destination:
|
destination:
|
||||||
|
|||||||
@@ -2,5 +2,5 @@ apiVersion: v2
|
|||||||
name: ai-spel-rule-engine
|
name: ai-spel-rule-engine
|
||||||
description: Isolated, sandboxed Luau proposal evaluator
|
description: Isolated, sandboxed Luau proposal evaluator
|
||||||
type: application
|
type: application
|
||||||
version: 0.1.0
|
version: 0.1.1
|
||||||
appVersion: "0.1.0"
|
appVersion: "0.1.1"
|
||||||
Reference in New Issue
Block a user