{"_id":"@aion0/bastion-skills","_rev":"6-9f879325a971701f21cddec72947c9d4","name":"@aion0/bastion-skills","dist-tags":{"latest":"0.1.5"},"versions":{"0.1.0":{"name":"@aion0/bastion-skills","version":"0.1.0","keywords":["openclaw","openclaw-plugin","bastion","ai-security","dlp","tool-guard"],"author":{"name":"aion0"},"license":"MIT","_id":"@aion0/bastion-skills@0.1.0","maintainers":[{"name":"aion0","email":"aiwatching2024@gmail.com"}],"dist":{"shasum":"eeb3bc88ea185c4356801919599d9d59647ad603","tarball":"https://registry.npmjs.org/@aion0/bastion-skills/-/bastion-skills-0.1.0.tgz","fileCount":7,"integrity":"sha512-O+MwbrcrC5C3UhuTkfSA4My0AnC8fuwWqEFFb8nqh4QSX08+8K2HoQY1vVCO93C+1mDzCUpvpAGC4CgMIhCsJw==","signatures":[{"sig":"MEYCIQDGVUbiRpDCLdc4W9sdVnctXPljJlaikuyWehI+tgMazQIhAMhThoSgRLfGxBjZv+/eoAzCvmqm42YQLeUrFRJpcoLw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10882},"main":"index.ts","type":"module","_npmUser":{"name":"aion0","email":"aiwatching2024@gmail.com"},"openclaw":{"extensions":["./index.ts"]},"_npmVersion":"10.9.3","description":"Bastion AI Gateway extension for OpenClaw — DLP scanning, tool guard, and security monitoring","directories":{},"_nodeVersion":"22.20.0","dependencies":{"@aion0/bastion":">=0.1.9"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/bastion-skills_0.1.0_1772489553255_0.6591231108466067","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@aion0/bastion-skills","version":"0.1.1","keywords":["openclaw","openclaw-plugin","bastion","ai-security","dlp","tool-guard"],"author":{"name":"aion0"},"license":"MIT","_id":"@aion0/bastion-skills@0.1.1","maintainers":[{"name":"aion0","email":"aiwatching2024@gmail.com"}],"dist":{"shasum":"a52161b24e2ba2d6e27a09c036b6f5c78a814e25","tarball":"https://registry.npmjs.org/@aion0/bastion-skills/-/bastion-skills-0.1.1.tgz","fileCount":7,"integrity":"sha512-aM+FA56BFcYp0gGJu51kz6aUzw/6s9MNbLKnf6SMd7hKMB5AOGid0/ME6B3Rf+SZbxJuskJz6JJtbFqPAaSojg==","signatures":[{"sig":"MEYCIQC3NaeZlt5BthE0tbdL6y4eMb6ino49x3HHRuWKE2XukAIhAPY+5ckbhu+iJ671zyUSam8BwDrquA0L4KjM9orA3DMo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13144},"main":"index.ts","type":"module","_npmUser":{"name":"aion0","email":"aiwatching2024@gmail.com"},"openclaw":{"extensions":["./index.ts"]},"_npmVersion":"10.9.3","description":"Bastion AI Gateway extension for OpenClaw — DLP scanning, tool guard, and security monitoring","directories":{},"_nodeVersion":"22.20.0","dependencies":{"@aion0/bastion":">=0.1.9"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/bastion-skills_0.1.1_1772501947654_0.7777036962503907","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@aion0/bastion-skills","version":"0.1.2","keywords":["openclaw","openclaw-plugin","bastion","ai-security","dlp","tool-guard"],"author":{"name":"aion0"},"license":"MIT","_id":"@aion0/bastion-skills@0.1.2","maintainers":[{"name":"aion0","email":"aiwatching2024@gmail.com"}],"dist":{"shasum":"a64d906b1e8e2f6eb9666bdfd622c4b2f890277d","tarball":"https://registry.npmjs.org/@aion0/bastion-skills/-/bastion-skills-0.1.2.tgz","fileCount":8,"integrity":"sha512-C2UknenWmtFBbcSS3mhhHN1JhwjQUrDrtH/SLK+I3XMamI5PKaHSkLxFpp9Uy4wTNvnTLxPJr96y/lXb92Lm4A==","signatures":[{"sig":"MEUCID5i/D7PxDBmkoUpSPEiRFupM9ITF6PzA/FBKWs6VYbxAiEAg11psVskSqNrDqwKs/5jnp0XBYaClQNegSXIG8oHl3Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16945},"main":"index.ts","type":"module","gitHead":"99a6d08e341d3fb5a840c245747cbd5e3ba0dc19","_npmUser":{"name":"aion0","email":"aiwatching2024@gmail.com"},"openclaw":{"extensions":["./index.ts"]},"_npmVersion":"10.9.3","description":"Bastion AI Gateway extension for OpenClaw — DLP scanning, tool guard, and security monitoring","directories":{},"_nodeVersion":"22.20.0","dependencies":{"@aion0/bastion":">=0.1.9"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/bastion-skills_0.1.2_1772519507613_0.5251711782714645","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@aion0/bastion-skills","version":"0.1.3","keywords":["openclaw","openclaw-plugin","bastion","ai-security","dlp","tool-guard"],"author":{"name":"aion0"},"license":"MIT","_id":"@aion0/bastion-skills@0.1.3","maintainers":[{"name":"aion0","email":"aiwatching2024@gmail.com"}],"dist":{"shasum":"49da5ccdc607bf86cf7f60d362a13baada76bfbd","tarball":"https://registry.npmjs.org/@aion0/bastion-skills/-/bastion-skills-0.1.3.tgz","fileCount":9,"integrity":"sha512-CjLzbcX1IleJvt29NlGhMuIsqY5XFmshJ6YDKDgTYfqHjlhcFz3Yb33706PrIZIlCFxUay2JHO4RLbX1hbV0Fw==","signatures":[{"sig":"MEYCIQDYg/SI/SN9+ETPLRHwIB6Qss/+tlSKpilAHRUatqWYQgIhAOvdCTmj5nTKR2aBAWjMT8astVO2Y2EJTYA5tlCySpe1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":20905},"main":"index.ts","type":"module","gitHead":"06be19e85ad7d2653c95c14a47776a5461505d35","_npmUser":{"name":"aion0","email":"aiwatching2024@gmail.com"},"openclaw":{"extensions":["./index.ts"]},"_npmVersion":"10.9.3","description":"Bastion AI Gateway extension for OpenClaw — DLP scanning, tool guard, and security monitoring","directories":{},"_nodeVersion":"22.20.0","dependencies":{"@aion0/bastion":">=0.1.9"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/bastion-skills_0.1.3_1772525440556_0.5212572446199464","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@aion0/bastion-skills","version":"0.1.4","keywords":["openclaw","openclaw-plugin","bastion","ai-security","dlp","tool-guard"],"author":{"name":"aion0"},"license":"MIT","_id":"@aion0/bastion-skills@0.1.4","maintainers":[{"name":"aion0","email":"aiwatching2024@gmail.com"}],"dist":{"shasum":"cfb0aaa9746aaa7fba0140b4c6a08bde6c8f6b08","tarball":"https://registry.npmjs.org/@aion0/bastion-skills/-/bastion-skills-0.1.4.tgz","fileCount":9,"integrity":"sha512-W62JjN1FEO6+/aRmqthPIL+sU9VNQhZ9xhsm9X8xiZ24/gJZ3YvZSzVX86J0oihQBbqOUJLLx8yJS3s6EdSSoA==","signatures":[{"sig":"MEUCIQDXcDQbbx1O/W5k2cPU5aBa7EQgKgvZQOP+ttJjLc/BFQIgExGNTLObBM0WVjucGZ34NI9bwmFrxWe5O+feShmuoz4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25294},"main":"index.ts","type":"module","gitHead":"298a51d9b4561ddf8e93137d6a8fa02fa90555aa","_npmUser":{"name":"aion0","email":"aiwatching2024@gmail.com"},"openclaw":{"extensions":["./index.ts"]},"_npmVersion":"10.9.3","description":"Bastion AI Gateway extension for OpenClaw — DLP scanning, tool guard, and security monitoring","directories":{},"_nodeVersion":"22.20.0","dependencies":{"@aion0/bastion":">=0.1.9"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/bastion-skills_0.1.4_1772528123992_0.22225115872000134","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@aion0/bastion-skills","version":"0.1.5","description":"Bastion AI Gateway extension for OpenClaw — DLP scanning, tool guard, and security monitoring","type":"module","main":"index.ts","openclaw":{"extensions":["./index.ts"]},"keywords":["openclaw","openclaw-plugin","bastion","ai-security","dlp","tool-guard"],"author":{"name":"aion0"},"license":"MIT","publishConfig":{"access":"public"},"dependencies":{"@aion0/bastion":">=0.1.9"},"_id":"@aion0/bastion-skills@0.1.5","gitHead":"615017ea8d7ab8d16a3da6d26f9dea4201f5b9fe","_nodeVersion":"22.20.0","_npmVersion":"10.9.3","dist":{"integrity":"sha512-XKZl1Wd69Uo8YddKg4C58e1mRip73chexItE3/MX25dKrIWyrHzMceNJbeg7RSCPXt+QM5WjaTcqVuQ4BuVBeA==","shasum":"04daf7ea4ff5c3ec21c1ec948e46652b23b3ab13","tarball":"https://registry.npmjs.org/@aion0/bastion-skills/-/bastion-skills-0.1.5.tgz","fileCount":9,"unpackedSize":29793,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCCZgJ89SBNdi4OjwInTM9KlEetX0Q1J+14ZrHQXan9LAIgSkRDfcgZFAkL5uf606GPEK46cxKXSJa3mCkSbBun34g="}]},"_npmUser":{"name":"aion0","email":"aiwatching2024@gmail.com"},"directories":{},"maintainers":[{"name":"aion0","email":"aiwatching2024@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/bastion-skills_0.1.5_1772770045075_0.2943743993961898"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-02T22:12:33.184Z","modified":"2026-03-06T04:07:25.382Z","0.1.0":"2026-03-02T22:12:33.406Z","0.1.1":"2026-03-03T01:39:07.814Z","0.1.2":"2026-03-03T06:31:47.752Z","0.1.3":"2026-03-03T08:10:40.692Z","0.1.4":"2026-03-03T08:55:24.125Z","0.1.5":"2026-03-06T04:07:25.232Z"},"author":{"name":"aion0"},"license":"MIT","keywords":["openclaw","openclaw-plugin","bastion","ai-security","dlp","tool-guard"],"description":"Bastion AI Gateway extension for OpenClaw — DLP scanning, tool guard, and security monitoring","maintainers":[{"name":"aion0","email":"aiwatching2024@gmail.com"}],"readme":"# Bastion AI Gateway — OpenClaw Skill\n\nLocal-first security gateway for LLM requests. DLP scanning, tool call monitoring, audit logging.\n\n## Setup\n\n### 1. Install skill\n\n```bash\ncp -r skills/bastion ~/.openclaw/skills/bastion\n```\n\n### 2. Enable agent permissions\n\nEdit `~/.openclaw/openclaw.json`:\n\n```jsonc\n{\n  \"tools\": {\n    \"profile\": \"messaging\",\n    \"alsoAllow\": [\"exec\", \"read\"]  // add this line\n  }\n}\n```\n\n> Check `.env` for `OPENCLAW_CONFIG_DIR` to confirm the correct config path.\n\n### 3. Install Bastion in Docker\n\nRun on host:\n\n```bash\nbash ~/.openclaw/skills/bastion/scripts/docker-setup.sh\n```\n\n> Re-run after `docker compose down/up`. Not needed after `docker compose restart`.\n\n### 4. Restart & verify\n\n```bash\ndocker compose restart\n```\n\nOpen a new chat session, ask the agent to check Bastion status.\n\n## How it works\n\n```\nHost                              Docker Container\n─────                             ─────────────────\n~/.openclaw/ ──mount──>  /home/node/.openclaw/\n                                  ├── openclaw.json (config)\n                                  └── skills/bastion/scripts/\n                                       ├── start.mjs   → launches @aion0/bastion\n                                       ├── status.mjs   → health check\n                                       └── docker-setup.sh\n\n                                  /home/node/.bastion/\n                                       └── connection.json (url, authToken, port)\n```\n\n- `docker-setup.sh` installs `@aion0/bastion` via `pnpm add -w` and rebuilds native modules\n- `start.mjs` includes an ESM fallback for Docker — scripts at `~/.openclaw/` can't resolve `/app/node_modules` normally, so it uses `pathToFileURL()` for dynamic import\n- Auth token is persisted to `~/.bastion/connection.json` so agents can read it for API calls\n- Dashboard at `http://127.0.0.1:8420/dashboard`\n\n## Troubleshooting\n\n| Problem | Fix |\n|---------|-----|\n| Agent says \"no exec/read tools\" | Add `alsoAllow` (step 2), restart, **new session** |\n| Config change not working | Check `.env` `OPENCLAW_CONFIG_DIR` — edit that path's `openclaw.json` |\n| `Cannot find @aion0/bastion` | Re-run `docker-setup.sh` (step 3) |\n| API returns 401 | Auth token is in `~/.bastion/connection.json` |\n| Bastion gone after restart | `down/up` destroys packages — re-run step 3 |\n\n## License\n\nMIT\n","readmeFilename":"README.md"}