KeiSeiKit-1.0/install/lib-dev-hub-daytona.sh
Parfii-bot 0be354a920 KeiSeiKit-public — clean state
Single-commit clean baseline after security scrub of niche-tells,
project codenames, internal jargon, and contributor-email leaks.

Contents:
- 100 Rust crates (_primitives/_rust/)
- 37 agent manifests (_manifests/) + generated specs (_generated/)
- 67 user-invocable skills (skills/)
- 33 hooks (hooks/)
- Composition blocks (_blocks/)
- Documentation (docs/, README.md)
- TS adapter packages (_ts_packages/)
- Assembler (_assembler/)
- Roles (_roles/)
- Templates (_templates/)
- Forgejo CI (.forgejo/)

Author: Denis Parfionovich <info@greendragon.info>

License: see LICENSE.
2026-05-01 12:09:03 +08:00

58 lines
2.4 KiB
Bash

# shellcheck shell=bash
# lib-dev-hub-daytona.sh — stamp DAYTONA_API_KEY into ~/.claude/secrets/.env.example
# (HERMES-MIGRATION P1.2.d). Companion to kei-backend-daytona crate.
#
# Daytona is OPTIONAL. The free tier covers 2 concurrent sandboxes with a
# 30-min idle hibernate; anything past that is billed. We never auto-enable
# the daytona profile — we only document where to paste a key when the user
# decides to opt in.
#
# RULE 0.8: live token NEVER lands in .env via this lib — only the
# placeholder line in .env.example. The user pastes their real key into
# ~/.claude/secrets/.env themselves.
#
# Sources lib-log.sh (say/warn/err). Reads $HOME_DIR. Idempotent.
# ---------- private helpers ----------
_dhda_env_example() { printf '%s/.claude/secrets/.env.example' "$HOME_DIR"; }
_dhda_env_marker() { printf '# HERMES-P1.2 — kei-backend-daytona (optional)'; }
# Append the DAYTONA_API_KEY stanza to .env.example. Idempotent: marker
# guard means re-runs are no-ops. Safe even when .env.example does not yet
# exist — we create the secrets dir + file with a 0700/0600 perm pair.
_dhda_stamp_env_example() {
local example marker dir
example="$(_dhda_env_example)"
marker="$(_dhda_env_marker)"
dir="$(dirname "$example")"
if [ ! -d "$dir" ]; then
mkdir -p "$dir"
chmod 700 "$dir" 2>/dev/null || true
fi
if [ ! -f "$example" ]; then
: > "$example"
chmod 600 "$example" 2>/dev/null || true
fi
if grep -Fq "$marker" "$example"; then
say " → .env.example already stamped (HERMES-P1.2 marker present)"
return 0
fi
{
printf '\n%s\n' "$marker"
printf '# Optional — only needed when the daytona profile is selected.\n'
printf '# Free tier: 2 concurrent sandboxes, 30-min idle hibernate.\n'
printf '# Sign up + create key at https://app.daytona.io/dashboard/keys\n'
printf '# DAYTONA_API_KEY=\n'
printf '# DAYTONA_BASE_URL=https://app.daytona.io/api\n'
} >> "$example"
say " → stamped HERMES-P1.2 keys into $example"
}
# Public entry — called from install.sh when the daytona profile is on.
# Stamps the .env.example placeholder and prints a one-line reminder for
# the user to paste their key into the live .env.
install_dev_hub_daytona() {
say "[dev-hub-daytona] stamping .env.example"
_dhda_stamp_env_example || return 1
say "[dev-hub-daytona] paste DAYTONA_API_KEY into ~/.claude/secrets/.env to enable"
}