| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 | import type { ValueSelector } from '../../workflow/types'export const CONTEXT_PLACEHOLDER_TEXT = '{{#context#}}'export const HISTORY_PLACEHOLDER_TEXT = '{{#histories#}}'export const QUERY_PLACEHOLDER_TEXT = '{{#query#}}'export const PRE_PROMPT_PLACEHOLDER_TEXT = '{{#pre_prompt#}}'export const UPDATE_DATASETS_EVENT_EMITTER = 'prompt-editor-context-block-update-datasets'export const UPDATE_HISTORY_EVENT_EMITTER = 'prompt-editor-history-block-update-role'export const checkHasContextBlock = (text: string) => {  if (!text)    return false  return text.includes(CONTEXT_PLACEHOLDER_TEXT)}export const checkHasHistoryBlock = (text: string) => {  if (!text)    return false  return text.includes(HISTORY_PLACEHOLDER_TEXT)}export const checkHasQueryBlock = (text: string) => {  if (!text)    return false  return text.includes(QUERY_PLACEHOLDER_TEXT)}/** {{#1711617514996.name#}} => [1711617514996, name]* {{#1711617514996.sys.query#}} => [sys, query]*/export const getInputVars = (text: string): ValueSelector[] => {  if (!text)    return []  const allVars = text.match(/{{#([^#]*)#}}/g)  if (allVars && allVars?.length > 0) {    // {{#context#}}, {{#query#}} is not input vars    const inputVars = allVars      .filter(item => item.includes('.'))      .map((item) => {        const valueSelector = item.replace('{{#', '').replace('#}}', '').split('.')        if (valueSelector[1] === 'sys' && /^\d+$/.test(valueSelector[0]))          return valueSelector.slice(1)        return valueSelector      })    return inputVars  }  return []}
 |