{"_id":"getpatter","_rev":"21-0063875df03e53233b4b48b13da79d6c","name":"getpatter","dist-tags":{"latest":"0.7.0"},"versions":{"0.3.0":{"name":"getpatter","version":"0.3.0","keywords":["voice","ai","phone","telephony","speech","tts","stt","twilio","telnyx","openai","elevenlabs"],"author":{"name":"Nicolò Tognoni","email":"nicolo@getpatter.com"},"license":"MIT","_id":"getpatter@0.3.0","maintainers":[{"name":"patterai","email":"getpatterai@gmail.com"}],"homepage":"https://www.getpatter.com","bugs":{"url":"https://github.com/PatterAI/Patter/issues"},"dist":{"shasum":"e62cce6a3fa3d315e2b2e191e2fb77f6b7afa042","tarball":"https://registry.npmjs.org/getpatter/-/getpatter-0.3.0.tgz","fileCount":9,"integrity":"sha512-rBFhbZc5tS5X78ZlYOp8GADxUkjv0k+08wlUwByVWj8i97kIm+6x8u9Dg4E/euwPDrXvBHziAv3FxMt1ObES5A==","signatures":[{"sig":"MEYCIQCfn4c1sW4yX7HxT/Suc4MQFdRAU9r2lcOLC3p/62LRswIhAMry5hFeLp6y/GQBoro0sN8eFt1v2TZ/x6T/lJHu5i2M","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":381804},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"e744a3d8a1d23e5e67c21574ddc36f049feae04d","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"tsup src/index.ts --format cjs,esm --dts","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"patterai","email":"getpatterai@gmail.com"},"repository":{"url":"git+https://github.com/PatterAI/Patter.git","type":"git","directory":"sdk-ts"},"_npmVersion":"11.11.0","description":"Connect AI agents to phone numbers with 10 lines of code","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.18.0","express":"^5.2.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.0.0","vitest":"^2.0.0","@types/ws":"^8.5.0","typescript":"^5.4.0","@types/express":"^5.0.6"},"_npmOperationalInternal":{"tmp":"tmp/getpatter_0.3.0_1775946049466_0.2789207241276974","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"getpatter","version":"0.4.0","keywords":["voice","ai","phone","telephony","speech","tts","stt","twilio","telnyx","openai","elevenlabs"],"author":{"name":"Nicolò Tognoni","email":"nicolo@getpatter.com"},"license":"MIT","_id":"getpatter@0.4.0","maintainers":[{"name":"nicolotognoni","email":"getpatterai@gmail.com"}],"homepage":"https://www.getpatter.com","bugs":{"url":"https://github.com/PatterAI/Patter/issues"},"dist":{"shasum":"0a952f327bf1c61978361bd127577f609527d462","tarball":"https://registry.npmjs.org/getpatter/-/getpatter-0.4.0.tgz","fileCount":14,"integrity":"sha512-pN1qNxGsmWcnlKRIg6BIZvOcsBl3/dQRag+jkZRRQpklKaqz5bTmssHNv0ZX8wCnkt5DuomqMQtTORsY1tsrjA==","signatures":[{"sig":"MEYCIQDssiOnkCI2XO7GYYkJMSKNpSevlSfzB0OIN2ym6OOPKgIhAL2fnGdpXjc0n332b5IhtGi1K4eBKwAVtEaknhyjC8Ps","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":400984},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"bf7350b4c0d2c60fadbbb2c2509431b6313710bb","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"tsup src/index.ts --format cjs,esm --dts","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"nicolotognoni","email":"getpatterai@gmail.com"},"repository":{"url":"git+https://github.com/PatterAI/Patter.git","type":"git","directory":"sdk-ts"},"_npmVersion":"11.11.0","description":"Connect AI agents to phone numbers with 10 lines of code","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.18.0","express":"^5.2.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.0.0","vitest":"^3.2.4","@types/ws":"^8.5.0","playwright":"^1.59.1","typescript":"^5.4.0","@types/express":"^5.0.6","@playwright/test":"^1.59.1","@vitest/coverage-v8":"^3.2.4"},"optionalDependencies":{"cloudflared":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/getpatter_0.4.0_1776073789102_0.5819152749655829","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"getpatter","version":"0.4.1","keywords":["voice","ai","phone","telephony","speech","tts","stt","twilio","telnyx","openai","elevenlabs"],"author":{"name":"Nicolò Tognoni","email":"nicolo@getpatter.com"},"license":"MIT","_id":"getpatter@0.4.1","maintainers":[{"name":"nicolotognoni","email":"getpatterai@gmail.com"}],"homepage":"https://www.getpatter.com","bugs":{"url":"https://github.com/PatterAI/Patter/issues"},"dist":{"shasum":"81a3644a25af1b1fdf82110b7231e1eb797b0e96","tarball":"https://registry.npmjs.org/getpatter/-/getpatter-0.4.1.tgz","fileCount":12,"integrity":"sha512-t9ZR7tbNpHPrvD9YipQGxpIepk0WPEudUt59hxYdyDLR/oYOcNRLI9SfuA9/wju8TuO+8tf0Cw9QXf0FivsD9g==","signatures":[{"sig":"MEYCIQCVCCiFoQXN40PQkEdzc4Y67CkHqyHwWAjqFeBulEZmlQIhAJQB1jN8mLVBUWBCCO1QGwYc5aQmRFsYwD/UZNhVi2sd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":388349},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"d86c384e0fbfdb722d01ba964bef35804c55a8ff","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"tsup src/index.ts --format cjs,esm --dts","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"nicolotognoni","email":"getpatterai@gmail.com"},"repository":{"url":"git+https://github.com/PatterAI/Patter.git","type":"git","directory":"sdk-ts"},"_npmVersion":"10.8.2","description":"Connect AI agents to phone numbers with 10 lines of code","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.18.0","express":"^5.2.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.0.0","vitest":"^3.2.4","@types/ws":"^8.5.0","playwright":"^1.59.1","typescript":"^5.4.0","@types/express":"^5.0.6","@playwright/test":"^1.59.1","@vitest/coverage-v8":"^3.2.4"},"optionalDependencies":{"cloudflared":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/getpatter_0.4.1_1776077766232_0.06723923443255653","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"getpatter","version":"0.4.2","keywords":["voice","ai","voice-ai","phone","telephony","speech","tts","stt","twilio","telnyx","openai","elevenlabs","llm","agent","ai-agent","conversational-ai","realtime","call","ivr","chatbot"],"author":{"name":"PatterAI","email":"hello@getpatter.com"},"license":"MIT","_id":"getpatter@0.4.2","maintainers":[{"name":"nicolotognoni","email":"getpatterai@gmail.com"}],"homepage":"https://www.getpatter.com","bugs":{"url":"https://github.com/PatterAI/Patter/issues"},"bin":{"getpatter":"dist/cli.js"},"dist":{"shasum":"bfef242128d77fb995d4737274e0b9acc84b669b","tarball":"https://registry.npmjs.org/getpatter/-/getpatter-0.4.2.tgz","fileCount":35,"integrity":"sha512-GaVVA1tQk1SdY+EixwRdmZIilkBKosfg8hpK/zRBAp3i8DO/SiWE0UDH6X0vfbdNvvE1aYyPvfzfpx1VVW+FKw==","signatures":[{"sig":"MEUCIACaKubpLfYC/LfE/BUtz1+sPU9ERWLpJ8h9DHkqNl1HAiEAnokDJT4XpBpYAFpN829SBJo5MQ1k3LRwLCydKJ/4BkY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7387348},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"1541bd1fa1fde80059ec2e69cf22f307623938e3","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"tsup src/index.ts --format cjs,esm --dts && tsup src/cli.ts --format cjs --no-dts && node -e \"const fs=require('fs');fs.cpSync('src/resources','dist/resources',{recursive:true,filter:p=>!p.endsWith('.ts')})\"","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"nicolotognoni","email":"getpatterai@gmail.com"},"repository":{"url":"git+https://github.com/PatterAI/Patter.git","type":"git","directory":"sdk-ts"},"_npmVersion":"10.8.2","description":"Open-source voice AI SDK — connect any AI agent to real phone calls in 4 lines of code","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.18.0","express":"^5.2.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.0.0","vitest":"^3.2.4","@types/ws":"^8.5.0","playwright":"^1.59.1","typescript":"^5.4.0","@types/express":"^5.0.6","@playwright/test":"^1.59.1","@vitest/coverage-v8":"^3.2.4"},"optionalDependencies":{"node-cron":"^3.0.3","cloudflared":"^0.7.1","@google/genai":"^0.3.0","onnxruntime-node":"^1.18.0"},"_npmOperationalInternal":{"tmp":"tmp/getpatter_0.4.2_1776458993108_0.5946294067814848","host":"s3://npm-registry-packages-npm-production"}},"0.4.3":{"name":"getpatter","version":"0.4.3","keywords":["voice","ai","voice-ai","phone","telephony","speech","tts","stt","twilio","telnyx","openai","elevenlabs","llm","agent","ai-agent","conversational-ai","realtime","call","ivr","chatbot"],"author":{"name":"PatterAI","email":"hello@getpatter.com"},"license":"MIT","_id":"getpatter@0.4.3","maintainers":[{"name":"nicolotognoni","email":"getpatterai@gmail.com"}],"homepage":"https://www.getpatter.com","bugs":{"url":"https://github.com/PatterAI/Patter/issues"},"bin":{"getpatter":"dist/cli.js"},"dist":{"shasum":"4e45cbb173af5d4785f8269ec5f04357e3ab11a6","tarball":"https://registry.npmjs.org/getpatter/-/getpatter-0.4.3.tgz","fileCount":35,"integrity":"sha512-H63tTMR0BG5jvb57eiRMZD4wRxhD+eLB+M+2ZhScsXSRAexy6um7Ctu0ywhSvKASILuPuJvrRFzqpWX3b/FOjw==","signatures":[{"sig":"MEYCIQDwA44Rhdz0sWFnqsOzUQSAYOomyUqnXFylghQYZXkXAQIhAI8abveSKbaJoaTSwU/zNnDreybzymznNJLnXunfjCaE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7387348},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"c473fae2bd238fb7a8cbfff594f8d7fe57673902","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"tsup src/index.ts --format cjs,esm --dts && tsup src/cli.ts --format cjs --no-dts && node -e \"const fs=require('fs');fs.cpSync('src/resources','dist/resources',{recursive:true,filter:p=>!p.endsWith('.ts')})\"","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"nicolotognoni","email":"getpatterai@gmail.com"},"repository":{"url":"git+https://github.com/PatterAI/Patter.git","type":"git","directory":"sdk-ts"},"_npmVersion":"10.8.2","description":"Open-source voice AI SDK — connect any AI agent to real phone calls in 4 lines of code","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.18.0","express":"^5.2.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.0.0","vitest":"^3.2.4","@types/ws":"^8.5.0","playwright":"^1.59.1","typescript":"^5.4.0","@types/express":"^5.0.6","@playwright/test":"^1.59.1","@vitest/coverage-v8":"^3.2.4"},"optionalDependencies":{"node-cron":"^3.0.3","cloudflared":"^0.7.1","@google/genai":"^0.3.0","onnxruntime-node":"^1.18.0"},"_npmOperationalInternal":{"tmp":"tmp/getpatter_0.4.3_1776525904116_0.8165769023566927","host":"s3://npm-registry-packages-npm-production"}},"0.4.4":{"name":"getpatter","version":"0.4.4","keywords":["voice","ai","voice-ai","phone","telephony","speech","tts","stt","twilio","telnyx","openai","elevenlabs","llm","agent","ai-agent","conversational-ai","realtime","call","ivr","chatbot"],"author":{"name":"PatterAI","email":"hello@getpatter.com"},"license":"MIT","_id":"getpatter@0.4.4","maintainers":[{"name":"nicolotognoni","email":"getpatterai@gmail.com"}],"homepage":"https://www.getpatter.com","bugs":{"url":"https://github.com/PatterAI/Patter/issues"},"bin":{"getpatter":"dist/cli.js"},"dist":{"shasum":"2a33ad078290a983ea5bda351ece46535a4833c2","tarball":"https://registry.npmjs.org/getpatter/-/getpatter-0.4.4.tgz","fileCount":35,"integrity":"sha512-uU2Vt9dx9zYXImmwpVAs8x6t1aXvoRBA5ojXZtfnJZGPVCvXnM4/Nnt76lxxd5YO46syXg1hQWaCAby5ugmI9A==","signatures":[{"sig":"MEUCIQC2buLyQCWnHb+cN9T499DO7Vc6QM9lBbGZ6ik6caxlMAIgJLoJa/y9vN6B+t3qEGZ/FQK7ub9mxqTPlf4uoWs6Ig8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7444569},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"e9fe209082ca2fb94446e95014fd9755e23abbb1","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"tsup src/index.ts --format cjs,esm --dts && tsup src/cli.ts --format cjs --no-dts && node -e \"const fs=require('fs');fs.cpSync('src/resources','dist/resources',{recursive:true,filter:p=>!p.endsWith('.ts')})\"","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"nicolotognoni","email":"getpatterai@gmail.com"},"repository":{"url":"git+https://github.com/PatterAI/Patter.git","type":"git","directory":"sdk-ts"},"_npmVersion":"10.8.2","description":"Open-source voice AI SDK — connect any AI agent to real phone calls in 4 lines of code","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.18.0","express":"^5.2.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.0.0","vitest":"^3.2.4","@types/ws":"^8.5.0","playwright":"^1.59.1","typescript":"^5.4.0","@types/express":"^5.0.6","@playwright/test":"^1.59.1","@vitest/coverage-v8":"^3.2.4"},"optionalDependencies":{"node-cron":"^3.0.3","cloudflared":"^0.7.1","@google/genai":"^0.3.0","onnxruntime-node":"^1.18.0"},"_npmOperationalInternal":{"tmp":"tmp/getpatter_0.4.4_1776801937473_0.7915863732512598","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"getpatter","version":"0.5.0","keywords":["voice","ai","voice-ai","phone","telephony","speech","tts","stt","twilio","telnyx","openai","elevenlabs","llm","agent","ai-agent","conversational-ai","realtime","call","ivr","chatbot"],"author":{"name":"PatterAI","email":"hello@getpatter.com"},"license":"MIT","_id":"getpatter@0.5.0","maintainers":[{"name":"nicolotognoni","email":"getpatterai@gmail.com"}],"homepage":"https://www.getpatter.com","bugs":{"url":"https://github.com/PatterAI/Patter/issues"},"bin":{"getpatter":"dist/cli.js"},"dist":{"shasum":"423a4e311e17b6759447d4cf66071e4220bc17f6","tarball":"https://registry.npmjs.org/getpatter/-/getpatter-0.5.0.tgz","fileCount":36,"integrity":"sha512-BzfWU+Jz5Fxnj2CWoAa25Kw+0JPA2+Clm2ElBTTTluMlwhmh8Z6LMUo3jp9XXHwLeqU/0INHdAQX5DLdoTrI9Q==","signatures":[{"sig":"MEUCIHI9Q6xX0q6RcWp3jfMbjvzbTVGX5xzfgYe8BCXURED5AiEAlwlc6ROqq40d+dMI53hnvXIKRm1vO7mLSA4mx0A2VX0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7491561},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"49d6c111670266dcc03f6129df13ff8ded0c3913","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"tsup src/index.ts --format cjs,esm --dts && tsup src/cli.ts --format cjs --no-dts && node -e \"const fs=require('fs');fs.cpSync('src/resources','dist/resources',{recursive:true,filter:p=>!p.endsWith('.ts')})\"","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"nicolotognoni","email":"getpatterai@gmail.com"},"repository":{"url":"git+https://github.com/PatterAI/Patter.git","type":"git","directory":"sdk-ts"},"_npmVersion":"10.8.2","description":"Open-source voice AI SDK — connect any AI agent to real phone calls in 4 lines of code","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.18.0","express":"^5.2.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.0.0","vitest":"^3.2.4","@types/ws":"^8.5.0","playwright":"^1.59.1","typescript":"^5.4.0","@types/express":"^5.0.6","@playwright/test":"^1.59.1","@vitest/coverage-v8":"^3.2.4"},"optionalDependencies":{"node-cron":"^3.0.3","cloudflared":"^0.7.1","@google/genai":"^0.3.0","onnxruntime-node":"^1.18.0"},"_npmOperationalInternal":{"tmp":"tmp/getpatter_0.5.0_1776878346081_0.2696195399056436","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"getpatter","version":"0.5.1","keywords":["voice","ai","voice-ai","phone","telephony","speech","tts","stt","twilio","telnyx","openai","elevenlabs","llm","agent","ai-agent","conversational-ai","realtime","call","ivr","chatbot"],"author":{"name":"PatterAI","email":"hello@getpatter.com"},"license":"MIT","_id":"getpatter@0.5.1","maintainers":[{"name":"nicolotognoni","email":"getpatterai@gmail.com"}],"homepage":"https://www.getpatter.com","bugs":{"url":"https://github.com/PatterAI/Patter/issues"},"bin":{"getpatter":"dist/cli.js"},"dist":{"shasum":"993deea57113d44e7ffabba7cf2f4041d13ce7db","tarball":"https://registry.npmjs.org/getpatter/-/getpatter-0.5.1.tgz","fileCount":35,"integrity":"sha512-wfrPJNB8PwEOxcbZ4pcdR1qwWK8wUQ8XvOjiLXx5fU/BD+LnIbZ8L4nLlLsnx7JbIsB6G/oE5FA8NUYAkE45Yw==","signatures":[{"sig":"MEUCIHs0ncjIxEU/XLatidr604up36b7IsbsMQ/5S2IcmUHiAiEAxV5JxrctcrlpdYLb71V0RBhgLAisZLG/4/gWDYZY7ao=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7488545},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"85e6294c5bb9f97e3c05ea261901734565af56c8","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"tsup src/index.ts --format cjs,esm --dts && tsup src/cli.ts --format cjs --no-dts && node -e \"const fs=require('fs');fs.cpSync('src/resources','dist/resources',{recursive:true,filter:p=>!p.endsWith('.ts')})\"","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"nicolotognoni","email":"getpatterai@gmail.com"},"repository":{"url":"git+https://github.com/PatterAI/Patter.git","type":"git","directory":"sdk-ts"},"_npmVersion":"10.8.2","description":"Open-source voice AI SDK — connect any AI agent to real phone calls in 4 lines of code","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.18.0","express":"^5.2.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.0.0","vitest":"^3.2.4","@types/ws":"^8.5.0","playwright":"^1.59.1","typescript":"^5.4.0","@types/express":"^5.0.6","@playwright/test":"^1.59.1","@vitest/coverage-v8":"^3.2.4"},"optionalDependencies":{"node-cron":"^3.0.3","cloudflared":"^0.7.1","@google/genai":"^0.3.0","onnxruntime-node":"^1.18.0"},"_npmOperationalInternal":{"tmp":"tmp/getpatter_0.5.1_1776887923397_0.2622127930264708","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"getpatter","version":"0.5.2","keywords":["voice","ai","voice-ai","phone","telephony","speech","tts","stt","twilio","telnyx","openai","elevenlabs","llm","agent","ai-agent","conversational-ai","realtime","call","ivr","chatbot"],"author":{"name":"PatterAI","email":"hello@getpatter.com"},"license":"MIT","_id":"getpatter@0.5.2","maintainers":[{"name":"nicolotognoni","email":"getpatterai@gmail.com"}],"homepage":"https://www.getpatter.com","bugs":{"url":"https://github.com/PatterAI/Patter/issues"},"bin":{"getpatter":"dist/cli.js"},"dist":{"shasum":"8f2dc753155849e333e13b7200553176d455eec7","tarball":"https://registry.npmjs.org/getpatter/-/getpatter-0.5.2.tgz","fileCount":36,"integrity":"sha512-WzS8sU29Gh1AVRF1sXuXjhCwgglnslA3Ch81H7Zqvqw/AuIXBQWMkSpTKXq0/uhn9W2ovoJuYgLis4AAhDb4UQ==","signatures":[{"sig":"MEYCIQCBvnjiQSjd11/i1el6fgu8sULFBQlVJJ/ehQ6aExHXTwIhANwSnGCutfBR5hOAtAmnOV7tppzVJu8fvTyVmxuvHZqj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7490173},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"81358aee24ebdf29974df0de8332b2e2aa40e979","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"tsup src/index.ts --format cjs,esm --dts && tsup src/cli.ts --format cjs --no-dts && node -e \"const fs=require('fs');fs.cpSync('src/resources','dist/resources',{recursive:true,filter:p=>!p.endsWith('.ts')})\"","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"nicolotognoni","email":"getpatterai@gmail.com"},"repository":{"url":"git+https://github.com/PatterAI/Patter.git","type":"git","directory":"sdk-ts"},"_npmVersion":"10.8.2","description":"Open-source voice AI SDK — connect any AI agent to real phone calls in 4 lines of code","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.18.0","express":"^5.2.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.0.0","vitest":"^3.2.4","@types/ws":"^8.5.0","playwright":"^1.59.1","typescript":"^5.4.0","@types/express":"^5.0.6","@playwright/test":"^1.59.1","@vitest/coverage-v8":"^3.2.4"},"optionalDependencies":{"node-cron":"^3.0.3","cloudflared":"^0.7.1","@google/genai":"^0.3.0","onnxruntime-node":"^1.18.0"},"_npmOperationalInternal":{"tmp":"tmp/getpatter_0.5.2_1776949954617_0.10230717080113072","host":"s3://npm-registry-packages-npm-production"}},"0.5.3":{"name":"getpatter","version":"0.5.3","keywords":["voice","ai","voice-ai","phone","telephony","speech","tts","stt","twilio","telnyx","openai","elevenlabs","llm","agent","ai-agent","conversational-ai","realtime","call","ivr","chatbot"],"author":{"name":"PatterAI","email":"hello@getpatter.com"},"license":"MIT","_id":"getpatter@0.5.3","maintainers":[{"name":"nicolotognoni","email":"getpatterai@gmail.com"}],"homepage":"https://www.getpatter.com","bugs":{"url":"https://github.com/PatterAI/Patter/issues"},"bin":{"getpatter":"dist/cli.js"},"dist":{"shasum":"cac1f57facce1ee7377d9ea9f8ca8ee00b2e69a4","tarball":"https://registry.npmjs.org/getpatter/-/getpatter-0.5.3.tgz","fileCount":43,"integrity":"sha512-SjkQ3IvAwVTtgd2L0m2I3+td9Tlo+4VCbOCvo1TIjEVi+qdFZrLZ9mi+Ny3QzvWSsQBM4WpuHUsoACn88hm6ZQ==","signatures":[{"sig":"MEUCIQCJc/zkevN4iCmtXQ4HfbjQgXPJs1fTQJ/P+hJjDpoyCAIgVPw8gVEbez2bkks3h+q6uE5yKkEWMgSnCNEmShiddH8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9490504},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"55069539d442fd04660aaac53ac0d6fbe0edc779","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"tsup src/index.ts --format cjs,esm --dts && tsup src/cli.ts --format cjs --no-dts && node -e \"const fs=require('fs');fs.cpSync('src/resources','dist/resources',{recursive:true,filter:p=>!p.endsWith('.ts')})\"","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"nicolotognoni","email":"getpatterai@gmail.com"},"repository":{"url":"git+https://github.com/PatterAI/Patter.git","type":"git","directory":"sdk-ts"},"_npmVersion":"10.8.2","description":"Open-source voice AI SDK — connect any AI agent to real phone calls in 4 lines of code","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.18.0","express":"^5.2.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.0.0","vitest":"^3.2.4","@types/ws":"^8.5.0","playwright":"^1.59.1","typescript":"^5.4.0","@types/express":"^5.0.6","@playwright/test":"^1.59.1","@vitest/coverage-v8":"^3.2.4"},"peerDependencies":{"@google/genai":"^0.3.0"},"optionalDependencies":{"node-cron":"^4.0.0","cloudflared":"^0.7.1","onnxruntime-node":"^1.18.0"},"peerDependenciesMeta":{"@google/genai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/getpatter_0.5.3_1777315515929_0.19636570081843874","host":"s3://npm-registry-packages-npm-production"}},"0.5.4":{"name":"getpatter","version":"0.5.4","keywords":["voice","ai","voice-ai","phone","telephony","speech","tts","stt","twilio","telnyx","openai","elevenlabs","llm","agent","ai-agent","conversational-ai","realtime","call","ivr","chatbot"],"author":{"name":"PatterAI","email":"hello@getpatter.com"},"license":"MIT","_id":"getpatter@0.5.4","maintainers":[{"name":"nicolotognoni","email":"getpatterai@gmail.com"}],"homepage":"https://www.getpatter.com","bugs":{"url":"https://github.com/PatterAI/Patter/issues"},"bin":{"getpatter":"dist/cli.js"},"dist":{"shasum":"8fb733157f4381f5dee460a9a71ed9032a5022a8","tarball":"https://registry.npmjs.org/getpatter/-/getpatter-0.5.4.tgz","fileCount":43,"integrity":"sha512-5hzUN9DN6vXGpDRZ4/e58ky8TnqgHu0moifNgRuvIi7nKxJomY8TA2NJrBvOlJ9Kb2qI2+/LgcO2q7NYxpkB7w==","signatures":[{"sig":"MEUCIA8mGe0k+vTAxVm60E8v/wb8JINFpoxPlITLteACv6OWAiEAsWc9OD8822a3OJZeaiy89vFkT7gUo5yxqZnmxmHPMh8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9490506},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"2975b43bb0a66a8723965319ceafa8f87919a0e5","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"tsup src/index.ts --format cjs,esm --dts && tsup src/cli.ts --format cjs --no-dts && node -e \"const fs=require('fs');fs.cpSync('src/resources','dist/resources',{recursive:true,filter:p=>!p.endsWith('.ts')})\"","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"nicolotognoni","email":"getpatterai@gmail.com"},"repository":{"url":"git+https://github.com/PatterAI/Patter.git","type":"git","directory":"sdk-ts"},"_npmVersion":"10.8.2","description":"Open-source voice AI SDK — connect any AI agent to real phone calls in 4 lines of code","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.18.0","express":"^5.2.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.0.0","vitest":"^3.2.4","@types/ws":"^8.5.0","playwright":"^1.59.1","typescript":"^5.4.0","@types/express":"^5.0.6","@playwright/test":"^1.59.1","@vitest/coverage-v8":"^3.2.4"},"peerDependencies":{"@google/genai":"^0.3.0"},"optionalDependencies":{"node-cron":"^4.0.0","cloudflared":"^0.7.1","onnxruntime-node":"^1.18.0"},"peerDependenciesMeta":{"@google/genai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/getpatter_0.5.4_1777316138326_0.34149961576470744","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"getpatter","version":"0.6.0","keywords":["voice","ai","voice-ai","phone","telephony","speech","tts","stt","twilio","telnyx","openai","elevenlabs","llm","agent","ai-agent","conversational-ai","realtime","call","ivr","chatbot"],"author":{"name":"PatterAI","email":"hello@getpatter.com"},"license":"MIT","_id":"getpatter@0.6.0","maintainers":[{"name":"nicolotognoni","email":"getpatterai@gmail.com"}],"homepage":"https://www.getpatter.com","bugs":{"url":"https://github.com/PatterAI/Patter/issues"},"bin":{"getpatter":"dist/cli.js"},"dist":{"shasum":"e54119d94d03e72c4723d1204b7b80930ff54ed0","tarball":"https://registry.npmjs.org/getpatter/-/getpatter-0.6.0.tgz","fileCount":51,"integrity":"sha512-8zsHXrIpqMgB/vBKGNJ36p8lqYWBNgkiLIiyDhMH5ZrkHmNKOzi2W5D+H+yk8jd7sM8AfgvbX7uWYzQNiDq4JQ==","signatures":[{"sig":"MEYCIQCpo5AOwMnqOMjyuF4iPlrK7gwkEIz39lG3iFBz+Qhd7AIhAOYKl0iUGuhIUgpulyefUGcTOE3a2e2PcWcFjrUuXzBp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11618700},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"2d47d7dbe6d65f92aa19496aa9907ef4a33ec53a","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"tsup src/index.ts --format cjs,esm --dts && tsup src/cli.ts --format cjs --no-dts && node -e \"const fs=require('fs');fs.cpSync('src/resources','dist/resources',{recursive:true,filter:p=>!p.endsWith('.ts')});fs.mkdirSync('dist/dashboard',{recursive:true});fs.copyFileSync('src/dashboard/ui.html','dist/dashboard/ui.html')\"","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"nicolotognoni","email":"getpatterai@gmail.com"},"repository":{"url":"git+https://github.com/PatterAI/Patter.git","type":"git","directory":"libraries/typescript"},"_npmVersion":"10.8.2","description":"Open-source voice AI SDK — connect any AI agent to real phone calls in 4 lines of code","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.18.0","express":"^5.2.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.0.0","vitest":"^3.2.4","@types/ws":"^8.5.0","typescript":"^5.4.0","@types/express":"^5.0.6","@vitest/coverage-v8":"^3.2.4"},"peerDependencies":{"@google/genai":"^0.3.0"},"optionalDependencies":{"node-cron":"^4.0.0","cloudflared":"^0.7.1","onnxruntime-node":"~1.18.0","@modelcontextprotocol/sdk":"^1.0.0"},"peerDependenciesMeta":{"@google/genai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/getpatter_0.6.0_1778276772601_0.9391253377805311","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"getpatter","version":"0.6.1","keywords":["voice","ai","voice-ai","phone","telephony","speech","tts","stt","twilio","telnyx","openai","elevenlabs","llm","agent","ai-agent","conversational-ai","realtime","call","ivr","chatbot"],"author":{"name":"PatterAI","email":"hello@getpatter.com"},"license":"MIT","_id":"getpatter@0.6.1","maintainers":[{"name":"nicolotognoni","email":"getpatterai@gmail.com"}],"homepage":"https://www.getpatter.com","bugs":{"url":"https://github.com/PatterAI/Patter/issues"},"bin":{"getpatter":"dist/cli.js"},"dist":{"shasum":"bb7601010836a2abbfcc26cba4fd08bb46f39c47","tarball":"https://registry.npmjs.org/getpatter/-/getpatter-0.6.1.tgz","fileCount":53,"integrity":"sha512-0ek9MCQcm0haIGg6kB3ZIZsIcIbcktSGkwEZTVTqyg/jNHVz8huU7uAY54XEiWbfa+TFv5vtZeDbJhf0z9pAWQ==","signatures":[{"sig":"MEYCIQCEVoLlEGwzcTD47F4dAk2fs4x12ROtCgMRxJMJVa+rRQIhAKzArDyGNifqumr2mev7kMSRB6tE/2zzAEyOaJEkzvvi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12023815},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"02d4d04ac96674c69d9732c85df34fe79b29bd04","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"tsup src/index.ts --format cjs,esm --dts && tsup src/cli.ts --format cjs --no-dts && node -e \"const fs=require('fs');fs.cpSync('src/resources','dist/resources',{recursive:true,filter:p=>!p.endsWith('.ts')});fs.mkdirSync('dist/dashboard',{recursive:true});fs.copyFileSync('src/dashboard/ui.html','dist/dashboard/ui.html')\"","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"nicolotognoni","email":"getpatterai@gmail.com"},"repository":{"url":"git+https://github.com/PatterAI/Patter.git","type":"git","directory":"libraries/typescript"},"_npmVersion":"10.8.2","description":"Open-source voice AI SDK — connect any AI agent to real phone calls in 4 lines of code","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.18.0","express":"^5.2.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.0.0","vitest":"^3.2.4","@types/ws":"^8.5.0","typescript":"^5.4.0","@types/express":"^5.0.6","@vitest/coverage-v8":"^3.2.4"},"peerDependencies":{"@google/genai":"^0.3.0"},"optionalDependencies":{"node-cron":"^4.0.0","cloudflared":"^0.7.1","onnxruntime-node":"~1.18.0","@modelcontextprotocol/sdk":"^1.0.0"},"peerDependenciesMeta":{"@google/genai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/getpatter_0.6.1_1779024370772_0.10605908153556909","host":"s3://npm-registry-packages-npm-production"}},"0.6.2":{"name":"getpatter","version":"0.6.2","keywords":["voice","ai","voice-ai","phone","telephony","speech","tts","stt","twilio","telnyx","openai","elevenlabs","llm","agent","ai-agent","conversational-ai","realtime","call","ivr","chatbot"],"author":{"name":"PatterAI","email":"hello@getpatter.com"},"license":"MIT","_id":"getpatter@0.6.2","maintainers":[{"name":"nicolotognoni","email":"getpatterai@gmail.com"}],"homepage":"https://www.getpatter.com","bugs":{"url":"https://github.com/PatterAI/Patter/issues"},"bin":{"getpatter":"dist/cli.js"},"dist":{"shasum":"a0a2cdc2e97ad807973b1a40f0315674b1cd3315","tarball":"https://registry.npmjs.org/getpatter/-/getpatter-0.6.2.tgz","fileCount":55,"integrity":"sha512-5wvnF0+DHPpas0nAOagErDoefDdQfNcWOBnoJ/1dxlA6F53bxpFIi101MlBlwI5iIKKmBbxar0ehhBTE0QCRGg==","signatures":[{"sig":"MEUCIG7KLBrij2PkqSJS6zCj/zYBpSpLl4KaYuWVfAq3J2SXAiEAi+EWeaXlZmeW5eoODwBD2mmB5ScGoLrP9DK/6uhEvls=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12092695},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"5db6779e291c035081ad5c3f2224b1c0dda4ceb9","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"tsup src/index.ts --format cjs,esm --dts && tsup src/cli.ts --format cjs --no-dts && node -e \"const fs=require('fs');fs.cpSync('src/resources','dist/resources',{recursive:true,filter:p=>!p.endsWith('.ts')});fs.mkdirSync('dist/dashboard',{recursive:true});fs.copyFileSync('src/dashboard/ui.html','dist/dashboard/ui.html')\"","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"nicolotognoni","email":"getpatterai@gmail.com"},"repository":{"url":"git+https://github.com/PatterAI/Patter.git","type":"git","directory":"libraries/typescript"},"_npmVersion":"10.8.2","description":"Open-source voice AI SDK — connect any AI agent to real phone calls in 4 lines of code","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.18.0","express":"^5.2.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.0.0","vitest":"^3.2.4","@types/ws":"^8.5.0","typescript":"^5.4.0","@types/express":"^5.0.6","@vitest/coverage-v8":"^3.2.4"},"peerDependencies":{"@google/genai":"^0.3.0"},"optionalDependencies":{"node-cron":"^4.0.0","cloudflared":"^0.7.1","onnxruntime-node":"~1.18.0","@modelcontextprotocol/sdk":"^1.0.0"},"peerDependenciesMeta":{"@google/genai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/getpatter_0.6.2_1779707872477_0.17303022016546188","host":"s3://npm-registry-packages-npm-production"}},"0.6.3":{"name":"getpatter","version":"0.6.3","keywords":["voice","ai","voice-ai","phone","telephony","speech","tts","stt","twilio","telnyx","openai","elevenlabs","llm","agent","ai-agent","conversational-ai","realtime","call","ivr","chatbot"],"author":{"name":"PatterAI","email":"hello@getpatter.com"},"license":"MIT","_id":"getpatter@0.6.3","maintainers":[{"name":"nicolotognoni","email":"getpatterai@gmail.com"}],"homepage":"https://www.getpatter.com","bugs":{"url":"https://github.com/PatterAI/Patter/issues"},"bin":{"getpatter":"dist/cli.js"},"dist":{"shasum":"e9f3572d9fa80fd14741a65b1a9ddaaaa84ba660","tarball":"https://registry.npmjs.org/getpatter/-/getpatter-0.6.3.tgz","fileCount":55,"integrity":"sha512-CuEDAc21sEJNroKezxdP8Z2mdVqT2zyWecaieASrC2ZTBgADSs4ehIgbyqWqqmGRjyShnHwFqi79nyJgUgzvLQ==","signatures":[{"sig":"MEQCIEyynLIN3GD+g4bSxuQ9LpfviOzzzNJRkiyanM8DSX60AiA7AtDIgfo1Le1uDg453pfEyrNQUluXKM7Xz00A0SZ0Lg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12183847},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"9d775de4b6ba7d7605d1e09eb2de3debbf66297f","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"tsup src/index.ts --format cjs,esm --dts && tsup src/cli.ts --format cjs --no-dts && node -e \"const fs=require('fs');fs.cpSync('src/resources','dist/resources',{recursive:true,filter:p=>!p.endsWith('.ts')});fs.mkdirSync('dist/dashboard',{recursive:true});fs.copyFileSync('src/dashboard/ui.html','dist/dashboard/ui.html')\"","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"nicolotognoni","email":"getpatterai@gmail.com"},"repository":{"url":"git+https://github.com/PatterAI/Patter.git","type":"git","directory":"libraries/typescript"},"_npmVersion":"10.8.2","description":"Open-source voice AI SDK — connect any AI agent to real phone calls in 4 lines of code","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.18.0","express":"^5.2.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.0.0","vitest":"^3.2.4","@types/ws":"^8.5.0","typescript":"^5.4.0","@types/express":"^5.0.6","@vitest/coverage-v8":"^3.2.4"},"peerDependencies":{"@google/genai":"^0.3.0"},"optionalDependencies":{"node-cron":"^4.0.0","cloudflared":"^0.7.1","onnxruntime-node":"~1.18.0","@modelcontextprotocol/sdk":"^1.0.0"},"peerDependenciesMeta":{"@google/genai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/getpatter_0.6.3_1780052956919_0.07484242709271327","host":"s3://npm-registry-packages-npm-production"}},"0.6.4":{"name":"getpatter","version":"0.6.4","keywords":["voice","ai","voice-ai","phone","telephony","speech","tts","stt","twilio","telnyx","plivo","openai","elevenlabs","llm","agent","ai-agent","conversational-ai","realtime","call","ivr","chatbot"],"author":{"name":"PatterAI","email":"hello@getpatter.com"},"license":"MIT","_id":"getpatter@0.6.4","maintainers":[{"name":"nicolotognoni","email":"getpatterai@gmail.com"}],"homepage":"https://www.getpatter.com","bugs":{"url":"https://github.com/PatterAI/Patter/issues"},"bin":{"getpatter":"dist/cli.js"},"dist":{"shasum":"2ffbfda2b8f719a0d217ff91f99707e41b26ded7","tarball":"https://registry.npmjs.org/getpatter/-/getpatter-0.6.4.tgz","fileCount":55,"integrity":"sha512-mm233MupVEQxA2lNO4oZfxL52mUgAFFGKfVsGjMygGOJgPgbt4/qcegZX1Zzkrw37IY8esQBrqYR7NZQ0WtgPQ==","signatures":[{"sig":"MEUCIQCvQgktWeQTiKyuDxiIYHwuK2eN4UrlxhIYRrXAu9YXtgIgASDGzsFIEuWS7KAUS2bo3jNJMZ3jdYlnJuTpvX2CUL0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12371797},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"7c8077a3b9f0968f337f5bdb9994b07f456e1a07","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"tsup src/index.ts --format cjs,esm --dts && tsup src/cli.ts --format cjs --no-dts && node -e \"const fs=require('fs');fs.cpSync('src/resources','dist/resources',{recursive:true,filter:p=>!p.endsWith('.ts')});fs.mkdirSync('dist/dashboard',{recursive:true});fs.copyFileSync('src/dashboard/ui.html','dist/dashboard/ui.html')\"","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"nicolotognoni","email":"getpatterai@gmail.com"},"repository":{"url":"git+https://github.com/PatterAI/Patter.git","type":"git","directory":"libraries/typescript"},"_npmVersion":"10.8.2","description":"Open-source voice AI SDK — connect any AI agent to real phone calls in 4 lines of code","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.18.0","express":"^5.2.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.0.0","vitest":"^3.2.4","@types/ws":"^8.5.0","typescript":"^5.4.0","@types/express":"^5.0.6","@vitest/coverage-v8":"^3.2.4"},"peerDependencies":{"@google/genai":"^0.3.0"},"optionalDependencies":{"node-cron":"^4.0.0","cloudflared":"^0.7.1","onnxruntime-node":"~1.18.0","@modelcontextprotocol/sdk":"^1.0.0"},"peerDependenciesMeta":{"@google/genai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/getpatter_0.6.4_1780619832973_0.6527547913280356","host":"s3://npm-registry-packages-npm-production"}},"0.6.5":{"name":"getpatter","version":"0.6.5","keywords":["voice","ai","voice-ai","phone","telephony","speech","tts","stt","twilio","telnyx","plivo","openai","elevenlabs","llm","agent","ai-agent","conversational-ai","realtime","call","ivr","chatbot"],"author":{"name":"PatterAI","email":"hello@getpatter.com"},"license":"MIT","_id":"getpatter@0.6.5","maintainers":[{"name":"nicolotognoni","email":"getpatterai@gmail.com"}],"homepage":"https://www.getpatter.com","bugs":{"url":"https://github.com/PatterAI/Patter/issues"},"bin":{"getpatter":"dist/cli.js"},"dist":{"shasum":"deb3b5b5a42d54bd5cfd27071e6329820f00f8f2","tarball":"https://registry.npmjs.org/getpatter/-/getpatter-0.6.5.tgz","fileCount":55,"integrity":"sha512-ICxIjiSmnRYX+3EUFfC3Wg/vJNkttneF2JKcfrccEk4mjZL1TCF6mSx2xIjvFDEFRWDDpJSmLB9PgE/eP5Qdiw==","signatures":[{"sig":"MEUCIFWl6seRNHxFdJRGh+20L10YmO80iymmAEq5wAa01L3aAiEAu9UbTEnn1C4Oh0zh/AKZd0je7BklpcOAj8GNeEuPJAY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12427423},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"fae9dc145403c278a8803a8024ea75f608a3b0ea","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"tsup src/index.ts --format cjs,esm --dts && tsup src/cli.ts --format cjs --no-dts && node -e \"const fs=require('fs');fs.cpSync('src/resources','dist/resources',{recursive:true,filter:p=>!p.endsWith('.ts')});fs.mkdirSync('dist/dashboard',{recursive:true});fs.copyFileSync('src/dashboard/ui.html','dist/dashboard/ui.html')\"","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"nicolotognoni","email":"getpatterai@gmail.com"},"repository":{"url":"git+https://github.com/PatterAI/Patter.git","type":"git","directory":"libraries/typescript"},"_npmVersion":"10.8.2","description":"Open-source voice AI SDK — connect any AI agent to real phone calls in 4 lines of code","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.18.0","express":"^5.2.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.0.0","vitest":"^3.2.4","@types/ws":"^8.5.0","typescript":"^5.4.0","@types/express":"^5.0.6","@vitest/coverage-v8":"^3.2.4"},"peerDependencies":{"@google/genai":"^0.3.0"},"optionalDependencies":{"node-cron":"^4.0.0","cloudflared":"^0.7.1","onnxruntime-node":"~1.18.0","@modelcontextprotocol/sdk":"^1.0.0"},"peerDependenciesMeta":{"@google/genai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/getpatter_0.6.5_1780665961969_0.27178421324595003","host":"s3://npm-registry-packages-npm-production"}},"0.6.6":{"name":"getpatter","version":"0.6.6","keywords":["voice","ai","voice-ai","phone","telephony","speech","tts","stt","twilio","telnyx","plivo","openai","elevenlabs","llm","agent","ai-agent","conversational-ai","realtime","call","ivr","chatbot"],"author":{"name":"PatterAI","email":"hello@getpatter.com"},"license":"MIT","_id":"getpatter@0.6.6","maintainers":[{"name":"nicolotognoni","email":"getpatterai@gmail.com"}],"homepage":"https://www.getpatter.com","bugs":{"url":"https://github.com/PatterAI/Patter/issues"},"bin":{"getpatter":"dist/cli.js"},"dist":{"shasum":"5eaa621146e8acc6ab0cdf78cf6bdbad299dc718","tarball":"https://registry.npmjs.org/getpatter/-/getpatter-0.6.6.tgz","fileCount":55,"integrity":"sha512-edEUH+p3D3z+688lGbC6DaxqAvYMQxwzC6QiWdeg7Hd7Tnl28mPFiK32sL2AhGVccNsyZSIp1wH4dhqSxMcriA==","signatures":[{"sig":"MEUCIEl8ZZ+gPAw7xu6kNzUVinrbI64GnGOtrTpihfauLl59AiEA9qElFraem+Nt4mlA2810DWZKzSKPpltk0Sn+1Mth/Wo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12567190},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"9d4a801a7646295a1a5e51d5245a5cad25302d83","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"tsup src/index.ts --format cjs,esm --dts && tsup src/cli.ts --format cjs --no-dts && node -e \"const fs=require('fs');fs.cpSync('src/resources','dist/resources',{recursive:true,filter:p=>!p.endsWith('.ts')});fs.mkdirSync('dist/dashboard',{recursive:true});fs.copyFileSync('src/dashboard/ui.html','dist/dashboard/ui.html')\"","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"nicolotognoni","email":"getpatterai@gmail.com"},"repository":{"url":"git+https://github.com/PatterAI/Patter.git","type":"git","directory":"libraries/typescript"},"_npmVersion":"10.8.2","description":"Open-source voice AI SDK — connect any AI agent to real phone calls in 4 lines of code","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.18.0","express":"^5.2.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.0.0","vitest":"^3.2.4","@types/ws":"^8.5.0","typescript":"^5.4.0","@types/express":"^5.0.6","@vitest/coverage-v8":"^3.2.4"},"peerDependencies":{"@google/genai":"^0.3.0"},"optionalDependencies":{"node-cron":"^4.0.0","cloudflared":"^0.7.1","onnxruntime-node":"~1.18.0","@modelcontextprotocol/sdk":"^1.0.0"},"peerDependenciesMeta":{"@google/genai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/getpatter_0.6.6_1781131162562_0.5065697530262807","host":"s3://npm-registry-packages-npm-production"}},"0.6.7":{"name":"getpatter","version":"0.6.7","keywords":["voice","ai","voice-ai","phone","telephony","speech","tts","stt","twilio","telnyx","plivo","openai","elevenlabs","llm","agent","ai-agent","conversational-ai","realtime","call","ivr","chatbot"],"author":{"name":"PatterAI","email":"hello@getpatter.com"},"license":"MIT","_id":"getpatter@0.6.7","maintainers":[{"name":"nicolotognoni","email":"getpatterai@gmail.com"}],"homepage":"https://www.getpatter.com","bugs":{"url":"https://github.com/PatterAI/Patter/issues"},"bin":{"getpatter":"dist/cli.js"},"dist":{"shasum":"94845a8a05afbf77b5242a203d705a388d6be566","tarball":"https://registry.npmjs.org/getpatter/-/getpatter-0.6.7.tgz","fileCount":55,"integrity":"sha512-jm6W3m3PKEpHwFuFhjfbp+cIGhVA29rTxJkCxdvw39O6y6gkferamwAhk4lOOZ+H2UIaNcpVZx6Hdck8ntpsUA==","signatures":[{"sig":"MEUCIHRK8AgQ6sfX0Fd2GbMeg8XljhcnDXx5qG4gpNUDD5pcAiEAv7br18lecDkv4Ab5W/8923NyHVTN8Xw+z9HXODsGWoI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12568578},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"669f54d42492fd5627c233a8b5e14ae9f2759642","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"tsup src/index.ts --format cjs,esm --dts && tsup src/cli.ts --format cjs --no-dts && node -e \"const fs=require('fs');fs.cpSync('src/resources','dist/resources',{recursive:true,filter:p=>!p.endsWith('.ts')});fs.mkdirSync('dist/dashboard',{recursive:true});fs.copyFileSync('src/dashboard/ui.html','dist/dashboard/ui.html')\"","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"nicolotognoni","email":"getpatterai@gmail.com"},"repository":{"url":"git+https://github.com/PatterAI/Patter.git","type":"git","directory":"libraries/typescript"},"_npmVersion":"10.8.2","description":"Open-source voice AI SDK — connect any AI agent to real phone calls in 4 lines of code","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.18.0","express":"^5.2.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.0.0","vitest":"^3.2.4","@types/ws":"^8.5.0","typescript":"^5.4.0","@types/express":"^5.0.6","@vitest/coverage-v8":"^3.2.4"},"peerDependencies":{"@google/genai":"^0.3.0"},"optionalDependencies":{"node-cron":"^4.0.0","cloudflared":"^0.7.1","onnxruntime-node":"~1.18.0","@modelcontextprotocol/sdk":"^1.0.0"},"peerDependenciesMeta":{"@google/genai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/getpatter_0.6.7_1781150883949_0.6943917712898895","host":"s3://npm-registry-packages-npm-production"}},"0.6.8":{"name":"getpatter","version":"0.6.8","keywords":["voice","ai","voice-ai","phone","telephony","speech","tts","stt","twilio","telnyx","plivo","openai","elevenlabs","llm","agent","ai-agent","conversational-ai","realtime","call","ivr","chatbot"],"author":{"name":"PatterAI","email":"hello@getpatter.com"},"license":"MIT","_id":"getpatter@0.6.8","maintainers":[{"name":"nicolotognoni","email":"getpatterai@gmail.com"}],"homepage":"https://www.getpatter.com","bugs":{"url":"https://github.com/PatterAI/Patter/issues"},"bin":{"getpatter":"dist/cli.js"},"dist":{"shasum":"5ca987a85a6316f6b9a3c88cfcf5ad5a583ac762","tarball":"https://registry.npmjs.org/getpatter/-/getpatter-0.6.8.tgz","fileCount":58,"integrity":"sha512-Pj9DIfI1sljlzO5DFpagYVoQWdY4sX28Da/vUsbzZGT3p3ydMADjPI+mjToZONvlrUoIOXaFrdvF3UZQ4XIdMg==","signatures":[{"sig":"MEUCIQDhZQsRTYkAdOAGDaVhIzjFf6HSRPTPjaW0nJBrBWO8lgIgW9vp7DKUVI4WoGExss3W2pXzMe79T+remX9w/QHejCA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14482378},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"8ffd41cbc28b433479fcf09a24ca430659e4a4eb","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"tsup src/index.ts --format cjs,esm --dts && tsup src/cli.ts --format cjs --no-dts && node -e \"const fs=require('fs');fs.cpSync('src/resources','dist/resources',{recursive:true,filter:p=>!p.endsWith('.ts')});fs.mkdirSync('dist/dashboard',{recursive:true});fs.copyFileSync('src/dashboard/ui.html','dist/dashboard/ui.html')\"","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"nicolotognoni","email":"getpatterai@gmail.com"},"repository":{"url":"git+https://github.com/PatterAI/Patter.git","type":"git","directory":"libraries/typescript"},"_npmVersion":"10.8.2","description":"Open-source voice AI SDK — connect any AI agent to real phone calls in 4 lines of code","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"ws":"^8.18.0","express":"^5.2.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.0.0","vitest":"^3.2.4","@types/ws":"^8.5.0","typescript":"^5.4.0","@types/express":"^5.0.6","@vitest/coverage-v8":"^3.2.4"},"peerDependencies":{"@google/genai":"^0.3.0"},"optionalDependencies":{"node-cron":"^4.0.0","cloudflared":"^0.7.1","onnxruntime-node":"~1.18.0","@modelcontextprotocol/sdk":"^1.0.0"},"peerDependenciesMeta":{"@google/genai":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/getpatter_0.6.8_1781352953729_0.8126600916471691","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"getpatter","version":"0.7.0","description":"Open-source voice AI SDK — connect any AI agent to real phone calls in 4 lines of code","license":"MIT","author":{"name":"PatterAI","email":"hello@getpatter.com"},"repository":{"type":"git","url":"git+https://github.com/PatterAI/Patter.git","directory":"libraries/typescript"},"homepage":"https://www.getpatter.com","bugs":{"url":"https://github.com/PatterAI/Patter/issues"},"keywords":["voice","ai","voice-ai","phone","telephony","speech","tts","stt","twilio","telnyx","plivo","openai","elevenlabs","llm","agent","ai-agent","conversational-ai","realtime","call","ivr","chatbot"],"main":"dist/index.js","module":"dist/index.mjs","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"bin":{"getpatter":"dist/cli.js"},"sideEffects":false,"scripts":{"build":"tsup src/index.ts --format cjs,esm --dts && tsup src/cli.ts --format cjs --no-dts && node -e \"const fs=require('fs');fs.cpSync('src/resources','dist/resources',{recursive:true,filter:p=>!p.endsWith('.ts')});fs.mkdirSync('dist/dashboard',{recursive:true});fs.copyFileSync('src/dashboard/ui.html','dist/dashboard/ui.html')\"","prepublishOnly":"npm run build","test":"vitest run","test:watch":"vitest","lint":"tsc --noEmit"},"dependencies":{"express":"^5.2.1","ws":"^8.18.0"},"optionalDependencies":{"@modelcontextprotocol/sdk":"^1.0.0","cloudflared":"^0.7.1","node-cron":"^4.0.0","onnxruntime-node":"~1.18.0"},"peerDependencies":{"@google/genai":"^0.3.0"},"peerDependenciesMeta":{"@google/genai":{"optional":true}},"devDependencies":{"@types/express":"^5.0.6","@types/ws":"^8.5.0","@vitest/coverage-v8":"^3.2.4","tsup":"^8.0.0","tsx":"^4.21.0","typescript":"^5.4.0","vitest":"^3.2.4"},"engines":{"node":">=18.0.0"},"_id":"getpatter@0.7.0","gitHead":"3eb74d8fc52176bcb6664695fedd4b675e4b69d8","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-lrhx3PiBFzQ0C35iT+PpfmysexTfdPwn8FDP4fZIWI9ozH02RtRcgc2HxEycaqtvaSE2nJ0gAhk5SC0qMXndwQ==","shasum":"4cadcc1130f605bd7a85aae250c3989d7db64726","tarball":"https://registry.npmjs.org/getpatter/-/getpatter-0.7.0.tgz","fileCount":58,"unpackedSize":14733089,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDseQ9i5fVMFPZXG3itx5o+gDx4LNVrBn5DRGiwuQIylQIgDsdqXoPft1rUKMi/3ndBmBSBVC2JtnZ0VumZtse4Le4="}]},"_npmUser":{"name":"nicolotognoni","email":"getpatterai@gmail.com"},"directories":{},"maintainers":[{"name":"nicolotognoni","email":"getpatterai@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/getpatter_0.7.0_1782835976734_0.2862034520565484"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-11T22:20:49.465Z","modified":"2026-06-30T16:12:57.160Z","0.3.0":"2026-04-11T22:20:49.610Z","0.4.0":"2026-04-13T09:49:49.309Z","0.4.1":"2026-04-13T10:56:06.366Z","0.4.2":"2026-04-17T20:49:53.404Z","0.4.3":"2026-04-18T15:25:04.578Z","0.4.4":"2026-04-21T20:05:37.874Z","0.5.0":"2026-04-22T17:19:06.418Z","0.5.1":"2026-04-22T19:58:43.748Z","0.5.2":"2026-04-23T13:12:35.031Z","0.5.3":"2026-04-27T18:45:16.259Z","0.5.4":"2026-04-27T18:55:38.713Z","0.6.0":"2026-05-08T21:46:12.966Z","0.6.1":"2026-05-17T13:26:11.140Z","0.6.2":"2026-05-25T11:17:52.790Z","0.6.3":"2026-05-29T11:09:17.252Z","0.6.4":"2026-06-05T00:37:13.291Z","0.6.5":"2026-06-05T13:26:02.216Z","0.6.6":"2026-06-10T22:39:22.878Z","0.6.7":"2026-06-11T04:08:04.316Z","0.6.8":"2026-06-13T12:15:54.107Z","0.7.0":"2026-06-30T16:12:57.020Z"},"bugs":{"url":"https://github.com/PatterAI/Patter/issues"},"author":{"name":"PatterAI","email":"hello@getpatter.com"},"license":"MIT","homepage":"https://www.getpatter.com","keywords":["voice","ai","voice-ai","phone","telephony","speech","tts","stt","twilio","telnyx","plivo","openai","elevenlabs","llm","agent","ai-agent","conversational-ai","realtime","call","ivr","chatbot"],"repository":{"type":"git","url":"git+https://github.com/PatterAI/Patter.git","directory":"libraries/typescript"},"description":"Open-source voice AI SDK — connect any AI agent to real phone calls in 4 lines of code","maintainers":[{"name":"nicolotognoni","email":"getpatterai@gmail.com"}],"readme":"<p align=\"center\">\n  <h1 align=\"center\">Patter TypeScript SDK</h1>\n  <p align=\"center\">Connect AI agents to phone numbers in four lines of code</p>\n</p>\n\n<p align=\"center\">\n  <a href=\"https://www.npmjs.com/package/getpatter\"><img src=\"https://img.shields.io/npm/v/getpatter?logo=npm&logoColor=white&label=npm%20install%20getpatter\" alt=\"npm\" /></a>\n  <a href=\"./LICENSE\"><img src=\"https://img.shields.io/badge/license-MIT-green\" alt=\"MIT License\" /></a>\n  <img src=\"https://img.shields.io/badge/typescript-5.0%2B-3178c6?logo=typescript&logoColor=white\" alt=\"TypeScript 5+\" />\n</p>\n\n<p align=\"center\">\n  <a href=\"#quickstart\">Quickstart</a> •\n  <a href=\"#features\">Features</a> •\n  <a href=\"#configuration\">Configuration</a> •\n  <a href=\"#voice-modes\">Voice Modes</a> •\n  <a href=\"#api-reference\">API Reference</a> •\n  <a href=\"#contributing\">Contributing</a>\n</p>\n\n---\n\nPatter is the open-source SDK that gives your AI agent a phone number. Point it at any function that returns a string, and Patter handles the rest: telephony, speech-to-text, text-to-speech, and real-time audio streaming. You build the agent — we connect it to the phone.\n\n## Quickstart\n\n```bash\nnpm install getpatter\n```\n\nSet the env vars your carrier and engine need:\n\n```bash\nexport TWILIO_ACCOUNT_SID=ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\nexport TWILIO_AUTH_TOKEN=your_auth_token\nexport OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxx\n```\n\nFour lines of TypeScript:\n\n```typescript\nimport { Patter, Twilio, OpenAIRealtime } from \"getpatter\";\n\nconst phone = new Patter({ carrier: new Twilio(), phoneNumber: \"+15550001234\" });\nconst agent = phone.agent({ engine: new OpenAIRealtime(), systemPrompt: \"You are a friendly receptionist for Acme Corp.\", firstMessage: \"Hello! How can I help?\" });\nawait phone.serve({ agent, tunnel: true });\n```\n\n`tunnel: true` spawns a Cloudflare tunnel and points your Twilio number at it. In production, pass `webhookUrl: \"api.prod.example.com\"` to the constructor instead.\n\n## Features\n\n| Feature | Method | Example |\n|---|---|---|\n| Inbound calls | `phone.serve({ agent })` | Answer calls as an AI |\n| Outbound calls + AMD | `phone.call({ to, machineDetection: true })` | Place calls with voicemail detection |\n| Tool calling | `agent({ tools: [tool(...)] })` | Agent calls external APIs mid-conversation |\n| Custom STT + TTS | `agent({ stt: new DeepgramSTT(), tts: new ElevenLabsTTS() })` | Bring your own voice providers |\n| Dynamic variables | `agent({ variables: {...} })` | Personalize prompts per caller |\n| Pluggable LLM | `agent({ llm: new AnthropicLLM() })` | 5 built-in providers: OpenAI, Anthropic, Groq, Cerebras, Google |\n| Custom LLM (any model) | `serve({ onMessage })` | Route to anything — local inference, internal gateways, etc. |\n| Call recording | `serve({ recording: true })` | Record all calls |\n| Call transfer | `transfer_call` (auto-injected) | Transfer to a human |\n| Voicemail drop | `call({ voicemailMessage: \"...\" })` | Play message on voicemail |\n| Phone-as-a-tool (external agents) | `new PatterTool({ phone, agent }).execute(...)` | Drop into LangChain / OpenAI Assistants / Hermes / MCP |\n\n## Configuration\n\n### Environment variables\n\nEvery provider reads its credentials from the environment by default. Pass `apiKey: \"...\"` to any constructor to override.\n\n| Variable | Used by |\n|---|---|\n| `TWILIO_ACCOUNT_SID`, `TWILIO_AUTH_TOKEN` | `new Twilio()` carrier |\n| `TELNYX_API_KEY`, `TELNYX_CONNECTION_ID`, `TELNYX_PUBLIC_KEY` (optional) | `new Telnyx()` carrier |\n| `PLIVO_AUTH_ID`, `PLIVO_AUTH_TOKEN` | `new Plivo()` carrier — Auth Token doubles as the V3 webhook signature key |\n| `OPENAI_API_KEY` | `OpenAIRealtime`, `WhisperSTT`, `OpenAITTS` |\n| `ELEVENLABS_API_KEY`, `ELEVENLABS_AGENT_ID` | `ElevenLabsConvAI`, `ElevenLabsTTS` |\n| `DEEPGRAM_API_KEY` | `DeepgramSTT` |\n| `CARTESIA_API_KEY` | `CartesiaSTT`, `CartesiaTTS` |\n| `RIME_API_KEY` | `RimeTTS` |\n| `LMNT_API_KEY` | `LMNTTTS` |\n| `SONIOX_API_KEY` | `SonioxSTT` |\n| `ASSEMBLYAI_API_KEY` | `AssemblyAISTT` |\n| `ANTHROPIC_API_KEY` | `AnthropicLLM` |\n| `GROQ_API_KEY` | `GroqLLM` |\n| `CEREBRAS_API_KEY` | `CerebrasLLM` |\n| `GEMINI_API_KEY` (or `GOOGLE_API_KEY`) | `GoogleLLM` |\n\n```bash\ncp .env.example .env\n# Edit .env with your API keys\n```\n\n> **Other carriers:** **Telnyx** and **Plivo** are both fully supported alternatives to Twilio. All three carriers receive equal support for inbound DTMF, transfer, AMD, status callbacks, recording, voicemail drop, and metrics. **Plivo** additionally supports native DTMF *send* over the media WebSocket — a capability Twilio Media Streams lacks. Plivo's Auth Token doubles as the V3 webhook signature key (no separate public key, unlike Telnyx Ed25519).\n\n## Voice Modes\n\n| Mode | Latency | Quality | Best For |\n|---|---|---|---|\n| **OpenAI Realtime** | Lowest | High | Fluid, low-latency conversations |\n| **Pipeline** (STT + LLM + TTS) | Low | High | Independent control over STT and TTS |\n| **ElevenLabs ConvAI** | Low | High | ElevenLabs-managed conversation flow |\n\n## API Reference\n\n### `Patter` constructor\n\n```typescript\nnew Patter({\n  carrier: Twilio | Telnyx | Plivo;\n  phoneNumber: string;\n  webhookUrl?: string;                              // Public hostname. Mutually exclusive with tunnel.\n  tunnel?: CloudflareTunnel | StaticTunnel | boolean;  // `true` is shorthand for new CloudflareTunnel().\n})\n```\n\n| Parameter | Type | Description |\n|---|---|---|\n| `carrier` | `Twilio` / `Telnyx` / `Plivo` | Carrier instance. Reads env vars by default. |\n| `phoneNumber` | `string` | Your phone number in E.164 format. |\n| `webhookUrl` | `string` | Public hostname your local server is reachable on. |\n| `tunnel` | `CloudflareTunnel \\| StaticTunnel \\| boolean` | `new CloudflareTunnel()`, `new StaticTunnel({ hostname: ... })`, or `true` (shorthand for `new CloudflareTunnel()`). |\n\n### `phone.agent()`\n\n```typescript\nphone.agent({\n  systemPrompt: string;\n  engine?: OpenAIRealtime | ElevenLabsConvAI;        // default: new OpenAIRealtime()\n  stt?: STTProvider;                                 // e.g. new DeepgramSTT()\n  tts?: TTSProvider;                                 // e.g. new ElevenLabsTTS()\n  voice?: string;\n  model?: string;\n  language?: string;\n  firstMessage?: string;\n  tools?: Tool[];\n  guardrails?: Guardrail[];\n  variables?: Record<string, string>;\n})\n```\n\nPass `engine` for end-to-end mode, `stt` + `tts` for pipeline mode. Both arguments may take plain adapter instances (e.g. `new DeepgramSTT()`) that read their API key from the environment.\n\n### `phone.serve()`\n\n```typescript\nawait phone.serve({\n  agent: Agent;\n  port?: number;\n  tunnel?: boolean;                 // shortcut for Patter({ tunnel: new CloudflareTunnel() })\n  dashboard?: boolean;\n  recording?: boolean;\n  onCallStart?: (data) => Promise<void>;\n  onCallEnd?: (data) => Promise<void>;\n  onTranscript?: (data) => Promise<void>;\n  onMessage?: (data) => Promise<string> | string;\n  voicemailMessage?: string;\n  dashboardToken?: string;\n});\n```\n\n### `phone.call()`\n\n```typescript\nawait phone.call({\n  to: string;\n  agent?: Agent;\n  from?: string;\n  firstMessage?: string;\n  machineDetection?: boolean;\n  voicemailMessage?: string;\n  ringTimeout?: number;\n});\n```\n\n### STT / TTS catalog\n\n```typescript\nimport {\n  // Carriers\n  Twilio, Telnyx, Plivo,\n  // Engines\n  OpenAIRealtime, ElevenLabsConvAI,\n  // STT\n  DeepgramSTT, WhisperSTT, OpenAITranscribeSTT, CartesiaSTT, SonioxSTT, AssemblyAISTT,\n  // TTS\n  ElevenLabsTTS, OpenAITTS, CartesiaTTS, RimeTTS, LMNTTTS,\n  // LLM\n  OpenAILLM, AnthropicLLM, GroqLLM, CerebrasLLM, GoogleLLM,\n  // Tunnels\n  CloudflareTunnel, StaticTunnel,\n  // Primitives\n  Tool, Guardrail, tool, guardrail,\n  // Integrations\n  PatterTool,\n} from \"getpatter\";\n```\n\nEvery class reads its API key from the environment by default, so `new DeepgramSTT()` / `new ElevenLabsTTS()` work out of the box when the corresponding env var is set.\n\n## Examples\n\n### Inbound calls — default engine\n\n```typescript\nimport { Patter, Twilio, OpenAIRealtime } from \"getpatter\";\n\nconst phone = new Patter({ carrier: new Twilio(), phoneNumber: \"+15550001234\" });\nconst agent = phone.agent({\n  engine: new OpenAIRealtime(),\n  systemPrompt: \"You are a helpful customer service agent.\",\n  firstMessage: \"Hello! How can I help?\",\n});\n\nawait phone.serve({\n  agent,\n  tunnel: true,\n  onCallStart: (data) => console.log(`Call from ${data.caller}`),\n  onCallEnd: () => console.log(\"Call ended\"),\n});\n```\n\n### Custom voice — Deepgram STT + ElevenLabs TTS\n\n```typescript\nimport { Patter, Twilio, DeepgramSTT, ElevenLabsTTS } from \"getpatter\";\n\nconst phone = new Patter({ carrier: new Twilio(), phoneNumber: \"+15550001234\" });\nconst agent = phone.agent({\n  stt: new DeepgramSTT(),                         // reads DEEPGRAM_API_KEY\n  tts: new ElevenLabsTTS({ voice: \"sarah\" }),     // reads ELEVENLABS_API_KEY\n  systemPrompt: \"You are a helpful voice assistant.\",\n});\nawait phone.serve({ agent, tunnel: true });\n```\n\n### Pipeline mode — pick STT, LLM, TTS independently\n\n```typescript\nimport { Patter, Twilio, DeepgramSTT, AnthropicLLM, ElevenLabsTTS } from \"getpatter\";\n\nconst phone = new Patter({ carrier: new Twilio(), phoneNumber: \"+15550001234\" });\nconst agent = phone.agent({\n  stt: new DeepgramSTT(),                         // reads DEEPGRAM_API_KEY\n  llm: new AnthropicLLM(),                        // reads ANTHROPIC_API_KEY\n  tts: new ElevenLabsTTS({ voiceId: \"sarah\" }),   // reads ELEVENLABS_API_KEY\n  systemPrompt: \"You are a helpful voice assistant.\",\n});\nawait phone.serve({ agent, tunnel: true });\n```\n\nAvailable LLM providers: `OpenAILLM`, `AnthropicLLM`, `GroqLLM`, `CerebrasLLM`, `GoogleLLM`. Tool calling works across all five. For fully custom logic, drop `llm` and pass an `onMessage` callback to `serve()` instead.\n\n### Tool calling\n\n```typescript\nimport { Patter, Twilio, OpenAIRealtime, tool } from \"getpatter\";\n\nconst checkAvailability = tool({\n  name: \"check_availability\",\n  description: \"Check appointment availability for a given ISO date.\",\n  parameters: {\n    type: \"object\",\n    properties: { date: { type: \"string\" } },\n    required: [\"date\"],\n  },\n  handler: async ({ date }) => ({ available: true }),\n});\n\nconst phone = new Patter({ carrier: new Twilio(), phoneNumber: \"+15550001234\" });\nconst agent = phone.agent({\n  engine: new OpenAIRealtime(),\n  systemPrompt: \"You are a booking assistant.\",\n  tools: [checkAvailability],\n});\nawait phone.serve({ agent, tunnel: true });\n```\n\n### Outbound calls\n\n```typescript\nimport { Patter, Twilio, OpenAIRealtime } from \"getpatter\";\n\nconst phone = new Patter({ carrier: new Twilio(), phoneNumber: \"+15550001234\" });\nconst agent = phone.agent({\n  engine: new OpenAIRealtime(),\n  systemPrompt: \"You are making reminder calls.\",\n  firstMessage: \"Hi, this is a reminder from Acme Corp.\",\n});\n\nawait phone.serve({ agent, tunnel: true });\nawait phone.call({ to: \"+14155551234\", agent });\n```\n\n### Dynamic variables\n\n```typescript\nconst agent = phone.agent({\n  engine: new OpenAIRealtime(),\n  systemPrompt: \"You are helping {customer_name}, account #{account_id}.\",\n  firstMessage: \"Hi {customer_name}! How can I help you today?\",\n  variables: { customer_name: \"Jane\", account_id: \"A-789\" },\n});\n```\n\n## Contributing\n\nPull requests are welcome.\n\n```bash\ncd libraries/typescript && npm install && npm test\n```\n\nPlease open an issue before submitting large changes so we can discuss the approach first.\n\n## License\n\nMIT — see [LICENSE](../LICENSE).\n","readmeFilename":"README.md"}