{"_id":"@best-agent/extensions","_rev":"3-740e911154eafc4917240ca1d62ebc98","name":"@best-agent/extensions","dist-tags":{"latest":"0.0.2-beta.8","beta":"0.0.2-beta.2"},"versions":{"0.0.1-beta.1":{"name":"@best-agent/extensions","version":"0.0.1-beta.1","_id":"@best-agent/extensions@0.0.1-beta.1","maintainers":[{"name":"simon_he","email":"13917107469@163.com"}],"dist":{"shasum":"464e9e36cb7e08f407edf9b6c348464e89402d5e","tarball":"https://registry.npmjs.org/@best-agent/extensions/-/extensions-0.0.1-beta.1.tgz","fileCount":10,"integrity":"sha512-tYZeqcXAgFvxhypeEPoA6v10GYICfCHoq/GaUCz1x484LjchWfpH0Irn3SQdFI9aY4cMM4XN7xpRi5Ig7HWJAA==","signatures":[{"sig":"MEUCIQCHEel9WZyol0GDU7i5sGzw2f5Jn/N0ko5IZvVnGRwIOAIgcgt1EsnKku26UVQfaH8jHEvjsdfjO+DI6FG7FgI7f9M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":89812},"main":"./dist/index.js","type":"module","_from":"file:best-agent-extensions-0.0.1-beta.1.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"release":"pnpm -w build && pnpm publish --access public --no-git-checks"},"_npmUser":{"name":"simon_he","email":"13917107469@163.com"},"_resolved":"/private/var/folders/z8/w1qvd0cd46z6k8_swl1n33d00000gn/T/8bbf20e8977535ddfa7bce478de4fa0d/best-agent-extensions-0.0.1-beta.1.tgz","_integrity":"sha512-tYZeqcXAgFvxhypeEPoA6v10GYICfCHoq/GaUCz1x484LjchWfpH0Irn3SQdFI9aY4cMM4XN7xpRi5Ig7HWJAA==","_npmVersion":"10.9.2","description":"Extension manifest loading and normalization.","directories":{},"_nodeVersion":"23.11.0","dependencies":{"@best-agent/protocol":"0.0.1-beta.1","@best-agent/foundation":"0.0.1-beta.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/extensions_0.0.1-beta.1_1779708580677_0.5105627975189102","host":"s3://npm-registry-packages-npm-production"}},"0.0.2-beta.2":{"name":"@best-agent/extensions","version":"0.0.2-beta.2","_id":"@best-agent/extensions@0.0.2-beta.2","maintainers":[{"name":"simon_he","email":"13917107469@163.com"}],"dist":{"shasum":"a9925bf1db87abae772e6861d9bb0be55cea7cb0","tarball":"https://registry.npmjs.org/@best-agent/extensions/-/extensions-0.0.2-beta.2.tgz","fileCount":10,"integrity":"sha512-pHvdQ+WzsANyRl8SxN4pvjTZAHtbJse2Vbxpm9UawJLXasUUxTjVzvscKsmcJEL8t0W8Gj4UQmHcbEzM++NkOw==","signatures":[{"sig":"MEYCIQDoXFiM8dqkpDWfwj4iO6KaFBA2RoIwudRmYT8hKrjUKgIhAKTEl6kqXg246Fb4xBOAR/psJ1/6YAhNv9u8WGNBRfwJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":89812},"main":"./dist/index.js","type":"module","_from":"file:best-agent-extensions-0.0.2-beta.2.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"release":"pnpm -w build && pnpm publish --access public --no-git-checks"},"_npmUser":{"name":"simon_he","email":"13917107469@163.com"},"_resolved":"/private/var/folders/z8/w1qvd0cd46z6k8_swl1n33d00000gn/T/092ef7644ace5b3af8d042ed37e17693/best-agent-extensions-0.0.2-beta.2.tgz","_integrity":"sha512-pHvdQ+WzsANyRl8SxN4pvjTZAHtbJse2Vbxpm9UawJLXasUUxTjVzvscKsmcJEL8t0W8Gj4UQmHcbEzM++NkOw==","_npmVersion":"10.9.2","description":"Extension manifest loading and normalization.","directories":{},"_nodeVersion":"23.11.0","dependencies":{"@best-agent/protocol":"0.0.2-beta.2","@best-agent/foundation":"0.0.2-beta.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/extensions_0.0.2-beta.2_1779794964301_0.561910495385143","host":"s3://npm-registry-packages-npm-production"}},"0.0.2-beta.8":{"name":"@best-agent/extensions","version":"0.0.2-beta.8","type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"dependencies":{"@best-agent/foundation":"0.0.2-beta.8","@best-agent/protocol":"0.0.2-beta.8"},"scripts":{"release":"pnpm -w build && pnpm publish --access public --no-git-checks"},"_id":"@best-agent/extensions@0.0.2-beta.8","description":"Extension manifest loading and normalization.","_integrity":"sha512-o2Ur+hA598a3QjaNW2hQJOdXZSKp3LtxJUb2xa5kxLOvTvjQ3PEtuvZ2bYI80D+SDXcz824rCWcQ3cP4el1H/w==","_resolved":"/private/var/folders/z8/w1qvd0cd46z6k8_swl1n33d00000gn/T/465643e3fb217ce862c0ddfaa9f20c20/best-agent-extensions-0.0.2-beta.8.tgz","_from":"file:best-agent-extensions-0.0.2-beta.8.tgz","_nodeVersion":"23.11.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-o2Ur+hA598a3QjaNW2hQJOdXZSKp3LtxJUb2xa5kxLOvTvjQ3PEtuvZ2bYI80D+SDXcz824rCWcQ3cP4el1H/w==","shasum":"d714f238beec02d7b696c6b8153b64beda00eb16","tarball":"https://registry.npmjs.org/@best-agent/extensions/-/extensions-0.0.2-beta.8.tgz","fileCount":10,"unpackedSize":89972,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIBKVBZbdK3POEzWJA1+7n7/UVxzvSJtV+iyP6V+L5FOMAiEAl8fgbQBoUywpg+s5n+Sfgs9IcywnFHg1yS6ROwD3Idc="}]},"_npmUser":{"name":"simon_he","email":"13917107469@163.com"},"directories":{},"maintainers":[{"name":"simon_he","email":"13917107469@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/extensions_0.0.2-beta.8_1780387085935_0.5945231038204379"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-25T11:29:40.508Z","modified":"2026-06-02T07:58:06.199Z","0.0.1-beta.1":"2026-05-25T11:29:40.800Z","0.0.2-beta.2":"2026-05-26T11:29:24.430Z","0.0.2-beta.8":"2026-06-02T07:58:06.063Z"},"description":"Extension manifest loading and normalization.","maintainers":[{"name":"simon_he","email":"13917107469@163.com"}],"readme":"# @best-agent/extensions\n\nExtension manifest loading and normalization.\n\n## Main Exports\n\n- `loadExtensionRegistry(rootDir)`\n- `createExtensionRegistry(manifests)`\n- `loadPluginManifests(rootDir)`\n- `resolveInstalledExtensionSkills(registry, runCommand)`\n\nManifest types:\n\n- `PluginManifest`\n- `PluginAgentProfileManifest`\n- `PluginCommandToolManifest`\n- `PluginCommandSkillManifest`\n- `PluginMcpServerManifest`\n- `LoadedPluginManifest`\n- `ExtensionRegistry`\n\n## Features\n\n- scans extension directories from disk\n- parses and normalizes manifest-only extensions\n- exposes command tools, command skills, MCP metadata, and agent profile contributions\n- materializes command-generated skills before runtime startup\n\n## Example\n\n```ts\nimport { loadExtensionRegistry } from \"@best-agent/extensions\";\n\nconst registry = loadExtensionRegistry(\"/tmp/best-agent-extensions\");\n\nconsole.log(registry.listExtensions());\nconsole.log(registry.listAgentProfiles());\nconsole.log(registry.listMcpServers());\n```\n\nMinimal manifest shape:\n\n```json\n{\n  \"name\": \"docs-tools\",\n  \"version\": \"0.0.1\",\n  \"commandTools\": [\n    {\n      \"name\": \"docs-search\",\n      \"description\": \"Search local docs.\",\n      \"command\": \"node\",\n      \"args\": [\"./search-docs.mjs\"]\n    }\n  ]\n}\n```\n\n## Does Not Own\n\n- runtime execution\n- provider calls\n- tool permission decisions\n\nExtensions stay declarative. Runtime execution remains owned by `packages/engine`.\n\n","readmeFilename":"README.md"}