{"_id":"opencode-auto-resume","_rev":"42-e8fdb9a41428d2df97bf6c3b6e026c66","name":"opencode-auto-resume","dist-tags":{"latest":"1.1.19"},"versions":{"1.0.0":{"name":"opencode-auto-resume","version":"1.0.0","keywords":["opencode","plugin","auto-resume","stall-detection","llm"],"author":{"name":"Daniele \"mte90\" Scasciafratte"},"license":"GPL-3.0-or-later","_id":"opencode-auto-resume@1.0.0","maintainers":[{"name":"mte90","email":"mte90net@gmail.com"}],"homepage":"https://github.com/Mte90/opencode-auto-resume#readme","bugs":{"url":"https://github.com/Mte90/opencode-auto-resume/issues"},"dist":{"shasum":"49f66c3b2cc9084030eb300716c5de4619bbc2e1","tarball":"https://registry.npmjs.org/opencode-auto-resume/-/opencode-auto-resume-1.0.0.tgz","fileCount":6,"integrity":"sha512-IxDfnGGXTo1IPltwy+UTmo0sG/2qI9OG/xiqjhd3mhctlXATLvWS9qbZmJjZNBFoHZgaXaNN2++BS9dVdvsxxQ==","signatures":[{"sig":"MEYCIQCii7fH3G56u+7F0e4tmhox93Leipyg3v3w2q+y7ST6RwIhAP5D21b32DI/ehF6RSzuFoSiFnLx9LdEM9p7NX1vCt2h","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":499582},"main":"dist/index.js","type":"module","gitHead":"5badf0d572b94feed7599de9d22b9459a49b8d04","scripts":{"dev":"bun build src/index.ts --outdir dist --target bun --watch","build":"bun build src/index.ts --outdir dist --target bun"},"_npmUser":{"name":"mte90","email":"mte90net@gmail.com"},"repository":{"url":"git+https://github.com/Mte90/opencode-auto-resume.git","type":"git"},"_npmVersion":"11.2.0","description":"OpenCode plugin that automatically resumes stalled LLM sessions when thinking/streaming freezes mid-generation.","directories":{},"_nodeVersion":"22.22.0","dependencies":{"@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"latest","@opencode-ai/sdk":"latest"},"_npmOperationalInternal":{"tmp":"tmp/opencode-auto-resume_1.0.0_1775571850938_0.8673609580873005","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"opencode-auto-resume","version":"1.0.1","keywords":["opencode","plugin","auto-resume","stall-detection","llm"],"author":{"name":"Daniele \"mte90\" Scasciafratte"},"license":"GPL-3.0-or-later","_id":"opencode-auto-resume@1.0.1","maintainers":[{"name":"mte90","email":"mte90net@gmail.com"}],"homepage":"https://github.com/Mte90/opencode-auto-resume#readme","bugs":{"url":"https://github.com/Mte90/opencode-auto-resume/issues"},"dist":{"shasum":"55c1d08bf0b109bda90d6ff623a16e210ca1419b","tarball":"https://registry.npmjs.org/opencode-auto-resume/-/opencode-auto-resume-1.0.1.tgz","fileCount":4,"integrity":"sha512-/DnEUbzzQtM1eVK01Io9oQ0Qwpne7amUYgMkobK8KwTknjBQLTpzcuK50sW+mnM7xURQgOjtrM0Et8+R6r0gFw==","signatures":[{"sig":"MEQCIAd65YFQyyy7l8CnOkVSEnkxSvg3OlUTzB1FSChY8bKnAiAKLalfY1HM/QTxpJLjaWF87J83LNPlt1zhLVA1YQw8YA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":475974},"main":"dist/index.js","type":"module","gitHead":"0cc4756ccdbfdeb3db42fb51e1b8d0c2037054bf","scripts":{"dev":"bun build src/index.ts --outdir dist --target bun --watch","build":"bun build src/index.ts --outdir dist --target bun","prepublishOnly":"bun run build"},"_npmUser":{"name":"mte90","email":"mte90net@gmail.com"},"repository":{"url":"git+https://github.com/Mte90/opencode-auto-resume.git","type":"git"},"_npmVersion":"11.2.0","description":"OpenCode plugin that automatically resumes stalled LLM sessions when thinking/streaming freezes mid-generation.","directories":{},"_nodeVersion":"22.22.0","dependencies":{"@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"latest","@opencode-ai/sdk":"latest"},"_npmOperationalInternal":{"tmp":"tmp/opencode-auto-resume_1.0.1_1775572128183_0.8451656456043595","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"opencode-auto-resume","version":"1.0.2","keywords":["opencode","plugin","auto-resume","stall-detection","llm"],"author":{"name":"Daniele \"mte90\" Scasciafratte"},"license":"GPL-3.0-or-later","_id":"opencode-auto-resume@1.0.2","maintainers":[{"name":"mte90","email":"mte90net@gmail.com"}],"homepage":"https://github.com/Mte90/opencode-auto-resume#readme","bugs":{"url":"https://github.com/Mte90/opencode-auto-resume/issues"},"dist":{"shasum":"0a7755262ad7ac296ea361699518a7134136122e","tarball":"https://registry.npmjs.org/opencode-auto-resume/-/opencode-auto-resume-1.0.2.tgz","fileCount":4,"integrity":"sha512-8kEPwjmpbjgdi9by/cInC0n3LSJiyl8g5LFy38IvMNevOZKNJFMvqpzzwmVtYXjM9KsqKo9JmP7zMHsjVJPnxw==","signatures":[{"sig":"MEUCIQCTXyGMBxzMwOJs+9foeAoSmsFvxGCEWcHIdYTK0C98iAIgOzMNwm82QJb1MjCLdtY3ZxTH9K7S39G0XEzxSz+rsLQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28213},"main":"dist/index.js","type":"module","gitHead":"28f1b99938094365aa3e8f8ca2eb87f01bddaad8","scripts":{"dev":"bun build src/index.ts --outdir dist --target bun --watch","build":"bun build src/index.ts --outdir dist --target bun","prepublishOnly":"bun run build"},"_npmUser":{"name":"mte90","email":"mte90net@gmail.com"},"repository":{"url":"git+https://github.com/Mte90/opencode-auto-resume.git","type":"git"},"_npmVersion":"11.2.0","description":"OpenCode plugin that automatically resumes stalled LLM sessions when thinking/streaming freezes mid-generation.","directories":{},"_nodeVersion":"22.22.0","dependencies":{"@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"latest","@opencode-ai/sdk":"latest"},"_npmOperationalInternal":{"tmp":"tmp/opencode-auto-resume_1.0.2_1775648561131_0.18234945000462965","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"opencode-auto-resume","version":"1.0.3","keywords":["opencode","plugin","auto-resume","stall-detection","llm"],"author":{"name":"Daniele \"mte90\" Scasciafratte"},"license":"GPL-3.0-or-later","_id":"opencode-auto-resume@1.0.3","maintainers":[{"name":"mte90","email":"mte90net@gmail.com"}],"homepage":"https://github.com/Mte90/opencode-auto-resume#readme","bugs":{"url":"https://github.com/Mte90/opencode-auto-resume/issues"},"dist":{"shasum":"04faaea82a793d2d9adb34617504d17994e5b7ed","tarball":"https://registry.npmjs.org/opencode-auto-resume/-/opencode-auto-resume-1.0.3.tgz","fileCount":4,"integrity":"sha512-KP/WJStQQNEboVmy+uRtERi/KmlYKCDXm9XluTma/xLUZtHKVnW8mkOHxg93EJgbDJPQD3H45dMGr5kD+VtQXA==","signatures":[{"sig":"MEYCIQDThZ743SgrgX2fdpzymFD3jGzOzXvrKw5/kp+E1qMiHQIhAMMPlrffONH4bJx7OHVfwfc4OuNfMVEhpr6CQ3f75gp1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29332},"main":"dist/index.js","type":"module","gitHead":"8fb3d0fdccbf54e1dd905fe76a46bf5acbf47ad7","scripts":{"dev":"bun build src/index.ts --outdir dist --target bun --watch","build":"bun build src/index.ts --outdir dist --target bun","prepublishOnly":"bun run build"},"_npmUser":{"name":"mte90","email":"mte90net@gmail.com"},"repository":{"url":"git+https://github.com/Mte90/opencode-auto-resume.git","type":"git"},"_npmVersion":"11.2.0","description":"OpenCode plugin that automatically resumes stalled LLM sessions when thinking/streaming freezes mid-generation.","directories":{},"_nodeVersion":"22.22.0","dependencies":{"@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"latest","@opencode-ai/sdk":"latest"},"_npmOperationalInternal":{"tmp":"tmp/opencode-auto-resume_1.0.3_1775724725080_0.9554514627050141","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"opencode-auto-resume","version":"1.0.4","keywords":["opencode","plugin","auto-resume","stall-detection","llm"],"author":{"name":"Daniele \"mte90\" Scasciafratte"},"license":"GPL-3.0-or-later","_id":"opencode-auto-resume@1.0.4","maintainers":[{"name":"mte90","email":"mte90net@gmail.com"}],"homepage":"https://github.com/Mte90/opencode-auto-resume#readme","bugs":{"url":"https://github.com/Mte90/opencode-auto-resume/issues"},"dist":{"shasum":"24cc21c09518a90d36f628e3a3028f41342e0aac","tarball":"https://registry.npmjs.org/opencode-auto-resume/-/opencode-auto-resume-1.0.4.tgz","fileCount":4,"integrity":"sha512-LomLAPFx9SW1vHvcvxZJkHy8DNFF+c85m46BHMuXwUe4XPDICfxDCLoY/MHPfUby/0iZDA1J4ZVvpaUPruEz2Q==","signatures":[{"sig":"MEUCIBIxr1JGOU1HADTiaWI2aOjDvikaY4AmTdzqB1jB8rk/AiEAgHQQFuVagFZlSsPsj5guQmeLN+WvenGfgqaqJhDxQAI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29828},"main":"dist/index.js","type":"module","gitHead":"c817f654600afb72c78650494c6b68a7112aaede","scripts":{"dev":"bun build src/index.ts --outdir dist --target bun --watch","build":"bun build src/index.ts --outdir dist --target bun","prepublishOnly":"bun run build"},"_npmUser":{"name":"mte90","email":"mte90net@gmail.com"},"repository":{"url":"git+https://github.com/Mte90/opencode-auto-resume.git","type":"git"},"_npmVersion":"11.2.0","description":"OpenCode plugin that automatically resumes stalled LLM sessions when thinking/streaming freezes mid-generation.","directories":{},"_nodeVersion":"22.22.0","dependencies":{"@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"latest","@opencode-ai/sdk":"latest"},"_npmOperationalInternal":{"tmp":"tmp/opencode-auto-resume_1.0.4_1775746465826_0.7141613296508293","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"opencode-auto-resume","version":"1.0.5","keywords":["opencode","plugin","auto-resume","stall-detection","llm"],"author":{"name":"Daniele \"mte90\" Scasciafratte"},"license":"GPL-3.0-or-later","_id":"opencode-auto-resume@1.0.5","maintainers":[{"name":"mte90","email":"mte90net@gmail.com"}],"homepage":"https://github.com/Mte90/opencode-auto-resume#readme","bugs":{"url":"https://github.com/Mte90/opencode-auto-resume/issues"},"dist":{"shasum":"4b9419f4b95c92de67494c53ff8fe08cb0ad307f","tarball":"https://registry.npmjs.org/opencode-auto-resume/-/opencode-auto-resume-1.0.5.tgz","fileCount":4,"integrity":"sha512-v/o9ncfXTJnxsqwgSiKeFvwB0jpoiDADsqGrWgSol+fmeOqCCMxRi+yEetcatuh8hBBpazR2n2ySdLRtaG+lSQ==","signatures":[{"sig":"MEQCIGDXmjwLR2/AX2KrV/bzlGYFs/yrr7QtWUq+AzvMLiAxAiANkGUJFB/S+VhKkJHFvph5kY1QAXPoVE3ELJe2fLJJ+g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27955},"main":"dist/index.js","type":"module","gitHead":"cbd7f25c6f19b18a9411c74e3b4bcb79699a377c","scripts":{"dev":"bun build src/index.ts --outdir dist --target bun --watch","test":"bun test","build":"bun build src/index.ts --outdir dist --target bun","prepublishOnly":"bun run build"},"_npmUser":{"name":"mte90","email":"mte90net@gmail.com"},"repository":{"url":"git+https://github.com/Mte90/opencode-auto-resume.git","type":"git"},"_npmVersion":"11.2.0","description":"OpenCode plugin that automatically resumes stalled LLM sessions when thinking/streaming freezes mid-generation.","directories":{},"_nodeVersion":"22.22.0","dependencies":{"@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"latest","@opencode-ai/sdk":"latest"},"_npmOperationalInternal":{"tmp":"tmp/opencode-auto-resume_1.0.5_1776064765799_0.35653708707720644","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"opencode-auto-resume","version":"1.0.6","keywords":["opencode","plugin","auto-resume","stall-detection","llm"],"author":{"name":"Daniele \"mte90\" Scasciafratte"},"license":"GPL-3.0-or-later","_id":"opencode-auto-resume@1.0.6","maintainers":[{"name":"mte90","email":"mte90net@gmail.com"}],"homepage":"https://github.com/Mte90/opencode-auto-resume#readme","bugs":{"url":"https://github.com/Mte90/opencode-auto-resume/issues"},"dist":{"shasum":"d0bd1008b5182054aa3b297c5e2e8444bd05ff54","tarball":"https://registry.npmjs.org/opencode-auto-resume/-/opencode-auto-resume-1.0.6.tgz","fileCount":4,"integrity":"sha512-eaOouIpvSRc7RF6dOt8ZEXe90C2AwhOQeXlSyHBOX0YbC48xPky1sHgJcbRVX2CQR+fo03iFFtsSnOtvFWJqhQ==","signatures":[{"sig":"MEUCIQDJx64odsu4Zm+7dPVSof5HweeLs8UydBAQWi/vL+eacgIgAn9LC3GB29m/B3huI0ADrhzGwBniFAUJY9V/rr/7sRk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31322},"main":"dist/index.js","type":"module","gitHead":"4bffb29e769bc2508108bb0de9e9c4192033f458","scripts":{"dev":"bun build src/index.ts --outdir dist --target bun --watch","test":"bun test","build":"bun build src/index.ts --outdir dist --target bun","prepublishOnly":"bun run build"},"_npmUser":{"name":"mte90","email":"mte90net@gmail.com"},"repository":{"url":"git+https://github.com/Mte90/opencode-auto-resume.git","type":"git"},"_npmVersion":"11.2.0","description":"OpenCode plugin that automatically resumes stalled LLM sessions when thinking/streaming freezes mid-generation.","directories":{},"_nodeVersion":"22.22.0","dependencies":{"@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"latest","@opencode-ai/sdk":"latest"},"_npmOperationalInternal":{"tmp":"tmp/opencode-auto-resume_1.0.6_1776152830946_0.3783747040219483","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"opencode-auto-resume","version":"1.0.7","keywords":["opencode","plugin","auto-resume","stall-detection","llm"],"author":{"name":"Daniele \"mte90\" Scasciafratte"},"license":"GPL-3.0-or-later","_id":"opencode-auto-resume@1.0.7","maintainers":[{"name":"mte90","email":"mte90net@gmail.com"}],"homepage":"https://github.com/Mte90/opencode-auto-resume#readme","bugs":{"url":"https://github.com/Mte90/opencode-auto-resume/issues"},"dist":{"shasum":"c28472209bff4b96f39a048c5e7757f061e08586","tarball":"https://registry.npmjs.org/opencode-auto-resume/-/opencode-auto-resume-1.0.7.tgz","fileCount":4,"integrity":"sha512-WeWYbLGcTF9EJKu3RMfpnE7vMF6H9NyY+paQumJUNGmT28+lrNJjPfb30vU4NhIhyMA5xxPmMC9jetVKiHgp6A==","signatures":[{"sig":"MEUCIB1fGSlwiik7Fpf8fRMmO+ifqrgG7TIeg7t1s3K2lxdYAiEA+Do5L5tyXaiBBvOJYnnTS8bjq6Aj/5CsMjhHzrkAHqc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31689},"main":"dist/index.js","type":"module","gitHead":"f3baaf6ceede176e65e9981c4872fbe0c3e7c7f4","scripts":{"dev":"bun build src/index.ts --outdir dist --target bun --watch","test":"bun test","build":"bun build src/index.ts --outdir dist --target bun","prepublishOnly":"bun run build"},"_npmUser":{"name":"mte90","email":"mte90net@gmail.com"},"repository":{"url":"git+https://github.com/Mte90/opencode-auto-resume.git","type":"git"},"_npmVersion":"11.2.0","description":"OpenCode plugin that automatically resumes stalled LLM sessions when thinking/streaming freezes mid-generation.","directories":{},"_nodeVersion":"22.22.0","dependencies":{"@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"latest","@opencode-ai/sdk":"latest"},"_npmOperationalInternal":{"tmp":"tmp/opencode-auto-resume_1.0.7_1776412913833_0.050627017049888146","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"opencode-auto-resume","version":"1.0.8","keywords":["opencode","plugin","auto-resume","stall-detection","llm"],"author":{"name":"Daniele \"mte90\" Scasciafratte"},"license":"GPL-3.0-or-later","_id":"opencode-auto-resume@1.0.8","maintainers":[{"name":"mte90","email":"mte90net@gmail.com"}],"homepage":"https://github.com/Mte90/opencode-auto-resume#readme","bugs":{"url":"https://github.com/Mte90/opencode-auto-resume/issues"},"dist":{"shasum":"a8548113fd53b2866981a214c509d0a97a11123d","tarball":"https://registry.npmjs.org/opencode-auto-resume/-/opencode-auto-resume-1.0.8.tgz","fileCount":4,"integrity":"sha512-hKlfBtR+6DOdS0EGfk8QZpiifXovMNZ9Zms4VhRBK7uRYtrZ7h56ZUWrQE1QTk7jD59b9u8sGaLbdSs8bySbHA==","signatures":[{"sig":"MEUCIQCIOyG/ka+NSG6eb+ymYABcLeorpbgOomhzwD1BukoF/QIgP4usKneF6oKjRrPJ56bhvQg+s2W8D4haL01rtqkW8mY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35059},"main":"dist/index.js","type":"module","gitHead":"d95e85fab4446887accf13b6ab63d4836e4a92a6","scripts":{"dev":"bun build src/index.ts --outdir dist --target bun --watch","test":"bun test","build":"bun build src/index.ts --outdir dist --target bun","prepublishOnly":"bun run build"},"_npmUser":{"name":"mte90","email":"mte90net@gmail.com"},"repository":{"url":"git+https://github.com/Mte90/opencode-auto-resume.git","type":"git"},"_npmVersion":"11.2.0","description":"OpenCode plugin that automatically resumes stalled LLM sessions when thinking/streaming freezes mid-generation.","directories":{},"_nodeVersion":"22.22.0","dependencies":{"@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"latest","@opencode-ai/sdk":"latest"},"_npmOperationalInternal":{"tmp":"tmp/opencode-auto-resume_1.0.8_1776766087310_0.6474687886874542","host":"s3://npm-registry-packages-npm-production"}},"1.0.9":{"name":"opencode-auto-resume","version":"1.0.9","keywords":["opencode","plugin","auto-resume","stall-detection","llm"],"author":{"name":"Daniele \"mte90\" Scasciafratte"},"license":"GPL-3.0-or-later","_id":"opencode-auto-resume@1.0.9","maintainers":[{"name":"mte90","email":"mte90net@gmail.com"}],"homepage":"https://github.com/Mte90/opencode-auto-resume#readme","bugs":{"url":"https://github.com/Mte90/opencode-auto-resume/issues"},"dist":{"shasum":"9b62ea063aa962be7258d3484f7fb218f6b3eaf8","tarball":"https://registry.npmjs.org/opencode-auto-resume/-/opencode-auto-resume-1.0.9.tgz","fileCount":4,"integrity":"sha512-NNZx+HEgBgopSMCK+66wnkFTAciD9CCtfAQRqTloElow2SBCFalT37sSoThxdibO4tAJVCNc03vw4oPBzAmMDg==","signatures":[{"sig":"MEYCIQDDxTIsDpFFMqXhYfXy3FKyhcysCba48yErSNqfkQ7QKAIhANcrZIQKby+AXfvA/i0K5CeuxGJPCiYYpNRrIO0R+1x5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35137},"main":"dist/index.js","type":"module","gitHead":"d95e85fab4446887accf13b6ab63d4836e4a92a6","scripts":{"dev":"bun build src/index.ts --outdir dist --target bun --watch","test":"bun test","build":"bun build src/index.ts --outdir dist --target bun","prepublishOnly":"bun run build"},"_npmUser":{"name":"mte90","email":"mte90net@gmail.com"},"repository":{"url":"git+https://github.com/Mte90/opencode-auto-resume.git","type":"git"},"_npmVersion":"11.2.0","description":"OpenCode plugin that automatically resumes stalled LLM sessions when thinking/streaming freezes mid-generation.","directories":{},"_nodeVersion":"22.22.0","dependencies":{"@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"latest","@opencode-ai/sdk":"latest"},"_npmOperationalInternal":{"tmp":"tmp/opencode-auto-resume_1.0.9_1776929842474_0.8309125160219117","host":"s3://npm-registry-packages-npm-production"}},"1.0.10":{"name":"opencode-auto-resume","version":"1.0.10","keywords":["opencode","plugin","auto-resume","stall-detection","llm"],"author":{"name":"Daniele \"mte90\" Scasciafratte"},"license":"GPL-3.0-or-later","_id":"opencode-auto-resume@1.0.10","maintainers":[{"name":"mte90","email":"mte90net@gmail.com"}],"homepage":"https://github.com/Mte90/opencode-auto-resume#readme","bugs":{"url":"https://github.com/Mte90/opencode-auto-resume/issues"},"dist":{"shasum":"2b3e5f2e591a1350ee98be0cf89e3b736b535744","tarball":"https://registry.npmjs.org/opencode-auto-resume/-/opencode-auto-resume-1.0.10.tgz","fileCount":4,"integrity":"sha512-7FK2I+ly8hfOZy5NeizEC/5/vo+VWU1pzybuQjwNjXHz/mhwkyhN13vAnDiYkc2xn3rI0cAAnETJp31IRzglYQ==","signatures":[{"sig":"MEUCIQCjYmzTG0Loi43k0R/kpdlk+mbfbc/0YfMAakylYVB73gIgHMvLylpdCFfzRgYEkkvMGePvFUo/2QpNhhhAvBvYMoQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35327},"main":"dist/index.js","type":"module","gitHead":"d95e85fab4446887accf13b6ab63d4836e4a92a6","scripts":{"dev":"bun build src/index.ts --outdir dist --target bun --watch","test":"bun test","build":"bun build src/index.ts --outdir dist --target bun","prepublishOnly":"bun run build"},"_npmUser":{"name":"mte90","email":"mte90net@gmail.com"},"repository":{"url":"git+https://github.com/Mte90/opencode-auto-resume.git","type":"git"},"_npmVersion":"11.2.0","description":"OpenCode plugin that automatically resumes stalled LLM sessions when thinking/streaming freezes mid-generation.","directories":{},"_nodeVersion":"22.22.0","dependencies":{"@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"latest","@opencode-ai/sdk":"latest"},"_npmOperationalInternal":{"tmp":"tmp/opencode-auto-resume_1.0.10_1777020655102_0.33383525177180196","host":"s3://npm-registry-packages-npm-production"}},"1.0.11":{"name":"opencode-auto-resume","version":"1.0.11","keywords":["opencode","plugin","auto-resume","stall-detection","llm"],"author":{"name":"Daniele \"mte90\" Scasciafratte"},"license":"GPL-3.0-or-later","_id":"opencode-auto-resume@1.0.11","maintainers":[{"name":"mte90","email":"mte90net@gmail.com"}],"homepage":"https://github.com/Mte90/opencode-auto-resume#readme","bugs":{"url":"https://github.com/Mte90/opencode-auto-resume/issues"},"dist":{"shasum":"d031cb76687af004d6b1bec47bfa8594dfbfba4d","tarball":"https://registry.npmjs.org/opencode-auto-resume/-/opencode-auto-resume-1.0.11.tgz","fileCount":4,"integrity":"sha512-+51sKZ0F1TT8/p20mmEfe0QGp8jv4F62ZlEqyp7z8XkXQ5NUyQGZWQrxT1fbtVf4QhhPopQbE16ZQHURmbz5xw==","signatures":[{"sig":"MEYCIQC5aqoO1PJ+pNuUnKedTE5rbakE7LdliTSjkZrUu8X4PQIhAKxSOZfCeZ51OPKowsPn2nF6yUbQURLbV7K1vgSk2inp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37463},"main":"dist/index.js","type":"module","gitHead":"d917b9912280291ef3395074366c2addd9d1597f","scripts":{"dev":"bun build src/index.ts --outdir dist --target bun --watch","test":"bun test","build":"bun build src/index.ts --outdir dist --target bun","prepublishOnly":"bun run build"},"_npmUser":{"name":"mte90","email":"mte90net@gmail.com"},"repository":{"url":"git+https://github.com/Mte90/opencode-auto-resume.git","type":"git"},"_npmVersion":"11.2.0","description":"OpenCode plugin that automatically resumes stalled LLM sessions when thinking/streaming freezes mid-generation.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"latest","@opencode-ai/sdk":"latest"},"_npmOperationalInternal":{"tmp":"tmp/opencode-auto-resume_1.0.11_1779091611706_0.10201177792976268","host":"s3://npm-registry-packages-npm-production"}},"1.0.12":{"name":"opencode-auto-resume","version":"1.0.12","keywords":["opencode","plugin","auto-resume","stall-detection","llm"],"author":{"name":"Daniele \"mte90\" Scasciafratte"},"license":"GPL-3.0-or-later","_id":"opencode-auto-resume@1.0.12","maintainers":[{"name":"mte90","email":"mte90net@gmail.com"}],"homepage":"https://github.com/Mte90/opencode-auto-resume#readme","bugs":{"url":"https://github.com/Mte90/opencode-auto-resume/issues"},"dist":{"shasum":"1630a91bc6c7b68064bb1257c28c80f820f81dab","tarball":"https://registry.npmjs.org/opencode-auto-resume/-/opencode-auto-resume-1.0.12.tgz","fileCount":4,"integrity":"sha512-FhgUQHJUHtOuoImIyY8ADBllMTUIfrAo/hljOH+mWM7Hoc7Jv4qEqBxH4CLJJU89+M8zPzNsMh8RGOaI0JrwZw==","signatures":[{"sig":"MEYCIQC7951g10vWipLIP8Gr5Y+oWASwEurPfBKmLLuJgpPf+AIhAKGICuLHSHMNu4MdsJvs4u226azlYidjkR6P4s15tK5V","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":485741},"main":"dist/index.js","type":"module","gitHead":"03e5af665c971ecdd1ada2181d6736ec06771de7","scripts":{"dev":"bun build src/index.ts --outdir dist --target bun --watch","test":"bun test","build":"bun build src/index.ts --outdir dist --target bun","prepublishOnly":"bun run build"},"_npmUser":{"name":"mte90","email":"mte90net@gmail.com"},"repository":{"url":"git+https://github.com/Mte90/opencode-auto-resume.git","type":"git"},"_npmVersion":"11.2.0","description":"OpenCode plugin that automatically resumes stalled LLM sessions when thinking/streaming freezes mid-generation.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"latest","@opencode-ai/sdk":"latest"},"_npmOperationalInternal":{"tmp":"tmp/opencode-auto-resume_1.0.12_1779803638935_0.00928852005098979","host":"s3://npm-registry-packages-npm-production"}},"1.0.13":{"name":"opencode-auto-resume","version":"1.0.13","keywords":["opencode","plugin","auto-resume","stall-detection","llm"],"author":{"name":"Daniele \"mte90\" Scasciafratte"},"license":"GPL-3.0-or-later","_id":"opencode-auto-resume@1.0.13","maintainers":[{"name":"mte90","email":"mte90net@gmail.com"}],"homepage":"https://github.com/Mte90/opencode-auto-resume#readme","bugs":{"url":"https://github.com/Mte90/opencode-auto-resume/issues"},"dist":{"shasum":"fbed321c058fc186e5fb9190abe69a35b9b97228","tarball":"https://registry.npmjs.org/opencode-auto-resume/-/opencode-auto-resume-1.0.13.tgz","fileCount":4,"integrity":"sha512-a6EUhxeOvdW6eSU+ajIXImdX7gXxKQ6IrGK4eYd117XoMJdt6NQ6cm3V7Mov/dbXjmZ3YKW4KzFE4ZUFz9oZPA==","signatures":[{"sig":"MEUCIQDWUJ6bjjLGIlyftxMGR/obVbx+/1NRNaqhLXEvAs67pQIgDoNQXALUlxPtllZQ4RHRcsmTmdkBRnrOmjE8mmy4KFA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":485820},"main":"dist/index.js","type":"module","gitHead":"9dff5fc983756d59c17a8b32d927baba71d8f01e","scripts":{"dev":"bun build src/index.ts --outdir dist --target bun --watch","test":"bun test","build":"bun build src/index.ts --outdir dist --target bun","prepublishOnly":"bun run build"},"_npmUser":{"name":"mte90","email":"mte90net@gmail.com"},"repository":{"url":"git+https://github.com/Mte90/opencode-auto-resume.git","type":"git"},"_npmVersion":"11.2.0","description":"OpenCode plugin that automatically resumes stalled LLM sessions when thinking/streaming freezes mid-generation.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"latest","@opencode-ai/sdk":"latest"},"_npmOperationalInternal":{"tmp":"tmp/opencode-auto-resume_1.0.13_1781517809499_0.20786734764168524","host":"s3://npm-registry-packages-npm-production"}},"1.0.14":{"name":"opencode-auto-resume","version":"1.0.14","keywords":["opencode","plugin","auto-resume","stall-detection","llm"],"author":{"name":"Daniele \"mte90\" Scasciafratte"},"license":"GPL-3.0-or-later","_id":"opencode-auto-resume@1.0.14","maintainers":[{"name":"mte90","email":"mte90net@gmail.com"}],"homepage":"https://github.com/Mte90/opencode-auto-resume#readme","bugs":{"url":"https://github.com/Mte90/opencode-auto-resume/issues"},"dist":{"shasum":"ce2bf869143a6732dd187a1d86787f5397966901","tarball":"https://registry.npmjs.org/opencode-auto-resume/-/opencode-auto-resume-1.0.14.tgz","fileCount":4,"integrity":"sha512-LnCU9vnWyGZnsmREJNDIvgwSVOA2JMRp4UrhCJEiOtRYVt1NXR8tqrrXeODmJ6iN3UCyA7yF1aWvLHtOXALmLA==","signatures":[{"sig":"MEQCIEkSs8Ikh06aiIUCd95VbL/A1SeUxPgQzJaHwzCYVvILAiAFqByb76K+q8AvdZyJ0EnTIqER+sOeE9SnorIU5T5Gbw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":485985},"main":"dist/index.js","type":"module","gitHead":"c1dffbddc443734382b6e05311df91ab184a600b","scripts":{"dev":"bun build src/index.ts --outdir dist --target bun --watch","test":"bun test","build":"bun build src/index.ts --outdir dist --target bun","prepublishOnly":"bun run build"},"_npmUser":{"name":"mte90","email":"mte90net@gmail.com"},"repository":{"url":"git+https://github.com/Mte90/opencode-auto-resume.git","type":"git"},"_npmVersion":"11.2.0","description":"OpenCode plugin that automatically resumes stalled LLM sessions when thinking/streaming freezes mid-generation.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"latest","@opencode-ai/sdk":"latest"},"_npmOperationalInternal":{"tmp":"tmp/opencode-auto-resume_1.0.14_1781522090766_0.9661619910783927","host":"s3://npm-registry-packages-npm-production"}},"1.0.15":{"name":"opencode-auto-resume","version":"1.0.15","keywords":["opencode","plugin","auto-resume","stall-detection","llm"],"author":{"name":"Daniele \"mte90\" Scasciafratte"},"license":"GPL-3.0-or-later","_id":"opencode-auto-resume@1.0.15","maintainers":[{"name":"mte90","email":"mte90net@gmail.com"}],"homepage":"https://github.com/Mte90/opencode-auto-resume#readme","bugs":{"url":"https://github.com/Mte90/opencode-auto-resume/issues"},"dist":{"shasum":"8a4d9f36e591e9172f9292fd27a13e5dc51dbb33","tarball":"https://registry.npmjs.org/opencode-auto-resume/-/opencode-auto-resume-1.0.15.tgz","fileCount":4,"integrity":"sha512-dhw37a0dyXnIca4D+LZ2X2Ryei9TDFhljALFrSmn2dHchpwV+9gi8nAD321wu7tE8eT4wBpmwpMza/FF8QCjlw==","signatures":[{"sig":"MEUCIDjwPa618W90oVBcJOBaxctdsVf/02I6oCCG8CzYrABHAiEA8x45r4EZykk/IFnEk9+SZCfnQ/mpKGbfyBHKn5E20yE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":488617},"main":"dist/index.js","type":"module","gitHead":"e015ee34d14a909b8ef06374c3fcbb2f2c81a9a9","scripts":{"dev":"bun build src/index.ts --outdir dist --target bun --watch","test":"bun test","build":"bun build src/index.ts --outdir dist --target bun","prepublishOnly":"bun run build"},"_npmUser":{"name":"mte90","email":"mte90net@gmail.com"},"repository":{"url":"git+https://github.com/Mte90/opencode-auto-resume.git","type":"git"},"_npmVersion":"11.2.0","description":"OpenCode plugin that automatically resumes stalled LLM sessions when thinking/streaming freezes mid-generation.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"latest","@opencode-ai/sdk":"latest"},"_npmOperationalInternal":{"tmp":"tmp/opencode-auto-resume_1.0.15_1781775200381_0.2353379372916946","host":"s3://npm-registry-packages-npm-production"}},"1.0.16":{"name":"opencode-auto-resume","version":"1.0.16","keywords":["opencode","plugin","auto-resume","stall-detection","llm"],"author":{"name":"Daniele \"mte90\" Scasciafratte"},"license":"GPL-3.0-or-later","_id":"opencode-auto-resume@1.0.16","maintainers":[{"name":"mte90","email":"mte90net@gmail.com"}],"homepage":"https://github.com/Mte90/opencode-auto-resume#readme","bugs":{"url":"https://github.com/Mte90/opencode-auto-resume/issues"},"dist":{"shasum":"2bde7b3c05bf4d9af802d4a85d171a3956a5c8e2","tarball":"https://registry.npmjs.org/opencode-auto-resume/-/opencode-auto-resume-1.0.16.tgz","fileCount":4,"integrity":"sha512-uAfl0OGyJEkIGdmfDol/B5t5v7P1AjyaoffmumMfWl4E2wuxHEqPrfsj/AKJ8XHlJHdJc2XVhFOfMMTeobpZhw==","signatures":[{"sig":"MEUCICl4l0YTTXuASAkhEtHH3quqnZuiKwjqepPLV5qko6eLAiEA9+ge7X65XNw+Ze6QQG49LtMlVAQPrITNwMbsDhXvRBY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":489810},"main":"dist/index.js","type":"module","gitHead":"5077a891742643e3e3e200d2612d6d66f534b918","scripts":{"dev":"bun build src/index.ts --outdir dist --target bun --watch","test":"bun test","build":"bun build src/index.ts --outdir dist --target bun","prepublishOnly":"bun run build"},"_npmUser":{"name":"mte90","email":"mte90net@gmail.com"},"repository":{"url":"git+https://github.com/Mte90/opencode-auto-resume.git","type":"git"},"_npmVersion":"11.2.0","description":"OpenCode plugin that automatically resumes stalled LLM sessions when thinking/streaming freezes mid-generation.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"latest","@opencode-ai/sdk":"latest"},"_npmOperationalInternal":{"tmp":"tmp/opencode-auto-resume_1.0.16_1782205118022_0.6626563812026014","host":"s3://npm-registry-packages-npm-production"}},"1.0.17":{"name":"opencode-auto-resume","version":"1.0.17","keywords":["opencode","plugin","auto-resume","stall-detection","llm"],"author":{"name":"Daniele \"mte90\" Scasciafratte"},"license":"GPL-3.0-or-later","_id":"opencode-auto-resume@1.0.17","maintainers":[{"name":"mte90","email":"mte90net@gmail.com"}],"homepage":"https://github.com/Mte90/opencode-auto-resume#readme","bugs":{"url":"https://github.com/Mte90/opencode-auto-resume/issues"},"dist":{"shasum":"471ba6ac59a54ed8de8813751dd9902b05bb98b9","tarball":"https://registry.npmjs.org/opencode-auto-resume/-/opencode-auto-resume-1.0.17.tgz","fileCount":4,"integrity":"sha512-nOflnGm7dsVwsdZQxzeamaHfp5I+65UPgN6BmL2cKMYo+9Hc/t9s+nAmi09YamKg5BBzIFFSqyA10h123PxOuA==","signatures":[{"sig":"MEQCIHCJTavFMalcQi+SrXilLGh+Ifa5BixxckrJ3QFmVSjuAiBWCoRkyi/mH0V3jVeaDP4hcWyB2mzGuZeU8GYyreeTZw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":492942},"main":"dist/index.js","type":"module","gitHead":"e4b60be94a754630c0dce7b163e4a70a27311da9","scripts":{"dev":"bun build src/index.ts --outdir dist --target bun --watch","test":"bun test","build":"bun build src/index.ts --outdir dist --target bun","prepublishOnly":"bun run build"},"_npmUser":{"name":"mte90","email":"mte90net@gmail.com"},"repository":{"url":"git+https://github.com/Mte90/opencode-auto-resume.git","type":"git"},"_npmVersion":"11.2.0","description":"OpenCode plugin that automatically resumes stalled LLM sessions when thinking/streaming freezes mid-generation.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"latest","@opencode-ai/sdk":"latest"},"_npmOperationalInternal":{"tmp":"tmp/opencode-auto-resume_1.0.17_1782918484486_0.20935180089071648","host":"s3://npm-registry-packages-npm-production"}},"1.0.18":{"name":"opencode-auto-resume","version":"1.0.18","keywords":["opencode","plugin","auto-resume","stall-detection","llm"],"author":{"name":"Daniele \"mte90\" Scasciafratte"},"license":"GPL-3.0-or-later","_id":"opencode-auto-resume@1.0.18","maintainers":[{"name":"mte90","email":"mte90net@gmail.com"}],"homepage":"https://github.com/Mte90/opencode-auto-resume#readme","bugs":{"url":"https://github.com/Mte90/opencode-auto-resume/issues"},"dist":{"shasum":"4abfb7fb828187bff3c9d3524962d12a16067963","tarball":"https://registry.npmjs.org/opencode-auto-resume/-/opencode-auto-resume-1.0.18.tgz","fileCount":4,"integrity":"sha512-pR9suy+FbC2e81bFgbb/13JzR2AA1w8I9sg39cOPXXIC4wwiJaArN0ZgKTSpnL3Bw0Ht12qySs5y9Az6I8vVjA==","signatures":[{"sig":"MEMCIDbfIS1u/IWPjG9DT97wMax4TNZ/mBd59/R9xNxOMtyUAh89uhhlAfi4CbXdemZKmoLIMbHT4dal6WqjBlU7a/YK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":493634},"main":"dist/index.js","type":"module","gitHead":"9ebe692cb252650b54f93521ab640a52f5324e45","scripts":{"dev":"bun build src/index.ts --outdir dist --target bun --watch","test":"bun test","build":"bun build src/index.ts --outdir dist --target bun","prepublishOnly":"bun run build"},"_npmUser":{"name":"mte90","email":"mte90net@gmail.com"},"repository":{"url":"git+https://github.com/Mte90/opencode-auto-resume.git","type":"git"},"_npmVersion":"11.2.0","description":"OpenCode plugin that automatically resumes stalled LLM sessions when thinking/streaming freezes mid-generation.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"latest","@opencode-ai/sdk":"latest"},"_npmOperationalInternal":{"tmp":"tmp/opencode-auto-resume_1.0.18_1782985401777_0.8624203081516251","host":"s3://npm-registry-packages-npm-production"}},"1.0.19":{"name":"opencode-auto-resume","version":"1.0.19","keywords":["opencode","plugin","auto-resume","stall-detection","llm"],"author":{"name":"Daniele \"mte90\" Scasciafratte"},"license":"GPL-3.0-or-later","_id":"opencode-auto-resume@1.0.19","maintainers":[{"name":"mte90","email":"mte90net@gmail.com"}],"homepage":"https://github.com/Mte90/opencode-auto-resume#readme","bugs":{"url":"https://github.com/Mte90/opencode-auto-resume/issues"},"dist":{"shasum":"93ef0860b70f187385fdd6f556a24d5b88081823","tarball":"https://registry.npmjs.org/opencode-auto-resume/-/opencode-auto-resume-1.0.19.tgz","fileCount":4,"integrity":"sha512-dK/S3ZN+vPGjpXvxXZw+S5IuFVuJ6jQurMQXUB8H4vcI0X3zQ1AWSDLhGFi3g3eLQUCbp8Y/Vrgd4H4mIimY9g==","signatures":[{"sig":"MEUCID8yDfhOB0dHvbHwlElnfgr6QdmiZbCo8bM0th2mJyUEAiEA0chuWFhdcxQ9wkO4Y52XgiIKJ8N25qumOcHpkKFXNiw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":494398},"main":"dist/index.js","type":"module","gitHead":"28c37b80e08ddc0b0ffc2f9df1bc415d393e1c7b","scripts":{"dev":"bun build src/index.ts --outdir dist --target bun --watch","test":"bun test","build":"bun build src/index.ts --outdir dist --target bun","prepublishOnly":"bun run build"},"_npmUser":{"name":"mte90","email":"mte90net@gmail.com"},"repository":{"url":"git+https://github.com/Mte90/opencode-auto-resume.git","type":"git"},"_npmVersion":"11.2.0","description":"OpenCode plugin that automatically resumes stalled LLM sessions when thinking/streaming freezes mid-generation.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"latest","@opencode-ai/sdk":"latest"},"_npmOperationalInternal":{"tmp":"tmp/opencode-auto-resume_1.0.19_1783407060110_0.6932716021398051","host":"s3://npm-registry-packages-npm-production"}},"1.0.20":{"name":"opencode-auto-resume","version":"1.0.20","keywords":["opencode","plugin","auto-resume","stall-detection","llm"],"author":{"name":"Daniele \"mte90\" Scasciafratte"},"license":"GPL-3.0-or-later","_id":"opencode-auto-resume@1.0.20","maintainers":[{"name":"mte90","email":"mte90net@gmail.com"}],"homepage":"https://github.com/Mte90/opencode-auto-resume#readme","bugs":{"url":"https://github.com/Mte90/opencode-auto-resume/issues"},"dist":{"shasum":"85bd6e2caf584eff7a74db81f8072ad1b80799c9","tarball":"https://registry.npmjs.org/opencode-auto-resume/-/opencode-auto-resume-1.0.20.tgz","fileCount":4,"integrity":"sha512-3jaYrI7fmHI2B6yV7tqCOFERjrH2MziaphSeL/ZCde94WyOhRQxBAbz0pt3wt+OfruYs3E4UsWY24jHsqFv/CA==","signatures":[{"sig":"MEUCIGnjr58aQ9sNCDfwCOMXjtZ2Ps3FS5Lx2GYhfC1KEFSeAiEA6TbtkqeyA2ey8n4t0lOjtr245ODYF09s9uhyEEB3/OA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":496332},"main":"dist/index.js","type":"module","gitHead":"a46445eb815a2b75e5d865bfd1369c1426b4c38f","scripts":{"dev":"bun build src/index.ts --outdir dist --target bun --watch","test":"bun test","build":"bun build src/index.ts --outdir dist --target bun","prepublishOnly":"bun run build"},"_npmUser":{"name":"mte90","email":"mte90net@gmail.com"},"repository":{"url":"git+https://github.com/Mte90/opencode-auto-resume.git","type":"git"},"_npmVersion":"11.2.0","description":"OpenCode plugin that automatically resumes stalled LLM sessions when thinking/streaming freezes mid-generation.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"latest","@opencode-ai/sdk":"latest"},"_npmOperationalInternal":{"tmp":"tmp/opencode-auto-resume_1.0.20_1783436866974_0.5156789949316682","host":"s3://npm-registry-packages-npm-production"}},"1.0.21":{"name":"opencode-auto-resume","version":"1.0.21","keywords":["opencode","plugin","auto-resume","stall-detection","llm"],"author":{"name":"Daniele \"mte90\" Scasciafratte"},"license":"GPL-3.0-or-later","_id":"opencode-auto-resume@1.0.21","maintainers":[{"name":"mte90","email":"mte90net@gmail.com"}],"homepage":"https://github.com/Mte90/opencode-auto-resume#readme","bugs":{"url":"https://github.com/Mte90/opencode-auto-resume/issues"},"dist":{"shasum":"5e62bc94a80d576bbf09e484c2d136e757376959","tarball":"https://registry.npmjs.org/opencode-auto-resume/-/opencode-auto-resume-1.0.21.tgz","fileCount":4,"integrity":"sha512-ApSlYEuWt0P4g/o1u3iKdwKiYzWFzP831nu8ETLloHv8BA6nbT9xvS4cVJ7txPXPveTRqltyCva8j9E+FjC/vg==","signatures":[{"sig":"MEQCIECbzc0kkmobMjDMJkfSJbAHkAzX5E3dmcZtDlCccQEVAiBp5cHuL+rX+WEYDcQhB4fLVHj+nw+zl4SYbpWCAUrYXw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":496704},"main":"dist/index.js","type":"module","gitHead":"81be8616ff6c6444f49a4195925f9bd8087dbd76","scripts":{"dev":"bun build src/index.ts --outdir dist --target bun --watch","test":"bun test","build":"bun build src/index.ts --outdir dist --target bun","prepublishOnly":"bun run build"},"_npmUser":{"name":"mte90","email":"mte90net@gmail.com"},"repository":{"url":"git+https://github.com/Mte90/opencode-auto-resume.git","type":"git"},"_npmVersion":"11.2.0","description":"OpenCode plugin that automatically resumes stalled LLM sessions when thinking/streaming freezes mid-generation.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"latest","@opencode-ai/sdk":"latest"},"_npmOperationalInternal":{"tmp":"tmp/opencode-auto-resume_1.0.21_1783438203536_0.6206213747296607","host":"s3://npm-registry-packages-npm-production"}},"1.0.22":{"name":"opencode-auto-resume","version":"1.0.22","keywords":["opencode","plugin","auto-resume","stall-detection","llm"],"author":{"name":"Daniele \"mte90\" Scasciafratte"},"license":"GPL-3.0-or-later","_id":"opencode-auto-resume@1.0.22","maintainers":[{"name":"mte90","email":"mte90net@gmail.com"}],"homepage":"https://github.com/Mte90/opencode-auto-resume#readme","bugs":{"url":"https://github.com/Mte90/opencode-auto-resume/issues"},"dist":{"shasum":"360d1d655c35d87649c0ccc6081e66449287e9ef","tarball":"https://registry.npmjs.org/opencode-auto-resume/-/opencode-auto-resume-1.0.22.tgz","fileCount":4,"integrity":"sha512-sVoHiroIcNIVXVxrHCDsf87WxDCHZ9MhL15exDp2PMBoNUd4CIPr5zilkCAqCgoqfg7/yNz5rd4+7rv/9tr9WQ==","signatures":[{"sig":"MEQCIBocUy3eu0B0deiOa5mzsqxWh4yqt3NxbO2VnLOJDppBAiBbSgDv0NGyLpoCibwFGbKY1tuTV/y+SAbdBBqzJtLyxA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":497433},"main":"dist/index.js","type":"module","gitHead":"81be8616ff6c6444f49a4195925f9bd8087dbd76","scripts":{"dev":"bun build src/index.ts --outdir dist --target bun --watch","test":"bun test","build":"bun build src/index.ts --outdir dist --target bun","prepublishOnly":"bun run build"},"_npmUser":{"name":"mte90","email":"mte90net@gmail.com"},"repository":{"url":"git+https://github.com/Mte90/opencode-auto-resume.git","type":"git"},"_npmVersion":"11.2.0","description":"OpenCode plugin that automatically resumes stalled LLM sessions when thinking/streaming freezes mid-generation.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"latest","@opencode-ai/sdk":"latest"},"_npmOperationalInternal":{"tmp":"tmp/opencode-auto-resume_1.0.22_1783439045184_0.22211271909332408","host":"s3://npm-registry-packages-npm-production"}},"1.0.23":{"name":"opencode-auto-resume","version":"1.0.23","keywords":["opencode","plugin","auto-resume","stall-detection","llm"],"author":{"name":"Daniele \"mte90\" Scasciafratte"},"license":"GPL-3.0-or-later","_id":"opencode-auto-resume@1.0.23","maintainers":[{"name":"mte90","email":"mte90net@gmail.com"}],"homepage":"https://github.com/Mte90/opencode-auto-resume#readme","bugs":{"url":"https://github.com/Mte90/opencode-auto-resume/issues"},"dist":{"shasum":"6e9a2a28c701942cf872b1141da4ac8375668a7f","tarball":"https://registry.npmjs.org/opencode-auto-resume/-/opencode-auto-resume-1.0.23.tgz","fileCount":4,"integrity":"sha512-ZGbj9FPTXwuRza/6IJV3f7tQ/lHdCiFbSf7Xjjw0skKXACcDqKcstw1Zl/GIKsXv+Kpvj/ko0018QHLDq7lUwA==","signatures":[{"sig":"MEYCIQDYbO1QuYTtF8nBUxabJekx/N7UHawnF5/l0m09PP3aMwIhAMo3JVs4lOlzdXpsSyA/CVQ+XKzylpcUOgh5vhhcSIiz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/opencode-auto-resume@1.0.23","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":498323},"main":"dist/index.js","type":"module","gitHead":"85ad6c8da24397e2acfa02901bcadf43fe54ba77","scripts":{"dev":"bun build src/index.ts --outdir dist --target bun --watch","test":"bun test","build":"bun build src/index.ts --outdir dist --target bun","prepublishOnly":"bun run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:16de4663-2a02-4a29-a8fb-cb89ecd99c23"}},"repository":{"url":"git+https://github.com/Mte90/opencode-auto-resume.git","type":"git"},"_npmVersion":"11.16.0","description":"OpenCode plugin that automatically resumes stalled LLM sessions when thinking/streaming freezes mid-generation.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"latest","@opencode-ai/sdk":"latest"},"_npmOperationalInternal":{"tmp":"tmp/opencode-auto-resume_1.0.23_1783441528589_0.7087378035118654","host":"s3://npm-registry-packages-npm-production"}},"1.0.24":{"name":"opencode-auto-resume","version":"1.0.24","keywords":["opencode","plugin","auto-resume","stall-detection","llm"],"author":{"name":"Daniele \"mte90\" Scasciafratte"},"license":"GPL-3.0-or-later","_id":"opencode-auto-resume@1.0.24","maintainers":[{"name":"mte90","email":"mte90net@gmail.com"}],"homepage":"https://github.com/Mte90/opencode-auto-resume#readme","bugs":{"url":"https://github.com/Mte90/opencode-auto-resume/issues"},"dist":{"shasum":"b322e103d8faeac320c25759b965b1b8fa716a94","tarball":"https://registry.npmjs.org/opencode-auto-resume/-/opencode-auto-resume-1.0.24.tgz","fileCount":4,"integrity":"sha512-zLRoYoZSUQ0ScFMSYgEnsDRzF+lRGNHelWm7hqH4ccunklzyZCcpy/EChLC9wOKJGmcNirCJdFT55SfAv0sPyw==","signatures":[{"sig":"MEUCICwsbfihFflDaqNFlQEEWFe9ab0o7YiRsplA2BJvo7EHAiEA8yPh5lLZNTDpDuOYGDfhe7pzNZquQUj6mols0pbrXFA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/opencode-auto-resume@1.0.24","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":505402},"main":"dist/index.js","type":"module","gitHead":"6925cded39356f21d1ad11029b1e6ee5ad3a4bc9","scripts":{"dev":"bun build src/index.ts --outdir dist --target bun --watch","test":"bun test","build":"bun build src/index.ts --outdir dist --target bun","prepublishOnly":"bun run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:16de4663-2a02-4a29-a8fb-cb89ecd99c23"}},"repository":{"url":"git+https://github.com/Mte90/opencode-auto-resume.git","type":"git"},"_npmVersion":"11.16.0","description":"OpenCode plugin that automatically resumes stalled LLM sessions when thinking/streaming freezes mid-generation.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"latest","@opencode-ai/sdk":"latest"},"_npmOperationalInternal":{"tmp":"tmp/opencode-auto-resume_1.0.24_1783516417105_0.7253472617436709","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"opencode-auto-resume","version":"1.1.1","keywords":["opencode","plugin","auto-resume","stall-detection","llm"],"author":{"name":"Daniele \"mte90\" Scasciafratte"},"license":"GPL-3.0-or-later","_id":"opencode-auto-resume@1.1.1","maintainers":[{"name":"mte90","email":"mte90net@gmail.com"}],"homepage":"https://github.com/Mte90/opencode-auto-resume#readme","bugs":{"url":"https://github.com/Mte90/opencode-auto-resume/issues"},"dist":{"shasum":"f523fd6c3e229cecb5f7eae4725d97515d047bfd","tarball":"https://registry.npmjs.org/opencode-auto-resume/-/opencode-auto-resume-1.1.1.tgz","fileCount":4,"integrity":"sha512-OVxcJmsMPaJWWmlZ0N265c/6fFsaXb87OP7UFDL/51LytmrJ+SMBCg6E9gf+gICDlypvu22eSBmeTgfCnqrVJA==","signatures":[{"sig":"MEYCIQD0TqkM4XKq2eNpXv47oPZpv2LYM/NtFiU0CuXw9XDhkwIhAPg1FpkGCVlozXHT7xek8uqKz5emKOe+2A/vLzJ1RiCC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/opencode-auto-resume@1.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":506498},"main":"dist/index.js","type":"module","gitHead":"e7b092d06756676a5920c7285355b78428946cbc","scripts":{"dev":"bun build src/index.ts --outdir dist --target bun --watch","test":"bun test","build":"bun build src/index.ts --outdir dist --target bun","prepublishOnly":"bun run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:16de4663-2a02-4a29-a8fb-cb89ecd99c23"}},"repository":{"url":"git+https://github.com/Mte90/opencode-auto-resume.git","type":"git"},"_npmVersion":"11.16.0","description":"OpenCode plugin that automatically resumes stalled LLM sessions when thinking/streaming freezes mid-generation.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"latest","@opencode-ai/sdk":"latest"},"_npmOperationalInternal":{"tmp":"tmp/opencode-auto-resume_1.1.1_1783606874239_0.5459747025832167","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"opencode-auto-resume","version":"1.1.2","keywords":["opencode","plugin","auto-resume","stall-detection","llm"],"author":{"name":"Daniele \"mte90\" Scasciafratte"},"license":"GPL-3.0-or-later","_id":"opencode-auto-resume@1.1.2","maintainers":[{"name":"mte90","email":"mte90net@gmail.com"}],"homepage":"https://github.com/Mte90/opencode-auto-resume#readme","bugs":{"url":"https://github.com/Mte90/opencode-auto-resume/issues"},"dist":{"shasum":"19af2e0f336bae46b0b8249c100879a2dba3dff3","tarball":"https://registry.npmjs.org/opencode-auto-resume/-/opencode-auto-resume-1.1.2.tgz","fileCount":4,"integrity":"sha512-TM5Kl9wBY4zlm56Nzxcgi2DdJ7f6UzM9yLEpv7sLYRAfTW31hD16QJctTBRw07kwM5+z4ALUqsAUZpeMzuSImA==","signatures":[{"sig":"MEYCIQDmibR+7k5Hn05bpcoQ5R9/bEFaEqKGmfs3XCJa8Gwv/gIhAP1hPyqO3NK8EYQwACAnjurPTgio7yEMv1Y66PHciJGx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/opencode-auto-resume@1.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":507770},"main":"dist/index.js","type":"module","gitHead":"a043efa4ea402ebb36a44f68e017dfe5ba7c2a4c","scripts":{"dev":"bun build src/index.ts --outdir dist --target bun --watch","test":"bun test","build":"bun build src/index.ts --outdir dist --target bun","prepublishOnly":"bun run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:16de4663-2a02-4a29-a8fb-cb89ecd99c23"}},"repository":{"url":"git+https://github.com/Mte90/opencode-auto-resume.git","type":"git"},"_npmVersion":"11.16.0","description":"OpenCode plugin that automatically resumes stalled LLM sessions when thinking/streaming freezes mid-generation.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"latest","@opencode-ai/sdk":"latest"},"_npmOperationalInternal":{"tmp":"tmp/opencode-auto-resume_1.1.2_1784114435324_0.6097894613861607","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"opencode-auto-resume","version":"1.1.3","keywords":["opencode","plugin","auto-resume","stall-detection","llm"],"author":{"name":"Daniele \"mte90\" Scasciafratte"},"license":"GPL-3.0-or-later","_id":"opencode-auto-resume@1.1.3","maintainers":[{"name":"mte90","email":"mte90net@gmail.com"}],"homepage":"https://github.com/Mte90/opencode-auto-resume#readme","bugs":{"url":"https://github.com/Mte90/opencode-auto-resume/issues"},"dist":{"shasum":"17478ecf917b10d07993eb0413ef6b208cd69489","tarball":"https://registry.npmjs.org/opencode-auto-resume/-/opencode-auto-resume-1.1.3.tgz","fileCount":4,"integrity":"sha512-UObfGN1+VP24igOjdGNcddB8hcvtc0CohcF2d2862vpG6HDeVvaYnftAnI5KJQl52Nl+V2Rg6BgMsTvSzjN/Vg==","signatures":[{"sig":"MEUCIQCdi7jmGMh1BJ9j35vAxCIDf73i8twI29U0I1ZUN+u7xAIgRVkvkcvTgSuT23Quef8xzMqKyKZ6JXzfygxPYHeaQhU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/opencode-auto-resume@1.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":509262},"main":"dist/index.js","type":"module","gitHead":"4a1c7556d1fb57eea2b868a458dd232918444145","scripts":{"dev":"bun build src/index.ts --outdir dist --target bun --watch","test":"bun test","build":"bun build src/index.ts --outdir dist --target bun","prepublishOnly":"bun run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:16de4663-2a02-4a29-a8fb-cb89ecd99c23"}},"repository":{"url":"git+https://github.com/Mte90/opencode-auto-resume.git","type":"git"},"_npmVersion":"11.16.0","description":"OpenCode plugin that automatically resumes stalled LLM sessions when thinking/streaming freezes mid-generation.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"latest","@opencode-ai/sdk":"latest"},"_npmOperationalInternal":{"tmp":"tmp/opencode-auto-resume_1.1.3_1784192417018_0.45307265242201744","host":"s3://npm-registry-packages-npm-production"}},"1.1.5":{"name":"opencode-auto-resume","version":"1.1.5","keywords":["opencode","plugin","auto-resume","stall-detection","llm"],"author":{"name":"Daniele \"mte90\" Scasciafratte"},"license":"GPL-3.0-or-later","_id":"opencode-auto-resume@1.1.5","maintainers":[{"name":"mte90","email":"mte90net@gmail.com"}],"homepage":"https://github.com/Mte90/opencode-auto-resume#readme","bugs":{"url":"https://github.com/Mte90/opencode-auto-resume/issues"},"dist":{"shasum":"8d9f71fe055d647343577f79257c0e6403d21e6a","tarball":"https://registry.npmjs.org/opencode-auto-resume/-/opencode-auto-resume-1.1.5.tgz","fileCount":4,"integrity":"sha512-9wteKZGogjBLw79awwgZWGt1IH6hR415MTsFptIP++9KfiqFJ1NY/+T3xKsqfHgLMx96mRHTuR/BZ0vshyHkXg==","signatures":[{"sig":"MEQCIB/SJMUYl378HJXlmQT4qhQjrYTy5HPqIp73cvkLhAOdAiAE9OAkaqP0CElnO0p5TfSHTuKTWp9FKJjjdCPsxKo4Yw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/opencode-auto-resume@1.1.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":535898},"main":"dist/index.js","type":"module","gitHead":"88add1cd3a53b95969fdae39a90c2ea57587d642","scripts":{"dev":"bun build src/index.ts --outdir dist --target bun --watch","test":"bun test","build":"bun build src/index.ts --outdir dist --target bun","prepublishOnly":"bun run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:16de4663-2a02-4a29-a8fb-cb89ecd99c23"}},"repository":{"url":"git+https://github.com/Mte90/opencode-auto-resume.git","type":"git"},"_npmVersion":"11.16.0","description":"OpenCode plugin that automatically resumes stalled LLM sessions when thinking/streaming freezes mid-generation.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"latest","@opencode-ai/sdk":"latest"},"_npmOperationalInternal":{"tmp":"tmp/opencode-auto-resume_1.1.5_1785845057218_0.4163422066249769","host":"s3://npm-registry-packages-npm-production"}},"1.1.6":{"name":"opencode-auto-resume","version":"1.1.6","keywords":["opencode","plugin","auto-resume","stall-detection","llm"],"author":{"name":"Daniele \"mte90\" Scasciafratte"},"license":"GPL-3.0-or-later","_id":"opencode-auto-resume@1.1.6","maintainers":[{"name":"mte90","email":"mte90net@gmail.com"}],"homepage":"https://github.com/Mte90/opencode-auto-resume#readme","bugs":{"url":"https://github.com/Mte90/opencode-auto-resume/issues"},"dist":{"shasum":"315f2b5a617140a09253cade36e2b6905ec6a8da","tarball":"https://registry.npmjs.org/opencode-auto-resume/-/opencode-auto-resume-1.1.6.tgz","fileCount":4,"integrity":"sha512-hEppAb4+MY4vbrG0ohpTzsNdT7SYKP/tFzqkoA+7m+LbyV9/2/N7ny8CaIuHKFto+11Vz1Cf6GF7WNnw3xufhQ==","signatures":[{"sig":"MEYCIQDELQslPllnIVjLBl9nghUcBzcGhR8QkDsCjf1mFWVWlgIhAPWi/cAJr9YlkLGigAce0kA7KUQ4befPVoRE1YR5REZF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/opencode-auto-resume@1.1.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":536679},"main":"dist/index.js","type":"module","gitHead":"e2991db97e18beb3f625d7646d2b4ca321efb288","scripts":{"dev":"bun build src/index.ts --outdir dist --target bun --watch","test":"bun test","build":"bun build src/index.ts --outdir dist --target bun","prepublishOnly":"bun run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:16de4663-2a02-4a29-a8fb-cb89ecd99c23"}},"repository":{"url":"git+https://github.com/Mte90/opencode-auto-resume.git","type":"git"},"_npmVersion":"11.16.0","description":"OpenCode plugin that automatically resumes stalled LLM sessions when thinking/streaming freezes mid-generation.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"latest","@opencode-ai/sdk":"latest"},"_npmOperationalInternal":{"tmp":"tmp/opencode-auto-resume_1.1.6_1785858717920_0.008438913231770373","host":"s3://npm-registry-packages-npm-production"}},"1.1.8":{"name":"opencode-auto-resume","version":"1.1.8","keywords":["opencode","plugin","auto-resume","stall-detection","llm"],"author":{"name":"Daniele \"mte90\" Scasciafratte"},"license":"GPL-3.0-or-later","_id":"opencode-auto-resume@1.1.8","maintainers":[{"name":"mte90","email":"mte90net@gmail.com"}],"homepage":"https://github.com/Mte90/opencode-auto-resume#readme","bugs":{"url":"https://github.com/Mte90/opencode-auto-resume/issues"},"dist":{"shasum":"411eedb852e8a72d3773ce5717f7dc2548e7cb87","tarball":"https://registry.npmjs.org/opencode-auto-resume/-/opencode-auto-resume-1.1.8.tgz","fileCount":4,"integrity":"sha512-QOv9tKz2ILrSlgOUm1z71ZVXSdeyBsG6PWdjPTA29abneR+QAN+Vhk+iaxsQ6L/2cHPQ6S1azsgBbTpHMa2ugQ==","signatures":[{"sig":"MEYCIQCYxIX2m/MEfj7QJZz67b6ksSGgKBcFmMa6n3243YSmwQIhANRWS5OgrpVHRehHsZXT06Vt7LfPkHBd5/0zU5tzJ26q","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/opencode-auto-resume@1.1.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":536786},"main":"dist/index.js","type":"module","gitHead":"566837c724cac87b696dd1a1ac84c41638a79193","scripts":{"dev":"bun build src/index.ts --outdir dist --target bun --watch","test":"bun test","build":"bun build src/index.ts --outdir dist --target bun","prepublishOnly":"bun run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:16de4663-2a02-4a29-a8fb-cb89ecd99c23"}},"repository":{"url":"git+https://github.com/Mte90/opencode-auto-resume.git","type":"git"},"_npmVersion":"11.16.0","description":"OpenCode plugin that automatically resumes stalled LLM sessions when thinking/streaming freezes mid-generation.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"latest","@opencode-ai/sdk":"latest"},"_npmOperationalInternal":{"tmp":"tmp/opencode-auto-resume_1.1.8_1785862093122_0.6108386185054155","host":"s3://npm-registry-packages-npm-production"}},"1.1.9":{"name":"opencode-auto-resume","version":"1.1.9","keywords":["opencode","plugin","auto-resume","stall-detection","llm"],"author":{"name":"Daniele \"mte90\" Scasciafratte"},"license":"GPL-3.0-or-later","_id":"opencode-auto-resume@1.1.9","maintainers":[{"name":"mte90","email":"mte90net@gmail.com"}],"homepage":"https://github.com/Mte90/opencode-auto-resume#readme","bugs":{"url":"https://github.com/Mte90/opencode-auto-resume/issues"},"dist":{"shasum":"40389d3a7c289ae8d73baefba6474bb0bd17ec6c","tarball":"https://registry.npmjs.org/opencode-auto-resume/-/opencode-auto-resume-1.1.9.tgz","fileCount":4,"integrity":"sha512-+deuOTNJfa2c+yrdc1FBgMLP86C7S3QOvg4wcpn7C5HxKz0Ma94i2wsO3rSnyin8MTzSgSKoCbco0nm5SvLCsw==","signatures":[{"sig":"MEUCIQDZgWxkFFOvqV5DbuCrVD+fjBq/zpOqntkQHJHKdidxrQIgEzeDbQmbupzHD+lvg16N+eKI0uhHIC0jaAaRz4S5+E4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/opencode-auto-resume@1.1.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":536939},"main":"dist/index.js","type":"module","gitHead":"a02a85023f75882f2c544776bc9aca0c9c298890","scripts":{"dev":"bun build src/index.ts --outdir dist --target bun --watch","test":"bun test","build":"bun build src/index.ts --outdir dist --target bun","prepublishOnly":"bun run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:16de4663-2a02-4a29-a8fb-cb89ecd99c23"}},"repository":{"url":"git+https://github.com/Mte90/opencode-auto-resume.git","type":"git"},"_npmVersion":"11.16.0","description":"OpenCode plugin that automatically resumes stalled LLM sessions when thinking/streaming freezes mid-generation.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"latest","@opencode-ai/sdk":"latest"},"_npmOperationalInternal":{"tmp":"tmp/opencode-auto-resume_1.1.9_1785864047006_0.5131424650161953","host":"s3://npm-registry-packages-npm-production"}},"1.1.10":{"name":"opencode-auto-resume","version":"1.1.10","keywords":["opencode","plugin","auto-resume","stall-detection","llm"],"author":{"name":"Daniele \"mte90\" Scasciafratte"},"license":"GPL-3.0-or-later","_id":"opencode-auto-resume@1.1.10","maintainers":[{"name":"mte90","email":"mte90net@gmail.com"}],"homepage":"https://github.com/Mte90/opencode-auto-resume#readme","bugs":{"url":"https://github.com/Mte90/opencode-auto-resume/issues"},"dist":{"shasum":"72f9516695c413b91ddac738f0de5acbbdeebebb","tarball":"https://registry.npmjs.org/opencode-auto-resume/-/opencode-auto-resume-1.1.10.tgz","fileCount":4,"integrity":"sha512-iGcbQavfEmjYUCrCkkxeou6LUnJ4tulevyHPDejjozir5NZN45RZ/FUauBR2VByPZM1RJYH+EDLx87i8QVa6Lw==","signatures":[{"sig":"MEYCIQChDp+CbUOUvMNI+6uO2evqxR3mpgTWiNV6SM5dlJeTpAIhANsEXdLQcFOziC+d79e/4ZE+S+zBNWtjiD5C0p17V+lA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/opencode-auto-resume@1.1.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":541097},"main":"dist/index.js","type":"module","gitHead":"4b1182cfc4aaf23f2610e88ddd873d461663ee6f","scripts":{"dev":"bun build src/index.ts --outdir dist --target bun --watch","test":"bun test","build":"bun build src/index.ts --outdir dist --target bun","prepublishOnly":"bun run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:16de4663-2a02-4a29-a8fb-cb89ecd99c23"}},"repository":{"url":"git+https://github.com/Mte90/opencode-auto-resume.git","type":"git"},"_npmVersion":"11.16.0","description":"OpenCode plugin that automatically resumes stalled LLM sessions when thinking/streaming freezes mid-generation.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"latest","@opencode-ai/sdk":"latest"},"_npmOperationalInternal":{"tmp":"tmp/opencode-auto-resume_1.1.10_1786370579711_0.6031929911439056","host":"s3://npm-registry-packages-npm-production"}},"1.1.11":{"name":"opencode-auto-resume","version":"1.1.11","keywords":["opencode","plugin","auto-resume","stall-detection","llm"],"author":{"name":"Daniele \"mte90\" Scasciafratte"},"license":"GPL-3.0-or-later","_id":"opencode-auto-resume@1.1.11","maintainers":[{"name":"mte90","email":"mte90net@gmail.com"}],"homepage":"https://github.com/Mte90/opencode-auto-resume#readme","bugs":{"url":"https://github.com/Mte90/opencode-auto-resume/issues"},"dist":{"shasum":"58bca38bb3f6b2e0661b7b9aa091b9df013858a4","tarball":"https://registry.npmjs.org/opencode-auto-resume/-/opencode-auto-resume-1.1.11.tgz","fileCount":4,"integrity":"sha512-w6t27BvYUZFV9rAeEOai1pGcYYVOevuCn2bYx/JqjUAyMv2ODV8oX9JJ6feZued3xhOoMM5fLG0oeY46oMRs+A==","signatures":[{"sig":"MEUCIELX79XUswDKqqD8rVyqsN1MiwZh3QivURHs3laqKTDqAiEAyOoBvZNae+zMHhI7zuVFRW+4/zFwTCe6N4vuxCLTjdY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/opencode-auto-resume@1.1.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":543692},"main":"dist/index.js","type":"module","gitHead":"9f129b750f784298ab6060a4b1e650c05d6fa2c6","scripts":{"dev":"bun build src/index.ts --outdir dist --target bun --watch","test":"bun test","build":"bun build src/index.ts --outdir dist --target bun","prepublishOnly":"bun run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:16de4663-2a02-4a29-a8fb-cb89ecd99c23"}},"repository":{"url":"git+https://github.com/Mte90/opencode-auto-resume.git","type":"git"},"_npmVersion":"11.17.0","description":"OpenCode plugin that automatically resumes stalled LLM sessions when thinking/streaming freezes mid-generation.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"latest","@opencode-ai/sdk":"latest"},"_npmOperationalInternal":{"tmp":"tmp/opencode-auto-resume_1.1.11_1787577459038_0.5786155980849281","host":"s3://npm-registry-packages-npm-production"}},"1.1.12":{"name":"opencode-auto-resume","version":"1.1.12","keywords":["opencode","plugin","auto-resume","stall-detection","llm"],"author":{"name":"Daniele \"mte90\" Scasciafratte"},"license":"GPL-3.0-or-later","_id":"opencode-auto-resume@1.1.12","maintainers":[{"name":"mte90","email":"mte90net@gmail.com"}],"homepage":"https://github.com/Mte90/opencode-auto-resume#readme","bugs":{"url":"https://github.com/Mte90/opencode-auto-resume/issues"},"dist":{"shasum":"83b2b43928a9b6d073adabc2b4b642dd0c51bfd1","tarball":"https://registry.npmjs.org/opencode-auto-resume/-/opencode-auto-resume-1.1.12.tgz","fileCount":4,"integrity":"sha512-htOh93offaEE40k6YowLwvbQI3H9JtGEzgwtC3Ns1Xu1QqN4qs/d8fQPhynu89hTcnd1N7+z1Sr9nHTSofRZ8Q==","signatures":[{"sig":"MEQCIFTpm8APM9xLd45bVxSDkNfqFm0iHHJahlbYmcUQXimVAiA1VpOEDZTazpMGTY8tIUP75IlTqIPUsWWzyXDFTVDP/Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/opencode-auto-resume@1.1.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":550591},"main":"dist/index.js","type":"module","gitHead":"0eef19af7b847a65d7c93e06de29cee3b13c7e77","scripts":{"dev":"bun build src/index.ts --outdir dist --target bun --watch","test":"bun test","build":"bun build src/index.ts --outdir dist --target bun","prepublishOnly":"bun run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:16de4663-2a02-4a29-a8fb-cb89ecd99c23"}},"repository":{"url":"git+https://github.com/Mte90/opencode-auto-resume.git","type":"git"},"_npmVersion":"11.17.0","description":"OpenCode plugin that automatically resumes stalled LLM sessions when thinking/streaming freezes mid-generation.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"latest","@opencode-ai/sdk":"latest"},"_npmOperationalInternal":{"tmp":"tmp/opencode-auto-resume_1.1.12_1788259209258_0.8348095733057823","host":"s3://npm-registry-packages-npm-production"}},"1.1.13":{"name":"opencode-auto-resume","version":"1.1.13","keywords":["opencode","plugin","auto-resume","stall-detection","llm"],"author":{"name":"Daniele \"mte90\" Scasciafratte"},"license":"GPL-3.0-or-later","_id":"opencode-auto-resume@1.1.13","maintainers":[{"name":"mte90","email":"mte90net@gmail.com"}],"homepage":"https://github.com/Mte90/opencode-auto-resume#readme","bugs":{"url":"https://github.com/Mte90/opencode-auto-resume/issues"},"dist":{"shasum":"b1a576fe2949c7b7dd36666aef2795d33014e2d5","tarball":"https://registry.npmjs.org/opencode-auto-resume/-/opencode-auto-resume-1.1.13.tgz","fileCount":4,"integrity":"sha512-XQWJFryT4etR0sHfR20I5aT0XfY8JxaFGEPFZb/FF7w6k8CmRSqNE8vQ95w3wjTTGZLxsqvbG7DaiTIxvyDP0Q==","signatures":[{"sig":"MEUCIQCwjLkbvu1JDVlfYO4o2qi1cW8gfaBG2D0PpcDkTCpCmgIgXbpS2Vk+ScfqoUcmqMgWap7tHI5cQozI6wKLK5SjTKs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/opencode-auto-resume@1.1.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":551717},"main":"dist/index.js","type":"module","gitHead":"19476e2016af12d22f889c7443a22230818bc85d","scripts":{"dev":"bun build src/index.ts --outdir dist --target bun --watch","test":"bun test","build":"bun build src/index.ts --outdir dist --target bun","prepublishOnly":"bun run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:16de4663-2a02-4a29-a8fb-cb89ecd99c23"}},"repository":{"url":"git+https://github.com/Mte90/opencode-auto-resume.git","type":"git"},"_npmVersion":"11.17.0","description":"OpenCode plugin that automatically resumes stalled LLM sessions when thinking/streaming freezes mid-generation.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"latest","@opencode-ai/sdk":"latest"},"_npmOperationalInternal":{"tmp":"tmp/opencode-auto-resume_1.1.13_1788424351411_0.22578533820462554","host":"s3://npm-registry-packages-npm-production"}},"1.1.14":{"name":"opencode-auto-resume","version":"1.1.14","keywords":["opencode","plugin","auto-resume","stall-detection","llm"],"author":{"name":"Daniele \"mte90\" Scasciafratte"},"license":"GPL-3.0-or-later","_id":"opencode-auto-resume@1.1.14","maintainers":[{"name":"mte90","email":"mte90net@gmail.com"}],"homepage":"https://github.com/Mte90/opencode-auto-resume#readme","bugs":{"url":"https://github.com/Mte90/opencode-auto-resume/issues"},"dist":{"shasum":"9b4b47607ea0657906beb9586f9d1b09dbe2fae4","tarball":"https://registry.npmjs.org/opencode-auto-resume/-/opencode-auto-resume-1.1.14.tgz","fileCount":4,"integrity":"sha512-sLKZEoA5RMeRhXB1DmORehplEwqGA479c7L9zZetSqGLVyrmEF+7kO39X4BcQ6C2SajDl2SWnrKCc2rUGrKgYg==","signatures":[{"sig":"MEQCICq9kkMJctN7jL+YSAOrNyvem8v3RTiIMCpDe7rA3SAOAiBMzYMIPolibcP9hbPp9wfSNRk+6B864GQZJvIqlI817w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/opencode-auto-resume@1.1.14","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":552644},"main":"dist/index.js","type":"module","gitHead":"600a2280d06766e6101c6a85e85e3acb828aadad","scripts":{"dev":"bun build src/index.ts --outdir dist --target bun --watch","test":"bun test","build":"bun build src/index.ts --outdir dist --target bun","prepublishOnly":"bun run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:16de4663-2a02-4a29-a8fb-cb89ecd99c23"}},"repository":{"url":"git+https://github.com/Mte90/opencode-auto-resume.git","type":"git"},"_npmVersion":"11.19.0","description":"OpenCode plugin that automatically resumes stalled LLM sessions when thinking/streaming freezes mid-generation.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"latest","@opencode-ai/sdk":"latest"},"_npmOperationalInternal":{"tmp":"tmp/opencode-auto-resume_1.1.14_1788958789503_0.3223438676602206","host":"s3://npm-registry-packages-npm-production"}},"1.1.15":{"name":"opencode-auto-resume","version":"1.1.15","keywords":["opencode","plugin","auto-resume","stall-detection","llm"],"author":{"name":"Daniele \"mte90\" Scasciafratte"},"license":"GPL-3.0-or-later","_id":"opencode-auto-resume@1.1.15","maintainers":[{"name":"mte90","email":"mte90net@gmail.com"}],"homepage":"https://github.com/Mte90/opencode-auto-resume#readme","bugs":{"url":"https://github.com/Mte90/opencode-auto-resume/issues"},"dist":{"shasum":"e9b7e4aabaf9d6f8b337e6e15016d813729d23d1","tarball":"https://registry.npmjs.org/opencode-auto-resume/-/opencode-auto-resume-1.1.15.tgz","fileCount":4,"integrity":"sha512-/KpklE1KY+5lEqovyTL42pv5emlyGWt83Isf1P/9TFkrJlFRd+4wgPFBY4O63Epb8ei1zLP3itslQMkTwRoyzg==","signatures":[{"sig":"MEQCIHMbKajQh49FmXLsVmGMy2xVoEX7ESq8NGngQiWiFy7WAiBkJOtNzyQTaUHy8gSR3EUzOk4dzXPiz89GdBJmXAcBUw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/opencode-auto-resume@1.1.15","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":560817},"main":"dist/index.js","type":"module","gitHead":"e3c2b30520ab9eb9ab73ae69166c0d13d4a2d423","scripts":{"dev":"bun build src/index.ts --outdir dist --target bun --watch","test":"bun test","build":"bun build src/index.ts --outdir dist --target bun","prepublishOnly":"bun run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:16de4663-2a02-4a29-a8fb-cb89ecd99c23"}},"repository":{"url":"git+https://github.com/Mte90/opencode-auto-resume.git","type":"git"},"_npmVersion":"11.19.0","description":"OpenCode plugin that automatically resumes stalled LLM sessions when thinking/streaming freezes mid-generation.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"latest","@opencode-ai/sdk":"latest"},"_npmOperationalInternal":{"tmp":"tmp/opencode-auto-resume_1.1.15_1789033097241_0.2763375378823758","host":"s3://npm-registry-packages-npm-production"}},"1.1.16":{"name":"opencode-auto-resume","version":"1.1.16","keywords":["opencode","plugin","auto-resume","stall-detection","llm"],"author":{"name":"Daniele \"mte90\" Scasciafratte"},"license":"GPL-3.0-or-later","_id":"opencode-auto-resume@1.1.16","maintainers":[{"name":"mte90","email":"mte90net@gmail.com"}],"homepage":"https://github.com/Mte90/opencode-auto-resume#readme","bugs":{"url":"https://github.com/Mte90/opencode-auto-resume/issues"},"dist":{"shasum":"369026b08957b03223a3e823304b0f80d6ac5132","tarball":"https://registry.npmjs.org/opencode-auto-resume/-/opencode-auto-resume-1.1.16.tgz","fileCount":4,"integrity":"sha512-ficZYZHkCA6/xwbR+RK5aRUYHYlScTD7Z0MCut3IyAaF6PE9+1YQBa4FutDLt4glzNXCEquJfJF3Fqq5ouamnA==","signatures":[{"sig":"MEUCIErNrHmI9srKHcfTwtqqw1go7WWjGX7Ff6NHlt1xUTTiAiEA6XJ8ja+yK8HLAhuyZJ2OgI7+qd69bqt8V8Zlqe8g8Uc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/opencode-auto-resume@1.1.16","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":567600},"main":"dist/index.js","type":"module","gitHead":"7796b2f2edc7ff41c515fcedb80b5a518a278ac9","scripts":{"dev":"bun build src/index.ts --outdir dist --target bun --watch","test":"bun test","build":"bun build src/index.ts --outdir dist --target bun","prepublishOnly":"bun run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:16de4663-2a02-4a29-a8fb-cb89ecd99c23"}},"repository":{"url":"git+https://github.com/Mte90/opencode-auto-resume.git","type":"git"},"_npmVersion":"11.19.0","description":"OpenCode plugin that automatically resumes stalled LLM sessions when thinking/streaming freezes mid-generation.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"latest","@opencode-ai/sdk":"latest"},"_npmOperationalInternal":{"tmp":"tmp/opencode-auto-resume_1.1.16_1789380786958_0.8588354512669059","host":"s3://npm-registry-packages-npm-production"}},"1.1.17":{"name":"opencode-auto-resume","version":"1.1.17","keywords":["opencode","plugin","auto-resume","stall-detection","llm"],"author":{"name":"Daniele \"mte90\" Scasciafratte"},"license":"GPL-3.0-or-later","_id":"opencode-auto-resume@1.1.17","maintainers":[{"name":"mte90","email":"mte90net@gmail.com"}],"homepage":"https://github.com/Mte90/opencode-auto-resume#readme","bugs":{"url":"https://github.com/Mte90/opencode-auto-resume/issues"},"dist":{"shasum":"a1c35f183176dae86946a43a023cd67a47fb8e94","tarball":"https://registry.npmjs.org/opencode-auto-resume/-/opencode-auto-resume-1.1.17.tgz","fileCount":4,"integrity":"sha512-lTFOQ+IoQm2TqSUycwZiHfJzCR+TTNrImDQB9usvMobR47Vch/BlBC769cpDWOJPGCtUmqMDW26sRTWagzdd9w==","signatures":[{"sig":"MEUCIGNheTvWNnGJB7zrk6pEMKnrskaAGRntySlwF82EQaOSAiEAvfka4GjY67nKvamcKMGEVmMvGGz3iO1IBwrX8fDHPwA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/opencode-auto-resume@1.1.17","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":567731},"main":"dist/index.js","type":"module","gitHead":"94ab3be8c300b2a42d6c9cf5ca1578fe18729e12","scripts":{"dev":"bun build src/index.ts --outdir dist --target bun --watch","test":"bun test","build":"bun build src/index.ts --outdir dist --target bun","prepublishOnly":"bun run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:16de4663-2a02-4a29-a8fb-cb89ecd99c23"}},"repository":{"url":"git+https://github.com/Mte90/opencode-auto-resume.git","type":"git"},"_npmVersion":"11.19.0","description":"OpenCode plugin that automatically resumes stalled LLM sessions when thinking/streaming freezes mid-generation.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"latest","@opencode-ai/sdk":"latest"},"_npmOperationalInternal":{"tmp":"tmp/opencode-auto-resume_1.1.17_1789649493942_0.33500765757669493","host":"s3://npm-registry-packages-npm-production"}},"1.1.18":{"name":"opencode-auto-resume","version":"1.1.18","keywords":["opencode","plugin","auto-resume","stall-detection","llm"],"author":{"name":"Daniele \"mte90\" Scasciafratte"},"license":"GPL-3.0-or-later","_id":"opencode-auto-resume@1.1.18","maintainers":[{"name":"mte90","email":"mte90net@gmail.com"}],"homepage":"https://github.com/Mte90/opencode-auto-resume#readme","bugs":{"url":"https://github.com/Mte90/opencode-auto-resume/issues"},"dist":{"shasum":"6e3c912956cfbd98d5fff57a6cea9450ee4fdc5c","tarball":"https://registry.npmjs.org/opencode-auto-resume/-/opencode-auto-resume-1.1.18.tgz","fileCount":4,"integrity":"sha512-1DCczeyIH4Q4yln+RwB8L/vdj463iEZDrTrO24abc/Mlu4/wQX6nQC8YaCz+xwLHqp2Hmf3rdz4nCUwa//SDeA==","signatures":[{"sig":"MEUCIQDn3uBbIivuYCYfQ3eL2R5BJ14eXyfTCZ1GbPFJ3W+enQIgP8sHt2nV/mxIXfatgsOhUgK2VXIjbkzBNg3a8izV+5U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDAn/3ryur0MPnimYv38sn/ReAOzsTij0mRb6lllRNiaQIgelj+MWCoYufn5vvYaC2v9iCH1ktrrGFsiAOGprjZcXA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/opencode-auto-resume@1.1.18","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":576212},"main":"dist/index.js","type":"module","gitHead":"442f0df7d9f3ca8cd02fb4b8a142f0ecff240607","scripts":{"dev":"bun build src/index.ts --outdir dist --target bun --watch","test":"bun test","build":"bun build src/index.ts --outdir dist --target bun","prepublishOnly":"bun run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:16de4663-2a02-4a29-a8fb-cb89ecd99c23"}},"repository":{"url":"git+https://github.com/Mte90/opencode-auto-resume.git","type":"git"},"_npmVersion":"11.19.0","description":"OpenCode plugin that automatically resumes stalled LLM sessions when thinking/streaming freezes mid-generation.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"latest","@opencode-ai/sdk":"latest"},"_npmOperationalInternal":{"tmp":"tmp/opencode-auto-resume_1.1.18_1789978793353_0.5513563313163288","host":"s3://npm-registry-packages-npm-production"}},"1.1.19":{"_id":"opencode-auto-resume@1.1.19","bugs":{"url":"https://github.com/Mte90/opencode-auto-resume/issues"},"dist":{"shasum":"95a3c3c08f9f789d84bef26c9f73a360869fbd4a","tarball":"https://registry.npmjs.org/opencode-auto-resume/-/opencode-auto-resume-1.1.19.tgz","fileCount":4,"integrity":"sha512-wVpg1saebkvhKFqv8Cy342Xb6mer9UdXXgOn7ScTvmeNsoZbu7qcwMwKVYhG/QOe9mIzMYdsy5hmJ7p1Y+nHdA==","signatures":[{"sig":"MEYCIQCkQ79O+OaiYLT/KwVr/BqsmHjltUkwiSc5dtqdV58muAIhANP6U25AN6CC5ZyWiW1oyL5n0S7MAui5vfKPFZN5tByp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCrPMr/QDOh0LGpUwogX4mLCpWzvCNJVm/plQLxvjoYfgIgQyDqhPWpjoxECeEIjmofyiu+KRu2ZwNyjGqrLIG8hGY="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/opencode-auto-resume@1.1.19","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":579124},"main":"dist/index.js","name":"opencode-auto-resume","type":"module","author":{"name":"Daniele \"mte90\" Scasciafratte"},"gitHead":"02b2e0195c2886ea38f1cbd7876140a8a7fcd981","license":"GPL-3.0-or-later","scripts":{"dev":"bun build src/index.ts --outdir dist --target bun --watch","test":"bun test","build":"bun build src/index.ts --outdir dist --target bun","prepublishOnly":"bun run build"},"version":"1.1.19","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:16de4663-2a02-4a29-a8fb-cb89ecd99c23"}},"homepage":"https://github.com/Mte90/opencode-auto-resume#readme","keywords":["opencode","plugin","auto-resume","stall-detection","llm"],"repository":{"url":"git+https://github.com/Mte90/opencode-auto-resume.git","type":"git"},"_npmVersion":"11.19.0","description":"OpenCode plugin that automatically resumes stalled LLM sessions when thinking/streaming freezes mid-generation.","directories":{},"maintainers":[{"name":"mte90","email":"mte90net@gmail.com"}],"_nodeVersion":"24.21.0","dependencies":{"@opencode-ai/plugin":"latest"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"latest","@opencode-ai/sdk":"latest"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/opencode-auto-resume_1.1.19_1790167470373_0.664937951767764"}}},"time":{"created":"2026-04-07T14:24:10.937Z","modified":"2026-09-23T12:44:30.832Z","1.0.0":"2026-04-07T14:24:11.225Z","1.0.1":"2026-04-07T14:28:48.325Z","1.0.2":"2026-04-08T11:42:41.293Z","1.0.3":"2026-04-09T08:52:05.218Z","1.0.4":"2026-04-09T14:54:25.977Z","1.0.5":"2026-04-13T07:19:25.964Z","1.0.6":"2026-04-14T07:47:11.074Z","1.0.7":"2026-04-17T08:01:53.958Z","1.0.8":"2026-04-21T10:08:07.451Z","1.0.9":"2026-04-23T07:37:22.620Z","1.0.10":"2026-04-24T08:50:55.218Z","1.0.11":"2026-05-18T08:06:51.831Z","1.0.12":"2026-05-26T13:53:59.067Z","1.0.13":"2026-06-15T10:03:29.652Z","1.0.14":"2026-06-15T11:14:50.955Z","1.0.15":"2026-06-18T09:33:20.588Z","1.0.16":"2026-06-23T08:58:38.170Z","1.0.17":"2026-07-01T15:08:04.621Z","1.0.18":"2026-07-02T09:43:21.916Z","1.0.19":"2026-07-07T06:51:00.229Z","1.0.20":"2026-07-07T15:07:47.160Z","1.0.21":"2026-07-07T15:30:03.683Z","1.0.22":"2026-07-07T15:44:05.316Z","1.0.23":"2026-07-07T16:25:28.706Z","1.0.24":"2026-07-08T13:13:37.248Z","1.1.1":"2026-07-09T14:21:14.369Z","1.1.2":"2026-07-15T11:20:35.460Z","1.1.3":"2026-07-16T09:00:17.221Z","1.1.5":"2026-08-04T12:04:17.369Z","1.1.6":"2026-08-04T15:51:58.088Z","1.1.8":"2026-08-04T16:48:13.242Z","1.1.9":"2026-08-04T17:20:47.147Z","1.1.10":"2026-08-10T14:02:59.872Z","1.1.11":"2026-08-24T13:17:39.170Z","1.1.12":"2026-09-01T10:40:09.400Z","1.1.13":"2026-09-03T08:32:31.548Z","1.1.14":"2026-09-09T12:59:49.660Z","1.1.15":"2026-09-10T09:38:17.389Z","1.1.16":"2026-09-14T10:13:07.109Z","1.1.17":"2026-09-17T12:51:34.159Z","1.1.18":"2026-09-21T08:19:53.447Z","1.1.19":"2026-09-23T12:44:30.503Z"},"bugs":{"url":"https://github.com/Mte90/opencode-auto-resume/issues"},"author":{"name":"Daniele \"mte90\" Scasciafratte"},"license":"GPL-3.0-or-later","homepage":"https://github.com/Mte90/opencode-auto-resume#readme","keywords":["opencode","plugin","auto-resume","stall-detection","llm"],"repository":{"url":"git+https://github.com/Mte90/opencode-auto-resume.git","type":"git"},"description":"OpenCode plugin that automatically resumes stalled LLM sessions when thinking/streaming freezes mid-generation.","maintainers":[{"name":"mte90","email":"mte90net@gmail.com"}],"readme":"# opencode-auto-resume\n\n**Plugin for [OpenCode](https://github.com/anomalyco/opencode) that automatically detects and recovers from LLM session failures — stalls, broken tool calls, hallucination loops, stuck subagent parents, and more. Fully silent, zero UI pollution.**\n\n## What it does\n\nLLM sessions fail in predictable ways. This plugin monitors all sessions and automatically recovers without user intervention. Each recovery path below references the upstream OpenCode issues that motivated it — these are problems not yet resolved in the official project.\n\n---\n\n### Stall recovery\n\nThe stream goes silent but the session stays \"busy\". The UI shows a blinking cursor with no progress. If no events arrive for 48 seconds (`chunkTimeoutMs` + `gracePeriodMs`), the plugin sends `\"continue\"` with exponential backoff. After 3 failed attempts it gives up.\n\nThe `busyStallStrategy` option controls this path: `\"continue\"` (default), `\"abort\"` (abort-first), or `\"off\"` — see [Recovery model](#recovery-model) for what a busy prompt can and cannot do while the runner is live.\n\nThe plugin extracts the **agent, model, and provider** from the last session message, so it resumes with the exact same configuration the user was using (build, sisyphus, prometheus, etc.).\n\n_Motivated by:_\n- [#34214](https://github.com/anomalyco/opencode/issues/34214) — Opencode freezes / becomes unresponsive mid-session\n- [#35207](https://github.com/anomalyco/opencode/issues/35207) — Session hangs indefinitely after MCP tool-call — no timeout recovery (deadlock)\n- [#31655](https://github.com/anomalyco/opencode/issues/31655) — Window completely frozen/unresponsive after reopening a project with a stalled session\n- [#34460](https://github.com/anomalyco/opencode/issues/34460) — Thread freezes after switching to Go model — requires Escape key to unstick\n\n---\n\n### Tool calls as raw text\n\nThe model prints tool invocations as raw XML/JSON (`<function=edit>...`, `{\"type\":\"function\",...}`) instead of executing them. The session goes idle normally but the tool was never run. On idle, the plugin fetches the last messages and scans for XML tool-call patterns — including truncated and alternative formats. If found, it sends `TOOL_TEXT_RECOVERY_PROMPT` to force a clean tool call.\n\nAlso detects tool calls trapped inside **thinking/reasoning** parts and emits `THINKING_TOOL_RECOVERY_PROMPT` to extract them.\n\n_Motivated by:_\n- [#31247](https://github.com/anomalyco/opencode/issues/31247) — Copilot Claude Opus 4.8 emits pseudo tool-call text instead of structured tool calls\n- [#34126](https://github.com/anomalyco/opencode/issues/34126) — OpenAI Chat parser treats standalone text before tool_calls as assistant text\n- [#33959](https://github.com/anomalyco/opencode/issues/33959) — OpenCode Desktop does not execute valid OpenAI tool calls from qwen3-coder:30b (Ollama)\n- [#35689](https://github.com/anomalyco/opencode/issues/35689) — DeepSeek silently stops executing (interleaved reasoning_content dropped in tool call messages)\n\n---\n\n### Hallucination loop\n\nThe model generates the same broken output repeatedly. Each `continue` just picks up the broken generation. If a session needs 3+ continues within 10 minutes, the plugin aborts the request and sends `\"continue\"` fresh, forcing a clean restart.\n\nA separate **tool-call loop detector** catches the model calling the same tool 3+ consecutive times (or repeating patterns of length 2-5 occurring at least three times). When detected, it emits `TOOL_LOOP_RECOVERY_PROMPT` (at most twice per busy turn) to break the loop instead of blindly continuing.\n\nLoop detection runs in two places. At idle, tool names are scanned from recent assistant messages. **Live**, every `tool.execute.before` hook fingerprints the call as `tool name + arguments` — so a subagent stuck re-reading the same file/range (even alternating between two near-identical argument sets, which never produces 3 consecutive identical calls) is caught after 6+ calls in the repeating cycle. On live detection the plugin aborts the running turn immediately (this is the sanctioned exception to the never-abort-busy rule: 6+ identical name+args fingerprints prove a hallucinated loop, and the current call has not started yet) and then sends `TOOL_LOOP_RECOVERY_PROMPT`. Esc-cancelled sessions are never touched.\n\n---\n\n### Unknown tool suggestion\n\nWhen the model calls a tool that does not exist (a typo, a hallucinated name, or a tool from a different plugin that isn't loaded), OpenCode returns a `tool` part with `state.status = \"error\"`. If the same wrong tool name appears **2 times** in the session's message history, the plugin:\n\n1. Fetches the list of available tools via `ctx.client.tool.ids()` (cached for 5 minutes).\n2. Computes the closest match by Levenshtein distance (case-insensitive, threshold = half the wrong name's length).\n3. Sends a continue prompt that names the wrong tool, states it does not exist, suggests the closest match (if one was found), and lists the first 20 available tools for reference.\n\nThe suggestion fires once per busy cycle. A new user message resets the counter so the suggestion can fire again on a fresh cycle. Tool parts that already succeeded (`state.status = \"completed\"`) and parts for tools that do exist are skipped.\n\nThreshold and cache are compile-time constants (`UNKNOWN_TOOL_THRESHOLD = 2`, `TOOL_IDS_CACHE_MS = 5 min`). The detection runs at idle, alongside the tool-text recovery check.\n\n_Motivated by:_\n- [#22142](https://github.com/anomalyco/opencode/issues/22142) — Repetitive tool-call loops with alibaba-coding-plan-cn/qwen3.6-plus\n- [#16218](https://github.com/anomalyco/opencode/issues/16218) — Model repeats the same response in a loop after generating an answer\n- [#33216](https://github.com/anomalyco/opencode/issues/33216) — OpenCode Repeatedly Ignores Instructions and Loops Responses\n- [#35784](https://github.com/anomalyco/opencode/issues/35784) — opencode-go/glm-5.2 + read file loop\n- [#25129](https://github.com/anomalyco/opencode/issues/25129) — Thinking mode gets stuck in infinite repetition loop\n\n---\n\n### Orphan parent\n\nA subagent finishes but the parent session stays stuck as \"busy\" forever. The plugin detects when `busyCount` drops from >1 to 1, waits `subagentWaitMs` + `gracePeriodMs` (18s default), probes the subagent (recovering a crashed child first if possible), then aborts and resumes the parent.\n\n_Motivated by:_\n- [#35066](https://github.com/anomalyco/opencode/issues/35066) — notify parent when subagent sessions finish\n- [#33050](https://github.com/anomalyco/opencode/issues/33050) — orphaned sessions continue looping after abort, causing sustained high CPU\n- [#32335](https://github.com/anomalyco/opencode/issues/32335) — opencode run processes don't exit after completing scheduled work, causing memory leak\n\n---\n\n### Subagent stuck detection\n\nDetects when a subagent hasn't received new text for >1 minute (or >3 minutes if a tool call is in progress). If stuck, sends a recovery prompt to the subagent before triggering abort+resume on the parent. This avoids killing a parent that merely has a slow child.\n\n_Motivated by:_\n- [#35073](https://github.com/anomalyco/opencode/issues/35073) — subagent permission asks hang indefinitely (sync subagents treated as interactive)\n- [#35806](https://github.com/anomalyco/opencode/issues/35806) — malformed tool-input stream ordering crashes Session drains\n- [#32580](https://github.com/anomalyco/opencode/issues/32580) — Agent showing repeated thinking\n\n---\n\n### Streaming failure recovery\n\nThe AI provider's streaming response can fail mid-stream (connection reset, timeout, socket close). When the provider reports an error whose **name** matches `streamingFailureErrorNames` (exact, case-sensitive) or whose **message** matches `streamingFailureMessagePatterns` (regex, case-insensitive), the plugin arms a deferred recovery instead of relying only on the generic stall timeout. Invalid regex patterns fall back to substring matching.\n\n**Default error names:**\n- `ProviderError`, `APIError`, `StreamError`, `ConnectionError`, `TimeoutError`\n\n**Default message patterns:**\n- `streaming response failed`, `stream.*fail`, `connection.*reset`, `connection.*closed`\n\n#### Recovery behavior\n\n1. **Detection**: `session.error` is classified via `isStreamingFailure()` against the configured error names and message patterns\n2. **State transition**: the session's `pendingRecovery` flag is armed with the error name (`pendingRecoveryReason`) and timestamp (`pendingRecoveryAt`)\n3. **Recovery attempt**: once the session is idle and the backoff delay has elapsed, the timer loop sends a recovery prompt\n4. **Watchdog**: if the session is still not busy `toolTextCheckDelayMs` (3s default) after the prompt, the recovery is retried (up to `maxRecoveryRetries`) with exponential backoff\n5. **Escalation**: when retries are exhausted, the plugin aborts the session and resumes it (`abort+resume`); `gaveUp` is set if that also fails\n\n#### Configuration\n\nAdd to your plugin options (in `opencode.jsonc`):\n\n```json\n{\n  \"streamingFailureErrorNames\": [\"ProviderError\", \"APIError\", \"StreamError\", \"ConnectionError\", \"TimeoutError\"],\n  \"streamingFailureMessagePatterns\": [\"streaming response failed\", \"stream.*fail\", \"connection.*reset\", \"connection.*closed\"],\n  \"maxRecoveryRetries\": 2,\n  \"baseBackoffMs\": 1000,\n  \"maxBackoffMs\": 8000\n}\n```\n\n#### State machine addition\n\nNew per-session recovery fields added to the state machine:\n- `pendingRecovery` — failure detected, recovery armed\n- `pendingRecoveryReason` — error name that triggered the recovery\n- `pendingRecoveryAt` — detection timestamp (backoff anchor)\n- `recoveryAttempts` — recovery attempt counter\n- `watchdogRetryGuard` — watchdog retry in progress (keeps the recovery armed)\n\nRecovery chain: `pendingRecovery` → recovery attempt → `recoveryAttempts` retry → `abort+resume` → `gaveUp`.\n\nSee [Recovery Flow Documentation](docs/architecture/recovery-flow.md) for the full state machine.\n\n#### Example scenario\n\n```\n1. AI provider starts streaming response\n2. Network interruption causes \"connection reset\" error mid-stream\n3. System detects \"ConnectionError\" matches streamingFailureErrorNames\n4. Session's pendingRecovery flag is armed (reason=ConnectionError)\n5. Session goes idle; timer loop waits until the backoff delay has elapsed\n6. Recovery prompt sent (recoveryAttempts=1)\n7. Success → session busy → recovery flags cleared\n   Still not busy after `toolTextCheckDelayMs` (3s default) → watchdog retry (attempt 2/2)\n   Still not busy → maxRecoveryRetries reached → abort + resume\n   Abort+continue fails → gaveUp\n```\n\n#### Configuration reference\n\n| Option | Type | Default | Description |\n|--------|------|---------|-------------|\n| `streamingFailureErrorNames` | `string[]` | `[\"ProviderError\",\"APIError\",\"StreamError\",\"ConnectionError\",\"TimeoutError\"]` | Error names that indicate a streaming failure (exact, case-sensitive) |\n| `streamingFailureMessagePatterns` | `string[]` | `[\"streaming response failed\",\"stream.*fail\",\"connection.*reset\",\"connection.*closed\"]` | Regex patterns matching streaming failure messages (case-insensitive) |\n| `maxRecoveryRetries` | `number` | `2` | Maximum streaming-failure recovery attempts before abort+resume escalation |\n| `baseBackoffMs` | `number` | `1000` | Initial backoff delay in milliseconds |\n| `maxBackoffMs` | `number` | `8000` | Maximum backoff delay cap in milliseconds |\n\n_Motivated by:_\n- [EPIC: Streaming Failure Recovery](docs/EPIC-Streaming-Recovery-OpenCode-Auto-Resume-v3.md) — recovery requests not consistently creating new assistant executions after mid-stream failures\n\n---\n\n### Silent dead-stream recovery\n\nThe model stream can die after emitting only reasoning — no text part, no tool call — finalizing with `finish: \"unknown\"`. OpenCode treats the message as completed and the session goes idle, so no error or stall path triggers. On idle, if the **newest** assistant message has a finish reason, zero text parts, and at least `silentDeadStreamMinTokens` output tokens, the plugin sends a recovery prompt. Only the newest assistant message is evaluated — a delivered text answer means normal completion, and older tool-call steps are never misread as dead streams. Recovery is also skipped if the session has gone busy/retry again before the prompt is sent (race guard).\n\n### Context saturation → magic-context wrapup\n\nA session can fill its usable context window without stalling — it just keeps working until it chokes. The plugin tracks token usage from `message.updated` events and computes the ratio against the model's usable window (`context − min(20k, maxOutput)`, mirroring OpenCode's own overflow math). On idle, when the ratio crosses `contextSaturationThreshold` (default 0.85), routing depends on session kind. For parent sessions, only when magic-context is detected in the host's configured plugin list (`config.get().plugin`), the plugin invokes the registered `ctx-wrapup` command through `client.session.command()` — it does not send `/ctx-wrapup` as prompt text, because prompt text is not expanded into a command. For subagent sessions identified by `parentID` on `session.created`, the default is no intervention: magic-context does run bounded cleanup for subagents (structural-noise/cleared-reasoning strips, heuristic drops, ceiling nudges), but its hard protections — historian compartments, emergency fail-closed abort, caveman compression — skip subagents, and on true overflow the error just propagates to the parent with no deterministic reclaim. Terminal reclamation therefore depends on the agent calling `ctx_reduce` when nudged. If `subagentNativeCompactionEnabled` is `true`, the plugin calls native `session.summarize()` as an opt-in safety net. Fail-safe: provider lookup errors, unknown model limits, user cancellation, or completion signals mean no intervention. Magic-context absence additionally disables only the parent path (the `ctx-wrapup` command would not be registered); the opt-in subagent path needs no magic-context detection because `session.summarize()` is native. This path is magic-context-gated on purpose: magic-context's setup disables OpenCode's native compaction, so unconditionally summarizing a magic-context-managed parent would double-compress and fight its cache-aware historian. One intervention per busy cycle.\n\n---\n\n### Active-tool safety guard\n\nBefore **any** abort, two guards run in order: the primary deterministic in-flight counter maintained by the `tool.execute.before`/`tool.execute.after` hooks (`hasInflightTools()`), then a polled `checkSessionHasActiveTool()` fallback for sessions discovered without hooks. If a tool is running, the abort is skipped. This prevents the plugin from killing a long-running build, test suite, or command — even when it looks like a stall.\n\n_Motivated by:_\n- [#26063](https://github.com/anomalyco/opencode/issues/26063) — Tool execution aborted/terminated\n- [#31459](https://github.com/anomalyco/opencode/issues/31459) — \"Tool execution aborted\" during Preparing write\n- [#5937](https://github.com/Mte90/opencode-auto-resume) — (internal) must never abort a tool execution\n\n---\n\n### Model, agent & provider preservation\n\nWhen resuming with `\"continue\"`, the plugin extracts agent, model, and provider from the last session message — falling back to `msg.info.agent` / `msg.info.model` if the top-level field is missing. This preserves the user's UI selection across resumes instead of reverting to the default agent.\n\n_Motivated by:_\n- [#35126](https://github.com/anomalyco/opencode/issues/35126) — Subagents launched via task tool ignore their model: frontmatter and inherit parent agent's model\n- [#35899](https://github.com/anomalyco/opencode/issues/35899) — Web: switching sessions overwrites user-selected model with agent default\n- [#34562](https://github.com/anomalyco/opencode/issues/34562) — Model provider not restored correctly when switching projects\n\n---\n\n### ESC cancel respected\n\nUser presses ESC to cancel a request. The plugin detects `MessageAbortedError` and marks sessions as cancelled — regardless of their tracked status, so a late status flip to idle before the error cannot miss the latch — and never resumes them. Aborts initiated by the plugin itself (`pluginAbortInFlight`) are excluded, so recovery aborts are not mistaken for ESC. The grace period (`gracePeriodMs`) also lets late ESC/status events arrive before any action.\n\nThe back-off lifts as soon as the user sends a new prompt in that session (`chat.message` hook): a fresh user message starts a new round of work, so auto-resume re-arms. The plugin's own recovery prompts do not re-arm it. The same applies to the `task_complete` latch.\n\n_Motivated by:_\n- [#28453](https://github.com/anomalyco/opencode/issues/28453) — ACP session/cancel emits agent_error for MessageAbortedError before cancelled result\n- [#32432](https://github.com/anomalyco/opencode/issues/32432) — Cancelled subagents can't be opened in TUI + Ctrl+X intermittently fails\n- [#30144](https://github.com/anomalyco/opencode/issues/30144) — Early prompt cancel can poison directory instance\n\n---\n\n### Explicit completion via `task_complete`\n\nThe agent can call the built-in `task_complete` tool to signal that all work is done. When invoked, the plugin stops sending any further `\"continue\"` prompts, clears all pending timers, and marks the session as complete. This replaces fragile text-based heuristics (emoji patterns, language detection) with a deterministic signal.\n\nIf `task_complete` is called while open todos remain, the call is rejected (up to `maxRetries` times) with a message asking the agent to finish the remaining work first.\n\nRepeat calls with no new user message in between are guarded: the first acknowledgement carries an explicit stop instruction, the second returns a repeat warning, and the third and subsequent calls are rejected as errors. This breaks the ack self-loop where the acknowledgement tool-result is fed back into the turn and a stuck model re-emits `task_complete` instead of ending with text. The counter resets on a genuine user message, on the block path above, or when any other tool runs in between.\n\n---\n\n### 🎉 emoji completion\n\nAn assistant message ending with 🎉 resets the tool-text timer and prevents a trigger — the emoji signals the agent considers the task complete.\n\n---\n\n### Ready-to-continue auto-resume\n\nWhen the assistant prints phrases like \"Ready to continue with task\" or \"Proceeding with task\", the plugin automatically sends `\"continue\"` without waiting for the user. This catches the common pattern where the model stops to ask for permission it doesn't need.\n\n---\n\n### Action-intent nudge\n\nWhen the assistant ends a line with `:` (\"Next, I will edit the file:\") — announcing intent without acting — the plugin sends `actionIntentPrompt` after a short delay, nudging the model to execute. Disable with `resumeOnActionIntent: false`. Detection is skipped while a session is younger than `warmupMs`.\n\n---\n\n### Done-claim verification\n\nIf the assistant claims the task is done (\"task done\", \"finished\", \"all complete\") but open todos remain, the plugin sends `DONE_WITHOUT_WORK_PROMPT` asking the agent to verify and finish remaining work. If it claims done with **no** open todos and the response carries no work description, the plugin sends `DONE_WITHOUT_DETAILS_PROMPT` — an imperative prompt demanding a concrete report (files changed, commands run, results). A response that already contains file paths, verification output, or result sections satisfies the demand on its own and never triggers the prompt. The budget is capped at `maxRetries` across busy cycles (going busy no longer re-arms it); only a genuinely new inbound user message re-arms it. Both use the real `todo.updated` event state — not regex on the message text.\n\n---\n\n### User-input awareness\n\nThe session is not stalled while the ball is in the user's court. Two gates stand down idle nudges:\n\n- **Awaiting input**: the newest assistant message holds a `tool_use` part with `state.status: \"pending\"` (e.g. an open `question` tool call). All idle checks, the periodic recheck, delayed action-intent callbacks, and the tool-text scan skip prompting until a newer user message clears the gate. Completed tool calls never engage it.\n- **Recently active user**: any inbound user message within `activeUserWindowMs` (default 15 minutes) means the user is engaged — likely composing a reply, which leaves no pending tool call behind. Open-todos nudges (idle + periodic), the tool-text reminder fallback, and action-intent callbacks stand down until the window expires.\n\n---\n\n### False-positive protection during subagent work\n\nLong tool execution or active subagents can look like a stall. Only the session emitting events gets its timer reset (not all sessions). When multiple sessions are busy, stall detection is paused entirely. The plugin also clears existing timers before creating a new `setTimeout` in idle handlers to prevent queued continue triggers.\n\n---\n\n### Spurious error suppression\n\nAfter normal completion, OpenCode sometimes fires a `session.error`. All logging goes through `ctx.client.app.log()` (zero `console.log`), and errors on already-idle sessions are silently ignored.\n\n_Motivated by:_\n- [#33687](https://github.com/anomalyco/opencode/issues/33687) — Interrupted assistant messages retain non-error finish value (orphan tool-input-start abort)\n- [#28958](https://github.com/anomalyco/opencode/issues/28958) — Plugin hook rejection aborts unrelated parallel sessions\n- [#25899](https://github.com/anomalyco/opencode/issues/25899) — ACP prompt() returns stopReason: end_turn + zero usage on user cancel\n\n---\n\n### Session discovery & cleanup\n\nPeriodically calls `session.list()` (every 60s) to pick up sessions that were missed by event tracking. Idle sessions are cleaned up after 10 minutes or when the idle map exceeds 50 entries, preventing memory leaks.\n\n_Motivated by:_\n- [#35750](https://github.com/anomalyco/opencode/issues/35750) — Upgrade to 1.17.x hides pre-existing sessions — new path column not back-filled during migration\n- [#33102](https://github.com/anomalyco/opencode/issues/33102) — OpenCode Go workspace subscription is orphaned/hidden and cannot be managed from dashboard\n- [#27759](https://github.com/anomalyco/opencode/issues/27759) — Session heartbeat for multi-session liveness detection\n\n---\n\n## Recovery model\n\nAll recovery paths fall into three families. Which family fires determines what the prompt can actually do.\n\n### 1. Idle-boundary nudges (safe)\n\nFire only after OpenCode reports the session **idle** — the runner has exited. The prompt starts a new run.\n\nPaths: todo nudges, tool-call-as-text recovery, thinking-tool recovery, action-intent nudge, ready-to-continue, done-claim verification, streaming-failure recovery, silent dead-stream recovery, context-saturation routing (magic-context-gated; parent sessions use `session.command`, subagents use opt-in native `session.summarize`).\n\n### 2. Busy-silence continue (stream stall)\n\nFires when the session still reports **busy** but no events arrived for `chunkTimeoutMs` + `gracePeriodMs`. Controlled by `busyStallStrategy`:\n\n- `\"continue\"` (default) — sends a prompt while busy. This only helps when the busy status is **stale** (the runner already exited but the status was never updated); the prompt then starts a new run.\n- `\"abort\"` — aborts first (`session.abort()`), then sends the prompt. Required to unblock a runner that is genuinely stuck (hung provider stream). Subject to the same active-tool guards as every abort: never fires while a tool is in-flight.\n- `\"off\"` — disables busy-silence recovery entirely; stalls are then handled only by idle-boundary recovery (if the session ever goes idle) or manually.\n\n**Why `\"continue\"` cannot unblock a live runner:** in OpenCode ≥ 1.18, `session.prompt()` while the runner is `Running` joins the existing run — the message is admitted to the session inbox and promoted at the next provider-turn boundary. A hung stream never reaches that boundary, so the parked message cannot unblock it; if the run later exits, the message may surface as an unwanted extra turn (token cost, race risk). True transport stalls need abort-first.\n\n### 3. Abort-first recovery\n\nAborts the active run, then continues. The only family that can unblock a live runner.\n\nPaths: orphan parent, subagent stuck (parent side), hallucination loop, streaming-failure escalation. All aborts pass the active-tool guards first, and plugin-initiated aborts are marked so they are not mistaken for user ESC (`session.error` → `MessageAbortedError` race).\n\n## Architecture\n\n```\nAny SSE Event\n  ├─ has sessionID? → touchSession(sid) — reset only that session's timer\n  └─ no sessionID → ignore\n\nsession.status events:\n  ├─ busy → reset timer, clear retry counters\n  ├─ retry → touch session\n  ├─ interrupted → user cancel: back off until the next user message\n  └─ idle → schedule tool-text check (3s delay)\n              └─ fetch messages → scan for XML / thinking-tool patterns\n                  ├─ found → send recovery prompt (with backoff)\n                  └─ not found → check ready-to-continue / done-claim patterns\n              └─ orphan check: busyCount dropped from >1 to 1?\n                  └─ subagentWaitMs watch → abort + continue\n\ntodo.updated events:\n  └─ track real todo state (not regex on message text)\n     └─ if missing (no event received): idle path + task_complete\n        fetch on-demand via session.todo() API so the\n        open-todos reminder and the 🎉 completion latch see\n        real state, not a stale empty array.\n\nTimer loop (every 5s):\n  for each busy session:\n    ├─ orphan watch active? → wait or abort+continue\n    ├─ busyCount > 1? → skip (subagent running)\n    ├─ active tool running? → skip (never abort tools)\n    └─ idle > 48s? → busyStallStrategy:\n         off → skip · abort → abort+continue\n         else → hallucination loop? abort : continue with backoff\n\nPeriodic (every 60s): session.list() to discover missed sessions\nPeriodic: cleanup idle sessions older than 10min or >50 entries\n```\n\nEvents consumed: `session.status`, `session.created`, `session.updated`, `session.idle`, `session.interrupted`, `session.error`, `todo.updated`, `command.executed`; hooks: `chat.message`, `tool.execute.before`/`after`, `command.execute.before`.\n\n## Installation\n\n### Opencode\n\nAdd to your `opencode.jsonc`:\n\n```jsonc\n{\n  \"$schema\": \"https://opencode.ai/config.json\",\n  \"plugin\": [\"opencode-auto-resume\"]\n}\n```\n\nWith options:\n\n```jsonc\n{\n  \"plugin\": [\n    [\"opencode-auto-resume\", {\n      \"chunkTimeoutMs\": 45000,\n      \"gracePeriodMs\": 3000,\n      \"maxRetries\": 3\n    }]\n  ]\n}\n```\n\n## Configuration\n\n```json\n{\n  \"plugin\": [\n    [\n      \"file:///home/YOURUSER/.config/opencode/plugins/opencode-auto-resume/dist/index.js\",\n      { \"chunkTimeoutMs\": 45000, \"maxRetries\": 3 }\n    ]\n  ]\n}\n```\n\n### Configurable options\n\n| Option | Default | Description |\n|---|---|---|\n| `chunkTimeoutMs` | `45000` | Inactivity timeout before considering stream stalled |\n| `gracePeriodMs` | `3000` | Extra wait before acting (lets ESC/status events arrive) |\n| `checkIntervalMs` | `5000` | Timer poll interval |\n| `maxRetries` | `3` | Max auto-resume attempts before giving up |\n| `baseBackoffMs` | `1000` | First retry delay (doubles each attempt) |\n| `maxBackoffMs` | `8000` | Backoff cap |\n| `subagentWaitMs` | `15000` | Wait before treating orphan parent as stuck |\n| `loopMaxContinues` | `3` | Continues in window before triggering abort |\n| `loopWindowMs` | `600000` | Hallucination loop detection window (10 min) |\n| `streamingFailureErrorNames` | `[\"ProviderError\",\"APIError\",\"StreamError\",\"ConnectionError\",\"TimeoutError\"]` | Error names that classify as streaming failures (exact match) |\n| `streamingFailureMessagePatterns` | `[\"streaming response failed\",\"stream.*fail\",\"connection.*reset\",\"connection.*closed\"]` | Regex patterns (case-insensitive) in error messages indicating streaming failure |\n| `maxRecoveryRetries` | `2` | Max streaming-failure recovery attempts before abort+resume escalation |\n| `toolTextCheckDelayMs` | `3000` | Delay before scanning an idle session for tool-as-text; also the recovery watchdog delay |\n| `minActivityGapMs` | `1000` | Skip recovery if the session was active within this gap |\n| `warmupMs` | `15000` | Action-intent detection disabled while a session is younger than this |\n| `debug` | `false` | Enable `[debug]` console diagnostics |\n| `resumeOnActionIntent` | `true` | Enable action-intent (`:`-terminated line) nudges |\n| `continuePrompt` | `\"continue\"` | Prompt text for stall/streaming/dead-stream recovery |\n| `actionIntentPrompt` | same as `continuePrompt` | Prompt sent on action-intent detection |\n| `toolTextRecoveryPrompt` | `TOOL_TEXT_RECOVERY_PROMPT` | Override the tool-call-as-text recovery prompt |\n| `thinkingToolRecoveryPrompt` | `THINKING_TOOL_RECOVERY_PROMPT` | Override the thinking-tool recovery prompt |\n| `doneWithoutWorkPrompt` | `DONE_WITHOUT_WORK_PROMPT` | Override the done-claim-with-open-todos prompt |\n| `doneWithoutDetailsPrompt` | `DONE_WITHOUT_DETAILS_PROMPT` | Override the done-claim-with-no-todos report prompt |\n| `doneClaimPatterns` | `DONE_CLAIM_PATTERNS` | Array of regex strings overriding the default done-claim detection patterns (case-insensitive, multiline). Invalid regexes are skipped. Empty array falls back to defaults. |\n| `readyToContinuePatterns` | `READY_TO_CONTINUE_PATTERNS` | Array of regex strings overriding the default ready-to-continue detection patterns (case-insensitive). Invalid regexes are skipped. Empty array falls back to defaults. |\n| `silentDeadStreamMinTokens` | `200` | Min output tokens to treat a textless `finish:\"unknown\"` message as a dead stream |\n| `busyStallStrategy` | `\"continue\"` | Busy-stall response: `\"continue\"`, `\"abort\"` (abort-first), or `\"off\"` (disabled) |\n| `contextSaturationThreshold` | `0.85` | Ratio of used/usable context that routes a saturated parent to magic-context `ctx-wrapup` (only when magic-context is installed) |\n| `activeUserWindowMs` | `900000` | Inbound-user-message recency window (15 min) during which idle nudges stand down (user likely composing) |\n| `subagentNativeCompactionEnabled` | `false` | Opt-in native `session.summarize()` for saturated subagent sessions (no magic-context detection required) |\n\nMessage patterns are matched case-insensitively. Error names use exact match.\n\n### Internal constants (not configurable)\n\n| Constant | Value | Description |\n|---|---|---|\n| `ABORT_CONTINUE_DELAY_MS` | `2000` | Delay between abort and continue |\n| `MAX_IDLE_SESSIONS` | `50` | Idle session map cap before cleanup |\n| `IDLE_CLEANUP_MS` | `600000` | Idle session age before cleanup (10 min) |\n| `SESSION_DISCOVERY_INTERVAL_MS` | `60000` | `session.list()` poll interval (60s) |\n\n## Verification\n\nTo verify the plugin is loaded, run `/status` inside OpenCode — it lists all loaded plugins and their versions. You should see `opencode-auto-resume` in the list.\n\nThe plugin handles all recovery automatically — no manual intervention needed.\n\n## Troubleshooting\n\n| Problem | Solution |\n|---|---|\n| Resumes after ESC | Increase `gracePeriodMs` to `5000` |\n| Too aggressive | Increase `chunkTimeoutMs` to `60000` |\n| Too slow to react | Decrease `checkIntervalMs` to `2000` |\n| Orphan parent not detected | Increase `subagentWaitMs` to `20000` |\n| Hallucination loop not caught | Decrease `loopMaxContinues` to `2` |\n| Tool-text not detected | Check server logs — requires SDK message fetching |\n| Long-running tool killed | Should not happen — active-tool guard prevents it. Report a bug. |\n| `Unexpected server error` on startup | Update to v1.1.8+. Caused by non-Plugin exports being treated as plugin entrypoints by OpenCode's loader. Clear the plugin cache (`~/.cache/opencode/packages/opencode-auto-resume@*`) and restart. |\n","readmeFilename":"README.md"}