{"_id":"@redhat-cloud-services/ai-client-state","_rev":"30-ed3b895ba8519004e806b7630ef6f18c","name":"@redhat-cloud-services/ai-client-state","dist-tags":{"latest":"0.15.0"},"versions":{"0.1.0":{"name":"@redhat-cloud-services/ai-client-state","version":"0.1.0","_id":"@redhat-cloud-services/ai-client-state@0.1.0","maintainers":[{"name":"lesamo","email":"soleksak@redhat.com"},{"name":"jozefhartinger","email":"jozefhartinger@gmail.com"},{"name":"karelhala","email":"karelhala.91@gmail.com"},{"name":"ryelo","email":"rylong18@gmail.com"},{"name":"kruai","email":"asabprice@gmail.com"},{"name":"hyperkid","email":"marvusm.mmi@gmail.com"},{"name":"florkbr","email":"florkbr@gmail.com"}],"dist":{"shasum":"8896e95fbf1a5336ebe92f1ede9ccec7841bdb98","tarball":"https://registry.npmjs.org/@redhat-cloud-services/ai-client-state/-/ai-client-state-0.1.0.tgz","fileCount":11,"integrity":"sha512-4ppqBVDX6Yrl1B1UjCuGmeHdb7i+AkTcQIYU50jZ7EJf/ggJ2dNXDEQzJz+xkC4AD6CiMpF/OOPqn9ZrEJg4ng==","signatures":[{"sig":"MEYCIQD6GqB6wvK8HqU3qfSUDKQbcnRJq4VbmzLPjSob/CHgcQIhAP7eOXCGXgun8+H61VJ+pmePMbphkFlw1gsq6EH3VFuR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":38557},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"934da8b6e22220418a5e65083b7102eeae2e02a4","_npmUser":{"name":"hyperkid","email":"marvusm.mmi@gmail.com"},"_npmVersion":"10.8.2","description":"State management for AI client conversations with event-driven architecture and cross-package compatibility.","directories":{},"_nodeVersion":"20.19.2","dependencies":{"@redhat-cloud-services/ai-client-common":"^0.0.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ai-client-state_0.1.0_1753272755081_0.7704464539113001","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@redhat-cloud-services/ai-client-state","version":"0.2.0","_id":"@redhat-cloud-services/ai-client-state@0.2.0","maintainers":[{"name":"lesamo","email":"soleksak@redhat.com"},{"name":"jozefhartinger","email":"jozefhartinger@gmail.com"},{"name":"karelhala","email":"karelhala.91@gmail.com"},{"name":"ryelo","email":"rylong18@gmail.com"},{"name":"kruai","email":"asabprice@gmail.com"},{"name":"hyperkid","email":"marvusm.mmi@gmail.com"},{"name":"florkbr","email":"florkbr@gmail.com"}],"dist":{"shasum":"4582bba32e700fd2149bdd325fa03e11ac3fb94b","tarball":"https://registry.npmjs.org/@redhat-cloud-services/ai-client-state/-/ai-client-state-0.2.0.tgz","fileCount":12,"integrity":"sha512-DwivvZmjwE6K0e2miueIajgDfA1t9gdE9PXmS6wLMAP33b6ysgspkSLEX/R+SImz5nk1zUe6fKpPv+RZ1wVU5A==","signatures":[{"sig":"MEQCIHhtlTT2hZX7VqqlQuyGJxpSZhzeMUAruLmZHVivGmR2AiBB342IgQUEjTxNGy0UaO5chyrnI7AQXhh8w/n2Q6wmWA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":38122},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"4ec8d1376ba8e23c97150e761eb5d183c49201ca","_npmUser":{"name":"hyperkid","email":"marvusm.mmi@gmail.com"},"_npmVersion":"10.9.2","description":"State management for AI client conversations with event-driven architecture and cross-package compatibility.","directories":{},"_nodeVersion":"22.17.1","dependencies":{"@redhat-cloud-services/ai-client-common":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ai-client-state_0.2.0_1753281847533_0.23500581042861612","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@redhat-cloud-services/ai-client-state","version":"0.3.0","_id":"@redhat-cloud-services/ai-client-state@0.3.0","maintainers":[{"name":"lesamo","email":"soleksak@redhat.com"},{"name":"jozefhartinger","email":"jozefhartinger@gmail.com"},{"name":"karelhala","email":"karelhala.91@gmail.com"},{"name":"ryelo","email":"rylong18@gmail.com"},{"name":"kruai","email":"asabprice@gmail.com"},{"name":"hyperkid","email":"marvusm.mmi@gmail.com"},{"name":"florkbr","email":"florkbr@gmail.com"}],"dist":{"shasum":"283f7137e28897d1d15b4214dd548c87e69230d6","tarball":"https://registry.npmjs.org/@redhat-cloud-services/ai-client-state/-/ai-client-state-0.3.0.tgz","fileCount":12,"integrity":"sha512-5lexcGrQNfTwf2WflNMWD66oXNFcfqXQA3K7JdwiKZKk61kD2qTpwseV3qtvM5GcQdpA1A62HYldbsnwulVQoA==","signatures":[{"sig":"MEUCIQCgfk3xwRma1g4geabZogu7EBQYjbI0s7pDAoPCz5ZcewIgcG7QduNgw4f/NJRvEu4jOhGjb8V0SfXTPucAzqAhrbM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":38122},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"53476f11d2337c672862a9df640fb5b3e1a5cabe","_npmUser":{"name":"hyperkid","email":"marvusm.mmi@gmail.com"},"_npmVersion":"10.9.2","description":"State management for AI client conversations with event-driven architecture and cross-package compatibility.","directories":{},"_nodeVersion":"22.17.0","dependencies":{"@redhat-cloud-services/ai-client-common":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ai-client-state_0.3.0_1753282272182_0.06093347862800447","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@redhat-cloud-services/ai-client-state","version":"0.3.1","_id":"@redhat-cloud-services/ai-client-state@0.3.1","maintainers":[{"name":"lesamo","email":"soleksak@redhat.com"},{"name":"jozefhartinger","email":"jozefhartinger@gmail.com"},{"name":"karelhala","email":"karelhala.91@gmail.com"},{"name":"ryelo","email":"rylong18@gmail.com"},{"name":"kruai","email":"asabprice@gmail.com"},{"name":"hyperkid","email":"marvusm.mmi@gmail.com"},{"name":"florkbr","email":"florkbr@gmail.com"}],"dist":{"shasum":"848702c317576ba9830d0da2f08e019095875a4e","tarball":"https://registry.npmjs.org/@redhat-cloud-services/ai-client-state/-/ai-client-state-0.3.1.tgz","fileCount":12,"integrity":"sha512-F9VhYoVCOIkSGaLko1v764m9AdQiY/pu1x7y1QAxJaR8c6zCvHNL2pzQ4EnHUCH/crGfOWxZGwZ3L0kIvcgCPw==","signatures":[{"sig":"MEUCIG1kNxLo1Sc36dEcRosWL2eInWiHWFrziRIBEdIboO3bAiEAgDTrcaEXOFVhfieEDFWVImfunGTwlCvvAe41jR+lJsc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":38122},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"ed31e9e619d9f017d7d6d3b2d9979f428129170e","_npmUser":{"name":"hyperkid","email":"marvusm.mmi@gmail.com"},"_npmVersion":"10.9.2","description":"State management for AI client conversations with event-driven architecture and cross-package compatibility.","directories":{},"_nodeVersion":"22.17.0","dependencies":{"@redhat-cloud-services/ai-client-common":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ai-client-state_0.3.1_1753282850828_0.4761312953297363","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@redhat-cloud-services/ai-client-state","version":"0.3.2","_id":"@redhat-cloud-services/ai-client-state@0.3.2","maintainers":[{"name":"lesamo","email":"soleksak@redhat.com"},{"name":"jozefhartinger","email":"jozefhartinger@gmail.com"},{"name":"karelhala","email":"karelhala.91@gmail.com"},{"name":"ryelo","email":"rylong18@gmail.com"},{"name":"kruai","email":"asabprice@gmail.com"},{"name":"hyperkid","email":"marvusm.mmi@gmail.com"},{"name":"florkbr","email":"florkbr@gmail.com"}],"dist":{"shasum":"7eeeac906543327108c276887036007b068adfce","tarball":"https://registry.npmjs.org/@redhat-cloud-services/ai-client-state/-/ai-client-state-0.3.2.tgz","fileCount":11,"integrity":"sha512-VZdjwcm1iTu3k6g0xttvgVaWHZSjCnTboyLdoUTssotuoDEpx9Y/Kn/jyk0aYB3hMhMDi1cEoS7Rsn0QM0szgA==","signatures":[{"sig":"MEYCIQCuWzzhP14PsH68nSnYkkRAvu3us/4PiMSj9lkAXa87qQIhALAbB3D2ZGn0SbKXO1XaGnDdPtjP0i0+3fHIaG0n44FI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":38892},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"5e1d05479b5b9741ac20568076405c4b82161326","_npmUser":{"name":"hyperkid","email":"marvusm.mmi@gmail.com"},"_npmVersion":"10.9.2","description":"State management for AI client conversations with event-driven architecture and cross-package compatibility.","directories":{},"_nodeVersion":"22.17.1","dependencies":{"@redhat-cloud-services/ai-client-common":"0.3.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ai-client-state_0.3.2_1753343275694_0.09895567397629645","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"@redhat-cloud-services/ai-client-state","version":"0.3.3","_id":"@redhat-cloud-services/ai-client-state@0.3.3","maintainers":[{"name":"lesamo","email":"soleksak@redhat.com"},{"name":"jozefhartinger","email":"jozefhartinger@gmail.com"},{"name":"karelhala","email":"karelhala.91@gmail.com"},{"name":"ryelo","email":"rylong18@gmail.com"},{"name":"kruai","email":"asabprice@gmail.com"},{"name":"hyperkid","email":"marvusm.mmi@gmail.com"},{"name":"florkbr","email":"florkbr@gmail.com"}],"dist":{"shasum":"68059fff8cd9cf45ae297de7c17b761f70899adb","tarball":"https://registry.npmjs.org/@redhat-cloud-services/ai-client-state/-/ai-client-state-0.3.3.tgz","fileCount":11,"integrity":"sha512-zvCvbpf3yNHIFuAvkOme8ytOud8FJmaebp/0Vfh8IStUg6vR9eyRkhZ9AZHtn2cvosA+iTMB/21m9Q93sr61tQ==","signatures":[{"sig":"MEUCIQCNT7yVTyQVWd4Jgv6Q/g6Us8l9BXl1MubuKqvVeLkgbwIgbc0B4X2qnL32zewBmugBDH7iESEbNXJr3c5X0ZQFxN4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":38892},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"bd6c88f1f8e75e5aea75412450c277de218632ff","_npmUser":{"name":"hyperkid","email":"marvusm.mmi@gmail.com"},"_npmVersion":"10.9.2","description":"State management for AI client conversations with event-driven architecture and cross-package compatibility.","directories":{},"_nodeVersion":"22.17.1","dependencies":{"@redhat-cloud-services/ai-client-common":"0.3.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ai-client-state_0.3.3_1753352640400_0.9555426422665485","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@redhat-cloud-services/ai-client-state","version":"0.4.0","_id":"@redhat-cloud-services/ai-client-state@0.4.0","maintainers":[{"name":"lesamo","email":"soleksak@redhat.com"},{"name":"jozefhartinger","email":"jozefhartinger@gmail.com"},{"name":"karelhala","email":"karelhala.91@gmail.com"},{"name":"ryelo","email":"rylong18@gmail.com"},{"name":"kruai","email":"asabprice@gmail.com"},{"name":"hyperkid","email":"marvusm.mmi@gmail.com"},{"name":"florkbr","email":"florkbr@gmail.com"}],"dist":{"shasum":"1600633284bb46735a4a8580b7c5dfe037adb2b7","tarball":"https://registry.npmjs.org/@redhat-cloud-services/ai-client-state/-/ai-client-state-0.4.0.tgz","fileCount":11,"integrity":"sha512-mITVWmGRfD2vT3VOhj8iWzrriDz04qbb+FiNLsNDcflA3vc90+/Qs+HoY/jjavJ261GxKOFqJ65pjTx3cgcopg==","signatures":[{"sig":"MEYCIQDkQVaeGRtOJO0AuCyW57kuP/AxdexCXt097b2ICC7UEQIhAMISvHEDret8Yspw1nK8IB5ixnjV/jlyLGaGpWrSuUwM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":47362},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"d441cb2452859ab6321b02f3d3e0ceafb815364c","_npmUser":{"name":"hyperkid","email":"marvusm.mmi@gmail.com"},"_npmVersion":"10.9.2","description":"State management for AI client conversations with event-driven architecture and cross-package compatibility.","directories":{},"_nodeVersion":"22.17.1","dependencies":{"@redhat-cloud-services/ai-client-common":"0.4.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ai-client-state_0.4.0_1753454788151_0.5887092576864517","host":"s3://npm-registry-packages-npm-production"}},"4.0.1":{"name":"@redhat-cloud-services/ai-client-state","version":"4.0.1","_id":"@redhat-cloud-services/ai-client-state@4.0.1","maintainers":[{"name":"lesamo","email":"soleksak@redhat.com"},{"name":"jozefhartinger","email":"jozefhartinger@gmail.com"},{"name":"karelhala","email":"karelhala.91@gmail.com"},{"name":"ryelo","email":"rylong18@gmail.com"},{"name":"kruai","email":"asabprice@gmail.com"},{"name":"hyperkid","email":"marvusm.mmi@gmail.com"},{"name":"florkbr","email":"florkbr@gmail.com"}],"dist":{"shasum":"df4de457eab8b1628b3fedfe2ecb25a8edd2e88f","tarball":"https://registry.npmjs.org/@redhat-cloud-services/ai-client-state/-/ai-client-state-4.0.1.tgz","fileCount":11,"integrity":"sha512-JFVDs8/4ZtRMSw+s3mY40Jw+a3Wl+RJOqL/jvPRSR+MhyVDIV1F+u4Z2Jw40EPYRbHWXU0YSf9hTIBCqNXiVOg==","signatures":[{"sig":"MEUCIEEz4GFwuJdHDG7h90IgNJ7ZVcjlsAwbDzygQgOFrB6oAiEA615uSvh+hF5kHjWbRqwtPfQQp76lglsDfqBL8KyXGmM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":49401},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"c5fbe5235df3fd25e5af7a83351fb68abf32efc5","_npmUser":{"name":"hyperkid","email":"marvusm.mmi@gmail.com"},"deprecated":"bad release","_npmVersion":"10.9.2","description":"State management for AI client conversations with event-driven architecture and cross-package compatibility.","directories":{},"_nodeVersion":"22.17.1","dependencies":{"@redhat-cloud-services/ai-client-common":"4.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ai-client-state_4.0.1_1753798204239_0.008194389026039417","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@redhat-cloud-services/ai-client-state","version":"0.4.1","_id":"@redhat-cloud-services/ai-client-state@0.4.1","maintainers":[{"name":"lesamo","email":"soleksak@redhat.com"},{"name":"jozefhartinger","email":"jozefhartinger@gmail.com"},{"name":"karelhala","email":"karelhala.91@gmail.com"},{"name":"ryelo","email":"rylong18@gmail.com"},{"name":"kruai","email":"asabprice@gmail.com"},{"name":"hyperkid","email":"marvusm.mmi@gmail.com"},{"name":"florkbr","email":"florkbr@gmail.com"}],"dist":{"shasum":"74d09a923d3b6684873e88bae407c2545814f424","tarball":"https://registry.npmjs.org/@redhat-cloud-services/ai-client-state/-/ai-client-state-0.4.1.tgz","fileCount":11,"integrity":"sha512-jjfMvAgwg3NRxzHZRtVdarOlyDxH+4e6Ov0gPF8TBbbdA4XE+ADwBRi1szPOfgl35v8KJ1s+TOkpxYPV07NQdg==","signatures":[{"sig":"MEQCIHQJDFf0l5fAakYEqIyn0jlVmdTlw9q3RnnXdSgLONqlAiAybpcQmfE3lCfNtTLA+vA+Yp0URVEpq+rIBNTxeJmp5g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":49401},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"623679cdf0776604de99b03539a88094d4e42014","_npmUser":{"name":"hyperkid","email":"marvusm.mmi@gmail.com"},"_npmVersion":"10.9.2","description":"State management for AI client conversations with event-driven architecture and cross-package compatibility.","directories":{},"_nodeVersion":"22.17.1","dependencies":{"@redhat-cloud-services/ai-client-common":"0.4.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ai-client-state_0.4.1_1753799132056_0.007458540766548616","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@redhat-cloud-services/ai-client-state","version":"0.5.0","_id":"@redhat-cloud-services/ai-client-state@0.5.0","maintainers":[{"name":"lesamo","email":"soleksak@redhat.com"},{"name":"jozefhartinger","email":"jozefhartinger@gmail.com"},{"name":"karelhala","email":"karelhala.91@gmail.com"},{"name":"ryelo","email":"rylong18@gmail.com"},{"name":"kruai","email":"asabprice@gmail.com"},{"name":"hyperkid","email":"marvusm.mmi@gmail.com"},{"name":"florkbr","email":"florkbr@gmail.com"}],"dist":{"shasum":"adc3f2fe3f90f06d771540001132be094c993f7e","tarball":"https://registry.npmjs.org/@redhat-cloud-services/ai-client-state/-/ai-client-state-0.5.0.tgz","fileCount":11,"integrity":"sha512-whjAmq6LOfOMd24ZezJxWJIriXznGi03mjFWmIGt1mqGuDGCaw8RBNEbOw1dD3Q84UA3x9stysX8KKhr2f1bvg==","signatures":[{"sig":"MEUCIEBVQ0S4FHHtXDR+A1yzEMeyD4uATcWIDFQSGdT2DBTNAiEApeCy9XE16gNLyX3M6Afv7IceFe5CuK+IDBOJobzxQAI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":49077},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"8635ef96fdc14eb86437f03bb3a52dd2c17750d9","_npmUser":{"name":"hyperkid","email":"marvusm.mmi@gmail.com"},"_npmVersion":"10.9.2","description":"State management for AI client conversations with event-driven architecture and cross-package compatibility.","directories":{},"_nodeVersion":"22.17.1","dependencies":{"@redhat-cloud-services/ai-client-common":"0.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ai-client-state_0.5.0_1753870313343_0.017176566403051874","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@redhat-cloud-services/ai-client-state","version":"0.6.0","_id":"@redhat-cloud-services/ai-client-state@0.6.0","maintainers":[{"name":"lesamo","email":"soleksak@redhat.com"},{"name":"jozefhartinger","email":"jozefhartinger@gmail.com"},{"name":"karelhala","email":"karelhala.91@gmail.com"},{"name":"ryelo","email":"rylong18@gmail.com"},{"name":"kruai","email":"asabprice@gmail.com"},{"name":"hyperkid","email":"marvusm.mmi@gmail.com"},{"name":"florkbr","email":"florkbr@gmail.com"}],"dist":{"shasum":"3afd021c447dfd0a8012bcad0a9ebab98d2ad817","tarball":"https://registry.npmjs.org/@redhat-cloud-services/ai-client-state/-/ai-client-state-0.6.0.tgz","fileCount":11,"integrity":"sha512-nAoHSzVT1StucA5Ia/m7Upp3N7G7FM1kt+GVMpyenVszZSX9puQp67DUUFlx4041z7bNNJiUnUY2baYUba0Jmg==","signatures":[{"sig":"MEUCICGZL2C6K8C+PEJAJ8lHq7cwsIRlaghHsWG244/bcwglAiEA1hYI/5coxf/Z1jXlF2tRbBvlTcm8y9WWi8qbPC3wuTQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":51183},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"80a8e2307c9c55f0012f1638d3a769796a0612f1","_npmUser":{"name":"hyperkid","email":"marvusm.mmi@gmail.com"},"_npmVersion":"10.9.2","description":"State management for AI client conversations with event-driven architecture and cross-package compatibility.","directories":{},"_nodeVersion":"22.17.1","dependencies":{"@redhat-cloud-services/ai-client-common":"0.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ai-client-state_0.6.0_1754041382486_0.514631353082508","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"@redhat-cloud-services/ai-client-state","version":"0.6.1","_id":"@redhat-cloud-services/ai-client-state@0.6.1","maintainers":[{"name":"lesamo","email":"soleksak@redhat.com"},{"name":"jozefhartinger","email":"jozefhartinger@gmail.com"},{"name":"karelhala","email":"karelhala.91@gmail.com"},{"name":"ryelo","email":"rylong18@gmail.com"},{"name":"kruai","email":"asabprice@gmail.com"},{"name":"hyperkid","email":"marvusm.mmi@gmail.com"},{"name":"florkbr","email":"florkbr@gmail.com"}],"dist":{"shasum":"51d97a6c9d2f52867935f1c7a1a1aabe4bcaac8f","tarball":"https://registry.npmjs.org/@redhat-cloud-services/ai-client-state/-/ai-client-state-0.6.1.tgz","fileCount":11,"integrity":"sha512-73pMcQvJW1hpSm0HopF7JW5SquSY8/YWc87lRLR0zkug5fEG0jOLc3kqirlpc2ZGyDznii2oysQq6x2LwbCaJg==","signatures":[{"sig":"MEUCIQCqNw8iCCIalbg29UpqzMbuHIaHrcjavHICqAr2Ip7H4wIga7OfqGy+jDvY4lA+J5CfjpX7nX597F0IdxteB3PdZKM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":51855},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"3cc4fb1e30ee5701af5768db36990d18db3d1087","_npmUser":{"name":"hyperkid","email":"marvusm.mmi@gmail.com"},"_npmVersion":"10.9.2","description":"State management for AI client conversations with event-driven architecture and cross-package compatibility.","directories":{},"_nodeVersion":"22.17.1","dependencies":{"@redhat-cloud-services/ai-client-common":"0.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ai-client-state_0.6.1_1754474227441_0.8063697560835068","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@redhat-cloud-services/ai-client-state","version":"0.7.0","_id":"@redhat-cloud-services/ai-client-state@0.7.0","maintainers":[{"name":"lesamo","email":"soleksak@redhat.com"},{"name":"jozefhartinger","email":"jozefhartinger@gmail.com"},{"name":"karelhala","email":"karelhala.91@gmail.com"},{"name":"ryelo","email":"rylong18@gmail.com"},{"name":"kruai","email":"asabprice@gmail.com"},{"name":"hyperkid","email":"marvusm.mmi@gmail.com"},{"name":"florkbr","email":"florkbr@gmail.com"}],"dist":{"shasum":"727f876ca84ddcae4d537214b6d1bddce576dd4f","tarball":"https://registry.npmjs.org/@redhat-cloud-services/ai-client-state/-/ai-client-state-0.7.0.tgz","fileCount":11,"integrity":"sha512-5z+hETEIPjRRVwinptWTD158gvB7ncCQz9NOaop/ZDJOIjL5Vul2VoSz0QQ6AobVX8AuhsXWH7Ccgxw2nss7DA==","signatures":[{"sig":"MEUCIC+u3PLFhmdokBehJxFdkIhGI2tL6kMyZv30SiiYiZjWAiEAhXysY23X0ttflFWF6slXOju2o4CvUaItThbU5PPj+mY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":52188},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"0ea87c972913cce70257f810675b083374c9b5a4","_npmUser":{"name":"hyperkid","email":"marvusm.mmi@gmail.com"},"_npmVersion":"10.9.2","description":"State management for AI client conversations with event-driven architecture and cross-package compatibility.","directories":{},"_nodeVersion":"22.17.1","dependencies":{"@redhat-cloud-services/ai-client-common":"0.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ai-client-state_0.7.0_1754483191858_0.9385188932471005","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@redhat-cloud-services/ai-client-state","version":"0.8.0","_id":"@redhat-cloud-services/ai-client-state@0.8.0","maintainers":[{"name":"lesamo","email":"soleksak@redhat.com"},{"name":"jozefhartinger","email":"jozefhartinger@gmail.com"},{"name":"karelhala","email":"karelhala.91@gmail.com"},{"name":"ryelo","email":"rylong18@gmail.com"},{"name":"kruai","email":"asabprice@gmail.com"},{"name":"hyperkid","email":"marvusm.mmi@gmail.com"},{"name":"florkbr","email":"florkbr@gmail.com"}],"dist":{"shasum":"fb46436290fcdde2c8e17d3861ea2a3b46efd26a","tarball":"https://registry.npmjs.org/@redhat-cloud-services/ai-client-state/-/ai-client-state-0.8.0.tgz","fileCount":11,"integrity":"sha512-d4k2DksPr6GejA6GkAB5lXAtrYlVgdyf2/YVLZDO+3jfdfgBfx1CsB7cHloBusTwjYqBvYi1AdOtMpRra9MOiQ==","signatures":[{"sig":"MEYCIQD9R4MSDrFJV0Wrl0g3j65WeIjyuwKz6HKCYec+jisUYAIhAP13wu38qfFc5XrCu5jwciEqBdkAoHfCsr+rcvtSPHzH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":52103},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"d194ecd6ee336f08973e003ccee3248f99c352ae","_npmUser":{"name":"hyperkid","email":"marvusm.mmi@gmail.com"},"_npmVersion":"10.9.2","description":"State management for AI client conversations with event-driven architecture and cross-package compatibility.","directories":{},"_nodeVersion":"22.17.1","dependencies":{"@redhat-cloud-services/ai-client-common":"0.8.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ai-client-state_0.8.0_1754642109376_0.16580799684251168","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@redhat-cloud-services/ai-client-state","version":"0.9.0","_id":"@redhat-cloud-services/ai-client-state@0.9.0","maintainers":[{"name":"lesamo","email":"soleksak@redhat.com"},{"name":"jozefhartinger","email":"jozefhartinger@gmail.com"},{"name":"karelhala","email":"karelhala.91@gmail.com"},{"name":"ryelo","email":"rylong18@gmail.com"},{"name":"kruai","email":"asabprice@gmail.com"},{"name":"hyperkid","email":"marvusm.mmi@gmail.com"},{"name":"florkbr","email":"florkbr@gmail.com"}],"dist":{"shasum":"e5cb75bf0547ff3f7c60199e966df5f8914985b9","tarball":"https://registry.npmjs.org/@redhat-cloud-services/ai-client-state/-/ai-client-state-0.9.0.tgz","fileCount":11,"integrity":"sha512-XUHefQc//2811ZhWpLiwkCI7g76ZPR6+iTGMEWpm+GZcoRXELBioKSMzv3sW/DNy5lCkCdeK6nTrB7YHMYKgug==","signatures":[{"sig":"MEQCIHK+XCHRq9ftr0VWRFmXdcI3UpaxLMTR0krOo42TvBlZAiBU94qZVyD+iAo0bYaFrBXqfmRjeufdFTYgI82Pi9P6UQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":55025},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"fbe436d8bd3c9f8e8c9a7a6a40d41755c36ea762","_npmUser":{"name":"hyperkid","email":"marvusm.mmi@gmail.com"},"_npmVersion":"10.9.2","description":"State management for AI client conversations with event-driven architecture and cross-package compatibility.","directories":{},"_nodeVersion":"22.17.1","dependencies":{"@redhat-cloud-services/ai-client-common":"0.9.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ai-client-state_0.9.0_1754661673503_0.7199358994490543","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"@redhat-cloud-services/ai-client-state","version":"0.10.0","_id":"@redhat-cloud-services/ai-client-state@0.10.0","maintainers":[{"name":"lesamo","email":"soleksak@redhat.com"},{"name":"jozefhartinger","email":"jozefhartinger@gmail.com"},{"name":"karelhala","email":"karelhala.91@gmail.com"},{"name":"ryelo","email":"rylong18@gmail.com"},{"name":"kruai","email":"asabprice@gmail.com"},{"name":"hyperkid","email":"marvusm.mmi@gmail.com"},{"name":"florkbr","email":"florkbr@gmail.com"}],"dist":{"shasum":"1b0db70a5d754fdb95a0b3dc5b84a4ec63855adc","tarball":"https://registry.npmjs.org/@redhat-cloud-services/ai-client-state/-/ai-client-state-0.10.0.tgz","fileCount":11,"integrity":"sha512-QGnTu696tboUbrFFu36c2K1beXkDvTIolTXci2WTzV0RxfoTVjFpLHbtJ14xm02GXqbhF9XK3PSp5mB3MjbHwg==","signatures":[{"sig":"MEUCIQDZNSfWhcKWEYh6/oF17LcKXIP1V+wp967hVUN++odGQwIgLIFpfxmrNw1xS5MvIdelFMinWF3T76Um3ACya0fYVsw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":55872},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"eb57514b88bc5917bb0ae598c6df26b385afdd98","_npmUser":{"name":"hyperkid","email":"marvusm.mmi@gmail.com"},"_npmVersion":"10.9.3","description":"State management for AI client conversations with event-driven architecture and cross-package compatibility.","directories":{},"_nodeVersion":"22.18.0","dependencies":{"@redhat-cloud-services/ai-client-common":"0.9.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ai-client-state_0.10.0_1754912219428_0.8782053031611379","host":"s3://npm-registry-packages-npm-production"}},"0.10.1":{"name":"@redhat-cloud-services/ai-client-state","version":"0.10.1","_id":"@redhat-cloud-services/ai-client-state@0.10.1","maintainers":[{"name":"lesamo","email":"soleksak@redhat.com"},{"name":"jozefhartinger","email":"jozefhartinger@gmail.com"},{"name":"karelhala","email":"karelhala.91@gmail.com"},{"name":"ryelo","email":"rylong18@gmail.com"},{"name":"kruai","email":"asabprice@gmail.com"},{"name":"hyperkid","email":"marvusm.mmi@gmail.com"},{"name":"florkbr","email":"florkbr@gmail.com"}],"dist":{"shasum":"fc50a0eb27d726c24e79ffc99caa83929f282485","tarball":"https://registry.npmjs.org/@redhat-cloud-services/ai-client-state/-/ai-client-state-0.10.1.tgz","fileCount":11,"integrity":"sha512-IghZrPrNhP5alBFYZXmhGvW77c9lDRu681tqoTjydLCkksdoZclTx4oLXLD5NUpRJ7Mxvm+z9/gB65DrOwjDIA==","signatures":[{"sig":"MEQCID8J3uppIAJYGFpaeh9+rdtLJ9Fk4PMoONuOZ4dkZG7sAiA3S30sX7Ksr+wOhM01qFj/azd1jkLI6+cvvFUuzdZFrw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56545},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"767759f1063820a823c9a288bb5d7ded3e00eb41","_npmUser":{"name":"hyperkid","email":"marvusm.mmi@gmail.com"},"_npmVersion":"10.9.3","description":"State management for AI client conversations with event-driven architecture and cross-package compatibility.","directories":{},"_nodeVersion":"22.18.0","dependencies":{"@redhat-cloud-services/ai-client-common":"0.9.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ai-client-state_0.10.1_1754923549231_0.7676314107306053","host":"s3://npm-registry-packages-npm-production"}},"0.10.2":{"name":"@redhat-cloud-services/ai-client-state","version":"0.10.2","_id":"@redhat-cloud-services/ai-client-state@0.10.2","maintainers":[{"name":"lesamo","email":"soleksak@redhat.com"},{"name":"jozefhartinger","email":"jozefhartinger@gmail.com"},{"name":"karelhala","email":"karelhala.91@gmail.com"},{"name":"ryelo","email":"rylong18@gmail.com"},{"name":"kruai","email":"asabprice@gmail.com"},{"name":"hyperkid","email":"marvusm.mmi@gmail.com"},{"name":"florkbr","email":"florkbr@gmail.com"}],"dist":{"shasum":"5412549795887f8d4de255cd207f950bf8d29e81","tarball":"https://registry.npmjs.org/@redhat-cloud-services/ai-client-state/-/ai-client-state-0.10.2.tgz","fileCount":11,"integrity":"sha512-dQ2ix7xHjhRNDVuPBrnEllB8sAXdr+u5CavU3ZDII9sgWPK+yCtiTMZAKkoPWuejllhYQ9b/ALlUtzV8ppgKIg==","signatures":[{"sig":"MEYCIQDfI/f5ORm/c+FxVhOXcNqAuMqEeO7y1BiTtYomK2Es8QIhAKAs2+7HMYkdtAWCEQTn2o+bNb79/ItJsp7yU71dj3QK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":59042},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"17b686926080841c7405ee0bf67a9dd03f59fc2a","_npmUser":{"name":"hyperkid","email":"marvusm.mmi@gmail.com"},"_npmVersion":"10.9.3","description":"State management for AI client conversations with event-driven architecture and cross-package compatibility.","directories":{},"_nodeVersion":"22.18.0","dependencies":{"@redhat-cloud-services/ai-client-common":"0.9.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ai-client-state_0.10.2_1754986767482_0.08289646477613988","host":"s3://npm-registry-packages-npm-production"}},"0.10.3":{"name":"@redhat-cloud-services/ai-client-state","version":"0.10.3","_id":"@redhat-cloud-services/ai-client-state@0.10.3","maintainers":[{"name":"lesamo","email":"soleksak@redhat.com"},{"name":"jozefhartinger","email":"jozefhartinger@gmail.com"},{"name":"karelhala","email":"karelhala.91@gmail.com"},{"name":"ryelo","email":"rylong18@gmail.com"},{"name":"kruai","email":"asabprice@gmail.com"},{"name":"hyperkid","email":"marvusm.mmi@gmail.com"},{"name":"florkbr","email":"florkbr@gmail.com"}],"dist":{"shasum":"f133a02cf3cb45b889ce3043f1eb892cd3f1046e","tarball":"https://registry.npmjs.org/@redhat-cloud-services/ai-client-state/-/ai-client-state-0.10.3.tgz","fileCount":11,"integrity":"sha512-IfKKct9Q/RYchl9uTvCv9o0afjjPQJfgqFetk5z/CfpirOYLq8gLP+DO/iukDiXThZqu5VVjOQMwiHHGqGzMVg==","signatures":[{"sig":"MEUCIF1NpGY78NwrGBuZpMbebCfV1sFnLcuRMOqqo8CQeW9VAiEA1TNOyJ7Rtir7CUn6bqiVKnaqjk2a1SXXlXsl2EZjLEI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":59502},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"0c34f9a404f16397b4aa5dbf512846d5cf91a1cb","_npmUser":{"name":"hyperkid","email":"marvusm.mmi@gmail.com"},"_npmVersion":"10.9.3","description":"State management for AI client conversations with event-driven architecture and cross-package compatibility.","directories":{},"_nodeVersion":"22.18.0","dependencies":{"@redhat-cloud-services/ai-client-common":"0.9.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ai-client-state_0.10.3_1754996761131_0.3597041412031319","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"@redhat-cloud-services/ai-client-state","version":"0.11.0","_id":"@redhat-cloud-services/ai-client-state@0.11.0","maintainers":[{"name":"lesamo","email":"soleksak@redhat.com"},{"name":"jozefhartinger","email":"jozefhartinger@gmail.com"},{"name":"karelhala","email":"karelhala.91@gmail.com"},{"name":"hyperkid","email":"marvusm.mmi@gmail.com"},{"name":"florkbr","email":"florkbr@gmail.com"}],"dist":{"shasum":"f20cc74885df68b9d8e92df3ad3895973ce827f4","tarball":"https://registry.npmjs.org/@redhat-cloud-services/ai-client-state/-/ai-client-state-0.11.0.tgz","fileCount":11,"integrity":"sha512-RzKEMW/GzL1qW/zhXbnAyvQ9MlC1NOoV4dpaZI7fdgLrP72sLmNawbNRDdJ9PgtKGvInYUo7D8QwWcwo3m2DeQ==","signatures":[{"sig":"MEQCIHYeY4MHIO2CdkFcC1L7PRWDvdHEu+l8M7PcEd4clBW/AiAX7LoQkQTRhCZ2gJDaN+5I5kyJoOl4YQxJo+jz4oBx5w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":60594},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"721f62d63c877fafce943952ee7dee963354e3ff","_npmUser":{"name":"hyperkid","email":"marvusm.mmi@gmail.com"},"_npmVersion":"10.9.3","description":"State management for AI client conversations with event-driven architecture and cross-package compatibility.","directories":{},"_nodeVersion":"22.18.0","dependencies":{"@redhat-cloud-services/ai-client-common":"0.10.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ai-client-state_0.11.0_1755243684645_0.8747727373783547","host":"s3://npm-registry-packages-npm-production"}},"0.12.0":{"name":"@redhat-cloud-services/ai-client-state","version":"0.12.0","_id":"@redhat-cloud-services/ai-client-state@0.12.0","maintainers":[{"name":"lesamo","email":"soleksak@redhat.com"},{"name":"jozefhartinger","email":"jozefhartinger@gmail.com"},{"name":"karelhala","email":"karelhala.91@gmail.com"},{"name":"hyperkid","email":"marvusm.mmi@gmail.com"},{"name":"florkbr","email":"florkbr@gmail.com"}],"dist":{"shasum":"0577c1c68583a0d75f44c25ed70471f28d291f2c","tarball":"https://registry.npmjs.org/@redhat-cloud-services/ai-client-state/-/ai-client-state-0.12.0.tgz","fileCount":11,"integrity":"sha512-1tg1CirmofwR4vO9cn33DBOBwLYtVMWy7++fNC5dsgnP5uxjTXO8xYQfsrfyx4ZQJCdgyfZIpcSI1uXvfgoa0g==","signatures":[{"sig":"MEUCIQDZsst2Q3vyajz3I3YtvgblLlExk4SNmMl8fLcTinquNAIgbbeG7osWrc/AxPiJkoPTCXoaNkR1cGo1CB7rKotSvBg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":63697},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"1fbc1528969901ab09c25db0d9275a950b5e9aa4","_npmUser":{"name":"hyperkid","email":"marvusm.mmi@gmail.com"},"_npmVersion":"10.9.3","description":"State management for AI client conversations with event-driven architecture and cross-package compatibility.","directories":{},"_nodeVersion":"22.18.0","dependencies":{"@redhat-cloud-services/ai-client-common":"0.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ai-client-state_0.12.0_1755609627241_0.9227581051382223","host":"s3://npm-registry-packages-npm-production"}},"0.13.0":{"name":"@redhat-cloud-services/ai-client-state","version":"0.13.0","_id":"@redhat-cloud-services/ai-client-state@0.13.0","maintainers":[{"name":"lesamo","email":"soleksak@redhat.com"},{"name":"jozefhartinger","email":"jozefhartinger@gmail.com"},{"name":"karelhala","email":"karelhala.91@gmail.com"},{"name":"hyperkid","email":"marvusm.mmi@gmail.com"},{"name":"florkbr","email":"florkbr@gmail.com"}],"dist":{"shasum":"27bb8c813706605d2e1ae19f3c234a760db94d15","tarball":"https://registry.npmjs.org/@redhat-cloud-services/ai-client-state/-/ai-client-state-0.13.0.tgz","fileCount":11,"integrity":"sha512-grOspIqaLsX/I+mvcwRXEjLjBESTS/SQpIQ96j4YQ3vGvJDiMwSsjY4ZMLiy/RykXI4XQ5WdwOVkYS9ah8u2TA==","signatures":[{"sig":"MEYCIQCLs3slsHAqV1Ot9eJStCIeGqB5L51AyjqenL2UyqF1zAIhAIyGUwblE/TI96lPs+9MNWppDC0q0RoTB1k0lidXYxPe","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":64101},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"380315ea98508dca81e68ecad76b4cd8d6d66913","_npmUser":{"name":"hyperkid","email":"marvusm.mmi@gmail.com"},"_npmVersion":"10.9.3","description":"State management for AI client conversations with event-driven architecture and cross-package compatibility.","directories":{},"_nodeVersion":"22.18.0","dependencies":{"@redhat-cloud-services/ai-client-common":"0.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ai-client-state_0.13.0_1756123718835_0.24001447887466698","host":"s3://npm-registry-packages-npm-production"}},"0.14.0":{"name":"@redhat-cloud-services/ai-client-state","version":"0.14.0","_id":"@redhat-cloud-services/ai-client-state@0.14.0","maintainers":[{"name":"lesamo","email":"soleksak@redhat.com"},{"name":"jozefhartinger","email":"jozefhartinger@gmail.com"},{"name":"karelhala","email":"karelhala.91@gmail.com"},{"name":"hyperkid","email":"marvusm.mmi@gmail.com"},{"name":"florkbr","email":"florkbr@gmail.com"}],"dist":{"shasum":"edcdd5ca1f8007f8a21a55a38e577e3d8653cc59","tarball":"https://registry.npmjs.org/@redhat-cloud-services/ai-client-state/-/ai-client-state-0.14.0.tgz","fileCount":11,"integrity":"sha512-nXYByw2/kdmt+P89xpUsRT+rbx+iGILU/1ZXwpV+hNq3ODK7bc1HyI3mVl/OQV+KK1IvJZ4KKA/SUQisKxFmwg==","signatures":[{"sig":"MEUCIAxVRzMALkdLWMLU5PWAa7nDVyGe5h6wCbgZLLlwc+FBAiEA16JwiMB8t5Ec1cTE4f7OakV+xnfDGB//3b1kJP9QZQ8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":61239},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"cb6936e4db92c823ceee33e6fa3b79d522c22e71","_npmUser":{"name":"hyperkid","email":"marvusm.mmi@gmail.com"},"_npmVersion":"10.9.3","description":"State management for AI client conversations with event-driven architecture and cross-package compatibility.","directories":{},"_nodeVersion":"22.18.0","dependencies":{"@redhat-cloud-services/ai-client-common":"0.13.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ai-client-state_0.14.0_1756297244094_0.6972731019103822","host":"s3://npm-registry-packages-npm-production"}},"0.14.1":{"name":"@redhat-cloud-services/ai-client-state","version":"0.14.1","_id":"@redhat-cloud-services/ai-client-state@0.14.1","maintainers":[{"name":"lesamo","email":"soleksak@redhat.com"},{"name":"jozefhartinger","email":"jozefhartinger@gmail.com"},{"name":"karelhala","email":"karelhala.91@gmail.com"},{"name":"hyperkid","email":"marvusm.mmi@gmail.com"},{"name":"florkbr","email":"florkbr@gmail.com"}],"dist":{"shasum":"92a3dc449f9d7256f580a914309b925c116c7d84","tarball":"https://registry.npmjs.org/@redhat-cloud-services/ai-client-state/-/ai-client-state-0.14.1.tgz","fileCount":11,"integrity":"sha512-uqNb8xyi031imxC6mtH9pKfOKyW9OCWy8ehAQ7nMweI3woqcD6bS25NsVOfPPfeD647tfp5wqgPtNJ/zed3vnA==","signatures":[{"sig":"MEUCIQCvhKRQopkiML8uFViN6a4H2gFeFi4pTzbMdU/zw7VN2QIgBT750puu/uY2fGvnoNyYF2W9+7SS2plfldnRpofXT3M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":61326},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"7b9065a3912c132fbffeac44409841375f465e80","_npmUser":{"name":"hyperkid","email":"marvusm.mmi@gmail.com"},"_npmVersion":"10.9.3","description":"State management for AI client conversations with event-driven architecture and cross-package compatibility.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"@redhat-cloud-services/ai-client-common":"0.13.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ai-client-state_0.14.1_1757594206855_0.8302651435688495","host":"s3://npm-registry-packages-npm-production"}},"0.15.0":{"name":"@redhat-cloud-services/ai-client-state","version":"0.15.0","_id":"@redhat-cloud-services/ai-client-state@0.15.0","maintainers":[{"name":"lesamo","email":"soleksak@redhat.com"},{"name":"jozefhartinger","email":"jozefhartinger@gmail.com"},{"name":"karelhala","email":"karelhala.91@gmail.com"},{"name":"hyperkid","email":"marvusm.mmi@gmail.com"},{"name":"florkbr","email":"florkbr@gmail.com"}],"dist":{"shasum":"b78fa0a263c1d49bafeef0ee617284e6c3d0826d","tarball":"https://registry.npmjs.org/@redhat-cloud-services/ai-client-state/-/ai-client-state-0.15.0.tgz","fileCount":11,"integrity":"sha512-K91WyVL9y3b4hOWw3dpTMGn+rcG3WpGqgj3BlSp9/fMA9osN37jHvhfgLZeA3K62Stza7uKEOolv4bZ2ZnQ4Uw==","signatures":[{"sig":"MEQCICGNsmyEF3EnwSX4QejeaYcKxYNpjCytcpVeRYVoda53AiA9wVfPLuK1l4Gf6UcivhImGwWcrDujuMjO5oo9RN5kUg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":62591},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"97ea449e7a81721282323f6eeac1dac23555a773","_npmUser":{"name":"hyperkid","email":"marvusm.mmi@gmail.com"},"_npmVersion":"10.9.3","description":"State management for AI client conversations with event-driven architecture and cross-package compatibility.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"@redhat-cloud-services/ai-client-common":"0.13.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ai-client-state_0.15.0_1759306494187_0.21996306725063985","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2025-07-23T12:12:34.999Z","modified":"2026-06-05T14:39:35.963Z","0.1.0":"2025-07-23T12:12:35.255Z","0.2.0":"2025-07-23T14:44:07.705Z","0.3.0":"2025-07-23T14:51:12.387Z","0.3.1":"2025-07-23T15:00:50.995Z","0.3.2":"2025-07-24T07:47:55.872Z","0.3.3":"2025-07-24T10:24:00.559Z","0.4.0":"2025-07-25T14:46:28.325Z","4.0.1":"2025-07-29T14:10:04.500Z","0.4.1":"2025-07-29T14:25:32.244Z","0.5.0":"2025-07-30T10:11:53.537Z","0.6.0":"2025-08-01T09:43:02.690Z","0.6.1":"2025-08-06T09:57:07.614Z","0.7.0":"2025-08-06T12:26:32.041Z","0.8.0":"2025-08-08T08:35:09.559Z","0.9.0":"2025-08-08T14:01:13.696Z","0.10.0":"2025-08-11T11:36:59.599Z","0.10.1":"2025-08-11T14:45:49.413Z","0.10.2":"2025-08-12T08:19:27.676Z","0.10.3":"2025-08-12T11:06:01.303Z","0.11.0":"2025-08-15T07:41:24.839Z","0.12.0":"2025-08-19T13:20:27.436Z","0.13.0":"2025-08-25T12:08:39.013Z","0.14.0":"2025-08-27T12:20:44.338Z","0.14.1":"2025-09-11T12:36:47.025Z","0.15.0":"2025-10-01T08:14:54.367Z"},"description":"State management for AI client conversations with event-driven architecture and cross-package compatibility.","maintainers":[{"email":"karelhala.91@gmail.com","name":"karelhala"},{"email":"marvusm.mmi@gmail.com","name":"hyperkid"},{"email":"florkbr@gmail.com","name":"florkbr"},{"email":"chmulder@redhat.com","name":"chmulder"}],"readme":"# @redhat-cloud-services/ai-client-state\n\nState management for AI client conversations with event-driven architecture and cross-package compatibility.\n\n## Features\n\n- **Lazy Initialization** - Conversations are created automatically on first sendMessage (no auto-creation during init)\n- **Temporary Conversation Pattern** - Seamless conversation creation using temporary conversation IDs\n- **Automatic Promotion** - First sendMessage automatically promotes temporary to real conversation\n- **Conversation Management** - Handle multiple AI conversations with persistent state\n- **Conversation Locking** - Prevent message sending to locked conversations with automatic error handling\n- **Event-Driven Architecture** - Subscribe to state changes with typed events\n- **Message Flow Control** - Track message progress and handle streaming responses  \n- **Client Agnostic** - Works with any AI client implementing `IAIClient` interface\n- **TypeScript Support** - Comprehensive type definitions for all state operations\n- **Zero UI Dependencies** - Pure state management without framework coupling\n- **Retry Logic** - Promotion failures include retry mechanism with user-friendly error messages\n\n## Installation\n\n```bash\nnpm install @redhat-cloud-services/ai-client-state\n```\n\n## Quick Start\n\n```typescript\nimport { createClientStateManager } from '@redhat-cloud-services/ai-client-state';\nimport { IFDClient } from '@redhat-cloud-services/arh-client';\n\n// Create any AI client (ARH, Lightspeed, etc.)\nconst client = new IFDClient({\n  baseUrl: 'https://your-api.com',\n  fetchFunction: (input, init) => fetch(input, init) // Arrow function to preserve context\n});\n\n// Create state manager\nconst stateManager = createClientStateManager(client);\n\n// Initialize (no longer auto-creates conversations)\nawait stateManager.init();\n\n// LAZY INITIALIZATION: First sendMessage auto-creates conversation\nawait stateManager.sendMessage('Hello AI!'); // Auto-promotes temporary conversation\n```\n\n## Critical: fetchFunction Configuration\n\n**IMPORTANT**: When configuring the `fetchFunction` in AI clients, always use arrow functions or properly bound functions to preserve the `this` context and avoid reference issues.\n\n**CRITICAL**: Do NOT set `'Content-Type'` headers in your fetchFunction - the AI client will set these internally based on the endpoint requirements. Setting custom Content-Type can interfere with the client's internal logic and cause request failures.\n\n### ❌ Incorrect - Function Reference Issues\n\n```typescript\n// DON'T DO THIS - 'this' context can be lost\nconst client = new IFDClient({\n  baseUrl: 'https://your-api.com',\n  fetchFunction: fetch // Direct reference can cause context issues\n});\n\n// DON'T DO THIS - 'this' binding issues\nconst customFetch = function(input, init) {\n  // 'this' may not refer to expected object\n  return fetch(input, init);\n};\n```\n\n### ✅ Correct - Arrow Functions (Recommended)\n\n```typescript\n// ALWAYS USE ARROW FUNCTIONS for fetchFunction\nconst client = new IFDClient({\n  baseUrl: 'https://your-api.com',\n  fetchFunction: (input, init) => fetch(input, init)\n});\n```\n\n### ✅ Correct - Bound Functions\n\n```typescript\n// Alternative: Bind to window to preserve context\nconst client = new IFDClient({\n  baseUrl: 'https://your-api.com',\n  fetchFunction: fetch.bind(window)\n});\n```\n\n### Authentication with Arrow Functions\n\n```typescript\nimport { createClientStateManager } from '@redhat-cloud-services/ai-client-state';\nimport { IFDClient } from '@redhat-cloud-services/arh-client';\n\n// Imaginary token retrieval function\nasync function getToken(): Promise<string> {\n  // Your token retrieval logic here\n  return 'your-jwt-token-here';\n}\n\n// CORRECT: Use arrow function for authenticated fetch\nconst client = new IFDClient({\n  baseUrl: 'https://your-api.com',\n  fetchFunction: async (input, init) => {\n    const token = await getToken();\n    \n    return fetch(input, {\n      ...init,\n      headers: {\n        ...init?.headers,\n        'Authorization': `Bearer ${token}`\n      }\n    });\n  }\n});\n\nconst stateManager = createClientStateManager(client);\nawait stateManager.init();\n```\n\n### Complex Authentication Example\n\n```typescript\n// For more complex auth scenarios with error handling\nconst createAuthenticatedClient = async () => {\n  const client = new IFDClient({\n    baseUrl: 'https://your-api.com',\n    fetchFunction: async (input, init) => {\n      try {\n        const token = await getToken();\n        \n        const response = await fetch(input, {\n          ...init,\n          headers: {\n            ...init?.headers,\n            'Authorization': `Bearer ${token}`,\n            'User-Agent': 'AI-Client/1.0'\n            // DO NOT set 'Content-Type' - the client handles this internally\n          }\n        });\n\n        // Handle token refresh if needed\n        if (response.status === 401) {\n          const newToken = await getToken(); // Refresh token\n          return fetch(input, {\n            ...init,\n            headers: {\n              ...init?.headers,\n              'Authorization': `Bearer ${newToken}`\n              // DO NOT set 'Content-Type' - the client handles this internally\n            }\n          });\n        }\n\n        return response;\n      } catch (error) {\n        console.error('Authentication error:', error);\n        throw error;\n      }\n    }\n  });\n\n  return createClientStateManager(client);\n};\n\n// Usage\nconst stateManager = await createAuthenticatedClient();\nawait stateManager.init();\n```\n\n## Conversation Locking\n\nThe state manager supports conversation locking to prevent users from sending messages to conversations that are no longer active or have been archived. This feature provides a better user experience by preventing confusion and ensuring messages are only sent to appropriate conversations.\n\n### How Conversation Locking Works\n\n- **Locked conversations** prevent new messages from being sent\n- **Automatic error handling** shows user-friendly messages when attempting to send to locked conversations\n- **Client integration** allows AI clients to determine lock status based on their data\n- **Event system** properly handles locked conversation scenarios\n\n## Lazy Initialization (Default Behavior)\n\nThe state manager now uses lazy initialization by default. Conversations are created automatically on first `sendMessage()` call, providing a seamless user experience.\n\n### How Lazy Initialization Works\n\n```typescript\nconst stateManager = createClientStateManager(client);\nawait stateManager.init(); // No conversations created\n\n// First sendMessage automatically creates conversation\nawait stateManager.sendMessage('Hello'); // Creates temporary conversation, then promotes to real conversation\n\n// Check if current conversation is temporary (should be false after promotion)\nconst isTemp = stateManager.isTemporaryConversation(); // false after successful promotion\n```\n\n### Key Implementation Details\n\n- **Temporary Conversation ID**: Uses `'__temp_conversation__'` constant for temporary state\n- **Automatic Promotion**: First sendMessage promotes temporary to real conversation via `client.createNewConversation()`  \n- **Retry Logic**: MAX_RETRY_ATTEMPTS = 2 for promotion failures with user-friendly error messages\n- **Backward Compatibility**: All existing APIs preserved, only initialization behavior changed\n\n### Manual Conversation Creation\n\nYou can still create conversations manually if needed:\n\n```typescript\n// Create conversation explicitly\nconst conversation = await stateManager.createNewConversation();\nawait stateManager.setActiveConversationId(conversation.id);\n\n// Now send messages to the specific conversation\nawait stateManager.sendMessage('Hello explicit conversation');\n```\n\n## API Reference\n\n### StateManager Interface\n\n```typescript\nexport type StateManager<\n  T extends Record<string, unknown> = Record<string, unknown>,\n  C extends IAIClient<T> = IAIClient<T>\n> = {\n  // Initialization\n  init(): Promise<void>;\n  isInitialized(): boolean;\n  isInitializing(): boolean;\n  \n  // Conversation Management\n  setActiveConversationId(conversationId: string): Promise<void>;\n  getActiveConversationId(): string | null;\n  getActiveConversationMessages(): Message<T>[];\n  getConversations(): Conversation<T>[];\n  createNewConversation(force?: boolean): Promise<IConversation>;\n  isTemporaryConversation(): boolean;\n  \n  // Message Management\n  sendMessage(query: UserQuery, options?: MessageOptions): Promise<any>;\n  getMessageInProgress(): boolean;\n  \n  // State Access\n  getState(): ClientState<T>;\n  getInitLimitation(): ClientInitLimitation | undefined;\n  \n  // Event System\n  subscribe(event: Events, callback: () => void): () => void;\n  \n  // Client Access\n  getClient(): C;\n}\n\nexport type UserQuery = string;\n\nexport interface MessageOptions {\n  stream?: boolean;\n  [key: string]: unknown;\n}\n\nexport enum Events {\n  MESSAGE = 'message',\n  ACTIVE_CONVERSATION = 'active-conversation',\n  IN_PROGRESS = 'in-progress',\n  CONVERSATIONS = 'conversations',\n  INITIALIZING_MESSAGES = 'initializing-messages',\n  INIT_LIMITATION = 'init-limitation',\n}\n```\n\n## Core Concepts\n\n### State Manager\n\nThe state manager wraps any `IAIClient` and provides conversation state management:\n\n```typescript\nimport { createClientStateManager, Events } from '@redhat-cloud-services/ai-client-state';\n\nconst stateManager = createClientStateManager(client);\n\n// Initialize the state manager\nawait stateManager.init();\n\n// Check initialization status\nif (stateManager.isInitialized()) {\n  console.log('State manager ready');\n}\n\nif (stateManager.isInitializing()) {\n  console.log('State manager initializing...');\n}\n```\n\n### Data Structures\n\n```typescript\nimport { Message, Conversation } from '@redhat-cloud-services/ai-client-state';\n\n// Message structure (automatically created by state manager)\ninterface Message<T = Record<string, unknown>> {\n  id: string;\n  answer: string;\n  role: 'user' | 'bot';\n  additionalAttributes?: T;\n  date: Date;\n}\n\n// Conversation structure\ninterface Conversation<T = Record<string, unknown>> {\n  id: string;\n  title: string;\n  messages: Message<T>[];\n  locked: boolean; // Prevents new messages when true\n  createdAt: Date;\n}\n\n// Example: Messages are automatically created when you send strings\nawait stateManager.sendMessage('What is OpenShift?');\n// This creates a user message internally and triggers the bot response\n\n// Access messages from the conversation\nconst messages = stateManager.getActiveConversationMessages();\nconsole.log('User message:', messages[0]); // { id: '...', answer: 'What is OpenShift?', role: 'user' }\nconsole.log('Bot response:', messages[1]); // { id: '...', answer: 'OpenShift is...', role: 'bot' }\n```\n\n### Conversation Management\n\n```typescript\n// Set active conversation (async)\nawait stateManager.setActiveConversationId('conv-123');\n\n// Get all conversations\nconst conversations = stateManager.getConversations();\nconsole.log('All conversations:', conversations);\n\n// Create new conversation\nconst newConversation = await stateManager.createNewConversation();\nconsole.log('Created conversation:', newConversation.id);\n\n// Get messages from active conversation\nconst messages = stateManager.getActiveConversationMessages();\n\n// Access raw state for advanced use cases\nconst state = stateManager.getState();\nconsole.log('All conversations:', state.conversations);\nconsole.log('Active conversation:', state.activeConversationId);\n```\n\n## Sending Messages\n\n> **Important**: The `sendMessage` method takes a string (`UserQuery`), not a `Message` object. The state manager automatically creates `Message` objects internally for both user input and bot responses.\n\n### Basic Message Sending\n\n```typescript\n// Send non-streaming message (pass string directly)\nconst response = await stateManager.sendMessage('Explain Kubernetes pods');\nconsole.log('Bot response:', response);\n```\n\n### Streaming Messages\n\n```typescript\n// Send streaming message (uses client's default streaming handler)\nawait stateManager.sendMessage('Tell me about container orchestration', { stream: true });\n\n// Messages are automatically updated as chunks arrive\nconst messages = stateManager.getActiveConversationMessages();\nconst botResponse = messages.find(m => m.role === 'bot');\nconsole.log('Streaming response so far:', botResponse?.answer);\n```\n\n### Custom Message Options\n\n```typescript\nimport { MessageOptions } from '@redhat-cloud-services/ai-client-state';\n\nconst options: MessageOptions = {\n  stream: true,\n  customHeader: 'value',\n  // Any additional options are passed to the underlying client\n};\n\nawait stateManager.sendMessage('Your message here', options);\n```\n\n## Event System\n\n### Available Events\n\n```typescript\nimport { Events } from '@redhat-cloud-services/ai-client-state';\n\n// Available Events:\n// Events.MESSAGE - When messages are added/updated\n// Events.ACTIVE_CONVERSATION - When active conversation changes  \n// Events.IN_PROGRESS - When message sending status changes\n// Events.CONVERSATIONS - When conversation list changes\n// Events.INITIALIZING_MESSAGES - When conversation history is being loaded\n// Events.INIT_LIMITATION - When client initialization has limitations\n```\n\n### Subscribing to Events\n\n```typescript\n// Subscribe to message updates\nconst unsubscribeMessages = stateManager.subscribe(Events.MESSAGE, () => {\n  const messages = stateManager.getActiveConversationMessages();\n  console.log('Messages updated:', messages.length);\n});\n\n// Subscribe to conversation changes\nconst unsubscribeConversation = stateManager.subscribe(Events.ACTIVE_CONVERSATION, () => {\n  const state = stateManager.getState();\n  console.log('Active conversation changed:', state.activeConversationId);\n});\n\n// Subscribe to progress updates\nconst unsubscribeProgress = stateManager.subscribe(Events.IN_PROGRESS, () => {\n  const isInProgress = stateManager.getMessageInProgress();\n  console.log('Message in progress:', isInProgress);\n});\n\n// Subscribe to conversation list changes\nconst unsubscribeConversations = stateManager.subscribe(Events.CONVERSATIONS, () => {\n  const conversations = stateManager.getConversations();\n  console.log('Conversations updated:', conversations.length);\n});\n\n// Subscribe to message initialization events\nconst unsubscribeInitializing = stateManager.subscribe(Events.INITIALIZING_MESSAGES, () => {\n  const isInitializing = stateManager.isInitializing();\n  console.log('Messages initializing:', isInitializing);\n});\n\n// Cleanup subscriptions\nunsubscribeMessages();\nunsubscribeConversation();\nunsubscribeProgress();\nunsubscribeConversations();\nunsubscribeInitializing();\n```\n\n### Progress Tracking\n\n```typescript\n// Check if a message is currently being sent\nconst isInProgress = stateManager.getMessageInProgress();\n\nif (isInProgress) {\n  console.log('Please wait, message being processed...');\n} else {\n  console.log('Ready to send next message');\n}\n```\n\n## Client Integration Examples\n\n### ARH Client Integration\n\n```typescript\nimport { IFDClient } from '@redhat-cloud-services/arh-client';\nimport { createClientStateManager } from '@redhat-cloud-services/ai-client-state';\n\nconst arhClient = new IFDClient({\n  baseUrl: 'https://arh-api.redhat.com',\n  fetchFunction: authenticatedFetch\n});\n\nconst stateManager = createClientStateManager(arhClient);\nawait stateManager.init();\n```\n\n### Lightspeed Client Integration\n\n```typescript\nimport { LightspeedClient } from '@redhat-cloud-services/lightspeed-client';\nimport { createClientStateManager } from '@redhat-cloud-services/ai-client-state';\n\nconst lightspeedClient = new LightspeedClient({\n  baseUrl: 'https://lightspeed-api.openshift.com',\n  fetchFunction: (input, init) => fetch(input, init)\n});\n\nconst stateManager = createClientStateManager(lightspeedClient);\nawait stateManager.init();\n```\n\n### Custom Client Integration\n\n```typescript\nimport { \n  IAIClient, \n  IConversation, \n  IMessageResponse, \n  ClientInitLimitation, \n  IInitErrorResponse \n} from '@redhat-cloud-services/ai-client-common';\nimport { createClientStateManager } from '@redhat-cloud-services/ai-client-state';\n\nclass CustomClient implements IAIClient {\n  async init(): Promise<{\n    conversations: IConversation[];\n    limitation?: ClientInitLimitation;\n    error?: IInitErrorResponse;\n  }> {\n    return {\n      conversations: []\n    };\n  }\n\n  async createNewConversation(): Promise<IConversation> {\n    return {\n      id: crypto.randomUUID(),\n      title: 'New Conversation',\n      locked: false,\n      createdAt: new Date()\n    };\n  }\n\n  async sendMessage(conversationId: string, message: string): Promise<IMessageResponse<Record<string, unknown>>> {\n    // Your custom implementation\n    return { \n      messageId: crypto.randomUUID(),\n      answer: 'Custom response', \n      conversationId,\n      additionalAttributes: {}\n    };\n  }\n\n  // ... implement other IAIClient methods\n}\n\nconst customClient = new CustomClient();\nconst stateManager = createClientStateManager(customClient);\n```\n\n## Advanced Usage\n\n### Multiple Conversation Handling\n\n```typescript\n// Create multiple conversations\nawait stateManager.init(); // No longer auto-creates conversations\n\n// Create conversations explicitly\nconst conversation1 = await stateManager.createNewConversation();\nconst conversation2 = await stateManager.createNewConversation();\n\n// Switch between conversations  \nawait stateManager.setActiveConversationId(conversation1.id);\nawait stateManager.sendMessage('First message');\n\nawait stateManager.setActiveConversationId(conversation2.id); \nawait stateManager.sendMessage('Second message');\n\n// Get all conversations\nconst allConversations = stateManager.getConversations();\nconsole.log('Total conversations:', allConversations.length);\n\n// Access specific conversation from state\nconst state = stateManager.getState();\nconst conv1 = state.conversations[conversation1.id];\nconst conv2 = state.conversations[conversation2.id];\n```\n\n### Error Handling\n\n```typescript\ntry {\n  await stateManager.sendMessage('Your message here');\n} catch (error) {\n  console.error('Failed to send message:', error);\n  \n  // State manager automatically cleans up failed messages\n  const messages = stateManager.getActiveConversationMessages();\n  // Failed bot message will be removed from conversation\n}\n```\n\n### State Inspection\n\n```typescript\nconst state = stateManager.getState();\n\nconsole.log('Initialization status:', {\n  isInitialized: state.isInitialized,\n  isInitializing: state.isInitializing\n});\n\nconsole.log('Conversation state:', {\n  activeConversationId: state.activeConversationId,\n  conversationCount: Object.keys(state.conversations).length,\n  messageInProgress: state.messageInProgress\n});\n\n// Access specific conversation details\nObject.entries(state.conversations).forEach(([id, conversation]) => {\n  console.log(`Conversation ${id}:`, {\n    messageCount: conversation.messages.length,\n    lastMessage: conversation.messages[conversation.messages.length - 1]\n  });\n});\n```\n\n## Compatible Packages\n\nWorks seamlessly with:\n\n- **[@redhat-cloud-services/arh-client](../arh-client)** - Intelligent Front Door (IFD) API client\n- **[@redhat-cloud-services/lightspeed-client](../lightspeed-client)** - OpenShift Lightspeed API client\n- **[@redhat-cloud-services/ai-react-state](../ai-react-state)** - React hooks and context provider\n- Any custom client implementing **[@redhat-cloud-services/ai-client-common](../ai-client-common)** interfaces\n\n## Building\n\nRun `nx build ai-client-state` to build the library.\n\n## Running unit tests\n\nRun `nx test ai-client-state` to execute the unit tests via [Jest](https://jestjs.io).\n\n## Development\n\nThis package follows the workspace standards:\n- Event-driven architecture with proper cleanup\n- Comprehensive error handling and recovery\n- TypeScript strict mode with full type coverage\n- Zero UI framework dependencies for maximum compatibility\n","readmeFilename":"README.md"}