{"_id":"agent-log-viewer","_rev":"28-f29b7350d224e7f85fa4b60e594cab66","name":"agent-log-viewer","dist-tags":{"latest":"1.2.2"},"versions":{"0.1.0":{"name":"agent-log-viewer","version":"0.1.0","license":"MIT","_id":"agent-log-viewer@0.1.0","maintainers":[{"name":"latand666","email":"latand666@gmail.com"}],"os":["linux","darwin"],"bin":{"agent-log-viewer":"bin/cli.mjs"},"dist":{"shasum":"895f04bb42233f032913571cb897d7b259ccd3f7","tarball":"https://registry.npmjs.org/agent-log-viewer/-/agent-log-viewer-0.1.0.tgz","fileCount":2005,"integrity":"sha512-EgPYcypnS0X3ZKxrEFT9GM9TVJ7mXpJRojJP6qRqQT2Pm7WqljRY77mIR4Cmdjzp85cY+4oCODpFTEjKdr/17Q==","signatures":[{"sig":"MEQCIF4sRMDNc22xdn63JAZ32JlMYMQjVwdDTBkKT//PIw91AiAH+vcP/QZpL9aL5QYYm/MTSaJmF0ei2I2HfdWOmfHwXQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28606445},"engines":{"node":">=20.9.0"},"gitHead":"d3e548b9aabdd8b366e09521ac298044f4193a96","scripts":{"dev":"next dev --webpack --hostname 127.0.0.1","lint":"eslint","build":"next build --webpack","start":"next start","prepack":"node scripts/prepack.mjs"},"_npmUser":{"name":"latand666","email":"latand666@gmail.com"},"_npmVersion":"11.16.0","description":"Local web UI that renders Codex / Claude Code agent logs as a live chat-style feed with a session parentage tree","directories":{},"_nodeVersion":"26.4.0","dependencies":{"next":"16.2.10","react":"19.2.4","qrcode":"^1.5.4","react-dom":"19.2.4","lucide-react":"^1.23.0","qrcode-terminal":"^0.12.0"},"ignoreScripts":["sharp","unrs-resolver"],"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9","typescript":"^5","@types/node":"^20","tailwindcss":"^4","@types/react":"^19","@types/qrcode":"^1.5.6","@types/react-dom":"^19","eslint-config-next":"16.2.10","@tailwindcss/postcss":"^4"},"trustedDependencies":["sharp","unrs-resolver"],"_npmOperationalInternal":{"tmp":"tmp/agent-log-viewer_0.1.0_1783196348654_0.37837431371480035","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"agent-log-viewer","version":"0.1.1","license":"MIT","_id":"agent-log-viewer@0.1.1","maintainers":[{"name":"latand666","email":"latand666@gmail.com"}],"os":["linux","darwin"],"bin":{"agent-log-viewer":"bin/cli.mjs"},"dist":{"shasum":"a19330cbca96d467f4dc46f6ad7bbec553a8b0c1","tarball":"https://registry.npmjs.org/agent-log-viewer/-/agent-log-viewer-0.1.1.tgz","fileCount":2028,"integrity":"sha512-dpz1+3eaFM0KeyG5zi/bIbYbLIlwYRnnfYZCSpwKY34G7ENkO7CxxoiBGjAQz/km9zlXqXSpR1KNk11eFou5VA==","signatures":[{"sig":"MEQCIEeo6no/KUDKPIuPvmYB9fX8Gd/W/RO0QOwEd+eyjlpsAiBXDddOlZDTbAXjD5g00wErDaFQgSGoNhj8OUC9VoYBMQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29230441},"engines":{"node":">=20.9.0"},"gitHead":"0b857910e11949e4476a7223bd4248079e37f948","scripts":{"dev":"next dev --webpack --hostname 127.0.0.1","lint":"eslint","build":"next build --webpack","start":"next start","prepack":"node scripts/prepack.mjs"},"_npmUser":{"name":"latand666","email":"latand666@gmail.com"},"_npmVersion":"11.16.0","description":"Local web UI that renders Codex / Claude Code agent logs as a live chat-style feed with a session parentage tree","directories":{},"_nodeVersion":"26.4.0","dependencies":{"next":"16.2.10","react":"19.2.4","qrcode":"^1.5.4","react-dom":"19.2.4","lucide-react":"^1.23.0","qrcode-terminal":"^0.12.0"},"ignoreScripts":["sharp","unrs-resolver"],"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9","typescript":"^5","@types/node":"^20","tailwindcss":"^4","@types/react":"^19","@types/qrcode":"^1.5.6","@types/react-dom":"^19","eslint-config-next":"16.2.10","@tailwindcss/postcss":"^4"},"trustedDependencies":["sharp","unrs-resolver"],"_npmOperationalInternal":{"tmp":"tmp/agent-log-viewer_0.1.1_1783209183662_0.025182334249977956","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"agent-log-viewer","version":"0.2.0","license":"MIT","_id":"agent-log-viewer@0.2.0","maintainers":[{"name":"latand666","email":"latand666@gmail.com"}],"os":["linux","darwin"],"bin":{"agent-log-viewer":"bin/cli.mjs"},"dist":{"shasum":"b85a0b008528b33313515779b549e69218d26ab8","tarball":"https://registry.npmjs.org/agent-log-viewer/-/agent-log-viewer-0.2.0.tgz","fileCount":2033,"integrity":"sha512-sM9DxupDiMObFkjyNtWJx+xCWzw9Lj7wwZ/C0Nqg+EFJfot76YpsSE/zjqg8VE7Q/js2zZ3T9a1vPXI85omaeQ==","signatures":[{"sig":"MEYCIQC983a4Jrj4Aotha7OTbBFK60u8pD0lOYsukhYICdc9pQIhAMj3niEtzc8lrtAd/288kazf3jkefHqCv89QgwiOlZh3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29127829},"engines":{"node":">=20.9.0"},"gitHead":"fde2f2a98ac209a7462d7f05070a358be50a4d24","scripts":{"dev":"next dev --webpack --hostname 127.0.0.1","lint":"eslint","test":"bun test","build":"next build --webpack","start":"next start","prepack":"node scripts/prepack.mjs"},"_npmUser":{"name":"latand666","email":"latand666@gmail.com"},"_npmVersion":"11.16.0","description":"Local web UI that renders Codex / Claude Code agent logs as a live chat-style feed with a session parentage tree","directories":{},"_nodeVersion":"26.4.0","dependencies":{"next":"16.2.10","react":"19.2.4","qrcode":"^1.5.4","react-dom":"19.2.4","lucide-react":"^1.23.0","qrcode-terminal":"^0.12.0"},"ignoreScripts":["sharp","unrs-resolver"],"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9","@types/bun":"^1.3.14","typescript":"^5","@types/node":"^20","tailwindcss":"^4","@types/react":"^19","@types/qrcode":"^1.5.6","@types/react-dom":"^19","eslint-config-next":"16.2.10","@tailwindcss/postcss":"^4"},"trustedDependencies":["sharp","unrs-resolver"],"_npmOperationalInternal":{"tmp":"tmp/agent-log-viewer_0.2.0_1783252370096_0.6590507438631483","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"agent-log-viewer","version":"0.3.0","license":"MIT","_id":"agent-log-viewer@0.3.0","maintainers":[{"name":"latand666","email":"latand666@gmail.com"}],"os":["linux","darwin"],"bin":{"agent-log-viewer":"bin/cli.mjs"},"dist":{"shasum":"f15fc55bf091b1837e047fbe0fe2c20ca01a5713","tarball":"https://registry.npmjs.org/agent-log-viewer/-/agent-log-viewer-0.3.0.tgz","fileCount":2049,"integrity":"sha512-sqmi64jwTSNDcUCU8w/zbD6h2HagHaCXyRcQZo+VbzAvt4hwreuvEBA97EyIHlp3gv8JHUHR434OKgxnHpiMLQ==","signatures":[{"sig":"MEQCIDvemmumjeuqR2oEZaqbkvxzqvLjKDn/ircmn5gqfE5gAiAPPcM5Iggk1p7iScAS0K/xKZW++PRDpWHKUg3UFu9pCw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29380499},"engines":{"node":">=20.9.0"},"gitHead":"96084137ad27e754e0f2337b6bdc5e5e2de3718e","scripts":{"dev":"next dev --webpack --hostname 127.0.0.1","lint":"eslint","test":"bun test","build":"next build --webpack","start":"next start","prepack":"node scripts/prepack.mjs"},"_npmUser":{"name":"latand666","email":"latand666@gmail.com"},"_npmVersion":"11.16.0","description":"Local web UI that renders Codex / Claude Code agent logs as a live chat-style feed with a session parentage tree","directories":{},"_nodeVersion":"26.4.0","dependencies":{"next":"16.2.10","react":"19.2.4","qrcode":"^1.5.4","react-dom":"19.2.4","lucide-react":"^1.23.0","qrcode-terminal":"^0.12.0"},"ignoreScripts":["sharp","unrs-resolver"],"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9","@types/bun":"^1.3.14","typescript":"^5","@types/node":"^20","tailwindcss":"^4","@types/react":"^19","@types/qrcode":"^1.5.6","@types/react-dom":"^19","eslint-config-next":"16.2.10","@tailwindcss/postcss":"^4"},"trustedDependencies":["sharp","unrs-resolver"],"_npmOperationalInternal":{"tmp":"tmp/agent-log-viewer_0.3.0_1783260500456_0.04756239365158299","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"agent-log-viewer","version":"0.4.0","license":"MIT","_id":"agent-log-viewer@0.4.0","maintainers":[{"name":"latand666","email":"latand666@gmail.com"}],"homepage":"https://github.com/Latand/live-log-viewer-next#readme","bugs":{"url":"https://github.com/Latand/live-log-viewer-next/issues"},"os":["linux","darwin"],"bin":{"agent-log-viewer":"bin/cli.mjs"},"dist":{"shasum":"29cdc5dc2c8c43b9a0c8924875c451fd08741015","tarball":"https://registry.npmjs.org/agent-log-viewer/-/agent-log-viewer-0.4.0.tgz","fileCount":2057,"integrity":"sha512-tMv3kEMPrfudoILh22lXwSahgVvL74s820gJcaH5jcMC0FLm7HEVuEZathKncvkI4mF9aWqiTX6nsgVqc4g/3g==","signatures":[{"sig":"MEUCIQCcNY+yFwwVr8B8ntoLHgY/BeLDFfG7jzpez8atWRLplAIgOBOIzCpjrYOAy+Kw6sQ95cSEMABCDaVi1aBsqiWLsCc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/agent-log-viewer@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29462767},"engines":{"node":">=20.9.0"},"gitHead":"17e51e2ad43f4c7c94533b53756b3213edf4c50b","scripts":{"dev":"next dev --webpack --hostname 127.0.0.1","lint":"eslint","test":"bun test","build":"next build --webpack","start":"next start","prepack":"node scripts/prepack.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cdfa63a0-6ab4-4447-90b8-842d6877a099"}},"repository":{"url":"git+https://github.com/Latand/live-log-viewer-next.git","type":"git"},"_npmVersion":"11.18.0","description":"Local web UI that renders Codex / Claude Code agent logs as a live chat-style feed with a session parentage tree","directories":{},"_nodeVersion":"24.18.0","dependencies":{"next":"16.2.10","react":"19.2.4","qrcode":"^1.5.4","react-dom":"19.2.4","lucide-react":"^1.23.0","qrcode-terminal":"^0.12.0"},"ignoreScripts":["sharp","unrs-resolver"],"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9","@types/bun":"^1.3.14","typescript":"^5","@types/node":"^20","tailwindcss":"^4","@types/react":"^19","@types/qrcode":"^1.5.6","@types/react-dom":"^19","eslint-config-next":"16.2.10","@tailwindcss/postcss":"^4"},"trustedDependencies":["sharp","unrs-resolver"],"_npmOperationalInternal":{"tmp":"tmp/agent-log-viewer_0.4.0_1783276752558_0.9632625851036709","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"agent-log-viewer","version":"0.5.0","license":"MIT","_id":"agent-log-viewer@0.5.0","maintainers":[{"name":"latand666","email":"latand666@gmail.com"}],"homepage":"https://github.com/Latand/live-log-viewer-next#readme","bugs":{"url":"https://github.com/Latand/live-log-viewer-next/issues"},"os":["linux","darwin"],"bin":{"agent-log-viewer":"bin/cli.mjs"},"dist":{"shasum":"2c1c0a7257a0d347543cb3ceaeadf82cb6b971fe","tarball":"https://registry.npmjs.org/agent-log-viewer/-/agent-log-viewer-0.5.0.tgz","fileCount":2057,"integrity":"sha512-sEYvPJ49jutBlq+HlFaSHTXEHAxLhQt8ycwGuec8JIQiyE4as4tXwk1WgRlR8xyd6u+4Eg99W8lAMAheBYJsGw==","signatures":[{"sig":"MEYCIQD4wMX6CfLnoTTGqvtqaZepI6D/ii20i7jmJtPmXiZPWQIhAPrrlfWK/PS3qDd8hyIgNPnzhpg7I+1BYloDW1o6waCx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/agent-log-viewer@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29473206},"engines":{"node":">=20.9.0"},"gitHead":"81a5b609b4470a38c06cf2fb164a592510c5e22e","scripts":{"dev":"next dev --webpack --hostname 127.0.0.1","lint":"eslint","test":"bun test","build":"next build --webpack","start":"next start","prepack":"node scripts/prepack.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cdfa63a0-6ab4-4447-90b8-842d6877a099"}},"repository":{"url":"git+https://github.com/Latand/live-log-viewer-next.git","type":"git"},"_npmVersion":"11.18.0","description":"Local web UI that renders Codex / Claude Code agent logs as a live chat-style feed with a session parentage tree","directories":{},"_nodeVersion":"24.18.0","dependencies":{"next":"16.2.10","react":"19.2.4","qrcode":"^1.5.4","react-dom":"19.2.4","lucide-react":"^1.23.0","qrcode-terminal":"^0.12.0"},"ignoreScripts":["sharp","unrs-resolver"],"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9","@types/bun":"^1.3.14","typescript":"^5","@types/node":"^20","tailwindcss":"^4","@types/react":"^19","@types/qrcode":"^1.5.6","@types/react-dom":"^19","eslint-config-next":"16.2.10","@tailwindcss/postcss":"^4"},"trustedDependencies":["sharp","unrs-resolver"],"_npmOperationalInternal":{"tmp":"tmp/agent-log-viewer_0.5.0_1783277072890_0.849782118173523","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"agent-log-viewer","version":"0.6.0","license":"MIT","_id":"agent-log-viewer@0.6.0","maintainers":[{"name":"latand666","email":"latand666@gmail.com"}],"homepage":"https://github.com/Latand/live-log-viewer-next#readme","bugs":{"url":"https://github.com/Latand/live-log-viewer-next/issues"},"os":["linux","darwin"],"bin":{"agent-log-viewer":"bin/cli.mjs"},"dist":{"shasum":"1f0eeb8e9522ca4de00517945d25b252aba54400","tarball":"https://registry.npmjs.org/agent-log-viewer/-/agent-log-viewer-0.6.0.tgz","fileCount":2065,"integrity":"sha512-3yq7w7gPl4BD7WxMaT7FeVsrtKVyrXz1n8JiHlTRSaFEBeSKqjxEnswVH68z0J1cjG6aUcLvtq1+2/EW0r417w==","signatures":[{"sig":"MEUCIQDOpPBRZS4nfWKqu4gfc8RC/CUpwPMzW2Xgeo5H1/ulWQIgTdJhqVKGnq7r9anQwBTl5D7Ez6jLWpW/yUbQ+fpT51o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/agent-log-viewer@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29563375},"engines":{"node":">=20.9.0"},"gitHead":"e9c74e5f38b97617e13d55484b8c2d94e0133cc6","scripts":{"dev":"next dev --webpack --hostname 127.0.0.1","lint":"eslint","test":"bun test","build":"next build --webpack","start":"next start","prepack":"node scripts/prepack.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cdfa63a0-6ab4-4447-90b8-842d6877a099"}},"repository":{"url":"git+https://github.com/Latand/live-log-viewer-next.git","type":"git"},"_npmVersion":"11.18.0","description":"Local web UI that renders Codex / Claude Code agent logs as a live chat-style feed with a session parentage tree","directories":{},"_nodeVersion":"24.18.0","dependencies":{"next":"16.2.10","react":"19.2.4","qrcode":"^1.5.4","react-dom":"19.2.4","lucide-react":"^1.23.0","qrcode-terminal":"^0.12.0"},"ignoreScripts":["sharp","unrs-resolver"],"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9","@types/bun":"^1.3.14","typescript":"^5","@types/node":"^20","tailwindcss":"^4","@types/react":"^19","@types/qrcode":"^1.5.6","@types/react-dom":"^19","eslint-config-next":"16.2.10","@tailwindcss/postcss":"^4"},"trustedDependencies":["sharp","unrs-resolver"],"_npmOperationalInternal":{"tmp":"tmp/agent-log-viewer_0.6.0_1783327992497_0.5351974966279891","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"agent-log-viewer","version":"0.8.0","license":"MIT","_id":"agent-log-viewer@0.8.0","maintainers":[{"name":"latand666","email":"latand666@gmail.com"}],"homepage":"https://github.com/Latand/live-log-viewer-next#readme","bugs":{"url":"https://github.com/Latand/live-log-viewer-next/issues"},"os":["linux","darwin"],"bin":{"agent-log-viewer":"bin/cli.mjs"},"dist":{"shasum":"37845affd78e3a53584f2eba68d351360d2194a0","tarball":"https://registry.npmjs.org/agent-log-viewer/-/agent-log-viewer-0.8.0.tgz","fileCount":2077,"integrity":"sha512-fGLnoRnKg1s8UyYVm7zrnkAqiPHCjtBKKi3oygaYw8AxASO7r/zk3B/6Rh6uN3BV/kAdwTpTynE7HpzWukxmhQ==","signatures":[{"sig":"MEQCIEuxVFKkbTe8dYO2FOm/SMH1qnCzU9E4V4KaY75UX7AbAiAgtaqUKVkk3KkTQjusobnUUYNU9U4rmzJP054JDgm+dA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/agent-log-viewer@0.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29643241},"engines":{"node":">=20.9.0"},"gitHead":"24ced265a0409f930f3a893bc8fe34870f72b292","scripts":{"dev":"next dev --webpack --hostname 127.0.0.1","lint":"eslint","test":"bun test","build":"next build --webpack","start":"next start","prepack":"node scripts/prepack.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cdfa63a0-6ab4-4447-90b8-842d6877a099"}},"repository":{"url":"git+https://github.com/Latand/live-log-viewer-next.git","type":"git"},"_npmVersion":"11.18.0","description":"Local web UI that renders Codex / Claude Code agent logs as a live chat-style feed with a session parentage tree","directories":{},"_nodeVersion":"24.18.0","dependencies":{"next":"16.2.10","react":"19.2.4","qrcode":"^1.5.4","react-dom":"19.2.4","lucide-react":"^1.23.0","qrcode-terminal":"^0.12.0"},"ignoreScripts":["sharp","unrs-resolver"],"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9","@types/bun":"^1.3.14","typescript":"^5","@types/node":"^20","tailwindcss":"^4","@types/react":"^19","@types/qrcode":"^1.5.6","@types/react-dom":"^19","eslint-config-next":"16.2.10","@tailwindcss/postcss":"^4"},"trustedDependencies":["sharp","unrs-resolver"],"_npmOperationalInternal":{"tmp":"tmp/agent-log-viewer_0.8.0_1783337349565_0.6558168190852938","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"agent-log-viewer","version":"0.9.0","license":"MIT","_id":"agent-log-viewer@0.9.0","maintainers":[{"name":"latand666","email":"latand666@gmail.com"}],"homepage":"https://github.com/Latand/live-log-viewer-next#readme","bugs":{"url":"https://github.com/Latand/live-log-viewer-next/issues"},"os":["linux","darwin"],"bin":{"agent-log-viewer":"bin/cli.mjs"},"dist":{"shasum":"574d2029ff4d3cea372d9ef2a44fb89d7e2edb84","tarball":"https://registry.npmjs.org/agent-log-viewer/-/agent-log-viewer-0.9.0.tgz","fileCount":2077,"integrity":"sha512-yJIjoKga/4gYFmzniFjgO/yUjhckVO2zmCZYPfPXVmiF40mej7DAMtb1HGeDIKmmGHDQ+Gr4nj7j01LhZCdW9Q==","signatures":[{"sig":"MEUCICn9wEZueRlSegNrCq9E2nr+dOc0BsgVUoKMZuMoCQyAAiEA1q+HcTdEYovPwNxLUqO9Z57c19Kepleg54RSDx44upE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/agent-log-viewer@0.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29645755},"engines":{"node":">=20.9.0"},"gitHead":"eb2c090e71c697c48a991db7544aa02265a56d41","scripts":{"dev":"next dev --webpack --hostname 127.0.0.1","lint":"eslint","test":"bun test","build":"next build --webpack","start":"next start","prepack":"node scripts/prepack.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cdfa63a0-6ab4-4447-90b8-842d6877a099"}},"repository":{"url":"git+https://github.com/Latand/live-log-viewer-next.git","type":"git"},"_npmVersion":"11.18.0","description":"Local web UI that renders Codex / Claude Code agent logs as a live chat-style feed with a session parentage tree","directories":{},"_nodeVersion":"24.18.0","dependencies":{"next":"16.2.10","react":"19.2.4","qrcode":"^1.5.4","react-dom":"19.2.4","lucide-react":"^1.23.0","qrcode-terminal":"^0.12.0"},"ignoreScripts":["sharp","unrs-resolver"],"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9","@types/bun":"^1.3.14","typescript":"^5","@types/node":"^20","tailwindcss":"^4","@types/react":"^19","@types/qrcode":"^1.5.6","@types/react-dom":"^19","eslint-config-next":"16.2.10","@tailwindcss/postcss":"^4"},"trustedDependencies":["sharp","unrs-resolver"],"_npmOperationalInternal":{"tmp":"tmp/agent-log-viewer_0.9.0_1783343645313_0.4798692201131882","host":"s3://npm-registry-packages-npm-production"}},"0.9.1":{"name":"agent-log-viewer","version":"0.9.1","license":"MIT","_id":"agent-log-viewer@0.9.1","maintainers":[{"name":"latand666","email":"latand666@gmail.com"}],"homepage":"https://github.com/Latand/live-log-viewer-next#readme","bugs":{"url":"https://github.com/Latand/live-log-viewer-next/issues"},"os":["linux","darwin"],"bin":{"agent-log-viewer":"bin/cli.mjs"},"dist":{"shasum":"e507970e45484f8d9b19098cbbdb37b4f85f2ff2","tarball":"https://registry.npmjs.org/agent-log-viewer/-/agent-log-viewer-0.9.1.tgz","fileCount":2077,"integrity":"sha512-l45hugMPx4jgtMr38OPzg+drarubI0qCKuBuvrz+8dmKjDnABuC+b1/vIR4CdfnGEv/LcbSxT9+ygsMbq+Zlcg==","signatures":[{"sig":"MEUCIEEIB9BE/YHw7iWIkoYYn9hxzfzkeUu4/QhY/UiiXdXYAiEA9Gp7jgoqU0cFj+SJoSzZDiCT1UuJhLPZKkDeBqkDOEw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/agent-log-viewer@0.9.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29640419},"engines":{"node":">=20.9.0"},"gitHead":"6b39a9544a6db0a2a1051adaf7d99ef40ab28cab","scripts":{"dev":"next dev --webpack --hostname 127.0.0.1","lint":"eslint","test":"bun test","build":"next build --webpack","start":"next start","prepack":"node scripts/prepack.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cdfa63a0-6ab4-4447-90b8-842d6877a099"}},"repository":{"url":"git+https://github.com/Latand/live-log-viewer-next.git","type":"git"},"_npmVersion":"11.18.0","description":"Local web UI that renders Codex / Claude Code agent logs as a live chat-style feed with a session parentage tree","directories":{},"_nodeVersion":"24.18.0","dependencies":{"next":"16.2.10","react":"19.2.4","qrcode":"^1.5.4","react-dom":"19.2.4","lucide-react":"^1.23.0","qrcode-terminal":"^0.12.0"},"ignoreScripts":["sharp","unrs-resolver"],"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9","@types/bun":"^1.3.14","typescript":"^5","@types/node":"^20","tailwindcss":"^4","@types/react":"^19","@types/qrcode":"^1.5.6","@types/react-dom":"^19","eslint-config-next":"16.2.10","@tailwindcss/postcss":"^4"},"trustedDependencies":["sharp","unrs-resolver"],"_npmOperationalInternal":{"tmp":"tmp/agent-log-viewer_0.9.1_1783345981328_0.6810736155902617","host":"s3://npm-registry-packages-npm-production"}},"0.9.2":{"name":"agent-log-viewer","version":"0.9.2","license":"MIT","_id":"agent-log-viewer@0.9.2","maintainers":[{"name":"latand666","email":"latand666@gmail.com"}],"homepage":"https://github.com/Latand/live-log-viewer-next#readme","bugs":{"url":"https://github.com/Latand/live-log-viewer-next/issues"},"os":["linux","darwin"],"bin":{"agent-log-viewer":"bin/cli.mjs"},"dist":{"shasum":"fd6ef2337a6a504906ca1a3bfcf6edbb1f963987","tarball":"https://registry.npmjs.org/agent-log-viewer/-/agent-log-viewer-0.9.2.tgz","fileCount":2077,"integrity":"sha512-CzeRMunJVZ5FX6YhkMDI7dcI4hzhSYK8Rj6s5MvgfSykCTpQCvNin6CstVlmJj554QxjN7ugj6TlJzN7HeZe+w==","signatures":[{"sig":"MEUCIGGUmJgwWeS8TB/xCAjmx4hX6/iWXtMhO+ghhwMZqYHOAiEAhx3nbzRZYOaoN3/Uu2nRhX9e73U/pA8bshz9DMagrX4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/agent-log-viewer@0.9.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29642330},"engines":{"node":">=20.9.0"},"gitHead":"e60e71645050b95a000f1916381c2e0d5c481db8","scripts":{"dev":"next dev --webpack --hostname 127.0.0.1","lint":"eslint","test":"bun test","build":"next build --webpack","start":"next start","prepack":"node scripts/prepack.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cdfa63a0-6ab4-4447-90b8-842d6877a099"}},"repository":{"url":"git+https://github.com/Latand/live-log-viewer-next.git","type":"git"},"_npmVersion":"11.18.0","description":"Local web UI that renders Codex / Claude Code agent logs as a live chat-style feed with a session parentage tree","directories":{},"_nodeVersion":"24.18.0","dependencies":{"next":"16.2.10","react":"19.2.4","qrcode":"^1.5.4","react-dom":"19.2.4","lucide-react":"^1.23.0","qrcode-terminal":"^0.12.0"},"ignoreScripts":["sharp","unrs-resolver"],"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9","@types/bun":"^1.3.14","typescript":"^5","@types/node":"^20","tailwindcss":"^4","@types/react":"^19","@types/qrcode":"^1.5.6","@types/react-dom":"^19","eslint-config-next":"16.2.10","@tailwindcss/postcss":"^4"},"trustedDependencies":["sharp","unrs-resolver"],"_npmOperationalInternal":{"tmp":"tmp/agent-log-viewer_0.9.2_1783365912294_0.6794579452330032","host":"s3://npm-registry-packages-npm-production"}},"0.9.3":{"name":"agent-log-viewer","version":"0.9.3","license":"MIT","_id":"agent-log-viewer@0.9.3","maintainers":[{"name":"latand666","email":"latand666@gmail.com"}],"homepage":"https://github.com/Latand/live-log-viewer-next#readme","bugs":{"url":"https://github.com/Latand/live-log-viewer-next/issues"},"os":["linux","darwin"],"bin":{"agent-log-viewer":"bin/cli.mjs"},"dist":{"shasum":"a60194b24f77b1e57b1ed02a7309e5c65bf18918","tarball":"https://registry.npmjs.org/agent-log-viewer/-/agent-log-viewer-0.9.3.tgz","fileCount":2085,"integrity":"sha512-UouDGH//dshgLl/dEskGg+iRyNFJPoJHNoHmBgDIbLlT6C38x5TJrlCkIRelDBfhudiYO7wlO+eTJUd6fmRVrg==","signatures":[{"sig":"MEUCIQDyWzKwAcNLq1ij3gW+B5XmcJ9Y5RaCW3l8PxmiL60/ggIgO2a2NthT5nXgSP2AIwbMXD1ASalGJCSi7lUcgQiWrSY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/agent-log-viewer@0.9.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29687703},"engines":{"node":">=20.9.0"},"gitHead":"121236c78ac03432342f8047bce97bf44e3ebd55","scripts":{"dev":"next dev --webpack --hostname 127.0.0.1","lint":"eslint","test":"bun test","build":"next build --webpack","start":"next start","prepack":"node scripts/prepack.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cdfa63a0-6ab4-4447-90b8-842d6877a099"}},"repository":{"url":"git+https://github.com/Latand/live-log-viewer-next.git","type":"git"},"_npmVersion":"11.18.0","description":"Local web UI that renders Codex / Claude Code agent logs as a live chat-style feed with a session parentage tree","directories":{},"_nodeVersion":"24.18.0","dependencies":{"next":"16.2.10","react":"19.2.4","qrcode":"^1.5.4","react-dom":"19.2.4","lucide-react":"^1.23.0","qrcode-terminal":"^0.12.0"},"ignoreScripts":["sharp","unrs-resolver"],"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9","@types/bun":"^1.3.14","typescript":"^5","@types/node":"^20","tailwindcss":"^4","@types/react":"^19","@types/qrcode":"^1.5.6","@types/react-dom":"^19","eslint-config-next":"16.2.10","@tailwindcss/postcss":"^4"},"trustedDependencies":["sharp","unrs-resolver"],"_npmOperationalInternal":{"tmp":"tmp/agent-log-viewer_0.9.3_1783420817562_0.3936750566007394","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"agent-log-viewer","version":"0.11.0","license":"MIT","_id":"agent-log-viewer@0.11.0","maintainers":[{"name":"latand666","email":"latand666@gmail.com"}],"homepage":"https://github.com/Latand/live-log-viewer-next#readme","bugs":{"url":"https://github.com/Latand/live-log-viewer-next/issues"},"os":["linux","darwin"],"bin":{"agent-log-viewer":"bin/cli.mjs"},"dist":{"shasum":"8ff1bd175c0dbf6ce736c165a5a1ef6f386c8b6c","tarball":"https://registry.npmjs.org/agent-log-viewer/-/agent-log-viewer-0.11.0.tgz","fileCount":2089,"integrity":"sha512-SIm+u4R/VsIt37NbrCdvaLieGy0ojk7d3+Qb69jypg5teTYm78FJFF4QdgADs3RSpSMTjAIdvSTtjoJj1tXY+w==","signatures":[{"sig":"MEQCIDAzIOh/NL1Gy+yqipQbNkN8iDntcBSaX6zZXWBrBSpIAiA91aiQRVDvSOi/Kd1wNARULVbRB+uuzICyzzaqquIfPw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/agent-log-viewer@0.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29715644},"engines":{"node":">=20.9.0"},"gitHead":"e149ffe9e919579df7f2ed47528453bf86215a89","scripts":{"dev":"next dev --webpack --hostname 127.0.0.1","lint":"eslint","test":"bun test","build":"next build --webpack","start":"next start","prepack":"node scripts/prepack.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cdfa63a0-6ab4-4447-90b8-842d6877a099"}},"repository":{"url":"git+https://github.com/Latand/live-log-viewer-next.git","type":"git"},"_npmVersion":"11.18.0","description":"Local web UI that renders Codex / Claude Code agent logs as a live chat-style feed with a session parentage tree","directories":{},"_nodeVersion":"24.18.0","dependencies":{"next":"16.2.10","react":"19.2.4","qrcode":"^1.5.4","react-dom":"19.2.4","lucide-react":"^1.23.0","qrcode-terminal":"^0.12.0"},"ignoreScripts":["sharp","unrs-resolver"],"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9","@types/bun":"^1.3.14","typescript":"^5","@types/node":"^20","tailwindcss":"^4","@types/react":"^19","@types/qrcode":"^1.5.6","@types/react-dom":"^19","eslint-config-next":"16.2.10","@tailwindcss/postcss":"^4"},"trustedDependencies":["sharp","unrs-resolver"],"_npmOperationalInternal":{"tmp":"tmp/agent-log-viewer_0.11.0_1783506648865_0.9765307541759807","host":"s3://npm-registry-packages-npm-production"}},"0.11.1":{"name":"agent-log-viewer","version":"0.11.1","license":"MIT","_id":"agent-log-viewer@0.11.1","maintainers":[{"name":"latand666","email":"latand666@gmail.com"}],"homepage":"https://github.com/Latand/live-log-viewer-next#readme","bugs":{"url":"https://github.com/Latand/live-log-viewer-next/issues"},"os":["linux","darwin"],"bin":{"agent-log-viewer":"bin/cli.mjs"},"dist":{"shasum":"34f8a2a72a54f7151eb330a8815987bc0a839cfe","tarball":"https://registry.npmjs.org/agent-log-viewer/-/agent-log-viewer-0.11.1.tgz","fileCount":2089,"integrity":"sha512-Cg3UTVbHZyaFjz7A4NBrqnRMn4bsCshwY4r6byS6gwde4VT6RTbahyV2DWO5OKQkZk8riISXVQX9ss+9DcT/Gg==","signatures":[{"sig":"MEUCIQDZnteOslpAjbuQiciHp595Ta87hIPVFw5YZ+CjCV/hyAIgEk8jf62s5yDzINN09B0PIVBgUxvw84TfZWsyLrZgl18=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/agent-log-viewer@0.11.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29718880},"engines":{"node":">=20.9.0"},"gitHead":"e5ed0f79c6d9f870388c514f83a8b7c1e659fe36","scripts":{"dev":"next dev --webpack --hostname 127.0.0.1","lint":"eslint","test":"bun test","build":"next build --webpack","start":"next start","prepack":"node scripts/prepack.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cdfa63a0-6ab4-4447-90b8-842d6877a099"}},"repository":{"url":"git+https://github.com/Latand/live-log-viewer-next.git","type":"git"},"_npmVersion":"11.18.0","description":"Local web UI that renders Codex / Claude Code agent logs as a live chat-style feed with a session parentage tree","directories":{},"_nodeVersion":"24.18.0","dependencies":{"next":"16.2.10","react":"19.2.4","qrcode":"^1.5.4","react-dom":"19.2.4","lucide-react":"^1.23.0","qrcode-terminal":"^0.12.0"},"ignoreScripts":["sharp","unrs-resolver"],"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9","@types/bun":"^1.3.14","typescript":"^5","@types/node":"^20","tailwindcss":"^4","@types/react":"^19","@types/qrcode":"^1.5.6","@types/react-dom":"^19","eslint-config-next":"16.2.10","@tailwindcss/postcss":"^4"},"trustedDependencies":["sharp","unrs-resolver"],"_npmOperationalInternal":{"tmp":"tmp/agent-log-viewer_0.11.1_1783513006801_0.5996741969356887","host":"s3://npm-registry-packages-npm-production"}},"0.11.2":{"name":"agent-log-viewer","version":"0.11.2","license":"MIT","_id":"agent-log-viewer@0.11.2","maintainers":[{"name":"latand666","email":"latand666@gmail.com"}],"homepage":"https://github.com/Latand/live-log-viewer-next#readme","bugs":{"url":"https://github.com/Latand/live-log-viewer-next/issues"},"os":["linux","darwin"],"bin":{"agent-log-viewer":"bin/cli.mjs"},"dist":{"shasum":"8c1e79f39e3c81599f1450382bfb0b4542a9eef5","tarball":"https://registry.npmjs.org/agent-log-viewer/-/agent-log-viewer-0.11.2.tgz","fileCount":2093,"integrity":"sha512-odOh+jztEL65PCYoCQohbnnjjlfpSi9/3YeIYe3QXol6zjWe2DSJ6i/GmsAbr4XaCpkyl/BVZQ2sLL0ZgFmwWA==","signatures":[{"sig":"MEUCICKDy5YSFRNRnYv/7lTI2vJX5E98JDbWFie7EKzMLI0SAiEAyK2YXv7a6WyRaca630itQdN+OTAIS875ZGfHl5raMwQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/agent-log-viewer@0.11.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29745612},"engines":{"node":">=20.9.0"},"gitHead":"62b5d52d3067f3e0d512ac8f5c06caca3ecb0f01","scripts":{"dev":"next dev --webpack --hostname 127.0.0.1","lint":"eslint","test":"bun test","build":"next build --webpack","start":"next start","prepack":"node scripts/prepack.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cdfa63a0-6ab4-4447-90b8-842d6877a099"}},"repository":{"url":"git+https://github.com/Latand/live-log-viewer-next.git","type":"git"},"_npmVersion":"11.18.0","description":"Local web UI that renders Codex / Claude Code agent logs as a live chat-style feed with a session parentage tree","directories":{},"_nodeVersion":"24.18.0","dependencies":{"next":"16.2.10","react":"19.2.4","qrcode":"^1.5.4","react-dom":"19.2.4","lucide-react":"^1.23.0","qrcode-terminal":"^0.12.0"},"ignoreScripts":["sharp","unrs-resolver"],"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9","@types/bun":"^1.3.14","typescript":"^5","@types/node":"^20","tailwindcss":"^4","@types/react":"^19","@types/qrcode":"^1.5.6","@types/react-dom":"^19","eslint-config-next":"16.2.10","@tailwindcss/postcss":"^4"},"trustedDependencies":["sharp","unrs-resolver"],"_npmOperationalInternal":{"tmp":"tmp/agent-log-viewer_0.11.2_1783519045371_0.5880058294004813","host":"s3://npm-registry-packages-npm-production"}},"0.11.3":{"name":"agent-log-viewer","version":"0.11.3","license":"MIT","_id":"agent-log-viewer@0.11.3","maintainers":[{"name":"latand666","email":"latand666@gmail.com"}],"homepage":"https://github.com/Latand/live-log-viewer-next#readme","bugs":{"url":"https://github.com/Latand/live-log-viewer-next/issues"},"os":["linux","darwin"],"bin":{"agent-log-viewer":"bin/cli.mjs"},"dist":{"shasum":"7b90782fc8ddc3f97ace6699221184630d6a7390","tarball":"https://registry.npmjs.org/agent-log-viewer/-/agent-log-viewer-0.11.3.tgz","fileCount":2093,"integrity":"sha512-FmBy02JVqzF0A3TXee7QmAS7Mgw/hRyVaToZ2CygVwaM3Vj/G2QD3ItY/iNqvMXL6KyyIaZTCmxu33+pkpic3A==","signatures":[{"sig":"MEUCIQD4T0UJR6TG0f736c0xjZ+vgLt4jB7wEayOZxhZ7UW+tQIgZ574QYsj9JDsv7QGMsuoCgC3zSvMhURd/X4z1BZmXlY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/agent-log-viewer@0.11.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29753372},"engines":{"node":">=20.9.0"},"gitHead":"a26aa1a96a7f467fd88dde10d671113417ed8542","scripts":{"dev":"next dev --webpack --hostname 127.0.0.1","lint":"eslint","test":"bun test","build":"next build --webpack","start":"next start","prepack":"node scripts/prepack.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cdfa63a0-6ab4-4447-90b8-842d6877a099"}},"repository":{"url":"git+https://github.com/Latand/live-log-viewer-next.git","type":"git"},"_npmVersion":"11.18.0","description":"Local web UI that renders Codex / Claude Code agent logs as a live chat-style feed with a session parentage tree","directories":{},"_nodeVersion":"24.18.0","dependencies":{"next":"16.2.10","react":"19.2.4","qrcode":"^1.5.4","react-dom":"19.2.4","lucide-react":"^1.23.0","qrcode-terminal":"^0.12.0"},"ignoreScripts":["sharp","unrs-resolver"],"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9","@types/bun":"^1.3.14","typescript":"^5","@types/node":"^20","tailwindcss":"^4","@types/react":"^19","@types/qrcode":"^1.5.6","@types/react-dom":"^19","eslint-config-next":"16.2.10","@tailwindcss/postcss":"^4"},"trustedDependencies":["sharp","unrs-resolver"],"_npmOperationalInternal":{"tmp":"tmp/agent-log-viewer_0.11.3_1783526232767_0.9434307207324257","host":"s3://npm-registry-packages-npm-production"}},"0.11.4":{"name":"agent-log-viewer","version":"0.11.4","license":"MIT","_id":"agent-log-viewer@0.11.4","maintainers":[{"name":"latand666","email":"latand666@gmail.com"}],"homepage":"https://github.com/Latand/live-log-viewer-next#readme","bugs":{"url":"https://github.com/Latand/live-log-viewer-next/issues"},"os":["linux","darwin"],"bin":{"agent-log-viewer":"bin/cli.mjs"},"dist":{"shasum":"9ab9e01096ac6aba3e4ba6d578bbb450b071d5bf","tarball":"https://registry.npmjs.org/agent-log-viewer/-/agent-log-viewer-0.11.4.tgz","fileCount":2093,"integrity":"sha512-wTNdXZaThE+IHGEhJN8u2D2+kigK2lRHIhaYjdliwW32K1RImPYv9HtPy/1h4V/CLsFohhmRYW/EIQ85ryBTvw==","signatures":[{"sig":"MEUCIQCkgJpjfBxvHXZXXA/1+xQFu87Gs7mh+SPomVi5Z5gUmwIgQG4svoK6wskf6qgPKd4LUcLh6CEfxAcK2At6vKrMqps=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/agent-log-viewer@0.11.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29753721},"engines":{"node":">=20.9.0"},"gitHead":"b0214d4ba0300bf3da454d1f28eba34a2f48a6f0","scripts":{"dev":"next dev --webpack --hostname 127.0.0.1","lint":"eslint","test":"bun test","build":"next build --webpack","start":"next start","prepack":"node scripts/prepack.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cdfa63a0-6ab4-4447-90b8-842d6877a099"}},"repository":{"url":"git+https://github.com/Latand/live-log-viewer-next.git","type":"git"},"_npmVersion":"11.18.0","description":"Local web UI that renders Codex / Claude Code agent logs as a live chat-style feed with a session parentage tree","directories":{},"_nodeVersion":"24.18.0","dependencies":{"next":"16.2.10","react":"19.2.4","qrcode":"^1.5.4","react-dom":"19.2.4","lucide-react":"^1.23.0","qrcode-terminal":"^0.12.0"},"ignoreScripts":["sharp","unrs-resolver"],"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9","@types/bun":"^1.3.14","typescript":"^5","@types/node":"^20","tailwindcss":"^4","@types/react":"^19","@types/qrcode":"^1.5.6","@types/react-dom":"^19","eslint-config-next":"16.2.10","@tailwindcss/postcss":"^4"},"trustedDependencies":["sharp","unrs-resolver"],"_npmOperationalInternal":{"tmp":"tmp/agent-log-viewer_0.11.4_1783526978571_0.5656381465696168","host":"s3://npm-registry-packages-npm-production"}},"0.11.5":{"name":"agent-log-viewer","version":"0.11.5","license":"MIT","_id":"agent-log-viewer@0.11.5","maintainers":[{"name":"latand666","email":"latand666@gmail.com"}],"homepage":"https://github.com/Latand/live-log-viewer-next#readme","bugs":{"url":"https://github.com/Latand/live-log-viewer-next/issues"},"os":["linux","darwin"],"bin":{"agent-log-viewer":"bin/cli.mjs"},"dist":{"shasum":"548628d3b940836eade3144d9bbd4cd5228392a8","tarball":"https://registry.npmjs.org/agent-log-viewer/-/agent-log-viewer-0.11.5.tgz","fileCount":2093,"integrity":"sha512-GBdPgd6oJ8MOKsx9cZSKnxjcwNC7UcRmpYuKSOGqamGtTbjSJZ8Mv+M/b2HUa/hSjm/jSAAyoqgI1+jUFfmMtA==","signatures":[{"sig":"MEUCIQC0MJomf3TCmtY0zwNvsgT4roSci8Cx5bs7uYXX6uXn1gIgTepQrvOkBqenoW1GyECYivCK10ENATWNd/TIQG2YaxA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/agent-log-viewer@0.11.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29755334},"engines":{"node":">=20.9.0"},"gitHead":"8b33e9e6bfe18d9946a678c5cb2c18be10ef69f4","scripts":{"dev":"next dev --webpack --hostname 127.0.0.1","lint":"eslint","test":"bun test","build":"next build --webpack","start":"next start","prepack":"node scripts/prepack.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cdfa63a0-6ab4-4447-90b8-842d6877a099"}},"repository":{"url":"git+https://github.com/Latand/live-log-viewer-next.git","type":"git"},"_npmVersion":"11.18.0","description":"Local web UI that renders Codex / Claude Code agent logs as a live chat-style feed with a session parentage tree","directories":{},"_nodeVersion":"24.18.0","dependencies":{"next":"16.2.10","react":"19.2.4","qrcode":"^1.5.4","react-dom":"19.2.4","lucide-react":"^1.23.0","qrcode-terminal":"^0.12.0"},"ignoreScripts":["sharp","unrs-resolver"],"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9","@types/bun":"^1.3.14","typescript":"^5","@types/node":"^20","tailwindcss":"^4","@types/react":"^19","@types/qrcode":"^1.5.6","@types/react-dom":"^19","eslint-config-next":"16.2.10","@tailwindcss/postcss":"^4"},"trustedDependencies":["sharp","unrs-resolver"],"_npmOperationalInternal":{"tmp":"tmp/agent-log-viewer_0.11.5_1783529673491_0.6237352890989294","host":"s3://npm-registry-packages-npm-production"}},"0.11.6":{"name":"agent-log-viewer","version":"0.11.6","license":"MIT","_id":"agent-log-viewer@0.11.6","maintainers":[{"name":"latand666","email":"latand666@gmail.com"}],"homepage":"https://github.com/Latand/live-log-viewer-next#readme","bugs":{"url":"https://github.com/Latand/live-log-viewer-next/issues"},"os":["linux","darwin"],"bin":{"agent-log-viewer":"bin/cli.mjs"},"dist":{"shasum":"5d9a14c9424e6d39d5a1167cb0b42d9114528ac0","tarball":"https://registry.npmjs.org/agent-log-viewer/-/agent-log-viewer-0.11.6.tgz","fileCount":2093,"integrity":"sha512-PNLqNIA5gAdipoRZ6pMcCfPLim9LbnprEuKb1xJqguCrWPMgEPkWhmdrso5jfmABW+sgmP7eR2aeVVEB4giR2w==","signatures":[{"sig":"MEYCIQDTjY046+1qTi85qnEEHTNYmhqxDW5MRi78z1btuoOwGAIhAPSwsez7nDjG1sGzSNwA8bdLUWa1VOvwPJq7QulnxSxF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/agent-log-viewer@0.11.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29757169},"engines":{"node":">=20.9.0"},"gitHead":"181268b56b8480dcd2faf8b09e60ea53c763c574","scripts":{"dev":"next dev --webpack --hostname 127.0.0.1","lint":"eslint","test":"bun test","build":"next build --webpack","start":"next start","prepack":"node scripts/prepack.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cdfa63a0-6ab4-4447-90b8-842d6877a099"}},"repository":{"url":"git+https://github.com/Latand/live-log-viewer-next.git","type":"git"},"_npmVersion":"11.16.0","description":"Local web UI that renders Codex / Claude Code agent logs as a live chat-style feed with a session parentage tree","directories":{},"_nodeVersion":"24.18.0","dependencies":{"next":"16.2.10","react":"19.2.4","qrcode":"^1.5.4","react-dom":"19.2.4","lucide-react":"^1.23.0","qrcode-terminal":"^0.12.0"},"ignoreScripts":["sharp","unrs-resolver"],"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9","@types/bun":"^1.3.14","typescript":"^5","@types/node":"^20","tailwindcss":"^4","@types/react":"^19","@types/qrcode":"^1.5.6","@types/react-dom":"^19","eslint-config-next":"16.2.10","@tailwindcss/postcss":"^4"},"trustedDependencies":["sharp","unrs-resolver"],"_npmOperationalInternal":{"tmp":"tmp/agent-log-viewer_0.11.6_1783570613454_0.9448579374053323","host":"s3://npm-registry-packages-npm-production"}},"0.11.7":{"name":"agent-log-viewer","version":"0.11.7","license":"MIT","_id":"agent-log-viewer@0.11.7","maintainers":[{"name":"latand666","email":"latand666@gmail.com"}],"homepage":"https://github.com/Latand/live-log-viewer-next#readme","bugs":{"url":"https://github.com/Latand/live-log-viewer-next/issues"},"os":["linux","darwin"],"bin":{"agent-log-viewer":"bin/cli.mjs"},"dist":{"shasum":"0945a34e48943623377b074531f189090d6fc219","tarball":"https://registry.npmjs.org/agent-log-viewer/-/agent-log-viewer-0.11.7.tgz","fileCount":2093,"integrity":"sha512-AeFfig98ZN/PWinbRSE4S2kmFOyyff/sDO8A0oYcAvoLlyysd57iNdSt6X7TWawWN7JSSNY5fSWIhatn49wwiA==","signatures":[{"sig":"MEQCIEKhkDctZq+BJcbVYGYsbJ4UPP0SX7Oprh+6p9Tq2c+YAiBlhRqtJgzB3l06ZKMV4xurOnrdf0nU2FuhISPImYZt2w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/agent-log-viewer@0.11.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29769882},"engines":{"node":">=20.9.0"},"gitHead":"089e46c9671e91a41113804e544592bdd859e549","scripts":{"dev":"next dev --webpack --hostname 127.0.0.1","lint":"eslint","test":"bun test","build":"next build --webpack","start":"next start","prepack":"node scripts/prepack.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cdfa63a0-6ab4-4447-90b8-842d6877a099"}},"repository":{"url":"git+https://github.com/Latand/live-log-viewer-next.git","type":"git"},"_npmVersion":"11.16.0","description":"Local web UI that renders Codex / Claude Code agent logs as a live chat-style feed with a session parentage tree","directories":{},"_nodeVersion":"24.18.0","dependencies":{"next":"16.2.10","react":"19.2.4","qrcode":"^1.5.4","react-dom":"19.2.4","lucide-react":"^1.23.0","qrcode-terminal":"^0.12.0"},"ignoreScripts":["sharp","unrs-resolver"],"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9","@types/bun":"^1.3.14","typescript":"^5","@types/node":"^20","tailwindcss":"^4","@types/react":"^19","@types/qrcode":"^1.5.6","@types/react-dom":"^19","eslint-config-next":"16.2.10","@tailwindcss/postcss":"^4"},"trustedDependencies":["sharp","unrs-resolver"],"_npmOperationalInternal":{"tmp":"tmp/agent-log-viewer_0.11.7_1783623885214_0.12795348656270655","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"agent-log-viewer","version":"1.0.0","license":"MIT","_id":"agent-log-viewer@1.0.0","maintainers":[{"name":"latand666","email":"latand666@gmail.com"}],"homepage":"https://github.com/Latand/live-log-viewer-next#readme","bugs":{"url":"https://github.com/Latand/live-log-viewer-next/issues"},"os":["linux","darwin"],"bin":{"agent-log-viewer":"bin/cli.mjs","agent-log-viewer-mcp":"bin/mcp-server.mjs"},"dist":{"shasum":"e713f3f95ce7f1a6e44132e620023afc6d9d83f1","tarball":"https://registry.npmjs.org/agent-log-viewer/-/agent-log-viewer-1.0.0.tgz","fileCount":2388,"integrity":"sha512-zeFCVX1q1qGBqQesP6b2mkhMiOVfXh9KYRUNGoT7RsO5AWCr2x+qfsu/n9rJjnxvK4eF+wlaTx3fXQw2+UG47w==","signatures":[{"sig":"MEYCIQDVYRkAIC4cOlShRaMNBT8ftwjJoIeLjOvNtRpJxAwSyQIhALVXcTstFS5rSd5WkRlGZFDuh1zBnx6XbfnJfagbAl0U","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/agent-log-viewer@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36572652},"_from":"file:/home/runner/work/_temp/npm-package.xca9JR/agent-log-viewer-1.0.0.tgz","engines":{"node":">=20.9.0"},"exports":{"./mcp-server":"./bin/mcp-server.mjs","./package.json":"./package.json"},"scripts":{"dev":"NODE_ENV=development next dev --webpack --hostname 127.0.0.1","lint":"eslint","test":"bun test","build":"next build --webpack && bun run build:mcp","start":"next start","prepack":"node scripts/prepack.mjs","build:mcp":"bun scripts/build-mcp.ts","demo:motion":"bun scripts/demo-motion.ts","demo:capture":"bun scripts/demo-capture.ts","privacy:check":"LLV_PRIVACY_KNOWN_VALUE_FINGERPRINTS_FILE=scripts/privacy-known-value-fingerprints.json LLV_PRIVACY_OCR_LANGUAGES=eng+ukr bun scripts/privacy-publication-gate.ts --require-known-values --check-commits --base origin/main","deploy:staging":"bun scripts/deploy-staging.ts","privacy:fingerprints":"bun scripts/generate-privacy-known-value-fingerprints.ts","privacy:github-audit":"LLV_PRIVACY_KNOWN_VALUE_FINGERPRINTS_FILE=scripts/privacy-known-value-fingerprints.json bun scripts/privacy-github-audit.ts","privacy:placeholders":"bun scripts/generate-privacy-placeholders.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cdfa63a0-6ab4-4447-90b8-842d6877a099"}},"_resolved":"/home/runner/work/_temp/npm-package.xca9JR/agent-log-viewer-1.0.0.tgz","_integrity":"sha512-zeFCVX1q1qGBqQesP6b2mkhMiOVfXh9KYRUNGoT7RsO5AWCr2x+qfsu/n9rJjnxvK4eF+wlaTx3fXQw2+UG47w==","repository":{"url":"git+https://github.com/Latand/live-log-viewer-next.git","type":"git"},"_npmVersion":"11.16.0","description":"Local web UI that renders Codex / Claude Code agent logs as a live chat-style feed with a session parentage tree","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"4.4.3","next":"16.2.10","react":"19.2.4","qrcode":"^1.5.4","entities":"^7.0.1","react-dom":"19.2.4","highlight.js":"^11.11.1","lucide-react":"^1.23.0","qrcode-terminal":"^0.12.0","@modelcontextprotocol/sdk":"1.29.0"},"ignoreScripts":["sharp","unrs-resolver"],"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9","happy-dom":"^20.10.6","@types/bun":"^1.3.14","typescript":"^5","@types/node":"^20","tailwindcss":"^4","@types/react":"^19","@types/qrcode":"^1.5.6","playwright-core":"1.61.1","@types/react-dom":"^19","eslint-config-next":"16.2.10","@tailwindcss/postcss":"^4"},"trustedDependencies":["sharp","unrs-resolver"],"_npmOperationalInternal":{"tmp":"tmp/agent-log-viewer_1.0.0_1785564025482_0.21876919161842467","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"agent-log-viewer","version":"1.0.1","license":"MIT","_id":"agent-log-viewer@1.0.1","maintainers":[{"name":"latand666","email":"latand666@gmail.com"}],"homepage":"https://github.com/Latand/live-log-viewer-next#readme","bugs":{"url":"https://github.com/Latand/live-log-viewer-next/issues"},"os":["linux","darwin"],"bin":{"agent-log-viewer":"bin/cli.mjs","agent-log-viewer-mcp":"bin/mcp-server.mjs"},"dist":{"shasum":"e6114ba443a8121d2f9c5d295fca9b56524b75b9","tarball":"https://registry.npmjs.org/agent-log-viewer/-/agent-log-viewer-1.0.1.tgz","fileCount":2490,"integrity":"sha512-9x+zkFH3fh8wCWF+TfYytR6JcyIjZBZs4vFCASAyQkIpHEJvUNpu9PBBr3kE4yRaCQS0PjBwwQKKBJ4Ij6LaaQ==","signatures":[{"sig":"MEQCICUxTr3HaofkLHrsOK7LaCPnuHFnmxAbFwdFd/998gooAiAa1lvilMe44Me/Etqauun4bg4471vVffj+IK/l2QJFog==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCGEVPZI/yINWXrqqLJcvHzXzm1q2oA2kqFOasrZyQfhQIgULkIXB3YbIdFTERuWuAacTSDgMN8B0MnwD0+byHLFkk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/agent-log-viewer@1.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":44574117},"_from":"file:/home/runner/work/_temp/npm-package.IBdCCJ/agent-log-viewer-1.0.1.tgz","engines":{"bun":">=1.2.0","node":">=20.9.0"},"exports":{"./mcp-server":"./bin/mcp-server.mjs","./package.json":"./package.json"},"scripts":{"dev":"NODE_ENV=development bun --bun node_modules/.bin/next dev --webpack --hostname 127.0.0.1","lint":"eslint","test":"bun test","build":"next build --webpack && bun run build:mcp","start":"bun --bun node_modules/.bin/next start","prepack":"node scripts/prepack.mjs","build:mcp":"bun scripts/build-mcp.ts","demo:motion":"bun scripts/demo-motion.ts","demo:capture":"bun scripts/demo-capture.ts","privacy:check":"LLV_PRIVACY_KNOWN_VALUE_FINGERPRINTS_FILE=scripts/privacy-known-value-fingerprints.json LLV_PRIVACY_OCR_LANGUAGES=eng+ukr bun scripts/privacy-publication-gate.ts --require-known-values --check-commits --base origin/main","deploy:staging":"bun scripts/deploy-staging.ts","telegram:provision":"node bin/provision-telegram-connector.mjs","privacy:fingerprints":"bun scripts/generate-privacy-known-value-fingerprints.ts","privacy:github-audit":"LLV_PRIVACY_KNOWN_VALUE_FINGERPRINTS_FILE=scripts/privacy-known-value-fingerprints.json bun scripts/privacy-github-audit.ts","privacy:placeholders":"bun scripts/generate-privacy-placeholders.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cdfa63a0-6ab4-4447-90b8-842d6877a099"}},"_resolved":"/home/runner/work/_temp/npm-package.IBdCCJ/agent-log-viewer-1.0.1.tgz","_integrity":"sha512-9x+zkFH3fh8wCWF+TfYytR6JcyIjZBZs4vFCASAyQkIpHEJvUNpu9PBBr3kE4yRaCQS0PjBwwQKKBJ4Ij6LaaQ==","repository":{"url":"git+https://github.com/Latand/live-log-viewer-next.git","type":"git"},"_npmVersion":"11.17.0","description":"Local web UI that renders Codex / Claude Code agent logs as a live chat-style feed with a session parentage tree","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"4.4.3","next":"16.2.10","react":"19.2.4","qrcode":"^1.5.4","entities":"^7.0.1","react-dom":"19.2.4","pdfjs-dist":"^6.2.108","highlight.js":"^11.11.1","lucide-react":"^1.23.0","qrcode-terminal":"^0.12.0","@modelcontextprotocol/sdk":"1.29.0"},"ignoreScripts":["sharp","unrs-resolver"],"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9","happy-dom":"^20.10.6","@types/bun":"^1.3.14","typescript":"^5","@types/node":"^20","tailwindcss":"^4","@types/react":"^19","@types/qrcode":"^1.5.6","playwright-core":"1.61.1","@types/react-dom":"^19","eslint-config-next":"16.2.10","@tailwindcss/postcss":"^4"},"trustedDependencies":["sharp","unrs-resolver"],"_npmOperationalInternal":{"tmp":"tmp/agent-log-viewer_1.0.1_1787674039744_0.5578997163749273","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"agent-log-viewer","version":"1.0.2","license":"MIT","_id":"agent-log-viewer@1.0.2","maintainers":[{"name":"latand666","email":"latand666@gmail.com"}],"homepage":"https://github.com/Latand/live-log-viewer-next#readme","bugs":{"url":"https://github.com/Latand/live-log-viewer-next/issues"},"os":["linux","darwin"],"bin":{"agent-log-viewer":"bin/cli.mjs","agent-log-viewer-mcp":"bin/mcp-server.mjs"},"dist":{"shasum":"83b9c8c455f15dc791ddfe22e45e43a7837096cc","tarball":"https://registry.npmjs.org/agent-log-viewer/-/agent-log-viewer-1.0.2.tgz","fileCount":2491,"integrity":"sha512-a3qX3m/TU7v4cf2jSsCgUP2q2wHQGHDzcNXQ39jiUKm9zFKPrfSme0GHQCKI0Ay53R8ufLcRQjiLmylQ6WBfFQ==","signatures":[{"sig":"MEYCIQDYlGIMMc6pkL5Q4afx3GsaxlFFW4P0UFt75OMAQtuEngIhANnC72TpkVRJRkwLzu86tdyO3mEctfcgSEhl+Ch57Ahb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQC9ifhrCzP8ygWWmW5ZXZuNM2+ma329k/Mci2Q+/O30igIgKAG/HIYPMivYBz+im++w5NHn3R9OSv3KKyRKO8bTGic=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/agent-log-viewer@1.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":46260154},"_from":"file:/home/runner/work/_temp/npm-package.rHoUTa/agent-log-viewer-1.0.2.tgz","engines":{"bun":">=1.2.0","node":">=20.9.0"},"exports":{"./mcp-server":"./bin/mcp-server.mjs","./package.json":"./package.json"},"scripts":{"dev":"NODE_ENV=development bun --bun node_modules/.bin/next dev --webpack --hostname 127.0.0.1","lint":"eslint","test":"bun test","build":"next build --webpack && bun run build:mcp","start":"bun --bun node_modules/.bin/next start","prepack":"node scripts/prepack.mjs","build:mcp":"bun scripts/build-mcp.ts","demo:motion":"bun scripts/demo-motion.ts","demo:capture":"bun scripts/demo-capture.ts","privacy:check":"LLV_PRIVACY_KNOWN_VALUE_FINGERPRINTS_FILE=scripts/privacy-known-value-fingerprints.json LLV_PRIVACY_OCR_LANGUAGES=eng+ukr bun scripts/privacy-publication-gate.ts --require-known-values --check-commits --base origin/main","deploy:staging":"bun scripts/deploy-staging.ts","telegram:provision":"node bin/provision-telegram-connector.mjs","privacy:fingerprints":"bun scripts/generate-privacy-known-value-fingerprints.ts","privacy:github-audit":"LLV_PRIVACY_KNOWN_VALUE_FINGERPRINTS_FILE=scripts/privacy-known-value-fingerprints.json bun scripts/privacy-github-audit.ts","privacy:placeholders":"bun scripts/generate-privacy-placeholders.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cdfa63a0-6ab4-4447-90b8-842d6877a099"}},"_resolved":"/home/runner/work/_temp/npm-package.rHoUTa/agent-log-viewer-1.0.2.tgz","_integrity":"sha512-a3qX3m/TU7v4cf2jSsCgUP2q2wHQGHDzcNXQ39jiUKm9zFKPrfSme0GHQCKI0Ay53R8ufLcRQjiLmylQ6WBfFQ==","repository":{"url":"git+https://github.com/Latand/live-log-viewer-next.git","type":"git"},"_npmVersion":"11.17.0","description":"Local web UI that renders Codex / Claude Code agent logs as a live chat-style feed with a session parentage tree","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"4.4.3","next":"16.2.10","react":"19.2.4","qrcode":"^1.5.4","entities":"^7.0.1","react-dom":"19.2.4","pdfjs-dist":"^6.2.108","highlight.js":"^11.11.1","lucide-react":"^1.23.0","qrcode-terminal":"^0.12.0","@modelcontextprotocol/sdk":"1.29.0"},"ignoreScripts":["sharp","unrs-resolver"],"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9","happy-dom":"^20.10.6","@types/bun":"^1.3.14","typescript":"^5","@types/node":"^20","tailwindcss":"^4","@types/react":"^19","@types/qrcode":"^1.5.6","playwright-core":"1.61.1","@types/react-dom":"^19","eslint-config-next":"16.2.10","@tailwindcss/postcss":"^4"},"trustedDependencies":["sharp","unrs-resolver"],"_npmOperationalInternal":{"tmp":"tmp/agent-log-viewer_1.0.2_1787685178756_0.2801533491649226","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"agent-log-viewer","version":"1.0.3","license":"MIT","_id":"agent-log-viewer@1.0.3","maintainers":[{"name":"latand666","email":"latand666@gmail.com"}],"homepage":"https://github.com/Latand/live-log-viewer-next#readme","bugs":{"url":"https://github.com/Latand/live-log-viewer-next/issues"},"os":["linux","darwin"],"bin":{"agent-log-viewer":"bin/cli.mjs","agent-log-viewer-mcp":"bin/mcp-server.mjs"},"dist":{"shasum":"2c8fa435b899aba12776ffaa199cee8641604937","tarball":"https://registry.npmjs.org/agent-log-viewer/-/agent-log-viewer-1.0.3.tgz","fileCount":2520,"integrity":"sha512-CrxvLoLA78Qn9uOON5nbpcehhXzNPT+xwdSU5b8UWnDozkoTqA3hmROyzDg6qhioY2T04nc82I9j/hQt3F14lQ==","signatures":[{"sig":"MEUCIQDQMDTMvD6krioxfWdiLprHZf68KggJPHZxxAUjt1ppLwIgVw9GJyUCD3I9Bj2X4ZcRp/MgQqKho4XvVs4xe9Ec8ow=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQClWYfacnqY0Ry0U4QgUXniair4aWBJ3StkH/Vcr/RZcgIgJ9V6nS/KDV2Bm+e5uk6sVFUUAKTXF2zYvs+k+xjcbAo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/agent-log-viewer@1.0.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":47094955},"_from":"file:/home/runner/work/_temp/npm-package.OYi37b/agent-log-viewer-1.0.3.tgz","engines":{"bun":">=1.2.0","node":">=20.9.0"},"exports":{"./mcp-server":"./bin/mcp-server.mjs","./package.json":"./package.json"},"scripts":{"dev":"NODE_ENV=development bun --bun node_modules/.bin/next dev --webpack --hostname 127.0.0.1","lint":"eslint","test":"bun test","build":"next build --webpack && bun run build:mcp","start":"bun --bun node_modules/.bin/next start","prepack":"node scripts/prepack.mjs","build:mcp":"bun scripts/build-mcp.ts","demo:motion":"bun scripts/demo-motion.ts","demo:capture":"bun scripts/demo-capture.ts","privacy:check":"LLV_PRIVACY_KNOWN_VALUE_FINGERPRINTS_FILE=scripts/privacy-known-value-fingerprints.json LLV_PRIVACY_OCR_LANGUAGES=eng+ukr bun scripts/privacy-publication-gate.ts --require-known-values --check-commits --base origin/main","deploy:staging":"bun scripts/deploy-staging.ts","telegram:provision":"node bin/provision-telegram-connector.mjs","privacy:fingerprints":"bun scripts/generate-privacy-known-value-fingerprints.ts","privacy:github-audit":"LLV_PRIVACY_KNOWN_VALUE_FINGERPRINTS_FILE=scripts/privacy-known-value-fingerprints.json bun scripts/privacy-github-audit.ts","privacy:placeholders":"bun scripts/generate-privacy-placeholders.ts","bootstrap:runtime-host":"bun scripts/bootstrap-runtime-host.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cdfa63a0-6ab4-4447-90b8-842d6877a099"}},"_resolved":"/home/runner/work/_temp/npm-package.OYi37b/agent-log-viewer-1.0.3.tgz","_integrity":"sha512-CrxvLoLA78Qn9uOON5nbpcehhXzNPT+xwdSU5b8UWnDozkoTqA3hmROyzDg6qhioY2T04nc82I9j/hQt3F14lQ==","repository":{"url":"git+https://github.com/Latand/live-log-viewer-next.git","type":"git"},"_npmVersion":"11.17.0","description":"Local web UI that renders Codex / Claude Code agent logs as a live chat-style feed with a session parentage tree","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"4.4.3","next":"16.2.10","react":"19.2.8","qrcode":"^1.5.4","entities":"^8.0.0","react-dom":"19.2.8","pdfjs-dist":"^6.2.108","highlight.js":"^11.11.1","lucide-react":"^1.23.0","qrcode-terminal":"^0.12.0","@modelcontextprotocol/sdk":"1.30.0"},"ignoreScripts":["sharp","unrs-resolver"],"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10","happy-dom":"^20.10.6","@types/bun":"^1.3.14","typescript":"^5","@types/node":"^26","tailwindcss":"^4","@types/react":"^19","@types/qrcode":"^1.5.6","playwright-core":"1.62.1","@types/react-dom":"^19","eslint-config-next":"16.2.10","@tailwindcss/postcss":"^4"},"trustedDependencies":["sharp","unrs-resolver"],"_npmOperationalInternal":{"tmp":"tmp/agent-log-viewer_1.0.3_1787928514937_0.07993241055442324","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"agent-log-viewer","version":"1.1.0","license":"MIT","_id":"agent-log-viewer@1.1.0","maintainers":[{"name":"latand666","email":"latand666@gmail.com"}],"homepage":"https://github.com/Latand/live-log-viewer-next#readme","bugs":{"url":"https://github.com/Latand/live-log-viewer-next/issues"},"os":["linux","darwin","win32"],"bin":{"agent-log-viewer":"bin/cli.mjs","agent-log-viewer-mcp":"bin/mcp-server.mjs"},"dist":{"shasum":"59f2cf369c1e5e0b51068cd91be84d3b57fd650a","tarball":"https://registry.npmjs.org/agent-log-viewer/-/agent-log-viewer-1.1.0.tgz","fileCount":2584,"integrity":"sha512-Nn9B2i00hvrZpKe1vezre7B+UKSPqYC05k1AT3vU3w/yjsUu4TZbrtY7aaV6cc7bFUuuTnBpkd/QfVW+YqYzhQ==","signatures":[{"sig":"MEQCIGQV+m6fWqmLO7jNOnlTC0w36lVbZhxSWkMlM2Jcc3dUAiAcoGf8xN5T5y8izhRFP/xvdKMRFMdd0Mq8xAbqq/h15w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIFIa6ALJ0WXbUKfmq3++pQcUE18trartW+JHf2yCQbCeAiByvrdRGB/NJz7LctQdhcTH4BoJwx8n4LYu3cqM3txwKw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/agent-log-viewer@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50110836},"_from":"file:/home/runner/work/_temp/npm-package.f6XNJS/agent-log-viewer-1.1.0.tgz","engines":{"bun":">=1.4.0","node":">=20.9.0"},"exports":{"./mcp-server":"./bin/mcp-server.mjs","./package.json":"./package.json"},"scripts":{"dev":"NODE_ENV=development bun --bun node_modules/.bin/next dev --webpack --hostname 127.0.0.1","lint":"eslint","test":"bun test","build":"next build --webpack && bun run build:mcp","start":"bun --bun node_modules/.bin/next start","prepack":"node scripts/prepack.mjs","build:mcp":"bun scripts/build-mcp.ts","demo:motion":"bun scripts/demo-motion.ts","demo:capture":"bun scripts/demo-capture.ts","privacy:check":"LLV_PRIVACY_KNOWN_VALUE_FINGERPRINTS_FILE=scripts/privacy-known-value-fingerprints.json LLV_PRIVACY_OCR_LANGUAGES=eng+ukr bun scripts/privacy-publication-gate.ts --require-known-values --check-commits --base origin/main","deploy:staging":"bun scripts/deploy-staging.ts","telegram:provision":"node bin/provision-telegram-connector.mjs","privacy:fingerprints":"bun scripts/generate-privacy-known-value-fingerprints.ts","privacy:github-audit":"LLV_PRIVACY_KNOWN_VALUE_FINGERPRINTS_FILE=scripts/privacy-known-value-fingerprints.json bun scripts/privacy-github-audit.ts","privacy:placeholders":"bun scripts/generate-privacy-placeholders.ts","bootstrap:runtime-host":"bun scripts/bootstrap-runtime-host.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cdfa63a0-6ab4-4447-90b8-842d6877a099"}},"_resolved":"/home/runner/work/_temp/npm-package.f6XNJS/agent-log-viewer-1.1.0.tgz","overrides":{"fast-uri":"^3.1.6"},"_integrity":"sha512-Nn9B2i00hvrZpKe1vezre7B+UKSPqYC05k1AT3vU3w/yjsUu4TZbrtY7aaV6cc7bFUuuTnBpkd/QfVW+YqYzhQ==","repository":{"url":"git+https://github.com/Latand/live-log-viewer-next.git","type":"git"},"_npmVersion":"11.19.0","description":"Local web UI that renders Codex / Claude Code agent logs as a live chat-style feed with a session parentage tree","directories":{},"_nodeVersion":"24.20.0","dependencies":{"zod":"4.4.3","next":"16.3.2","react":"19.2.8","qrcode":"^1.5.4","entities":"^8.0.0","react-dom":"19.2.8","pdfjs-dist":"^6.2.108","highlight.js":"^11.11.1","lucide-react":"^1.23.0","qrcode-terminal":"^0.12.0","@modelcontextprotocol/sdk":"1.30.0"},"ignoreScripts":["sharp","unrs-resolver"],"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10","happy-dom":"^20.10.6","@types/bun":"^1.3.14","typescript":"^5","@types/node":"^26","tailwindcss":"^4","@types/react":"^19","@types/qrcode":"^1.5.6","playwright-core":"1.62.1","@types/react-dom":"^19","eslint-config-next":"16.3.2","@tailwindcss/postcss":"^4"},"patchedDependencies":{"next@16.3.2":"patches/next-16.3.2.patch"},"trustedDependencies":["sharp","unrs-resolver"],"_npmOperationalInternal":{"tmp":"tmp/agent-log-viewer_1.1.0_1788858794707_0.07050807840980822","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"agent-log-viewer","version":"1.2.0","license":"MIT","_id":"agent-log-viewer@1.2.0","maintainers":[{"name":"latand666","email":"latand666@gmail.com"}],"homepage":"https://github.com/Latand/live-log-viewer-next#readme","bugs":{"url":"https://github.com/Latand/live-log-viewer-next/issues"},"os":["linux","darwin","win32"],"bin":{"agent-log-viewer":"bin/cli.mjs","agent-log-viewer-mcp":"bin/mcp-server.mjs"},"dist":{"shasum":"13c24e5a7e13f3fe48160972e832c408ea13a790","tarball":"https://registry.npmjs.org/agent-log-viewer/-/agent-log-viewer-1.2.0.tgz","fileCount":2619,"integrity":"sha512-Jy6nvm2O6e+Vo7XrWHfFp9u7eeZTPXV1cOGUYhS69yKOFqG7ayitvQNARwIa4lfO1q0+Xj2tLPDfhY84AJ7nhQ==","signatures":[{"sig":"MEUCIDQRqpUkUesi1Tn2y+9xylbXXE2CqNvYA7hoz8Rfi1S2AiEAwQ/kljNr7/V3Qz/p0RhZJyxIXKc5OqpwQtnszksg6Vg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIBCZqkLn+tLqXqSLQZww+wcuPsbuHleL2728bqFl8b87AiEArBlMttEqvaZwNcjvk7mBgna7GpHymKV7+w8IYHOlZV8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/agent-log-viewer@1.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":53067028},"_from":"file:/home/runner/work/_temp/npm-package.RWcL3O/agent-log-viewer-1.2.0.tgz","engines":{"bun":">=1.4.0","node":">=20.9.0"},"exports":{"./mcp-server":"./bin/mcp-server.mjs","./package.json":"./package.json"},"scripts":{"dev":"NODE_ENV=development bun --bun node_modules/.bin/next dev --webpack --hostname 127.0.0.1","lint":"eslint","test":"bun test","build":"next build --webpack && bun run build:mcp","start":"bun --bun node_modules/.bin/next start","prepack":"node scripts/prepack.mjs","build:mcp":"bun scripts/build-mcp.ts","demo:motion":"bun scripts/demo-motion.ts","demo:capture":"bun scripts/demo-capture.ts","privacy:check":"LLV_PRIVACY_KNOWN_VALUE_FINGERPRINTS_FILE=scripts/privacy-known-value-fingerprints.json LLV_PRIVACY_OCR_LANGUAGES=eng+ukr bun scripts/privacy-publication-gate.ts --require-known-values --check-commits --base origin/main","deploy:staging":"bun scripts/deploy-staging.ts","telegram:provision":"node bin/provision-telegram-connector.mjs","privacy:fingerprints":"bun scripts/generate-privacy-known-value-fingerprints.ts","privacy:github-audit":"LLV_PRIVACY_KNOWN_VALUE_FINGERPRINTS_FILE=scripts/privacy-known-value-fingerprints.json bun scripts/privacy-github-audit.ts","privacy:placeholders":"bun scripts/generate-privacy-placeholders.ts","bootstrap:runtime-host":"bun scripts/bootstrap-runtime-host.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cdfa63a0-6ab4-4447-90b8-842d6877a099"}},"_resolved":"/home/runner/work/_temp/npm-package.RWcL3O/agent-log-viewer-1.2.0.tgz","overrides":{"fast-uri":"^3.1.6"},"_integrity":"sha512-Jy6nvm2O6e+Vo7XrWHfFp9u7eeZTPXV1cOGUYhS69yKOFqG7ayitvQNARwIa4lfO1q0+Xj2tLPDfhY84AJ7nhQ==","repository":{"url":"git+https://github.com/Latand/live-log-viewer-next.git","type":"git"},"_npmVersion":"11.19.0","description":"Local web UI that renders Codex / Claude Code agent logs as a live chat-style feed with a session parentage tree","directories":{},"_nodeVersion":"24.20.0","dependencies":{"zod":"4.4.3","next":"16.3.3","react":"19.2.8","qrcode":"^1.5.4","entities":"^8.0.0","react-dom":"19.2.8","pdfjs-dist":"^6.2.108","highlight.js":"^11.11.1","lucide-react":"^1.23.0","qrcode-terminal":"^0.12.0","@modelcontextprotocol/sdk":"1.30.0"},"ignoreScripts":["sharp","unrs-resolver"],"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10","happy-dom":"^20.10.6","@types/bun":"^1.3.14","typescript":"^5","@types/node":"^26","tailwindcss":"^4","@types/react":"^19","@types/qrcode":"^1.5.6","playwright-core":"1.62.1","@types/react-dom":"^19","eslint-config-next":"16.3.2","@tailwindcss/postcss":"^4"},"patchedDependencies":{"next@16.3.3":"patches/next-16.3.3.patch"},"trustedDependencies":["sharp","unrs-resolver"],"_npmOperationalInternal":{"tmp":"tmp/agent-log-viewer_1.2.0_1789825583597_0.47849461982887087","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"agent-log-viewer","version":"1.2.1","license":"MIT","_id":"agent-log-viewer@1.2.1","maintainers":[{"name":"latand666","email":"latand666@gmail.com"}],"homepage":"https://github.com/Latand/live-log-viewer-next#readme","bugs":{"url":"https://github.com/Latand/live-log-viewer-next/issues"},"os":["linux","darwin","win32"],"bin":{"agent-log-viewer":"bin/cli.mjs","agent-log-viewer-mcp":"bin/mcp-server.mjs"},"dist":{"shasum":"691a8f390497cf2e8c7adaf19c2d5fef518b9cb1","tarball":"https://registry.npmjs.org/agent-log-viewer/-/agent-log-viewer-1.2.1.tgz","fileCount":2622,"integrity":"sha512-s+kUKEGY3wa66PhfIN3VBYZSKhdjo1sas4HiL5OUSBnQ27N5dV0PrS+aekn0b/EsuV81UFij3Mw+UVfe9nEG1Q==","signatures":[{"sig":"MEYCIQDtB2JWvFL5MMVNsv0ipBeJ9qLEvSqleOE7acrassMtxAIhAI1aARG5yOYZ9nwO0FU06gc/JEMm0GoceczUmjt1IVCZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIEIdor/br125b0tEQjbXE1GhkQXuVlF3z4KbewmqyrHmAiB3jydNDYdY2bUWJmxW1xI2BnO9H5RXLHD+SZGf3u1uDQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/agent-log-viewer@1.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":53308413},"_from":"file:/home/runner/work/_temp/npm-package.kHJDq7/agent-log-viewer-1.2.1.tgz","engines":{"bun":">=1.4.0","node":">=20.9.0"},"exports":{"./mcp-server":"./bin/mcp-server.mjs","./package.json":"./package.json"},"scripts":{"dev":"NODE_ENV=development bun --bun node_modules/.bin/next dev --webpack --hostname 127.0.0.1","lint":"eslint","test":"bun test","build":"next build --webpack && bun run build:mcp","start":"bun --bun node_modules/.bin/next start","prepack":"node scripts/prepack.mjs","build:mcp":"bun scripts/build-mcp.ts","demo:motion":"bun scripts/demo-motion.ts","demo:capture":"bun scripts/demo-capture.ts","privacy:check":"LLV_PRIVACY_KNOWN_VALUE_FINGERPRINTS_FILE=scripts/privacy-known-value-fingerprints.json LLV_PRIVACY_OCR_LANGUAGES=eng+ukr bun scripts/privacy-publication-gate.ts --require-known-values --check-commits --base origin/main","deploy:staging":"bun scripts/deploy-staging.ts","telegram:provision":"node bin/provision-telegram-connector.mjs","privacy:fingerprints":"bun scripts/generate-privacy-known-value-fingerprints.ts","privacy:github-audit":"LLV_PRIVACY_KNOWN_VALUE_FINGERPRINTS_FILE=scripts/privacy-known-value-fingerprints.json bun scripts/privacy-github-audit.ts","privacy:placeholders":"bun scripts/generate-privacy-placeholders.ts","bootstrap:runtime-host":"bun scripts/bootstrap-runtime-host.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cdfa63a0-6ab4-4447-90b8-842d6877a099"}},"_resolved":"/home/runner/work/_temp/npm-package.kHJDq7/agent-log-viewer-1.2.1.tgz","overrides":{"fast-uri":"^3.1.6"},"_integrity":"sha512-s+kUKEGY3wa66PhfIN3VBYZSKhdjo1sas4HiL5OUSBnQ27N5dV0PrS+aekn0b/EsuV81UFij3Mw+UVfe9nEG1Q==","repository":{"url":"git+https://github.com/Latand/live-log-viewer-next.git","type":"git"},"_npmVersion":"11.19.0","description":"Local web UI that renders Codex / Claude Code agent logs as a live chat-style feed with a session parentage tree","directories":{},"_nodeVersion":"24.20.0","dependencies":{"zod":"4.4.3","next":"16.3.3","react":"19.2.8","qrcode":"^1.5.4","entities":"^8.0.0","react-dom":"19.2.8","pdfjs-dist":"^6.2.108","highlight.js":"^11.11.1","lucide-react":"^1.23.0","qrcode-terminal":"^0.12.0","@modelcontextprotocol/sdk":"1.30.0"},"ignoreScripts":["sharp","unrs-resolver"],"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10","happy-dom":"^20.10.6","@types/bun":"^1.3.14","typescript":"^5","@types/node":"^26","tailwindcss":"^4","@types/react":"^19","@types/qrcode":"^1.5.6","playwright-core":"1.62.1","@types/react-dom":"^19","eslint-config-next":"16.3.2","@tailwindcss/postcss":"^4"},"patchedDependencies":{"next@16.3.3":"patches/next-16.3.3.patch"},"trustedDependencies":["sharp","unrs-resolver"],"_npmOperationalInternal":{"tmp":"tmp/agent-log-viewer_1.2.1_1789842856599_0.9186364681269081","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"os":["linux","darwin","win32"],"_id":"agent-log-viewer@1.2.2","bin":{"agent-log-viewer":"bin/cli.mjs","agent-log-viewer-mcp":"bin/mcp-server.mjs"},"bugs":{"url":"https://github.com/Latand/live-log-viewer-next/issues"},"dist":{"shasum":"bcb60d65ea524c9b774f2da891367d2ccb5c2008","tarball":"https://registry.npmjs.org/agent-log-viewer/-/agent-log-viewer-1.2.2.tgz","fileCount":2649,"integrity":"sha512-BXrwdmnmR+crgauzK/zPZuPZkd5fDesH0D331N/FITnONZZogsvtAiHN3G0EVdl5GDYMfeIZay23NhQqcPyeng==","signatures":[{"sig":"MEUCIH0qgnVyY7wNEToNlKyT8/M1fiVdKoLaHOe6wTpeTauEAiEAwlJFZSInzqXyyx83Fng2vk7Kb3IGEVuQrZBKWYG30mc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHYhh/5pgWMcK9Cl0MkVbKm3C1DsGhnUC93Tg8xyeabIAiAgNlAgZXfI+4D2+E2uVyz2xQv8vthBQvtwcImsyknbCg=="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/agent-log-viewer@1.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":53897778},"name":"agent-log-viewer","_from":"file:/home/runner/work/_temp/npm-package.GDjlNT/agent-log-viewer-1.2.2.tgz","engines":{"bun":">=1.4.0","node":">=20.9.0"},"exports":{"./mcp-server":"./bin/mcp-server.mjs","./package.json":"./package.json"},"license":"MIT","scripts":{"dev":"NODE_ENV=development bun --bun node_modules/.bin/next dev --webpack --hostname 127.0.0.1","lint":"eslint","test":"bun test","build":"next build --webpack && bun run build:mcp","start":"bun --bun node_modules/.bin/next start","prepack":"node scripts/prepack.mjs","build:mcp":"bun scripts/build-mcp.ts","demo:motion":"bun scripts/demo-motion.ts","demo:capture":"bun scripts/demo-capture.ts","privacy:check":"LLV_PRIVACY_KNOWN_VALUE_FINGERPRINTS_FILE=scripts/privacy-known-value-fingerprints.json LLV_PRIVACY_OCR_LANGUAGES=eng+ukr bun scripts/privacy-publication-gate.ts --require-known-values --check-commits --base origin/main","deploy:staging":"bun scripts/deploy-staging.ts","telegram:provision":"node bin/provision-telegram-connector.mjs","privacy:fingerprints":"bun scripts/generate-privacy-known-value-fingerprints.ts","privacy:github-audit":"LLV_PRIVACY_KNOWN_VALUE_FINGERPRINTS_FILE=scripts/privacy-known-value-fingerprints.json bun scripts/privacy-github-audit.ts","privacy:placeholders":"bun scripts/generate-privacy-placeholders.ts","bootstrap:runtime-host":"bun scripts/bootstrap-runtime-host.ts"},"version":"1.2.2","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cdfa63a0-6ab4-4447-90b8-842d6877a099"}},"homepage":"https://github.com/Latand/live-log-viewer-next#readme","_resolved":"/home/runner/work/_temp/npm-package.GDjlNT/agent-log-viewer-1.2.2.tgz","overrides":{"fast-uri":"^3.1.6"},"_integrity":"sha512-BXrwdmnmR+crgauzK/zPZuPZkd5fDesH0D331N/FITnONZZogsvtAiHN3G0EVdl5GDYMfeIZay23NhQqcPyeng==","repository":{"url":"git+https://github.com/Latand/live-log-viewer-next.git","type":"git"},"_npmVersion":"11.19.0","description":"Local web UI that renders Codex / Claude Code agent logs as a live chat-style feed with a session parentage tree","directories":{},"maintainers":[{"name":"latand666","email":"latand666@gmail.com"}],"_nodeVersion":"24.20.0","dependencies":{"zod":"4.4.3","next":"16.3.3","react":"19.2.8","qrcode":"^1.5.4","entities":"^8.0.0","react-dom":"19.2.8","pdfjs-dist":"^6.2.108","highlight.js":"^11.11.1","lucide-react":"^1.23.0","qrcode-terminal":"^0.12.0","@modelcontextprotocol/sdk":"1.30.0"},"ignoreScripts":["sharp","unrs-resolver"],"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10","happy-dom":"^20.10.6","@types/bun":"^1.3.14","typescript":"^5","@types/node":"^26","tailwindcss":"^4","@types/react":"^19","@types/qrcode":"^1.5.6","playwright-core":"1.62.1","@types/react-dom":"^19","eslint-config-next":"16.3.2","@tailwindcss/postcss":"^4"},"patchedDependencies":{"next@16.3.3":"patches/next-16.3.3.patch"},"trustedDependencies":["sharp","unrs-resolver"],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/agent-log-viewer_1.2.2_1789855504397_0.3859084659231682"}}},"time":{"created":"2026-07-04T20:19:08.592Z","modified":"2026-09-19T22:05:04.967Z","0.1.0":"2026-07-04T20:19:09.045Z","0.1.1":"2026-07-04T23:53:04.057Z","0.2.0":"2026-07-05T11:52:50.373Z","0.3.0":"2026-07-05T14:08:20.739Z","0.4.0":"2026-07-05T18:39:12.833Z","0.5.0":"2026-07-05T18:44:33.220Z","0.6.0":"2026-07-06T08:53:12.794Z","0.8.0":"2026-07-06T11:29:09.877Z","0.9.0":"2026-07-06T13:14:05.664Z","0.9.1":"2026-07-06T13:53:01.573Z","0.9.2":"2026-07-06T19:25:12.618Z","0.9.3":"2026-07-07T10:40:17.891Z","0.11.0":"2026-07-08T10:30:49.142Z","0.11.1":"2026-07-08T12:16:47.288Z","0.11.2":"2026-07-08T13:57:25.617Z","0.11.3":"2026-07-08T15:57:13.046Z","0.11.4":"2026-07-08T16:09:38.881Z","0.11.5":"2026-07-08T16:54:33.855Z","0.11.6":"2026-07-09T04:16:53.714Z","0.11.7":"2026-07-09T19:04:45.546Z","1.0.0":"2026-08-01T06:00:25.892Z","1.0.1":"2026-08-25T16:07:20.002Z","1.0.2":"2026-08-25T19:12:59.077Z","1.0.3":"2026-08-28T14:48:35.215Z","1.1.0":"2026-09-08T09:13:14.946Z","1.2.0":"2026-09-19T13:46:23.912Z","1.2.1":"2026-09-19T18:34:16.867Z","1.2.2":"2026-09-19T22:05:04.637Z"},"bugs":{"url":"https://github.com/Latand/live-log-viewer-next/issues"},"license":"MIT","homepage":"https://github.com/Latand/live-log-viewer-next#readme","repository":{"url":"git+https://github.com/Latand/live-log-viewer-next.git","type":"git"},"description":"Local web UI that renders Codex / Claude Code agent logs as a live chat-style feed with a session parentage tree","maintainers":[{"name":"latand666","email":"latand666@gmail.com"}],"readme":"# Agent Log Viewer\n\n`agent-log-viewer` is a local web UI that turns raw Codex / Claude Code agent\nlogs into a readable, live-updating chat feed. It discovers every session,\nsubagent and background shell task on your machine, links them into a\nparent→child tree, and tails the selected one in real time.\n\n![From the overview board into a session and its live tail](docs/media/board-to-live-tail.gif)\n\nThe default setup runs locally against transcripts already on disk. It reads\n`~/.claude` and `~/.codex` directly, while operational Viewer state is kept in\na local SQLite database under its private configuration directory.\nOptional outbound integrations stay disabled until you configure them:\n\n```bash\nbunx agent-log-viewer   # or: npx agent-log-viewer\n```\n\nSee [WakaTime activity integration](docs/wakatime.md) for opt-in activity\nexport, its disclosure boundary, and disablement steps.\n\nPrefer video? A 45-second cut of the full flow lives at\n[docs/media/demo.mp4](docs/media/demo.mp4).\n\n## The tour\n\n### Read any session as a chat\n\nUser bubbles, assistant prose, tool-call cards with ✓/✗ statuses, expandable\ncommand output and diffs — for **Claude Code** sessions and their subagents\n(`~/.claude/projects/**/*.jsonl`), **Codex CLI** rollouts\n(`~/.codex/sessions/**/rollout-*.jsonl`) with command cards, patches and\nservice events, and **background shell tasks** (recovered from the transcript\nand shown above the terminal output).\n\n![The chat feed: user bubbles, assistant prose, and tool-call cards with\nstatuses and expandable output](docs/media/chat-feed.png)\n\n### Hand a project to an orchestrator\n\n![The orchestrator dock beside its project board](docs/media/orchestrator-dock.png)\n\nEach project can designate one agent as its **orchestrator**. Press\n**Orchestrator** in the project header, tell it what you want shipped, and it\nopens a lane per issue, spawns the implementer, runs a fresh reviewer each\nround and merges on APPROVE. Its mandate and any handoff from a predecessor are\nwritten for you — there is no \"you are an orchestrator\" prompt to compose — and\nyou come back to the board when an agent needs a decision.\n\n[docs/orchestrator.md](docs/orchestrator.md) walks the whole flow on a fresh\ninstall: the dock, the board, pipelines, tasks, the attention queue, the\nmodel/effort matrix the conveyor uses, and when three tasks a week does not\nneed any of it.\n\n### Spawn agents from the board\n\nEach project is a pannable, zoomable scheme — root conversations on top,\nspawned agents one generation below, arrows colored by engine. Draft a new\nagent right on the board: pick Claude or Codex, a model and reasoning effort,\ntype the first prompt, and it launches.\n\n![Drafting and configuring a new agent on the project board](docs/media/spawn-agent.gif)\n\n### Run implement → review loops\n\nThe viewer orchestrates review cycles: a long-lived implementer, a fresh\nread-only reviewer each round over the full diff, findings relayed\nautomatically, and a verdict deck in the scheme view.\n\n![A review loop: round 1 requested changes, round 2 re-checks live](docs/media/review-loop.gif)\n\n### Answer a blocked agent from the browser\n\nWhen an agent stops on an `AskUserQuestion`, the question surfaces as a card\nwith clickable options. The answer is delivered to the agent and confirmed\nagainst the transcript — the agent just keeps going.\n\n![Answering a pending AskUserQuestion from the feed](docs/media/pending-question.gif)\n\n### And everything around it\n\n- **Parentage tree**: session → subagents → rollouts → background tasks, built\n  server-side by scanning transcripts (append-only incremental,\n  cached — the warm `/api/files` poll stays around 100 ms).\n- **Live activity**: content-based badges — a transcript reads *working* while\n  it is mid-turn and *done* once the final assistant message lands.\n- **Deep links**: every selection is reflected in the URL (`#f=<path>`), so a\n  link opens that exact log.\n- **English or Ukrainian UI**, model chips (`opus`, `gpt-5.6-sol`, `sonnet`…),\n  collapsible tree with persisted state, follow-mode autoscroll, service-event\n  toggle, and a line filter.\n\nThe session parentage tree, wiring root conversations to their spawned agents:\n\n![Session parentage tree](docs/media/session-tree.png)\n\n| A Codex CLI session | The overview board |\n| --- | --- |\n| ![Codex session with command cards and patches](docs/media/codex-session.png) | ![Overview board across projects](docs/media/overview-board.png) |\n\nAll media above is regenerated deterministically from a synthetic fixture —\nsee [docs/media/README.md](docs/media/README.md).\n\n## Run\n\nThe package is published to npm, so the quickstart above needs no clone:\n\n```bash\nbunx agent-log-viewer\n# or\nnpx agent-log-viewer\n```\n\nThis starts the server on `127.0.0.1:8898` and opens your browser. The CLI also\nstarts and supervises the packaged structured runtime host, including restart\nbackoff and Ctrl-C cleanup. Pipelines and the orchestrator work from this\ninstallation without Docker. Both launch paths require Bun because the runtime\njournal and authoritative state stores use Bun SQLite.\n\n### From a local clone\n\n```bash\nbun install\nbun run build\nbun bin/cli.mjs --no-open --port 8898 --hostname 127.0.0.1\n# open http://127.0.0.1:8898/\n```\n\nThe CLI serves the output of the last `build`, so run `build` first. For\ndevelopment, `bun dev` runs the app with hot reload and expects a separately\nmanaged runtime host (it needs a high OS file-watch limit for large home\ndirectories).\n\nThe Viewer server runs on Bun. The runtime journal and hot state collections\nuse `bun:sqlite`, and macOS process ownership uses the kernel's microsecond\nstart token. The Docker runtime and `agent-log-viewer` CLI select Bun for every\nfeature-flag configuration.\n\n### Spawn transport\n\nAgents launch through a structured runtime host. The installed CLI supervises\nthat host with the same Bun executable as the Viewer and places its Unix socket\nand runtime journal under the Viewer state directory with installation-specific\nnames. Ambient deployment runtime settings are ignored so separate bunx\ninstallations cannot attach to each other's host or claim each other's journal\nepoch. Startup fails clearly when Bun, the packaged host entry, the managed\nsocket, or its directory permissions are unavailable.\nThe CLI log carries the host failure and the pipeline card directs the operator\nto it. There is no tmux fallback.\n\n### Connect an orchestrator through MCP\n\nThe package includes `agent-log-viewer-mcp`, a local stdio MCP server. It\ninvokes Viewer services in-process and shares their durable stores, locks, and\nidempotency rules. Keep the Viewer package and the MCP process under the same\nOS user so they resolve the same state directory.\n\nFor an installed package, add this server to the orchestrator's standard MCP\nconfiguration:\n\n```json\n{\n  \"mcpServers\": {\n    \"viewer\": {\n      \"command\": \"agent-log-viewer-mcp\"\n    }\n  }\n}\n```\n\nFor a local clone, point the client at the launcher:\n\n```json\n{\n  \"mcpServers\": {\n    \"viewer\": {\n      \"command\": \"bun\",\n      \"args\": [\"/absolute/path/to/live-log-viewer-next/bin/mcp-server.mjs\"]\n    }\n  }\n}\n```\n\nQuick install from the CLI:\n\n```bash\n# Claude Code (user scope)\nclaude mcp add viewer -s user -- bun /absolute/path/to/live-log-viewer-next/bin/mcp-server.mjs\n\n# Codex — append to ~/.codex/config.toml\n[mcp_servers.viewer]\ncommand = \"bun\"\nargs = [\"/absolute/path/to/live-log-viewer-next/bin/mcp-server.mjs\"]\n```\n\nTo register the server everywhere at once — the operator's Claude Code and\nCodex configs plus every Viewer-managed account under\n`~/.config/agent-log-viewer/accounts` (their spawned agents each run with\ntheir own `CLAUDE_CONFIG_DIR`/`CODEX_HOME`, so each account needs its own\nregistration) — run the idempotent installer and re-run it after adding\naccounts:\n\n```bash\nscripts/install-mcp.sh                     # uses the managed stable launcher when present\nLLV_MCP_BIN=/path/to/mcp-server.mjs \\\n  scripts/install-mcp.sh                   # select an explicit launcher\n```\n\nExact deployments keep the managed executable at\n`~/.agents/tools/llv-mcp-runtime/bin/mcp-server.mjs`. Existing Claude and\nCodex registrations retain that path. Each fresh MCP process reads the atomic\nViewer release target and starts the runtime bundle staged from the same\nrevision. Deployment receipts expose the staged runtime digest plus durable\nactivation or restore evidence.\n\nThe server name must stay `viewer` (or another `isViewerMcpServer()` match:\n`viewer-*`, `agent-log-viewer*`) — transcript calls attributed to other names\ndo not render as Viewer cards.\n\nThe MCP surface includes:\n\n- conversations and the board: `board_snapshot`, `list_conversations`,\n  `get_conversation`, `send_message`, `message_receipt` (what became of an\n  accepted send, by its operation id), and `conversation_action` for\n  `interrupt`, `kill`, `resume`, `compact`, and `dialog-key`;\n- review flows: `list_flows`, `get_flow`, and `flow_action`;\n- pipelines: `create_pipeline`, `list_pipelines`, `get_pipeline`,\n  `pipeline_action`, and `link_task_to_pipeline`;\n- tasks: `create_task`, `list_tasks`, `get_task`, and `update_task`;\n- operator/runtime reads: `operator_snapshot`, `deployment_status`, and\n  `resources`;\n- agent liveness and lifecycle: `agent_activity` for the per-conversation\n  `{lastRecordAt, turnState, host alive/gone, stalledForMs}` stall snapshot, and\n  `lifecycle_events` for the durable lifecycle journal (`mode: \"query\"`, by\n  project/pipeline/conversation and cursor) and its bounded relay digest\n  (`mode: \"digest\"`, terminal events immediately, routine progress coalesced and\n  rate-limited to one per five minutes per subscriber);\n- agent/runtime mutations: `spawn_agent`, `conversation_migration`, and\n  `deploy_exact_sha`;\n- the operator's attention: `request_attention`, which offers to move their\n  Viewer to a target and waits for their answer. It only asks — nothing moves\n  until they agree on a device, and the request names the root agent by an\n  identity the server resolves, never one the caller supplies.\n\nEvery call requires a stable `clientRequestId`. Reusing that id with the same\narguments returns the durable result as a replay. Reusing it with different\narguments returns an idempotency conflict. Read tools are inert, bounded, and\nsecret-redacted. Mutating tools return stable operation receipts, and their\ndurable MCP receipt prevents a replay from applying the action twice.\n`deploy_exact_sha` accepts a full 40-character commit SHA and requires\n`confirm: \"deploy\"`.\n\nThe package exposes the MCP launcher as `agent-log-viewer/mcp-server` in\naddition to the `agent-log-viewer-mcp` executable.\n\nTool results contain the durable entity identifiers available for that action,\nincluding conversation ids, transcript paths, pipeline ids, task ids, and\nruntime operation ids. Viewer transcripts render calls attributed to the `viewer` MCP\nserver as live cards and turn those identifiers into navigation chips.\n\n**Prerequisites:** Node ≥ 20.9, and bun or npm/pnpm. `tmux` is optional — see\n[Platform support](#platform-support).\n\n### Docker (reproducible runtime)\n\nFor a pinned, reproducible deployment the repo ships a `Dockerfile` and\n`docker-compose.yml` that build `.next` inside the image and run the Viewer\nwith host parity. The container reuses your real `tmux`, `claude`, `codex`, and\nhome directory. Runtime-host owns production releases and the listener.\nComplete the [bootstrap listener migration](docs/docker.md#bootstrap-listener-ownership)\nbefore the first runtime-host activation.\n\n```bash\nexport LLV_DOCKER_GID=\"$(stat -c %g /var/run/docker.sock)\"\nLLV_RUNTIME_EVENTS=1 LLV_VIEWER_DEPLOYMENTS=1 docker compose --profile runtime-host up -d runtime-host\nscripts/rebuild.sh\nLLV_TEST_PORT=8901 docker compose --profile test up -d viewer-test\n```\n\n`scripts/rebuild.sh` is the whole release command, run from any checkout of the\nrepository — a worktree included — with nothing wrapping it and no `git pull`\nfirst. It posts a revision to the runtime host, which builds that revision from\nits own canonical Git mirror rather than from the working tree. With no argument\nand no `LLV_DEPLOY_REVISION` override, it resolves the canonical\n`refs/heads/main` tip and deploys that exact commit; a full 40-character commit\nSHA in either case pins a redeploy or a rollback and is posted lowercase.\n\nSee [docs/docker.md](docs/docker.md) for the parity model, the nsenter shims,\nand volume/port details.\n\n### Attach to a live tmux pane\n\nThe Viewer resolves and copies a complete command for each live pane. Paste that command into a normal shell; it selects the supervisor endpoint and the current pane coordinate. The read-only variant adds `-r`.\n\n```bash\nTMUX_TMPDIR='/run/user/1000/agent-log-viewer' tmux attach-session -t 'agents:2.0'\nTMUX_TMPDIR='/run/user/1000/agent-log-viewer' tmux attach-session -r -t 'agents:2.0'\n```\n\nDetach with `Ctrl-b d` and the agent keeps running. An unqualified tmux command may use a different server. Refresh and copy again after a stale-pane or restarted-server message; the fresh command accounts for window renumbering. See [the Docker guide](docs/docker.md#attach-to-a-viewer-pane) for the supervisor migration context.\n\n### CLI options\n\n```\nagent-log-viewer [options]\n```\n\n| Option | Description |\n| --- | --- |\n| `-p, --port <n>` | Port for the local server (default `8898`). |\n| `-H, --hostname <h>` | Bind address (default `127.0.0.1`). |\n| `--tailscale` | Expose the viewer inside your tailnet (see below). |\n| `--new-token` | Generate a fresh access key and invalidate old cookies. |\n| `--no-open` | Don't open the browser on start. |\n| `-v, --version` | Print the version. |\n| `-h, --help` | Show usage. |\n\n## Platform support\n\nLinux is the native target: process discovery reads `/proc` directly. macOS is\nsupported through a portable backend that shells out to `ps` and `lsof`\ninstead — same live-process detection, composer host targeting, agent\nspawn/kill and background-task discovery, just a bit more subprocess overhead\nper scan. Windows has its own backend: one `Get-CimInstance Win32_Process`\nsnapshot per five seconds for pids, lineage, command lines and memory, plus two\nvalues read from the kernel — the process creation time that makes up the\nidentity token, and each agent's working directory. The backend is chosen\nautomatically by `process.platform` (see `src/lib/proc/`); `VIEWER_PROC_BACKEND`\nforces one of `linux`, `portable` or `windows`, for testing.\n\n### Windows\n\nThe package installs on Windows. Install Claude Code with its **native\ninstaller**, or put a `claude.exe` on `PATH`: an npm-only install exposes\n`claude.cmd`, and a shim is not something the Viewer will run without a shell.\nState lives under `%USERPROFILE%\\.config\\agent-log-viewer`, transcripts under\n`%USERPROFILE%\\.claude\\projects`. Run the Viewer where the agents run — a\nClaude installed inside WSL writes into the WSL filesystem, and a native Viewer\ndoes not see those transcripts (or the reverse).\n\nThese stay WSL routes on Windows, and WSL still works exactly as Linux:\n\n- **Codex** — hosting, review flows, and everything Codex-side. Upstream calls\n  native Windows experimental and recommends WSL 2.\n- **The Telegram connector** and **local dictation** (cloud dictation backends\n  are unaffected).\n- **Workflow setup commands**, which are `sh -c`.\n- **Docker deployments and staging**, which are Linux by nature.\n- **The MCP server** for orchestrator agents, and **`--tailscale`**.\n\nThese work natively but narrower than on Linux:\n\n- **No open-handle scan.** A transcript reads as live from mtime recency, and\n  its owning process from the `--session-id` in its argv or from its working\n  directory — never from a live writer holding the file open. Background-task\n  `.output` files cannot be mapped back to a pid.\n- **Termination is immediate.** Windows has no signals; every stop is\n  `TerminateProcess` after the child's stdin is closed, and the \"force\" step in\n  the task header is a second immediate kill. A host's process tree is walked\n  and killed descendants-first, each member's identity checked, in place of the\n  process-group signal Linux sends.\n- **A process the Viewer cannot open stays invisible.** Reading an agent's\n  working directory needs a handle on it, so an elevated console's `claude`, or\n  one running as another user, is not listed.\n- **Memory shows the working set only**, with no swap figure.\n- **Managed (multi) Claude accounts, the in-app login supervisor and composer\n  image attachments** are not available; log in from a terminal with `claude`,\n  and use the Main account.\n- **Claude background tasks and scratchpad sessions** have no project. The\n  background-task root depends on a Windows directory layout nobody has\n  observed, so it is simply absent. A scratchpad session is still recognised as\n  one, but the walk that turns the encoded path in its container back into a\n  repository starts at the filesystem root and a Windows path starts at a drive\n  letter, so no repository is found and the session lands in \"Unresolved\n  project\" along with every other one. Sessions started from an ordinary\n  directory are unaffected — they group by that directory.\n- **A session whose recorded path differs from a root only by drive-letter\n  case** forms its own project.\n\n`tmux` is optional, and nothing needs it to launch or message an agent —\nagents run on a structured runtime host (see [Spawn transport](#spawn-transport)),\nwhich is why none of it is required on Windows. It is needed only to attach a\nterminal to a legacy pane that predates that host (`brew install tmux` on macOS,\nor your distro's package on Linux).\n\n## Language\n\nThe UI defaults to English and shows a compact EN/UK toggle in the project\nlist header. The locale is resolved as `localStorage` key `llv_lang` first,\nthen the browser language (Ukrainian if the browser prefers it), then English.\n\nCLI messages are English by default, and switch to Ukrainian with\n`LLV_LANG=uk` or a `uk_*` value in `LANG`/`LC_ALL`.\n\n## Dictation / voice input\n\nComposers that talk to agents have a mic button for dictating messages. By\ndefault transcription runs fully locally via faster-whisper — no audio leaves\nthe machine. Run `scripts/setup-whisper.sh` once to install the local engine.\n\nTwo cloud backends are available as an explicit per-machine opt-in (never a UI\ntoggle): ChatGPT (reuses your local Codex login) and ElevenLabs Scribe (the\nonly one with live, streaming transcription). Select with\n`LLV_TRANSCRIBE_BACKEND=local|chatgpt|elevenlabs` or by writing the backend\nname to `~/.config/agent-log-viewer/transcribe-backend`; local is the default.\n\nSee [docs/transcription.md](docs/transcription.md) for setup, key locations,\nand troubleshooting.\n\n## Review loops\n\nThe viewer orchestrates implement→review cycles: a long-lived implementer\nagent, a fresh read-only reviewer per round over the full diff,\nautomatic relay of findings, and a verdict deck in the scheme view. Start one\nfrom the **Flow** chip above a conversation pane; presets pair engines and\nreasoning efforts per role (e.g. `Terra high → Sol xhigh`). New Codex agents\nalso expose explicit GPT-5.6-Sol and GPT-5.6-Terra choices beside effort and\nspeed.\n\nSee [docs/review-loop.md](docs/review-loop.md) for the round protocol,\npresets, the HTTP automation API, and troubleshooting. A Claude Code skill\nfor driving flows from an agent ships in `.claude/skills/review-loop/` —\nagents working in a clone pick it up automatically.\n\n## Tailscale access\n\n```bash\nbunx agent-log-viewer --tailscale\n```\n\n`--tailscale` starts the local server on `127.0.0.1` and exposes it inside your\ntailnet through a foreground `tailscale serve <port>` process. The public\ninternet (Funnel) is never used.\n\nThe CLI generates a 32-character access key, appends it to the tailnet URL as\n`?k=...`, and after the first visit the server sets an `llv_auth` cookie for 30\ndays. `--new-token` generates a fresh key and immediately invalidates every old\ncookie — each request compares the hash against the current token, so a cookie\nminted with a previous key no longer passes.\n\nThe terminal prints the tailnet URL along with a QR code to scan with a phone.\nThe same QR is available inside the web UI: the QR-icon button in the project\nlist header opens a popover with the code and the link as text (with a copy\nbutton). The QR is rendered entirely client-side (the `qrcode` package, no\nexternal requests) and is served only to already-authorized clients — the same\ntoken gate from `src/proxy.ts` also protects `/api/access`. When the server\nruns without `--tailscale`, the button shows a hint to start\n`bunx agent-log-viewer --tailscale`.\n\nAnyone with tailnet access to this URL can read all agent transcripts,\nincluding any sensitive data that landed in a session, and can execute commands\nthrough `/api/conversation-host` and `/api/spawn`. Treat the tailnet URL as a\nsecret — do not forward it to anyone else.\n\n## Security model\n\nThe log APIs refuse any path that does not resolve into one of the whitelisted\nlog roots (see `src/lib/scanner/roots.ts`). Mutating endpoints exist:\n`/api/conversation-host` resumes or respawns a conversation's host and delivers\na message to it, and `/api/spawn` starts commands. The same handlers are still\nmounted at the legacy path `/api/tmux`; that name is historical and no tmux is\ninvolved in delivery — the engine is spawned into the host namespace through\n`nsenter` with privileges dropped.\n\nBy default the CLI binds to `127.0.0.1`. With `--tailscale`, access is exposed\ninside the tailnet via `tailscale serve` and guarded by the token gate in\n`src/proxy.ts`. Non-loopback binds also force token mode. Treat any URL\ncontaining `?k=` as a credential.\n\nA Docker-deployed runtime host on a personal workstation can keep `LLV_TOKEN`\nfor the tailnet while serving plain `http://127.0.0.1:8898/` token-free, by\nsplitting its stable listener into a local entry and an authenticated remote\nentry; see [docs/docker.md](docs/docker.md#personal-workstation-token-free-localhost-authenticated-tailnet).\n\n## Environment variables\n\nAll optional. Transcription variables are documented in full in\n[docs/transcription.md](docs/transcription.md).\n\n| Variable | Effect |\n| --- | --- |\n| `VIEWER_PROC_BACKEND` | `portable`, `linux` or `windows` — force the process-discovery backend (auto-selected by default). |\n| `LLV_LANG` | `uk` or `en` — force the CLI message language. |\n| `LLV_TRANSCRIBE_BACKEND` | `local`, `chatgpt`, or `elevenlabs` — pick the dictation backend (default `local`). |\n| `LLV_WHISPER_MODEL` | faster-whisper model size (default `small`). |\n| `LLV_WHISPER_DEVICE` | `cpu` (default) or `cuda`. |\n| `LLV_WHISPER_VENV` | Path to the whisper virtualenv (default `~/.cache/agent-log-viewer/whisper-venv`). |\n| `LLV_ELEVENLABS_STT_MODEL` | ElevenLabs batch model override. |\n| `ELEVENLABS_API_KEY` | ElevenLabs API key for the ElevenLabs backend. |\n| `LLV_REAPER_ENABLED` | `1` enables verified pane and detached-reviewer process cleanup by the deterministic agent reaper. Unset keeps dry-run mode and exposes its latest report at `GET /api/lifecycle/reaper`. |\n| `LLV_SCHEME_PROJECT_CAP` | Number of most-recent projects rendered by the scheme feed (default `10`). List and search remain complete. |\n| `LLV_SCHEME_CARDS_PER_PROJECT` | Maximum scanner entries rendered per scheme project (default `80`). List and search remain complete. |\n| `NEXT_PUBLIC_LLV_SCHEME_AGE_HORIZON_HOURS` | Age horizon in hours for automatic card placement on the project scheme (default `48`). A root conversation with activity inside the horizon keeps an automatic card even while idle; older roots leave the canvas for quiet history and «All conversations». Live or running conversations and manually placed cards are never removed by the horizon. Inlined at build time (`NEXT_PUBLIC_*`). |\n| `LLV_HEADLESS_REAPER_THRESHOLD_MS` | Minimum age in milliseconds for the always-active leaked Codex/MCP safety reaper (default `7200000`, two hours; minimum accepted value `60000`). |\n| `LLV_HOST_RETIREMENT_IDLE_HOURS` | How long a structured host's transcript must have been quiet before the automatic retirement sweep may end it (default `6`). `0` turns the sweep off. Staleness is transcript modification time, never process age, and the sweep still refuses any host with a turn in flight, a pending question, an undelivered handoff entry, an open spawn receipt, an unflushed event tail, a realtime binding, or an orchestrator seat. Every qualification is re-proved one step before the signal, and each retirement is written to `state/host-retirement-report.json` and appended to `state/host-retirement-journal.ndjson`. |\n| `LLV_HOST_RETIREMENT_GRACE_MS` | How long a retiring host may take to honour SIGTERM before its tree is force-killed (default `5000`, capped at `60000`). Raising it lowers how many hosts one sweep attempts, so a sweep's terminations still fit well inside the interval before the next one; whatever is skipped is reported as deferred and picked up by the following sweep. |\n| `LLV_DOCKER_NSENTER_SHIMS` | `1` makes the agent CLI resolver prefer the container's `/usr/local/bin` nsenter shims for host CLIs. Set automatically by the Docker image; leave unset on a host runtime. See [docs/docker.md](docs/docker.md). |\n\n## Config paths\n\nThe viewer keeps its state under the standard XDG directories, named after the\npackage:\n\n- `~/.config/agent-log-viewer/` — access `token`, `transcribe-backend`, and\n  `elevenlabs-api-key`.\n- `~/.cache/agent-log-viewer/whisper-venv` — the local transcription\n  virtualenv.\n\nLegacy `live-log-viewer` paths remain valid fallbacks. When a legacy config or\ncache file is the resolved existing file, subsequent updates keep using that\nsame path so existing setups continue without a forced move.\n\n## Architecture\n\nSee [ARCHITECTURE.md](ARCHITECTURE.md): route handlers under `src/app/api/*`, a\npure scanner pipeline under `src/lib/scanner/*` (discover → describe → activity\n→ model → links), React components under `src/components/*`. Caches live on\n`globalThis` and survive dev hot-reload.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}