From 0d57392feb6a13e6f0f02895042e902cfca1a127 Mon Sep 17 00:00:00 2001 From: kwaroran Date: Wed, 10 Apr 2024 09:36:28 +0900 Subject: [PATCH] Add Command for trigger --- src/lang/en.ts | 1 + src/lib/SideBars/Scripts/TriggerData.svelte | 13 +++++++++++++ src/ts/process/triggers.ts | 11 ++++++++++- 3 files changed, 24 insertions(+), 1 deletion(-) 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) + } } }