Implement safe public LSL delivery (#129)
This commit is contained in:
@@ -478,10 +478,11 @@ fn start_live_interactions(
|
||||
) -> Result<LiveInteractions, Box<dyn Error>> {
|
||||
use metacrate_grid_agent::{
|
||||
AuthorizedBackendRouter, AuthorizedToolBackend, BehaviorBackend, BehaviorController,
|
||||
ConversationStore, InteractionCoordinator, LlmClient, LlmTransportLimits,
|
||||
MemoryPolicyAudit, Observability, ObservabilityLimits, PerceptionBackend, PolicyAuditSink,
|
||||
PolicyGateway, PolicyLimits, PolicyLlmResponder, ToolLoopLimits, UnifiedPolicyAudit,
|
||||
behavior_policy_tools, perception_policy_tools,
|
||||
ConversationStore, InteractionCoordinator, LibremetaverseScriptInventory, LlmClient,
|
||||
LlmTransportLimits, MemoryPolicyAudit, Observability, ObservabilityLimits,
|
||||
PerceptionBackend, PolicyAuditSink, PolicyGateway, PolicyLimits, PolicyLlmResponder,
|
||||
ScriptDeliveryBackend, ScriptDeliverySettings, ToolLoopLimits, UnifiedPolicyAudit,
|
||||
behavior_policy_tools, perception_policy_tools, script_delivery_policy_tool,
|
||||
};
|
||||
|
||||
let transport_limits = LlmTransportLimits {
|
||||
@@ -525,15 +526,26 @@ fn start_live_interactions(
|
||||
));
|
||||
let mut tools = perception_policy_tools()?;
|
||||
tools.extend(behavior_policy_tools(&config.behavior)?);
|
||||
let script_inventory = Arc::new(LibremetaverseScriptInventory::new(owner.client()));
|
||||
let script_backend: Arc<dyn AuthorizedToolBackend> = Arc::new(ScriptDeliveryBackend::new(
|
||||
script_inventory,
|
||||
ScriptDeliverySettings::default(),
|
||||
)?);
|
||||
tools.push(script_delivery_policy_tool(
|
||||
ScriptDeliverySettings::default(),
|
||||
)?);
|
||||
let routes = tools
|
||||
.iter()
|
||||
.map(|tool| tool.definition.name.as_str().to_owned())
|
||||
.map(|name| {
|
||||
let backend: Arc<dyn AuthorizedToolBackend> = if name.starts_with("behavior_") {
|
||||
Arc::new(BehaviorBackend::new(behavior_ingress.clone()))
|
||||
} else {
|
||||
perception.clone()
|
||||
};
|
||||
let backend: Arc<dyn AuthorizedToolBackend> =
|
||||
if name == metacrate_grid_agent::SCRIPT_DELIVERY_TOOL {
|
||||
Arc::clone(&script_backend)
|
||||
} else if name.starts_with("behavior_") {
|
||||
Arc::new(BehaviorBackend::new(behavior_ingress.clone()))
|
||||
} else {
|
||||
perception.clone()
|
||||
};
|
||||
(name, backend)
|
||||
})
|
||||
.collect::<Vec<_>>();
|
||||
|
||||
Reference in New Issue
Block a user