openpencil/scripts/unpublish.sh
Kayshen-X a7d73ebb62 feat(ai): pencil-style agentic design tool-loop, multi-chat tabs, #27 panel restyle
Built-in design generation now runs as an agentic MCP tool-loop (reusing the
agent-rs BuiltInProvider), gated behind OPENPENCIL_DESIGN_AGENT_LOOP / the
Settings experimental toggle; the orchestrator stays the default.

- design-agent system prompt + in-process design toolset (parity-locked with
  the MCP surface) + flag-gated Intent::Design routing
- spawn_agents execution as sequential sub-loops + live creation-mode badges
  (per-agent glow + 'N/M designing...' header)
- new MCP tools: get_guidelines, ToolSearch, get_screenshot, get_editor_state,
  export_nodes, spawn_agents; style-guide local audit
- #27 AI panel restyle: rounded tool cards + green check-rings, gray user
  bubbles, model-pill bottom toolbar, header, empty-state pills, the
  PARALLEL AGENTS (agent_team_size) 1x-6x chip dropdown
- multi-chat tabs: ChatSessions model (Deref-to-active) + tab row UI
  (switch / close / + / Cmd+T) with each run bound to its tab

Large checkpoint commit spanning the working tree (Rust shell crates).
2026-07-02 21:21:06 +08:00

74 lines
2.2 KiB
Bash
Executable file

#!/bin/bash
# Unpublish all @zseven-w packages from npm for a given version.
#
# Usage:
# bun run unpublish 0.5.1 # unpublish specific version from all packages
# bun run unpublish 0.5.1 --all # unpublish ALL versions of all packages
# bun run unpublish 0.5.1 --deprecate # deprecate instead of unpublish (fallback)
#
# Packages are removed in reverse topological order (dependents first, then dependencies)
# to avoid npm's "has dependent packages" rejection.
set -euo pipefail
VERSION="${1:-}"
FLAG="${2:-}"
if [ -z "$VERSION" ]; then
echo "Usage: bun run unpublish <version> [--all|--deprecate]"
echo ""
echo " <version> Version to unpublish (e.g. 0.5.1)"
echo " --all Unpublish ALL versions of every package"
echo " --deprecate Deprecate instead of unpublish"
exit 1
fi
# Reverse topological order: dependents first, then dependencies
PACKAGES=(
@zseven-w/openpencil
@zseven-w/pen-sdk
@zseven-w/pen-renderer
@zseven-w/pen-figma
@zseven-w/pen-core
@zseven-w/pen-types
)
FAILED=()
for pkg in "${PACKAGES[@]}"; do
if [ "$FLAG" = "--deprecate" ]; then
echo "Deprecating $pkg@$VERSION ..."
npm deprecate "${pkg}@${VERSION}" "this version has been deprecated, do not use" --force 2>&1 || {
echo " ⚠ Failed to deprecate $pkg@$VERSION"
FAILED+=("$pkg@$VERSION")
}
elif [ "$FLAG" = "--all" ]; then
echo "Unpublishing $pkg (all versions) ..."
npm unpublish "$pkg" --force 2>&1 || {
echo " ⚠ Failed to unpublish $pkg"
FAILED+=("$pkg")
}
else
echo "Unpublishing $pkg@$VERSION ..."
npm unpublish "${pkg}@${VERSION}" --force 2>&1 || {
echo " ⚠ Failed to unpublish $pkg@$VERSION (try --all to remove entire package)"
FAILED+=("$pkg@$VERSION")
}
fi
echo ""
done
echo "================================"
if [ ${#FAILED[@]} -eq 0 ]; then
echo "All packages processed successfully."
else
echo "Failed packages:"
for f in "${FAILED[@]}"; do
echo " - $f"
done
echo ""
echo "Tip: If unpublish fails due to dependent packages, use --all to remove entire packages,"
echo " or --deprecate as a fallback."
fi
echo "================================"