Files
hakorune/tools/codex-tmux-driver/manage-ai-sessions.sh
Moe Charm 4e1b595796 AI協調開発研究ドキュメントの完成と Phase 10.9-β 進捗
【AI協調開発研究】
- AI二重化モデルの学術論文draft完成(workshop_paper_draft.md)
- 「隠れた危機」分析とbirthの原則哲学化
- TyEnv「唯一の真実」協調会話を保存・研究資料に統合
- papers管理構造の整備(wip/under-review/published分離)

【Phase 10.9-β HostCall進捗】
- JitConfigBox: relax_numeric フラグ追加(i64→f64コアーション制御)
- HostcallRegistryBox: 署名検証・白黒リスト・コアーション対応
- JitHostcallRegistryBox: Nyash側レジストリ操作API
- Lower統合: env直読 → jit::config::current() 参照に統一
- 数値緩和設定: NYASH_JIT_HOSTCALL_RELAX_NUMERIC/Config.set_flag

【検証サンプル拡充】
- math.sin/cos/abs/min/max 関数スタイル(examples/jit_math_function_style_*.nyash)
- 境界ケース: 署名不一致・コアーション許可・mutating拒否サンプル
- E2E実証: String.length→allow, Array.push→fallback, math関数の署名一致観測

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-28 12:09:09 +09:00

153 lines
4.5 KiB
Bash
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# 複数AI セッション管理スクリプト
# デフォルト設定
CLAUDE_BIN=${CLAUDE_BIN:-"/home/tomoaki/.volta/bin/codex"}
CODEX_BIN=${REAL_CODEX_BIN:-"/path/to/real/codex"}
HOOK_PORT=${HOOK_SERVER_PORT:-8770}
# カラー設定
RED='\033[0;31m'
GREEN='\033[0;32m'
BLUE='\033[0;34m'
YELLOW='\033[0;33m'
NC='\033[0m' # No Color
function show_usage() {
echo "🤖 AI セッション管理ツール"
echo ""
echo "使い方: $0 <command> [options]"
echo ""
echo "コマンド:"
echo " start-all - Claude1, Claude2, Codexを全て起動"
echo " start-claude - Claude Code 2つを起動"
echo " start-codex - 本物のCodexを起動"
echo " status - 全セッション状態を表示"
echo " send <session> <message> - 特定セッションにメッセージ送信"
echo " broadcast <message> - 全セッションにメッセージ送信"
echo " kill-all - 全セッション終了"
echo " attach <session> - セッションに接続"
echo ""
echo "セッション名:"
echo " claude1-8770 - Claude Code インスタンス1"
echo " claude2-8770 - Claude Code インスタンス2"
echo " codex-8770 - 本物のCodex"
}
function start_claude_sessions() {
echo -e "${BLUE}🚀 Claude Code セッションを起動中...${NC}"
./start-ai-tmux.sh claude1-8770 "$CLAUDE_BIN"
sleep 1
./start-ai-tmux.sh claude2-8770 "$CLAUDE_BIN"
echo -e "${GREEN}✅ Claude Code 2つ起動完了${NC}"
}
function start_codex_session() {
echo -e "${BLUE}🚀 本物のCodexを起動中...${NC}"
# Codexには制限解除のための引数が必要
./start-ai-tmux.sh codex-8770 "$CODEX_BIN" --ask-for-approval never --sandbox danger-full-access
echo -e "${GREEN}✅ Codex起動完了${NC}"
}
function show_status() {
echo -e "${BLUE}📊 AIセッション状態:${NC}"
echo ""
for session in claude1-8770 claude2-8770 codex-8770; do
if tmux has-session -t "$session" 2>/dev/null; then
echo -e " ${GREEN}${NC} $session - 稼働中"
else
echo -e " ${RED}${NC} $session - 停止"
fi
done
echo ""
echo -e "${YELLOW}Hook Server状態:${NC}"
if lsof -i:$HOOK_PORT >/dev/null 2>&1; then
echo -e " ${GREEN}${NC} Hook server (port $HOOK_PORT) - 稼働中"
else
echo -e " ${RED}${NC} Hook server (port $HOOK_PORT) - 停止"
echo -e " ${YELLOW}💡${NC} 起動するには: HOOK_SERVER_PORT=$HOOK_PORT node hook-server.js"
fi
}
function send_to_session() {
local session="$1"
local message="$2"
if tmux has-session -t "$session" 2>/dev/null; then
tmux send-keys -t "$session" "$message" Enter
echo -e "${GREEN}${NC} メッセージを $session に送信しました"
else
echo -e "${RED}${NC} セッション $session は存在しません"
fi
}
function broadcast_message() {
local message="$1"
echo -e "${BLUE}📢 全セッションにブロードキャスト中...${NC}"
for session in claude1-8770 claude2-8770 codex-8770; do
send_to_session "$session" "$message"
done
}
function kill_all_sessions() {
echo -e "${RED}🛑 全セッションを終了中...${NC}"
for session in claude1-8770 claude2-8770 codex-8770; do
if tmux has-session -t "$session" 2>/dev/null; then
tmux kill-session -t "$session"
echo -e " ${YELLOW}⚠️${NC} $session を終了しました"
fi
done
echo -e "${GREEN}✅ 完了${NC}"
}
# メインコマンド処理
case "$1" in
start-all)
start_claude_sessions
start_codex_session
show_status
;;
start-claude)
start_claude_sessions
show_status
;;
start-codex)
start_codex_session
show_status
;;
status)
show_status
;;
send)
if [ $# -lt 3 ]; then
echo -e "${RED}❌ 使い方: $0 send <session> <message>${NC}"
exit 1
fi
send_to_session "$2" "$3"
;;
broadcast)
if [ $# -lt 2 ]; then
echo -e "${RED}❌ 使い方: $0 broadcast <message>${NC}"
exit 1
fi
broadcast_message "$2"
;;
kill-all)
kill_all_sessions
;;
attach)
if [ $# -lt 2 ]; then
echo -e "${RED}❌ 使い方: $0 attach <session>${NC}"
exit 1
fi
tmux attach -t "$2"
;;
*)
show_usage
;;
esac