{"_id":"@ai-sdk-tool/headless","_rev":"10-615eebd9db6aeaa93421669ae26e2a02","name":"@ai-sdk-tool/headless","dist-tags":{"latest":"3.1.1"},"versions":{"0.1.0":{"name":"@ai-sdk-tool/headless","version":"0.1.0","_id":"@ai-sdk-tool/headless@0.1.0","maintainers":[{"name":"minpeter","email":"kali2005611@gmail.com"}],"homepage":"https://github.com/minpeter/plugsuits#readme","bugs":{"url":"https://github.com/minpeter/plugsuits/issues"},"dist":{"shasum":"2b4e15ca3117c73fa390af26f8dfd2cb8f99b43e","tarball":"https://registry.npmjs.org/@ai-sdk-tool/headless/-/headless-0.1.0.tgz","fileCount":26,"integrity":"sha512-g1gFQdRtaPUXdlcK67BRA04pApub1acHjq9Anch3Q916L2aqt0E28o9uL5xHLiqDgAH3GUY6kY0OtaoZ1iEqrg==","signatures":[{"sig":"MEQCIGl27kLYKsHQEjRgJmosx9pdw70k19C/jovpBEGXK8StAiBluaafT98TOMR6kgAtkGyQNuupXHeG9W4g7eEKPRMPPQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":65981},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","@ai-sdk-tool/source":"./src/index.ts"}},"gitHead":"fcb75f5180306c48f890aeb1be2ca5ed5ff38693","scripts":{"test":"vitest run src","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"minpeter","email":"kali2005611@gmail.com"},"repository":{"url":"git+https://github.com/minpeter/plugsuits.git","type":"git","directory":"packages/headless"},"_npmVersion":"11.12.0","description":"A non-interactive, JSONL event-streaming runtime for agent sessions. Instead of rendering to a terminal, it writes structured events to stdout — one JSON object per line. Suitable for CI/CD pipelines, benchmarks, and any programmatic consumer that needs a","directories":{},"_nodeVersion":"22.21.0","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^25.4.0","@ai-sdk-tool/harness":"workspace:*"},"peerDependencies":{"ai":"^6.0.116","@ai-sdk-tool/harness":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/headless_0.1.0_1774979827336_0.23805102625859487","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@ai-sdk-tool/headless","version":"1.0.0","_id":"@ai-sdk-tool/headless@1.0.0","maintainers":[{"name":"minpeter","email":"kali2005611@gmail.com"}],"homepage":"https://github.com/minpeter/plugsuits#readme","bugs":{"url":"https://github.com/minpeter/plugsuits/issues"},"dist":{"shasum":"1cbbb8005e5e1a39ddeeaebd956848d65d9b3a8a","tarball":"https://registry.npmjs.org/@ai-sdk-tool/headless/-/headless-1.0.0.tgz","fileCount":26,"integrity":"sha512-/Huo4jUpWFso/XOIBTFOkRVVOghI8lG3DJac6003JZCBLaoQgcEZrZGTKf6vtF4vcwwmdw0RJDX2SG3kJfSyng==","signatures":[{"sig":"MEQCIGleb7K+3VqogoE8HJmwxdTqcyQoQeZHF1SgWNBcVhLSAiBU3c6ScgYf41+qvXh7IxiGfr3cTdO6J+Gfi8Blfoytlg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ai-sdk-tool%2fheadless@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":65947},"main":"./dist/index.js","type":"module","_from":"file:ai-sdk-tool-headless-1.0.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","@ai-sdk-tool/source":"./src/index.ts"}},"scripts":{"test":"vitest run src","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5388418f-b627-406a-b75f-54c0971f54de"}},"_resolved":"/tmp/1d97fa725836602c4a6e81ce10a86de4/ai-sdk-tool-headless-1.0.0.tgz","_integrity":"sha512-/Huo4jUpWFso/XOIBTFOkRVVOghI8lG3DJac6003JZCBLaoQgcEZrZGTKf6vtF4vcwwmdw0RJDX2SG3kJfSyng==","repository":{"url":"git+https://github.com/minpeter/plugsuits.git","type":"git","directory":"packages/headless"},"_npmVersion":"11.12.1","description":"A non-interactive, JSONL event-streaming runtime for agent sessions. Instead of rendering to a terminal, it writes structured events to stdout — one JSON object per line. Suitable for CI/CD pipelines, benchmarks, and any programmatic consumer that needs a","directories":{},"_nodeVersion":"22.22.1","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^25.4.0","@ai-sdk-tool/harness":"1.1.0"},"peerDependencies":{"ai":"^6.0.116","@ai-sdk-tool/harness":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/headless_1.0.0_1774982497236_0.34422772001677804","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@ai-sdk-tool/headless","version":"2.0.0","_id":"@ai-sdk-tool/headless@2.0.0","maintainers":[{"name":"minpeter","email":"kali2005611@gmail.com"}],"homepage":"https://github.com/minpeter/plugsuits#readme","bugs":{"url":"https://github.com/minpeter/plugsuits/issues"},"dist":{"shasum":"1d959c1a57c0f6bcf5bfcbb680d7c3f244cbaf6b","tarball":"https://registry.npmjs.org/@ai-sdk-tool/headless/-/headless-2.0.0.tgz","fileCount":26,"integrity":"sha512-m5WA1zBCvGizUbDlDNFrn3UBmMVjrOica4iEAGvyD0lpo67TQJ5WH5y4Qi9bMUVuxTuqCRukvC9b8s9I1GMjFA==","signatures":[{"sig":"MEQCIAdjZiOZUnwyfJ6jSfWq6A8heFl2dG9QoaO3hU5GsGd7AiBwEYH4+bAWDfvNOnrwkbGmoe0jVdmsTpyxPQ5lCqOkAg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ai-sdk-tool%2fheadless@2.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":65947},"main":"./dist/index.js","type":"module","_from":"file:ai-sdk-tool-headless-2.0.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","@ai-sdk-tool/source":"./src/index.ts"}},"scripts":{"test":"vitest run src","build":"tsc","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5388418f-b627-406a-b75f-54c0971f54de"}},"_resolved":"/tmp/d12332e7bba7660da0a35c966db2d7f4/ai-sdk-tool-headless-2.0.0.tgz","_integrity":"sha512-m5WA1zBCvGizUbDlDNFrn3UBmMVjrOica4iEAGvyD0lpo67TQJ5WH5y4Qi9bMUVuxTuqCRukvC9b8s9I1GMjFA==","repository":{"url":"git+https://github.com/minpeter/plugsuits.git","type":"git","directory":"packages/headless"},"_npmVersion":"11.12.1","description":"A non-interactive, JSONL event-streaming runtime for agent sessions. Instead of rendering to a terminal, it writes structured events to stdout — one JSON object per line. Suitable for CI/CD pipelines, benchmarks, and any programmatic consumer that needs a","directories":{},"_nodeVersion":"22.22.1","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^25.4.0","@ai-sdk-tool/harness":"1.1.0"},"peerDependencies":{"ai":"^6.0.116","@ai-sdk-tool/harness":"^1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/headless_2.0.0_1774982710128_0.7025274084290953","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@ai-sdk-tool/headless","version":"2.0.1","_id":"@ai-sdk-tool/headless@2.0.1","maintainers":[{"name":"minpeter","email":"kali2005611@gmail.com"}],"homepage":"https://github.com/minpeter/plugsuits#readme","bugs":{"url":"https://github.com/minpeter/plugsuits/issues"},"dist":{"shasum":"1575765a3b8ef3c539fa1b94ca2b9c66c9230f0d","tarball":"https://registry.npmjs.org/@ai-sdk-tool/headless/-/headless-2.0.1.tgz","fileCount":26,"integrity":"sha512-nX6iz5k4yBx0qtpqMGggVoJzlW7C1jXF0W8EH6piu6RU/1NSTE6kD96+0Sk4BelAcz4NIu9p7b00M2hkbKa+ow==","signatures":[{"sig":"MEYCIQC+9+KJuYEX2USxbl32hrahOdgyt6e5ej1JRLv++B7z5AIhAMe8T4jloBxW30GRGjbcbNQ2+zZgRMbf4e2qLuzlIEfa","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ai-sdk-tool%2fheadless@2.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":66015},"main":"./dist/index.js","type":"module","_from":"file:ai-sdk-tool-headless-2.0.1.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","@ai-sdk-tool/source":"./src/index.ts"}},"scripts":{"test":"vitest run src","build":"tsc && node ../../scripts/fix-esm-imports.mjs dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5388418f-b627-406a-b75f-54c0971f54de"}},"_resolved":"/tmp/a4917f07650693b3bfc0bb3e97c80500/ai-sdk-tool-headless-2.0.1.tgz","_integrity":"sha512-nX6iz5k4yBx0qtpqMGggVoJzlW7C1jXF0W8EH6piu6RU/1NSTE6kD96+0Sk4BelAcz4NIu9p7b00M2hkbKa+ow==","repository":{"url":"git+https://github.com/minpeter/plugsuits.git","type":"git","directory":"packages/headless"},"_npmVersion":"11.12.1","description":"A non-interactive, JSONL event-streaming runtime for agent sessions. Instead of rendering to a terminal, it writes structured events to stdout — one JSON object per line. Suitable for CI/CD pipelines, benchmarks, and any programmatic consumer that needs a","directories":{},"_nodeVersion":"22.22.1","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^25.4.0","@ai-sdk-tool/harness":"1.1.1"},"peerDependencies":{"ai":"^6.0.116","@ai-sdk-tool/harness":"^1.1.1"},"_npmOperationalInternal":{"tmp":"tmp/headless_2.0.1_1774993064728_0.5218881355651266","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"@ai-sdk-tool/headless","version":"3.0.0","_id":"@ai-sdk-tool/headless@3.0.0","maintainers":[{"name":"minpeter","email":"kali2005611@gmail.com"}],"homepage":"https://github.com/minpeter/plugsuits#readme","bugs":{"url":"https://github.com/minpeter/plugsuits/issues"},"dist":{"shasum":"f66d48a7f0577aa8907065499427a4ba4e761f74","tarball":"https://registry.npmjs.org/@ai-sdk-tool/headless/-/headless-3.0.0.tgz","fileCount":26,"integrity":"sha512-t7XCZYfssWJ01sqMimuNA6rf2Iy4Avqc7h2SM6JOrgiZ1qTFchDmONXDtLH/lPbtULycyqy2yE8q0JrCgIrbEQ==","signatures":[{"sig":"MEUCIQDwIUnrbQdMLfkASHnfUFSJb1zxYxynUtHIuJhlLP4DewIgJwO6TKokFuWl153vjiadwdpVMOcDB+5SENUKRoNy/OU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ai-sdk-tool%2fheadless@3.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":65446},"main":"./dist/index.js","type":"module","_from":"file:ai-sdk-tool-headless-3.0.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","@ai-sdk-tool/source":"./src/index.ts"}},"scripts":{"test":"vitest run src","build":"tsc && node ../../scripts/fix-esm-imports.mjs dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5388418f-b627-406a-b75f-54c0971f54de"}},"_resolved":"/tmp/8d88a1a43ed585fbfe66b8fe7605ead0/ai-sdk-tool-headless-3.0.0.tgz","_integrity":"sha512-t7XCZYfssWJ01sqMimuNA6rf2Iy4Avqc7h2SM6JOrgiZ1qTFchDmONXDtLH/lPbtULycyqy2yE8q0JrCgIrbEQ==","repository":{"url":"git+https://github.com/minpeter/plugsuits.git","type":"git","directory":"packages/headless"},"_npmVersion":"11.12.1","description":"A non-interactive, JSONL event-streaming runtime for agent sessions. Instead of rendering to a terminal, it writes structured events to stdout — one JSON object per line. Suitable for CI/CD pipelines, benchmarks, and any programmatic consumer that needs a","directories":{},"_nodeVersion":"22.22.1","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^25.4.0","@ai-sdk-tool/harness":"1.2.0"},"peerDependencies":{"ai":"^6.0.116","@ai-sdk-tool/harness":"^1.2.0"},"_npmOperationalInternal":{"tmp":"tmp/headless_3.0.0_1775010063585_0.7490479813986006","host":"s3://npm-registry-packages-npm-production"}},"3.0.1":{"name":"@ai-sdk-tool/headless","version":"3.0.1","_id":"@ai-sdk-tool/headless@3.0.1","maintainers":[{"name":"minpeter","email":"kali2005611@gmail.com"}],"homepage":"https://github.com/minpeter/plugsuits#readme","bugs":{"url":"https://github.com/minpeter/plugsuits/issues"},"dist":{"shasum":"89dc25dc6650ce5e395b6cde5d61e399ca4f6089","tarball":"https://registry.npmjs.org/@ai-sdk-tool/headless/-/headless-3.0.1.tgz","fileCount":30,"integrity":"sha512-ErdC0RJq1EOQosrvJKnsKg0zdou6PcizLbA0hDU1c4WhwblhVLkQK0pXGhIH42DS5Nxg3060gpx0k9SGsz0wDQ==","signatures":[{"sig":"MEUCIQDbF6cxfxHJSGy+bYVPtI3ed1PgVCOGKIry8y7OjKHDJAIgSN7W9kVGrnD3RRYm0TnmYFvkfw4nQ9fv/6y+wKSZHEI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ai-sdk-tool%2fheadless@3.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":88240},"main":"./dist/index.js","type":"module","_from":"file:ai-sdk-tool-headless-3.0.1.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","@ai-sdk-tool/source":"./src/index.ts"}},"scripts":{"test":"vitest run src","build":"tsc && node ../../scripts/fix-esm-imports.mjs dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5388418f-b627-406a-b75f-54c0971f54de"}},"_resolved":"/tmp/c9aec00da853eba9d0b496c6a3b51a82/ai-sdk-tool-headless-3.0.1.tgz","_integrity":"sha512-ErdC0RJq1EOQosrvJKnsKg0zdou6PcizLbA0hDU1c4WhwblhVLkQK0pXGhIH42DS5Nxg3060gpx0k9SGsz0wDQ==","repository":{"url":"git+https://github.com/minpeter/plugsuits.git","type":"git","directory":"packages/headless"},"_npmVersion":"11.11.0","description":"A non-interactive, JSONL event-streaming runtime for agent sessions. Instead of rendering to a terminal, it writes structured events to stdout — one JSON object per line. Suitable for CI/CD pipelines, benchmarks, and any programmatic consumer that needs a","directories":{},"_nodeVersion":"24.14.1","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^25.4.0","@ai-sdk-tool/harness":"1.2.1"},"peerDependencies":{"ai":"^6.0.116","@ai-sdk-tool/harness":"^1.2.1"},"_npmOperationalInternal":{"tmp":"tmp/headless_3.0.1_1775444207509_0.4768407299037445","host":"s3://npm-registry-packages-npm-production"}},"3.0.2":{"name":"@ai-sdk-tool/headless","version":"3.0.2","_id":"@ai-sdk-tool/headless@3.0.2","maintainers":[{"name":"minpeter","email":"kali2005611@gmail.com"}],"homepage":"https://github.com/minpeter/plugsuits#readme","bugs":{"url":"https://github.com/minpeter/plugsuits/issues"},"dist":{"shasum":"96223473f40e2e885ec161bf8aa5e2e246ffd715","tarball":"https://registry.npmjs.org/@ai-sdk-tool/headless/-/headless-3.0.2.tgz","fileCount":30,"integrity":"sha512-wQRg28joIPABUrlLnyppJLgTLYY4n6gzQf5+HmMlsd/D66JVutGPU6xyC6gUr46fhADiaKEa8z+s1X3WJAD6YQ==","signatures":[{"sig":"MEUCIQDi5Ws41oiONSg6ntaK4pZYpVpAHW8ufSH619ulNQzlnwIgEE14G7I32RtcZTR4YF6SvN44WlZJee3NOZ4KxP/XCvM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ai-sdk-tool%2fheadless@3.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":88206},"main":"./dist/index.js","type":"module","_from":"file:ai-sdk-tool-headless-3.0.2.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","@ai-sdk-tool/source":"./src/index.ts"}},"scripts":{"test":"vitest run src","build":"tsc && node ../../scripts/fix-esm-imports.mjs dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5388418f-b627-406a-b75f-54c0971f54de"}},"_resolved":"/tmp/cf6533a0addb29180ad2e215fb6f3610/ai-sdk-tool-headless-3.0.2.tgz","_integrity":"sha512-wQRg28joIPABUrlLnyppJLgTLYY4n6gzQf5+HmMlsd/D66JVutGPU6xyC6gUr46fhADiaKEa8z+s1X3WJAD6YQ==","repository":{"url":"git+https://github.com/minpeter/plugsuits.git","type":"git","directory":"packages/headless"},"_npmVersion":"11.11.0","description":"A non-interactive, JSONL event-streaming runtime for agent sessions. Instead of rendering to a terminal, it writes structured events to stdout — one JSON object per line. Suitable for CI/CD pipelines, benchmarks, and any programmatic consumer that needs a","directories":{},"_nodeVersion":"24.14.1","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^25.4.0","@ai-sdk-tool/harness":"1.2.3"},"peerDependencies":{"ai":"^6.0.116","@ai-sdk-tool/harness":"^1.2.3"},"_npmOperationalInternal":{"tmp":"tmp/headless_3.0.2_1775629206737_0.4381722315585508","host":"s3://npm-registry-packages-npm-production"}},"3.0.3":{"name":"@ai-sdk-tool/headless","version":"3.0.3","_id":"@ai-sdk-tool/headless@3.0.3","maintainers":[{"name":"minpeter","email":"kali2005611@gmail.com"}],"homepage":"https://github.com/minpeter/plugsuits#readme","bugs":{"url":"https://github.com/minpeter/plugsuits/issues"},"dist":{"shasum":"4b9c709d31cac1e4eaa907a5eedf3d7bd15043be","tarball":"https://registry.npmjs.org/@ai-sdk-tool/headless/-/headless-3.0.3.tgz","fileCount":30,"integrity":"sha512-oNnrST3rFTj41P6LPlG1Ju1CsXQnN2mIDPsefz8oQpbs2SFSZqVQNEs6OdwbESGCffppfgj8oORkBJYbHTiQoA==","signatures":[{"sig":"MEUCICd6jo+Bw8HErA+IX+pxgFA+BGhcKGwNN/tm186ZHrkBAiEA6BBfyeBfLWOrZlwBC3aw5oFnm+/2jZndIuOo1NHJ0ww=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ai-sdk-tool%2fheadless@3.0.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93782},"main":"./dist/index.js","type":"module","_from":"file:ai-sdk-tool-headless-3.0.3.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","@ai-sdk-tool/source":"./src/index.ts"}},"scripts":{"test":"vitest run src","build":"tsc && node ../../scripts/fix-esm-imports.mjs dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5388418f-b627-406a-b75f-54c0971f54de"}},"_resolved":"/tmp/c1a998d7a209336846d56c0a86f28007/ai-sdk-tool-headless-3.0.3.tgz","_integrity":"sha512-oNnrST3rFTj41P6LPlG1Ju1CsXQnN2mIDPsefz8oQpbs2SFSZqVQNEs6OdwbESGCffppfgj8oORkBJYbHTiQoA==","repository":{"url":"git+https://github.com/minpeter/plugsuits.git","type":"git","directory":"packages/headless"},"_npmVersion":"11.11.0","description":"A non-interactive, JSONL event-streaming runtime for agent sessions. Instead of rendering to a terminal, it writes structured events to stdout — one JSON object per line. Suitable for CI/CD pipelines, benchmarks, and any programmatic consumer that needs a","directories":{},"_nodeVersion":"24.14.1","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^25.4.0","@ai-sdk-tool/harness":"1.2.4"},"peerDependencies":{"ai":"^6.0.116","@ai-sdk-tool/harness":"^1.2.4"},"_npmOperationalInternal":{"tmp":"tmp/headless_3.0.3_1775985603748_0.6905008197018747","host":"s3://npm-registry-packages-npm-production"}},"3.1.0":{"name":"@ai-sdk-tool/headless","version":"3.1.0","_id":"@ai-sdk-tool/headless@3.1.0","maintainers":[{"name":"minpeter","email":"kali2005611@gmail.com"}],"homepage":"https://github.com/minpeter/plugsuits#readme","bugs":{"url":"https://github.com/minpeter/plugsuits/issues"},"dist":{"shasum":"064cb72dccafdb785b46c01c623e3342b5b169f9","tarball":"https://registry.npmjs.org/@ai-sdk-tool/headless/-/headless-3.1.0.tgz","fileCount":34,"integrity":"sha512-SEWIQ9aesAIP1ithYf+sN7WHV/Qk7PNZyl8wEPV38EmEM1MbGzSSywDM3z9/2O5/woodnY8/tCKTtmTKXp4jzw==","signatures":[{"sig":"MEUCIAq9v7sH2hdq0BWocaaXba44xsVOxEEIVF8/+kWc9ohgAiEAsZaza/BSW19iZU5mFfhFgL7osGQN3O3zrjJBqAAQXYg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ai-sdk-tool%2fheadless@3.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":109984},"main":"./dist/index.js","type":"module","_from":"file:ai-sdk-tool-headless-3.1.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","@ai-sdk-tool/source":"./src/index.ts"},"./session":{"types":"./dist/session-headless.d.ts","import":"./dist/session-headless.js","@ai-sdk-tool/source":"./src/session-headless.ts"}},"scripts":{"test":"vitest run src","build":"tsc && node ../../scripts/fix-esm-imports.mjs dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5388418f-b627-406a-b75f-54c0971f54de"}},"_resolved":"/tmp/377f5f19632fcef3d3f82d791d4eba4e/ai-sdk-tool-headless-3.1.0.tgz","_integrity":"sha512-SEWIQ9aesAIP1ithYf+sN7WHV/Qk7PNZyl8wEPV38EmEM1MbGzSSywDM3z9/2O5/woodnY8/tCKTtmTKXp4jzw==","repository":{"url":"git+https://github.com/minpeter/plugsuits.git","type":"git","directory":"packages/headless"},"_npmVersion":"11.11.0","description":"A non-interactive, JSONL event-streaming runtime for agent sessions. Instead of rendering to a terminal, it writes structured events to stdout — one JSON object per line. Suitable for CI/CD pipelines, benchmarks, and any programmatic consumer that needs a","directories":{},"_nodeVersion":"24.14.1","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^25.4.0","@ai-sdk-tool/harness":"1.3.0"},"peerDependencies":{"ai":"^6.0.116","@ai-sdk-tool/harness":"^1.2.4"},"_npmOperationalInternal":{"tmp":"tmp/headless_3.1.0_1776364826770_0.6576004192508238","host":"s3://npm-registry-packages-npm-production"}},"3.1.1":{"name":"@ai-sdk-tool/headless","version":"3.1.1","type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"@ai-sdk-tool/source":"./src/index.ts","types":"./dist/index.d.ts","import":"./dist/index.js"},"./session":{"@ai-sdk-tool/source":"./src/session-headless.ts","types":"./dist/session-headless.d.ts","import":"./dist/session-headless.js"}},"repository":{"type":"git","url":"git+https://github.com/minpeter/plugsuits.git","directory":"packages/headless"},"publishConfig":{"access":"public","provenance":true},"peerDependencies":{"@ai-sdk-tool/harness":"^1.2.4","ai":"^6.0.116"},"devDependencies":{"@types/node":"^25.6.0","typescript":"^6.0.3","@ai-sdk-tool/harness":"1.3.1"},"engines":{"node":">=22.19.0"},"scripts":{"build":"tsc && node ../../scripts/fix-esm-imports.mjs dist","typecheck":"tsc --noEmit","test":"vitest run src"},"_id":"@ai-sdk-tool/headless@3.1.1","description":"A non-interactive, JSONL event-streaming runtime for agent sessions. Instead of rendering to a terminal, it writes structured events to stdout — one JSON object per line. Suitable for CI/CD pipelines, benchmarks, and any programmatic consumer that needs a","bugs":{"url":"https://github.com/minpeter/plugsuits/issues"},"homepage":"https://github.com/minpeter/plugsuits#readme","_integrity":"sha512-8T/0Q91wuz3UpQqRiwKwNmSMGL0kwEtMId7n60Yz/QRvY0ustmLHgozHKLq3cSbXNvchiAPT719AoHILJyULhg==","_resolved":"/tmp/33b484ef6b6168ab8541da830c594988/ai-sdk-tool-headless-3.1.1.tgz","_from":"file:ai-sdk-tool-headless-3.1.1.tgz","_nodeVersion":"24.14.1","_npmVersion":"11.11.0","dist":{"integrity":"sha512-8T/0Q91wuz3UpQqRiwKwNmSMGL0kwEtMId7n60Yz/QRvY0ustmLHgozHKLq3cSbXNvchiAPT719AoHILJyULhg==","shasum":"8c0b0b3e026b1eeaf4e849b4734003f6281db1dd","tarball":"https://registry.npmjs.org/@ai-sdk-tool/headless/-/headless-3.1.1.tgz","fileCount":34,"unpackedSize":121432,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ai-sdk-tool%2fheadless@3.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDUfcPWemX1PnLs+XjEX4wQyGcNS8UWaQm6axdsXrBz5AIhAM8kKdREktCYTBsuOtN26lDhnu8f+zlqq6Ejamn9CNsv"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5388418f-b627-406a-b75f-54c0971f54de"}},"directories":{},"maintainers":[{"name":"minpeter","email":"kali2005611@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/headless_3.1.1_1776852564616_0.7942411506298939"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-31T17:57:07.279Z","modified":"2026-04-22T10:09:25.069Z","0.1.0":"2026-03-31T17:57:07.489Z","1.0.0":"2026-03-31T18:41:37.430Z","2.0.0":"2026-03-31T18:45:10.281Z","2.0.1":"2026-03-31T21:37:44.870Z","3.0.0":"2026-04-01T02:21:03.812Z","3.0.1":"2026-04-06T02:56:47.701Z","3.0.2":"2026-04-08T06:20:06.910Z","3.0.3":"2026-04-12T09:20:03.894Z","3.1.0":"2026-04-16T18:40:26.939Z","3.1.1":"2026-04-22T10:09:24.767Z"},"bugs":{"url":"https://github.com/minpeter/plugsuits/issues"},"homepage":"https://github.com/minpeter/plugsuits#readme","repository":{"type":"git","url":"git+https://github.com/minpeter/plugsuits.git","directory":"packages/headless"},"description":"A non-interactive, JSONL event-streaming runtime for agent sessions. Instead of rendering to a terminal, it writes structured events to stdout — one JSON object per line. Suitable for CI/CD pipelines, benchmarks, and any programmatic consumer that needs a","maintainers":[{"name":"minpeter","email":"kali2005611@gmail.com"}],"readme":"# @ai-sdk-tool/headless\n\nA non-interactive, JSONL event-streaming runtime for agent sessions. Instead of rendering to a terminal, it writes structured events to stdout — one JSON object per line. Suitable for CI/CD pipelines, benchmarks, and any programmatic consumer that needs a machine-readable transcript.\n\n## Installation\n\n```bash\npnpm add @ai-sdk-tool/headless\n# or\nnpm install @ai-sdk-tool/headless\n```\n\n**Peer dependencies:**\n\n```bash\npnpm add @ai-sdk-tool/harness ai\n```\n\n## Quick Start\n\n```typescript\nimport { createAgent, CheckpointHistory, SessionManager } from \"@ai-sdk-tool/harness\";\nimport { runHeadless, registerSignalHandlers } from \"@ai-sdk-tool/headless\";\nimport { openai } from \"@ai-sdk/openai\";\n\nconst session = new SessionManager();\nconst sessionId = session.initialize();\n\nconst messageHistory = new CheckpointHistory();\nconst agent = await createAgent({\n  model: openai(\"gpt-4o\"),\n  instructions: \"You are a helpful assistant.\",\n});\n\n// Register signal handlers before any async work\nregisterSignalHandlers({\n  onCleanup: () => {},\n  onFatalCleanup: (exitCode) => process.exit(exitCode),\n});\n\n// Run the agent — emits JSONL events to stdout\nawait runHeadless({\n  agent,\n  initialUserMessage: {\n    content: \"Fix the type error in src/index.ts\",\n  },\n  modelId: \"gpt-4o\",\n  sessionId,\n  messageHistory,\n});\n```\n\n**Example output (JSONL stream):**\n\n```jsonl\n{\"type\":\"metadata\",\"timestamp\":\"2026-04-03T10:00:00.000Z\",\"session_id\":\"ses-abc123\",\"agent\":{\"name\":\"code-editing-agent\",\"version\":\"1.0.0\",\"model_name\":\"gpt-4o\"}}\n{\"type\":\"step\",\"step_id\":1,\"timestamp\":\"2026-04-03T10:00:00.000Z\",\"source\":\"user\",\"message\":\"Fix the type error in src/index.ts\"}\n{\"type\":\"step\",\"step_id\":2,\"timestamp\":\"2026-04-03T10:00:01.000Z\",\"source\":\"agent\",\"message\":\"I'll inspect the file.\",\"model_name\":\"gpt-4o\",\"tool_calls\":[{\"tool_call_id\":\"call_1\",\"function_name\":\"read_file\",\"arguments\":{\"path\":\"src/index.ts\"}}],\"observation\":{\"results\":[{\"source_call_id\":\"call_1\",\"content\":\"{\\\"stdout\\\":\\\"...file contents...\\\"}\"}]},\"metrics\":{\"prompt_tokens\":520,\"completion_tokens\":80}}\n{\"type\":\"step\",\"step_id\":3,\"timestamp\":\"2026-04-03T10:00:03.000Z\",\"source\":\"agent\",\"message\":\"I found the issue and fixed it.\",\"model_name\":\"gpt-4o\",\"metrics\":{\"prompt_tokens\":410,\"completion_tokens\":65}}\n```\n\n## API Reference\n\n### `runHeadless(config)`\n\nRuns the agent loop, emitting JSONL events for each turn. Continues looping while the agent makes tool calls. Optionally continues after the main loop if there are incomplete TODO items.\n\n```typescript\nimport { runHeadless } from \"@ai-sdk-tool/headless\";\n\nawait runHeadless({\n  agent,           // RunnableAgent — required\n  sessionId,       // string — becomes metadata.session_id\n  messageHistory,  // CheckpointHistory from @ai-sdk-tool/harness\n  modelId,         // string — current model ID for metadata and agent steps\n  initialUserMessage, // optional initial user turn\n  maxIterations,   // optional number — safety cap on loop iterations\n  maxTodoReminders, // optional number — cap follow-up TODO reminder turns\n  measureUsage,    // optional async usage probe for tighter budgeting\n  emitEvent,       // optional (event: TrajectoryEvent) => void — defaults to stdout JSONL\n  circuitBreaker,  // optional compaction circuit breaker\n  compactionCallbacks, // optional compaction lifecycle callbacks\n  disableCompaction, // optional boolean to skip automatic compaction\n  onBeforeTurn,    // optional async hook before each stream call\n  onInterrupt,     // optional (event: InterruptEvent) => void — caller-abort lifecycle hook\n  onTurnComplete,  // optional receives messages, usage, snapshot, finishReason\n  onTodoReminder,  // optional () => Promise<{ hasReminder, message }> — TODO continuation\n  shouldContinue,  // optional override for the default tool-loop continuation gate\n  streamTimeoutMs, // optional stream response timeout override\n  atifOutputPath,  // optional path for writing trajectory.json directly\n});\n```\n\n**Config fields:**\n\n| Field | Type | Required | Description |\n|-------|------|----------|-------------|\n| `agent` | `RunnableAgent` | yes | Agent with a `stream(opts)` method |\n| `sessionId` | `string` | yes | Unique ID emitted once as `metadata.session_id` |\n| `messageHistory` | `CheckpointHistory` | yes | Conversation history — read and written during the loop |\n| `modelId` | `string` | yes | Current model ID for metadata and `step` events |\n| `initialUserMessage` | `{ content, eventContent?, originalContent? }` | no | Bootstraps the first user turn without mutating history manually |\n| `maxIterations` | `number` | no | Total iteration budget across the entire headless run, including TODO reminder turns; emits an `error` event and stops if exceeded |\n| `maxTodoReminders` | `number` | no | Caps TODO reminder follow-up turns without lowering the main loop iteration budget |\n| `measureUsage` | `(messages) => Promise<UsageMeasurement \\| null>` | no | Optional usage probe used to tighten the next stream budget |\n| `emitEvent` | `(event) => void` | no | Custom event sink; defaults to `console.log(JSON.stringify(event))` |\n| `circuitBreaker` | `CompactionCircuitBreaker` | no | Circuit breaker controlling automatic compaction retries |\n| `compactionCallbacks` | `CompactionOrchestratorCallbacks` | no | Lifecycle callbacks for compaction events |\n| `disableCompaction` | `boolean` | no | Disables automatic compaction entirely |\n| `onBeforeTurn` | `(phase) => BeforeTurnResult \\| Promise<BeforeTurnResult \\| undefined> \\| undefined` | no | Runs before each stream call and can override stream options |\n| `onInterrupt` | `(event: InterruptEvent) => void` | no | Called when the caller aborts the active run |\n| `onTurnComplete` | `(messages, usage?, snapshot?, finishReason?) => void \\| Promise<void>` | no | Runs after each completed turn with usage and snapshot metadata |\n| `onTodoReminder` | `() => Promise<{ hasReminder, message }>` | no | Called after the main loop; if `hasReminder` is true, sends `message` as a user turn and continues |\n| `shouldContinue` | `(finishReason) => boolean` | no | Overrides the default continuation predicate |\n| `streamTimeoutMs` | `number` | no | Overrides the default stream response timeout |\n| `atifOutputPath` | `string` | no | Writes the collected ATIF trajectory JSON to disk after the run |\n\n---\n\n### `emitEvent(event)`\n\nWrites a single `TrajectoryEvent` as a JSONL line to stdout. This is the default event sink used by `runHeadless`.\n\n```typescript\nimport { emitEvent } from \"@ai-sdk-tool/headless\";\n\nemitEvent({\n  type: \"interrupt\",\n  reason: \"caller-abort\",\n  timestamp: new Date().toISOString(),\n});\n// stdout: {\"type\":\"interrupt\",\"reason\":\"caller-abort\",\"timestamp\":\"...\"}\n```\n\n---\n\n### `registerSignalHandlers(config)`\n\nRegisters process signal handlers for graceful shutdown. Handles `SIGINT`, `SIGTERM`, `SIGHUP`, `SIGQUIT`, `uncaughtException`, and `unhandledRejection`.\n\n```typescript\nimport { registerSignalHandlers } from \"@ai-sdk-tool/headless\";\n\nregisterSignalHandlers({\n  onCleanup: () => {\n    // Called on process exit — flush buffers, write final state\n    flushOutputBuffer();\n  },\n  onFatalCleanup: (exitCode) => {\n    // Must call process.exit — typed as `never` to enforce this\n    process.exit(exitCode);\n  },\n});\n```\n\n**Exit codes by signal:**\n\n| Signal | Exit code |\n|--------|-----------|\n| `SIGINT` | 0 |\n| `SIGTERM` | 143 |\n| `SIGHUP` | 129 |\n| `SIGQUIT` | 131 |\n| `uncaughtException` / `unhandledRejection` | 1 |\n\n**Important:** Uses `process.once` — calling `registerSignalHandlers` twice for the same signal is a bug. Call it once at startup.\n\n---\n\n## JSONL Event Types\n\nThe runner streams an internal JSONL event protocol documented in `packages/headless/AGENTS.md`. The persisted `trajectory.json` produced by `TrajectoryCollector` conforms to Harbor's **ATIF-v1.4** schema (<https://www.harborframework.com/docs/agents/trajectory-format>). Lifecycle annotations on the JSONL stream split into two categories: `approval`, `compaction`, and `interrupt` are persisted into `trajectory.extra.*` buckets (not as `steps[*].source` values); `turn-start` and `error` are transient and stay JSONL-only.\n\n### Event overview\n\n| Type | Source | Description |\n|------|--------|-------------|\n| `metadata` | system | Emitted once at start with `session_id` and agent info |\n| `step` | `user` | A user message step |\n| `step` | `agent` | An agent response, including text, reasoning, tool calls, and optional observations |\n| `approval` | system | Structured tool approval lifecycle (`pending`, `approved`, `denied`) |\n| `compaction` | system | Lifecycle event for history compaction |\n| `error` | system | Fatal error or iteration-limit event |\n| `interrupt` | system | Intentional caller interruption (`caller-abort`) |\n| `turn-start` | system | Lifecycle annotation emitted right after `agent.stream()` is dispatched, before the first chunk arrives |\n\n### `metadata`\n\n```typescript\n{\n  type: \"metadata\",\n  timestamp: string,\n  session_id: string,\n  agent: {\n    name: string,\n    version: string,\n    model_name: string,\n  },\n}\n```\n\n### `step`\n\n```typescript\n{\n  type: \"step\",\n  step_id: number,\n  timestamp: string,\n  source: \"user\" | \"agent\",\n  message?: string,\n  model_name?: string,\n  tool_calls?: Array<{\n    tool_call_id: string,\n    function_name: string,\n    arguments: Record<string, unknown>,\n  }>,\n  observation?: {\n    results: Array<{\n      source_call_id: string,\n      content: string,\n    }>,\n  },\n  metrics?: {\n    prompt_tokens: number,\n    completion_tokens: number,\n    cached_tokens?: number,\n    cost_usd?: number,\n  },\n}\n```\n\n### `compaction`\n\n```typescript\n{\n  type: \"compaction\",\n  timestamp: string,\n  event: \"start\" | \"complete\" | \"blocking_change\",\n  tokensBefore: number,\n  tokensAfter?: number,\n  strategy?: string,\n  durationMs?: number,\n  blocking?: boolean,\n  reason?: string,\n}\n```\n\n### `approval`\n\n```typescript\n{\n  type: \"approval\",\n  timestamp: string,\n  state: \"pending\" | \"approved\" | \"denied\",\n  toolCallId?: string,\n  toolName?: string,\n  reason?: string,\n  providerExecuted?: boolean,\n}\n```\n\n### `error`\n\n```typescript\n{\n  type: \"error\",\n  timestamp: string,\n  error: string,\n}\n```\n\n### `interrupt`\n\n```typescript\n{\n  type: \"interrupt\",\n  timestamp: string,\n  reason: \"caller-abort\",\n}\n```\n\n### `turn-start`\n\n```typescript\n{\n  type: \"turn-start\",\n  timestamp: string,\n  phase: \"new-turn\" | \"intermediate-step\",\n}\n```\n\n### TypeScript types\n\n```typescript\nimport type {\n  TrajectoryEvent,\n  StepEvent,\n  UserStepEvent,\n  AgentStepEvent,\n  ApprovalEvent,\n  MetadataEvent,\n  CompactionEvent,\n  ErrorEvent,\n  InterruptEvent,\n  TurnStartEvent,\n} from \"@ai-sdk-tool/headless\";\n```\n\n> Note: pre-ATIF examples that used standalone `user`, `assistant`, `tool_call`, and `tool_result` event types are obsolete. Tool results are now carried in `step.observation.results`, and `session_id` appears only in the initial `metadata` event.\n\n---\n\n## Advanced Usage\n\n### Custom event sink (write to file)\n\n```typescript\nimport { runHeadless, type TrajectoryEvent } from \"@ai-sdk-tool/headless\";\nimport { appendFileSync } from \"node:fs\";\n\nconst logFile = \"output.jsonl\";\n\nawait runHeadless({\n  agent,\n  sessionId,\n  messageHistory,\n  modelId,\n  emitEvent: (event: TrajectoryEvent) => {\n    appendFileSync(logFile, JSON.stringify(event) + \"\\n\");\n  },\n});\n```\n\n### With TODO continuation\n\nKeeps the agent running until all TODO items are complete.\n\n```typescript\nimport { TodoContinuation } from \"@ai-sdk-tool/harness\";\nimport { runHeadless } from \"@ai-sdk-tool/headless\";\n\nconst todo = new TodoContinuation({\n  todoDir: \".sisyphus/todos\",\n  sessionId,\n});\n\nawait runHeadless({\n  agent,\n  sessionId,\n  messageHistory,\n  modelId,\n  onTodoReminder: () => todo.getReminder(),\n});\n```\n\n### Iteration safety cap\n\n```typescript\nawait runHeadless({\n  agent,\n  sessionId,\n  messageHistory,\n  modelId,\n  maxIterations: 50,  // emits an error event and stops after 50 iterations\n});\n```\n\n### Parsing JSONL output\n\n```bash\n# Run headless and filter only agent step events\npnpm run headless -- \"Fix the bug\" | grep '\"type\":\"step\"' | jq 'select(.source == \"agent\") | .message'\n```\n\n```typescript\n// Parse events from a JSONL event log\nimport { createReadStream } from \"node:fs\";\nimport { createInterface } from \"node:readline\";\nimport type { TrajectoryEvent } from \"@ai-sdk-tool/headless\";\n\nconst rl = createInterface({ input: createReadStream(\"output.jsonl\") });\n\nfor await (const line of rl) {\n  const event = JSON.parse(line) as TrajectoryEvent;\n  if (event.type === \"step\" && event.source === \"agent\") {\n    console.log(\"Assistant:\", event.message);\n  }\n}\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md"}