Skip to content

Commit 60a74c7

Browse files
committed
chore: save local unapproved work in progress
1 parent 0bda0c5 commit 60a74c7

File tree

5 files changed

+50
-3
lines changed

5 files changed

+50
-3
lines changed

.devcontainer/post-create.sh

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,13 @@ run_command "curl -fsSL \"$KIRO_INSTALLER_URL\" -o \"$KIRO_INSTALLER_PATH\""
6565

6666
if [ -n "${KIRO_INSTALLER_SHA256:-}" ]; then
6767
run_command "echo \"$KIRO_INSTALLER_SHA256 $KIRO_INSTALLER_PATH\" | sha256sum -c -"
68+
elif [ "${KIRO_SKIP_KIRO_INSTALLER_VERIFY:-0}" = "1" ]; then
69+
echo -e "\033[0;33m[WARN] KIRO_INSTALLER_SHA256 is not set; proceeding without installer checksum verification.\033[0m" >&2
70+
echo -e "\033[0;33m[WARN] Set KIRO_INSTALLER_SHA256 to enforce verification, or intentionally override with KIRO_SKIP_KIRO_INSTALLER_VERIFY=1.\033[0m" >&2
71+
else
72+
echo -e "\033[0;31m[ERROR] Refusing to run unverified Kiro installer.\033[0m" >&2
73+
echo -e "\033[0;31mSet KIRO_INSTALLER_SHA256 (recommended) or explicitly set KIRO_SKIP_KIRO_INSTALLER_VERIFY=1 to proceed.\033[0m" >&2
74+
exit 1
6875
fi
6976

7077
run_command "bash \"$KIRO_INSTALLER_PATH\""

.github/workflows/scripts/create-release-packages.ps1

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -347,10 +347,21 @@ function Build-Variant {
347347
$cmdDir = Join-Path $baseDir ".qoder/commands"
348348
Generate-Commands -Agent 'qodercli' -Extension 'md' -ArgFormat '$ARGUMENTS' -OutputDir $cmdDir -ScriptVariant $Script
349349
}
350+
'shai' {
351+
$cmdDir = Join-Path $baseDir ".shai/commands"
352+
Generate-Commands -Agent 'shai' -Extension 'md' -ArgFormat '$ARGUMENTS' -OutputDir $cmdDir -ScriptVariant $Script
353+
}
354+
'agy' {
355+
$cmdDir = Join-Path $baseDir ".agent/workflows"
356+
Generate-Commands -Agent 'agy' -Extension 'md' -ArgFormat '$ARGUMENTS' -OutputDir $cmdDir -ScriptVariant $Script
357+
}
350358
'generic' {
351359
$cmdDir = Join-Path $baseDir ".speckit/commands"
352360
Generate-Commands -Agent 'generic' -Extension 'md' -ArgFormat '$ARGUMENTS' -OutputDir $cmdDir -ScriptVariant $Script
353361
}
362+
default {
363+
throw "Unsupported agent '$Agent'."
364+
}
354365
}
355366

356367
# Create zip archive

.github/workflows/scripts/create-release-packages.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ set -euo pipefail
66
# Usage: .github/workflows/scripts/create-release-packages.sh <version>
77
# Version argument should include leading 'v'.
88
# Optionally set AGENTS and/or SCRIPTS env vars to limit what gets built.
9-
# AGENTS : space or comma separated subset of: claude gemini copilot cursor-agent qwen opencode windsurf codex amp shai bob kiro-cli generic (default: all)
9+
# AGENTS : space or comma separated subset of: claude gemini copilot cursor-agent qwen opencode windsurf codex kilocode auggie roo codebuddy amp shai kiro-cli agy bob qodercli generic (default: all)
1010
# SCRIPTS : space or comma separated subset of: sh ps (default: both)
1111
# Examples:
1212
# AGENTS=claude SCRIPTS=sh $0 v0.2.0

src/specify_cli/__init__.py

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -264,6 +264,19 @@ def _format_rate_limit_error(status_code: int, headers: httpx.Headers, url: str)
264264
"kiro": "kiro-cli",
265265
}
266266

