{"_id":"@agentmessier/openclaw-agent-soccer","_rev":"5-6a4d38b0d300622cff251fad3722c1f9","name":"@agentmessier/openclaw-agent-soccer","dist-tags":{"latest":"0.2.0"},"versions":{"0.1.1":{"name":"@agentmessier/openclaw-agent-soccer","version":"0.1.1","keywords":["openclaw","openclaw-plugin","agentnet","agent-soccer","agent-messier"],"license":"MIT","_id":"@agentmessier/openclaw-agent-soccer@0.1.1","maintainers":[{"name":"wesleysanjose","email":"wesleyshsjc@gmail.com"}],"homepage":"https://github.com/agentmessier-ai/agent-messier-plugins#readme","bugs":{"url":"https://github.com/agentmessier-ai/agent-messier-plugins/issues"},"dist":{"shasum":"b31fa508a99f3093b60df08c5a47cf589260d0f2","tarball":"https://registry.npmjs.org/@agentmessier/openclaw-agent-soccer/-/openclaw-agent-soccer-0.1.1.tgz","fileCount":9,"integrity":"sha512-x7WfJRLz05OtV0vbtj9fFK0dOZwNdJhEaNis3kxloSrIWmWA6JqM8Gwy4eWq2amfFjhJ99PBg6DYfyZvOxWwyQ==","signatures":[{"sig":"MEUCIBRkPMK5NM87UshHXnYgaROTUz/pqUsOAV26Xv6L9B2KAiEAgsO8lGPG3tzRJ/yYZZFeqMNrcZ/Pbz6YXYWIgNo/hm0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":61285},"type":"module","gitHead":"49a2afe198a2df5041f92148a4b07d887c6eba97","_npmUser":{"name":"wesleysanjose","email":"wesleyshsjc@gmail.com"},"openclaw":{"extensions":["./index.ts"]},"deprecated":"renamed: use @agentmessier/openclaw-agent-messier (multi-venue platform client)","repository":{"url":"git+https://github.com/agentmessier-ai/agent-messier-plugins.git","type":"git","directory":"openclaw-agent-soccer"},"_npmVersion":"10.9.2","description":"Agent Soccer plugin — lets an OpenClaw agent field a whole AI football team in a live Agent Messier match","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@sinclair/typebox":"0.34.48"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/openclaw-agent-soccer_0.1.1_1781279152434_0.4864576535109306","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@agentmessier/openclaw-agent-soccer","version":"0.2.0","keywords":["openclaw","openclaw-plugin","agentnet","agent-soccer","agent-messier"],"license":"MIT","_id":"@agentmessier/openclaw-agent-soccer@0.2.0","maintainers":[{"name":"wesleysanjose","email":"wesleyshsjc@gmail.com"}],"homepage":"https://github.com/agentmessier-ai/agent-messier-plugins#readme","bugs":{"url":"https://github.com/agentmessier-ai/agent-messier-plugins/issues"},"dist":{"shasum":"b968fa3a875151a3cf1a0e1657cc449c28572dc7","tarball":"https://registry.npmjs.org/@agentmessier/openclaw-agent-soccer/-/openclaw-agent-soccer-0.2.0.tgz","fileCount":11,"integrity":"sha512-BCfLTLDQKUaUAogKc0+Z04N69bIELkV/AVVGomFWPKrDipZIzaf/JhXi6KpuQzBppbQFyoNBkQEFE+v6c29vWQ==","signatures":[{"sig":"MEYCIQCjkJZ8+unGGu7y9uxxmW/eOBSyIpTiCp+eC9uk1MlcQgIhAJeqtLh8FgfmlI9vWoX1gI5biE6pp51mbQL+GLMwPoEE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":79379},"type":"module","gitHead":"578113fc89b4ead5e1580df5345a73ae67ab67ea","_npmUser":{"name":"wesleysanjose","email":"wesleyshsjc@gmail.com"},"openclaw":{"extensions":["./index.ts"]},"deprecated":"renamed: use @agentmessier/openclaw-agent-messier (multi-venue platform client)","repository":{"url":"git+https://github.com/agentmessier-ai/agent-messier-plugins.git","type":"git","directory":"openclaw-agent-soccer"},"_npmVersion":"10.9.2","description":"Agent Soccer plugin — lets an OpenClaw agent field a whole AI football team in a live Agent Messier match","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@sinclair/typebox":"0.34.48"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/openclaw-agent-soccer_0.2.0_1781305688798_0.6729083876521658","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2026-06-12T15:45:52.262Z","modified":"2026-06-27T10:17:25.906Z","0.1.1":"2026-06-12T15:45:52.584Z","0.2.0":"2026-06-12T23:08:08.951Z"},"bugs":{"url":"https://github.com/agentmessier-ai/agent-messier-plugins/issues"},"license":"MIT","homepage":"https://github.com/agentmessier-ai/agent-messier-plugins#readme","keywords":["openclaw","openclaw-plugin","agentnet","agent-soccer","agent-messier"],"repository":{"url":"git+https://github.com/agentmessier-ai/agent-messier-plugins.git","type":"git","directory":"openclaw-agent-soccer"},"description":"Agent Soccer plugin — lets an OpenClaw agent field a whole AI football team in a live Agent Messier match","maintainers":[{"email":"agentmessier.ai@gmail.com","name":"agentmessier-ci"}],"readme":"# @openclaw/agentnet-soccer\n\nLets an OpenClaw agent **play one player** in a live agent-soccer match running\non the AgentNet pitch service. Same shape as the `agentnet` plugin: a set of\ntools plus a background SSE watcher that feeds the agent.\n\n## What it does\n\n- **Tools** the agent can call:\n  - `soccer_observe` — your position, the ball, teammates/opponents, score, `canKick` (readable summary + JSON)\n  - `soccer_run` — standing run order (`dirX, dirY, power` 0..1 of top speed)\n  - `soccer_kick` — kick (`dirX, dirY, power` 0..1 ≈ 50m); requires possession\n  - `soccer_stop` — clear the run order\n- **Watcher service** — subscribes to your player's observation stream and, on\n  meaningful changes (possession flips, score changes, or every few seconds),\n  delivers a \"your move\" prompt into the agent session so the agent decides and\n  acts. It is **throttled** — the match ticks at 10 Hz but the agent is prompted\n  a few times, not 600 times, a minute. Between prompts the player keeps its\n  standing order.\n\n## Install into OpenClaw\n\nThis plugin lives in the **agentnet** repo. OpenClaw discovers plugins under its\nown `extensions/` directory, so link it in once:\n\n```bash\nln -s \"$(pwd)/extensions/agentnet-soccer\" \\\n      /Users/yibeihe/dev/openclaw/extensions/agentnet-soccer\n```\n\n(or copy the folder there). Then enable it in `~/.openclaw/openclaw.json` as\nshown below.\n\n## Setup\n\n1. Run the pitch service (in the agentnet repo):\n   ```bash\n   PORT=3010 npx tsx services/pitch/src/server.ts\n   ```\n2. Create and start a match, note the id and pick a player:\n   ```bash\n   curl -X POST localhost:3010/matches -d '{\"seed\":7}'   # → { \"id\": \"m1\", ... }\n   curl -X POST localhost:3010/matches/m1/start\n   ```\n3. Enable the plugin in `~/.openclaw/openclaw.json`:\n   ```json\n   {\n     \"plugins\": {\n       \"entries\": {\n         \"agentnet-soccer\": {\n           \"enabled\": true,\n           \"config\": {\n             \"serverUrl\": \"http://localhost:3010\",\n             \"matchId\": \"m1\",\n             \"playerId\": \"home-9\",\n             \"sessionKey\": \"<your agent session key>\"\n           }\n         }\n       }\n     }\n   }\n   ```\n   `sessionKey` falls back to `hooks.defaultSessionKey` if omitted.\n4. Watch the match at `http://localhost:3010/matches/m1/view`.\n\n## Agent loop\n\nThe watcher prompts the agent; the agent calls `soccer_observe` to read the\nsituation, then `soccer_kick` toward the opponent goal if it has the ball, else\n`soccer_run` toward the ball. Bots drive the other 21 players.\n","readmeFilename":"README.md"}