@elizaos/plugin-action-bench 1.4.2 → 1.4.3
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/README.md +93 -0
- package/dist/index.cjs +29 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +6 -1
- package/dist/index.d.ts +6 -1
- package/dist/index.js +29 -2
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
@@ -2,6 +2,8 @@
|
|
2
2
|
|
3
3
|
Action calling benchmark plugins for ElizaOS v2, featuring multiverse mathematics where operations behave differently based on dimensional constants. Designed to test AI agents' ability to handle context-dependent mathematics, unknown operational behaviors, and complex state management across dimensional boundaries.
|
4
4
|
|
5
|
+
> **🎛️ Environment Control**: Use `TYPEWRITER_ENABLED=false` or `MULTIVERSE_MATH_ENABLED=false` to selectively disable benchmark sets. See [Environment Variable Configuration](#environment-variable-configuration) for details.
|
6
|
+
|
5
7
|
## Features
|
6
8
|
|
7
9
|
### 🔤 Typewriter Actions (A–Z)
|
@@ -94,6 +96,97 @@ const agent = createAgent({
|
|
94
96
|
});
|
95
97
|
```
|
96
98
|
|
99
|
+
### Checking Configuration
|
100
|
+
|
101
|
+
You can verify which benchmarks are loaded programmatically:
|
102
|
+
|
103
|
+
```typescript
|
104
|
+
import { benchmarkConfig } from "@elizaos/plugin-action-bench";
|
105
|
+
|
106
|
+
console.log("Benchmark configuration:", benchmarkConfig);
|
107
|
+
// Output:
|
108
|
+
// {
|
109
|
+
// typewriterEnabled: true,
|
110
|
+
// multiverseMathEnabled: true,
|
111
|
+
// totalActionsLoaded: 48
|
112
|
+
// }
|
113
|
+
```
|
114
|
+
|
115
|
+
## Environment Variable Configuration
|
116
|
+
|
117
|
+
The plugin supports granular control over which benchmark actions are loaded through environment variables. This is useful for testing specific features or reducing the action space when not benchmarking.
|
118
|
+
|
119
|
+
### Available Environment Variables
|
120
|
+
|
121
|
+
| Variable | Default | Description |
|
122
|
+
|----------|---------|-------------|
|
123
|
+
| `TYPEWRITER_ENABLED` | `true` | Controls loading of typewriter actions (A-Z) |
|
124
|
+
| `MULTIVERSE_MATH_ENABLED` | `true` | Controls loading of multiverse math operations |
|
125
|
+
|
126
|
+
### Examples
|
127
|
+
|
128
|
+
```bash
|
129
|
+
# Load all benchmarks (default)
|
130
|
+
npm start
|
131
|
+
|
132
|
+
# Only load typewriter actions
|
133
|
+
MULTIVERSE_MATH_ENABLED=false npm start
|
134
|
+
|
135
|
+
# Only load multiverse math actions
|
136
|
+
TYPEWRITER_ENABLED=false npm start
|
137
|
+
|
138
|
+
# Disable all benchmarks (useful for production)
|
139
|
+
TYPEWRITER_ENABLED=false MULTIVERSE_MATH_ENABLED=false npm start
|
140
|
+
```
|
141
|
+
|
142
|
+
### .env File Configuration
|
143
|
+
|
144
|
+
You can also configure these in your `.env` file:
|
145
|
+
|
146
|
+
```env
|
147
|
+
# Enable/disable specific benchmarks
|
148
|
+
TYPEWRITER_ENABLED=true
|
149
|
+
MULTIVERSE_MATH_ENABLED=true
|
150
|
+
|
151
|
+
# Example: Only enable typewriter for focused testing
|
152
|
+
# TYPEWRITER_ENABLED=true
|
153
|
+
# MULTIVERSE_MATH_ENABLED=false
|
154
|
+
```
|
155
|
+
|
156
|
+
### Runtime Feedback
|
157
|
+
|
158
|
+
The plugin provides console output to confirm which benchmarks are loaded:
|
159
|
+
|
160
|
+
```
|
161
|
+
[plugin-action-bench] Typewriter actions enabled
|
162
|
+
[plugin-action-bench] Multiverse math actions enabled
|
163
|
+
[plugin-action-bench] Total actions loaded: 48
|
164
|
+
```
|
165
|
+
|
166
|
+
Or when disabled:
|
167
|
+
|
168
|
+
```
|
169
|
+
[plugin-action-bench] Typewriter actions disabled via TYPEWRITER_ENABLED=false
|
170
|
+
[plugin-action-bench] Multiverse math actions enabled
|
171
|
+
[plugin-action-bench] Total actions loaded: 22
|
172
|
+
```
|
173
|
+
|
174
|
+
### Why Use Environment Variables?
|
175
|
+
|
176
|
+
The environment variable system provides several benefits:
|
177
|
+
|
178
|
+
1. **Reduce Action Space**: In production, disable benchmarks to reduce the number of actions the AI needs to consider
|
179
|
+
2. **Focused Testing**: Enable only specific benchmarks when testing particular capabilities
|
180
|
+
3. **Performance**: Fewer loaded actions means faster action selection and reduced memory usage
|
181
|
+
4. **Debugging**: Isolate specific action sets to debug issues
|
182
|
+
5. **A/B Testing**: Compare agent performance with different action sets enabled
|
183
|
+
|
184
|
+
Example scenarios:
|
185
|
+
- **Development**: Enable all benchmarks to test full capabilities
|
186
|
+
- **Production**: Disable all benchmarks to focus on real actions
|
187
|
+
- **Typewriter Testing**: Enable only typewriter to test rapid action chaining
|
188
|
+
- **Math Testing**: Enable only multiverse math to test context-dependent operations
|
189
|
+
|
97
190
|
## Benchmarking Examples
|
98
191
|
|
99
192
|
### Typewriter Test
|
package/dist/index.cjs
CHANGED
@@ -867,14 +867,42 @@ var multiverseMathActions = [
|
|
867
867
|
];
|
868
868
|
|
869
869
|
// src/index.ts
|
870
|
+
var TYPEWRITER_ENABLED = process.env.TYPEWRITER_ENABLED?.toLowerCase() !== "false";
|
871
|
+
var MULTIVERSE_MATH_ENABLED = process.env.MULTIVERSE_MATH_ENABLED?.toLowerCase() !== "false";
|
872
|
+
function buildActions() {
|
873
|
+
const actions = [];
|
874
|
+
if (TYPEWRITER_ENABLED) {
|
875
|
+
console.log("[plugin-action-bench] Typewriter actions enabled");
|
876
|
+
actions.push(...typewriterActions);
|
877
|
+
} else {
|
878
|
+
console.log("[plugin-action-bench] Typewriter actions disabled via TYPEWRITER_ENABLED=false");
|
879
|
+
}
|
880
|
+
if (MULTIVERSE_MATH_ENABLED) {
|
881
|
+
console.log("[plugin-action-bench] Multiverse math actions enabled");
|
882
|
+
actions.push(...multiverseMathActions);
|
883
|
+
} else {
|
884
|
+
console.log("[plugin-action-bench] Multiverse math actions disabled via MULTIVERSE_MATH_ENABLED=false");
|
885
|
+
}
|
886
|
+
if (actions.length === 0) {
|
887
|
+
console.warn("[plugin-action-bench] WARNING: No benchmark actions are enabled. Set TYPEWRITER_ENABLED=true or MULTIVERSE_MATH_ENABLED=true to enable benchmarks.");
|
888
|
+
}
|
889
|
+
console.log(`[plugin-action-bench] Total actions loaded: ${actions.length}`);
|
890
|
+
return actions;
|
891
|
+
}
|
870
892
|
var actionBenchPlugin = {
|
871
893
|
name: "plugin-action-bench",
|
872
894
|
description: "Action benchmark plugin providing typewriter (A\u2013Z) and multiverse math operations where mathematical behavior changes based on dimensional constants, testing AI agents' ability to handle context-dependent operations and unknown mathematical scenarios.",
|
873
|
-
actions:
|
895
|
+
actions: buildActions()
|
896
|
+
};
|
897
|
+
var benchmarkConfig = {
|
898
|
+
typewriterEnabled: TYPEWRITER_ENABLED,
|
899
|
+
multiverseMathEnabled: MULTIVERSE_MATH_ENABLED,
|
900
|
+
totalActionsLoaded: actionBenchPlugin.actions?.length ?? 0
|
874
901
|
};
|
875
902
|
var index_default = actionBenchPlugin;
|
876
903
|
|
877
904
|
exports.actionBenchPlugin = actionBenchPlugin;
|
905
|
+
exports.benchmarkConfig = benchmarkConfig;
|
878
906
|
exports.default = index_default;
|
879
907
|
//# sourceMappingURL=index.cjs.map
|
880
908
|
//# sourceMappingURL=index.cjs.map
|
package/dist/index.cjs.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../src/actions/typewriter.ts","../src/actions/multiverseMath.ts","../src/index.ts"],"names":[],"mappings":"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","file":"index.cjs","sourcesContent":["import type {\n Action,\n ActionExample,\n ActionResult,\n HandlerCallback,\n IAgentRuntime,\n Memory,\n State,\n} from \"@elizaos/core\";\n\ntype TypewriterLetter =\n | \"a\" | \"b\" | \"c\" | \"d\" | \"e\" | \"f\" | \"g\" | \"h\" | \"i\" | \"j\" | \"k\" | \"l\" | \"m\"\n | \"n\" | \"o\" | \"p\" | \"q\" | \"r\" | \"s\" | \"t\" | \"u\" | \"v\" | \"w\" | \"x\" | \"y\" | \"z\";\n\nfunction createLetterAction(letter: TypewriterLetter): Action {\n const upper = letter.toUpperCase();\n\n return {\n name: `TYPE_${upper}`,\n similes: [`TYPE_${upper}`, `TYPE_${letter}`],\n description: `Type the letter '${letter}' and append it to the accumulating typed text for benchmarking action chaining.`,\n validate: async (_runtime: IAgentRuntime, _message: Memory, _state?: State) => {\n return true;\n },\n handler: async (\n _runtime: IAgentRuntime,\n message: Memory,\n state?: State,\n _options?: Record<string, unknown>,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const current = state?.values?.typedText ?? \"\";\n const next = `${current}${letter}`;\n\n // Optional immediate feedback for visibility during bench runs\n if (callback) {\n await callback({\n text: next,\n source: message.content.source,\n });\n }\n\n return {\n success: true,\n text: next,\n values: {\n typedText: next,\n },\n data: {\n letter,\n length: next.length,\n },\n } satisfies ActionResult;\n },\n examples: [\n [\n {\n name: \"{{user}}\",\n content: { text: `type '${letter}'` },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: letter,\n actions: [`TYPE_${upper}`],\n },\n },\n ],\n ] as ActionExample[][],\n } as Action;\n}\n\nexport const typewriterActions: Action[] = (\n \"abcdefghijklmnopqrstuvwxyz\".split(\"\") as TypewriterLetter[]\n).map(createLetterAction);\n\n\n","import type {\n Action,\n ActionExample,\n ActionResult,\n HandlerCallback,\n IAgentRuntime,\n Memory,\n State,\n} from \"@elizaos/core\";\n\n// Helper function to generate a pseudo-random multiverse seed\nfunction generateMultiverseSeed(a: number, b: number): number {\n const seed = ((a * 73) + (b * 37)) % 1000;\n return Math.abs(seed);\n}\n\n// Helper function to check if a number is prime\nfunction isPrime(n: number): boolean {\n if (n <= 1) return false;\n if (n <= 3) return true;\n if (n % 2 === 0 || n % 3 === 0) return false;\n for (let i = 5; i * i <= n; i += 6) {\n if (n % i === 0 || n % (i + 2) === 0) return false;\n }\n return true;\n}\n\n// Helper function to find the next prime number\nfunction findNextPrime(n: number): number {\n if (n < 2) return 2;\n let candidate = Math.ceil(n);\n while (!isPrime(candidate)) {\n candidate++;\n }\n return candidate;\n}\n\n// Helper function to find nearest Fibonacci number\nfunction findNearestFibonacci(n: number): number {\n const fibSeq = [0, 1];\n while (fibSeq[fibSeq.length - 1] < Math.abs(n)) {\n fibSeq.push(fibSeq[fibSeq.length - 1] + fibSeq[fibSeq.length - 2]);\n }\n \n const lastFib = fibSeq[fibSeq.length - 1];\n const prevFib = fibSeq[fibSeq.length - 2];\n \n return Math.abs(n - lastFib) < Math.abs(n - prevFib) ? lastFib : prevFib;\n}\n\n// Helper to safely parse numbers from state\nfunction getStateValue(state: State | undefined, key: string, defaultValue: number = 0): number {\n const value = state?.values?.[key];\n if (typeof value === \"number\") return value;\n if (typeof value === \"string\") {\n const parsed = parseFloat(value);\n return isNaN(parsed) ? defaultValue : parsed;\n }\n return defaultValue;\n}\n\n// Number input actions (0-9)\nfunction createNumberAction(digit: number): Action {\n return {\n name: `INPUT_${digit}`,\n similes: [`INPUT_${digit}`, `TYPE_${digit}`, `ENTER_${digit}`],\n description: `Input the number ${digit} into the current calculation buffer.`,\n validate: async () => true,\n handler: async (\n _runtime: IAgentRuntime,\n message: Memory,\n state?: State,\n _options?: Record<string, unknown>,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const currentBuffer = getStateValue(state, \"inputBuffer\", 0);\n const newBuffer = currentBuffer * 10 + digit;\n \n if (callback) {\n await callback({\n text: `Input: ${newBuffer}`,\n source: message.content.source,\n });\n }\n\n return {\n success: true,\n text: `Input: ${newBuffer}`,\n values: {\n inputBuffer: newBuffer,\n lastInput: digit,\n },\n data: {\n digit,\n buffer: newBuffer,\n },\n };\n },\n examples: [\n [\n {\n name: \"{{user}}\",\n content: { text: `input ${digit}` },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: `Input: ${digit}`,\n actions: [`INPUT_${digit}`],\n },\n },\n ],\n ] as ActionExample[][],\n };\n}\n\n// Dimension selector action\nconst selectDimensionAction: Action = {\n name: \"SELECT_DIMENSION\",\n similes: [\"DIMENSION\", \"SET_DIMENSION\", \"CHOOSE_DIMENSION\"],\n description: \"Select the dimensional constant that affects how mathematical operations behave in the multiverse.\",\n validate: async () => true,\n handler: async (\n _runtime: IAgentRuntime,\n message: Memory,\n state?: State,\n _options?: Record<string, unknown>,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n // Parse dimension from message content\n const content = message.content.text?.toLowerCase() || \"\";\n let dimension = \"standard\";\n \n if (content.includes(\"quantum\")) dimension = \"quantum\";\n else if (content.includes(\"chaos\")) dimension = \"chaos\";\n else if (content.includes(\"prime\")) dimension = \"prime\";\n else if (content.includes(\"mirror\")) dimension = \"mirror\";\n else if (content.includes(\"void\")) dimension = \"void\";\n else if (content.includes(\"absolute\")) dimension = \"absolute\";\n else if (content.includes(\"fibonacci\")) dimension = \"fibonacci\";\n else if (content.includes(\"exponential\")) dimension = \"exponential\";\n else if (content.includes(\"harmonic\")) dimension = \"harmonic\";\n else if (content.includes(\"infinite\")) dimension = \"infinite\";\n else if (content.includes(\"golden\")) dimension = \"golden\";\n else if (content.includes(\"spiral\")) dimension = \"spiral\";\n else if (content.includes(\"fractal\")) dimension = \"fractal\";\n else if (content.includes(\"cyclical\")) dimension = \"cyclical\";\n \n const text = `Dimension set to: ${dimension}`;\n \n if (callback) {\n await callback({ text, source: message.content.source });\n }\n\n return {\n success: true,\n text,\n values: {\n ...state?.values,\n dimension,\n },\n data: {\n dimension,\n },\n };\n },\n examples: [\n [\n {\n name: \"{{user}}\",\n content: { text: \"set dimension to quantum\" },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"Dimension set to: quantum\",\n actions: [\"SELECT_DIMENSION\"],\n },\n },\n ],\n ] as ActionExample[][],\n};\n\n// Multiverse Add Action\nconst multiverseAddAction: Action = {\n name: \"MULTIVERSE_ADD\",\n similes: [\"M_ADD\", \"MULTI_ADD\", \"DIMENSIONAL_ADD\"],\n description: \"Performs addition in the multiverse where numbers behave differently based on dimensional constants (prime, quantum, or chaos).\",\n validate: async () => true,\n handler: async (\n _runtime: IAgentRuntime,\n message: Memory,\n state?: State,\n _options?: Record<string, unknown>,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const a = getStateValue(state, \"accumulator\", 0);\n const b = getStateValue(state, \"inputBuffer\", 0);\n const dimension = state?.values?.dimension || \"prime\";\n \n let result: number;\n let explanation: string;\n \n switch (dimension) {\n case \"quantum\":\n // In quantum dimension, addition creates superposition\n result = a + b + Math.sqrt(Math.abs(a * b));\n explanation = `In quantum dimension: ${a} + ${b} = ${result} (includes quantum entanglement factor √(${a}×${b}))`;\n break;\n case \"chaos\":\n // In chaos dimension, results are unpredictable but deterministic\n const seed = generateMultiverseSeed(a, b);\n result = a + b + (seed % 10);\n explanation = `In chaos dimension: ${a} + ${b} = ${result} (chaos factor: ${seed % 10})`;\n break;\n case \"prime\":\n default:\n // In prime dimension, only prime numbers truly exist\n const standardResult = a + b;\n const nextPrime = findNextPrime(Math.abs(standardResult));\n result = standardResult < 0 ? -nextPrime : nextPrime;\n explanation = `In prime dimension: ${a} + ${b} = ${result} (elevated to nearest prime from ${standardResult})`;\n break;\n }\n \n result = Math.round(result * 1000) / 1000; // Round to 3 decimal places\n \n if (callback) {\n await callback({ text: explanation, source: message.content.source });\n }\n\n return {\n success: true,\n text: explanation,\n values: {\n accumulator: result,\n inputBuffer: 0,\n lastOperation: \"multiverse_add\",\n dimension,\n history: [...(state?.values?.history || []), explanation],\n },\n data: {\n operation: \"multiverse_add\",\n inputs: { a, b, dimension },\n result,\n explanation,\n timestamp: new Date().toISOString(),\n },\n };\n },\n examples: [\n [\n {\n name: \"{{user}}\",\n content: { text: \"add in quantum dimension\" },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"In quantum dimension: 0 + 0 = 0 (includes quantum entanglement factor √(0×0))\",\n actions: [\"MULTIVERSE_ADD\"],\n },\n },\n ],\n ] as ActionExample[][],\n};\n\n// Multiverse Subtract Action\nconst multiverseSubtractAction: Action = {\n name: \"MULTIVERSE_SUBTRACT\",\n similes: [\"M_SUBTRACT\", \"MULTI_SUB\", \"DIMENSIONAL_SUBTRACT\"],\n description: \"Performs subtraction in the multiverse where negative numbers might not exist in some dimensions (absolute, mirror, or void).\",\n validate: async () => true,\n handler: async (\n _runtime: IAgentRuntime,\n message: Memory,\n state?: State,\n _options?: Record<string, unknown>,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const a = getStateValue(state, \"accumulator\", 0);\n const b = getStateValue(state, \"inputBuffer\", 0);\n const dimension = state?.values?.dimension || \"absolute\";\n \n let result: number;\n let explanation: string;\n \n switch (dimension) {\n case \"mirror\":\n // In mirror dimension, subtraction reflects across zero\n result = Math.abs(a - b) * (a > b ? 1 : -1) * 2;\n explanation = `In mirror dimension: ${a} - ${b} = ${result} (reflected subtraction)`;\n break;\n case \"void\":\n // In void dimension, subtraction creates voids (always positive)\n result = Math.abs(a - b) + Math.min(a, b);\n explanation = `In void dimension: ${a} - ${b} = ${result} (void compensation: +${Math.min(a, b)})`;\n break;\n case \"absolute\":\n default:\n // In absolute dimension, negative numbers don't exist\n result = Math.abs(a - b);\n explanation = `In absolute dimension: ${a} - ${b} = ${result} (absolute value universe)`;\n break;\n }\n \n result = Math.round(result * 1000) / 1000;\n \n if (callback) {\n await callback({ text: explanation, source: message.content.source });\n }\n\n return {\n success: true,\n text: explanation,\n values: {\n accumulator: result,\n inputBuffer: 0,\n lastOperation: \"multiverse_subtract\",\n dimension,\n history: [...(state?.values?.history || []), explanation],\n },\n data: {\n operation: \"multiverse_subtract\",\n inputs: { a, b, dimension },\n result,\n explanation,\n timestamp: new Date().toISOString(),\n },\n };\n },\n examples: [\n [\n {\n name: \"{{user}}\",\n content: { text: \"subtract in mirror dimension\" },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"In mirror dimension: 0 - 0 = 0 (reflected subtraction)\",\n actions: [\"MULTIVERSE_SUBTRACT\"],\n },\n },\n ],\n ] as ActionExample[][],\n};\n\n// Multiverse Multiply Action\nconst multiverseMultiplyAction: Action = {\n name: \"MULTIVERSE_MULTIPLY\",\n similes: [\"M_MULTIPLY\", \"MULTI_MUL\", \"DIMENSIONAL_MULTIPLY\"],\n description: \"Performs multiplication across dimensional boundaries with exotic number behaviors (fibonacci, exponential, or harmonic).\",\n validate: async () => true,\n handler: async (\n _runtime: IAgentRuntime,\n message: Memory,\n state?: State,\n _options?: Record<string, unknown>,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const a = getStateValue(state, \"accumulator\", 1);\n const b = getStateValue(state, \"inputBuffer\", 1);\n const dimension = state?.values?.dimension || \"fibonacci\";\n \n let result: number;\n let explanation: string;\n \n switch (dimension) {\n case \"exponential\":\n // In exponential dimension, multiplication compounds\n result = Math.pow(Math.abs(a), Math.abs(b)) * (a < 0 || b < 0 ? -1 : 1);\n explanation = `In exponential dimension: ${a} × ${b} = ${result} (actually ${a}^${b})`;\n break;\n case \"harmonic\":\n // In harmonic dimension, multiplication creates harmonics\n const harmonic = (a * b) + ((a + b) / 2);\n result = harmonic;\n explanation = `In harmonic dimension: ${a} × ${b} = ${result} (includes harmonic mean)`;\n break;\n case \"fibonacci\":\n default:\n // In fibonacci dimension, results snap to fibonacci numbers\n const standard = a * b;\n result = findNearestFibonacci(standard) * (standard < 0 ? -1 : 1);\n explanation = `In fibonacci dimension: ${a} × ${b} = ${result} (nearest Fibonacci to ${standard})`;\n break;\n }\n \n result = Math.round(result * 1000) / 1000;\n \n if (callback) {\n await callback({ text: explanation, source: message.content.source });\n }\n\n return {\n success: true,\n text: explanation,\n values: {\n accumulator: result,\n inputBuffer: 0,\n lastOperation: \"multiverse_multiply\",\n dimension,\n history: [...(state?.values?.history || []), explanation],\n },\n data: {\n operation: \"multiverse_multiply\",\n inputs: { a, b, dimension },\n result,\n explanation,\n timestamp: new Date().toISOString(),\n },\n };\n },\n examples: [\n [\n {\n name: \"{{user}}\",\n content: { text: \"multiply in exponential dimension\" },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"In exponential dimension: 1 × 1 = 1 (actually 1^1)\",\n actions: [\"MULTIVERSE_MULTIPLY\"],\n },\n },\n ],\n ] as ActionExample[][],\n};\n\n// Multiverse Divide Action\nconst multiverseDivideAction: Action = {\n name: \"MULTIVERSE_DIVIDE\",\n similes: [\"M_DIVIDE\", \"MULTI_DIV\", \"DIMENSIONAL_DIVIDE\"],\n description: \"Performs division in the multiverse where infinity and zero have special meanings (safe, infinite, or golden).\",\n validate: async () => true,\n handler: async (\n _runtime: IAgentRuntime,\n message: Memory,\n state?: State,\n _options?: Record<string, unknown>,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const a = getStateValue(state, \"accumulator\", 0);\n const b = getStateValue(state, \"inputBuffer\", 1);\n const dimension = state?.values?.dimension || \"safe\";\n \n let result: number;\n let explanation: string;\n \n switch (dimension) {\n case \"infinite\":\n // In infinite dimension, division by zero opens portals\n if (b === 0) {\n result = a * 999; // Portal multiplier\n explanation = `In infinite dimension: ${a} ÷ 0 = ${result} (portal opened!)`;\n } else {\n result = (a / b) * Math.PI;\n explanation = `In infinite dimension: ${a} ÷ ${b} = ${result} (π-scaled)`;\n }\n break;\n case \"golden\":\n // In golden dimension, all division tends toward golden ratio\n const goldenRatio = 1.618033988749895;\n const standard = b === 0 ? 0 : a / b;\n result = (standard + goldenRatio) / 2;\n explanation = `In golden dimension: ${a} ÷ ${b} = ${result} (converging to φ)`;\n break;\n case \"safe\":\n default:\n // In safe dimension, division by zero returns the dividend\n result = b === 0 ? a : a / b;\n explanation = b === 0 \n ? `In safe dimension: ${a} ÷ 0 = ${a} (safe division, returns dividend)`\n : `In safe dimension: ${a} ÷ ${b} = ${result} (standard division)`;\n break;\n }\n \n result = Math.round(result * 1000) / 1000;\n \n if (callback) {\n await callback({ text: explanation, source: message.content.source });\n }\n\n return {\n success: true,\n text: explanation,\n values: {\n accumulator: result,\n inputBuffer: 0,\n lastOperation: \"multiverse_divide\",\n dimension,\n history: [...(state?.values?.history || []), explanation],\n },\n data: {\n operation: \"multiverse_divide\",\n inputs: { a, b, dimension },\n result,\n explanation,\n timestamp: new Date().toISOString(),\n },\n };\n },\n examples: [\n [\n {\n name: \"{{user}}\",\n content: { text: \"divide in golden dimension\" },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"In golden dimension: 0 ÷ 1 = 0.809 (converging to φ)\",\n actions: [\"MULTIVERSE_DIVIDE\"],\n },\n },\n ],\n ] as ActionExample[][],\n};\n\n// Multiverse Modulo Action\nconst multiverseModuloAction: Action = {\n name: \"MULTIVERSE_MODULO\",\n similes: [\"M_MODULO\", \"MULTI_MOD\", \"DIMENSIONAL_MODULO\"],\n description: \"Performs modulo operation in the multiverse with cyclical dimensional properties (cyclical, spiral, or fractal).\",\n validate: async (_runtime: IAgentRuntime, _message: Memory, state?: State) => {\n const b = getStateValue(state, \"inputBuffer\", 1);\n return b !== 0;\n },\n handler: async (\n _runtime: IAgentRuntime,\n message: Memory,\n state?: State,\n _options?: Record<string, unknown>,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const a = getStateValue(state, \"accumulator\", 0);\n const b = getStateValue(state, \"inputBuffer\", 1);\n const dimension = state?.values?.dimension || \"cyclical\";\n \n let result: number;\n let explanation: string;\n \n if (b === 0) {\n return {\n success: false,\n text: \"Error: Cannot modulo by zero\",\n values: state?.values || {},\n };\n }\n \n switch (dimension) {\n case \"spiral\":\n // In spiral dimension, modulo creates spiraling patterns\n const spiralFactor = Math.sin(a) * Math.cos(b);\n result = Math.abs((a % b) + spiralFactor * 10);\n explanation = `In spiral dimension: ${a} % ${b} = ${result} (spiral factor: ${spiralFactor.toFixed(2)})`;\n break;\n case \"fractal\":\n // In fractal dimension, modulo is self-similar at all scales\n const iterations = 3;\n result = a % b;\n for (let i = 0; i < iterations; i++) {\n result = (result * 2) % (b + i);\n }\n explanation = `In fractal dimension: ${a} % ${b} = ${result} (after ${iterations} fractal iterations)`;\n break;\n case \"cyclical\":\n default:\n // In cyclical dimension, modulo creates perfect cycles\n result = a % b;\n if (result < 0) result += b; // Always positive in cyclical dimension\n explanation = `In cyclical dimension: ${a} % ${b} = ${result} (perfect cycle)`;\n break;\n }\n \n result = Math.round(result * 100) / 100;\n \n if (callback) {\n await callback({ text: explanation, source: message.content.source });\n }\n\n return {\n success: true,\n text: explanation,\n values: {\n accumulator: result,\n inputBuffer: 0,\n lastOperation: \"multiverse_modulo\",\n dimension,\n history: [...(state?.values?.history || []), explanation],\n },\n data: {\n operation: \"multiverse_modulo\",\n inputs: { a, b, dimension },\n result,\n explanation,\n timestamp: new Date().toISOString(),\n },\n };\n },\n examples: [\n [\n {\n name: \"{{user}}\",\n content: { text: \"modulo in fractal dimension\" },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"In fractal dimension: 0 % 1 = 0 (after 3 fractal iterations)\",\n actions: [\"MULTIVERSE_MODULO\"],\n },\n },\n ],\n ] as ActionExample[][],\n};\n\n// Multiverse Power Action\nconst multiversePowerAction: Action = {\n name: \"MULTIVERSE_POWER\",\n similes: [\"M_POWER\", \"MULTI_POW\", \"DIMENSIONAL_POWER\"],\n description: \"Raises numbers to powers in the multiverse with dimensional effects (standard, imaginary, or recursive).\",\n validate: async () => true,\n handler: async (\n _runtime: IAgentRuntime,\n message: Memory,\n state?: State,\n _options?: Record<string, unknown>,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const a = getStateValue(state, \"accumulator\", 0);\n const b = getStateValue(state, \"inputBuffer\", 2);\n const dimension = state?.values?.dimension || \"standard\";\n \n let result: number;\n let explanation: string;\n \n switch (dimension) {\n case \"imaginary\":\n // In imaginary dimension, powers oscillate\n const oscillation = Math.cos(b * Math.PI / 2);\n result = Math.pow(Math.abs(a), b) * oscillation;\n explanation = `In imaginary dimension: ${a}^${b} = ${result} (oscillation factor: ${oscillation.toFixed(2)})`;\n break;\n case \"recursive\":\n // In recursive dimension, power is applied iteratively\n result = a;\n for (let i = 0; i < Math.min(Math.abs(b), 5); i++) {\n result = Math.pow(result, 1.5);\n }\n explanation = `In recursive dimension: ${a}^${b} = ${result} (${Math.min(Math.abs(b), 5)} recursive applications)`;\n break;\n case \"standard\":\n default:\n result = Math.pow(a, b);\n explanation = `In standard dimension: ${a}^${b} = ${result}`;\n break;\n }\n \n result = Math.round(result * 1000) / 1000;\n \n if (callback) {\n await callback({ text: explanation, source: message.content.source });\n }\n\n return {\n success: true,\n text: explanation,\n values: {\n accumulator: result,\n inputBuffer: 0,\n lastOperation: \"multiverse_power\",\n dimension,\n history: [...(state?.values?.history || []), explanation],\n },\n data: {\n operation: \"multiverse_power\",\n inputs: { a, b, dimension },\n result,\n explanation,\n timestamp: new Date().toISOString(),\n },\n };\n },\n examples: [\n [\n {\n name: \"{{user}}\",\n content: { text: \"power in imaginary dimension\" },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"In imaginary dimension: 0^2 = 0 (oscillation factor: -1.00)\",\n actions: [\"MULTIVERSE_POWER\"],\n },\n },\n ],\n ] as ActionExample[][],\n};\n\n// Multiverse Square Root Action\nconst multiverseSqrtAction: Action = {\n name: \"MULTIVERSE_SQRT\",\n similes: [\"M_SQRT\", \"MULTI_ROOT\", \"DIMENSIONAL_SQRT\"],\n description: \"Takes square root in the multiverse with dimensional variations (positive, complex, or quantum).\",\n validate: async () => true,\n handler: async (\n _runtime: IAgentRuntime,\n message: Memory,\n state?: State,\n _options?: Record<string, unknown>,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const a = getStateValue(state, \"accumulator\", 0);\n const dimension = state?.values?.dimension || \"positive\";\n \n let result: number;\n let explanation: string;\n \n switch (dimension) {\n case \"complex\":\n // In complex dimension, negative numbers have positive roots\n result = Math.sqrt(Math.abs(a));\n if (a < 0) {\n explanation = `In complex dimension: √${a} = ${result}i (imaginary component)`;\n } else {\n explanation = `In complex dimension: √${a} = ${result} (real component)`;\n }\n break;\n case \"quantum\":\n // In quantum dimension, square root creates superposition\n const superposition = Math.sqrt(Math.abs(a)) + (Math.random() - 0.5) * 0.1;\n result = Math.abs(superposition);\n explanation = `In quantum dimension: √${a} = ${result} (quantum fluctuation)`;\n break;\n case \"positive\":\n default:\n // In positive dimension, always returns positive\n result = Math.sqrt(Math.abs(a));\n explanation = `In positive dimension: √${a} = ${result} (absolute square root)`;\n break;\n }\n \n result = Math.round(result * 1000) / 1000;\n \n if (callback) {\n await callback({ text: explanation, source: message.content.source });\n }\n\n return {\n success: true,\n text: explanation,\n values: {\n accumulator: result,\n lastOperation: \"multiverse_sqrt\",\n dimension,\n history: [...(state?.values?.history || []), explanation],\n },\n data: {\n operation: \"multiverse_sqrt\",\n inputs: { a, dimension },\n result,\n explanation,\n timestamp: new Date().toISOString(),\n },\n };\n },\n examples: [\n [\n {\n name: \"{{user}}\",\n content: { text: \"square root in complex dimension\" },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"In complex dimension: √0 = 0 (real component)\",\n actions: [\"MULTIVERSE_SQRT\"],\n },\n },\n ],\n ] as ActionExample[][],\n};\n\n// Utility actions\nconst clearAction: Action = {\n name: \"MATH_CLEAR\",\n similes: [\"CLEAR\", \"RESET\", \"CLEAR_ALL\"],\n description: \"Clear all calculation buffers and reset to zero.\",\n validate: async () => true,\n handler: async (\n _runtime: IAgentRuntime,\n message: Memory,\n _state?: State,\n _options?: Record<string, unknown>,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const text = \"Cleared all buffers\";\n \n if (callback) {\n await callback({ text, source: message.content.source });\n }\n\n return {\n success: true,\n text,\n values: {\n accumulator: 0,\n inputBuffer: 0,\n lastOperation: \"clear\",\n dimension: \"standard\",\n history: [],\n },\n data: {\n operation: \"clear\",\n },\n };\n },\n examples: [\n [\n {\n name: \"{{user}}\",\n content: { text: \"clear\" },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"Cleared all buffers\",\n actions: [\"MATH_CLEAR\"],\n },\n },\n ],\n ] as ActionExample[][],\n};\n\nconst storeAction: Action = {\n name: \"MATH_STORE\",\n similes: [\"STORE\", \"SAVE\", \"MEMORY_STORE\"],\n description: \"Store current accumulator value to memory.\",\n validate: async () => true,\n handler: async (\n _runtime: IAgentRuntime,\n message: Memory,\n state?: State,\n _options?: Record<string, unknown>,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const accumulator = getStateValue(state, \"accumulator\", 0);\n const text = `Stored ${accumulator} to memory`;\n \n if (callback) {\n await callback({ text, source: message.content.source });\n }\n\n return {\n success: true,\n text,\n values: {\n ...state?.values,\n memory: accumulator,\n lastOperation: \"store\",\n },\n data: {\n operation: \"store\",\n value: accumulator,\n },\n };\n },\n examples: [\n [\n {\n name: \"{{user}}\",\n content: { text: \"store to memory\" },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"Stored 0 to memory\",\n actions: [\"MATH_STORE\"],\n },\n },\n ],\n ] as ActionExample[][],\n};\n\nconst recallAction: Action = {\n name: \"MATH_RECALL\",\n similes: [\"RECALL\", \"LOAD\", \"MEMORY_RECALL\"],\n description: \"Recall value from memory to input buffer.\",\n validate: async () => true,\n handler: async (\n _runtime: IAgentRuntime,\n message: Memory,\n state?: State,\n _options?: Record<string, unknown>,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const memory = getStateValue(state, \"memory\", 0);\n const text = `Recalled ${memory} from memory`;\n \n if (callback) {\n await callback({ text, source: message.content.source });\n }\n\n return {\n success: true,\n text,\n values: {\n ...state?.values,\n inputBuffer: memory,\n lastOperation: \"recall\",\n },\n data: {\n operation: \"recall\",\n value: memory,\n },\n };\n },\n examples: [\n [\n {\n name: \"{{user}}\",\n content: { text: \"recall from memory\" },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"Recalled 0 from memory\",\n actions: [\"MATH_RECALL\"],\n },\n },\n ],\n ] as ActionExample[][],\n};\n\n// Transfer accumulator to input buffer\nconst transferAction: Action = {\n name: \"TRANSFER_TO_INPUT\",\n similes: [\"TRANSFER\", \"MOVE_TO_INPUT\", \"ACCUMULATOR_TO_INPUT\"],\n description: \"Transfer accumulator value to input buffer for next operation.\",\n validate: async () => true,\n handler: async (\n _runtime: IAgentRuntime,\n message: Memory,\n state?: State,\n _options?: Record<string, unknown>,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const accumulator = getStateValue(state, \"accumulator\", 0);\n const text = `Transferred ${accumulator} from accumulator to input buffer`;\n \n if (callback) {\n await callback({ text, source: message.content.source });\n }\n\n return {\n success: true,\n text,\n values: {\n ...state?.values,\n inputBuffer: accumulator,\n accumulator: 0,\n lastOperation: \"transfer\",\n },\n data: {\n operation: \"transfer\",\n value: accumulator,\n },\n };\n },\n examples: [\n [\n {\n name: \"{{user}}\",\n content: { text: \"transfer to input\" },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"Transferred 0 from accumulator to input buffer\",\n actions: [\"TRANSFER_TO_INPUT\"],\n },\n },\n ],\n ] as ActionExample[][],\n};\n\n// Export all multiverse math actions\nexport const multiverseMathActions: Action[] = [\n // Number inputs\n ...Array.from({ length: 10 }, (_, i) => createNumberAction(i)),\n // Dimension selector\n selectDimensionAction,\n // Multiverse operations\n multiverseAddAction,\n multiverseSubtractAction,\n multiverseMultiplyAction,\n multiverseDivideAction,\n multiverseModuloAction,\n multiversePowerAction,\n multiverseSqrtAction,\n // Utility operations\n clearAction,\n storeAction,\n recallAction,\n transferAction,\n];","import type { Plugin } from \"@elizaos/core\";\nimport { typewriterActions } from \"./actions/typewriter\";\nimport { multiverseMathActions } from \"./actions/multiverseMath\";\n\n// Export with the expected naming convention\nexport const actionBenchPlugin: Plugin = {\n name: \"plugin-action-bench\",\n description:\n \"Action benchmark plugin providing typewriter (A–Z) and multiverse math operations where mathematical behavior changes based on dimensional constants, testing AI agents' ability to handle context-dependent operations and unknown mathematical scenarios.\",\n actions: [...typewriterActions, ...multiverseMathActions],\n};\n// Default export\nexport default actionBenchPlugin;\n"]}
|
1
|
+
{"version":3,"sources":["../src/actions/typewriter.ts","../src/actions/multiverseMath.ts","../src/index.ts"],"names":[],"mappings":"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","file":"index.cjs","sourcesContent":["import type {\n Action,\n ActionExample,\n ActionResult,\n HandlerCallback,\n IAgentRuntime,\n Memory,\n State,\n} from \"@elizaos/core\";\n\ntype TypewriterLetter =\n | \"a\" | \"b\" | \"c\" | \"d\" | \"e\" | \"f\" | \"g\" | \"h\" | \"i\" | \"j\" | \"k\" | \"l\" | \"m\"\n | \"n\" | \"o\" | \"p\" | \"q\" | \"r\" | \"s\" | \"t\" | \"u\" | \"v\" | \"w\" | \"x\" | \"y\" | \"z\";\n\nfunction createLetterAction(letter: TypewriterLetter): Action {\n const upper = letter.toUpperCase();\n\n return {\n name: `TYPE_${upper}`,\n similes: [`TYPE_${upper}`, `TYPE_${letter}`],\n description: `Type the letter '${letter}' and append it to the accumulating typed text for benchmarking action chaining.`,\n validate: async (_runtime: IAgentRuntime, _message: Memory, _state?: State) => {\n return true;\n },\n handler: async (\n _runtime: IAgentRuntime,\n message: Memory,\n state?: State,\n _options?: Record<string, unknown>,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const current = state?.values?.typedText ?? \"\";\n const next = `${current}${letter}`;\n\n // Optional immediate feedback for visibility during bench runs\n if (callback) {\n await callback({\n text: next,\n source: message.content.source,\n });\n }\n\n return {\n success: true,\n text: next,\n values: {\n typedText: next,\n },\n data: {\n letter,\n length: next.length,\n },\n } satisfies ActionResult;\n },\n examples: [\n [\n {\n name: \"{{user}}\",\n content: { text: `type '${letter}'` },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: letter,\n actions: [`TYPE_${upper}`],\n },\n },\n ],\n ] as ActionExample[][],\n } as Action;\n}\n\nexport const typewriterActions: Action[] = (\n \"abcdefghijklmnopqrstuvwxyz\".split(\"\") as TypewriterLetter[]\n).map(createLetterAction);\n\n\n","import type {\n Action,\n ActionExample,\n ActionResult,\n HandlerCallback,\n IAgentRuntime,\n Memory,\n State,\n} from \"@elizaos/core\";\n\n// Helper function to generate a pseudo-random multiverse seed\nfunction generateMultiverseSeed(a: number, b: number): number {\n const seed = ((a * 73) + (b * 37)) % 1000;\n return Math.abs(seed);\n}\n\n// Helper function to check if a number is prime\nfunction isPrime(n: number): boolean {\n if (n <= 1) return false;\n if (n <= 3) return true;\n if (n % 2 === 0 || n % 3 === 0) return false;\n for (let i = 5; i * i <= n; i += 6) {\n if (n % i === 0 || n % (i + 2) === 0) return false;\n }\n return true;\n}\n\n// Helper function to find the next prime number\nfunction findNextPrime(n: number): number {\n if (n < 2) return 2;\n let candidate = Math.ceil(n);\n while (!isPrime(candidate)) {\n candidate++;\n }\n return candidate;\n}\n\n// Helper function to find nearest Fibonacci number\nfunction findNearestFibonacci(n: number): number {\n const fibSeq = [0, 1];\n while (fibSeq[fibSeq.length - 1] < Math.abs(n)) {\n fibSeq.push(fibSeq[fibSeq.length - 1] + fibSeq[fibSeq.length - 2]);\n }\n \n const lastFib = fibSeq[fibSeq.length - 1];\n const prevFib = fibSeq[fibSeq.length - 2];\n \n return Math.abs(n - lastFib) < Math.abs(n - prevFib) ? lastFib : prevFib;\n}\n\n// Helper to safely parse numbers from state\nfunction getStateValue(state: State | undefined, key: string, defaultValue: number = 0): number {\n const value = state?.values?.[key];\n if (typeof value === \"number\") return value;\n if (typeof value === \"string\") {\n const parsed = parseFloat(value);\n return isNaN(parsed) ? defaultValue : parsed;\n }\n return defaultValue;\n}\n\n// Number input actions (0-9)\nfunction createNumberAction(digit: number): Action {\n return {\n name: `INPUT_${digit}`,\n similes: [`INPUT_${digit}`, `TYPE_${digit}`, `ENTER_${digit}`],\n description: `Input the number ${digit} into the current calculation buffer.`,\n validate: async () => true,\n handler: async (\n _runtime: IAgentRuntime,\n message: Memory,\n state?: State,\n _options?: Record<string, unknown>,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const currentBuffer = getStateValue(state, \"inputBuffer\", 0);\n const newBuffer = currentBuffer * 10 + digit;\n \n if (callback) {\n await callback({\n text: `Input: ${newBuffer}`,\n source: message.content.source,\n });\n }\n\n return {\n success: true,\n text: `Input: ${newBuffer}`,\n values: {\n inputBuffer: newBuffer,\n lastInput: digit,\n },\n data: {\n digit,\n buffer: newBuffer,\n },\n };\n },\n examples: [\n [\n {\n name: \"{{user}}\",\n content: { text: `input ${digit}` },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: `Input: ${digit}`,\n actions: [`INPUT_${digit}`],\n },\n },\n ],\n ] as ActionExample[][],\n };\n}\n\n// Dimension selector action\nconst selectDimensionAction: Action = {\n name: \"SELECT_DIMENSION\",\n similes: [\"DIMENSION\", \"SET_DIMENSION\", \"CHOOSE_DIMENSION\"],\n description: \"Select the dimensional constant that affects how mathematical operations behave in the multiverse.\",\n validate: async () => true,\n handler: async (\n _runtime: IAgentRuntime,\n message: Memory,\n state?: State,\n _options?: Record<string, unknown>,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n // Parse dimension from message content\n const content = message.content.text?.toLowerCase() || \"\";\n let dimension = \"standard\";\n \n if (content.includes(\"quantum\")) dimension = \"quantum\";\n else if (content.includes(\"chaos\")) dimension = \"chaos\";\n else if (content.includes(\"prime\")) dimension = \"prime\";\n else if (content.includes(\"mirror\")) dimension = \"mirror\";\n else if (content.includes(\"void\")) dimension = \"void\";\n else if (content.includes(\"absolute\")) dimension = \"absolute\";\n else if (content.includes(\"fibonacci\")) dimension = \"fibonacci\";\n else if (content.includes(\"exponential\")) dimension = \"exponential\";\n else if (content.includes(\"harmonic\")) dimension = \"harmonic\";\n else if (content.includes(\"infinite\")) dimension = \"infinite\";\n else if (content.includes(\"golden\")) dimension = \"golden\";\n else if (content.includes(\"spiral\")) dimension = \"spiral\";\n else if (content.includes(\"fractal\")) dimension = \"fractal\";\n else if (content.includes(\"cyclical\")) dimension = \"cyclical\";\n \n const text = `Dimension set to: ${dimension}`;\n \n if (callback) {\n await callback({ text, source: message.content.source });\n }\n\n return {\n success: true,\n text,\n values: {\n ...state?.values,\n dimension,\n },\n data: {\n dimension,\n },\n };\n },\n examples: [\n [\n {\n name: \"{{user}}\",\n content: { text: \"set dimension to quantum\" },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"Dimension set to: quantum\",\n actions: [\"SELECT_DIMENSION\"],\n },\n },\n ],\n ] as ActionExample[][],\n};\n\n// Multiverse Add Action\nconst multiverseAddAction: Action = {\n name: \"MULTIVERSE_ADD\",\n similes: [\"M_ADD\", \"MULTI_ADD\", \"DIMENSIONAL_ADD\"],\n description: \"Performs addition in the multiverse where numbers behave differently based on dimensional constants (prime, quantum, or chaos).\",\n validate: async () => true,\n handler: async (\n _runtime: IAgentRuntime,\n message: Memory,\n state?: State,\n _options?: Record<string, unknown>,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const a = getStateValue(state, \"accumulator\", 0);\n const b = getStateValue(state, \"inputBuffer\", 0);\n const dimension = state?.values?.dimension || \"prime\";\n \n let result: number;\n let explanation: string;\n \n switch (dimension) {\n case \"quantum\":\n // In quantum dimension, addition creates superposition\n result = a + b + Math.sqrt(Math.abs(a * b));\n explanation = `In quantum dimension: ${a} + ${b} = ${result} (includes quantum entanglement factor √(${a}×${b}))`;\n break;\n case \"chaos\":\n // In chaos dimension, results are unpredictable but deterministic\n const seed = generateMultiverseSeed(a, b);\n result = a + b + (seed % 10);\n explanation = `In chaos dimension: ${a} + ${b} = ${result} (chaos factor: ${seed % 10})`;\n break;\n case \"prime\":\n default:\n // In prime dimension, only prime numbers truly exist\n const standardResult = a + b;\n const nextPrime = findNextPrime(Math.abs(standardResult));\n result = standardResult < 0 ? -nextPrime : nextPrime;\n explanation = `In prime dimension: ${a} + ${b} = ${result} (elevated to nearest prime from ${standardResult})`;\n break;\n }\n \n result = Math.round(result * 1000) / 1000; // Round to 3 decimal places\n \n if (callback) {\n await callback({ text: explanation, source: message.content.source });\n }\n\n return {\n success: true,\n text: explanation,\n values: {\n accumulator: result,\n inputBuffer: 0,\n lastOperation: \"multiverse_add\",\n dimension,\n history: [...(state?.values?.history || []), explanation],\n },\n data: {\n operation: \"multiverse_add\",\n inputs: { a, b, dimension },\n result,\n explanation,\n timestamp: new Date().toISOString(),\n },\n };\n },\n examples: [\n [\n {\n name: \"{{user}}\",\n content: { text: \"add in quantum dimension\" },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"In quantum dimension: 0 + 0 = 0 (includes quantum entanglement factor √(0×0))\",\n actions: [\"MULTIVERSE_ADD\"],\n },\n },\n ],\n ] as ActionExample[][],\n};\n\n// Multiverse Subtract Action\nconst multiverseSubtractAction: Action = {\n name: \"MULTIVERSE_SUBTRACT\",\n similes: [\"M_SUBTRACT\", \"MULTI_SUB\", \"DIMENSIONAL_SUBTRACT\"],\n description: \"Performs subtraction in the multiverse where negative numbers might not exist in some dimensions (absolute, mirror, or void).\",\n validate: async () => true,\n handler: async (\n _runtime: IAgentRuntime,\n message: Memory,\n state?: State,\n _options?: Record<string, unknown>,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const a = getStateValue(state, \"accumulator\", 0);\n const b = getStateValue(state, \"inputBuffer\", 0);\n const dimension = state?.values?.dimension || \"absolute\";\n \n let result: number;\n let explanation: string;\n \n switch (dimension) {\n case \"mirror\":\n // In mirror dimension, subtraction reflects across zero\n result = Math.abs(a - b) * (a > b ? 1 : -1) * 2;\n explanation = `In mirror dimension: ${a} - ${b} = ${result} (reflected subtraction)`;\n break;\n case \"void\":\n // In void dimension, subtraction creates voids (always positive)\n result = Math.abs(a - b) + Math.min(a, b);\n explanation = `In void dimension: ${a} - ${b} = ${result} (void compensation: +${Math.min(a, b)})`;\n break;\n case \"absolute\":\n default:\n // In absolute dimension, negative numbers don't exist\n result = Math.abs(a - b);\n explanation = `In absolute dimension: ${a} - ${b} = ${result} (absolute value universe)`;\n break;\n }\n \n result = Math.round(result * 1000) / 1000;\n \n if (callback) {\n await callback({ text: explanation, source: message.content.source });\n }\n\n return {\n success: true,\n text: explanation,\n values: {\n accumulator: result,\n inputBuffer: 0,\n lastOperation: \"multiverse_subtract\",\n dimension,\n history: [...(state?.values?.history || []), explanation],\n },\n data: {\n operation: \"multiverse_subtract\",\n inputs: { a, b, dimension },\n result,\n explanation,\n timestamp: new Date().toISOString(),\n },\n };\n },\n examples: [\n [\n {\n name: \"{{user}}\",\n content: { text: \"subtract in mirror dimension\" },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"In mirror dimension: 0 - 0 = 0 (reflected subtraction)\",\n actions: [\"MULTIVERSE_SUBTRACT\"],\n },\n },\n ],\n ] as ActionExample[][],\n};\n\n// Multiverse Multiply Action\nconst multiverseMultiplyAction: Action = {\n name: \"MULTIVERSE_MULTIPLY\",\n similes: [\"M_MULTIPLY\", \"MULTI_MUL\", \"DIMENSIONAL_MULTIPLY\"],\n description: \"Performs multiplication across dimensional boundaries with exotic number behaviors (fibonacci, exponential, or harmonic).\",\n validate: async () => true,\n handler: async (\n _runtime: IAgentRuntime,\n message: Memory,\n state?: State,\n _options?: Record<string, unknown>,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const a = getStateValue(state, \"accumulator\", 1);\n const b = getStateValue(state, \"inputBuffer\", 1);\n const dimension = state?.values?.dimension || \"fibonacci\";\n \n let result: number;\n let explanation: string;\n \n switch (dimension) {\n case \"exponential\":\n // In exponential dimension, multiplication compounds\n result = Math.pow(Math.abs(a), Math.abs(b)) * (a < 0 || b < 0 ? -1 : 1);\n explanation = `In exponential dimension: ${a} × ${b} = ${result} (actually ${a}^${b})`;\n break;\n case \"harmonic\":\n // In harmonic dimension, multiplication creates harmonics\n const harmonic = (a * b) + ((a + b) / 2);\n result = harmonic;\n explanation = `In harmonic dimension: ${a} × ${b} = ${result} (includes harmonic mean)`;\n break;\n case \"fibonacci\":\n default:\n // In fibonacci dimension, results snap to fibonacci numbers\n const standard = a * b;\n result = findNearestFibonacci(standard) * (standard < 0 ? -1 : 1);\n explanation = `In fibonacci dimension: ${a} × ${b} = ${result} (nearest Fibonacci to ${standard})`;\n break;\n }\n \n result = Math.round(result * 1000) / 1000;\n \n if (callback) {\n await callback({ text: explanation, source: message.content.source });\n }\n\n return {\n success: true,\n text: explanation,\n values: {\n accumulator: result,\n inputBuffer: 0,\n lastOperation: \"multiverse_multiply\",\n dimension,\n history: [...(state?.values?.history || []), explanation],\n },\n data: {\n operation: \"multiverse_multiply\",\n inputs: { a, b, dimension },\n result,\n explanation,\n timestamp: new Date().toISOString(),\n },\n };\n },\n examples: [\n [\n {\n name: \"{{user}}\",\n content: { text: \"multiply in exponential dimension\" },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"In exponential dimension: 1 × 1 = 1 (actually 1^1)\",\n actions: [\"MULTIVERSE_MULTIPLY\"],\n },\n },\n ],\n ] as ActionExample[][],\n};\n\n// Multiverse Divide Action\nconst multiverseDivideAction: Action = {\n name: \"MULTIVERSE_DIVIDE\",\n similes: [\"M_DIVIDE\", \"MULTI_DIV\", \"DIMENSIONAL_DIVIDE\"],\n description: \"Performs division in the multiverse where infinity and zero have special meanings (safe, infinite, or golden).\",\n validate: async () => true,\n handler: async (\n _runtime: IAgentRuntime,\n message: Memory,\n state?: State,\n _options?: Record<string, unknown>,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const a = getStateValue(state, \"accumulator\", 0);\n const b = getStateValue(state, \"inputBuffer\", 1);\n const dimension = state?.values?.dimension || \"safe\";\n \n let result: number;\n let explanation: string;\n \n switch (dimension) {\n case \"infinite\":\n // In infinite dimension, division by zero opens portals\n if (b === 0) {\n result = a * 999; // Portal multiplier\n explanation = `In infinite dimension: ${a} ÷ 0 = ${result} (portal opened!)`;\n } else {\n result = (a / b) * Math.PI;\n explanation = `In infinite dimension: ${a} ÷ ${b} = ${result} (π-scaled)`;\n }\n break;\n case \"golden\":\n // In golden dimension, all division tends toward golden ratio\n const goldenRatio = 1.618033988749895;\n const standard = b === 0 ? 0 : a / b;\n result = (standard + goldenRatio) / 2;\n explanation = `In golden dimension: ${a} ÷ ${b} = ${result} (converging to φ)`;\n break;\n case \"safe\":\n default:\n // In safe dimension, division by zero returns the dividend\n result = b === 0 ? a : a / b;\n explanation = b === 0 \n ? `In safe dimension: ${a} ÷ 0 = ${a} (safe division, returns dividend)`\n : `In safe dimension: ${a} ÷ ${b} = ${result} (standard division)`;\n break;\n }\n \n result = Math.round(result * 1000) / 1000;\n \n if (callback) {\n await callback({ text: explanation, source: message.content.source });\n }\n\n return {\n success: true,\n text: explanation,\n values: {\n accumulator: result,\n inputBuffer: 0,\n lastOperation: \"multiverse_divide\",\n dimension,\n history: [...(state?.values?.history || []), explanation],\n },\n data: {\n operation: \"multiverse_divide\",\n inputs: { a, b, dimension },\n result,\n explanation,\n timestamp: new Date().toISOString(),\n },\n };\n },\n examples: [\n [\n {\n name: \"{{user}}\",\n content: { text: \"divide in golden dimension\" },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"In golden dimension: 0 ÷ 1 = 0.809 (converging to φ)\",\n actions: [\"MULTIVERSE_DIVIDE\"],\n },\n },\n ],\n ] as ActionExample[][],\n};\n\n// Multiverse Modulo Action\nconst multiverseModuloAction: Action = {\n name: \"MULTIVERSE_MODULO\",\n similes: [\"M_MODULO\", \"MULTI_MOD\", \"DIMENSIONAL_MODULO\"],\n description: \"Performs modulo operation in the multiverse with cyclical dimensional properties (cyclical, spiral, or fractal).\",\n validate: async (_runtime: IAgentRuntime, _message: Memory, state?: State) => {\n const b = getStateValue(state, \"inputBuffer\", 1);\n return b !== 0;\n },\n handler: async (\n _runtime: IAgentRuntime,\n message: Memory,\n state?: State,\n _options?: Record<string, unknown>,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const a = getStateValue(state, \"accumulator\", 0);\n const b = getStateValue(state, \"inputBuffer\", 1);\n const dimension = state?.values?.dimension || \"cyclical\";\n \n let result: number;\n let explanation: string;\n \n if (b === 0) {\n return {\n success: false,\n text: \"Error: Cannot modulo by zero\",\n values: state?.values || {},\n };\n }\n \n switch (dimension) {\n case \"spiral\":\n // In spiral dimension, modulo creates spiraling patterns\n const spiralFactor = Math.sin(a) * Math.cos(b);\n result = Math.abs((a % b) + spiralFactor * 10);\n explanation = `In spiral dimension: ${a} % ${b} = ${result} (spiral factor: ${spiralFactor.toFixed(2)})`;\n break;\n case \"fractal\":\n // In fractal dimension, modulo is self-similar at all scales\n const iterations = 3;\n result = a % b;\n for (let i = 0; i < iterations; i++) {\n result = (result * 2) % (b + i);\n }\n explanation = `In fractal dimension: ${a} % ${b} = ${result} (after ${iterations} fractal iterations)`;\n break;\n case \"cyclical\":\n default:\n // In cyclical dimension, modulo creates perfect cycles\n result = a % b;\n if (result < 0) result += b; // Always positive in cyclical dimension\n explanation = `In cyclical dimension: ${a} % ${b} = ${result} (perfect cycle)`;\n break;\n }\n \n result = Math.round(result * 100) / 100;\n \n if (callback) {\n await callback({ text: explanation, source: message.content.source });\n }\n\n return {\n success: true,\n text: explanation,\n values: {\n accumulator: result,\n inputBuffer: 0,\n lastOperation: \"multiverse_modulo\",\n dimension,\n history: [...(state?.values?.history || []), explanation],\n },\n data: {\n operation: \"multiverse_modulo\",\n inputs: { a, b, dimension },\n result,\n explanation,\n timestamp: new Date().toISOString(),\n },\n };\n },\n examples: [\n [\n {\n name: \"{{user}}\",\n content: { text: \"modulo in fractal dimension\" },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"In fractal dimension: 0 % 1 = 0 (after 3 fractal iterations)\",\n actions: [\"MULTIVERSE_MODULO\"],\n },\n },\n ],\n ] as ActionExample[][],\n};\n\n// Multiverse Power Action\nconst multiversePowerAction: Action = {\n name: \"MULTIVERSE_POWER\",\n similes: [\"M_POWER\", \"MULTI_POW\", \"DIMENSIONAL_POWER\"],\n description: \"Raises numbers to powers in the multiverse with dimensional effects (standard, imaginary, or recursive).\",\n validate: async () => true,\n handler: async (\n _runtime: IAgentRuntime,\n message: Memory,\n state?: State,\n _options?: Record<string, unknown>,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const a = getStateValue(state, \"accumulator\", 0);\n const b = getStateValue(state, \"inputBuffer\", 2);\n const dimension = state?.values?.dimension || \"standard\";\n \n let result: number;\n let explanation: string;\n \n switch (dimension) {\n case \"imaginary\":\n // In imaginary dimension, powers oscillate\n const oscillation = Math.cos(b * Math.PI / 2);\n result = Math.pow(Math.abs(a), b) * oscillation;\n explanation = `In imaginary dimension: ${a}^${b} = ${result} (oscillation factor: ${oscillation.toFixed(2)})`;\n break;\n case \"recursive\":\n // In recursive dimension, power is applied iteratively\n result = a;\n for (let i = 0; i < Math.min(Math.abs(b), 5); i++) {\n result = Math.pow(result, 1.5);\n }\n explanation = `In recursive dimension: ${a}^${b} = ${result} (${Math.min(Math.abs(b), 5)} recursive applications)`;\n break;\n case \"standard\":\n default:\n result = Math.pow(a, b);\n explanation = `In standard dimension: ${a}^${b} = ${result}`;\n break;\n }\n \n result = Math.round(result * 1000) / 1000;\n \n if (callback) {\n await callback({ text: explanation, source: message.content.source });\n }\n\n return {\n success: true,\n text: explanation,\n values: {\n accumulator: result,\n inputBuffer: 0,\n lastOperation: \"multiverse_power\",\n dimension,\n history: [...(state?.values?.history || []), explanation],\n },\n data: {\n operation: \"multiverse_power\",\n inputs: { a, b, dimension },\n result,\n explanation,\n timestamp: new Date().toISOString(),\n },\n };\n },\n examples: [\n [\n {\n name: \"{{user}}\",\n content: { text: \"power in imaginary dimension\" },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"In imaginary dimension: 0^2 = 0 (oscillation factor: -1.00)\",\n actions: [\"MULTIVERSE_POWER\"],\n },\n },\n ],\n ] as ActionExample[][],\n};\n\n// Multiverse Square Root Action\nconst multiverseSqrtAction: Action = {\n name: \"MULTIVERSE_SQRT\",\n similes: [\"M_SQRT\", \"MULTI_ROOT\", \"DIMENSIONAL_SQRT\"],\n description: \"Takes square root in the multiverse with dimensional variations (positive, complex, or quantum).\",\n validate: async () => true,\n handler: async (\n _runtime: IAgentRuntime,\n message: Memory,\n state?: State,\n _options?: Record<string, unknown>,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const a = getStateValue(state, \"accumulator\", 0);\n const dimension = state?.values?.dimension || \"positive\";\n \n let result: number;\n let explanation: string;\n \n switch (dimension) {\n case \"complex\":\n // In complex dimension, negative numbers have positive roots\n result = Math.sqrt(Math.abs(a));\n if (a < 0) {\n explanation = `In complex dimension: √${a} = ${result}i (imaginary component)`;\n } else {\n explanation = `In complex dimension: √${a} = ${result} (real component)`;\n }\n break;\n case \"quantum\":\n // In quantum dimension, square root creates superposition\n const superposition = Math.sqrt(Math.abs(a)) + (Math.random() - 0.5) * 0.1;\n result = Math.abs(superposition);\n explanation = `In quantum dimension: √${a} = ${result} (quantum fluctuation)`;\n break;\n case \"positive\":\n default:\n // In positive dimension, always returns positive\n result = Math.sqrt(Math.abs(a));\n explanation = `In positive dimension: √${a} = ${result} (absolute square root)`;\n break;\n }\n \n result = Math.round(result * 1000) / 1000;\n \n if (callback) {\n await callback({ text: explanation, source: message.content.source });\n }\n\n return {\n success: true,\n text: explanation,\n values: {\n accumulator: result,\n lastOperation: \"multiverse_sqrt\",\n dimension,\n history: [...(state?.values?.history || []), explanation],\n },\n data: {\n operation: \"multiverse_sqrt\",\n inputs: { a, dimension },\n result,\n explanation,\n timestamp: new Date().toISOString(),\n },\n };\n },\n examples: [\n [\n {\n name: \"{{user}}\",\n content: { text: \"square root in complex dimension\" },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"In complex dimension: √0 = 0 (real component)\",\n actions: [\"MULTIVERSE_SQRT\"],\n },\n },\n ],\n ] as ActionExample[][],\n};\n\n// Utility actions\nconst clearAction: Action = {\n name: \"MATH_CLEAR\",\n similes: [\"CLEAR\", \"RESET\", \"CLEAR_ALL\"],\n description: \"Clear all calculation buffers and reset to zero.\",\n validate: async () => true,\n handler: async (\n _runtime: IAgentRuntime,\n message: Memory,\n _state?: State,\n _options?: Record<string, unknown>,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const text = \"Cleared all buffers\";\n \n if (callback) {\n await callback({ text, source: message.content.source });\n }\n\n return {\n success: true,\n text,\n values: {\n accumulator: 0,\n inputBuffer: 0,\n lastOperation: \"clear\",\n dimension: \"standard\",\n history: [],\n },\n data: {\n operation: \"clear\",\n },\n };\n },\n examples: [\n [\n {\n name: \"{{user}}\",\n content: { text: \"clear\" },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"Cleared all buffers\",\n actions: [\"MATH_CLEAR\"],\n },\n },\n ],\n ] as ActionExample[][],\n};\n\nconst storeAction: Action = {\n name: \"MATH_STORE\",\n similes: [\"STORE\", \"SAVE\", \"MEMORY_STORE\"],\n description: \"Store current accumulator value to memory.\",\n validate: async () => true,\n handler: async (\n _runtime: IAgentRuntime,\n message: Memory,\n state?: State,\n _options?: Record<string, unknown>,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const accumulator = getStateValue(state, \"accumulator\", 0);\n const text = `Stored ${accumulator} to memory`;\n \n if (callback) {\n await callback({ text, source: message.content.source });\n }\n\n return {\n success: true,\n text,\n values: {\n ...state?.values,\n memory: accumulator,\n lastOperation: \"store\",\n },\n data: {\n operation: \"store\",\n value: accumulator,\n },\n };\n },\n examples: [\n [\n {\n name: \"{{user}}\",\n content: { text: \"store to memory\" },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"Stored 0 to memory\",\n actions: [\"MATH_STORE\"],\n },\n },\n ],\n ] as ActionExample[][],\n};\n\nconst recallAction: Action = {\n name: \"MATH_RECALL\",\n similes: [\"RECALL\", \"LOAD\", \"MEMORY_RECALL\"],\n description: \"Recall value from memory to input buffer.\",\n validate: async () => true,\n handler: async (\n _runtime: IAgentRuntime,\n message: Memory,\n state?: State,\n _options?: Record<string, unknown>,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const memory = getStateValue(state, \"memory\", 0);\n const text = `Recalled ${memory} from memory`;\n \n if (callback) {\n await callback({ text, source: message.content.source });\n }\n\n return {\n success: true,\n text,\n values: {\n ...state?.values,\n inputBuffer: memory,\n lastOperation: \"recall\",\n },\n data: {\n operation: \"recall\",\n value: memory,\n },\n };\n },\n examples: [\n [\n {\n name: \"{{user}}\",\n content: { text: \"recall from memory\" },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"Recalled 0 from memory\",\n actions: [\"MATH_RECALL\"],\n },\n },\n ],\n ] as ActionExample[][],\n};\n\n// Transfer accumulator to input buffer\nconst transferAction: Action = {\n name: \"TRANSFER_TO_INPUT\",\n similes: [\"TRANSFER\", \"MOVE_TO_INPUT\", \"ACCUMULATOR_TO_INPUT\"],\n description: \"Transfer accumulator value to input buffer for next operation.\",\n validate: async () => true,\n handler: async (\n _runtime: IAgentRuntime,\n message: Memory,\n state?: State,\n _options?: Record<string, unknown>,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const accumulator = getStateValue(state, \"accumulator\", 0);\n const text = `Transferred ${accumulator} from accumulator to input buffer`;\n \n if (callback) {\n await callback({ text, source: message.content.source });\n }\n\n return {\n success: true,\n text,\n values: {\n ...state?.values,\n inputBuffer: accumulator,\n accumulator: 0,\n lastOperation: \"transfer\",\n },\n data: {\n operation: \"transfer\",\n value: accumulator,\n },\n };\n },\n examples: [\n [\n {\n name: \"{{user}}\",\n content: { text: \"transfer to input\" },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"Transferred 0 from accumulator to input buffer\",\n actions: [\"TRANSFER_TO_INPUT\"],\n },\n },\n ],\n ] as ActionExample[][],\n};\n\n// Export all multiverse math actions\nexport const multiverseMathActions: Action[] = [\n // Number inputs\n ...Array.from({ length: 10 }, (_, i) => createNumberAction(i)),\n // Dimension selector\n selectDimensionAction,\n // Multiverse operations\n multiverseAddAction,\n multiverseSubtractAction,\n multiverseMultiplyAction,\n multiverseDivideAction,\n multiverseModuloAction,\n multiversePowerAction,\n multiverseSqrtAction,\n // Utility operations\n clearAction,\n storeAction,\n recallAction,\n transferAction,\n];","import type { Plugin, Action } from \"@elizaos/core\";\nimport { typewriterActions } from \"./actions/typewriter\";\nimport { multiverseMathActions } from \"./actions/multiverseMath\";\n\n// Environment variable configuration\n// By default, both are enabled unless explicitly set to \"false\"\nconst TYPEWRITER_ENABLED = process.env.TYPEWRITER_ENABLED?.toLowerCase() !== \"false\";\nconst MULTIVERSE_MATH_ENABLED = process.env.MULTIVERSE_MATH_ENABLED?.toLowerCase() !== \"false\";\n\n// Conditionally build actions array based on environment variables\nfunction buildActions(): Action[] {\n const actions: Action[] = [];\n \n if (TYPEWRITER_ENABLED) {\n console.log(\"[plugin-action-bench] Typewriter actions enabled\");\n actions.push(...typewriterActions);\n } else {\n console.log(\"[plugin-action-bench] Typewriter actions disabled via TYPEWRITER_ENABLED=false\");\n }\n \n if (MULTIVERSE_MATH_ENABLED) {\n console.log(\"[plugin-action-bench] Multiverse math actions enabled\");\n actions.push(...multiverseMathActions);\n } else {\n console.log(\"[plugin-action-bench] Multiverse math actions disabled via MULTIVERSE_MATH_ENABLED=false\");\n }\n \n // Warn if no actions are enabled\n if (actions.length === 0) {\n console.warn(\"[plugin-action-bench] WARNING: No benchmark actions are enabled. Set TYPEWRITER_ENABLED=true or MULTIVERSE_MATH_ENABLED=true to enable benchmarks.\");\n }\n \n console.log(`[plugin-action-bench] Total actions loaded: ${actions.length}`);\n return actions;\n}\n\n// Export with the expected naming convention\nexport const actionBenchPlugin: Plugin = {\n name: \"plugin-action-bench\",\n description:\n \"Action benchmark plugin providing typewriter (A–Z) and multiverse math operations where mathematical behavior changes based on dimensional constants, testing AI agents' ability to handle context-dependent operations and unknown mathematical scenarios.\",\n actions: buildActions(),\n};\n\n// Export configuration for debugging/visibility\nexport const benchmarkConfig = {\n typewriterEnabled: TYPEWRITER_ENABLED,\n multiverseMathEnabled: MULTIVERSE_MATH_ENABLED,\n totalActionsLoaded: actionBenchPlugin.actions?.length ?? 0,\n};\n\n// Default export\nexport default actionBenchPlugin;\n"]}
|
package/dist/index.d.cts
CHANGED
@@ -1,5 +1,10 @@
|
|
1
1
|
import { Plugin } from '@elizaos/core';
|
2
2
|
|
3
3
|
declare const actionBenchPlugin: Plugin;
|
4
|
+
declare const benchmarkConfig: {
|
5
|
+
typewriterEnabled: boolean;
|
6
|
+
multiverseMathEnabled: boolean;
|
7
|
+
totalActionsLoaded: number;
|
8
|
+
};
|
4
9
|
|
5
|
-
export { actionBenchPlugin, actionBenchPlugin as default };
|
10
|
+
export { actionBenchPlugin, benchmarkConfig, actionBenchPlugin as default };
|
package/dist/index.d.ts
CHANGED
@@ -1,5 +1,10 @@
|
|
1
1
|
import { Plugin } from '@elizaos/core';
|
2
2
|
|
3
3
|
declare const actionBenchPlugin: Plugin;
|
4
|
+
declare const benchmarkConfig: {
|
5
|
+
typewriterEnabled: boolean;
|
6
|
+
multiverseMathEnabled: boolean;
|
7
|
+
totalActionsLoaded: number;
|
8
|
+
};
|
4
9
|
|
5
|
-
export { actionBenchPlugin, actionBenchPlugin as default };
|
10
|
+
export { actionBenchPlugin, benchmarkConfig, actionBenchPlugin as default };
|
package/dist/index.js
CHANGED
@@ -863,13 +863,40 @@ var multiverseMathActions = [
|
|
863
863
|
];
|
864
864
|
|
865
865
|
// src/index.ts
|
866
|
+
var TYPEWRITER_ENABLED = process.env.TYPEWRITER_ENABLED?.toLowerCase() !== "false";
|
867
|
+
var MULTIVERSE_MATH_ENABLED = process.env.MULTIVERSE_MATH_ENABLED?.toLowerCase() !== "false";
|
868
|
+
function buildActions() {
|
869
|
+
const actions = [];
|
870
|
+
if (TYPEWRITER_ENABLED) {
|
871
|
+
console.log("[plugin-action-bench] Typewriter actions enabled");
|
872
|
+
actions.push(...typewriterActions);
|
873
|
+
} else {
|
874
|
+
console.log("[plugin-action-bench] Typewriter actions disabled via TYPEWRITER_ENABLED=false");
|
875
|
+
}
|
876
|
+
if (MULTIVERSE_MATH_ENABLED) {
|
877
|
+
console.log("[plugin-action-bench] Multiverse math actions enabled");
|
878
|
+
actions.push(...multiverseMathActions);
|
879
|
+
} else {
|
880
|
+
console.log("[plugin-action-bench] Multiverse math actions disabled via MULTIVERSE_MATH_ENABLED=false");
|
881
|
+
}
|
882
|
+
if (actions.length === 0) {
|
883
|
+
console.warn("[plugin-action-bench] WARNING: No benchmark actions are enabled. Set TYPEWRITER_ENABLED=true or MULTIVERSE_MATH_ENABLED=true to enable benchmarks.");
|
884
|
+
}
|
885
|
+
console.log(`[plugin-action-bench] Total actions loaded: ${actions.length}`);
|
886
|
+
return actions;
|
887
|
+
}
|
866
888
|
var actionBenchPlugin = {
|
867
889
|
name: "plugin-action-bench",
|
868
890
|
description: "Action benchmark plugin providing typewriter (A\u2013Z) and multiverse math operations where mathematical behavior changes based on dimensional constants, testing AI agents' ability to handle context-dependent operations and unknown mathematical scenarios.",
|
869
|
-
actions:
|
891
|
+
actions: buildActions()
|
892
|
+
};
|
893
|
+
var benchmarkConfig = {
|
894
|
+
typewriterEnabled: TYPEWRITER_ENABLED,
|
895
|
+
multiverseMathEnabled: MULTIVERSE_MATH_ENABLED,
|
896
|
+
totalActionsLoaded: actionBenchPlugin.actions?.length ?? 0
|
870
897
|
};
|
871
898
|
var index_default = actionBenchPlugin;
|
872
899
|
|
873
|
-
export { actionBenchPlugin, index_default as default };
|
900
|
+
export { actionBenchPlugin, benchmarkConfig, index_default as default };
|
874
901
|
//# sourceMappingURL=index.js.map
|
875
902
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../src/actions/typewriter.ts","../src/actions/multiverseMath.ts","../src/index.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import type {\n Action,\n ActionExample,\n ActionResult,\n HandlerCallback,\n IAgentRuntime,\n Memory,\n State,\n} from \"@elizaos/core\";\n\ntype TypewriterLetter =\n | \"a\" | \"b\" | \"c\" | \"d\" | \"e\" | \"f\" | \"g\" | \"h\" | \"i\" | \"j\" | \"k\" | \"l\" | \"m\"\n | \"n\" | \"o\" | \"p\" | \"q\" | \"r\" | \"s\" | \"t\" | \"u\" | \"v\" | \"w\" | \"x\" | \"y\" | \"z\";\n\nfunction createLetterAction(letter: TypewriterLetter): Action {\n const upper = letter.toUpperCase();\n\n return {\n name: `TYPE_${upper}`,\n similes: [`TYPE_${upper}`, `TYPE_${letter}`],\n description: `Type the letter '${letter}' and append it to the accumulating typed text for benchmarking action chaining.`,\n validate: async (_runtime: IAgentRuntime, _message: Memory, _state?: State) => {\n return true;\n },\n handler: async (\n _runtime: IAgentRuntime,\n message: Memory,\n state?: State,\n _options?: Record<string, unknown>,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const current = state?.values?.typedText ?? \"\";\n const next = `${current}${letter}`;\n\n // Optional immediate feedback for visibility during bench runs\n if (callback) {\n await callback({\n text: next,\n source: message.content.source,\n });\n }\n\n return {\n success: true,\n text: next,\n values: {\n typedText: next,\n },\n data: {\n letter,\n length: next.length,\n },\n } satisfies ActionResult;\n },\n examples: [\n [\n {\n name: \"{{user}}\",\n content: { text: `type '${letter}'` },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: letter,\n actions: [`TYPE_${upper}`],\n },\n },\n ],\n ] as ActionExample[][],\n } as Action;\n}\n\nexport const typewriterActions: Action[] = (\n \"abcdefghijklmnopqrstuvwxyz\".split(\"\") as TypewriterLetter[]\n).map(createLetterAction);\n\n\n","import type {\n Action,\n ActionExample,\n ActionResult,\n HandlerCallback,\n IAgentRuntime,\n Memory,\n State,\n} from \"@elizaos/core\";\n\n// Helper function to generate a pseudo-random multiverse seed\nfunction generateMultiverseSeed(a: number, b: number): number {\n const seed = ((a * 73) + (b * 37)) % 1000;\n return Math.abs(seed);\n}\n\n// Helper function to check if a number is prime\nfunction isPrime(n: number): boolean {\n if (n <= 1) return false;\n if (n <= 3) return true;\n if (n % 2 === 0 || n % 3 === 0) return false;\n for (let i = 5; i * i <= n; i += 6) {\n if (n % i === 0 || n % (i + 2) === 0) return false;\n }\n return true;\n}\n\n// Helper function to find the next prime number\nfunction findNextPrime(n: number): number {\n if (n < 2) return 2;\n let candidate = Math.ceil(n);\n while (!isPrime(candidate)) {\n candidate++;\n }\n return candidate;\n}\n\n// Helper function to find nearest Fibonacci number\nfunction findNearestFibonacci(n: number): number {\n const fibSeq = [0, 1];\n while (fibSeq[fibSeq.length - 1] < Math.abs(n)) {\n fibSeq.push(fibSeq[fibSeq.length - 1] + fibSeq[fibSeq.length - 2]);\n }\n \n const lastFib = fibSeq[fibSeq.length - 1];\n const prevFib = fibSeq[fibSeq.length - 2];\n \n return Math.abs(n - lastFib) < Math.abs(n - prevFib) ? lastFib : prevFib;\n}\n\n// Helper to safely parse numbers from state\nfunction getStateValue(state: State | undefined, key: string, defaultValue: number = 0): number {\n const value = state?.values?.[key];\n if (typeof value === \"number\") return value;\n if (typeof value === \"string\") {\n const parsed = parseFloat(value);\n return isNaN(parsed) ? defaultValue : parsed;\n }\n return defaultValue;\n}\n\n// Number input actions (0-9)\nfunction createNumberAction(digit: number): Action {\n return {\n name: `INPUT_${digit}`,\n similes: [`INPUT_${digit}`, `TYPE_${digit}`, `ENTER_${digit}`],\n description: `Input the number ${digit} into the current calculation buffer.`,\n validate: async () => true,\n handler: async (\n _runtime: IAgentRuntime,\n message: Memory,\n state?: State,\n _options?: Record<string, unknown>,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const currentBuffer = getStateValue(state, \"inputBuffer\", 0);\n const newBuffer = currentBuffer * 10 + digit;\n \n if (callback) {\n await callback({\n text: `Input: ${newBuffer}`,\n source: message.content.source,\n });\n }\n\n return {\n success: true,\n text: `Input: ${newBuffer}`,\n values: {\n inputBuffer: newBuffer,\n lastInput: digit,\n },\n data: {\n digit,\n buffer: newBuffer,\n },\n };\n },\n examples: [\n [\n {\n name: \"{{user}}\",\n content: { text: `input ${digit}` },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: `Input: ${digit}`,\n actions: [`INPUT_${digit}`],\n },\n },\n ],\n ] as ActionExample[][],\n };\n}\n\n// Dimension selector action\nconst selectDimensionAction: Action = {\n name: \"SELECT_DIMENSION\",\n similes: [\"DIMENSION\", \"SET_DIMENSION\", \"CHOOSE_DIMENSION\"],\n description: \"Select the dimensional constant that affects how mathematical operations behave in the multiverse.\",\n validate: async () => true,\n handler: async (\n _runtime: IAgentRuntime,\n message: Memory,\n state?: State,\n _options?: Record<string, unknown>,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n // Parse dimension from message content\n const content = message.content.text?.toLowerCase() || \"\";\n let dimension = \"standard\";\n \n if (content.includes(\"quantum\")) dimension = \"quantum\";\n else if (content.includes(\"chaos\")) dimension = \"chaos\";\n else if (content.includes(\"prime\")) dimension = \"prime\";\n else if (content.includes(\"mirror\")) dimension = \"mirror\";\n else if (content.includes(\"void\")) dimension = \"void\";\n else if (content.includes(\"absolute\")) dimension = \"absolute\";\n else if (content.includes(\"fibonacci\")) dimension = \"fibonacci\";\n else if (content.includes(\"exponential\")) dimension = \"exponential\";\n else if (content.includes(\"harmonic\")) dimension = \"harmonic\";\n else if (content.includes(\"infinite\")) dimension = \"infinite\";\n else if (content.includes(\"golden\")) dimension = \"golden\";\n else if (content.includes(\"spiral\")) dimension = \"spiral\";\n else if (content.includes(\"fractal\")) dimension = \"fractal\";\n else if (content.includes(\"cyclical\")) dimension = \"cyclical\";\n \n const text = `Dimension set to: ${dimension}`;\n \n if (callback) {\n await callback({ text, source: message.content.source });\n }\n\n return {\n success: true,\n text,\n values: {\n ...state?.values,\n dimension,\n },\n data: {\n dimension,\n },\n };\n },\n examples: [\n [\n {\n name: \"{{user}}\",\n content: { text: \"set dimension to quantum\" },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"Dimension set to: quantum\",\n actions: [\"SELECT_DIMENSION\"],\n },\n },\n ],\n ] as ActionExample[][],\n};\n\n// Multiverse Add Action\nconst multiverseAddAction: Action = {\n name: \"MULTIVERSE_ADD\",\n similes: [\"M_ADD\", \"MULTI_ADD\", \"DIMENSIONAL_ADD\"],\n description: \"Performs addition in the multiverse where numbers behave differently based on dimensional constants (prime, quantum, or chaos).\",\n validate: async () => true,\n handler: async (\n _runtime: IAgentRuntime,\n message: Memory,\n state?: State,\n _options?: Record<string, unknown>,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const a = getStateValue(state, \"accumulator\", 0);\n const b = getStateValue(state, \"inputBuffer\", 0);\n const dimension = state?.values?.dimension || \"prime\";\n \n let result: number;\n let explanation: string;\n \n switch (dimension) {\n case \"quantum\":\n // In quantum dimension, addition creates superposition\n result = a + b + Math.sqrt(Math.abs(a * b));\n explanation = `In quantum dimension: ${a} + ${b} = ${result} (includes quantum entanglement factor √(${a}×${b}))`;\n break;\n case \"chaos\":\n // In chaos dimension, results are unpredictable but deterministic\n const seed = generateMultiverseSeed(a, b);\n result = a + b + (seed % 10);\n explanation = `In chaos dimension: ${a} + ${b} = ${result} (chaos factor: ${seed % 10})`;\n break;\n case \"prime\":\n default:\n // In prime dimension, only prime numbers truly exist\n const standardResult = a + b;\n const nextPrime = findNextPrime(Math.abs(standardResult));\n result = standardResult < 0 ? -nextPrime : nextPrime;\n explanation = `In prime dimension: ${a} + ${b} = ${result} (elevated to nearest prime from ${standardResult})`;\n break;\n }\n \n result = Math.round(result * 1000) / 1000; // Round to 3 decimal places\n \n if (callback) {\n await callback({ text: explanation, source: message.content.source });\n }\n\n return {\n success: true,\n text: explanation,\n values: {\n accumulator: result,\n inputBuffer: 0,\n lastOperation: \"multiverse_add\",\n dimension,\n history: [...(state?.values?.history || []), explanation],\n },\n data: {\n operation: \"multiverse_add\",\n inputs: { a, b, dimension },\n result,\n explanation,\n timestamp: new Date().toISOString(),\n },\n };\n },\n examples: [\n [\n {\n name: \"{{user}}\",\n content: { text: \"add in quantum dimension\" },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"In quantum dimension: 0 + 0 = 0 (includes quantum entanglement factor √(0×0))\",\n actions: [\"MULTIVERSE_ADD\"],\n },\n },\n ],\n ] as ActionExample[][],\n};\n\n// Multiverse Subtract Action\nconst multiverseSubtractAction: Action = {\n name: \"MULTIVERSE_SUBTRACT\",\n similes: [\"M_SUBTRACT\", \"MULTI_SUB\", \"DIMENSIONAL_SUBTRACT\"],\n description: \"Performs subtraction in the multiverse where negative numbers might not exist in some dimensions (absolute, mirror, or void).\",\n validate: async () => true,\n handler: async (\n _runtime: IAgentRuntime,\n message: Memory,\n state?: State,\n _options?: Record<string, unknown>,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const a = getStateValue(state, \"accumulator\", 0);\n const b = getStateValue(state, \"inputBuffer\", 0);\n const dimension = state?.values?.dimension || \"absolute\";\n \n let result: number;\n let explanation: string;\n \n switch (dimension) {\n case \"mirror\":\n // In mirror dimension, subtraction reflects across zero\n result = Math.abs(a - b) * (a > b ? 1 : -1) * 2;\n explanation = `In mirror dimension: ${a} - ${b} = ${result} (reflected subtraction)`;\n break;\n case \"void\":\n // In void dimension, subtraction creates voids (always positive)\n result = Math.abs(a - b) + Math.min(a, b);\n explanation = `In void dimension: ${a} - ${b} = ${result} (void compensation: +${Math.min(a, b)})`;\n break;\n case \"absolute\":\n default:\n // In absolute dimension, negative numbers don't exist\n result = Math.abs(a - b);\n explanation = `In absolute dimension: ${a} - ${b} = ${result} (absolute value universe)`;\n break;\n }\n \n result = Math.round(result * 1000) / 1000;\n \n if (callback) {\n await callback({ text: explanation, source: message.content.source });\n }\n\n return {\n success: true,\n text: explanation,\n values: {\n accumulator: result,\n inputBuffer: 0,\n lastOperation: \"multiverse_subtract\",\n dimension,\n history: [...(state?.values?.history || []), explanation],\n },\n data: {\n operation: \"multiverse_subtract\",\n inputs: { a, b, dimension },\n result,\n explanation,\n timestamp: new Date().toISOString(),\n },\n };\n },\n examples: [\n [\n {\n name: \"{{user}}\",\n content: { text: \"subtract in mirror dimension\" },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"In mirror dimension: 0 - 0 = 0 (reflected subtraction)\",\n actions: [\"MULTIVERSE_SUBTRACT\"],\n },\n },\n ],\n ] as ActionExample[][],\n};\n\n// Multiverse Multiply Action\nconst multiverseMultiplyAction: Action = {\n name: \"MULTIVERSE_MULTIPLY\",\n similes: [\"M_MULTIPLY\", \"MULTI_MUL\", \"DIMENSIONAL_MULTIPLY\"],\n description: \"Performs multiplication across dimensional boundaries with exotic number behaviors (fibonacci, exponential, or harmonic).\",\n validate: async () => true,\n handler: async (\n _runtime: IAgentRuntime,\n message: Memory,\n state?: State,\n _options?: Record<string, unknown>,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const a = getStateValue(state, \"accumulator\", 1);\n const b = getStateValue(state, \"inputBuffer\", 1);\n const dimension = state?.values?.dimension || \"fibonacci\";\n \n let result: number;\n let explanation: string;\n \n switch (dimension) {\n case \"exponential\":\n // In exponential dimension, multiplication compounds\n result = Math.pow(Math.abs(a), Math.abs(b)) * (a < 0 || b < 0 ? -1 : 1);\n explanation = `In exponential dimension: ${a} × ${b} = ${result} (actually ${a}^${b})`;\n break;\n case \"harmonic\":\n // In harmonic dimension, multiplication creates harmonics\n const harmonic = (a * b) + ((a + b) / 2);\n result = harmonic;\n explanation = `In harmonic dimension: ${a} × ${b} = ${result} (includes harmonic mean)`;\n break;\n case \"fibonacci\":\n default:\n // In fibonacci dimension, results snap to fibonacci numbers\n const standard = a * b;\n result = findNearestFibonacci(standard) * (standard < 0 ? -1 : 1);\n explanation = `In fibonacci dimension: ${a} × ${b} = ${result} (nearest Fibonacci to ${standard})`;\n break;\n }\n \n result = Math.round(result * 1000) / 1000;\n \n if (callback) {\n await callback({ text: explanation, source: message.content.source });\n }\n\n return {\n success: true,\n text: explanation,\n values: {\n accumulator: result,\n inputBuffer: 0,\n lastOperation: \"multiverse_multiply\",\n dimension,\n history: [...(state?.values?.history || []), explanation],\n },\n data: {\n operation: \"multiverse_multiply\",\n inputs: { a, b, dimension },\n result,\n explanation,\n timestamp: new Date().toISOString(),\n },\n };\n },\n examples: [\n [\n {\n name: \"{{user}}\",\n content: { text: \"multiply in exponential dimension\" },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"In exponential dimension: 1 × 1 = 1 (actually 1^1)\",\n actions: [\"MULTIVERSE_MULTIPLY\"],\n },\n },\n ],\n ] as ActionExample[][],\n};\n\n// Multiverse Divide Action\nconst multiverseDivideAction: Action = {\n name: \"MULTIVERSE_DIVIDE\",\n similes: [\"M_DIVIDE\", \"MULTI_DIV\", \"DIMENSIONAL_DIVIDE\"],\n description: \"Performs division in the multiverse where infinity and zero have special meanings (safe, infinite, or golden).\",\n validate: async () => true,\n handler: async (\n _runtime: IAgentRuntime,\n message: Memory,\n state?: State,\n _options?: Record<string, unknown>,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const a = getStateValue(state, \"accumulator\", 0);\n const b = getStateValue(state, \"inputBuffer\", 1);\n const dimension = state?.values?.dimension || \"safe\";\n \n let result: number;\n let explanation: string;\n \n switch (dimension) {\n case \"infinite\":\n // In infinite dimension, division by zero opens portals\n if (b === 0) {\n result = a * 999; // Portal multiplier\n explanation = `In infinite dimension: ${a} ÷ 0 = ${result} (portal opened!)`;\n } else {\n result = (a / b) * Math.PI;\n explanation = `In infinite dimension: ${a} ÷ ${b} = ${result} (π-scaled)`;\n }\n break;\n case \"golden\":\n // In golden dimension, all division tends toward golden ratio\n const goldenRatio = 1.618033988749895;\n const standard = b === 0 ? 0 : a / b;\n result = (standard + goldenRatio) / 2;\n explanation = `In golden dimension: ${a} ÷ ${b} = ${result} (converging to φ)`;\n break;\n case \"safe\":\n default:\n // In safe dimension, division by zero returns the dividend\n result = b === 0 ? a : a / b;\n explanation = b === 0 \n ? `In safe dimension: ${a} ÷ 0 = ${a} (safe division, returns dividend)`\n : `In safe dimension: ${a} ÷ ${b} = ${result} (standard division)`;\n break;\n }\n \n result = Math.round(result * 1000) / 1000;\n \n if (callback) {\n await callback({ text: explanation, source: message.content.source });\n }\n\n return {\n success: true,\n text: explanation,\n values: {\n accumulator: result,\n inputBuffer: 0,\n lastOperation: \"multiverse_divide\",\n dimension,\n history: [...(state?.values?.history || []), explanation],\n },\n data: {\n operation: \"multiverse_divide\",\n inputs: { a, b, dimension },\n result,\n explanation,\n timestamp: new Date().toISOString(),\n },\n };\n },\n examples: [\n [\n {\n name: \"{{user}}\",\n content: { text: \"divide in golden dimension\" },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"In golden dimension: 0 ÷ 1 = 0.809 (converging to φ)\",\n actions: [\"MULTIVERSE_DIVIDE\"],\n },\n },\n ],\n ] as ActionExample[][],\n};\n\n// Multiverse Modulo Action\nconst multiverseModuloAction: Action = {\n name: \"MULTIVERSE_MODULO\",\n similes: [\"M_MODULO\", \"MULTI_MOD\", \"DIMENSIONAL_MODULO\"],\n description: \"Performs modulo operation in the multiverse with cyclical dimensional properties (cyclical, spiral, or fractal).\",\n validate: async (_runtime: IAgentRuntime, _message: Memory, state?: State) => {\n const b = getStateValue(state, \"inputBuffer\", 1);\n return b !== 0;\n },\n handler: async (\n _runtime: IAgentRuntime,\n message: Memory,\n state?: State,\n _options?: Record<string, unknown>,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const a = getStateValue(state, \"accumulator\", 0);\n const b = getStateValue(state, \"inputBuffer\", 1);\n const dimension = state?.values?.dimension || \"cyclical\";\n \n let result: number;\n let explanation: string;\n \n if (b === 0) {\n return {\n success: false,\n text: \"Error: Cannot modulo by zero\",\n values: state?.values || {},\n };\n }\n \n switch (dimension) {\n case \"spiral\":\n // In spiral dimension, modulo creates spiraling patterns\n const spiralFactor = Math.sin(a) * Math.cos(b);\n result = Math.abs((a % b) + spiralFactor * 10);\n explanation = `In spiral dimension: ${a} % ${b} = ${result} (spiral factor: ${spiralFactor.toFixed(2)})`;\n break;\n case \"fractal\":\n // In fractal dimension, modulo is self-similar at all scales\n const iterations = 3;\n result = a % b;\n for (let i = 0; i < iterations; i++) {\n result = (result * 2) % (b + i);\n }\n explanation = `In fractal dimension: ${a} % ${b} = ${result} (after ${iterations} fractal iterations)`;\n break;\n case \"cyclical\":\n default:\n // In cyclical dimension, modulo creates perfect cycles\n result = a % b;\n if (result < 0) result += b; // Always positive in cyclical dimension\n explanation = `In cyclical dimension: ${a} % ${b} = ${result} (perfect cycle)`;\n break;\n }\n \n result = Math.round(result * 100) / 100;\n \n if (callback) {\n await callback({ text: explanation, source: message.content.source });\n }\n\n return {\n success: true,\n text: explanation,\n values: {\n accumulator: result,\n inputBuffer: 0,\n lastOperation: \"multiverse_modulo\",\n dimension,\n history: [...(state?.values?.history || []), explanation],\n },\n data: {\n operation: \"multiverse_modulo\",\n inputs: { a, b, dimension },\n result,\n explanation,\n timestamp: new Date().toISOString(),\n },\n };\n },\n examples: [\n [\n {\n name: \"{{user}}\",\n content: { text: \"modulo in fractal dimension\" },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"In fractal dimension: 0 % 1 = 0 (after 3 fractal iterations)\",\n actions: [\"MULTIVERSE_MODULO\"],\n },\n },\n ],\n ] as ActionExample[][],\n};\n\n// Multiverse Power Action\nconst multiversePowerAction: Action = {\n name: \"MULTIVERSE_POWER\",\n similes: [\"M_POWER\", \"MULTI_POW\", \"DIMENSIONAL_POWER\"],\n description: \"Raises numbers to powers in the multiverse with dimensional effects (standard, imaginary, or recursive).\",\n validate: async () => true,\n handler: async (\n _runtime: IAgentRuntime,\n message: Memory,\n state?: State,\n _options?: Record<string, unknown>,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const a = getStateValue(state, \"accumulator\", 0);\n const b = getStateValue(state, \"inputBuffer\", 2);\n const dimension = state?.values?.dimension || \"standard\";\n \n let result: number;\n let explanation: string;\n \n switch (dimension) {\n case \"imaginary\":\n // In imaginary dimension, powers oscillate\n const oscillation = Math.cos(b * Math.PI / 2);\n result = Math.pow(Math.abs(a), b) * oscillation;\n explanation = `In imaginary dimension: ${a}^${b} = ${result} (oscillation factor: ${oscillation.toFixed(2)})`;\n break;\n case \"recursive\":\n // In recursive dimension, power is applied iteratively\n result = a;\n for (let i = 0; i < Math.min(Math.abs(b), 5); i++) {\n result = Math.pow(result, 1.5);\n }\n explanation = `In recursive dimension: ${a}^${b} = ${result} (${Math.min(Math.abs(b), 5)} recursive applications)`;\n break;\n case \"standard\":\n default:\n result = Math.pow(a, b);\n explanation = `In standard dimension: ${a}^${b} = ${result}`;\n break;\n }\n \n result = Math.round(result * 1000) / 1000;\n \n if (callback) {\n await callback({ text: explanation, source: message.content.source });\n }\n\n return {\n success: true,\n text: explanation,\n values: {\n accumulator: result,\n inputBuffer: 0,\n lastOperation: \"multiverse_power\",\n dimension,\n history: [...(state?.values?.history || []), explanation],\n },\n data: {\n operation: \"multiverse_power\",\n inputs: { a, b, dimension },\n result,\n explanation,\n timestamp: new Date().toISOString(),\n },\n };\n },\n examples: [\n [\n {\n name: \"{{user}}\",\n content: { text: \"power in imaginary dimension\" },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"In imaginary dimension: 0^2 = 0 (oscillation factor: -1.00)\",\n actions: [\"MULTIVERSE_POWER\"],\n },\n },\n ],\n ] as ActionExample[][],\n};\n\n// Multiverse Square Root Action\nconst multiverseSqrtAction: Action = {\n name: \"MULTIVERSE_SQRT\",\n similes: [\"M_SQRT\", \"MULTI_ROOT\", \"DIMENSIONAL_SQRT\"],\n description: \"Takes square root in the multiverse with dimensional variations (positive, complex, or quantum).\",\n validate: async () => true,\n handler: async (\n _runtime: IAgentRuntime,\n message: Memory,\n state?: State,\n _options?: Record<string, unknown>,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const a = getStateValue(state, \"accumulator\", 0);\n const dimension = state?.values?.dimension || \"positive\";\n \n let result: number;\n let explanation: string;\n \n switch (dimension) {\n case \"complex\":\n // In complex dimension, negative numbers have positive roots\n result = Math.sqrt(Math.abs(a));\n if (a < 0) {\n explanation = `In complex dimension: √${a} = ${result}i (imaginary component)`;\n } else {\n explanation = `In complex dimension: √${a} = ${result} (real component)`;\n }\n break;\n case \"quantum\":\n // In quantum dimension, square root creates superposition\n const superposition = Math.sqrt(Math.abs(a)) + (Math.random() - 0.5) * 0.1;\n result = Math.abs(superposition);\n explanation = `In quantum dimension: √${a} = ${result} (quantum fluctuation)`;\n break;\n case \"positive\":\n default:\n // In positive dimension, always returns positive\n result = Math.sqrt(Math.abs(a));\n explanation = `In positive dimension: √${a} = ${result} (absolute square root)`;\n break;\n }\n \n result = Math.round(result * 1000) / 1000;\n \n if (callback) {\n await callback({ text: explanation, source: message.content.source });\n }\n\n return {\n success: true,\n text: explanation,\n values: {\n accumulator: result,\n lastOperation: \"multiverse_sqrt\",\n dimension,\n history: [...(state?.values?.history || []), explanation],\n },\n data: {\n operation: \"multiverse_sqrt\",\n inputs: { a, dimension },\n result,\n explanation,\n timestamp: new Date().toISOString(),\n },\n };\n },\n examples: [\n [\n {\n name: \"{{user}}\",\n content: { text: \"square root in complex dimension\" },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"In complex dimension: √0 = 0 (real component)\",\n actions: [\"MULTIVERSE_SQRT\"],\n },\n },\n ],\n ] as ActionExample[][],\n};\n\n// Utility actions\nconst clearAction: Action = {\n name: \"MATH_CLEAR\",\n similes: [\"CLEAR\", \"RESET\", \"CLEAR_ALL\"],\n description: \"Clear all calculation buffers and reset to zero.\",\n validate: async () => true,\n handler: async (\n _runtime: IAgentRuntime,\n message: Memory,\n _state?: State,\n _options?: Record<string, unknown>,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const text = \"Cleared all buffers\";\n \n if (callback) {\n await callback({ text, source: message.content.source });\n }\n\n return {\n success: true,\n text,\n values: {\n accumulator: 0,\n inputBuffer: 0,\n lastOperation: \"clear\",\n dimension: \"standard\",\n history: [],\n },\n data: {\n operation: \"clear\",\n },\n };\n },\n examples: [\n [\n {\n name: \"{{user}}\",\n content: { text: \"clear\" },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"Cleared all buffers\",\n actions: [\"MATH_CLEAR\"],\n },\n },\n ],\n ] as ActionExample[][],\n};\n\nconst storeAction: Action = {\n name: \"MATH_STORE\",\n similes: [\"STORE\", \"SAVE\", \"MEMORY_STORE\"],\n description: \"Store current accumulator value to memory.\",\n validate: async () => true,\n handler: async (\n _runtime: IAgentRuntime,\n message: Memory,\n state?: State,\n _options?: Record<string, unknown>,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const accumulator = getStateValue(state, \"accumulator\", 0);\n const text = `Stored ${accumulator} to memory`;\n \n if (callback) {\n await callback({ text, source: message.content.source });\n }\n\n return {\n success: true,\n text,\n values: {\n ...state?.values,\n memory: accumulator,\n lastOperation: \"store\",\n },\n data: {\n operation: \"store\",\n value: accumulator,\n },\n };\n },\n examples: [\n [\n {\n name: \"{{user}}\",\n content: { text: \"store to memory\" },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"Stored 0 to memory\",\n actions: [\"MATH_STORE\"],\n },\n },\n ],\n ] as ActionExample[][],\n};\n\nconst recallAction: Action = {\n name: \"MATH_RECALL\",\n similes: [\"RECALL\", \"LOAD\", \"MEMORY_RECALL\"],\n description: \"Recall value from memory to input buffer.\",\n validate: async () => true,\n handler: async (\n _runtime: IAgentRuntime,\n message: Memory,\n state?: State,\n _options?: Record<string, unknown>,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const memory = getStateValue(state, \"memory\", 0);\n const text = `Recalled ${memory} from memory`;\n \n if (callback) {\n await callback({ text, source: message.content.source });\n }\n\n return {\n success: true,\n text,\n values: {\n ...state?.values,\n inputBuffer: memory,\n lastOperation: \"recall\",\n },\n data: {\n operation: \"recall\",\n value: memory,\n },\n };\n },\n examples: [\n [\n {\n name: \"{{user}}\",\n content: { text: \"recall from memory\" },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"Recalled 0 from memory\",\n actions: [\"MATH_RECALL\"],\n },\n },\n ],\n ] as ActionExample[][],\n};\n\n// Transfer accumulator to input buffer\nconst transferAction: Action = {\n name: \"TRANSFER_TO_INPUT\",\n similes: [\"TRANSFER\", \"MOVE_TO_INPUT\", \"ACCUMULATOR_TO_INPUT\"],\n description: \"Transfer accumulator value to input buffer for next operation.\",\n validate: async () => true,\n handler: async (\n _runtime: IAgentRuntime,\n message: Memory,\n state?: State,\n _options?: Record<string, unknown>,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const accumulator = getStateValue(state, \"accumulator\", 0);\n const text = `Transferred ${accumulator} from accumulator to input buffer`;\n \n if (callback) {\n await callback({ text, source: message.content.source });\n }\n\n return {\n success: true,\n text,\n values: {\n ...state?.values,\n inputBuffer: accumulator,\n accumulator: 0,\n lastOperation: \"transfer\",\n },\n data: {\n operation: \"transfer\",\n value: accumulator,\n },\n };\n },\n examples: [\n [\n {\n name: \"{{user}}\",\n content: { text: \"transfer to input\" },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"Transferred 0 from accumulator to input buffer\",\n actions: [\"TRANSFER_TO_INPUT\"],\n },\n },\n ],\n ] as ActionExample[][],\n};\n\n// Export all multiverse math actions\nexport const multiverseMathActions: Action[] = [\n // Number inputs\n ...Array.from({ length: 10 }, (_, i) => createNumberAction(i)),\n // Dimension selector\n selectDimensionAction,\n // Multiverse operations\n multiverseAddAction,\n multiverseSubtractAction,\n multiverseMultiplyAction,\n multiverseDivideAction,\n multiverseModuloAction,\n multiversePowerAction,\n multiverseSqrtAction,\n // Utility operations\n clearAction,\n storeAction,\n recallAction,\n transferAction,\n];","import type { Plugin } from \"@elizaos/core\";\nimport { typewriterActions } from \"./actions/typewriter\";\nimport { multiverseMathActions } from \"./actions/multiverseMath\";\n\n// Export with the expected naming convention\nexport const actionBenchPlugin: Plugin = {\n name: \"plugin-action-bench\",\n description:\n \"Action benchmark plugin providing typewriter (A–Z) and multiverse math operations where mathematical behavior changes based on dimensional constants, testing AI agents' ability to handle context-dependent operations and unknown mathematical scenarios.\",\n actions: [...typewriterActions, ...multiverseMathActions],\n};\n// Default export\nexport default actionBenchPlugin;\n"]}
|
1
|
+
{"version":3,"sources":["../src/actions/typewriter.ts","../src/actions/multiverseMath.ts","../src/index.ts"],"names":[],"mappings":";AAcA,SAAS,mBAAmB,MAAA,EAAkC;AAC5D,EAAA,MAAM,KAAA,GAAQ,OAAO,WAAA,EAAY;AAEjC,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,QAAQ,KAAK,CAAA,CAAA;AAAA,IACnB,SAAS,CAAC,CAAA,KAAA,EAAQ,KAAK,CAAA,CAAA,EAAI,CAAA,KAAA,EAAQ,MAAM,CAAA,CAAE,CAAA;AAAA,IAC3C,WAAA,EAAa,oBAAoB,MAAM,CAAA,gFAAA,CAAA;AAAA,IACvC,QAAA,EAAU,OAAO,QAAA,EAAyB,QAAA,EAAkB,MAAA,KAAmB;AAC7E,MAAA,OAAO,IAAA;AAAA,IACT,CAAA;AAAA,IACA,SAAS,OACP,QAAA,EACA,OAAA,EACA,KAAA,EACA,UACA,QAAA,KAC0B;AAC1B,MAAA,MAAM,OAAA,GAAU,KAAA,EAAO,MAAA,EAAQ,SAAA,IAAa,EAAA;AAC5C,MAAA,MAAM,IAAA,GAAO,CAAA,EAAG,OAAO,CAAA,EAAG,MAAM,CAAA,CAAA;AAGhC,MAAA,IAAI,QAAA,EAAU;AACZ,QAAA,MAAM,QAAA,CAAS;AAAA,UACb,IAAA,EAAM,IAAA;AAAA,UACN,MAAA,EAAQ,QAAQ,OAAA,CAAQ;AAAA,SACzB,CAAA;AAAA,MACH;AAEA,MAAA,OAAO;AAAA,QACL,OAAA,EAAS,IAAA;AAAA,QACT,IAAA,EAAM,IAAA;AAAA,QACN,MAAA,EAAQ;AAAA,UACN,SAAA,EAAW;AAAA,SACb;AAAA,QACA,IAAA,EAAM;AAAA,UACJ,MAAA;AAAA,UACA,QAAQ,IAAA,CAAK;AAAA;AACf,OACF;AAAA,IACF,CAAA;AAAA,IACA,QAAA,EAAU;AAAA,MACR;AAAA,QACE;AAAA,UACE,IAAA,EAAM,UAAA;AAAA,UACN,OAAA,EAAS,EAAE,IAAA,EAAM,CAAA,MAAA,EAAS,MAAM,CAAA,CAAA,CAAA;AAAI,SACtC;AAAA,QACA;AAAA,UACE,IAAA,EAAM,WAAA;AAAA,UACN,OAAA,EAAS;AAAA,YACP,IAAA,EAAM,MAAA;AAAA,YACN,OAAA,EAAS,CAAC,CAAA,KAAA,EAAQ,KAAK,CAAA,CAAE;AAAA;AAC3B;AACF;AACF;AACF,GACF;AACF;AAEO,IAAM,oBACX,4BAAA,CAA6B,KAAA,CAAM,EAAE,CAAA,CACrC,IAAI,kBAAkB,CAAA;;;AC/DxB,SAAS,sBAAA,CAAuB,GAAW,CAAA,EAAmB;AAC5D,EAAA,MAAM,IAAA,GAAA,CAAS,CAAA,GAAI,EAAA,GAAO,CAAA,GAAI,EAAA,IAAO,GAAA;AACrC,EAAA,OAAO,IAAA,CAAK,IAAI,IAAI,CAAA;AACtB;AAGA,SAAS,QAAQ,CAAA,EAAoB;AACnC,EAAA,IAAI,CAAA,IAAK,GAAG,OAAO,KAAA;AACnB,EAAA,IAAI,CAAA,IAAK,GAAG,OAAO,IAAA;AACnB,EAAA,IAAI,IAAI,CAAA,KAAM,CAAA,IAAK,CAAA,GAAI,CAAA,KAAM,GAAG,OAAO,KAAA;AACvC,EAAA,KAAA,IAAS,IAAI,CAAA,EAAG,CAAA,GAAI,CAAA,IAAK,CAAA,EAAG,KAAK,CAAA,EAAG;AAClC,IAAA,IAAI,IAAI,CAAA,KAAM,CAAA,IAAK,KAAK,CAAA,GAAI,CAAA,CAAA,KAAO,GAAG,OAAO,KAAA;AAAA,EAC/C;AACA,EAAA,OAAO,IAAA;AACT;AAGA,SAAS,cAAc,CAAA,EAAmB;AACxC,EAAA,IAAI,CAAA,GAAI,GAAG,OAAO,CAAA;AAClB,EAAA,IAAI,SAAA,GAAY,IAAA,CAAK,IAAA,CAAK,CAAC,CAAA;AAC3B,EAAA,OAAO,CAAC,OAAA,CAAQ,SAAS,CAAA,EAAG;AAC1B,IAAA,SAAA,EAAA;AAAA,EACF;AACA,EAAA,OAAO,SAAA;AACT;AAGA,SAAS,qBAAqB,CAAA,EAAmB;AAC/C,EAAA,MAAM,MAAA,GAAS,CAAC,CAAA,EAAG,CAAC,CAAA;AACpB,EAAA,OAAO,MAAA,CAAO,OAAO,MAAA,GAAS,CAAC,IAAI,IAAA,CAAK,GAAA,CAAI,CAAC,CAAA,EAAG;AAC9C,IAAA,MAAA,CAAO,IAAA,CAAK,MAAA,CAAO,MAAA,CAAO,MAAA,GAAS,CAAC,IAAI,MAAA,CAAO,MAAA,CAAO,MAAA,GAAS,CAAC,CAAC,CAAA;AAAA,EACnE;AAEA,EAAA,MAAM,OAAA,GAAU,MAAA,CAAO,MAAA,CAAO,MAAA,GAAS,CAAC,CAAA;AACxC,EAAA,MAAM,OAAA,GAAU,MAAA,CAAO,MAAA,CAAO,MAAA,GAAS,CAAC,CAAA;AAExC,EAAA,OAAO,IAAA,CAAK,GAAA,CAAI,CAAA,GAAI,OAAO,CAAA,GAAI,KAAK,GAAA,CAAI,CAAA,GAAI,OAAO,CAAA,GAAI,OAAA,GAAU,OAAA;AACnE;AAGA,SAAS,aAAA,CAAc,KAAA,EAA0B,GAAA,EAAa,YAAA,GAAuB,CAAA,EAAW;AAC9F,EAAA,MAAM,KAAA,GAAQ,KAAA,EAAO,MAAA,GAAS,GAAG,CAAA;AACjC,EAAA,IAAI,OAAO,KAAA,KAAU,QAAA,EAAU,OAAO,KAAA;AACtC,EAAA,IAAI,OAAO,UAAU,QAAA,EAAU;AAC7B,IAAA,MAAM,MAAA,GAAS,WAAW,KAAK,CAAA;AAC/B,IAAA,OAAO,KAAA,CAAM,MAAM,CAAA,GAAI,YAAA,GAAe,MAAA;AAAA,EACxC;AACA,EAAA,OAAO,YAAA;AACT;AAGA,SAAS,mBAAmB,KAAA,EAAuB;AACjD,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,SAAS,KAAK,CAAA,CAAA;AAAA,IACpB,OAAA,EAAS,CAAC,CAAA,MAAA,EAAS,KAAK,CAAA,CAAA,EAAI,QAAQ,KAAK,CAAA,CAAA,EAAI,CAAA,MAAA,EAAS,KAAK,CAAA,CAAE,CAAA;AAAA,IAC7D,WAAA,EAAa,oBAAoB,KAAK,CAAA,qCAAA,CAAA;AAAA,IACtC,UAAU,YAAY,IAAA;AAAA,IACtB,SAAS,OACP,QAAA,EACA,OAAA,EACA,KAAA,EACA,UACA,QAAA,KAC0B;AAC1B,MAAA,MAAM,aAAA,GAAgB,aAAA,CAAc,KAAA,EAAO,aAAA,EAAe,CAAC,CAAA;AAC3D,MAAA,MAAM,SAAA,GAAY,gBAAgB,EAAA,GAAK,KAAA;AAEvC,MAAA,IAAI,QAAA,EAAU;AACZ,QAAA,MAAM,QAAA,CAAS;AAAA,UACb,IAAA,EAAM,UAAU,SAAS,CAAA,CAAA;AAAA,UACzB,MAAA,EAAQ,QAAQ,OAAA,CAAQ;AAAA,SACzB,CAAA;AAAA,MACH;AAEA,MAAA,OAAO;AAAA,QACL,OAAA,EAAS,IAAA;AAAA,QACT,IAAA,EAAM,UAAU,SAAS,CAAA,CAAA;AAAA,QACzB,MAAA,EAAQ;AAAA,UACN,WAAA,EAAa,SAAA;AAAA,UACb,SAAA,EAAW;AAAA,SACb;AAAA,QACA,IAAA,EAAM;AAAA,UACJ,KAAA;AAAA,UACA,MAAA,EAAQ;AAAA;AACV,OACF;AAAA,IACF,CAAA;AAAA,IACA,QAAA,EAAU;AAAA,MACR;AAAA,QACE;AAAA,UACE,IAAA,EAAM,UAAA;AAAA,UACN,OAAA,EAAS,EAAE,IAAA,EAAM,CAAA,MAAA,EAAS,KAAK,CAAA,CAAA;AAAG,SACpC;AAAA,QACA;AAAA,UACE,IAAA,EAAM,WAAA;AAAA,UACN,OAAA,EAAS;AAAA,YACP,IAAA,EAAM,UAAU,KAAK,CAAA,CAAA;AAAA,YACrB,OAAA,EAAS,CAAC,CAAA,MAAA,EAAS,KAAK,CAAA,CAAE;AAAA;AAC5B;AACF;AACF;AACF,GACF;AACF;AAGA,IAAM,qBAAA,GAAgC;AAAA,EACpC,IAAA,EAAM,kBAAA;AAAA,EACN,OAAA,EAAS,CAAC,WAAA,EAAa,eAAA,EAAiB,kBAAkB,CAAA;AAAA,EAC1D,WAAA,EAAa,oGAAA;AAAA,EACb,UAAU,YAAY,IAAA;AAAA,EACtB,SAAS,OACP,QAAA,EACA,OAAA,EACA,KAAA,EACA,UACA,QAAA,KAC0B;AAE1B,IAAA,MAAM,OAAA,GAAU,OAAA,CAAQ,OAAA,CAAQ,IAAA,EAAM,aAAY,IAAK,EAAA;AACvD,IAAA,IAAI,SAAA,GAAY,UAAA;AAEhB,IAAA,IAAI,OAAA,CAAQ,QAAA,CAAS,SAAS,CAAA,EAAG,SAAA,GAAY,SAAA;AAAA,SAAA,IACpC,OAAA,CAAQ,QAAA,CAAS,OAAO,CAAA,EAAG,SAAA,GAAY,OAAA;AAAA,SAAA,IACvC,OAAA,CAAQ,QAAA,CAAS,OAAO,CAAA,EAAG,SAAA,GAAY,OAAA;AAAA,SAAA,IACvC,OAAA,CAAQ,QAAA,CAAS,QAAQ,CAAA,EAAG,SAAA,GAAY,QAAA;AAAA,SAAA,IACxC,OAAA,CAAQ,QAAA,CAAS,MAAM,CAAA,EAAG,SAAA,GAAY,MAAA;AAAA,SAAA,IACtC,OAAA,CAAQ,QAAA,CAAS,UAAU,CAAA,EAAG,SAAA,GAAY,UAAA;AAAA,SAAA,IAC1C,OAAA,CAAQ,QAAA,CAAS,WAAW,CAAA,EAAG,SAAA,GAAY,WAAA;AAAA,SAAA,IAC3C,OAAA,CAAQ,QAAA,CAAS,aAAa,CAAA,EAAG,SAAA,GAAY,aAAA;AAAA,SAAA,IAC7C,OAAA,CAAQ,QAAA,CAAS,UAAU,CAAA,EAAG,SAAA,GAAY,UAAA;AAAA,SAAA,IAC1C,OAAA,CAAQ,QAAA,CAAS,UAAU,CAAA,EAAG,SAAA,GAAY,UAAA;AAAA,SAAA,IAC1C,OAAA,CAAQ,QAAA,CAAS,QAAQ,CAAA,EAAG,SAAA,GAAY,QAAA;AAAA,SAAA,IACxC,OAAA,CAAQ,QAAA,CAAS,QAAQ,CAAA,EAAG,SAAA,GAAY,QAAA;AAAA,SAAA,IACxC,OAAA,CAAQ,QAAA,CAAS,SAAS,CAAA,EAAG,SAAA,GAAY,SAAA;AAAA,SAAA,IACzC,OAAA,CAAQ,QAAA,CAAS,UAAU,CAAA,EAAG,SAAA,GAAY,UAAA;AAEnD,IAAA,MAAM,IAAA,GAAO,qBAAqB,SAAS,CAAA,CAAA;AAE3C,IAAA,IAAI,QAAA,EAAU;AACZ,MAAA,MAAM,SAAS,EAAE,IAAA,EAAM,QAAQ,OAAA,CAAQ,OAAA,CAAQ,QAAQ,CAAA;AAAA,IACzD;AAEA,IAAA,OAAO;AAAA,MACL,OAAA,EAAS,IAAA;AAAA,MACT,IAAA;AAAA,MACA,MAAA,EAAQ;AAAA,QACN,GAAG,KAAA,EAAO,MAAA;AAAA,QACV;AAAA,OACF;AAAA,MACA,IAAA,EAAM;AAAA,QACJ;AAAA;AACF,KACF;AAAA,EACF,CAAA;AAAA,EACA,QAAA,EAAU;AAAA,IACR;AAAA,MACE;AAAA,QACE,IAAA,EAAM,UAAA;AAAA,QACN,OAAA,EAAS,EAAE,IAAA,EAAM,0BAAA;AAA2B,OAC9C;AAAA,MACA;AAAA,QACE,IAAA,EAAM,WAAA;AAAA,QACN,OAAA,EAAS;AAAA,UACP,IAAA,EAAM,2BAAA;AAAA,UACN,OAAA,EAAS,CAAC,kBAAkB;AAAA;AAC9B;AACF;AACF;AAEJ,CAAA;AAGA,IAAM,mBAAA,GAA8B;AAAA,EAClC,IAAA,EAAM,gBAAA;AAAA,EACN,OAAA,EAAS,CAAC,OAAA,EAAS,WAAA,EAAa,iBAAiB,CAAA;AAAA,EACjD,WAAA,EAAa,iIAAA;AAAA,EACb,UAAU,YAAY,IAAA;AAAA,EACtB,SAAS,OACP,QAAA,EACA,OAAA,EACA,KAAA,EACA,UACA,QAAA,KAC0B;AAC1B,IAAA,MAAM,CAAA,GAAI,aAAA,CAAc,KAAA,EAAO,aAAA,EAAe,CAAC,CAAA;AAC/C,IAAA,MAAM,CAAA,GAAI,aAAA,CAAc,KAAA,EAAO,aAAA,EAAe,CAAC,CAAA;AAC/C,IAAA,MAAM,SAAA,GAAY,KAAA,EAAO,MAAA,EAAQ,SAAA,IAAa,OAAA;AAE9C,IAAA,IAAI,MAAA;AACJ,IAAA,IAAI,WAAA;AAEJ,IAAA,QAAQ,SAAA;AAAW,MACjB,KAAK,SAAA;AAEH,QAAA,MAAA,GAAS,CAAA,GAAI,IAAI,IAAA,CAAK,IAAA,CAAK,KAAK,GAAA,CAAI,CAAA,GAAI,CAAC,CAAC,CAAA;AAC1C,QAAA,WAAA,GAAc,CAAA,sBAAA,EAAyB,CAAC,CAAA,GAAA,EAAM,CAAC,MAAM,MAAM,CAAA,8CAAA,EAA4C,CAAC,CAAA,IAAA,EAAI,CAAC,CAAA,EAAA,CAAA;AAC7G,QAAA;AAAA,MACF,KAAK,OAAA;AAEH,QAAA,MAAM,IAAA,GAAO,sBAAA,CAAuB,CAAA,EAAG,CAAC,CAAA;AACxC,QAAA,MAAA,GAAS,CAAA,GAAI,IAAK,IAAA,GAAO,EAAA;AACzB,QAAA,WAAA,GAAc,CAAA,oBAAA,EAAuB,CAAC,CAAA,GAAA,EAAM,CAAC,MAAM,MAAM,CAAA,gBAAA,EAAmB,OAAO,EAAE,CAAA,CAAA,CAAA;AACrF,QAAA;AAAA,MACF,KAAK,OAAA;AAAA,MACL;AAEE,QAAA,MAAM,iBAAiB,CAAA,GAAI,CAAA;AAC3B,QAAA,MAAM,SAAA,GAAY,aAAA,CAAc,IAAA,CAAK,GAAA,CAAI,cAAc,CAAC,CAAA;AACxD,QAAA,MAAA,GAAS,cAAA,GAAiB,CAAA,GAAI,CAAC,SAAA,GAAY,SAAA;AAC3C,QAAA,WAAA,GAAc,uBAAuB,CAAC,CAAA,GAAA,EAAM,CAAC,CAAA,GAAA,EAAM,MAAM,oCAAoC,cAAc,CAAA,CAAA,CAAA;AAC3G,QAAA;AAAA;AAGJ,IAAA,MAAA,GAAS,IAAA,CAAK,KAAA,CAAM,MAAA,GAAS,GAAI,CAAA,GAAI,GAAA;AAErC,IAAA,IAAI,QAAA,EAAU;AACZ,MAAA,MAAM,QAAA,CAAS,EAAE,IAAA,EAAM,WAAA,EAAa,QAAQ,OAAA,CAAQ,OAAA,CAAQ,QAAQ,CAAA;AAAA,IACtE;AAEA,IAAA,OAAO;AAAA,MACL,OAAA,EAAS,IAAA;AAAA,MACT,IAAA,EAAM,WAAA;AAAA,MACN,MAAA,EAAQ;AAAA,QACN,WAAA,EAAa,MAAA;AAAA,QACb,WAAA,EAAa,CAAA;AAAA,QACb,aAAA,EAAe,gBAAA;AAAA,QACf,SAAA;AAAA,QACA,OAAA,EAAS,CAAC,GAAI,KAAA,EAAO,QAAQ,OAAA,IAAW,IAAK,WAAW;AAAA,OAC1D;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,SAAA,EAAW,gBAAA;AAAA,QACX,MAAA,EAAQ,EAAE,CAAA,EAAG,CAAA,EAAG,SAAA,EAAU;AAAA,QAC1B,MAAA;AAAA,QACA,WAAA;AAAA,QACA,SAAA,EAAA,iBAAW,IAAI,IAAA,EAAK,EAAE,WAAA;AAAY;AACpC,KACF;AAAA,EACF,CAAA;AAAA,EACA,QAAA,EAAU;AAAA,IACR;AAAA,MACE;AAAA,QACE,IAAA,EAAM,UAAA;AAAA,QACN,OAAA,EAAS,EAAE,IAAA,EAAM,0BAAA;AAA2B,OAC9C;AAAA,MACA;AAAA,QACE,IAAA,EAAM,WAAA;AAAA,QACN,OAAA,EAAS;AAAA,UACP,IAAA,EAAM,uFAAA;AAAA,UACN,OAAA,EAAS,CAAC,gBAAgB;AAAA;AAC5B;AACF;AACF;AAEJ,CAAA;AAGA,IAAM,wBAAA,GAAmC;AAAA,EACvC,IAAA,EAAM,qBAAA;AAAA,EACN,OAAA,EAAS,CAAC,YAAA,EAAc,WAAA,EAAa,sBAAsB,CAAA;AAAA,EAC3D,WAAA,EAAa,+HAAA;AAAA,EACb,UAAU,YAAY,IAAA;AAAA,EACtB,SAAS,OACP,QAAA,EACA,OAAA,EACA,KAAA,EACA,UACA,QAAA,KAC0B;AAC1B,IAAA,MAAM,CAAA,GAAI,aAAA,CAAc,KAAA,EAAO,aAAA,EAAe,CAAC,CAAA;AAC/C,IAAA,MAAM,CAAA,GAAI,aAAA,CAAc,KAAA,EAAO,aAAA,EAAe,CAAC,CAAA;AAC/C,IAAA,MAAM,SAAA,GAAY,KAAA,EAAO,MAAA,EAAQ,SAAA,IAAa,UAAA;AAE9C,IAAA,IAAI,MAAA;AACJ,IAAA,IAAI,WAAA;AAEJ,IAAA,QAAQ,SAAA;AAAW,MACjB,KAAK,QAAA;AAEH,QAAA,MAAA,GAAS,IAAA,CAAK,IAAI,CAAA,GAAI,CAAC,KAAK,CAAA,GAAI,CAAA,GAAI,IAAI,EAAA,CAAA,GAAM,CAAA;AAC9C,QAAA,WAAA,GAAc,CAAA,qBAAA,EAAwB,CAAC,CAAA,GAAA,EAAM,CAAC,MAAM,MAAM,CAAA,wBAAA,CAAA;AAC1D,QAAA;AAAA,MACF,KAAK,MAAA;AAEH,QAAA,MAAA,GAAS,IAAA,CAAK,IAAI,CAAA,GAAI,CAAC,IAAI,IAAA,CAAK,GAAA,CAAI,GAAG,CAAC,CAAA;AACxC,QAAA,WAAA,GAAc,CAAA,mBAAA,EAAsB,CAAC,CAAA,GAAA,EAAM,CAAC,CAAA,GAAA,EAAM,MAAM,CAAA,sBAAA,EAAyB,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,CAAC,CAAC,CAAA,CAAA,CAAA;AAC/F,QAAA;AAAA,MACF,KAAK,UAAA;AAAA,MACL;AAEE,QAAA,MAAA,GAAS,IAAA,CAAK,GAAA,CAAI,CAAA,GAAI,CAAC,CAAA;AACvB,QAAA,WAAA,GAAc,CAAA,uBAAA,EAA0B,CAAC,CAAA,GAAA,EAAM,CAAC,MAAM,MAAM,CAAA,0BAAA,CAAA;AAC5D,QAAA;AAAA;AAGJ,IAAA,MAAA,GAAS,IAAA,CAAK,KAAA,CAAM,MAAA,GAAS,GAAI,CAAA,GAAI,GAAA;AAErC,IAAA,IAAI,QAAA,EAAU;AACZ,MAAA,MAAM,QAAA,CAAS,EAAE,IAAA,EAAM,WAAA,EAAa,QAAQ,OAAA,CAAQ,OAAA,CAAQ,QAAQ,CAAA;AAAA,IACtE;AAEA,IAAA,OAAO;AAAA,MACL,OAAA,EAAS,IAAA;AAAA,MACT,IAAA,EAAM,WAAA;AAAA,MACN,MAAA,EAAQ;AAAA,QACN,WAAA,EAAa,MAAA;AAAA,QACb,WAAA,EAAa,CAAA;AAAA,QACb,aAAA,EAAe,qBAAA;AAAA,QACf,SAAA;AAAA,QACA,OAAA,EAAS,CAAC,GAAI,KAAA,EAAO,QAAQ,OAAA,IAAW,IAAK,WAAW;AAAA,OAC1D;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,SAAA,EAAW,qBAAA;AAAA,QACX,MAAA,EAAQ,EAAE,CAAA,EAAG,CAAA,EAAG,SAAA,EAAU;AAAA,QAC1B,MAAA;AAAA,QACA,WAAA;AAAA,QACA,SAAA,EAAA,iBAAW,IAAI,IAAA,EAAK,EAAE,WAAA;AAAY;AACpC,KACF;AAAA,EACF,CAAA;AAAA,EACA,QAAA,EAAU;AAAA,IACR;AAAA,MACE;AAAA,QACE,IAAA,EAAM,UAAA;AAAA,QACN,OAAA,EAAS,EAAE,IAAA,EAAM,8BAAA;AAA+B,OAClD;AAAA,MACA;AAAA,QACE,IAAA,EAAM,WAAA;AAAA,QACN,OAAA,EAAS;AAAA,UACP,IAAA,EAAM,wDAAA;AAAA,UACN,OAAA,EAAS,CAAC,qBAAqB;AAAA;AACjC;AACF;AACF;AAEJ,CAAA;AAGA,IAAM,wBAAA,GAAmC;AAAA,EACvC,IAAA,EAAM,qBAAA;AAAA,EACN,OAAA,EAAS,CAAC,YAAA,EAAc,WAAA,EAAa,sBAAsB,CAAA;AAAA,EAC3D,WAAA,EAAa,2HAAA;AAAA,EACb,UAAU,YAAY,IAAA;AAAA,EACtB,SAAS,OACP,QAAA,EACA,OAAA,EACA,KAAA,EACA,UACA,QAAA,KAC0B;AAC1B,IAAA,MAAM,CAAA,GAAI,aAAA,CAAc,KAAA,EAAO,aAAA,EAAe,CAAC,CAAA;AAC/C,IAAA,MAAM,CAAA,GAAI,aAAA,CAAc,KAAA,EAAO,aAAA,EAAe,CAAC,CAAA;AAC/C,IAAA,MAAM,SAAA,GAAY,KAAA,EAAO,MAAA,EAAQ,SAAA,IAAa,WAAA;AAE9C,IAAA,IAAI,MAAA;AACJ,IAAA,IAAI,WAAA;AAEJ,IAAA,QAAQ,SAAA;AAAW,MACjB,KAAK,aAAA;AAEH,QAAA,MAAA,GAAS,IAAA,CAAK,GAAA,CAAI,IAAA,CAAK,GAAA,CAAI,CAAC,CAAA,EAAG,IAAA,CAAK,GAAA,CAAI,CAAC,CAAC,CAAA,IAAK,CAAA,GAAI,CAAA,IAAK,CAAA,GAAI,IAAI,EAAA,GAAK,CAAA,CAAA;AACrE,QAAA,WAAA,GAAc,CAAA,0BAAA,EAA6B,CAAC,CAAA,MAAA,EAAM,CAAC,MAAM,MAAM,CAAA,WAAA,EAAc,CAAC,CAAA,CAAA,EAAI,CAAC,CAAA,CAAA,CAAA;AACnF,QAAA;AAAA,MACF,KAAK,UAAA;AAEH,QAAA,MAAM,QAAA,GAAY,CAAA,GAAI,CAAA,GAAA,CAAO,CAAA,GAAI,CAAA,IAAK,CAAA;AACtC,QAAA,MAAA,GAAS,QAAA;AACT,QAAA,WAAA,GAAc,CAAA,uBAAA,EAA0B,CAAC,CAAA,MAAA,EAAM,CAAC,MAAM,MAAM,CAAA,yBAAA,CAAA;AAC5D,QAAA;AAAA,MACF,KAAK,WAAA;AAAA,MACL;AAEE,QAAA,MAAM,WAAW,CAAA,GAAI,CAAA;AACrB,QAAA,MAAA,GAAS,oBAAA,CAAqB,QAAQ,CAAA,IAAK,QAAA,GAAW,IAAI,EAAA,GAAK,CAAA,CAAA;AAC/D,QAAA,WAAA,GAAc,2BAA2B,CAAC,CAAA,MAAA,EAAM,CAAC,CAAA,GAAA,EAAM,MAAM,0BAA0B,QAAQ,CAAA,CAAA,CAAA;AAC/F,QAAA;AAAA;AAGJ,IAAA,MAAA,GAAS,IAAA,CAAK,KAAA,CAAM,MAAA,GAAS,GAAI,CAAA,GAAI,GAAA;AAErC,IAAA,IAAI,QAAA,EAAU;AACZ,MAAA,MAAM,QAAA,CAAS,EAAE,IAAA,EAAM,WAAA,EAAa,QAAQ,OAAA,CAAQ,OAAA,CAAQ,QAAQ,CAAA;AAAA,IACtE;AAEA,IAAA,OAAO;AAAA,MACL,OAAA,EAAS,IAAA;AAAA,MACT,IAAA,EAAM,WAAA;AAAA,MACN,MAAA,EAAQ;AAAA,QACN,WAAA,EAAa,MAAA;AAAA,QACb,WAAA,EAAa,CAAA;AAAA,QACb,aAAA,EAAe,qBAAA;AAAA,QACf,SAAA;AAAA,QACA,OAAA,EAAS,CAAC,GAAI,KAAA,EAAO,QAAQ,OAAA,IAAW,IAAK,WAAW;AAAA,OAC1D;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,SAAA,EAAW,qBAAA;AAAA,QACX,MAAA,EAAQ,EAAE,CAAA,EAAG,CAAA,EAAG,SAAA,EAAU;AAAA,QAC1B,MAAA;AAAA,QACA,WAAA;AAAA,QACA,SAAA,EAAA,iBAAW,IAAI,IAAA,EAAK,EAAE,WAAA;AAAY;AACpC,KACF;AAAA,EACF,CAAA;AAAA,EACA,QAAA,EAAU;AAAA,IACR;AAAA,MACE;AAAA,QACE,IAAA,EAAM,UAAA;AAAA,QACN,OAAA,EAAS,EAAE,IAAA,EAAM,mCAAA;AAAoC,OACvD;AAAA,MACA;AAAA,QACE,IAAA,EAAM,WAAA;AAAA,QACN,OAAA,EAAS;AAAA,UACP,IAAA,EAAM,uDAAA;AAAA,UACN,OAAA,EAAS,CAAC,qBAAqB;AAAA;AACjC;AACF;AACF;AAEJ,CAAA;AAGA,IAAM,sBAAA,GAAiC;AAAA,EACrC,IAAA,EAAM,mBAAA;AAAA,EACN,OAAA,EAAS,CAAC,UAAA,EAAY,WAAA,EAAa,oBAAoB,CAAA;AAAA,EACvD,WAAA,EAAa,gHAAA;AAAA,EACb,UAAU,YAAY,IAAA;AAAA,EACtB,SAAS,OACP,QAAA,EACA,OAAA,EACA,KAAA,EACA,UACA,QAAA,KAC0B;AAC1B,IAAA,MAAM,CAAA,GAAI,aAAA,CAAc,KAAA,EAAO,aAAA,EAAe,CAAC,CAAA;AAC/C,IAAA,MAAM,CAAA,GAAI,aAAA,CAAc,KAAA,EAAO,aAAA,EAAe,CAAC,CAAA;AAC/C,IAAA,MAAM,SAAA,GAAY,KAAA,EAAO,MAAA,EAAQ,SAAA,IAAa,MAAA;AAE9C,IAAA,IAAI,MAAA;AACJ,IAAA,IAAI,WAAA;AAEJ,IAAA,QAAQ,SAAA;AAAW,MACjB,KAAK,UAAA;AAEH,QAAA,IAAI,MAAM,CAAA,EAAG;AACX,UAAA,MAAA,GAAS,CAAA,GAAI,GAAA;AACb,UAAA,WAAA,GAAc,CAAA,uBAAA,EAA0B,CAAC,CAAA,UAAA,EAAU,MAAM,CAAA,iBAAA,CAAA;AAAA,QAC3D,CAAA,MAAO;AACL,UAAA,MAAA,GAAU,CAAA,GAAI,IAAK,IAAA,CAAK,EAAA;AACxB,UAAA,WAAA,GAAc,CAAA,uBAAA,EAA0B,CAAC,CAAA,MAAA,EAAM,CAAC,MAAM,MAAM,CAAA,gBAAA,CAAA;AAAA,QAC9D;AACA,QAAA;AAAA,MACF,KAAK,QAAA;AAEH,QAAA,MAAM,WAAA,GAAc,iBAAA;AACpB,QAAA,MAAM,QAAA,GAAW,CAAA,KAAM,CAAA,GAAI,CAAA,GAAI,CAAA,GAAI,CAAA;AACnC,QAAA,MAAA,GAAA,CAAU,WAAW,WAAA,IAAe,CAAA;AACpC,QAAA,WAAA,GAAc,CAAA,qBAAA,EAAwB,CAAC,CAAA,MAAA,EAAM,CAAC,MAAM,MAAM,CAAA,uBAAA,CAAA;AAC1D,QAAA;AAAA,MACF,KAAK,MAAA;AAAA,MACL;AAEE,QAAA,MAAA,GAAS,CAAA,KAAM,CAAA,GAAI,CAAA,GAAI,CAAA,GAAI,CAAA;AAC3B,QAAA,WAAA,GAAc,CAAA,KAAM,CAAA,GAChB,CAAA,mBAAA,EAAsB,CAAC,CAAA,UAAA,EAAU,CAAC,CAAA,kCAAA,CAAA,GAClC,CAAA,mBAAA,EAAsB,CAAC,CAAA,MAAA,EAAM,CAAC,CAAA,GAAA,EAAM,MAAM,CAAA,oBAAA,CAAA;AAC9C,QAAA;AAAA;AAGJ,IAAA,MAAA,GAAS,IAAA,CAAK,KAAA,CAAM,MAAA,GAAS,GAAI,CAAA,GAAI,GAAA;AAErC,IAAA,IAAI,QAAA,EAAU;AACZ,MAAA,MAAM,QAAA,CAAS,EAAE,IAAA,EAAM,WAAA,EAAa,QAAQ,OAAA,CAAQ,OAAA,CAAQ,QAAQ,CAAA;AAAA,IACtE;AAEA,IAAA,OAAO;AAAA,MACL,OAAA,EAAS,IAAA;AAAA,MACT,IAAA,EAAM,WAAA;AAAA,MACN,MAAA,EAAQ;AAAA,QACN,WAAA,EAAa,MAAA;AAAA,QACb,WAAA,EAAa,CAAA;AAAA,QACb,aAAA,EAAe,mBAAA;AAAA,QACf,SAAA;AAAA,QACA,OAAA,EAAS,CAAC,GAAI,KAAA,EAAO,QAAQ,OAAA,IAAW,IAAK,WAAW;AAAA,OAC1D;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,SAAA,EAAW,mBAAA;AAAA,QACX,MAAA,EAAQ,EAAE,CAAA,EAAG,CAAA,EAAG,SAAA,EAAU;AAAA,QAC1B,MAAA;AAAA,QACA,WAAA;AAAA,QACA,SAAA,EAAA,iBAAW,IAAI,IAAA,EAAK,EAAE,WAAA;AAAY;AACpC,KACF;AAAA,EACF,CAAA;AAAA,EACA,QAAA,EAAU;AAAA,IACR;AAAA,MACE;AAAA,QACE,IAAA,EAAM,UAAA;AAAA,QACN,OAAA,EAAS,EAAE,IAAA,EAAM,4BAAA;AAA6B,OAChD;AAAA,MACA;AAAA,QACE,IAAA,EAAM,WAAA;AAAA,QACN,OAAA,EAAS;AAAA,UACP,IAAA,EAAM,8DAAA;AAAA,UACN,OAAA,EAAS,CAAC,mBAAmB;AAAA;AAC/B;AACF;AACF;AAEJ,CAAA;AAGA,IAAM,sBAAA,GAAiC;AAAA,EACrC,IAAA,EAAM,mBAAA;AAAA,EACN,OAAA,EAAS,CAAC,UAAA,EAAY,WAAA,EAAa,oBAAoB,CAAA;AAAA,EACvD,WAAA,EAAa,kHAAA;AAAA,EACb,QAAA,EAAU,OAAO,QAAA,EAAyB,QAAA,EAAkB,KAAA,KAAkB;AAC5E,IAAA,MAAM,CAAA,GAAI,aAAA,CAAc,KAAA,EAAO,aAAA,EAAe,CAAC,CAAA;AAC/C,IAAA,OAAO,CAAA,KAAM,CAAA;AAAA,EACf,CAAA;AAAA,EACA,SAAS,OACP,QAAA,EACA,OAAA,EACA,KAAA,EACA,UACA,QAAA,KAC0B;AAC1B,IAAA,MAAM,CAAA,GAAI,aAAA,CAAc,KAAA,EAAO,aAAA,EAAe,CAAC,CAAA;AAC/C,IAAA,MAAM,CAAA,GAAI,aAAA,CAAc,KAAA,EAAO,aAAA,EAAe,CAAC,CAAA;AAC/C,IAAA,MAAM,SAAA,GAAY,KAAA,EAAO,MAAA,EAAQ,SAAA,IAAa,UAAA;AAE9C,IAAA,IAAI,MAAA;AACJ,IAAA,IAAI,WAAA;AAEJ,IAAA,IAAI,MAAM,CAAA,EAAG;AACX,MAAA,OAAO;AAAA,QACL,OAAA,EAAS,KAAA;AAAA,QACT,IAAA,EAAM,8BAAA;AAAA,QACN,MAAA,EAAQ,KAAA,EAAO,MAAA,IAAU;AAAC,OAC5B;AAAA,IACF;AAEA,IAAA,QAAQ,SAAA;AAAW,MACjB,KAAK,QAAA;AAEH,QAAA,MAAM,eAAe,IAAA,CAAK,GAAA,CAAI,CAAC,CAAA,GAAI,IAAA,CAAK,IAAI,CAAC,CAAA;AAC7C,QAAA,MAAA,GAAS,IAAA,CAAK,GAAA,CAAK,CAAA,GAAI,CAAA,GAAK,eAAe,EAAE,CAAA;AAC7C,QAAA,WAAA,GAAc,CAAA,qBAAA,EAAwB,CAAC,CAAA,GAAA,EAAM,CAAC,CAAA,GAAA,EAAM,MAAM,CAAA,iBAAA,EAAoB,YAAA,CAAa,OAAA,CAAQ,CAAC,CAAC,CAAA,CAAA,CAAA;AACrG,QAAA;AAAA,MACF,KAAK,SAAA;AAEH,QAAA,MAAM,UAAA,GAAa,CAAA;AACnB,QAAA,MAAA,GAAS,CAAA,GAAI,CAAA;AACb,QAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,UAAA,EAAY,CAAA,EAAA,EAAK;AACnC,UAAA,MAAA,GAAU,MAAA,GAAS,KAAM,CAAA,GAAI,CAAA,CAAA;AAAA,QAC/B;AACA,QAAA,WAAA,GAAc,yBAAyB,CAAC,CAAA,GAAA,EAAM,CAAC,CAAA,GAAA,EAAM,MAAM,WAAW,UAAU,CAAA,oBAAA,CAAA;AAChF,QAAA;AAAA,MACF,KAAK,UAAA;AAAA,MACL;AAEE,QAAA,MAAA,GAAS,CAAA,GAAI,CAAA;AACb,QAAA,IAAI,MAAA,GAAS,GAAG,MAAA,IAAU,CAAA;AAC1B,QAAA,WAAA,GAAc,CAAA,uBAAA,EAA0B,CAAC,CAAA,GAAA,EAAM,CAAC,MAAM,MAAM,CAAA,gBAAA,CAAA;AAC5D,QAAA;AAAA;AAGJ,IAAA,MAAA,GAAS,IAAA,CAAK,KAAA,CAAM,MAAA,GAAS,GAAG,CAAA,GAAI,GAAA;AAEpC,IAAA,IAAI,QAAA,EAAU;AACZ,MAAA,MAAM,QAAA,CAAS,EAAE,IAAA,EAAM,WAAA,EAAa,QAAQ,OAAA,CAAQ,OAAA,CAAQ,QAAQ,CAAA;AAAA,IACtE;AAEA,IAAA,OAAO;AAAA,MACL,OAAA,EAAS,IAAA;AAAA,MACT,IAAA,EAAM,WAAA;AAAA,MACN,MAAA,EAAQ;AAAA,QACN,WAAA,EAAa,MAAA;AAAA,QACb,WAAA,EAAa,CAAA;AAAA,QACb,aAAA,EAAe,mBAAA;AAAA,QACf,SAAA;AAAA,QACA,OAAA,EAAS,CAAC,GAAI,KAAA,EAAO,QAAQ,OAAA,IAAW,IAAK,WAAW;AAAA,OAC1D;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,SAAA,EAAW,mBAAA;AAAA,QACX,MAAA,EAAQ,EAAE,CAAA,EAAG,CAAA,EAAG,SAAA,EAAU;AAAA,QAC1B,MAAA;AAAA,QACA,WAAA;AAAA,QACA,SAAA,EAAA,iBAAW,IAAI,IAAA,EAAK,EAAE,WAAA;AAAY;AACpC,KACF;AAAA,EACF,CAAA;AAAA,EACA,QAAA,EAAU;AAAA,IACR;AAAA,MACE;AAAA,QACE,IAAA,EAAM,UAAA;AAAA,QACN,OAAA,EAAS,EAAE,IAAA,EAAM,6BAAA;AAA8B,OACjD;AAAA,MACA;AAAA,QACE,IAAA,EAAM,WAAA;AAAA,QACN,OAAA,EAAS;AAAA,UACP,IAAA,EAAM,8DAAA;AAAA,UACN,OAAA,EAAS,CAAC,mBAAmB;AAAA;AAC/B;AACF;AACF;AAEJ,CAAA;AAGA,IAAM,qBAAA,GAAgC;AAAA,EACpC,IAAA,EAAM,kBAAA;AAAA,EACN,OAAA,EAAS,CAAC,SAAA,EAAW,WAAA,EAAa,mBAAmB,CAAA;AAAA,EACrD,WAAA,EAAa,0GAAA;AAAA,EACb,UAAU,YAAY,IAAA;AAAA,EACtB,SAAS,OACP,QAAA,EACA,OAAA,EACA,KAAA,EACA,UACA,QAAA,KAC0B;AAC1B,IAAA,MAAM,CAAA,GAAI,aAAA,CAAc,KAAA,EAAO,aAAA,EAAe,CAAC,CAAA;AAC/C,IAAA,MAAM,CAAA,GAAI,aAAA,CAAc,KAAA,EAAO,aAAA,EAAe,CAAC,CAAA;AAC/C,IAAA,MAAM,SAAA,GAAY,KAAA,EAAO,MAAA,EAAQ,SAAA,IAAa,UAAA;AAE9C,IAAA,IAAI,MAAA;AACJ,IAAA,IAAI,WAAA;AAEJ,IAAA,QAAQ,SAAA;AAAW,MACjB,KAAK,WAAA;AAEH,QAAA,MAAM,cAAc,IAAA,CAAK,GAAA,CAAI,CAAA,GAAI,IAAA,CAAK,KAAK,CAAC,CAAA;AAC5C,QAAA,MAAA,GAAS,KAAK,GAAA,CAAI,IAAA,CAAK,IAAI,CAAC,CAAA,EAAG,CAAC,CAAA,GAAI,WAAA;AACpC,QAAA,WAAA,GAAc,CAAA,wBAAA,EAA2B,CAAC,CAAA,CAAA,EAAI,CAAC,CAAA,GAAA,EAAM,MAAM,CAAA,sBAAA,EAAyB,WAAA,CAAY,OAAA,CAAQ,CAAC,CAAC,CAAA,CAAA,CAAA;AAC1G,QAAA;AAAA,MACF,KAAK,WAAA;AAEH,QAAA,MAAA,GAAS,CAAA;AACT,QAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,IAAA,CAAK,GAAA,CAAI,IAAA,CAAK,GAAA,CAAI,CAAC,CAAA,EAAG,CAAC,CAAA,EAAG,CAAA,EAAA,EAAK;AACjD,UAAA,MAAA,GAAS,IAAA,CAAK,GAAA,CAAI,MAAA,EAAQ,GAAG,CAAA;AAAA,QAC/B;AACA,QAAA,WAAA,GAAc,CAAA,wBAAA,EAA2B,CAAC,CAAA,CAAA,EAAI,CAAC,MAAM,MAAM,CAAA,EAAA,EAAK,IAAA,CAAK,GAAA,CAAI,IAAA,CAAK,GAAA,CAAI,CAAC,CAAA,EAAG,CAAC,CAAC,CAAA,wBAAA,CAAA;AACxF,QAAA;AAAA,MACF,KAAK,UAAA;AAAA,MACL;AACE,QAAA,MAAA,GAAS,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,CAAC,CAAA;AACtB,QAAA,WAAA,GAAc,CAAA,uBAAA,EAA0B,CAAC,CAAA,CAAA,EAAI,CAAC,MAAM,MAAM,CAAA,CAAA;AAC1D,QAAA;AAAA;AAGJ,IAAA,MAAA,GAAS,IAAA,CAAK,KAAA,CAAM,MAAA,GAAS,GAAI,CAAA,GAAI,GAAA;AAErC,IAAA,IAAI,QAAA,EAAU;AACZ,MAAA,MAAM,QAAA,CAAS,EAAE,IAAA,EAAM,WAAA,EAAa,QAAQ,OAAA,CAAQ,OAAA,CAAQ,QAAQ,CAAA;AAAA,IACtE;AAEA,IAAA,OAAO;AAAA,MACL,OAAA,EAAS,IAAA;AAAA,MACT,IAAA,EAAM,WAAA;AAAA,MACN,MAAA,EAAQ;AAAA,QACN,WAAA,EAAa,MAAA;AAAA,QACb,WAAA,EAAa,CAAA;AAAA,QACb,aAAA,EAAe,kBAAA;AAAA,QACf,SAAA;AAAA,QACA,OAAA,EAAS,CAAC,GAAI,KAAA,EAAO,QAAQ,OAAA,IAAW,IAAK,WAAW;AAAA,OAC1D;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,SAAA,EAAW,kBAAA;AAAA,QACX,MAAA,EAAQ,EAAE,CAAA,EAAG,CAAA,EAAG,SAAA,EAAU;AAAA,QAC1B,MAAA;AAAA,QACA,WAAA;AAAA,QACA,SAAA,EAAA,iBAAW,IAAI,IAAA,EAAK,EAAE,WAAA;AAAY;AACpC,KACF;AAAA,EACF,CAAA;AAAA,EACA,QAAA,EAAU;AAAA,IACR;AAAA,MACE;AAAA,QACE,IAAA,EAAM,UAAA;AAAA,QACN,OAAA,EAAS,EAAE,IAAA,EAAM,8BAAA;AAA+B,OAClD;AAAA,MACA;AAAA,QACE,IAAA,EAAM,WAAA;AAAA,QACN,OAAA,EAAS;AAAA,UACP,IAAA,EAAM,6DAAA;AAAA,UACN,OAAA,EAAS,CAAC,kBAAkB;AAAA;AAC9B;AACF;AACF;AAEJ,CAAA;AAGA,IAAM,oBAAA,GAA+B;AAAA,EACnC,IAAA,EAAM,iBAAA;AAAA,EACN,OAAA,EAAS,CAAC,QAAA,EAAU,YAAA,EAAc,kBAAkB,CAAA;AAAA,EACpD,WAAA,EAAa,kGAAA;AAAA,EACb,UAAU,YAAY,IAAA;AAAA,EACtB,SAAS,OACP,QAAA,EACA,OAAA,EACA,KAAA,EACA,UACA,QAAA,KAC0B;AAC1B,IAAA,MAAM,CAAA,GAAI,aAAA,CAAc,KAAA,EAAO,aAAA,EAAe,CAAC,CAAA;AAC/C,IAAA,MAAM,SAAA,GAAY,KAAA,EAAO,MAAA,EAAQ,SAAA,IAAa,UAAA;AAE9C,IAAA,IAAI,MAAA;AACJ,IAAA,IAAI,WAAA;AAEJ,IAAA,QAAQ,SAAA;AAAW,MACjB,KAAK,SAAA;AAEH,QAAA,MAAA,GAAS,IAAA,CAAK,IAAA,CAAK,IAAA,CAAK,GAAA,CAAI,CAAC,CAAC,CAAA;AAC9B,QAAA,IAAI,IAAI,CAAA,EAAG;AACT,UAAA,WAAA,GAAc,CAAA,4BAAA,EAA0B,CAAC,CAAA,GAAA,EAAM,MAAM,CAAA,uBAAA,CAAA;AAAA,QACvD,CAAA,MAAO;AACL,UAAA,WAAA,GAAc,CAAA,4BAAA,EAA0B,CAAC,CAAA,GAAA,EAAM,MAAM,CAAA,iBAAA,CAAA;AAAA,QACvD;AACA,QAAA;AAAA,MACF,KAAK,SAAA;AAEH,QAAA,MAAM,aAAA,GAAgB,IAAA,CAAK,IAAA,CAAK,IAAA,CAAK,GAAA,CAAI,CAAC,CAAC,CAAA,GAAA,CAAK,IAAA,CAAK,MAAA,EAAO,GAAI,GAAA,IAAO,GAAA;AACvE,QAAA,MAAA,GAAS,IAAA,CAAK,IAAI,aAAa,CAAA;AAC/B,QAAA,WAAA,GAAc,CAAA,4BAAA,EAA0B,CAAC,CAAA,GAAA,EAAM,MAAM,CAAA,sBAAA,CAAA;AACrD,QAAA;AAAA,MACF,KAAK,UAAA;AAAA,MACL;AAEE,QAAA,MAAA,GAAS,IAAA,CAAK,IAAA,CAAK,IAAA,CAAK,GAAA,CAAI,CAAC,CAAC,CAAA;AAC9B,QAAA,WAAA,GAAc,CAAA,6BAAA,EAA2B,CAAC,CAAA,GAAA,EAAM,MAAM,CAAA,uBAAA,CAAA;AACtD,QAAA;AAAA;AAGJ,IAAA,MAAA,GAAS,IAAA,CAAK,KAAA,CAAM,MAAA,GAAS,GAAI,CAAA,GAAI,GAAA;AAErC,IAAA,IAAI,QAAA,EAAU;AACZ,MAAA,MAAM,QAAA,CAAS,EAAE,IAAA,EAAM,WAAA,EAAa,QAAQ,OAAA,CAAQ,OAAA,CAAQ,QAAQ,CAAA;AAAA,IACtE;AAEA,IAAA,OAAO;AAAA,MACL,OAAA,EAAS,IAAA;AAAA,MACT,IAAA,EAAM,WAAA;AAAA,MACN,MAAA,EAAQ;AAAA,QACN,WAAA,EAAa,MAAA;AAAA,QACb,aAAA,EAAe,iBAAA;AAAA,QACf,SAAA;AAAA,QACA,OAAA,EAAS,CAAC,GAAI,KAAA,EAAO,QAAQ,OAAA,IAAW,IAAK,WAAW;AAAA,OAC1D;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,SAAA,EAAW,iBAAA;AAAA,QACX,MAAA,EAAQ,EAAE,CAAA,EAAG,SAAA,EAAU;AAAA,QACvB,MAAA;AAAA,QACA,WAAA;AAAA,QACA,SAAA,EAAA,iBAAW,IAAI,IAAA,EAAK,EAAE,WAAA;AAAY;AACpC,KACF;AAAA,EACF,CAAA;AAAA,EACA,QAAA,EAAU;AAAA,IACR;AAAA,MACE;AAAA,QACE,IAAA,EAAM,UAAA;AAAA,QACN,OAAA,EAAS,EAAE,IAAA,EAAM,kCAAA;AAAmC,OACtD;AAAA,MACA;AAAA,QACE,IAAA,EAAM,WAAA;AAAA,QACN,OAAA,EAAS;AAAA,UACP,IAAA,EAAM,oDAAA;AAAA,UACN,OAAA,EAAS,CAAC,iBAAiB;AAAA;AAC7B;AACF;AACF;AAEJ,CAAA;AAGA,IAAM,WAAA,GAAsB;AAAA,EAC1B,IAAA,EAAM,YAAA;AAAA,EACN,OAAA,EAAS,CAAC,OAAA,EAAS,OAAA,EAAS,WAAW,CAAA;AAAA,EACvC,WAAA,EAAa,kDAAA;AAAA,EACb,UAAU,YAAY,IAAA;AAAA,EACtB,SAAS,OACP,QAAA,EACA,OAAA,EACA,MAAA,EACA,UACA,QAAA,KAC0B;AAC1B,IAAA,MAAM,IAAA,GAAO,qBAAA;AAEb,IAAA,IAAI,QAAA,EAAU;AACZ,MAAA,MAAM,SAAS,EAAE,IAAA,EAAM,QAAQ,OAAA,CAAQ,OAAA,CAAQ,QAAQ,CAAA;AAAA,IACzD;AAEA,IAAA,OAAO;AAAA,MACL,OAAA,EAAS,IAAA;AAAA,MACT,IAAA;AAAA,MACA,MAAA,EAAQ;AAAA,QACN,WAAA,EAAa,CAAA;AAAA,QACb,WAAA,EAAa,CAAA;AAAA,QACb,aAAA,EAAe,OAAA;AAAA,QACf,SAAA,EAAW,UAAA;AAAA,QACX,SAAS;AAAC,OACZ;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,SAAA,EAAW;AAAA;AACb,KACF;AAAA,EACF,CAAA;AAAA,EACA,QAAA,EAAU;AAAA,IACR;AAAA,MACE;AAAA,QACE,IAAA,EAAM,UAAA;AAAA,QACN,OAAA,EAAS,EAAE,IAAA,EAAM,OAAA;AAAQ,OAC3B;AAAA,MACA;AAAA,QACE,IAAA,EAAM,WAAA;AAAA,QACN,OAAA,EAAS;AAAA,UACP,IAAA,EAAM,qBAAA;AAAA,UACN,OAAA,EAAS,CAAC,YAAY;AAAA;AACxB;AACF;AACF;AAEJ,CAAA;AAEA,IAAM,WAAA,GAAsB;AAAA,EAC1B,IAAA,EAAM,YAAA;AAAA,EACN,OAAA,EAAS,CAAC,OAAA,EAAS,MAAA,EAAQ,cAAc,CAAA;AAAA,EACzC,WAAA,EAAa,4CAAA;AAAA,EACb,UAAU,YAAY,IAAA;AAAA,EACtB,SAAS,OACP,QAAA,EACA,OAAA,EACA,KAAA,EACA,UACA,QAAA,KAC0B;AAC1B,IAAA,MAAM,WAAA,GAAc,aAAA,CAAc,KAAA,EAAO,aAAA,EAAe,CAAC,CAAA;AACzD,IAAA,MAAM,IAAA,GAAO,UAAU,WAAW,CAAA,UAAA,CAAA;AAElC,IAAA,IAAI,QAAA,EAAU;AACZ,MAAA,MAAM,SAAS,EAAE,IAAA,EAAM,QAAQ,OAAA,CAAQ,OAAA,CAAQ,QAAQ,CAAA;AAAA,IACzD;AAEA,IAAA,OAAO;AAAA,MACL,OAAA,EAAS,IAAA;AAAA,MACT,IAAA;AAAA,MACA,MAAA,EAAQ;AAAA,QACN,GAAG,KAAA,EAAO,MAAA;AAAA,QACV,MAAA,EAAQ,WAAA;AAAA,QACR,aAAA,EAAe;AAAA,OACjB;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,SAAA,EAAW,OAAA;AAAA,QACX,KAAA,EAAO;AAAA;AACT,KACF;AAAA,EACF,CAAA;AAAA,EACA,QAAA,EAAU;AAAA,IACR;AAAA,MACE;AAAA,QACE,IAAA,EAAM,UAAA;AAAA,QACN,OAAA,EAAS,EAAE,IAAA,EAAM,iBAAA;AAAkB,OACrC;AAAA,MACA;AAAA,QACE,IAAA,EAAM,WAAA;AAAA,QACN,OAAA,EAAS;AAAA,UACP,IAAA,EAAM,oBAAA;AAAA,UACN,OAAA,EAAS,CAAC,YAAY;AAAA;AACxB;AACF;AACF;AAEJ,CAAA;AAEA,IAAM,YAAA,GAAuB;AAAA,EAC3B,IAAA,EAAM,aAAA;AAAA,EACN,OAAA,EAAS,CAAC,QAAA,EAAU,MAAA,EAAQ,eAAe,CAAA;AAAA,EAC3C,WAAA,EAAa,2CAAA;AAAA,EACb,UAAU,YAAY,IAAA;AAAA,EACtB,SAAS,OACP,QAAA,EACA,OAAA,EACA,KAAA,EACA,UACA,QAAA,KAC0B;AAC1B,IAAA,MAAM,MAAA,GAAS,aAAA,CAAc,KAAA,EAAO,QAAA,EAAU,CAAC,CAAA;AAC/C,IAAA,MAAM,IAAA,GAAO,YAAY,MAAM,CAAA,YAAA,CAAA;AAE/B,IAAA,IAAI,QAAA,EAAU;AACZ,MAAA,MAAM,SAAS,EAAE,IAAA,EAAM,QAAQ,OAAA,CAAQ,OAAA,CAAQ,QAAQ,CAAA;AAAA,IACzD;AAEA,IAAA,OAAO;AAAA,MACL,OAAA,EAAS,IAAA;AAAA,MACT,IAAA;AAAA,MACA,MAAA,EAAQ;AAAA,QACN,GAAG,KAAA,EAAO,MAAA;AAAA,QACV,WAAA,EAAa,MAAA;AAAA,QACb,aAAA,EAAe;AAAA,OACjB;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,SAAA,EAAW,QAAA;AAAA,QACX,KAAA,EAAO;AAAA;AACT,KACF;AAAA,EACF,CAAA;AAAA,EACA,QAAA,EAAU;AAAA,IACR;AAAA,MACE;AAAA,QACE,IAAA,EAAM,UAAA;AAAA,QACN,OAAA,EAAS,EAAE,IAAA,EAAM,oBAAA;AAAqB,OACxC;AAAA,MACA;AAAA,QACE,IAAA,EAAM,WAAA;AAAA,QACN,OAAA,EAAS;AAAA,UACP,IAAA,EAAM,wBAAA;AAAA,UACN,OAAA,EAAS,CAAC,aAAa;AAAA;AACzB;AACF;AACF;AAEJ,CAAA;AAGA,IAAM,cAAA,GAAyB;AAAA,EAC7B,IAAA,EAAM,mBAAA;AAAA,EACN,OAAA,EAAS,CAAC,UAAA,EAAY,eAAA,EAAiB,sBAAsB,CAAA;AAAA,EAC7D,WAAA,EAAa,gEAAA;AAAA,EACb,UAAU,YAAY,IAAA;AAAA,EACtB,SAAS,OACP,QAAA,EACA,OAAA,EACA,KAAA,EACA,UACA,QAAA,KAC0B;AAC1B,IAAA,MAAM,WAAA,GAAc,aAAA,CAAc,KAAA,EAAO,aAAA,EAAe,CAAC,CAAA;AACzD,IAAA,MAAM,IAAA,GAAO,eAAe,WAAW,CAAA,iCAAA,CAAA;AAEvC,IAAA,IAAI,QAAA,EAAU;AACZ,MAAA,MAAM,SAAS,EAAE,IAAA,EAAM,QAAQ,OAAA,CAAQ,OAAA,CAAQ,QAAQ,CAAA;AAAA,IACzD;AAEA,IAAA,OAAO;AAAA,MACL,OAAA,EAAS,IAAA;AAAA,MACT,IAAA;AAAA,MACA,MAAA,EAAQ;AAAA,QACN,GAAG,KAAA,EAAO,MAAA;AAAA,QACV,WAAA,EAAa,WAAA;AAAA,QACb,WAAA,EAAa,CAAA;AAAA,QACb,aAAA,EAAe;AAAA,OACjB;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,SAAA,EAAW,UAAA;AAAA,QACX,KAAA,EAAO;AAAA;AACT,KACF;AAAA,EACF,CAAA;AAAA,EACA,QAAA,EAAU;AAAA,IACR;AAAA,MACE;AAAA,QACE,IAAA,EAAM,UAAA;AAAA,QACN,OAAA,EAAS,EAAE,IAAA,EAAM,mBAAA;AAAoB,OACvC;AAAA,MACA;AAAA,QACE,IAAA,EAAM,WAAA;AAAA,QACN,OAAA,EAAS;AAAA,UACP,IAAA,EAAM,gDAAA;AAAA,UACN,OAAA,EAAS,CAAC,mBAAmB;AAAA;AAC/B;AACF;AACF;AAEJ,CAAA;AAGO,IAAM,qBAAA,GAAkC;AAAA;AAAA,EAE7C,GAAG,KAAA,CAAM,IAAA,CAAK,EAAE,MAAA,EAAQ,EAAA,EAAG,EAAG,CAAC,CAAA,EAAG,CAAA,KAAM,kBAAA,CAAmB,CAAC,CAAC,CAAA;AAAA;AAAA,EAE7D,qBAAA;AAAA;AAAA,EAEA,mBAAA;AAAA,EACA,wBAAA;AAAA,EACA,wBAAA;AAAA,EACA,sBAAA;AAAA,EACA,sBAAA;AAAA,EACA,qBAAA;AAAA,EACA,oBAAA;AAAA;AAAA,EAEA,WAAA;AAAA,EACA,WAAA;AAAA,EACA,YAAA;AAAA,EACA;AACF,CAAA;;;AC3+BA,IAAM,kBAAA,GAAqB,OAAA,CAAQ,GAAA,CAAI,kBAAA,EAAoB,aAAY,KAAM,OAAA;AAC7E,IAAM,uBAAA,GAA0B,OAAA,CAAQ,GAAA,CAAI,uBAAA,EAAyB,aAAY,KAAM,OAAA;AAGvF,SAAS,YAAA,GAAyB;AAChC,EAAA,MAAM,UAAoB,EAAC;AAE3B,EAAA,IAAI,kBAAA,EAAoB;AACtB,IAAA,OAAA,CAAQ,IAAI,kDAAkD,CAAA;AAC9D,IAAA,OAAA,CAAQ,IAAA,CAAK,GAAG,iBAAiB,CAAA;AAAA,EACnC,CAAA,MAAO;AACL,IAAA,OAAA,CAAQ,IAAI,gFAAgF,CAAA;AAAA,EAC9F;AAEA,EAAA,IAAI,uBAAA,EAAyB;AAC3B,IAAA,OAAA,CAAQ,IAAI,uDAAuD,CAAA;AACnE,IAAA,OAAA,CAAQ,IAAA,CAAK,GAAG,qBAAqB,CAAA;AAAA,EACvC,CAAA,MAAO;AACL,IAAA,OAAA,CAAQ,IAAI,0FAA0F,CAAA;AAAA,EACxG;AAGA,EAAA,IAAI,OAAA,CAAQ,WAAW,CAAA,EAAG;AACxB,IAAA,OAAA,CAAQ,KAAK,oJAAoJ,CAAA;AAAA,EACnK;AAEA,EAAA,OAAA,CAAQ,GAAA,CAAI,CAAA,4CAAA,EAA+C,OAAA,CAAQ,MAAM,CAAA,CAAE,CAAA;AAC3E,EAAA,OAAO,OAAA;AACT;AAGO,IAAM,iBAAA,GAA4B;AAAA,EACvC,IAAA,EAAM,qBAAA;AAAA,EACN,WAAA,EACE,kQAAA;AAAA,EACF,SAAS,YAAA;AACX;AAGO,IAAM,eAAA,GAAkB;AAAA,EAC7B,iBAAA,EAAmB,kBAAA;AAAA,EACnB,qBAAA,EAAuB,uBAAA;AAAA,EACvB,kBAAA,EAAoB,iBAAA,CAAkB,OAAA,EAAS,MAAA,IAAU;AAC3D;AAGA,IAAO,aAAA,GAAQ","file":"index.js","sourcesContent":["import type {\n Action,\n ActionExample,\n ActionResult,\n HandlerCallback,\n IAgentRuntime,\n Memory,\n State,\n} from \"@elizaos/core\";\n\ntype TypewriterLetter =\n | \"a\" | \"b\" | \"c\" | \"d\" | \"e\" | \"f\" | \"g\" | \"h\" | \"i\" | \"j\" | \"k\" | \"l\" | \"m\"\n | \"n\" | \"o\" | \"p\" | \"q\" | \"r\" | \"s\" | \"t\" | \"u\" | \"v\" | \"w\" | \"x\" | \"y\" | \"z\";\n\nfunction createLetterAction(letter: TypewriterLetter): Action {\n const upper = letter.toUpperCase();\n\n return {\n name: `TYPE_${upper}`,\n similes: [`TYPE_${upper}`, `TYPE_${letter}`],\n description: `Type the letter '${letter}' and append it to the accumulating typed text for benchmarking action chaining.`,\n validate: async (_runtime: IAgentRuntime, _message: Memory, _state?: State) => {\n return true;\n },\n handler: async (\n _runtime: IAgentRuntime,\n message: Memory,\n state?: State,\n _options?: Record<string, unknown>,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const current = state?.values?.typedText ?? \"\";\n const next = `${current}${letter}`;\n\n // Optional immediate feedback for visibility during bench runs\n if (callback) {\n await callback({\n text: next,\n source: message.content.source,\n });\n }\n\n return {\n success: true,\n text: next,\n values: {\n typedText: next,\n },\n data: {\n letter,\n length: next.length,\n },\n } satisfies ActionResult;\n },\n examples: [\n [\n {\n name: \"{{user}}\",\n content: { text: `type '${letter}'` },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: letter,\n actions: [`TYPE_${upper}`],\n },\n },\n ],\n ] as ActionExample[][],\n } as Action;\n}\n\nexport const typewriterActions: Action[] = (\n \"abcdefghijklmnopqrstuvwxyz\".split(\"\") as TypewriterLetter[]\n).map(createLetterAction);\n\n\n","import type {\n Action,\n ActionExample,\n ActionResult,\n HandlerCallback,\n IAgentRuntime,\n Memory,\n State,\n} from \"@elizaos/core\";\n\n// Helper function to generate a pseudo-random multiverse seed\nfunction generateMultiverseSeed(a: number, b: number): number {\n const seed = ((a * 73) + (b * 37)) % 1000;\n return Math.abs(seed);\n}\n\n// Helper function to check if a number is prime\nfunction isPrime(n: number): boolean {\n if (n <= 1) return false;\n if (n <= 3) return true;\n if (n % 2 === 0 || n % 3 === 0) return false;\n for (let i = 5; i * i <= n; i += 6) {\n if (n % i === 0 || n % (i + 2) === 0) return false;\n }\n return true;\n}\n\n// Helper function to find the next prime number\nfunction findNextPrime(n: number): number {\n if (n < 2) return 2;\n let candidate = Math.ceil(n);\n while (!isPrime(candidate)) {\n candidate++;\n }\n return candidate;\n}\n\n// Helper function to find nearest Fibonacci number\nfunction findNearestFibonacci(n: number): number {\n const fibSeq = [0, 1];\n while (fibSeq[fibSeq.length - 1] < Math.abs(n)) {\n fibSeq.push(fibSeq[fibSeq.length - 1] + fibSeq[fibSeq.length - 2]);\n }\n \n const lastFib = fibSeq[fibSeq.length - 1];\n const prevFib = fibSeq[fibSeq.length - 2];\n \n return Math.abs(n - lastFib) < Math.abs(n - prevFib) ? lastFib : prevFib;\n}\n\n// Helper to safely parse numbers from state\nfunction getStateValue(state: State | undefined, key: string, defaultValue: number = 0): number {\n const value = state?.values?.[key];\n if (typeof value === \"number\") return value;\n if (typeof value === \"string\") {\n const parsed = parseFloat(value);\n return isNaN(parsed) ? defaultValue : parsed;\n }\n return defaultValue;\n}\n\n// Number input actions (0-9)\nfunction createNumberAction(digit: number): Action {\n return {\n name: `INPUT_${digit}`,\n similes: [`INPUT_${digit}`, `TYPE_${digit}`, `ENTER_${digit}`],\n description: `Input the number ${digit} into the current calculation buffer.`,\n validate: async () => true,\n handler: async (\n _runtime: IAgentRuntime,\n message: Memory,\n state?: State,\n _options?: Record<string, unknown>,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const currentBuffer = getStateValue(state, \"inputBuffer\", 0);\n const newBuffer = currentBuffer * 10 + digit;\n \n if (callback) {\n await callback({\n text: `Input: ${newBuffer}`,\n source: message.content.source,\n });\n }\n\n return {\n success: true,\n text: `Input: ${newBuffer}`,\n values: {\n inputBuffer: newBuffer,\n lastInput: digit,\n },\n data: {\n digit,\n buffer: newBuffer,\n },\n };\n },\n examples: [\n [\n {\n name: \"{{user}}\",\n content: { text: `input ${digit}` },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: `Input: ${digit}`,\n actions: [`INPUT_${digit}`],\n },\n },\n ],\n ] as ActionExample[][],\n };\n}\n\n// Dimension selector action\nconst selectDimensionAction: Action = {\n name: \"SELECT_DIMENSION\",\n similes: [\"DIMENSION\", \"SET_DIMENSION\", \"CHOOSE_DIMENSION\"],\n description: \"Select the dimensional constant that affects how mathematical operations behave in the multiverse.\",\n validate: async () => true,\n handler: async (\n _runtime: IAgentRuntime,\n message: Memory,\n state?: State,\n _options?: Record<string, unknown>,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n // Parse dimension from message content\n const content = message.content.text?.toLowerCase() || \"\";\n let dimension = \"standard\";\n \n if (content.includes(\"quantum\")) dimension = \"quantum\";\n else if (content.includes(\"chaos\")) dimension = \"chaos\";\n else if (content.includes(\"prime\")) dimension = \"prime\";\n else if (content.includes(\"mirror\")) dimension = \"mirror\";\n else if (content.includes(\"void\")) dimension = \"void\";\n else if (content.includes(\"absolute\")) dimension = \"absolute\";\n else if (content.includes(\"fibonacci\")) dimension = \"fibonacci\";\n else if (content.includes(\"exponential\")) dimension = \"exponential\";\n else if (content.includes(\"harmonic\")) dimension = \"harmonic\";\n else if (content.includes(\"infinite\")) dimension = \"infinite\";\n else if (content.includes(\"golden\")) dimension = \"golden\";\n else if (content.includes(\"spiral\")) dimension = \"spiral\";\n else if (content.includes(\"fractal\")) dimension = \"fractal\";\n else if (content.includes(\"cyclical\")) dimension = \"cyclical\";\n \n const text = `Dimension set to: ${dimension}`;\n \n if (callback) {\n await callback({ text, source: message.content.source });\n }\n\n return {\n success: true,\n text,\n values: {\n ...state?.values,\n dimension,\n },\n data: {\n dimension,\n },\n };\n },\n examples: [\n [\n {\n name: \"{{user}}\",\n content: { text: \"set dimension to quantum\" },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"Dimension set to: quantum\",\n actions: [\"SELECT_DIMENSION\"],\n },\n },\n ],\n ] as ActionExample[][],\n};\n\n// Multiverse Add Action\nconst multiverseAddAction: Action = {\n name: \"MULTIVERSE_ADD\",\n similes: [\"M_ADD\", \"MULTI_ADD\", \"DIMENSIONAL_ADD\"],\n description: \"Performs addition in the multiverse where numbers behave differently based on dimensional constants (prime, quantum, or chaos).\",\n validate: async () => true,\n handler: async (\n _runtime: IAgentRuntime,\n message: Memory,\n state?: State,\n _options?: Record<string, unknown>,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const a = getStateValue(state, \"accumulator\", 0);\n const b = getStateValue(state, \"inputBuffer\", 0);\n const dimension = state?.values?.dimension || \"prime\";\n \n let result: number;\n let explanation: string;\n \n switch (dimension) {\n case \"quantum\":\n // In quantum dimension, addition creates superposition\n result = a + b + Math.sqrt(Math.abs(a * b));\n explanation = `In quantum dimension: ${a} + ${b} = ${result} (includes quantum entanglement factor √(${a}×${b}))`;\n break;\n case \"chaos\":\n // In chaos dimension, results are unpredictable but deterministic\n const seed = generateMultiverseSeed(a, b);\n result = a + b + (seed % 10);\n explanation = `In chaos dimension: ${a} + ${b} = ${result} (chaos factor: ${seed % 10})`;\n break;\n case \"prime\":\n default:\n // In prime dimension, only prime numbers truly exist\n const standardResult = a + b;\n const nextPrime = findNextPrime(Math.abs(standardResult));\n result = standardResult < 0 ? -nextPrime : nextPrime;\n explanation = `In prime dimension: ${a} + ${b} = ${result} (elevated to nearest prime from ${standardResult})`;\n break;\n }\n \n result = Math.round(result * 1000) / 1000; // Round to 3 decimal places\n \n if (callback) {\n await callback({ text: explanation, source: message.content.source });\n }\n\n return {\n success: true,\n text: explanation,\n values: {\n accumulator: result,\n inputBuffer: 0,\n lastOperation: \"multiverse_add\",\n dimension,\n history: [...(state?.values?.history || []), explanation],\n },\n data: {\n operation: \"multiverse_add\",\n inputs: { a, b, dimension },\n result,\n explanation,\n timestamp: new Date().toISOString(),\n },\n };\n },\n examples: [\n [\n {\n name: \"{{user}}\",\n content: { text: \"add in quantum dimension\" },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"In quantum dimension: 0 + 0 = 0 (includes quantum entanglement factor √(0×0))\",\n actions: [\"MULTIVERSE_ADD\"],\n },\n },\n ],\n ] as ActionExample[][],\n};\n\n// Multiverse Subtract Action\nconst multiverseSubtractAction: Action = {\n name: \"MULTIVERSE_SUBTRACT\",\n similes: [\"M_SUBTRACT\", \"MULTI_SUB\", \"DIMENSIONAL_SUBTRACT\"],\n description: \"Performs subtraction in the multiverse where negative numbers might not exist in some dimensions (absolute, mirror, or void).\",\n validate: async () => true,\n handler: async (\n _runtime: IAgentRuntime,\n message: Memory,\n state?: State,\n _options?: Record<string, unknown>,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const a = getStateValue(state, \"accumulator\", 0);\n const b = getStateValue(state, \"inputBuffer\", 0);\n const dimension = state?.values?.dimension || \"absolute\";\n \n let result: number;\n let explanation: string;\n \n switch (dimension) {\n case \"mirror\":\n // In mirror dimension, subtraction reflects across zero\n result = Math.abs(a - b) * (a > b ? 1 : -1) * 2;\n explanation = `In mirror dimension: ${a} - ${b} = ${result} (reflected subtraction)`;\n break;\n case \"void\":\n // In void dimension, subtraction creates voids (always positive)\n result = Math.abs(a - b) + Math.min(a, b);\n explanation = `In void dimension: ${a} - ${b} = ${result} (void compensation: +${Math.min(a, b)})`;\n break;\n case \"absolute\":\n default:\n // In absolute dimension, negative numbers don't exist\n result = Math.abs(a - b);\n explanation = `In absolute dimension: ${a} - ${b} = ${result} (absolute value universe)`;\n break;\n }\n \n result = Math.round(result * 1000) / 1000;\n \n if (callback) {\n await callback({ text: explanation, source: message.content.source });\n }\n\n return {\n success: true,\n text: explanation,\n values: {\n accumulator: result,\n inputBuffer: 0,\n lastOperation: \"multiverse_subtract\",\n dimension,\n history: [...(state?.values?.history || []), explanation],\n },\n data: {\n operation: \"multiverse_subtract\",\n inputs: { a, b, dimension },\n result,\n explanation,\n timestamp: new Date().toISOString(),\n },\n };\n },\n examples: [\n [\n {\n name: \"{{user}}\",\n content: { text: \"subtract in mirror dimension\" },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"In mirror dimension: 0 - 0 = 0 (reflected subtraction)\",\n actions: [\"MULTIVERSE_SUBTRACT\"],\n },\n },\n ],\n ] as ActionExample[][],\n};\n\n// Multiverse Multiply Action\nconst multiverseMultiplyAction: Action = {\n name: \"MULTIVERSE_MULTIPLY\",\n similes: [\"M_MULTIPLY\", \"MULTI_MUL\", \"DIMENSIONAL_MULTIPLY\"],\n description: \"Performs multiplication across dimensional boundaries with exotic number behaviors (fibonacci, exponential, or harmonic).\",\n validate: async () => true,\n handler: async (\n _runtime: IAgentRuntime,\n message: Memory,\n state?: State,\n _options?: Record<string, unknown>,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const a = getStateValue(state, \"accumulator\", 1);\n const b = getStateValue(state, \"inputBuffer\", 1);\n const dimension = state?.values?.dimension || \"fibonacci\";\n \n let result: number;\n let explanation: string;\n \n switch (dimension) {\n case \"exponential\":\n // In exponential dimension, multiplication compounds\n result = Math.pow(Math.abs(a), Math.abs(b)) * (a < 0 || b < 0 ? -1 : 1);\n explanation = `In exponential dimension: ${a} × ${b} = ${result} (actually ${a}^${b})`;\n break;\n case \"harmonic\":\n // In harmonic dimension, multiplication creates harmonics\n const harmonic = (a * b) + ((a + b) / 2);\n result = harmonic;\n explanation = `In harmonic dimension: ${a} × ${b} = ${result} (includes harmonic mean)`;\n break;\n case \"fibonacci\":\n default:\n // In fibonacci dimension, results snap to fibonacci numbers\n const standard = a * b;\n result = findNearestFibonacci(standard) * (standard < 0 ? -1 : 1);\n explanation = `In fibonacci dimension: ${a} × ${b} = ${result} (nearest Fibonacci to ${standard})`;\n break;\n }\n \n result = Math.round(result * 1000) / 1000;\n \n if (callback) {\n await callback({ text: explanation, source: message.content.source });\n }\n\n return {\n success: true,\n text: explanation,\n values: {\n accumulator: result,\n inputBuffer: 0,\n lastOperation: \"multiverse_multiply\",\n dimension,\n history: [...(state?.values?.history || []), explanation],\n },\n data: {\n operation: \"multiverse_multiply\",\n inputs: { a, b, dimension },\n result,\n explanation,\n timestamp: new Date().toISOString(),\n },\n };\n },\n examples: [\n [\n {\n name: \"{{user}}\",\n content: { text: \"multiply in exponential dimension\" },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"In exponential dimension: 1 × 1 = 1 (actually 1^1)\",\n actions: [\"MULTIVERSE_MULTIPLY\"],\n },\n },\n ],\n ] as ActionExample[][],\n};\n\n// Multiverse Divide Action\nconst multiverseDivideAction: Action = {\n name: \"MULTIVERSE_DIVIDE\",\n similes: [\"M_DIVIDE\", \"MULTI_DIV\", \"DIMENSIONAL_DIVIDE\"],\n description: \"Performs division in the multiverse where infinity and zero have special meanings (safe, infinite, or golden).\",\n validate: async () => true,\n handler: async (\n _runtime: IAgentRuntime,\n message: Memory,\n state?: State,\n _options?: Record<string, unknown>,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const a = getStateValue(state, \"accumulator\", 0);\n const b = getStateValue(state, \"inputBuffer\", 1);\n const dimension = state?.values?.dimension || \"safe\";\n \n let result: number;\n let explanation: string;\n \n switch (dimension) {\n case \"infinite\":\n // In infinite dimension, division by zero opens portals\n if (b === 0) {\n result = a * 999; // Portal multiplier\n explanation = `In infinite dimension: ${a} ÷ 0 = ${result} (portal opened!)`;\n } else {\n result = (a / b) * Math.PI;\n explanation = `In infinite dimension: ${a} ÷ ${b} = ${result} (π-scaled)`;\n }\n break;\n case \"golden\":\n // In golden dimension, all division tends toward golden ratio\n const goldenRatio = 1.618033988749895;\n const standard = b === 0 ? 0 : a / b;\n result = (standard + goldenRatio) / 2;\n explanation = `In golden dimension: ${a} ÷ ${b} = ${result} (converging to φ)`;\n break;\n case \"safe\":\n default:\n // In safe dimension, division by zero returns the dividend\n result = b === 0 ? a : a / b;\n explanation = b === 0 \n ? `In safe dimension: ${a} ÷ 0 = ${a} (safe division, returns dividend)`\n : `In safe dimension: ${a} ÷ ${b} = ${result} (standard division)`;\n break;\n }\n \n result = Math.round(result * 1000) / 1000;\n \n if (callback) {\n await callback({ text: explanation, source: message.content.source });\n }\n\n return {\n success: true,\n text: explanation,\n values: {\n accumulator: result,\n inputBuffer: 0,\n lastOperation: \"multiverse_divide\",\n dimension,\n history: [...(state?.values?.history || []), explanation],\n },\n data: {\n operation: \"multiverse_divide\",\n inputs: { a, b, dimension },\n result,\n explanation,\n timestamp: new Date().toISOString(),\n },\n };\n },\n examples: [\n [\n {\n name: \"{{user}}\",\n content: { text: \"divide in golden dimension\" },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"In golden dimension: 0 ÷ 1 = 0.809 (converging to φ)\",\n actions: [\"MULTIVERSE_DIVIDE\"],\n },\n },\n ],\n ] as ActionExample[][],\n};\n\n// Multiverse Modulo Action\nconst multiverseModuloAction: Action = {\n name: \"MULTIVERSE_MODULO\",\n similes: [\"M_MODULO\", \"MULTI_MOD\", \"DIMENSIONAL_MODULO\"],\n description: \"Performs modulo operation in the multiverse with cyclical dimensional properties (cyclical, spiral, or fractal).\",\n validate: async (_runtime: IAgentRuntime, _message: Memory, state?: State) => {\n const b = getStateValue(state, \"inputBuffer\", 1);\n return b !== 0;\n },\n handler: async (\n _runtime: IAgentRuntime,\n message: Memory,\n state?: State,\n _options?: Record<string, unknown>,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const a = getStateValue(state, \"accumulator\", 0);\n const b = getStateValue(state, \"inputBuffer\", 1);\n const dimension = state?.values?.dimension || \"cyclical\";\n \n let result: number;\n let explanation: string;\n \n if (b === 0) {\n return {\n success: false,\n text: \"Error: Cannot modulo by zero\",\n values: state?.values || {},\n };\n }\n \n switch (dimension) {\n case \"spiral\":\n // In spiral dimension, modulo creates spiraling patterns\n const spiralFactor = Math.sin(a) * Math.cos(b);\n result = Math.abs((a % b) + spiralFactor * 10);\n explanation = `In spiral dimension: ${a} % ${b} = ${result} (spiral factor: ${spiralFactor.toFixed(2)})`;\n break;\n case \"fractal\":\n // In fractal dimension, modulo is self-similar at all scales\n const iterations = 3;\n result = a % b;\n for (let i = 0; i < iterations; i++) {\n result = (result * 2) % (b + i);\n }\n explanation = `In fractal dimension: ${a} % ${b} = ${result} (after ${iterations} fractal iterations)`;\n break;\n case \"cyclical\":\n default:\n // In cyclical dimension, modulo creates perfect cycles\n result = a % b;\n if (result < 0) result += b; // Always positive in cyclical dimension\n explanation = `In cyclical dimension: ${a} % ${b} = ${result} (perfect cycle)`;\n break;\n }\n \n result = Math.round(result * 100) / 100;\n \n if (callback) {\n await callback({ text: explanation, source: message.content.source });\n }\n\n return {\n success: true,\n text: explanation,\n values: {\n accumulator: result,\n inputBuffer: 0,\n lastOperation: \"multiverse_modulo\",\n dimension,\n history: [...(state?.values?.history || []), explanation],\n },\n data: {\n operation: \"multiverse_modulo\",\n inputs: { a, b, dimension },\n result,\n explanation,\n timestamp: new Date().toISOString(),\n },\n };\n },\n examples: [\n [\n {\n name: \"{{user}}\",\n content: { text: \"modulo in fractal dimension\" },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"In fractal dimension: 0 % 1 = 0 (after 3 fractal iterations)\",\n actions: [\"MULTIVERSE_MODULO\"],\n },\n },\n ],\n ] as ActionExample[][],\n};\n\n// Multiverse Power Action\nconst multiversePowerAction: Action = {\n name: \"MULTIVERSE_POWER\",\n similes: [\"M_POWER\", \"MULTI_POW\", \"DIMENSIONAL_POWER\"],\n description: \"Raises numbers to powers in the multiverse with dimensional effects (standard, imaginary, or recursive).\",\n validate: async () => true,\n handler: async (\n _runtime: IAgentRuntime,\n message: Memory,\n state?: State,\n _options?: Record<string, unknown>,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const a = getStateValue(state, \"accumulator\", 0);\n const b = getStateValue(state, \"inputBuffer\", 2);\n const dimension = state?.values?.dimension || \"standard\";\n \n let result: number;\n let explanation: string;\n \n switch (dimension) {\n case \"imaginary\":\n // In imaginary dimension, powers oscillate\n const oscillation = Math.cos(b * Math.PI / 2);\n result = Math.pow(Math.abs(a), b) * oscillation;\n explanation = `In imaginary dimension: ${a}^${b} = ${result} (oscillation factor: ${oscillation.toFixed(2)})`;\n break;\n case \"recursive\":\n // In recursive dimension, power is applied iteratively\n result = a;\n for (let i = 0; i < Math.min(Math.abs(b), 5); i++) {\n result = Math.pow(result, 1.5);\n }\n explanation = `In recursive dimension: ${a}^${b} = ${result} (${Math.min(Math.abs(b), 5)} recursive applications)`;\n break;\n case \"standard\":\n default:\n result = Math.pow(a, b);\n explanation = `In standard dimension: ${a}^${b} = ${result}`;\n break;\n }\n \n result = Math.round(result * 1000) / 1000;\n \n if (callback) {\n await callback({ text: explanation, source: message.content.source });\n }\n\n return {\n success: true,\n text: explanation,\n values: {\n accumulator: result,\n inputBuffer: 0,\n lastOperation: \"multiverse_power\",\n dimension,\n history: [...(state?.values?.history || []), explanation],\n },\n data: {\n operation: \"multiverse_power\",\n inputs: { a, b, dimension },\n result,\n explanation,\n timestamp: new Date().toISOString(),\n },\n };\n },\n examples: [\n [\n {\n name: \"{{user}}\",\n content: { text: \"power in imaginary dimension\" },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"In imaginary dimension: 0^2 = 0 (oscillation factor: -1.00)\",\n actions: [\"MULTIVERSE_POWER\"],\n },\n },\n ],\n ] as ActionExample[][],\n};\n\n// Multiverse Square Root Action\nconst multiverseSqrtAction: Action = {\n name: \"MULTIVERSE_SQRT\",\n similes: [\"M_SQRT\", \"MULTI_ROOT\", \"DIMENSIONAL_SQRT\"],\n description: \"Takes square root in the multiverse with dimensional variations (positive, complex, or quantum).\",\n validate: async () => true,\n handler: async (\n _runtime: IAgentRuntime,\n message: Memory,\n state?: State,\n _options?: Record<string, unknown>,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const a = getStateValue(state, \"accumulator\", 0);\n const dimension = state?.values?.dimension || \"positive\";\n \n let result: number;\n let explanation: string;\n \n switch (dimension) {\n case \"complex\":\n // In complex dimension, negative numbers have positive roots\n result = Math.sqrt(Math.abs(a));\n if (a < 0) {\n explanation = `In complex dimension: √${a} = ${result}i (imaginary component)`;\n } else {\n explanation = `In complex dimension: √${a} = ${result} (real component)`;\n }\n break;\n case \"quantum\":\n // In quantum dimension, square root creates superposition\n const superposition = Math.sqrt(Math.abs(a)) + (Math.random() - 0.5) * 0.1;\n result = Math.abs(superposition);\n explanation = `In quantum dimension: √${a} = ${result} (quantum fluctuation)`;\n break;\n case \"positive\":\n default:\n // In positive dimension, always returns positive\n result = Math.sqrt(Math.abs(a));\n explanation = `In positive dimension: √${a} = ${result} (absolute square root)`;\n break;\n }\n \n result = Math.round(result * 1000) / 1000;\n \n if (callback) {\n await callback({ text: explanation, source: message.content.source });\n }\n\n return {\n success: true,\n text: explanation,\n values: {\n accumulator: result,\n lastOperation: \"multiverse_sqrt\",\n dimension,\n history: [...(state?.values?.history || []), explanation],\n },\n data: {\n operation: \"multiverse_sqrt\",\n inputs: { a, dimension },\n result,\n explanation,\n timestamp: new Date().toISOString(),\n },\n };\n },\n examples: [\n [\n {\n name: \"{{user}}\",\n content: { text: \"square root in complex dimension\" },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"In complex dimension: √0 = 0 (real component)\",\n actions: [\"MULTIVERSE_SQRT\"],\n },\n },\n ],\n ] as ActionExample[][],\n};\n\n// Utility actions\nconst clearAction: Action = {\n name: \"MATH_CLEAR\",\n similes: [\"CLEAR\", \"RESET\", \"CLEAR_ALL\"],\n description: \"Clear all calculation buffers and reset to zero.\",\n validate: async () => true,\n handler: async (\n _runtime: IAgentRuntime,\n message: Memory,\n _state?: State,\n _options?: Record<string, unknown>,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const text = \"Cleared all buffers\";\n \n if (callback) {\n await callback({ text, source: message.content.source });\n }\n\n return {\n success: true,\n text,\n values: {\n accumulator: 0,\n inputBuffer: 0,\n lastOperation: \"clear\",\n dimension: \"standard\",\n history: [],\n },\n data: {\n operation: \"clear\",\n },\n };\n },\n examples: [\n [\n {\n name: \"{{user}}\",\n content: { text: \"clear\" },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"Cleared all buffers\",\n actions: [\"MATH_CLEAR\"],\n },\n },\n ],\n ] as ActionExample[][],\n};\n\nconst storeAction: Action = {\n name: \"MATH_STORE\",\n similes: [\"STORE\", \"SAVE\", \"MEMORY_STORE\"],\n description: \"Store current accumulator value to memory.\",\n validate: async () => true,\n handler: async (\n _runtime: IAgentRuntime,\n message: Memory,\n state?: State,\n _options?: Record<string, unknown>,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const accumulator = getStateValue(state, \"accumulator\", 0);\n const text = `Stored ${accumulator} to memory`;\n \n if (callback) {\n await callback({ text, source: message.content.source });\n }\n\n return {\n success: true,\n text,\n values: {\n ...state?.values,\n memory: accumulator,\n lastOperation: \"store\",\n },\n data: {\n operation: \"store\",\n value: accumulator,\n },\n };\n },\n examples: [\n [\n {\n name: \"{{user}}\",\n content: { text: \"store to memory\" },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"Stored 0 to memory\",\n actions: [\"MATH_STORE\"],\n },\n },\n ],\n ] as ActionExample[][],\n};\n\nconst recallAction: Action = {\n name: \"MATH_RECALL\",\n similes: [\"RECALL\", \"LOAD\", \"MEMORY_RECALL\"],\n description: \"Recall value from memory to input buffer.\",\n validate: async () => true,\n handler: async (\n _runtime: IAgentRuntime,\n message: Memory,\n state?: State,\n _options?: Record<string, unknown>,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const memory = getStateValue(state, \"memory\", 0);\n const text = `Recalled ${memory} from memory`;\n \n if (callback) {\n await callback({ text, source: message.content.source });\n }\n\n return {\n success: true,\n text,\n values: {\n ...state?.values,\n inputBuffer: memory,\n lastOperation: \"recall\",\n },\n data: {\n operation: \"recall\",\n value: memory,\n },\n };\n },\n examples: [\n [\n {\n name: \"{{user}}\",\n content: { text: \"recall from memory\" },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"Recalled 0 from memory\",\n actions: [\"MATH_RECALL\"],\n },\n },\n ],\n ] as ActionExample[][],\n};\n\n// Transfer accumulator to input buffer\nconst transferAction: Action = {\n name: \"TRANSFER_TO_INPUT\",\n similes: [\"TRANSFER\", \"MOVE_TO_INPUT\", \"ACCUMULATOR_TO_INPUT\"],\n description: \"Transfer accumulator value to input buffer for next operation.\",\n validate: async () => true,\n handler: async (\n _runtime: IAgentRuntime,\n message: Memory,\n state?: State,\n _options?: Record<string, unknown>,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n const accumulator = getStateValue(state, \"accumulator\", 0);\n const text = `Transferred ${accumulator} from accumulator to input buffer`;\n \n if (callback) {\n await callback({ text, source: message.content.source });\n }\n\n return {\n success: true,\n text,\n values: {\n ...state?.values,\n inputBuffer: accumulator,\n accumulator: 0,\n lastOperation: \"transfer\",\n },\n data: {\n operation: \"transfer\",\n value: accumulator,\n },\n };\n },\n examples: [\n [\n {\n name: \"{{user}}\",\n content: { text: \"transfer to input\" },\n },\n {\n name: \"{{agent}}\",\n content: {\n text: \"Transferred 0 from accumulator to input buffer\",\n actions: [\"TRANSFER_TO_INPUT\"],\n },\n },\n ],\n ] as ActionExample[][],\n};\n\n// Export all multiverse math actions\nexport const multiverseMathActions: Action[] = [\n // Number inputs\n ...Array.from({ length: 10 }, (_, i) => createNumberAction(i)),\n // Dimension selector\n selectDimensionAction,\n // Multiverse operations\n multiverseAddAction,\n multiverseSubtractAction,\n multiverseMultiplyAction,\n multiverseDivideAction,\n multiverseModuloAction,\n multiversePowerAction,\n multiverseSqrtAction,\n // Utility operations\n clearAction,\n storeAction,\n recallAction,\n transferAction,\n];","import type { Plugin, Action } from \"@elizaos/core\";\nimport { typewriterActions } from \"./actions/typewriter\";\nimport { multiverseMathActions } from \"./actions/multiverseMath\";\n\n// Environment variable configuration\n// By default, both are enabled unless explicitly set to \"false\"\nconst TYPEWRITER_ENABLED = process.env.TYPEWRITER_ENABLED?.toLowerCase() !== \"false\";\nconst MULTIVERSE_MATH_ENABLED = process.env.MULTIVERSE_MATH_ENABLED?.toLowerCase() !== \"false\";\n\n// Conditionally build actions array based on environment variables\nfunction buildActions(): Action[] {\n const actions: Action[] = [];\n \n if (TYPEWRITER_ENABLED) {\n console.log(\"[plugin-action-bench] Typewriter actions enabled\");\n actions.push(...typewriterActions);\n } else {\n console.log(\"[plugin-action-bench] Typewriter actions disabled via TYPEWRITER_ENABLED=false\");\n }\n \n if (MULTIVERSE_MATH_ENABLED) {\n console.log(\"[plugin-action-bench] Multiverse math actions enabled\");\n actions.push(...multiverseMathActions);\n } else {\n console.log(\"[plugin-action-bench] Multiverse math actions disabled via MULTIVERSE_MATH_ENABLED=false\");\n }\n \n // Warn if no actions are enabled\n if (actions.length === 0) {\n console.warn(\"[plugin-action-bench] WARNING: No benchmark actions are enabled. Set TYPEWRITER_ENABLED=true or MULTIVERSE_MATH_ENABLED=true to enable benchmarks.\");\n }\n \n console.log(`[plugin-action-bench] Total actions loaded: ${actions.length}`);\n return actions;\n}\n\n// Export with the expected naming convention\nexport const actionBenchPlugin: Plugin = {\n name: \"plugin-action-bench\",\n description:\n \"Action benchmark plugin providing typewriter (A–Z) and multiverse math operations where mathematical behavior changes based on dimensional constants, testing AI agents' ability to handle context-dependent operations and unknown mathematical scenarios.\",\n actions: buildActions(),\n};\n\n// Export configuration for debugging/visibility\nexport const benchmarkConfig = {\n typewriterEnabled: TYPEWRITER_ENABLED,\n multiverseMathEnabled: MULTIVERSE_MATH_ENABLED,\n totalActionsLoaded: actionBenchPlugin.actions?.length ?? 0,\n};\n\n// Default export\nexport default actionBenchPlugin;\n"]}
|
package/package.json
CHANGED