mirror of https://github.com/garrytan/gstack.git
feat: add --host kiro support to setup script (#309)
Adds Kiro CLI as a supported agent platform. Setup detects kiro-cli, copies+sed-rewrites SKILL.md paths from Codex/Claude to Kiro format, and symlinks runtime assets (bin/, browse/). Co-authored-by: AnshulDesai <AnshulDesai@users.noreply.github.com> Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
530d276466
commit
445660bed4
56
setup
56
setup
|
|
@ -31,24 +31,28 @@ while [ $# -gt 0 ]; do
|
||||||
done
|
done
|
||||||
|
|
||||||
case "$HOST" in
|
case "$HOST" in
|
||||||
claude|codex|auto) ;;
|
claude|codex|kiro|auto) ;;
|
||||||
*) echo "Unknown --host value: $HOST (expected claude, codex, or auto)" >&2; exit 1 ;;
|
*) echo "Unknown --host value: $HOST (expected claude, codex, kiro, or auto)" >&2; exit 1 ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
# For auto: detect which agents are installed
|
# For auto: detect which agents are installed
|
||||||
INSTALL_CLAUDE=0
|
INSTALL_CLAUDE=0
|
||||||
INSTALL_CODEX=0
|
INSTALL_CODEX=0
|
||||||
|
INSTALL_KIRO=0
|
||||||
if [ "$HOST" = "auto" ]; then
|
if [ "$HOST" = "auto" ]; then
|
||||||
command -v claude >/dev/null 2>&1 && INSTALL_CLAUDE=1
|
command -v claude >/dev/null 2>&1 && INSTALL_CLAUDE=1
|
||||||
command -v codex >/dev/null 2>&1 && INSTALL_CODEX=1
|
command -v codex >/dev/null 2>&1 && INSTALL_CODEX=1
|
||||||
# If neither found, default to claude
|
command -v kiro-cli >/dev/null 2>&1 && INSTALL_KIRO=1
|
||||||
if [ "$INSTALL_CLAUDE" -eq 0 ] && [ "$INSTALL_CODEX" -eq 0 ]; then
|
# If none found, default to claude
|
||||||
|
if [ "$INSTALL_CLAUDE" -eq 0 ] && [ "$INSTALL_CODEX" -eq 0 ] && [ "$INSTALL_KIRO" -eq 0 ]; then
|
||||||
INSTALL_CLAUDE=1
|
INSTALL_CLAUDE=1
|
||||||
fi
|
fi
|
||||||
elif [ "$HOST" = "claude" ]; then
|
elif [ "$HOST" = "claude" ]; then
|
||||||
INSTALL_CLAUDE=1
|
INSTALL_CLAUDE=1
|
||||||
elif [ "$HOST" = "codex" ]; then
|
elif [ "$HOST" = "codex" ]; then
|
||||||
INSTALL_CODEX=1
|
INSTALL_CODEX=1
|
||||||
|
elif [ "$HOST" = "kiro" ]; then
|
||||||
|
INSTALL_KIRO=1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
migrate_direct_codex_install() {
|
migrate_direct_codex_install() {
|
||||||
|
|
@ -353,14 +357,54 @@ if [ "$INSTALL_CODEX" -eq 1 ]; then
|
||||||
echo " codex skills: $CODEX_SKILLS"
|
echo " codex skills: $CODEX_SKILLS"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 6. Create .agents/ sidecar symlinks for the real Codex skill target.
|
# 6. Install for Kiro CLI (copy from .agents/skills, rewrite paths)
|
||||||
|
if [ "$INSTALL_KIRO" -eq 1 ]; then
|
||||||
|
KIRO_SKILLS="$HOME/.kiro/skills"
|
||||||
|
AGENTS_DIR="$SOURCE_GSTACK_DIR/.agents/skills"
|
||||||
|
mkdir -p "$KIRO_SKILLS"
|
||||||
|
|
||||||
|
# Create gstack dir with symlinks for runtime assets, copy+sed for SKILL.md
|
||||||
|
KIRO_GSTACK="$KIRO_SKILLS/gstack"
|
||||||
|
# Remove old whole-dir symlink from previous installs
|
||||||
|
[ -L "$KIRO_GSTACK" ] && rm -f "$KIRO_GSTACK"
|
||||||
|
mkdir -p "$KIRO_GSTACK"
|
||||||
|
ln -snf "$SOURCE_GSTACK_DIR/bin" "$KIRO_GSTACK/bin"
|
||||||
|
ln -snf "$SOURCE_GSTACK_DIR/browse" "$KIRO_GSTACK/browse"
|
||||||
|
|
||||||
|
# Rewrite root SKILL.md paths for Kiro
|
||||||
|
sed -e "s|~/.claude/skills/gstack|~/.kiro/skills/gstack|g" \
|
||||||
|
-e "s|\.claude/skills/gstack|.kiro/skills/gstack|g" \
|
||||||
|
-e "s|\.claude/skills|.kiro/skills|g" \
|
||||||
|
"$SOURCE_GSTACK_DIR/SKILL.md" > "$KIRO_GSTACK/SKILL.md"
|
||||||
|
|
||||||
|
if [ ! -d "$AGENTS_DIR" ]; then
|
||||||
|
echo " warning: no .agents/skills/ directory found — run 'bun run build' first" >&2
|
||||||
|
else
|
||||||
|
for skill_dir in "$AGENTS_DIR"/gstack*/; do
|
||||||
|
[ -f "$skill_dir/SKILL.md" ] || continue
|
||||||
|
skill_name="$(basename "$skill_dir")"
|
||||||
|
target_dir="$KIRO_SKILLS/$skill_name"
|
||||||
|
mkdir -p "$target_dir"
|
||||||
|
sed -e "s|~/.codex/skills/gstack|~/.kiro/skills/gstack|g" \
|
||||||
|
-e "s|~/.claude/skills/gstack|~/.kiro/skills/gstack|g" \
|
||||||
|
-e "s|\.agents/skills/gstack|.kiro/skills/gstack|g" \
|
||||||
|
-e "s|\.agents/skills|.kiro/skills|g" \
|
||||||
|
"$skill_dir/SKILL.md" > "$target_dir/SKILL.md"
|
||||||
|
done
|
||||||
|
echo "gstack ready (kiro)."
|
||||||
|
echo " browse: $BROWSE_BIN"
|
||||||
|
echo " kiro skills: $KIRO_SKILLS"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 7. Create .agents/ sidecar symlinks for the real Codex skill target.
|
||||||
# The root Codex skill ends up pointing at $SOURCE_GSTACK_DIR/.agents/skills/gstack,
|
# The root Codex skill ends up pointing at $SOURCE_GSTACK_DIR/.agents/skills/gstack,
|
||||||
# so the runtime assets must live there for both global and repo-local installs.
|
# so the runtime assets must live there for both global and repo-local installs.
|
||||||
if [ "$INSTALL_CODEX" -eq 1 ]; then
|
if [ "$INSTALL_CODEX" -eq 1 ]; then
|
||||||
create_agents_sidecar "$SOURCE_GSTACK_DIR"
|
create_agents_sidecar "$SOURCE_GSTACK_DIR"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 7. First-time welcome + legacy cleanup
|
# 8. First-time welcome + legacy cleanup
|
||||||
if [ ! -d "$HOME/.gstack" ]; then
|
if [ ! -d "$HOME/.gstack" ]; then
|
||||||
mkdir -p "$HOME/.gstack"
|
mkdir -p "$HOME/.gstack"
|
||||||
echo " Welcome! Run /gstack-upgrade anytime to stay current."
|
echo " Welcome! Run /gstack-upgrade anytime to stay current."
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue