@elizaos/plugin-eliza-classic 2.0.0-alpha.4 → 2.0.0-alpha.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/actions/generateResponse.d.ts.map +1 -1
- package/dist/actions/generateResponse.js.map +1 -1
- package/dist/browser/index.browser.js +8 -2
- package/dist/browser/index.browser.js.map +5 -5
- package/dist/cjs/index.node.cjs +8 -2
- package/dist/cjs/index.node.cjs.map +5 -5
- package/dist/models/text.d.ts.map +1 -1
- package/dist/models/text.js +6 -1
- package/dist/models/text.js.map +1 -1
- package/dist/node/index.node.js +8 -2
- package/dist/node/index.node.js.map +5 -5
- package/dist/providers/elizaGreeting.js +1 -0
- package/dist/providers/elizaGreeting.js.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateResponse.d.ts","sourceRoot":"","sources":["../../actions/generateResponse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,MAAM,EAQP,MAAM,eAAe,CAAC;AAMvB,eAAO,MAAM,sBAAsB,EAAE,
|
|
1
|
+
{"version":3,"file":"generateResponse.d.ts","sourceRoot":"","sources":["../../actions/generateResponse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,MAAM,EAQP,MAAM,eAAe,CAAC;AAMvB,eAAO,MAAM,sBAAsB,EAAE,MAwDpC,CAAC;AAEF,eAAe,sBAAsB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateResponse.js","sourceRoot":"","sources":["../../actions/generateResponse.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAEpE,MAAM,IAAI,GAAG,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;AAEpD,MAAM,CAAC,MAAM,sBAAsB,GAAW;IAC5C,IAAI,EAAE,IAAI,CAAC,IAAI;IACf,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;IAC9C,WAAW,EAAE,IAAI,CAAC,WAAW;
|
|
1
|
+
{"version":3,"file":"generateResponse.js","sourceRoot":"","sources":["../../actions/generateResponse.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAEpE,MAAM,IAAI,GAAG,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;AAEpD,MAAM,CAAC,MAAM,sBAAsB,GAAW;IAC5C,IAAI,EAAE,IAAI,CAAC,IAAI;IACf,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;IAC9C,WAAW,EAAE,IAAI,CAAC,WAAW;IAC7B,QAAQ,EAAE,KAAK,EAAE,QAAuB,EAAE,QAAgB,EAAE,MAAc,EAAoB,EAAE;QAC9F,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,EAAE,KAAK,EACZ,OAAsB,EACtB,OAAe,EACf,MAAc,EACd,QAAyB,EACzB,QAA0B,EACS,EAAE;QACrC,MAAM,SAAS,GACb,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI;YAC7D,CAAC,CAAE,OAAO,CAAC,OAA6B,CAAC,IAAI,IAAI,EAAE;YACnD,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;QAEpC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;YACtB,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,QAAQ,CAAC;oBACb,IAAI,EAAE,oEAAoE;oBAC1E,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM;iBAC/B,CAAC,CAAC;YACL,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,wBAAwB,EAAE,CAAC;QAC7D,CAAC;QAED,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,EAAE;gBAC5D,MAAM,EAAE,SAAS;aAClB,CAAC,CAAC;YAEH,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,QAAQ,CAAC;oBACb,IAAI,EAAE,QAAQ;oBACd,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM;iBAC/B,CAAC,CAAC;YACL,CAAC;YAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QAC3C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5E,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,QAAQ,CAAC;oBACb,IAAI,EAAE,2CAA2C;oBACjD,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM;iBAC/B,CAAC,CAAC;YACL,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;QACjD,CAAC;IACH,CAAC;IAED,QAAQ,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAsB;CACrD,CAAC;AAEF,eAAe,sBAAsB,CAAC"}
|
|
@@ -1032,7 +1032,12 @@ function tryRulesForKeyword(session, keyword, entry, words) {
|
|
|
1032
1032
|
return { kind: "newkey" };
|
|
1033
1033
|
const pre = parsePreDirective(picked);
|
|
1034
1034
|
if (pre)
|
|
1035
|
-
return {
|
|
1035
|
+
return {
|
|
1036
|
+
kind: "pre",
|
|
1037
|
+
preText: pre.preText,
|
|
1038
|
+
redirect: pre.redirect,
|
|
1039
|
+
parts: match.parts
|
|
1040
|
+
};
|
|
1036
1041
|
const redirect = resolveRedirectKeyword(picked);
|
|
1037
1042
|
if (redirect)
|
|
1038
1043
|
return { kind: "redirect", keyword: redirect };
|
|
@@ -1265,6 +1270,7 @@ var generateResponseAction = {
|
|
|
1265
1270
|
var spec2 = requireProviderSpec("eliza-greeting");
|
|
1266
1271
|
var elizaGreetingProvider = {
|
|
1267
1272
|
name: spec2.name,
|
|
1273
|
+
dynamic: true,
|
|
1268
1274
|
get: async (_runtime, _message, _state) => {
|
|
1269
1275
|
const greeting = getElizaGreeting();
|
|
1270
1276
|
return {
|
|
@@ -1372,5 +1378,5 @@ export {
|
|
|
1372
1378
|
elizaClassicPlugin
|
|
1373
1379
|
};
|
|
1374
1380
|
|
|
1375
|
-
//# debugId=
|
|
1381
|
+
//# debugId=7574A30589CA28A464756E2164756E21
|
|
1376
1382
|
//# sourceMappingURL=index.browser.js.map
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../models/text.ts", "../../plugin.ts", "../../actions/generateResponse.ts", "../../generated/specs/specs.ts", "../../generated/specs/spec-helpers.ts", "../../providers/elizaGreeting.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"import type { GenerateTextParams, IAgentRuntime } from \"@elizaos/core\";\nimport doctorScript from \"../../shared/doctor.json\";\nimport type {\n ElizaDoctorJson,\n ElizaKeywordEntry,\n ElizaScriptRule,\n ElizaSessionState,\n} from \"../types\";\n\nconst script = doctorScript as ElizaDoctorJson;\nconst substitutions = script.substitutions ?? {};\n\nconst sessionStateByRuntime = new WeakMap<IAgentRuntime, ElizaSessionState>();\nconst defaultStandaloneSession: ElizaSessionState = {\n limit: 1,\n memories: [],\n reassemblyIndex: new Map<string, number>(),\n};\n\nfunction getOrCreateSession(runtime: IAgentRuntime): ElizaSessionState {\n const existing = sessionStateByRuntime.get(runtime);\n if (existing) return existing;\n const created: ElizaSessionState = {\n limit: 1,\n memories: [],\n reassemblyIndex: new Map<string, number>(),\n };\n sessionStateByRuntime.set(runtime, created);\n return created;\n}\n\ntype Token =\n | { kind: \"wildcard\" }\n | { kind: \"literal\"; value: string }\n | { kind: \"alt\"; options: readonly string[] }\n | { kind: \"group\"; groupName: string };\n\nfunction normalizeRawInput(input: string): string {\n return input\n .trim()\n .replace(/[!?;:]+/g, \" \")\n .replace(/[\\u2018\\u2019]/g, \"'\")\n .replace(/\\s+/g, \" \");\n}\n\nfunction tokenizeWords(text: string): string[] {\n const cleaned = normalizeRawInput(text)\n .replace(/[.,\"()]/g, \" \")\n .toLowerCase()\n .replace(/\\s+/g, \" \")\n .trim();\n if (!cleaned) return [];\n const canonicalizationKeys = new Set([\"dont\", \"cant\", \"wont\", \"dreamed\", \"dreams\", \"mom\", \"dad\"]);\n return cleaned\n .split(\" \")\n .filter((w) => w.length > 0)\n .map((w) =>\n canonicalizationKeys.has(w) ? (substitutions[w] ?? script.reflections[w] ?? w) : w\n );\n}\n\nfunction reflectWords(words: readonly string[]): string[] {\n return words.map((w) => script.reflections[w] ?? w);\n}\n\nfunction reflectText(text: string): string {\n return reflectWords(tokenizeWords(text)).join(\" \");\n}\n\nfunction substituteWordsForMatching(words: readonly string[]): string[] {\n // Approximate classic keyword substitutions. `doctor.json` encodes the script's \"=\" substitutions\n // via `reflections` values (e.g. \"my\" -> \"your\", \"you're\" -> \"I am\").\n // We apply these substitutions for matching (not for keyword scanning), and normalize to lowercase.\n const out: string[] = [];\n for (const w of words) {\n const mapped = substitutions[w] ?? script.reflections[w];\n if (!mapped) {\n out.push(w.toLowerCase());\n continue;\n }\n\n const parts = mapped\n .toLowerCase()\n .split(/\\s+/g)\n .filter((p) => p.length > 0);\n\n if (parts.length === 0) out.push(w.toLowerCase());\n else out.push(...parts);\n }\n return out;\n}\n\nfunction tokenizeForScan(input: string): string[] {\n // Keep ',' and '.' as clause delimiters, and treat 'but' as a delimiter word.\n const cleaned = normalizeRawInput(input)\n .replace(/[.,]/g, \" | \")\n .replace(/[\"()]/g, \" \")\n .toLowerCase()\n .replace(/\\s+/g, \" \")\n .trim();\n if (!cleaned) return [];\n const canonicalizationKeys = new Set([\"dont\", \"cant\", \"wont\", \"dreamed\", \"dreams\", \"mom\", \"dad\"]);\n return cleaned\n .split(\" \")\n .filter((w) => w.length > 0)\n .map((w) =>\n canonicalizationKeys.has(w) ? (substitutions[w] ?? script.reflections[w] ?? w) : w\n );\n}\n\nfunction splitIntoClauses(words: readonly string[]): string[][] {\n const clauses: string[][] = [];\n let current: string[] = [];\n\n for (const w of words) {\n if (w === \"|\" || w === \"but\") {\n if (current.length > 0) clauses.push(current);\n current = [];\n continue;\n }\n current.push(w);\n }\n if (current.length > 0) clauses.push(current);\n return clauses;\n}\n\nfunction buildKeywordIndex(keywords: readonly ElizaKeywordEntry[]): Map<string, ElizaKeywordEntry> {\n const map = new Map<string, ElizaKeywordEntry>();\n for (const entry of keywords) {\n for (const k of entry.keyword) {\n map.set(k.toLowerCase(), entry);\n }\n }\n return map;\n}\n\nconst keywordIndex = buildKeywordIndex(script.keywords);\n\ninterface FoundKeyword {\n entry: ElizaKeywordEntry;\n keyword: string;\n position: number;\n}\n\nfunction findKeywordsInClause(words: readonly string[]): FoundKeyword[] {\n const found: FoundKeyword[] = [];\n for (let i = 0; i < words.length; i++) {\n const w = words[i];\n const entry = keywordIndex.get(w);\n if (!entry) continue;\n found.push({ entry, keyword: w, position: i });\n }\n return found;\n}\n\nfunction selectKeywordStack(words: readonly string[]): {\n stack: FoundKeyword[];\n clauseWords: string[];\n} {\n // Recreate keyword-stack behavior: choose best clause (left-to-right) that contains any keyword,\n // then order by precedence desc, tie-break by earliest position.\n const clauses = splitIntoClauses(words);\n for (const clause of clauses) {\n const found = findKeywordsInClause(clause);\n if (found.length === 0) continue;\n const stack = [...found].sort((a, b) => {\n if (b.entry.precedence !== a.entry.precedence) return b.entry.precedence - a.entry.precedence;\n return a.position - b.position;\n });\n return { stack, clauseWords: clause };\n }\n return { stack: [], clauseWords: [] };\n}\n\nfunction parseDecomposition(pattern: string): Token[] {\n // Pattern language used by doctor.json:\n // - \"*\" wildcard (matches 0+ words)\n // - \"[a b c]\" one-of alternatives\n // - \"@group\" group reference (e.g. @belief)\n // - otherwise: literal word\n const raw = pattern.trim().replace(/\\s+/g, \" \").toLowerCase();\n if (!raw) return [];\n\n const tokens: Token[] = [];\n let i = 0;\n while (i < raw.length) {\n while (i < raw.length && raw[i] === \" \") i++;\n if (i >= raw.length) break;\n\n const ch = raw[i];\n if (ch === \"*\") {\n tokens.push({ kind: \"wildcard\" });\n i++;\n continue;\n }\n if (ch === \"@\") {\n let j = i + 1;\n while (j < raw.length && raw[j] !== \" \") j++;\n const groupName = raw.slice(i + 1, j).trim();\n if (groupName.length > 0) tokens.push({ kind: \"group\", groupName });\n i = j;\n continue;\n }\n if (ch === \"[\") {\n const close = raw.indexOf(\"]\", i + 1);\n if (close === -1) {\n // Malformed; treat the rest as literal.\n const rest = raw.slice(i).trim();\n if (rest.length > 0) tokens.push({ kind: \"literal\", value: rest });\n break;\n }\n const inside = raw.slice(i + 1, close).trim();\n const options = inside.length > 0 ? inside.split(/\\s+/g) : [];\n tokens.push({ kind: \"alt\", options });\n i = close + 1;\n continue;\n }\n\n // literal word\n let j = i;\n while (j < raw.length && raw[j] !== \" \") j++;\n const word = raw.slice(i, j).trim();\n if (word.length > 0) tokens.push({ kind: \"literal\", value: word });\n i = j;\n }\n return tokens;\n}\n\nfunction tokenMatchesWord(token: Token, word: string): boolean {\n if (token.kind === \"literal\") return token.value === word;\n if (token.kind === \"alt\") return token.options.includes(word);\n if (token.kind === \"group\") {\n const groupWords = script.groups[token.groupName];\n if (!groupWords) return false;\n return groupWords.includes(word);\n }\n return false;\n}\n\ninterface MatchResult {\n /** Parts aligned to pattern tokens, 1-indexed in reassembly strings as $1, $2... */\n parts: string[];\n}\n\nfunction matchDecomposition(\n tokens: readonly Token[],\n words: readonly string[]\n): MatchResult | null {\n // Backtracking match for wildcard \"*\" tokens.\n // We produce `parts` array where parts[i] is the matched text for tokens[i].\n const parts: string[] = new Array(tokens.length).fill(\"\");\n\n function backtrack(ti: number, wi: number): boolean {\n if (ti === tokens.length) return wi === words.length;\n\n const token = tokens[ti];\n if (token.kind === \"wildcard\") {\n // Try minimal to maximal consumption.\n for (let end = wi; end <= words.length; end++) {\n parts[ti] = words.slice(wi, end).join(\" \").trim();\n if (backtrack(ti + 1, end)) return true;\n }\n return false;\n }\n\n if (wi >= words.length) return false;\n const w = words[wi];\n if (!tokenMatchesWord(token, w)) return false;\n\n parts[ti] = w;\n return backtrack(ti + 1, wi + 1);\n }\n\n if (!backtrack(0, 0)) return null;\n return { parts };\n}\n\nfunction applyReassembly(template: string, parts: readonly string[]): string {\n // Replace $N with reflected part N (1-indexed).\n return template.replace(/\\$(\\d+)/g, (_m, nRaw: string) => {\n const n = Number.parseInt(nRaw, 10);\n if (!Number.isFinite(n) || n <= 0) return \"\";\n const part = parts[n - 1] ?? \"\";\n return reflectText(part);\n });\n}\n\nfunction stableKeyForRule(keyword: string, rule: ElizaScriptRule, ruleIndex: number): string {\n return `${keyword}::${ruleIndex}::${rule.decomposition}`;\n}\n\nfunction pickNextReassembly(\n session: ElizaSessionState,\n keyword: string,\n rule: ElizaScriptRule,\n ruleIndex: number\n): string {\n const key = stableKeyForRule(keyword, rule, ruleIndex);\n const current = session.reassemblyIndex.get(key) ?? 0;\n const idx = current % rule.reassembly.length;\n session.reassemblyIndex.set(key, (current + 1) % Math.max(1, rule.reassembly.length));\n return rule.reassembly[idx] ?? \"\";\n}\n\nfunction computeWordHash(word: string): number {\n // Deterministic small hash (not SLIP HASH, but stable enough for memory rule selection).\n let h = 0;\n for (let i = 0; i < word.length; i++) {\n h = (h * 31 + word.charCodeAt(i)) >>> 0;\n }\n return h;\n}\n\nfunction chooseDefaultResponse(session: ElizaSessionState): string {\n if (session.limit === 4 && session.memories.length > 0) {\n const m = session.memories.shift();\n if (m) return m;\n }\n // Cycle through NONE/default like classic: doctor.json provides the NONE list as `default`.\n const idx = (session.reassemblyIndex.get(\"__default__\") ?? 0) % script.default.length;\n session.reassemblyIndex.set(\"__default__\", idx + 1);\n return script.default[idx] ?? script.default[0] ?? \"Please go on.\";\n}\n\nfunction isGoodbye(words: readonly string[]): boolean {\n if (words.length === 0) return false;\n const first = words[0];\n return script.goodbyes.some((g) => tokenizeWords(g)[0] === first);\n}\n\nfunction resolveRedirectKeyword(s: string): string | null {\n const trimmed = s.trim();\n if (!trimmed.startsWith(\"=\")) return null;\n const k = trimmed.slice(1).trim().toLowerCase();\n return k.length > 0 ? k : null;\n}\n\nfunction parsePreDirective(s: string): { preText: string; redirect: string } | null {\n // Format: \":pre <text> (=keyword)\"\n const m = s.trim().match(/^:pre\\s+(.+?)\\s+\\(=\\s*([^)]+)\\s*\\)\\s*$/i);\n if (!m) return null;\n const preText = m[1]?.trim() ?? \"\";\n const redirect = m[2]?.trim().toLowerCase() ?? \"\";\n if (!preText || !redirect) return null;\n return { preText, redirect };\n}\n\nfunction isNewKeyDirective(s: string): boolean {\n return s.trim().toLowerCase() === \":newkey\" || s.trim().toLowerCase() === \"newkey\";\n}\n\ntype RuleEvalResult =\n | { kind: \"no_match\" }\n | { kind: \"newkey\" }\n | { kind: \"redirect\"; keyword: string }\n | { kind: \"pre\"; preText: string; redirect: string; parts: readonly string[] }\n | { kind: \"response\"; text: string };\n\nfunction tryRulesForKeyword(\n session: ElizaSessionState,\n keyword: string,\n entry: ElizaKeywordEntry,\n words: readonly string[]\n): RuleEvalResult {\n for (let i = 0; i < entry.rules.length; i++) {\n const rule = entry.rules[i];\n const tokens = parseDecomposition(rule.decomposition);\n const match = matchDecomposition(tokens, words);\n if (!match) continue;\n\n const picked = pickNextReassembly(session, keyword, rule, i);\n if (isNewKeyDirective(picked)) return { kind: \"newkey\" };\n\n const pre = parsePreDirective(picked);\n if (pre)\n return { kind: \"pre\", preText: pre.preText, redirect: pre.redirect, parts: match.parts };\n\n const redirect = resolveRedirectKeyword(picked);\n if (redirect) return { kind: \"redirect\", keyword: redirect };\n\n return {\n kind: \"response\",\n text: applyReassembly(picked, match.parts).replace(/\\s+/g, \" \").trim(),\n };\n }\n return { kind: \"no_match\" };\n}\n\nfunction maybeRecordMemory(\n session: ElizaSessionState,\n entry: ElizaKeywordEntry,\n words: readonly string[]\n): void {\n const memoryRules = entry.memory;\n if (!memoryRules || memoryRules.length === 0) return;\n const last = words.length > 0 ? words[words.length - 1] : \"\";\n const chosenIdx = computeWordHash(last) % memoryRules.length;\n const chosen = memoryRules[chosenIdx];\n if (!chosen) return;\n\n const tokens = parseDecomposition(chosen.decomposition);\n const match = matchDecomposition(tokens, words);\n if (!match) return;\n\n // In the original script, MEMORY has 4 patterns; in doctor.json it's represented as one rule with 4 reassemblies.\n const responseIdx = computeWordHash(last) % Math.max(1, chosen.reassembly.length);\n const template = chosen.reassembly[responseIdx] ?? chosen.reassembly[0] ?? \"\";\n const response = applyReassembly(template, match.parts).replace(/\\s+/g, \" \").trim();\n if (response.length > 0) session.memories.push(response);\n}\n\nexport function reflect(text: string): string {\n return reflectText(text);\n}\n\nexport function generateElizaResponse(input: string): string;\nexport function generateElizaResponse(runtime: IAgentRuntime, input: string): string;\nexport function generateElizaResponse(arg1: IAgentRuntime | string, arg2?: string): string {\n const runtime = typeof arg1 === \"string\" ? null : arg1;\n const input = typeof arg1 === \"string\" ? arg1 : (arg2 ?? \"\");\n\n const session = runtime ? getOrCreateSession(runtime) : defaultStandaloneSession;\n\n // LIMIT increments each user input (1..4 cycle).\n session.limit = session.limit === 4 ? 1 : ((session.limit + 1) as 2 | 3 | 4);\n\n const scanWords = tokenizeForScan(input);\n const words = tokenizeWords(input);\n if (words.length === 0) return chooseDefaultResponse(session);\n\n if (isGoodbye(words)) {\n return script.goodbyes[0] ?? \"Goodbye.\";\n }\n\n const { stack: keywordStack, clauseWords } = selectKeywordStack(scanWords);\n if (keywordStack.length === 0 || clauseWords.length === 0) {\n return chooseDefaultResponse(session);\n }\n\n const matchWords = substituteWordsForMatching(clauseWords);\n\n // Try keywords in order; NEWKEY forces trying the next one.\n for (const found of keywordStack) {\n maybeRecordMemory(session, found.entry, matchWords);\n const result = tryRulesForKeyword(session, found.keyword, found.entry, matchWords);\n if (result.kind === \"no_match\") continue;\n if (result.kind === \"newkey\") continue;\n\n if (result.kind === \"pre\") {\n const preApplied = applyReassembly(result.preText, result.parts).replace(/\\s+/g, \" \").trim();\n // PRE constructs a new input phrase that should be fed directly into the target keyword's\n // decomposition rules (without additional global substitutions).\n const preWords = tokenizeWords(preApplied);\n const redirectedEntry = keywordIndex.get(result.redirect);\n if (!redirectedEntry) continue;\n const redirected = tryRulesForKeyword(session, result.redirect, redirectedEntry, preWords);\n if (redirected.kind === \"response\") return redirected.text;\n continue;\n }\n\n if (result.kind === \"redirect\") {\n const redirectedEntry = keywordIndex.get(result.keyword);\n if (!redirectedEntry) continue;\n const redirected = tryRulesForKeyword(session, result.keyword, redirectedEntry, matchWords);\n if (redirected.kind === \"response\") return redirected.text;\n continue;\n }\n\n if (result.kind === \"response\") return result.text;\n }\n\n return chooseDefaultResponse(session);\n}\n\nexport function getElizaGreeting(): string {\n return (\n script.greetings[1] ?? script.greetings[0] ?? \"How do you do. Please tell me your problem.\"\n );\n}\n\nfunction extractUserMessage(prompt: string): string {\n const match = prompt.match(/(?:User|Human|You):\\s*(.+?)(?:\\n|$)/i);\n return match ? match[1].trim() : prompt.trim();\n}\n\nexport async function handleTextLarge(\n _runtime: IAgentRuntime,\n params: GenerateTextParams\n): Promise<string> {\n const input = extractUserMessage(params.prompt);\n return generateElizaResponse(_runtime, input);\n}\n\nexport async function handleTextSmall(\n runtime: IAgentRuntime,\n params: GenerateTextParams\n): Promise<string> {\n return handleTextLarge(runtime, params);\n}\n",
|
|
5
|
+
"import type { GenerateTextParams, IAgentRuntime } from \"@elizaos/core\";\nimport doctorScript from \"../../shared/doctor.json\";\nimport type {\n ElizaDoctorJson,\n ElizaKeywordEntry,\n ElizaScriptRule,\n ElizaSessionState,\n} from \"../types\";\n\nconst script = doctorScript as ElizaDoctorJson;\nconst substitutions = script.substitutions ?? {};\n\nconst sessionStateByRuntime = new WeakMap<IAgentRuntime, ElizaSessionState>();\nconst defaultStandaloneSession: ElizaSessionState = {\n limit: 1,\n memories: [],\n reassemblyIndex: new Map<string, number>(),\n};\n\nfunction getOrCreateSession(runtime: IAgentRuntime): ElizaSessionState {\n const existing = sessionStateByRuntime.get(runtime);\n if (existing) return existing;\n const created: ElizaSessionState = {\n limit: 1,\n memories: [],\n reassemblyIndex: new Map<string, number>(),\n };\n sessionStateByRuntime.set(runtime, created);\n return created;\n}\n\ntype Token =\n | { kind: \"wildcard\" }\n | { kind: \"literal\"; value: string }\n | { kind: \"alt\"; options: readonly string[] }\n | { kind: \"group\"; groupName: string };\n\nfunction normalizeRawInput(input: string): string {\n return input\n .trim()\n .replace(/[!?;:]+/g, \" \")\n .replace(/[\\u2018\\u2019]/g, \"'\")\n .replace(/\\s+/g, \" \");\n}\n\nfunction tokenizeWords(text: string): string[] {\n const cleaned = normalizeRawInput(text)\n .replace(/[.,\"()]/g, \" \")\n .toLowerCase()\n .replace(/\\s+/g, \" \")\n .trim();\n if (!cleaned) return [];\n const canonicalizationKeys = new Set([\"dont\", \"cant\", \"wont\", \"dreamed\", \"dreams\", \"mom\", \"dad\"]);\n return cleaned\n .split(\" \")\n .filter((w) => w.length > 0)\n .map((w) =>\n canonicalizationKeys.has(w) ? (substitutions[w] ?? script.reflections[w] ?? w) : w\n );\n}\n\nfunction reflectWords(words: readonly string[]): string[] {\n return words.map((w) => script.reflections[w] ?? w);\n}\n\nfunction reflectText(text: string): string {\n return reflectWords(tokenizeWords(text)).join(\" \");\n}\n\nfunction substituteWordsForMatching(words: readonly string[]): string[] {\n // Approximate classic keyword substitutions. `doctor.json` encodes the script's \"=\" substitutions\n // via `reflections` values (e.g. \"my\" -> \"your\", \"you're\" -> \"I am\").\n // We apply these substitutions for matching (not for keyword scanning), and normalize to lowercase.\n const out: string[] = [];\n for (const w of words) {\n const mapped = substitutions[w] ?? script.reflections[w];\n if (!mapped) {\n out.push(w.toLowerCase());\n continue;\n }\n\n const parts = mapped\n .toLowerCase()\n .split(/\\s+/g)\n .filter((p) => p.length > 0);\n\n if (parts.length === 0) out.push(w.toLowerCase());\n else out.push(...parts);\n }\n return out;\n}\n\nfunction tokenizeForScan(input: string): string[] {\n // Keep ',' and '.' as clause delimiters, and treat 'but' as a delimiter word.\n const cleaned = normalizeRawInput(input)\n .replace(/[.,]/g, \" | \")\n .replace(/[\"()]/g, \" \")\n .toLowerCase()\n .replace(/\\s+/g, \" \")\n .trim();\n if (!cleaned) return [];\n const canonicalizationKeys = new Set([\"dont\", \"cant\", \"wont\", \"dreamed\", \"dreams\", \"mom\", \"dad\"]);\n return cleaned\n .split(\" \")\n .filter((w) => w.length > 0)\n .map((w) =>\n canonicalizationKeys.has(w) ? (substitutions[w] ?? script.reflections[w] ?? w) : w\n );\n}\n\nfunction splitIntoClauses(words: readonly string[]): string[][] {\n const clauses: string[][] = [];\n let current: string[] = [];\n\n for (const w of words) {\n if (w === \"|\" || w === \"but\") {\n if (current.length > 0) clauses.push(current);\n current = [];\n continue;\n }\n current.push(w);\n }\n if (current.length > 0) clauses.push(current);\n return clauses;\n}\n\nfunction buildKeywordIndex(keywords: readonly ElizaKeywordEntry[]): Map<string, ElizaKeywordEntry> {\n const map = new Map<string, ElizaKeywordEntry>();\n for (const entry of keywords) {\n for (const k of entry.keyword) {\n map.set(k.toLowerCase(), entry);\n }\n }\n return map;\n}\n\nconst keywordIndex = buildKeywordIndex(script.keywords);\n\ninterface FoundKeyword {\n entry: ElizaKeywordEntry;\n keyword: string;\n position: number;\n}\n\nfunction findKeywordsInClause(words: readonly string[]): FoundKeyword[] {\n const found: FoundKeyword[] = [];\n for (let i = 0; i < words.length; i++) {\n const w = words[i];\n const entry = keywordIndex.get(w);\n if (!entry) continue;\n found.push({ entry, keyword: w, position: i });\n }\n return found;\n}\n\nfunction selectKeywordStack(words: readonly string[]): {\n stack: FoundKeyword[];\n clauseWords: string[];\n} {\n // Recreate keyword-stack behavior: choose best clause (left-to-right) that contains any keyword,\n // then order by precedence desc, tie-break by earliest position.\n const clauses = splitIntoClauses(words);\n for (const clause of clauses) {\n const found = findKeywordsInClause(clause);\n if (found.length === 0) continue;\n const stack = [...found].sort((a, b) => {\n if (b.entry.precedence !== a.entry.precedence) return b.entry.precedence - a.entry.precedence;\n return a.position - b.position;\n });\n return { stack, clauseWords: clause };\n }\n return { stack: [], clauseWords: [] };\n}\n\nfunction parseDecomposition(pattern: string): Token[] {\n // Pattern language used by doctor.json:\n // - \"*\" wildcard (matches 0+ words)\n // - \"[a b c]\" one-of alternatives\n // - \"@group\" group reference (e.g. @belief)\n // - otherwise: literal word\n const raw = pattern.trim().replace(/\\s+/g, \" \").toLowerCase();\n if (!raw) return [];\n\n const tokens: Token[] = [];\n let i = 0;\n while (i < raw.length) {\n while (i < raw.length && raw[i] === \" \") i++;\n if (i >= raw.length) break;\n\n const ch = raw[i];\n if (ch === \"*\") {\n tokens.push({ kind: \"wildcard\" });\n i++;\n continue;\n }\n if (ch === \"@\") {\n let j = i + 1;\n while (j < raw.length && raw[j] !== \" \") j++;\n const groupName = raw.slice(i + 1, j).trim();\n if (groupName.length > 0) tokens.push({ kind: \"group\", groupName });\n i = j;\n continue;\n }\n if (ch === \"[\") {\n const close = raw.indexOf(\"]\", i + 1);\n if (close === -1) {\n // Malformed; treat the rest as literal.\n const rest = raw.slice(i).trim();\n if (rest.length > 0) tokens.push({ kind: \"literal\", value: rest });\n break;\n }\n const inside = raw.slice(i + 1, close).trim();\n const options = inside.length > 0 ? inside.split(/\\s+/g) : [];\n tokens.push({ kind: \"alt\", options });\n i = close + 1;\n continue;\n }\n\n // literal word\n let j = i;\n while (j < raw.length && raw[j] !== \" \") j++;\n const word = raw.slice(i, j).trim();\n if (word.length > 0) tokens.push({ kind: \"literal\", value: word });\n i = j;\n }\n return tokens;\n}\n\nfunction tokenMatchesWord(token: Token, word: string): boolean {\n if (token.kind === \"literal\") return token.value === word;\n if (token.kind === \"alt\") return token.options.includes(word);\n if (token.kind === \"group\") {\n const groupWords = script.groups[token.groupName];\n if (!groupWords) return false;\n return groupWords.includes(word);\n }\n return false;\n}\n\ninterface MatchResult {\n /** Parts aligned to pattern tokens, 1-indexed in reassembly strings as $1, $2... */\n parts: string[];\n}\n\nfunction matchDecomposition(\n tokens: readonly Token[],\n words: readonly string[]\n): MatchResult | null {\n // Backtracking match for wildcard \"*\" tokens.\n // We produce `parts` array where parts[i] is the matched text for tokens[i].\n const parts: string[] = new Array(tokens.length).fill(\"\");\n\n function backtrack(ti: number, wi: number): boolean {\n if (ti === tokens.length) return wi === words.length;\n\n const token = tokens[ti];\n if (token.kind === \"wildcard\") {\n // Try minimal to maximal consumption.\n for (let end = wi; end <= words.length; end++) {\n parts[ti] = words.slice(wi, end).join(\" \").trim();\n if (backtrack(ti + 1, end)) return true;\n }\n return false;\n }\n\n if (wi >= words.length) return false;\n const w = words[wi];\n if (!tokenMatchesWord(token, w)) return false;\n\n parts[ti] = w;\n return backtrack(ti + 1, wi + 1);\n }\n\n if (!backtrack(0, 0)) return null;\n return { parts };\n}\n\nfunction applyReassembly(template: string, parts: readonly string[]): string {\n // Replace $N with reflected part N (1-indexed).\n return template.replace(/\\$(\\d+)/g, (_m, nRaw: string) => {\n const n = Number.parseInt(nRaw, 10);\n if (!Number.isFinite(n) || n <= 0) return \"\";\n const part = parts[n - 1] ?? \"\";\n return reflectText(part);\n });\n}\n\nfunction stableKeyForRule(keyword: string, rule: ElizaScriptRule, ruleIndex: number): string {\n return `${keyword}::${ruleIndex}::${rule.decomposition}`;\n}\n\nfunction pickNextReassembly(\n session: ElizaSessionState,\n keyword: string,\n rule: ElizaScriptRule,\n ruleIndex: number\n): string {\n const key = stableKeyForRule(keyword, rule, ruleIndex);\n const current = session.reassemblyIndex.get(key) ?? 0;\n const idx = current % rule.reassembly.length;\n session.reassemblyIndex.set(key, (current + 1) % Math.max(1, rule.reassembly.length));\n return rule.reassembly[idx] ?? \"\";\n}\n\nfunction computeWordHash(word: string): number {\n // Deterministic small hash (not SLIP HASH, but stable enough for memory rule selection).\n let h = 0;\n for (let i = 0; i < word.length; i++) {\n h = (h * 31 + word.charCodeAt(i)) >>> 0;\n }\n return h;\n}\n\nfunction chooseDefaultResponse(session: ElizaSessionState): string {\n if (session.limit === 4 && session.memories.length > 0) {\n const m = session.memories.shift();\n if (m) return m;\n }\n // Cycle through NONE/default like classic: doctor.json provides the NONE list as `default`.\n const idx = (session.reassemblyIndex.get(\"__default__\") ?? 0) % script.default.length;\n session.reassemblyIndex.set(\"__default__\", idx + 1);\n return script.default[idx] ?? script.default[0] ?? \"Please go on.\";\n}\n\nfunction isGoodbye(words: readonly string[]): boolean {\n if (words.length === 0) return false;\n const first = words[0];\n return script.goodbyes.some((g) => tokenizeWords(g)[0] === first);\n}\n\nfunction resolveRedirectKeyword(s: string): string | null {\n const trimmed = s.trim();\n if (!trimmed.startsWith(\"=\")) return null;\n const k = trimmed.slice(1).trim().toLowerCase();\n return k.length > 0 ? k : null;\n}\n\nfunction parsePreDirective(s: string): { preText: string; redirect: string } | null {\n // Format: \":pre <text> (=keyword)\"\n const m = s.trim().match(/^:pre\\s+(.+?)\\s+\\(=\\s*([^)]+)\\s*\\)\\s*$/i);\n if (!m) return null;\n const preText = m[1]?.trim() ?? \"\";\n const redirect = m[2]?.trim().toLowerCase() ?? \"\";\n if (!preText || !redirect) return null;\n return { preText, redirect };\n}\n\nfunction isNewKeyDirective(s: string): boolean {\n return s.trim().toLowerCase() === \":newkey\" || s.trim().toLowerCase() === \"newkey\";\n}\n\ntype RuleEvalResult =\n | { kind: \"no_match\" }\n | { kind: \"newkey\" }\n | { kind: \"redirect\"; keyword: string }\n | { kind: \"pre\"; preText: string; redirect: string; parts: readonly string[] }\n | { kind: \"response\"; text: string };\n\nfunction tryRulesForKeyword(\n session: ElizaSessionState,\n keyword: string,\n entry: ElizaKeywordEntry,\n words: readonly string[]\n): RuleEvalResult {\n for (let i = 0; i < entry.rules.length; i++) {\n const rule = entry.rules[i];\n const tokens = parseDecomposition(rule.decomposition);\n const match = matchDecomposition(tokens, words);\n if (!match) continue;\n\n const picked = pickNextReassembly(session, keyword, rule, i);\n if (isNewKeyDirective(picked)) return { kind: \"newkey\" };\n\n const pre = parsePreDirective(picked);\n if (pre)\n return {\n kind: \"pre\",\n preText: pre.preText,\n redirect: pre.redirect,\n parts: match.parts,\n };\n\n const redirect = resolveRedirectKeyword(picked);\n if (redirect) return { kind: \"redirect\", keyword: redirect };\n\n return {\n kind: \"response\",\n text: applyReassembly(picked, match.parts).replace(/\\s+/g, \" \").trim(),\n };\n }\n return { kind: \"no_match\" };\n}\n\nfunction maybeRecordMemory(\n session: ElizaSessionState,\n entry: ElizaKeywordEntry,\n words: readonly string[]\n): void {\n const memoryRules = entry.memory;\n if (!memoryRules || memoryRules.length === 0) return;\n const last = words.length > 0 ? words[words.length - 1] : \"\";\n const chosenIdx = computeWordHash(last) % memoryRules.length;\n const chosen = memoryRules[chosenIdx];\n if (!chosen) return;\n\n const tokens = parseDecomposition(chosen.decomposition);\n const match = matchDecomposition(tokens, words);\n if (!match) return;\n\n // In the original script, MEMORY has 4 patterns; in doctor.json it's represented as one rule with 4 reassemblies.\n const responseIdx = computeWordHash(last) % Math.max(1, chosen.reassembly.length);\n const template = chosen.reassembly[responseIdx] ?? chosen.reassembly[0] ?? \"\";\n const response = applyReassembly(template, match.parts).replace(/\\s+/g, \" \").trim();\n if (response.length > 0) session.memories.push(response);\n}\n\nexport function reflect(text: string): string {\n return reflectText(text);\n}\n\nexport function generateElizaResponse(input: string): string;\nexport function generateElizaResponse(runtime: IAgentRuntime, input: string): string;\nexport function generateElizaResponse(arg1: IAgentRuntime | string, arg2?: string): string {\n const runtime = typeof arg1 === \"string\" ? null : arg1;\n const input = typeof arg1 === \"string\" ? arg1 : (arg2 ?? \"\");\n\n const session = runtime ? getOrCreateSession(runtime) : defaultStandaloneSession;\n\n // LIMIT increments each user input (1..4 cycle).\n session.limit = session.limit === 4 ? 1 : ((session.limit + 1) as 2 | 3 | 4);\n\n const scanWords = tokenizeForScan(input);\n const words = tokenizeWords(input);\n if (words.length === 0) return chooseDefaultResponse(session);\n\n if (isGoodbye(words)) {\n return script.goodbyes[0] ?? \"Goodbye.\";\n }\n\n const { stack: keywordStack, clauseWords } = selectKeywordStack(scanWords);\n if (keywordStack.length === 0 || clauseWords.length === 0) {\n return chooseDefaultResponse(session);\n }\n\n const matchWords = substituteWordsForMatching(clauseWords);\n\n // Try keywords in order; NEWKEY forces trying the next one.\n for (const found of keywordStack) {\n maybeRecordMemory(session, found.entry, matchWords);\n const result = tryRulesForKeyword(session, found.keyword, found.entry, matchWords);\n if (result.kind === \"no_match\") continue;\n if (result.kind === \"newkey\") continue;\n\n if (result.kind === \"pre\") {\n const preApplied = applyReassembly(result.preText, result.parts).replace(/\\s+/g, \" \").trim();\n // PRE constructs a new input phrase that should be fed directly into the target keyword's\n // decomposition rules (without additional global substitutions).\n const preWords = tokenizeWords(preApplied);\n const redirectedEntry = keywordIndex.get(result.redirect);\n if (!redirectedEntry) continue;\n const redirected = tryRulesForKeyword(session, result.redirect, redirectedEntry, preWords);\n if (redirected.kind === \"response\") return redirected.text;\n continue;\n }\n\n if (result.kind === \"redirect\") {\n const redirectedEntry = keywordIndex.get(result.keyword);\n if (!redirectedEntry) continue;\n const redirected = tryRulesForKeyword(session, result.keyword, redirectedEntry, matchWords);\n if (redirected.kind === \"response\") return redirected.text;\n continue;\n }\n\n if (result.kind === \"response\") return result.text;\n }\n\n return chooseDefaultResponse(session);\n}\n\nexport function getElizaGreeting(): string {\n return (\n script.greetings[1] ?? script.greetings[0] ?? \"How do you do. Please tell me your problem.\"\n );\n}\n\nfunction extractUserMessage(prompt: string): string {\n const match = prompt.match(/(?:User|Human|You):\\s*(.+?)(?:\\n|$)/i);\n return match ? match[1].trim() : prompt.trim();\n}\n\nexport async function handleTextLarge(\n _runtime: IAgentRuntime,\n params: GenerateTextParams\n): Promise<string> {\n const input = extractUserMessage(params.prompt);\n return generateElizaResponse(_runtime, input);\n}\n\nexport async function handleTextSmall(\n runtime: IAgentRuntime,\n params: GenerateTextParams\n): Promise<string> {\n return handleTextLarge(runtime, params);\n}\n",
|
|
6
6
|
"import type { GenerateTextParams, IAgentRuntime, Plugin } from \"@elizaos/core\";\nimport { logger, ModelType } from \"@elizaos/core\";\nimport { generateResponseAction } from \"./actions\";\nimport { handleTextLarge, handleTextSmall } from \"./models\";\nimport { elizaGreetingProvider } from \"./providers\";\n\nexport const elizaClassicPlugin: Plugin = {\n name: \"eliza-classic\",\n description: \"Classic ELIZA pattern matching psychotherapist - no LLM required\",\n priority: 100,\n\n actions: [generateResponseAction],\n providers: [elizaGreetingProvider],\n\n models: {\n [ModelType.TEXT_LARGE]: async (\n runtime: IAgentRuntime,\n params: GenerateTextParams\n ): Promise<string> => {\n return handleTextLarge(runtime, params);\n },\n\n [ModelType.TEXT_SMALL]: async (\n runtime: IAgentRuntime,\n params: GenerateTextParams\n ): Promise<string> => {\n return handleTextSmall(runtime, params);\n },\n },\n\n async init(_config, _runtime) {\n logger.info({ src: \"plugin:eliza-classic\" }, \"ELIZA pattern matching initialized\");\n },\n\n tests: [\n {\n name: \"eliza_classic_plugin_tests\",\n tests: [\n {\n name: \"eliza_test_greeting\",\n fn: async (runtime: IAgentRuntime): Promise<void> => {\n const response = await runtime.useModel(ModelType.TEXT_LARGE, {\n prompt: \"hello\",\n });\n\n if (typeof response !== \"string\" || response.length === 0) {\n throw new Error(\"Greeting should return non-empty string\");\n }\n\n logger.info(`[ELIZA Test] Greeting: \"${response}\"`);\n },\n },\n {\n name: \"eliza_test_feeling_sad\",\n fn: async (runtime: IAgentRuntime): Promise<void> => {\n const response = await runtime.useModel(ModelType.TEXT_LARGE, {\n prompt: \"I am sad today\",\n });\n\n if (typeof response !== \"string\" || response.length === 0) {\n throw new Error(\"Response should be non-empty string\");\n }\n\n logger.info(`[ELIZA Test] Sad response: \"${response}\"`);\n },\n },\n {\n name: \"eliza_test_family\",\n fn: async (runtime: IAgentRuntime): Promise<void> => {\n const response = await runtime.useModel(ModelType.TEXT_LARGE, {\n prompt: \"My mother is very kind\",\n });\n\n if (typeof response !== \"string\" || response.length === 0) {\n throw new Error(\"Response should be non-empty string\");\n }\n\n logger.info(`[ELIZA Test] Family response: \"${response}\"`);\n },\n },\n {\n name: \"eliza_test_computer\",\n fn: async (runtime: IAgentRuntime): Promise<void> => {\n const response = await runtime.useModel(ModelType.TEXT_LARGE, {\n prompt: \"I think computers are fascinating\",\n });\n\n if (typeof response !== \"string\" || response.length === 0) {\n throw new Error(\"Response should be non-empty string\");\n }\n\n logger.info(`[ELIZA Test] Computer response: \"${response}\"`);\n },\n },\n {\n name: \"eliza_test_text_small\",\n fn: async (runtime: IAgentRuntime): Promise<void> => {\n const response = await runtime.useModel(ModelType.TEXT_SMALL, {\n prompt: \"Can you help me?\",\n });\n\n if (typeof response !== \"string\" || response.length === 0) {\n throw new Error(\"TEXT_SMALL should return non-empty string\");\n }\n\n logger.info(`[ELIZA Test] TEXT_SMALL: \"${response}\"`);\n },\n },\n ],\n },\n ],\n};\n\nexport default elizaClassicPlugin;\n",
|
|
7
|
-
"import type {\n Action,\n ActionExample,\n ActionResult,\n HandlerCallback,\n HandlerOptions,\n IAgentRuntime,\n Memory,\n State,\n} from \"@elizaos/core\";\nimport { ModelType } from \"@elizaos/core\";\nimport { requireActionSpec } from \"../generated/specs/spec-helpers\";\n\nconst spec = requireActionSpec(\"generate-response\");\n\nexport const generateResponseAction: Action = {\n name: spec.name,\n similes: spec.similes ? [...spec.similes] : [],\n description: spec.description,\n
|
|
7
|
+
"import type {\n Action,\n ActionExample,\n ActionResult,\n HandlerCallback,\n HandlerOptions,\n IAgentRuntime,\n Memory,\n State,\n} from \"@elizaos/core\";\nimport { ModelType } from \"@elizaos/core\";\nimport { requireActionSpec } from \"../generated/specs/spec-helpers\";\n\nconst spec = requireActionSpec(\"generate-response\");\n\nexport const generateResponseAction: Action = {\n name: spec.name,\n similes: spec.similes ? [...spec.similes] : [],\n description: spec.description,\n validate: async (_runtime: IAgentRuntime, _message: Memory, _state?: State): Promise<boolean> => {\n return true;\n },\n\n handler: async (\n runtime: IAgentRuntime,\n message: Memory,\n _state?: State,\n _options?: HandlerOptions,\n callback?: HandlerCallback\n ): Promise<ActionResult | undefined> => {\n const userInput =\n typeof message.content === \"object\" && message.content !== null\n ? (message.content as { text?: string }).text || \"\"\n : String(message.content || \"\");\n\n if (!userInput.trim()) {\n if (callback) {\n await callback({\n text: \"I need something to respond to. What would you like to talk about?\",\n source: message.content.source,\n });\n }\n return { success: false, error: \"No user input provided\" };\n }\n\n try {\n const response = await runtime.useModel(ModelType.TEXT_LARGE, {\n prompt: userInput,\n });\n\n if (callback) {\n await callback({\n text: response,\n source: message.content.source,\n });\n }\n\n return { success: true, text: response };\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error);\n if (callback) {\n await callback({\n text: \"I encountered an issue. Please try again.\",\n source: message.content.source,\n });\n }\n return { success: false, error: errorMessage };\n }\n },\n\n examples: (spec.examples ?? []) as ActionExample[][],\n};\n\nexport default generateResponseAction;\n",
|
|
8
8
|
"/**\n * Auto-generated canonical action/provider/evaluator docs for plugin-eliza-classic.\n * DO NOT EDIT - Generated from prompts/specs/**.\n */\n\nexport type ActionDoc = {\n name: string;\n description: string;\n similes?: readonly string[];\n parameters?: readonly unknown[];\n examples?: readonly (readonly unknown[])[];\n};\n\nexport type ProviderDoc = {\n name: string;\n description: string;\n position?: number;\n dynamic?: boolean;\n};\n\nexport type EvaluatorDoc = {\n name: string;\n description: string;\n similes?: readonly string[];\n alwaysRun?: boolean;\n examples?: readonly unknown[];\n};\n\nexport const coreActionsSpec = {\n version: \"1.0.0\",\n actions: [\n {\n name: \"generate-response\",\n description: \"Generate an ELIZA response for user input using classic pattern matching.\",\n similes: [\"ELIZA_RESPOND\", \"ELIZA_CHAT\", \"CLASSIC_ELIZA\"],\n parameters: [],\n },\n ],\n} as const;\nexport const allActionsSpec = {\n version: \"1.0.0\",\n actions: [\n {\n name: \"generate-response\",\n description: \"Generate an ELIZA response for user input using classic pattern matching.\",\n similes: [\"ELIZA_RESPOND\", \"ELIZA_CHAT\", \"CLASSIC_ELIZA\"],\n parameters: [],\n },\n ],\n} as const;\nexport const coreProvidersSpec = {\n version: \"1.0.0\",\n providers: [\n {\n name: \"eliza-greeting\",\n description: \"\",\n dynamic: true,\n },\n ],\n} as const;\nexport const allProvidersSpec = {\n version: \"1.0.0\",\n providers: [\n {\n name: \"eliza-greeting\",\n description: \"\",\n dynamic: true,\n },\n ],\n} as const;\nexport const coreEvaluatorsSpec = {\n version: \"1.0.0\",\n evaluators: [],\n} as const;\nexport const allEvaluatorsSpec = {\n version: \"1.0.0\",\n evaluators: [],\n} as const;\n\nexport const coreActionDocs: readonly ActionDoc[] = coreActionsSpec.actions;\nexport const allActionDocs: readonly ActionDoc[] = allActionsSpec.actions;\nexport const coreProviderDocs: readonly ProviderDoc[] = coreProvidersSpec.providers;\nexport const allProviderDocs: readonly ProviderDoc[] = allProvidersSpec.providers;\nexport const coreEvaluatorDocs: readonly EvaluatorDoc[] = coreEvaluatorsSpec.evaluators;\nexport const allEvaluatorDocs: readonly EvaluatorDoc[] = allEvaluatorsSpec.evaluators;\n",
|
|
9
9
|
"/**\n * Helper functions to lookup action/provider/evaluator specs by name.\n * These allow language-specific implementations to import their text content\n * (description, similes, examples) from the centralized specs.\n *\n * DO NOT EDIT the spec data - update prompts/actions.json, prompts/providers.json, prompts/evaluators.json and regenerate.\n */\n\nimport {\n type ActionDoc,\n allActionDocs,\n allEvaluatorDocs,\n allProviderDocs,\n coreActionDocs,\n coreEvaluatorDocs,\n coreProviderDocs,\n type EvaluatorDoc,\n type ProviderDoc,\n} from \"./specs\";\n\n// Build lookup maps for O(1) access\nconst coreActionMap = new Map<string, ActionDoc>(coreActionDocs.map((doc) => [doc.name, doc]));\nconst allActionMap = new Map<string, ActionDoc>(allActionDocs.map((doc) => [doc.name, doc]));\nconst coreProviderMap = new Map<string, ProviderDoc>(\n coreProviderDocs.map((doc) => [doc.name, doc])\n);\nconst allProviderMap = new Map<string, ProviderDoc>(allProviderDocs.map((doc) => [doc.name, doc]));\nconst coreEvaluatorMap = new Map<string, EvaluatorDoc>(\n coreEvaluatorDocs.map((doc) => [doc.name, doc])\n);\nconst allEvaluatorMap = new Map<string, EvaluatorDoc>(\n allEvaluatorDocs.map((doc) => [doc.name, doc])\n);\n\n/**\n * Get an action spec by name from the core specs.\n * @param name - The action name\n * @returns The action spec or undefined if not found\n */\nexport function getActionSpec(name: string): ActionDoc | undefined {\n return coreActionMap.get(name) ?? allActionMap.get(name);\n}\n\n/**\n * Get an action spec by name, throwing if not found.\n * @param name - The action name\n * @returns The action spec\n * @throws Error if the action is not found\n */\nexport function requireActionSpec(name: string): ActionDoc {\n const spec = getActionSpec(name);\n if (!spec) {\n throw new Error(`Action spec not found: ${name}`);\n }\n return spec;\n}\n\n/**\n * Get a provider spec by name from the core specs.\n * @param name - The provider name\n * @returns The provider spec or undefined if not found\n */\nexport function getProviderSpec(name: string): ProviderDoc | undefined {\n return coreProviderMap.get(name) ?? allProviderMap.get(name);\n}\n\n/**\n * Get a provider spec by name, throwing if not found.\n * @param name - The provider name\n * @returns The provider spec\n * @throws Error if the provider is not found\n */\nexport function requireProviderSpec(name: string): ProviderDoc {\n const spec = getProviderSpec(name);\n if (!spec) {\n throw new Error(`Provider spec not found: ${name}`);\n }\n return spec;\n}\n\n/**\n * Get an evaluator spec by name from the core specs.\n * @param name - The evaluator name\n * @returns The evaluator spec or undefined if not found\n */\nexport function getEvaluatorSpec(name: string): EvaluatorDoc | undefined {\n return coreEvaluatorMap.get(name) ?? allEvaluatorMap.get(name);\n}\n\n/**\n * Get an evaluator spec by name, throwing if not found.\n * @param name - The evaluator name\n * @returns The evaluator spec\n * @throws Error if the evaluator is not found\n */\nexport function requireEvaluatorSpec(name: string): EvaluatorDoc {\n const spec = getEvaluatorSpec(name);\n if (!spec) {\n throw new Error(`Evaluator spec not found: ${name}`);\n }\n return spec;\n}\n\n// Re-export types for convenience\nexport type { ActionDoc, ProviderDoc, EvaluatorDoc };\n",
|
|
10
|
-
"import type { IAgentRuntime, Memory, Provider, State } from \"@elizaos/core\";\nimport { requireProviderSpec } from \"../generated/specs/spec-helpers\";\nimport { getElizaGreeting } from \"../models/text\";\n\nconst spec = requireProviderSpec(\"eliza-greeting\");\n\nexport const elizaGreetingProvider: Provider = {\n name: spec.name,\n
|
|
10
|
+
"import type { IAgentRuntime, Memory, Provider, State } from \"@elizaos/core\";\nimport { requireProviderSpec } from \"../generated/specs/spec-helpers\";\nimport { getElizaGreeting } from \"../models/text\";\n\nconst spec = requireProviderSpec(\"eliza-greeting\");\n\nexport const elizaGreetingProvider: Provider = {\n name: spec.name,\n dynamic: true,\n get: async (\n _runtime: IAgentRuntime,\n _message: Memory,\n _state?: State\n ): Promise<{\n data: { greeting: string };\n values: { greeting: string };\n text: string;\n }> => {\n const greeting = getElizaGreeting();\n\n return {\n data: {\n greeting,\n },\n values: {\n greeting,\n },\n text: greeting,\n };\n },\n};\n\nexport default elizaGreetingProvider;\n"
|
|
11
11
|
],
|
|
12
|
-
"mappings": "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",
|
|
13
|
-
"debugId": "
|
|
12
|
+
"mappings": "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",
|
|
13
|
+
"debugId": "7574A30589CA28A464756E2164756E21",
|
|
14
14
|
"names": []
|
|
15
15
|
}
|
package/dist/cjs/index.node.cjs
CHANGED
|
@@ -1070,7 +1070,12 @@ function tryRulesForKeyword(session, keyword, entry, words) {
|
|
|
1070
1070
|
return { kind: "newkey" };
|
|
1071
1071
|
const pre = parsePreDirective(picked);
|
|
1072
1072
|
if (pre)
|
|
1073
|
-
return {
|
|
1073
|
+
return {
|
|
1074
|
+
kind: "pre",
|
|
1075
|
+
preText: pre.preText,
|
|
1076
|
+
redirect: pre.redirect,
|
|
1077
|
+
parts: match.parts
|
|
1078
|
+
};
|
|
1074
1079
|
const redirect = resolveRedirectKeyword(picked);
|
|
1075
1080
|
if (redirect)
|
|
1076
1081
|
return { kind: "redirect", keyword: redirect };
|
|
@@ -1303,6 +1308,7 @@ var generateResponseAction = {
|
|
|
1303
1308
|
var spec2 = requireProviderSpec("eliza-greeting");
|
|
1304
1309
|
var elizaGreetingProvider = {
|
|
1305
1310
|
name: spec2.name,
|
|
1311
|
+
dynamic: true,
|
|
1306
1312
|
get: async (_runtime, _message, _state) => {
|
|
1307
1313
|
const greeting = getElizaGreeting();
|
|
1308
1314
|
return {
|
|
@@ -1403,5 +1409,5 @@ var elizaClassicPlugin = {
|
|
|
1403
1409
|
]
|
|
1404
1410
|
};
|
|
1405
1411
|
|
|
1406
|
-
//# debugId=
|
|
1412
|
+
//# debugId=272EE8A7F46C9E0E64756E2164756E21
|
|
1407
1413
|
//# sourceMappingURL=index.node.cjs.map
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../models/text.ts", "../../plugin.ts", "../../actions/generateResponse.ts", "../../generated/specs/specs.ts", "../../generated/specs/spec-helpers.ts", "../../providers/elizaGreeting.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"import type { GenerateTextParams, IAgentRuntime } from \"@elizaos/core\";\nimport doctorScript from \"../../shared/doctor.json\";\nimport type {\n ElizaDoctorJson,\n ElizaKeywordEntry,\n ElizaScriptRule,\n ElizaSessionState,\n} from \"../types\";\n\nconst script = doctorScript as ElizaDoctorJson;\nconst substitutions = script.substitutions ?? {};\n\nconst sessionStateByRuntime = new WeakMap<IAgentRuntime, ElizaSessionState>();\nconst defaultStandaloneSession: ElizaSessionState = {\n limit: 1,\n memories: [],\n reassemblyIndex: new Map<string, number>(),\n};\n\nfunction getOrCreateSession(runtime: IAgentRuntime): ElizaSessionState {\n const existing = sessionStateByRuntime.get(runtime);\n if (existing) return existing;\n const created: ElizaSessionState = {\n limit: 1,\n memories: [],\n reassemblyIndex: new Map<string, number>(),\n };\n sessionStateByRuntime.set(runtime, created);\n return created;\n}\n\ntype Token =\n | { kind: \"wildcard\" }\n | { kind: \"literal\"; value: string }\n | { kind: \"alt\"; options: readonly string[] }\n | { kind: \"group\"; groupName: string };\n\nfunction normalizeRawInput(input: string): string {\n return input\n .trim()\n .replace(/[!?;:]+/g, \" \")\n .replace(/[\\u2018\\u2019]/g, \"'\")\n .replace(/\\s+/g, \" \");\n}\n\nfunction tokenizeWords(text: string): string[] {\n const cleaned = normalizeRawInput(text)\n .replace(/[.,\"()]/g, \" \")\n .toLowerCase()\n .replace(/\\s+/g, \" \")\n .trim();\n if (!cleaned) return [];\n const canonicalizationKeys = new Set([\"dont\", \"cant\", \"wont\", \"dreamed\", \"dreams\", \"mom\", \"dad\"]);\n return cleaned\n .split(\" \")\n .filter((w) => w.length > 0)\n .map((w) =>\n canonicalizationKeys.has(w) ? (substitutions[w] ?? script.reflections[w] ?? w) : w\n );\n}\n\nfunction reflectWords(words: readonly string[]): string[] {\n return words.map((w) => script.reflections[w] ?? w);\n}\n\nfunction reflectText(text: string): string {\n return reflectWords(tokenizeWords(text)).join(\" \");\n}\n\nfunction substituteWordsForMatching(words: readonly string[]): string[] {\n // Approximate classic keyword substitutions. `doctor.json` encodes the script's \"=\" substitutions\n // via `reflections` values (e.g. \"my\" -> \"your\", \"you're\" -> \"I am\").\n // We apply these substitutions for matching (not for keyword scanning), and normalize to lowercase.\n const out: string[] = [];\n for (const w of words) {\n const mapped = substitutions[w] ?? script.reflections[w];\n if (!mapped) {\n out.push(w.toLowerCase());\n continue;\n }\n\n const parts = mapped\n .toLowerCase()\n .split(/\\s+/g)\n .filter((p) => p.length > 0);\n\n if (parts.length === 0) out.push(w.toLowerCase());\n else out.push(...parts);\n }\n return out;\n}\n\nfunction tokenizeForScan(input: string): string[] {\n // Keep ',' and '.' as clause delimiters, and treat 'but' as a delimiter word.\n const cleaned = normalizeRawInput(input)\n .replace(/[.,]/g, \" | \")\n .replace(/[\"()]/g, \" \")\n .toLowerCase()\n .replace(/\\s+/g, \" \")\n .trim();\n if (!cleaned) return [];\n const canonicalizationKeys = new Set([\"dont\", \"cant\", \"wont\", \"dreamed\", \"dreams\", \"mom\", \"dad\"]);\n return cleaned\n .split(\" \")\n .filter((w) => w.length > 0)\n .map((w) =>\n canonicalizationKeys.has(w) ? (substitutions[w] ?? script.reflections[w] ?? w) : w\n );\n}\n\nfunction splitIntoClauses(words: readonly string[]): string[][] {\n const clauses: string[][] = [];\n let current: string[] = [];\n\n for (const w of words) {\n if (w === \"|\" || w === \"but\") {\n if (current.length > 0) clauses.push(current);\n current = [];\n continue;\n }\n current.push(w);\n }\n if (current.length > 0) clauses.push(current);\n return clauses;\n}\n\nfunction buildKeywordIndex(keywords: readonly ElizaKeywordEntry[]): Map<string, ElizaKeywordEntry> {\n const map = new Map<string, ElizaKeywordEntry>();\n for (const entry of keywords) {\n for (const k of entry.keyword) {\n map.set(k.toLowerCase(), entry);\n }\n }\n return map;\n}\n\nconst keywordIndex = buildKeywordIndex(script.keywords);\n\ninterface FoundKeyword {\n entry: ElizaKeywordEntry;\n keyword: string;\n position: number;\n}\n\nfunction findKeywordsInClause(words: readonly string[]): FoundKeyword[] {\n const found: FoundKeyword[] = [];\n for (let i = 0; i < words.length; i++) {\n const w = words[i];\n const entry = keywordIndex.get(w);\n if (!entry) continue;\n found.push({ entry, keyword: w, position: i });\n }\n return found;\n}\n\nfunction selectKeywordStack(words: readonly string[]): {\n stack: FoundKeyword[];\n clauseWords: string[];\n} {\n // Recreate keyword-stack behavior: choose best clause (left-to-right) that contains any keyword,\n // then order by precedence desc, tie-break by earliest position.\n const clauses = splitIntoClauses(words);\n for (const clause of clauses) {\n const found = findKeywordsInClause(clause);\n if (found.length === 0) continue;\n const stack = [...found].sort((a, b) => {\n if (b.entry.precedence !== a.entry.precedence) return b.entry.precedence - a.entry.precedence;\n return a.position - b.position;\n });\n return { stack, clauseWords: clause };\n }\n return { stack: [], clauseWords: [] };\n}\n\nfunction parseDecomposition(pattern: string): Token[] {\n // Pattern language used by doctor.json:\n // - \"*\" wildcard (matches 0+ words)\n // - \"[a b c]\" one-of alternatives\n // - \"@group\" group reference (e.g. @belief)\n // - otherwise: literal word\n const raw = pattern.trim().replace(/\\s+/g, \" \").toLowerCase();\n if (!raw) return [];\n\n const tokens: Token[] = [];\n let i = 0;\n while (i < raw.length) {\n while (i < raw.length && raw[i] === \" \") i++;\n if (i >= raw.length) break;\n\n const ch = raw[i];\n if (ch === \"*\") {\n tokens.push({ kind: \"wildcard\" });\n i++;\n continue;\n }\n if (ch === \"@\") {\n let j = i + 1;\n while (j < raw.length && raw[j] !== \" \") j++;\n const groupName = raw.slice(i + 1, j).trim();\n if (groupName.length > 0) tokens.push({ kind: \"group\", groupName });\n i = j;\n continue;\n }\n if (ch === \"[\") {\n const close = raw.indexOf(\"]\", i + 1);\n if (close === -1) {\n // Malformed; treat the rest as literal.\n const rest = raw.slice(i).trim();\n if (rest.length > 0) tokens.push({ kind: \"literal\", value: rest });\n break;\n }\n const inside = raw.slice(i + 1, close).trim();\n const options = inside.length > 0 ? inside.split(/\\s+/g) : [];\n tokens.push({ kind: \"alt\", options });\n i = close + 1;\n continue;\n }\n\n // literal word\n let j = i;\n while (j < raw.length && raw[j] !== \" \") j++;\n const word = raw.slice(i, j).trim();\n if (word.length > 0) tokens.push({ kind: \"literal\", value: word });\n i = j;\n }\n return tokens;\n}\n\nfunction tokenMatchesWord(token: Token, word: string): boolean {\n if (token.kind === \"literal\") return token.value === word;\n if (token.kind === \"alt\") return token.options.includes(word);\n if (token.kind === \"group\") {\n const groupWords = script.groups[token.groupName];\n if (!groupWords) return false;\n return groupWords.includes(word);\n }\n return false;\n}\n\ninterface MatchResult {\n /** Parts aligned to pattern tokens, 1-indexed in reassembly strings as $1, $2... */\n parts: string[];\n}\n\nfunction matchDecomposition(\n tokens: readonly Token[],\n words: readonly string[]\n): MatchResult | null {\n // Backtracking match for wildcard \"*\" tokens.\n // We produce `parts` array where parts[i] is the matched text for tokens[i].\n const parts: string[] = new Array(tokens.length).fill(\"\");\n\n function backtrack(ti: number, wi: number): boolean {\n if (ti === tokens.length) return wi === words.length;\n\n const token = tokens[ti];\n if (token.kind === \"wildcard\") {\n // Try minimal to maximal consumption.\n for (let end = wi; end <= words.length; end++) {\n parts[ti] = words.slice(wi, end).join(\" \").trim();\n if (backtrack(ti + 1, end)) return true;\n }\n return false;\n }\n\n if (wi >= words.length) return false;\n const w = words[wi];\n if (!tokenMatchesWord(token, w)) return false;\n\n parts[ti] = w;\n return backtrack(ti + 1, wi + 1);\n }\n\n if (!backtrack(0, 0)) return null;\n return { parts };\n}\n\nfunction applyReassembly(template: string, parts: readonly string[]): string {\n // Replace $N with reflected part N (1-indexed).\n return template.replace(/\\$(\\d+)/g, (_m, nRaw: string) => {\n const n = Number.parseInt(nRaw, 10);\n if (!Number.isFinite(n) || n <= 0) return \"\";\n const part = parts[n - 1] ?? \"\";\n return reflectText(part);\n });\n}\n\nfunction stableKeyForRule(keyword: string, rule: ElizaScriptRule, ruleIndex: number): string {\n return `${keyword}::${ruleIndex}::${rule.decomposition}`;\n}\n\nfunction pickNextReassembly(\n session: ElizaSessionState,\n keyword: string,\n rule: ElizaScriptRule,\n ruleIndex: number\n): string {\n const key = stableKeyForRule(keyword, rule, ruleIndex);\n const current = session.reassemblyIndex.get(key) ?? 0;\n const idx = current % rule.reassembly.length;\n session.reassemblyIndex.set(key, (current + 1) % Math.max(1, rule.reassembly.length));\n return rule.reassembly[idx] ?? \"\";\n}\n\nfunction computeWordHash(word: string): number {\n // Deterministic small hash (not SLIP HASH, but stable enough for memory rule selection).\n let h = 0;\n for (let i = 0; i < word.length; i++) {\n h = (h * 31 + word.charCodeAt(i)) >>> 0;\n }\n return h;\n}\n\nfunction chooseDefaultResponse(session: ElizaSessionState): string {\n if (session.limit === 4 && session.memories.length > 0) {\n const m = session.memories.shift();\n if (m) return m;\n }\n // Cycle through NONE/default like classic: doctor.json provides the NONE list as `default`.\n const idx = (session.reassemblyIndex.get(\"__default__\") ?? 0) % script.default.length;\n session.reassemblyIndex.set(\"__default__\", idx + 1);\n return script.default[idx] ?? script.default[0] ?? \"Please go on.\";\n}\n\nfunction isGoodbye(words: readonly string[]): boolean {\n if (words.length === 0) return false;\n const first = words[0];\n return script.goodbyes.some((g) => tokenizeWords(g)[0] === first);\n}\n\nfunction resolveRedirectKeyword(s: string): string | null {\n const trimmed = s.trim();\n if (!trimmed.startsWith(\"=\")) return null;\n const k = trimmed.slice(1).trim().toLowerCase();\n return k.length > 0 ? k : null;\n}\n\nfunction parsePreDirective(s: string): { preText: string; redirect: string } | null {\n // Format: \":pre <text> (=keyword)\"\n const m = s.trim().match(/^:pre\\s+(.+?)\\s+\\(=\\s*([^)]+)\\s*\\)\\s*$/i);\n if (!m) return null;\n const preText = m[1]?.trim() ?? \"\";\n const redirect = m[2]?.trim().toLowerCase() ?? \"\";\n if (!preText || !redirect) return null;\n return { preText, redirect };\n}\n\nfunction isNewKeyDirective(s: string): boolean {\n return s.trim().toLowerCase() === \":newkey\" || s.trim().toLowerCase() === \"newkey\";\n}\n\ntype RuleEvalResult =\n | { kind: \"no_match\" }\n | { kind: \"newkey\" }\n | { kind: \"redirect\"; keyword: string }\n | { kind: \"pre\"; preText: string; redirect: string; parts: readonly string[] }\n | { kind: \"response\"; text: string };\n\nfunction tryRulesForKeyword(\n session: ElizaSessionState,\n keyword: string,\n entry: ElizaKeywordEntry,\n words: readonly string[]\n): RuleEvalResult {\n for (let i = 0; i < entry.rules.length; i++) {\n const rule = entry.rules[i];\n const tokens = parseDecomposition(rule.decomposition);\n const match = matchDecomposition(tokens, words);\n if (!match) continue;\n\n const picked = pickNextReassembly(session, keyword, rule, i);\n if (isNewKeyDirective(picked)) return { kind: \"newkey\" };\n\n const pre = parsePreDirective(picked);\n if (pre)\n return { kind: \"pre\", preText: pre.preText, redirect: pre.redirect, parts: match.parts };\n\n const redirect = resolveRedirectKeyword(picked);\n if (redirect) return { kind: \"redirect\", keyword: redirect };\n\n return {\n kind: \"response\",\n text: applyReassembly(picked, match.parts).replace(/\\s+/g, \" \").trim(),\n };\n }\n return { kind: \"no_match\" };\n}\n\nfunction maybeRecordMemory(\n session: ElizaSessionState,\n entry: ElizaKeywordEntry,\n words: readonly string[]\n): void {\n const memoryRules = entry.memory;\n if (!memoryRules || memoryRules.length === 0) return;\n const last = words.length > 0 ? words[words.length - 1] : \"\";\n const chosenIdx = computeWordHash(last) % memoryRules.length;\n const chosen = memoryRules[chosenIdx];\n if (!chosen) return;\n\n const tokens = parseDecomposition(chosen.decomposition);\n const match = matchDecomposition(tokens, words);\n if (!match) return;\n\n // In the original script, MEMORY has 4 patterns; in doctor.json it's represented as one rule with 4 reassemblies.\n const responseIdx = computeWordHash(last) % Math.max(1, chosen.reassembly.length);\n const template = chosen.reassembly[responseIdx] ?? chosen.reassembly[0] ?? \"\";\n const response = applyReassembly(template, match.parts).replace(/\\s+/g, \" \").trim();\n if (response.length > 0) session.memories.push(response);\n}\n\nexport function reflect(text: string): string {\n return reflectText(text);\n}\n\nexport function generateElizaResponse(input: string): string;\nexport function generateElizaResponse(runtime: IAgentRuntime, input: string): string;\nexport function generateElizaResponse(arg1: IAgentRuntime | string, arg2?: string): string {\n const runtime = typeof arg1 === \"string\" ? null : arg1;\n const input = typeof arg1 === \"string\" ? arg1 : (arg2 ?? \"\");\n\n const session = runtime ? getOrCreateSession(runtime) : defaultStandaloneSession;\n\n // LIMIT increments each user input (1..4 cycle).\n session.limit = session.limit === 4 ? 1 : ((session.limit + 1) as 2 | 3 | 4);\n\n const scanWords = tokenizeForScan(input);\n const words = tokenizeWords(input);\n if (words.length === 0) return chooseDefaultResponse(session);\n\n if (isGoodbye(words)) {\n return script.goodbyes[0] ?? \"Goodbye.\";\n }\n\n const { stack: keywordStack, clauseWords } = selectKeywordStack(scanWords);\n if (keywordStack.length === 0 || clauseWords.length === 0) {\n return chooseDefaultResponse(session);\n }\n\n const matchWords = substituteWordsForMatching(clauseWords);\n\n // Try keywords in order; NEWKEY forces trying the next one.\n for (const found of keywordStack) {\n maybeRecordMemory(session, found.entry, matchWords);\n const result = tryRulesForKeyword(session, found.keyword, found.entry, matchWords);\n if (result.kind === \"no_match\") continue;\n if (result.kind === \"newkey\") continue;\n\n if (result.kind === \"pre\") {\n const preApplied = applyReassembly(result.preText, result.parts).replace(/\\s+/g, \" \").trim();\n // PRE constructs a new input phrase that should be fed directly into the target keyword's\n // decomposition rules (without additional global substitutions).\n const preWords = tokenizeWords(preApplied);\n const redirectedEntry = keywordIndex.get(result.redirect);\n if (!redirectedEntry) continue;\n const redirected = tryRulesForKeyword(session, result.redirect, redirectedEntry, preWords);\n if (redirected.kind === \"response\") return redirected.text;\n continue;\n }\n\n if (result.kind === \"redirect\") {\n const redirectedEntry = keywordIndex.get(result.keyword);\n if (!redirectedEntry) continue;\n const redirected = tryRulesForKeyword(session, result.keyword, redirectedEntry, matchWords);\n if (redirected.kind === \"response\") return redirected.text;\n continue;\n }\n\n if (result.kind === \"response\") return result.text;\n }\n\n return chooseDefaultResponse(session);\n}\n\nexport function getElizaGreeting(): string {\n return (\n script.greetings[1] ?? script.greetings[0] ?? \"How do you do. Please tell me your problem.\"\n );\n}\n\nfunction extractUserMessage(prompt: string): string {\n const match = prompt.match(/(?:User|Human|You):\\s*(.+?)(?:\\n|$)/i);\n return match ? match[1].trim() : prompt.trim();\n}\n\nexport async function handleTextLarge(\n _runtime: IAgentRuntime,\n params: GenerateTextParams\n): Promise<string> {\n const input = extractUserMessage(params.prompt);\n return generateElizaResponse(_runtime, input);\n}\n\nexport async function handleTextSmall(\n runtime: IAgentRuntime,\n params: GenerateTextParams\n): Promise<string> {\n return handleTextLarge(runtime, params);\n}\n",
|
|
5
|
+
"import type { GenerateTextParams, IAgentRuntime } from \"@elizaos/core\";\nimport doctorScript from \"../../shared/doctor.json\";\nimport type {\n ElizaDoctorJson,\n ElizaKeywordEntry,\n ElizaScriptRule,\n ElizaSessionState,\n} from \"../types\";\n\nconst script = doctorScript as ElizaDoctorJson;\nconst substitutions = script.substitutions ?? {};\n\nconst sessionStateByRuntime = new WeakMap<IAgentRuntime, ElizaSessionState>();\nconst defaultStandaloneSession: ElizaSessionState = {\n limit: 1,\n memories: [],\n reassemblyIndex: new Map<string, number>(),\n};\n\nfunction getOrCreateSession(runtime: IAgentRuntime): ElizaSessionState {\n const existing = sessionStateByRuntime.get(runtime);\n if (existing) return existing;\n const created: ElizaSessionState = {\n limit: 1,\n memories: [],\n reassemblyIndex: new Map<string, number>(),\n };\n sessionStateByRuntime.set(runtime, created);\n return created;\n}\n\ntype Token =\n | { kind: \"wildcard\" }\n | { kind: \"literal\"; value: string }\n | { kind: \"alt\"; options: readonly string[] }\n | { kind: \"group\"; groupName: string };\n\nfunction normalizeRawInput(input: string): string {\n return input\n .trim()\n .replace(/[!?;:]+/g, \" \")\n .replace(/[\\u2018\\u2019]/g, \"'\")\n .replace(/\\s+/g, \" \");\n}\n\nfunction tokenizeWords(text: string): string[] {\n const cleaned = normalizeRawInput(text)\n .replace(/[.,\"()]/g, \" \")\n .toLowerCase()\n .replace(/\\s+/g, \" \")\n .trim();\n if (!cleaned) return [];\n const canonicalizationKeys = new Set([\"dont\", \"cant\", \"wont\", \"dreamed\", \"dreams\", \"mom\", \"dad\"]);\n return cleaned\n .split(\" \")\n .filter((w) => w.length > 0)\n .map((w) =>\n canonicalizationKeys.has(w) ? (substitutions[w] ?? script.reflections[w] ?? w) : w\n );\n}\n\nfunction reflectWords(words: readonly string[]): string[] {\n return words.map((w) => script.reflections[w] ?? w);\n}\n\nfunction reflectText(text: string): string {\n return reflectWords(tokenizeWords(text)).join(\" \");\n}\n\nfunction substituteWordsForMatching(words: readonly string[]): string[] {\n // Approximate classic keyword substitutions. `doctor.json` encodes the script's \"=\" substitutions\n // via `reflections` values (e.g. \"my\" -> \"your\", \"you're\" -> \"I am\").\n // We apply these substitutions for matching (not for keyword scanning), and normalize to lowercase.\n const out: string[] = [];\n for (const w of words) {\n const mapped = substitutions[w] ?? script.reflections[w];\n if (!mapped) {\n out.push(w.toLowerCase());\n continue;\n }\n\n const parts = mapped\n .toLowerCase()\n .split(/\\s+/g)\n .filter((p) => p.length > 0);\n\n if (parts.length === 0) out.push(w.toLowerCase());\n else out.push(...parts);\n }\n return out;\n}\n\nfunction tokenizeForScan(input: string): string[] {\n // Keep ',' and '.' as clause delimiters, and treat 'but' as a delimiter word.\n const cleaned = normalizeRawInput(input)\n .replace(/[.,]/g, \" | \")\n .replace(/[\"()]/g, \" \")\n .toLowerCase()\n .replace(/\\s+/g, \" \")\n .trim();\n if (!cleaned) return [];\n const canonicalizationKeys = new Set([\"dont\", \"cant\", \"wont\", \"dreamed\", \"dreams\", \"mom\", \"dad\"]);\n return cleaned\n .split(\" \")\n .filter((w) => w.length > 0)\n .map((w) =>\n canonicalizationKeys.has(w) ? (substitutions[w] ?? script.reflections[w] ?? w) : w\n );\n}\n\nfunction splitIntoClauses(words: readonly string[]): string[][] {\n const clauses: string[][] = [];\n let current: string[] = [];\n\n for (const w of words) {\n if (w === \"|\" || w === \"but\") {\n if (current.length > 0) clauses.push(current);\n current = [];\n continue;\n }\n current.push(w);\n }\n if (current.length > 0) clauses.push(current);\n return clauses;\n}\n\nfunction buildKeywordIndex(keywords: readonly ElizaKeywordEntry[]): Map<string, ElizaKeywordEntry> {\n const map = new Map<string, ElizaKeywordEntry>();\n for (const entry of keywords) {\n for (const k of entry.keyword) {\n map.set(k.toLowerCase(), entry);\n }\n }\n return map;\n}\n\nconst keywordIndex = buildKeywordIndex(script.keywords);\n\ninterface FoundKeyword {\n entry: ElizaKeywordEntry;\n keyword: string;\n position: number;\n}\n\nfunction findKeywordsInClause(words: readonly string[]): FoundKeyword[] {\n const found: FoundKeyword[] = [];\n for (let i = 0; i < words.length; i++) {\n const w = words[i];\n const entry = keywordIndex.get(w);\n if (!entry) continue;\n found.push({ entry, keyword: w, position: i });\n }\n return found;\n}\n\nfunction selectKeywordStack(words: readonly string[]): {\n stack: FoundKeyword[];\n clauseWords: string[];\n} {\n // Recreate keyword-stack behavior: choose best clause (left-to-right) that contains any keyword,\n // then order by precedence desc, tie-break by earliest position.\n const clauses = splitIntoClauses(words);\n for (const clause of clauses) {\n const found = findKeywordsInClause(clause);\n if (found.length === 0) continue;\n const stack = [...found].sort((a, b) => {\n if (b.entry.precedence !== a.entry.precedence) return b.entry.precedence - a.entry.precedence;\n return a.position - b.position;\n });\n return { stack, clauseWords: clause };\n }\n return { stack: [], clauseWords: [] };\n}\n\nfunction parseDecomposition(pattern: string): Token[] {\n // Pattern language used by doctor.json:\n // - \"*\" wildcard (matches 0+ words)\n // - \"[a b c]\" one-of alternatives\n // - \"@group\" group reference (e.g. @belief)\n // - otherwise: literal word\n const raw = pattern.trim().replace(/\\s+/g, \" \").toLowerCase();\n if (!raw) return [];\n\n const tokens: Token[] = [];\n let i = 0;\n while (i < raw.length) {\n while (i < raw.length && raw[i] === \" \") i++;\n if (i >= raw.length) break;\n\n const ch = raw[i];\n if (ch === \"*\") {\n tokens.push({ kind: \"wildcard\" });\n i++;\n continue;\n }\n if (ch === \"@\") {\n let j = i + 1;\n while (j < raw.length && raw[j] !== \" \") j++;\n const groupName = raw.slice(i + 1, j).trim();\n if (groupName.length > 0) tokens.push({ kind: \"group\", groupName });\n i = j;\n continue;\n }\n if (ch === \"[\") {\n const close = raw.indexOf(\"]\", i + 1);\n if (close === -1) {\n // Malformed; treat the rest as literal.\n const rest = raw.slice(i).trim();\n if (rest.length > 0) tokens.push({ kind: \"literal\", value: rest });\n break;\n }\n const inside = raw.slice(i + 1, close).trim();\n const options = inside.length > 0 ? inside.split(/\\s+/g) : [];\n tokens.push({ kind: \"alt\", options });\n i = close + 1;\n continue;\n }\n\n // literal word\n let j = i;\n while (j < raw.length && raw[j] !== \" \") j++;\n const word = raw.slice(i, j).trim();\n if (word.length > 0) tokens.push({ kind: \"literal\", value: word });\n i = j;\n }\n return tokens;\n}\n\nfunction tokenMatchesWord(token: Token, word: string): boolean {\n if (token.kind === \"literal\") return token.value === word;\n if (token.kind === \"alt\") return token.options.includes(word);\n if (token.kind === \"group\") {\n const groupWords = script.groups[token.groupName];\n if (!groupWords) return false;\n return groupWords.includes(word);\n }\n return false;\n}\n\ninterface MatchResult {\n /** Parts aligned to pattern tokens, 1-indexed in reassembly strings as $1, $2... */\n parts: string[];\n}\n\nfunction matchDecomposition(\n tokens: readonly Token[],\n words: readonly string[]\n): MatchResult | null {\n // Backtracking match for wildcard \"*\" tokens.\n // We produce `parts` array where parts[i] is the matched text for tokens[i].\n const parts: string[] = new Array(tokens.length).fill(\"\");\n\n function backtrack(ti: number, wi: number): boolean {\n if (ti === tokens.length) return wi === words.length;\n\n const token = tokens[ti];\n if (token.kind === \"wildcard\") {\n // Try minimal to maximal consumption.\n for (let end = wi; end <= words.length; end++) {\n parts[ti] = words.slice(wi, end).join(\" \").trim();\n if (backtrack(ti + 1, end)) return true;\n }\n return false;\n }\n\n if (wi >= words.length) return false;\n const w = words[wi];\n if (!tokenMatchesWord(token, w)) return false;\n\n parts[ti] = w;\n return backtrack(ti + 1, wi + 1);\n }\n\n if (!backtrack(0, 0)) return null;\n return { parts };\n}\n\nfunction applyReassembly(template: string, parts: readonly string[]): string {\n // Replace $N with reflected part N (1-indexed).\n return template.replace(/\\$(\\d+)/g, (_m, nRaw: string) => {\n const n = Number.parseInt(nRaw, 10);\n if (!Number.isFinite(n) || n <= 0) return \"\";\n const part = parts[n - 1] ?? \"\";\n return reflectText(part);\n });\n}\n\nfunction stableKeyForRule(keyword: string, rule: ElizaScriptRule, ruleIndex: number): string {\n return `${keyword}::${ruleIndex}::${rule.decomposition}`;\n}\n\nfunction pickNextReassembly(\n session: ElizaSessionState,\n keyword: string,\n rule: ElizaScriptRule,\n ruleIndex: number\n): string {\n const key = stableKeyForRule(keyword, rule, ruleIndex);\n const current = session.reassemblyIndex.get(key) ?? 0;\n const idx = current % rule.reassembly.length;\n session.reassemblyIndex.set(key, (current + 1) % Math.max(1, rule.reassembly.length));\n return rule.reassembly[idx] ?? \"\";\n}\n\nfunction computeWordHash(word: string): number {\n // Deterministic small hash (not SLIP HASH, but stable enough for memory rule selection).\n let h = 0;\n for (let i = 0; i < word.length; i++) {\n h = (h * 31 + word.charCodeAt(i)) >>> 0;\n }\n return h;\n}\n\nfunction chooseDefaultResponse(session: ElizaSessionState): string {\n if (session.limit === 4 && session.memories.length > 0) {\n const m = session.memories.shift();\n if (m) return m;\n }\n // Cycle through NONE/default like classic: doctor.json provides the NONE list as `default`.\n const idx = (session.reassemblyIndex.get(\"__default__\") ?? 0) % script.default.length;\n session.reassemblyIndex.set(\"__default__\", idx + 1);\n return script.default[idx] ?? script.default[0] ?? \"Please go on.\";\n}\n\nfunction isGoodbye(words: readonly string[]): boolean {\n if (words.length === 0) return false;\n const first = words[0];\n return script.goodbyes.some((g) => tokenizeWords(g)[0] === first);\n}\n\nfunction resolveRedirectKeyword(s: string): string | null {\n const trimmed = s.trim();\n if (!trimmed.startsWith(\"=\")) return null;\n const k = trimmed.slice(1).trim().toLowerCase();\n return k.length > 0 ? k : null;\n}\n\nfunction parsePreDirective(s: string): { preText: string; redirect: string } | null {\n // Format: \":pre <text> (=keyword)\"\n const m = s.trim().match(/^:pre\\s+(.+?)\\s+\\(=\\s*([^)]+)\\s*\\)\\s*$/i);\n if (!m) return null;\n const preText = m[1]?.trim() ?? \"\";\n const redirect = m[2]?.trim().toLowerCase() ?? \"\";\n if (!preText || !redirect) return null;\n return { preText, redirect };\n}\n\nfunction isNewKeyDirective(s: string): boolean {\n return s.trim().toLowerCase() === \":newkey\" || s.trim().toLowerCase() === \"newkey\";\n}\n\ntype RuleEvalResult =\n | { kind: \"no_match\" }\n | { kind: \"newkey\" }\n | { kind: \"redirect\"; keyword: string }\n | { kind: \"pre\"; preText: string; redirect: string; parts: readonly string[] }\n | { kind: \"response\"; text: string };\n\nfunction tryRulesForKeyword(\n session: ElizaSessionState,\n keyword: string,\n entry: ElizaKeywordEntry,\n words: readonly string[]\n): RuleEvalResult {\n for (let i = 0; i < entry.rules.length; i++) {\n const rule = entry.rules[i];\n const tokens = parseDecomposition(rule.decomposition);\n const match = matchDecomposition(tokens, words);\n if (!match) continue;\n\n const picked = pickNextReassembly(session, keyword, rule, i);\n if (isNewKeyDirective(picked)) return { kind: \"newkey\" };\n\n const pre = parsePreDirective(picked);\n if (pre)\n return {\n kind: \"pre\",\n preText: pre.preText,\n redirect: pre.redirect,\n parts: match.parts,\n };\n\n const redirect = resolveRedirectKeyword(picked);\n if (redirect) return { kind: \"redirect\", keyword: redirect };\n\n return {\n kind: \"response\",\n text: applyReassembly(picked, match.parts).replace(/\\s+/g, \" \").trim(),\n };\n }\n return { kind: \"no_match\" };\n}\n\nfunction maybeRecordMemory(\n session: ElizaSessionState,\n entry: ElizaKeywordEntry,\n words: readonly string[]\n): void {\n const memoryRules = entry.memory;\n if (!memoryRules || memoryRules.length === 0) return;\n const last = words.length > 0 ? words[words.length - 1] : \"\";\n const chosenIdx = computeWordHash(last) % memoryRules.length;\n const chosen = memoryRules[chosenIdx];\n if (!chosen) return;\n\n const tokens = parseDecomposition(chosen.decomposition);\n const match = matchDecomposition(tokens, words);\n if (!match) return;\n\n // In the original script, MEMORY has 4 patterns; in doctor.json it's represented as one rule with 4 reassemblies.\n const responseIdx = computeWordHash(last) % Math.max(1, chosen.reassembly.length);\n const template = chosen.reassembly[responseIdx] ?? chosen.reassembly[0] ?? \"\";\n const response = applyReassembly(template, match.parts).replace(/\\s+/g, \" \").trim();\n if (response.length > 0) session.memories.push(response);\n}\n\nexport function reflect(text: string): string {\n return reflectText(text);\n}\n\nexport function generateElizaResponse(input: string): string;\nexport function generateElizaResponse(runtime: IAgentRuntime, input: string): string;\nexport function generateElizaResponse(arg1: IAgentRuntime | string, arg2?: string): string {\n const runtime = typeof arg1 === \"string\" ? null : arg1;\n const input = typeof arg1 === \"string\" ? arg1 : (arg2 ?? \"\");\n\n const session = runtime ? getOrCreateSession(runtime) : defaultStandaloneSession;\n\n // LIMIT increments each user input (1..4 cycle).\n session.limit = session.limit === 4 ? 1 : ((session.limit + 1) as 2 | 3 | 4);\n\n const scanWords = tokenizeForScan(input);\n const words = tokenizeWords(input);\n if (words.length === 0) return chooseDefaultResponse(session);\n\n if (isGoodbye(words)) {\n return script.goodbyes[0] ?? \"Goodbye.\";\n }\n\n const { stack: keywordStack, clauseWords } = selectKeywordStack(scanWords);\n if (keywordStack.length === 0 || clauseWords.length === 0) {\n return chooseDefaultResponse(session);\n }\n\n const matchWords = substituteWordsForMatching(clauseWords);\n\n // Try keywords in order; NEWKEY forces trying the next one.\n for (const found of keywordStack) {\n maybeRecordMemory(session, found.entry, matchWords);\n const result = tryRulesForKeyword(session, found.keyword, found.entry, matchWords);\n if (result.kind === \"no_match\") continue;\n if (result.kind === \"newkey\") continue;\n\n if (result.kind === \"pre\") {\n const preApplied = applyReassembly(result.preText, result.parts).replace(/\\s+/g, \" \").trim();\n // PRE constructs a new input phrase that should be fed directly into the target keyword's\n // decomposition rules (without additional global substitutions).\n const preWords = tokenizeWords(preApplied);\n const redirectedEntry = keywordIndex.get(result.redirect);\n if (!redirectedEntry) continue;\n const redirected = tryRulesForKeyword(session, result.redirect, redirectedEntry, preWords);\n if (redirected.kind === \"response\") return redirected.text;\n continue;\n }\n\n if (result.kind === \"redirect\") {\n const redirectedEntry = keywordIndex.get(result.keyword);\n if (!redirectedEntry) continue;\n const redirected = tryRulesForKeyword(session, result.keyword, redirectedEntry, matchWords);\n if (redirected.kind === \"response\") return redirected.text;\n continue;\n }\n\n if (result.kind === \"response\") return result.text;\n }\n\n return chooseDefaultResponse(session);\n}\n\nexport function getElizaGreeting(): string {\n return (\n script.greetings[1] ?? script.greetings[0] ?? \"How do you do. Please tell me your problem.\"\n );\n}\n\nfunction extractUserMessage(prompt: string): string {\n const match = prompt.match(/(?:User|Human|You):\\s*(.+?)(?:\\n|$)/i);\n return match ? match[1].trim() : prompt.trim();\n}\n\nexport async function handleTextLarge(\n _runtime: IAgentRuntime,\n params: GenerateTextParams\n): Promise<string> {\n const input = extractUserMessage(params.prompt);\n return generateElizaResponse(_runtime, input);\n}\n\nexport async function handleTextSmall(\n runtime: IAgentRuntime,\n params: GenerateTextParams\n): Promise<string> {\n return handleTextLarge(runtime, params);\n}\n",
|
|
6
6
|
"import type { GenerateTextParams, IAgentRuntime, Plugin } from \"@elizaos/core\";\nimport { logger, ModelType } from \"@elizaos/core\";\nimport { generateResponseAction } from \"./actions\";\nimport { handleTextLarge, handleTextSmall } from \"./models\";\nimport { elizaGreetingProvider } from \"./providers\";\n\nexport const elizaClassicPlugin: Plugin = {\n name: \"eliza-classic\",\n description: \"Classic ELIZA pattern matching psychotherapist - no LLM required\",\n priority: 100,\n\n actions: [generateResponseAction],\n providers: [elizaGreetingProvider],\n\n models: {\n [ModelType.TEXT_LARGE]: async (\n runtime: IAgentRuntime,\n params: GenerateTextParams\n ): Promise<string> => {\n return handleTextLarge(runtime, params);\n },\n\n [ModelType.TEXT_SMALL]: async (\n runtime: IAgentRuntime,\n params: GenerateTextParams\n ): Promise<string> => {\n return handleTextSmall(runtime, params);\n },\n },\n\n async init(_config, _runtime) {\n logger.info({ src: \"plugin:eliza-classic\" }, \"ELIZA pattern matching initialized\");\n },\n\n tests: [\n {\n name: \"eliza_classic_plugin_tests\",\n tests: [\n {\n name: \"eliza_test_greeting\",\n fn: async (runtime: IAgentRuntime): Promise<void> => {\n const response = await runtime.useModel(ModelType.TEXT_LARGE, {\n prompt: \"hello\",\n });\n\n if (typeof response !== \"string\" || response.length === 0) {\n throw new Error(\"Greeting should return non-empty string\");\n }\n\n logger.info(`[ELIZA Test] Greeting: \"${response}\"`);\n },\n },\n {\n name: \"eliza_test_feeling_sad\",\n fn: async (runtime: IAgentRuntime): Promise<void> => {\n const response = await runtime.useModel(ModelType.TEXT_LARGE, {\n prompt: \"I am sad today\",\n });\n\n if (typeof response !== \"string\" || response.length === 0) {\n throw new Error(\"Response should be non-empty string\");\n }\n\n logger.info(`[ELIZA Test] Sad response: \"${response}\"`);\n },\n },\n {\n name: \"eliza_test_family\",\n fn: async (runtime: IAgentRuntime): Promise<void> => {\n const response = await runtime.useModel(ModelType.TEXT_LARGE, {\n prompt: \"My mother is very kind\",\n });\n\n if (typeof response !== \"string\" || response.length === 0) {\n throw new Error(\"Response should be non-empty string\");\n }\n\n logger.info(`[ELIZA Test] Family response: \"${response}\"`);\n },\n },\n {\n name: \"eliza_test_computer\",\n fn: async (runtime: IAgentRuntime): Promise<void> => {\n const response = await runtime.useModel(ModelType.TEXT_LARGE, {\n prompt: \"I think computers are fascinating\",\n });\n\n if (typeof response !== \"string\" || response.length === 0) {\n throw new Error(\"Response should be non-empty string\");\n }\n\n logger.info(`[ELIZA Test] Computer response: \"${response}\"`);\n },\n },\n {\n name: \"eliza_test_text_small\",\n fn: async (runtime: IAgentRuntime): Promise<void> => {\n const response = await runtime.useModel(ModelType.TEXT_SMALL, {\n prompt: \"Can you help me?\",\n });\n\n if (typeof response !== \"string\" || response.length === 0) {\n throw new Error(\"TEXT_SMALL should return non-empty string\");\n }\n\n logger.info(`[ELIZA Test] TEXT_SMALL: \"${response}\"`);\n },\n },\n ],\n },\n ],\n};\n\nexport default elizaClassicPlugin;\n",
|
|
7
|
-
"import type {\n Action,\n ActionExample,\n ActionResult,\n HandlerCallback,\n HandlerOptions,\n IAgentRuntime,\n Memory,\n State,\n} from \"@elizaos/core\";\nimport { ModelType } from \"@elizaos/core\";\nimport { requireActionSpec } from \"../generated/specs/spec-helpers\";\n\nconst spec = requireActionSpec(\"generate-response\");\n\nexport const generateResponseAction: Action = {\n name: spec.name,\n similes: spec.similes ? [...spec.similes] : [],\n description: spec.description,\n
|
|
7
|
+
"import type {\n Action,\n ActionExample,\n ActionResult,\n HandlerCallback,\n HandlerOptions,\n IAgentRuntime,\n Memory,\n State,\n} from \"@elizaos/core\";\nimport { ModelType } from \"@elizaos/core\";\nimport { requireActionSpec } from \"../generated/specs/spec-helpers\";\n\nconst spec = requireActionSpec(\"generate-response\");\n\nexport const generateResponseAction: Action = {\n name: spec.name,\n similes: spec.similes ? [...spec.similes] : [],\n description: spec.description,\n validate: async (_runtime: IAgentRuntime, _message: Memory, _state?: State): Promise<boolean> => {\n return true;\n },\n\n handler: async (\n runtime: IAgentRuntime,\n message: Memory,\n _state?: State,\n _options?: HandlerOptions,\n callback?: HandlerCallback\n ): Promise<ActionResult | undefined> => {\n const userInput =\n typeof message.content === \"object\" && message.content !== null\n ? (message.content as { text?: string }).text || \"\"\n : String(message.content || \"\");\n\n if (!userInput.trim()) {\n if (callback) {\n await callback({\n text: \"I need something to respond to. What would you like to talk about?\",\n source: message.content.source,\n });\n }\n return { success: false, error: \"No user input provided\" };\n }\n\n try {\n const response = await runtime.useModel(ModelType.TEXT_LARGE, {\n prompt: userInput,\n });\n\n if (callback) {\n await callback({\n text: response,\n source: message.content.source,\n });\n }\n\n return { success: true, text: response };\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error);\n if (callback) {\n await callback({\n text: \"I encountered an issue. Please try again.\",\n source: message.content.source,\n });\n }\n return { success: false, error: errorMessage };\n }\n },\n\n examples: (spec.examples ?? []) as ActionExample[][],\n};\n\nexport default generateResponseAction;\n",
|
|
8
8
|
"/**\n * Auto-generated canonical action/provider/evaluator docs for plugin-eliza-classic.\n * DO NOT EDIT - Generated from prompts/specs/**.\n */\n\nexport type ActionDoc = {\n name: string;\n description: string;\n similes?: readonly string[];\n parameters?: readonly unknown[];\n examples?: readonly (readonly unknown[])[];\n};\n\nexport type ProviderDoc = {\n name: string;\n description: string;\n position?: number;\n dynamic?: boolean;\n};\n\nexport type EvaluatorDoc = {\n name: string;\n description: string;\n similes?: readonly string[];\n alwaysRun?: boolean;\n examples?: readonly unknown[];\n};\n\nexport const coreActionsSpec = {\n version: \"1.0.0\",\n actions: [\n {\n name: \"generate-response\",\n description: \"Generate an ELIZA response for user input using classic pattern matching.\",\n similes: [\"ELIZA_RESPOND\", \"ELIZA_CHAT\", \"CLASSIC_ELIZA\"],\n parameters: [],\n },\n ],\n} as const;\nexport const allActionsSpec = {\n version: \"1.0.0\",\n actions: [\n {\n name: \"generate-response\",\n description: \"Generate an ELIZA response for user input using classic pattern matching.\",\n similes: [\"ELIZA_RESPOND\", \"ELIZA_CHAT\", \"CLASSIC_ELIZA\"],\n parameters: [],\n },\n ],\n} as const;\nexport const coreProvidersSpec = {\n version: \"1.0.0\",\n providers: [\n {\n name: \"eliza-greeting\",\n description: \"\",\n dynamic: true,\n },\n ],\n} as const;\nexport const allProvidersSpec = {\n version: \"1.0.0\",\n providers: [\n {\n name: \"eliza-greeting\",\n description: \"\",\n dynamic: true,\n },\n ],\n} as const;\nexport const coreEvaluatorsSpec = {\n version: \"1.0.0\",\n evaluators: [],\n} as const;\nexport const allEvaluatorsSpec = {\n version: \"1.0.0\",\n evaluators: [],\n} as const;\n\nexport const coreActionDocs: readonly ActionDoc[] = coreActionsSpec.actions;\nexport const allActionDocs: readonly ActionDoc[] = allActionsSpec.actions;\nexport const coreProviderDocs: readonly ProviderDoc[] = coreProvidersSpec.providers;\nexport const allProviderDocs: readonly ProviderDoc[] = allProvidersSpec.providers;\nexport const coreEvaluatorDocs: readonly EvaluatorDoc[] = coreEvaluatorsSpec.evaluators;\nexport const allEvaluatorDocs: readonly EvaluatorDoc[] = allEvaluatorsSpec.evaluators;\n",
|
|
9
9
|
"/**\n * Helper functions to lookup action/provider/evaluator specs by name.\n * These allow language-specific implementations to import their text content\n * (description, similes, examples) from the centralized specs.\n *\n * DO NOT EDIT the spec data - update prompts/actions.json, prompts/providers.json, prompts/evaluators.json and regenerate.\n */\n\nimport {\n type ActionDoc,\n allActionDocs,\n allEvaluatorDocs,\n allProviderDocs,\n coreActionDocs,\n coreEvaluatorDocs,\n coreProviderDocs,\n type EvaluatorDoc,\n type ProviderDoc,\n} from \"./specs\";\n\n// Build lookup maps for O(1) access\nconst coreActionMap = new Map<string, ActionDoc>(coreActionDocs.map((doc) => [doc.name, doc]));\nconst allActionMap = new Map<string, ActionDoc>(allActionDocs.map((doc) => [doc.name, doc]));\nconst coreProviderMap = new Map<string, ProviderDoc>(\n coreProviderDocs.map((doc) => [doc.name, doc])\n);\nconst allProviderMap = new Map<string, ProviderDoc>(allProviderDocs.map((doc) => [doc.name, doc]));\nconst coreEvaluatorMap = new Map<string, EvaluatorDoc>(\n coreEvaluatorDocs.map((doc) => [doc.name, doc])\n);\nconst allEvaluatorMap = new Map<string, EvaluatorDoc>(\n allEvaluatorDocs.map((doc) => [doc.name, doc])\n);\n\n/**\n * Get an action spec by name from the core specs.\n * @param name - The action name\n * @returns The action spec or undefined if not found\n */\nexport function getActionSpec(name: string): ActionDoc | undefined {\n return coreActionMap.get(name) ?? allActionMap.get(name);\n}\n\n/**\n * Get an action spec by name, throwing if not found.\n * @param name - The action name\n * @returns The action spec\n * @throws Error if the action is not found\n */\nexport function requireActionSpec(name: string): ActionDoc {\n const spec = getActionSpec(name);\n if (!spec) {\n throw new Error(`Action spec not found: ${name}`);\n }\n return spec;\n}\n\n/**\n * Get a provider spec by name from the core specs.\n * @param name - The provider name\n * @returns The provider spec or undefined if not found\n */\nexport function getProviderSpec(name: string): ProviderDoc | undefined {\n return coreProviderMap.get(name) ?? allProviderMap.get(name);\n}\n\n/**\n * Get a provider spec by name, throwing if not found.\n * @param name - The provider name\n * @returns The provider spec\n * @throws Error if the provider is not found\n */\nexport function requireProviderSpec(name: string): ProviderDoc {\n const spec = getProviderSpec(name);\n if (!spec) {\n throw new Error(`Provider spec not found: ${name}`);\n }\n return spec;\n}\n\n/**\n * Get an evaluator spec by name from the core specs.\n * @param name - The evaluator name\n * @returns The evaluator spec or undefined if not found\n */\nexport function getEvaluatorSpec(name: string): EvaluatorDoc | undefined {\n return coreEvaluatorMap.get(name) ?? allEvaluatorMap.get(name);\n}\n\n/**\n * Get an evaluator spec by name, throwing if not found.\n * @param name - The evaluator name\n * @returns The evaluator spec\n * @throws Error if the evaluator is not found\n */\nexport function requireEvaluatorSpec(name: string): EvaluatorDoc {\n const spec = getEvaluatorSpec(name);\n if (!spec) {\n throw new Error(`Evaluator spec not found: ${name}`);\n }\n return spec;\n}\n\n// Re-export types for convenience\nexport type { ActionDoc, ProviderDoc, EvaluatorDoc };\n",
|
|
10
|
-
"import type { IAgentRuntime, Memory, Provider, State } from \"@elizaos/core\";\nimport { requireProviderSpec } from \"../generated/specs/spec-helpers\";\nimport { getElizaGreeting } from \"../models/text\";\n\nconst spec = requireProviderSpec(\"eliza-greeting\");\n\nexport const elizaGreetingProvider: Provider = {\n name: spec.name,\n
|
|
10
|
+
"import type { IAgentRuntime, Memory, Provider, State } from \"@elizaos/core\";\nimport { requireProviderSpec } from \"../generated/specs/spec-helpers\";\nimport { getElizaGreeting } from \"../models/text\";\n\nconst spec = requireProviderSpec(\"eliza-greeting\");\n\nexport const elizaGreetingProvider: Provider = {\n name: spec.name,\n dynamic: true,\n get: async (\n _runtime: IAgentRuntime,\n _message: Memory,\n _state?: State\n ): Promise<{\n data: { greeting: string };\n values: { greeting: string };\n text: string;\n }> => {\n const greeting = getElizaGreeting();\n\n return {\n data: {\n greeting,\n },\n values: {\n greeting,\n },\n text: greeting,\n };\n },\n};\n\nexport default elizaGreetingProvider;\n"
|
|
11
11
|
],
|
|
12
|
-
"mappings": "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",
|
|
13
|
-
"debugId": "
|
|
12
|
+
"mappings": "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",
|
|
13
|
+
"debugId": "272EE8A7F46C9E0E64756E2164756E21",
|
|
14
14
|
"names": []
|
|
15
15
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../models/text.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../models/text.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAgavE,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE5C;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;AAC7D,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;AA0DrF,wBAAgB,gBAAgB,IAAI,MAAM,CAIzC;AAOD,wBAAsB,eAAe,CACnC,QAAQ,EAAE,aAAa,EACvB,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,MAAM,CAAC,CAGjB;AAED,wBAAsB,eAAe,CACnC,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,MAAM,CAAC,CAEjB"}
|
package/dist/models/text.js
CHANGED
|
@@ -316,7 +316,12 @@ function tryRulesForKeyword(session, keyword, entry, words) {
|
|
|
316
316
|
return { kind: "newkey" };
|
|
317
317
|
const pre = parsePreDirective(picked);
|
|
318
318
|
if (pre)
|
|
319
|
-
return {
|
|
319
|
+
return {
|
|
320
|
+
kind: "pre",
|
|
321
|
+
preText: pre.preText,
|
|
322
|
+
redirect: pre.redirect,
|
|
323
|
+
parts: match.parts,
|
|
324
|
+
};
|
|
320
325
|
const redirect = resolveRedirectKeyword(picked);
|
|
321
326
|
if (redirect)
|
|
322
327
|
return { kind: "redirect", keyword: redirect };
|
package/dist/models/text.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text.js","sourceRoot":"","sources":["../../models/text.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"text.js","sourceRoot":"","sources":["../../models/text.ts"],"names":[],"mappings":"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"}
|
package/dist/node/index.node.js
CHANGED
|
@@ -1032,7 +1032,12 @@ function tryRulesForKeyword(session, keyword, entry, words) {
|
|
|
1032
1032
|
return { kind: "newkey" };
|
|
1033
1033
|
const pre = parsePreDirective(picked);
|
|
1034
1034
|
if (pre)
|
|
1035
|
-
return {
|
|
1035
|
+
return {
|
|
1036
|
+
kind: "pre",
|
|
1037
|
+
preText: pre.preText,
|
|
1038
|
+
redirect: pre.redirect,
|
|
1039
|
+
parts: match.parts
|
|
1040
|
+
};
|
|
1036
1041
|
const redirect = resolveRedirectKeyword(picked);
|
|
1037
1042
|
if (redirect)
|
|
1038
1043
|
return { kind: "redirect", keyword: redirect };
|
|
@@ -1265,6 +1270,7 @@ var generateResponseAction = {
|
|
|
1265
1270
|
var spec2 = requireProviderSpec("eliza-greeting");
|
|
1266
1271
|
var elizaGreetingProvider = {
|
|
1267
1272
|
name: spec2.name,
|
|
1273
|
+
dynamic: true,
|
|
1268
1274
|
get: async (_runtime, _message, _state) => {
|
|
1269
1275
|
const greeting = getElizaGreeting();
|
|
1270
1276
|
return {
|
|
@@ -1372,5 +1378,5 @@ export {
|
|
|
1372
1378
|
elizaClassicPlugin
|
|
1373
1379
|
};
|
|
1374
1380
|
|
|
1375
|
-
//# debugId=
|
|
1381
|
+
//# debugId=079F80F19A94C54264756E2164756E21
|
|
1376
1382
|
//# sourceMappingURL=index.node.js.map
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../models/text.ts", "../../plugin.ts", "../../actions/generateResponse.ts", "../../generated/specs/specs.ts", "../../generated/specs/spec-helpers.ts", "../../providers/elizaGreeting.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"import type { GenerateTextParams, IAgentRuntime } from \"@elizaos/core\";\nimport doctorScript from \"../../shared/doctor.json\";\nimport type {\n ElizaDoctorJson,\n ElizaKeywordEntry,\n ElizaScriptRule,\n ElizaSessionState,\n} from \"../types\";\n\nconst script = doctorScript as ElizaDoctorJson;\nconst substitutions = script.substitutions ?? {};\n\nconst sessionStateByRuntime = new WeakMap<IAgentRuntime, ElizaSessionState>();\nconst defaultStandaloneSession: ElizaSessionState = {\n limit: 1,\n memories: [],\n reassemblyIndex: new Map<string, number>(),\n};\n\nfunction getOrCreateSession(runtime: IAgentRuntime): ElizaSessionState {\n const existing = sessionStateByRuntime.get(runtime);\n if (existing) return existing;\n const created: ElizaSessionState = {\n limit: 1,\n memories: [],\n reassemblyIndex: new Map<string, number>(),\n };\n sessionStateByRuntime.set(runtime, created);\n return created;\n}\n\ntype Token =\n | { kind: \"wildcard\" }\n | { kind: \"literal\"; value: string }\n | { kind: \"alt\"; options: readonly string[] }\n | { kind: \"group\"; groupName: string };\n\nfunction normalizeRawInput(input: string): string {\n return input\n .trim()\n .replace(/[!?;:]+/g, \" \")\n .replace(/[\\u2018\\u2019]/g, \"'\")\n .replace(/\\s+/g, \" \");\n}\n\nfunction tokenizeWords(text: string): string[] {\n const cleaned = normalizeRawInput(text)\n .replace(/[.,\"()]/g, \" \")\n .toLowerCase()\n .replace(/\\s+/g, \" \")\n .trim();\n if (!cleaned) return [];\n const canonicalizationKeys = new Set([\"dont\", \"cant\", \"wont\", \"dreamed\", \"dreams\", \"mom\", \"dad\"]);\n return cleaned\n .split(\" \")\n .filter((w) => w.length > 0)\n .map((w) =>\n canonicalizationKeys.has(w) ? (substitutions[w] ?? script.reflections[w] ?? w) : w\n );\n}\n\nfunction reflectWords(words: readonly string[]): string[] {\n return words.map((w) => script.reflections[w] ?? w);\n}\n\nfunction reflectText(text: string): string {\n return reflectWords(tokenizeWords(text)).join(\" \");\n}\n\nfunction substituteWordsForMatching(words: readonly string[]): string[] {\n // Approximate classic keyword substitutions. `doctor.json` encodes the script's \"=\" substitutions\n // via `reflections` values (e.g. \"my\" -> \"your\", \"you're\" -> \"I am\").\n // We apply these substitutions for matching (not for keyword scanning), and normalize to lowercase.\n const out: string[] = [];\n for (const w of words) {\n const mapped = substitutions[w] ?? script.reflections[w];\n if (!mapped) {\n out.push(w.toLowerCase());\n continue;\n }\n\n const parts = mapped\n .toLowerCase()\n .split(/\\s+/g)\n .filter((p) => p.length > 0);\n\n if (parts.length === 0) out.push(w.toLowerCase());\n else out.push(...parts);\n }\n return out;\n}\n\nfunction tokenizeForScan(input: string): string[] {\n // Keep ',' and '.' as clause delimiters, and treat 'but' as a delimiter word.\n const cleaned = normalizeRawInput(input)\n .replace(/[.,]/g, \" | \")\n .replace(/[\"()]/g, \" \")\n .toLowerCase()\n .replace(/\\s+/g, \" \")\n .trim();\n if (!cleaned) return [];\n const canonicalizationKeys = new Set([\"dont\", \"cant\", \"wont\", \"dreamed\", \"dreams\", \"mom\", \"dad\"]);\n return cleaned\n .split(\" \")\n .filter((w) => w.length > 0)\n .map((w) =>\n canonicalizationKeys.has(w) ? (substitutions[w] ?? script.reflections[w] ?? w) : w\n );\n}\n\nfunction splitIntoClauses(words: readonly string[]): string[][] {\n const clauses: string[][] = [];\n let current: string[] = [];\n\n for (const w of words) {\n if (w === \"|\" || w === \"but\") {\n if (current.length > 0) clauses.push(current);\n current = [];\n continue;\n }\n current.push(w);\n }\n if (current.length > 0) clauses.push(current);\n return clauses;\n}\n\nfunction buildKeywordIndex(keywords: readonly ElizaKeywordEntry[]): Map<string, ElizaKeywordEntry> {\n const map = new Map<string, ElizaKeywordEntry>();\n for (const entry of keywords) {\n for (const k of entry.keyword) {\n map.set(k.toLowerCase(), entry);\n }\n }\n return map;\n}\n\nconst keywordIndex = buildKeywordIndex(script.keywords);\n\ninterface FoundKeyword {\n entry: ElizaKeywordEntry;\n keyword: string;\n position: number;\n}\n\nfunction findKeywordsInClause(words: readonly string[]): FoundKeyword[] {\n const found: FoundKeyword[] = [];\n for (let i = 0; i < words.length; i++) {\n const w = words[i];\n const entry = keywordIndex.get(w);\n if (!entry) continue;\n found.push({ entry, keyword: w, position: i });\n }\n return found;\n}\n\nfunction selectKeywordStack(words: readonly string[]): {\n stack: FoundKeyword[];\n clauseWords: string[];\n} {\n // Recreate keyword-stack behavior: choose best clause (left-to-right) that contains any keyword,\n // then order by precedence desc, tie-break by earliest position.\n const clauses = splitIntoClauses(words);\n for (const clause of clauses) {\n const found = findKeywordsInClause(clause);\n if (found.length === 0) continue;\n const stack = [...found].sort((a, b) => {\n if (b.entry.precedence !== a.entry.precedence) return b.entry.precedence - a.entry.precedence;\n return a.position - b.position;\n });\n return { stack, clauseWords: clause };\n }\n return { stack: [], clauseWords: [] };\n}\n\nfunction parseDecomposition(pattern: string): Token[] {\n // Pattern language used by doctor.json:\n // - \"*\" wildcard (matches 0+ words)\n // - \"[a b c]\" one-of alternatives\n // - \"@group\" group reference (e.g. @belief)\n // - otherwise: literal word\n const raw = pattern.trim().replace(/\\s+/g, \" \").toLowerCase();\n if (!raw) return [];\n\n const tokens: Token[] = [];\n let i = 0;\n while (i < raw.length) {\n while (i < raw.length && raw[i] === \" \") i++;\n if (i >= raw.length) break;\n\n const ch = raw[i];\n if (ch === \"*\") {\n tokens.push({ kind: \"wildcard\" });\n i++;\n continue;\n }\n if (ch === \"@\") {\n let j = i + 1;\n while (j < raw.length && raw[j] !== \" \") j++;\n const groupName = raw.slice(i + 1, j).trim();\n if (groupName.length > 0) tokens.push({ kind: \"group\", groupName });\n i = j;\n continue;\n }\n if (ch === \"[\") {\n const close = raw.indexOf(\"]\", i + 1);\n if (close === -1) {\n // Malformed; treat the rest as literal.\n const rest = raw.slice(i).trim();\n if (rest.length > 0) tokens.push({ kind: \"literal\", value: rest });\n break;\n }\n const inside = raw.slice(i + 1, close).trim();\n const options = inside.length > 0 ? inside.split(/\\s+/g) : [];\n tokens.push({ kind: \"alt\", options });\n i = close + 1;\n continue;\n }\n\n // literal word\n let j = i;\n while (j < raw.length && raw[j] !== \" \") j++;\n const word = raw.slice(i, j).trim();\n if (word.length > 0) tokens.push({ kind: \"literal\", value: word });\n i = j;\n }\n return tokens;\n}\n\nfunction tokenMatchesWord(token: Token, word: string): boolean {\n if (token.kind === \"literal\") return token.value === word;\n if (token.kind === \"alt\") return token.options.includes(word);\n if (token.kind === \"group\") {\n const groupWords = script.groups[token.groupName];\n if (!groupWords) return false;\n return groupWords.includes(word);\n }\n return false;\n}\n\ninterface MatchResult {\n /** Parts aligned to pattern tokens, 1-indexed in reassembly strings as $1, $2... */\n parts: string[];\n}\n\nfunction matchDecomposition(\n tokens: readonly Token[],\n words: readonly string[]\n): MatchResult | null {\n // Backtracking match for wildcard \"*\" tokens.\n // We produce `parts` array where parts[i] is the matched text for tokens[i].\n const parts: string[] = new Array(tokens.length).fill(\"\");\n\n function backtrack(ti: number, wi: number): boolean {\n if (ti === tokens.length) return wi === words.length;\n\n const token = tokens[ti];\n if (token.kind === \"wildcard\") {\n // Try minimal to maximal consumption.\n for (let end = wi; end <= words.length; end++) {\n parts[ti] = words.slice(wi, end).join(\" \").trim();\n if (backtrack(ti + 1, end)) return true;\n }\n return false;\n }\n\n if (wi >= words.length) return false;\n const w = words[wi];\n if (!tokenMatchesWord(token, w)) return false;\n\n parts[ti] = w;\n return backtrack(ti + 1, wi + 1);\n }\n\n if (!backtrack(0, 0)) return null;\n return { parts };\n}\n\nfunction applyReassembly(template: string, parts: readonly string[]): string {\n // Replace $N with reflected part N (1-indexed).\n return template.replace(/\\$(\\d+)/g, (_m, nRaw: string) => {\n const n = Number.parseInt(nRaw, 10);\n if (!Number.isFinite(n) || n <= 0) return \"\";\n const part = parts[n - 1] ?? \"\";\n return reflectText(part);\n });\n}\n\nfunction stableKeyForRule(keyword: string, rule: ElizaScriptRule, ruleIndex: number): string {\n return `${keyword}::${ruleIndex}::${rule.decomposition}`;\n}\n\nfunction pickNextReassembly(\n session: ElizaSessionState,\n keyword: string,\n rule: ElizaScriptRule,\n ruleIndex: number\n): string {\n const key = stableKeyForRule(keyword, rule, ruleIndex);\n const current = session.reassemblyIndex.get(key) ?? 0;\n const idx = current % rule.reassembly.length;\n session.reassemblyIndex.set(key, (current + 1) % Math.max(1, rule.reassembly.length));\n return rule.reassembly[idx] ?? \"\";\n}\n\nfunction computeWordHash(word: string): number {\n // Deterministic small hash (not SLIP HASH, but stable enough for memory rule selection).\n let h = 0;\n for (let i = 0; i < word.length; i++) {\n h = (h * 31 + word.charCodeAt(i)) >>> 0;\n }\n return h;\n}\n\nfunction chooseDefaultResponse(session: ElizaSessionState): string {\n if (session.limit === 4 && session.memories.length > 0) {\n const m = session.memories.shift();\n if (m) return m;\n }\n // Cycle through NONE/default like classic: doctor.json provides the NONE list as `default`.\n const idx = (session.reassemblyIndex.get(\"__default__\") ?? 0) % script.default.length;\n session.reassemblyIndex.set(\"__default__\", idx + 1);\n return script.default[idx] ?? script.default[0] ?? \"Please go on.\";\n}\n\nfunction isGoodbye(words: readonly string[]): boolean {\n if (words.length === 0) return false;\n const first = words[0];\n return script.goodbyes.some((g) => tokenizeWords(g)[0] === first);\n}\n\nfunction resolveRedirectKeyword(s: string): string | null {\n const trimmed = s.trim();\n if (!trimmed.startsWith(\"=\")) return null;\n const k = trimmed.slice(1).trim().toLowerCase();\n return k.length > 0 ? k : null;\n}\n\nfunction parsePreDirective(s: string): { preText: string; redirect: string } | null {\n // Format: \":pre <text> (=keyword)\"\n const m = s.trim().match(/^:pre\\s+(.+?)\\s+\\(=\\s*([^)]+)\\s*\\)\\s*$/i);\n if (!m) return null;\n const preText = m[1]?.trim() ?? \"\";\n const redirect = m[2]?.trim().toLowerCase() ?? \"\";\n if (!preText || !redirect) return null;\n return { preText, redirect };\n}\n\nfunction isNewKeyDirective(s: string): boolean {\n return s.trim().toLowerCase() === \":newkey\" || s.trim().toLowerCase() === \"newkey\";\n}\n\ntype RuleEvalResult =\n | { kind: \"no_match\" }\n | { kind: \"newkey\" }\n | { kind: \"redirect\"; keyword: string }\n | { kind: \"pre\"; preText: string; redirect: string; parts: readonly string[] }\n | { kind: \"response\"; text: string };\n\nfunction tryRulesForKeyword(\n session: ElizaSessionState,\n keyword: string,\n entry: ElizaKeywordEntry,\n words: readonly string[]\n): RuleEvalResult {\n for (let i = 0; i < entry.rules.length; i++) {\n const rule = entry.rules[i];\n const tokens = parseDecomposition(rule.decomposition);\n const match = matchDecomposition(tokens, words);\n if (!match) continue;\n\n const picked = pickNextReassembly(session, keyword, rule, i);\n if (isNewKeyDirective(picked)) return { kind: \"newkey\" };\n\n const pre = parsePreDirective(picked);\n if (pre)\n return { kind: \"pre\", preText: pre.preText, redirect: pre.redirect, parts: match.parts };\n\n const redirect = resolveRedirectKeyword(picked);\n if (redirect) return { kind: \"redirect\", keyword: redirect };\n\n return {\n kind: \"response\",\n text: applyReassembly(picked, match.parts).replace(/\\s+/g, \" \").trim(),\n };\n }\n return { kind: \"no_match\" };\n}\n\nfunction maybeRecordMemory(\n session: ElizaSessionState,\n entry: ElizaKeywordEntry,\n words: readonly string[]\n): void {\n const memoryRules = entry.memory;\n if (!memoryRules || memoryRules.length === 0) return;\n const last = words.length > 0 ? words[words.length - 1] : \"\";\n const chosenIdx = computeWordHash(last) % memoryRules.length;\n const chosen = memoryRules[chosenIdx];\n if (!chosen) return;\n\n const tokens = parseDecomposition(chosen.decomposition);\n const match = matchDecomposition(tokens, words);\n if (!match) return;\n\n // In the original script, MEMORY has 4 patterns; in doctor.json it's represented as one rule with 4 reassemblies.\n const responseIdx = computeWordHash(last) % Math.max(1, chosen.reassembly.length);\n const template = chosen.reassembly[responseIdx] ?? chosen.reassembly[0] ?? \"\";\n const response = applyReassembly(template, match.parts).replace(/\\s+/g, \" \").trim();\n if (response.length > 0) session.memories.push(response);\n}\n\nexport function reflect(text: string): string {\n return reflectText(text);\n}\n\nexport function generateElizaResponse(input: string): string;\nexport function generateElizaResponse(runtime: IAgentRuntime, input: string): string;\nexport function generateElizaResponse(arg1: IAgentRuntime | string, arg2?: string): string {\n const runtime = typeof arg1 === \"string\" ? null : arg1;\n const input = typeof arg1 === \"string\" ? arg1 : (arg2 ?? \"\");\n\n const session = runtime ? getOrCreateSession(runtime) : defaultStandaloneSession;\n\n // LIMIT increments each user input (1..4 cycle).\n session.limit = session.limit === 4 ? 1 : ((session.limit + 1) as 2 | 3 | 4);\n\n const scanWords = tokenizeForScan(input);\n const words = tokenizeWords(input);\n if (words.length === 0) return chooseDefaultResponse(session);\n\n if (isGoodbye(words)) {\n return script.goodbyes[0] ?? \"Goodbye.\";\n }\n\n const { stack: keywordStack, clauseWords } = selectKeywordStack(scanWords);\n if (keywordStack.length === 0 || clauseWords.length === 0) {\n return chooseDefaultResponse(session);\n }\n\n const matchWords = substituteWordsForMatching(clauseWords);\n\n // Try keywords in order; NEWKEY forces trying the next one.\n for (const found of keywordStack) {\n maybeRecordMemory(session, found.entry, matchWords);\n const result = tryRulesForKeyword(session, found.keyword, found.entry, matchWords);\n if (result.kind === \"no_match\") continue;\n if (result.kind === \"newkey\") continue;\n\n if (result.kind === \"pre\") {\n const preApplied = applyReassembly(result.preText, result.parts).replace(/\\s+/g, \" \").trim();\n // PRE constructs a new input phrase that should be fed directly into the target keyword's\n // decomposition rules (without additional global substitutions).\n const preWords = tokenizeWords(preApplied);\n const redirectedEntry = keywordIndex.get(result.redirect);\n if (!redirectedEntry) continue;\n const redirected = tryRulesForKeyword(session, result.redirect, redirectedEntry, preWords);\n if (redirected.kind === \"response\") return redirected.text;\n continue;\n }\n\n if (result.kind === \"redirect\") {\n const redirectedEntry = keywordIndex.get(result.keyword);\n if (!redirectedEntry) continue;\n const redirected = tryRulesForKeyword(session, result.keyword, redirectedEntry, matchWords);\n if (redirected.kind === \"response\") return redirected.text;\n continue;\n }\n\n if (result.kind === \"response\") return result.text;\n }\n\n return chooseDefaultResponse(session);\n}\n\nexport function getElizaGreeting(): string {\n return (\n script.greetings[1] ?? script.greetings[0] ?? \"How do you do. Please tell me your problem.\"\n );\n}\n\nfunction extractUserMessage(prompt: string): string {\n const match = prompt.match(/(?:User|Human|You):\\s*(.+?)(?:\\n|$)/i);\n return match ? match[1].trim() : prompt.trim();\n}\n\nexport async function handleTextLarge(\n _runtime: IAgentRuntime,\n params: GenerateTextParams\n): Promise<string> {\n const input = extractUserMessage(params.prompt);\n return generateElizaResponse(_runtime, input);\n}\n\nexport async function handleTextSmall(\n runtime: IAgentRuntime,\n params: GenerateTextParams\n): Promise<string> {\n return handleTextLarge(runtime, params);\n}\n",
|
|
5
|
+
"import type { GenerateTextParams, IAgentRuntime } from \"@elizaos/core\";\nimport doctorScript from \"../../shared/doctor.json\";\nimport type {\n ElizaDoctorJson,\n ElizaKeywordEntry,\n ElizaScriptRule,\n ElizaSessionState,\n} from \"../types\";\n\nconst script = doctorScript as ElizaDoctorJson;\nconst substitutions = script.substitutions ?? {};\n\nconst sessionStateByRuntime = new WeakMap<IAgentRuntime, ElizaSessionState>();\nconst defaultStandaloneSession: ElizaSessionState = {\n limit: 1,\n memories: [],\n reassemblyIndex: new Map<string, number>(),\n};\n\nfunction getOrCreateSession(runtime: IAgentRuntime): ElizaSessionState {\n const existing = sessionStateByRuntime.get(runtime);\n if (existing) return existing;\n const created: ElizaSessionState = {\n limit: 1,\n memories: [],\n reassemblyIndex: new Map<string, number>(),\n };\n sessionStateByRuntime.set(runtime, created);\n return created;\n}\n\ntype Token =\n | { kind: \"wildcard\" }\n | { kind: \"literal\"; value: string }\n | { kind: \"alt\"; options: readonly string[] }\n | { kind: \"group\"; groupName: string };\n\nfunction normalizeRawInput(input: string): string {\n return input\n .trim()\n .replace(/[!?;:]+/g, \" \")\n .replace(/[\\u2018\\u2019]/g, \"'\")\n .replace(/\\s+/g, \" \");\n}\n\nfunction tokenizeWords(text: string): string[] {\n const cleaned = normalizeRawInput(text)\n .replace(/[.,\"()]/g, \" \")\n .toLowerCase()\n .replace(/\\s+/g, \" \")\n .trim();\n if (!cleaned) return [];\n const canonicalizationKeys = new Set([\"dont\", \"cant\", \"wont\", \"dreamed\", \"dreams\", \"mom\", \"dad\"]);\n return cleaned\n .split(\" \")\n .filter((w) => w.length > 0)\n .map((w) =>\n canonicalizationKeys.has(w) ? (substitutions[w] ?? script.reflections[w] ?? w) : w\n );\n}\n\nfunction reflectWords(words: readonly string[]): string[] {\n return words.map((w) => script.reflections[w] ?? w);\n}\n\nfunction reflectText(text: string): string {\n return reflectWords(tokenizeWords(text)).join(\" \");\n}\n\nfunction substituteWordsForMatching(words: readonly string[]): string[] {\n // Approximate classic keyword substitutions. `doctor.json` encodes the script's \"=\" substitutions\n // via `reflections` values (e.g. \"my\" -> \"your\", \"you're\" -> \"I am\").\n // We apply these substitutions for matching (not for keyword scanning), and normalize to lowercase.\n const out: string[] = [];\n for (const w of words) {\n const mapped = substitutions[w] ?? script.reflections[w];\n if (!mapped) {\n out.push(w.toLowerCase());\n continue;\n }\n\n const parts = mapped\n .toLowerCase()\n .split(/\\s+/g)\n .filter((p) => p.length > 0);\n\n if (parts.length === 0) out.push(w.toLowerCase());\n else out.push(...parts);\n }\n return out;\n}\n\nfunction tokenizeForScan(input: string): string[] {\n // Keep ',' and '.' as clause delimiters, and treat 'but' as a delimiter word.\n const cleaned = normalizeRawInput(input)\n .replace(/[.,]/g, \" | \")\n .replace(/[\"()]/g, \" \")\n .toLowerCase()\n .replace(/\\s+/g, \" \")\n .trim();\n if (!cleaned) return [];\n const canonicalizationKeys = new Set([\"dont\", \"cant\", \"wont\", \"dreamed\", \"dreams\", \"mom\", \"dad\"]);\n return cleaned\n .split(\" \")\n .filter((w) => w.length > 0)\n .map((w) =>\n canonicalizationKeys.has(w) ? (substitutions[w] ?? script.reflections[w] ?? w) : w\n );\n}\n\nfunction splitIntoClauses(words: readonly string[]): string[][] {\n const clauses: string[][] = [];\n let current: string[] = [];\n\n for (const w of words) {\n if (w === \"|\" || w === \"but\") {\n if (current.length > 0) clauses.push(current);\n current = [];\n continue;\n }\n current.push(w);\n }\n if (current.length > 0) clauses.push(current);\n return clauses;\n}\n\nfunction buildKeywordIndex(keywords: readonly ElizaKeywordEntry[]): Map<string, ElizaKeywordEntry> {\n const map = new Map<string, ElizaKeywordEntry>();\n for (const entry of keywords) {\n for (const k of entry.keyword) {\n map.set(k.toLowerCase(), entry);\n }\n }\n return map;\n}\n\nconst keywordIndex = buildKeywordIndex(script.keywords);\n\ninterface FoundKeyword {\n entry: ElizaKeywordEntry;\n keyword: string;\n position: number;\n}\n\nfunction findKeywordsInClause(words: readonly string[]): FoundKeyword[] {\n const found: FoundKeyword[] = [];\n for (let i = 0; i < words.length; i++) {\n const w = words[i];\n const entry = keywordIndex.get(w);\n if (!entry) continue;\n found.push({ entry, keyword: w, position: i });\n }\n return found;\n}\n\nfunction selectKeywordStack(words: readonly string[]): {\n stack: FoundKeyword[];\n clauseWords: string[];\n} {\n // Recreate keyword-stack behavior: choose best clause (left-to-right) that contains any keyword,\n // then order by precedence desc, tie-break by earliest position.\n const clauses = splitIntoClauses(words);\n for (const clause of clauses) {\n const found = findKeywordsInClause(clause);\n if (found.length === 0) continue;\n const stack = [...found].sort((a, b) => {\n if (b.entry.precedence !== a.entry.precedence) return b.entry.precedence - a.entry.precedence;\n return a.position - b.position;\n });\n return { stack, clauseWords: clause };\n }\n return { stack: [], clauseWords: [] };\n}\n\nfunction parseDecomposition(pattern: string): Token[] {\n // Pattern language used by doctor.json:\n // - \"*\" wildcard (matches 0+ words)\n // - \"[a b c]\" one-of alternatives\n // - \"@group\" group reference (e.g. @belief)\n // - otherwise: literal word\n const raw = pattern.trim().replace(/\\s+/g, \" \").toLowerCase();\n if (!raw) return [];\n\n const tokens: Token[] = [];\n let i = 0;\n while (i < raw.length) {\n while (i < raw.length && raw[i] === \" \") i++;\n if (i >= raw.length) break;\n\n const ch = raw[i];\n if (ch === \"*\") {\n tokens.push({ kind: \"wildcard\" });\n i++;\n continue;\n }\n if (ch === \"@\") {\n let j = i + 1;\n while (j < raw.length && raw[j] !== \" \") j++;\n const groupName = raw.slice(i + 1, j).trim();\n if (groupName.length > 0) tokens.push({ kind: \"group\", groupName });\n i = j;\n continue;\n }\n if (ch === \"[\") {\n const close = raw.indexOf(\"]\", i + 1);\n if (close === -1) {\n // Malformed; treat the rest as literal.\n const rest = raw.slice(i).trim();\n if (rest.length > 0) tokens.push({ kind: \"literal\", value: rest });\n break;\n }\n const inside = raw.slice(i + 1, close).trim();\n const options = inside.length > 0 ? inside.split(/\\s+/g) : [];\n tokens.push({ kind: \"alt\", options });\n i = close + 1;\n continue;\n }\n\n // literal word\n let j = i;\n while (j < raw.length && raw[j] !== \" \") j++;\n const word = raw.slice(i, j).trim();\n if (word.length > 0) tokens.push({ kind: \"literal\", value: word });\n i = j;\n }\n return tokens;\n}\n\nfunction tokenMatchesWord(token: Token, word: string): boolean {\n if (token.kind === \"literal\") return token.value === word;\n if (token.kind === \"alt\") return token.options.includes(word);\n if (token.kind === \"group\") {\n const groupWords = script.groups[token.groupName];\n if (!groupWords) return false;\n return groupWords.includes(word);\n }\n return false;\n}\n\ninterface MatchResult {\n /** Parts aligned to pattern tokens, 1-indexed in reassembly strings as $1, $2... */\n parts: string[];\n}\n\nfunction matchDecomposition(\n tokens: readonly Token[],\n words: readonly string[]\n): MatchResult | null {\n // Backtracking match for wildcard \"*\" tokens.\n // We produce `parts` array where parts[i] is the matched text for tokens[i].\n const parts: string[] = new Array(tokens.length).fill(\"\");\n\n function backtrack(ti: number, wi: number): boolean {\n if (ti === tokens.length) return wi === words.length;\n\n const token = tokens[ti];\n if (token.kind === \"wildcard\") {\n // Try minimal to maximal consumption.\n for (let end = wi; end <= words.length; end++) {\n parts[ti] = words.slice(wi, end).join(\" \").trim();\n if (backtrack(ti + 1, end)) return true;\n }\n return false;\n }\n\n if (wi >= words.length) return false;\n const w = words[wi];\n if (!tokenMatchesWord(token, w)) return false;\n\n parts[ti] = w;\n return backtrack(ti + 1, wi + 1);\n }\n\n if (!backtrack(0, 0)) return null;\n return { parts };\n}\n\nfunction applyReassembly(template: string, parts: readonly string[]): string {\n // Replace $N with reflected part N (1-indexed).\n return template.replace(/\\$(\\d+)/g, (_m, nRaw: string) => {\n const n = Number.parseInt(nRaw, 10);\n if (!Number.isFinite(n) || n <= 0) return \"\";\n const part = parts[n - 1] ?? \"\";\n return reflectText(part);\n });\n}\n\nfunction stableKeyForRule(keyword: string, rule: ElizaScriptRule, ruleIndex: number): string {\n return `${keyword}::${ruleIndex}::${rule.decomposition}`;\n}\n\nfunction pickNextReassembly(\n session: ElizaSessionState,\n keyword: string,\n rule: ElizaScriptRule,\n ruleIndex: number\n): string {\n const key = stableKeyForRule(keyword, rule, ruleIndex);\n const current = session.reassemblyIndex.get(key) ?? 0;\n const idx = current % rule.reassembly.length;\n session.reassemblyIndex.set(key, (current + 1) % Math.max(1, rule.reassembly.length));\n return rule.reassembly[idx] ?? \"\";\n}\n\nfunction computeWordHash(word: string): number {\n // Deterministic small hash (not SLIP HASH, but stable enough for memory rule selection).\n let h = 0;\n for (let i = 0; i < word.length; i++) {\n h = (h * 31 + word.charCodeAt(i)) >>> 0;\n }\n return h;\n}\n\nfunction chooseDefaultResponse(session: ElizaSessionState): string {\n if (session.limit === 4 && session.memories.length > 0) {\n const m = session.memories.shift();\n if (m) return m;\n }\n // Cycle through NONE/default like classic: doctor.json provides the NONE list as `default`.\n const idx = (session.reassemblyIndex.get(\"__default__\") ?? 0) % script.default.length;\n session.reassemblyIndex.set(\"__default__\", idx + 1);\n return script.default[idx] ?? script.default[0] ?? \"Please go on.\";\n}\n\nfunction isGoodbye(words: readonly string[]): boolean {\n if (words.length === 0) return false;\n const first = words[0];\n return script.goodbyes.some((g) => tokenizeWords(g)[0] === first);\n}\n\nfunction resolveRedirectKeyword(s: string): string | null {\n const trimmed = s.trim();\n if (!trimmed.startsWith(\"=\")) return null;\n const k = trimmed.slice(1).trim().toLowerCase();\n return k.length > 0 ? k : null;\n}\n\nfunction parsePreDirective(s: string): { preText: string; redirect: string } | null {\n // Format: \":pre <text> (=keyword)\"\n const m = s.trim().match(/^:pre\\s+(.+?)\\s+\\(=\\s*([^)]+)\\s*\\)\\s*$/i);\n if (!m) return null;\n const preText = m[1]?.trim() ?? \"\";\n const redirect = m[2]?.trim().toLowerCase() ?? \"\";\n if (!preText || !redirect) return null;\n return { preText, redirect };\n}\n\nfunction isNewKeyDirective(s: string): boolean {\n return s.trim().toLowerCase() === \":newkey\" || s.trim().toLowerCase() === \"newkey\";\n}\n\ntype RuleEvalResult =\n | { kind: \"no_match\" }\n | { kind: \"newkey\" }\n | { kind: \"redirect\"; keyword: string }\n | { kind: \"pre\"; preText: string; redirect: string; parts: readonly string[] }\n | { kind: \"response\"; text: string };\n\nfunction tryRulesForKeyword(\n session: ElizaSessionState,\n keyword: string,\n entry: ElizaKeywordEntry,\n words: readonly string[]\n): RuleEvalResult {\n for (let i = 0; i < entry.rules.length; i++) {\n const rule = entry.rules[i];\n const tokens = parseDecomposition(rule.decomposition);\n const match = matchDecomposition(tokens, words);\n if (!match) continue;\n\n const picked = pickNextReassembly(session, keyword, rule, i);\n if (isNewKeyDirective(picked)) return { kind: \"newkey\" };\n\n const pre = parsePreDirective(picked);\n if (pre)\n return {\n kind: \"pre\",\n preText: pre.preText,\n redirect: pre.redirect,\n parts: match.parts,\n };\n\n const redirect = resolveRedirectKeyword(picked);\n if (redirect) return { kind: \"redirect\", keyword: redirect };\n\n return {\n kind: \"response\",\n text: applyReassembly(picked, match.parts).replace(/\\s+/g, \" \").trim(),\n };\n }\n return { kind: \"no_match\" };\n}\n\nfunction maybeRecordMemory(\n session: ElizaSessionState,\n entry: ElizaKeywordEntry,\n words: readonly string[]\n): void {\n const memoryRules = entry.memory;\n if (!memoryRules || memoryRules.length === 0) return;\n const last = words.length > 0 ? words[words.length - 1] : \"\";\n const chosenIdx = computeWordHash(last) % memoryRules.length;\n const chosen = memoryRules[chosenIdx];\n if (!chosen) return;\n\n const tokens = parseDecomposition(chosen.decomposition);\n const match = matchDecomposition(tokens, words);\n if (!match) return;\n\n // In the original script, MEMORY has 4 patterns; in doctor.json it's represented as one rule with 4 reassemblies.\n const responseIdx = computeWordHash(last) % Math.max(1, chosen.reassembly.length);\n const template = chosen.reassembly[responseIdx] ?? chosen.reassembly[0] ?? \"\";\n const response = applyReassembly(template, match.parts).replace(/\\s+/g, \" \").trim();\n if (response.length > 0) session.memories.push(response);\n}\n\nexport function reflect(text: string): string {\n return reflectText(text);\n}\n\nexport function generateElizaResponse(input: string): string;\nexport function generateElizaResponse(runtime: IAgentRuntime, input: string): string;\nexport function generateElizaResponse(arg1: IAgentRuntime | string, arg2?: string): string {\n const runtime = typeof arg1 === \"string\" ? null : arg1;\n const input = typeof arg1 === \"string\" ? arg1 : (arg2 ?? \"\");\n\n const session = runtime ? getOrCreateSession(runtime) : defaultStandaloneSession;\n\n // LIMIT increments each user input (1..4 cycle).\n session.limit = session.limit === 4 ? 1 : ((session.limit + 1) as 2 | 3 | 4);\n\n const scanWords = tokenizeForScan(input);\n const words = tokenizeWords(input);\n if (words.length === 0) return chooseDefaultResponse(session);\n\n if (isGoodbye(words)) {\n return script.goodbyes[0] ?? \"Goodbye.\";\n }\n\n const { stack: keywordStack, clauseWords } = selectKeywordStack(scanWords);\n if (keywordStack.length === 0 || clauseWords.length === 0) {\n return chooseDefaultResponse(session);\n }\n\n const matchWords = substituteWordsForMatching(clauseWords);\n\n // Try keywords in order; NEWKEY forces trying the next one.\n for (const found of keywordStack) {\n maybeRecordMemory(session, found.entry, matchWords);\n const result = tryRulesForKeyword(session, found.keyword, found.entry, matchWords);\n if (result.kind === \"no_match\") continue;\n if (result.kind === \"newkey\") continue;\n\n if (result.kind === \"pre\") {\n const preApplied = applyReassembly(result.preText, result.parts).replace(/\\s+/g, \" \").trim();\n // PRE constructs a new input phrase that should be fed directly into the target keyword's\n // decomposition rules (without additional global substitutions).\n const preWords = tokenizeWords(preApplied);\n const redirectedEntry = keywordIndex.get(result.redirect);\n if (!redirectedEntry) continue;\n const redirected = tryRulesForKeyword(session, result.redirect, redirectedEntry, preWords);\n if (redirected.kind === \"response\") return redirected.text;\n continue;\n }\n\n if (result.kind === \"redirect\") {\n const redirectedEntry = keywordIndex.get(result.keyword);\n if (!redirectedEntry) continue;\n const redirected = tryRulesForKeyword(session, result.keyword, redirectedEntry, matchWords);\n if (redirected.kind === \"response\") return redirected.text;\n continue;\n }\n\n if (result.kind === \"response\") return result.text;\n }\n\n return chooseDefaultResponse(session);\n}\n\nexport function getElizaGreeting(): string {\n return (\n script.greetings[1] ?? script.greetings[0] ?? \"How do you do. Please tell me your problem.\"\n );\n}\n\nfunction extractUserMessage(prompt: string): string {\n const match = prompt.match(/(?:User|Human|You):\\s*(.+?)(?:\\n|$)/i);\n return match ? match[1].trim() : prompt.trim();\n}\n\nexport async function handleTextLarge(\n _runtime: IAgentRuntime,\n params: GenerateTextParams\n): Promise<string> {\n const input = extractUserMessage(params.prompt);\n return generateElizaResponse(_runtime, input);\n}\n\nexport async function handleTextSmall(\n runtime: IAgentRuntime,\n params: GenerateTextParams\n): Promise<string> {\n return handleTextLarge(runtime, params);\n}\n",
|
|
6
6
|
"import type { GenerateTextParams, IAgentRuntime, Plugin } from \"@elizaos/core\";\nimport { logger, ModelType } from \"@elizaos/core\";\nimport { generateResponseAction } from \"./actions\";\nimport { handleTextLarge, handleTextSmall } from \"./models\";\nimport { elizaGreetingProvider } from \"./providers\";\n\nexport const elizaClassicPlugin: Plugin = {\n name: \"eliza-classic\",\n description: \"Classic ELIZA pattern matching psychotherapist - no LLM required\",\n priority: 100,\n\n actions: [generateResponseAction],\n providers: [elizaGreetingProvider],\n\n models: {\n [ModelType.TEXT_LARGE]: async (\n runtime: IAgentRuntime,\n params: GenerateTextParams\n ): Promise<string> => {\n return handleTextLarge(runtime, params);\n },\n\n [ModelType.TEXT_SMALL]: async (\n runtime: IAgentRuntime,\n params: GenerateTextParams\n ): Promise<string> => {\n return handleTextSmall(runtime, params);\n },\n },\n\n async init(_config, _runtime) {\n logger.info({ src: \"plugin:eliza-classic\" }, \"ELIZA pattern matching initialized\");\n },\n\n tests: [\n {\n name: \"eliza_classic_plugin_tests\",\n tests: [\n {\n name: \"eliza_test_greeting\",\n fn: async (runtime: IAgentRuntime): Promise<void> => {\n const response = await runtime.useModel(ModelType.TEXT_LARGE, {\n prompt: \"hello\",\n });\n\n if (typeof response !== \"string\" || response.length === 0) {\n throw new Error(\"Greeting should return non-empty string\");\n }\n\n logger.info(`[ELIZA Test] Greeting: \"${response}\"`);\n },\n },\n {\n name: \"eliza_test_feeling_sad\",\n fn: async (runtime: IAgentRuntime): Promise<void> => {\n const response = await runtime.useModel(ModelType.TEXT_LARGE, {\n prompt: \"I am sad today\",\n });\n\n if (typeof response !== \"string\" || response.length === 0) {\n throw new Error(\"Response should be non-empty string\");\n }\n\n logger.info(`[ELIZA Test] Sad response: \"${response}\"`);\n },\n },\n {\n name: \"eliza_test_family\",\n fn: async (runtime: IAgentRuntime): Promise<void> => {\n const response = await runtime.useModel(ModelType.TEXT_LARGE, {\n prompt: \"My mother is very kind\",\n });\n\n if (typeof response !== \"string\" || response.length === 0) {\n throw new Error(\"Response should be non-empty string\");\n }\n\n logger.info(`[ELIZA Test] Family response: \"${response}\"`);\n },\n },\n {\n name: \"eliza_test_computer\",\n fn: async (runtime: IAgentRuntime): Promise<void> => {\n const response = await runtime.useModel(ModelType.TEXT_LARGE, {\n prompt: \"I think computers are fascinating\",\n });\n\n if (typeof response !== \"string\" || response.length === 0) {\n throw new Error(\"Response should be non-empty string\");\n }\n\n logger.info(`[ELIZA Test] Computer response: \"${response}\"`);\n },\n },\n {\n name: \"eliza_test_text_small\",\n fn: async (runtime: IAgentRuntime): Promise<void> => {\n const response = await runtime.useModel(ModelType.TEXT_SMALL, {\n prompt: \"Can you help me?\",\n });\n\n if (typeof response !== \"string\" || response.length === 0) {\n throw new Error(\"TEXT_SMALL should return non-empty string\");\n }\n\n logger.info(`[ELIZA Test] TEXT_SMALL: \"${response}\"`);\n },\n },\n ],\n },\n ],\n};\n\nexport default elizaClassicPlugin;\n",
|
|
7
|
-
"import type {\n Action,\n ActionExample,\n ActionResult,\n HandlerCallback,\n HandlerOptions,\n IAgentRuntime,\n Memory,\n State,\n} from \"@elizaos/core\";\nimport { ModelType } from \"@elizaos/core\";\nimport { requireActionSpec } from \"../generated/specs/spec-helpers\";\n\nconst spec = requireActionSpec(\"generate-response\");\n\nexport const generateResponseAction: Action = {\n name: spec.name,\n similes: spec.similes ? [...spec.similes] : [],\n description: spec.description,\n
|
|
7
|
+
"import type {\n Action,\n ActionExample,\n ActionResult,\n HandlerCallback,\n HandlerOptions,\n IAgentRuntime,\n Memory,\n State,\n} from \"@elizaos/core\";\nimport { ModelType } from \"@elizaos/core\";\nimport { requireActionSpec } from \"../generated/specs/spec-helpers\";\n\nconst spec = requireActionSpec(\"generate-response\");\n\nexport const generateResponseAction: Action = {\n name: spec.name,\n similes: spec.similes ? [...spec.similes] : [],\n description: spec.description,\n validate: async (_runtime: IAgentRuntime, _message: Memory, _state?: State): Promise<boolean> => {\n return true;\n },\n\n handler: async (\n runtime: IAgentRuntime,\n message: Memory,\n _state?: State,\n _options?: HandlerOptions,\n callback?: HandlerCallback\n ): Promise<ActionResult | undefined> => {\n const userInput =\n typeof message.content === \"object\" && message.content !== null\n ? (message.content as { text?: string }).text || \"\"\n : String(message.content || \"\");\n\n if (!userInput.trim()) {\n if (callback) {\n await callback({\n text: \"I need something to respond to. What would you like to talk about?\",\n source: message.content.source,\n });\n }\n return { success: false, error: \"No user input provided\" };\n }\n\n try {\n const response = await runtime.useModel(ModelType.TEXT_LARGE, {\n prompt: userInput,\n });\n\n if (callback) {\n await callback({\n text: response,\n source: message.content.source,\n });\n }\n\n return { success: true, text: response };\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error);\n if (callback) {\n await callback({\n text: \"I encountered an issue. Please try again.\",\n source: message.content.source,\n });\n }\n return { success: false, error: errorMessage };\n }\n },\n\n examples: (spec.examples ?? []) as ActionExample[][],\n};\n\nexport default generateResponseAction;\n",
|
|
8
8
|
"/**\n * Auto-generated canonical action/provider/evaluator docs for plugin-eliza-classic.\n * DO NOT EDIT - Generated from prompts/specs/**.\n */\n\nexport type ActionDoc = {\n name: string;\n description: string;\n similes?: readonly string[];\n parameters?: readonly unknown[];\n examples?: readonly (readonly unknown[])[];\n};\n\nexport type ProviderDoc = {\n name: string;\n description: string;\n position?: number;\n dynamic?: boolean;\n};\n\nexport type EvaluatorDoc = {\n name: string;\n description: string;\n similes?: readonly string[];\n alwaysRun?: boolean;\n examples?: readonly unknown[];\n};\n\nexport const coreActionsSpec = {\n version: \"1.0.0\",\n actions: [\n {\n name: \"generate-response\",\n description: \"Generate an ELIZA response for user input using classic pattern matching.\",\n similes: [\"ELIZA_RESPOND\", \"ELIZA_CHAT\", \"CLASSIC_ELIZA\"],\n parameters: [],\n },\n ],\n} as const;\nexport const allActionsSpec = {\n version: \"1.0.0\",\n actions: [\n {\n name: \"generate-response\",\n description: \"Generate an ELIZA response for user input using classic pattern matching.\",\n similes: [\"ELIZA_RESPOND\", \"ELIZA_CHAT\", \"CLASSIC_ELIZA\"],\n parameters: [],\n },\n ],\n} as const;\nexport const coreProvidersSpec = {\n version: \"1.0.0\",\n providers: [\n {\n name: \"eliza-greeting\",\n description: \"\",\n dynamic: true,\n },\n ],\n} as const;\nexport const allProvidersSpec = {\n version: \"1.0.0\",\n providers: [\n {\n name: \"eliza-greeting\",\n description: \"\",\n dynamic: true,\n },\n ],\n} as const;\nexport const coreEvaluatorsSpec = {\n version: \"1.0.0\",\n evaluators: [],\n} as const;\nexport const allEvaluatorsSpec = {\n version: \"1.0.0\",\n evaluators: [],\n} as const;\n\nexport const coreActionDocs: readonly ActionDoc[] = coreActionsSpec.actions;\nexport const allActionDocs: readonly ActionDoc[] = allActionsSpec.actions;\nexport const coreProviderDocs: readonly ProviderDoc[] = coreProvidersSpec.providers;\nexport const allProviderDocs: readonly ProviderDoc[] = allProvidersSpec.providers;\nexport const coreEvaluatorDocs: readonly EvaluatorDoc[] = coreEvaluatorsSpec.evaluators;\nexport const allEvaluatorDocs: readonly EvaluatorDoc[] = allEvaluatorsSpec.evaluators;\n",
|
|
9
9
|
"/**\n * Helper functions to lookup action/provider/evaluator specs by name.\n * These allow language-specific implementations to import their text content\n * (description, similes, examples) from the centralized specs.\n *\n * DO NOT EDIT the spec data - update prompts/actions.json, prompts/providers.json, prompts/evaluators.json and regenerate.\n */\n\nimport {\n type ActionDoc,\n allActionDocs,\n allEvaluatorDocs,\n allProviderDocs,\n coreActionDocs,\n coreEvaluatorDocs,\n coreProviderDocs,\n type EvaluatorDoc,\n type ProviderDoc,\n} from \"./specs\";\n\n// Build lookup maps for O(1) access\nconst coreActionMap = new Map<string, ActionDoc>(coreActionDocs.map((doc) => [doc.name, doc]));\nconst allActionMap = new Map<string, ActionDoc>(allActionDocs.map((doc) => [doc.name, doc]));\nconst coreProviderMap = new Map<string, ProviderDoc>(\n coreProviderDocs.map((doc) => [doc.name, doc])\n);\nconst allProviderMap = new Map<string, ProviderDoc>(allProviderDocs.map((doc) => [doc.name, doc]));\nconst coreEvaluatorMap = new Map<string, EvaluatorDoc>(\n coreEvaluatorDocs.map((doc) => [doc.name, doc])\n);\nconst allEvaluatorMap = new Map<string, EvaluatorDoc>(\n allEvaluatorDocs.map((doc) => [doc.name, doc])\n);\n\n/**\n * Get an action spec by name from the core specs.\n * @param name - The action name\n * @returns The action spec or undefined if not found\n */\nexport function getActionSpec(name: string): ActionDoc | undefined {\n return coreActionMap.get(name) ?? allActionMap.get(name);\n}\n\n/**\n * Get an action spec by name, throwing if not found.\n * @param name - The action name\n * @returns The action spec\n * @throws Error if the action is not found\n */\nexport function requireActionSpec(name: string): ActionDoc {\n const spec = getActionSpec(name);\n if (!spec) {\n throw new Error(`Action spec not found: ${name}`);\n }\n return spec;\n}\n\n/**\n * Get a provider spec by name from the core specs.\n * @param name - The provider name\n * @returns The provider spec or undefined if not found\n */\nexport function getProviderSpec(name: string): ProviderDoc | undefined {\n return coreProviderMap.get(name) ?? allProviderMap.get(name);\n}\n\n/**\n * Get a provider spec by name, throwing if not found.\n * @param name - The provider name\n * @returns The provider spec\n * @throws Error if the provider is not found\n */\nexport function requireProviderSpec(name: string): ProviderDoc {\n const spec = getProviderSpec(name);\n if (!spec) {\n throw new Error(`Provider spec not found: ${name}`);\n }\n return spec;\n}\n\n/**\n * Get an evaluator spec by name from the core specs.\n * @param name - The evaluator name\n * @returns The evaluator spec or undefined if not found\n */\nexport function getEvaluatorSpec(name: string): EvaluatorDoc | undefined {\n return coreEvaluatorMap.get(name) ?? allEvaluatorMap.get(name);\n}\n\n/**\n * Get an evaluator spec by name, throwing if not found.\n * @param name - The evaluator name\n * @returns The evaluator spec\n * @throws Error if the evaluator is not found\n */\nexport function requireEvaluatorSpec(name: string): EvaluatorDoc {\n const spec = getEvaluatorSpec(name);\n if (!spec) {\n throw new Error(`Evaluator spec not found: ${name}`);\n }\n return spec;\n}\n\n// Re-export types for convenience\nexport type { ActionDoc, ProviderDoc, EvaluatorDoc };\n",
|
|
10
|
-
"import type { IAgentRuntime, Memory, Provider, State } from \"@elizaos/core\";\nimport { requireProviderSpec } from \"../generated/specs/spec-helpers\";\nimport { getElizaGreeting } from \"../models/text\";\n\nconst spec = requireProviderSpec(\"eliza-greeting\");\n\nexport const elizaGreetingProvider: Provider = {\n name: spec.name,\n
|
|
10
|
+
"import type { IAgentRuntime, Memory, Provider, State } from \"@elizaos/core\";\nimport { requireProviderSpec } from \"../generated/specs/spec-helpers\";\nimport { getElizaGreeting } from \"../models/text\";\n\nconst spec = requireProviderSpec(\"eliza-greeting\");\n\nexport const elizaGreetingProvider: Provider = {\n name: spec.name,\n dynamic: true,\n get: async (\n _runtime: IAgentRuntime,\n _message: Memory,\n _state?: State\n ): Promise<{\n data: { greeting: string };\n values: { greeting: string };\n text: string;\n }> => {\n const greeting = getElizaGreeting();\n\n return {\n data: {\n greeting,\n },\n values: {\n greeting,\n },\n text: greeting,\n };\n },\n};\n\nexport default elizaGreetingProvider;\n"
|
|
11
11
|
],
|
|
12
|
-
"mappings": "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",
|
|
13
|
-
"debugId": "
|
|
12
|
+
"mappings": "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",
|
|
13
|
+
"debugId": "079F80F19A94C54264756E2164756E21",
|
|
14
14
|
"names": []
|
|
15
15
|
}
|
|
@@ -3,6 +3,7 @@ import { getElizaGreeting } from "../models/text";
|
|
|
3
3
|
const spec = requireProviderSpec("eliza-greeting");
|
|
4
4
|
export const elizaGreetingProvider = {
|
|
5
5
|
name: spec.name,
|
|
6
|
+
dynamic: true,
|
|
6
7
|
get: async (_runtime, _message, _state) => {
|
|
7
8
|
const greeting = getElizaGreeting();
|
|
8
9
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"elizaGreeting.js","sourceRoot":"","sources":["../../providers/elizaGreeting.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,MAAM,IAAI,GAAG,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;AAEnD,MAAM,CAAC,MAAM,qBAAqB,GAAa;IAC7C,IAAI,EAAE,IAAI,CAAC,IAAI;
|
|
1
|
+
{"version":3,"file":"elizaGreeting.js","sourceRoot":"","sources":["../../providers/elizaGreeting.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,MAAM,IAAI,GAAG,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;AAEnD,MAAM,CAAC,MAAM,qBAAqB,GAAa;IAC7C,IAAI,EAAE,IAAI,CAAC,IAAI;IACf,OAAO,EAAE,IAAI;IACb,GAAG,EAAE,KAAK,EACR,QAAuB,EACvB,QAAgB,EAChB,MAAc,EAKb,EAAE;QACH,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC;QAEpC,OAAO;YACL,IAAI,EAAE;gBACJ,QAAQ;aACT;YACD,MAAM,EAAE;gBACN,QAAQ;aACT;YACD,IAAI,EAAE,QAAQ;SACf,CAAC;IACJ,CAAC;CACF,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elizaos/plugin-eliza-classic",
|
|
3
|
-
"version": "2.0.0-alpha.
|
|
3
|
+
"version": "2.0.0-alpha.6",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/cjs/index.node.cjs",
|
|
6
6
|
"module": "dist/node/index.node.js",
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
"format": "bunx @biomejs/biome format --write .",
|
|
51
51
|
"format:check": "bunx @biomejs/biome format .",
|
|
52
52
|
"typecheck": "tsc --noEmit",
|
|
53
|
-
"test": "vitest run",
|
|
53
|
+
"test": "npx -y vitest@4.0.18 run --passWithNoTests",
|
|
54
54
|
"test:ts": "vitest run",
|
|
55
55
|
"build": "bun run build.ts"
|
|
56
56
|
},
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
"pluginType": "elizaos:plugin:1.0.0",
|
|
62
62
|
"pluginParameters": {}
|
|
63
63
|
},
|
|
64
|
-
"
|
|
64
|
+
"milady": {
|
|
65
65
|
"platforms": [
|
|
66
66
|
"browser",
|
|
67
67
|
"node"
|