Title: feat(cli): add plugin system with allowlist policy by hopelynd · Pull Request #40 · modelstudioai/cli · GitHub
Open Graph Title: feat(cli): add plugin system with allowlist policy by hopelynd · Pull Request #40 · modelstudioai/cli
X Title: feat(cli): add plugin system with allowlist policy by hopelynd · Pull Request #40 · modelstudioai/cli
Description: Summary
Add a plugin system for bailian-cli with bl plugin install, link, list, and remove
Dynamically load plugin commands into the CLI registry so new commands are available without restarting
Enforce an allowlist security policy: only official plugins under the @ali scope (e.g. @ali/bailian-plugin-agent)
Install plugins via an isolated npm sandbox; plugin commands use caching and priority resolution
Add e2e tests, core type definitions, and skills/bailian-cli/reference/plugin.md documentation
Key changes
Area
Description
packages/cli/src/plugins/
Discovery, scanning, caching, management, npm sandbox, allowlist policy
packages/cli/src/commands/plugin/
install, link, list, and remove subcommands
packages/cli/src/load-commands.ts
Lazy-load command catalog and merge built-in and plugin commands
packages/core/src/types/plugin.ts
Plugin manifest type definitions
packages/cli/tests/e2e/plugins.e2e.test.ts
E2E coverage for install, link, and command discovery
Test plan
vp check passes (format, lint, type check)
vp test passes (including plugins.e2e.test.ts)
bl plugin list lists discovered plugins
bl plugin install @ali/bailian-plugin-agent exposes new commands after install
bl plugin link
Open Graph Description: Summary Add a plugin system for bailian-cli with bl plugin install, link, list, and remove Dynamically load plugin commands into the CLI registry so new commands are available without restarting E...
X Description: Summary Add a plugin system for bailian-cli with bl plugin install, link, list, and remove Dynamically load plugin commands into the CLI registry so new commands are available without restarting E...
Opengraph URL: https://github.com/modelstudioai/cli/pull/40
X: @github
Domain: github.com
| route-pattern | /:user_id/:repository/pull/:id/files(.:format) |
| route-controller | pull_requests |
| route-action | files |
| fetch-nonce | v2:22af441c-d541-cca6-fabf-c1ad83cf6ba3 |
| current-catalog-service-hash | ae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b |
| request-id | AFC2:228F1C:19FEFB1:2387FE0:6A536888 |
| html-safe-nonce | 55ddb9be92833831993327fff8768f8b2cd124cdeaca919c7ebb25a7be87b4ef |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJBRkMyOjIyOEYxQzoxOUZFRkIxOjIzODdGRTA6NkE1MzY4ODgiLCJ2aXNpdG9yX2lkIjoiODUwMjkzODA4OTg3ODE1MzM1MiIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | 541d02f3a3691c5057ea3f4ed704adf19b19e43528e5d2c7dd7b39b24c19f03a |
| hovercard-subject-tag | pull_request:3828430080 |
| github-keyboard-shortcuts | repository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/modelstudioai/cli/pull/40/files |
| twitter:image | https://avatars.githubusercontent.com/u/135810028?s=400&v=4 |
| twitter:card | summary_large_image |
| og:image | https://avatars.githubusercontent.com/u/135810028?s=400&v=4 |
| og:image:alt | Summary Add a plugin system for bailian-cli with bl plugin install, link, list, and remove Dynamically load plugin commands into the CLI registry so new commands are available without restarting E... |
| og:site_name | GitHub |
| og:type | object |
| hostname | github.com |
| expected-hostname | github.com |
| None | b9a586c06a05a7a86fc7e3f4dbd03e42f6869085879aa184aa6369456dbd50fb |
| turbo-cache-control | no-preview |
| diff-view | unified |
| go-import | github.com/modelstudioai/cli git https://github.com/modelstudioai/cli.git |
| octolytics-dimension-user_id | 283556804 |
| octolytics-dimension-user_login | modelstudioai |
| octolytics-dimension-repository_id | 1251875798 |
| octolytics-dimension-repository_nwo | modelstudioai/cli |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 1251875798 |
| octolytics-dimension-repository_network_root_nwo | modelstudioai/cli |
| turbo-body-classes | logged-out env-production page-responsive full-width |
| disable-turbo | true |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 07a982c1d40157c619b364352b704c3ce66bb332 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width