{"_id":"@diegoaltoworks/talker","_rev":"56-c327568771882a072b589b0899283491","name":"@diegoaltoworks/talker","dist-tags":{"latest":"0.63.0"},"versions":{"0.1.0":{"name":"@diegoaltoworks/talker","version":"0.1.0","keywords":["telephony","twilio","voice","sms","chatbot","chatter","twiml","conversational-ai","ivr","phone"],"author":{"name":"Diego Alto","email":"diego@diegoalto.works"},"license":"MIT","_id":"@diegoaltoworks/talker@0.1.0","maintainers":[{"name":"diegoaltoworks","email":"diego@diegoalto.co.uk"}],"homepage":"https://github.com/diegoaltoworks/talker#readme","bugs":{"url":"https://github.com/diegoaltoworks/talker/issues"},"dist":{"shasum":"cefa344d30e2168a03be9cb909ad445977006b15","tarball":"https://registry.npmjs.org/@diegoaltoworks/talker/-/talker-0.1.0.tgz","fileCount":117,"integrity":"sha512-eJGco4aKSTIWDGHf07cCWtRjwULaaSQqbDoM8OJsoml17A4hntHpvS747DsaUilOCcXvEPYMggptCg375RJywA==","signatures":[{"sig":"MEUCIDQQB+9RKBgl2UOIiUiMpQ4Q2T1MLOnuWPls175a+952AiEAmKKwiAsvCiZOGLI35Y1dVcuenvlNLh+P/kMWoEU8BJ0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":214422},"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"},"./twilio":{"types":"./dist/adapters/twilio.d.ts","import":"./dist/adapters/twilio.mjs","require":"./dist/adapters/twilio.js"}},"gitHead":"71ca93e96b716aaa22fe37b8b051f2481e64805c","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check .","test":"bun test","build":"bun run build:clean && bun run build:types && bun run build:esm && bun run build:cjs","check":"bun run typecheck && bun run lint && bun run test && bun run security:check","format":"biome format --write .","prepare":"husky || true","lint:fix":"biome check --write .","build:cjs":"esbuild src/index.ts --bundle --format=cjs --outfile=dist/index.js --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@libsql/client --platform=node --target=node18","build:esm":"esbuild src/index.ts --bundle --format=esm --outfile=dist/index.mjs --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@libsql/client --platform=node --target=node18","test:unit":"bun test src/**/*.test.ts","typecheck":"tsc --noEmit","test:watch":"bun test --watch","build:clean":"rm -rf dist","build:types":"tsc --emitDeclarationOnly --outDir dist","test:coverage":"bun test --coverage","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run security:check && bun run build","security:audit":"bun audit","security:check":"bun audit --audit-level=moderate","test:integration":"bun test test/integration/**/*.test.ts","security:audit:fix":"bun update"},"_npmUser":{"name":"diegoaltoworks","email":"diego@diegoalto.co.uk"},"repository":{"url":"git+https://github.com/diegoaltoworks/talker.git","type":"git"},"_npmVersion":"10.8.2","description":"Telephony plugin for Chatter — adds voice call and SMS support via Twilio","directories":{},"lint-staged":{"*.ts":["bash -c 'tsc --noEmit --skipLibCheck'"],"*.{ts,js,json,md}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"20.17.0","_hasShrinkwrap":false,"devDependencies":{"hono":"^4.6.14","husky":"^9.1.7","openai":"^4.77.0","esbuild":"^0.27.4","@types/bun":"^1.1.12","typescript":"^5.6.3","@types/node":"^22.9.1","lint-staged":"^16.2.6","@biomejs/biome":"^1.9.4","@libsql/client":"^0.14.0","@diegoaltoworks/chatter":"^0.1.8"},"peerDependencies":{"hono":"^4.0.0 || ^5.0.0","openai":"^4.0.0","@libsql/client":"^0.6.0 || ^0.7.0 || ^0.8.0 || ^0.9.0 || ^0.10.0","@diegoaltoworks/chatter":"^0.1.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@libsql/client":{"optional":true},"@diegoaltoworks/chatter":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talker_0.1.0_1773504670419_0.6032768287238006","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@diegoaltoworks/talker","version":"0.4.0","keywords":["telephony","twilio","voice","sms","chatbot","chatter","twiml","conversational-ai","ivr","phone"],"author":{"name":"Diego Alto","email":"diego@diegoalto.works"},"license":"MIT","_id":"@diegoaltoworks/talker@0.4.0","maintainers":[{"name":"diegoaltoworks","email":"diego@diegoalto.co.uk"}],"homepage":"https://github.com/diegoaltoworks/talker#readme","bugs":{"url":"https://github.com/diegoaltoworks/talker/issues"},"dist":{"shasum":"e09a648a7c0df8c70e6f13f8a46bd30cd92d8009","tarball":"https://registry.npmjs.org/@diegoaltoworks/talker/-/talker-0.4.0.tgz","fileCount":117,"integrity":"sha512-YA2MoX3IyBcLxXtOX+KTBRR7Dn29PvfxEUcTVes/L5cVUSiml0N5R1YyEsdUY7uFILRKlfTRJ9bq4i0jLgpjwg==","signatures":[{"sig":"MEYCIQD6tO+IFjzTXMk2uZQidpC4aoZiWC4I+B/I3k++jlHkRwIhANaeaomzSeQEjnj/YDcqB18A4wdw/Z/5iLfmtbIsegeF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@diegoaltoworks%2ftalker@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":214422},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./twilio":{"types":"./dist/adapters/twilio.d.ts","import":"./dist/adapters/twilio.mjs","require":"./dist/adapters/twilio.js"}},"gitHead":"eed22449fbcf11a7566065eec362d2ba7918e56c","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check .","test":"bun test","build":"bun run build:clean && bun run build:types && bun run build:esm && bun run build:cjs","check":"bun run typecheck && bun run lint && bun run test && bun run security:check","format":"biome format --write .","prepare":"husky || true","lint:fix":"biome check --write .","build:cjs":"esbuild src/index.ts --bundle --format=cjs --outfile=dist/index.js --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@libsql/client --platform=node --target=node24","build:esm":"esbuild src/index.ts --bundle --format=esm --outfile=dist/index.mjs --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@libsql/client --platform=node --target=node24","test:unit":"bun test src/**/*.test.ts","typecheck":"tsc --noEmit","test:watch":"bun test --watch","build:clean":"rm -rf dist","build:types":"tsc --emitDeclarationOnly --outDir dist","test:coverage":"bun test --coverage","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run security:check && bun run build","security:audit":"bun audit","security:check":"bun audit --audit-level=moderate","test:integration":"bun test test/integration/**/*.test.ts","security:audit:fix":"bun update"},"_npmUser":{"name":"diegoaltoworks","email":"diego@diegoalto.co.uk"},"repository":{"url":"git+https://github.com/diegoaltoworks/talker.git","type":"git"},"_npmVersion":"11.9.0","description":"Telephony plugin for Chatter — adds voice call and SMS support via Twilio","directories":{},"lint-staged":{"*.ts":["bash -c 'tsc --noEmit --skipLibCheck'"],"*.{ts,js,json,md}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"hono":"^4.6.14","husky":"^9.1.7","openai":"^4.77.0","esbuild":"^0.27.4","@types/bun":"^1.1.12","typescript":"^5.6.3","@types/node":"^22.9.1","lint-staged":"^16.2.6","@biomejs/biome":"^1.9.4","@libsql/client":"^0.14.0","@diegoaltoworks/chatter":"^0.1.8"},"peerDependencies":{"hono":"^4.0.0 || ^5.0.0","openai":"^4.0.0","@libsql/client":"^0.6.0 || ^0.7.0 || ^0.8.0 || ^0.9.0 || ^0.10.0","@diegoaltoworks/chatter":"^0.1.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@libsql/client":{"optional":true},"@diegoaltoworks/chatter":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talker_0.4.0_1773505091180_0.18609381919320156","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@diegoaltoworks/talker","version":"0.5.0","keywords":["telephony","twilio","voice","sms","chatbot","chatter","twiml","conversational-ai","ivr","phone"],"author":{"name":"Diego Alto","email":"diego@diegoalto.works"},"license":"MIT","_id":"@diegoaltoworks/talker@0.5.0","maintainers":[{"name":"diegoaltoworks","email":"diego@diegoalto.co.uk"}],"homepage":"https://github.com/diegoaltoworks/talker#readme","bugs":{"url":"https://github.com/diegoaltoworks/talker/issues"},"dist":{"shasum":"d6698b07f4c3c7e819abb0340c9ef017912ce927","tarball":"https://registry.npmjs.org/@diegoaltoworks/talker/-/talker-0.5.0.tgz","fileCount":117,"integrity":"sha512-f1BE53g7KlUa8g9TNK6NcO6Esd40QwAMaSmRfW+PNR0e6lf1LPxXwkYGiYpAQOu9y/Q6+DQXkIpRm2r4ngWl3A==","signatures":[{"sig":"MEQCIDHcNSlhgvgXCeloWz/JRPm5JBGlYiaG4ddMkvC2g4btAiByLIconRiTndwl2CO47smpuehNZLT4p57eBLaWLS65EQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@diegoaltoworks%2ftalker@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":214382},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./twilio":{"types":"./dist/adapters/twilio.d.ts","import":"./dist/adapters/twilio.mjs","require":"./dist/adapters/twilio.js"}},"gitHead":"97257ab72306f9c9c8e2c172ff0d28240e83af15","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check .","test":"bun test","build":"bun run build:clean && bun run build:types && bun run build:esm && bun run build:cjs","check":"bun run typecheck && bun run lint && bun run test && bun run security:check","format":"biome format --write .","prepare":"husky || true","lint:fix":"biome check --write .","build:cjs":"esbuild src/index.ts --bundle --format=cjs --outfile=dist/index.js --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@libsql/client --platform=node --target=node24","build:esm":"esbuild src/index.ts --bundle --format=esm --outfile=dist/index.mjs --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@libsql/client --platform=node --target=node24","test:unit":"bun test src/**/*.test.ts","typecheck":"tsc --noEmit","test:watch":"bun test --watch","build:clean":"rm -rf dist","build:types":"tsc --emitDeclarationOnly --outDir dist","test:coverage":"bun test --coverage","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run security:check && bun run build","security:audit":"bun audit","security:check":"bun audit --audit-level=moderate","test:integration":"bun test test/integration/**/*.test.ts","security:audit:fix":"bun update"},"_npmUser":{"name":"diegoaltoworks","email":"diego@diegoalto.co.uk"},"repository":{"url":"git+https://github.com/diegoaltoworks/talker.git","type":"git"},"_npmVersion":"11.9.0","description":"Telephony plugin for Chatter — adds voice call and SMS support via Twilio","directories":{},"lint-staged":{"*.ts":["bash -c 'tsc --noEmit --skipLibCheck'"],"*.{ts,js,json,md}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"hono":"^4.6.14","husky":"^9.1.7","openai":"^4.77.0","esbuild":"^0.27.4","@types/bun":"^1.1.12","typescript":"^5.6.3","@types/node":"^22.9.1","lint-staged":"^16.2.6","@biomejs/biome":"^1.9.4","@libsql/client":"^0.14.0","@diegoaltoworks/chatter":"^0.1.8"},"peerDependencies":{"hono":"^4.0.0 || ^5.0.0","openai":"^4.0.0","@libsql/client":">=0.6.0","@diegoaltoworks/chatter":"^0.1.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@libsql/client":{"optional":true},"@diegoaltoworks/chatter":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talker_0.5.0_1773505488633_0.9408678728264519","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@diegoaltoworks/talker","version":"0.6.0","keywords":["telephony","twilio","voice","sms","chatbot","chatter","twiml","conversational-ai","ivr","phone"],"author":{"name":"Diego Alto","email":"diego@diegoalto.works"},"license":"MIT","_id":"@diegoaltoworks/talker@0.6.0","maintainers":[{"name":"diegoaltoworks","email":"diego@diegoalto.co.uk"}],"homepage":"https://github.com/diegoaltoworks/talker#readme","bugs":{"url":"https://github.com/diegoaltoworks/talker/issues"},"dist":{"shasum":"9fef641917dca6a2d24aab139540396f0ccb4483","tarball":"https://registry.npmjs.org/@diegoaltoworks/talker/-/talker-0.6.0.tgz","fileCount":117,"integrity":"sha512-3smLLizU/FsTlXAVpX+owK4l7q2nAntPHs/lh0ZCuoN8B5ESW8sHkBB1nIV9WpiME5OkkDrOSl0IsMGPCVebxA==","signatures":[{"sig":"MEYCIQDx++IFuTg6m6wc2SS7JNRzAaybGD/Mp3i0RceySyB+egIhAPW9TKbDpwg2eRESa4BHbnzi0yRCrOvJwaawdYkCdygK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@diegoaltoworks%2ftalker@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":214382},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./twilio":{"types":"./dist/adapters/twilio.d.ts","import":"./dist/adapters/twilio.mjs","require":"./dist/adapters/twilio.js"}},"gitHead":"52c312aa5d82dc0bd04caba0c802bb3e07a4ed1f","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check .","test":"bun test","build":"bun run build:clean && bun run build:types && bun run build:esm && bun run build:cjs","check":"bun run typecheck && bun run lint && bun run test && bun run security:check","format":"biome format --write .","prepare":"husky || true","lint:fix":"biome check --write .","build:cjs":"esbuild src/index.ts --bundle --format=cjs --outfile=dist/index.js --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@libsql/client --platform=node --target=node24","build:esm":"esbuild src/index.ts --bundle --format=esm --outfile=dist/index.mjs --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@libsql/client --platform=node --target=node24","test:unit":"bun test src/**/*.test.ts","typecheck":"tsc --noEmit","test:watch":"bun test --watch","build:clean":"rm -rf dist","build:types":"tsc --emitDeclarationOnly --outDir dist","test:coverage":"bun test --coverage","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run security:check && bun run build","security:audit":"bun audit","security:check":"bun audit --audit-level=moderate","test:integration":"bun test test/integration/**/*.test.ts","security:audit:fix":"bun update"},"_npmUser":{"name":"diegoaltoworks","email":"diego@diegoalto.co.uk"},"repository":{"url":"git+https://github.com/diegoaltoworks/talker.git","type":"git"},"_npmVersion":"11.9.0","description":"Telephony plugin for Chatter — adds voice call and SMS support via Twilio","directories":{},"lint-staged":{"*.ts":["bash -c 'tsc --noEmit --skipLibCheck'"],"*.{ts,js,json,md}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"hono":"^4.6.14","husky":"^9.1.7","openai":"^4.77.0","esbuild":"^0.27.4","@types/bun":"^1.1.12","typescript":"^5.6.3","@types/node":"^22.9.1","lint-staged":"^16.2.6","@biomejs/biome":"^1.9.4","@libsql/client":"^0.14.0","@diegoaltoworks/chatter":"^0.1.8"},"peerDependencies":{"hono":"^4.0.0 || ^5.0.0","openai":"^4.0.0","@libsql/client":">=0.6.0","@diegoaltoworks/chatter":"^0.1.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@libsql/client":{"optional":true},"@diegoaltoworks/chatter":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talker_0.6.0_1773505941995_0.23307963715263313","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@diegoaltoworks/talker","version":"0.7.0","keywords":["telephony","twilio","voice","sms","chatbot","chatter","twiml","conversational-ai","ivr","phone"],"author":{"name":"Diego Alto","email":"diego@diegoalto.works"},"license":"MIT","_id":"@diegoaltoworks/talker@0.7.0","maintainers":[{"name":"diegoaltoworks","email":"diego@diegoalto.co.uk"}],"homepage":"https://github.com/diegoaltoworks/talker#readme","bugs":{"url":"https://github.com/diegoaltoworks/talker/issues"},"dist":{"shasum":"916d444667cbee8ae870877a8b76514ad6e851dc","tarball":"https://registry.npmjs.org/@diegoaltoworks/talker/-/talker-0.7.0.tgz","fileCount":117,"integrity":"sha512-sNMNQTVDCA36PnfEnyr1CA7Ion/9uWZXVou0jluSI8NeeJJKOV0HEzrynNliBpNIkuMorhIMh358QQW2kpQIkQ==","signatures":[{"sig":"MEUCIQCT2tLXeYMamzuxe+pgcoHakzGOWK8pSX00YoPiJG/6wgIgR5yxXGQnPsUJJnfY5EBEWnwFMfw+fOT/iHKJNjq7I8Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@diegoaltoworks%2ftalker@0.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":214382},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./twilio":{"types":"./dist/adapters/twilio.d.ts","import":"./dist/adapters/twilio.mjs","require":"./dist/adapters/twilio.js"}},"gitHead":"681a832ed62ff1fdbaddd3540c113c3d5dda5c4e","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check .","test":"bun test","build":"bun run build:clean && bun run build:types && bun run build:esm && bun run build:cjs","check":"bun run typecheck && bun run lint && bun run test && bun run security:check","format":"biome format --write .","prepare":"husky || true","lint:fix":"biome check --write .","build:cjs":"esbuild src/index.ts --bundle --format=cjs --outfile=dist/index.js --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@libsql/client --platform=node --target=node24","build:esm":"esbuild src/index.ts --bundle --format=esm --outfile=dist/index.mjs --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@libsql/client --platform=node --target=node24","test:unit":"bun test src/**/*.test.ts","typecheck":"tsc --noEmit","test:watch":"bun test --watch","build:clean":"rm -rf dist","build:types":"tsc --emitDeclarationOnly --outDir dist","test:coverage":"bun test --coverage","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run security:check && bun run build","security:audit":"bun audit","security:check":"bun audit --audit-level=moderate","test:integration":"bun test test/integration/**/*.test.ts","security:audit:fix":"bun update"},"_npmUser":{"name":"diegoaltoworks","email":"diego@diegoalto.co.uk"},"repository":{"url":"git+https://github.com/diegoaltoworks/talker.git","type":"git"},"_npmVersion":"11.9.0","description":"Telephony plugin for Chatter — adds voice call and SMS support via Twilio","directories":{},"lint-staged":{"*.ts":["bash -c 'tsc --noEmit --skipLibCheck'"],"*.{ts,js,json,md}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"hono":"^4.6.14","husky":"^9.1.7","openai":"^4.77.0","esbuild":"^0.27.4","@types/bun":"^1.1.12","typescript":"^5.6.3","@types/node":"^22.9.1","lint-staged":"^16.2.6","@biomejs/biome":"^1.9.4","@libsql/client":"^0.14.0","@diegoaltoworks/chatter":"^0.1.8"},"peerDependencies":{"hono":"^4.0.0 || ^5.0.0","openai":"^4.0.0","@libsql/client":">=0.6.0","@diegoaltoworks/chatter":"^0.1.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@libsql/client":{"optional":true},"@diegoaltoworks/chatter":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talker_0.7.0_1773506121126_0.8397847498979096","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@diegoaltoworks/talker","version":"0.8.0","keywords":["telephony","twilio","voice","sms","chatbot","chatter","twiml","conversational-ai","ivr","phone"],"author":{"name":"Diego Alto","email":"diego@diegoalto.works"},"license":"MIT","_id":"@diegoaltoworks/talker@0.8.0","maintainers":[{"name":"diegoaltoworks","email":"diego@diegoalto.co.uk"}],"homepage":"https://github.com/diegoaltoworks/talker#readme","bugs":{"url":"https://github.com/diegoaltoworks/talker/issues"},"dist":{"shasum":"7c52998ac6c5c6ec5f7c7577f5dc8072fa4dece5","tarball":"https://registry.npmjs.org/@diegoaltoworks/talker/-/talker-0.8.0.tgz","fileCount":117,"integrity":"sha512-YYZDtrA+SpRF5KFF4dcip9Ks2N7uSxTtn3uBxLSXjq2zpNwF1kfj5LX6XuZVu7+iXBPA3WgJIfmvd1/CiMptGg==","signatures":[{"sig":"MEUCIB9zQGYQMLOZOYr1mYx/uJsBWpD3X1TL2RrAE0Liav0wAiEAw0VjnUuVWJ3P6btCDX1VwLwRhky7j6IqrMTdxzCdFRQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@diegoaltoworks%2ftalker@0.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":214382},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./twilio":{"types":"./dist/adapters/twilio.d.ts","import":"./dist/adapters/twilio.mjs","require":"./dist/adapters/twilio.js"}},"gitHead":"cd3775ce3cadf72ff1a1cf5bf1eb734dd8d8791e","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check .","test":"bun test","build":"bun run build:clean && bun run build:types && bun run build:esm && bun run build:cjs","check":"bun run typecheck && bun run lint && bun run test && bun run security:check","format":"biome format --write .","prepare":"husky || true","lint:fix":"biome check --write .","build:cjs":"esbuild src/index.ts --bundle --format=cjs --outfile=dist/index.js --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@libsql/client --platform=node --target=node24","build:esm":"esbuild src/index.ts --bundle --format=esm --outfile=dist/index.mjs --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@libsql/client --platform=node --target=node24","test:unit":"bun test src/**/*.test.ts","typecheck":"tsc --noEmit","test:watch":"bun test --watch","build:clean":"rm -rf dist","build:types":"tsc --emitDeclarationOnly --outDir dist","test:coverage":"bun test --coverage","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run security:check && bun run build","security:audit":"bun audit","security:check":"bun audit --audit-level=moderate","test:integration":"bun test test/integration/**/*.test.ts","security:audit:fix":"bun update"},"_npmUser":{"name":"diegoaltoworks","email":"diego@diegoalto.co.uk"},"repository":{"url":"git+https://github.com/diegoaltoworks/talker.git","type":"git"},"_npmVersion":"11.9.0","description":"Telephony plugin for Chatter — adds voice call and SMS support via Twilio","directories":{},"lint-staged":{"*.ts":["bash -c 'tsc --noEmit --skipLibCheck'"],"*.{ts,js,json,md}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"hono":"^4.6.14","husky":"^9.1.7","openai":"^4.77.0","esbuild":"^0.27.4","@types/bun":"^1.1.12","typescript":"^5.6.3","@types/node":"^22.9.1","lint-staged":"^16.2.6","@biomejs/biome":"^1.9.4","@libsql/client":"^0.14.0","@diegoaltoworks/chatter":"^0.1.8"},"peerDependencies":{"hono":"^4.0.0 || ^5.0.0","openai":"^4.0.0","@libsql/client":">=0.6.0","@diegoaltoworks/chatter":"^0.1.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@libsql/client":{"optional":true},"@diegoaltoworks/chatter":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talker_0.8.0_1773506326984_0.9065774983961161","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@diegoaltoworks/talker","version":"0.9.0","keywords":["telephony","twilio","voice","sms","chatbot","chatter","twiml","conversational-ai","ivr","phone"],"author":{"name":"Diego Alto","email":"diego@diegoalto.works"},"license":"MIT","_id":"@diegoaltoworks/talker@0.9.0","maintainers":[{"name":"diegoaltoworks","email":"diego@diegoalto.co.uk"}],"homepage":"https://github.com/diegoaltoworks/talker#readme","bugs":{"url":"https://github.com/diegoaltoworks/talker/issues"},"dist":{"shasum":"155e24d2050e55d84443fe3a8a12d2485242acd2","tarball":"https://registry.npmjs.org/@diegoaltoworks/talker/-/talker-0.9.0.tgz","fileCount":117,"integrity":"sha512-Ac/LaH47R/IJeCRduNLfkhbTGKbTkGdYs+0zeVrC9N6C/cd1p87qPZVSQmVP8e0aCQ1Ej7EBkvJY34dkXZoULA==","signatures":[{"sig":"MEUCIB0qnz1jrZe3mF1SYWu+WB2xAzj0Jn2zijnuMgh6kP9FAiEAszdWO4aUgMJjb6AqTJHlf5WmRzhCWMP3vL0f6VJ4XBE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@diegoaltoworks%2ftalker@0.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":214383},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./twilio":{"types":"./dist/adapters/twilio.d.ts","import":"./dist/adapters/twilio.mjs","require":"./dist/adapters/twilio.js"}},"gitHead":"0cf72feceac5ed6302f52d6d2393c326f3936425","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check .","test":"bun test","build":"bun run build:clean && bun run build:types && bun run build:esm && bun run build:cjs","check":"bun run typecheck && bun run lint && bun run test && bun run security:check","format":"biome format --write .","prepare":"husky || true","lint:fix":"biome check --write .","build:cjs":"esbuild src/index.ts --bundle --format=cjs --outfile=dist/index.js --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@libsql/client --platform=node --target=node24","build:esm":"esbuild src/index.ts --bundle --format=esm --outfile=dist/index.mjs --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@libsql/client --platform=node --target=node24","test:unit":"bun test src/**/*.test.ts","typecheck":"tsc --noEmit","test:watch":"bun test --watch","build:clean":"rm -rf dist","build:types":"tsc --emitDeclarationOnly --outDir dist","test:coverage":"bun test --coverage","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run security:check && bun run build","security:audit":"bun audit","security:check":"bun audit --audit-level=moderate","test:integration":"bun test test/integration/**/*.test.ts","security:audit:fix":"bun update"},"_npmUser":{"name":"diegoaltoworks","email":"diego@diegoalto.co.uk"},"repository":{"url":"git+https://github.com/diegoaltoworks/talker.git","type":"git"},"_npmVersion":"11.9.0","description":"Telephony plugin for Chatter — adds voice call and SMS support via Twilio","directories":{},"lint-staged":{"*.ts":["bash -c 'tsc --noEmit --skipLibCheck'"],"*.{ts,js,json,md}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"hono":"^4.6.14","husky":"^9.1.7","openai":"^4.77.0","esbuild":"^0.27.4","@types/bun":"^1.1.12","typescript":"^5.6.3","@types/node":"^22.9.1","lint-staged":"^16.2.6","@biomejs/biome":"^1.9.4","@libsql/client":"^0.17.0","@diegoaltoworks/chatter":"^0.10.0"},"peerDependencies":{"hono":"^4.0.0 || ^5.0.0","openai":"^4.0.0","@libsql/client":">=0.6.0","@diegoaltoworks/chatter":"^0.1.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@libsql/client":{"optional":true},"@diegoaltoworks/chatter":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talker_0.9.0_1773506700009_0.6008918961877201","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"@diegoaltoworks/talker","version":"0.10.0","keywords":["telephony","twilio","voice","sms","chatbot","chatter","twiml","conversational-ai","ivr","phone"],"author":{"name":"Diego Alto","email":"diego@diegoalto.works"},"license":"MIT","_id":"@diegoaltoworks/talker@0.10.0","maintainers":[{"name":"diegoaltoworks","email":"diego@diegoalto.co.uk"}],"homepage":"https://github.com/diegoaltoworks/talker#readme","bugs":{"url":"https://github.com/diegoaltoworks/talker/issues"},"dist":{"shasum":"1bb5285ddab373d7b1c4dd63d957e7ad57753d64","tarball":"https://registry.npmjs.org/@diegoaltoworks/talker/-/talker-0.10.0.tgz","fileCount":131,"integrity":"sha512-k/5MFA7l8UZJ6Zw2K5rGx6nikmiyU5MvKP0cuL+2G0mkiH78F2vR8v+OBcbEb/EppOeCKwlM0LF0U3bfVGkbyw==","signatures":[{"sig":"MEUCIQDIJj+hjHlI9Cde3e7h7jH9P8vY7G5RSPfKJHV1WBF7LQIgXKEbqEpI1IRtSuDDumglHgm1VOWEMPepCXoduUKp+fc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@diegoaltoworks%2ftalker@0.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":233103},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./twilio":{"types":"./dist/adapters/twilio.d.ts","import":"./dist/adapters/twilio.mjs","require":"./dist/adapters/twilio.js"}},"gitHead":"d41856bfbf73b4ac3cdbf2e909e4d584918ee878","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check .","test":"bun test","build":"bun run build:clean && bun run build:types && bun run build:esm && bun run build:cjs","check":"bun run typecheck && bun run lint && bun run test && bun run security:check","format":"biome format --write .","prepare":"husky || true","lint:fix":"biome check --write .","build:cjs":"esbuild src/index.ts --bundle --format=cjs --outfile=dist/index.js --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@libsql/client --platform=node --target=node24","build:esm":"esbuild src/index.ts --bundle --format=esm --outfile=dist/index.mjs --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@libsql/client --platform=node --target=node24","test:unit":"bun test src/**/*.test.ts","typecheck":"tsc --noEmit","test:watch":"bun test --watch","build:clean":"rm -rf dist","build:types":"tsc --emitDeclarationOnly --outDir dist","test:coverage":"bun test --coverage","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run security:check && bun run build","security:audit":"bun audit","security:check":"bun audit --audit-level=moderate","test:integration":"bun test test/integration/**/*.test.ts","security:audit:fix":"bun update"},"_npmUser":{"name":"diegoaltoworks","email":"diego@diegoalto.co.uk"},"repository":{"url":"git+https://github.com/diegoaltoworks/talker.git","type":"git"},"_npmVersion":"11.9.0","description":"Telephony plugin for Chatter — adds voice call and SMS support via Twilio","directories":{},"lint-staged":{"*.ts":["bash -c 'tsc --noEmit --skipLibCheck'"],"*.{ts,js,json,md}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"hono":"^4.6.14","husky":"^9.1.7","openai":"^4.77.0","esbuild":"^0.27.4","@types/bun":"^1.1.12","typescript":"^5.6.3","@types/node":"^22.9.1","lint-staged":"^16.2.6","@biomejs/biome":"^1.9.4","@libsql/client":"^0.17.0","@diegoaltoworks/chatter":"^0.10.0"},"peerDependencies":{"hono":"^4.0.0 || ^5.0.0","openai":"^4.0.0","@libsql/client":">=0.6.0","@diegoaltoworks/chatter":"^0.1.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@libsql/client":{"optional":true},"@diegoaltoworks/chatter":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talker_0.10.0_1773528801618_0.23027636246376137","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"@diegoaltoworks/talker","version":"0.11.0","keywords":["telephony","twilio","voice","sms","chatbot","chatter","twiml","conversational-ai","ivr","phone"],"author":{"name":"Diego Alto","email":"diego@diegoalto.works"},"license":"MIT","_id":"@diegoaltoworks/talker@0.11.0","maintainers":[{"name":"diegoaltoworks","email":"diego@diegoalto.co.uk"}],"homepage":"https://github.com/diegoaltoworks/talker#readme","bugs":{"url":"https://github.com/diegoaltoworks/talker/issues"},"dist":{"shasum":"d03e412acc40e7d725b97a647fdc3b0ac61bb6f5","tarball":"https://registry.npmjs.org/@diegoaltoworks/talker/-/talker-0.11.0.tgz","fileCount":155,"integrity":"sha512-8W2vWYpMrj8EsVNE7QIM3sLJMofmnx02oxd88fnGWAgEpXhqqtgR2QaQ4/0CnO2okIsI/PzXJ95L9chdWIsUjQ==","signatures":[{"sig":"MEUCIDhKjS/ex+EYV3Dic7/uMl2sNcEQQf7ES3Kq2u/KxdrBAiEAozEMgOBCV3oxbwIMSx/iV0NDsmhqmg7ehiaDH0dvMsk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@diegoaltoworks%2ftalker@0.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":263652},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./twilio":{"types":"./dist/adapters/twilio.d.ts","import":"./dist/adapters/twilio.mjs","require":"./dist/adapters/twilio.js"}},"gitHead":"3d94a62e4999b9ca9cb9fa3ca0d0c4ad286830e2","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check .","test":"bun test","build":"bun run build:clean && bun run build:types && bun run build:esm && bun run build:cjs","check":"bun run typecheck && bun run lint && bun run test && bun run security:check","format":"biome format --write .","prepare":"husky || true","lint:fix":"biome check --write .","build:cjs":"esbuild src/index.ts --bundle --format=cjs --outfile=dist/index.js --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@libsql/client --platform=node --target=node24","build:esm":"esbuild src/index.ts --bundle --format=esm --outfile=dist/index.mjs --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@libsql/client --platform=node --target=node24","test:unit":"bun test src/**/*.test.ts","typecheck":"tsc --noEmit","test:watch":"bun test --watch","build:clean":"rm -rf dist","build:types":"tsc --emitDeclarationOnly --outDir dist","test:coverage":"bun test --coverage","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run security:check && bun run build","security:audit":"bun audit","security:check":"bun audit --audit-level=moderate","test:integration":"bun test test/integration/**/*.test.ts","security:audit:fix":"bun update"},"_npmUser":{"name":"diegoaltoworks","email":"diego@diegoalto.co.uk"},"repository":{"url":"git+https://github.com/diegoaltoworks/talker.git","type":"git"},"_npmVersion":"11.9.0","description":"Telephony plugin for Chatter — adds voice call and SMS support via Twilio","directories":{},"lint-staged":{"*.ts":["bash -c 'tsc --noEmit --skipLibCheck'"],"*.{ts,js,json,md}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"hono":"^4.6.14","husky":"^9.1.7","openai":"^4.77.0","esbuild":"^0.27.4","@types/bun":"^1.1.12","typescript":"^5.6.3","@types/node":"^22.9.1","lint-staged":"^16.2.6","@biomejs/biome":"^1.9.4","@libsql/client":"^0.17.0","@diegoaltoworks/chatter":"^0.10.0"},"peerDependencies":{"hono":"^4.0.0 || ^5.0.0","openai":"^4.0.0","@libsql/client":">=0.6.0","@diegoaltoworks/chatter":"^0.1.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@libsql/client":{"optional":true},"@diegoaltoworks/chatter":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talker_0.11.0_1773572913302_0.7937994843811482","host":"s3://npm-registry-packages-npm-production"}},"0.12.0":{"name":"@diegoaltoworks/talker","version":"0.12.0","keywords":["telephony","twilio","voice","sms","chatbot","chatter","twiml","conversational-ai","ivr","phone"],"author":{"name":"Diego Alto","email":"diego@diegoalto.works"},"license":"MIT","_id":"@diegoaltoworks/talker@0.12.0","maintainers":[{"name":"diegoaltoworks","email":"diego@diegoalto.co.uk"}],"homepage":"https://github.com/diegoaltoworks/talker#readme","bugs":{"url":"https://github.com/diegoaltoworks/talker/issues"},"dist":{"shasum":"d5e2794302037afb4063c760821b95c015fd3d72","tarball":"https://registry.npmjs.org/@diegoaltoworks/talker/-/talker-0.12.0.tgz","fileCount":155,"integrity":"sha512-c/tpYQcCVy7bP4s1GP+LfzvqEvMuOkJRxB0K1CWH7lbvBRFwOUUkIqmGDybi3lW80p+hUdbFzEPsRoZeqy4cdQ==","signatures":[{"sig":"MEUCIQCyK9y85OMBLfvpfpxG2XnXcd0vTHrQhcKgKldF3BD5EgIgZexHJlohWWpWPzE5vCAxioY2DobPmqZZJUlU46ZBX3k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@diegoaltoworks%2ftalker@0.12.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":263652},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./twilio":{"types":"./dist/adapters/twilio.d.ts","import":"./dist/adapters/twilio.mjs","require":"./dist/adapters/twilio.js"}},"gitHead":"acba6bf17259b339f3704e96504f27a6a4b3f161","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check .","test":"bun test","build":"bun run build:clean && bun run build:types && bun run build:esm && bun run build:cjs","check":"bun run typecheck && bun run lint && bun run test && bun run security:check","format":"biome format --write .","prepare":"husky || true","lint:fix":"biome check --write .","build:cjs":"esbuild src/index.ts --bundle --format=cjs --outfile=dist/index.js --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@libsql/client --platform=node --target=node24","build:esm":"esbuild src/index.ts --bundle --format=esm --outfile=dist/index.mjs --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@libsql/client --platform=node --target=node24","test:unit":"bun test src/**/*.test.ts","typecheck":"tsc --noEmit","test:watch":"bun test --watch","build:clean":"rm -rf dist","build:types":"tsc --emitDeclarationOnly --outDir dist","test:coverage":"bun test --coverage","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run security:check && bun run build","security:audit":"bun audit","security:check":"bun audit --audit-level=moderate","test:integration":"bun test test/integration/**/*.test.ts","security:audit:fix":"bun update"},"_npmUser":{"name":"diegoaltoworks","email":"diego@diegoalto.co.uk"},"repository":{"url":"git+https://github.com/diegoaltoworks/talker.git","type":"git"},"_npmVersion":"11.9.0","description":"Telephony plugin for Chatter — adds voice call and SMS support via Twilio","directories":{},"lint-staged":{"*.ts":["bash -c 'tsc --noEmit --skipLibCheck'"],"*.{ts,js,json,md}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"hono":"^4.6.14","husky":"^9.1.7","openai":"^4.77.0","esbuild":"^0.27.4","@types/bun":"^1.1.12","typescript":"^5.6.3","@types/node":"^22.9.1","lint-staged":"^16.2.6","@biomejs/biome":"^1.9.4","@libsql/client":"^0.17.0","@diegoaltoworks/chatter":"^0.10.0"},"peerDependencies":{"hono":"^4.0.0 || ^5.0.0","openai":"^4.0.0","@libsql/client":">=0.6.0","@diegoaltoworks/chatter":"^0.1.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@libsql/client":{"optional":true},"@diegoaltoworks/chatter":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talker_0.12.0_1773576680757_0.6904097326186065","host":"s3://npm-registry-packages-npm-production"}},"0.13.0":{"name":"@diegoaltoworks/talker","version":"0.13.0","keywords":["telephony","twilio","voice","sms","chatbot","chatter","twiml","conversational-ai","ivr","phone"],"author":{"name":"Diego Alto","email":"diego@diegoalto.works"},"license":"MIT","_id":"@diegoaltoworks/talker@0.13.0","maintainers":[{"name":"diegoaltoworks","email":"diego@diegoalto.co.uk"}],"homepage":"https://github.com/diegoaltoworks/talker#readme","bugs":{"url":"https://github.com/diegoaltoworks/talker/issues"},"dist":{"shasum":"21e4af1604fa637a65b3c8b2dbd2d1152c8c13ac","tarball":"https://registry.npmjs.org/@diegoaltoworks/talker/-/talker-0.13.0.tgz","fileCount":155,"integrity":"sha512-eB0SSaQOhOQk5ny6cHkMuV1e/mjUKAXQ7h7oaUr3fBapAVIQHljwVKqfHxTLQmN27yKTqWbSZ3c6Cs5kj5QFQQ==","signatures":[{"sig":"MEUCICzda+fes4Ykm+ZNz+WUPO4Z09sCYF4CRoYnR/LqUmTCAiEA84hwLIyuKwVkOMIIYciFIbieKzBwA04CA23n7cYewbE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@diegoaltoworks%2ftalker@0.13.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":265217},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./twilio":{"types":"./dist/adapters/twilio.d.ts","import":"./dist/adapters/twilio.mjs","require":"./dist/adapters/twilio.js"}},"gitHead":"5f97c906429c3d0efa52ec978c4ed00287c41620","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check .","test":"bun test","build":"bun run build:clean && bun run build:types && bun run build:esm && bun run build:cjs","check":"bun run typecheck && bun run lint && bun run test && bun run security:check","format":"biome format --write .","prepare":"husky || true","lint:fix":"biome check --write .","build:cjs":"esbuild src/index.ts --bundle --format=cjs --outfile=dist/index.js --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@libsql/client --platform=node --target=node24","build:esm":"esbuild src/index.ts --bundle --format=esm --outfile=dist/index.mjs --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@libsql/client --platform=node --target=node24","test:unit":"bun test src/**/*.test.ts","typecheck":"tsc --noEmit","test:watch":"bun test --watch","build:clean":"rm -rf dist","build:types":"tsc --emitDeclarationOnly --outDir dist","test:coverage":"bun test --coverage","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run security:check && bun run build","security:audit":"bun audit","security:check":"bun audit --audit-level=moderate","test:integration":"bun test test/integration/**/*.test.ts","security:audit:fix":"bun update"},"_npmUser":{"name":"diegoaltoworks","email":"diego@diegoalto.co.uk"},"repository":{"url":"git+https://github.com/diegoaltoworks/talker.git","type":"git"},"_npmVersion":"11.9.0","description":"Telephony plugin for Chatter — adds voice call and SMS support via Twilio","directories":{},"lint-staged":{"*.ts":["bash -c 'tsc --noEmit --skipLibCheck'"],"*.{ts,js,json,md}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"hono":"^4.6.14","husky":"^9.1.7","openai":"^4.77.0","esbuild":"^0.27.4","@types/bun":"^1.1.12","typescript":"^5.6.3","@types/node":"^22.9.1","lint-staged":"^16.2.6","@biomejs/biome":"^1.9.4","@libsql/client":"^0.17.0","@diegoaltoworks/chatter":"^0.10.0"},"peerDependencies":{"hono":"^4.0.0 || ^5.0.0","openai":"^4.0.0","@libsql/client":">=0.6.0","@diegoaltoworks/chatter":"^0.1.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@libsql/client":{"optional":true},"@diegoaltoworks/chatter":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talker_0.13.0_1773586105413_0.1385057061305346","host":"s3://npm-registry-packages-npm-production"}},"0.14.0":{"name":"@diegoaltoworks/talker","version":"0.14.0","keywords":["telephony","twilio","voice","sms","chatbot","chatter","twiml","conversational-ai","ivr","phone"],"author":{"name":"Diego Alto","email":"diego@diegoalto.works"},"license":"MIT","_id":"@diegoaltoworks/talker@0.14.0","maintainers":[{"name":"diegoaltoworks","email":"diego@diegoalto.co.uk"}],"homepage":"https://github.com/diegoaltoworks/talker#readme","bugs":{"url":"https://github.com/diegoaltoworks/talker/issues"},"dist":{"shasum":"2b0df0273410139f25ea6145023dba4b1b81d51e","tarball":"https://registry.npmjs.org/@diegoaltoworks/talker/-/talker-0.14.0.tgz","fileCount":155,"integrity":"sha512-78MiaEjFhwmtQSwcVYcljbiVR3Z2jDIfIvz+AsecASyfb1W20F48y9a3bzJVKb0QaPehpWOltOeBEHRTOQ3ZzA==","signatures":[{"sig":"MEQCIF5u/cDBJoL3SLxdYvkRVsWRaO3ENeHd2P9ESscPKYmcAiBqFSLJ1GPNgIiUNPrm6dCAvp43l92Rz1VEbv+FwZ15Uw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@diegoaltoworks%2ftalker@0.14.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":265217},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./twilio":{"types":"./dist/adapters/twilio.d.ts","import":"./dist/adapters/twilio.mjs","require":"./dist/adapters/twilio.js"}},"gitHead":"9fd93335341a13aed0e9a7b18c58b1ce72c466de","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check .","test":"bun test","build":"bun run build:clean && bun run build:types && bun run build:esm && bun run build:cjs","check":"bun run typecheck && bun run lint && bun run test && bun run security:check","format":"biome format --write .","prepare":"husky || true","lint:fix":"biome check --write .","build:cjs":"esbuild src/index.ts --bundle --format=cjs --outfile=dist/index.js --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@libsql/client --platform=node --target=node24","build:esm":"esbuild src/index.ts --bundle --format=esm --outfile=dist/index.mjs --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@libsql/client --platform=node --target=node24","test:unit":"bun test src/**/*.test.ts","typecheck":"tsc --noEmit","test:watch":"bun test --watch","build:clean":"rm -rf dist","build:types":"tsc --emitDeclarationOnly --outDir dist","test:coverage":"bun test --coverage","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run security:check && bun run build","security:audit":"bun audit","security:check":"bun audit --audit-level=moderate","test:integration":"bun test test/integration/**/*.test.ts","security:audit:fix":"bun update"},"_npmUser":{"name":"diegoaltoworks","email":"diego@diegoalto.co.uk"},"repository":{"url":"git+https://github.com/diegoaltoworks/talker.git","type":"git"},"_npmVersion":"11.9.0","description":"Telephony plugin for Chatter — adds voice call and SMS support via Twilio","directories":{},"lint-staged":{"*.ts":["bash -c 'tsc --noEmit --skipLibCheck'"],"*.{ts,js,json,md}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"hono":"^4.6.14","husky":"^9.1.7","openai":"^4.77.0","esbuild":"^0.27.4","@types/bun":"^1.1.12","typescript":"^5.6.3","@types/node":"^22.9.1","lint-staged":"^16.2.6","@biomejs/biome":"^1.9.4","@libsql/client":"^0.17.0","@diegoaltoworks/chatter":"^0.10.0"},"peerDependencies":{"hono":"^4.0.0 || ^5.0.0","openai":"^4.0.0","@libsql/client":">=0.6.0","@diegoaltoworks/chatter":"^0.1.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@libsql/client":{"optional":true},"@diegoaltoworks/chatter":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talker_0.14.0_1773586397567_0.5313995157655833","host":"s3://npm-registry-packages-npm-production"}},"0.15.0":{"name":"@diegoaltoworks/talker","version":"0.15.0","keywords":["telephony","twilio","voice","sms","chatbot","chatter","twiml","conversational-ai","ivr","phone"],"author":{"name":"Diego Alto","email":"diego@diegoalto.works"},"license":"MIT","_id":"@diegoaltoworks/talker@0.15.0","maintainers":[{"name":"diegoaltoworks","email":"diego@diegoalto.co.uk"}],"homepage":"https://github.com/diegoaltoworks/talker#readme","bugs":{"url":"https://github.com/diegoaltoworks/talker/issues"},"dist":{"shasum":"6f402852f141e5a35c1c97cace56baea4386fe49","tarball":"https://registry.npmjs.org/@diegoaltoworks/talker/-/talker-0.15.0.tgz","fileCount":165,"integrity":"sha512-/ZFF0iT/5Kp5Xg574q0yrh1d4DfTcCtYzXxM5KURxnyAfyRA9AJlrCjmbFac2Nyp6D3t+3zxwTXhXyTW5xi68g==","signatures":[{"sig":"MEYCIQCXchLdTXlPfJUteFXoXOS7amdsJ12FPkZ4Fof5crOT7AIhAL/+qygADYlvfsLh0+bwC4KJeil4BI1SoJGj09cq0prP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@diegoaltoworks%2ftalker@0.15.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":284939},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./twilio":{"types":"./dist/adapters/twilio.d.ts","import":"./dist/adapters/twilio.mjs","require":"./dist/adapters/twilio.js"}},"gitHead":"24733eaaad64e9b83256766c1a5319a182efc798","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check .","test":"bun test","build":"bun run build:clean && bun run build:types && bun run build:esm && bun run build:cjs","check":"bun run typecheck && bun run lint && bun run test && bun run security:check","format":"biome format --write .","prepare":"husky || true","lint:fix":"biome check --write .","build:cjs":"esbuild src/index.ts --bundle --format=cjs --outfile=dist/index.js --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@libsql/client --platform=node --target=node24","build:esm":"esbuild src/index.ts --bundle --format=esm --outfile=dist/index.mjs --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@libsql/client --platform=node --target=node24","test:unit":"bun test src/**/*.test.ts","typecheck":"tsc --noEmit","test:watch":"bun test --watch","build:clean":"rm -rf dist","build:types":"tsc --emitDeclarationOnly --outDir dist","test:coverage":"bun test --coverage","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run security:check && bun run build","security:audit":"bun audit","security:check":"bun audit --audit-level=moderate","test:integration":"bun test test/integration/**/*.test.ts","security:audit:fix":"bun update"},"_npmUser":{"name":"diegoaltoworks","email":"diego@diegoalto.co.uk"},"repository":{"url":"git+https://github.com/diegoaltoworks/talker.git","type":"git"},"_npmVersion":"11.9.0","description":"Telephony plugin for Chatter — adds voice call and SMS support via Twilio","directories":{},"lint-staged":{"*.ts":["bash -c 'tsc --noEmit --skipLibCheck'"],"*.{ts,js,json,md}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"hono":"^4.6.14","husky":"^9.1.7","openai":"^4.77.0","esbuild":"^0.27.4","@types/bun":"^1.1.12","typescript":"^5.6.3","@types/node":"^22.9.1","lint-staged":"^16.2.6","@biomejs/biome":"^1.9.4","@libsql/client":"^0.17.0","@diegoaltoworks/chatter":"^0.10.0"},"peerDependencies":{"hono":"^4.0.0 || ^5.0.0","openai":"^4.0.0","@libsql/client":">=0.6.0","@diegoaltoworks/chatter":"^0.1.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@libsql/client":{"optional":true},"@diegoaltoworks/chatter":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talker_0.15.0_1773588363285_0.7551194064255369","host":"s3://npm-registry-packages-npm-production"}},"0.22.0":{"name":"@diegoaltoworks/talker","version":"0.22.0","keywords":["telephony","twilio","voice","sms","chatbot","chatter","twiml","conversational-ai","ivr","phone"],"author":{"name":"Diego Alto","email":"diego@diegoalto.works"},"license":"MIT","_id":"@diegoaltoworks/talker@0.22.0","maintainers":[{"name":"diegoaltoworks","email":"diego@diegoalto.co.uk"}],"homepage":"https://github.com/diegoaltoworks/talker#readme","bugs":{"url":"https://github.com/diegoaltoworks/talker/issues"},"dist":{"shasum":"c3700cbf27c2f1e9b150807c795c291795d10487","tarball":"https://registry.npmjs.org/@diegoaltoworks/talker/-/talker-0.22.0.tgz","fileCount":171,"integrity":"sha512-ywDo0kfHcEZRX1tw1F3VQJ+IgghTSTLSp912bvxyCQSIfhT1Bh9AijR0kC3JcdW1sekMdjgBYDtKMlV6MK9ywA==","signatures":[{"sig":"MEUCICg8XJVtgG3yxOjULnq1T3jwywVRzFBJhfEuelSNY/wbAiEAx/qy2WWs+F/YvA1YjZxnUFNOwu5Mv2rdl5kI/9ybMKU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@diegoaltoworks%2ftalker@0.22.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":290570},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./twilio":{"types":"./dist/adapters/twilio.d.ts","import":"./dist/adapters/twilio.mjs","require":"./dist/adapters/twilio.js"}},"gitHead":"d7a0af4e724d4d29e0e50fa2bc6d26657219c7a9","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check .","test":"bun test","build":"bun run build:clean && bun run build:types && bun run build:esm && bun run build:cjs","check":"bun run typecheck && bun run lint && bun run test && bun run security:check","format":"biome format --write .","prepare":"(husky || true) && bun run build","lint:fix":"biome check --write .","build:cjs":"esbuild src/index.ts --bundle --format=cjs --outfile=dist/index.js --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@libsql/client --platform=node --target=node24","build:esm":"esbuild src/index.ts --bundle --format=esm --outfile=dist/index.mjs --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@libsql/client --platform=node --target=node24","test:unit":"bun test src/**/*.test.ts","typecheck":"tsc --noEmit","test:watch":"bun test --watch","build:clean":"rm -rf dist","build:types":"tsc --emitDeclarationOnly --outDir dist","test:coverage":"bun test --coverage","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run security:check && bun run build","security:audit":"bun audit","security:check":"bun audit --audit-level=moderate","test:integration":"bun test test/integration/**/*.test.ts","security:audit:fix":"bun update"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c92b6648-5d3b-4896-b37f-9f8c66acf00c"}},"overrides":{"qs":"^6.15.3","ws":"^8.21.1","yaml":"^2.8.3","fast-uri":"^3.1.3","form-data":"^4.0.6","picomatch":"^4.0.4","ip-address":"^10.4.0","path-to-regexp":"^8.4.0","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/diegoaltoworks/talker.git","type":"git"},"_npmVersion":"11.16.0","description":"Telephony plugin for Chatter — adds voice call and SMS support via Twilio","directories":{},"lint-staged":{"*.ts":["bash -c 'tsc --noEmit --skipLibCheck'"],"*.{ts,js,json,md}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"hono":"^4.13.0","husky":"^9.1.7","openai":"^7.1.0","esbuild":"^0.28.0","@types/bun":"^1.1.12","typescript":"^7.0.2","@types/node":"^26.1.2","lint-staged":"^17.0.8","@biomejs/biome":"^2.5.6","@libsql/client":"^0.17.0","@diegoaltoworks/chatter":"^0.18.0"},"peerDependencies":{"hono":"^4.12.34 || ^5.0.0","openai":"^4.0.0 || ^7.1.0","@libsql/client":">=0.6.0","@diegoaltoworks/chatter":"^0.18.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@libsql/client":{"optional":true},"@diegoaltoworks/chatter":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talker_0.22.0_1785830042437_0.8800772228564717","host":"s3://npm-registry-packages-npm-production"}},"0.23.0":{"name":"@diegoaltoworks/talker","version":"0.23.0","keywords":["telephony","twilio","voice","sms","chatbot","chatter","twiml","conversational-ai","ivr","phone"],"author":{"name":"Diego Alto","email":"diego@diegoalto.works"},"license":"MIT","_id":"@diegoaltoworks/talker@0.23.0","maintainers":[{"name":"diegoaltoworks","email":"diego@diegoalto.co.uk"}],"homepage":"https://github.com/diegoaltoworks/talker#readme","bugs":{"url":"https://github.com/diegoaltoworks/talker/issues"},"dist":{"shasum":"e3bd78d82502248f7ed230ce881ed23fbe0b8a31","tarball":"https://registry.npmjs.org/@diegoaltoworks/talker/-/talker-0.23.0.tgz","fileCount":171,"integrity":"sha512-CG52mgMYfjvYvtMO7iA9UX28JxKUNg9Asb46IY58H0mGPKBs1xv7nWRIbVZeeZiWAzoRUp7zu0qaP1G8S9TmuQ==","signatures":[{"sig":"MEYCIQDxO8P6Uvab/0m6TIbK0GEC9SXs9Iw5waPH931B6UF/9AIhANuKg/PdjyMAWXNwTZHhSDmsKdwBWIjSaYjAs56nPptI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@diegoaltoworks%2ftalker@0.23.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":290570},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./twilio":{"types":"./dist/adapters/twilio.d.ts","import":"./dist/adapters/twilio.mjs","require":"./dist/adapters/twilio.js"}},"gitHead":"415499ee59b705fd9fc449bd65db865713b6b8c3","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check .","test":"bun test","build":"bun run build:clean && bun run build:types && bun run build:esm && bun run build:cjs","check":"bun run typecheck && bun run lint && bun run test && bun run security:check","format":"biome format --write .","prepare":"(husky || true) && bun run build","lint:fix":"biome check --write .","build:cjs":"esbuild src/index.ts --bundle --format=cjs --outfile=dist/index.js --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@libsql/client --platform=node --target=node24","build:esm":"esbuild src/index.ts --bundle --format=esm --outfile=dist/index.mjs --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@libsql/client --platform=node --target=node24","test:unit":"bun test src/**/*.test.ts","typecheck":"tsc --noEmit","test:watch":"bun test --watch","build:clean":"rm -rf dist","build:types":"tsc --emitDeclarationOnly --outDir dist","test:coverage":"bun test --coverage","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run security:check && bun run build","security:audit":"bun audit","security:check":"bun audit --audit-level=moderate","test:integration":"bun test test/integration/**/*.test.ts","security:audit:fix":"bun update"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c92b6648-5d3b-4896-b37f-9f8c66acf00c"}},"overrides":{"qs":"^6.15.3","ws":"^8.21.1","yaml":"^2.8.3","fast-uri":"^3.1.3","form-data":"^4.0.6","picomatch":"^4.0.4","ip-address":"^10.4.0","path-to-regexp":"^8.4.0","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/diegoaltoworks/talker.git","type":"git"},"_npmVersion":"12.0.2","description":"Telephony plugin for Chatter — adds voice call and SMS support via Twilio","directories":{},"lint-staged":{"*.ts":["bash -c 'tsc --noEmit --skipLibCheck'"],"*.{ts,js,json,md}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"hono":"^4.13.0","husky":"^9.1.7","openai":"^7.1.0","esbuild":"^0.28.0","@types/bun":"^1.1.12","typescript":"^7.0.2","@types/node":"^26.1.2","lint-staged":"^17.0.8","@biomejs/biome":"^2.5.6","@libsql/client":"^0.17.0","@diegoaltoworks/chatter":"^0.18.0"},"peerDependencies":{"hono":"^4.12.34 || ^5.0.0","openai":"^4.0.0 || ^7.1.0","@libsql/client":">=0.6.0","@diegoaltoworks/chatter":"^0.18.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@libsql/client":{"optional":true},"@diegoaltoworks/chatter":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talker_0.23.0_1785830109149_0.4068700460225805","host":"s3://npm-registry-packages-npm-production"}},"0.24.0":{"name":"@diegoaltoworks/talker","version":"0.24.0","keywords":["telephony","twilio","voice","sms","chatbot","chatter","twiml","conversational-ai","ivr","phone"],"author":{"name":"Diego Alto","email":"diego@diegoalto.works"},"license":"MIT","_id":"@diegoaltoworks/talker@0.24.0","maintainers":[{"name":"diegoaltoworks","email":"diego@diegoalto.co.uk"}],"homepage":"https://github.com/diegoaltoworks/talker#readme","bugs":{"url":"https://github.com/diegoaltoworks/talker/issues"},"dist":{"shasum":"4a849ce2082cbb90ede5b935f8550d2732a24524","tarball":"https://registry.npmjs.org/@diegoaltoworks/talker/-/talker-0.24.0.tgz","fileCount":171,"integrity":"sha512-iM6iJF0A4LGZKjOwe9oVjbjJJNdhpUG/LrT09KD/T9Kqspp6U6D+B/96MNGJ5025dGLv9FJkPcMxS5SLDnJ/+A==","signatures":[{"sig":"MEUCIDdUuEqivEEjk7xEmAIcPZpNNkdWaxRcJO1EEJrtaaMkAiEA0zjpBTMeJd7YUt2HIh/vgAUw7H7+DJDrYgnLnXxfhKI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@diegoaltoworks%2ftalker@0.24.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":290570},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./twilio":{"types":"./dist/adapters/twilio.d.ts","import":"./dist/adapters/twilio.mjs","require":"./dist/adapters/twilio.js"}},"gitHead":"95ef01a2f7d878764c36a0d5fa4393850251f63b","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check .","test":"bun test","build":"bun run build:clean && bun run build:types && bun run build:esm && bun run build:cjs","check":"bun run typecheck && bun run lint && bun run test && bun run security:check","format":"biome format --write .","prepare":"(husky || true) && bun run build","lint:fix":"biome check --write .","build:cjs":"esbuild src/index.ts --bundle --format=cjs --outfile=dist/index.js --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@libsql/client --platform=node --target=node24","build:esm":"esbuild src/index.ts --bundle --format=esm --outfile=dist/index.mjs --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@libsql/client --platform=node --target=node24","test:unit":"bun test src/**/*.test.ts","typecheck":"tsc --noEmit","test:watch":"bun test --watch","build:clean":"rm -rf dist","build:types":"tsc --emitDeclarationOnly --outDir dist","test:coverage":"bun test --coverage","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run security:check && bun run build","security:audit":"bun audit","security:check":"bun audit --audit-level=moderate","test:integration":"bun test test/integration/**/*.test.ts","security:audit:fix":"bun update"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c92b6648-5d3b-4896-b37f-9f8c66acf00c"}},"overrides":{"qs":"^6.15.3","ws":"^8.21.1","yaml":"^2.8.3","fast-uri":"^3.1.3","form-data":"^4.0.6","picomatch":"^4.0.4","ip-address":"^10.4.0","path-to-regexp":"^8.4.0","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/diegoaltoworks/talker.git","type":"git"},"_npmVersion":"12.0.2","description":"Telephony plugin for Chatter — adds voice call and SMS support via Twilio","directories":{},"lint-staged":{"*.ts":["bash -c 'tsc --noEmit --skipLibCheck'"],"*.{ts,js,json,md}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"hono":"^4.13.0","husky":"^9.1.7","openai":"^7.1.0","esbuild":"^0.28.0","@types/bun":"^1.1.12","typescript":"^7.0.2","@types/node":"^26.1.2","lint-staged":"^17.0.8","@biomejs/biome":"^2.5.6","@libsql/client":"^0.17.0","@diegoaltoworks/chatter":"^0.20.0"},"peerDependencies":{"hono":"^4.12.34 || ^5.0.0","openai":"^4.0.0 || ^7.1.0","@libsql/client":">=0.6.0","@diegoaltoworks/chatter":"^0.20.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@libsql/client":{"optional":true},"@diegoaltoworks/chatter":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talker_0.24.0_1786348161005_0.48645754487722415","host":"s3://npm-registry-packages-npm-production"}},"0.25.0":{"name":"@diegoaltoworks/talker","version":"0.25.0","keywords":["telephony","twilio","voice","sms","chatbot","chatter","twiml","conversational-ai","ivr","phone"],"author":{"name":"Diego Alto","email":"diego@diegoalto.works"},"license":"MIT","_id":"@diegoaltoworks/talker@0.25.0","maintainers":[{"name":"diegoaltoworks","email":"diego@diegoalto.co.uk"}],"homepage":"https://github.com/diegoaltoworks/talker#readme","bugs":{"url":"https://github.com/diegoaltoworks/talker/issues"},"dist":{"shasum":"1e8413589a6b4be4f6546c2f572ae31198d39d07","tarball":"https://registry.npmjs.org/@diegoaltoworks/talker/-/talker-0.25.0.tgz","fileCount":193,"integrity":"sha512-RqWYzq2DRBReAiuNmCJ2F1vmZAherARpiBFPH/u2AwWD6dt7qjD1a1GDq8ud53XKiyh6wNi0l79dzffdAlN8bg==","signatures":[{"sig":"MEYCIQDROPTMeuOLuuiwZLuT8jCti4WtFPwIIkJ5SdwXrWPJgQIhAMO8mxYmt6mKjm+YaKJ1lDzplMlPQQ2Kz34wfXQINE1V","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@diegoaltoworks%2ftalker@0.25.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":326879},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./twilio":{"types":"./dist/adapters/twilio.d.ts","import":"./dist/adapters/twilio.mjs","require":"./dist/adapters/twilio.js"}},"gitHead":"e10dd580593c16a6546c988cdb70dc9d2591ddb7","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check .","test":"bun test","build":"bun run build:clean && bun run build:types && bun run build:esm && bun run build:cjs","check":"bun run typecheck && bun run lint && bun run test && bun run security:check","format":"biome format --write .","prepare":"(husky || true) && bun run build","lint:fix":"biome check --write .","build:cjs":"esbuild src/index.ts --bundle --format=cjs --outfile=dist/index.js --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@libsql/client --platform=node --target=node24","build:esm":"esbuild src/index.ts --bundle --format=esm --outfile=dist/index.mjs --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@libsql/client --platform=node --target=node24","test:unit":"bun test src/**/*.test.ts","typecheck":"tsc --noEmit","test:watch":"bun test --watch","build:clean":"rm -rf dist","build:types":"tsc --emitDeclarationOnly --outDir dist","test:coverage":"bun test --coverage","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run security:check && bun run build","security:audit":"bun audit","security:check":"bun audit --audit-level=moderate","test:integration":"bun test test/integration/**/*.test.ts","security:audit:fix":"bun update"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c92b6648-5d3b-4896-b37f-9f8c66acf00c"}},"overrides":{"qs":"^6.15.3","ws":"^8.21.1","yaml":"^2.8.3","fast-uri":"^3.1.3","form-data":"^4.0.6","picomatch":"^4.0.4","ip-address":"^10.4.0","path-to-regexp":"^8.4.0","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/diegoaltoworks/talker.git","type":"git"},"_npmVersion":"12.0.2","description":"Telephony plugin for Chatter — adds voice call and SMS support via Twilio","directories":{},"lint-staged":{"*.ts":["bash -c 'tsc --noEmit --skipLibCheck'"],"*.{ts,js,json,md}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"hono":"^4.13.0","husky":"^9.1.7","openai":"^7.1.0","esbuild":"^0.28.0","@types/bun":"^1.1.12","typescript":"^7.0.2","@types/node":"^26.1.2","lint-staged":"^17.0.8","@biomejs/biome":"^2.5.6","@libsql/client":"^0.17.0","@diegoaltoworks/chatter":"^0.20.0"},"peerDependencies":{"hono":"^4.12.34 || ^5.0.0","openai":"^4.0.0 || ^7.1.0","@libsql/client":">=0.6.0","@diegoaltoworks/chatter":"^0.20.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@libsql/client":{"optional":true},"@diegoaltoworks/chatter":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talker_0.25.0_1786693628895_0.16593663238103828","host":"s3://npm-registry-packages-npm-production"}},"0.26.0":{"name":"@diegoaltoworks/talker","version":"0.26.0","keywords":["telephony","twilio","voice","sms","chatbot","chatter","twiml","conversational-ai","ivr","phone"],"author":{"name":"Diego Alto","email":"diego@diegoalto.works"},"license":"MIT","_id":"@diegoaltoworks/talker@0.26.0","maintainers":[{"name":"diegoaltoworks","email":"diego@diegoalto.co.uk"}],"homepage":"https://github.com/diegoaltoworks/talker#readme","bugs":{"url":"https://github.com/diegoaltoworks/talker/issues"},"dist":{"shasum":"1589eba0cf9050e5311f8a6fe02b66976de21803","tarball":"https://registry.npmjs.org/@diegoaltoworks/talker/-/talker-0.26.0.tgz","fileCount":197,"integrity":"sha512-ig43dcVp1lqyUPDVhp3xP4GQhooDoXng0r2ZfNqTuVxc40gy9cdXAaql0alDvTM+7fUiKU6BOlkrfwI67nvuWw==","signatures":[{"sig":"MEUCIQCOywgB2/o+shwtgTi8vkE6gipqt+mtM+ZZhWUIgLzo7QIgfKuBMIXHee/uAkHqxTVbn2J5p/Z7Df2V6aXR5JPPyRA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@diegoaltoworks%2ftalker@0.26.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":342209},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./twilio":{"types":"./dist/adapters/twilio.d.ts","import":"./dist/adapters/twilio.mjs","require":"./dist/adapters/twilio.js"}},"gitHead":"bdd8e2f4c61ae6b88dce17f23c0b91bd9af06cd7","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check .","test":"bun test","build":"bun run build:clean && bun run build:types && bun run build:esm && bun run build:cjs","check":"bun run typecheck && bun run lint && bun run test && bun run security:check","format":"biome format --write .","prepare":"(husky || true) && bun run build","lint:fix":"biome check --write .","build:cjs":"esbuild src/index.ts --bundle --format=cjs --outfile=dist/index.js --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@libsql/client --platform=node --target=node24","build:esm":"esbuild src/index.ts --bundle --format=esm --outfile=dist/index.mjs --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@libsql/client --platform=node --target=node24","test:unit":"bun test src/**/*.test.ts","typecheck":"tsc --noEmit","test:watch":"bun test --watch","build:clean":"rm -rf dist","build:types":"tsc --emitDeclarationOnly --outDir dist","test:coverage":"bun test --coverage","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run security:check && bun run build","security:audit":"bun audit","security:check":"bun audit --audit-level=moderate","test:integration":"bun test test/integration/**/*.test.ts","security:audit:fix":"bun update"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c92b6648-5d3b-4896-b37f-9f8c66acf00c"}},"overrides":{"qs":"^6.15.3","ws":"^8.21.1","yaml":"^2.8.3","fast-uri":"^3.1.3","form-data":"^4.0.6","picomatch":"^4.0.4","ip-address":"^10.4.0","path-to-regexp":"^8.4.0","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/diegoaltoworks/talker.git","type":"git"},"_npmVersion":"12.0.2","description":"Telephony plugin for Chatter — adds voice call and SMS support via Twilio","directories":{},"lint-staged":{"*.ts":["bash -c 'tsc --noEmit --skipLibCheck'"],"*.{ts,js,json,md}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"hono":"^4.13.0","husky":"^9.1.7","openai":"^7.1.0","esbuild":"^0.28.0","@types/bun":"^1.1.12","typescript":"^7.0.2","@types/node":"^26.1.2","lint-staged":"^17.0.8","@biomejs/biome":"^2.5.6","@libsql/client":"^0.17.0","@diegoaltoworks/chatter":"^0.20.0"},"peerDependencies":{"hono":"^4.12.34 || ^5.0.0","openai":"^4.0.0 || ^7.1.0","@libsql/client":">=0.6.0","@diegoaltoworks/chatter":"^0.20.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@libsql/client":{"optional":true},"@diegoaltoworks/chatter":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talker_0.26.0_1786694375760_0.7613526895454983","host":"s3://npm-registry-packages-npm-production"}},"0.27.0":{"name":"@diegoaltoworks/talker","version":"0.27.0","keywords":["telephony","twilio","voice","sms","chatbot","chatter","twiml","conversational-ai","ivr","phone"],"author":{"name":"Diego Alto","email":"diego@diegoalto.works"},"license":"MIT","_id":"@diegoaltoworks/talker@0.27.0","maintainers":[{"name":"diegoaltoworks","email":"diego@diegoalto.co.uk"}],"homepage":"https://github.com/diegoaltoworks/talker#readme","bugs":{"url":"https://github.com/diegoaltoworks/talker/issues"},"dist":{"shasum":"538f5928441300e57575cab12f0a03fb997c9233","tarball":"https://registry.npmjs.org/@diegoaltoworks/talker/-/talker-0.27.0.tgz","fileCount":197,"integrity":"sha512-xFfL351TLaSXLvHbj/Upk8H04ibLHpuzc6rzNBxS0Vab12PwG6jnPFFKYXKpFfGpuKG/smfAGUHVhkMx7hBzTQ==","signatures":[{"sig":"MEUCIHuL87S/fXO0+1Zb3P7SLjwTQc5b8DwXlqkSENAO3WaKAiEArb7MK6cgt4zzzPPXb+kW7brrRZPOFqwy6ELsla73FhM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@diegoaltoworks%2ftalker@0.27.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":342562},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./twilio":{"types":"./dist/adapters/twilio.d.ts","import":"./dist/adapters/twilio.mjs","require":"./dist/adapters/twilio.js"}},"gitHead":"22d874d7a104e5343c7f83068c4e91dd18b046c4","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check .","test":"bun test","work":"bun ./.claude/work.ts run","build":"bun run build:clean && bun run build:types && bun run build:esm && bun run build:cjs","check":"bun run typecheck && bun run lint && bun run test && bun run security:check","format":"biome format --write .","prepare":"(husky || true) && bun run build","lint:fix":"biome check --write .","build:cjs":"esbuild src/index.ts --bundle --format=cjs --outfile=dist/index.js --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@libsql/client --platform=node --target=node24","build:esm":"esbuild src/index.ts --bundle --format=esm --outfile=dist/index.mjs --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@libsql/client --platform=node --target=node24","test:unit":"bun test src/**/*.test.ts","typecheck":"tsc --noEmit","work:halt":"bun ./.claude/work.ts halt","test:watch":"bun test --watch","work:reset":"bun ./.claude/work.ts reset","work:watch":"bun ./.claude/work.ts watch","build:clean":"rm -rf dist","build:types":"tsc --emitDeclarationOnly --outDir dist","work:resume":"bun ./.claude/work.ts resume","work:status":"bun ./.claude/work.ts status","test:coverage":"bun test --coverage","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run security:check && bun run build","security:audit":"bun audit","security:check":"bun audit --audit-level=moderate","work:continuous":"bun ./.claude/work.ts run --continuous","test:integration":"bun test test/integration/**/*.test.ts","security:audit:fix":"bun update"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c92b6648-5d3b-4896-b37f-9f8c66acf00c"}},"overrides":{"qs":"^6.15.3","ws":"^8.21.1","yaml":"^2.8.3","fast-uri":"^3.1.3","form-data":"^4.0.6","picomatch":"^4.0.4","ip-address":"^10.4.0","path-to-regexp":"^8.4.0","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/diegoaltoworks/talker.git","type":"git"},"_npmVersion":"12.0.2","description":"Telephony plugin for Chatter — adds voice call and SMS support via Twilio","directories":{},"lint-staged":{"*.ts":["bash -c 'tsc --noEmit --skipLibCheck'"],"*.{ts,js,json,md}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"hono":"^4.13.0","husky":"^9.1.7","openai":"^7.1.0","esbuild":"^0.28.0","@types/bun":"^1.1.12","typescript":"^7.0.2","@types/node":"^26.1.2","lint-staged":"^17.0.8","@biomejs/biome":"^2.5.6","@libsql/client":"^0.17.0","@diegoaltoworks/chatter":"^0.20.0"},"peerDependencies":{"hono":"^4.12.34 || ^5.0.0","openai":"^4.0.0 || ^7.1.0","@libsql/client":">=0.6.0","@diegoaltoworks/chatter":"^0.20.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@libsql/client":{"optional":true},"@diegoaltoworks/chatter":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talker_0.27.0_1786694477756_0.0703634507301838","host":"s3://npm-registry-packages-npm-production"}},"0.28.0":{"name":"@diegoaltoworks/talker","version":"0.28.0","keywords":["telephony","twilio","voice","sms","chatbot","chatter","twiml","conversational-ai","ivr","phone"],"author":{"name":"Diego Alto","email":"diego@diegoalto.works"},"license":"MIT","_id":"@diegoaltoworks/talker@0.28.0","maintainers":[{"name":"diegoaltoworks","email":"diego@diegoalto.co.uk"}],"homepage":"https://github.com/diegoaltoworks/talker#readme","bugs":{"url":"https://github.com/diegoaltoworks/talker/issues"},"dist":{"shasum":"0f9c81a0dedfb9f9377e8dbaca4ad227ba5b3ece","tarball":"https://registry.npmjs.org/@diegoaltoworks/talker/-/talker-0.28.0.tgz","fileCount":201,"integrity":"sha512-21C2n9xs/Mudj1/7kjEuAKjj5q6GTBlpNLDBZ3f+ZUst2rnXUPUq8fVP3qHhYqhGXxAtTImY1Se1Wk+pNelzKg==","signatures":[{"sig":"MEQCIEDrby3KFKf18xrDDc1v8WGXi3bv+mfnN+jBvwZO/RNSAiAWRlc/ZRy70ctgSo3nmOA2WZmiVtmnmp53WD98o6OUew==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@diegoaltoworks%2ftalker@0.28.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":355776},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./twilio":{"types":"./dist/adapters/twilio.d.ts","import":"./dist/adapters/twilio.mjs","require":"./dist/adapters/twilio.js"}},"gitHead":"2cabf06bb0d250c46e3340c5bd9131ab8990dd0b","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check .","test":"bun test","work":"bun ./.claude/work.ts run","build":"bun run build:clean && bun run build:types && bun run build:esm && bun run build:cjs","check":"bun run typecheck && bun run lint && bun run test && bun run security:check","format":"biome format --write .","prepare":"(husky || true) && bun run build","lint:fix":"biome check --write .","build:cjs":"esbuild src/index.ts --bundle --format=cjs --outfile=dist/index.js --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@libsql/client --platform=node --target=node24","build:esm":"esbuild src/index.ts --bundle --format=esm --outfile=dist/index.mjs --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@libsql/client --platform=node --target=node24","test:unit":"bun test src/**/*.test.ts","typecheck":"tsc --noEmit","work:halt":"bun ./.claude/work.ts halt","test:watch":"bun test --watch","work:reset":"bun ./.claude/work.ts reset","work:watch":"bun ./.claude/work.ts watch","build:clean":"rm -rf dist","build:types":"tsc --emitDeclarationOnly --outDir dist","work:resume":"bun ./.claude/work.ts resume","work:status":"bun ./.claude/work.ts status","test:coverage":"bun test --coverage","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run security:check && bun run build","security:audit":"bun audit","security:check":"bun audit --audit-level=moderate","work:continuous":"bun ./.claude/work.ts run --continuous","test:integration":"bun test test/integration/**/*.test.ts","security:audit:fix":"bun update"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c92b6648-5d3b-4896-b37f-9f8c66acf00c"}},"overrides":{"qs":"^6.15.3","ws":"^8.21.1","yaml":"^2.8.3","fast-uri":"^3.1.3","form-data":"^4.0.6","picomatch":"^4.0.4","ip-address":"^10.4.0","path-to-regexp":"^8.4.0","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/diegoaltoworks/talker.git","type":"git"},"_npmVersion":"12.0.2","description":"Telephony plugin for Chatter — adds voice call and SMS support via Twilio","directories":{},"lint-staged":{"*.ts":["bash -c 'tsc --noEmit --skipLibCheck'"],"*.{ts,js,json,md}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"hono":"^4.13.0","husky":"^9.1.7","openai":"^7.1.0","esbuild":"^0.28.0","@types/bun":"^1.1.12","typescript":"^7.0.2","@types/node":"^26.1.2","lint-staged":"^17.0.8","@biomejs/biome":"^2.5.6","@libsql/client":"^0.17.0","@diegoaltoworks/chatter":"^0.20.0"},"peerDependencies":{"hono":"^4.12.34 || ^5.0.0","openai":"^4.0.0 || ^7.1.0","@libsql/client":">=0.6.0","@diegoaltoworks/chatter":"^0.20.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@libsql/client":{"optional":true},"@diegoaltoworks/chatter":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talker_0.28.0_1786695646503_0.10622231492146295","host":"s3://npm-registry-packages-npm-production"}},"0.29.0":{"name":"@diegoaltoworks/talker","version":"0.29.0","keywords":["telephony","twilio","voice","sms","chatbot","chatter","twiml","conversational-ai","ivr","phone"],"author":{"name":"Diego Alto","email":"diego@diegoalto.works"},"license":"MIT","_id":"@diegoaltoworks/talker@0.29.0","maintainers":[{"name":"diegoaltoworks","email":"diego@diegoalto.co.uk"}],"homepage":"https://github.com/diegoaltoworks/talker#readme","bugs":{"url":"https://github.com/diegoaltoworks/talker/issues"},"dist":{"shasum":"9de5ad9ade49d7f2ba023cd66473f874d0f91ead","tarball":"https://registry.npmjs.org/@diegoaltoworks/talker/-/talker-0.29.0.tgz","fileCount":207,"integrity":"sha512-o96vnxq/fp4u3gufXp4QFAHZJQslQaRVt6qc8uaVV1DH8qkgZOMCQ5iyzRhdmsrkQrcbULdd13G/sFX+5ZZtmQ==","signatures":[{"sig":"MEQCIB+/BaLI7awLIJLjWE+/KEMuwk49mzhvIxVFQ/BVwCR/AiAYKrGruBEbybOt2KfEpLiUs1FXUliWJ/vd1G9WmK1EkQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@diegoaltoworks%2ftalker@0.29.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":359060},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./twilio":{"types":"./dist/adapters/twilio.d.ts","import":"./dist/adapters/twilio.mjs","require":"./dist/adapters/twilio.js"}},"gitHead":"1638c29e527e05937df30f8b55dce6bb1027fb74","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check .","test":"bun test","work":"bun ./.claude/work.ts run","build":"bun run build:clean && bun run build:types && bun run build:esm && bun run build:cjs","check":"bun run typecheck && bun run lint && bun run test && bun run security:check","format":"biome format --write .","prepare":"(husky || true) && bun run build","lint:fix":"biome check --write .","build:cjs":"esbuild src/index.ts --bundle --format=cjs --outfile=dist/index.js --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@libsql/client --platform=node --target=node24","build:esm":"esbuild src/index.ts --bundle --format=esm --outfile=dist/index.mjs --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@libsql/client --platform=node --target=node24","test:unit":"bun test src/**/*.test.ts","typecheck":"tsc --noEmit","work:halt":"bun ./.claude/work.ts halt","test:watch":"bun test --watch","work:reset":"bun ./.claude/work.ts reset","work:watch":"bun ./.claude/work.ts watch","build:clean":"rm -rf dist","build:types":"tsc --emitDeclarationOnly --outDir dist","work:resume":"bun ./.claude/work.ts resume","work:status":"bun ./.claude/work.ts status","test:coverage":"bun test --coverage","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run security:check && bun run build","security:audit":"bun audit","security:check":"bun audit --audit-level=moderate","work:continuous":"bun ./.claude/work.ts run --continuous","test:integration":"bun test test/integration/**/*.test.ts","security:audit:fix":"bun update"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c92b6648-5d3b-4896-b37f-9f8c66acf00c"}},"overrides":{"qs":"^6.15.3","ws":"^8.21.1","yaml":"^2.8.3","fast-uri":"^3.1.3","form-data":"^4.0.6","picomatch":"^4.0.4","ip-address":"^10.4.0","path-to-regexp":"^8.4.0","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/diegoaltoworks/talker.git","type":"git"},"_npmVersion":"12.0.2","description":"Telephony plugin for Chatter — adds voice call and SMS support via Twilio","directories":{},"lint-staged":{"*.ts":["bash -c 'tsc --noEmit --skipLibCheck'"],"*.{ts,js,json,md}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"hono":"^4.13.0","husky":"^9.1.7","openai":"^7.1.0","esbuild":"^0.28.0","@types/bun":"^1.1.12","typescript":"^7.0.2","@types/node":"^26.1.2","lint-staged":"^17.0.8","@biomejs/biome":"^2.5.6","@libsql/client":"^0.17.0","@diegoaltoworks/chatter":"^0.20.0"},"peerDependencies":{"hono":"^4.12.34 || ^5.0.0","openai":"^4.0.0 || ^7.1.0","@libsql/client":">=0.6.0","@diegoaltoworks/chatter":"^0.20.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@libsql/client":{"optional":true},"@diegoaltoworks/chatter":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talker_0.29.0_1786696524501_0.4891195820366887","host":"s3://npm-registry-packages-npm-production"}},"0.30.0":{"name":"@diegoaltoworks/talker","version":"0.30.0","keywords":["telephony","twilio","voice","sms","chatbot","chatter","twiml","conversational-ai","ivr","phone"],"author":{"name":"Diego Alto","email":"diego@diegoalto.works"},"license":"MIT","_id":"@diegoaltoworks/talker@0.30.0","maintainers":[{"name":"diegoaltoworks","email":"diego@diegoalto.co.uk"}],"homepage":"https://github.com/diegoaltoworks/talker#readme","bugs":{"url":"https://github.com/diegoaltoworks/talker/issues"},"dist":{"shasum":"403d71abd3d630ee3a89d3aae68fa68007bbe8a8","tarball":"https://registry.npmjs.org/@diegoaltoworks/talker/-/talker-0.30.0.tgz","fileCount":207,"integrity":"sha512-bzsEUX3/kSLge+ic8TrXT+FP4spLFwASk6Y+7I2Jn1+Dct+6MLx2S/JWr1ViBLChCHtZCtCEOUmRHAu98c++jw==","signatures":[{"sig":"MEUCIQDK34GvxUUjhPPMwLwqxBLwMGIyUjNzafd8/eHAd36c+AIgUILPvZ3onHGU+cIjJlMhBV1pyAQ9maCpJ3MCnJDyihk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@diegoaltoworks%2ftalker@0.30.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":360812},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./twilio":{"types":"./dist/adapters/twilio.d.ts","import":"./dist/adapters/twilio.mjs","require":"./dist/adapters/twilio.js"}},"gitHead":"4eab959f11bf0d80ada0e9fee394fb397f7e0a65","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check .","test":"bun test","work":"bun ./.claude/work.ts run","build":"bun run build:clean && bun run build:types && bun run build:esm && bun run build:cjs","check":"bun run typecheck && bun run lint && bun run test && bun run security:check","format":"biome format --write .","prepare":"(husky || true) && bun run build","lint:fix":"biome check --write .","build:cjs":"esbuild src/index.ts --bundle --format=cjs --outfile=dist/index.js --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@libsql/client --platform=node --target=node24","build:esm":"esbuild src/index.ts --bundle --format=esm --outfile=dist/index.mjs --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@libsql/client --platform=node --target=node24","test:unit":"bun test src/**/*.test.ts","typecheck":"tsc --noEmit","work:halt":"bun ./.claude/work.ts halt","test:watch":"bun test --watch","work:reset":"bun ./.claude/work.ts reset","work:watch":"bun ./.claude/work.ts watch","build:clean":"rm -rf dist","build:types":"tsc --emitDeclarationOnly --outDir dist","work:resume":"bun ./.claude/work.ts resume","work:status":"bun ./.claude/work.ts status","test:coverage":"bun test --coverage","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run security:check && bun run build","security:audit":"bun audit","security:check":"bun audit --audit-level=moderate","work:continuous":"bun ./.claude/work.ts run --continuous","test:integration":"bun test test/integration/**/*.test.ts","security:audit:fix":"bun update"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c92b6648-5d3b-4896-b37f-9f8c66acf00c"}},"overrides":{"qs":"^6.15.3","ws":"^8.21.1","yaml":"^2.8.3","fast-uri":"^3.1.3","form-data":"^4.0.6","picomatch":"^4.0.4","ip-address":"^10.4.0","path-to-regexp":"^8.4.0","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/diegoaltoworks/talker.git","type":"git"},"_npmVersion":"12.0.2","description":"Telephony plugin for Chatter — adds voice call and SMS support via Twilio","directories":{},"lint-staged":{"*.ts":["bash -c 'tsc --noEmit --skipLibCheck'"],"*.{ts,js,json,md}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"hono":"^4.13.0","husky":"^9.1.7","openai":"^7.1.0","esbuild":"^0.28.0","@types/bun":"^1.1.12","typescript":"^7.0.2","@types/node":"^26.1.2","lint-staged":"^17.0.8","@biomejs/biome":"^2.5.6","@libsql/client":"^0.17.0","@diegoaltoworks/chatter":"^0.25.0"},"peerDependencies":{"hono":"^4.12.34 || ^5.0.0","openai":"^4.0.0 || ^7.1.0","@libsql/client":">=0.6.0","@diegoaltoworks/chatter":"^0.25.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@libsql/client":{"optional":true},"@diegoaltoworks/chatter":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talker_0.30.0_1786697693223_0.10054070953382332","host":"s3://npm-registry-packages-npm-production"}},"0.31.0":{"name":"@diegoaltoworks/talker","version":"0.31.0","keywords":["telephony","twilio","voice","sms","chatbot","chatter","twiml","conversational-ai","ivr","phone"],"author":{"name":"Diego Alto","email":"diego@diegoalto.works"},"license":"MIT","_id":"@diegoaltoworks/talker@0.31.0","maintainers":[{"name":"diegoaltoworks","email":"diego@diegoalto.co.uk"}],"homepage":"https://github.com/diegoaltoworks/talker#readme","bugs":{"url":"https://github.com/diegoaltoworks/talker/issues"},"dist":{"shasum":"2b58e87ab6226898d594c7f14a4be64a5d478a27","tarball":"https://registry.npmjs.org/@diegoaltoworks/talker/-/talker-0.31.0.tgz","fileCount":209,"integrity":"sha512-o5IPzbOzclHyrdDm5n3sYh+s4EFY2mA6IS0DV3sHsuH+WknuDYbmhx7tl2xAW9g/uR2V+5yaV0inaNiwKwFMPQ==","signatures":[{"sig":"MEUCIAuYs7VkV//opHqCFXierjf/9U7WKfKl0GZN6wS7/hlsAiEAuqKR9HibEWe1fRqTzUrz1JFhE/TC39WVoJdhpshVqMk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@diegoaltoworks%2ftalker@0.31.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":364567},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./twilio":{"types":"./dist/adapters/twilio.d.ts","import":"./dist/adapters/twilio.mjs","require":"./dist/adapters/twilio.js"}},"gitHead":"36e363589339b1e4487357cf59f7d30f260d658e","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check .","test":"bun test","work":"bun ./.claude/work.ts run","build":"bun run build:clean && bun run build:types && bun run build:esm && bun run build:cjs","check":"bun run typecheck && bun run lint && bun run test && bun run security:check","format":"biome format --write .","prepare":"(husky || true) && bun run build","lint:fix":"biome check --write .","build:cjs":"esbuild src/index.ts --bundle --format=cjs --outfile=dist/index.js --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@libsql/client --platform=node --target=node24","build:esm":"esbuild src/index.ts --bundle --format=esm --outfile=dist/index.mjs --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@libsql/client --platform=node --target=node24","test:unit":"bun test src/**/*.test.ts","typecheck":"tsc --noEmit","work:halt":"bun ./.claude/work.ts halt","test:watch":"bun test --watch","work:reset":"bun ./.claude/work.ts reset","work:watch":"bun ./.claude/work.ts watch","build:clean":"rm -rf dist","build:types":"tsc --emitDeclarationOnly --outDir dist","work:resume":"bun ./.claude/work.ts resume","work:status":"bun ./.claude/work.ts status","test:coverage":"bun test --coverage","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run security:check && bun run build","security:audit":"bun audit","security:check":"bun audit --audit-level=moderate","work:continuous":"bun ./.claude/work.ts run --continuous","test:integration":"bun test test/integration/**/*.test.ts","security:audit:fix":"bun update"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c92b6648-5d3b-4896-b37f-9f8c66acf00c"}},"overrides":{"qs":"^6.15.3","ws":"^8.21.1","yaml":"^2.8.3","fast-uri":"^3.1.3","form-data":"^4.0.6","picomatch":"^4.0.4","ip-address":"^10.4.0","path-to-regexp":"^8.4.0","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/diegoaltoworks/talker.git","type":"git"},"_npmVersion":"12.0.2","description":"Telephony plugin for Chatter — adds voice call and SMS support via Twilio","directories":{},"lint-staged":{"*.ts":["bash -c 'tsc --noEmit --skipLibCheck'"],"*.{ts,js,json,md}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"hono":"^4.13.0","husky":"^9.1.7","openai":"^7.1.0","esbuild":"^0.28.0","@types/bun":"^1.1.12","typescript":"^7.0.2","@types/node":"^26.1.2","lint-staged":"^17.0.8","@biomejs/biome":"^2.5.6","@libsql/client":"^0.17.0","@diegoaltoworks/chatter":"^0.25.0"},"peerDependencies":{"hono":"^4.12.34 || ^5.0.0","openai":"^4.0.0 || ^7.1.0","@libsql/client":">=0.6.0","@diegoaltoworks/chatter":"^0.25.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@libsql/client":{"optional":true},"@diegoaltoworks/chatter":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talker_0.31.0_1786700527755_0.41773165688167424","host":"s3://npm-registry-packages-npm-production"}},"0.32.0":{"name":"@diegoaltoworks/talker","version":"0.32.0","keywords":["telephony","twilio","voice","sms","chatbot","chatter","twiml","conversational-ai","ivr","phone"],"author":{"name":"Diego Alto","email":"diego@diegoalto.works"},"license":"MIT","_id":"@diegoaltoworks/talker@0.32.0","maintainers":[{"name":"diegoaltoworks","email":"diego@diegoalto.co.uk"}],"homepage":"https://github.com/diegoaltoworks/talker#readme","bugs":{"url":"https://github.com/diegoaltoworks/talker/issues"},"dist":{"shasum":"300467b5aa6377a8b67418380cc9d85a6074d76e","tarball":"https://registry.npmjs.org/@diegoaltoworks/talker/-/talker-0.32.0.tgz","fileCount":209,"integrity":"sha512-X0GxUIupG3F+dRERSBgBbYv05H1UpEKhkim7guMQ8qzoabHEYVQ4W8xMK6xzZjYjR9GczU+QQh6zRgrAJsvVAg==","signatures":[{"sig":"MEQCIG2+jL/YaSnwDY2BVWTfj4kh443y2wf6pvouhGHHNHCoAiAQZzeUz+HFD7tOP+cGtnvfRwosUjLQ86APQBreqRxZYg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@diegoaltoworks%2ftalker@0.32.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":354653},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./twilio":{"types":"./dist/adapters/twilio.d.ts","import":"./dist/adapters/twilio.mjs","require":"./dist/adapters/twilio.js"}},"gitHead":"15c8df4cd5edf0646ccce39fc99255553ca42bb5","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check .","test":"bun test","work":"bun ./.claude/work.ts run","build":"bun run build:clean && bun run build:types && bun run build:esm && bun run build:cjs","check":"bun run typecheck && bun run lint && bun run test && bun run security:check","format":"biome format --write .","prepare":"(husky || true) && bun run build","lint:fix":"biome check --write .","build:cjs":"esbuild src/index.ts --bundle --format=cjs --outfile=dist/index.js --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@diegoaltoworks/chatter/* --external:@libsql/client --platform=node --target=node24","build:esm":"esbuild src/index.ts --bundle --format=esm --outfile=dist/index.mjs --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@diegoaltoworks/chatter/* --external:@libsql/client --platform=node --target=node24","test:unit":"bun test src/**/*.test.ts","typecheck":"tsc --noEmit","work:halt":"bun ./.claude/work.ts halt","test:watch":"bun test --watch","work:reset":"bun ./.claude/work.ts reset","work:watch":"bun ./.claude/work.ts watch","build:clean":"rm -rf dist","build:types":"tsc --emitDeclarationOnly --outDir dist","work:resume":"bun ./.claude/work.ts resume","work:status":"bun ./.claude/work.ts status","test:coverage":"bun test --coverage","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run security:check && bun run build","security:audit":"bun audit","security:check":"bun audit --audit-level=moderate","work:continuous":"bun ./.claude/work.ts run --continuous","test:integration":"bun test test/integration/**/*.test.ts","security:audit:fix":"bun update"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c92b6648-5d3b-4896-b37f-9f8c66acf00c"}},"overrides":{"qs":"^6.15.3","ws":"^8.21.1","yaml":"^2.8.3","fast-uri":"^3.1.3","form-data":"^4.0.6","picomatch":"^4.0.4","ip-address":"^10.4.0","path-to-regexp":"^8.4.0","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/diegoaltoworks/talker.git","type":"git"},"_npmVersion":"12.0.2","description":"Telephony plugin for Chatter — adds voice call and SMS support via Twilio","directories":{},"lint-staged":{"*.ts":["bash -c 'tsc --noEmit --skipLibCheck'"],"*.{ts,js,json,md}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"hono":"^4.13.0","husky":"^9.1.7","openai":"^7.1.0","esbuild":"^0.28.0","@types/bun":"^1.1.12","typescript":"^7.0.2","@types/node":"^26.1.2","lint-staged":"^17.0.8","@biomejs/biome":"^2.5.6","@libsql/client":"^0.17.0","@diegoaltoworks/chatter":"^0.32.0"},"peerDependencies":{"hono":"^4.12.34 || ^5.0.0","openai":"^4.0.0 || ^7.1.0","@libsql/client":">=0.6.0","@diegoaltoworks/chatter":"^0.32.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@libsql/client":{"optional":true},"@diegoaltoworks/chatter":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talker_0.32.0_1786706970806_0.3103669623309939","host":"s3://npm-registry-packages-npm-production"}},"0.33.0":{"name":"@diegoaltoworks/talker","version":"0.33.0","keywords":["telephony","twilio","voice","sms","chatbot","chatter","twiml","conversational-ai","ivr","phone"],"author":{"name":"Diego Alto","email":"diego@diegoalto.works"},"license":"MIT","_id":"@diegoaltoworks/talker@0.33.0","maintainers":[{"name":"diegoaltoworks","email":"diego@diegoalto.co.uk"}],"homepage":"https://github.com/diegoaltoworks/talker#readme","bugs":{"url":"https://github.com/diegoaltoworks/talker/issues"},"dist":{"shasum":"5d1462e40685e0d0145914a4730021f322914c0f","tarball":"https://registry.npmjs.org/@diegoaltoworks/talker/-/talker-0.33.0.tgz","fileCount":215,"integrity":"sha512-8t9aX79EWKeX7G0y2cJOiwkEtH3TOSqNSUBo5jgETmEjW8/xowIlEsWR21eH5FqHQLY4+Pv7U66pq9v7LNvwmA==","signatures":[{"sig":"MEUCIQDD7tfLV5Vgj8K04YMDq7o1jxt3GqRVoqiSG57oJKWFlAIgYO8WjW0KIPqvFwsVJXh9e8Gmtf1mW+yO6VX0rh35nXk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@diegoaltoworks%2ftalker@0.33.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":363960},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./twilio":{"types":"./dist/adapters/twilio.d.ts","import":"./dist/adapters/twilio.mjs","require":"./dist/adapters/twilio.js"}},"gitHead":"67cfe0de53bba739c661ac8529cac57570b832e8","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check .","test":"bun test","work":"bun ./.claude/work.ts run","build":"bun run build:clean && bun run build:types && bun run build:esm && bun run build:cjs","check":"bun run typecheck && bun run lint && bun run test && bun run security:check","format":"biome format --write .","prepare":"(husky || true) && bun run build","lint:fix":"biome check --write .","build:cjs":"esbuild src/index.ts --bundle --format=cjs --outfile=dist/index.js --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@diegoaltoworks/chatter/* --external:@libsql/client --platform=node --target=node24","build:esm":"esbuild src/index.ts --bundle --format=esm --outfile=dist/index.mjs --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@diegoaltoworks/chatter/* --external:@libsql/client --platform=node --target=node24","test:unit":"bun test src/**/*.test.ts","typecheck":"tsc --noEmit","work:halt":"bun ./.claude/work.ts halt","test:watch":"bun test --watch","work:reset":"bun ./.claude/work.ts reset","work:watch":"bun ./.claude/work.ts watch","build:clean":"rm -rf dist","build:types":"tsc --emitDeclarationOnly --outDir dist","work:resume":"bun ./.claude/work.ts resume","work:status":"bun ./.claude/work.ts status","test:coverage":"bun test --coverage","test:packaged":"bash scripts/smoke-packed-install.sh","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run security:check && bun run build","security:audit":"bun audit","security:check":"bun audit --audit-level=moderate","work:continuous":"bun ./.claude/work.ts run --continuous","test:integration":"bun test test/integration/**/*.test.ts","security:audit:fix":"bun update"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c92b6648-5d3b-4896-b37f-9f8c66acf00c"}},"overrides":{"qs":"^6.15.3","ws":"^8.21.1","yaml":"^2.8.3","fast-uri":"^3.1.3","form-data":"^4.0.6","picomatch":"^4.0.4","ip-address":"^10.4.0","path-to-regexp":"^8.4.0","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/diegoaltoworks/talker.git","type":"git"},"_npmVersion":"12.0.2","description":"Telephony plugin for Chatter — adds voice call and SMS support via Twilio","directories":{},"lint-staged":{"*.ts":["bash -c 'tsc --noEmit --skipLibCheck'"],"*.{ts,js,json,md}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"hono":"^4.13.0","husky":"^9.1.7","openai":"^7.1.0","esbuild":"^0.28.0","@types/bun":"^1.1.12","typescript":"^7.0.2","@types/node":"^26.1.2","lint-staged":"^17.0.8","@biomejs/biome":"^2.5.6","@libsql/client":"^0.17.0","@diegoaltoworks/chatter":"^0.32.0"},"peerDependencies":{"hono":"^4.12.34 || ^5.0.0","openai":"^4.0.0 || ^7.1.0","@libsql/client":">=0.6.0","@diegoaltoworks/chatter":"^0.32.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@libsql/client":{"optional":true},"@diegoaltoworks/chatter":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talker_0.33.0_1786805229075_0.003522269580249926","host":"s3://npm-registry-packages-npm-production"}},"0.34.0":{"name":"@diegoaltoworks/talker","version":"0.34.0","keywords":["telephony","twilio","voice","sms","chatbot","chatter","twiml","conversational-ai","ivr","phone"],"author":{"name":"Diego Alto","email":"diego@diegoalto.works"},"license":"MIT","_id":"@diegoaltoworks/talker@0.34.0","maintainers":[{"name":"diegoaltoworks","email":"diego@diegoalto.co.uk"}],"homepage":"https://github.com/diegoaltoworks/talker#readme","bugs":{"url":"https://github.com/diegoaltoworks/talker/issues"},"dist":{"shasum":"c321804cb7446b57661ee65c16e549a4991adbc7","tarball":"https://registry.npmjs.org/@diegoaltoworks/talker/-/talker-0.34.0.tgz","fileCount":215,"integrity":"sha512-ovo5eFZzyw7hCG8+cG6aNa02OGaQqL7MVeCT6/Im69ghB8ne226xXMXTie0UO+dVLRkPiyeWr8WUF4Ud6HltAA==","signatures":[{"sig":"MEUCIQCo5Y8npSxNgADV9o78yy6ouBAoa6aal9WPQSo2yJOFkQIgYs2bFsBOFfe3yCtWnHPlniOthbzJOQX6D/yc56iamJk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@diegoaltoworks%2ftalker@0.34.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":363964},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./twilio":{"types":"./dist/adapters/twilio.d.ts","import":"./dist/adapters/twilio.mjs","require":"./dist/adapters/twilio.js"}},"gitHead":"555f538c420f3a1f07150005ae246571c609ccdc","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check .","test":"bun test","work":"bun ./.claude/work.ts run","build":"bun run build:clean && bun run build:types && bun run build:esm && bun run build:cjs","check":"bun run typecheck && bun run lint && bun run test && bun run security:check","format":"biome format --write .","prepare":"(husky || true) && bun run build","lint:fix":"biome check --write .","build:cjs":"esbuild src/index.ts --bundle --format=cjs --outfile=dist/index.js --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@diegoaltoworks/chatter/* --external:@libsql/client --platform=node --target=node24","build:esm":"esbuild src/index.ts --bundle --format=esm --outfile=dist/index.mjs --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@diegoaltoworks/chatter/* --external:@libsql/client --platform=node --target=node24","test:unit":"bun test src/**/*.test.ts","typecheck":"tsc --noEmit","work:halt":"bun ./.claude/work.ts halt","test:watch":"bun test --watch","work:reset":"bun ./.claude/work.ts reset","work:watch":"bun ./.claude/work.ts watch","build:clean":"rm -rf dist","build:types":"tsc --emitDeclarationOnly --outDir dist","work:resume":"bun ./.claude/work.ts resume","work:status":"bun ./.claude/work.ts status","test:coverage":"bun test --coverage","test:packaged":"bash scripts/smoke-packed-install.sh","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run security:check && bun run build","security:audit":"bun audit","security:check":"bun audit --audit-level=moderate","work:continuous":"bun ./.claude/work.ts run --continuous","test:integration":"bun test test/integration/**/*.test.ts","security:audit:fix":"bun update"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c92b6648-5d3b-4896-b37f-9f8c66acf00c"}},"overrides":{"qs":"^6.15.3","ws":"^8.21.1","yaml":"^2.8.3","fast-uri":"^3.1.3","form-data":"^4.0.6","picomatch":"^4.0.4","ip-address":"^10.4.0","path-to-regexp":"^8.4.0","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/diegoaltoworks/talker.git","type":"git"},"_npmVersion":"12.0.2","description":"Telephony plugin for Chatter — adds voice call and SMS support via Twilio","directories":{},"lint-staged":{"*.ts":["bash -c 'tsc --noEmit --skipLibCheck'"],"*.{ts,js,json,md}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"hono":"^4.13.0","husky":"^9.1.7","openai":"^7.1.0","esbuild":"^0.28.0","@types/bun":"^1.1.12","typescript":"^7.0.2","@types/node":"^26.1.2","lint-staged":"^17.0.8","@biomejs/biome":"^2.5.6","@libsql/client":"^0.17.0","@diegoaltoworks/chatter":"^0.32.0"},"peerDependencies":{"hono":"^4.12.34 || ^5.0.0","openai":"^4.0.0 || ^7.1.0","@libsql/client":">=0.6.0","@diegoaltoworks/chatter":">=0.32.0 <1"},"peerDependenciesMeta":{"openai":{"optional":true},"@libsql/client":{"optional":true},"@diegoaltoworks/chatter":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talker_0.34.0_1786805781809_0.7378088991283644","host":"s3://npm-registry-packages-npm-production"}},"0.35.0":{"name":"@diegoaltoworks/talker","version":"0.35.0","keywords":["telephony","twilio","voice","sms","chatbot","chatter","twiml","conversational-ai","ivr","phone"],"author":{"name":"Diego Alto","email":"diego@diegoalto.works"},"license":"MIT","_id":"@diegoaltoworks/talker@0.35.0","maintainers":[{"name":"diegoaltoworks","email":"diego@diegoalto.co.uk"}],"homepage":"https://github.com/diegoaltoworks/talker#readme","bugs":{"url":"https://github.com/diegoaltoworks/talker/issues"},"dist":{"shasum":"9f5d6831b44306c9d7221c68fe4eb9ec119043ee","tarball":"https://registry.npmjs.org/@diegoaltoworks/talker/-/talker-0.35.0.tgz","fileCount":219,"integrity":"sha512-9any9AkktqqwdhQ89QXjyE3NoBVOE/VlpksnSN9s5gXqzRhndBVA4z603vDVnq7RS68Zf4iPJEgKp3taY/0ngQ==","signatures":[{"sig":"MEUCIQDjZpG4ISpO4sn2AoLFTcLkDfcV+7fDm0vLc2QwFuw1pQIgE5Ed3aA2nUhy708wUO6k/ig2Ekllmb04UxZ/KMVkWog=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@diegoaltoworks%2ftalker@0.35.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":371479},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./twilio":{"types":"./dist/adapters/twilio.d.ts","import":"./dist/adapters/twilio.mjs","require":"./dist/adapters/twilio.js"}},"gitHead":"f592e14b990548541fdb15cfab1e4e759d36b59f","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check .","test":"bun test","work":"bun ./.claude/work.ts run","build":"bun run build:clean && bun run build:types && bun run build:esm && bun run build:cjs","check":"bun run typecheck && bun run lint && bun run test && bun run security:check","format":"biome format --write .","prepare":"(husky || true) && bun run build","lint:fix":"biome check --write .","build:cjs":"esbuild src/index.ts --bundle --format=cjs --outfile=dist/index.js --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@diegoaltoworks/chatter/* --external:@libsql/client --platform=node --target=node24","build:esm":"esbuild src/index.ts --bundle --format=esm --outfile=dist/index.mjs --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@diegoaltoworks/chatter/* --external:@libsql/client --platform=node --target=node24","test:unit":"bun test src/**/*.test.ts","typecheck":"tsc --noEmit","work:halt":"bun ./.claude/work.ts halt","test:watch":"bun test --watch","work:reset":"bun ./.claude/work.ts reset","work:watch":"bun ./.claude/work.ts watch","build:clean":"rm -rf dist","build:types":"tsc --emitDeclarationOnly --outDir dist","work:resume":"bun ./.claude/work.ts resume","work:status":"bun ./.claude/work.ts status","test:coverage":"bun test --coverage","test:packaged":"bash scripts/smoke-packed-install.sh","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run security:check && bun run build","security:audit":"bun audit","security:check":"bun audit --audit-level=moderate","work:continuous":"bun ./.claude/work.ts run --continuous","test:integration":"bun test test/integration/**/*.test.ts","security:audit:fix":"bun update"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c92b6648-5d3b-4896-b37f-9f8c66acf00c"}},"overrides":{"qs":"^6.15.3","ws":"^8.21.1","yaml":"^2.8.3","fast-uri":"^3.1.3","form-data":"^4.0.6","picomatch":"^4.0.4","ip-address":"^10.4.0","path-to-regexp":"^8.4.0","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/diegoaltoworks/talker.git","type":"git"},"_npmVersion":"12.0.2","description":"Telephony plugin for Chatter — adds voice call and SMS support via Twilio","directories":{},"lint-staged":{"*.ts":["bash -c 'tsc --noEmit --skipLibCheck'"],"*.{ts,js,json,md}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"hono":"^4.13.0","husky":"^9.1.7","openai":"^7.1.0","esbuild":"^0.28.0","@types/bun":"^1.1.12","typescript":"^7.0.2","@types/node":"^26.1.2","lint-staged":"^17.0.8","@biomejs/biome":"^2.5.6","@libsql/client":"^0.17.0","@diegoaltoworks/chatter":"^0.32.0"},"peerDependencies":{"hono":"^4.12.34 || ^5.0.0","openai":"^4.0.0 || ^7.1.0","@libsql/client":">=0.6.0","@diegoaltoworks/chatter":">=0.32.0 <1"},"peerDependenciesMeta":{"openai":{"optional":true},"@libsql/client":{"optional":true},"@diegoaltoworks/chatter":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talker_0.35.0_1786833644531_0.6098658846769958","host":"s3://npm-registry-packages-npm-production"}},"0.36.0":{"name":"@diegoaltoworks/talker","version":"0.36.0","keywords":["telephony","twilio","voice","sms","chatbot","chatter","twiml","conversational-ai","ivr","phone"],"author":{"name":"Diego Alto","email":"diego@diegoalto.works"},"license":"MIT","_id":"@diegoaltoworks/talker@0.36.0","maintainers":[{"name":"diegoaltoworks","email":"diego@diegoalto.co.uk"}],"homepage":"https://github.com/diegoaltoworks/talker#readme","bugs":{"url":"https://github.com/diegoaltoworks/talker/issues"},"dist":{"shasum":"c5caf62b1b09882f030ed0e7bee34af7b0e1e332","tarball":"https://registry.npmjs.org/@diegoaltoworks/talker/-/talker-0.36.0.tgz","fileCount":219,"integrity":"sha512-DadVgUhpovInFlXtiVsjdhxlbgQq7nMdeMiH2kM7F9VaBC+xoJljYD2mg4tD/wZEMH0QQs7zJAuV7MzzgNv2tQ==","signatures":[{"sig":"MEYCIQCr5YjZ9QWS4/YlAwlun76jPA7OjnpWyySGprolvjxW9wIhAN7m0yju0V6AT5bmf9miCMTnpvJOnjYCydgrXnZOe7ST","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@diegoaltoworks%2ftalker@0.36.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":371827},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./twilio":{"types":"./dist/adapters/twilio.d.ts","import":"./dist/adapters/twilio.mjs","require":"./dist/adapters/twilio.js"}},"gitHead":"9c55eb1a7d32502b465c9ca981d604bf10432f3d","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check .","test":"bun test","work":"bun ./.claude/work.ts run","build":"bun run build:clean && bun run build:types && bun run build:esm && bun run build:cjs","check":"bun run typecheck && bun run lint && bun run test && bun run security:check","format":"biome format --write .","prepare":"(husky || true) && bun run build","lint:fix":"biome check --write .","build:cjs":"esbuild src/index.ts --bundle --format=cjs --outfile=dist/index.js --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@diegoaltoworks/chatter/* --external:@libsql/client --platform=node --target=node24","build:esm":"esbuild src/index.ts --bundle --format=esm --outfile=dist/index.mjs --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@diegoaltoworks/chatter/* --external:@libsql/client --platform=node --target=node24","test:unit":"bun test src/**/*.test.ts","typecheck":"tsc --noEmit","work:halt":"bun ./.claude/work.ts halt","test:watch":"bun test --watch","work:reset":"bun ./.claude/work.ts reset","work:watch":"bun ./.claude/work.ts watch","build:clean":"rm -rf dist","build:types":"tsc --emitDeclarationOnly --outDir dist","work:resume":"bun ./.claude/work.ts resume","work:status":"bun ./.claude/work.ts status","test:coverage":"bun test --coverage","test:packaged":"bash scripts/smoke-packed-install.sh","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run security:check && bun run build","security:audit":"bun audit","security:check":"bun audit --audit-level=moderate","work:continuous":"bun ./.claude/work.ts run --continuous","test:integration":"bun test test/integration/**/*.test.ts","security:audit:fix":"bun update"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c92b6648-5d3b-4896-b37f-9f8c66acf00c"}},"overrides":{"qs":"^6.15.3","ws":"^8.21.1","yaml":"^2.8.3","fast-uri":"^3.1.3","form-data":"^4.0.6","picomatch":"^4.0.4","ip-address":"^10.4.0","path-to-regexp":"^8.4.0","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/diegoaltoworks/talker.git","type":"git"},"_npmVersion":"12.0.2","description":"Telephony plugin for Chatter — adds voice call and SMS support via Twilio","directories":{},"lint-staged":{"*.ts":["bash -c 'tsc --noEmit --skipLibCheck'"],"*.{ts,js,json,md}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"hono":"^4.13.0","husky":"^9.1.7","openai":"^7.1.0","esbuild":"^0.28.0","@types/bun":"^1.1.12","typescript":"^7.0.2","@types/node":"^26.1.2","lint-staged":"^17.0.8","@biomejs/biome":"^2.5.6","@libsql/client":"^0.17.0","@diegoaltoworks/chatter":"^0.32.0"},"peerDependencies":{"hono":"^4.12.34 || ^5.0.0","openai":"^4.0.0 || ^7.1.0","@libsql/client":">=0.6.0","@diegoaltoworks/chatter":">=0.32.0 <1"},"peerDependenciesMeta":{"openai":{"optional":true},"@libsql/client":{"optional":true},"@diegoaltoworks/chatter":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talker_0.36.0_1786833969948_0.7724185326309163","host":"s3://npm-registry-packages-npm-production"}},"0.37.0":{"name":"@diegoaltoworks/talker","version":"0.37.0","keywords":["telephony","twilio","voice","sms","chatbot","chatter","twiml","conversational-ai","ivr","phone"],"author":{"name":"Diego Alto","email":"diego@diegoalto.works"},"license":"MIT","_id":"@diegoaltoworks/talker@0.37.0","maintainers":[{"name":"diegoaltoworks","email":"diego@diegoalto.co.uk"}],"homepage":"https://github.com/diegoaltoworks/talker#readme","bugs":{"url":"https://github.com/diegoaltoworks/talker/issues"},"dist":{"shasum":"e4eee2d3fab08586c290c17517849a435f70f9ae","tarball":"https://registry.npmjs.org/@diegoaltoworks/talker/-/talker-0.37.0.tgz","fileCount":78,"integrity":"sha512-jjEyLQiDADFa3Nc2aAT7rMG46vTp+vh0TLu1wzH+gGPiM+KywP82ELmUOx2CqiraIe4cWaX8MCqoM9nx1ao/MA==","signatures":[{"sig":"MEUCIQDtqOKOLjYoq1cBS4ldVr/SY2bQ7PuNuzDmtgidfL1eiwIgHhNYwQZIjXycnE7xMtoZfboaOjUjn79WIMolelRTXis=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@diegoaltoworks%2ftalker@0.37.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":328012},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./twilio":{"types":"./dist/adapters/twilio.d.ts","import":"./dist/adapters/twilio.mjs","require":"./dist/adapters/twilio.js"}},"gitHead":"ace91a1db998d4baefab98d6daa234e60b4bc83c","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check .","test":"bun test","work":"bun ./.claude/work.ts run","build":"bun run build:clean && bun run build:types && bun run build:esm && bun run build:cjs","check":"bun run typecheck && bun run lint && bun run test && bun run security:check","format":"biome format --write .","prepare":"(husky || true) && bun run build","lint:fix":"biome check --write .","build:cjs":"esbuild src/index.ts src/adapters/twilio.ts --bundle --format=cjs --outdir=dist --outbase=src --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@diegoaltoworks/chatter/* --external:@libsql/client --platform=node --target=node24","build:esm":"esbuild src/index.ts src/adapters/twilio.ts --bundle --format=esm --outdir=dist --outbase=src --out-extension:.js=.mjs --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@diegoaltoworks/chatter/* --external:@libsql/client --platform=node --target=node24","test:unit":"bun test src/","typecheck":"tsc --noEmit","work:halt":"bun ./.claude/work.ts halt","test:watch":"bun test --watch","work:reset":"bun ./.claude/work.ts reset","work:watch":"bun ./.claude/work.ts watch","build:clean":"rm -rf dist","build:types":"tsc -p tsconfig.build.json --emitDeclarationOnly --outDir dist","work:resume":"bun ./.claude/work.ts resume","work:status":"bun ./.claude/work.ts status","test:coverage":"bun test --coverage","test:packaged":"bash scripts/smoke-packed-install.sh","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run security:check && bun run build","security:audit":"bun audit","security:check":"bun audit --audit-level=moderate","work:continuous":"bun ./.claude/work.ts run --continuous","test:integration":"bun test test/integration/**/*.test.ts","security:audit:fix":"bun update"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c92b6648-5d3b-4896-b37f-9f8c66acf00c"}},"overrides":{"qs":"^6.15.3","ws":"^8.21.1","yaml":"^2.8.3","fast-uri":"^3.1.3","form-data":"^4.0.6","picomatch":"^4.0.4","ip-address":"^10.4.0","path-to-regexp":"^8.4.0","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/diegoaltoworks/talker.git","type":"git"},"_npmVersion":"12.0.2","description":"Telephony plugin for Chatter — adds voice call and SMS support via Twilio","directories":{},"lint-staged":{"*.ts":["bash -c 'tsc --noEmit --skipLibCheck'"],"*.{ts,js,json,md}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"hono":"^4.13.0","husky":"^9.1.7","openai":"^7.1.0","esbuild":"^0.28.0","@types/bun":"^1.1.12","typescript":"^7.0.2","@types/node":"^26.1.2","lint-staged":"^17.0.8","@biomejs/biome":"^2.5.6","@libsql/client":"^0.17.0","@diegoaltoworks/chatter":"^0.32.0"},"peerDependencies":{"hono":"^4.12.34 || ^5.0.0","openai":"^4.0.0 || ^7.1.0","@libsql/client":">=0.6.0","@diegoaltoworks/chatter":">=0.32.0 <1"},"peerDependenciesMeta":{"openai":{"optional":true},"@libsql/client":{"optional":true},"@diegoaltoworks/chatter":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talker_0.37.0_1786834628170_0.6791472973610653","host":"s3://npm-registry-packages-npm-production"}},"0.38.0":{"name":"@diegoaltoworks/talker","version":"0.38.0","keywords":["telephony","twilio","voice","sms","chatbot","chatter","twiml","conversational-ai","ivr","phone"],"author":{"name":"Diego Alto","email":"diego@diegoalto.works"},"license":"MIT","_id":"@diegoaltoworks/talker@0.38.0","maintainers":[{"name":"diegoaltoworks","email":"diego@diegoalto.co.uk"}],"homepage":"https://github.com/diegoaltoworks/talker#readme","bugs":{"url":"https://github.com/diegoaltoworks/talker/issues"},"dist":{"shasum":"397518327cbdb7c0ee98502044e6917b1c1a2194","tarball":"https://registry.npmjs.org/@diegoaltoworks/talker/-/talker-0.38.0.tgz","fileCount":79,"integrity":"sha512-arIGI5IDexOL1Fko6aBY73cqPMRKDsvjU8ywYHaMoV+5+RzhdTxlVsBPjHNTeD1xjRI8pEw1UQeW6MowbcMHTg==","signatures":[{"sig":"MEUCIQDnJEXHu+7o6Bv2Gkat3CWvwbQsMFuwgI7jU3YW1u06igIgB3YD275gasoWCG9aC7qneMdV3PoyrAbg+e26+Pfds2E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@diegoaltoworks%2ftalker@0.38.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":332345},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./twilio":{"types":"./dist/adapters/twilio.d.ts","import":"./dist/adapters/twilio.mjs","require":"./dist/adapters/twilio.js"}},"gitHead":"20398958a41d04ed33b5a62aca1903525b5589c4","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check .","test":"bun test","work":"bun ./.claude/work.ts run","build":"bun run build:clean && bun run build:types && bun run build:esm && bun run build:cjs","check":"bun run typecheck && bun run lint && bun run test && bun run security:check","format":"biome format --write .","prepare":"(husky || true) && bun run build","lint:fix":"biome check --write .","build:cjs":"esbuild src/index.ts src/adapters/twilio.ts --bundle --format=cjs --outdir=dist --outbase=src --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@diegoaltoworks/chatter/* --external:@libsql/client --platform=node --target=node24","build:esm":"esbuild src/index.ts src/adapters/twilio.ts --bundle --format=esm --outdir=dist --outbase=src --out-extension:.js=.mjs --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@diegoaltoworks/chatter/* --external:@libsql/client --platform=node --target=node24","test:unit":"bun test src/","typecheck":"tsc --noEmit","work:halt":"bun ./.claude/work.ts halt","test:watch":"bun test --watch","work:reset":"bun ./.claude/work.ts reset","work:watch":"bun ./.claude/work.ts watch","build:clean":"rm -rf dist","build:types":"tsc -p tsconfig.build.json --emitDeclarationOnly --outDir dist","work:resume":"bun ./.claude/work.ts resume","work:status":"bun ./.claude/work.ts status","test:coverage":"bun test --coverage","test:packaged":"bash scripts/smoke-packed-install.sh","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run security:check && bun run build","security:audit":"bun audit","security:check":"bun audit --audit-level=moderate","work:continuous":"bun ./.claude/work.ts run --continuous","test:integration":"bun test test/integration/**/*.test.ts","security:audit:fix":"bun update"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c92b6648-5d3b-4896-b37f-9f8c66acf00c"}},"overrides":{"qs":"^6.15.3","ws":"^8.21.1","yaml":"^2.8.3","fast-uri":"^3.1.3","form-data":"^4.0.6","picomatch":"^4.0.4","ip-address":"^10.4.0","path-to-regexp":"^8.4.0","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/diegoaltoworks/talker.git","type":"git"},"_npmVersion":"12.0.2","description":"Telephony plugin for Chatter — adds voice call and SMS support via Twilio","directories":{},"lint-staged":{"*.ts":["bash -c 'tsc --noEmit --skipLibCheck'"],"*.{ts,js,json,md}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"hono":"^4.13.0","husky":"^9.1.7","openai":"^7.1.0","esbuild":"^0.28.0","@types/bun":"^1.1.12","typescript":"^7.0.2","@types/node":"^26.1.2","lint-staged":"^17.0.8","@biomejs/biome":"^2.5.6","@libsql/client":"^0.17.0","@diegoaltoworks/chatter":"^0.32.0"},"peerDependencies":{"hono":"^4.12.34 || ^5.0.0","openai":"^4.0.0 || ^7.1.0","@libsql/client":">=0.6.0","@diegoaltoworks/chatter":">=0.32.0 <1"},"peerDependenciesMeta":{"openai":{"optional":true},"@libsql/client":{"optional":true},"@diegoaltoworks/chatter":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talker_0.38.0_1786835328428_0.07335843570952272","host":"s3://npm-registry-packages-npm-production"}},"0.39.0":{"name":"@diegoaltoworks/talker","version":"0.39.0","keywords":["telephony","twilio","voice","sms","chatbot","chatter","twiml","conversational-ai","ivr","phone"],"author":{"name":"Diego Alto","email":"diego@diegoalto.works"},"license":"MIT","_id":"@diegoaltoworks/talker@0.39.0","maintainers":[{"name":"diegoaltoworks","email":"diego@diegoalto.co.uk"}],"homepage":"https://github.com/diegoaltoworks/talker#readme","bugs":{"url":"https://github.com/diegoaltoworks/talker/issues"},"dist":{"shasum":"4c93762ae4ba22ac2cb6fa02a5856fc5873dd3f4","tarball":"https://registry.npmjs.org/@diegoaltoworks/talker/-/talker-0.39.0.tgz","fileCount":79,"integrity":"sha512-S5iCMxaYAdJuFPiEKECmCLfBbqJiGbnuQtgHRVYEdoiXjxbCf7jNwLbeRLf5uJpX/fDDqb7KhlY9pcJM/ei7sg==","signatures":[{"sig":"MEYCIQCRElYr+3b8/K6dtrIuDxHYOzYVviDyFMTBVaWQqIHaCgIhAN2rjThkMdQrpE0JvGKPrImrdncjF/KW3WbrRGOL3a40","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@diegoaltoworks%2ftalker@0.39.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":335407},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./twilio":{"types":"./dist/adapters/twilio.d.ts","import":"./dist/adapters/twilio.mjs","require":"./dist/adapters/twilio.js"}},"gitHead":"06891b5ce0d7db16d4c4b4948e397768d56c3348","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check .","test":"bun test","work":"bun ./.claude/work.ts run","build":"bun run build:clean && bun run build:types && bun run build:esm && bun run build:cjs","check":"bun run typecheck && bun run lint && bun run test && bun run security:check","format":"biome format --write .","prepare":"(husky || true) && bun run build","lint:fix":"biome check --write .","build:cjs":"esbuild src/index.ts src/adapters/twilio.ts --bundle --format=cjs --outdir=dist --outbase=src --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@diegoaltoworks/chatter/* --external:@libsql/client --platform=node --target=node24","build:esm":"esbuild src/index.ts src/adapters/twilio.ts --bundle --format=esm --outdir=dist --outbase=src --out-extension:.js=.mjs --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@diegoaltoworks/chatter/* --external:@libsql/client --platform=node --target=node24","test:unit":"bun test src/","typecheck":"tsc --noEmit","work:halt":"bun ./.claude/work.ts halt","test:watch":"bun test --watch","work:reset":"bun ./.claude/work.ts reset","work:watch":"bun ./.claude/work.ts watch","build:clean":"rm -rf dist","build:types":"tsc -p tsconfig.build.json --emitDeclarationOnly --outDir dist","work:resume":"bun ./.claude/work.ts resume","work:status":"bun ./.claude/work.ts status","test:coverage":"bun test --coverage","test:packaged":"bash scripts/smoke-packed-install.sh","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run security:check && bun run build","security:audit":"bun audit","security:check":"bun audit --audit-level=moderate","work:continuous":"bun ./.claude/work.ts run --continuous","test:integration":"bun test test/integration/**/*.test.ts","security:audit:fix":"bun update"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c92b6648-5d3b-4896-b37f-9f8c66acf00c"}},"overrides":{"qs":"^6.15.3","ws":"^8.21.1","yaml":"^2.8.3","fast-uri":"^3.1.3","form-data":"^4.0.6","picomatch":"^4.0.4","ip-address":"^10.4.0","path-to-regexp":"^8.4.0","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/diegoaltoworks/talker.git","type":"git"},"_npmVersion":"12.0.2","description":"Telephony plugin for Chatter — adds voice call and SMS support via Twilio","directories":{},"lint-staged":{"*.ts":["bash -c 'tsc --noEmit --skipLibCheck'"],"*.{ts,js,json,md}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"hono":"^4.13.0","husky":"^9.1.7","openai":"^7.1.0","esbuild":"^0.28.0","@types/bun":"^1.1.12","typescript":"^7.0.2","@types/node":"^26.1.2","lint-staged":"^17.0.8","@biomejs/biome":"^2.5.6","@libsql/client":"^0.17.0","@diegoaltoworks/chatter":"^0.32.0"},"peerDependencies":{"hono":"^4.12.34 || ^5.0.0","openai":"^4.0.0 || ^7.1.0","@libsql/client":">=0.6.0","@diegoaltoworks/chatter":">=0.32.0 <1"},"peerDependenciesMeta":{"openai":{"optional":true},"@libsql/client":{"optional":true},"@diegoaltoworks/chatter":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talker_0.39.0_1786836169634_0.1941192646567227","host":"s3://npm-registry-packages-npm-production"}},"0.40.0":{"name":"@diegoaltoworks/talker","version":"0.40.0","keywords":["telephony","twilio","voice","sms","chatbot","chatter","twiml","conversational-ai","ivr","phone"],"author":{"name":"Diego Alto","email":"diego@diegoalto.works"},"license":"MIT","_id":"@diegoaltoworks/talker@0.40.0","maintainers":[{"name":"diegoaltoworks","email":"diego@diegoalto.co.uk"}],"homepage":"https://github.com/diegoaltoworks/talker#readme","bugs":{"url":"https://github.com/diegoaltoworks/talker/issues"},"dist":{"shasum":"ad8be1e7738ade5b51c83435651c25a75acf1e3f","tarball":"https://registry.npmjs.org/@diegoaltoworks/talker/-/talker-0.40.0.tgz","fileCount":76,"integrity":"sha512-Un9/ZPNFgF8ZmqUekPaRqGdO7S3aHGPqZ+9m0nHOHaoOxKlu7mFYPyupO+gU2YK4sYaNSVWjkczMsV6Hrt5XYg==","signatures":[{"sig":"MEUCIGzG5X1R1ihY8ksu0TZ6uUEV0hM3DA+YoWfVGTJB+E1sAiEA6oGd1DTtwt/h/cbsXzUziKcAOH/aCtzlu7hL6Ba0j/Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@diegoaltoworks%2ftalker@0.40.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":325821},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./twilio":{"types":"./dist/adapters/twilio.d.ts","import":"./dist/adapters/twilio.mjs","require":"./dist/adapters/twilio.js"}},"gitHead":"0e29b96121faf9cb8745faf7893bd59fe7bceb83","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check .","test":"bun test","work":"bun ./.claude/work.ts run","build":"bun run build:clean && bun run build:types && bun run build:esm && bun run build:cjs","check":"bun run typecheck && bun run lint && bun run test && bun run security:check","format":"biome format --write .","prepare":"(husky || true) && bun run build","lint:fix":"biome check --write .","build:cjs":"esbuild src/index.ts src/adapters/twilio.ts --bundle --format=cjs --outdir=dist --outbase=src --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@diegoaltoworks/chatter/* --external:@libsql/client --platform=node --target=node24","build:esm":"esbuild src/index.ts src/adapters/twilio.ts --bundle --format=esm --outdir=dist --outbase=src --out-extension:.js=.mjs --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@diegoaltoworks/chatter/* --external:@libsql/client --platform=node --target=node24","test:unit":"bun test src/","typecheck":"tsc --noEmit","work:halt":"bun ./.claude/work.ts halt","test:watch":"bun test --watch","work:reset":"bun ./.claude/work.ts reset","work:watch":"bun ./.claude/work.ts watch","build:clean":"rm -rf dist","build:types":"tsc -p tsconfig.build.json --emitDeclarationOnly --outDir dist","work:resume":"bun ./.claude/work.ts resume","work:status":"bun ./.claude/work.ts status","test:coverage":"bun test --coverage","test:packaged":"bash scripts/smoke-packed-install.sh","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run security:check && bun run build","security:audit":"bun audit","security:check":"bun audit --audit-level=moderate","work:continuous":"bun ./.claude/work.ts run --continuous","test:integration":"bun test test/integration/**/*.test.ts","security:audit:fix":"bun update"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c92b6648-5d3b-4896-b37f-9f8c66acf00c"}},"overrides":{"qs":"^6.15.3","ws":"^8.21.1","yaml":"^2.8.3","fast-uri":"^3.1.3","form-data":"^4.0.6","picomatch":"^4.0.4","ip-address":"^10.4.0","path-to-regexp":"^8.4.0","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/diegoaltoworks/talker.git","type":"git"},"_npmVersion":"12.0.2","description":"Telephony plugin for Chatter — adds voice call and SMS support via Twilio","directories":{},"lint-staged":{"*.ts":["bash -c 'tsc --noEmit --skipLibCheck'"],"*.{ts,js,json,md}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"hono":"^4.13.0","husky":"^9.1.7","openai":"^7.1.0","esbuild":"^0.28.0","@types/bun":"^1.1.12","typescript":"^7.0.2","@types/node":"^26.1.2","lint-staged":"^17.0.8","@biomejs/biome":"^2.5.6","@libsql/client":"^0.17.0","@diegoaltoworks/chatter":"^0.32.0"},"peerDependencies":{"hono":"^4.12.34 || ^5.0.0","openai":"^4.0.0 || ^7.1.0","@libsql/client":">=0.6.0","@diegoaltoworks/chatter":">=0.32.0 <1"},"peerDependenciesMeta":{"openai":{"optional":true},"@libsql/client":{"optional":true},"@diegoaltoworks/chatter":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talker_0.40.0_1786837318238_0.5760960802133916","host":"s3://npm-registry-packages-npm-production"}},"0.41.0":{"name":"@diegoaltoworks/talker","version":"0.41.0","keywords":["telephony","twilio","voice","sms","chatbot","chatter","twiml","conversational-ai","ivr","phone"],"author":{"name":"Diego Alto","email":"diego@diegoalto.works"},"license":"MIT","_id":"@diegoaltoworks/talker@0.41.0","maintainers":[{"name":"diegoaltoworks","email":"diego@diegoalto.co.uk"}],"homepage":"https://github.com/diegoaltoworks/talker#readme","bugs":{"url":"https://github.com/diegoaltoworks/talker/issues"},"dist":{"shasum":"ed458522cebb59e01ed927e7e3c3d561ceb89ae5","tarball":"https://registry.npmjs.org/@diegoaltoworks/talker/-/talker-0.41.0.tgz","fileCount":76,"integrity":"sha512-atdvb+ixq01CT65FKgCPPO03SemynIbBeCF4e9/3UvzaLOHpvUDyB79wE0Tr88CjW30GAmatSKm850c0+rlrcA==","signatures":[{"sig":"MEQCIBhFGl3JjZ/IBR/vdmp33BzBYAFLjDekchDpEVTo2u/CAiATtOEbMteYRxePauzC2aoctsNpORSvYxwfOwo7Su+tJA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@diegoaltoworks%2ftalker@0.41.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":330738},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./twilio":{"types":"./dist/adapters/twilio.d.ts","import":"./dist/adapters/twilio.mjs","require":"./dist/adapters/twilio.js"}},"gitHead":"6069e0248f41eb955f5b3f437629f8c7929a9d22","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check .","test":"bun test","work":"bun ./.claude/work.ts run","build":"bun run build:clean && bun run build:types && bun run build:esm && bun run build:cjs","check":"bun run typecheck && bun run lint && bun run test && bun run security:check","format":"biome format --write .","prepare":"(husky || true) && bun run build","lint:fix":"biome check --write .","build:cjs":"esbuild src/index.ts src/adapters/twilio.ts --bundle --format=cjs --outdir=dist --outbase=src --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@diegoaltoworks/chatter/* --external:@libsql/client --platform=node --target=node24","build:esm":"esbuild src/index.ts src/adapters/twilio.ts --bundle --format=esm --outdir=dist --outbase=src --out-extension:.js=.mjs --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@diegoaltoworks/chatter/* --external:@libsql/client --platform=node --target=node24","test:unit":"bun test src/","typecheck":"tsc --noEmit","work:halt":"bun ./.claude/work.ts halt","test:watch":"bun test --watch","work:reset":"bun ./.claude/work.ts reset","work:watch":"bun ./.claude/work.ts watch","build:clean":"rm -rf dist","build:types":"tsc -p tsconfig.build.json --emitDeclarationOnly --outDir dist","work:resume":"bun ./.claude/work.ts resume","work:status":"bun ./.claude/work.ts status","test:coverage":"bun test --coverage","test:packaged":"bash scripts/smoke-packed-install.sh","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run security:check && bun run build","security:audit":"bun audit","security:check":"bun audit --audit-level=moderate","work:continuous":"bun ./.claude/work.ts run --continuous","test:integration":"bun test test/integration/**/*.test.ts","security:audit:fix":"bun update"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c92b6648-5d3b-4896-b37f-9f8c66acf00c"}},"overrides":{"qs":"^6.15.3","ws":"^8.21.1","yaml":"^2.8.3","fast-uri":"^3.1.3","form-data":"^4.0.6","picomatch":"^4.0.4","ip-address":"^10.4.0","path-to-regexp":"^8.4.0","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/diegoaltoworks/talker.git","type":"git"},"_npmVersion":"12.0.2","description":"Telephony plugin for Chatter — adds voice call and SMS support via Twilio","directories":{},"lint-staged":{"*.ts":["bash -c 'tsc --noEmit --skipLibCheck'"],"*.{ts,js,json,md}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"hono":"^4.13.0","husky":"^9.1.7","openai":"^7.1.0","esbuild":"^0.28.0","@types/bun":"^1.1.12","typescript":"^7.0.2","@types/node":"^26.1.2","lint-staged":"^17.0.8","@biomejs/biome":"^2.5.6","@libsql/client":"^0.17.0","@diegoaltoworks/chatter":"^0.32.0"},"peerDependencies":{"hono":"^4.12.34 || ^5.0.0","openai":"^4.0.0 || ^7.1.0","@libsql/client":">=0.6.0","@diegoaltoworks/chatter":">=0.32.0 <1"},"peerDependenciesMeta":{"openai":{"optional":true},"@libsql/client":{"optional":true},"@diegoaltoworks/chatter":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talker_0.41.0_1786838663366_0.10108144752369475","host":"s3://npm-registry-packages-npm-production"}},"0.42.0":{"name":"@diegoaltoworks/talker","version":"0.42.0","keywords":["telephony","twilio","voice","sms","chatbot","chatter","twiml","conversational-ai","ivr","phone"],"author":{"name":"Diego Alto","email":"diego@diegoalto.works"},"license":"MIT","_id":"@diegoaltoworks/talker@0.42.0","maintainers":[{"name":"diegoaltoworks","email":"diego@diegoalto.co.uk"}],"homepage":"https://github.com/diegoaltoworks/talker#readme","bugs":{"url":"https://github.com/diegoaltoworks/talker/issues"},"dist":{"shasum":"73e0b26ad9a43213460687c3b7c67e7653cbacdb","tarball":"https://registry.npmjs.org/@diegoaltoworks/talker/-/talker-0.42.0.tgz","fileCount":76,"integrity":"sha512-TfW6EtHCboXUXiyv+BEcdsQXrdVGciNqOB3JQWbC45ebxJWxDnmYgcpinbn0TZVy5Sq09ZZoUdyw6WiTB4DEcQ==","signatures":[{"sig":"MEQCIFqLvnRgsMg7o5Zi/f1G7HnGEcxFfOJZGhLwnf+ujivIAiB3i4tPZ9DbHx5LPxoQ4g4eV56EupcfSYf/h+j8F0U2bQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@diegoaltoworks%2ftalker@0.42.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":330288},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./twilio":{"types":"./dist/adapters/twilio.d.ts","import":"./dist/adapters/twilio.mjs","require":"./dist/adapters/twilio.js"}},"gitHead":"e5daeab671295c2a9777b3f07324ab90147fa809","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check .","test":"bun test","work":"bun ./.claude/work.ts run","build":"bun run build:clean && bun run build:types && bun run build:esm && bun run build:cjs","check":"bun run typecheck && bun run lint && bun run test && bun run security:check","format":"biome format --write .","prepare":"(husky || true) && bun run build","lint:fix":"biome check --write .","build:cjs":"esbuild src/index.ts src/adapters/twilio.ts --bundle --format=cjs --outdir=dist --outbase=src --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@diegoaltoworks/chatter/* --external:@libsql/client --platform=node --target=node24","build:esm":"esbuild src/index.ts src/adapters/twilio.ts --bundle --format=esm --outdir=dist --outbase=src --out-extension:.js=.mjs --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@diegoaltoworks/chatter/* --external:@libsql/client --platform=node --target=node24","test:unit":"bun test src/","typecheck":"tsc --noEmit","work:halt":"bun ./.claude/work.ts halt","test:watch":"bun test --watch","work:reset":"bun ./.claude/work.ts reset","work:watch":"bun ./.claude/work.ts watch","build:clean":"rm -rf dist","build:types":"tsc -p tsconfig.build.json --emitDeclarationOnly --outDir dist","work:resume":"bun ./.claude/work.ts resume","work:status":"bun ./.claude/work.ts status","test:coverage":"bun test --coverage","test:packaged":"bash scripts/smoke-packed-install.sh","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run security:check && bun run build","security:audit":"bun audit","security:check":"bun audit --audit-level=moderate","work:continuous":"bun ./.claude/work.ts run --continuous","test:integration":"bun test test/integration/**/*.test.ts","security:audit:fix":"bun update"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c92b6648-5d3b-4896-b37f-9f8c66acf00c"}},"overrides":{"qs":"^6.15.3","ws":"^8.21.1","yaml":"^2.8.3","fast-uri":"^3.1.3","form-data":"^4.0.6","picomatch":"^4.0.4","ip-address":"^10.4.0","path-to-regexp":"^8.4.0","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/diegoaltoworks/talker.git","type":"git"},"_npmVersion":"12.0.2","description":"Telephony plugin for Chatter — adds voice call and SMS support via Twilio","directories":{},"lint-staged":{"*.ts":["bash -c 'tsc --noEmit --skipLibCheck'"],"*.{ts,js,json,md}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"hono":"^4.13.0","husky":"^9.1.7","openai":"^7.1.0","esbuild":"^0.28.0","@types/bun":"^1.1.12","typescript":"^7.0.2","@types/node":"^26.1.2","lint-staged":"^17.0.8","@biomejs/biome":"^2.5.6","@libsql/client":"^0.17.0","@diegoaltoworks/chatter":"^0.32.0"},"peerDependencies":{"hono":"^4.12.34 || ^5.0.0","openai":"^4.0.0 || ^7.1.0","@libsql/client":">=0.6.0","@diegoaltoworks/chatter":">=0.32.0 <1"},"peerDependenciesMeta":{"openai":{"optional":true},"@libsql/client":{"optional":true},"@diegoaltoworks/chatter":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talker_0.42.0_1786838998646_0.989123213922938","host":"s3://npm-registry-packages-npm-production"}},"0.43.0":{"name":"@diegoaltoworks/talker","version":"0.43.0","keywords":["telephony","twilio","voice","sms","chatbot","chatter","twiml","conversational-ai","ivr","phone"],"author":{"name":"Diego Alto","email":"diego@diegoalto.works"},"license":"MIT","_id":"@diegoaltoworks/talker@0.43.0","maintainers":[{"name":"diegoaltoworks","email":"diego@diegoalto.co.uk"}],"homepage":"https://github.com/diegoaltoworks/talker#readme","bugs":{"url":"https://github.com/diegoaltoworks/talker/issues"},"dist":{"shasum":"82cdd5127051d1b85054ad6f214b6fe3a0ca6d1a","tarball":"https://registry.npmjs.org/@diegoaltoworks/talker/-/talker-0.43.0.tgz","fileCount":76,"integrity":"sha512-qQpgpUM0aJY9eatTUeSURDFziKUTHKUQChTiAwuuDYcFHl5Cs98n2SaaSO8jghw6AaM7iZk2bQExhq395YNkAQ==","signatures":[{"sig":"MEQCICNNrvUf737Sm6X3Q3IRf5BLf6tK0gr8JjqJDI5w2CBZAiBXaZk9nsOyHsm+/8i72fClgexwepylZy3FR1BNjvd53w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@diegoaltoworks%2ftalker@0.43.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":333598},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./twilio":{"types":"./dist/adapters/twilio.d.ts","import":"./dist/adapters/twilio.mjs","require":"./dist/adapters/twilio.js"}},"gitHead":"da69331936ca6c9912b39a64e811089ee1560aed","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check .","test":"bun test","work":"bun ./.claude/work.ts run","build":"bun run build:clean && bun run build:types && bun run build:esm && bun run build:cjs","check":"bun run typecheck && bun run lint && bun run test && bun run security:check","format":"biome format --write .","prepare":"(husky || true) && bun run build","lint:fix":"biome check --write .","build:cjs":"esbuild src/index.ts src/adapters/twilio.ts --bundle --format=cjs --outdir=dist --outbase=src --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@diegoaltoworks/chatter/* --external:@libsql/client --platform=node --target=node24","build:esm":"esbuild src/index.ts src/adapters/twilio.ts --bundle --format=esm --outdir=dist --outbase=src --out-extension:.js=.mjs --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@diegoaltoworks/chatter/* --external:@libsql/client --platform=node --target=node24","test:unit":"bun test src/","typecheck":"tsc --noEmit","work:halt":"bun ./.claude/work.ts halt","test:watch":"bun test --watch","work:reset":"bun ./.claude/work.ts reset","work:watch":"bun ./.claude/work.ts watch","build:clean":"rm -rf dist","build:types":"tsc -p tsconfig.build.json --emitDeclarationOnly --outDir dist","work:resume":"bun ./.claude/work.ts resume","work:status":"bun ./.claude/work.ts status","test:coverage":"bun test --coverage","test:packaged":"bash scripts/smoke-packed-install.sh","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run security:check && bun run build","security:audit":"bun audit","security:check":"bun audit --audit-level=moderate","work:continuous":"bun ./.claude/work.ts run --continuous","test:integration":"bun test test/integration/**/*.test.ts","security:audit:fix":"bun update"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c92b6648-5d3b-4896-b37f-9f8c66acf00c"}},"overrides":{"qs":"^6.15.3","ws":"^8.21.1","yaml":"^2.8.3","fast-uri":"^3.1.3","form-data":"^4.0.6","picomatch":"^4.0.4","ip-address":"^10.4.0","path-to-regexp":"^8.4.0","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/diegoaltoworks/talker.git","type":"git"},"_npmVersion":"12.0.2","description":"Telephony plugin for Chatter — adds voice call and SMS support via Twilio","directories":{},"lint-staged":{"*.ts":["bash -c 'tsc --noEmit --skipLibCheck'"],"*.{ts,js,json,md}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"hono":"^4.13.0","husky":"^9.1.7","openai":"^7.1.0","esbuild":"^0.28.0","@types/bun":"^1.1.12","typescript":"^7.0.2","@types/node":"^26.1.2","lint-staged":"^17.0.8","@biomejs/biome":"^2.5.6","@libsql/client":"^0.17.0","@diegoaltoworks/chatter":"^0.32.0"},"peerDependencies":{"hono":"^4.12.34 || ^5.0.0","openai":"^4.0.0 || ^7.1.0","@libsql/client":">=0.6.0","@diegoaltoworks/chatter":">=0.32.0 <1"},"peerDependenciesMeta":{"openai":{"optional":true},"@libsql/client":{"optional":true},"@diegoaltoworks/chatter":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talker_0.43.0_1786839834545_0.22576137713522804","host":"s3://npm-registry-packages-npm-production"}},"0.44.0":{"name":"@diegoaltoworks/talker","version":"0.44.0","keywords":["telephony","twilio","voice","sms","chatbot","chatter","twiml","conversational-ai","ivr","phone"],"author":{"name":"Diego Alto","email":"diego@diegoalto.works"},"license":"MIT","_id":"@diegoaltoworks/talker@0.44.0","maintainers":[{"name":"diegoaltoworks","email":"diego@diegoalto.co.uk"}],"homepage":"https://github.com/diegoaltoworks/talker#readme","bugs":{"url":"https://github.com/diegoaltoworks/talker/issues"},"dist":{"shasum":"36e721902b4ecace12e08dc4aefa89eb64bea4f1","tarball":"https://registry.npmjs.org/@diegoaltoworks/talker/-/talker-0.44.0.tgz","fileCount":77,"integrity":"sha512-oyJUyYAkuQFy6TopZbf89sa50Gmee7ioc0L0h9LlfPQPyWE4+SyS7PD7PGSqzlwUR3slBIxsTXSwzvNzd5GklQ==","signatures":[{"sig":"MEYCIQDJiA5/Q7ChQSHuemEqLrlrKFdF//liTquQumhEtkDrZgIhAJV6S5btdxAuPfr8GIhLPryJWTAzefSv/ny9rtT7yPx/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@diegoaltoworks%2ftalker@0.44.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":335990},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./twilio":{"types":"./dist/adapters/twilio.d.ts","import":"./dist/adapters/twilio.mjs","require":"./dist/adapters/twilio.js"}},"gitHead":"410f2c5c17da4001a29125c4f12a405c22fab293","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check .","test":"bun test","work":"bun ./.claude/work.ts run","build":"bun run build:clean && bun run build:types && bun run build:esm && bun run build:cjs","check":"bun run typecheck && bun run lint && bun run test && bun run security:check","format":"biome format --write .","prepare":"(husky || true) && bun run build","lint:fix":"biome check --write .","build:cjs":"esbuild src/index.ts src/adapters/twilio.ts --bundle --format=cjs --outdir=dist --outbase=src --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@diegoaltoworks/chatter/* --external:@libsql/client --platform=node --target=node24","build:esm":"esbuild src/index.ts src/adapters/twilio.ts --bundle --format=esm --define:__dirname=import.meta.dirname --outdir=dist --outbase=src --out-extension:.js=.mjs --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@diegoaltoworks/chatter/* --external:@libsql/client --platform=node --target=node24","test:unit":"bun test src/","typecheck":"tsc --noEmit","work:halt":"bun ./.claude/work.ts halt","test:watch":"bun test --watch","work:reset":"bun ./.claude/work.ts reset","work:watch":"bun ./.claude/work.ts watch","build:clean":"rm -rf dist","build:types":"tsc -p tsconfig.build.json --emitDeclarationOnly --outDir dist","work:resume":"bun ./.claude/work.ts resume","work:status":"bun ./.claude/work.ts status","test:coverage":"bun test --coverage","test:packaged":"bash scripts/smoke-packed-install.sh","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run security:check && bun run build","security:audit":"bun audit","security:check":"bun audit --audit-level=moderate","work:continuous":"bun ./.claude/work.ts run --continuous","test:integration":"bun test test/integration/**/*.test.ts","security:audit:fix":"bun update"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c92b6648-5d3b-4896-b37f-9f8c66acf00c"}},"overrides":{"qs":"^6.15.3","ws":"^8.21.1","yaml":"^2.8.3","fast-uri":"^3.1.3","form-data":"^4.0.6","picomatch":"^4.0.4","ip-address":"^10.4.0","path-to-regexp":"^8.4.0","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/diegoaltoworks/talker.git","type":"git"},"_npmVersion":"12.0.2","description":"Telephony plugin for Chatter — adds voice call and SMS support via Twilio","directories":{},"lint-staged":{"*.ts":["bash -c 'tsc --noEmit --skipLibCheck'"],"*.{ts,js,json,md}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"hono":"^4.13.0","husky":"^9.1.7","openai":"^7.1.0","esbuild":"^0.28.0","@types/bun":"^1.1.12","typescript":"^7.0.2","@types/node":"^26.1.2","lint-staged":"^17.0.8","@biomejs/biome":"^2.5.6","@libsql/client":"^0.17.0","@diegoaltoworks/chatter":"^0.32.0"},"peerDependencies":{"hono":"^4.12.34 || ^5.0.0","openai":"^4.0.0 || ^7.1.0","@libsql/client":">=0.6.0","@diegoaltoworks/chatter":">=0.32.0 <1"},"peerDependenciesMeta":{"openai":{"optional":true},"@libsql/client":{"optional":true},"@diegoaltoworks/chatter":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talker_0.44.0_1786856810839_0.3919342628697553","host":"s3://npm-registry-packages-npm-production"}},"0.45.0":{"name":"@diegoaltoworks/talker","version":"0.45.0","keywords":["telephony","twilio","voice","sms","chatbot","chatter","twiml","conversational-ai","ivr","phone"],"author":{"name":"Diego Alto","email":"diego@diegoalto.works"},"license":"MIT","_id":"@diegoaltoworks/talker@0.45.0","maintainers":[{"name":"diegoaltoworks","email":"diego@diegoalto.co.uk"}],"homepage":"https://github.com/diegoaltoworks/talker#readme","bugs":{"url":"https://github.com/diegoaltoworks/talker/issues"},"dist":{"shasum":"70fe370c562460bc8dc93750c6dc1299df9cd954","tarball":"https://registry.npmjs.org/@diegoaltoworks/talker/-/talker-0.45.0.tgz","fileCount":78,"integrity":"sha512-8SbhY+RIS1MjmgLJ3JvmRNQIP9MpDiUDQOP8Mf0I+erCkYnyR4cdDAn6UjtmInrsQVsWEfO5EJam7vUuTr+HFA==","signatures":[{"sig":"MEUCIQDF527pCoI+LPw1uzBnOIWaXcTvLiM+xewnWHZ6yG+NEwIgI7o5+tTLIE45vUTHGbfHEyogougsEWICiU22AL3bB9I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@diegoaltoworks%2ftalker@0.45.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":340539},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./twilio":{"types":"./dist/adapters/twilio.d.ts","import":"./dist/adapters/twilio.mjs","require":"./dist/adapters/twilio.js"}},"gitHead":"20dc1865f32ca2e13d40e02a72852ac86f475e47","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check .","test":"bun test","work":"bun ./.claude/work.ts run","build":"bun run build:clean && bun run build:types && bun run build:esm && bun run build:cjs","check":"bun run typecheck && bun run lint && bun run test && bun run security:check","format":"biome format --write .","prepare":"(husky || true) && bun run build","lint:fix":"biome check --write .","build:cjs":"esbuild src/index.ts src/adapters/twilio.ts --bundle --format=cjs --outdir=dist --outbase=src --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@diegoaltoworks/chatter/* --external:@libsql/client --platform=node --target=node24","build:esm":"esbuild src/index.ts src/adapters/twilio.ts --bundle --format=esm --define:__dirname=import.meta.dirname --outdir=dist --outbase=src --out-extension:.js=.mjs --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@diegoaltoworks/chatter/* --external:@libsql/client --platform=node --target=node24","test:unit":"bun test src/","typecheck":"tsc --noEmit","work:halt":"bun ./.claude/work.ts halt","test:watch":"bun test --watch","work:reset":"bun ./.claude/work.ts reset","work:watch":"bun ./.claude/work.ts watch","build:clean":"rm -rf dist","build:types":"tsc -p tsconfig.build.json --emitDeclarationOnly --outDir dist","work:resume":"bun ./.claude/work.ts resume","work:status":"bun ./.claude/work.ts status","test:coverage":"bun test --coverage","test:packaged":"bash scripts/smoke-packed-install.sh","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run security:check && bun run build","security:audit":"bun audit","security:check":"bun audit --audit-level=moderate","work:continuous":"bun ./.claude/work.ts run --continuous","test:integration":"bun test test/integration/**/*.test.ts","security:audit:fix":"bun update"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c92b6648-5d3b-4896-b37f-9f8c66acf00c"}},"overrides":{"qs":"^6.15.3","ws":"^8.21.1","yaml":"^2.8.3","fast-uri":"^3.1.3","form-data":"^4.0.6","picomatch":"^4.0.4","ip-address":"^10.4.0","path-to-regexp":"^8.4.0","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/diegoaltoworks/talker.git","type":"git"},"_npmVersion":"12.0.2","description":"Telephony plugin for Chatter — adds voice call and SMS support via Twilio","directories":{},"lint-staged":{"*.ts":["bash -c 'tsc --noEmit --skipLibCheck'"],"*.{ts,js,json,md}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"hono":"^4.13.0","husky":"^9.1.7","openai":"^7.1.0","esbuild":"^0.28.0","@types/bun":"^1.1.12","typescript":"^7.0.2","@types/node":"^26.1.2","lint-staged":"^17.0.8","@biomejs/biome":"^2.5.6","@libsql/client":"^0.17.0","@diegoaltoworks/chatter":"^0.32.0"},"peerDependencies":{"hono":"^4.12.34 || ^5.0.0","openai":"^4.0.0 || ^7.1.0","@libsql/client":">=0.6.0","@diegoaltoworks/chatter":">=0.32.0 <1"},"peerDependenciesMeta":{"openai":{"optional":true},"@libsql/client":{"optional":true},"@diegoaltoworks/chatter":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talker_0.45.0_1786857076234_0.599310552830042","host":"s3://npm-registry-packages-npm-production"}},"0.46.0":{"name":"@diegoaltoworks/talker","version":"0.46.0","keywords":["telephony","twilio","voice","sms","chatbot","chatter","twiml","conversational-ai","ivr","phone"],"author":{"name":"Diego Alto","email":"diego@diegoalto.works"},"license":"MIT","_id":"@diegoaltoworks/talker@0.46.0","maintainers":[{"name":"diegoaltoworks","email":"diego@diegoalto.co.uk"}],"homepage":"https://github.com/diegoaltoworks/talker#readme","bugs":{"url":"https://github.com/diegoaltoworks/talker/issues"},"dist":{"shasum":"cd24773e8e900a6278d0f85d0f4d3227c610e71e","tarball":"https://registry.npmjs.org/@diegoaltoworks/talker/-/talker-0.46.0.tgz","fileCount":78,"integrity":"sha512-keCxKPt2C1cg2j38M9vdddnYFW4TK1fmLZrNGOkh8aAk95nNxxhoXDO+Tecm3GBi654jq++2MaEr+Pd8pih6zQ==","signatures":[{"sig":"MEUCIQCUi4D7RBfbYW/NstqTOb2NQaKECSeyG1e2mEzoBvZaEwIgMG70AkS4zDk2rB7CwlJWlvWMSx7cuLE7ZJ7ZdaLXOq8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@diegoaltoworks%2ftalker@0.46.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":340539},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./twilio":{"types":"./dist/adapters/twilio.d.ts","import":"./dist/adapters/twilio.mjs","require":"./dist/adapters/twilio.js"}},"gitHead":"b7b3d4753c1845f8492a296bf53586c06c246831","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check .","test":"bun test","work":"bun ./.claude/work.ts run","build":"bun run build:clean && bun run build:types && bun run build:esm && bun run build:cjs","check":"bun run typecheck && bun run lint && bun run test && bun run security:check","format":"biome format --write .","prepare":"(husky || true) && bun run build","lint:fix":"biome check --write .","build:cjs":"esbuild src/index.ts src/adapters/twilio.ts --bundle --format=cjs --outdir=dist --outbase=src --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@diegoaltoworks/chatter/* --external:@libsql/client --platform=node --target=node24","build:esm":"esbuild src/index.ts src/adapters/twilio.ts --bundle --format=esm --define:__dirname=import.meta.dirname --outdir=dist --outbase=src --out-extension:.js=.mjs --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@diegoaltoworks/chatter/* --external:@libsql/client --platform=node --target=node24","test:unit":"bun test src/","typecheck":"tsc --noEmit","work:halt":"bun ./.claude/work.ts halt","test:watch":"bun test --watch","work:reset":"bun ./.claude/work.ts reset","work:watch":"bun ./.claude/work.ts watch","build:clean":"rm -rf dist","build:types":"tsc -p tsconfig.build.json --emitDeclarationOnly --outDir dist","work:resume":"bun ./.claude/work.ts resume","work:status":"bun ./.claude/work.ts status","test:coverage":"bun test --coverage","test:packaged":"bash scripts/smoke-packed-install.sh","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run security:check && bun run build","security:audit":"bun audit","security:check":"bun audit --audit-level=moderate","work:continuous":"bun ./.claude/work.ts run --continuous","test:integration":"bun test test/integration/**/*.test.ts","security:audit:fix":"bun update"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c92b6648-5d3b-4896-b37f-9f8c66acf00c"}},"overrides":{"qs":"^6.15.3","ws":"^8.21.1","yaml":"^2.8.3","fast-uri":"^3.1.3","form-data":"^4.0.6","picomatch":"^4.0.4","ip-address":"^10.4.0","path-to-regexp":"^8.4.0","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/diegoaltoworks/talker.git","type":"git"},"_npmVersion":"12.0.2","description":"Telephony plugin for Chatter — adds voice call and SMS support via Twilio","directories":{},"lint-staged":{"*.ts":["bash -c 'tsc --noEmit --skipLibCheck'"],"*.{ts,js,json,md}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"hono":"^4.13.0","husky":"^9.1.7","openai":"^7.1.0","esbuild":"^0.28.0","@types/bun":"^1.1.12","typescript":"^7.0.2","@types/node":"^26.1.2","lint-staged":"^17.0.8","@biomejs/biome":"^2.5.6","@libsql/client":"^0.17.0","@diegoaltoworks/chatter":"^0.32.0"},"peerDependencies":{"hono":"^4.12.34 || ^5.0.0","openai":"^4.0.0 || ^7.1.0","@libsql/client":">=0.6.0","@diegoaltoworks/chatter":">=0.32.0 <1"},"peerDependenciesMeta":{"openai":{"optional":true},"@libsql/client":{"optional":true},"@diegoaltoworks/chatter":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talker_0.46.0_1786857594284_0.9798864034032979","host":"s3://npm-registry-packages-npm-production"}},"0.47.0":{"name":"@diegoaltoworks/talker","version":"0.47.0","keywords":["telephony","twilio","voice","sms","chatbot","chatter","twiml","conversational-ai","ivr","phone"],"author":{"name":"Diego Alto","email":"diego@diegoalto.works"},"license":"MIT","_id":"@diegoaltoworks/talker@0.47.0","maintainers":[{"name":"diegoaltoworks","email":"diego@diegoalto.co.uk"}],"homepage":"https://github.com/diegoaltoworks/talker#readme","bugs":{"url":"https://github.com/diegoaltoworks/talker/issues"},"dist":{"shasum":"0a7a2e263314d2373e0f05788e4290cb5f34ae5d","tarball":"https://registry.npmjs.org/@diegoaltoworks/talker/-/talker-0.47.0.tgz","fileCount":78,"integrity":"sha512-CSrJRPsKgzrLXwDUX/V5SUogRhsCmXHuoShjUv99x40rSUV8DkkLJKmiVUnGx+EK4tRFMOhFni6UtLH59/vPDQ==","signatures":[{"sig":"MEYCIQC1F5fL9i76UlSdp6UPtBm5YHdyL2yU5tsNSPbnMtHiKQIhANtx+NNozacMrdTwNJurO7/YgIAtvLXtX/fs9GEp3zcw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@diegoaltoworks%2ftalker@0.47.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":340539},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./twilio":{"types":"./dist/adapters/twilio.d.ts","import":"./dist/adapters/twilio.mjs","require":"./dist/adapters/twilio.js"}},"gitHead":"f5295e884dbe0d323b61ea708cb0e2e81a730386","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check .","test":"bun test","work":"bun ./.claude/work.ts run","build":"bun run build:clean && bun run build:types && bun run build:esm && bun run build:cjs","check":"bun run typecheck && bun run lint && bun run test && bun run security:check","format":"biome format --write .","prepare":"(husky || true) && bun run build","lint:fix":"biome check --write .","build:cjs":"esbuild src/index.ts src/adapters/twilio.ts --bundle --format=cjs --outdir=dist --outbase=src --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@diegoaltoworks/chatter/* --external:@libsql/client --platform=node --target=node24","build:esm":"esbuild src/index.ts src/adapters/twilio.ts --bundle --format=esm --define:__dirname=import.meta.dirname --outdir=dist --outbase=src --out-extension:.js=.mjs --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@diegoaltoworks/chatter/* --external:@libsql/client --platform=node --target=node24","test:unit":"bun test src/","typecheck":"tsc --noEmit","work:halt":"bun ./.claude/work.ts halt","test:watch":"bun test --watch","work:reset":"bun ./.claude/work.ts reset","work:watch":"bun ./.claude/work.ts watch","build:clean":"rm -rf dist","build:types":"tsc -p tsconfig.build.json --emitDeclarationOnly --outDir dist","work:resume":"bun ./.claude/work.ts resume","work:status":"bun ./.claude/work.ts status","test:coverage":"bun test --coverage","test:packaged":"bash scripts/smoke-packed-install.sh","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run security:check && bun run build","security:audit":"bun audit","security:check":"bun audit --audit-level=moderate","work:continuous":"bun ./.claude/work.ts run --continuous","test:integration":"bun test test/integration/**/*.test.ts","security:audit:fix":"bun update"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c92b6648-5d3b-4896-b37f-9f8c66acf00c"}},"overrides":{"qs":"^6.15.3","ws":"^8.21.1","yaml":"^2.8.3","fast-uri":"^3.1.3","form-data":"^4.0.6","picomatch":"^4.0.4","ip-address":"^10.4.0","path-to-regexp":"^8.4.0","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/diegoaltoworks/talker.git","type":"git"},"_npmVersion":"12.0.2","description":"Telephony plugin for Chatter — adds voice call and SMS support via Twilio","directories":{},"lint-staged":{"*.ts":["bash -c 'tsc --noEmit --skipLibCheck'"],"*.{ts,js,json,md}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"hono":"^4.13.0","husky":"^9.1.7","openai":"^7.1.0","esbuild":"^0.28.0","@types/bun":"^1.1.12","typescript":"^7.0.2","@types/node":"^26.1.2","lint-staged":"^17.0.8","@biomejs/biome":"^2.5.6","@libsql/client":"^0.17.0","@diegoaltoworks/chatter":"^0.32.0"},"peerDependencies":{"hono":"^4.12.34 || ^5.0.0","openai":"^4.0.0 || ^7.1.0","@libsql/client":">=0.6.0","@diegoaltoworks/chatter":">=0.32.0 <1"},"peerDependenciesMeta":{"openai":{"optional":true},"@libsql/client":{"optional":true},"@diegoaltoworks/chatter":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talker_0.47.0_1786858387986_0.5554700594712705","host":"s3://npm-registry-packages-npm-production"}},"0.48.0":{"name":"@diegoaltoworks/talker","version":"0.48.0","keywords":["telephony","twilio","voice","sms","chatbot","chatter","twiml","conversational-ai","ivr","phone"],"author":{"name":"Diego Alto","email":"diego@diegoalto.works"},"license":"MIT","_id":"@diegoaltoworks/talker@0.48.0","maintainers":[{"name":"diegoaltoworks","email":"diego@diegoalto.co.uk"}],"homepage":"https://github.com/diegoaltoworks/talker#readme","bugs":{"url":"https://github.com/diegoaltoworks/talker/issues"},"dist":{"shasum":"58dfaa021ccc37f314231ee5712f9b1b11b3e066","tarball":"https://registry.npmjs.org/@diegoaltoworks/talker/-/talker-0.48.0.tgz","fileCount":78,"integrity":"sha512-PIl7j70YP7//iPcu2cNYRbjxh2G/n3utrr7jg9zE1hAuvFnQa+Bi3A8OZViDbvQAkiX0NBBybtRV1DBLc3RRsA==","signatures":[{"sig":"MEUCIQCEv7TGqEqXwxisFhGRnXsnBI7gjLHxHXrlJnJ8IkrZ1QIgIHO+hrifEpRvs5OBZ5TqJB0qPaZ3oDLEMb1+nvn5OrM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@diegoaltoworks%2ftalker@0.48.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":345021},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./twilio":{"types":"./dist/adapters/twilio.d.ts","import":"./dist/adapters/twilio.mjs","require":"./dist/adapters/twilio.js"}},"gitHead":"e4f56a1f67f61df1832e47275a551765dc865b9b","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check .","test":"bun test","work":"bun ./.claude/work.ts run","build":"bun run build:clean && bun run build:types && bun run build:esm && bun run build:cjs","check":"bun run typecheck && bun run lint && bun run test && bun run security:check","format":"biome format --write .","prepare":"(husky || true) && bun run build","lint:fix":"biome check --write .","build:cjs":"esbuild src/index.ts src/adapters/twilio.ts --bundle --format=cjs --outdir=dist --outbase=src --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@diegoaltoworks/chatter/* --external:@libsql/client --platform=node --target=node24","build:esm":"esbuild src/index.ts src/adapters/twilio.ts --bundle --format=esm --define:__dirname=import.meta.dirname --outdir=dist --outbase=src --out-extension:.js=.mjs --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@diegoaltoworks/chatter/* --external:@libsql/client --platform=node --target=node24","test:unit":"bun test src/","typecheck":"tsc --noEmit","work:halt":"bun ./.claude/work.ts halt","test:watch":"bun test --watch","work:reset":"bun ./.claude/work.ts reset","work:watch":"bun ./.claude/work.ts watch","build:clean":"rm -rf dist","build:types":"tsc -p tsconfig.build.json --emitDeclarationOnly --outDir dist","work:resume":"bun ./.claude/work.ts resume","work:status":"bun ./.claude/work.ts status","test:coverage":"bun test --coverage","test:packaged":"bash scripts/smoke-packed-install.sh","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run security:check && bun run build","security:audit":"bun audit","security:check":"bun audit --audit-level=moderate","work:continuous":"bun ./.claude/work.ts run --continuous","test:integration":"bun test test/integration/**/*.test.ts","security:audit:fix":"bun update"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c92b6648-5d3b-4896-b37f-9f8c66acf00c"}},"overrides":{"qs":"^6.15.3","ws":"^8.21.1","yaml":"^2.8.3","fast-uri":"^3.1.3","form-data":"^4.0.6","picomatch":"^4.0.4","ip-address":"^10.4.0","path-to-regexp":"^8.4.0","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/diegoaltoworks/talker.git","type":"git"},"_npmVersion":"12.0.2","description":"Telephony plugin for Chatter — adds voice call and SMS support via Twilio","directories":{},"lint-staged":{"*.ts":["bash -c 'tsc --noEmit --skipLibCheck'"],"*.{ts,js,json,md}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"hono":"^4.13.0","husky":"^9.1.7","openai":"^7.1.0","esbuild":"^0.28.0","@types/bun":"^1.1.12","typescript":"^7.0.2","@types/node":"^26.1.2","lint-staged":"^17.0.8","@biomejs/biome":"^2.5.6","@libsql/client":"^0.17.0","@diegoaltoworks/chatter":"^0.32.0"},"peerDependencies":{"hono":"^4.12.34 || ^5.0.0","openai":"^4.0.0 || ^7.1.0","@libsql/client":">=0.6.0","@diegoaltoworks/chatter":">=0.32.0 <1"},"peerDependenciesMeta":{"openai":{"optional":true},"@libsql/client":{"optional":true},"@diegoaltoworks/chatter":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talker_0.48.0_1786859163583_0.6987617523655076","host":"s3://npm-registry-packages-npm-production"}},"0.49.0":{"name":"@diegoaltoworks/talker","version":"0.49.0","keywords":["telephony","twilio","voice","sms","chatbot","chatter","twiml","conversational-ai","ivr","phone"],"author":{"name":"Diego Alto","email":"diego@diegoalto.works"},"license":"MIT","_id":"@diegoaltoworks/talker@0.49.0","maintainers":[{"name":"diegoaltoworks","email":"diego@diegoalto.co.uk"}],"homepage":"https://github.com/diegoaltoworks/talker#readme","bugs":{"url":"https://github.com/diegoaltoworks/talker/issues"},"dist":{"shasum":"0182969fd74770f1b36d88bb9f9fae66b72cc92e","tarball":"https://registry.npmjs.org/@diegoaltoworks/talker/-/talker-0.49.0.tgz","fileCount":79,"integrity":"sha512-pgKLyjJsbKUuUAS1d/DHbys6WZ/pkGwJxtAuuHM+uyXzhLoQqpzXAJlx99RChzrGRWl1GkCA9koJg1GBrxRtlA==","signatures":[{"sig":"MEQCIH5g04uRYQTDm+u+YWb9HNsAN46KLqoCQ7TSIShkadbvAiAS4fndA8W7t+I0008CpZCbxkeQxbOtP7t9SkM5zacUYw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@diegoaltoworks%2ftalker@0.49.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":352981},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./twilio":{"types":"./dist/adapters/twilio.d.ts","import":"./dist/adapters/twilio.mjs","require":"./dist/adapters/twilio.js"}},"gitHead":"87d0d4138e1e1c6641ef0bdd538a340203f3e522","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check .","test":"bun test","work":"bun ./.claude/work.ts run","build":"bun run build:clean && bun run build:types && bun run build:esm && bun run build:cjs","check":"bun run typecheck && bun run lint && bun run test && bun run security:check","format":"biome format --write .","prepare":"(husky || true) && bun run build","lint:fix":"biome check --write .","build:cjs":"esbuild src/index.ts src/adapters/twilio.ts --bundle --format=cjs --outdir=dist --outbase=src --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@diegoaltoworks/chatter/* --external:@libsql/client --platform=node --target=node24","build:esm":"esbuild src/index.ts src/adapters/twilio.ts --bundle --format=esm --define:__dirname=import.meta.dirname --outdir=dist --outbase=src --out-extension:.js=.mjs --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@diegoaltoworks/chatter/* --external:@libsql/client --platform=node --target=node24","test:unit":"bun test src/","typecheck":"tsc --noEmit","work:halt":"bun ./.claude/work.ts halt","test:watch":"bun test --watch","work:reset":"bun ./.claude/work.ts reset","work:watch":"bun ./.claude/work.ts watch","build:clean":"rm -rf dist","build:types":"tsc -p tsconfig.build.json --emitDeclarationOnly --outDir dist","work:resume":"bun ./.claude/work.ts resume","work:status":"bun ./.claude/work.ts status","test:coverage":"bun test --coverage","test:packaged":"bash scripts/smoke-packed-install.sh","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run security:check && bun run build","security:audit":"bun audit","security:check":"bun audit --audit-level=moderate","work:continuous":"bun ./.claude/work.ts run --continuous","test:integration":"bun test test/integration/**/*.test.ts","security:audit:fix":"bun update"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c92b6648-5d3b-4896-b37f-9f8c66acf00c"}},"overrides":{"qs":"^6.15.3","ws":"^8.21.1","yaml":"^2.8.3","fast-uri":"^3.1.3","form-data":"^4.0.6","picomatch":"^4.0.4","ip-address":"^10.4.0","path-to-regexp":"^8.4.0","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/diegoaltoworks/talker.git","type":"git"},"_npmVersion":"12.0.2","description":"Telephony plugin for Chatter — adds voice call and SMS support via Twilio","directories":{},"lint-staged":{"*.ts":["bash -c 'tsc --noEmit --skipLibCheck'"],"*.{ts,js,json,md}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"hono":"^4.13.0","husky":"^9.1.7","openai":"^7.1.0","esbuild":"^0.28.0","@types/bun":"^1.1.12","typescript":"^7.0.2","@types/node":"^26.1.2","lint-staged":"^17.0.8","@biomejs/biome":"^2.5.6","@libsql/client":"^0.17.0","@diegoaltoworks/chatter":"^0.32.0"},"peerDependencies":{"hono":"^4.12.34 || ^5.0.0","openai":"^4.0.0 || ^7.1.0","@libsql/client":">=0.6.0","@diegoaltoworks/chatter":">=0.32.0 <1"},"peerDependenciesMeta":{"openai":{"optional":true},"@libsql/client":{"optional":true},"@diegoaltoworks/chatter":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talker_0.49.0_1786860531368_0.006061217391766904","host":"s3://npm-registry-packages-npm-production"}},"0.50.0":{"name":"@diegoaltoworks/talker","version":"0.50.0","keywords":["telephony","twilio","voice","sms","chatbot","chatter","twiml","conversational-ai","ivr","phone"],"author":{"name":"Diego Alto","email":"diego@diegoalto.works"},"license":"MIT","_id":"@diegoaltoworks/talker@0.50.0","maintainers":[{"name":"diegoaltoworks","email":"diego@diegoalto.co.uk"}],"homepage":"https://github.com/diegoaltoworks/talker#readme","bugs":{"url":"https://github.com/diegoaltoworks/talker/issues"},"dist":{"shasum":"14f24fb904e08613def875ef3c961621a0c5e1d3","tarball":"https://registry.npmjs.org/@diegoaltoworks/talker/-/talker-0.50.0.tgz","fileCount":79,"integrity":"sha512-twTYDeLHiaXemMkkn/l48rSUVRp8kCWpEzXaHvazTZspbSdQTVA//QFS19DAMupwlEEJFDZ7FY/8FK+SzmN62A==","signatures":[{"sig":"MEYCIQD2BFYOKw7edttyXZF0W87ljq3XNwGSbMIXbRHe/iIr/wIhAI9HJUvYI43byK8Fm+RoUouWMGfnuVSw6mXl2GBppDGP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@diegoaltoworks%2ftalker@0.50.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":357545},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./twilio":{"types":"./dist/adapters/twilio.d.ts","import":"./dist/adapters/twilio.mjs","require":"./dist/adapters/twilio.js"},"./package.json":"./package.json"},"gitHead":"dfdafcdcda71d1149e31055b007f895e5bcdee48","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check .","test":"bun test","work":"bun ./.claude/work.ts run","build":"bun run build:clean && bun run build:types && bun run build:esm && bun run build:cjs","check":"bun run typecheck && bun run lint && bun run test && bun run security:check","format":"biome format --write .","prepare":"(husky || true) && bun run build","lint:fix":"biome check --write .","build:cjs":"esbuild src/index.ts src/adapters/twilio.ts --bundle --format=cjs --outdir=dist --outbase=src --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@diegoaltoworks/chatter/* --external:@libsql/client --platform=node --target=node24","build:esm":"esbuild src/index.ts src/adapters/twilio.ts --bundle --format=esm --define:__dirname=import.meta.dirname --outdir=dist --outbase=src --out-extension:.js=.mjs --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@diegoaltoworks/chatter/* --external:@libsql/client --platform=node --target=node24","test:unit":"bun test src/","typecheck":"tsc --noEmit","work:halt":"bun ./.claude/work.ts halt","test:watch":"bun test --watch","work:reset":"bun ./.claude/work.ts reset","work:watch":"bun ./.claude/work.ts watch","build:clean":"rm -rf dist","build:types":"tsc -p tsconfig.build.json --emitDeclarationOnly --outDir dist","work:resume":"bun ./.claude/work.ts resume","work:status":"bun ./.claude/work.ts status","test:coverage":"bun test --coverage","test:packaged":"bash scripts/smoke-packed-install.sh","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run security:check && bun run build","security:audit":"bun audit","security:check":"bun audit --audit-level=moderate","work:continuous":"bun ./.claude/work.ts run --continuous","test:integration":"bun test test/integration/**/*.test.ts","security:audit:fix":"bun update"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c92b6648-5d3b-4896-b37f-9f8c66acf00c"}},"overrides":{"qs":"^6.15.3","ws":"^8.21.1","yaml":"^2.8.3","fast-uri":"^3.1.3","form-data":"^4.0.6","picomatch":"^4.0.4","ip-address":"^10.4.0","path-to-regexp":"^8.4.0","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/diegoaltoworks/talker.git","type":"git"},"_npmVersion":"12.0.2","description":"Telephony plugin for Chatter — adds voice call and SMS support via Twilio","directories":{},"lint-staged":{"*.ts":["bash -c 'tsc --noEmit --skipLibCheck'"],"*.{ts,js,json,md}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"hono":"^4.13.0","husky":"^9.1.7","openai":"^7.1.0","esbuild":"^0.28.0","@types/bun":"^1.1.12","typescript":"^7.0.2","@types/node":"^26.1.2","lint-staged":"^17.0.8","@biomejs/biome":"^2.5.6","@libsql/client":"^0.17.0","@diegoaltoworks/chatter":"^0.32.0"},"peerDependencies":{"hono":"^4.12.34 || ^5.0.0","openai":"^4.0.0 || ^7.1.0","@libsql/client":">=0.6.0","@diegoaltoworks/chatter":">=0.32.0 <1"},"peerDependenciesMeta":{"openai":{"optional":true},"@libsql/client":{"optional":true},"@diegoaltoworks/chatter":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talker_0.50.0_1786862024903_0.1515526344213487","host":"s3://npm-registry-packages-npm-production"}},"0.51.0":{"name":"@diegoaltoworks/talker","version":"0.51.0","keywords":["telephony","twilio","voice","sms","chatbot","chatter","twiml","conversational-ai","ivr","phone"],"author":{"name":"Diego Alto","email":"diego@diegoalto.works"},"license":"MIT","_id":"@diegoaltoworks/talker@0.51.0","maintainers":[{"name":"diegoaltoworks","email":"diego@diegoalto.co.uk"}],"homepage":"https://github.com/diegoaltoworks/talker#readme","bugs":{"url":"https://github.com/diegoaltoworks/talker/issues"},"dist":{"shasum":"3589974d71cb4671503286cd5b7b7ae4f38013c6","tarball":"https://registry.npmjs.org/@diegoaltoworks/talker/-/talker-0.51.0.tgz","fileCount":79,"integrity":"sha512-rQR0T8Bgxi2xzuWm20vKiw6u939L7Yy+wcOEzsWPH6YeotIeVYBhjl5guL+l3KWHB+jrupVDxBFNtB24JArBSw==","signatures":[{"sig":"MEUCIDww5dowfsXX2NdFfOuZQCZ5OU82QCslE9/5BI+Z7bdtAiEA9A/wYaKeU71zl3iv8vqgyoECrTzD00Th8JDJ8NCEx34=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@diegoaltoworks%2ftalker@0.51.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":365738},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./twilio":{"types":"./dist/adapters/twilio.d.ts","import":"./dist/adapters/twilio.mjs","require":"./dist/adapters/twilio.js"},"./package.json":"./package.json"},"gitHead":"4ff5f7791e8eec3f99df9a81cfd0deed267c8ce7","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check .","test":"bun test","work":"bun ./.claude/work.ts run","build":"bun run build:clean && bun run build:types && bun run build:esm && bun run build:cjs","check":"bun run typecheck && bun run lint && bun run test && bun run security:check","format":"biome format --write .","prepare":"(husky || true) && bun run build","lint:fix":"biome check --write .","build:cjs":"esbuild src/index.ts src/adapters/twilio.ts --bundle --format=cjs --outdir=dist --outbase=src --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@diegoaltoworks/chatter/* --external:@libsql/client --platform=node --target=node24","build:esm":"esbuild src/index.ts src/adapters/twilio.ts --bundle --format=esm --define:__dirname=import.meta.dirname --outdir=dist --outbase=src --out-extension:.js=.mjs --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@diegoaltoworks/chatter/* --external:@libsql/client --platform=node --target=node24","test:unit":"bun test src/","typecheck":"tsc --noEmit","work:halt":"bun ./.claude/work.ts halt","test:watch":"bun test --watch","work:reset":"bun ./.claude/work.ts reset","work:watch":"bun ./.claude/work.ts watch","build:clean":"rm -rf dist","build:types":"tsc -p tsconfig.build.json --emitDeclarationOnly --outDir dist","work:resume":"bun ./.claude/work.ts resume","work:status":"bun ./.claude/work.ts status","test:coverage":"bun test --coverage","test:packaged":"bash scripts/smoke-packed-install.sh","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run security:check && bun run build","security:audit":"bun audit","security:check":"bun audit --audit-level=moderate","work:continuous":"bun ./.claude/work.ts run --continuous","test:integration":"bun test test/integration/**/*.test.ts","security:audit:fix":"bun update"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c92b6648-5d3b-4896-b37f-9f8c66acf00c"}},"overrides":{"qs":"^6.15.3","ws":"^8.21.1","yaml":"^2.8.3","fast-uri":"^3.1.3","form-data":"^4.0.6","picomatch":"^4.0.4","ip-address":"^10.4.0","path-to-regexp":"^8.4.0","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/diegoaltoworks/talker.git","type":"git"},"_npmVersion":"12.0.2","description":"Telephony plugin for Chatter — adds voice call and SMS support via Twilio","directories":{},"lint-staged":{"*.ts":["bash -c 'tsc --noEmit --skipLibCheck'"],"*.{ts,js,json,md}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"hono":"^4.13.0","husky":"^9.1.7","openai":"^7.1.0","esbuild":"^0.28.0","@types/bun":"^1.1.12","typescript":"^7.0.2","@types/node":"^26.1.2","lint-staged":"^17.0.8","@biomejs/biome":"^2.5.6","@libsql/client":"^0.17.0","@diegoaltoworks/chatter":"^0.32.0"},"peerDependencies":{"hono":"^4.12.34 || ^5.0.0","openai":"^4.0.0 || ^7.1.0","@libsql/client":">=0.6.0","@diegoaltoworks/chatter":">=0.32.0 <1"},"peerDependenciesMeta":{"openai":{"optional":true},"@libsql/client":{"optional":true},"@diegoaltoworks/chatter":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talker_0.51.0_1786862691041_0.09830749427400387","host":"s3://npm-registry-packages-npm-production"}},"0.52.0":{"name":"@diegoaltoworks/talker","version":"0.52.0","keywords":["telephony","twilio","voice","sms","chatbot","chatter","twiml","conversational-ai","ivr","phone"],"author":{"name":"Diego Alto","email":"diego@diegoalto.works"},"license":"MIT","_id":"@diegoaltoworks/talker@0.52.0","maintainers":[{"name":"diegoaltoworks","email":"diego@diegoalto.co.uk"}],"homepage":"https://github.com/diegoaltoworks/talker#readme","bugs":{"url":"https://github.com/diegoaltoworks/talker/issues"},"dist":{"shasum":"2efc721baaed4dc8fed32ac2dc1f75a1feadae04","tarball":"https://registry.npmjs.org/@diegoaltoworks/talker/-/talker-0.52.0.tgz","fileCount":79,"integrity":"sha512-j7lAnhJ89EfZBcb5faUIB2IptIG570Y5HmlOfrIqgN1ER9vIcGMYG1XSxxZIbDaBDnLPEIlt22ztsfev9arZHg==","signatures":[{"sig":"MEQCIFCyZ66km3gP3raueB1pbr7Dtv6Ta/FxRYhhtdDpPVe4AiAhxFMAsJE6RuvFPLFVg26qFEQw+Few+7o/jyDUPsrY9A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@diegoaltoworks%2ftalker@0.52.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":366263},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./twilio":{"types":"./dist/adapters/twilio.d.ts","import":"./dist/adapters/twilio.mjs","require":"./dist/adapters/twilio.js"},"./package.json":"./package.json"},"gitHead":"546cb2ba1bac5bac5e1eb9e0a8cf99af1552bf2d","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check .","test":"bun test","work":"bun ./.claude/work.ts run","build":"bun run build:clean && bun run build:types && bun run build:esm && bun run build:cjs","check":"bun run typecheck && bun run lint && bun run test && bun run security:check","format":"biome format --write .","prepare":"(husky || true) && bun run build","lint:fix":"biome check --write .","build:cjs":"esbuild src/index.ts src/adapters/twilio.ts --bundle --format=cjs --outdir=dist --outbase=src --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@diegoaltoworks/chatter/* --external:@libsql/client --platform=node --target=node24","build:esm":"esbuild src/index.ts src/adapters/twilio.ts --bundle --format=esm --define:__dirname=import.meta.dirname --outdir=dist --outbase=src --out-extension:.js=.mjs --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@diegoaltoworks/chatter/* --external:@libsql/client --platform=node --target=node24","test:unit":"bun test src/","typecheck":"tsc --noEmit","work:halt":"bun ./.claude/work.ts halt","test:watch":"bun test --watch","work:reset":"bun ./.claude/work.ts reset","work:watch":"bun ./.claude/work.ts watch","build:clean":"rm -rf dist","build:types":"tsc -p tsconfig.build.json --emitDeclarationOnly --outDir dist","work:resume":"bun ./.claude/work.ts resume","work:status":"bun ./.claude/work.ts status","test:coverage":"bun test --coverage","test:packaged":"bash scripts/smoke-packed-install.sh","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run security:check && bun run build","security:audit":"bun audit","security:check":"bun audit --audit-level=moderate","work:continuous":"bun ./.claude/work.ts run --continuous","test:integration":"bun test test/integration/**/*.test.ts","security:audit:fix":"bun update"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c92b6648-5d3b-4896-b37f-9f8c66acf00c"}},"overrides":{"qs":"^6.15.3","ws":"^8.21.1","yaml":"^2.8.3","fast-uri":"^3.1.3","form-data":"^4.0.6","picomatch":"^4.0.4","ip-address":"^10.4.0","path-to-regexp":"^8.4.0","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/diegoaltoworks/talker.git","type":"git"},"_npmVersion":"12.0.2","description":"Telephony plugin for Chatter — adds voice call and SMS support via Twilio","directories":{},"lint-staged":{"*.ts":["bash -c 'tsc --noEmit --skipLibCheck'"],"*.{ts,js,json,md}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"hono":"^4.13.0","husky":"^9.1.7","openai":"^7.1.0","esbuild":"^0.28.0","@types/bun":"^1.1.12","typescript":"^7.0.2","@types/node":"^26.1.2","lint-staged":"^17.0.8","@biomejs/biome":"^2.5.6","@libsql/client":"^0.17.0","@diegoaltoworks/chatter":"^0.32.0"},"peerDependencies":{"hono":"^4.12.34 || ^5.0.0","openai":"^4.0.0 || ^7.1.0","@libsql/client":">=0.6.0","@diegoaltoworks/chatter":">=0.32.0 <1"},"peerDependenciesMeta":{"openai":{"optional":true},"@libsql/client":{"optional":true},"@diegoaltoworks/chatter":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talker_0.52.0_1786863583570_0.8463546536022428","host":"s3://npm-registry-packages-npm-production"}},"0.52.1":{"name":"@diegoaltoworks/talker","version":"0.52.1","keywords":["telephony","twilio","voice","sms","chatbot","chatter","twiml","conversational-ai","ivr","phone"],"author":{"name":"Diego Alto","email":"diego@diegoalto.works"},"license":"MIT","_id":"@diegoaltoworks/talker@0.52.1","maintainers":[{"name":"diegoaltoworks","email":"diego@diegoalto.co.uk"}],"homepage":"https://github.com/diegoaltoworks/talker#readme","bugs":{"url":"https://github.com/diegoaltoworks/talker/issues"},"dist":{"shasum":"2f1dd0c20897c7114e72bcf754ac86f12d27ea98","tarball":"https://registry.npmjs.org/@diegoaltoworks/talker/-/talker-0.52.1.tgz","fileCount":79,"integrity":"sha512-gtl+6Qwm3G2S1IyosPpOs5jjQTaGiuKZxaWsDWzdJFUAeoSXLp9cKMfQTr7j/wSvQgxajcm1yMzZBBVWA84Ylw==","signatures":[{"sig":"MEYCIQDNQv63SAjxoauaNxRb8eNK5Oi2Td5gANzL/XTqPzbpWAIhAK66jOBR0ChTFpiJV5YzWMfBk+ZnhDIie96rIdoOS6bm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@diegoaltoworks%2ftalker@0.52.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":366160},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./twilio":{"types":"./dist/adapters/twilio.d.ts","import":"./dist/adapters/twilio.mjs","require":"./dist/adapters/twilio.js"},"./package.json":"./package.json"},"gitHead":"9b63a423deb86deff3d413ddc6f33f1c91b4e79f","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check .","test":"bun test","work":"bun ./.claude/work.ts run","build":"bun run build:clean && bun run build:types && bun run build:esm && bun run build:cjs","check":"bun run typecheck && bun run lint && bun run test && bun run security:check","format":"biome format --write .","prepare":"(husky || true) && bun run build","lint:fix":"biome check --write .","build:cjs":"esbuild src/index.ts src/adapters/twilio.ts --bundle --format=cjs --outdir=dist --outbase=src --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@diegoaltoworks/chatter/* --external:@libsql/client --platform=node --target=node24","build:esm":"esbuild src/index.ts src/adapters/twilio.ts --bundle --format=esm --define:__dirname=import.meta.dirname --outdir=dist --outbase=src --out-extension:.js=.mjs --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@diegoaltoworks/chatter/* --external:@libsql/client --platform=node --target=node24","test:unit":"bun test src/","typecheck":"tsc --noEmit","work:halt":"bun ./.claude/work.ts halt","test:watch":"bun test --watch","work:reset":"bun ./.claude/work.ts reset","work:watch":"bun ./.claude/work.ts watch","build:clean":"rm -rf dist","build:types":"tsc -p tsconfig.build.json --emitDeclarationOnly --outDir dist","work:resume":"bun ./.claude/work.ts resume","work:status":"bun ./.claude/work.ts status","test:coverage":"bun test --coverage","test:packaged":"bash scripts/smoke-packed-install.sh","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run security:check && bun run build","security:audit":"bun audit","security:check":"bun audit --audit-level=moderate","work:continuous":"bun ./.claude/work.ts run --continuous","test:integration":"bun test test/integration/**/*.test.ts","security:audit:fix":"bun update"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c92b6648-5d3b-4896-b37f-9f8c66acf00c"}},"overrides":{"qs":"^6.15.3","ws":"^8.21.1","yaml":"^2.8.3","fast-uri":"^3.1.3","form-data":"^4.0.6","picomatch":"^4.0.4","ip-address":"^10.4.0","path-to-regexp":"^8.4.0","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/diegoaltoworks/talker.git","type":"git"},"_npmVersion":"12.0.2","description":"Telephony plugin for Chatter — adds voice call and SMS support via Twilio","directories":{},"lint-staged":{"*.ts":["bash -c 'tsc --noEmit --skipLibCheck'"],"*.{ts,js,json,md}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"hono":"^4.13.0","husky":"^9.1.7","openai":"^7.1.0","esbuild":"^0.28.0","@types/bun":"^1.1.12","typescript":"^7.0.2","@types/node":"^26.1.2","lint-staged":"^17.0.8","@biomejs/biome":"^2.5.6","@libsql/client":"^0.17.0","@diegoaltoworks/chatter":"^0.32.0"},"peerDependencies":{"hono":"^4.12.34 || ^5.0.0","openai":"^4.0.0 || ^7.1.0","@libsql/client":">=0.6.0","@diegoaltoworks/chatter":">=0.32.0 <1"},"peerDependenciesMeta":{"openai":{"optional":true},"@libsql/client":{"optional":true},"@diegoaltoworks/chatter":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talker_0.52.1_1786880960830_0.22039188468506543","host":"s3://npm-registry-packages-npm-production"}},"0.53.0":{"name":"@diegoaltoworks/talker","version":"0.53.0","keywords":["telephony","twilio","voice","sms","chatbot","chatter","twiml","conversational-ai","ivr","phone"],"author":{"name":"Diego Alto","email":"diego@diegoalto.works"},"license":"MIT","_id":"@diegoaltoworks/talker@0.53.0","maintainers":[{"name":"diegoaltoworks","email":"diego@diegoalto.co.uk"}],"homepage":"https://github.com/diegoaltoworks/talker#readme","bugs":{"url":"https://github.com/diegoaltoworks/talker/issues"},"dist":{"shasum":"977937f5e3256e29e2e47a24dfa94ba491a60dc3","tarball":"https://registry.npmjs.org/@diegoaltoworks/talker/-/talker-0.53.0.tgz","fileCount":79,"integrity":"sha512-iTsgK4FhRvuGzuDEQLZkHmfNUG/GhCPO2ARL3AlFbFVWRMI8baa0/bLxlws5rNPRkQCnGHsGdpwt7dPooi6Zuw==","signatures":[{"sig":"MEQCIHWWaKqnaUK1H7s84V5xZwEUwiA2BuryQZ3rLjrGVLz5AiBOnSFV0hECh9BXSf8lmQKsRCT7xWYtEEnbyJqyFbsmCA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@diegoaltoworks%2ftalker@0.53.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":372471},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./twilio":{"types":"./dist/adapters/twilio.d.ts","import":"./dist/adapters/twilio.mjs","require":"./dist/adapters/twilio.js"},"./package.json":"./package.json"},"gitHead":"c9afc708670fdeb756316eda666b734ff1f45bab","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check .","test":"bun test","work":"bun ./.claude/work.ts run","build":"bun run build:clean && bun run build:types && bun run build:esm && bun run build:cjs","check":"bun run typecheck && bun run lint && bun run test && bun run security:check","format":"biome format --write .","prepare":"(husky || true) && bun run build","lint:fix":"biome check --write .","build:cjs":"esbuild src/index.ts src/adapters/twilio.ts --bundle --format=cjs --outdir=dist --outbase=src --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@diegoaltoworks/chatter/* --external:@libsql/client --platform=node --target=node24","build:esm":"esbuild src/index.ts src/adapters/twilio.ts --bundle --format=esm --define:__dirname=import.meta.dirname --outdir=dist --outbase=src --out-extension:.js=.mjs --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@diegoaltoworks/chatter/* --external:@libsql/client --platform=node --target=node24","test:unit":"bun test src/","typecheck":"tsc --noEmit","work:halt":"bun ./.claude/work.ts halt","test:watch":"bun test --watch","work:reset":"bun ./.claude/work.ts reset","work:watch":"bun ./.claude/work.ts watch","build:clean":"rm -rf dist","build:types":"tsc -p tsconfig.build.json --emitDeclarationOnly --outDir dist","work:resume":"bun ./.claude/work.ts resume","work:status":"bun ./.claude/work.ts status","test:coverage":"bun test --coverage","test:packaged":"bash scripts/smoke-packed-install.sh","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run security:check && bun run build","security:audit":"bun audit","security:check":"bun audit --audit-level=moderate","work:continuous":"bun ./.claude/work.ts run --continuous","test:integration":"bun test test/integration/**/*.test.ts","security:audit:fix":"bun update"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c92b6648-5d3b-4896-b37f-9f8c66acf00c"}},"overrides":{"qs":"^6.15.3","ws":"^8.21.1","yaml":"^2.8.3","fast-uri":"^3.1.3","form-data":"^4.0.6","picomatch":"^4.0.4","ip-address":"^10.4.0","path-to-regexp":"^8.4.0","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/diegoaltoworks/talker.git","type":"git"},"_npmVersion":"12.0.2","description":"Telephony plugin for Chatter — adds voice call and SMS support via Twilio","directories":{},"lint-staged":{"*.ts":["bash -c 'tsc --noEmit --skipLibCheck'"],"*.{ts,js,json,md}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"hono":"^4.13.0","husky":"^9.1.7","openai":"^7.1.0","esbuild":"^0.28.0","@types/bun":"^1.1.12","typescript":"^7.0.2","@types/node":"^26.1.2","lint-staged":"^17.0.8","@biomejs/biome":"^2.5.6","@libsql/client":"^0.17.0","@diegoaltoworks/chatter":"^0.32.0"},"peerDependencies":{"hono":"^4.12.34 || ^5.0.0","openai":"^4.0.0 || ^7.1.0","@libsql/client":">=0.6.0","@diegoaltoworks/chatter":">=0.32.0 <1"},"peerDependenciesMeta":{"openai":{"optional":true},"@libsql/client":{"optional":true},"@diegoaltoworks/chatter":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talker_0.53.0_1786882138755_0.04325689612545047","host":"s3://npm-registry-packages-npm-production"}},"0.54.0":{"name":"@diegoaltoworks/talker","version":"0.54.0","keywords":["telephony","twilio","voice","sms","chatbot","chatter","twiml","conversational-ai","ivr","phone"],"author":{"name":"Diego Alto","email":"diego@diegoalto.works"},"license":"MIT","_id":"@diegoaltoworks/talker@0.54.0","maintainers":[{"name":"diegoaltoworks","email":"diego@diegoalto.co.uk"}],"homepage":"https://github.com/diegoaltoworks/talker#readme","bugs":{"url":"https://github.com/diegoaltoworks/talker/issues"},"dist":{"shasum":"cb2eaf2e518a3f1afd7df2f88bacd082613dbc4b","tarball":"https://registry.npmjs.org/@diegoaltoworks/talker/-/talker-0.54.0.tgz","fileCount":82,"integrity":"sha512-XXsI0CSrD6dfBzVNUdQ1OlZk4Axrkd9iaLF0YvHvxgRGRDp15okkpoWGXd80T6KW6VavknJ/u7+fiMK3p7UvUg==","signatures":[{"sig":"MEUCIQDPmWY2z90ame7QQ83wCoaLh1HjotqzhMqv0kcNsjPSrAIgA72Pc8eTDQ9eMJs+WhHADdeMC/QIeYf2XmUs2+jMb6g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@diegoaltoworks%2ftalker@0.54.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":378170},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./twilio":{"types":"./dist/adapters/twilio.d.ts","import":"./dist/adapters/twilio.mjs","require":"./dist/adapters/twilio.js"},"./package.json":"./package.json"},"gitHead":"f6b4017239d3892af882334ea74d7e79508ce1b0","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check .","test":"bun test","work":"bun ./.claude/work.ts run","build":"bun run build:clean && bun run build:types && bun run build:esm && bun run build:cjs","check":"bun run typecheck && bun run lint && bun run test && bun run security:check","format":"biome format --write .","prepare":"(husky || true) && bun run build","lint:fix":"biome check --write .","build:cjs":"esbuild src/index.ts src/adapters/twilio.ts --bundle --format=cjs --outdir=dist --outbase=src --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@diegoaltoworks/chatter/* --external:@libsql/client --platform=node --target=node24","build:esm":"esbuild src/index.ts src/adapters/twilio.ts --bundle --format=esm --define:__dirname=import.meta.dirname --outdir=dist --outbase=src --out-extension:.js=.mjs --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@diegoaltoworks/chatter/* --external:@libsql/client --platform=node --target=node24","test:unit":"bun test src/","typecheck":"tsc --noEmit","work:halt":"bun ./.claude/work.ts halt","test:watch":"bun test --watch","work:reset":"bun ./.claude/work.ts reset","work:watch":"bun ./.claude/work.ts watch","build:clean":"rm -rf dist","build:types":"tsc -p tsconfig.build.json --emitDeclarationOnly --outDir dist","work:resume":"bun ./.claude/work.ts resume","work:status":"bun ./.claude/work.ts status","test:coverage":"bun test --coverage","test:packaged":"bash scripts/smoke-packed-install.sh","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run security:check && bun run build","security:audit":"bun audit","security:check":"bun audit --audit-level=moderate","work:continuous":"bun ./.claude/work.ts run --continuous","test:integration":"bun test test/integration/**/*.test.ts","security:audit:fix":"bun update"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c92b6648-5d3b-4896-b37f-9f8c66acf00c"}},"overrides":{"qs":"^6.15.3","ws":"^8.21.1","yaml":"^2.8.3","fast-uri":"^3.1.3","form-data":"^4.0.6","picomatch":"^4.0.4","ip-address":"^10.4.0","path-to-regexp":"^8.4.0","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/diegoaltoworks/talker.git","type":"git"},"_npmVersion":"12.0.2","description":"Telephony plugin for Chatter — adds voice call and SMS support via Twilio","directories":{},"lint-staged":{"*.ts":["bash -c 'tsc --noEmit --skipLibCheck'"],"*.{ts,js,json,md}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"hono":"^4.13.0","husky":"^9.1.7","openai":"^7.1.0","esbuild":"^0.28.0","@types/bun":"^1.1.12","typescript":"^7.0.2","@types/node":"^26.1.2","lint-staged":"^17.0.8","@biomejs/biome":"^2.5.6","@libsql/client":"^0.17.0","@diegoaltoworks/chatter":"^0.32.0"},"peerDependencies":{"hono":"^4.12.34 || ^5.0.0","openai":"^4.0.0 || ^7.1.0","@libsql/client":">=0.6.0 <1","@diegoaltoworks/chatter":">=0.32.0 <1"},"peerDependenciesMeta":{"openai":{"optional":true},"@libsql/client":{"optional":true},"@diegoaltoworks/chatter":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talker_0.54.0_1786883673043_0.9288319514844829","host":"s3://npm-registry-packages-npm-production"}},"0.55.0":{"name":"@diegoaltoworks/talker","version":"0.55.0","keywords":["telephony","twilio","voice","sms","chatbot","chatter","twiml","conversational-ai","ivr","phone"],"author":{"name":"Diego Alto","email":"diego@diegoalto.works"},"license":"MIT","_id":"@diegoaltoworks/talker@0.55.0","maintainers":[{"name":"diegoaltoworks","email":"diego@diegoalto.co.uk"}],"homepage":"https://github.com/diegoaltoworks/talker#readme","bugs":{"url":"https://github.com/diegoaltoworks/talker/issues"},"dist":{"shasum":"aa5b02687fd1d922e9008d284d9d71084518c1f8","tarball":"https://registry.npmjs.org/@diegoaltoworks/talker/-/talker-0.55.0.tgz","fileCount":82,"integrity":"sha512-rhsN37MVVEwwbZ5RS7VJMkV0em7/GayFUFgNxxhfnypIW3xpPxU2q9YENeSwl6zO7IRWnFNyRE3dgH8eSsiu6A==","signatures":[{"sig":"MEQCIAN8u97UoGfRIBPW/r1HYaO9jTm646/XZ4eNke5MIoPlAiA8c9UMGUPoEUOFBcazLusr9sCQVcrxOX+pi9DhH42Z/g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@diegoaltoworks%2ftalker@0.55.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":379597},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./twilio":{"types":"./dist/adapters/twilio.d.ts","import":"./dist/adapters/twilio.mjs","require":"./dist/adapters/twilio.js"},"./package.json":"./package.json"},"gitHead":"9a78a43fb49b1c8474fea8483dd9975e407d0c46","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check .","test":"bun test","work":"bun ./.claude/work.ts run","build":"bun run build:clean && bun run build:types && bun run build:esm && bun run build:cjs","check":"bun run typecheck && bun run lint && bun run test && bun run security:check","format":"biome format --write .","prepare":"(husky || true) && bun run build","lint:fix":"biome check --write .","build:cjs":"esbuild src/index.ts src/adapters/twilio.ts --bundle --format=cjs --outdir=dist --outbase=src --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@diegoaltoworks/chatter/* --external:@libsql/client --platform=node --target=node24","build:esm":"esbuild src/index.ts src/adapters/twilio.ts --bundle --format=esm --define:__dirname=import.meta.dirname --outdir=dist --outbase=src --out-extension:.js=.mjs --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@diegoaltoworks/chatter/* --external:@libsql/client --platform=node --target=node24","test:unit":"bun test src/","typecheck":"tsc --noEmit","work:halt":"bun ./.claude/work.ts halt","test:watch":"bun test --watch","work:reset":"bun ./.claude/work.ts reset","work:watch":"bun ./.claude/work.ts watch","build:clean":"rm -rf dist","build:types":"tsc -p tsconfig.build.json --emitDeclarationOnly --outDir dist","work:resume":"bun ./.claude/work.ts resume","work:status":"bun ./.claude/work.ts status","test:coverage":"bun test --coverage","test:packaged":"bash scripts/smoke-packed-install.sh","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run security:check && bun run build","security:audit":"bun audit","security:check":"bun audit --audit-level=moderate","work:continuous":"bun ./.claude/work.ts run --continuous","test:integration":"bun test test/integration/**/*.test.ts","security:audit:fix":"bun update","check:bundle-budgets":"bun scripts/bundle-budgets.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c92b6648-5d3b-4896-b37f-9f8c66acf00c"}},"overrides":{"qs":"^6.15.3","ws":"^8.21.1","yaml":"^2.8.3","fast-uri":"^3.1.3","form-data":"^4.0.6","picomatch":"^4.0.4","ip-address":"^10.4.0","path-to-regexp":"^8.4.0","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/diegoaltoworks/talker.git","type":"git"},"_npmVersion":"12.0.2","description":"Telephony plugin for Chatter — adds voice call and SMS support via Twilio","directories":{},"lint-staged":{"*.ts":["bash -c 'tsc --noEmit --skipLibCheck'"],"*.{ts,js,json,md}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"hono":"^4.13.0","husky":"^9.1.7","openai":"^7.1.0","esbuild":"^0.28.0","@types/bun":"^1.1.12","typescript":"^7.0.2","@types/node":"^26.1.2","lint-staged":"^17.0.8","@biomejs/biome":"^2.5.6","@libsql/client":"^0.17.0","@diegoaltoworks/chatter":"^0.32.0"},"peerDependencies":{"hono":"^4.12.34 || ^5.0.0","openai":"^4.0.0 || ^7.1.0","@libsql/client":">=0.6.0 <1","@diegoaltoworks/chatter":">=0.32.0 <1"},"peerDependenciesMeta":{"openai":{"optional":true},"@libsql/client":{"optional":true},"@diegoaltoworks/chatter":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talker_0.55.0_1786885480215_0.20409760786894182","host":"s3://npm-registry-packages-npm-production"}},"0.56.0":{"name":"@diegoaltoworks/talker","version":"0.56.0","keywords":["telephony","twilio","voice","sms","chatbot","chatter","twiml","conversational-ai","ivr","phone"],"author":{"name":"Diego Alto","email":"diego@diegoalto.works"},"license":"MIT","_id":"@diegoaltoworks/talker@0.56.0","maintainers":[{"name":"diegoaltoworks","email":"diego@diegoalto.co.uk"}],"homepage":"https://github.com/diegoaltoworks/talker#readme","bugs":{"url":"https://github.com/diegoaltoworks/talker/issues"},"dist":{"shasum":"a9d2309d03ccfefe570dedeb541b2887c56162c8","tarball":"https://registry.npmjs.org/@diegoaltoworks/talker/-/talker-0.56.0.tgz","fileCount":82,"integrity":"sha512-SEu9hikWFEKuPafREJQeuU7g+/wnnJoZc/c/bBi0+saXPGTOxf7t9VzElUPAuKPxmtVXkBM/uDbxgosFXdoP8w==","signatures":[{"sig":"MEUCIQCW3EsVaWTYXlepMtP7n9Q7Mo8buP2lfIuTW35FIapuqwIgb4RAITcSFs7KG9PVE6nqgfOoJaHnHhTsTLVX+x8XgDA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@diegoaltoworks%2ftalker@0.56.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":385339},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./twilio":{"types":"./dist/adapters/twilio.d.ts","import":"./dist/adapters/twilio.mjs","require":"./dist/adapters/twilio.js"},"./package.json":"./package.json"},"gitHead":"3329abb03c0f63decbd688ff09555efdfb8a0340","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check .","test":"bun test","work":"bun ./.claude/work.ts run","build":"bun run build:clean && bun run build:types && bun run build:esm && bun run build:cjs","check":"bun run typecheck && bun run lint && bun run test && bun run security:check","format":"biome format --write .","prepare":"(husky || true) && bun run build","lint:fix":"biome check --write .","build:cjs":"esbuild src/index.ts src/adapters/twilio.ts --bundle --format=cjs --outdir=dist --outbase=src --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@diegoaltoworks/chatter/* --external:@libsql/client --platform=node --target=node24","build:esm":"esbuild src/index.ts src/adapters/twilio.ts --bundle --format=esm --define:__dirname=import.meta.dirname --outdir=dist --outbase=src --out-extension:.js=.mjs --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@diegoaltoworks/chatter/* --external:@libsql/client --platform=node --target=node24","test:unit":"bun test src/","typecheck":"tsc --noEmit","work:halt":"bun ./.claude/work.ts halt","test:watch":"bun test --watch","work:reset":"bun ./.claude/work.ts reset","work:watch":"bun ./.claude/work.ts watch","build:clean":"rm -rf dist","build:types":"tsc -p tsconfig.build.json --emitDeclarationOnly --outDir dist","work:resume":"bun ./.claude/work.ts resume","work:status":"bun ./.claude/work.ts status","test:coverage":"bun test --coverage","test:packaged":"bash scripts/smoke-packed-install.sh","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run security:check && bun run build","security:audit":"bun audit","security:check":"bun audit --audit-level=moderate","work:continuous":"bun ./.claude/work.ts run --continuous","test:integration":"bun test test/integration/**/*.test.ts","security:audit:fix":"bun update","check:bundle-budgets":"bun scripts/bundle-budgets.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c92b6648-5d3b-4896-b37f-9f8c66acf00c"}},"overrides":{"qs":"^6.15.3","ws":"^8.21.1","yaml":"^2.8.3","fast-uri":"^3.1.3","form-data":"^4.0.6","picomatch":"^4.0.4","ip-address":"^10.4.0","path-to-regexp":"^8.4.0","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/diegoaltoworks/talker.git","type":"git"},"_npmVersion":"12.0.2","description":"Telephony plugin for Chatter — adds voice call and SMS support via Twilio","directories":{},"lint-staged":{"*.ts":["bash -c 'tsc --noEmit --skipLibCheck'"],"*.{ts,js,json,md}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"hono":"^4.13.0","husky":"^9.1.7","openai":"^7.1.0","esbuild":"^0.28.0","@types/bun":"^1.1.12","typescript":"^7.0.2","@types/node":"^26.1.2","lint-staged":"^17.0.8","@biomejs/biome":"^2.5.6","@libsql/client":"^0.17.0","@diegoaltoworks/chatter":"^0.32.0"},"peerDependencies":{"hono":"^4.12.34 || ^5.0.0","openai":"^4.0.0 || ^7.1.0","@libsql/client":">=0.6.0 <1","@diegoaltoworks/chatter":">=0.32.0 <1"},"peerDependenciesMeta":{"openai":{"optional":true},"@libsql/client":{"optional":true},"@diegoaltoworks/chatter":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talker_0.56.0_1786886223635_0.22025386825860593","host":"s3://npm-registry-packages-npm-production"}},"0.57.0":{"name":"@diegoaltoworks/talker","version":"0.57.0","keywords":["telephony","twilio","voice","sms","chatbot","chatter","twiml","conversational-ai","ivr","phone"],"author":{"name":"Diego Alto","email":"diego@diegoalto.works"},"license":"MIT","_id":"@diegoaltoworks/talker@0.57.0","maintainers":[{"name":"diegoaltoworks","email":"diego@diegoalto.co.uk"}],"homepage":"https://github.com/diegoaltoworks/talker#readme","bugs":{"url":"https://github.com/diegoaltoworks/talker/issues"},"dist":{"shasum":"7dea0eb3a61be6bcbd8ea605b02607402ba2e717","tarball":"https://registry.npmjs.org/@diegoaltoworks/talker/-/talker-0.57.0.tgz","fileCount":83,"integrity":"sha512-3bQnCjLM3RbdpXTh5DLjJ0pW9k8yszkv2e4JUCCgnp4j3jmzYmvkNQI2MYkdtLXMvyMJlHIADK7NbjGSIb7a+w==","signatures":[{"sig":"MEUCIQDfBiKaahrlrzWc/HmT1caaHQ3ks3sIfwJ4ERerH6j/aQIgWy/+Xzru4UG91bnJWQH7gh9GAGPpjte11BNW5XklWlc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@diegoaltoworks%2ftalker@0.57.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":395033},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./twilio":{"types":"./dist/adapters/twilio.d.ts","import":"./dist/adapters/twilio.mjs","require":"./dist/adapters/twilio.js"},"./package.json":"./package.json"},"gitHead":"5a986bf7906142089a817924cb15f0d07e6078f4","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check .","test":"bun test","work":"bun ./.claude/work.ts run","build":"bun run build:clean && bun run build:types && bun run build:esm && bun run build:cjs","check":"bun run typecheck && bun run lint && bun run test && bun run security:check","format":"biome format --write .","prepare":"(husky || true) && bun run build","lint:fix":"biome check --write .","build:cjs":"esbuild src/index.ts src/adapters/twilio.ts --bundle --format=cjs --outdir=dist --outbase=src --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@diegoaltoworks/chatter/* --external:@libsql/client --platform=node --target=node24","build:esm":"esbuild src/index.ts src/adapters/twilio.ts --bundle --format=esm --define:__dirname=import.meta.dirname --outdir=dist --outbase=src --out-extension:.js=.mjs --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@diegoaltoworks/chatter/* --external:@libsql/client --platform=node --target=node24","test:unit":"bun test src/","typecheck":"tsc --noEmit","work:halt":"bun ./.claude/work.ts halt","test:watch":"bun test --watch","work:reset":"bun ./.claude/work.ts reset","work:watch":"bun ./.claude/work.ts watch","build:clean":"rm -rf dist","build:types":"tsc -p tsconfig.build.json --emitDeclarationOnly --outDir dist","work:resume":"bun ./.claude/work.ts resume","work:status":"bun ./.claude/work.ts status","test:coverage":"bun test --coverage","test:packaged":"bash scripts/smoke-packed-install.sh","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run security:check && bun run build","security:audit":"bun audit","security:check":"bun audit --audit-level=moderate","work:continuous":"bun ./.claude/work.ts run --continuous","test:integration":"bun test test/integration/**/*.test.ts","security:audit:fix":"bun update","check:bundle-budgets":"bun scripts/bundle-budgets.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c92b6648-5d3b-4896-b37f-9f8c66acf00c"}},"overrides":{"qs":"^6.15.3","ws":"^8.21.1","yaml":"^2.8.3","fast-uri":"^3.1.3","form-data":"^4.0.6","picomatch":"^4.0.4","ip-address":"^10.4.0","path-to-regexp":"^8.4.0","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/diegoaltoworks/talker.git","type":"git"},"_npmVersion":"12.0.2","description":"Telephony plugin for Chatter — adds voice call and SMS support via Twilio","directories":{},"lint-staged":{"*.ts":["bash -c 'tsc --noEmit --skipLibCheck'"],"*.{ts,js,json,md}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"hono":"^4.13.0","husky":"^9.1.7","openai":"^7.1.0","esbuild":"^0.28.0","@types/bun":"^1.1.12","typescript":"^7.0.2","@types/node":"^26.1.2","lint-staged":"^17.0.8","@biomejs/biome":"^2.5.6","@libsql/client":"^0.17.0","@diegoaltoworks/chatter":"^0.32.0"},"peerDependencies":{"hono":"^4.12.34 || ^5.0.0","openai":"^4.0.0 || ^7.1.0","@libsql/client":">=0.6.0 <1","@diegoaltoworks/chatter":">=0.32.0 <1"},"peerDependenciesMeta":{"openai":{"optional":true},"@libsql/client":{"optional":true},"@diegoaltoworks/chatter":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talker_0.57.0_1786887856108_0.3203347494368536","host":"s3://npm-registry-packages-npm-production"}},"0.58.0":{"name":"@diegoaltoworks/talker","version":"0.58.0","keywords":["telephony","twilio","voice","sms","chatbot","chatter","twiml","conversational-ai","ivr","phone"],"author":{"name":"Diego Alto","email":"diego@diegoalto.works"},"license":"MIT","_id":"@diegoaltoworks/talker@0.58.0","maintainers":[{"name":"diegoaltoworks","email":"diego@diegoalto.co.uk"}],"homepage":"https://github.com/diegoaltoworks/talker#readme","bugs":{"url":"https://github.com/diegoaltoworks/talker/issues"},"dist":{"shasum":"46bb43671be0bac4c82690c7796ca0a86cbcf053","tarball":"https://registry.npmjs.org/@diegoaltoworks/talker/-/talker-0.58.0.tgz","fileCount":88,"integrity":"sha512-rGrFiAChtBotMBzm429jBS/LTYMVNjZzOxcPrXH11GT7HMZgBAQHtWEYVkkYeLPMfljRz0XKwxwyk5SYZmRo8g==","signatures":[{"sig":"MEYCIQCVWtX7CZaJKpcEK2vwZyheM5sWeqmFe8a+jruKKsfuSAIhAKqULogcYNSVezuou7LzcNvn+o+CGHox3Em4pgKpVSua","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@diegoaltoworks%2ftalker@0.58.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":407831},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./twilio":{"types":"./dist/adapters/twilio.d.ts","import":"./dist/adapters/twilio.mjs","require":"./dist/adapters/twilio.js"},"./package.json":"./package.json"},"gitHead":"3e7ece527bf2645cd90a17bafd7199613e377360","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check .","test":"bun test","work":"bun ./.claude/work.ts run","build":"bun run build:clean && bun run build:types && bun run build:esm && bun run build:cjs","check":"bun run typecheck && bun run lint && bun run test && bun run security:check","format":"biome format --write .","prepare":"(husky || true) && bun run build","lint:fix":"biome check --write .","build:cjs":"esbuild src/index.ts src/adapters/twilio.ts --bundle --format=cjs --outdir=dist --outbase=src --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@diegoaltoworks/chatter/* --external:@libsql/client --platform=node --target=node24","build:esm":"esbuild src/index.ts src/adapters/twilio.ts --bundle --format=esm --define:__dirname=import.meta.dirname --outdir=dist --outbase=src --out-extension:.js=.mjs --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@diegoaltoworks/chatter/* --external:@libsql/client --platform=node --target=node24","test:unit":"bun test src/","typecheck":"tsc --noEmit","work:halt":"bun ./.claude/work.ts halt","test:watch":"bun test --watch","work:reset":"bun ./.claude/work.ts reset","work:watch":"bun ./.claude/work.ts watch","build:clean":"rm -rf dist","build:types":"tsc -p tsconfig.build.json --emitDeclarationOnly --outDir dist","work:resume":"bun ./.claude/work.ts resume","work:status":"bun ./.claude/work.ts status","test:coverage":"bun test --coverage","test:packaged":"bash scripts/smoke-packed-install.sh","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run security:check && bun run build","security:audit":"bun audit","security:check":"bun audit --audit-level=moderate","work:continuous":"bun ./.claude/work.ts run --continuous","test:integration":"bun test test/integration/**/*.test.ts","security:audit:fix":"bun update","check:bundle-budgets":"bun scripts/bundle-budgets.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c92b6648-5d3b-4896-b37f-9f8c66acf00c"}},"overrides":{"qs":"^6.15.3","ws":"^8.21.1","yaml":"^2.8.3","fast-uri":"^3.1.3","form-data":"^4.0.6","picomatch":"^4.0.4","ip-address":"^10.4.0","path-to-regexp":"^8.4.0","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/diegoaltoworks/talker.git","type":"git"},"_npmVersion":"12.0.2","description":"Telephony plugin for Chatter — adds voice call and SMS support via Twilio","directories":{},"lint-staged":{"*.ts":["bash -c 'tsc --noEmit --skipLibCheck'"],"*.{ts,js,json,md}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"hono":"^4.13.0","husky":"^9.1.7","openai":"^7.1.0","esbuild":"^0.28.0","@types/bun":"^1.1.12","typescript":"^7.0.2","@types/node":"^26.1.2","lint-staged":"^17.0.8","@biomejs/biome":"^2.5.6","@libsql/client":"^0.17.0","@diegoaltoworks/chatter":"^0.32.0"},"peerDependencies":{"hono":"^4.12.34 || ^5.0.0","openai":"^4.0.0 || ^7.1.0","@libsql/client":">=0.6.0 <1","@diegoaltoworks/chatter":">=0.32.0 <1"},"peerDependenciesMeta":{"openai":{"optional":true},"@libsql/client":{"optional":true},"@diegoaltoworks/chatter":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talker_0.58.0_1786889193539_0.9960819186264447","host":"s3://npm-registry-packages-npm-production"}},"0.59.0":{"name":"@diegoaltoworks/talker","version":"0.59.0","keywords":["telephony","twilio","voice","sms","chatbot","chatter","twiml","conversational-ai","ivr","phone"],"author":{"name":"Diego Alto","email":"diego@diegoalto.works"},"license":"MIT","_id":"@diegoaltoworks/talker@0.59.0","maintainers":[{"name":"diegoaltoworks","email":"diego@diegoalto.co.uk"}],"homepage":"https://github.com/diegoaltoworks/talker#readme","bugs":{"url":"https://github.com/diegoaltoworks/talker/issues"},"dist":{"shasum":"6ca54b03eb5a65ef2f8875e7ae3158c25add943e","tarball":"https://registry.npmjs.org/@diegoaltoworks/talker/-/talker-0.59.0.tgz","fileCount":90,"integrity":"sha512-LrG02RlaifAd7Wc66Tu2Ev7EFenrKJFmXWCthOXgeQqjzZFHSu3Qy2HU9Lhxv4zjrOvrOxLsDRXu2pk4GltQqQ==","signatures":[{"sig":"MEQCIF34WDSqOJX6j1kSj+zY34pFnus/i+aA4/KADVJ6ZYg7AiBUiCAysL+MfHhbM5pXdhl0n40tDM3GJosfV41bP50ikg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@diegoaltoworks%2ftalker@0.59.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":416420},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./twilio":{"types":"./dist/adapters/twilio.d.ts","import":"./dist/adapters/twilio.mjs","require":"./dist/adapters/twilio.js"},"./package.json":"./package.json"},"gitHead":"6bbfac5337c636220bd50e17730adb27183f7e5a","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check .","test":"bun test","work":"bun ./.claude/work.ts run","build":"bun run build:clean && bun run build:types && bun run build:esm && bun run build:cjs","check":"bun run typecheck && bun run lint && bun run test && bun run security:check && bun run check:em-dashes","format":"biome format --write .","prepare":"(husky || true) && bun run build","lint:fix":"biome check --write .","build:cjs":"esbuild src/index.ts src/adapters/twilio.ts --bundle --format=cjs --outdir=dist --outbase=src --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@diegoaltoworks/chatter/* --external:@libsql/client --platform=node --target=node24","build:esm":"esbuild src/index.ts src/adapters/twilio.ts --bundle --format=esm --define:__dirname=import.meta.dirname --outdir=dist --outbase=src --out-extension:.js=.mjs --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@diegoaltoworks/chatter/* --external:@libsql/client --platform=node --target=node24","test:unit":"bun test src/","typecheck":"tsc --noEmit","work:halt":"bun ./.claude/work.ts halt","test:watch":"bun test --watch","work:reset":"bun ./.claude/work.ts reset","work:watch":"bun ./.claude/work.ts watch","build:clean":"rm -rf dist","build:types":"tsc -p tsconfig.build.json --emitDeclarationOnly --outDir dist","work:resume":"bun ./.claude/work.ts resume","work:status":"bun ./.claude/work.ts status","test:coverage":"bun test --coverage","test:packaged":"bash scripts/smoke-packed-install.sh","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run security:check && bun run check:em-dashes && bun run build","security:audit":"bun audit","security:check":"bun audit --audit-level=moderate","check:em-dashes":"bun scripts/check-em-dashes.ts","work:continuous":"bun ./.claude/work.ts run --continuous","test:integration":"bun test test/integration/**/*.test.ts","security:audit:fix":"bun update","check:bundle-budgets":"bun scripts/bundle-budgets.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c92b6648-5d3b-4896-b37f-9f8c66acf00c"}},"overrides":{"qs":"^6.15.3","ws":"^8.21.1","yaml":"^2.8.3","fast-uri":"^3.1.3","form-data":"^4.0.6","picomatch":"^4.0.4","ip-address":"^10.4.0","path-to-regexp":"^8.4.0","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/diegoaltoworks/talker.git","type":"git"},"_npmVersion":"12.0.2","description":"Telephony plugin for Chatter — adds voice call and SMS support via Twilio","directories":{},"lint-staged":{"*.ts":["bash -c 'tsc --noEmit --skipLibCheck'"],"*.{ts,js,json,md}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"hono":"^4.13.0","husky":"^9.1.7","openai":"^7.1.0","esbuild":"^0.28.0","@types/bun":"^1.1.12","typescript":"^7.0.2","@types/node":"^26.1.2","lint-staged":"^17.0.8","@biomejs/biome":"^2.5.6","@libsql/client":"^0.17.0","@diegoaltoworks/chatter":"^0.32.0"},"peerDependencies":{"hono":"^4.12.34 || ^5.0.0","openai":"^4.0.0 || ^7.1.0","@libsql/client":">=0.6.0 <1","@diegoaltoworks/chatter":">=0.32.0 <1"},"peerDependenciesMeta":{"openai":{"optional":true},"@libsql/client":{"optional":true},"@diegoaltoworks/chatter":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talker_0.59.0_1786890948266_0.7133060811130763","host":"s3://npm-registry-packages-npm-production"}},"0.60.0":{"name":"@diegoaltoworks/talker","version":"0.60.0","keywords":["telephony","twilio","voice","sms","chatbot","chatter","twiml","conversational-ai","ivr","phone"],"author":{"name":"Diego Alto","email":"diego@diegoalto.works"},"license":"MIT","_id":"@diegoaltoworks/talker@0.60.0","maintainers":[{"name":"diegoaltoworks","email":"diego@diegoalto.co.uk"}],"homepage":"https://github.com/diegoaltoworks/talker#readme","bugs":{"url":"https://github.com/diegoaltoworks/talker/issues"},"dist":{"shasum":"81e209d659bb5341c83ed8e96a7bc800c225013b","tarball":"https://registry.npmjs.org/@diegoaltoworks/talker/-/talker-0.60.0.tgz","fileCount":90,"integrity":"sha512-/kxY65uA4Q8TTmEzz4FfhlUC1NPoQk014zQjlcIJhY/D10jsa12hfJMALuPpuncY4xNtl5pS11sh4mplcikwPw==","signatures":[{"sig":"MEUCIDhuLSj35Z/Ms2OVuFso4Tdy0nPFk8P7KWIJj1KKc84CAiEAt5mev9zQTEOTJVVvCeG3M/6UEtHpEUZo76Cratn7uKQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@diegoaltoworks%2ftalker@0.60.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":425078},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./twilio":{"types":"./dist/adapters/twilio.d.ts","import":"./dist/adapters/twilio.mjs","require":"./dist/adapters/twilio.js"},"./package.json":"./package.json"},"gitHead":"b7be3aebad09fec8935b81eef79ef824e8f80df0","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check .","test":"bun test","work":"bun ./.claude/work.ts run","build":"bun run build:clean && bun run build:types && bun run build:esm && bun run build:cjs","check":"bun run typecheck && bun run lint && bun run test && bun run security:check && bun run check:em-dashes","format":"biome format --write .","prepare":"(husky || true) && bun run build","lint:fix":"biome check --write .","build:cjs":"esbuild src/index.ts src/adapters/twilio.ts --bundle --format=cjs --outdir=dist --outbase=src --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@diegoaltoworks/chatter/* --external:@libsql/client --platform=node --target=node24","build:esm":"esbuild src/index.ts src/adapters/twilio.ts --bundle --format=esm --define:__dirname=import.meta.dirname --outdir=dist --outbase=src --out-extension:.js=.mjs --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@diegoaltoworks/chatter/* --external:@libsql/client --platform=node --target=node24","test:unit":"bun test src/","typecheck":"tsc --noEmit","work:halt":"bun ./.claude/work.ts halt","test:watch":"bun test --watch","work:reset":"bun ./.claude/work.ts reset","work:watch":"bun ./.claude/work.ts watch","build:clean":"rm -rf dist","build:types":"tsc -p tsconfig.build.json --emitDeclarationOnly --outDir dist","work:resume":"bun ./.claude/work.ts resume","work:status":"bun ./.claude/work.ts status","test:coverage":"bun test --coverage","test:packaged":"bash scripts/smoke-packed-install.sh","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run security:check && bun run check:em-dashes && bun run build","security:audit":"bun audit","security:check":"bun audit --audit-level=moderate","check:em-dashes":"bun scripts/check-em-dashes.ts","work:continuous":"bun ./.claude/work.ts run --continuous","test:integration":"bun test test/integration/**/*.test.ts","security:audit:fix":"bun update","check:bundle-budgets":"bun scripts/bundle-budgets.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c92b6648-5d3b-4896-b37f-9f8c66acf00c"}},"overrides":{"qs":"^6.15.3","ws":"^8.21.1","yaml":"^2.8.3","fast-uri":"^3.1.3","form-data":"^4.0.6","picomatch":"^4.0.4","ip-address":"^10.4.0","path-to-regexp":"^8.4.0","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/diegoaltoworks/talker.git","type":"git"},"_npmVersion":"12.0.2","description":"Telephony plugin for Chatter — adds voice call and SMS support via Twilio","directories":{},"lint-staged":{"*.ts":["bash -c 'tsc --noEmit --skipLibCheck'"],"*.{ts,js,json,md}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"hono":"^4.13.0","husky":"^9.1.7","openai":"^7.1.0","esbuild":"^0.28.0","@types/bun":"^1.1.12","typescript":"^7.0.2","@types/node":"^26.1.2","lint-staged":"^17.0.8","@biomejs/biome":"^2.5.6","@libsql/client":"^0.17.0","@diegoaltoworks/chatter":"^0.32.0"},"peerDependencies":{"hono":"^4.12.34 || ^5.0.0","openai":"^4.0.0 || ^7.1.0","@libsql/client":">=0.6.0 <1","@diegoaltoworks/chatter":">=0.32.0 <1"},"peerDependenciesMeta":{"openai":{"optional":true},"@libsql/client":{"optional":true},"@diegoaltoworks/chatter":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talker_0.60.0_1786895128360_0.3716259474481183","host":"s3://npm-registry-packages-npm-production"}},"0.61.0":{"name":"@diegoaltoworks/talker","version":"0.61.0","keywords":["telephony","twilio","voice","sms","chatbot","chatter","twiml","conversational-ai","ivr","phone"],"author":{"name":"Diego Alto","email":"diego@diegoalto.works"},"license":"MIT","_id":"@diegoaltoworks/talker@0.61.0","maintainers":[{"name":"diegoaltoworks","email":"diego@diegoalto.co.uk"}],"homepage":"https://github.com/diegoaltoworks/talker#readme","bugs":{"url":"https://github.com/diegoaltoworks/talker/issues"},"dist":{"shasum":"20dc75a16477d78abd52d634ebf75209c025428e","tarball":"https://registry.npmjs.org/@diegoaltoworks/talker/-/talker-0.61.0.tgz","fileCount":90,"integrity":"sha512-WcYyWvemldSLNXQaha0QqVpT2HQ8lF6aIFCBod11hHzVvhbJZmJFCQDjIbSrzb6pBYDUEmjBbsEXbHaEKW2NlQ==","signatures":[{"sig":"MEUCIQDrk0vmQv4WWniTtfuXJjBLJkHgsisybwWnI69tXA1RsQIgNPdoekjkrfAvQSWC2xvaOlCEBmSeQNpWQasomkwrRQU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@diegoaltoworks%2ftalker@0.61.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":425078},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./twilio":{"types":"./dist/adapters/twilio.d.ts","import":"./dist/adapters/twilio.mjs","require":"./dist/adapters/twilio.js"},"./package.json":"./package.json"},"gitHead":"5dc361616cc95d9331a726d017ab2e000cc4c054","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check .","test":"bun test","work":"bun ./.claude/work.ts run","build":"bun run build:clean && bun run build:types && bun run build:esm && bun run build:cjs","check":"bun run typecheck && bun run lint && bun run test && bun run security:check && bun run check:em-dashes","format":"biome format --write .","prepare":"(husky || true) && bun run build","lint:fix":"biome check --write .","build:cjs":"esbuild src/index.ts src/adapters/twilio.ts --bundle --format=cjs --outdir=dist --outbase=src --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@diegoaltoworks/chatter/* --external:@libsql/client --platform=node --target=node24","build:esm":"esbuild src/index.ts src/adapters/twilio.ts --bundle --format=esm --define:__dirname=import.meta.dirname --outdir=dist --outbase=src --out-extension:.js=.mjs --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@diegoaltoworks/chatter/* --external:@libsql/client --platform=node --target=node24","test:unit":"bun test src/","typecheck":"tsc --noEmit","work:halt":"bun ./.claude/work.ts halt","test:watch":"bun test --watch","work:reset":"bun ./.claude/work.ts reset","work:watch":"bun ./.claude/work.ts watch","build:clean":"rm -rf dist","build:types":"tsc -p tsconfig.build.json --emitDeclarationOnly --outDir dist","work:resume":"bun ./.claude/work.ts resume","work:status":"bun ./.claude/work.ts status","test:coverage":"bun test --coverage","test:packaged":"bash scripts/smoke-packed-install.sh","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run security:check && bun run check:em-dashes && bun run build","security:audit":"bun audit","security:check":"bun audit --audit-level=moderate","check:em-dashes":"bun scripts/check-em-dashes.ts","work:continuous":"bun ./.claude/work.ts run --continuous","test:integration":"bun test test/integration/**/*.test.ts","security:audit:fix":"bun update","check:bundle-budgets":"bun scripts/bundle-budgets.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c92b6648-5d3b-4896-b37f-9f8c66acf00c"}},"overrides":{"qs":"^6.15.3","ws":"^8.21.1","yaml":"^2.8.3","fast-uri":"^3.1.3","form-data":"^4.0.6","picomatch":"^4.0.4","ip-address":"^10.4.0","path-to-regexp":"^8.4.0","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/diegoaltoworks/talker.git","type":"git"},"_npmVersion":"12.0.2","description":"Telephony plugin for Chatter — adds voice call and SMS support via Twilio","directories":{},"lint-staged":{"*.ts":["bash -c 'tsc --noEmit --skipLibCheck'"],"*.{ts,js,json,md}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"hono":"^4.13.0","husky":"^9.1.7","openai":"^7.1.0","esbuild":"^0.28.0","@types/bun":"^1.1.12","typescript":"^7.0.2","@types/node":"^26.1.2","lint-staged":"^17.0.8","@biomejs/biome":"^2.5.6","@libsql/client":"^0.17.0","@diegoaltoworks/chatter":"^0.61.0"},"peerDependencies":{"hono":"^4.12.34 || ^5.0.0","openai":"^4.0.0 || ^7.1.0","@libsql/client":">=0.6.0 <1","@diegoaltoworks/chatter":">=0.32.0 <2"},"peerDependenciesMeta":{"openai":{"optional":true},"@libsql/client":{"optional":true},"@diegoaltoworks/chatter":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talker_0.61.0_1786904451875_0.5612648991220004","host":"s3://npm-registry-packages-npm-production"}},"0.62.0":{"name":"@diegoaltoworks/talker","version":"0.62.0","keywords":["telephony","twilio","voice","sms","chatbot","chatter","twiml","conversational-ai","ivr","phone"],"author":{"name":"Diego Alto","email":"diego@diegoalto.works"},"license":"MIT","_id":"@diegoaltoworks/talker@0.62.0","maintainers":[{"name":"diegoaltoworks","email":"diego@diegoalto.co.uk"}],"homepage":"https://github.com/diegoaltoworks/talker#readme","bugs":{"url":"https://github.com/diegoaltoworks/talker/issues"},"dist":{"shasum":"e546383b8f1043e81830f7e2a497dcd575ceedbe","tarball":"https://registry.npmjs.org/@diegoaltoworks/talker/-/talker-0.62.0.tgz","fileCount":89,"integrity":"sha512-MhFTjRV0fGaRcmXjZDE0rf66YpJpYZyUWkAnxWndCDbM8q1hqsiWldlGg/dIyhBn1PXJiBm8qZ0f9RlnxINT+w==","signatures":[{"sig":"MEYCIQCodeCpLi8o0Vyhp9tYqdSXqfoNFdjKCbxFYABcnxD3RAIhAIqL3SDu2ttvefuP9YUj6cAJ3bav1djtzv6rPhHM3AIx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@diegoaltoworks%2ftalker@0.62.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":425258},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./twilio":{"types":"./dist/adapters/twilio.d.ts","import":"./dist/adapters/twilio.mjs","require":"./dist/adapters/twilio.js"},"./package.json":"./package.json"},"gitHead":"f5b5a79499392eb153d4a2aca54057ece975d39e","scripts":{"dev":"bun --watch src/index.ts","lint":"biome check .","test":"bun test","work":"bun ./.claude/work.ts run","build":"bun run build:clean && bun run build:types && bun run build:esm && bun run build:cjs","check":"bun run typecheck && bun run lint && bun run test && bun run security:check && bun run check:em-dashes && bun run check:deprecations","format":"biome format --write .","prepare":"(husky || true) && bun run build","lint:fix":"biome check --write .","build:cjs":"esbuild src/index.ts src/adapters/twilio.ts --bundle --format=cjs --outdir=dist --outbase=src --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@diegoaltoworks/chatter/* --external:@libsql/client --platform=node --target=node24","build:esm":"esbuild src/index.ts src/adapters/twilio.ts --bundle --format=esm --define:__dirname=import.meta.dirname --outdir=dist --outbase=src --out-extension:.js=.mjs --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@diegoaltoworks/chatter/* --external:@libsql/client --platform=node --target=node24","test:unit":"bun test src/","typecheck":"tsc --noEmit","work:halt":"bun ./.claude/work.ts halt","test:watch":"bun test --watch","work:reset":"bun ./.claude/work.ts reset","work:watch":"bun ./.claude/work.ts watch","build:clean":"rm -rf dist","build:types":"tsc -p tsconfig.build.json --emitDeclarationOnly --outDir dist","work:resume":"bun ./.claude/work.ts resume","work:status":"bun ./.claude/work.ts status","test:coverage":"bun test --coverage","test:packaged":"bash scripts/smoke-packed-install.sh","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run security:check && bun run check:em-dashes && bun run check:deprecations && bun run build","security:audit":"bun audit","security:check":"bun audit --audit-level=moderate","check:em-dashes":"bun scripts/check-em-dashes.ts","work:continuous":"bun ./.claude/work.ts run --continuous","test:integration":"bun test test/integration/**/*.test.ts","check:deprecations":"bun scripts/deprecations.ts","security:audit:fix":"bun update","check:bundle-budgets":"bun scripts/bundle-budgets.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c92b6648-5d3b-4896-b37f-9f8c66acf00c"}},"overrides":{"qs":"^6.15.3","ws":"^8.21.1","yaml":"^2.8.3","fast-uri":"^3.1.3","form-data":"^4.0.6","picomatch":"^4.0.4","ip-address":"^10.4.0","path-to-regexp":"^8.4.0","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/diegoaltoworks/talker.git","type":"git"},"_npmVersion":"12.0.2","description":"Telephony plugin for Chatter: adds voice call, SMS and WhatsApp support via Twilio","directories":{},"lint-staged":{"*.ts":["bash -c 'tsc --noEmit --skipLibCheck'"],"*.{ts,js,json,md}":["biome check --write --no-errors-on-unmatched"]},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"hono":"^4.13.0","husky":"^9.1.7","openai":"^7.1.0","esbuild":"^0.28.0","@types/bun":"^1.1.12","typescript":"^7.0.2","@types/node":"^26.1.2","lint-staged":"^17.0.8","@biomejs/biome":"^2.5.6","@libsql/client":"^0.17.0","@diegoaltoworks/chatter":"^0.61.0"},"peerDependencies":{"hono":"^4.12.34 || ^5.0.0","openai":"^4.0.0 || ^7.1.0","@libsql/client":">=0.6.0 <1","@diegoaltoworks/chatter":">=0.32.0 <2"},"peerDependenciesMeta":{"openai":{"optional":true},"@libsql/client":{"optional":true},"@diegoaltoworks/chatter":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/talker_0.62.0_1786905893871_0.3789825179621993","host":"s3://npm-registry-packages-npm-production"}},"0.63.0":{"name":"@diegoaltoworks/talker","version":"0.63.0","description":"Telephony plugin for Chatter: adds voice call, SMS and WhatsApp support via Twilio","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"},"./twilio":{"types":"./dist/adapters/twilio.d.ts","import":"./dist/adapters/twilio.mjs","require":"./dist/adapters/twilio.js"},"./package.json":"./package.json"},"scripts":{"dev":"bun --watch src/index.ts","build":"bun run build:clean && bun run build:types && bun run build:esm && bun run build:cjs","build:clean":"rm -rf dist","build:types":"tsc -p tsconfig.build.json --emitDeclarationOnly --outDir dist","build:esm":"esbuild src/index.ts src/adapters/twilio.ts --bundle --format=esm --define:__dirname=import.meta.dirname --outdir=dist --outbase=src --out-extension:.js=.mjs --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@diegoaltoworks/chatter/* --external:@libsql/client --platform=node --target=node24","build:cjs":"esbuild src/index.ts src/adapters/twilio.ts --bundle --format=cjs --outdir=dist --outbase=src --external:hono --external:openai --external:@diegoaltoworks/chatter --external:@diegoaltoworks/chatter/* --external:@libsql/client --platform=node --target=node24","check:bundle-budgets":"bun scripts/bundle-budgets.ts","check:em-dashes":"bun scripts/check-em-dashes.ts","check:deprecations":"bun scripts/deprecations.ts","test":"bun test","test:unit":"bun test src/","test:integration":"bun test test/integration/**/*.test.ts","test:packaged":"bash scripts/smoke-packed-install.sh","test:watch":"bun test --watch","test:coverage":"bun test --coverage","typecheck":"tsc --noEmit","lint":"biome check .","lint:fix":"biome check --write .","format":"biome format --write .","security:audit":"bun audit","security:audit:fix":"bun update","security:check":"bun audit --audit-level=moderate","check":"bun run typecheck && bun run lint && bun run test && bun run security:check && bun run check:em-dashes && bun run check:deprecations","work":"bun ./.claude/work.ts run","work:continuous":"bun ./.claude/work.ts run --continuous","work:status":"bun ./.claude/work.ts status","work:reset":"bun ./.claude/work.ts reset","work:watch":"bun ./.claude/work.ts watch","work:resume":"bun ./.claude/work.ts resume","work:halt":"bun ./.claude/work.ts halt","prepublishOnly":"bun run lint && bun run typecheck && bun run test && bun run security:check && bun run check:em-dashes && bun run check:deprecations && bun run build","prepare":"(husky || true) && bun run build"},"keywords":["telephony","twilio","voice","sms","chatbot","chatter","twiml","conversational-ai","ivr","phone"],"author":{"name":"Diego Alto","email":"diego@diegoalto.works"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/diegoaltoworks/talker.git"},"bugs":{"url":"https://github.com/diegoaltoworks/talker/issues"},"homepage":"https://github.com/diegoaltoworks/talker#readme","engines":{"node":">=24.0.0"},"peerDependencies":{"@diegoaltoworks/chatter":">=0.32.0 <2","@libsql/client":">=0.6.0 <1","hono":"^4.12.34 || ^5.0.0","openai":"^4.0.0 || ^7.1.0"},"peerDependenciesMeta":{"@diegoaltoworks/chatter":{"optional":true},"@libsql/client":{"optional":true},"openai":{"optional":true}},"devDependencies":{"@biomejs/biome":"^2.5.6","@diegoaltoworks/chatter":"^0.61.0","@libsql/client":"^0.17.0","@types/bun":"^1.1.12","@types/node":"^26.1.2","esbuild":"^0.28.0","hono":"^4.13.0","husky":"^9.1.7","lint-staged":"^17.0.8","openai":"^7.1.0","typescript":"^7.0.2"},"lint-staged":{"*.{ts,js,json,md}":["biome check --write --no-errors-on-unmatched"],"*.ts":["bash -c 'tsc --noEmit --skipLibCheck'"]},"overrides":{"qs":"^6.15.3","ws":"^8.21.1","@hono/node-server":"^2.0.5","fast-uri":"^3.1.3","ip-address":"^10.4.0","form-data":"^4.0.6","yaml":"^2.8.3","path-to-regexp":"^8.4.0","picomatch":"^4.0.4"},"gitHead":"5e12d6e38cf1941709de54491d0a826c4514fa4c","_id":"@diegoaltoworks/talker@0.63.0","_nodeVersion":"24.19.0","_npmVersion":"12.0.2","dist":{"integrity":"sha512-km+1nKzukeGakwl4JlwZeqtgs8rn9HwT9k5nMjseoZYrx3k2nK9sXp+Xk96a0zzYUG+gdPdiN+k72H9Lmf+WOQ==","shasum":"16a58b374f01bd9638a75154d163013151599f79","tarball":"https://registry.npmjs.org/@diegoaltoworks/talker/-/talker-0.63.0.tgz","fileCount":89,"unpackedSize":427854,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@diegoaltoworks%2ftalker@0.63.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIF2l4r03UzOnZVQDzKuKof4GpCHNDHm7CDxJUZlhToHnAiEAqkb4TLRj9RNZDc7z3UD82D1Rg7298uwejEVKCkglGDY="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c92b6648-5d3b-4896-b37f-9f8c66acf00c"}},"directories":{},"maintainers":[{"name":"diegoaltoworks","email":"diego@diegoalto.co.uk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/talker_0.63.0_1786906531651_0.9770416327651645"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-14T16:11:10.327Z","modified":"2026-08-16T18:55:32.115Z","0.1.0":"2026-03-14T16:11:10.624Z","0.4.0":"2026-03-14T16:18:11.326Z","0.5.0":"2026-03-14T16:24:48.794Z","0.6.0":"2026-03-14T16:32:22.141Z","0.7.0":"2026-03-14T16:35:21.271Z","0.8.0":"2026-03-14T16:38:47.133Z","0.9.0":"2026-03-14T16:45:00.141Z","0.10.0":"2026-03-14T22:53:21.769Z","0.11.0":"2026-03-15T11:08:33.466Z","0.12.0":"2026-03-15T12:11:20.926Z","0.13.0":"2026-03-15T14:48:25.577Z","0.14.0":"2026-03-15T14:53:17.713Z","0.15.0":"2026-03-15T15:26:03.430Z","0.22.0":"2026-08-04T07:54:02.588Z","0.23.0":"2026-08-04T07:55:09.277Z","0.24.0":"2026-08-10T07:49:21.140Z","0.25.0":"2026-08-14T07:47:09.056Z","0.26.0":"2026-08-14T07:59:35.923Z","0.27.0":"2026-08-14T08:01:17.887Z","0.28.0":"2026-08-14T08:20:46.650Z","0.29.0":"2026-08-14T08:35:24.715Z","0.30.0":"2026-08-14T08:54:53.369Z","0.31.0":"2026-08-14T09:42:07.933Z","0.32.0":"2026-08-14T11:29:30.964Z","0.33.0":"2026-08-15T14:47:09.238Z","0.34.0":"2026-08-15T14:56:21.960Z","0.35.0":"2026-08-15T22:40:44.678Z","0.36.0":"2026-08-15T22:46:10.142Z","0.37.0":"2026-08-15T22:57:08.301Z","0.38.0":"2026-08-15T23:08:48.566Z","0.39.0":"2026-08-15T23:22:49.772Z","0.40.0":"2026-08-15T23:41:58.385Z","0.41.0":"2026-08-16T00:04:23.535Z","0.42.0":"2026-08-16T00:09:58.789Z","0.43.0":"2026-08-16T00:23:54.697Z","0.44.0":"2026-08-16T05:06:50.975Z","0.45.0":"2026-08-16T05:11:16.388Z","0.46.0":"2026-08-16T05:19:54.463Z","0.47.0":"2026-08-16T05:33:08.119Z","0.48.0":"2026-08-16T05:46:03.716Z","0.49.0":"2026-08-16T06:08:51.519Z","0.50.0":"2026-08-16T06:33:45.071Z","0.51.0":"2026-08-16T06:44:51.208Z","0.52.0":"2026-08-16T06:59:43.724Z","0.52.1":"2026-08-16T11:49:20.971Z","0.53.0":"2026-08-16T12:08:58.903Z","0.54.0":"2026-08-16T12:34:33.197Z","0.55.0":"2026-08-16T13:04:40.367Z","0.56.0":"2026-08-16T13:17:03.777Z","0.57.0":"2026-08-16T13:44:16.252Z","0.58.0":"2026-08-16T14:06:33.694Z","0.59.0":"2026-08-16T14:35:48.444Z","0.60.0":"2026-08-16T15:45:28.518Z","0.61.0":"2026-08-16T18:20:52.043Z","0.62.0":"2026-08-16T18:44:54.087Z","0.63.0":"2026-08-16T18:55:31.808Z"},"bugs":{"url":"https://github.com/diegoaltoworks/talker/issues"},"author":{"name":"Diego Alto","email":"diego@diegoalto.works"},"license":"MIT","homepage":"https://github.com/diegoaltoworks/talker#readme","keywords":["telephony","twilio","voice","sms","chatbot","chatter","twiml","conversational-ai","ivr","phone"],"repository":{"type":"git","url":"git+https://github.com/diegoaltoworks/talker.git"},"description":"Telephony plugin for Chatter: adds voice call, SMS and WhatsApp support via Twilio","maintainers":[{"name":"diegoaltoworks","email":"diego@diegoalto.co.uk"}],"readme":"# Talker\n\n<div align=\"center\">\n\n**Telephony plugin for Chatter - voice call and SMS support via Twilio**\n\n[![NPM Version](https://img.shields.io/npm/v/@diegoaltoworks/talker)](https://www.npmjs.com/package/@diegoaltoworks/talker)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n[Features](#features) - [Quick Start](#quick-start) - [Examples](#examples) - [Configuration](#configuration) - [Customization](#customization)\n\n</div>\n\n## Features\n\n- **Voice Calls**: Twilio webhook handlers with speech-to-text, text-to-speech, and continuous conversation loops\n- **SMS**: Inbound/outbound messaging with channel-appropriate formatting\n- **Pre/Post-Processing**: OpenAI-powered language detection, STT artifact cleanup, phone-friendly response formatting, and automatic translation\n- **Voice Notes**: Channel-agnostic speech-to-text, text-to-speech, Ogg/Opus inspection, and daily spend guards as standalone exports\n- **Structured Flows**: LLM intent detection + parameter extraction for guided multi-step conversations\n- **Human Handoff**: Automatic transfer to a real person on request or frustration signals\n- **Multi-Language**: English, French, German, Dutch, Spanish, Portuguese out of the box\n- **Two Modes**: Plugin for [Chatter](https://github.com/diegoaltoworks/chatter), or standalone with any chatbot backend\n- **TypeScript**: Fully typed for excellent developer experience\n\n## Quick Start\n\n```bash\n# With chatter (plugin mode)\nbun add @diegoaltoworks/talker\n\n# Standalone (no chatter required)\nbun add @diegoaltoworks/talker hono\n```\n\n**As a Chatter plugin** - one server, one port, web chat + phone + SMS:\n\n```typescript\nimport { createServer } from '@diegoaltoworks/chatter';\nimport { createTelephonyRoutes } from '@diegoaltoworks/talker';\n\nconst app = await createServer({\n  bot: { name: 'MyBot', personName: 'Your Name' },\n  openai: { apiKey: process.env.OPENAI_API_KEY },\n  database: { url: process.env.TURSO_URL, authToken: process.env.TURSO_AUTH_TOKEN },\n  customRoutes: async (app, deps) => {\n    await createTelephonyRoutes(app, deps, {\n      twilio: {\n        accountSid: process.env.TWILIO_ACCOUNT_SID,\n        authToken: process.env.TWILIO_AUTH_TOKEN,\n        phoneNumber: process.env.TWILIO_PHONE_NUMBER,\n      },\n      transferNumber: '+441234567890',\n    });\n  },\n});\n\nBun.serve({ port: 8181, fetch: app.fetch });\n```\n\n**As a standalone server** - point at a remote chatbot API:\n\n```typescript\nimport { createStandaloneServer } from '@diegoaltoworks/talker';\n\nconst app = await createStandaloneServer({\n  openaiApiKey: process.env.OPENAI_API_KEY || '',\n  // Required: webhooks refuse to mount without it (see Webhook signature validation)\n  twilio: { authToken: process.env.TWILIO_AUTH_TOKEN },\n  chatbot: {\n    url: process.env.CHATBOT_URL || 'http://localhost:8181/api/public/chat',\n    apiKey: process.env.CHATBOT_API_KEY,\n  },\n  transferNumber: '+441234567890',\n});\n\nBun.serve({ port: 3000, fetch: app.fetch });\n```\n\n**Requirements:** OpenAI API key, Bun runtime. Twilio account for production use.\n\n### Optional peer dependencies\n\n`hono` is the only hard requirement. The rest are optional peers: talker imports\nthem for types only and loads them on first use, so importing the package never\nfails because one is missing, and installing one you don't need is never\nnecessary. A feature whose peer is absent says so - naming the package and the\nfix - at the point of use rather than at import.\n\nThat guarantee is about `import`, not `tsc`: talker's `.d.ts` graph still\nreferences each optional peer's own type declarations (for the consumers that\ndo have them installed), and TypeScript must resolve that whole graph to bind\nthe package's shape even for a host using none of those features. Set\n`\"skipLibCheck\": true` in your `tsconfig.json` - already the effective default\nfor most bundler-generated configs (Vite, Next.js, etc.) and the standard\nrecommendation for any project depending on third-party packages - and this is\na non-issue; without it, a hono-only host's `tsc` run fails to resolve\n`@diegoaltoworks/chatter`, `@libsql/client` and `openai` even though none of\nthem are installed or needed.\n\n| Package | Needed for | Without it |\n| --- | --- | --- |\n| `@diegoaltoworks/chatter` | Plugin mode; flow intent detection and parameter extraction | LLM intent detection matches nothing; the critical-keyword handoff and any parameterless flow still run |\n| `openai` | Standalone mode with `flowsDir`; the voice STT/TTS factories when you pass a real client | `createStandaloneServer` throws at setup if `flowsDir` is set; injected-client voice factories are unaffected |\n| `@libsql/client` | Session persistence (`database` config) | `initDbClient` rejects; omit `database` to run without persistence |\n\n### Entry points\n\n| Import | What it gives you |\n| --- | --- |\n| `@diegoaltoworks/talker` | Everything - route factories, plugin and standalone entry points, voice capabilities, flows, TwiML helpers, and the Twilio REST helpers |\n| `@diegoaltoworks/talker/twilio` | Only the outbound Twilio REST helpers - `sendSMS`, `sendWhatsApp`, `stripWhatsAppPrefix` and the `SendMessageOptions` type - for senders that never mount a webhook |\n\nBoth are dual ESM/CJS and ship their own type declarations. The subpath is a\nnarrower slice of the root export, not a different implementation; an app that\nuses both ends up with two copies of the same stateless helpers, which is\nwasteful rather than wrong.\n\n## Examples\n\n**[Complete Examples](./examples/)** - Ready-to-run examples for all use cases:\n\n- **[Chatter Plugin](./examples/chatter-plugin.ts)** - Single server with web chat + phone + SMS\n- **[Standalone Server](./examples/standalone.ts)** - Phone/SMS with your own chatbot backend\n- **[Custom Flows](./examples/custom-flows.ts)** - Structured conversations with parameter collection\n\n## Configuration\n\n```typescript\ninterface TalkerConfig {\n  // Twilio credentials. `authToken` is required to mount the webhooks:\n  // it is what validates the X-Twilio-Signature header.\n  twilio?: {\n    accountSid?: string;\n    authToken?: string;\n    phoneNumber?: string;\n    // Twilio Messaging Service SID. When set, outbound messages use\n    // MessagingServiceSid instead of From (sender pool, sticky sender, compliance).\n    messagingServiceSid?: string;\n  };\n\n  // Public URL webhooks are received on (e.g. \"https://bot.example.com\").\n  // Set this behind a reverse proxy so signatures are checked against the\n  // URL Twilio actually called. Query strings are preserved.\n  publicUrl?: string;\n\n  // Mount the webhooks without signature validation. Development only.\n  // Default: false - see \"Webhook signature validation\" below.\n  allowUnsignedWebhooks?: boolean;\n\n  // Phone number for human handoff\n  transferNumber?: string;\n\n  // Voice config per language (defaults: Polly voices for 6 languages)\n  voices?: Record<string, { voice: string; language: string }>;\n\n  // Structured flow definitions directory\n  flowsDir?: string;\n\n  // Custom language phrase files directory\n  languageDir?: string;\n\n  // Languages processOutgoing is willing to reply in. Detection stays\n  // unrestricted either way; unset (default) replies in whatever was\n  // detected. Set: an exact match replies in kind, anything else replies\n  // in the list's first entry with a brief acknowledgment.\n  replyLanguages?: string[];\n\n  // Processing pipeline (pre/post-processing with OpenAI)\n  processing?: {\n    model?: string;              // Default: \"gpt-4o-mini\"\n    incomingPromptPath?: string; // Custom incoming message prompt\n    outgoingPromptPath?: string; // Custom outgoing response prompt\n    baseUrl?: string;            // Chat completions endpoint (Azure/gateway). Default: OpenAI's\n    requestTimeoutMs?: number;   // Abort a hung request. Default: 5000 (webhooks must return in ~15s)\n    temperature?: number;        // Sampling temperature for these structured, single-answer calls. Default: 0.3\n  };\n\n  // Feature flags\n  features?: {\n    thinkingAcknowledgmentEnabled?: boolean; // \"One moment please\" pattern\n  };\n\n  // Remote chatbot API (standalone mode - not needed in plugin mode)\n  chatbot?: {\n    url: string;               // e.g., \"https://bot.example.com/api/public/chat\"\n    apiKey?: string;           // Sent as x-api-key header\n    systemMessage?: string;    // Override default system prompt\n  };\n\n  // Database config for talker's own Turso/libSQL connection. Takes\n  // priority over the plugin-mode default below - set this only when\n  // talker should persist to a different database than chatter's.\n  database?: {\n    url: string;       // Turso/libSQL database URL\n    authToken: string; // Turso auth token\n  };\n\n  // Bring-your-own persistence for sessions, messages and delivery status.\n  // When set, used as-is - no migrations run, the host owns its own schema.\n  // Default resolution: `database` above if set, else (plugin mode only)\n  // chatter's own already-connected database - reused rather than opening a\n  // second connection to it - else a no-op store. See `TalkerStore` below.\n  store?: TalkerStore;\n\n  // Override OpenAI key (falls back to chatter's key in plugin mode)\n  openaiApiKey?: string;\n\n  // Route prefix for all endpoints. Default: \"\"\n  routePrefix?: string;\n\n  // Conversation TTL. Default: 30 minutes\n  contextTtlMs?: number;\n\n  // Context cleanup interval. Default: 5 minutes\n  cleanupIntervalMs?: number;\n\n  // Storage for per-phone-number conversation context. Default: an\n  // in-memory Map. Synchronous, so this swaps for another in-process\n  // implementation (an LRU with its own eviction, an instrumented store, a\n  // synchronous embedded-DB-backed store for restart durability) - not a\n  // networked one. Same structural-interface pattern as VoiceLimitsStore\n  // below, minus its async contract.\n  contextStore?: ContextStore;\n\n  // How long an unresolved /call/answer acknowledgment is kept before the\n  // cleanup sweep discards it. Checked once per cleanupIntervalMs tick, not\n  // a hard deadline. Keep it above callAnswerBudgetMs. Default: 1 minute\n  pendingQueryTtlMs?: number;\n\n  // Budget for background call processing before /call/answer gives up and\n  // speaks a timeout phrase. Stay well under Twilio's ~15s webhook timeout\n  // so the phrase is actually deliverable. Default: 8 seconds\n  callAnswerBudgetMs?: number;\n\n  // Max silence retries before ending call. Default: 3\n  maxNoSpeechRetries?: number;\n\n  // Rate limiting, per phone number\n  rateLimit?: {\n    maxRequests?: number; // Default: 30\n    windowMs?: number;    // Default: 1 minute\n  };\n\n  // Max characters accepted from speech/SMS input before it's clamped. Default: 1000\n  maxInputLength?: number;\n\n  // Custom chat function (overrides chatbot config and chatter RAG). A throw is\n  // logged and answered with a generic apology - no fall-through to chatbot/chatter.\n  chatFn?: (phoneNumber: string, message: string) => Promise<string>;\n\n  // Per-interaction persona resolver for the plugin-mode chat pipeline. Replaces\n  // chatter's default persona layer (base rules and RAG context are kept); return\n  // null/undefined to use the default. Errors are logged and fall back to the default.\n  personaFn?: (\n    phoneNumber: string,\n    message: string,\n  ) => Promise<string | null | undefined> | string | null | undefined;\n\n  // Dynamic per-caller greeting, called before any phrase lookup. Return\n  // null/undefined to fall back to the phrase-file greeting; errors also fall back.\n  greetingFn?: (\n    phoneNumber: string,\n    channel: \"call\" | \"sms\" | \"whatsapp\",\n  ) => Promise<string | null | undefined> | string | null | undefined;\n\n  // Callback invoked when a Twilio delivery status update is received for\n  // an SMS/WhatsApp message you sent (queued, sent, delivered, failed...).\n  // Fire-and-forget: a throwing or slow handler is logged and never delays\n  // the webhook's 200 response to Twilio.\n  onMessageStatus?: (event: MessageStatusEvent) => void | Promise<void>;\n\n  // Fired for every inbound message and every outbound reply on all\n  // channels (call, sms, whatsapp) - a live feed without parsing TwiML.\n  // `body` is the plain text delivered, never XML-escaped.\n  // Fire-and-forget: a throwing or slow handler is logged and never affects\n  // message delivery. `from`/`to` flip with direction (outbound `from` is\n  // your Twilio number); `to` is \"\" when Twilio omits it. Fires when the\n  // reply text is generated, not when Twilio confirms delivery - for\n  // delivery truth use `onMessageStatus`. Handlers run independently and\n  // aren't ordered relative to each other; sort by `timestamp` if needed.\n  onMessage?: (event: {\n    direction: \"inbound\" | \"outbound\";\n    channel: \"call\" | \"sms\" | \"whatsapp\";\n    from: string;\n    to: string;\n    body: string;\n    timestamp: number;\n  }) => void | Promise<void>;\n}\n```\n\n### Chat resolution order\n\nIn plugin mode, a message is answered by the first of:\n\n1. `chatFn`, if set - full override, bypasses chatter entirely.\n2. `chatbot.url`, if set - remote HTTP API (standalone mode).\n3. Chatter's RAG pipeline, via chatter's `prepareChat`. The assembled system\n   prompt layers base rules, then a persona (chatter's default, or\n   `personaFn`'s per-interaction override), then a hint naming the channel\n   (call/sms/whatsapp), then retrieved context. Retrieval scope honours\n   chatter's own `bucketsFor` hook (set on the chatter server config, not\n   here) for per-sender role-gated knowledge; an unidentified caller is\n   always clamped to the channel's default buckets. The assembled prompt is\n   answered via chatter's `answerOnce`, so a chatter-level `answerFn` (an\n   agent framework, a graph runtime - set on the chatter server config, not\n   here) answers telephony turns exactly like every other chatter surface;\n   with no `answerFn` configured this is the same built-in OpenAI completion\n   as always. The caller's phone number is passed as `sender` (omitted for\n   the \"unknown\" sentinel Twilio uses when it doesn't supply one).\n\n### Hook error semantics\n\nThese hooks sit on the request path. Each fails differently by design - a\nconfig-time override (`chatFn`) has nowhere else to fall back to, while an\nenrichment hook (`personaFn`, `greetingFn`) degrades to a sane default, and an\nobservability tap (`onMessage`, `onMessageStatus`) must never affect delivery\nat all:\n\n| Hook | Purpose | On throw/reject |\n|---|---|---|\n| `chatFn` | Full chat override | Logged; caller gets a generic apology reply (no fall-through to `chatbot`/chatter - the host asked to own this path) |\n| `personaFn` | Per-interaction persona swap | Logged; chatter's default persona layer is used instead |\n| `greetingFn` | Per-caller dynamic greeting | Logged; the phrase-file greeting is used instead |\n| `onMessage` | Inbound/outbound message tap | Logged; fire-and-forget, never delays or affects the reply |\n| `onMessageStatus` | Twilio delivery status tap | Logged; fire-and-forget, never delays the webhook's 200 |\n\n`onMessage` and `onMessageStatus` are fire-and-forget: the handler is scheduled\nafter the response is already decided, so it may still be running (or not yet\nstarted) when the webhook's 200 is sent. On a runtime that freezes execution\nonce a response is returned (serverless platforms in particular), a handler\ndoing further async work can be cut off mid-flight. Neither hook is a\nguarantee of completion - only of non-blocking, logged-on-failure delivery.\n\n## Twilio Setup\n\n1. Get a Twilio phone number\n2. Set webhook URLs in the Twilio console:\n\n| Webhook | URL | Method |\n|---|---|---|\n| Voice | `https://your-server.com/call` | HTTP POST |\n| Voice status callback | `https://your-server.com/call/status` | HTTP POST |\n| SMS | `https://your-server.com/sms` | HTTP POST |\n| SMS fallback | `https://your-server.com/sms/fallback` | HTTP POST |\n| SMS status callback | `https://your-server.com/sms/status` | HTTP POST |\n| WhatsApp | `https://your-server.com/whatsapp` | HTTP POST |\n| WhatsApp fallback | `https://your-server.com/whatsapp/fallback` | HTTP POST |\n| WhatsApp status callback | `https://your-server.com/whatsapp/status` | HTTP POST |\n\nFallback URLs are only consulted by Twilio when the primary webhook errors or\ntimes out; status callback URLs receive delivery status updates after a\nmessage is sent (see `onMessageStatus` below). Both are optional in the\nTwilio console but recommended.\n\n### Webhook signature validation\n\nEvery telephony webhook is protected by Twilio's `X-Twilio-Signature` header,\nvalidated with `twilio.authToken`. Validation fails closed:\n\n- **No `twilio.authToken`** - mounting throws. There is no way to tell a genuine\n  Twilio request from a forged one, so the routes are not exposed at all.\n- **`allowUnsignedWebhooks: true`** - mounting proceeds with an unmissable\n  warning and requests are accepted unsigned. This is for local development and\n  tests; anyone who can reach the endpoints can impersonate Twilio.\n- **Missing or wrong signature** - the request is rejected with `403`.\n\nSignatures are computed over the exact URL Twilio called, including any query\nstring. Behind a reverse proxy (where the request URL talker sees is not the\npublic one) set `publicUrl` so the two agree.\n\n## Customization\n\n### Custom Flows\n\nFlows are structured conversations with automatic parameter collection. Intent detection and parameter\nextraction are powered by chatter's flow engine (`@diegoaltoworks/chatter/flows`); talker keeps directory\nloading and the presentation layer (per-channel rendering, phrase-sourced cancel/error). Both engine\nfunctions are loaded on first use, so `@diegoaltoworks/chatter` stays an optional peer - without it,\nintent detection logs an actionable error and no flow matches, while the critical-keyword handoff (which\nneeds no LLM call) keeps working. In standalone mode, configuring `flowsDir` also requires `openai` to be\ninstalled - talker constructs an OpenAI client internally from `openaiApiKey`. In plugin mode this happens\nautomatically via chatter's own client.\n\nEach flow is a directory with three files:\n\n```\nconfig/flows/addNumbers/\n  flow.json         - Definition (id, keywords, parameter schema)\n  handler.ts        - Exports an execute() function\n  instructions.md   - System prompt for parameter extraction\n```\n\n**flow.json:**\n```json\n{\n  \"id\": \"addNumbers\",\n  \"name\": \"Add Two Numbers\",\n  \"description\": \"Adds two numbers together\",\n  \"triggerKeywords\": [\"add\", \"sum\", \"plus\"],\n  \"schema\": {\n    \"type\": \"object\",\n    \"properties\": {\n      \"firstNumber\": { \"type\": \"number\", \"description\": \"First number\" },\n      \"secondNumber\": { \"type\": \"number\", \"description\": \"Second number\" }\n    },\n    \"required\": [\"firstNumber\", \"secondNumber\"]\n  }\n}\n```\n\nAn optional `\"contractVersion\"` (integer) pins `flow.json` to a version of\nthis shape; omit it and talker treats the flow as version 1, the only version\nthat currently exists. A flow naming a version this build does not understand\nis skipped with a logged error rather than loaded and misinterpreted.\n\n**handler.ts:**\n```typescript\nimport type { FlowHandlerResult, FlowHandlerContext } from '@diegoaltoworks/talker';\n\nexport async function execute(\n  params: Record<string, unknown>,\n  context: FlowHandlerContext,\n): Promise<FlowHandlerResult> {\n  const sum = Number(params.firstNumber) + Number(params.secondNumber);\n  return {\n    success: true,\n    result: sum,\n    say: `${params.firstNumber} plus ${params.secondNumber} equals ${sum}. Need anything else?`,\n    sms: `${params.firstNumber} + ${params.secondNumber} = ${sum}`,\n    whatsapp: `${params.firstNumber} + ${params.secondNumber} = ${sum}. Anything else?`,\n  };\n}\n```\n\n`say` is used for voice calls and as the fallback reply on every channel; `sms`/`whatsapp` override it for\ntheir respective channel when a flow wants channel-specific phrasing (e.g. a link that only makes sense in\na text message). Set `success: false` only when the flow itself failed - the SMS/WhatsApp processors then\ndiscard `say`/`sms`/`whatsapp` and substitute a generic error phrase, and a voice call transfers to\n`transferNumber`. A flow that wants its own in-persona message for an expected failure (a rate limit, a\nvalidation error) should still return `success: true`.\n\nIf the user cancels an in-progress flow (a cancellation keyword like \"cancel\" or \"nevermind\"), every\nchannel delivers `phrases.flow.cancelled`. The keywords come from `phrases.flow.cancellationKeywords`\nin the caller's detected language, so a French caller can say \"annuler\" and a `languageDir` of your own\ncan replace the list. Matching is whole-word and ignores case and accents, so entries are written\nwithout accents (\"annule\" matches \"annulé\"). If flow processing itself fails - parameter extraction throws,\nthe flow can't be found, or a freshly-triggered flow fails to initialize - every channel delivers\n`phrases.flow.error` instead of silently falling through to a full chatbot turn.\n\nSee [examples/custom-flows.ts](./examples/custom-flows.ts) for a complete walkthrough.\n\n### Custom Language Files\n\nOverride built-in phrases by providing a `languageDir`. Place JSON files named by language code (`en.json`, `fr.json`, etc.):\n\n```typescript\ncreateTelephonyRoutes(app, deps, {\n  languageDir: './config/language',\n});\n```\n\nSee [language/en.json](./language/en.json) for the expected structure. Files\nmay be partial - any missing key falls back to this language's own `sms`\ncopy where applicable (for `whatsapp`), then to the built-in English phrase,\nso a file only needs to override what it wants to change.\n\nLanguage codes are validated before they are used as a filename or a voice-map\nkey: only `xx` / `xxx`, optionally with a region (`pt-BR`), are accepted, and\nanything else loads English instead. The active language is detected by the\nmodel from what the caller says, so this keeps caller-influenced text out of\npath and object lookups. `isValidLanguageCode(code)` and\n`normalizeLanguage(code, where)` are exported if you resolve languages\nyourself.\n\nDetection runs on the caller's first utterance and holds for the life of the\nsession, and every phrase after it - greetings, retries, errors, timeouts,\nthe rate-limit reply, the chat apology - is rendered in that language, with\nthat language's voice. The first turn of a call is the one exception: the\ncontext has just been cleared and the caller has not spoken yet, so the\ngreeting uses the default language. `resolveLanguage(phoneNumber)` is\nexported if you need the same answer in your own handlers.\n\n### Restricting Reply Languages\n\n`languageDir` above overrides *phrase copy* per language; the language\n*detected* is a separate, fixed list (English, French, Dutch, German,\nSpanish, Portuguese today - see [prompts/incoming.md](./prompts/incoming.md)).\n`replyLanguages` is narrower still: it only controls which of those detected\nlanguages the OpenAI-generated reply text (`processOutgoing`) is willing to\ncome back in. Detection is unaffected either way. Useful when an operator can\nonly staff replies in a subset of the languages they can be reached in - for\nexample, an operator who reads and writes English and Portuguese, but wants\ncallers and texters in the other supported languages still understood rather\nthan met with silence or a wrong-language reply:\n\n```typescript\ncreateTelephonyRoutes(app, deps, {\n  replyLanguages: ['en', 'pt'],\n});\n```\n\nWith this set, a caller speaking French, Dutch, German or Spanish is still\nunderstood normally (language detection is unaffected), but the reply text\nlands in English or Portuguese (English here, since it is listed first) and\nopens with a brief acknowledgment that it can't continue in the caller's\nlanguage, before answering the question. A caller in English or Portuguese -\nlanguages already in the list - gets a reply in kind, no acknowledgment.\nLeaving `replyLanguages` unset keeps today's behavior: the reply always\nmatches the detected language.\n\nThis narrows the LLM-generated reply text only. On a voice call, the TTS\nvoice and the `<Gather>` speech-recognition language are still driven by the\ncaller's actual detected language (see \"Custom Voices\" below) - narrowing\n`replyLanguages` does not change which voice reads the reply back, and every\nother phrase (retries, errors, farewells) still speaks the detected\nlanguage, not the narrowed one. `replyLanguages` entries are the codes\ndetection emits (`en`, `pt-BR`); casing is normalized for you when the mount\nis built, so `'EN'` and `'pt-br'` work, and an entry that cannot be a\nlanguage code at all is dropped with a warning rather than left in the list\nwhere it could never match.\n\nThe acknowledgment text comes from `prompts.replyLanguageMismatch` in\n`language/<replyLanguage>.json`, so it can be translated and overridden the\nsame way as every other phrase (see \"Custom Language Files\" above). It sits\nunder `prompts` rather than at the top level because it is an instruction to\nthe model, never spoken or sent to a caller. It is worded without naming a\nspecific language, since a language file that doesn't override this key falls\nback to the built-in English copy - naming \"English\" there would contradict a\nreply narrowed to another language.\n\n### Custom Prompts\n\nOverride the pre/post-processing system prompts:\n\n```typescript\ncreateTelephonyRoutes(app, deps, {\n  processing: {\n    incomingPromptPath: './config/prompts/telephony-incoming.md',\n    outgoingPromptPath: './config/prompts/telephony-outgoing.md',\n  },\n});\n```\n\nThe pipeline calls OpenAI's chat completions endpoint directly (not through\nchatter's client), so `processing.baseUrl` can point it at an Azure OpenAI\ndeployment or a gateway instead. Each call aborts after\n`processing.requestTimeoutMs` (default 5s) so a hung upstream request can't\nhold a webhook open - `processIncoming` and `processOutgoing` each make one\ncall per turn, and Twilio gives up on a webhook after ~15s.\n`processing.temperature` (default 0.3) controls how deterministic those\ncalls are; the default favors consistent language detection and intent\nclassification over varied phrasing.\n\nSee [prompts/incoming.md](./prompts/incoming.md) and [prompts/outgoing.md](./prompts/outgoing.md) for the default prompts. `getIncomingPrompt(deps)` and `getOutgoingPrompt(deps)` return the prompt actually in force, custom path or packaged default.\n\n### Custom Voices\n\nOverride the default Polly TTS voices per language:\n\n```typescript\ncreateTelephonyRoutes(app, deps, {\n  voices: {\n    en: { voice: 'Polly.Amy', language: 'en-US' },\n    fr: { voice: 'Polly.Lea', language: 'fr-FR' },\n  },\n});\n```\n\n### Custom Session Store\n\nSession/message/status persistence goes through `TalkerStore` - a structural\ninterface, so no import or subclassing is needed:\n\n```typescript\ninterface TalkerStore {\n  upsertSession(session: SessionRecord): Promise<boolean>;\n  insertMessage(message: MessageRecord): Promise<boolean>;\n  upsertMessageStatus(record: MessageStatusRecord): Promise<boolean>;\n}\n```\n\nLeft unset, plugin mode reuses chatter's own already-connected database\n(`deps.db`) rather than opening a second connection to it; standalone mode and\nan explicit `database` config open talker's own Turso/libSQL connection and run\nmigrations against it. Either way you get `createLibsqlTalkerStore`, exported\nfor hosts that want the same implementation over a client they manage\nthemselves. Set `store` to persist through a different database, add\ninstrumentation, or use a fake in tests - no migrations run against a\nbring-your-own store, since the host owns its own schema:\n\n```typescript\ncreateTelephonyRoutes(app, deps, {\n  store: {\n    async upsertSession(session) { /* ... */ return true; },\n    async insertMessage(message) { /* ... */ return true; },\n    async upsertMessageStatus(record) { /* ... */ return true; },\n  },\n});\n```\n\n### Voice Capabilities\n\nSpeech-to-text, text-to-speech, container inspection and daily spend guards ship\nas plain root exports rather than route options - they are channel-agnostic\nfunctions, so a host wires them into whichever transport it runs (Twilio\nwebhooks, a socket-based worker, its own adapter) by calling the factories\ndirectly. Nothing here reads the environment; the OpenAI client is injected, and\n`openai` is imported for types only, so it stays an optional peer dependency.\n\nNote the distinction from `getVoiceConfig` above: that maps languages to Polly\nvoice identifiers for phone-call TwiML. These produce and consume Ogg/Opus audio\nbytes for voice-note style delivery.\n\n```typescript\nimport {\n  createSynthesizer,\n  createTranscriber,\n  createVoiceLimiter,\n  parseOggOpus,\n  resolveVoiceLimitsConfig,\n} from '@diegoaltoworks/talker';\nimport OpenAI from 'openai';\n\nconst client = () => new OpenAI({ apiKey: process.env.OPENAI_API_KEY });\n\nconst transcribe = createTranscriber({ client, enabled: () => true });\nconst synthesize = createSynthesizer({\n  client,\n  enabled: () => true,\n  baseInstructions: 'Speak clearly and unhurriedly.',\n  voiceFor: (personaId) => myVoiceMap[personaId ?? 'default'],\n});\n\nconst text = await transcribe(inboundAudioBytes);   // string | null\nconst note = await synthesize('Your table is booked.'); // { bytes, seconds } | null\n```\n\n**Both return `null` rather than throwing** - on every disabled, empty, API-failure\nand validation-failure path. Synthesis also refuses output that is not parseable\nOgg/Opus or is not mono, since some mobile clients will not play a stereo voice\nnote. Callers are expected to fall back to a text reply; the contract exists so\nthat fallback is always reachable.\n\n`parseOggOpus(bytes)` returns `{ channels, seconds }` or `null` for anything it\ncannot measure, and is what the synthesizer uses for that validation. It walks\nthe container's page structure rather than scanning for the `OggS` capture\npattern, so payload bytes cannot pose as a page header and drive the reported\nduration - inbound voice notes are attacker-controlled, and this is a root\nexport intended to be pointed at them.\n\nDaily spend guards cap voice usage per number and globally. Storage stays with\nthe host: implement `VoiceLimitsStore` against whatever database you already run.\nThe type is structural, so no import or subclassing is needed - an object with a\nmatching `incrementAndGet` satisfies it.\n\n```typescript\nconst limiter = createVoiceLimiter(\n  resolveVoiceLimitsConfig(process.env),  // VOICE_LIMIT_PER_NUMBER, VOICE_LIMIT_GLOBAL\n  { store: myCounterStore },\n);\n\nconst check = await limiter.checkAndReserve(fromNumber);\nif (!check.allowed) { /* check.reason: 'per-number' | 'global' */ }\n```\n\n`checkAndReserve` must be called exactly once per voice round-trip, **before**\ntranscription starts, so one unit covers transcribe + reply. The increment is\npermanent and unconditional - there is no release path, so a retry burns a\nsecond unit. `incrementAndGet` must increment and read back atomically; a\nread-then-write races across instances.\n\n`runVoiceReply(deps)` chains reserve -> download -> transcribe -> answer ->\nsynthesize -> voice-or-text into the full round-trip, with the hard invariant\nthat every branch attempts a delivered message: a limit hit, a transcription\nfailure or a synthesis failure all fall back to a text reply rather than\nsilence. It is channel-agnostic - no Twilio/webhook types in its signature -\nso a host wires the pieces above (plus its own `answer` and send functions)\ninto it directly. Fallback copy comes from `getVoicePhrase`, so it lives in\n`language/*.json` alongside the other phrase namespaces rather than being\nhardcoded; call it once per branch (not once up front) so rotation still\napplies.\n\n```typescript\nimport { getVoicePhrase, runVoiceReply } from '@diegoaltoworks/talker';\n\nconst outcome = await runVoiceReply({\n  reserve: () => limiter.checkAndReserve(fromNumber),\n  download: () => fetchInboundAudio(),\n  transcribe,\n  answer: (text) => myBot.reply(fromNumber, text),\n  synthesize: (text) => synthesize(text, { personaId: myPersonaFor(fromNumber) }),\n  sendVoice: (note) => sendVoiceNote(fromNumber, note),\n  sendText: (text) => sendSMS({ to: fromNumber, body: text }),\n  phrases: {\n    overCapPerNumber: getVoicePhrase(lang, 'overCapPerNumber'),\n    overCapGlobal: getVoicePhrase(lang, 'overCapGlobal'),\n    limitUnavailable: getVoicePhrase(lang, 'limitUnavailable'),\n    unintelligible: getVoicePhrase(lang, 'unintelligible'),\n    answerFailed: getVoicePhrase(lang, 'answerFailed'),\n  },\n});\n// outcome: 'voice' | 'text' | 'over-cap' | 'limit-error' | 'no-audio' | 'transcribe-failed' | 'answer-failed'\n```\n\n`sendText` is the one call in the ladder that is never wrapped - a failure to\ndeliver even the guaranteed fallback propagates to the caller instead of\nresolving to a silent \"undeliverable\" outcome.\n\n**Bringing your own audio.** TTS-synthesized voice notes (`createSynthesizer`,\nabove) never need any of this - OpenAI's own Opus output carries no inherited\ncontainer metadata. This only applies if you send a **custom, user-recorded**\naudio file (not synthesized here) as a voice note, e.g. `ptt:true` on WhatsApp.\n\nA phone recording is typically M4A/AAC, and transcoding it with ffmpeg's\n*default* settings -\n\n```bash\nffmpeg -i recording.m4a -c:a libopus out.ogg\n```\n\n- produces a file that `parseOggOpus` accepts, that ffmpeg itself decodes\nwithout warning, but that some stricter players (WhatsApp's Android extractor\namong them) refuse to play at all. The cause: ffmpeg's default metadata\nmapping carries the source container's fields - MP4 atoms like `major_brand`,\n`compatible_brands`, `com.android.version` - into the Ogg comment (`OpusTags`)\nheader, where they are nonsensical. Lenient readers ignore them; WhatsApp's\ndoes not.\n\nThe fix is to strip inherited metadata and encode for voice rather than music:\n\n```bash\nffmpeg -i recording.m4a -map_metadata -1 -application voip \\\n  -avoid_negative_ts make_zero -ac 1 -ar 48000 -c:a libopus out.ogg\n```\n\n`-map_metadata -1` drops the carried-over container fields, `-application\nvoip` switches Opus to its voice-tuned mode (the default is music-tuned), and\n`-avoid_negative_ts make_zero` avoids a negative first timestamp some\ntranscodes leave behind. `-ac 1 -ar 48000` match the mono/48kHz shape voice\nnotes are expected to have (see the synthesizer's own mono check, above).\n\n`findSuspiciousOggComments(bytes)` gives an early warning without needing to\nreproduce the WhatsApp-side failure first: it inspects the `OpusTags` comment\nheader for exactly this class of leftover container field and returns their\nkeys (`[]` if the file is clean, `null` if there is no readable comment header\nto inspect at all). It is a signal, not a validity check - `parseOggOpus`'s\nown pass/fail contract is unaffected by what this finds.\n\n```typescript\nimport { findSuspiciousOggComments } from '@diegoaltoworks/talker';\n\nconst suspicious = findSuspiciousOggComments(uploadedBytes);\nif (suspicious && suspicious.length > 0) {\n  console.warn('audio carries container metadata that may not play on strict players:', suspicious);\n}\n```\n\n## Architecture\n\n```\nPhone Call / SMS\n      |\n      v\n  Twilio (ASR / TTS / SMS gateway)\n      |\n      v  POST /call or /sms\n  Talker (Hono routes)\n      |-- processIncoming  (OpenAI: language detect, transfer intent, STT cleanup)\n      |-- Flow lifecycle   (chatter: intent detect + parameter extraction; talker: loading + presentation)\n      |-- chatFn / Chatter RAG pipeline\n      |-- processOutgoing  (OpenAI: channel formatting, translation)\n      |\n      v  TwiML response\n  Twilio (speaks / sends to caller)\n```\n\n**Call lifecycle:** Twilio posts to `/call` on ring, `/call/respond` on speech, `/call/no-speech` on silence, `/call/answer` after async acknowledgment, and `/call/status` on hangup.\n\nFor the invariants that hold across this structure (fail-closed webhooks,\nevery-branch-delivers, phrase-file-only strings, injected clients, the\nsingle-process state caveat) and why talker's scope stops where chatter's\nstarts, see [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md) and\n[`docs/adr/0001-modality-adapter-identity.md`](docs/adr/0001-modality-adapter-identity.md).\n\n## Project Structure\n\n| Directory | What lives there |\n|---|---|\n| `src/core/processing/` | OpenAI-powered incoming pre-processor and outgoing post-processor |\n| `src/core/chatbot/` | HTTP client for remote chatbot APIs (standalone mode) |\n| `src/core/` | Context store, TwiML generation, voice config, phrases, logger |\n| `src/voice/` | Channel-agnostic voice capabilities - STT, TTS, Ogg/Opus parsing, daily spend guards |\n| `src/flows/` | Flow lifecycle and presentation - registry, session state, per-channel rendering (intent detection and parameter extraction live in `@diegoaltoworks/chatter/flows`) |\n| `src/routes/call/` | Individual Hono handlers for each Twilio voice webhook |\n| `src/routes/messaging/` | Hono handlers for SMS and WhatsApp webhooks, parameterized by channel |\n| `src/routes/shared/` | Handlers shared across channels - fallback webhook, delivery status callback |\n| `src/adapters/` | Twilio REST API client (outbound SMS) |\n| `src/db/` | Session persistence to Turso/libSQL (`talker_sessions`, `talker_messages`) |\n| `src/middleware/` | Twilio signature validation, rate limiting, input truncation |\n| `examples/` | Ready-to-run examples for plugin, standalone, and custom flows |\n| `language/` | Built-in phrase files (en, fr, de, nl, es, pt) |\n| `prompts/` | Default system prompts for the processing pipeline |\n\n## Development\n\n```bash\nbun install\nbun test                # Run all tests\nbun run test:unit       # Unit tests only\nbun run test:integration # Integration tests (some require OPENAI_API_KEY)\nbun run test:packaged   # Smoke-test the packed tarball (build, pack, install, boot)\nbun run typecheck       # Type checking\nbun run lint            # Biome linting\nbun run check           # All checks (typecheck + lint + test + security audit)\nbun run build           # Build for npm (dual ESM/CJS)\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md"}