【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>
54 lines
1.4 KiB
JavaScript
54 lines
1.4 KiB
JavaScript
const WebSocket = require('ws');
|
||
|
||
// 優先順: CODEX_HOOK_SERVER -> HOOK_SERVER_PORT -> 8770
|
||
function resolveControlUrl() {
|
||
const fromEnv = process.env.CODEX_HOOK_SERVER;
|
||
if (fromEnv) {
|
||
try {
|
||
const u = new URL(fromEnv);
|
||
// 制御チャネルは /control を使う
|
||
u.pathname = '/control';
|
||
return u.toString();
|
||
} catch {}
|
||
}
|
||
const port = process.env.HOOK_SERVER_PORT || '8770';
|
||
return `ws://localhost:${port}/control`;
|
||
}
|
||
|
||
const controlUrl = resolveControlUrl();
|
||
console.log(`🔌 Connecting to hook control: ${controlUrl}`);
|
||
const ws = new WebSocket(controlUrl);
|
||
|
||
ws.on('open', () => {
|
||
console.log('✅ Connected! Injecting greeting...');
|
||
|
||
// Codexへ入力を注入(hook-serverのcontrol API)
|
||
ws.send(JSON.stringify({
|
||
op: 'inject',
|
||
data: 'こんにちは!Codexさん!Nyashプロジェクトから挨拶にゃ〜🐱 JITの調子はどうにゃ?'
|
||
}));
|
||
|
||
// ついでにステータス確認
|
||
ws.send(JSON.stringify({ op: 'status' }));
|
||
});
|
||
|
||
ws.on('message', (data) => {
|
||
const msg = JSON.parse(data.toString());
|
||
console.log('📨 Received:', msg);
|
||
});
|
||
|
||
ws.on('error', (err) => {
|
||
console.error('❌ Error:', err.message);
|
||
});
|
||
|
||
ws.on('close', () => {
|
||
console.log('👋 Connection closed');
|
||
});
|
||
|
||
// 30秒後に終了
|
||
setTimeout(() => {
|
||
console.log('⏰ Timeout - closing connection');
|
||
try { ws.close(); } catch {}
|
||
process.exit(0);
|
||
}, 30000);
|