【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>
153 lines
4.5 KiB
Bash
153 lines
4.5 KiB
Bash
#!/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 |