SoulFire TypeScript SDK 2.10.3
    Preparing search index...

    Variable ScriptServiceConst

    ScriptService: GenService<
        {
            activateScript: {
                input: typeof ActivateScriptRequestSchema;
                methodKind: "server_streaming";
                output: typeof ScriptEventSchema;
            };
            createScript: {
                input: typeof CreateScriptRequestSchema;
                methodKind: "unary";
                output: typeof CreateScriptResponseSchema;
            };
            deactivateScript: {
                input: typeof DeactivateScriptRequestSchema;
                methodKind: "unary";
                output: typeof DeactivateScriptResponseSchema;
            };
            deleteScript: {
                input: typeof DeleteScriptRequestSchema;
                methodKind: "unary";
                output: typeof DeleteScriptResponseSchema;
            };
            dryRunScript: {
                input: typeof DryRunScriptRequestSchema;
                methodKind: "server_streaming";
                output: typeof ScriptEventSchema;
            };
            getNodeTypes: {
                input: typeof GetNodeTypesRequestSchema;
                methodKind: "unary";
                output: typeof GetNodeTypesResponseSchema;
            };
            getRegistryData: {
                input: typeof GetRegistryDataRequestSchema;
                methodKind: "unary";
                output: typeof GetRegistryDataResponseSchema;
            };
            getScript: {
                input: typeof GetScriptRequestSchema;
                methodKind: "unary";
                output: typeof GetScriptResponseSchema;
            };
            getScriptStatus: {
                input: typeof GetScriptStatusRequestSchema;
                methodKind: "unary";
                output: typeof GetScriptStatusResponseSchema;
            };
            listScripts: {
                input: typeof ListScriptsRequestSchema;
                methodKind: "unary";
                output: typeof ListScriptsResponseSchema;
            };
            subscribeScriptLogs: {
                input: typeof SubscribeScriptLogsRequestSchema;
                methodKind: "server_streaming";
                output: typeof ScriptLogEntrySchema;
            };
            updateScript: {
                input: typeof UpdateScriptRequestSchema;
                methodKind: "unary";
                output: typeof UpdateScriptResponseSchema;
            };
            validateScript: {
                input: typeof ValidateScriptRequestSchema;
                methodKind: "unary";
                output: typeof ValidateScriptResponseSchema;
            };
        },
    > = ...

    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:

    1. Create a script using CreateScript with initial nodes/edges or empty graph
    2. Edit the script using UpdateScript to modify the node graph
    3. Activate the script using ActivateScript to register event listeners
    4. Monitor execution via SubscribeScriptEvents or GetScriptStatus
    5. Deactivate using DeactivateScript when done
    6. 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).

    from service soulfire.v1.ScriptService