v0.5.0 — @agentplugins/store + Setup Scripts
v0.5.0 — @agentplugins/store + Setup Scripts
New package
@agentplugins/store— plugin install / link / update / detect lifecycle extracted fromcoreinto its own package.installPlugin,updatePlugin,detectAgents, symlink management (linkCompiledPlugin,linkPluginSkills,linkNativeArtifacts),validateCloneUrl, and the new setup-script runtime all live here.@agentplugins/corere-exports the public surface as a facade; existing imports through@agentplugins/coreare unaffected. (Registry logic stays incore— it owns adapter registration, not store state.)
Features
- Setup scripts (mossy-koala) — a plugin can declare a
setupcommand (single string) in its manifest. Afteragentplugins add, the CLI prompts for trust and runs it;agentplugins setup <name>re-runs it later.- Trust-on-first-use: the command plus the contents of any referenced script are hashed (sha256) and persisted in
.agentplugins-meta.json. A matching hash re-runs silently on subsequent invocations; a changed hash re-prompts. - Auto-detect fallback: when no
setupfield is declared, the CLI looks forinstall.sh→setup.sh→postinstall.mjs→postinstall.js(first hit) and treats it as lower-trust (source: 'detected'). - Hard denylist always blocks —
curl|sh,wget|sh,npx --yes,rm -rf /,chmod 777,eval,base64 -d|sh. Cannot be overridden by--yesor prior trust. - Flags & kill-switch:
--yesskips the prompt but still gates on the denylist;--no-setupskips setup entirely onadd;AGENTPLUGINS_SETUP_SCRIPTS=0is a hard kill-switch. - Schema: top-level
setup: z.string().min(1).optional()on the manifest. This is distinct from thehooks.setuplifecycle hook.
- Trust-on-first-use: the command plus the contents of any referenced script are hashed (sha256) and persisted in
Test coverage (B22)
- 51 new tests in
@agentplugins/store:linkPluginSkills(15),linkNativeArtifactsincl. the.mjs → .tsrename (20), multi-artifactlinkCompiledPlugin(16). - 9 new CLI e2e tests: setup flow (kill-switch, deny, TOFU silent re-run, hash-change re-prompt),
setupcommand,add --no-setup.
Internal
@agentplugins/coredepends on@agentplugins/store(workspace:*);@agentplugins/storedepends on@agentplugins/compile(forsanitizeName) and@agentplugins/security(for the denylist gate).adapter-codex/adapter-kimipeerDependenciesbumped^0.4.0→^0.5.0(kept in lockstep per the changeset quirk documented in.changeset/README.md).
Release notes backfilled for informational purposes; sourced from CHANGELOG.md.
Installation
npx @agentplugins/cli add user/your-plugin