{ "name": "@flvx/skill-api", "version": "2.1.5", "description": "Skill for AI assistants to operate FLVX panel via REST API. Supports OpenCode, OpenClaw, Claude Code.", "keywords": [ "opencode", "openclaw", "claude-code", "skill", "flvx", "api", "traffic-forwarding", "gost" ], "license": "MIT", "author": "FLVX Team", "files": [ "SKILL.md", "references/**/*" ], "repository": { "type": "git", "url": "git+https://github.com/Sagit-chu/flvx.git", "directory": "skills/flvx-api" }, "bugs": { "url": "https://github.com/Sagit-chu/flvx/issues" }, "homepage": "https://github.com/Sagit-chu/flvx/tree/main/skills/flvx-api#readme", "publishConfig": { "access": "public", "registry": "https://registry.npmjs.org" }, "opencode": { "skill": true, "installTo": "~/.agents/skills/flvx-api" }, "scripts": { "postinstall": "node -e \"const fs=require('fs');const path=require('path');const target=path.join(process.env.HOME,'.agents','skills','flvx-api');const src=process.cwd();try{fs.mkdirSync(path.dirname(target),{recursive:true});if(fs.existsSync(target)||fs.lstatSync(target).isSymbolicLink()){fs.unlinkSync(target)}fs.symlinkSync(src,target);console.log('✓ Installed to',target)}catch(e){console.error('Manual install: ln -s',src,target)}\"", "preuninstall": "node -e \"const target=require('path').join(process.env.HOME,'.agents','skills','flvx-api');try{require('fs').unlinkSync(target);console.log('✓ Removed',target)}catch(e){}\"", "link": "node -e \"const fs=require('fs');const path=require('path');const target=path.join(process.env.HOME,'.agents','skills','flvx-api');const src=process.cwd();try{fs.mkdirSync(path.dirname(target),{recursive:true});if(fs.existsSync(target)||fs.lstatSync(target).isSymbolicLink()){fs.unlinkSync(target)}fs.symlinkSync(src,target);console.log('✓ Linked to',target)}catch(e){console.error(e)}\"", "unlink": "node -e \"const target=require('path').join(process.env.HOME,'.agents','skills','flvx-api');try{require('fs').unlinkSync(target);console.log('✓ Unlinked',target)}catch(e){}\"" } }