{"_id":"@abwuge/openclaw-loop-watchdog","_rev":"7-1c2250f939e0092d9f8988069e235c0c","name":"@abwuge/openclaw-loop-watchdog","dist-tags":{"latest":"1.2.2"},"versions":{"1.0.0":{"name":"@abwuge/openclaw-loop-watchdog","version":"1.0.0","keywords":["openclaw","openclaw-plugin","agent","watchdog"],"license":"MIT","_id":"@abwuge/openclaw-loop-watchdog@1.0.0","maintainers":[{"name":"abwuge","email":"abwuge@163.com"}],"homepage":"https://github.com/abwuge/openclaw-loop-watchdog#readme","bugs":{"url":"https://github.com/abwuge/openclaw-loop-watchdog/issues"},"dist":{"shasum":"de19ebbcb9964c74c04688914d876f212dae86e8","tarball":"https://registry.npmjs.org/@abwuge/openclaw-loop-watchdog/-/openclaw-loop-watchdog-1.0.0.tgz","fileCount":8,"integrity":"sha512-xUR7zPvpB0VSD8kSC5mDQImYh/D/IYGeX1KqCYp/pVmWqL25kmoEOhzeAILeOwDh/vygFU73xHLaDBhYSaPkyQ==","signatures":[{"sig":"MEYCIQD+scBUkYFv1fGOe16UqTzlcpjik5ARKzkpLEv3Cw3oMQIhAMKKalpF42jWVlr3EktN6HXChJKYEkXfxiv0uiRutrVh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16418},"type":"module","gitHead":"8162ebaaff56cc865158931d26ecb1ab61f942cd","_npmUser":{"name":"abwuge","email":"abwuge@163.com"},"openclaw":{"extensions":["./index.ts"]},"repository":{"url":"git+https://github.com/abwuge/openclaw-loop-watchdog.git","type":"git"},"_npmVersion":"10.9.7","description":"OpenClaw plugin: detects unintentional agent loop interruptions and prompts the agent to resume.","directories":{},"_nodeVersion":"22.22.2","_hasShrinkwrap":false,"peerDependencies":{"openclaw":"*"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-loop-watchdog_1.0.0_1774543337659_0.10553893326787422","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@abwuge/openclaw-loop-watchdog","version":"1.0.1","keywords":["openclaw","openclaw-plugin","agent","watchdog"],"license":"MIT","_id":"@abwuge/openclaw-loop-watchdog@1.0.1","maintainers":[{"name":"abwuge","email":"abwuge@163.com"}],"homepage":"https://github.com/abwuge/openclaw-loop-watchdog#readme","bugs":{"url":"https://github.com/abwuge/openclaw-loop-watchdog/issues"},"dist":{"shasum":"43ff0843119ed1645610a1ef581ac2436373bd7a","tarball":"https://registry.npmjs.org/@abwuge/openclaw-loop-watchdog/-/openclaw-loop-watchdog-1.0.1.tgz","fileCount":12,"integrity":"sha512-mOKAcfcCzxkhHrcL8XWBl7gqdfxKS8sDomPftwnMDkqoUJIVe4jE6oL8m1uLYbt0LrJK4UJu4qerBUBd9ii/3Q==","signatures":[{"sig":"MEQCIE1hVCuKjV2FVZxjPrICCdA9eaeAAiRdByvwKSfb8C3LAiBBlrOKhbh928fY9AJa7k135HHPS2xIhJ8C77J3+fSVUg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@abwuge%2fopenclaw-loop-watchdog@1.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":51982},"type":"module","gitHead":"42a5dc4d5fc8b80e9171d25235c5a9742f39f469","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8ea2bf5f-c5a0-4d68-8685-8aa4e3e87c09"}},"openclaw":{"extensions":["./index.ts"]},"repository":{"url":"git+https://github.com/abwuge/openclaw-loop-watchdog.git","type":"git"},"_npmVersion":"11.12.1","description":"OpenClaw plugin: detects unintentional agent loop interruptions and prompts the agent to resume.","directories":{},"_nodeVersion":"22.22.1","_hasShrinkwrap":false,"peerDependencies":{"openclaw":"*"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-loop-watchdog_1.0.1_1774682663022_0.13292354193665012","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@abwuge/openclaw-loop-watchdog","version":"1.0.2","keywords":["openclaw","openclaw-plugin","agent","watchdog"],"license":"MIT","_id":"@abwuge/openclaw-loop-watchdog@1.0.2","maintainers":[{"name":"abwuge","email":"abwuge@163.com"}],"homepage":"https://github.com/abwuge/openclaw-loop-watchdog#readme","bugs":{"url":"https://github.com/abwuge/openclaw-loop-watchdog/issues"},"dist":{"shasum":"de7584b01c65e80cf65900689a2a883cc503db1a","tarball":"https://registry.npmjs.org/@abwuge/openclaw-loop-watchdog/-/openclaw-loop-watchdog-1.0.2.tgz","fileCount":12,"integrity":"sha512-f94UrWnho2AHJeOKef+0w7LhSCVRwQp/tymtmSoVsGhQU8mtd2ObfOKG05FYalHi/0X9M6/YWXxdJ/8iFr/ZdA==","signatures":[{"sig":"MEUCIA5lXp9HTEFL5iOlxRvHMRBdw4aimZlf8swR8lM4Kk5/AiEAncdd16CmW4/AC6oSWdiv5ZwyH1318orjegApn4GKT+Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@abwuge%2fopenclaw-loop-watchdog@1.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":53684},"type":"module","gitHead":"d9931e2b3ba9ed9905b7fa790d84e5ba667bca99","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8ea2bf5f-c5a0-4d68-8685-8aa4e3e87c09"}},"openclaw":{"extensions":["./index.ts"]},"repository":{"url":"git+https://github.com/abwuge/openclaw-loop-watchdog.git","type":"git"},"_npmVersion":"11.12.1","description":"OpenClaw plugin: detects unintentional agent loop interruptions and prompts the agent to resume.","directories":{},"_nodeVersion":"22.22.1","_hasShrinkwrap":false,"peerDependencies":{"openclaw":"*"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-loop-watchdog_1.0.2_1774683307466_0.9978877645608266","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@abwuge/openclaw-loop-watchdog","version":"1.1.0","keywords":["openclaw","openclaw-plugin","agent","watchdog"],"license":"MIT","_id":"@abwuge/openclaw-loop-watchdog@1.1.0","maintainers":[{"name":"abwuge","email":"abwuge@163.com"}],"homepage":"https://github.com/abwuge/openclaw-loop-watchdog#readme","bugs":{"url":"https://github.com/abwuge/openclaw-loop-watchdog/issues"},"dist":{"shasum":"b51943c94d2d4c20f71b607b3d4985dd161718c4","tarball":"https://registry.npmjs.org/@abwuge/openclaw-loop-watchdog/-/openclaw-loop-watchdog-1.1.0.tgz","fileCount":15,"integrity":"sha512-O4uRGfeSZTKnKwHix4vJg9WZzGfadZDvkMsJLl49NHJ1Tm2oCu03dLKYBCxyLKGFrDaUiMRJ9sew/tdKAHl6Zg==","signatures":[{"sig":"MEUCIG1xg0MkDLgIPHsCKm6hIg1fJcKkDtcJDY3B4MmdK9/uAiEApIJsjpqTWKt/Wc4+qvhVKcnFlHhcl/lM5SmD6q1L0tY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@abwuge%2fopenclaw-loop-watchdog@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":62337},"type":"module","gitHead":"188b0350ba073aceae0c99cbd18d44c59dcafa73","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8ea2bf5f-c5a0-4d68-8685-8aa4e3e87c09"}},"openclaw":{"extensions":["./index.ts"]},"repository":{"url":"git+https://github.com/abwuge/openclaw-loop-watchdog.git","type":"git"},"_npmVersion":"11.12.1","description":"OpenClaw plugin: detects unintentional agent loop interruptions and prompts the agent to resume.","directories":{},"_nodeVersion":"22.22.1","_hasShrinkwrap":false,"peerDependencies":{"openclaw":"*"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-loop-watchdog_1.1.0_1774685627270_0.975871044836681","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@abwuge/openclaw-loop-watchdog","version":"1.2.0","keywords":["openclaw","openclaw-plugin","agent","watchdog"],"license":"MIT","_id":"@abwuge/openclaw-loop-watchdog@1.2.0","maintainers":[{"name":"abwuge","email":"abwuge@163.com"}],"homepage":"https://github.com/abwuge/openclaw-loop-watchdog#readme","bugs":{"url":"https://github.com/abwuge/openclaw-loop-watchdog/issues"},"dist":{"shasum":"a8d50de1fd095c2122b715be38ec46b007666e3b","tarball":"https://registry.npmjs.org/@abwuge/openclaw-loop-watchdog/-/openclaw-loop-watchdog-1.2.0.tgz","fileCount":14,"integrity":"sha512-EVZWiYULKpxn7trUZLVc8LenSQDMm+qsSQ9FoI71hkBC4B1g5WvPAxFA509vgdrcR9eW43rKV1ts6pPeYCGrqw==","signatures":[{"sig":"MEUCIQCz9XlIkKb/g9imIi1OuH6kaDasuhP0ZVFzBQaq8UIceAIgJWy0fLlfR+qMHZf8tI0YgilWMjlBsuhhTx7JVNkJrf4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@abwuge%2fopenclaw-loop-watchdog@1.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":56591},"type":"module","gitHead":"fecbccccc21aaa3a3089cf7bede87165eb05118d","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8ea2bf5f-c5a0-4d68-8685-8aa4e3e87c09"}},"openclaw":{"extensions":["./index.ts"]},"repository":{"url":"git+https://github.com/abwuge/openclaw-loop-watchdog.git","type":"git"},"_npmVersion":"11.12.1","description":"OpenClaw plugin: detects unintentional agent loop interruptions and prompts the agent to resume.","directories":{},"_nodeVersion":"22.22.1","_hasShrinkwrap":false,"peerDependencies":{"openclaw":"*"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-loop-watchdog_1.2.0_1774686298924_0.05645871866933683","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@abwuge/openclaw-loop-watchdog","version":"1.2.1","keywords":["openclaw","openclaw-plugin","agent","watchdog"],"license":"MIT","_id":"@abwuge/openclaw-loop-watchdog@1.2.1","maintainers":[{"name":"abwuge","email":"abwuge@163.com"}],"homepage":"https://github.com/abwuge/openclaw-loop-watchdog#readme","bugs":{"url":"https://github.com/abwuge/openclaw-loop-watchdog/issues"},"dist":{"shasum":"8684ba89ce16eb524051bc08c212e4b8aa2f69fb","tarball":"https://registry.npmjs.org/@abwuge/openclaw-loop-watchdog/-/openclaw-loop-watchdog-1.2.1.tgz","fileCount":14,"integrity":"sha512-yGeT8C4t8lIgT6r4+ZgnyZlTSQ1N3rLO/ZtgwdwpGmM6v/8sQQ1MUVbW4d+HBjnouWYxrJA4tIZINFQVrYYEjQ==","signatures":[{"sig":"MEUCIQDDZHcvCG+ax/a+4/xv82hg2GdMveZfKQzT7dmJPvXheQIgE5Vs9JyXjxMS76f0wUSLYk0PRDwIIxMtPydG9baKM8U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@abwuge%2fopenclaw-loop-watchdog@1.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":56867},"type":"module","gitHead":"0e5ec41489a2fb505ec3d8c574bf5e619ab73b05","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8ea2bf5f-c5a0-4d68-8685-8aa4e3e87c09"}},"openclaw":{"extensions":["./index.ts"]},"repository":{"url":"git+https://github.com/abwuge/openclaw-loop-watchdog.git","type":"git"},"_npmVersion":"11.9.0","description":"OpenClaw plugin: detects unintentional agent loop interruptions and prompts the agent to resume.","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"peerDependencies":{"openclaw":"*"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-loop-watchdog_1.2.1_1774696574376_0.6877282895929338","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"@abwuge/openclaw-loop-watchdog","version":"1.2.2","description":"OpenClaw plugin: detects unintentional agent loop interruptions and prompts the agent to resume.","type":"module","license":"MIT","repository":{"type":"git","url":"git+https://github.com/abwuge/openclaw-loop-watchdog.git"},"openclaw":{"extensions":["./index.ts"]},"keywords":["openclaw","openclaw-plugin","agent","watchdog"],"peerDependencies":{"openclaw":"*"},"gitHead":"deee5599802263c41dbce77cf856aa92bb2de03a","_id":"@abwuge/openclaw-loop-watchdog@1.2.2","bugs":{"url":"https://github.com/abwuge/openclaw-loop-watchdog/issues"},"homepage":"https://github.com/abwuge/openclaw-loop-watchdog#readme","_nodeVersion":"24.14.0","_npmVersion":"11.9.0","dist":{"integrity":"sha512-y/pIM3yZTzEOw91DAgbZUcvVA4ekuwGwSKbLgSEW72W5UizBA03+axoEB9sxdTIl6E/Sh1GVo+OFAkzumg9i0g==","shasum":"e9c3b8a6e5c8eee022854a83ce7c1860bb4206c4","tarball":"https://registry.npmjs.org/@abwuge/openclaw-loop-watchdog/-/openclaw-loop-watchdog-1.2.2.tgz","fileCount":14,"unpackedSize":56888,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@abwuge%2fopenclaw-loop-watchdog@1.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCnd4zFQkLEDnIHmAe1A81035IhEaJ8KlW2m4Ksw5cTJwIgFt26Lee5OrZuiW5j5rNYkMCXfQiQkEcS6bJ/vD/Pl/Q="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8ea2bf5f-c5a0-4d68-8685-8aa4e3e87c09"}},"directories":{},"maintainers":[{"name":"abwuge","email":"abwuge@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/openclaw-loop-watchdog_1.2.2_1774697372856_0.3308193089070486"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-26T16:42:17.550Z","modified":"2026-03-28T11:29:33.273Z","1.0.0":"2026-03-26T16:42:18.853Z","1.0.1":"2026-03-28T07:24:23.172Z","1.0.2":"2026-03-28T07:35:07.609Z","1.1.0":"2026-03-28T08:13:47.430Z","1.2.0":"2026-03-28T08:24:59.084Z","1.2.1":"2026-03-28T11:16:14.543Z","1.2.2":"2026-03-28T11:29:32.992Z"},"bugs":{"url":"https://github.com/abwuge/openclaw-loop-watchdog/issues"},"license":"MIT","homepage":"https://github.com/abwuge/openclaw-loop-watchdog#readme","keywords":["openclaw","openclaw-plugin","agent","watchdog"],"repository":{"type":"git","url":"git+https://github.com/abwuge/openclaw-loop-watchdog.git"},"description":"OpenClaw plugin: detects unintentional agent loop interruptions and prompts the agent to resume.","maintainers":[{"name":"abwuge","email":"abwuge@163.com"}],"readme":"# openclaw-loop-watchdog\n\nAn [OpenClaw](https://openclaw.ai) plugin that detects unintentional agent loop interruptions and automatically wakes the agent to resume or confirm completion.\n\n## How It Works\n\nThe plugin maintains a `.running` flag for each active agent session. When a session ends without a stop marker, the watchdog re-enters the session with a wake message. This prevents silent loop deaths where the agent simply stops responding without finishing its task.\n\n- **`before_agent_start`** — Plants a flag when the session starts\n- **`agent_end`** — Checks for a stop/yield marker; if absent, sends a wake message\n- **`gateway_start`** — Recovers orphaned sessions after a gateway restart\n- **`before_reset`** / **gateway hook** — Clears the flag on `/reset` or `/stop`\n\n## Quick Install\n\n```bash\nopenclaw plugins install @abwuge/openclaw-loop-watchdog\nopenclaw loop-watchdog setup\nopenclaw gateway restart\n```\n\nThen update your `AGENTS.md` so the agent knows when to use the stop marker (see [LLM.md](./LLM.md)).\n\n## Localization\n\nAll wake messages and markers are defined in a single file:\n\n```\n~/.openclaw/extensions/openclaw-loop-watchdog/locale.json\n```\n\nEdit this file to change the language or wording. The default is English. You can ask your AI assistant to translate it to your preferred language — see [LLM.md](./LLM.md) for instructions.\n\n## Configuration\n\nOptional overrides in `openclaw.json` under `plugins.entries.openclaw-loop-watchdog.config`:\n\n| Option | Default | Description |\n|--------|---------|-------------|\n| `stopMarker` | (from locale.json) | Custom stop marker prefix |\n| `yieldMarker` | (from locale.json) | Custom yield marker prefix |\n| `watchdogDir` | `<workspace>/watchdog` | Directory for flag files |\n\n## For AI Agents\n\nSee **[LLM.md](./LLM.md)** for the complete installation and configuration guide written for AI agents, including locale translation instructions.\n\n## Changelog\n\n### 1.2.0\n- Replaced multi-locale system with single `locale.json` — translate via LLM to any language\n- Added `LLM.md` — dedicated AI agent configuration guide\n- Removed `README_CN.md`\n- Removed `lang` config option\n\n### 1.1.0\n- Added i18n support with locale files\n- Fixed plugin id to `openclaw-loop-watchdog`\n- Updated GitHub Actions to Node.js 24 compatible versions\n\n### 1.0.2\n- Added LLM installation guide to README\n\n### 1.0.1\n- Fixed CI trusted publishing\n\n### 1.0.0\n- Initial release\n","readmeFilename":"README.md"}