{"_id":"@aionis/openclaw-adapter","_rev":"4-561b2acbe09ce3d4c9483ab54deb5648","name":"@aionis/openclaw-adapter","dist-tags":{"latest":"0.1.3"},"versions":{"0.1.0":{"name":"@aionis/openclaw-adapter","version":"0.1.0","keywords":["aionis","openclaw","adapter","loop-control","policy","replay","handoff"],"_id":"@aionis/openclaw-adapter@0.1.0","maintainers":[{"name":"fielddd","email":"heyopscc@gmail.com"}],"homepage":"https://github.com/Cognary/clawbot-aionis-adapter#readme","bugs":{"url":"https://github.com/Cognary/clawbot-aionis-adapter/issues"},"dist":{"shasum":"13e96dede2428b0ffef1b4d349388fe703812b06","tarball":"https://registry.npmjs.org/@aionis/openclaw-adapter/-/openclaw-adapter-0.1.0.tgz","fileCount":26,"integrity":"sha512-+WKOGqzm/90sLiMuZ8RyOoTrmGaneer1WSTO9ysIW2sCOvQE9w9pxSHllCnY1j/f6pBfHC4x+T4ejwOsPpKTOw==","signatures":[{"sig":"MEUCIGvgZ7n/DxnYAJEu5dfVn3eQMIslwksGmimXXxaoR6zTAiEA9WJdjfDk8Idaop5ScQ6vE8wPcb8CkUWdLvpCKAIkJ2U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":66816},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":"./dist/index.js","./plugin":"./dist/plugin.js"},"gitHead":"370a8205420d9a28b902955e3f3934c924c2ef6a","scripts":{"test":"npm run build && node --test test/*.test.mjs","build":"tsc -p tsconfig.json --noEmit false","typecheck":"tsc -p tsconfig.json --noEmit","bench:anti-loop":"npm run build && node scripts/anti-loop-benchmark.mjs","bench:live-task":"npm run build && node scripts/live-task-benchmark.mjs","bench:completion":"npm run build && node scripts/completion-benchmark.mjs","bench:openclaw-ab":"npm run build && node scripts/openclaw-anti-loop-ab-benchmark.mjs","smoke:openclaw-load":"npm run build && python3 scripts/openclaw-load-smoke.py","bench:google-runtime":"python3 scripts/openclaw-google-runtime-benchmark.py","bench:semi-live-token":"npm run build && node scripts/semi-live-token-benchmark.mjs","smoke:adapter-activity":"python3 scripts/openclaw-adapter-activity-probe.py","bench:google-runtime-ab":"python3 scripts/openclaw-google-runtime-benchmark.py --repeats 5","smoke:gateway-backed-feasibility":"python3 scripts/openclaw-gateway-backed-feasibility.py","bench:loader-backed-semi-live-token":"python3 scripts/openclaw-loader-backed-semi-live-benchmark.py"},"_npmUser":{"name":"fielddd","email":"heyopscc@gmail.com"},"openclaw":{"extensions":["./dist/plugin.js"]},"repository":{"url":"git+https://github.com/Cognary/clawbot-aionis-adapter.git","type":"git"},"_npmVersion":"11.6.2","description":"Standalone OpenClaw adapter for Aionis execution control.","directories":{},"_nodeVersion":"24.12.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.2","@types/node":"^24.3.0"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-adapter_0.1.0_1773480245335_0.7161949794826015","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@aionis/openclaw-adapter","version":"0.1.1","keywords":["aionis","openclaw","adapter","loop-control","policy","replay","handoff"],"_id":"@aionis/openclaw-adapter@0.1.1","maintainers":[{"name":"fielddd","email":"heyopscc@gmail.com"}],"homepage":"https://github.com/Cognary/clawbot-aionis-adapter#readme","bugs":{"url":"https://github.com/Cognary/clawbot-aionis-adapter/issues"},"dist":{"shasum":"52f5e476b25baf52c6d26e03373c391d9354d5d4","tarball":"https://registry.npmjs.org/@aionis/openclaw-adapter/-/openclaw-adapter-0.1.1.tgz","fileCount":26,"integrity":"sha512-6b6TXt2uJdJwZEhdK85uiRw6TmI6vRkouIgvWJkQ2uWyguxBLBgTbBS7lp6HJXSY4jeTNy4eLRDwl66MQWfNjA==","signatures":[{"sig":"MEUCIQDB7mkKfYpaCSySi+YXZQLkUTmVosc1I3CPYjmKxwINLgIgKUUZRRCwDBALWAopY+JTFdqXknNcltOyDZZFKUc6uOs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":67210},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":"./dist/index.js","./plugin":"./dist/plugin.js"},"gitHead":"44311e75e34736307a7e3c3b2e9dc9a44ef720db","scripts":{"test":"npm run build && node --test test/*.test.mjs","build":"tsc -p tsconfig.json --noEmit false","prepack":"npm run build","typecheck":"tsc -p tsconfig.json --noEmit","bench:anti-loop":"npm run build && node scripts/anti-loop-benchmark.mjs","bench:live-task":"npm run build && node scripts/live-task-benchmark.mjs","bench:completion":"npm run build && node scripts/completion-benchmark.mjs","bench:openclaw-ab":"npm run build && node scripts/openclaw-anti-loop-ab-benchmark.mjs","smoke:openclaw-load":"npm run build && python3 scripts/openclaw-load-smoke.py","bench:google-runtime":"python3 scripts/openclaw-google-runtime-benchmark.py","bench:semi-live-token":"npm run build && node scripts/semi-live-token-benchmark.mjs","smoke:adapter-activity":"python3 scripts/openclaw-adapter-activity-probe.py","bench:google-runtime-ab":"python3 scripts/openclaw-google-runtime-benchmark.py --repeats 5","smoke:gateway-backed-feasibility":"python3 scripts/openclaw-gateway-backed-feasibility.py","bench:loader-backed-semi-live-token":"python3 scripts/openclaw-loader-backed-semi-live-benchmark.py"},"_npmUser":{"name":"fielddd","email":"heyopscc@gmail.com"},"openclaw":{"extensions":["./dist/plugin.js"]},"repository":{"url":"git+https://github.com/Cognary/clawbot-aionis-adapter.git","type":"git"},"_npmVersion":"11.6.2","description":"Standalone OpenClaw adapter for Aionis execution control.","directories":{},"_nodeVersion":"24.12.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.2","@types/node":"^24.3.0"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-adapter_0.1.1_1773480989996_0.1645530945008924","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@aionis/openclaw-adapter","version":"0.1.2","keywords":["aionis","openclaw","adapter","loop-control","policy","replay","handoff"],"_id":"@aionis/openclaw-adapter@0.1.2","maintainers":[{"name":"fielddd","email":"heyopscc@gmail.com"}],"homepage":"https://github.com/Cognary/clawbot-aionis-adapter#readme","bugs":{"url":"https://github.com/Cognary/clawbot-aionis-adapter/issues"},"dist":{"shasum":"a6ff889c5227651ceece788fa5d2a0bbab96b964","tarball":"https://registry.npmjs.org/@aionis/openclaw-adapter/-/openclaw-adapter-0.1.2.tgz","fileCount":28,"integrity":"sha512-vV/fh5Jft/YFATa60g/3+kTPOtA++aFe7p93WZlderxhk3JZBnQWFOoxnKXiOg7mk7yRCtEBlorfFqwV4MINTw==","signatures":[{"sig":"MEQCIEXU9HSuuD33YGw31fbeG0TakCyr9caoAIqs08ABlgy2AiBoM0jC1rwm7+XxuPDu7U5QLzrUxGLRgIGh+WyeEb6YHw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":87698},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":"./dist/index.js","./plugin":"./dist/plugin.js"},"gitHead":"3651fe86cbbd19b46cde3bd72e496f7dedcb2b5b","scripts":{"test":"npm run build && node --test test/*.test.mjs","build":"tsc -p tsconfig.json --noEmit false","prepack":"npm run build","typecheck":"tsc -p tsconfig.json --noEmit","bench:anti-loop":"npm run build && node scripts/anti-loop-benchmark.mjs","bench:live-task":"npm run build && node scripts/live-task-benchmark.mjs","bench:completion":"npm run build && node scripts/completion-benchmark.mjs","bench:multi-agent":"npm run build && node scripts/multi-agent-benchmark.mjs","bench:openclaw-ab":"npm run build && node scripts/openclaw-anti-loop-ab-benchmark.mjs","bench:real-workflow":"npm run build && node scripts/real-workflow-scenario-benchmark.mjs","smoke:openclaw-load":"npm run build && python3 scripts/openclaw-load-smoke.py","bench:google-runtime":"python3 scripts/openclaw-google-runtime-benchmark.py","bench:semi-live-token":"npm run build && node scripts/semi-live-token-benchmark.mjs","smoke:adapter-activity":"python3 scripts/openclaw-adapter-activity-probe.py","bench:google-runtime-ab":"python3 scripts/openclaw-google-runtime-benchmark.py --repeats 5","bench:real-workflow-nightly":"bash scripts/real-workflow-nightly-validation.sh","bench:one-prompt-multi-agent":"npm run build && node scripts/one-prompt-multi-agent-benchmark.mjs","smoke:gateway-backed-feasibility":"python3 scripts/openclaw-gateway-backed-feasibility.py","bench:real-workflow-continuity-ab":"npm run build && node scripts/real-workflow-continuity-ab-benchmark.mjs","bench:loader-backed-semi-live-token":"python3 scripts/openclaw-loader-backed-semi-live-benchmark.py"},"_npmUser":{"name":"fielddd","email":"heyopscc@gmail.com"},"openclaw":{"extensions":["./dist/plugin.js"]},"repository":{"url":"git+https://github.com/Cognary/clawbot-aionis-adapter.git","type":"git"},"_npmVersion":"11.6.2","description":"Standalone OpenClaw adapter for Aionis execution control.","directories":{},"_nodeVersion":"24.12.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.2","@types/node":"^24.3.0"},"_npmOperationalInternal":{"tmp":"tmp/openclaw-adapter_0.1.2_1773646331643_0.16508922309039176","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@aionis/openclaw-adapter","version":"0.1.3","type":"module","description":"Standalone OpenClaw adapter for Aionis execution control.","repository":{"type":"git","url":"git+https://github.com/Cognary/clawbot-aionis-adapter.git"},"bugs":{"url":"https://github.com/Cognary/clawbot-aionis-adapter/issues"},"homepage":"https://github.com/Cognary/clawbot-aionis-adapter#readme","publishConfig":{"access":"public"},"main":"dist/index.js","scripts":{"build":"tsc -p tsconfig.json --noEmit false","prepack":"npm run build","typecheck":"tsc -p tsconfig.json --noEmit","test":"npm run build && node --test test/*.test.mjs","bench:anti-loop":"npm run build && node scripts/anti-loop-benchmark.mjs","smoke:openclaw-load":"npm run build && python3 scripts/openclaw-load-smoke.py","bench:openclaw-ab":"npm run build && node scripts/openclaw-anti-loop-ab-benchmark.mjs","bench:live-task":"npm run build && node scripts/live-task-benchmark.mjs","bench:semi-live-token":"npm run build && node scripts/semi-live-token-benchmark.mjs","bench:completion":"npm run build && node scripts/completion-benchmark.mjs","bench:loader-backed-semi-live-token":"python3 scripts/openclaw-loader-backed-semi-live-benchmark.py","smoke:gateway-backed-feasibility":"python3 scripts/openclaw-gateway-backed-feasibility.py","smoke:adapter-activity":"python3 scripts/openclaw-adapter-activity-probe.py","bench:google-runtime":"python3 scripts/openclaw-google-runtime-benchmark.py","bench:google-runtime-ab":"python3 scripts/openclaw-google-runtime-benchmark.py --repeats 5","bench:multi-agent":"npm run build && node scripts/multi-agent-benchmark.mjs","bench:one-prompt-multi-agent":"npm run build && node scripts/one-prompt-multi-agent-benchmark.mjs","bench:real-workflow":"npm run build && node scripts/real-workflow-scenario-benchmark.mjs","bench:real-workflow-continuity-ab":"npm run build && node scripts/real-workflow-continuity-ab-benchmark.mjs","bench:real-workflow-nightly":"bash scripts/real-workflow-nightly-validation.sh"},"exports":{".":"./dist/index.js","./plugin":"./dist/plugin.js"},"keywords":["aionis","openclaw","adapter","loop-control","policy","replay","handoff"],"openclaw":{"extensions":["./dist/plugin.js"]},"devDependencies":{"@types/node":"^24.3.0","typescript":"^5.9.2"},"gitHead":"e8a98cb84b5e1d950e00c313b761933f80987fd1","types":"./dist/index.d.ts","_id":"@aionis/openclaw-adapter@0.1.3","_nodeVersion":"24.12.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-TYhcwdk2d4j4YEyHM5abgclNuDOFZIP6/XVsfb05hHs7qKlGWa8NPFzSBTx4EA8JQEqHTnMq+2iwZLjRxYlX8w==","shasum":"d8c82c148782d9a093e95b2bbbc04f3d46b3120e","tarball":"https://registry.npmjs.org/@aionis/openclaw-adapter/-/openclaw-adapter-0.1.3.tgz","fileCount":28,"unpackedSize":90129,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCRBTDTUQTuViBWCiOQ51nHfEUWHVq+hMZOjg18SoGztgIgaAiqCC8CAc+U8YrKKVZ4h1ptYC4HgHLQjoD50q/l27s="}]},"_npmUser":{"name":"fielddd","email":"heyopscc@gmail.com"},"directories":{},"maintainers":[{"name":"fielddd","email":"heyopscc@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/openclaw-adapter_0.1.3_1773647170554_0.9618195921843748"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-14T09:24:05.259Z","modified":"2026-03-16T07:46:10.837Z","0.1.0":"2026-03-14T09:24:05.482Z","0.1.1":"2026-03-14T09:36:30.138Z","0.1.2":"2026-03-16T07:32:11.800Z","0.1.3":"2026-03-16T07:46:10.681Z"},"bugs":{"url":"https://github.com/Cognary/clawbot-aionis-adapter/issues"},"homepage":"https://github.com/Cognary/clawbot-aionis-adapter#readme","keywords":["aionis","openclaw","adapter","loop-control","policy","replay","handoff"],"repository":{"type":"git","url":"git+https://github.com/Cognary/clawbot-aionis-adapter.git"},"description":"Standalone OpenClaw adapter for Aionis execution control.","maintainers":[{"name":"fielddd","email":"heyopscc@gmail.com"}],"readme":"# Aionis OpenClaw Adapter\n\n**Bring execution control to OpenClaw.**\n\n`@aionis/openclaw-adapter` connects OpenClaw to Aionis so agent runs stop acting like an unbounded ReAct loop and start behaving like a controlled execution system.\n\nWhat Aionis adds on top of OpenClaw:\n\n- **externalized context** so each run starts with the right task state instead of rediscovering it\n- **policy gating** so broad search, broad test, and repeated no-progress tool paths get suppressed\n- **replay dispatch** so repeatable work can escape into a known path instead of starting over\n- **handoff fallback** so failed or interrupted runs preserve a usable continuation point\n- **loop control** so tool churn, duplicate observations, and no-progress streaks get stopped before they burn more time and tokens\n\nRuntime safety notes on the current release line:\n\n- Aionis transport failures on hot hooks now degrade open instead of aborting the host run\n- `enabled=false` is a real off switch for loop-control behavior\n- deny-only policy outcomes now go through the same controlled replay/handoff stop path as other loop-control stops\n\nThis is not a generic memory plugin. It is an **execution-control adapter** for OpenClaw.\n\n## Why It Matters\n\nOpenClaw is powerful, but on complex tasks it can still fail in predictable ways:\n\n- too many repeated tool calls\n- broad repo scans when a focused path would do\n- broad test runs when a targeted validation is enough\n- no-progress retry loops that keep burning tokens\n- interrupted runs that lose the exact execution state needed to continue\n\nAionis changes that operating model.\n\nInstead of letting each run improvise from scratch, the adapter gives OpenClaw:\n\n1. a compact execution context at run start\n2. a policy layer before expensive tool calls\n3. feedback and evidence capture after each tool call\n4. structured escape hatches through replay or handoff\n\n## What Is Proven Today\n\nCurrent benchmark evidence supports five concrete claims:\n\n1. **Tool-loop churn goes down**\n2. **Token burn goes down on benchmarked slices**\n3. **Completion goes up on current replay, focused-repo, handoff-resume, and one-prompt multi-agent slices**\n4. **Reviewer-ready completion goes up on the current realistic workflow scenario**\n5. **The adapter is active on real OpenClaw runtime paths, not just mock harnesses**\n\nHeadline results:\n\n- **Live-task A/B**: average executed steps dropped from `7.33` to `3`, and broad tool calls dropped from `1.33` to `0`\n- **GLM-5 semi-live token benchmark**: average total tokens dropped from `1893` to `865.33`\n- **Hard-stop / replay token slice**: average total tokens dropped from `1659` to `1267`, with `controlled_stop_rate = 1`\n- **Completion benchmark**: baseline `completed_rate = 0`, treatment `completed_rate = 1` on the current benchmark slices\n- **One-prompt multi-agent A/B**:\n  - issue `#10864`: baseline `completed_rate = 0`, treatment `completed_rate = 1`\n  - dashboard auth drift: baseline `completed_rate = 0`, treatment `completed_rate = 1`\n  - markdown fallback: baseline `completed_rate = 0.3333`, treatment `completed_rate = 1` (`supporting slice`)\n- **Repeated Google runtime-backed A/B**: baseline `completed_rate = 0`, treatment `completed_rate = 0.8`\n- **Real workflow scenario v1 (3 repeats)**:\n  - dashboard auth drift with real Lite: baseline `reviewer_ready_rate = 0.6667`, treatment `reviewer_ready_rate = 1`\n  - pairing / approval recovery with real Lite: baseline `reviewer_ready_rate = 0`, treatment `reviewer_ready_rate = 1`\n  - service token drift repair with real Lite: baseline `reviewer_ready_rate = 0`, treatment `reviewer_ready_rate = 0.6667`\n  - markdown parser fallback with real Lite: baseline `reviewer_ready_rate = 0`, treatment `reviewer_ready_rate = 0.6667` (`supporting slice`)\n- **Execution continuity validation on the real Lite path (single-run checks)**:\n  - dashboard auth drift with recovered `execution_packet_v1`: baseline `reviewer_ready_rate = 0`, treatment `reviewer_ready_rate = 1`\n  - pairing / approval recovery with recovered `execution_packet_v1`: baseline `reviewer_ready_rate = 0`, treatment `reviewer_ready_rate = 1`\n  - service token drift repair with recovered `execution_packet_v1`: baseline `reviewer_ready_rate = 0`, treatment `reviewer_ready_rate = 1`\n  - markdown parser fallback with recovered `execution_packet_v1`: baseline `reviewer_ready_rate = 0`, treatment `reviewer_ready_rate = 1`\n- **Phase 2 state-first context revalidation on the real Lite path (3 repeats)**:\n  - dashboard auth drift: baseline `reviewer_ready_rate = 0`, treatment `reviewer_ready_rate = 0.6667`, with lower average total tokens from `24005.33` to `21859` and lower wall-clock from `98846.67ms` to `74957.33ms`\n  - pairing / approval recovery: baseline `reviewer_ready_rate = 0`, treatment `reviewer_ready_rate = 1`, with lower average total tokens from `19066.33` to `16862.67` and lower wall-clock from `76917ms` to `55271.67ms`\n  - service token drift repair: baseline `reviewer_ready_rate = 0`, treatment `reviewer_ready_rate = 1`, but with higher average total tokens from `17245.67` to `25099.67` and higher wall-clock from `66586ms` to `78718.67ms`\n- **Phase 2 handoff-transition single-run revalidation on the real Lite path**:\n  - dashboard auth drift: baseline `reviewer_ready_rate = 1`, treatment `reviewer_ready_rate = 1`, while treatment lowers total tokens from `23870` to `17533` and wall-clock from `96660ms` to `58810ms`\n- **Phase 2 handoff-transition repeated revalidation on the real Lite path (3 repeats)**:\n  - dashboard auth drift: baseline `reviewer_ready_rate = 0`, treatment `reviewer_ready_rate = 1`, with lower average total tokens from `24717.67` to `21235.67` and lower wall-clock from `101635.33ms` to `68210ms`\n- **Phase 2 tools/select state-aware repeated revalidation on the real Lite path (3 repeats)**:\n  - dashboard auth drift: baseline `reviewer_ready_rate = 0.6667`, treatment `reviewer_ready_rate = 1`, but with higher average total tokens from `18936.67` to `28186.67` and higher wall-clock from `83000.67ms` to `94629ms`\n  - pairing / approval recovery: baseline `reviewer_ready_rate = 0`, treatment `reviewer_ready_rate = 1`, but with higher average total tokens from `18493` to `22063.33` and higher wall-clock from `78439.33ms` to `80485.33ms`\n  - service token drift repair: baseline `reviewer_ready_rate = 0`, treatment `reviewer_ready_rate = 0.3333`, but with higher average total tokens from `14376.67` to `23844.33` and higher wall-clock from `55854.67ms` to `76087ms` (`supporting completion slice`)\n- **Repeated continuity A/B on the real Lite path (`legacy` vs `execution_packet_v1`)**:\n  - dashboard auth drift: completion stays `1 -> 1`, while packet continuity lowers average total tokens from `24750.67` to `22974`\n  - pairing / approval recovery: completion stays `1 -> 1`, while packet continuity lowers average total tokens from `22704` to `22091.33`\n  - service token drift repair: completion stays `1 -> 1`, while packet continuity lowers average total tokens from `24974.67` to `23043`\n  - markdown parser fallback: baseline `reviewer_ready_rate = 0.6667`, packet continuity `reviewer_ready_rate = 1`, but with higher average total tokens from `20920.67` to `30203` (`supporting completion slice`, not a core efficiency slice)\n\nSupporting docs:\n\n- [Benchmark Evidence Overview](docs/2026-03-14-benchmark-evidence-overview.md)\n- [Benchmark Summary](docs/2026-03-14-openclaw-aionis-benchmark-summary.md)\n- [Completion Benchmark](docs/2026-03-14-openclaw-completion-benchmark.md)\n- [One-Prompt Multi-Agent Benchmark](docs/2026-03-14-openclaw-one-prompt-multi-agent-benchmark.md)\n- [One-Prompt Multi-Agent Case Study](docs/2026-03-14-openclaw-one-prompt-multi-agent-case-study.md)\n- [Loader-Backed Semi-Live Token Benchmark](docs/2026-03-14-openclaw-loader-backed-semi-live-token-benchmark.md)\n- [Google Runtime Benchmark](docs/2026-03-14-openclaw-google-runtime-benchmark.md)\n- [Google Runtime Case Study](docs/2026-03-14-openclaw-google-runtime-case-study.md)\n- [Real Workflow Scenario v1](docs/2026-03-15-openclaw-real-workflow-scenario-benchmark.md)\n- [Execution Continuity Validation](docs/2026-03-15-openclaw-execution-continuity-validation.md)\n- [Execution Continuity A/B](docs/2026-03-15-openclaw-execution-continuity-ab-benchmark.md)\n- [Controlled Nightly Validation](docs/2026-03-15-openclaw-real-workflow-nightly-validation.md)\n- [Launchd Setup](docs/2026-03-15-openclaw-real-workflow-launchd.md)\n\nPublic evidence files:\n\n- [Evidence Index](evidence/README.md)\n- [Live-task benchmark summary](evidence/openclaw-live-task-benchmark/20260314061733/summary.json)\n- [GLM-5 semi-live token summary](evidence/openclaw-semi-live-token-benchmark/20260314064242/summary.json)\n- [Hard-stop / replay token summary](evidence/openclaw-semi-live-token-benchmark/20260314070306/summary.json)\n- [Completion benchmark summary](evidence/openclaw-completion-benchmark/20260314072335/summary.json)\n- [One-prompt multi-agent summary: issue #10864](evidence/openclaw-one-prompt-multi-agent-benchmark/20260314115524/summary.json)\n- [One-prompt multi-agent summary: dashboard auth drift](evidence/openclaw-one-prompt-multi-agent-benchmark/20260314125034/summary.json)\n- [One-prompt multi-agent summary: markdown fallback](evidence/openclaw-one-prompt-multi-agent-benchmark/20260314130932/summary.json)\n- [One-prompt multi-agent case study](docs/2026-03-14-openclaw-one-prompt-multi-agent-case-study.md)\n- [Repeated Google runtime summary](evidence/openclaw-google-runtime-benchmark/20260314084010/summary.json)\n- [Real workflow scenario summary: dashboard auth drift (real Lite)](evidence/openclaw-real-workflow-scenario/20260315063952/summary.json)\n- [Real workflow scenario summary: pairing / approval recovery (real Lite)](evidence/openclaw-real-workflow-scenario/20260315065630/summary.json)\n- [Real workflow scenario summary: service token drift repair (real Lite)](evidence/openclaw-real-workflow-scenario/20260315074101/summary.json)\n- [Real workflow scenario summary: markdown parser fallback (real Lite)](evidence/openclaw-real-workflow-scenario/20260315072548/summary.json)\n- [Real workflow continuity validation: dashboard auth drift (real Lite)](evidence/openclaw-real-workflow-scenario/20260315090950/summary.json)\n- [Phase 2 state-first context revalidation: dashboard auth drift (real Lite)](evidence/openclaw-real-workflow-scenario/20260316024722/summary.json)\n- [Phase 2 state-first context revalidation: pairing / approval recovery (real Lite)](evidence/openclaw-real-workflow-scenario/20260316030711/summary.json)\n- [Phase 2 state-first context revalidation: service token drift repair (real Lite)](evidence/openclaw-real-workflow-scenario/20260316031511/summary.json)\n- [Phase 2 handoff-transition single-run revalidation: dashboard auth drift (real Lite)](evidence/openclaw-real-workflow-scenario/20260316035214/summary.json)\n- [Phase 2 handoff-transition repeated revalidation: dashboard auth drift (real Lite)](evidence/openclaw-real-workflow-scenario/20260316035944/summary.json)\n- [Phase 2 tools/select state-aware repeated revalidation: dashboard auth drift (real Lite)](evidence/openclaw-real-workflow-scenario/20260316050335/summary.json)\n- [Phase 2 tools/select state-aware repeated revalidation: pairing / approval recovery (real Lite)](evidence/openclaw-real-workflow-scenario/20260316051831/summary.json)\n- [Phase 2 tools/select state-aware repeated revalidation: service token drift repair (real Lite, supporting completion slice)](evidence/openclaw-real-workflow-scenario/20260316053718/summary.json)\n- [Real workflow continuity validation: pairing / approval recovery (real Lite)](evidence/openclaw-real-workflow-scenario/20260315091709/summary.json)\n- [Real workflow continuity validation: service token drift repair (real Lite)](evidence/openclaw-real-workflow-scenario/20260315092312/summary.json)\n- [Real workflow continuity validation: markdown parser fallback (real Lite)](evidence/openclaw-real-workflow-scenario/20260315093238/summary.json)\n- [Post-main-merge revalidation: dashboard auth drift (real Lite)](evidence/openclaw-real-workflow-scenario/20260315143814/summary.json)\n- [Post-main-merge revalidation: pairing / approval recovery (real Lite)](evidence/openclaw-real-workflow-scenario/20260316012701/summary.json)\n- [Post-main-merge revalidation: service token drift repair (real Lite)](evidence/openclaw-real-workflow-scenario/20260316013610/summary.json)\n- [Repeated continuity A/B: dashboard auth drift (real Lite)](evidence/openclaw-real-workflow-continuity-ab/20260315102630/summary.json)\n- [Repeated continuity A/B: pairing / approval recovery (real Lite)](evidence/openclaw-real-workflow-continuity-ab/20260315103311/summary.json)\n- [Repeated continuity A/B: service token drift repair (real Lite)](evidence/openclaw-real-workflow-continuity-ab/20260315104415/summary.json)\n- [Repeated continuity A/B: markdown parser fallback (real Lite, supporting completion slice)](evidence/openclaw-real-workflow-continuity-ab/20260315123154/summary.json)\n\n## 5-Minute Quickstart\n\n### 1. Start Aionis Lite\n\n```bash\nnpx @aionis/sdk@0.2.20 dev\nnpx @aionis/sdk@0.2.20 health\n```\n\nExpected Aionis base URL:\n\n- `http://127.0.0.1:3321`\n\n### 2. Install the Adapter into OpenClaw\n\n```bash\nopenclaw plugins install @aionis/openclaw-adapter\nopenclaw plugins info openclaw-adapter --json\n```\n\nYou should see:\n\n- plugin id: `openclaw-adapter`\n- status: `loaded`\n\n### 3. Add the Minimal OpenClaw Config\n\nReference examples:\n\n- [examples/openclaw.json](examples/openclaw.json)\n- [examples/openclaw.advanced.json](examples/openclaw.advanced.json)\n- [Install and Config Guide](docs/2026-03-14-install-and-config.md)\n\n```json\n{\n  \"plugins\": {\n    \"allow\": [\"openclaw-adapter\"],\n    \"entries\": {\n      \"openclaw-adapter\": {\n        \"enabled\": true,\n        \"config\": {\n          \"baseUrl\": \"http://127.0.0.1:3321\",\n          \"tenantId\": \"default\",\n          \"actor\": \"openclaw\",\n          \"scopeMode\": \"project\",\n          \"strictToolBlocking\": true,\n          \"replayDispatchEnabled\": true,\n          \"handoffFallbackEnabled\": true\n        }\n      }\n    }\n  }\n}\n```\n\nUse `examples/openclaw.json` first.\n\nDo not tune the threshold knobs on first install:\n\n1. `maxSteps`\n2. `maxSameToolStreak`\n3. `maxDuplicateObservationStreak`\n4. `maxNoProgressStreak`\n5. `maxEstimatedTokenBurn`\n6. `maxBroadTestInvocations`\n7. `maxBroadScanInvocations`\n\nThose are advanced controls for later slice-specific tuning, not required install-time setup.\n\n### 4. Run a First Turn\n\n```bash\nopenclaw agent --local --message \"Inspect the task, avoid broad scans, and proceed carefully.\" --json\n```\n\n## How Aionis Changes an OpenClaw Run\n\n### Before the run\n\nAionis assembles a compact execution context so the model starts from the right task state instead of re-reading the same surface area.\n\n### Before a tool call\n\nAionis applies policy gating. This is where the adapter can suppress:\n\n- repeated calls to the same tool\n- broad repo search when a focused query is enough\n- broad test runs when a targeted test is available\n- obviously no-progress paths that should stop or reroute\n\n### After a tool call\n\nAionis writes back:\n\n- tool feedback\n- evidence\n- loop state updates\n\nThat lets later steps reason from actual execution history, not just the transient conversation buffer.\n\n### When the run degrades\n\nThe adapter can escape through:\n\n- **replay dispatch** when the task matches a reusable path\n- **handoff** when the right behavior is to preserve a structured continuation point\n\n## What This Product Is\n\nThis package gives you:\n\n1. a reusable `AionisLoopControlAdapter`\n2. an OpenClaw host binding\n3. policy and loop heuristics for expensive tool paths\n4. replay and handoff orchestration around OpenClaw runs\n\nCurrent hook coverage:\n\n1. `session_start`\n2. `session_end`\n3. `before_agent_start`\n4. `before_tool_call`\n5. `after_tool_call`\n6. `agent_end`\n7. `tool_result_persist`\n8. `before_message_write`\n\n## What It Does Not Claim\n\nThis adapter currently controls the **tool-loop boundary**.\n\nIt does **not** claim to:\n\n- control planner-internal reasoning steps that never emit a tool call\n- solve every OpenClaw failure mode\n- guarantee token wins on every provider and every task shape\n\nThe current evidence is strong on:\n\n- tool-loop control\n- token reduction on benchmarked slices\n- completion uplift on current benchmark slices, including one-prompt multi-agent workflows\n- real OpenClaw runtime activity\n\n## Verification and Benchmark Commands\n\nCore checks:\n\n1. `npm test`\n2. `npm run smoke:openclaw-load`\n3. `npm run smoke:adapter-activity`\n\nBenchmarks:\n\n1. `npm run bench:openclaw-ab`\n2. `npm run bench:live-task`\n3. `npm run bench:semi-live-token`\n4. `npm run bench:loader-backed-semi-live-token`\n5. `npm run bench:completion`\n6. `npm run bench:google-runtime`\n7. `npm run bench:google-runtime-ab`\n8. `npm run bench:real-workflow`\n\n## Repo Guide\n\n- [Install and Config Guide](docs/2026-03-14-install-and-config.md)\n- [Product Positioning](PRODUCT.md)\n- [Changelog](CHANGELOG.md)\n- [Benchmark Evidence Overview](docs/2026-03-14-benchmark-evidence-overview.md)\n- [Benchmark Summary](docs/2026-03-14-openclaw-aionis-benchmark-summary.md)\n- [One-Prompt Multi-Agent Benchmark](docs/2026-03-14-openclaw-one-prompt-multi-agent-benchmark.md)\n- [One-Prompt Multi-Agent Case Study](docs/2026-03-14-openclaw-one-prompt-multi-agent-case-study.md)\n- [Real Workflow Scenario v1](docs/2026-03-15-openclaw-real-workflow-scenario-benchmark.md)\n","readmeFilename":"README.md"}