ScriptService provides management and execution capabilities for visual node-based
automation scripts within SoulFire.
The visual scripting system allows users to create automation workflows by connecting
nodes in a graph. Each node represents an action, condition, or event trigger.
Nodes are connected by edges that define execution flow and data transfer.
SCRIPT LIFECYCLE:
Create a script using CreateScript with initial nodes/edges or empty graph
Edit the script using UpdateScript to modify the node graph
Activate the script using ActivateScript to register event listeners
Monitor execution via SubscribeScriptEvents or GetScriptStatus
Deactivate using DeactivateScript when done
Delete unused scripts with DeleteScript
Scripts are reactive state machines - they don't "run" but rather listen for
trigger events and execute node chains in response. Activation registers the
listeners, deactivation removes them and cancels any pending async operations.
PERMISSIONS: Script operations require appropriate instance permissions.
The specific permissions are TBD but will likely include:
READ_SCRIPT: View script definitions and status
UPDATE_SCRIPT: Create, modify, and delete scripts
EXECUTE_SCRIPT: Activate and deactivate scripts
LOGGING: Script execution logs can be streamed via SubscribeScriptLogs or
filtered using InstanceScriptLogScope in the LogsService (see logs.proto).
ScriptService provides management and execution capabilities for visual node-based automation scripts within SoulFire.
The visual scripting system allows users to create automation workflows by connecting nodes in a graph. Each node represents an action, condition, or event trigger. Nodes are connected by edges that define execution flow and data transfer.
SCRIPT LIFECYCLE:
Scripts are reactive state machines - they don't "run" but rather listen for trigger events and execute node chains in response. Activation registers the listeners, deactivation removes them and cancels any pending async operations.
PERMISSIONS: Script operations require appropriate instance permissions. The specific permissions are TBD but will likely include:
LOGGING: Script execution logs can be streamed via SubscribeScriptLogs or filtered using InstanceScriptLogScope in the LogsService (see logs.proto).