{"_id":"@elizaos/plugin-eliza-classic-root","_rev":"4-9be0947444dd052297e8b89f0e585912","name":"@elizaos/plugin-eliza-classic-root","dist-tags":{"next":"2.0.0-alpha.1","latest":"2.0.0-alpha.1"},"versions":{"2.0.0-alpha.1":{"name":"@elizaos/plugin-eliza-classic-root","version":"2.0.0-alpha.1","keywords":[],"author":{"name":"elizaOS"},"license":"MIT","_id":"@elizaos/plugin-eliza-classic-root@2.0.0-alpha.1","maintainers":[{"name":"shawticus","email":"shawmakesmagic@gmail.com"},{"name":"shakkernerd","email":"shakkerdroid@gmail.com"},{"name":"wtfsayo","email":"hi@sayo.wtf"},{"name":"odilitime","email":"janesmith@airmail.cc"},{"name":"cjft","email":"cjft@trimboli.io"}],"homepage":"https://github.com/elizaos-plugins/plugin-eliza-classic#readme","bugs":{"url":"https://github.com/elizaos-plugins/plugin-eliza-classic/issues"},"dist":{"shasum":"d7f322efc2a7830eef16fe01d44c2b35e1239efe","tarball":"https://registry.npmjs.org/@elizaos/plugin-eliza-classic-root/-/plugin-eliza-classic-root-2.0.0-alpha.1.tgz","fileCount":116,"integrity":"sha512-lWbZ77C+/kXte6CcrNApXe+6oFP2UuePmSqvVANCTBK12OmtcLBqxS3r/eDI4KSM7BRo3Iwniy7fnufDjWEv0A==","signatures":[{"sig":"MEUCIQCPTnxorxS31DWDIcwnfNmWG0Ya2hwO2C2v7m/Eqyhv4gIgLTj5Na2ROqcZIrK1BZd/kejKLYpKztrzIJdBkY9PS24=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":601413},"main":"typescript/dist/index.js","type":"module","types":"typescript/dist/index.d.ts","exports":{".":{"types":"./typescript/dist/index.d.ts","import":"./typescript/dist/index.js","default":"./typescript/dist/index.js"},"./rust":{"import":"./rust/pkg/node/elizaos_plugin_plugin_eliza_classic.js"},"./package.json":"./package.json"},"gitHead":"05d4ca11d769db8c7f54a722ee24b2ce2b951543","scripts":{"dev":"cd typescript && bun --hot build.ts","lint":"bunx @biomejs/biome check --write ./typescript","test":"bun run test:ts && bun run test:rust && bun run test:python","build":"bun run build:ts && bun run build:rust && bun run build:python","clean":"rm -rf typescript/dist python/dist rust/target .turbo node_modules","test:ts":"cd typescript && vitest run || echo 'TypeScript tests skipped - no tests found'","build:ts":"cd typescript && bun run build.ts","lint:rust":"test -d rust && cd rust && cargo clippy --all-targets --fix --allow-dirty --allow-staged -- -D warnings && cargo fmt || echo 'Rust lint skipped'","test:rust":"test -d rust && cd rust && cargo test || echo 'Rust tests skipped'","typecheck":"tsc --noEmit -p typescript/tsconfig.json","build:rust":"test -d rust && cd rust && cargo build --release || echo 'Rust build skipped - no rust directory'","lint:check":"bunx @biomejs/biome check ./typescript","lint:python":"test -d python && cd python && ruff check --fix . && ruff format . || echo 'Python lint skipped'","test:python":"test -d python && cd python && pytest -p no:anchorpy --asyncio-mode=auto || echo 'Python tests skipped'","build:python":"test -d python && cd python && (python3 -m build 2>/dev/null || pyproject-build) || echo 'Python build skipped - no python directory'","lint:python:fix":"test -d python && cd python && ruff check --fix . && ruff format . || echo 'Python lint fix skipped'"},"_npmUser":{"name":"shawticus","email":"shawmakesmagic@gmail.com"},"repository":{"url":"git+https://github.com/elizaos-plugins/plugin-eliza-classic.git","type":"git"},"_npmVersion":"lerna/9.0.3/node@v22.20.0+arm64 (darwin)","agentConfig":{"pluginType":"elizaos:plugin:1.0.0","pluginParameters":{}},"description":"Classic ELIZA pattern matching plugin for elizaOS. Provides a testable chat response interface for agents without requiring an LLM.","directories":{},"_nodeVersion":"22.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.5","typescript":"^5.9.3","@types/node":"^25.0.3","@biomejs/biome":"^2.3.11"},"peerDependencies":{"@elizaos/core":"2.0.0-alpha.1"},"_npmOperationalInternal":{"tmp":"tmp/plugin-eliza-classic-root_2.0.0-alpha.1_1769033602679_0.7135938909902129","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2026-01-21T22:13:22.612Z","modified":"2026-06-16T05:14:17.731Z","2.0.0-alpha.1":"2026-01-21T22:13:22.898Z"},"bugs":{"url":"https://github.com/elizaos-plugins/plugin-eliza-classic/issues"},"author":{"name":"elizaOS"},"license":"MIT","homepage":"https://github.com/elizaos-plugins/plugin-eliza-classic#readme","keywords":[],"repository":{"url":"git+https://github.com/elizaos-plugins/plugin-eliza-classic.git","type":"git"},"description":"Classic ELIZA pattern matching plugin for elizaOS. Provides a testable chat response interface for agents without requiring an LLM.","maintainers":[{"email":"shawmakesmagic@gmail.com","name":"shawticus"},{"email":"janesmith@airmail.cc","name":"odilitime"}],"readme":"# @elizaos/plugin-eliza-classic\n\nClassic ELIZA pattern matching plugin for elizaOS. Provides a testable chat response interface for agents without requiring an LLM.\n\n## Overview\n\nThis plugin implements Joseph Weizenbaum's original 1966 ELIZA pattern matching algorithm as an elizaOS model provider. It's useful for:\n\n- **Testing**: Validate agent workflows without API costs\n- **Development**: Rapid iteration without LLM latency\n- **Education**: Understand how pattern matching chatbots work\n- **Offline use**: No internet connection required\n\n## Installation\n\n```bash\n# TypeScript/JavaScript\nbun add @elizaos/plugin-eliza-classic\n\n# Python\npip install elizaos-plugin-eliza-classic\n\n# Rust\ncargo add elizaos-plugin-eliza-classic\n```\n\n## Usage\n\n### TypeScript\n\n```typescript\nimport { AgentRuntime, ModelType } from \"@elizaos/core\";\nimport { elizaClassicPlugin } from \"@elizaos/plugin-eliza-classic\";\n\nconst runtime = new AgentRuntime({\n  character: { name: \"ELIZA\" },\n  plugins: [elizaClassicPlugin],\n});\n\nawait runtime.initialize();\n\nconst response = await runtime.useModel(ModelType.TEXT_LARGE, {\n  prompt: \"I feel sad today\",\n});\n// => \"I am sorry to hear that you are feeling that way.\"\n```\n\n### Python\n\n```python\nfrom elizaos_plugin_eliza_classic import ElizaClassicPlugin\n\nplugin = ElizaClassicPlugin()\n\nresponse = plugin.generate_response(\"I feel sad today\")\n# => \"I am sorry to hear that you are feeling that way.\"\n\n# Or use as elizaOS plugin\nfrom elizaos_plugin_eliza_classic import create_eliza_classic_elizaos_plugin\n\nplugin = create_eliza_classic_elizaos_plugin()\n# Pass to AgentRuntime\n```\n\n### Rust\n\n```rust\nuse elizaos_plugin_eliza_classic::ElizaClassicPlugin;\n\nlet plugin = ElizaClassicPlugin::new();\nlet response = plugin.generate_response(\"I feel sad today\");\n// => \"I am sorry to hear that you are feeling that way.\"\n```\n\n## How It Works\n\nELIZA uses a keyword-based pattern matching system:\n\n1. **Keywords**: Input is scanned for keywords with associated weights\n2. **Pattern Matching**: Each keyword has regex patterns with capture groups\n3. **Response Selection**: A random response template is chosen\n4. **Pronoun Reflection**: Captured groups have pronouns reflected (I → you, my → your)\n5. **Substitution**: Captured text is inserted into the response template\n\n### Example Pattern\n\n```\nKeyword: \"remember\" (weight: 5)\nPattern: /do you remember (.*)/i\nResponses:\n  - \"Did you think I would forget $1?\"\n  - \"Why do you think I should recall $1 now?\"\n```\n\nInput: \"Do you remember my birthday?\"\nOutput: \"Did you think I would forget your birthday?\"\n\n## Model Types Supported\n\n| Model Type   | Description                 |\n| ------------ | --------------------------- |\n| `TEXT_LARGE` | Full ELIZA pattern matching |\n| `TEXT_SMALL` | Same as TEXT_LARGE          |\n\n## Configuration\n\nNo configuration required. The plugin works out of the box.\n\n## Testing\n\n```bash\n# TypeScript\nnpx vitest\n\n# Python\npytest\n\n# Rust\ncargo test\n```\n\n## License\n\nMIT\n\n\n\n","readmeFilename":"README.md"}