{"_id":"@biroai/agent-events-openclaw","_rev":"8-b3e196a6a2c637282d7814bd43a9092a","name":"@biroai/agent-events-openclaw","dist-tags":{"latest":"2026.513.0","canary":"2026.513.0-canary.1"},"versions":{"2026.512.0-canary.0":{"name":"@biroai/agent-events-openclaw","version":"2026.512.0-canary.0","license":"MIT","_id":"@biroai/agent-events-openclaw@2026.512.0-canary.0","maintainers":[{"name":"timreactor","email":"tim@reactorjet.com"}],"homepage":"https://github.com/Tim-ReJet/biro","bugs":{"url":"https://github.com/Tim-ReJet/biro/issues"},"dist":{"shasum":"ea6515d7fbfabc64d70e13299fb22db5706bc90c","tarball":"https://registry.npmjs.org/@biroai/agent-events-openclaw/-/agent-events-openclaw-2026.512.0-canary.0.tgz","fileCount":35,"integrity":"sha512-I97TzUGqWS1g3VCBryL3CfxyJW9x5daocbbIRw0qWB4FF4SrRgeN35PrQ8WQ+raB2GwTsDOhOCcBA5v9OhTBCg==","signatures":[{"sig":"MEUCIHid1QHk/XnMkgDevr25X7DfzPfA9xoJJ5yhMgg/KvF1AiEAjy3KAoyJehgbvfGcaTPcrGaF8CnW61mrkJuGdHqfwsM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":154420},"main":"./dist/index.js","type":"module","_from":"file:biroai-agent-events-openclaw-2026.512.0-canary.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"timreactor","email":"tim@reactorjet.com"},"_resolved":"/private/var/folders/tn/cfqsycsd5k99cmcdx2dbjq_h0000gn/T/7a18905ec7d03a846d1296859c7d1b0f/biroai-agent-events-openclaw-2026.512.0-canary.0.tgz","_integrity":"sha512-I97TzUGqWS1g3VCBryL3CfxyJW9x5daocbbIRw0qWB4FF4SrRgeN35PrQ8WQ+raB2GwTsDOhOCcBA5v9OhTBCg==","repository":{"url":"git+https://github.com/Tim-ReJet/biro.git","type":"git","directory":"packages/agent-events-openclaw"},"_npmVersion":"11.12.1","description":"**P1.4** from `ROADMAP-NEXT.md` — third runtime adapter for the universal Biro event bus.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^3.24.2","@biroai/agent-events":"2026.512.0-canary.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.5","typescript":"^5.7.3","@types/node":"^24.6.0"},"_npmOperationalInternal":{"tmp":"tmp/agent-events-openclaw_2026.512.0-canary.0_1778564631128_0.11822621825978663","host":"s3://npm-registry-packages-npm-production"}},"2026.512.0-canary.1":{"name":"@biroai/agent-events-openclaw","version":"2026.512.0-canary.1","license":"MIT","_id":"@biroai/agent-events-openclaw@2026.512.0-canary.1","maintainers":[{"name":"timreactor","email":"tim@reactorjet.com"}],"homepage":"https://github.com/Tim-ReJet/biro","bugs":{"url":"https://github.com/Tim-ReJet/biro/issues"},"dist":{"shasum":"1795f7bbde7275fbbdff19628d67a454de2184b0","tarball":"https://registry.npmjs.org/@biroai/agent-events-openclaw/-/agent-events-openclaw-2026.512.0-canary.1.tgz","fileCount":35,"integrity":"sha512-Cf6fvUl1lGUDYVqlSGLgzvov0Ade+Gsjlcm4nE9OOaaVPce6bY6MSlZjbRUNyC0dV5e+ISJgZF5Qa4tjrxV5BA==","signatures":[{"sig":"MEQCIFrcHMPUwFta+QC/9zpLsiMcXu0Rr0uEOARAZu5mX9g0AiBqb425BDNtJSswycqfO0mdB4ehD3pfmlH/8MIDyDdIZA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":154420},"main":"./dist/index.js","type":"module","_from":"file:biroai-agent-events-openclaw-2026.512.0-canary.1.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"timreactor","email":"tim@reactorjet.com"},"_resolved":"/private/var/folders/tn/cfqsycsd5k99cmcdx2dbjq_h0000gn/T/5c787eceb86a205e782953204b4afcc7/biroai-agent-events-openclaw-2026.512.0-canary.1.tgz","_integrity":"sha512-Cf6fvUl1lGUDYVqlSGLgzvov0Ade+Gsjlcm4nE9OOaaVPce6bY6MSlZjbRUNyC0dV5e+ISJgZF5Qa4tjrxV5BA==","repository":{"url":"git+https://github.com/Tim-ReJet/biro.git","type":"git","directory":"packages/agent-events-openclaw"},"_npmVersion":"11.12.1","description":"**P1.4** from `ROADMAP-NEXT.md` — third runtime adapter for the universal Biro event bus.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^3.24.2","@biroai/agent-events":"2026.512.0-canary.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^3.0.5","typescript":"^5.7.3","@types/node":"^24.6.0"},"_npmOperationalInternal":{"tmp":"tmp/agent-events-openclaw_2026.512.0-canary.1_1778593597554_0.7630189234370142","host":"s3://npm-registry-packages-npm-production"}},"2026.512.0-canary.2":{"name":"@biroai/agent-events-openclaw","version":"2026.512.0-canary.2","license":"MIT","_id":"@biroai/agent-events-openclaw@2026.512.0-canary.2","maintainers":[{"name":"timreactor","email":"tim@reactorjet.com"}],"homepage":"https://github.com/Tim-ReJet/biro","bugs":{"url":"https://github.com/Tim-ReJet/biro/issues"},"dist":{"shasum":"0378c2ea71f8098a5a4e8de2525029c0300b467c","tarball":"https://registry.npmjs.org/@biroai/agent-events-openclaw/-/agent-events-openclaw-2026.512.0-canary.2.tgz","fileCount":35,"integrity":"sha512-K1O5N+mTwf9e68dlePy9RKTIqLNxIBoTeC/ziPhDU/J59DW40l71e8WUi73xyX+qpuJ4zzqGd/Jd18NN7upiiQ==","signatures":[{"sig":"MEUCIQC+uzhLhRIxEdB4eUyeH3RFZb++lKPvoJ9nihDFI0biPAIgSqnRJNUvN0/B0CrerwAELHz60dLQYfpoZWGVN4hleb4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":154420},"main":"./dist/index.js","type":"module","_from":"file:biroai-agent-events-openclaw-2026.512.0-canary.2.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"timreactor","email":"tim@reactorjet.com"},"_resolved":"/private/var/folders/tn/cfqsycsd5k99cmcdx2dbjq_h0000gn/T/beacfd76df3113a84c8f94d615555ed5/biroai-agent-events-openclaw-2026.512.0-canary.2.tgz","_integrity":"sha512-K1O5N+mTwf9e68dlePy9RKTIqLNxIBoTeC/ziPhDU/J59DW40l71e8WUi73xyX+qpuJ4zzqGd/Jd18NN7upiiQ==","repository":{"url":"git+https://github.com/Tim-ReJet/biro.git","type":"git","directory":"packages/agent-events-openclaw"},"_npmVersion":"11.12.1","description":"**P1.4** from `ROADMAP-NEXT.md` — third runtime adapter for the universal Biro event bus.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^3.24.2","@biroai/agent-events":"2026.512.0-canary.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^3.0.5","typescript":"^5.7.3","@types/node":"^24.6.0"},"_npmOperationalInternal":{"tmp":"tmp/agent-events-openclaw_2026.512.0-canary.2_1778606091984_0.3535899952266939","host":"s3://npm-registry-packages-npm-production"}},"2026.512.0-canary.3":{"name":"@biroai/agent-events-openclaw","version":"2026.512.0-canary.3","license":"MIT","_id":"@biroai/agent-events-openclaw@2026.512.0-canary.3","maintainers":[{"name":"timreactor","email":"tim@reactorjet.com"}],"homepage":"https://github.com/Tim-ReJet/biro","bugs":{"url":"https://github.com/Tim-ReJet/biro/issues"},"dist":{"shasum":"c93d005ac74626cd5504625d9f6d536ed84c50e6","tarball":"https://registry.npmjs.org/@biroai/agent-events-openclaw/-/agent-events-openclaw-2026.512.0-canary.3.tgz","fileCount":35,"integrity":"sha512-HN8J+3foI99BVzhpOG1X+u2nxaCNw4H2cctUURAsyTAit4LRY6UbfZDotBWQ8m21p2EQEjUhfyDU28bZJgzeDw==","signatures":[{"sig":"MEYCIQDPZ8+JeZwxn7idcY0J5pdHYuaMvWT8+ARsxBnPsKCVVAIhAJMV9NUhJYGuUd0l/6VlKPoyMetbzMcxYGUwDzaFcE23","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":154420},"main":"./dist/index.js","type":"module","_from":"file:biroai-agent-events-openclaw-2026.512.0-canary.3.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"timreactor","email":"tim@reactorjet.com"},"_resolved":"/private/var/folders/tn/cfqsycsd5k99cmcdx2dbjq_h0000gn/T/6b8063c10749697f1077648ed01ed4c4/biroai-agent-events-openclaw-2026.512.0-canary.3.tgz","_integrity":"sha512-HN8J+3foI99BVzhpOG1X+u2nxaCNw4H2cctUURAsyTAit4LRY6UbfZDotBWQ8m21p2EQEjUhfyDU28bZJgzeDw==","repository":{"url":"git+https://github.com/Tim-ReJet/biro.git","type":"git","directory":"packages/agent-events-openclaw"},"_npmVersion":"11.12.1","description":"**P1.4** from `ROADMAP-NEXT.md` — third runtime adapter for the universal Biro event bus.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^3.24.2","@biroai/agent-events":"2026.512.0-canary.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^3.0.5","typescript":"^5.7.3","@types/node":"^24.6.0"},"_npmOperationalInternal":{"tmp":"tmp/agent-events-openclaw_2026.512.0-canary.3_1778607889355_0.059567746551363765","host":"s3://npm-registry-packages-npm-production"}},"2026.512.0-canary.4":{"name":"@biroai/agent-events-openclaw","version":"2026.512.0-canary.4","license":"MIT","_id":"@biroai/agent-events-openclaw@2026.512.0-canary.4","maintainers":[{"name":"timreactor","email":"tim@reactorjet.com"}],"homepage":"https://github.com/Tim-ReJet/biro","bugs":{"url":"https://github.com/Tim-ReJet/biro/issues"},"dist":{"shasum":"14a3e0ffa3b5b95da8cc20e8e9407842d013444b","tarball":"https://registry.npmjs.org/@biroai/agent-events-openclaw/-/agent-events-openclaw-2026.512.0-canary.4.tgz","fileCount":35,"integrity":"sha512-CSRacsZfUOxoDKyPYOz0+W7vUgTSbs0NxOJPtTtT4OZ5A2XbiAyfAX1dhwovIuxDZrV4utrjc1r6EPse02YDVA==","signatures":[{"sig":"MEYCIQDRF0YHQmVGgdTB4p61hO38JenCF8HouUcXYlEeTWodewIhAPNjxJ0hcVvdxkkggJ7JEiLzJYEwF6JpOA9ug+aO9TRk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":154420},"main":"./dist/index.js","type":"module","_from":"file:biroai-agent-events-openclaw-2026.512.0-canary.4.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"timreactor","email":"tim@reactorjet.com"},"_resolved":"/private/var/folders/tn/cfqsycsd5k99cmcdx2dbjq_h0000gn/T/0beb48f704be1b53c3a16007e35d027c/biroai-agent-events-openclaw-2026.512.0-canary.4.tgz","_integrity":"sha512-CSRacsZfUOxoDKyPYOz0+W7vUgTSbs0NxOJPtTtT4OZ5A2XbiAyfAX1dhwovIuxDZrV4utrjc1r6EPse02YDVA==","repository":{"url":"git+https://github.com/Tim-ReJet/biro.git","type":"git","directory":"packages/agent-events-openclaw"},"_npmVersion":"11.12.1","description":"**P1.4** from `ROADMAP-NEXT.md` — third runtime adapter for the universal Biro event bus.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^3.24.2","@biroai/agent-events":"2026.512.0-canary.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^3.0.5","typescript":"^5.7.3","@types/node":"^24.6.0"},"_npmOperationalInternal":{"tmp":"tmp/agent-events-openclaw_2026.512.0-canary.4_1778609868835_0.053186144463256424","host":"s3://npm-registry-packages-npm-production"}},"2026.513.0-canary.0":{"name":"@biroai/agent-events-openclaw","version":"2026.513.0-canary.0","license":"MIT","_id":"@biroai/agent-events-openclaw@2026.513.0-canary.0","maintainers":[{"name":"timreactor","email":"tim@reactorjet.com"}],"homepage":"https://github.com/Tim-ReJet/biro","bugs":{"url":"https://github.com/Tim-ReJet/biro/issues"},"dist":{"shasum":"18dc1fd6b9d3e11a0b8ae7e31517fc1187a2dc3e","tarball":"https://registry.npmjs.org/@biroai/agent-events-openclaw/-/agent-events-openclaw-2026.513.0-canary.0.tgz","fileCount":35,"integrity":"sha512-8/OwAg/pS6AeQ+sd41AGtJRI0xmGJAvCLxj/S2gs+eUYTmt8z9VNz3G8N33KPRB1Mv/S7UmKK1j8RA0PLA6uGg==","signatures":[{"sig":"MEUCIQDY7plq1Xx2OpqlOWigvGgfpUPwTvxJoJG06iWxg0worQIgYYeFn5cMQXdQEItBXObUvhJcSrZ2zOtmThkz2QsTZk0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":154420},"main":"./dist/index.js","type":"module","_from":"file:biroai-agent-events-openclaw-2026.513.0-canary.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"timreactor","email":"tim@reactorjet.com"},"_resolved":"/private/var/folders/tn/cfqsycsd5k99cmcdx2dbjq_h0000gn/T/e42f4ad3c8e28531f4f62a0ffc4d0a79/biroai-agent-events-openclaw-2026.513.0-canary.0.tgz","_integrity":"sha512-8/OwAg/pS6AeQ+sd41AGtJRI0xmGJAvCLxj/S2gs+eUYTmt8z9VNz3G8N33KPRB1Mv/S7UmKK1j8RA0PLA6uGg==","repository":{"url":"git+https://github.com/Tim-ReJet/biro.git","type":"git","directory":"packages/agent-events-openclaw"},"_npmVersion":"11.12.1","description":"**P1.4** from `ROADMAP-NEXT.md` — third runtime adapter for the universal Biro event bus.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^3.24.2","@biroai/agent-events":"2026.513.0-canary.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^3.0.5","typescript":"^5.7.3","@types/node":"^24.6.0"},"_npmOperationalInternal":{"tmp":"tmp/agent-events-openclaw_2026.513.0-canary.0_1778636337501_0.2155789466811302","host":"s3://npm-registry-packages-npm-production"}},"2026.513.0-canary.1":{"name":"@biroai/agent-events-openclaw","version":"2026.513.0-canary.1","license":"MIT","_id":"@biroai/agent-events-openclaw@2026.513.0-canary.1","maintainers":[{"name":"timreactor","email":"tim@reactorjet.com"}],"homepage":"https://github.com/Tim-ReJet/biro","bugs":{"url":"https://github.com/Tim-ReJet/biro/issues"},"dist":{"shasum":"1d5a1c16539aff7fc9649f3194508e05f339d26b","tarball":"https://registry.npmjs.org/@biroai/agent-events-openclaw/-/agent-events-openclaw-2026.513.0-canary.1.tgz","fileCount":35,"integrity":"sha512-0cwnIT0cFEstzglWbdeo5yzfCMLay24Q+1X6yDdm4z5HgfZ31vJLRzjLGEgXgJbhi+1yh0nPQLOnc0hYNttMog==","signatures":[{"sig":"MEQCIEClgyoU+HkFjomKuVHbr90kSchNQy8bLTBSMst93vrsAiBSdK9HVljsTpjqS8gZ6xoy4tcv6/d5EYEh/w/iONioUA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":154420},"main":"./dist/index.js","type":"module","_from":"file:biroai-agent-events-openclaw-2026.513.0-canary.1.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"timreactor","email":"tim@reactorjet.com"},"_resolved":"/private/var/folders/tn/cfqsycsd5k99cmcdx2dbjq_h0000gn/T/dbc05a3c5100bb970e8db833a4d31ca2/biroai-agent-events-openclaw-2026.513.0-canary.1.tgz","_integrity":"sha512-0cwnIT0cFEstzglWbdeo5yzfCMLay24Q+1X6yDdm4z5HgfZ31vJLRzjLGEgXgJbhi+1yh0nPQLOnc0hYNttMog==","repository":{"url":"git+https://github.com/Tim-ReJet/biro.git","type":"git","directory":"packages/agent-events-openclaw"},"_npmVersion":"11.12.1","description":"**P1.4** from `ROADMAP-NEXT.md` — third runtime adapter for the universal Biro event bus.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^3.24.2","@biroai/agent-events":"2026.513.0-canary.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^3.0.5","typescript":"^5.7.3","@types/node":"^24.6.0"},"_npmOperationalInternal":{"tmp":"tmp/agent-events-openclaw_2026.513.0-canary.1_1778657849633_0.8956679862700248","host":"s3://npm-registry-packages-npm-production"}},"2026.513.0":{"name":"@biroai/agent-events-openclaw","version":"2026.513.0","license":"MIT","homepage":"https://github.com/Tim-ReJet/biro","bugs":{"url":"https://github.com/Tim-ReJet/biro/issues"},"repository":{"type":"git","url":"git+https://github.com/Tim-ReJet/biro.git","directory":"packages/agent-events-openclaw"},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"publishConfig":{"access":"public"},"dependencies":{"@biroai/agent-events":"2026.513.0","zod":"^3.24.2"},"devDependencies":{"@types/node":"^24.6.0","typescript":"^5.7.3","vitest":"^3.0.5"},"scripts":{"build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit","test":"vitest run"},"main":"./dist/index.js","types":"./dist/index.d.ts","_id":"@biroai/agent-events-openclaw@2026.513.0","description":"**P1.4** from `ROADMAP-NEXT.md` — third runtime adapter for the universal Biro event bus.","_integrity":"sha512-GqHVbwa84MFnWpFcQ3kxMkG37PIg/wRLZRg3dRviaVSS45JAOI5XxawdUj4fA9BxvLO6q/JEUYElzDZqO+GvmA==","_resolved":"/private/var/folders/tn/cfqsycsd5k99cmcdx2dbjq_h0000gn/T/0c0323e149e1b505dd03696711039b09/biroai-agent-events-openclaw-2026.513.0.tgz","_from":"file:biroai-agent-events-openclaw-2026.513.0.tgz","_nodeVersion":"24.14.1","_npmVersion":"11.12.1","dist":{"integrity":"sha512-GqHVbwa84MFnWpFcQ3kxMkG37PIg/wRLZRg3dRviaVSS45JAOI5XxawdUj4fA9BxvLO6q/JEUYElzDZqO+GvmA==","shasum":"731043a72ea9c5086bfef2476ce069488c9872dd","tarball":"https://registry.npmjs.org/@biroai/agent-events-openclaw/-/agent-events-openclaw-2026.513.0.tgz","fileCount":35,"unpackedSize":154402,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQC9FGQOXngBCORePAmxsTgRnuu8GY0IlnMnHa5Zupdo/AIhAJLu4kuwG55lP2lp5ioxAxZSwV6EcmVyXqz6KVkuXKV6"}]},"_npmUser":{"name":"timreactor","email":"tim@reactorjet.com"},"directories":{},"maintainers":[{"name":"timreactor","email":"tim@reactorjet.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/agent-events-openclaw_2026.513.0_1778658569354_0.25823928294730125"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-12T05:43:50.992Z","modified":"2026-05-13T07:49:29.649Z","2026.512.0-canary.0":"2026-05-12T05:43:51.287Z","2026.512.0-canary.1":"2026-05-12T13:46:37.710Z","2026.512.0-canary.2":"2026-05-12T17:14:52.148Z","2026.512.0-canary.3":"2026-05-12T17:44:49.508Z","2026.512.0-canary.4":"2026-05-12T18:17:48.985Z","2026.513.0-canary.0":"2026-05-13T01:38:57.650Z","2026.513.0-canary.1":"2026-05-13T07:37:29.773Z","2026.513.0":"2026-05-13T07:49:29.511Z"},"bugs":{"url":"https://github.com/Tim-ReJet/biro/issues"},"license":"MIT","homepage":"https://github.com/Tim-ReJet/biro","repository":{"type":"git","url":"git+https://github.com/Tim-ReJet/biro.git","directory":"packages/agent-events-openclaw"},"description":"**P1.4** from `ROADMAP-NEXT.md` — third runtime adapter for the universal Biro event bus.","maintainers":[{"name":"timreactor","email":"tim@reactorjet.com"}],"readme":"# @biroai/agent-events-openclaw\n\n**P1.4** from `ROADMAP-NEXT.md` — third runtime adapter for the universal Biro event bus.\n\nTranslates [OpenClaw Gateway](https://openclaw.ai) hook payloads into normalized\n`BiroAgentEvent` objects from `@biroai/agent-events`.\n\n## Relationship to the Gateway adapter\n\n`@biroai/adapter-openclaw-gateway` *invokes* the Gateway over WebSocket and\nhandles connection auth, session routing, and result extraction.\n\nThis package is a **pure translator** — no HTTP server, no WebSocket client.\nIt sits in the delivery path *after* a webhook receiver parses `req.body`:\n\n```\nOpenClaw Gateway  →  HTTP POST  →  your server receiver\n                                        │\n                             parseOpenClawHookPayload()\n                                        │\n                             translateOpenClawEvent()\n                                        │\n                              BiroAgentEvent[]  →  event bus\n```\n\n## Hook payload assumptions\n\nThe canonical discriminator field is **`event`**, matching the\n`GatewayEventFrame` wire format observed in\n`packages/adapters/openclaw-gateway/src/server/execute.ts`:\n\n```ts\ntype GatewayEventFrame = { type: \"event\"; event: string; payload?: unknown }\n```\n\nAs a webhook subscriber, the outer envelope is typically unwrapped before\ndelivery, leaving just the inner object. `parseOpenClawHookPayload` also\ntolerates `type` and `eventType` as fallback discriminators and normalises\nthem to `event` before translation.\n\nSession identity is resolved from `sessionId → runId → generated UUID`.\n\n## Event mapping\n\n| OpenClaw hook event       | BiroAgentEvent type         | Notes |\n|---------------------------|-----------------------------|-------|\n| `session.started`         | `agent.session.started`     | `permissionMode` always `\"unknown\"`; `cwd` always `null` |\n| `session.ended`           | `agent.session.ended`       | `status` mapped via `END_REASON_MAP` |\n| `heartbeat.tick`          | *(dropped — returns `[]`)*  | Ticks fire on schedule, not on agent turns; emitting session.started per tick would produce misleading duplicates |\n| `tool.call.requested`     | `agent.tool.requested`      | |\n| `tool.call.completed`     | `agent.tool.completed`      | |\n| `subagent.spawned`        | `agent.subagent.spawned`    | |\n| `subagent.completed`      | `agent.subagent.completed`  | |\n| `channel.message.received`| *(dropped — returns `[]`)*  | Channels are P5; not part of the event bus yet |\n| *(unknown)*               | *(dropped — returns `[]`)*  | Forward-compatible with new hook types |\n\n**Compaction events** do not exist at the Gateway hook surface. Compaction is\ninternal to the underlying model session and is not surfaced as a hook.\nNo `agent.compacted` events are emitted by this translator.\n\n## Usage\n\n```ts\nimport { parseOpenClawHookPayload, translateOpenClawEvent, translateOpenClawBatch } from \"@biroai/agent-events-openclaw\";\n\n// Single payload (e.g. from Express req.body)\nconst raw = parseOpenClawHookPayload(req.body);\nif (raw) {\n  const events = translateOpenClawEvent(raw, {\n    companyId: \"co-123\",\n    agentId:   \"agent-456\",\n    issueId:   \"issue-789\",\n    generateEventId: () => crypto.randomUUID(),\n  });\n  // events is BiroAgentEvent[]\n}\n\n// Batch (buffered payloads)\nconst events = translateOpenClawBatch(payloads, ctx);\n```\n\n## Out of scope for P1.4\n\n- **`channel.message.received`** — channels live in P5.\n- **HTTP delivery / webhook receiving** — write your own Express/Fastify\n  route that calls into this translator.\n- **Compaction events** — not surfaced at the Gateway hook layer.\n- **File-based state** (`SOUL.md`, `MEMORY.md`, `cookies.md`) — OpenClaw's\n  internal source of truth; not part of the hook event surface.\n\n## Wire-format TODOs\n\nThe following are inferred from the existing adapter rather than official\npublic docs. Verify against live Gateway traces before relying on them in\nproduction:\n\n- Exact field names for token counts on `session.ended` (`totalTokens` vs\n  `tokenCount` vs nested `usage.total`).\n- Whether `heartbeat.tick` carries a `model` field.\n- Whether `subagent.spawned` uses `inheritsBudget` or a numeric `budget`\n  field.\n- The exact set of `status` values on `session.ended` beyond `success`,\n  `error`, `timeout`, `completed`.\n- Whether `tool.call.requested` nests the input under `toolInput` or `input`.\n","readmeFilename":"README.md"}