267+
def _build_ai_assistant_help() -> str:
268+
"""Build the --ai help text from AGENT_CONFIG so it stays in sync with runtime config."""
269+
270+
non_generic_agents = [agent for agent in AGENT_CONFIG if agent != "generic"]
271+
return (
272+
f"AI assistant to use: {', '.join(non_generic_agents)}, "
273+
"or generic (requires --ai-commands-dir). "
274+
"Use 'kiro' as an alias for 'kiro-cli'."
275+
)
276+
277+
278+
AI_ASSISTANT_HELP = _build_ai_assistant_help()
279+
267280
SCRIPT_TYPE_CHOICES = {"sh": "POSIX Shell (bash/zsh)", "ps": "PowerShell"}
268281

269282
CLAUDE_LOCAL_PATH = Path.home() / ".claude" / "local" / "claude"
@@ -1223,7 +1236,7 @@ def install_ai_skills(project_path: Path, selected_ai: str, tracker: StepTracker
12231236
@app.command()
12241237
def init(
12251238
project_name: str = typer.Argument(None, help="Name for your new project directory (optional if using --here, or use '.' for current directory)"),
1226-
ai_assistant: str = typer.Option(None, "--ai", help="AI assistant to use: claude, gemini, copilot, cursor-agent, qwen, opencode, codex, windsurf, kilocode, auggie, codebuddy, amp, shai, kiro-cli (alias: kiro), agy, bob, qodercli, or generic (requires --ai-commands-dir)"),
1239+
ai_assistant: str = typer.Option(None, "--ai", help=AI_ASSISTANT_HELP),
12271240
ai_commands_dir: str = typer.Option(None, "--ai-commands-dir", help="Directory for agent command files (required with --ai generic, e.g. .myagent/commands/)"),
12281241
script_type: str = typer.Option(None, "--script", help="Script type to use: sh or ps"),
12291242
ignore_agent_tools: bool = typer.Option(False, "--ignore-agent-tools", help="Skip checks for AI agent tools like Claude Code"),

tests/test_agent_config_consistency.py

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import re
44
from pathlib import Path
55

6-
from specify_cli import AGENT_CONFIG
6+
from specify_cli import AGENT_CONFIG, AI_ASSISTANT_HELP
77
from specify_cli.extensions import CommandRegistrar
88

99

@@ -43,9 +43,25 @@ def test_release_agent_lists_include_kiro_cli_and_exclude_q(self):
4343

4444
assert "kiro-cli" in sh_agents
4545
assert "kiro-cli" in ps_agents
46+
assert "shai" in sh_agents
47+
assert "shai" in ps_agents
48+
assert "agy" in sh_agents
49+
assert "agy" in ps_agents
4650
assert "q" not in sh_agents
4751
assert "q" not in ps_agents
4852

53+
def test_release_ps_switch_has_shai_and_agy_generation(self):
54+
"""PowerShell release builder must generate files for shai and agy agents."""
55+
ps_text = (REPO_ROOT / ".github" / "workflows" / "scripts" / "create-release-packages.ps1").read_text(encoding="utf-8")
56+
57+
assert re.search(r"'shai'\s*\{.*?\.shai/commands", ps_text, re.S) is not None
58+
assert re.search(r"'agy'\s*\{.*?\.agent/workflows", ps_text, re.S) is not None
59+
60+
def test_init_ai_help_includes_roo_and_kiro_alias(self):
61+
"""CLI help text for --ai should stay in sync with agent config and alias guidance."""
62+
assert "roo" in AI_ASSISTANT_HELP
63+
assert "Use 'kiro' as an alias for 'kiro-cli'." in AI_ASSISTANT_HELP
64+
4965
def test_release_output_targets_kiro_prompt_dir(self):
5066
"""Packaging and release scripts should no longer emit amazonq artifacts."""
5167
sh_text = (REPO_ROOT / ".github" / "workflows" / "scripts" / "create-release-packages.sh").read_text(encoding="utf-8")

0 commit comments

Comments
 (0)