{"_id":"@biroai/agent-events-codex","_rev":"8-0b77b8cb89f5f79de3b95bc223bd8ba4","name":"@biroai/agent-events-codex","dist-tags":{"latest":"2026.513.0","canary":"2026.513.0-canary.1"},"versions":{"2026.512.0-canary.0":{"name":"@biroai/agent-events-codex","version":"2026.512.0-canary.0","license":"MIT","_id":"@biroai/agent-events-codex@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":"36cad90e028218ee1768602b217deac08b0b67db","tarball":"https://registry.npmjs.org/@biroai/agent-events-codex/-/agent-events-codex-2026.512.0-canary.0.tgz","fileCount":27,"integrity":"sha512-vGZytufkeIxqM91wLYu/nmOecHPMuEvUWsIdXExlLvsckLIPwKTZAev84Sz5EFY8OYQHYdZwnYATRwNNtKbpEA==","signatures":[{"sig":"MEYCIQCKIi9uBUE2TBwhXNNTloHpTAOi2lucGrmfjYnK0DBHZAIhAPGf4kOt8R/iyVChYhooj+RFrrrbOZ2gQs/leLmkXe2S","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":260693},"main":"./dist/index.js","type":"module","_from":"file:biroai-agent-events-codex-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/df0a7f68e83a903e32a275fd238d5257/biroai-agent-events-codex-2026.512.0-canary.0.tgz","_integrity":"sha512-vGZytufkeIxqM91wLYu/nmOecHPMuEvUWsIdXExlLvsckLIPwKTZAev84Sz5EFY8OYQHYdZwnYATRwNNtKbpEA==","repository":{"url":"git+https://github.com/Tim-ReJet/biro.git","type":"git","directory":"packages/agent-events-codex"},"_npmVersion":"11.12.1","description":"**P1.3** from `ROADMAP-NEXT.md` — the second runtime adapter for the Biro universal agent 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-codex_2026.512.0-canary.0_1778564628904_0.49350237122960094","host":"s3://npm-registry-packages-npm-production"}},"2026.512.0-canary.1":{"name":"@biroai/agent-events-codex","version":"2026.512.0-canary.1","license":"MIT","_id":"@biroai/agent-events-codex@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":"e110c8a723d8649d7ee96f678a858a5d10d82fd8","tarball":"https://registry.npmjs.org/@biroai/agent-events-codex/-/agent-events-codex-2026.512.0-canary.1.tgz","fileCount":27,"integrity":"sha512-Rd4CkV68ks6Zhw8Wumx+9iJ4rkz94zurpWbM+zPQB0IwEW+d4ll9SMmt3h8r7lGiEQHZiODJQ/+cGkz7S8Aa9w==","signatures":[{"sig":"MEQCIGnYWi2B5eNim7814G1ljMqm6cqAmgd7b0E5/mcZwR2AAiB+lTYgAMWNT6V90Z3QVaYMyebcqXxELIgBfmyItM3tfw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":260693},"main":"./dist/index.js","type":"module","_from":"file:biroai-agent-events-codex-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/3a7c9ae6ad8ec957618927c44d7c0b36/biroai-agent-events-codex-2026.512.0-canary.1.tgz","_integrity":"sha512-Rd4CkV68ks6Zhw8Wumx+9iJ4rkz94zurpWbM+zPQB0IwEW+d4ll9SMmt3h8r7lGiEQHZiODJQ/+cGkz7S8Aa9w==","repository":{"url":"git+https://github.com/Tim-ReJet/biro.git","type":"git","directory":"packages/agent-events-codex"},"_npmVersion":"11.12.1","description":"**P1.3** from `ROADMAP-NEXT.md` — the second runtime adapter for the Biro universal agent 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-codex_2026.512.0-canary.1_1778593594800_0.4053029377377082","host":"s3://npm-registry-packages-npm-production"}},"2026.512.0-canary.2":{"name":"@biroai/agent-events-codex","version":"2026.512.0-canary.2","license":"MIT","_id":"@biroai/agent-events-codex@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":"e8445891c6914450f5a081c1b6cade6bb450cc8f","tarball":"https://registry.npmjs.org/@biroai/agent-events-codex/-/agent-events-codex-2026.512.0-canary.2.tgz","fileCount":27,"integrity":"sha512-oxMwV2bgIf5qrWPKLXrG8ax0rokaMg/R0U3lF+rUYOXSWUew7Wt2oY3+LZ1ev3Z5w18ezv4PACEb+W3tdZVfSA==","signatures":[{"sig":"MEUCIQCtHIjecpm9WavYGUq/VBEWs14gsPV5S6yTTO+IamYbNAIgOlIGwmbbwPbg4wsLOrEVzzJoRhZzIXiSvFM9Eh3hy3Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":260693},"main":"./dist/index.js","type":"module","_from":"file:biroai-agent-events-codex-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/6fb606113dc47a99726a0a97768bd7ee/biroai-agent-events-codex-2026.512.0-canary.2.tgz","_integrity":"sha512-oxMwV2bgIf5qrWPKLXrG8ax0rokaMg/R0U3lF+rUYOXSWUew7Wt2oY3+LZ1ev3Z5w18ezv4PACEb+W3tdZVfSA==","repository":{"url":"git+https://github.com/Tim-ReJet/biro.git","type":"git","directory":"packages/agent-events-codex"},"_npmVersion":"11.12.1","description":"**P1.3** from `ROADMAP-NEXT.md` — the second runtime adapter for the Biro universal agent 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-codex_2026.512.0-canary.2_1778606090091_0.4041437350622903","host":"s3://npm-registry-packages-npm-production"}},"2026.512.0-canary.3":{"name":"@biroai/agent-events-codex","version":"2026.512.0-canary.3","license":"MIT","_id":"@biroai/agent-events-codex@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":"ce8d4b13453f3f7306400d2ce7681e97947f7884","tarball":"https://registry.npmjs.org/@biroai/agent-events-codex/-/agent-events-codex-2026.512.0-canary.3.tgz","fileCount":27,"integrity":"sha512-DJFFSxRlX3etxT8zWRPfBf4FXPfR5w9/R1RV2Yavg8zYbLYNgfuH/QPY0MBlMKhMOSv5N7SeaIGvhaxi1x/w3w==","signatures":[{"sig":"MEQCIGZkAEZrRW/sKHccSKG4LveJILaDVlAJCD0l8FIYUNK4AiAnIkB2qnGA93xHX3MArjbV0hKlUqfrTdN7p42wILJxNw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":260693},"main":"./dist/index.js","type":"module","_from":"file:biroai-agent-events-codex-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/95f6149c184bdd34485066af01b55dcb/biroai-agent-events-codex-2026.512.0-canary.3.tgz","_integrity":"sha512-DJFFSxRlX3etxT8zWRPfBf4FXPfR5w9/R1RV2Yavg8zYbLYNgfuH/QPY0MBlMKhMOSv5N7SeaIGvhaxi1x/w3w==","repository":{"url":"git+https://github.com/Tim-ReJet/biro.git","type":"git","directory":"packages/agent-events-codex"},"_npmVersion":"11.12.1","description":"**P1.3** from `ROADMAP-NEXT.md` — the second runtime adapter for the Biro universal agent 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-codex_2026.512.0-canary.3_1778607887085_0.07703388530532651","host":"s3://npm-registry-packages-npm-production"}},"2026.512.0-canary.4":{"name":"@biroai/agent-events-codex","version":"2026.512.0-canary.4","license":"MIT","_id":"@biroai/agent-events-codex@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":"3b79ef59f6b9bde3b9f294ec321df30145114528","tarball":"https://registry.npmjs.org/@biroai/agent-events-codex/-/agent-events-codex-2026.512.0-canary.4.tgz","fileCount":27,"integrity":"sha512-zrwET/v4/6NIaFNgSlqlQo7ExEDeOZ6Zdizcpw11kbKjbNTA6zY8x+qRksNNLFYEOmiE6Eudyrb1CNVw5NLIzw==","signatures":[{"sig":"MEUCIQC+Tb0YOygaX7rcMURuE/emtPq7x4EkjZS6R+8Y7iuMAgIgFd3FoDCohrgHWoQdIfDj/xu78ox+dzJPSgz8LdJIHu0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":260693},"main":"./dist/index.js","type":"module","_from":"file:biroai-agent-events-codex-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/d20f5c1b174db286f76f9ac623b6ea0c/biroai-agent-events-codex-2026.512.0-canary.4.tgz","_integrity":"sha512-zrwET/v4/6NIaFNgSlqlQo7ExEDeOZ6Zdizcpw11kbKjbNTA6zY8x+qRksNNLFYEOmiE6Eudyrb1CNVw5NLIzw==","repository":{"url":"git+https://github.com/Tim-ReJet/biro.git","type":"git","directory":"packages/agent-events-codex"},"_npmVersion":"11.12.1","description":"**P1.3** from `ROADMAP-NEXT.md` — the second runtime adapter for the Biro universal agent 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-codex_2026.512.0-canary.4_1778609866640_0.9233093428991304","host":"s3://npm-registry-packages-npm-production"}},"2026.513.0-canary.0":{"name":"@biroai/agent-events-codex","version":"2026.513.0-canary.0","license":"MIT","_id":"@biroai/agent-events-codex@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":"23706e1e378323dc799479355fd5d0bb5f400047","tarball":"https://registry.npmjs.org/@biroai/agent-events-codex/-/agent-events-codex-2026.513.0-canary.0.tgz","fileCount":27,"integrity":"sha512-+h9fxkh8J/GdlFxmjp1cPgqYHzqpBq9wJ8wrl+uJr4OAsFC4s2DtdOW0kwmThUZ+9bu3ExC2QvANRELuOYv26w==","signatures":[{"sig":"MEUCIQD1/lmqw+UtK86C1ZziAx6NjUMJqzfIDFvNmtI8EE1BdwIgP6t0HRfS7jdyRz29f7YJvfStTvQHsh1m8PdOznmUz14=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":260693},"main":"./dist/index.js","type":"module","_from":"file:biroai-agent-events-codex-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/f5afd4690d23df9893efd108918e1c3e/biroai-agent-events-codex-2026.513.0-canary.0.tgz","_integrity":"sha512-+h9fxkh8J/GdlFxmjp1cPgqYHzqpBq9wJ8wrl+uJr4OAsFC4s2DtdOW0kwmThUZ+9bu3ExC2QvANRELuOYv26w==","repository":{"url":"git+https://github.com/Tim-ReJet/biro.git","type":"git","directory":"packages/agent-events-codex"},"_npmVersion":"11.12.1","description":"**P1.3** from `ROADMAP-NEXT.md` — the second runtime adapter for the Biro universal agent 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-codex_2026.513.0-canary.0_1778636334929_0.695795492069262","host":"s3://npm-registry-packages-npm-production"}},"2026.513.0-canary.1":{"name":"@biroai/agent-events-codex","version":"2026.513.0-canary.1","license":"MIT","_id":"@biroai/agent-events-codex@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":"e452586621740bae009634133b6f2db0be939d28","tarball":"https://registry.npmjs.org/@biroai/agent-events-codex/-/agent-events-codex-2026.513.0-canary.1.tgz","fileCount":27,"integrity":"sha512-zjDWBhjHPPgHu+Zm5m/PRbI/2Nzya5Ip/JhcbxnGfeGCCTZsho4zegn6+06aApLAwsHE12q84ebjTtYntKBjNw==","signatures":[{"sig":"MEUCIDh2zCyADrmLECP0igWggzIB2t56RqcmIxECib1I+zx4AiEA4DOx7f9ygPfzDOoh7l3gyORLfe3UX/CNs451xzuVcI4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":260693},"main":"./dist/index.js","type":"module","_from":"file:biroai-agent-events-codex-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/1b2c14bd92fbe37063db38b0f1e97b0c/biroai-agent-events-codex-2026.513.0-canary.1.tgz","_integrity":"sha512-zjDWBhjHPPgHu+Zm5m/PRbI/2Nzya5Ip/JhcbxnGfeGCCTZsho4zegn6+06aApLAwsHE12q84ebjTtYntKBjNw==","repository":{"url":"git+https://github.com/Tim-ReJet/biro.git","type":"git","directory":"packages/agent-events-codex"},"_npmVersion":"11.12.1","description":"**P1.3** from `ROADMAP-NEXT.md` — the second runtime adapter for the Biro universal agent 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-codex_2026.513.0-canary.1_1778657847141_0.21108128953989258","host":"s3://npm-registry-packages-npm-production"}},"2026.513.0":{"name":"@biroai/agent-events-codex","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-codex"},"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-codex@2026.513.0","description":"**P1.3** from `ROADMAP-NEXT.md` — the second runtime adapter for the Biro universal agent event bus.","_integrity":"sha512-NUk8MucpEQwS+DZB68ax5YWpSF2Bt5q1oBUOAN67C6MPTazM4fxVFbt4JgJz8MQDZpAL+xnMtTqTP/r8FE7JKg==","_resolved":"/private/var/folders/tn/cfqsycsd5k99cmcdx2dbjq_h0000gn/T/478b4e2e14bac139f95f049cf91a1367/biroai-agent-events-codex-2026.513.0.tgz","_from":"file:biroai-agent-events-codex-2026.513.0.tgz","_nodeVersion":"24.14.1","_npmVersion":"11.12.1","dist":{"integrity":"sha512-NUk8MucpEQwS+DZB68ax5YWpSF2Bt5q1oBUOAN67C6MPTazM4fxVFbt4JgJz8MQDZpAL+xnMtTqTP/r8FE7JKg==","shasum":"6dfdc5e67039b72de65c532e5a0463063e30a238","tarball":"https://registry.npmjs.org/@biroai/agent-events-codex/-/agent-events-codex-2026.513.0.tgz","fileCount":27,"unpackedSize":260675,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIElYWj5zisAaNoV/rJbzM8y9XxzeUoqGWztFuZehKUJqAiAMG/hzU9K6oOqpSmNFqVWvwWu48jtp7Xt9cPTRn62ZLw=="}]},"_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-codex_2026.513.0_1778658566826_0.3985453278086566"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-12T05:43:48.812Z","modified":"2026-05-13T07:49:27.076Z","2026.512.0-canary.0":"2026-05-12T05:43:49.039Z","2026.512.0-canary.1":"2026-05-12T13:46:35.019Z","2026.512.0-canary.2":"2026-05-12T17:14:50.264Z","2026.512.0-canary.3":"2026-05-12T17:44:47.258Z","2026.512.0-canary.4":"2026-05-12T18:17:46.783Z","2026.513.0-canary.0":"2026-05-13T01:38:55.058Z","2026.513.0-canary.1":"2026-05-13T07:37:27.301Z","2026.513.0":"2026-05-13T07:49:26.963Z"},"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-codex"},"description":"**P1.3** from `ROADMAP-NEXT.md` — the second runtime adapter for the Biro universal agent event bus.","maintainers":[{"name":"timreactor","email":"tim@reactorjet.com"}],"readme":"# @biroai/agent-events-codex\n\n**P1.3** from `ROADMAP-NEXT.md` — the second runtime adapter for the Biro universal agent event bus.\n\nParses Codex CLI `exec --json` NDJSON events and emits normalized `BiroAgentEvent`\nobjects from `@biroai/agent-events`. Pure: no I/O, no subprocess management,\nno OpenAI SDK runtime dependency — input is an event object or async line stream,\noutput is validated schema events.\n\n## Usage\n\n### Per-line (sync)\n\n```ts\nimport { parseCodexStreamLine, translateCodexEvent } from \"@biroai/agent-events-codex\";\nimport { randomUUID } from \"node:crypto\";\n\nconst sessionState = { threadId: \"unknown-session\", model: \"unknown\", turnNumber: 0 };\nconst ctx = {\n  companyId: \"co-abc\",\n  agentId: \"agent-xyz\",\n  issueId: null,\n  generateEventId: () => randomUUID(),\n  inFlightTools: new Map(), // reuse across lines for durationMs tracking\n  sessionState,             // reuse across lines for thread_id and turn counting\n};\n\nfor (const line of rawLines) {\n  const raw = parseCodexStreamLine(line);\n  if (!raw) continue;\n  const events = translateCodexEvent(raw, ctx);\n  for (const ev of events) {\n    console.log(ev.type, ev.eventId);\n  }\n}\n```\n\n### Async streaming\n\n```ts\nimport { translateCodexStream } from \"@biroai/agent-events-codex\";\nimport { createInterface } from \"node:readline\";\nimport { randomUUID } from \"node:crypto\";\n\nasync function processStream(readable: NodeJS.ReadableStream) {\n  const rl = createInterface({ input: readable, crlfDelay: Infinity });\n  const ctx = {\n    companyId: \"co-abc\",\n    agentId: \"agent-xyz\",\n    issueId: null,\n    generateEventId: () => randomUUID(),\n  };\n  // translateCodexStream auto-creates inFlightTools and sessionState\n  for await (const ev of translateCodexStream(rl, ctx)) {\n    await persistEvent(ev);\n  }\n}\n```\n\n## Event type coverage\n\n| Raw Codex event | Item type | Emitted BiroAgentEvent(s) |\n|---|---|---|\n| `thread.started` | — | `agent.session.started` |\n| `item.started` | `command_execution` | `agent.tool.requested` |\n| `item.started` | `file_change` | `agent.tool.requested` |\n| `item.started` | `tool_use` | `agent.tool.requested` |\n| `item.completed` | `command_execution` | `agent.tool.completed` (+ `agent.tool.requested` if no prior `item.started`) |\n| `item.completed` | `file_change` | `agent.tool.completed` (+ `agent.tool.requested` if no prior `item.started`) |\n| `item.completed` | `tool_use` | `agent.tool.completed` |\n| `item.completed` | `tool_result` | `agent.tool.completed` |\n| `item.completed` | `agent_message` | _(stored as pending summary for next `turn.completed`)_ |\n| `turn.completed` | — | `agent.turn.completed` + `agent.session.ended` |\n| `turn.failed` | — | `agent.turn.completed` + `agent.session.ended` (endReason=error) |\n| `turn.started`, `error`, unknown | — | _(empty — dropped silently)_ |\n| `item.completed` | `reasoning`, `error`, unknown | _(empty — dropped silently)_ |\n\n### `permissionMode` mapping\n\nCodex does not surface a permission mode in the event stream. The\n`--dangerously-bypass-approvals-and-sandbox` flag affects runtime behavior\nbut is not reflected in `thread.started`. All Codex sessions emit\n`permissionMode: \"unknown\"`.\n\n### `endReason` mapping\n\n| `turn.completed` subtype | `is_error` | `endReason` |\n|---|---|---|\n| `success` | false | `completion` |\n| `error_max_turns` | any | `budget_exhausted` |\n| `error_during_execution` | any | `error` |\n| `error` | any | `error` |\n| `timeout` | any | `timeout` |\n| absent or unknown | true | `error` |\n| absent or unknown | false | `other` |\n\n## Not emitted\n\n- **`agent.subagent.spawned` / `agent.subagent.completed`** — Codex has no sub-agent\n  primitive. These events will never be emitted by this translator.\n- **`agent.compacted`** — Codex has no in-stream compaction event as of 2026-05.\n\n## Wire-format TODOs\n\nThe Codex CLI `--json` flag is **experimental**. The schema here is inferred from\nfirst-party adapter code in this monorepo (`packages/adapters/codex-local/`) and\ndirect observation as of 2026-05.\n\n- **`thread.started` has no `cwd` or `permission_mode` field.** Both are always\n  `null` / `\"unknown\"` in emitted events.\n- **Reasoning tokens** appear as `item.completed` with `type: \"reasoning\"` and\n  are dropped silently. They are not counted separately in `outputTokens` because\n  the usage totals on `turn.completed` already include them.\n- **`turn.completed` vs `result` event**: unlike Claude's separate `result` event,\n  Codex uses `turn.completed` as both turn-end and session-end. This translator\n  emits both `agent.turn.completed` and `agent.session.ended` from a single\n  `turn.completed` line.\n- **Cache write tokens**: Codex does not emit `cache_creation_input_tokens`.\n  `cacheWriteTokens` is always `0`.\n- Field names and subtypes should be re-verified on each Codex CLI major version bump.\n\n## Schema pointer\n\nSchema types and Zod validators: [`@biroai/agent-events`](../agent-events/README.md)\n","readmeFilename":"README.md"}