Add Command for trigger

This commit is contained in:
kwaroran
2024-04-10 09:36:28 +09:00
parent 410eaf6de1
commit 0d57392feb
3 changed files with 24 additions and 1 deletions

View File

@@ -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',

View File

@@ -211,12 +211,20 @@
value: ''
}
}
if(effect.type === 'command'){
effect = {
type: 'command',
value: ''
}
}
}}>
{#if effect.type === 'systemprompt' || value.type === 'start'}
<OptionInput value="systemprompt">{language.triggerEffSysPrompt}</OptionInput>
{/if}
<OptionInput value="setvar">{language.triggerEffSetVar}</OptionInput>
<OptionInput value="impersonate">{language.triggerEffImperson}</OptionInput>
<OptionInput value="command">{language.triggerEffCommand}</OptionInput>
</SelectInput>
{#if effect.type === 'systemprompt'}
{#if value.type !== 'start'}
@@ -245,6 +253,11 @@
<span class="text-textcolor2 text-sm">{language.value}</span>
<TextInput size="sm" bind:value={effect.value} />
{/if}
{#if effect.type === 'command'}
<span class="text-textcolor2 text-sm">{language.value}</span>
<TextAreaInput size="sm" bind:value={effect.value} />
{/if}
{#if effect.type === 'impersonate'}
<span class="text-textcolor2 text-sm">{language.role}</span>
<SelectInput bind:value={effect.role} size="sm">

View File

@@ -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)
}
}
}