generated from coulomb/repo-seed
cli command statehub register with install
This commit is contained in:
@@ -21,6 +21,8 @@ import urllib.error
|
||||
import urllib.request
|
||||
from pathlib import Path
|
||||
|
||||
from statehub_register import run_register as run_statehub_register
|
||||
|
||||
STATE_HUB_DIR = Path(__file__).resolve().parent
|
||||
API_BASE = os.environ.get("API_BASE", "http://127.0.0.1:8000")
|
||||
TEMPLATE = STATE_HUB_DIR / "scripts" / "project_claude_md.template"
|
||||
@@ -468,11 +470,51 @@ def cmd_status(_args: argparse.Namespace) -> None:
|
||||
|
||||
def main() -> None:
|
||||
parser = argparse.ArgumentParser(
|
||||
prog="custodian",
|
||||
prog=Path(sys.argv[0]).name,
|
||||
description="Custodian State Hub CLI",
|
||||
)
|
||||
sub = parser.add_subparsers(dest="command", required=True)
|
||||
|
||||
# register
|
||||
statehub_reg = sub.add_parser(
|
||||
"register",
|
||||
help="Register the current repo with State Hub and prime it for Codex",
|
||||
)
|
||||
statehub_reg.add_argument("--path", default=os.getcwd(), help="Repo directory (defaults to cwd)")
|
||||
statehub_reg.add_argument("--domain", default=None, help="State Hub domain slug")
|
||||
statehub_reg.add_argument("--repo-slug", default=None, help="Repo slug (auto-detected if omitted)")
|
||||
statehub_reg.add_argument("--wp-prefix", default=None, help="Workplan prefix, e.g. STATE-WP")
|
||||
statehub_reg.add_argument("--description", default=None, help="One-sentence repo description")
|
||||
statehub_reg.add_argument(
|
||||
"--intent",
|
||||
default=None,
|
||||
help="Repo intent text to use when INTENT.md is absent and inference is insufficient",
|
||||
)
|
||||
statehub_reg.add_argument("--api-base", default=API_BASE, help="State Hub API base URL")
|
||||
statehub_reg.add_argument(
|
||||
"--llm-provider",
|
||||
default=os.environ.get("STATEHUB_REGISTER_LLM_PROVIDER", "claude-code"),
|
||||
help="llm-connect provider: claude-code, openrouter, openai, gemini, or mock",
|
||||
)
|
||||
statehub_reg.add_argument(
|
||||
"--llm-model",
|
||||
default=os.environ.get("STATEHUB_REGISTER_LLM_MODEL"),
|
||||
help="Model name passed to llm-connect",
|
||||
)
|
||||
statehub_reg.add_argument(
|
||||
"--llm-api-key",
|
||||
default=os.environ.get("STATEHUB_REGISTER_LLM_API_KEY"),
|
||||
help="API key for API-backed llm-connect providers",
|
||||
)
|
||||
statehub_reg.add_argument(
|
||||
"--llm-timeout",
|
||||
type=int,
|
||||
default=int(os.environ.get("STATEHUB_REGISTER_LLM_TIMEOUT", "120")),
|
||||
help="LLM timeout in seconds",
|
||||
)
|
||||
statehub_reg.add_argument("--no-llm", action="store_true", help="Skip LLM inference and use files/prompts")
|
||||
statehub_reg.add_argument("--force", action="store_true", help="Overwrite generated repo files")
|
||||
|
||||
# register-project
|
||||
reg = sub.add_parser("register-project", help="Register a project with the State Hub")
|
||||
reg.add_argument(
|
||||
@@ -513,7 +555,9 @@ def main() -> None:
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
if args.command == "register-project":
|
||||
if args.command == "register":
|
||||
run_statehub_register(args)
|
||||
elif args.command == "register-project":
|
||||
cmd_register(args)
|
||||
elif args.command == "ingest-sbom":
|
||||
cmd_ingest_sbom(args)
|
||||
|
||||
Reference in New Issue
Block a user