diff --git a/src/lang/en.ts b/src/lang/en.ts
index 7913830e..943892df 100644
--- a/src/lang/en.ts
+++ b/src/lang/en.ts
@@ -416,6 +416,7 @@ export const languageEnglish = {
triggerEffSysPrompt: 'Add System Prompt',
triggerEffSetVar: 'Modify Variable',
triggerEffImperson: 'Send Chat',
+ triggerEffCommand: 'Run Command',
varableName: "Variable Name",
role: "Role",
location: 'Location',
diff --git a/src/lib/SideBars/Scripts/TriggerData.svelte b/src/lib/SideBars/Scripts/TriggerData.svelte
index ec379e85..f419113e 100644
--- a/src/lib/SideBars/Scripts/TriggerData.svelte
+++ b/src/lib/SideBars/Scripts/TriggerData.svelte
@@ -211,12 +211,20 @@
value: ''
}
}
+ if(effect.type === 'command'){
+ effect = {
+ type: 'command',
+ value: ''
+ }
+ }
}}>
{#if effect.type === 'systemprompt' || value.type === 'start'}
{language.triggerEffSysPrompt}
{/if}
{language.triggerEffSetVar}
{language.triggerEffImperson}
+ {language.triggerEffCommand}
+
{#if effect.type === 'systemprompt'}
{#if value.type !== 'start'}
@@ -245,6 +253,11 @@
{language.value}
{/if}
+
+ {#if effect.type === 'command'}
+ {language.value}
+
+ {/if}
{#if effect.type === 'impersonate'}
{language.role}
diff --git a/src/ts/process/triggers.ts b/src/ts/process/triggers.ts
index 3c6a7ffc..067c7dcb 100644
--- a/src/ts/process/triggers.ts
+++ b/src/ts/process/triggers.ts
@@ -5,6 +5,7 @@ import { tokenize } from "../tokenizer";
import { getModuleTriggers } from "./modules";
import { get } from "svelte/store";
import { CurrentChat } from "../stores";
+import { processMultiCommand } from "./command";
export interface triggerscript{
comment: string;
@@ -15,7 +16,7 @@ export interface triggerscript{
export type triggerCondition = triggerConditionsVar|triggerConditionsExists|triggerConditionsChatIndex
-export type triggerEffect = triggerEffectSetvar|triggerEffectSystemPrompt|triggerEffectImpersonate
+export type triggerEffect = triggerEffectSetvar|triggerEffectSystemPrompt|triggerEffectImpersonate|triggerEffectCommand
export type triggerConditionsVar = {
type:'var'
@@ -56,6 +57,11 @@ export interface triggerEffectImpersonate{
value:string
}type triggerMode = 'start'|'manual'|'output'|'input'
+export interface triggerEffectCommand{
+ type: 'command',
+ value: string
+}
+
export type additonalSysPrompt = {
start:string,
historyend: string,
@@ -198,6 +204,9 @@ export async function runTrigger(char:character,mode:triggerMode, arg:{
chat.message.push({role: 'char', data: effect.value})
}
}
+ else if(effect.type === 'command'){
+ return await processMultiCommand(effect.value)
+ }
}
}