{"_id":"@autonome-research/thread-phase-agents","_rev":"14-101cdb533ae6ea404b9bfbd26eda3367","name":"@autonome-research/thread-phase-agents","dist-tags":{"latest":"6.1.0"},"versions":{"3.0.0":{"name":"@autonome-research/thread-phase-agents","version":"3.0.0","license":"MIT","_id":"@autonome-research/thread-phase-agents@3.0.0","maintainers":[{"name":"velmoon222","email":"velvetmoon222999@gmail.com"}],"homepage":"https://github.com/Code4me2/thread-phase#readme","bugs":{"url":"https://github.com/Code4me2/thread-phase/issues"},"dist":{"shasum":"98a6480ff20f3a4d5fc875cf80a86b466e87ff64","tarball":"https://registry.npmjs.org/@autonome-research/thread-phase-agents/-/thread-phase-agents-3.0.0.tgz","fileCount":79,"integrity":"sha512-ozZLis6c7FPGdH7VeFzDSgVMPIU1zmD/EkVcGNcpYlHh4jCnuGAYpYOAwAGf0K7p/fy58uvvaq2jLoDPYqXevg==","signatures":[{"sig":"MEQCIG0oQane1qsqA0GdqZiPy1qqrFHWGNGCCCclDAP6X9MOAiAnpSFO5qWXKVoBgvs3t4JEMWn6LXNSqyJuKmM6QgT0rw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":258994},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":"./dist/index.js"},"gitHead":"55bf33e4d720ed71f02c8aee3bce99e76a7949d7","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"velmoon222","email":"velvetmoon222999@gmail.com"},"repository":{"url":"git+https://github.com/Code4me2/thread-phase.git","type":"git","directory":"packages/thread-phase-agents"},"_npmVersion":"11.12.1","description":"Agent adapters for thread-phase — wraps hermes, openclaw, anthropic, codex, claude-code, pi behind a uniform AgentAdapter protocol.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"openai":"^6.38.0","@anthropic-ai/sdk":"^0.96.0","@mariozechner/pi-coding-agent":"^0.73.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^2.1.0","typescript":"^5.6.0","@types/node":"^22.0.0","@autonome-research/thread-phase":"*"},"peerDependencies":{"@autonome-research/thread-phase":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/thread-phase-agents_3.0.0_1779322004508_0.692548316661302","host":"s3://npm-registry-packages-npm-production"}},"3.0.1":{"name":"@autonome-research/thread-phase-agents","version":"3.0.1","license":"MIT","_id":"@autonome-research/thread-phase-agents@3.0.1","maintainers":[{"name":"velmoon222","email":"velvetmoon222999@gmail.com"}],"homepage":"https://github.com/autonome-research/thread-phase#readme","bugs":{"url":"https://github.com/autonome-research/thread-phase/issues"},"dist":{"shasum":"b84405b55b6b146c34292812c5d7964e7aa569d5","tarball":"https://registry.npmjs.org/@autonome-research/thread-phase-agents/-/thread-phase-agents-3.0.1.tgz","fileCount":79,"integrity":"sha512-3kcqD/hB+QJtvNeMKOJRHhYsJ2FyzyKrS5J+CSiATWUbi8vMRytgld23QZKHqbg0OY/EtV1PsRcyF4lGzrKgwA==","signatures":[{"sig":"MEQCIBimZEwL1oxgX0Ji03Oyz/LLVe5NydwUMV8dmN0zrOGnAiAIP2wwTgHhTb9X8tULJmZh+Q8uT0x7PR9dpwX7ykMXUw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":260703},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":"./dist/index.js"},"gitHead":"f44aa41626bdb554c1629f72b318686091f8cbf5","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"velmoon222","email":"velvetmoon222999@gmail.com"},"repository":{"url":"git+https://github.com/autonome-research/thread-phase.git","type":"git","directory":"packages/thread-phase-agents"},"_npmVersion":"11.12.1","description":"Agent adapters for thread-phase — wraps hermes, openclaw, anthropic, codex, claude-code, pi behind a uniform AgentAdapter protocol. Agent SDKs are optional peer deps; install only what you use.","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","openai":"^6.38.0","vitest":"^2.1.0","typescript":"^5.6.0","@types/node":"^22.0.0","@anthropic-ai/sdk":"^0.96.0","@mariozechner/pi-coding-agent":"^0.73.1","@autonome-research/thread-phase":"*"},"peerDependencies":{"openai":"^6.38.0","@anthropic-ai/sdk":"^0.96.0","@mariozechner/pi-coding-agent":"^0.73.1","@autonome-research/thread-phase":"^3.0.1"},"peerDependenciesMeta":{"openai":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"@mariozechner/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/thread-phase-agents_3.0.1_1779328150933_0.914457883519471","host":"s3://npm-registry-packages-npm-production"}},"3.0.2":{"name":"@autonome-research/thread-phase-agents","version":"3.0.2","license":"MIT","_id":"@autonome-research/thread-phase-agents@3.0.2","maintainers":[{"name":"velmoon222","email":"velvetmoon222999@gmail.com"}],"homepage":"https://github.com/autonome-research/thread-phase#readme","bugs":{"url":"https://github.com/autonome-research/thread-phase/issues"},"dist":{"shasum":"96b09efef86e454a6ca54f42c82dd785d6fc3de0","tarball":"https://registry.npmjs.org/@autonome-research/thread-phase-agents/-/thread-phase-agents-3.0.2.tgz","fileCount":79,"integrity":"sha512-/+DatqKhkFU0UzuCwPjdCQ7cAFYU57c1TxAQCDMICexuFhN0hdiKvShFRs/T2nY6ejLvGmzX6s9BnodaNUTaJg==","signatures":[{"sig":"MEUCIQDJvyU3FII8FscmvWZaiz4NYhS1SFgGF9XS94dXPjuHiAIgAKyvSVv0RDH2zuphPHx5/XIuj8Cw4IEetjfkd/FZ56k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":260703},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":"./dist/index.js"},"gitHead":"e57418e284ca8c9bec7034e0960bf9e6aae8b475","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"velmoon222","email":"velvetmoon222999@gmail.com"},"repository":{"url":"git+https://github.com/autonome-research/thread-phase.git","type":"git","directory":"packages/thread-phase-agents"},"_npmVersion":"11.12.1","description":"Agent adapters for thread-phase — wraps hermes, openclaw, anthropic, codex, claude-code, pi behind a uniform AgentAdapter protocol. Agent SDKs are optional peer deps; install only what you use.","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","openai":"^6.38.0","vitest":"^2.1.0","typescript":"^5.6.0","@types/node":"^22.0.0","@anthropic-ai/sdk":"^0.96.0","@mariozechner/pi-coding-agent":"^0.73.1","@autonome-research/thread-phase":"*"},"peerDependencies":{"openai":"^6.38.0","@anthropic-ai/sdk":"^0.96.0","@mariozechner/pi-coding-agent":"^0.73.1","@autonome-research/thread-phase":"^3.0.2"},"peerDependenciesMeta":{"openai":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"@mariozechner/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/thread-phase-agents_3.0.2_1779329991045_0.19169275729526913","host":"s3://npm-registry-packages-npm-production"}},"3.1.0":{"name":"@autonome-research/thread-phase-agents","version":"3.1.0","license":"MIT","_id":"@autonome-research/thread-phase-agents@3.1.0","maintainers":[{"name":"velmoon222","email":"velvetmoon222999@gmail.com"}],"homepage":"https://github.com/autonome-research/thread-phase#readme","bugs":{"url":"https://github.com/autonome-research/thread-phase/issues"},"dist":{"shasum":"0d55e61e9c8d6694958cbe35113dc29b7f0664ae","tarball":"https://registry.npmjs.org/@autonome-research/thread-phase-agents/-/thread-phase-agents-3.1.0.tgz","fileCount":79,"integrity":"sha512-H7qJTXeelFvm5EOP/YPfU1DEXA3sDcq2xUG+8AP+YcK0lmzEaAZ/YZm3nAj5Gq3J9kZ60HUDKdb5bLv6dFJDIw==","signatures":[{"sig":"MEUCIBVc/K/w3Hw2UpI6eNiuRc7gu5Zo7hxa7BAsfXVQeR1xAiEA/+HOoJL7hWEDSR0qGgIm7418EeQjQ3TTntq3NjzQ8Eo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":263176},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":"./dist/index.js"},"gitHead":"a608a5f814d3b2f4d96e6da1bf8404851a72503a","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"velmoon222","email":"velvetmoon222999@gmail.com"},"repository":{"url":"git+https://github.com/autonome-research/thread-phase.git","type":"git","directory":"packages/thread-phase-agents"},"_npmVersion":"11.12.1","description":"Agent adapters for thread-phase — wraps hermes, openclaw, anthropic, codex, claude-code, pi behind a uniform AgentAdapter protocol. Agent SDKs are optional peer deps; install only what you use.","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","openai":"^6.38.0","vitest":"^2.1.0","typescript":"^5.6.0","@types/node":"^22.0.0","@anthropic-ai/sdk":"^0.96.0","@mariozechner/pi-coding-agent":"^0.73.1","@autonome-research/thread-phase":"*"},"peerDependencies":{"openai":"^6.38.0","@anthropic-ai/sdk":"^0.96.0","@mariozechner/pi-coding-agent":"^0.73.1","@autonome-research/thread-phase":"^3.1.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"@mariozechner/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/thread-phase-agents_3.1.0_1779395709989_0.4409346100158984","host":"s3://npm-registry-packages-npm-production"}},"3.2.0":{"name":"@autonome-research/thread-phase-agents","version":"3.2.0","license":"MIT","_id":"@autonome-research/thread-phase-agents@3.2.0","maintainers":[{"name":"velmoon222","email":"velvetmoon222999@gmail.com"}],"homepage":"https://github.com/autonome-research/thread-phase#readme","bugs":{"url":"https://github.com/autonome-research/thread-phase/issues"},"dist":{"shasum":"10f5c3ab682d7fd139f0b8170e65043c2258967d","tarball":"https://registry.npmjs.org/@autonome-research/thread-phase-agents/-/thread-phase-agents-3.2.0.tgz","fileCount":79,"integrity":"sha512-9AkbWY6ISRbSNPC6tfEA8uZyv6meueeDU5FnkiPodNJU6n2Rf9ez5MZhOZNB8jayO2SNC110iMnEp29rSCh9EQ==","signatures":[{"sig":"MEUCIQCCtfwU4vUfu0s1RF38Gtgz9XZL1UOeH+tIzXenCFXl8QIgLzpm+WLf7RBGvg+AKWPMR3wsnf4RXHN8OrAK1D4cePs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":263176},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":"./dist/index.js"},"gitHead":"08e7ff5a9c01ebbe1b29ae787f0d49a36bc6f221","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"velmoon222","email":"velvetmoon222999@gmail.com"},"repository":{"url":"git+https://github.com/autonome-research/thread-phase.git","type":"git","directory":"packages/thread-phase-agents"},"_npmVersion":"11.12.1","description":"Agent adapters for thread-phase — wraps hermes, openclaw, anthropic, codex, claude-code, pi behind a uniform AgentAdapter protocol. Agent SDKs are optional peer deps; install only what you use.","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","openai":"^6.38.0","vitest":"^2.1.0","typescript":"^5.6.0","@types/node":"^22.0.0","@anthropic-ai/sdk":"^0.96.0","@mariozechner/pi-coding-agent":"^0.73.1","@autonome-research/thread-phase":"*"},"peerDependencies":{"openai":"^6.38.0","@anthropic-ai/sdk":"^0.96.0","@mariozechner/pi-coding-agent":"^0.73.1","@autonome-research/thread-phase":"^3.2.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"@mariozechner/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/thread-phase-agents_3.2.0_1779398813781_0.09518424780790191","host":"s3://npm-registry-packages-npm-production"}},"3.2.1":{"name":"@autonome-research/thread-phase-agents","version":"3.2.1","license":"MIT","_id":"@autonome-research/thread-phase-agents@3.2.1","maintainers":[{"name":"velmoon222","email":"velvetmoon222999@gmail.com"}],"homepage":"https://github.com/autonome-research/thread-phase#readme","bugs":{"url":"https://github.com/autonome-research/thread-phase/issues"},"dist":{"shasum":"852654a691c4423ceadad461b7f605692d6f64a6","tarball":"https://registry.npmjs.org/@autonome-research/thread-phase-agents/-/thread-phase-agents-3.2.1.tgz","fileCount":79,"integrity":"sha512-qKVvKl6sHI82TlX2aUafxFQK5T7j7JpPg3bFjUHR5jTYWhvDIJPUnvhKl4NS6wgN+IHDxMS8FJZmeHF8e+lVWw==","signatures":[{"sig":"MEUCIFHwqScbMwIYDIIkaJFhLdsJ43nL486gN6t4URrlt/viAiEAq4KMgl/EOxU+0oGQIZFyA4616kDAf+RIWfhxuTz7uMU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":263176},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":"./dist/index.js"},"gitHead":"ffa1d39ca2b0df57e5affddc9fb2a7380b679279","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"velmoon222","email":"velvetmoon222999@gmail.com"},"repository":{"url":"git+https://github.com/autonome-research/thread-phase.git","type":"git","directory":"packages/thread-phase-agents"},"_npmVersion":"11.12.1","description":"Agent adapters for thread-phase — wraps hermes, openclaw, anthropic, codex, claude-code, pi behind a uniform AgentAdapter protocol. Agent SDKs are optional peer deps; install only what you use.","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","openai":"^6.38.0","vitest":"^2.1.0","typescript":"^5.6.0","@types/node":"^22.0.0","@anthropic-ai/sdk":"^0.96.0","@mariozechner/pi-coding-agent":"^0.73.1","@autonome-research/thread-phase":"*"},"peerDependencies":{"openai":"^6.38.0","@anthropic-ai/sdk":"^0.96.0","@mariozechner/pi-coding-agent":"^0.73.1","@autonome-research/thread-phase":"^3.2.1"},"peerDependenciesMeta":{"openai":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"@mariozechner/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/thread-phase-agents_3.2.1_1779399820347_0.3052438086713902","host":"s3://npm-registry-packages-npm-production"}},"3.2.2":{"name":"@autonome-research/thread-phase-agents","version":"3.2.2","license":"MIT","_id":"@autonome-research/thread-phase-agents@3.2.2","maintainers":[{"name":"velmoon222","email":"velvetmoon222999@gmail.com"}],"homepage":"https://github.com/autonome-research/thread-phase#readme","bugs":{"url":"https://github.com/autonome-research/thread-phase/issues"},"dist":{"shasum":"b9d6b8f4da21fdf7ae2b14c206a5212fe9ef6d2c","tarball":"https://registry.npmjs.org/@autonome-research/thread-phase-agents/-/thread-phase-agents-3.2.2.tgz","fileCount":79,"integrity":"sha512-kOlEl0KjmTII1mPnfJebiwHeSIzawyK+PuV23B2+C4S0M6zphmXi6pVsRXyitN1jgJN+F3X25zoc0x0Ey+oDRQ==","signatures":[{"sig":"MEUCIGaWPOjt2r3m8GJ0R8OZ4TQ63P2BR8JaHZOTsG0fKrxiAiEAs44MMg42D8CjfH1ElKr91zOBcp2UzP1oTNRjusYUTz4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":263176},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":"./dist/index.js"},"gitHead":"f2f8dd19ce2547afa380cccc3d84c1d890ac3589","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"velmoon222","email":"velvetmoon222999@gmail.com"},"repository":{"url":"git+https://github.com/autonome-research/thread-phase.git","type":"git","directory":"packages/thread-phase-agents"},"_npmVersion":"11.12.1","description":"Agent adapters for thread-phase — wraps hermes, openclaw, anthropic, codex, claude-code, pi behind a uniform AgentAdapter protocol. Agent SDKs are optional peer deps; install only what you use.","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","openai":"^6.38.0","vitest":"^2.1.0","typescript":"^5.6.0","@types/node":"^22.0.0","@anthropic-ai/sdk":"^0.96.0","@mariozechner/pi-coding-agent":"^0.73.1","@autonome-research/thread-phase":"*"},"peerDependencies":{"openai":"^6.38.0","@anthropic-ai/sdk":"^0.96.0","@mariozechner/pi-coding-agent":"^0.73.1","@autonome-research/thread-phase":"^3.2.2"},"peerDependenciesMeta":{"openai":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"@mariozechner/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/thread-phase-agents_3.2.2_1779400723359_0.7449293151577772","host":"s3://npm-registry-packages-npm-production"}},"3.3.0":{"name":"@autonome-research/thread-phase-agents","version":"3.3.0","license":"MIT","_id":"@autonome-research/thread-phase-agents@3.3.0","maintainers":[{"name":"velmoon222","email":"velvetmoon222999@gmail.com"}],"homepage":"https://github.com/autonome-research/thread-phase#readme","bugs":{"url":"https://github.com/autonome-research/thread-phase/issues"},"dist":{"shasum":"2edb78e44949fe79a9eecb16c26b03310cebb6ad","tarball":"https://registry.npmjs.org/@autonome-research/thread-phase-agents/-/thread-phase-agents-3.3.0.tgz","fileCount":79,"integrity":"sha512-2dbXwhUAT2w2eVKicAQJ3WDLif95SJdN7auGG5Qz6lbyDjRrY5tyYq6V1OUFgiKkG86Iqv50h4E/hFNo+8WQgA==","signatures":[{"sig":"MEUCIHE8l3pmXLgsPAcrY9NNk3dKWMNhUauS7qlHQhN5qFUAAiEA+TwQXZJYaQYSW1tB2/50uscnQEFUAusyHtUKcGOO7qs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":263176},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":"./dist/index.js"},"gitHead":"9834be282f923fa22e72fc55eb0aa19dc2322436","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"velmoon222","email":"velvetmoon222999@gmail.com"},"repository":{"url":"git+https://github.com/autonome-research/thread-phase.git","type":"git","directory":"packages/thread-phase-agents"},"_npmVersion":"11.12.1","description":"Agent adapters for thread-phase — wraps hermes, openclaw, anthropic, codex, claude-code, pi behind a uniform AgentAdapter protocol. Agent SDKs are optional peer deps; install only what you use.","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","openai":"^6.38.0","vitest":"^2.1.0","typescript":"^5.6.0","@types/node":"^22.0.0","@anthropic-ai/sdk":"^0.96.0","@mariozechner/pi-coding-agent":"^0.73.1","@autonome-research/thread-phase":"*"},"peerDependencies":{"openai":"^6.38.0","@anthropic-ai/sdk":"^0.96.0","@mariozechner/pi-coding-agent":"^0.73.1","@autonome-research/thread-phase":"^3.3.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"@mariozechner/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/thread-phase-agents_3.3.0_1780212783767_0.8328440993558448","host":"s3://npm-registry-packages-npm-production"}},"3.4.0":{"name":"@autonome-research/thread-phase-agents","version":"3.4.0","license":"MIT","_id":"@autonome-research/thread-phase-agents@3.4.0","maintainers":[{"name":"velmoon222","email":"velvetmoon222999@gmail.com"}],"homepage":"https://github.com/autonome-research/thread-phase#readme","bugs":{"url":"https://github.com/autonome-research/thread-phase/issues"},"dist":{"shasum":"f764c3f53f51fa801c3e8a18b40101b526825a78","tarball":"https://registry.npmjs.org/@autonome-research/thread-phase-agents/-/thread-phase-agents-3.4.0.tgz","fileCount":79,"integrity":"sha512-J+7w0JCXwEh3ghwlxuVK5IqwSrNBQO7Qb7KmCzpecQpKq88XH4qhxNROcf8+qQU7D9BBE8ceBfstnTVaqryRFg==","signatures":[{"sig":"MEQCIHxeOTX5z+TQYq/Ane0+thaI+aaD4E37+mVb5NHRLbeWAiBD5OaWzIqUxgkLnls4BQz2NYpBuNo3V7qiaPQDA0Umdw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":264110},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":"./dist/index.js"},"gitHead":"25c2f02ff74d6e27515575c7b7e53defc9ef0ece","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"velmoon222","email":"velvetmoon222999@gmail.com"},"repository":{"url":"git+https://github.com/autonome-research/thread-phase.git","type":"git","directory":"packages/thread-phase-agents"},"_npmVersion":"11.12.1","description":"Agent adapters for thread-phase — wraps hermes, openclaw, anthropic, codex, claude-code, pi behind a uniform AgentAdapter protocol. Agent SDKs are optional peer deps; install only what you use.","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","openai":"^6.38.0","vitest":"^2.1.0","typescript":"^5.6.0","@types/node":"^22.0.0","@anthropic-ai/sdk":"^0.96.0","@mariozechner/pi-coding-agent":"^0.73.1","@autonome-research/thread-phase":"*"},"peerDependencies":{"openai":"^6.38.0","@anthropic-ai/sdk":"^0.96.0","@mariozechner/pi-coding-agent":"^0.73.1","@autonome-research/thread-phase":"^3.4.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"@mariozechner/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/thread-phase-agents_3.4.0_1780450836051_0.2658976181836765","host":"s3://npm-registry-packages-npm-production"}},"4.0.0":{"name":"@autonome-research/thread-phase-agents","version":"4.0.0","license":"MIT","_id":"@autonome-research/thread-phase-agents@4.0.0","maintainers":[{"name":"velmoon222","email":"velvetmoon222999@gmail.com"}],"homepage":"https://github.com/autonome-research/thread-phase#readme","bugs":{"url":"https://github.com/autonome-research/thread-phase/issues"},"dist":{"shasum":"53fa072103236c03c50ae7e75f1fd110d9e15f99","tarball":"https://registry.npmjs.org/@autonome-research/thread-phase-agents/-/thread-phase-agents-4.0.0.tgz","fileCount":79,"integrity":"sha512-qoszfJUOa8lAt6dWDryGhzTskdz5DXQqTihMDluAlYSUZf6+RTvqEga0kB5mCUfv0//98Ux7IHDHdvt4STrmIg==","signatures":[{"sig":"MEYCIQDElx7OhiI0FsogLTkDFPGkhWjUF2f/Lkd53w6ny5ZbKgIhANyKdQvJn1p1l6c192aGFPXkhG0EpNP2sS3pUmbXzIPk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":264888},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":"./dist/index.js"},"gitHead":"3993700407012b9e0d47a86d0125df15fe07d21f","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"velmoon222","email":"velvetmoon222999@gmail.com"},"repository":{"url":"git+https://github.com/autonome-research/thread-phase.git","type":"git","directory":"packages/thread-phase-agents"},"_npmVersion":"11.12.1","description":"Agent adapters for thread-phase — wraps hermes, openclaw, anthropic, codex, claude-code, pi behind a uniform AgentAdapter protocol. Agent SDKs are optional peer deps; install only what you use.","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","openai":"^6.38.0","vitest":"^2.1.0","typescript":"^5.6.0","@types/node":"^22.0.0","@anthropic-ai/sdk":"^0.96.0","@mariozechner/pi-coding-agent":"^0.73.1","@autonome-research/thread-phase":"*"},"peerDependencies":{"openai":"^6.38.0","@anthropic-ai/sdk":"^0.96.0","@mariozechner/pi-coding-agent":"^0.73.1","@autonome-research/thread-phase":"^4.0.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"@mariozechner/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/thread-phase-agents_4.0.0_1780454467363_0.20766269963891637","host":"s3://npm-registry-packages-npm-production"}},"4.1.0":{"name":"@autonome-research/thread-phase-agents","version":"4.1.0","license":"MIT","_id":"@autonome-research/thread-phase-agents@4.1.0","maintainers":[{"name":"velmoon222","email":"velvetmoon222999@gmail.com"}],"homepage":"https://github.com/autonome-research/thread-phase#readme","bugs":{"url":"https://github.com/autonome-research/thread-phase/issues"},"dist":{"shasum":"40d515b33a89a025ecbe2d44b2d6e270a6342b76","tarball":"https://registry.npmjs.org/@autonome-research/thread-phase-agents/-/thread-phase-agents-4.1.0.tgz","fileCount":79,"integrity":"sha512-T+d8azmCCbVTPmEQshmjpD6le9tOaOSt8UobDErtntjF2uk27Qjts6RfZawE0tILaECaxoMKFfyfmC9K5MRfwA==","signatures":[{"sig":"MEYCIQC7BibFlwZsg6hO4H1j3q++u4vbh/f8Su5hOCZWNIgSXgIhAIJMEtytOwCvzqKBdyeWY5PS3a0/0D/n3ea9igy/z2g1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":264888},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":"./dist/index.js"},"gitHead":"a3095837a62acdeac1922eecfdf38890437eb116","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"velmoon222","email":"velvetmoon222999@gmail.com"},"repository":{"url":"git+https://github.com/autonome-research/thread-phase.git","type":"git","directory":"packages/thread-phase-agents"},"_npmVersion":"11.12.1","description":"Agent adapters for thread-phase — wraps hermes, openclaw, anthropic, codex, claude-code, pi behind a uniform AgentAdapter protocol. Agent SDKs are optional peer deps; install only what you use.","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","openai":"^6.38.0","vitest":"^2.1.0","typescript":"^5.6.0","@types/node":"^22.0.0","@anthropic-ai/sdk":"^0.96.0","@mariozechner/pi-coding-agent":"^0.73.1","@autonome-research/thread-phase":"*"},"peerDependencies":{"openai":"^6.38.0","@anthropic-ai/sdk":"^0.96.0","@mariozechner/pi-coding-agent":"^0.73.1","@autonome-research/thread-phase":"^4.1.0"},"peerDependenciesMeta":{"openai":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"@mariozechner/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/thread-phase-agents_4.1.0_1780540653325_0.8105848303661063","host":"s3://npm-registry-packages-npm-production"}},"5.0.0":{"name":"@autonome-research/thread-phase-agents","version":"5.0.0","license":"MIT","_id":"@autonome-research/thread-phase-agents@5.0.0","maintainers":[{"name":"velmoon222","email":"velvetmoon222999@gmail.com"}],"homepage":"https://github.com/autonome-research/thread-phase#readme","bugs":{"url":"https://github.com/autonome-research/thread-phase/issues"},"dist":{"shasum":"3fb0dad4a42f018a528fe7851488e2dbf6385c93","tarball":"https://registry.npmjs.org/@autonome-research/thread-phase-agents/-/thread-phase-agents-5.0.0.tgz","fileCount":79,"integrity":"sha512-ytwNI1rSUFxZwoIVjHA7QpRhq3rl2iF8YYyOtmJ1D1bZ9zWbWbBiOuFWubr0M+/x4hRecXCnJH4XjhAujh5Fjw==","signatures":[{"sig":"MEUCICr2bHxa7NyvLd9tIqtUTwX2jSlcCimOuTFNf79R1gPpAiEA3P1IZQ4YragBVL0ttchWa9n7VwBCZcwtoAPen0In3NI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":265577},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":"20.x || 22.x || 23.x || 24.x || 25.x || 26.x"},"exports":{".":"./dist/index.js"},"gitHead":"e148f43e36f540a7bbeae5393c7d7585bc9beff2","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"velmoon222","email":"velvetmoon222999@gmail.com"},"repository":{"url":"git+https://github.com/autonome-research/thread-phase.git","type":"git","directory":"packages/thread-phase-agents"},"_npmVersion":"11.15.0","description":"Agent adapters for thread-phase — wraps hermes, openclaw, anthropic, codex, claude-code, pi behind a uniform AgentAdapter protocol. Agent SDKs are optional peer deps; install only what you use.","directories":{},"_nodeVersion":"26.1.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","openai":"^6.46.0","vitest":"^4.1.10","typescript":"^5.6.0","@types/node":"^22.0.0","@anthropic-ai/sdk":"^0.96.0","@autonome-research/thread-phase":"*","@earendil-works/pi-coding-agent":"^0.80.6"},"peerDependencies":{"openai":"^6.46.0","@anthropic-ai/sdk":"^0.96.0","@autonome-research/thread-phase":"^5.0.0","@earendil-works/pi-coding-agent":"^0.80.6"},"peerDependenciesMeta":{"openai":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/thread-phase-agents_5.0.0_1784010517490_0.4052323588607172","host":"s3://npm-registry-packages-npm-production"}},"6.0.0":{"name":"@autonome-research/thread-phase-agents","version":"6.0.0","license":"MIT","_id":"@autonome-research/thread-phase-agents@6.0.0","maintainers":[{"name":"velmoon222","email":"velvetmoon222999@gmail.com"}],"homepage":"https://github.com/autonome-research/thread-phase#readme","bugs":{"url":"https://github.com/autonome-research/thread-phase/issues"},"dist":{"shasum":"a7570d5f1086b0a951fd82518cb6553241008d39","tarball":"https://registry.npmjs.org/@autonome-research/thread-phase-agents/-/thread-phase-agents-6.0.0.tgz","fileCount":79,"integrity":"sha512-hBC/MYRb8A4N8f1AxFLtPMGt4C/DDsDBjLnvMHpKRoAxQXmRQbBZprKvTbl65c/nXhy0K+lO4yksUwzZuUXXzQ==","signatures":[{"sig":"MEYCIQDMfrTepibvUi63mUuRLhR49tljJrW4Nfi58Sz6Fuv9MQIhAOdZDLT8MDS3HfvpJRGzjG7sDlsS7T2ZU7CMIynH9wxB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":265607},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":"20.x || 22.x || 23.x || 24.x || 25.x || 26.x"},"exports":{".":"./dist/index.js"},"gitHead":"dd9f9a739237ee3b47eb74a500ce51a867264e9c","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"velmoon222","email":"velvetmoon222999@gmail.com"},"repository":{"url":"git+https://github.com/autonome-research/thread-phase.git","type":"git","directory":"packages/thread-phase-agents"},"_npmVersion":"11.15.0","description":"Agent adapters for thread-phase — wraps hermes, openclaw, anthropic, codex, claude-code, pi behind a uniform AgentAdapter protocol. Agent SDKs are optional peer deps; install only what you use.","directories":{},"_nodeVersion":"26.1.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","openai":"^6.46.0","vitest":"^4.1.10","typescript":"^5.6.0","@types/node":"^22.0.0","@anthropic-ai/sdk":"^0.96.0","@autonome-research/thread-phase":"*","@earendil-works/pi-coding-agent":"^0.80.6"},"peerDependencies":{"openai":"^6.46.0","@anthropic-ai/sdk":"^0.96.0","@autonome-research/thread-phase":"^5.0.0","@earendil-works/pi-coding-agent":"^0.80.6"},"peerDependenciesMeta":{"openai":{"optional":true},"@anthropic-ai/sdk":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/thread-phase-agents_6.0.0_1784324335014_0.870408147482669","host":"s3://npm-registry-packages-npm-production"}},"6.1.0":{"name":"@autonome-research/thread-phase-agents","version":"6.1.0","description":"Agent adapters for thread-phase — wraps hermes, openclaw, anthropic, codex, claude-code, pi behind a uniform AgentAdapter protocol. Agent SDKs are optional peer deps; install only what you use.","license":"MIT","type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":"./dist/index.js"},"scripts":{"build":"tsc -p tsconfig.json","test":"vitest run","test:watch":"vitest","typecheck":"tsc --noEmit"},"peerDependencies":{"@autonome-research/thread-phase":"^6.1.0","@anthropic-ai/sdk":"^0.96.0","@earendil-works/pi-coding-agent":"^0.80.6","openai":"^6.46.0"},"peerDependenciesMeta":{"@anthropic-ai/sdk":{"optional":true},"@earendil-works/pi-coding-agent":{"optional":true},"openai":{"optional":true}},"devDependencies":{"@anthropic-ai/sdk":"^0.96.0","@autonome-research/thread-phase":"*","@earendil-works/pi-coding-agent":"^0.80.6","@types/node":"^22.0.0","openai":"^6.46.0","tsx":"^4.19.0","typescript":"^5.6.0","vitest":"^4.1.10"},"engines":{"node":">=22.5.0"},"repository":{"type":"git","url":"git+https://github.com/autonome-research/thread-phase.git","directory":"packages/thread-phase-agents"},"gitHead":"5e404847f2bbfd7f19bb5b5a38be27bd984896d7","_id":"@autonome-research/thread-phase-agents@6.1.0","bugs":{"url":"https://github.com/autonome-research/thread-phase/issues"},"homepage":"https://github.com/autonome-research/thread-phase#readme","_nodeVersion":"26.1.0","_npmVersion":"11.15.0","dist":{"integrity":"sha512-Zf58phO3MuoUokvZLE5qbj1Xvo6ewPilflGeAQRnMq4ZhoLgOfr/0cJNxX+tHQCAhwHxJtdnCD7Y1Z5BbUIUcw==","shasum":"65c6f1734875bff675697eb326ad90b98e6c97d6","tarball":"https://registry.npmjs.org/@autonome-research/thread-phase-agents/-/thread-phase-agents-6.1.0.tgz","fileCount":79,"unpackedSize":265642,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIH4tLROrKvLV+0kdtJ0MnrubMYPv6MNiZcHbKb8uCC6+AiAgDM4fXMlG6qb/LMKU0QAfNHDqKQblzNq8P6WMEHYTMA=="}]},"_npmUser":{"name":"velmoon222","email":"velvetmoon222999@gmail.com"},"directories":{},"maintainers":[{"name":"velmoon222","email":"velvetmoon222999@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/thread-phase-agents_6.1.0_1784781815526_0.9216972386334417"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-21T00:06:44.325Z","modified":"2026-07-23T04:43:35.871Z","3.0.0":"2026-05-21T00:06:44.656Z","3.0.1":"2026-05-21T01:49:11.101Z","3.0.2":"2026-05-21T02:19:51.218Z","3.1.0":"2026-05-21T20:35:10.132Z","3.2.0":"2026-05-21T21:26:53.935Z","3.2.1":"2026-05-21T21:43:40.488Z","3.2.2":"2026-05-21T21:58:43.533Z","3.3.0":"2026-05-31T07:33:03.905Z","3.4.0":"2026-06-03T01:40:36.231Z","4.0.0":"2026-06-03T02:41:07.563Z","4.1.0":"2026-06-04T02:37:33.478Z","5.0.0":"2026-07-14T06:28:37.644Z","6.0.0":"2026-07-17T21:38:55.147Z","6.1.0":"2026-07-23T04:43:35.672Z"},"bugs":{"url":"https://github.com/autonome-research/thread-phase/issues"},"license":"MIT","homepage":"https://github.com/autonome-research/thread-phase#readme","repository":{"type":"git","url":"git+https://github.com/autonome-research/thread-phase.git","directory":"packages/thread-phase-agents"},"description":"Agent adapters for thread-phase — wraps hermes, openclaw, anthropic, codex, claude-code, pi behind a uniform AgentAdapter protocol. Agent SDKs are optional peer deps; install only what you use.","maintainers":[{"name":"velmoon222","email":"velvetmoon222999@gmail.com"}],"readme":"# @autonome-research/thread-phase-agents\n\nAdapter implementations for the `AgentAdapter` protocol from [`@autonome-research/thread-phase`](../thread-phase). Wraps heterogeneous AI agents — CLI-based coding agents, in-process SDK agents — behind a single uniform shape so thread-phase pipelines can compose them.\n\n## Install\n\n```bash\nnpm install @autonome-research/thread-phase-agents @autonome-research/thread-phase\n```\n\n`@autonome-research/thread-phase` is a peer dep. **Agent SDKs are also optional peer deps** — install only the ones whose adapter you actually use. The package itself is small; the SDK weight is what you choose to add.\n\n| Adapter | Requires | Install when used |\n|---|---|---|\n| `acpAgent` (chassis) | An ACP-speaking subprocess on your machine | — |\n| `hermesAgent` | `hermes` CLI in PATH | — |\n| `openClawAgent` | `acpx` in PATH; optional NemoClaw sandbox | — |\n| `claudeCodeAgent` | `claude` CLI in PATH (https://claude.com/code) | — |\n| `codexCliAgent` | `codex` CLI in PATH (`codex login` for auth) | — |\n| `codexAgent` | `OPENAI_API_KEY` env var (Responses API direct) | `npm install openai` |\n| `anthropicAgent` | `ANTHROPIC_API_KEY` env var | `npm install @anthropic-ai/sdk` |\n| `piAgent` | pi config under `~/.pi/agent/`; Node.js >=22.19.0 | `npm install @earendil-works/pi-coding-agent` |\n\nThe Pi SDK currently requires Node.js 22.19.0 or newer; other adapters and core thread-phase retain the package's broader Node support.\n\nCalling an adapter without its SDK installed throws a clear `... requires the optional peer dep <pkg>. Install it with: npm install <pkg>` error — the adapter is import-safe even when the SDK is absent.\n\n## What's in here\n\nSeven adapter implementations plus a shared ACP chassis:\n\n- **`acpAgent`** — the [Agent Client Protocol](https://agentclientprotocol.com/) chassis. Spawns any ACP-speaking subprocess, parses JSON-RPC over stdio, drives `initialize → session/new → session/prompt → session/cancel`. Other ACP-based adapters compose on top.\n- **`hermesAgent`** — wraps `hermes acp`. Inherits the ACP chassis.\n- **`openClawAgent`** — wraps `acpx` against the OpenClaw Gateway, with optional `sandbox: 'nemoclaw' | 'local'` mode.\n- **`anthropicAgent`** — in-process via `@anthropic-ai/sdk`. Streaming + tool use + extended thinking.\n- **`codexAgent`** — in-process via OpenAI Responses API. Requires `OPENAI_API_KEY`.\n- **`codexCliAgent`** — subprocess wrapper around `codex exec --json`. Uses codex's own auth (ChatGPT subscription OAuth typically).\n- **`claudeCodeAgent`** — subprocess + JSONL streaming. Forgiving parser falls back to `native` events for unknown shapes.\n- **`piAgent`** — in-process via `@earendil-works/pi-coding-agent`. The only adapter where `SteerableAgentRun.steer()` and `.followUp()` work natively at runtime (pi accepts mid-stream steering).\n\n## Using an adapter\n\nThe basic shape is the same for every adapter — call `meta.adapter(config)` to get an `AgentRun`, then iterate events and/or await the result:\n\n```ts\nimport { hermesAgent } from '@autonome-research/thread-phase-agents';\n\nconst run = hermesAgent.adapter({\n  cwd: process.cwd(),\n  prompt: 'List the files in this directory and summarize what they are.',\n});\n\n// Stream events for display / logging:\nfor await (const event of run.events) {\n  if (event.type === 'text') process.stdout.write(event.delta);\n}\n\n// Await the final result:\nconst result = await run.result;\nconsole.log('finishReason:', result.finishReason);\nconsole.log('text:', result.text);\nconsole.log('resumeToken:', result.resumeToken);\n```\n\n`run.result` never rejects — errors are encoded as `finishReason: 'error'` with an `error` event in the stream beforehand. `run.events` is a single-consumer iterable; use the `AgentEventBus` from `@autonome-research/thread-phase/agents` if you need fan-out to multiple subscribers.\n\n### Inside a thread-phase phase\n\nAdapters compose with thread-phase's pipeline primitives. The canonical pattern:\n\n```ts\nimport { JobRunner, SqliteJobStore, type Phase } from '@autonome-research/thread-phase';\nimport { createEventBus, pipeAgentEventsToJobStore } from '@autonome-research/thread-phase/agents';\nimport { claudeCodeAgent } from '@autonome-research/thread-phase-agents';\n\ninterface Ctx {\n  taskDescription?: string;\n  result?: string;\n}\n\nconst reviewPhase: Phase<Ctx> = {\n  name: 'review',\n  async *run(ctx, { jobId, store, signal }) {\n    yield { type: 'phase', phase: 'review', detail: 'starting claude-code' };\n\n    const bus = createEventBus();\n    pipeAgentEventsToJobStore(bus, store, jobId, { dropTypes: ['text'] });\n\n    const run = claudeCodeAgent.adapter(\n      { cwd: process.cwd(), prompt: ctx.taskDescription! },\n      { signal, eventBus: bus, traceId: jobId },\n    );\n\n    const result = await run.result;\n    ctx.result = result.text;\n    yield { type: 'data', key: 'result', value: { length: result.text.length } };\n  },\n};\n```\n\n`pipeAgentEventsToJobStore` wires the adapter's event stream into the JobStore log so every text delta / tool call / turn boundary is persisted. The `dropTypes: ['text']` filter keeps the high-volume text deltas out of the database while preserving tool calls, turn boundaries, and lifecycle events for audit.\n\n### Memory and Thread auto-wiring\n\nDecorate any adapter with `withMemory` to plumb a `MemoryProvider` automatically, or `withThread` to flow conversation state across phases. Use the pre-built injectors from this package so you don't have to write per-adapter splicing logic:\n\n```ts\nimport { withMemory, withThread, createThread } from '@autonome-research/thread-phase/agents';\nimport { claudeCodeAgent, injectMemory, injectResume } from '@autonome-research/thread-phase-agents';\n\nconst thread = createThread();\n\nconst augmented = withThread(\n  withMemory(claudeCodeAgent, {\n    scope: { userId: 'alice' },\n    inject: injectMemory.claudeCode,\n  }),\n  thread,\n  { applyResume: injectResume.claudeCode },\n);\n\n// First call — creates a session, fills thread.events.\nawait augmented.adapter({ cwd, prompt: 'analyze this codebase' }, { memoryProvider }).result;\n\n// Second call — same thread; the wrapper reads thread.resumeTokens['claude-code']\n// and adds --resume <id> automatically.\nawait augmented.adapter({ cwd, prompt: 'now refactor the file you mentioned' }, { memoryProvider }).result;\n```\n\n### Steerable runs (pi, hermes, openclaw)\n\nAdapters whose underlying runtime supports follow-up prompts on a live session return a `SteerableAgentRun` at runtime. Narrow with `isSteerable` from `thread-phase/agents`:\n\n```ts\nimport { isSteerable } from '@autonome-research/thread-phase/agents';\nimport { piAgent } from '@autonome-research/thread-phase-agents';\n\nconst run = piAgent.adapter({ cwd, prompt: 'start something complex' });\n\nif (isSteerable(run)) {\n  // Pi accepts mid-stream steering — interrupt the current generation\n  // and add context.\n  await run.steer('reconsider, the user just clarified X');\n\n  // Or queue a follow-up that fires after the current response completes:\n  await run.followUp('and then also summarize');\n}\n\nconst result = await run.result;\n```\n\n- `piAgent` supports both `steer()` (mid-generation injection) and `followUp()` (queued additional turn).\n- `hermesAgent` / `openClawAgent` / `acpAgent` support `followUp()` (ACP's `session/prompt` is discrete — multiple prompts on one session). `steer()` rejects with a capability error.\n- All other adapters (`claudeCodeAgent`, `codexCliAgent`, `codexAgent`, `anthropicAgent`) are not steerable. `isSteerable(run)` returns `false`.\n\n### Cross-adapter handoff with Thread\n\nWhen two phases use different adapters, the canonical event log in a shared `Thread` becomes the bridge. Same-adapter chains resume natively via the resume token (lossless); cross-adapter chains fall back to a text rendering of the thread:\n\n```ts\nimport { createThread } from '@autonome-research/thread-phase/agents';\nimport {\n  claudeCodeAgent,\n  anthropicAgent,\n  threadToAnthropicMessages,\n} from '@autonome-research/thread-phase-agents';\n\nconst thread = createThread();\n\n// Phase A: claude-code does research.\nconst runA = withThread(claudeCodeAgent, thread, { applyResume: injectResume.claudeCode });\nawait runA.adapter({ cwd, prompt: 'investigate the bug in foo.ts' }).result;\n\n// Phase B: anthropic synthesizes a report from claude-code's findings.\n// Different adapter — render the thread to anthropic message format.\nconst messages = threadToAnthropicMessages(thread);\nconst runB = anthropicAgent.adapter({\n  model: 'claude-opus-4-7',\n  messages: [...messages, { role: 'user', content: 'Write a 3-bullet summary.' }],\n});\nawait runB.result;\n```\n\nThe `threadTo<Adapter>{Prompt,Messages,Input}` helpers render the shared event log into each adapter's expected input shape.\n\n## Smoke scripts\n\nEach adapter has a runnable real-binary smoke test under `scripts/`:\n\n```bash\nnpx tsx scripts/smoke-claude-code.ts \"say hello\"\nnpx tsx scripts/smoke-hermes.ts\nnpx tsx scripts/smoke-codex-cli.ts\nnpx tsx scripts/smoke-pi.ts\n```\n\nUseful for sanity-checking that the adapter survives contact with whichever version of the binary you have installed. They print every canonical event as it streams and report pass/fail at the end.\n\n## Relationship to @autonome-research/thread-phase\n\n[`@autonome-research/thread-phase`](../thread-phase) owns the `AgentAdapter` protocol, the `Thread` primitive, the canonical `AgentEvent` vocabulary, the `inferenceAgent` (which wraps `runAgentWithTools` against any OpenAI-compatible endpoint), and the conformance suite that every adapter must pass.\n\nThis package ships the *other* adapters — the ones that delegate to pre-built coding / research / life agents rather than driving a raw inference loop. Each adapter passes the conformance suite imported from `@autonome-research/thread-phase/agents/test-utils`.\n\n## Status\n\nPre-1.0. The adapter set covers the common heterogeneous-agent surface; the API shape may still change before 1.0.\n\n## License\n\nMIT.\n","readmeFilename":"README.md"}