{"_id":"towns-agent","_rev":"32-7582bd4e57394044d288933bc46d0448","name":"towns-agent","dist-tags":{"latest":"7.3.1"},"versions":{"2.0.4":{"name":"towns-agent","version":"2.0.4","keywords":["bot","cli","protocol","scaffold","towns"],"author":{"name":"Towns Protocol"},"_id":"towns-agent@2.0.4","maintainers":[{"name":"miguel-at-towns","email":"miguel@towns.com"}],"bin":{"towns-agent":"index.js"},"dist":{"shasum":"93dd0aac938a4d97faafb144e95fa9db23aa185f","tarball":"https://registry.npmjs.org/towns-agent/-/towns-agent-2.0.4.tgz","fileCount":7,"integrity":"sha512-4x45sYqOtCym3HZVmK5Zk2nLVKiHWrTdxAaADu3pn1X5M2mm6WqbW4IX0GrrVY7D/37RYAQAbt6DC2OTH1M+wA==","signatures":[{"sig":"MEYCIQDwiGbfpo/xhgUByFOJWKah8cURE3AAl/gO/GT/P5m12AIhALr1GRlw6I/Ti3lgUhKuuNj4G//KUiXEgIRXoWapdTDb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":242988},"engines":{"node":"^18.0.0 || >=20.0.0"},"gitHead":"d1534e253cf76aa557b3efe4a09361cb2bb4a3f8","scripts":{"cli":"NODE_TLS_REJECT_UNAUTHORIZED=0 bun src/index.ts","dev":"tsx src/index.ts","lint":"eslint src --ext .ts","build":"tsup","watch":"tsup --watch","lint:fix":"eslint src --ext .ts --fix"},"_npmUser":{"name":"miguel-at-towns","email":"miguel@towns.com"},"_npmVersion":"10.8.2","description":"CLI for creating and managing Towns Protocol bot projects","directories":{},"_nodeVersion":"20.20.0","dependencies":{"tsx":"^4.7.1","zod":"^4.3.6","viem":"^2.29.3","dotenv":"^16.4.5","ethers":"^5.8.0","prompts":"^2.4.2","minimist":"^1.2.8","picocolors":"^1.1.1","cross-spawn":"^7.0.5","jsonc-parser":"^3.3.1","@towns-labs/sdk":"workspace:^","@towns-labs/proto":"workspace:^","@towns-labs/utils":"workspace:^","@bufbuild/protobuf":"^2.9.0","@towns-labs/contracts":"workspace:^","@connectrpc/connect-node":"^2.1.0","@towns-labs/relayer-client":"workspace:^"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","eslint":"^8.57.1","typescript":"~5.8.3","@types/node":"^20.14.8","@types/prompts":"^2.4.9","@types/minimist":"^1.2.5","@types/cross-spawn":"^6.0.6","eslint-plugin-import-x":"^4.10.2","@typescript-eslint/parser":"^8.29.0","@typescript-eslint/eslint-plugin":"^8.29.0","eslint-import-resolver-typescript":"^4.3.2"},"_npmOperationalInternal":{"tmp":"tmp/towns-agent_2.0.4_1770157210932_0.9227322715738724","host":"s3://npm-registry-packages-npm-production"}},"2.0.5":{"name":"towns-agent","version":"2.0.5","keywords":["bot","cli","protocol","scaffold","towns"],"author":"Towns Protocol","_id":"towns-agent@2.0.5","maintainers":[{"name":"miguel-at-towns","email":"miguel@towns.com"}],"bin":{"towns-agent":"index.js"},"dist":{"shasum":"43bdcf291be5f18afe3b4b5606109fc475fc02ca","tarball":"https://registry.npmjs.org/towns-agent/-/towns-agent-2.0.5.tgz","fileCount":7,"integrity":"sha512-ssH2YvoLuecnnzGEWTGTov4rnygAWW9knx8DzuZUMnl9Rav8J9W8hGE2zDuYkNyD0cAwPzzCUjhmvnjtbmchfQ==","signatures":[{"sig":"MEUCIC3rkxjliLx1nfy6nP8bvEeYdllkeAWfUrXWwAkPj4+5AiEAr1VNfdw62MM+AGKziErVuVb3+0gYh+JdC5ErN9etzY8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":245321},"shasum":"43bdcf291be5f18afe3b4b5606109fc475fc02ca","engines":{"node":"^18.0.0 || >=20.0.0"},"scripts":{"cli":"NODE_TLS_REJECT_UNAUTHORIZED=0 bun src/index.ts","dev":"tsx src/index.ts","lint":"eslint src --ext .ts","build":"tsup","watch":"tsup --watch","lint:fix":"eslint src --ext .ts --fix"},"_npmUser":{"name":"miguel-at-towns","email":"miguel@towns.com"},"_integrity":"sha512-ssH2YvoLuecnnzGEWTGTov4rnygAWW9knx8DzuZUMnl9Rav8J9W8hGE2zDuYkNyD0cAwPzzCUjhmvnjtbmchfQ==","_npmVersion":"10.8.3","description":"CLI for creating and managing Towns Protocol bot projects","directories":{},"_nodeVersion":"24.3.0","dependencies":{"tsx":"^4.7.1","zod":"^4.3.6","viem":"^2.29.3","dotenv":"^16.4.5","ethers":"^5.8.0","prompts":"^2.4.2","minimist":"^1.2.8","picocolors":"^1.1.1","cross-spawn":"^7.0.5","jsonc-parser":"^3.3.1","@towns-labs/sdk":"^2.0.5","@towns-labs/proto":"^2.0.5","@towns-labs/utils":"^2.0.5","@bufbuild/protobuf":"^2.9.0","@towns-labs/contracts":"^2.0.5","@connectrpc/connect-node":"^2.1.0","@towns-labs/relayer-client":"^2.0.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","eslint":"^8.57.1","typescript":"~5.8.3","@types/node":"^20.14.8","@types/prompts":"^2.4.9","@types/minimist":"^1.2.5","@types/cross-spawn":"^6.0.6","eslint-plugin-import-x":"^4.10.2","@typescript-eslint/parser":"^8.29.0","@typescript-eslint/eslint-plugin":"^8.29.0","eslint-import-resolver-typescript":"^4.3.2"},"_npmOperationalInternal":{"tmp":"tmp/towns-agent_2.0.5_1770157814734_0.029078739542205634","host":"s3://npm-registry-packages-npm-production"}},"2.0.6":{"name":"towns-agent","version":"2.0.6","keywords":["bot","cli","protocol","scaffold","towns"],"author":"Towns Protocol","_id":"towns-agent@2.0.6","maintainers":[{"name":"miguel-at-towns","email":"miguel@towns.com"}],"bin":{"towns-agent":"index.js"},"dist":{"shasum":"ddd4f9d0cdd40d06e26e0004acedba0365267c43","tarball":"https://registry.npmjs.org/towns-agent/-/towns-agent-2.0.6.tgz","fileCount":16,"integrity":"sha512-O1hojph6GOx/+W3AmHKikq9mfVqVYN6PnGXTE42Gf9lrVFrLNDLk9wp71sXK2LsKugejx2+fXPvauuaAPtPzig==","signatures":[{"sig":"MEQCIHRyei9gcFrGxhizUBVkxBLdhuhq7GWTLt09JKgcoQeQAiAMhBK7RHo4IkDoJf2ltXZDF8IAuxNezK8XpEbTQfR/9w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":257348},"shasum":"ddd4f9d0cdd40d06e26e0004acedba0365267c43","engines":{"node":"^18.0.0 || >=20.0.0"},"scripts":{"cli":"NODE_TLS_REJECT_UNAUTHORIZED=0 bun src/index.ts","dev":"tsx src/index.ts","lint":"eslint src --ext .ts","build":"tsup","watch":"tsup --watch","lint:fix":"eslint src --ext .ts --fix"},"_npmUser":{"name":"miguel-at-towns","email":"miguel@towns.com"},"_integrity":"sha512-O1hojph6GOx/+W3AmHKikq9mfVqVYN6PnGXTE42Gf9lrVFrLNDLk9wp71sXK2LsKugejx2+fXPvauuaAPtPzig==","_npmVersion":"10.8.3","description":"CLI for creating and managing Towns Protocol bot projects","directories":{},"_nodeVersion":"24.3.0","dependencies":{"tsx":"^4.7.1","zod":"^4.3.6","viem":"2.45.1","dotenv":"^16.4.5","ethers":"^5.8.0","prompts":"^2.4.2","minimist":"^1.2.8","picocolors":"^1.1.1","cross-spawn":"^7.0.5","jsonc-parser":"^3.3.1","@towns-labs/sdk":"^2.0.6","@towns-labs/proto":"^2.0.6","@towns-labs/utils":"^2.0.6","@bufbuild/protobuf":"^2.9.0","@towns-labs/contracts":"^2.0.6","@connectrpc/connect-node":"^2.1.0","@towns-labs/relayer-client":"^2.0.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","eslint":"^8.57.1","typescript":"~5.8.3","@types/node":"^20.14.8","@types/prompts":"^2.4.9","@types/minimist":"^1.2.5","@types/cross-spawn":"^6.0.6","eslint-plugin-import-x":"^4.10.2","@typescript-eslint/parser":"^8.29.0","@typescript-eslint/eslint-plugin":"^8.29.0","eslint-import-resolver-typescript":"^4.3.2"},"_npmOperationalInternal":{"tmp":"tmp/towns-agent_2.0.6_1770227030059_0.7398791499528503","host":"s3://npm-registry-packages-npm-production"}},"2.0.7":{"name":"towns-agent","version":"2.0.7","keywords":["bot","cli","protocol","scaffold","towns"],"author":"Towns Protocol","_id":"towns-agent@2.0.7","maintainers":[{"name":"miguel-at-towns","email":"miguel@towns.com"}],"bin":{"towns-agent":"index.js"},"dist":{"shasum":"51cbb9148e5ba6ee6036975d481b5abc5e39847a","tarball":"https://registry.npmjs.org/towns-agent/-/towns-agent-2.0.7.tgz","fileCount":16,"integrity":"sha512-QjF0fW2xUbaqtPcON6yaZT/6JaimoWESqM67I/eORTZRoneD8cjl4CZdctf6k8gYfg1gpXX+GE1/TKw/BlzlUQ==","signatures":[{"sig":"MEUCIQDV6hqO+SnKJDIe38muYHF/1qky+wXj9bMYZSA/JA6pCwIgKV9EXl1euOTJZhVm0G5N1DcL3OHroP1lYpmKXk/QaxA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":256472},"shasum":"51cbb9148e5ba6ee6036975d481b5abc5e39847a","engines":{"node":"^18.0.0 || >=20.0.0"},"scripts":{"cli":"NODE_TLS_REJECT_UNAUTHORIZED=0 bun src/index.ts","dev":"tsx src/index.ts","lint":"eslint src --ext .ts","build":"tsup","watch":"tsup --watch","lint:fix":"eslint src --ext .ts --fix"},"_npmUser":{"name":"miguel-at-towns","email":"miguel@towns.com"},"_integrity":"sha512-QjF0fW2xUbaqtPcON6yaZT/6JaimoWESqM67I/eORTZRoneD8cjl4CZdctf6k8gYfg1gpXX+GE1/TKw/BlzlUQ==","_npmVersion":"10.8.3","description":"CLI for creating and managing Towns Protocol bot projects","directories":{},"_nodeVersion":"24.3.0","dependencies":{"tsx":"^4.7.1","zod":"^4.3.6","viem":"2.45.1","dotenv":"^16.4.5","ethers":"^5.8.0","prompts":"^2.4.2","minimist":"^1.2.8","picocolors":"^1.1.1","cross-spawn":"^7.0.5","jsonc-parser":"^3.3.1","@towns-labs/sdk":"^2.0.6","@towns-labs/proto":"^2.0.6","@towns-labs/utils":"^2.0.6","@bufbuild/protobuf":"^2.9.0","@towns-labs/contracts":"^2.0.6","@connectrpc/connect-node":"^2.1.0","@towns-labs/relayer-client":"^2.0.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","eslint":"^8.57.1","typescript":"~5.8.3","@types/node":"^20.14.8","@types/prompts":"^2.4.9","@types/minimist":"^1.2.5","@types/cross-spawn":"^6.0.6","eslint-plugin-import-x":"^4.10.2","@typescript-eslint/parser":"^8.29.0","@typescript-eslint/eslint-plugin":"^8.29.0","eslint-import-resolver-typescript":"^4.3.2"},"_npmOperationalInternal":{"tmp":"tmp/towns-agent_2.0.7_1770260330651_0.7550246963916261","host":"s3://npm-registry-packages-npm-production"}},"2.0.9":{"name":"towns-agent","version":"2.0.9","keywords":["bot","cli","protocol","scaffold","towns"],"author":"Towns Protocol","_id":"towns-agent@2.0.9","maintainers":[{"name":"miguel-at-towns","email":"miguel@towns.com"}],"bin":{"towns-agent":"index.js"},"dist":{"shasum":"a58ef7c805901bc2f1018c27e8f2841240b3100e","tarball":"https://registry.npmjs.org/towns-agent/-/towns-agent-2.0.9.tgz","fileCount":16,"integrity":"sha512-RHpjwGJ0/DeOFhpAwYBXG+8LZ+fEQqBjr4aAmO4+6Zh3v1iWBclDXFwA5I4YZsDsYuPT+ALtDJiVRVeq2QseXg==","signatures":[{"sig":"MEQCIG7e7rJRlOj3JWAiAI8MZtvI+rRw38Iyl9yoW2cvrgXsAiAKKf/VbLs8XLy//4VK20O0bepdwBwVt7gnzsQtU7ecWA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":256486},"shasum":"a58ef7c805901bc2f1018c27e8f2841240b3100e","engines":{"node":"^18.0.0 || >=20.0.0"},"scripts":{"cli":"NODE_TLS_REJECT_UNAUTHORIZED=0 bun src/index.ts","dev":"bun run src/index.ts","lint":"eslint src --ext .ts","build":"tsup","watch":"tsup --watch","lint:fix":"eslint src --ext .ts --fix"},"_npmUser":{"name":"miguel-at-towns","email":"miguel@towns.com"},"_integrity":"sha512-RHpjwGJ0/DeOFhpAwYBXG+8LZ+fEQqBjr4aAmO4+6Zh3v1iWBclDXFwA5I4YZsDsYuPT+ALtDJiVRVeq2QseXg==","_npmVersion":"10.8.3","description":"CLI for creating and managing Towns Protocol bot projects","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.3.6","viem":"2.45.1","dotenv":"^16.4.5","ethers":"^5.8.0","prompts":"^2.4.2","minimist":"^1.2.8","picocolors":"^1.1.1","cross-spawn":"^7.0.5","jsonc-parser":"^3.3.1","@bufbuild/protobuf":"^2.9.0","@towns-protocol/olm":"3.2.28","@connectrpc/connect-node":"^2.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","eslint":"^8.57.1","typescript":"~5.8.3","@types/node":"^20.14.8","@types/prompts":"^2.4.9","@towns-labs/sdk":"^2.0.8","@types/minimist":"^1.2.5","@towns-labs/proto":"^2.0.8","@towns-labs/utils":"^2.0.8","@types/cross-spawn":"^6.0.6","@towns-labs/contracts":"^2.0.8","eslint-plugin-import-x":"^4.10.2","@typescript-eslint/parser":"^8.29.0","@towns-labs/relayer-client":"^2.0.8","@typescript-eslint/eslint-plugin":"^8.29.0","eslint-import-resolver-typescript":"^4.3.2"},"_npmOperationalInternal":{"tmp":"tmp/towns-agent_2.0.9_1770318681375_0.0929763215931656","host":"s3://npm-registry-packages-npm-production"}},"2.0.10":{"name":"towns-agent","version":"2.0.10","keywords":["bot","cli","protocol","scaffold","towns"],"author":{"name":"Towns Protocol"},"_id":"towns-agent@2.0.10","maintainers":[{"name":"miguel-at-towns","email":"miguel@towns.com"}],"bin":{"towns-agent":"index.js"},"dist":{"shasum":"103f0248a0134b00961e74589ecf771d248ad7c2","tarball":"https://registry.npmjs.org/towns-agent/-/towns-agent-2.0.10.tgz","fileCount":14,"integrity":"sha512-I+bGialWdUv7bPiZfS2rosBfX03s0OlVR5NUR/tbMz1TU8BYkBPxUXrP/t6aTkKqygC24qpRIpfkN1g1Ibvh4A==","signatures":[{"sig":"MEUCIQDWhQIG1GmqEoN9fuQuL9fjFYimAlxYoGSbTRRoF0UNWgIgKoeLSxkVk2H7CTpyRVTDx0GyetMx1eH5z47LaoFldkI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7504362},"engines":{"node":"^18.0.0 || >=20.0.0"},"gitHead":"58f5a92b1fb1b248765e5d1c6b456507888733a8","scripts":{"cli":"NODE_TLS_REJECT_UNAUTHORIZED=0 bun src/index.ts","dev":"bun run src/index.ts","lint":"eslint src --ext .ts","build":"tsup","watch":"tsup --watch","lint:fix":"eslint src --ext .ts --fix"},"_npmUser":{"name":"miguel-at-towns","email":"miguel@towns.com"},"_npmVersion":"10.8.2","description":"CLI for creating and managing Towns Protocol bot projects","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^4.3.6","viem":"2.45.1","dotenv":"^16.4.5","ethers":"^5.8.0","prompts":"^2.4.2","minimist":"^1.2.8","picocolors":"^1.1.1","cross-spawn":"^7.0.5","jsonc-parser":"^3.3.1","@bufbuild/protobuf":"^2.9.0","@towns-protocol/olm":"3.2.28","@connectrpc/connect-node":"^2.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","eslint":"^8.57.1","typescript":"~5.8.3","@types/node":"^20.14.8","@types/prompts":"^2.4.9","@towns-labs/sdk":"^2.0.10","@types/minimist":"^1.2.5","@towns-labs/proto":"^2.0.10","@towns-labs/utils":"^2.0.10","@types/cross-spawn":"^6.0.6","@towns-labs/contracts":"^2.0.10","eslint-plugin-import-x":"^4.10.2","@typescript-eslint/parser":"^8.29.0","@towns-labs/relayer-client":"^2.0.10","@typescript-eslint/eslint-plugin":"^8.29.0","eslint-import-resolver-typescript":"^4.3.2"},"_npmOperationalInternal":{"tmp":"tmp/towns-agent_2.0.10_1770340470387_0.6064111783279418","host":"s3://npm-registry-packages-npm-production"}},"2.0.11":{"name":"towns-agent","version":"2.0.11","keywords":["bot","cli","protocol","scaffold","towns"],"author":{"name":"Towns Protocol"},"_id":"towns-agent@2.0.11","maintainers":[{"name":"miguel-at-towns","email":"miguel@towns.com"}],"bin":{"towns-agent":"index.js"},"dist":{"shasum":"3911d4ac145064d0a363bb6d153e32feccedbbc8","tarball":"https://registry.npmjs.org/towns-agent/-/towns-agent-2.0.11.tgz","fileCount":14,"integrity":"sha512-wO3Inclr5sUebdzKpYhu6q8JbYzTeaKfLwFPPqoJ5nLs3hFGteCihNyety9p6WmvFgehbQr0KA5oB9OWpagdeg==","signatures":[{"sig":"MEUCIQCuJCmdrUi3v+EZEdwSAWe9mnqjetndLSFts4GkAgY6NAIgD4e3QHn9ubchm0xirMMY9f3HGJCaafQPInOUL6+zAIo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7509118},"engines":{"node":"^18.0.0 || >=20.0.0"},"gitHead":"04829ed867ce9828271b2bb635be8f57cfeda778","scripts":{"cli":"NODE_TLS_REJECT_UNAUTHORIZED=0 bun src/index.ts","dev":"bun run src/index.ts","lint":"eslint src --ext .ts","build":"tsup","watch":"tsup --watch","lint:fix":"eslint src --ext .ts --fix"},"_npmUser":{"name":"miguel-at-towns","email":"miguel@towns.com"},"_npmVersion":"10.8.2","description":"CLI for creating and managing Towns Protocol bot projects","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^4.3.6","viem":"2.45.1","dotenv":"^16.4.5","ethers":"^5.8.0","prompts":"^2.4.2","minimist":"^1.2.8","picocolors":"^1.1.1","cross-spawn":"^7.0.5","jsonc-parser":"^3.3.1","@bufbuild/protobuf":"^2.9.0","@towns-protocol/olm":"3.2.28","@connectrpc/connect-node":"^2.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","eslint":"^8.57.1","typescript":"~5.8.3","@types/node":"^20.14.8","@types/prompts":"^2.4.9","@towns-labs/sdk":"^2.0.11","@types/minimist":"^1.2.5","@towns-labs/proto":"^2.0.11","@towns-labs/utils":"^2.0.11","@types/cross-spawn":"^6.0.6","@towns-labs/contracts":"^2.0.11","eslint-plugin-import-x":"^4.10.2","@typescript-eslint/parser":"^8.29.0","@towns-labs/relayer-client":"^2.0.11","@typescript-eslint/eslint-plugin":"^8.29.0","eslint-import-resolver-typescript":"^4.3.2"},"_npmOperationalInternal":{"tmp":"tmp/towns-agent_2.0.11_1770381816477_0.4608353913830645","host":"s3://npm-registry-packages-npm-production"}},"2.0.12":{"name":"towns-agent","version":"2.0.12","keywords":["bot","cli","protocol","scaffold","towns"],"author":{"name":"Towns Protocol"},"_id":"towns-agent@2.0.12","maintainers":[{"name":"miguel-at-towns","email":"miguel@towns.com"}],"bin":{"towns-agent":"index.js"},"dist":{"shasum":"0317ab58e8f0a004aadfe17afb102c6bd54f6176","tarball":"https://registry.npmjs.org/towns-agent/-/towns-agent-2.0.12.tgz","fileCount":14,"integrity":"sha512-FfsVAvJG8j4F2mNNrRslEdX/fnNitwsocnn0m4dhdDBSFEL40b0R06J99SDjb0Ksy7X9ENw9JEHMpq6O0ckDDA==","signatures":[{"sig":"MEUCIBGbZg3X8Io6rqwGqYHKv2aDoZ9DHyPVBFTqkK3tVE2pAiEAid7UjJkJDeMvfbRFW+rDD3MPhFEgjOOuwCaeK+7V57s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7391444},"engines":{"node":"^18.0.0 || >=20.0.0"},"gitHead":"db89f8a6a5219798f2f57551c92a4073d47e4273","scripts":{"cli":"NODE_TLS_REJECT_UNAUTHORIZED=0 bun src/index.ts","dev":"bun run src/index.ts","lint":"eslint src --ext .ts","build":"tsup","watch":"tsup --watch","lint:fix":"eslint src --ext .ts --fix"},"_npmUser":{"name":"miguel-at-towns","email":"miguel@towns.com"},"_npmVersion":"10.8.2","description":"CLI for creating and managing Towns Protocol bot projects","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^4.3.6","viem":"2.45.1","dotenv":"^16.4.5","ethers":"^5.8.0","prompts":"^2.4.2","minimist":"^1.2.8","picocolors":"^1.1.1","cross-spawn":"^7.0.5","jsonc-parser":"^3.3.1","@bufbuild/protobuf":"^2.9.0","@towns-protocol/olm":"3.2.28","@connectrpc/connect-node":"^2.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","eslint":"^8.57.1","typescript":"~5.8.3","@types/node":"^20.14.8","@types/prompts":"^2.4.9","@towns-labs/sdk":"^2.0.12","@types/minimist":"^1.2.5","@towns-labs/proto":"^2.0.12","@towns-labs/utils":"^2.0.12","@types/cross-spawn":"^6.0.6","@towns-labs/contracts":"^2.0.12","eslint-plugin-import-x":"^4.10.2","@typescript-eslint/parser":"^8.29.0","@towns-labs/relayer-client":"^2.0.12","@typescript-eslint/eslint-plugin":"^8.29.0","eslint-import-resolver-typescript":"^4.3.2"},"_npmOperationalInternal":{"tmp":"tmp/towns-agent_2.0.12_1770734585129_0.39610209386399653","host":"s3://npm-registry-packages-npm-production"}},"2.0.13":{"name":"towns-agent","version":"2.0.13","keywords":["bot","cli","protocol","scaffold","towns"],"author":{"name":"Towns Protocol"},"_id":"towns-agent@2.0.13","maintainers":[{"name":"miguel-at-towns","email":"miguel@towns.com"}],"bin":{"towns-agent":"index.js"},"dist":{"shasum":"879e7f3aa1fe2cf8f9f02144c0de253baf68f7a4","tarball":"https://registry.npmjs.org/towns-agent/-/towns-agent-2.0.13.tgz","fileCount":14,"integrity":"sha512-kGy7XApqE3tx68DTXk5z8+mZ3UghVBEj35DlGoU41+Xo1muSANPFZabC8oZakFUDiN4GqNkI7XPcWYOxboItUA==","signatures":[{"sig":"MEUCIH7gSFHZukPxO5vls5fXG5iVVt4lQbXJyElWHa3ngTxCAiEA111ujUNeEhLlakxq6BB5tcMx2WUVK346Dpe49SzNpeg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7359902},"engines":{"node":"^18.0.0 || >=20.0.0"},"gitHead":"52b994fb5388698bcc9cf086c4111ee2edcea147","scripts":{"cli":"NODE_TLS_REJECT_UNAUTHORIZED=0 bun src/index.ts","dev":"bun run src/index.ts","lint":"eslint src --ext .ts","build":"tsup","watch":"tsup --watch","lint:fix":"eslint src --ext .ts --fix"},"_npmUser":{"name":"miguel-at-towns","email":"miguel@towns.com"},"_npmVersion":"10.8.2","description":"CLI for creating and managing Towns Protocol bot projects","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^4.3.6","viem":"2.45.1","dotenv":"^16.4.5","ethers":"^5.8.0","prompts":"^2.4.2","minimist":"^1.2.8","file-type":"^19.6.0","image-size":"^2.0.2","picocolors":"^1.1.1","cross-spawn":"^7.0.5","jsonc-parser":"^3.3.1","@bufbuild/protobuf":"^2.9.0","@towns-protocol/olm":"3.2.28","@connectrpc/connect-node":"^2.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","eslint":"^8.57.1","typescript":"~5.8.3","@types/node":"^20.14.8","@types/prompts":"^2.4.9","@towns-labs/sdk":"^2.0.13","@types/minimist":"^1.2.5","@towns-labs/proto":"^2.0.13","@towns-labs/utils":"^2.0.13","@types/cross-spawn":"^6.0.6","@towns-labs/contracts":"^2.0.13","@towns-labs/encryption":"^2.0.13","@towns-labs/sdk-crypto":"^2.0.13","eslint-plugin-import-x":"^4.10.2","@typescript-eslint/parser":"^8.29.0","@towns-labs/relayer-client":"^2.0.13","@typescript-eslint/eslint-plugin":"^8.29.0","eslint-import-resolver-typescript":"^4.3.2"},"_npmOperationalInternal":{"tmp":"tmp/towns-agent_2.0.13_1770857523542_0.5090927966022982","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"towns-agent","version":"2.1.0","keywords":["bot","cli","protocol","scaffold","towns"],"author":{"name":"Towns Protocol"},"_id":"towns-agent@2.1.0","maintainers":[{"name":"miguel-at-towns","email":"miguel@towns.com"}],"bin":{"towns-agent":"index.js"},"dist":{"shasum":"0b72654caf647a8d808b68d4d55dbd814890a155","tarball":"https://registry.npmjs.org/towns-agent/-/towns-agent-2.1.0.tgz","fileCount":14,"integrity":"sha512-Pq39r6MLMATuw4y34kmIsS8DSEGe+0dol47EN4OyOjXjAIpiXjMdVv3Tu7YhzfORyH45PsNZgBIPgNSRdq/+CA==","signatures":[{"sig":"MEQCICsAc92HrHjUw+Ya2o5ZzPJRiOd/1CbRClvl3m0wGcpyAiBxxmmtUAW3wC3QbS8QEGo46pbWpvDmM62pqqB2ycSASg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7367804},"engines":{"node":"^18.0.0 || >=20.0.0"},"gitHead":"225aa089a06be7a6a44569ac2caebd4a7f00c9b2","scripts":{"cli":"NODE_TLS_REJECT_UNAUTHORIZED=0 bun src/index.ts","dev":"bun run src/index.ts","lint":"eslint src --ext .ts","build":"tsup","watch":"tsup --watch","lint:fix":"eslint src --ext .ts --fix"},"_npmUser":{"name":"miguel-at-towns","email":"miguel@towns.com"},"_npmVersion":"10.8.2","description":"CLI for creating and managing Towns Protocol bot projects","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^4.3.6","viem":"2.45.1","dotenv":"^16.4.5","ethers":"^5.8.0","prompts":"^2.4.2","minimist":"^1.2.8","file-type":"^19.6.0","image-size":"^2.0.2","picocolors":"^1.1.1","cross-spawn":"^7.0.5","jsonc-parser":"^3.3.1","@bufbuild/protobuf":"^2.9.0","@towns-protocol/olm":"3.2.28","@connectrpc/connect-node":"^2.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","eslint":"^8.57.1","typescript":"~5.8.3","@types/node":"^20.14.8","@types/prompts":"^2.4.9","@towns-labs/sdk":"^2.1.0","@types/minimist":"^1.2.5","@towns-labs/proto":"^2.1.0","@towns-labs/utils":"^2.1.0","@types/cross-spawn":"^6.0.6","@towns-labs/contracts":"^2.1.0","@towns-labs/encryption":"^2.1.0","@towns-labs/sdk-crypto":"^2.1.0","eslint-plugin-import-x":"^4.10.2","@typescript-eslint/parser":"^8.29.0","@towns-labs/relayer-client":"^2.1.0","@typescript-eslint/eslint-plugin":"^8.29.0","eslint-import-resolver-typescript":"^4.3.2"},"_npmOperationalInternal":{"tmp":"tmp/towns-agent_2.1.0_1770972220425_0.7311072225220323","host":"s3://npm-registry-packages-npm-production"}},"2.1.1":{"name":"towns-agent","version":"2.1.1","keywords":["bot","cli","protocol","scaffold","towns"],"author":{"name":"Towns Protocol"},"_id":"towns-agent@2.1.1","maintainers":[{"name":"miguel-at-towns","email":"miguel@towns.com"}],"bin":{"towns-agent":"index.js"},"dist":{"shasum":"0039e36b542af4309390a3b15464859c0de3f9e7","tarball":"https://registry.npmjs.org/towns-agent/-/towns-agent-2.1.1.tgz","fileCount":14,"integrity":"sha512-4bx2+uCIb1Osp37+yTbdcniXqasoiFqTC8p7ISD2ydFGcDa8kBlCfsBblIcluZ8uBN/M0KmbDgufeZPs0IDvDQ==","signatures":[{"sig":"MEQCIHeoqht3/q8CLJyqBR1yQ1jj+p4no9RGwreHXDTYzr3qAiAZY5GDQVqGf7Yb+GSv8zFiWw+KIE/Ck6aEEh7tWx9TsA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7374242},"engines":{"node":"^18.0.0 || >=20.0.0"},"gitHead":"f4510fa52fb21808a4474c2e7136e7197a39a222","scripts":{"cli":"NODE_TLS_REJECT_UNAUTHORIZED=0 bun src/index.ts","dev":"bun run src/index.ts","lint":"eslint src --ext .ts","build":"tsup","watch":"tsup --watch","lint:fix":"eslint src --ext .ts --fix"},"_npmUser":{"name":"miguel-at-towns","email":"miguel@towns.com"},"_npmVersion":"10.8.2","description":"CLI for creating and managing Towns Protocol bot projects","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^4.3.6","viem":"2.45.1","dotenv":"^16.4.5","ethers":"^5.8.0","prompts":"^2.4.2","minimist":"^1.2.8","file-type":"^19.6.0","image-size":"^2.0.2","picocolors":"^1.1.1","cross-spawn":"^7.0.5","jsonc-parser":"^3.3.1","@bufbuild/protobuf":"^2.9.0","@towns-protocol/olm":"3.2.28","@connectrpc/connect-node":"^2.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","eslint":"^8.57.1","typescript":"~5.8.3","@types/node":"^20.14.8","@types/prompts":"^2.4.9","@towns-labs/sdk":"^2.1.1","@types/minimist":"^1.2.5","@towns-labs/proto":"^2.1.1","@towns-labs/utils":"^2.1.1","@types/cross-spawn":"^6.0.6","@towns-labs/contracts":"^2.1.1","@towns-labs/encryption":"^2.1.1","@towns-labs/sdk-crypto":"^2.1.1","eslint-plugin-import-x":"^4.10.2","@typescript-eslint/parser":"^8.29.0","@towns-labs/relayer-client":"^2.1.1","@typescript-eslint/eslint-plugin":"^8.29.0","eslint-import-resolver-typescript":"^4.3.2"},"_npmOperationalInternal":{"tmp":"tmp/towns-agent_2.1.1_1771278525313_0.8124330336011567","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"towns-agent","version":"3.0.0","keywords":["bot","cli","protocol","scaffold","towns"],"author":{"name":"Towns Protocol"},"_id":"towns-agent@3.0.0","maintainers":[{"name":"miguel-at-towns","email":"miguel@towns.com"}],"bin":{"towns-agent":"index.js"},"dist":{"shasum":"5c21e5fa77fbb3c0223fc024bb526f784b1339b1","tarball":"https://registry.npmjs.org/towns-agent/-/towns-agent-3.0.0.tgz","fileCount":14,"integrity":"sha512-3X4WmjEnPPzPZDRoAGSDmTcAlrlNqtQl6328c/g4mlhZRrqOL//YecbO8EL5ZEs2rI2OahN7PpuA7ZDIhK4Azw==","signatures":[{"sig":"MEUCICHdcrdEb4NCUiAjruC1V2692MDim4zTJ4r6jlCfgQQMAiEAwdsP15JLiBuT0raHeG0BSJGMS42XtoO4ZvhjnssoPMs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7404813},"engines":{"node":"^18.0.0 || >=20.0.0"},"gitHead":"7a05667b2d4ebdd88e8a94ede36f8184f7cc8dde","scripts":{"cli":"NODE_TLS_REJECT_UNAUTHORIZED=0 bun src/index.ts","dev":"bun run src/index.ts","lint":"eslint src --ext .ts","build":"tsup","watch":"tsup --watch","lint:fix":"eslint src --ext .ts --fix"},"_npmUser":{"name":"miguel-at-towns","email":"miguel@towns.com"},"_npmVersion":"10.8.2","description":"CLI for creating and managing Towns Protocol bot projects","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^4.3.6","viem":"2.45.1","dotenv":"^16.4.5","ethers":"^5.8.0","prompts":"^2.4.2","minimist":"^1.2.8","file-type":"^19.6.0","image-size":"^2.0.2","picocolors":"^1.1.1","cross-spawn":"^7.0.5","jsonc-parser":"^3.3.1","@bufbuild/protobuf":"^2.9.0","@towns-protocol/olm":"3.2.28","@connectrpc/connect-node":"^2.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","eslint":"^8.57.1","typescript":"~5.8.3","@types/node":"^20.14.8","@types/prompts":"^2.4.9","@towns-labs/sdk":"^3.0.0","@types/minimist":"^1.2.5","@towns-labs/proto":"^3.0.0","@towns-labs/utils":"^3.0.0","@types/cross-spawn":"^6.0.6","@towns-labs/contracts":"^3.0.0","@towns-labs/encryption":"^3.0.0","@towns-labs/sdk-crypto":"^3.0.0","eslint-plugin-import-x":"^4.10.2","@typescript-eslint/parser":"^8.29.0","@towns-labs/relayer-client":"^3.0.0","@typescript-eslint/eslint-plugin":"^8.29.0","eslint-import-resolver-typescript":"^4.3.2"},"_npmOperationalInternal":{"tmp":"tmp/towns-agent_3.0.0_1771393829142_0.43563850167677654","host":"s3://npm-registry-packages-npm-production"}},"3.1.0":{"name":"towns-agent","version":"3.1.0","keywords":["bot","cli","protocol","scaffold","towns"],"author":{"name":"Towns Protocol"},"_id":"towns-agent@3.1.0","maintainers":[{"name":"miguel-at-towns","email":"miguel@towns.com"}],"bin":{"towns-agent":"index.js"},"dist":{"shasum":"f553036183fc5408599df46090ef6b6155a64eec","tarball":"https://registry.npmjs.org/towns-agent/-/towns-agent-3.1.0.tgz","fileCount":14,"integrity":"sha512-7bsTA4YA480LksUdhmkvlybh+IDlF/Zh+t0hF+4embTi8AwBNPZPnHfFTBO19BSxXnoyY2HzOBBiysjmZX1Bvg==","signatures":[{"sig":"MEUCIQCVhCxlz9t3Hu/al0N0NtvAShM+4MxXqBbZ9BWLuMu1pAIgTl8DqHvaeYnhLiHGtnibN+Tg0admEfHeb3+EG9TMjPM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7428763},"engines":{"node":"^18.0.0 || >=20.0.0"},"gitHead":"625aa2b30cffd2b2dfab038fbc9e7576494bba32","scripts":{"cli":"NODE_TLS_REJECT_UNAUTHORIZED=0 bun src/index.ts","dev":"bun run src/index.ts","lint":"eslint src --ext .ts","build":"tsup","watch":"tsup --watch","lint:fix":"eslint src --ext .ts --fix"},"_npmUser":{"name":"miguel-at-towns","email":"miguel@towns.com"},"_npmVersion":"10.8.2","description":"CLI for creating and managing Towns Protocol bot projects","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^4.3.6","viem":"2.45.1","dotenv":"^16.4.5","ethers":"^5.8.0","prompts":"^2.4.2","minimist":"^1.2.8","file-type":"^19.6.0","image-size":"^2.0.2","picocolors":"^1.1.1","cross-spawn":"^7.0.5","jsonc-parser":"^3.3.1","@bufbuild/protobuf":"^2.9.0","@towns-protocol/olm":"3.2.28","@connectrpc/connect-node":"^2.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","eslint":"^8.57.1","typescript":"~5.8.3","@types/node":"^20.14.8","@types/prompts":"^2.4.9","@towns-labs/sdk":"^3.1.0","@types/minimist":"^1.2.5","@towns-labs/proto":"^3.1.0","@towns-labs/utils":"^3.1.0","@types/cross-spawn":"^6.0.6","@towns-labs/contracts":"^3.1.0","@towns-labs/encryption":"^3.1.0","@towns-labs/sdk-crypto":"^3.1.0","eslint-plugin-import-x":"^4.10.2","@typescript-eslint/parser":"^8.29.0","@towns-labs/relayer-client":"^3.1.0","@typescript-eslint/eslint-plugin":"^8.29.0","eslint-import-resolver-typescript":"^4.3.2"},"_npmOperationalInternal":{"tmp":"tmp/towns-agent_3.1.0_1771488464012_0.5500638035184535","host":"s3://npm-registry-packages-npm-production"}},"3.2.0":{"name":"towns-agent","version":"3.2.0","keywords":["bot","cli","protocol","scaffold","towns"],"author":{"name":"Towns Protocol"},"_id":"towns-agent@3.2.0","maintainers":[{"name":"miguel-at-towns","email":"miguel@towns.com"}],"bin":{"towns-agent":"index.js"},"dist":{"shasum":"4a7161c44126712d67bd3d032ed7cf43242c5f5b","tarball":"https://registry.npmjs.org/towns-agent/-/towns-agent-3.2.0.tgz","fileCount":14,"integrity":"sha512-Xqtvi2FKiATcVGUz1zduHaKFWc0gB4JNYMMUwp/7TdNB2rjZ/1bBgvXQhM328SZhSRGk822VK+JKsAtbe1LzLw==","signatures":[{"sig":"MEUCIQC3xZf1hTB9B83WqqaAG2UyFQtP9CRJ3VWEPwnLIfNQCwIgK1NnvMBqV1hdI11oWbbsMqzni1bWNcv1ksW/S0ZG3c8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7437997},"engines":{"node":"^18.0.0 || >=20.0.0"},"gitHead":"c4fdaf81787e8065bb38da01493ab07fa8504825","scripts":{"cli":"NODE_TLS_REJECT_UNAUTHORIZED=0 bun src/index.ts","dev":"bun run src/index.ts","lint":"eslint src --ext .ts","build":"tsup","watch":"tsup --watch","lint:fix":"eslint src --ext .ts --fix"},"_npmUser":{"name":"miguel-at-towns","email":"miguel@towns.com"},"_npmVersion":"10.8.2","description":"CLI for creating and managing Towns Protocol bot projects","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^4.3.6","viem":"2.45.1","dotenv":"^16.4.5","ethers":"^5.8.0","prompts":"^2.4.2","minimist":"^1.2.8","file-type":"^19.6.0","image-size":"^2.0.2","picocolors":"^1.1.1","cross-spawn":"^7.0.5","jsonc-parser":"^3.3.1","@bufbuild/protobuf":"^2.9.0","@towns-protocol/olm":"3.2.28","@connectrpc/connect-node":"^2.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","eslint":"^8.57.1","typescript":"~5.8.3","@types/node":"^20.14.8","@types/prompts":"^2.4.9","@towns-labs/sdk":"^3.2.0","@types/minimist":"^1.2.5","@towns-labs/proto":"^3.2.0","@towns-labs/utils":"^3.2.0","@types/cross-spawn":"^6.0.6","@towns-labs/contracts":"^3.2.0","@towns-labs/encryption":"^3.2.0","@towns-labs/sdk-crypto":"^3.2.0","eslint-plugin-import-x":"^4.10.2","@typescript-eslint/parser":"^8.29.0","@towns-labs/relayer-client":"^3.2.0","@typescript-eslint/eslint-plugin":"^8.29.0","eslint-import-resolver-typescript":"^4.3.2"},"_npmOperationalInternal":{"tmp":"tmp/towns-agent_3.2.0_1771617074261_0.9716524728094604","host":"s3://npm-registry-packages-npm-production"}},"3.3.0":{"name":"towns-agent","version":"3.3.0","keywords":["bot","cli","protocol","scaffold","towns"],"author":{"name":"Towns Protocol"},"_id":"towns-agent@3.3.0","maintainers":[{"name":"miguel-at-towns","email":"miguel@towns.com"}],"bin":{"towns-agent":"index.js"},"dist":{"shasum":"af4820d1d8fe6d97ad35efa9154760deef4c7d6e","tarball":"https://registry.npmjs.org/towns-agent/-/towns-agent-3.3.0.tgz","fileCount":14,"integrity":"sha512-umQkia/ENrNxwhzmEH8g5Wj6yQKDPKMUTvG7kmJvqROh0/Fm3A7wHVn7JL5Oi75sNRcSA8DUmuwCVTTC6bpIZg==","signatures":[{"sig":"MEUCIQCkNuLsdtvIayaRWGY485K1eu7oyKk2DV0nHCWIFkEOAAIgfHbbTy2fJebQpN/QUtSH6kdFglF5VUiBmGf++hj8B7o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5093380},"engines":{"node":"^18.0.0 || >=20.0.0"},"gitHead":"d774d808ac7004bd25d29d6a8fc1cab97098c211","scripts":{"cli":"NODE_TLS_REJECT_UNAUTHORIZED=0 bun src/index.ts","dev":"bun run src/index.ts","lint":"eslint src --ext .ts","build":"tsup","watch":"tsup --watch","lint:fix":"eslint src --ext .ts --fix"},"_npmUser":{"name":"miguel-at-towns","email":"miguel@towns.com"},"_npmVersion":"10.8.2","description":"CLI for creating and managing Towns Protocol bot projects","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^4.3.6","viem":"2.45.1","dotenv":"^16.4.5","ethers":"^5.8.0","prompts":"^2.4.2","minimist":"^1.2.8","file-type":"^19.6.0","image-size":"^2.0.2","picocolors":"^1.1.1","cross-spawn":"^7.0.5","jsonc-parser":"^3.3.1","@bufbuild/protobuf":"^2.9.0","@towns-protocol/olm":"3.2.28","@connectrpc/connect-node":"^2.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","eslint":"^8.57.1","typescript":"~5.8.3","@types/node":"^20.14.8","@types/prompts":"^2.4.9","@towns-labs/sdk":"^3.3.0","@types/minimist":"^1.2.5","@towns-labs/proto":"^3.3.0","@towns-labs/utils":"^3.3.0","@types/cross-spawn":"^6.0.6","@towns-labs/encryption":"^3.3.0","@towns-labs/sdk-crypto":"^3.3.0","eslint-plugin-import-x":"^4.10.2","@towns-labs/deployments":"^3.3.0","@typescript-eslint/parser":"^8.29.0","@towns-labs/relayer-client":"^3.3.0","@typescript-eslint/eslint-plugin":"^8.29.0","eslint-import-resolver-typescript":"^4.3.2"},"_npmOperationalInternal":{"tmp":"tmp/towns-agent_3.3.0_1771896021235_0.8828500578056129","host":"s3://npm-registry-packages-npm-production"}},"3.3.1":{"name":"towns-agent","version":"3.3.1","keywords":["bot","cli","protocol","scaffold","towns"],"author":{"name":"Towns Protocol"},"_id":"towns-agent@3.3.1","maintainers":[{"name":"miguel-at-towns","email":"miguel@towns.com"}],"bin":{"towns-agent":"index.js"},"dist":{"shasum":"204489d3336d2b7bd779920bd4e30244fdeeac20","tarball":"https://registry.npmjs.org/towns-agent/-/towns-agent-3.3.1.tgz","fileCount":14,"integrity":"sha512-awnnAKiSEXY2oun9nZEoOFGB5rCK/N+qInKJpnbkqSlZfE/Vs0LcW4Y4Q/QljRqGGOK+la59VlwISD1vp5zxUg==","signatures":[{"sig":"MEUCIQCBqC/MnQIyuJJSoSy3w4+dxAA4bz9JKGiVdPvpJbXJ5AIgCY276O3q6LO3Brpr0tBPGLm7mWI/WI/1vf0rpMLbXes=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5101794},"engines":{"node":"^18.0.0 || >=20.0.0"},"gitHead":"8cd4faa6edc1b9c628404625cc4e4f8e52a483da","scripts":{"cli":"NODE_TLS_REJECT_UNAUTHORIZED=0 bun src/index.ts","dev":"bun run src/index.ts","lint":"eslint src --ext .ts","build":"tsup","watch":"tsup --watch","lint:fix":"eslint src --ext .ts --fix"},"_npmUser":{"name":"miguel-at-towns","email":"miguel@towns.com"},"_npmVersion":"10.8.2","description":"CLI for creating and managing Towns Protocol bot projects","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^4.3.6","viem":"2.45.1","dotenv":"^16.4.5","ethers":"^5.8.0","prompts":"^2.4.2","minimist":"^1.2.8","file-type":"^19.6.0","image-size":"^2.0.2","picocolors":"^1.1.1","cross-spawn":"^7.0.5","jsonc-parser":"^3.3.1","@bufbuild/protobuf":"^2.9.0","@towns-protocol/olm":"3.2.28","@connectrpc/connect-node":"^2.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","eslint":"^8.57.1","typescript":"~5.8.3","@types/node":"^20.14.8","@types/prompts":"^2.4.9","@towns-labs/sdk":"^3.3.1","@types/minimist":"^1.2.5","@towns-labs/proto":"^3.3.1","@towns-labs/utils":"^3.3.1","@types/cross-spawn":"^6.0.6","@towns-labs/encryption":"^3.3.1","@towns-labs/sdk-crypto":"^3.3.1","eslint-plugin-import-x":"^4.10.2","@towns-labs/deployments":"^3.3.1","@typescript-eslint/parser":"^8.29.0","@towns-labs/relayer-client":"^3.3.1","@typescript-eslint/eslint-plugin":"^8.29.0","eslint-import-resolver-typescript":"^4.3.2"},"_npmOperationalInternal":{"tmp":"tmp/towns-agent_3.3.1_1771955509490_0.22954417009680328","host":"s3://npm-registry-packages-npm-production"}},"3.4.0":{"name":"towns-agent","version":"3.4.0","keywords":["bot","cli","protocol","scaffold","towns"],"author":{"name":"Towns Protocol"},"_id":"towns-agent@3.4.0","maintainers":[{"name":"miguel-at-towns","email":"miguel@towns.com"}],"bin":{"towns-agent":"index.js"},"dist":{"shasum":"41a80bb4fd93f4527f36fdb8d6999fca98947f09","tarball":"https://registry.npmjs.org/towns-agent/-/towns-agent-3.4.0.tgz","fileCount":14,"integrity":"sha512-qtMJwwcrFhfBbHSrgqJiMu90/juKnQOpnfJtp00igX6iRuJqspUi+flYP7rODES8BQOve7Hvpi04dSUwTtVjYQ==","signatures":[{"sig":"MEUCIQDOpJgQkXHyhEbmHB8mlM4eKKRsXi8Jt2HBCVgBqsZ22gIgXSwhIMuVWjM2+xjBbGxdvp4S9WrrJY0i/W9K7UV18a0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5040222},"engines":{"node":"^18.0.0 || >=20.0.0"},"gitHead":"2a54ebad43b2d0bc993ef708bc188a5649af2fec","scripts":{"cli":"NODE_TLS_REJECT_UNAUTHORIZED=0 bun src/index.ts","dev":"bun run src/index.ts","lint":"eslint src --ext .ts","build":"tsup","watch":"tsup --watch","lint:fix":"eslint src --ext .ts --fix"},"_npmUser":{"name":"miguel-at-towns","email":"miguel@towns.com"},"_npmVersion":"10.8.2","description":"CLI for creating and managing Towns Protocol bot projects","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^4.3.6","viem":"2.45.1","dotenv":"^16.4.5","ethers":"^5.8.0","prompts":"^2.4.2","minimist":"^1.2.8","file-type":"^19.6.0","image-size":"^2.0.2","picocolors":"^1.1.1","cross-spawn":"^7.0.5","jsonc-parser":"^3.3.1","@bufbuild/protobuf":"^2.9.0","@towns-protocol/olm":"3.2.28","@connectrpc/connect-node":"^2.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","eslint":"^8.57.1","typescript":"~5.8.3","@types/node":"^20.14.8","@types/prompts":"^2.4.9","@towns-labs/sdk":"^3.4.0","@types/minimist":"^1.2.5","@towns-labs/proto":"^3.4.0","@towns-labs/utils":"^3.4.0","@types/cross-spawn":"^6.0.6","@towns-labs/contracts":"^3.4.0","@towns-labs/encryption":"^3.4.0","@towns-labs/sdk-crypto":"^3.4.0","eslint-plugin-import-x":"^4.10.2","@typescript-eslint/parser":"^8.29.0","@towns-labs/relayer-client":"^3.4.0","@typescript-eslint/eslint-plugin":"^8.29.0","eslint-import-resolver-typescript":"^4.3.2"},"_npmOperationalInternal":{"tmp":"tmp/towns-agent_3.4.0_1772067421740_0.17789357732845268","host":"s3://npm-registry-packages-npm-production"}},"3.4.1":{"name":"towns-agent","version":"3.4.1","keywords":["bot","cli","protocol","scaffold","towns"],"author":{"name":"Towns Protocol"},"_id":"towns-agent@3.4.1","maintainers":[{"name":"miguel-at-towns","email":"miguel@towns.com"}],"bin":{"towns-agent":"index.js"},"dist":{"shasum":"d966d95545ffcdb21311f0fc6d3eb8d086eb5394","tarball":"https://registry.npmjs.org/towns-agent/-/towns-agent-3.4.1.tgz","fileCount":14,"integrity":"sha512-CIKNMQqwvxrEQQWLVn7KuH+nanZmr/vux66MVQCndaiMQwO9FpVMr9YNjQJ7nhu4OY4gaFmP3iNIHEgWlPk5jw==","signatures":[{"sig":"MEYCIQDTGj9ecygF7HmF/kdBBm5dphDk4mdcYRLD/RgZrcvynwIhAO8FVLl/BnbF/MIh4zDjNpNXqei/Zy08KqTrCDfEdjzm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5046316},"engines":{"node":"^18.0.0 || >=20.0.0"},"gitHead":"de200eb091b43bd99623146728e608550da4da4f","scripts":{"cli":"NODE_TLS_REJECT_UNAUTHORIZED=0 bun src/index.ts","dev":"bun run src/index.ts","lint":"eslint src --ext .ts","build":"tsup","watch":"tsup --watch","lint:fix":"eslint src --ext .ts --fix"},"_npmUser":{"name":"miguel-at-towns","email":"miguel@towns.com"},"_npmVersion":"10.8.2","description":"CLI for creating and managing Towns Protocol bot projects","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^4.3.6","viem":"2.45.1","dotenv":"^16.4.5","ethers":"^5.8.0","prompts":"^2.4.2","minimist":"^1.2.8","file-type":"^19.6.0","image-size":"^2.0.2","picocolors":"^1.1.1","cross-spawn":"^7.0.5","jsonc-parser":"^3.3.1","@bufbuild/protobuf":"^2.9.0","@towns-protocol/olm":"3.2.28","@connectrpc/connect-node":"^2.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","eslint":"^8.57.1","typescript":"~5.8.3","@types/node":"^20.14.8","@types/prompts":"^2.4.9","@towns-labs/sdk":"^3.4.1","@types/minimist":"^1.2.5","@towns-labs/proto":"^3.4.1","@towns-labs/utils":"^3.4.1","@types/cross-spawn":"^6.0.6","@towns-labs/contracts":"^3.4.1","@towns-labs/encryption":"^3.4.1","@towns-labs/sdk-crypto":"^3.4.1","eslint-plugin-import-x":"^4.10.2","@typescript-eslint/parser":"^8.29.0","@towns-labs/relayer-client":"^3.4.1","@typescript-eslint/eslint-plugin":"^8.29.0","eslint-import-resolver-typescript":"^4.3.2"},"_npmOperationalInternal":{"tmp":"tmp/towns-agent_3.4.1_1772087480012_0.05258842101620664","host":"s3://npm-registry-packages-npm-production"}},"4.0.0":{"name":"towns-agent","version":"4.0.0","keywords":["bot","cli","protocol","scaffold","towns"],"author":{"name":"Towns Protocol"},"_id":"towns-agent@4.0.0","maintainers":[{"name":"miguel-at-towns","email":"miguel@towns.com"}],"bin":{"towns-agent":"index.js"},"dist":{"shasum":"937e30b82af88f3256d3ea015ab1093669c23fe7","tarball":"https://registry.npmjs.org/towns-agent/-/towns-agent-4.0.0.tgz","fileCount":14,"integrity":"sha512-xP3xJy6fxUwD85FvhwxmZMcDDy6XjkcH4VDEPbR7tUM6p9s91vOR1UeFuTiDIsqRxFd0kCX0gSD94CSazNYxEA==","signatures":[{"sig":"MEQCID5qdOoubrdYZPipVn2GvYcGWHnCmbTqw1/V6JqbqN6JAiBrUW5ouc4zjHfR/dtn9m5QsMhmuieWwKYuGG27Lx19bA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5046386},"engines":{"node":"^18.0.0 || >=20.0.0"},"gitHead":"537766c89684459ac7b06db3bfe754578c869fcf","scripts":{"cli":"NODE_TLS_REJECT_UNAUTHORIZED=0 bun src/index.ts","dev":"bun run src/index.ts","lint":"eslint src --ext .ts","build":"tsup","watch":"tsup --watch","lint:fix":"eslint src --ext .ts --fix"},"_npmUser":{"name":"miguel-at-towns","email":"miguel@towns.com"},"_npmVersion":"10.8.2","description":"CLI for creating and managing Towns Protocol bot projects","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^4.3.6","viem":"2.45.1","dotenv":"^16.4.5","ethers":"^5.8.0","prompts":"^2.4.2","minimist":"^1.2.8","file-type":"^19.6.0","image-size":"^2.0.2","picocolors":"^1.1.1","cross-spawn":"^7.0.5","jsonc-parser":"^3.3.1","@bufbuild/protobuf":"^2.9.0","@towns-protocol/olm":"3.2.28","@connectrpc/connect-node":"^2.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","eslint":"^8.57.1","typescript":"~5.8.3","@types/node":"^20.14.8","@types/prompts":"^2.4.9","@towns-labs/sdk":"^4.0.0","@types/minimist":"^1.2.5","@towns-labs/proto":"^4.0.0","@towns-labs/utils":"^4.0.0","@types/cross-spawn":"^6.0.6","@towns-labs/contracts":"^4.0.0","@towns-labs/encryption":"^4.0.0","@towns-labs/sdk-crypto":"^4.0.0","eslint-plugin-import-x":"^4.10.2","@typescript-eslint/parser":"^8.29.0","@towns-labs/relayer-client":"^4.0.0","@typescript-eslint/eslint-plugin":"^8.29.0","eslint-import-resolver-typescript":"^4.3.2"},"_npmOperationalInternal":{"tmp":"tmp/towns-agent_4.0.0_1772090664588_0.44066999678285956","host":"s3://npm-registry-packages-npm-production"}},"4.1.0":{"name":"towns-agent","version":"4.1.0","keywords":["bot","cli","protocol","scaffold","towns"],"author":{"name":"Towns Protocol"},"_id":"towns-agent@4.1.0","maintainers":[{"name":"miguel-at-towns","email":"miguel@towns.com"}],"bin":{"towns-agent":"index.js"},"dist":{"shasum":"85ff6183f16982e5c43603ed7187599cb04d598c","tarball":"https://registry.npmjs.org/towns-agent/-/towns-agent-4.1.0.tgz","fileCount":14,"integrity":"sha512-kjDVxOL3BiCrduThCoNLnRwxhPqgHOChKh8etyCD3XVhKVsY3AUDtE8HPgILp2e93p+yzt3dEOGpGdlrC8FeSg==","signatures":[{"sig":"MEQCICDg4eswdRwmhrp+k/nW9zT552IGUWSSZSgOPrpdMVUMAiA8WT1sP2//lRbnqqC7uwvnEOWXE0mizp++Dz17VFkPbw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5057985},"engines":{"node":"^18.0.0 || >=20.0.0"},"gitHead":"502b768884d0093121fc7c7c2c3c6f0f5be5e65a","scripts":{"cli":"NODE_TLS_REJECT_UNAUTHORIZED=0 bun src/index.ts","dev":"bun run src/index.ts","lint":"eslint src --ext .ts","build":"tsup","watch":"tsup --watch","lint:fix":"eslint src --ext .ts --fix"},"_npmUser":{"name":"miguel-at-towns","email":"miguel@towns.com"},"_npmVersion":"10.8.2","description":"CLI for creating and managing Towns Protocol bot projects","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^4.3.6","viem":"2.45.1","dotenv":"^16.4.5","ethers":"^5.8.0","prompts":"^2.4.2","minimist":"^1.2.8","file-type":"^19.6.0","image-size":"^2.0.2","picocolors":"^1.1.1","cross-spawn":"^7.0.5","jsonc-parser":"^3.3.1","@bufbuild/protobuf":"^2.9.0","@towns-protocol/olm":"3.2.28","@connectrpc/connect-node":"^2.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","eslint":"^8.57.1","typescript":"~5.8.3","@types/node":"^20.14.8","@types/prompts":"^2.4.9","@towns-labs/sdk":"^4.1.0","@types/minimist":"^1.2.5","@towns-labs/proto":"^4.1.0","@towns-labs/utils":"^4.1.0","@types/cross-spawn":"^6.0.6","@towns-labs/contracts":"^4.1.0","@towns-labs/encryption":"^4.1.0","@towns-labs/sdk-crypto":"^4.1.0","eslint-plugin-import-x":"^4.10.2","@typescript-eslint/parser":"^8.29.0","@towns-labs/relayer-client":"^4.1.0","@typescript-eslint/eslint-plugin":"^8.29.0","eslint-import-resolver-typescript":"^4.3.2"},"_npmOperationalInternal":{"tmp":"tmp/towns-agent_4.1.0_1772230781263_0.7899474213903093","host":"s3://npm-registry-packages-npm-production"}},"4.1.1":{"name":"towns-agent","version":"4.1.1","keywords":["bot","cli","protocol","scaffold","towns"],"author":{"name":"Towns Protocol"},"_id":"towns-agent@4.1.1","maintainers":[{"name":"miguel-at-towns","email":"miguel@towns.com"}],"bin":{"towns-agent":"index.js"},"dist":{"shasum":"2df2a0175addc81c510e4fc64813f4d156be3dfa","tarball":"https://registry.npmjs.org/towns-agent/-/towns-agent-4.1.1.tgz","fileCount":14,"integrity":"sha512-/B22lnroPXVNOoiaE6F0vaYEuATir9Fx/f797aX6fb7LO6MI3ieGm59aP2PuaGRkcz/aeOxdqEV1f9X4S3p7Ow==","signatures":[{"sig":"MEQCICT925SIRujIkUwr7Mot6P4pztp0j4mYUTu8bKxOCfKGAiAPStb1Y6+duYc6GGzOVeRRGgAqLFn1JCONaAA6TdduSw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5058655},"engines":{"node":"^18.0.0 || >=20.0.0"},"gitHead":"2ed93543d595ca565ffa2208ef08c8d03da4783e","scripts":{"cli":"NODE_TLS_REJECT_UNAUTHORIZED=0 bun src/index.ts","dev":"bun run src/index.ts","lint":"eslint src --ext .ts","build":"tsup","watch":"tsup --watch","lint:fix":"eslint src --ext .ts --fix"},"_npmUser":{"name":"miguel-at-towns","email":"miguel@towns.com"},"_npmVersion":"10.8.2","description":"CLI for creating and managing Towns Protocol bot projects","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^4.3.6","viem":"2.45.1","dotenv":"^16.4.5","ethers":"^5.8.0","prompts":"^2.4.2","minimist":"^1.2.8","file-type":"^19.6.0","image-size":"^2.0.2","picocolors":"^1.1.1","cross-spawn":"^7.0.5","jsonc-parser":"^3.3.1","@bufbuild/protobuf":"^2.9.0","@towns-protocol/olm":"3.2.28","@connectrpc/connect-node":"^2.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","eslint":"^8.57.1","typescript":"~5.8.3","@types/node":"^20.14.8","@types/prompts":"^2.4.9","@towns-labs/sdk":"^4.1.1","@types/minimist":"^1.2.5","@towns-labs/proto":"^4.1.1","@towns-labs/utils":"^4.1.1","@types/cross-spawn":"^6.0.6","@towns-labs/contracts":"^4.1.1","@towns-labs/encryption":"^4.1.1","@towns-labs/sdk-crypto":"^4.1.1","eslint-plugin-import-x":"^4.10.2","@typescript-eslint/parser":"^8.29.0","@towns-labs/relayer-client":"^4.1.1","@typescript-eslint/eslint-plugin":"^8.29.0","eslint-import-resolver-typescript":"^4.3.2"},"_npmOperationalInternal":{"tmp":"tmp/towns-agent_4.1.1_1772243847213_0.9106768861847792","host":"s3://npm-registry-packages-npm-production"}},"4.1.2":{"name":"towns-agent","version":"4.1.2","keywords":["bot","cli","protocol","scaffold","towns"],"author":{"name":"Towns Protocol"},"_id":"towns-agent@4.1.2","maintainers":[{"name":"miguel-at-towns","email":"miguel@towns.com"}],"bin":{"towns-agent":"index.js"},"dist":{"shasum":"7c821e1699179ef4753ee70032aa3016f31728f9","tarball":"https://registry.npmjs.org/towns-agent/-/towns-agent-4.1.2.tgz","fileCount":14,"integrity":"sha512-+Gr5SsmVmGnVx/nb49zlqtWyYSzN3rN6hAvb3HRYsYWrrUpDgfrmbAgW/wcV4J0aA2DzqNkvBwimwImc2CLwQA==","signatures":[{"sig":"MEQCIFL6mlj7M6hpO0woHG1HDVtsYbPed1OE/epO0BojjtYtAiBPA6AeA4awiNZS6nT4yOaUu+7BT+yux5O8t2zY5ef4Pg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5075542},"engines":{"node":"^18.0.0 || >=20.0.0"},"gitHead":"49a8637d6fd05303a85b711ef6476b1662a94bc7","scripts":{"cli":"NODE_TLS_REJECT_UNAUTHORIZED=0 bun src/index.ts","dev":"bun run src/index.ts","lint":"eslint src --ext .ts","build":"tsup","watch":"tsup --watch","lint:fix":"eslint src --ext .ts --fix"},"_npmUser":{"name":"miguel-at-towns","email":"miguel@towns.com"},"_npmVersion":"10.8.2","description":"CLI for creating and managing Towns Protocol bot projects","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^4.3.6","viem":"2.45.1","dotenv":"^16.4.5","ethers":"^5.8.0","prompts":"^2.4.2","minimist":"^1.2.8","file-type":"^19.6.0","image-size":"^2.0.2","picocolors":"^1.1.1","cross-spawn":"^7.0.5","jsonc-parser":"^3.3.1","@bufbuild/protobuf":"^2.9.0","@towns-protocol/olm":"3.2.28","@connectrpc/connect-node":"^2.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","eslint":"^8.57.1","typescript":"~5.8.3","@types/node":"^20.14.8","@types/prompts":"^2.4.9","@towns-labs/sdk":"^4.1.2","@types/minimist":"^1.2.5","@towns-labs/proto":"^4.1.2","@towns-labs/utils":"^4.1.2","@types/cross-spawn":"^6.0.6","@towns-labs/contracts":"^4.1.2","@towns-labs/encryption":"^4.1.2","@towns-labs/sdk-crypto":"^4.1.2","eslint-plugin-import-x":"^4.10.2","@typescript-eslint/parser":"^8.29.0","@towns-labs/relayer-client":"^4.1.2","@typescript-eslint/eslint-plugin":"^8.29.0","eslint-import-resolver-typescript":"^4.3.2"},"_npmOperationalInternal":{"tmp":"tmp/towns-agent_4.1.2_1772462302471_0.9357417790621456","host":"s3://npm-registry-packages-npm-production"}},"5.0.0":{"name":"towns-agent","version":"5.0.0","keywords":["bot","cli","protocol","scaffold","towns"],"author":{"name":"Towns Protocol"},"_id":"towns-agent@5.0.0","maintainers":[{"name":"miguel-at-towns","email":"miguel@towns.com"}],"bin":{"towns-agent":"index.js"},"dist":{"shasum":"5d709c5a805bd213816cd2bcdf6ffe53b0fd5044","tarball":"https://registry.npmjs.org/towns-agent/-/towns-agent-5.0.0.tgz","fileCount":14,"integrity":"sha512-Df9mZINrnC2K45OtlKegTvF6JwR54sXiWhJ5isMKGscLqrMVWigumbT25AH74kqX0uTtqwSEuvCPh/ePmTar2g==","signatures":[{"sig":"MEUCIHEzXToBnnK79rX4xLlsi9dhRypiMfpAwv9N3WI7RNHUAiEAo3+oMLl5GGHIDfvhDicl8QJE+/ZlJ3ohpasDV1p3yWI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5079327},"engines":{"node":"^18.0.0 || >=20.0.0"},"gitHead":"7d24c6d368534c7c662ed93f9d1f9079953eff73","scripts":{"cli":"NODE_TLS_REJECT_UNAUTHORIZED=0 bun src/index.ts","dev":"bun run src/index.ts","lint":"eslint src --ext .ts","build":"tsup","watch":"tsup --watch","lint:fix":"eslint src --ext .ts --fix"},"_npmUser":{"name":"miguel-at-towns","email":"miguel@towns.com"},"_npmVersion":"10.8.2","description":"CLI for creating and managing Towns Protocol bot projects","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^4.3.6","viem":"2.45.1","dotenv":"^16.4.5","ethers":"^5.8.0","prompts":"^2.4.2","minimist":"^1.2.8","file-type":"^19.6.0","image-size":"^2.0.2","picocolors":"^1.1.1","cross-spawn":"^7.0.5","jsonc-parser":"^3.3.1","@bufbuild/protobuf":"^2.9.0","@towns-protocol/olm":"3.2.28","@connectrpc/connect-node":"^2.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","eslint":"^8.57.1","typescript":"~5.8.3","@types/node":"^20.14.8","@types/prompts":"^2.4.9","@towns-labs/sdk":"^5.0.0","@types/minimist":"^1.2.5","@towns-labs/proto":"^5.0.0","@towns-labs/utils":"^5.0.0","@types/cross-spawn":"^6.0.6","@towns-labs/contracts":"^5.0.0","@towns-labs/encryption":"^5.0.0","@towns-labs/sdk-crypto":"^5.0.0","eslint-plugin-import-x":"^4.10.2","@typescript-eslint/parser":"^8.29.0","@towns-labs/relayer-client":"^5.0.0","@typescript-eslint/eslint-plugin":"^8.29.0","eslint-import-resolver-typescript":"^4.3.2"},"_npmOperationalInternal":{"tmp":"tmp/towns-agent_5.0.0_1772477481848_0.08060417889103033","host":"s3://npm-registry-packages-npm-production"}},"6.0.0":{"name":"towns-agent","version":"6.0.0","keywords":["bot","cli","protocol","scaffold","towns"],"author":{"name":"Towns Protocol"},"_id":"towns-agent@6.0.0","maintainers":[{"name":"miguel-at-towns","email":"miguel@towns.com"}],"bin":{"towns-agent":"index.js"},"dist":{"shasum":"41ee19c79e46d7bbb1e8267ae7e4616890094ede","tarball":"https://registry.npmjs.org/towns-agent/-/towns-agent-6.0.0.tgz","fileCount":14,"integrity":"sha512-MA4a6QCf8N1Ge/tg0uxp9Zvo1cBTWwZhqhpFpcFZO5ZYXVZdL/FFGyv7YhaI86qM/X7q7htjg0D+XuRfW0X8HQ==","signatures":[{"sig":"MEUCIGB+TZSokT8CC3rSSDdMFzDEEdB+FNBAeJXiozmQT/NKAiEA+xkYTTp3zr1VEbJz0Ka6CseW5Y9ZMspngonXpuauWpI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5079342},"engines":{"node":"^18.0.0 || >=20.0.0"},"gitHead":"b884f67bb5be825020c173d701ac437d0c6b8434","scripts":{"cli":"NODE_TLS_REJECT_UNAUTHORIZED=0 bun src/index.ts","dev":"bun run src/index.ts","lint":"eslint src --ext .ts","build":"tsup","watch":"tsup --watch","lint:fix":"eslint src --ext .ts --fix"},"_npmUser":{"name":"miguel-at-towns","email":"miguel@towns.com"},"_npmVersion":"10.8.2","description":"CLI for creating and managing Towns Protocol bot projects","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^4.3.6","viem":"2.45.1","dotenv":"^16.4.5","ethers":"^5.8.0","prompts":"^2.4.2","minimist":"^1.2.8","file-type":"^19.6.0","image-size":"^2.0.2","picocolors":"^1.1.1","cross-spawn":"^7.0.5","jsonc-parser":"^3.3.1","@bufbuild/protobuf":"^2.9.0","@towns-protocol/olm":"3.2.28","@connectrpc/connect-node":"^2.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","eslint":"^8.57.1","typescript":"~5.8.3","@types/node":"^20.14.8","@types/prompts":"^2.4.9","@towns-labs/sdk":"^6.0.0","@types/minimist":"^1.2.5","@towns-labs/proto":"^6.0.0","@towns-labs/utils":"^6.0.0","@types/cross-spawn":"^6.0.6","@towns-labs/contracts":"^6.0.0","@towns-labs/encryption":"^6.0.0","@towns-labs/sdk-crypto":"^6.0.0","eslint-plugin-import-x":"^4.10.2","@typescript-eslint/parser":"^8.29.0","@towns-labs/relayer-client":"^6.0.0","@typescript-eslint/eslint-plugin":"^8.29.0","eslint-import-resolver-typescript":"^4.3.2"},"_npmOperationalInternal":{"tmp":"tmp/towns-agent_6.0.0_1772484358425_0.9989857106441977","host":"s3://npm-registry-packages-npm-production"}},"7.1.0":{"name":"towns-agent","version":"7.1.0","keywords":["bot","cli","protocol","scaffold","towns"],"author":{"name":"Towns Protocol"},"_id":"towns-agent@7.1.0","maintainers":[{"name":"miguel-at-towns","email":"miguel@towns.com"}],"bin":{"towns-agent":"index.js"},"dist":{"shasum":"617f7fc655aeb65078b77d27d09dd5efaf60796d","tarball":"https://registry.npmjs.org/towns-agent/-/towns-agent-7.1.0.tgz","fileCount":14,"integrity":"sha512-hdjvtRFqiQ5b3euGAmyy+Ex8uvvKG1Visjb/M0CDn7pw4haq3ghadQF4WktR+NroCEqjfZRyPZon115Rh6kGsw==","signatures":[{"sig":"MEUCIQCNr1KcgcGCKNq4hgAuuCkKnDNweRHpIRDeJEpSRAoaywIgPZzvQOhPr6Qt24MIMPVyNZGzLT7p8QK4yxuOBDSzmPc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5087624},"engines":{"node":"^18.0.0 || >=20.0.0"},"gitHead":"ae31df6df4aa5eb07903f957f013f16bec80b21b","scripts":{"cli":"NODE_TLS_REJECT_UNAUTHORIZED=0 bun src/index.ts","dev":"bun run src/index.ts","lint":"eslint src --ext .ts","build":"tsup","watch":"tsup --watch","lint:fix":"eslint src --ext .ts --fix"},"_npmUser":{"name":"miguel-at-towns","email":"miguel@towns.com"},"_npmVersion":"10.8.2","description":"CLI for creating and managing Towns Protocol bot projects","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^4.3.6","viem":"2.45.1","dotenv":"^16.4.5","ethers":"^5.8.0","prompts":"^2.4.2","minimist":"^1.2.8","file-type":"^19.6.0","image-size":"^2.0.2","picocolors":"^1.1.1","cross-spawn":"^7.0.5","jsonc-parser":"^3.3.1","@bufbuild/protobuf":"^2.9.0","@towns-protocol/olm":"3.2.28","@connectrpc/connect-node":"^2.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","eslint":"^8.57.1","typescript":"~5.8.3","@types/node":"^20.14.8","@types/prompts":"^2.4.9","@towns-labs/sdk":"^7.1.0","@types/minimist":"^1.2.5","@towns-labs/proto":"^7.1.0","@towns-labs/utils":"^7.1.0","@types/cross-spawn":"^6.0.6","@towns-labs/contracts":"^7.1.0","@towns-labs/encryption":"^7.1.0","@towns-labs/sdk-crypto":"^7.1.0","eslint-plugin-import-x":"^4.10.2","@typescript-eslint/parser":"^8.29.0","@towns-labs/relayer-client":"^7.1.0","@typescript-eslint/eslint-plugin":"^8.29.0","eslint-import-resolver-typescript":"^4.3.2"},"_npmOperationalInternal":{"tmp":"tmp/towns-agent_7.1.0_1772601600638_0.10462205699215255","host":"s3://npm-registry-packages-npm-production"}},"7.2.0":{"name":"towns-agent","version":"7.2.0","keywords":["bot","cli","protocol","scaffold","towns"],"author":{"name":"Towns Protocol"},"_id":"towns-agent@7.2.0","maintainers":[{"name":"miguel-at-towns","email":"miguel@towns.com"}],"bin":{"towns-agent":"index.js"},"dist":{"shasum":"d7ac0cccd02c67f46e7238718ce81af8fc15520e","tarball":"https://registry.npmjs.org/towns-agent/-/towns-agent-7.2.0.tgz","fileCount":14,"integrity":"sha512-bnchT/hVpoW722M40Iqnmb5yHN8cmxsXyPF+MLILy6oUUQ95LyKAM5r2tbc5EFmzuDVLKXniOgHLOjN2uNwg+A==","signatures":[{"sig":"MEYCIQCapFHajrbSMjXNsKAhhgKurbJ9t4mkt3pP2lPDDVvgbgIhAOYiv5LGVF9DlZ0FngQMQ+sTmWIeqWjOGYf6z+kLrDTe","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5110290},"engines":{"node":"^18.0.0 || >=20.0.0"},"exports":{"./auth":"./src/auth.ts"},"gitHead":"78b43e20bb5e2cec13116f3665bae413e864cf5b","scripts":{"cli":"NODE_TLS_REJECT_UNAUTHORIZED=0 bun src/index.ts","dev":"bun run src/index.ts","lint":"eslint src --ext .ts","build":"tsup","watch":"tsup --watch","lint:fix":"eslint src --ext .ts --fix"},"_npmUser":{"name":"miguel-at-towns","email":"miguel@towns.com"},"_npmVersion":"10.8.2","description":"CLI for creating and managing Towns Protocol bot projects","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^4.3.6","viem":"2.45.1","dotenv":"^16.4.5","ethers":"^5.8.0","prompts":"^2.4.2","minimist":"^1.2.8","file-type":"^19.6.0","image-size":"^2.0.2","picocolors":"^1.1.1","cross-spawn":"^7.0.5","jsonc-parser":"^3.3.1","@bufbuild/protobuf":"^2.9.0","@towns-protocol/olm":"3.2.28","@connectrpc/connect-node":"^2.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","eslint":"^8.57.1","typescript":"~5.8.3","@types/node":"^20.14.8","@types/prompts":"^2.4.9","@towns-labs/sdk":"^7.2.0","@types/minimist":"^1.2.5","@towns-labs/proto":"^7.2.0","@towns-labs/utils":"^7.2.0","@types/cross-spawn":"^6.0.6","@towns-labs/contracts":"^7.2.0","@towns-labs/encryption":"^7.2.0","@towns-labs/sdk-crypto":"^7.2.0","eslint-plugin-import-x":"^4.10.2","@typescript-eslint/parser":"^8.29.0","@towns-labs/relayer-client":"^7.2.0","@typescript-eslint/eslint-plugin":"^8.29.0","eslint-import-resolver-typescript":"^4.3.2"},"_npmOperationalInternal":{"tmp":"tmp/towns-agent_7.2.0_1772856928937_0.3345061759654586","host":"s3://npm-registry-packages-npm-production"}},"7.3.0":{"name":"towns-agent","version":"7.3.0","keywords":["bot","cli","protocol","scaffold","towns"],"author":{"name":"Towns Protocol"},"_id":"towns-agent@7.3.0","maintainers":[{"name":"miguel-at-towns","email":"miguel@towns.com"}],"bin":{"towns-agent":"index.js"},"dist":{"shasum":"7531a70534d8c53bc2f374b44f5baa9ad7d69aef","tarball":"https://registry.npmjs.org/towns-agent/-/towns-agent-7.3.0.tgz","fileCount":14,"integrity":"sha512-FPa0hoCI89I4oIwZGEpW1xyIgyNafMDk0DJjKMurOJMoAlgEukwB1TlIESFgm382oz0TrMntfUUA1ASbX5ZJ4g==","signatures":[{"sig":"MEUCIQCqnHrapJAtqjVzJrxRJbac2LLX4alkSXDHF9mSpIpgLgIgEDWGuMgaUKAtu7Bf0Azcmr1RKnyVq94vzpFWGcw4p68=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5114446},"engines":{"node":"^18.0.0 || >=20.0.0"},"exports":{"./auth":"./src/auth.ts"},"gitHead":"56e0e01f972c14e55bdddbeb98c65065034520c4","scripts":{"cli":"NODE_TLS_REJECT_UNAUTHORIZED=0 bun src/index.ts","dev":"bun run src/index.ts","lint":"eslint src --ext .ts","build":"tsup","watch":"tsup --watch","lint:fix":"eslint src --ext .ts --fix"},"_npmUser":{"name":"miguel-at-towns","email":"miguel@towns.com"},"_npmVersion":"10.8.2","description":"CLI for creating and managing Towns Protocol bot projects","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^4.3.6","viem":"2.45.1","dotenv":"^16.4.5","ethers":"^5.8.0","prompts":"^2.4.2","minimist":"^1.2.8","file-type":"^19.6.0","image-size":"^2.0.2","picocolors":"^1.1.1","cross-spawn":"^7.0.5","jsonc-parser":"^3.3.1","@bufbuild/protobuf":"^2.9.0","@towns-protocol/olm":"3.2.28","@connectrpc/connect-node":"^2.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","eslint":"^8.57.1","typescript":"~5.8.3","@types/node":"^20.14.8","@types/prompts":"^2.4.9","@towns-labs/sdk":"^7.3.0","@types/minimist":"^1.2.5","@towns-labs/proto":"^7.3.0","@towns-labs/utils":"^7.3.0","@types/cross-spawn":"^6.0.6","@towns-labs/contracts":"^7.3.0","@towns-labs/encryption":"^7.3.0","@towns-labs/sdk-crypto":"^7.3.0","eslint-plugin-import-x":"^4.10.2","@typescript-eslint/parser":"^8.29.0","@towns-labs/relayer-client":"^7.3.0","@typescript-eslint/eslint-plugin":"^8.29.0","eslint-import-resolver-typescript":"^4.3.2"},"_npmOperationalInternal":{"tmp":"tmp/towns-agent_7.3.0_1773112143505_0.5288558861537402","host":"s3://npm-registry-packages-npm-production"}},"7.3.1":{"name":"towns-agent","description":"CLI for creating and managing Towns Protocol bot projects","version":"7.3.1","author":{"name":"Towns Protocol"},"scripts":{"build":"tsup","cli":"NODE_TLS_REJECT_UNAUTHORIZED=0 bun src/index.ts","dev":"bun run src/index.ts","lint":"eslint src --ext .ts","lint:fix":"eslint src --ext .ts --fix","watch":"tsup --watch"},"bin":{"towns-agent":"index.js"},"exports":{"./auth":"./src/auth.ts"},"dependencies":{"@bufbuild/protobuf":"^2.9.0","@connectrpc/connect-node":"^2.1.0","@towns-protocol/olm":"3.2.28","cross-spawn":"^7.0.5","dotenv":"^16.4.5","ethers":"^5.8.0","file-type":"^19.6.0","image-size":"^2.0.2","jsonc-parser":"^3.3.1","minimist":"^1.2.8","picocolors":"^1.1.1","prompts":"^2.4.2","viem":"2.45.1","zod":"^4.3.6"},"devDependencies":{"@towns-labs/contracts":"^7.3.1","@towns-labs/encryption":"^7.3.1","@towns-labs/proto":"^7.3.1","@towns-labs/relayer-client":"^7.3.1","@towns-labs/sdk":"^7.3.1","@towns-labs/sdk-crypto":"^7.3.1","@towns-labs/utils":"^7.3.1","@types/cross-spawn":"^6.0.6","@types/minimist":"^1.2.5","@types/node":"^20.14.8","@types/prompts":"^2.4.9","@typescript-eslint/eslint-plugin":"^8.29.0","@typescript-eslint/parser":"^8.29.0","eslint":"^8.57.1","eslint-import-resolver-typescript":"^4.3.2","eslint-plugin-import-x":"^4.10.2","tsup":"^8.3.5","typescript":"~5.8.3"},"engines":{"node":"^18.0.0 || >=20.0.0"},"keywords":["bot","cli","protocol","scaffold","towns"],"publishConfig":{"access":"public"},"_id":"towns-agent@7.3.1","gitHead":"45afef9439158844738fafd36cbb3e4a85e7112c","_nodeVersion":"20.20.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-aM9i9f6TRBsr9pl7LhzRm1v+laTQ3Kw8VKeH6+I47qHhLUnG3lHFhol+pluSq6PF7nrpdhWmRVIZqJ1CDPjS1g==","shasum":"359ddc3c2e70b62e706bdc765b750c1b81d65ca7","tarball":"https://registry.npmjs.org/towns-agent/-/towns-agent-7.3.1.tgz","fileCount":14,"unpackedSize":5117777,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDTKnRyUau46WrE7F6wrXCM/O/DHz/t65cXgc7fHILDhwIgW1rhjWufAAHss6HykB8VwdSrqUHyropmrXwS8kchdas="}]},"_npmUser":{"name":"miguel-at-towns","email":"miguel@towns.com"},"directories":{},"maintainers":[{"name":"miguel-at-towns","email":"miguel@towns.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/towns-agent_7.3.1_1773272601167_0.12781603329553004"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-03T22:20:10.823Z","modified":"2026-03-11T23:43:21.495Z","2.0.1":"2026-02-02T18:58:35.110Z","2.0.4":"2026-02-03T22:20:11.089Z","2.0.5":"2026-02-03T22:30:14.916Z","2.0.6":"2026-02-04T17:43:50.216Z","2.0.7":"2026-02-05T02:58:50.809Z","2.0.9":"2026-02-05T19:11:21.544Z","2.0.10":"2026-02-06T01:14:30.655Z","2.0.11":"2026-02-06T12:43:36.729Z","2.0.12":"2026-02-10T14:43:05.373Z","2.0.13":"2026-02-12T00:52:03.756Z","2.1.0":"2026-02-13T08:43:40.611Z","2.1.1":"2026-02-16T21:48:45.502Z","3.0.0":"2026-02-18T05:50:29.363Z","3.1.0":"2026-02-19T08:07:44.224Z","3.2.0":"2026-02-20T19:51:14.479Z","3.3.0":"2026-02-24T01:20:21.501Z","3.3.1":"2026-02-24T17:51:49.776Z","3.4.0":"2026-02-26T00:57:01.933Z","3.4.1":"2026-02-26T06:31:20.207Z","4.0.0":"2026-02-26T07:24:24.795Z","4.1.0":"2026-02-27T22:19:41.471Z","4.1.1":"2026-02-28T01:57:27.433Z","4.1.2":"2026-03-02T14:38:22.703Z","5.0.0":"2026-03-02T18:51:22.146Z","6.0.0":"2026-03-02T20:45:58.652Z","7.1.0":"2026-03-04T05:20:00.847Z","7.2.0":"2026-03-07T04:15:29.129Z","7.3.0":"2026-03-10T03:09:03.715Z","7.3.1":"2026-03-11T23:43:21.365Z"},"author":{"name":"Towns Protocol"},"keywords":["bot","cli","protocol","scaffold","towns"],"description":"CLI for creating and managing Towns Protocol bot projects","maintainers":[{"name":"miguel-at-towns","email":"miguel@towns.com"}],"readme":"# towns-agent\n\nCLI for creating and managing Towns Protocol bot projects.\n\n## Getting Started\n\n1. **`create`** — Create an app account. This gives you an `APP_ADDRESS` and `APP_PRIVATE_KEY`.\n2. **`init`** — Scaffold a new project. Use the app private key from step 1 to configure your server.\n3. **`setup`** — Once your app server is running, register its webhook URL and notification settings.\n\n## Commands\n\n### `init [project-name]`\n\nCreate a new bot project from a template.\n\n```bash\nbun run cli init my-agent\nbun run cli init my-agent --template quickstart\n```\n\nOptions:\n\n- `-t, --template <name>` — Template to use (default: `quickstart`)\n\n### `create`\n\nCreate a new bot/app account. Prompts interactively for any values not provided as flags.\n\n```bash\n# Interactive\nbun run cli create --ownerPrivateKey 0xac09...\n\n# Non-interactive\nbun run cli create \\\n  --ownerPrivateKey 0xac09... \\\n  --username my-bot \\\n  --displayName \"My Bot\" \\\n  --description \"A helpful bot\" \\\n  --image ./avatar.png\n```\n\nOptions:\n\n- `-k, --ownerPrivateKey <key>` — Owner private key for authentication\n- `-b, --bearerToken <token>` — Bearer token for authentication (prompted if neither key nor token provided)\n- `-u, --username <name>` — Bot username\n- `-n, --displayName <name>` — Bot display name\n- `-d, --description <text>` — Bot description\n- `-p, --botPrivateKey <key>` — Private key for the bot account (optional; generates a random key if omitted)\n- `-i, --image <path>` — Local image file to upload as the bot profile image\n- `--imageUrl <url>` — Bot image URL (used when not uploading a local file)\n\nOutputs `APP_ADDRESS`, `APP_PRIVATE_KEY`, and `APP_PRIVATE_DATA`.\n\n### `delegate <chain>`\n\nDelegate (EIP-7702 upgrade) an existing app account on a specific chain. This is required for cross-chain operations — after creating an app on the base chain, use `delegate` to extend it to other chains like Polygon.\n\nThe chain can be specified by name or numeric chain ID.\n\n```bash\n# By chain name (natively supported)\nbun run cli delegate polygon --env prod\nbun run cli delegate base-sepolia --env local_dev\n\n# By numeric chain ID (for chains without native support)\nbun run cli delegate 42161 --env prod \\\n  --rpc-url https://arb1.arbitrum.io/rpc \\\n  --account-proxy 0x...\n```\n\nSupported chain names: `base`, `base-sepolia`, `polygon`\n\nFor chains without native support (no bundled deployment), pass a numeric chain ID along with `--rpc-url` and `--account-proxy`.\n\nOptions:\n\n- `--rpc-url <url>` — Custom RPC URL (defaults to the chain's public RPC for natively supported chains)\n- `--account-proxy <address>` — Override accountProxy address (required for chains without bundled deployments)\n\nRequires `APP_PRIVATE_KEY` (or `APP_PRIVATE_DATA`) to be set in `.env` or the environment.\n\n### `setup [appAddress]`\n\nRegister a webhook URL, configure notification settings, and declare supported APIs for an app.\n\nThe `appAddress` argument is optional when running inside a project that has a `.env` file containing `APP_ADDRESS` or `APP_PRIVATE_DATA`.\n\n```bash\n# From a project with .env — no appAddress needed\nbun run cli setup --ownerPrivateKey 0xac09...\n\n# Or provide appAddress explicitly\nbun run cli setup 0xAPP_ADDRESS --ownerPrivateKey 0xac09...\n\n# Non-interactive\nbun run cli setup \\\n  --ownerPrivateKey 0xac09... \\\n  --webhookUrl https://example.com/webhook \\\n  --notify ALL\n\n# Enable the positions API\nbun run cli setup \\\n  --ownerPrivateKey 0xac09... \\\n  --webhookUrl https://example.com/webhook \\\n  --features positions\n```\n\nOptions:\n\n- `-k, --ownerPrivateKey <key>` — Owner private key for authentication\n- `-b, --bearerToken <token>` — Bearer token for authentication (prompted if neither key nor token provided)\n- `-w, --webhookUrl <url>` — Webhook URL to register\n- `--notify <value>` — Notification setting (default: `ALL`)\n  - `ALL` — Forward all messages\n  - `MENTION_REPLY_REACTION` — Forward mentions, replies, and reactions only\n  - `NONE` — Forward no messages\n- `-f, --features <list>` — Comma-separated list of supported APIs to declare. Available features:\n  - `positions` — App supports the positions API (returns `PositionsResponse` via `GetAppPositions`)\n\n### `setup view [appAddress]`\n\nView the current webhook URL, notification settings, and supported APIs for an app.\n\n```bash\n# From a project with .env\nbun run cli setup view --ownerPrivateKey 0xac09...\n\n# With explicit app address\nbun run cli setup view 0xAPP_ADDRESS --ownerPrivateKey 0xac09...\n```\n\nOptions:\n\n- `-k, --ownerPrivateKey <key>` — Owner private key for authentication\n- `-b, --bearerToken <token>` — Bearer token for authentication (prompted if neither key nor token provided)\n\n### `metadata <view|update> [appAddress]`\n\nView or update app metadata.\n\nThe `appAddress` argument is optional when running inside a project that has a `.env` file containing `APP_ADDRESS` or `APP_PRIVATE_DATA`.\n\n```bash\n# From a project with .env — no appAddress needed\nbun run cli metadata view\nbun run cli metadata update --ownerPrivateKey 0xac09...\n\n# Or provide appAddress explicitly\nbun run cli metadata view 0xAPP_ADDRESS\nbun run cli metadata update 0xAPP_ADDRESS --ownerPrivateKey 0xac09...\n\n# Update non-interactively\nbun run cli metadata update \\\n  --ownerPrivateKey 0xac09... \\\n  --displayName \"New Name\" \\\n  --description \"Updated description\"\n```\n\nOptions:\n\n- `-k, --ownerPrivateKey <key>` — Owner private key for authentication (required for update)\n- `-b, --bearerToken <token>` — Bearer token for authentication (required for update)\n- `-u, --username <name>` — Username\n- `-n, --displayName <name>` — Display name\n- `-d, --description <text>` — Description\n- `-i, --image <path>` — Local image file to upload as the profile image\n- `--imageUrl <url>` — Image URL (used when not uploading a local file)\n- `-e, --externalUrl <url>` — External URL\n- `-m, --motto <text>` — Motto\n\n### `admin [appAddress]`\n\nAdmin workflow for app metadata updates.\n\nThe command:\n\n1. Authenticates (supports bearer token, same as other commands)\n2. Shows current metadata\n3. Calls `UpdateAppMetadata` using either a guided editor or a pasted patch\n\nThe `appAddress` argument is optional when running inside a project that has a `.env` file containing `APP_ADDRESS` or `APP_PRIVATE_DATA`. If it is not found, the CLI prompts for it so you can paste the address.\n\n```bash\n# Fully interactive\nbun run cli admin --env prod\n\n# With explicit app address and bearer token\nbun run cli admin 0xAPP_ADDRESS --bearerToken <token> --env prod\n```\n\nOptions:\n\n- `-k, --ownerPrivateKey <key>` — Owner private key for authentication\n- `-b, --bearerToken <token>` — Bearer token for authentication (prompted if neither key nor token provided)\n\n### `rotate-secret [appAddress]`\n\nRotate the JWT shared secret for an app. Outputs the new secret as `JWT_SECRET=...` so it can be copied into your `.env` file.\n\nThe `appAddress` argument is optional when running inside a project that has a `.env` file containing `APP_ADDRESS` or `APP_PRIVATE_DATA`.\n\n```bash\n# From a project with .env — no appAddress needed\nbun run cli rotate-secret --ownerPrivateKey 0xac09...\n\n# Or provide appAddress explicitly\nbun run cli rotate-secret 0xAPP_ADDRESS --ownerPrivateKey 0xac09...\n\n# With bearer token\nbun run cli rotate-secret -b <token> --env prod\n```\n\nOptions:\n\n- `-k, --ownerPrivateKey <key>` — Owner private key for authentication\n- `-b, --bearerToken <token>` — Bearer token for authentication (prompted if neither key nor token provided)\n\n### `update`\n\nUpdate `@towns-labs/*` dependencies and skills to latest versions.\n\n```bash\nbun run cli update\n```\n\nOptions:\n\n- `--skip-agents-md` — Skip updating the AGENTS.md file\n\n### `install-skill`\n\nInstall Towns Agent Skills into the current project.\n\n```bash\nbun run cli install-skill\n```\n\n## Profile Image Upload\n\nThe `--image` flag (or `-i`) on `create` and `metadata update` commands accepts a path to a local image file (PNG, JPEG, GIF, WebP). The CLI will:\n\n1. Validate the file type and read image dimensions\n2. Encrypt and upload the image as chunked media to the Towns Protocol\n3. Set the uploaded image as the bot's profile image\n4. Automatically set `imageUrl` to the stream metadata URL\n\n```bash\n# Upload during bot creation\nbun run cli create --bearerToken <token> --env prod \\\n  --username my-bot --image ./avatar.png\n\n# Upload when updating metadata\nbun run cli metadata update --bearerToken <token> --env prod \\\n  --image ./new-avatar.jpg\n```\n\nSupported formats: PNG, JPEG, GIF, WebP. SVG is not supported.\n\n## Authentication\n\nCommands that modify app state (`create`, `delegate`, `setup`, `metadata update`, `admin`, `rotate-secret`) require authentication via one of:\n\n- **`-k, --ownerPrivateKey`** — A hex-encoded private key that owns the app\n- **`-b, --bearerToken`** — A bearer token\n\nIf neither flag is provided, the CLI will prompt for a bearer token interactively.\n\nWhen you enter a bearer token interactively, the CLI can save it per environment. On later runs, if you do not pass `--bearerToken` or `--ownerPrivateKey`, the CLI automatically uses the saved token first. If that token is expired/invalid, the CLI prompts you to authenticate again and retries.\n\nSaved tokens are stored at:\n\n- `$XDG_CONFIG_HOME/towns-agent/auth.json` (when `XDG_CONFIG_HOME` is set)\n- `~/.config/towns-agent/auth.json` (default)\n\n## Environment Resolution\n\nCommands that need an environment (`create`, `delegate`, `setup`, `metadata`, `admin`, `rotate-secret`) resolve it in this order:\n\n1. `--env` flag (e.g. `--env prod`)\n2. `RIVER_ENV` environment variable\n3. `RIVER_ENV` in `.env` file\n4. `env` field decoded from `APP_PRIVATE_DATA` in `.env` file\n\nIf none are found, the CLI exits with an error.\n\n## Global Options\n\n- `-h, --help` — Show help message\n","readmeFilename":"README.md"}