{"_id":"@beremaran/opencode-beanie-plugin","_rev":"8-f2c4c9ec112f736704f9a2aa3e7b927c","name":"@beremaran/opencode-beanie-plugin","dist-tags":{"latest":"0.2.1"},"versions":{"0.1.0":{"name":"@beremaran/opencode-beanie-plugin","version":"0.1.0","keywords":["opencode","opencode-plugin","agent-orchestration","subagent","throttle","goals","mcp","skills","provider","openai-compatible"],"author":{"name":"Berke Arslan","email":"berke@beremaran.com"},"license":"MIT","_id":"@beremaran/opencode-beanie-plugin@0.1.0","maintainers":[{"name":"beremaran","email":"beremaran@gmail.com"}],"homepage":"https://github.com/beremaran/opencode-beanie-plugin","bugs":{"url":"https://github.com/beremaran/opencode-beanie-plugin/issues"},"dist":{"shasum":"569801644f5b7f0d9af5dd3c6d9d88ada117b481","tarball":"https://registry.npmjs.org/@beremaran/opencode-beanie-plugin/-/opencode-beanie-plugin-0.1.0.tgz","fileCount":90,"integrity":"sha512-yPncf8iAPwLGzGtPUhzi7N/tR4mKRL8fl95R2e3x3Sj29WxVu1Ea9DbCyFG4afnYrJfOVUpxyHjjvkO1iAraZg==","signatures":[{"sig":"MEUCIFw6c/B+0BZ2Je/zVAT4VUccAW827GaCDbuFmsXtKZ1fAiEApu7cgbXajuBokqwd8APaiqIOMnjLWpSUwQJe/UIq1Mw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":294321},"type":"module","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"699d9198f8df4382d12a8eb11c1e06f49d5de7ef","scripts":{"lint":"biome check src","build":"tsc","check":"tsc --noEmit","format":"biome format --write src","lint:fix":"biome check --write src","format:check":"biome format src","lint:fix-all":"biome check --write --unsafe"},"_npmUser":{"name":"beremaran","email":"beremaran@gmail.com"},"repository":{"url":"git+https://github.com/beremaran/opencode-beanie-plugin.git","type":"git"},"_npmVersion":"11.18.0","description":"Combined OpenCode plugin: agent orchestration, subagent throttling, persistent goals, OpenAI-compatible provider auto-configuration, MCP tool aggregation, and skill discovery.","directories":{},"_nodeVersion":"24.13.0","dependencies":{"@opencode-ai/plugin":"latest","@modelcontextprotocol/client":"^2.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@biomejs/biome":"2.5.8"},"_npmOperationalInternal":{"tmp":"tmp/opencode-beanie-plugin_0.1.0_1786586172486_0.9682498485998985","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@beremaran/opencode-beanie-plugin","version":"0.1.1","keywords":["opencode","opencode-plugin","agent-orchestration","subagent","throttle","goals","mcp","skills","provider","openai-compatible"],"author":{"name":"Berke Arslan","email":"berke@beremaran.com"},"license":"MIT","_id":"@beremaran/opencode-beanie-plugin@0.1.1","maintainers":[{"name":"beremaran","email":"beremaran@gmail.com"}],"homepage":"https://github.com/beremaran/opencode-beanie-plugin","bugs":{"url":"https://github.com/beremaran/opencode-beanie-plugin/issues"},"dist":{"shasum":"0431658d4432b0730a365ed79ca46b18459bb3d6","tarball":"https://registry.npmjs.org/@beremaran/opencode-beanie-plugin/-/opencode-beanie-plugin-0.1.1.tgz","fileCount":90,"integrity":"sha512-Dsyg8UGOg4enY5p40v+OF9doBEuTxBOiit2bc/3WXZjMWAmfekKlhW6vDR1RKJq3mJUiTaZc3KsD+fBIw/x+tw==","signatures":[{"sig":"MEYCIQDDvzsqc4U+uuhJz+vg9u8zNFww2c1aBC8ITDEAHl34RgIhAN2wDaCC7WQ7u609AXLijg4Wt8Aot8Xf2vYLTrmhTvaO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@beremaran%2fopencode-beanie-plugin@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":290075},"type":"module","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"97c6ba1ff4ae45df7d6141e7f7f3d33a9a5918ca","scripts":{"lint":"biome check src","build":"tsc","check":"tsc --noEmit","format":"biome format --write src","lint:fix":"biome check --write src","format:check":"biome format src","lint:fix-all":"biome check --write --unsafe"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:85da294b-340c-4f0d-a300-d0dcf772bc5b"}},"repository":{"url":"git+https://github.com/beremaran/opencode-beanie-plugin.git","type":"git"},"_npmVersion":"11.16.0","description":"Combined OpenCode plugin: agent orchestration, subagent throttling, persistent goals, OpenAI-compatible provider auto-configuration, MCP tool aggregation, and skill discovery.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@opencode-ai/plugin":"latest","@modelcontextprotocol/client":"^2.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@biomejs/biome":"2.5.8"},"_npmOperationalInternal":{"tmp":"tmp/opencode-beanie-plugin_0.1.1_1786587714829_0.24219183996557359","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@beremaran/opencode-beanie-plugin","version":"0.1.2","keywords":["opencode","opencode-plugin","agent-orchestration","subagent","throttle","goals","mcp","skills","provider","openai-compatible"],"author":{"name":"Berke Arslan","email":"berke@beremaran.com"},"license":"MIT","_id":"@beremaran/opencode-beanie-plugin@0.1.2","maintainers":[{"name":"beremaran","email":"beremaran@gmail.com"}],"homepage":"https://github.com/beremaran/opencode-beanie-plugin","bugs":{"url":"https://github.com/beremaran/opencode-beanie-plugin/issues"},"dist":{"shasum":"f4320f59eedcea8c0145a0356380b2bfcf4cedba","tarball":"https://registry.npmjs.org/@beremaran/opencode-beanie-plugin/-/opencode-beanie-plugin-0.1.2.tgz","fileCount":90,"integrity":"sha512-pd5RnvVSy3nfJGOAgjuzbxVmniVzjamyrua6XYX3rNVP9jgOggAfvFnGPdhh6HkgQ3my9DUOJYg2+vr5SimdIA==","signatures":[{"sig":"MEYCIQCgPTXFuWxYn+LH/a9S+QLlzrMjLkmbq5weLSAEpNQBqAIhANOakf+lDXjTscz+79H66E5W8U3lrpALSeLowgBZljWL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@beremaran%2fopencode-beanie-plugin@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":290644},"type":"module","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"3a7be01f9efe846adce6af7747f68679672b2f26","scripts":{"lint":"biome check src","build":"tsc","check":"tsc --noEmit","format":"biome format --write src","lint:fix":"biome check --write src","format:check":"biome format src","lint:fix-all":"biome check --write --unsafe"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:85da294b-340c-4f0d-a300-d0dcf772bc5b"}},"repository":{"url":"git+https://github.com/beremaran/opencode-beanie-plugin.git","type":"git"},"_npmVersion":"11.16.0","description":"Combined OpenCode plugin: agent orchestration, subagent throttling, persistent goals, OpenAI-compatible provider auto-configuration, MCP tool aggregation, and skill discovery.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@opencode-ai/plugin":"latest","@modelcontextprotocol/client":"^2.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@biomejs/biome":"2.5.8"},"_npmOperationalInternal":{"tmp":"tmp/opencode-beanie-plugin_0.1.2_1786588884414_0.8592458315428417","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@beremaran/opencode-beanie-plugin","version":"0.1.3","keywords":["opencode","opencode-plugin","agent-orchestration","subagent","throttle","goals","mcp","skills","provider","openai-compatible"],"author":{"name":"Berke Arslan","email":"berke@beremaran.com"},"license":"MIT","_id":"@beremaran/opencode-beanie-plugin@0.1.3","maintainers":[{"name":"beremaran","email":"beremaran@gmail.com"}],"homepage":"https://github.com/beremaran/opencode-beanie-plugin","bugs":{"url":"https://github.com/beremaran/opencode-beanie-plugin/issues"},"dist":{"shasum":"65dc497ff2dc06a7ad3a5466a70da0becdb33ff8","tarball":"https://registry.npmjs.org/@beremaran/opencode-beanie-plugin/-/opencode-beanie-plugin-0.1.3.tgz","fileCount":90,"integrity":"sha512-jqYO+GQRBlz8Qm60DCLx+cLBdwJiCvVTC0KmlPPTdDXZLzX1F/RBzOIkKHpOpuVmOJdvNGowofn749okbuBrDg==","signatures":[{"sig":"MEUCIDbglwH+8msgHpxjptIhd9XOBTB5UKhFbfvLCHktVoX1AiEApDf92Knr+/DGbVAe/acgcGbxrg/HKpRyPczFhuKeR4E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@beremaran%2fopencode-beanie-plugin@0.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":302927},"type":"module","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"91aad0f48a0c417d822a96de924871499abcdede","scripts":{"lint":"biome check src","build":"tsc","check":"tsc --noEmit","format":"biome format --write src","lint:fix":"biome check --write src","format:check":"biome format src","lint:fix-all":"biome check --write --unsafe"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:85da294b-340c-4f0d-a300-d0dcf772bc5b"}},"repository":{"url":"git+https://github.com/beremaran/opencode-beanie-plugin.git","type":"git"},"_npmVersion":"11.16.0","description":"Combined OpenCode plugin: agent orchestration, subagent throttling, persistent goals, OpenAI-compatible provider auto-configuration, MCP tool aggregation, and skill discovery.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@opencode-ai/plugin":"latest","@modelcontextprotocol/client":"^2.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@biomejs/biome":"2.5.8"},"_npmOperationalInternal":{"tmp":"tmp/opencode-beanie-plugin_0.1.3_1786591903602_0.30879032414563445","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@beremaran/opencode-beanie-plugin","version":"0.1.4","keywords":["opencode","opencode-plugin","agent-orchestration","subagent","throttle","goals","mcp","skills","provider","openai-compatible"],"author":{"name":"Berke Arslan","email":"berke@beremaran.com"},"license":"MIT","_id":"@beremaran/opencode-beanie-plugin@0.1.4","maintainers":[{"name":"beremaran","email":"beremaran@gmail.com"}],"homepage":"https://github.com/beremaran/opencode-beanie-plugin","bugs":{"url":"https://github.com/beremaran/opencode-beanie-plugin/issues"},"dist":{"shasum":"48265619a6d98333e060b68d38d38f7a0f470916","tarball":"https://registry.npmjs.org/@beremaran/opencode-beanie-plugin/-/opencode-beanie-plugin-0.1.4.tgz","fileCount":90,"integrity":"sha512-gsdoCU7XoPqnTW9Pm2/13EJFch1mph4kUWPsMjd5X2Pec+t4wEkz4jl1XEHZlI5Zz12VwIOnaMBj4ec04bq0aA==","signatures":[{"sig":"MEUCIBN7N66oWf0Ks75hchhPeFVD5GU3Z3Nl89GAlMC5pp3SAiEAmfyY3PNNUFi2lQrk7GRt0AY5jyj3EWDwJebrzdPpAww=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@beremaran%2fopencode-beanie-plugin@0.1.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":303653},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./server":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"7af9867943545f3dd67979d31d85a5845932c370","scripts":{"lint":"biome check src","build":"tsc","check":"tsc --noEmit","format":"biome format --write src","lint:fix":"biome check --write src","format:check":"biome format src","lint:fix-all":"biome check --write --unsafe"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:85da294b-340c-4f0d-a300-d0dcf772bc5b"}},"repository":{"url":"git+https://github.com/beremaran/opencode-beanie-plugin.git","type":"git"},"_npmVersion":"11.17.0","description":"Combined OpenCode plugin: agent orchestration, subagent throttling, persistent goals, OpenAI-compatible provider auto-configuration, MCP tool aggregation, and skill discovery.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@opencode-ai/plugin":"latest","@modelcontextprotocol/client":"^2.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@biomejs/biome":"2.5.8"},"_npmOperationalInternal":{"tmp":"tmp/opencode-beanie-plugin_0.1.4_1786592921992_0.8984696011973499","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@beremaran/opencode-beanie-plugin","version":"0.1.5","keywords":["opencode","opencode-plugin","agent-orchestration","subagent","throttle","goals","mcp","skills","provider","openai-compatible"],"author":{"name":"Berke Arslan","email":"berke@beremaran.com"},"license":"MIT","_id":"@beremaran/opencode-beanie-plugin@0.1.5","maintainers":[{"name":"beremaran","email":"beremaran@gmail.com"}],"homepage":"https://github.com/beremaran/opencode-beanie-plugin","bugs":{"url":"https://github.com/beremaran/opencode-beanie-plugin/issues"},"dist":{"shasum":"b734c1317045847e232b4bd0be1a749d966ae905","tarball":"https://registry.npmjs.org/@beremaran/opencode-beanie-plugin/-/opencode-beanie-plugin-0.1.5.tgz","fileCount":100,"integrity":"sha512-oU52xwmKSCqjfwPLZXcmRNw4gjPrh3x5SwuRyrHMRq11BO0LdAWjuvKciiRC9LxwvQeAOx9hSeAji2NwQBAb0g==","signatures":[{"sig":"MEYCIQCiN9jBrndHvez7WWjJYQIOm+y4SsunAsXG8B/TE2C1ygIhAPs6AI/AvUD0d3/LZ83hqIDrH2X6qS8AuLSReNoeSX8e","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@beremaran%2fopencode-beanie-plugin@0.1.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":334183},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./server":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"7b742444affdb8c9daa5c668b6542b1096a72d96","scripts":{"lint":"biome check src","build":"tsc","check":"tsc --noEmit","format":"biome format --write src","lint:fix":"biome check --write src","format:check":"biome format src","lint:fix-all":"biome check --write --unsafe"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:85da294b-340c-4f0d-a300-d0dcf772bc5b"}},"repository":{"url":"git+https://github.com/beremaran/opencode-beanie-plugin.git","type":"git"},"_npmVersion":"11.17.0","description":"Combined OpenCode plugin: agent orchestration, subagent throttling, persistent goals, OpenAI-compatible provider auto-configuration, MCP tool aggregation, and skill discovery.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@opencode-ai/plugin":"latest","@modelcontextprotocol/client":"^2.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@biomejs/biome":"2.5.8"},"_npmOperationalInternal":{"tmp":"tmp/opencode-beanie-plugin_0.1.5_1786603616530_0.8006149204931188","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@beremaran/opencode-beanie-plugin","version":"0.2.0","keywords":["opencode","opencode-plugin","agent-orchestration","subagent","throttle","goals","mcp","skills","provider","openai-compatible"],"author":{"name":"Berke Arslan","email":"berke@beremaran.com"},"license":"MIT","_id":"@beremaran/opencode-beanie-plugin@0.2.0","maintainers":[{"name":"beremaran","email":"beremaran@gmail.com"}],"homepage":"https://github.com/beremaran/opencode-beanie-plugin","bugs":{"url":"https://github.com/beremaran/opencode-beanie-plugin/issues"},"dist":{"shasum":"56db01838e134e84cd8cd489c32b5e73198ca159","tarball":"https://registry.npmjs.org/@beremaran/opencode-beanie-plugin/-/opencode-beanie-plugin-0.2.0.tgz","fileCount":122,"integrity":"sha512-qowrPnpbG1tjU3cswas4jiKF+XLcerjALFQK1E3lbJHUq3Jt84HHUoG+EakisykztwufXM/yth7BJiJIpX13oA==","signatures":[{"sig":"MEUCIG90iK3FAyw1UUT647m/CP9rw/dyyrSs8mnBTTeLU30lAiEAng3rHPovBdGBwnPn6+68IMtyqyKZm0CNIYrAxbJ/of8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@beremaran%2fopencode-beanie-plugin@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":366272},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./tui":{"types":"./dist/tui.d.ts","import":"./dist/tui.js"},"./server":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"64db6b2612a02816e770af27927f3bc7316d9663","scripts":{"lint":"biome check src","build":"tsc","check":"tsc --noEmit","format":"biome format --write src","lint:fix":"biome check --write src","format:check":"biome format src","lint:fix-all":"biome check --write --unsafe"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:85da294b-340c-4f0d-a300-d0dcf772bc5b"}},"repository":{"url":"git+https://github.com/beremaran/opencode-beanie-plugin.git","type":"git"},"_npmVersion":"11.17.0","description":"Combined OpenCode plugin: agent orchestration, subagent throttling, persistent goals, OpenAI-compatible provider auto-configuration, MCP tool aggregation, and skill discovery.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"solid-js":"1.9.12","@opentui/solid":"0.4.5","@opencode-ai/plugin":"1.18.16","@modelcontextprotocol/client":"^2.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@biomejs/biome":"2.5.8"},"_npmOperationalInternal":{"tmp":"tmp/opencode-beanie-plugin_0.2.0_1786612750794_0.6473109295332309","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@beremaran/opencode-beanie-plugin","version":"0.2.1","description":"Combined OpenCode plugin: agent orchestration, subagent throttling, persistent goals, OpenAI-compatible provider auto-configuration, MCP tool aggregation, and skill discovery.","license":"MIT","author":{"name":"Berke Arslan","email":"berke@beremaran.com"},"repository":{"type":"git","url":"git+https://github.com/beremaran/opencode-beanie-plugin.git"},"homepage":"https://github.com/beremaran/opencode-beanie-plugin","bugs":{"url":"https://github.com/beremaran/opencode-beanie-plugin/issues"},"keywords":["opencode","opencode-plugin","agent-orchestration","subagent","throttle","goals","mcp","skills","provider","openai-compatible"],"engines":{"node":">=18"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./server":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./tui":{"types":"./dist/tui.d.ts","import":"./dist/tui.js"}},"scripts":{"build":"tsc","check":"tsc --noEmit","lint":"biome check src","lint:fix":"biome check --write src","lint:fix-all":"biome check --write --unsafe","format":"biome format --write src","format:check":"biome format src"},"dependencies":{"@modelcontextprotocol/client":"^2.0.0","@opencode-ai/plugin":"1.18.16","@opentui/solid":"0.4.5","solid-js":"1.9.12"},"devDependencies":{"@biomejs/biome":"2.5.8","typescript":"^5.0.0"},"gitHead":"f9f05422a141bbedca81e4fa8e200438ccd8f6a5","_id":"@beremaran/opencode-beanie-plugin@0.2.1","_nodeVersion":"24.18.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-uVDJdMU3sxg94rAglmRxZ4sRZ3iztLPaEB32kw3WMJGTmY277Ga5eqtvdOpSbiKdNJQMKmdfMLK0atBGNs+7mw==","shasum":"210708b6723eb669e2c8abc6efda38879527ad81","tarball":"https://registry.npmjs.org/@beremaran/opencode-beanie-plugin/-/opencode-beanie-plugin-0.2.1.tgz","fileCount":122,"unpackedSize":370182,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@beremaran%2fopencode-beanie-plugin@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHdTDghH+k8Ac2OGJi8EyNEeKyvUAN/c1qNon7KrK5OkAiBhlEbTYoHH5cn83yai0rw7Y8qGHDz+i7hnW76BWVdtAw=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:85da294b-340c-4f0d-a300-d0dcf772bc5b"}},"directories":{},"maintainers":[{"name":"beremaran","email":"beremaran@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/opencode-beanie-plugin_0.2.1_1786617256440_0.7358034205211759"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-13T01:56:12.181Z","modified":"2026-08-13T10:34:17.061Z","0.1.0":"2026-08-13T01:56:12.666Z","0.1.1":"2026-08-13T02:21:54.998Z","0.1.2":"2026-08-13T02:41:24.576Z","0.1.3":"2026-08-13T03:31:43.777Z","0.1.4":"2026-08-13T03:48:42.174Z","0.1.5":"2026-08-13T06:46:56.682Z","0.2.0":"2026-08-13T09:19:10.956Z","0.2.1":"2026-08-13T10:34:16.593Z"},"bugs":{"url":"https://github.com/beremaran/opencode-beanie-plugin/issues"},"author":{"name":"Berke Arslan","email":"berke@beremaran.com"},"license":"MIT","homepage":"https://github.com/beremaran/opencode-beanie-plugin","keywords":["opencode","opencode-plugin","agent-orchestration","subagent","throttle","goals","mcp","skills","provider","openai-compatible"],"repository":{"type":"git","url":"git+https://github.com/beremaran/opencode-beanie-plugin.git"},"description":"Combined OpenCode plugin: agent orchestration, subagent throttling, persistent goals, OpenAI-compatible provider auto-configuration, MCP tool aggregation, and skill discovery.","maintainers":[{"name":"beremaran","email":"beremaran@gmail.com"}],"readme":"# opencode-beanie-plugin\n\nA batteries-included plugin for [OpenCode](https://opencode.ai) that merges eight productivity features into a single package: agent orchestration, subagent throttling, persistent goals, OpenAI-compatible provider auto-configuration, MCP tool aggregation, skill discovery, tool-usage directives, and self-configuration. It also includes an optional TUI companion.\n\nThis plugin consolidates six previously separate projects — [mcp-skillbox](https://github.com/beremaran/mcp-skillbox), [agent-toolbox](https://github.com/beremaran/agent-toolbox), [opencode-subagent-throttle](https://github.com/beremaran/opencode-subagent-throttle), [opencode-agent-tree](https://github.com/beremaran/opencode-agent-tree), [opencode-openai-compatible-auto-configure](https://github.com/beremaran/opencode-openai-compatible-auto-configure), and [opencode-goal](https://github.com/beremaran/opencode-goal) — into one composable, configurable plugin.\n\n## Features\n\n| Feature | What it does |\n| --- | --- |\n| **Orchestrator** | Turns the main agent into an orchestrator that decomposes requests into small, verifiable subtasks and delegates them via the `task` tool to routed subagents (`explore`/`general`), with per-level models and an optional multi-level delegation chain. |\n| **Throttle** | Limits how many `task` invocations run in parallel (default 2), queues the rest, and releases them as sessions go idle. |\n| **Goal** | Persistent, independently evaluated goals. Set an objective with `/goal`; after every turn an evaluator model decides whether it's complete, and the plugin auto-continues, budget-limits, or reports completion. |\n| **Providers** | Auto-configures OpenAI-compatible providers (baseURL, apiKey, headers, model fetching) into OpenCode via `/add-provider` and `/providers`, with sources defined inline in the plugin config. |\n| **Toolbox** | Aggregates tools from configured MCP servers (stdio and HTTP) behind three tools: `list_tools`, `get_tool_schema`, `invoke_tool`. |\n| **Skillbox** | Discovers agent skills from the skills.sh API or public GitHub repositories and exposes `list_skills`, `search_skills`, and `load_skill`. |\n| **Directives** | Injects system-prompt guidance about the plugin's own tools and mechanisms, and appends \"when to use\" notes to their descriptions. |\n| **Configurator** | Self-configuration: `/beanie status\\|validate\\|apply\\|init` plus the `configure_plugin` tool inspect, validate, and write the plugin's options directly into `opencode.json`. |\n| **TUI companion** | Adds a Beanie dashboard route, command-palette actions (`/beanie-dashboard` and `/beanie-dashboard-refresh`), a `<leader>d` shortcut, a session status strip, goal controls with confirmation before clearing, and attention notifications for unhealthy MCP/LSP services, session errors, and completed child sessions. |\n\n## Requirements\n\n- Node.js 18+ (NodeNext ESM)\n- OpenCode with plugin support\n\n## Installation\n\nBuild and register the plugin in your project's `opencode.json`:\n\n```json\n{\n  \"$schema\": \"https://opencode.ai/config.json\",\n  \"plugin\": [\"@beremaran/opencode-beanie-plugin\"]\n}\n```\n\nThe server plugin and TUI companion are registered separately. The current OpenCode TUI configuration uses a separate `tui.json` (or `tui.jsonc`) file with the same top-level `plugin` key; do not add a `tui.plugin` key to `opencode.json`:\n\n```json\n{\n  \"$schema\": \"https://opencode.ai/tui.json\",\n  \"plugin\": [\"@beremaran/opencode-beanie-plugin/tui\"]\n}\n```\n\nWhen developing locally, register both built exports separately:\n\n`opencode.json`:\n\n```json\n{\n  \"$schema\": \"https://opencode.ai/config.json\",\n  \"plugin\": [\"file:/path/to/opencode-beanie-plugin/dist/index.js\"]\n}\n```\n\n`tui.json`:\n\n```json\n{\n  \"$schema\": \"https://opencode.ai/tui.json\",\n  \"plugin\": [\"file:/path/to/opencode-beanie-plugin/dist/tui.js\"]\n}\n```\n\nThe only option that is strictly required is the orchestrator's subagent model. If `orchestrator.subagentModel` is missing, the plugin refuses to start. After installing, run `/beanie init` in OpenCode for a guided, interactive setup.\n\n## Quick start\n\n```json\n{\n  \"$schema\": \"https://opencode.ai/config.json\",\n  \"plugin\": [\n    [\n      \"@beremaran/opencode-beanie-plugin\",\n      {\n        \"orchestrator\": { \"subagentModel\": \"anthropic/claude-sonnet-4-6\" },\n        \"throttle\": { \"maxParallel\": 3 },\n        \"goal\": { \"defaultTokenBudget\": 100000, \"defaultMaxTurns\": 20 }\n      }\n    ]\n  ]\n}\n```\n\nConfiguration is read from the plugin tuple's options object. Feature names are **camelCase** (matching the schema); the JSON schema itself uses kebab-case for property names like `per_page`.\n\n> Restart OpenCode after changing plugin options for changes to take effect.\n\nRestart OpenCode after changing either plugin registration or options. TUI plugin changes are loaded when the TUI starts; close and reopen the TUI to reload them. The companion reads server state through the public TUI APIs, so the current goal is not shown live in the dashboard or status strip when OpenCode does not expose a public goal-state bridge; use `/goal status` for the authoritative goal state.\n\n## Configuration reference\n\nAll options are optional per feature; only `orchestrator.subagentModel` is required. The complete schema is exposed by `configure_plugin` with action `schema`, or via `/beanie validate`.\n\n### Orchestrator\n\n| Option | Type | Default | Description |\n| --- | --- | --- | --- |\n| `subagentModel` | `string` | *required* | Model id used for every routed subagent, e.g. `\"anthropic/claude-sonnet-4-6\"`. |\n| `orchestratorModel` | `string` | — | Model used for the orchestrator agent(s). Falls back to OpenCode's default model. |\n| `orchestratorAgent` | `string` | `\"Manager\"` | Name of the top-level orchestrator agent. |\n| `orchestratorDepth` | `integer` | `1` | Number of orchestrator levels; level 1 is the primary agent, deeper levels are subagents (`<agent>-2`, ...). |\n| `orchestratorModels` | `string[]` | — | Per-level orchestrator models; length must not exceed `orchestratorDepth`. |\n| `agents` | `string[]` | built-ins + existing | Explicit list of subagents the orchestrator is allowed to delegate to. |\n| `agentModels` | `object` | — | Per-agent model overrides, e.g. `{ \"general\": \"anthropic/claude-sonnet-4-6\" }`. |\n| `instructions` | `string` | — | Extra instructions appended to the orchestrator's prompt. |\n| `blockedTools` | `string[]` | `[\"edit\", \"bash\"]` | Hands-on tools denied to orchestrator agents so they only plan and delegate. |\n| `restrictTask` | `boolean` | `false` | Restrict the final orchestrator's `task` tool to the routed subagents only. |\n\n### Throttle\n\n| Option | Type | Default | Description |\n| --- | --- | --- | --- |\n| `maxParallel` | `integer` | `2` | Maximum number of `task` calls running at once. |\n| `mode` | `\"session\" \\| \"global\"` | `\"session\"` | Scope of the parallel limit: per session or across all sessions. |\n| `maxWaitMs` | `number` | `3600000` | Max time a queued task waits before being dropped. |\n| `notifyQueue` | `boolean` | `false` | Post progress messages to the session when tasks are queued/started. |\n\n### Goal\n\n| Option | Type | Default | Description |\n| --- | --- | --- | --- |\n| `evaluatorModel` | `string` | — | Model used for independent completion evaluation. Defaults to the session's model. |\n| `evaluatorAgent` | `string` | — | Agent used for the evaluator session. |\n| `stateDirectory` | `string` | XDG state dir | Directory where goal state JSON files are stored. |\n| `maxTranscriptChars` | `integer` | `48000` | Max transcript characters sent to the evaluator per turn. |\n| `defaultTokenBudget` | `integer` | — | Default token budget applied to new goals. |\n| `defaultMaxTurns` | `integer` | — | Default turn budget applied to new goals. |\n| `continuationDelayMs` | `integer` | `0` | Delay before the plugin auto-continues an active goal. |\n| `deleteEvaluatorSessions` | `boolean` | `true` | Delete the temporary evaluator session after each evaluation. |\n\n### Providers\n\n| Option | Type | Default | Description |\n| --- | --- | --- | --- |\n| `providers` | `array` | — | Static provider sources defined inline (see below). |\n| `model` | `string` | — | Set `config.model` (default model) to this id. |\n| `smallModel` | `string` | — | Set `config.small_model` to this id. |\n| `timeout` | `integer` | `10000` | Model-fetch timeout in milliseconds. |\n| `npm` | `string` | `@ai-sdk/openai-compatible` | npm package used for the provider. |\n| `env` | `boolean` | `true` | Allow `${VAR}` interpolation of apiKey/headers/baseURL from environment variables. |\n\nPer-provider source options (`providers` array entries):\n\n| Option | Type | Default | Description |\n| --- | --- | --- | --- |\n| `id` | `string` | — | Provider id (also used as the config key). |\n| `name` | `string` | — | Display name. |\n| `baseURL` | `string` | — | OpenAI-compatible base URL, e.g. `http://localhost:11434/v1`. |\n| `apiKey` | `string` | — | Bearer token (supports `${VAR}` interpolation). |\n| `headers` | `object` | — | Extra headers sent with model fetch requests. |\n| `npm` | `string` | `@ai-sdk/openai-compatible` | npm package used for this provider. |\n| `kind` | `\"auto\" \\| \"openai\" \\| \"ollama\" \\| \"unsloth\" \\| \"lmstudio\"` | `\"auto\"` | Server protocol used to discover model limits (see below). |\n| `modelsURL` | `string` | `<baseURL>/models` | Override the model list URL (OpenAI-compatible shape). |\n| `fetchModels` | `boolean` | `true` | Fetch the model list at startup. |\n| `staticModels` | `object` | — | Explicit model entries (name/limit/capabilities) merged with discovered ones. |\n| `overrides` | `object` | — | Per-model overrides, highest precedence. |\n| `include` / `exclude` | `string[]` | — | Glob filters over discovered model ids. |\n| `defaultLimit` | `object` | — | Context/output fallback for models the server/inference doesn't cover. |\n| `env` | `boolean` | `true` | Allow `${VAR}` interpolation for this source. |\n| `timeout` | `integer` | `10000` | Fetch timeout in milliseconds. |\n\n```json\n{\n  \"id\": \"my-ollama\",\n  \"name\": \"Local Ollama\",\n  \"baseURL\": \"http://localhost:11434/v1\",\n  \"kind\": \"ollama\",\n  \"apiKey\": \"${OLLAMA_KEY}\",\n  \"headers\": { \"X-Custom\": \"value\" },\n  \"fetchModels\": true,\n  \"defaultLimit\": { \"context\": 64000, \"output\": 8192 },\n  \"include\": [\"my-model-*\"],\n  \"exclude\": [\"test-*\"],\n  \"env\": true\n}\n```\n\nThe OpenAI-compatible `/v1/models` spec has no context-window field, so the plugin discovers limits per `kind`:\n\n| `kind` | Model source | Context detection |\n| --- | --- | --- |\n| `openai` / `auto` | `<modelsURL>` or `<baseURL>/models` | Fields embedded in the listing (`context_length`, `max_context_length`, `n_ctx`, `context_window`, `input_token_limit`, …); output via `max_output_tokens`, `max_tokens`, `output_token_limit`, … |\n| `ollama` | `<baseURL>/api/tags` | Ollama's `context_length` field per model |\n| `unsloth` | `<baseURL>/models` + per-model `/api/models/gguf-variants?repo_id=…` | The GGUF's real `context_length` |\n| `lmstudio` | `<baseURL>/api/v0/models` | LM Studio's native `max_context_length` (embedding models are filtered out) |\n\nWhen neither the server nor `defaultLimit` provides a context window, the plugin falls back to a curated model-family table (Qwen 3.5/3.6 → 256k, Qwen 3 → 128k, DeepSeek → 128k, Llama 3.1+ → 128k, etc.). OpenCode requires both `context` and `output` per model and disables auto-compaction when the context is unknown, so the plugin always writes a complete `limit`: a missing output defaults to half the context (capped at 32000), a missing context to 128000. Precedence: detected API value > `defaultLimit` > name-based inference.\n\nVision-capable models are marked automatically so OpenCode accepts image attachments: `attachment: true` plus `modalities: { \"input\": [\"text\", \"image\"] }` (this is what actually enables sending images). Sources: Unsloth's `has_vision`, LM Studio's `type: \"vlm\"`, Ollama's `capabilities`, or embedded `has_vision`/`modalities`/`input_modalities` fields. Set `attachment: false` in `overrides` to force a text-only model, or `modalities` to fine-tune input support.\n\n### Skillbox\n\n| Option | Type | Default | Description |\n| --- | --- | --- | --- |\n| `registry` | `\"auto\" \\| \"skills-sh\" \\| \"github\"` | `\"auto\"` | Registry backend. `auto` uses skills.sh when a token is present, otherwise GitHub. |\n| `skillsShToken` | `string` | env `SKILLS_SH_TOKEN` | Token for the skills.sh API. |\n| `githubSources` | `string[]` | 7 curated repos | GitHub `owner/repo` skill sources. |\n| `githubToken` | `string` | env `GITHUB_TOKEN` | Token for private/high-rate GitHub access. |\n| `maxBytes` | `integer` | — | Byte budget for `load_skill` payloads; overflow is truncated with a marker. |\n| `debug` | `boolean` | env `SKILL_DEBUG` | Emit debug logs to OpenCode. |\n\nDefaults for `githubSources`: `vercel-labs/skills`, `anthropics/skills`, `obra/superpowers`, `mattpocock/skills`, `microsoft/azure-skills`, `supabase/agent-skills`, `prisma/skills`.\n\n### Toolbox\n\n| Option | Type | Default | Description |\n| --- | --- | --- | --- |\n| `config` | `object` | — | Inline config object with `mcpServers` (and optional tuning keys, see below). External JSON config files are not supported. |\n| `servers` | `object` | — | Inline MCP server map (merged with `config`). |\n\nAn MCP server can be stdio or HTTP:\n\n```json\n{\n  \"servers\": {\n    \"playwright\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@playwright/mcp@latest\"],\n      \"env\": { \"HOME\": \"/home/user\" },\n      \"cwd\": \"/path/to/project\",\n      \"timeout\": 30,\n      \"toolFilter\": [\"browser_*\"],\n      \"tags\": [\"web\"],\n      \"disabled\": false\n    },\n    \"remote\": {\n      \"url\": \"https://mcp.example.com/mcp\",\n      \"headers\": { \"Authorization\": \"Bearer ${TOKEN}\" },\n      \"transportType\": \"streamable-http\"\n    }\n  }\n}\n```\n\nInline config options also accept `searchTopK` (default 20), `cacheToolMetadata` (default `true`), `processPoolSize` (default 8), `timeoutSeconds` (default 30), and `idleTimeoutMs` (default 300000).\n\n`list_tools` connects servers whose metadata is not loaded yet on the default path (rows marked `[stale]` otherwise), so it reflects reality on a cold session. Pass `refresh: true` to force a reconnect and reload of tool metadata, or `refresh: false` to use only already-loaded metadata.\n\n### Directives\n\n| Option | Type | Default | Description |\n| --- | --- | --- | --- |\n| `defaults` | `boolean` | `true` | Inject the default plugin-capabilities system directive. |\n| `system` | `string[]` | `[]` | Extra system prompt lines appended verbatim. |\n| `tools` | `object` | `{}` | Extra \"when to use\" guidance appended to specific tool descriptions. |\n| `mechanisms` | `string[]` | all | Which mechanism notes to include in the system directive: `goal`, `orchestrator`, `throttle`, `skillbox`, `toolbox`, `providers`, `configurator`. |\n\n## Slash commands\n\n| Command | Description |\n| --- | --- |\n| `/beanie` | Show current effective configuration and validation. |\n| `/beanie status` | Same as above. |\n| `/beanie help` | Show usage help. |\n| `/beanie validate [json]` | Validate the current config, or a JSON object of options. |\n| `/beanie apply <json>` | Validate and write options to `opencode.json`. |\n| `/beanie init` | Guided setup: the agent walks through each feature and writes the config. |\n| `/goal <condition>` | Set a persistent goal, e.g. `/goal --tokens 100k --max-turns 20 Fix the failing checkout tests`. |\n| `/goal status` | Show the current goal's status, budgets, and latest evaluation. |\n| `/goal pause` / `/goal resume` / `/goal clear` | Pause, resume, or clear the session goal. |\n| `/add-provider <id> <baseURL> [apiKey] [--name \"...\" --kind auto\\|openai\\|ollama\\|unsloth\\|lmstudio --context N --output N --no-fetch]` | Add or update an OpenAI-compatible provider by writing it into the plugin's `providers` option in `opencode.json`. |\n| `/providers` | List configured providers with live model counts. |\n\n`/goal` supports `--tokens` (plain integers or `k`/`m` suffixes) and `--max-turns` before the objective.\n\n## Tools\n\n| Tool | Feature | Description |\n| --- | --- | --- |\n| `get_goal` | Goal | Read the active goal's status, budgets, usage, and last evaluator reason. |\n| `update_goal` | Goal | Claim the goal complete (for independent verification) or blocked (after ≥3 recurring turns of the same blocker). |\n| `list_skills` | Skillbox | Browse skills from the registry with pagination and views (`all-time`, `trending`, `hot`). |\n| `search_skills` | Skillbox | Keyword search across the registry. |\n| `load_skill` | Skillbox | Load a skill's full `SKILL.md` and optional supporting files, byte-budgeted. |\n| `list_tools` | Toolbox | List or search aggregated MCP tools; auto-connects idle servers on the default path (`refresh: true` forces a reload, `refresh: false` uses the cache only). |\n| `get_tool_schema` | Toolbox | Fetch the full JSON Schema for one upstream tool. |\n| `invoke_tool` | Toolbox | Invoke one upstream tool and serialize the result faithfully. |\n| `configure_plugin` | Configurator | `status`/`schema`/`validate`/`apply` the plugin's options in `opencode.json`. |\n\n## How goals work\n\n1. `/goal <objective>` persists a goal keyed to the session (state stored under the XDG state directory, scoped by project and directory).\n2. While a goal is `active`, every session turn triggers an independent evaluator call that judges completion against evidence in the transcript.\n3. If incomplete and under budget, the plugin auto-continues with a continuation prompt. `completionClaim`s made via `update_goal` are verified by the evaluator.\n4. Goals stop at completion, pause (interruption/error), `blocked` (after ≥3 turns of the same blocker), or budget/turn limits — the last case produces a concise handoff.\n\nTo avoid surprises, set `goal.evaluatorModel` and budgets (`defaultTokenBudget`, `defaultMaxTurns`) so evaluation cost and runtime stay bounded.\n\n## Development\n\n```sh\nnpm install\nnpm run check   # tsc --noEmit — the verification gate\nnpm run lint    # biome check src\nnpm run build   # tsc emitting to dist/ (required before loading the plugin)\n```\n\n- `dist/` is gitignored build output; it is never edited by hand.\n- Relative imports must use explicit `.js` extensions (NodeNext).\n- There is no `@types/node`; each feature ships a hand-written `node-shims.d.ts` for the Node APIs it uses. Extend the local shim if more APIs are needed — do not add `@types/node`.\n- To add a feature, create `src/features/<name>/index.ts` exporting a `Plugin`, and register it in the `features` record in `src/index.ts` (feature options are read from `options.<featureName>`).\n- `@opencode-ai/plugin` is pinned to `1.18.16`; reconcile features when hooks/types change upstream.\n\n## Contributing\n\nBug reports, feature ideas, and pull requests are welcome. Please open an issue first for non-trivial changes so the direction is agreed before the work begins. Ensure `npm run check` and `npm run lint` pass on your changes.\n\n## Releasing\n\nReleases are published to npm automatically by the [Publish to npm](.github/workflows/publish.yml) GitHub Actions workflow:\n\n1. Bump the `version` in `package.json` (keep [SemVer](https://semver.org) and add a matching entry to `CHANGELOG.md`).\n2. Commit the change and push it to `main`.\n3. Tag the release with the same version, e.g. `git tag v0.2.0 && git push origin v0.2.0`.\n\nThe workflow type-checks, builds, verifies the tag matches the `package.json` version, then runs `npm publish --provenance --access public` using npm's trusted publishing (OIDC), so no token secret is needed. Set it up once in your npm account:\n\n1. Go to [npmjs.com](https://www.npmjs.com) → *Account Settings* → *Access Tokens* → *Add Publisher* (or under the package's *Access* tab).\n2. Enter the GitHub repo (`beremaran/opencode-beanie-plugin`) and the environment name `npm-publish` (this must match the `environment` in the workflow).\n3. Create the `npm-publish` environment in GitHub: *Settings* → *Environments*, optionally with a protection rule so publishing is gated.\n\nThe workflow must be run from a matching release tag; manually dispatching it from a branch fails tag verification.\n\n## License\n\n[MIT](LICENSE)\n","readmeFilename":"README.md"}