From 1f63f60280f9325236666736fbbfccdd3c4e1f7a Mon Sep 17 00:00:00 2001 From: CD Date: Tue, 10 Mar 2026 07:45:10 +0900 Subject: [PATCH] feat: proto-based RPC approval for Run commands via Discord Decoded HandleCascadeUserInteractionRequest protobuf schema from AG's extension.js (message #162, base64 FileDescriptor 78KB). Working payload (variant PROTO-0): cascadeId + interaction.{trajectoryId, stepIndex, runCommand.confirm} Changes: - extension.ts: Added Strategy 0-PROTO with decoded proto RPC call - extension.ts: Fixed processResponseFile to call tryApprovalStrategies() instead of direct clickTrigger (was bypassing all strategies) - extension.ts: Fixed false positive Run detection (sessionStalled reset when step_probe confirms no WAITING) - extension.ts: Moved lastPendingStepIndex to module scope - extension.ts: Added activeTrajectoryId tracking from session init - bot.py: Added MERGE detection + Discord message edit for command updates - bot.py: Added _sent_commands tracking for merge detection Proto RE methodology: 1. Found schema exports in AG extension.js 2. Located fileDesc() with base64 protobuf descriptor 3. Decoded 58KB raw proto, found message names 4. Extracted CascadeRunCommandInteraction.confirm field 5. Tested camelCase JSON via ConnectRPC = SUCCESS --- bot.py | 49 ++++++ extension/out/extension.js | 309 ++++++++++++++++++++++++++------- extension/out/extension.js.map | 2 +- extension/src/extension.ts | 301 +++++++++++++++++++++++++------- 4 files changed, 532 insertions(+), 129 deletions(-) diff --git a/bot.py b/bot.py index a8c83e4..cb211ef 100644 --- a/bot.py +++ b/bot.py @@ -165,6 +165,7 @@ class GravityBot(commands.Bot): self.session_status_messages: dict[str, int] = {} # conv_id → msg_id self._sent_approval_ids: set[str] = set() self._deferred_ids: dict[str, int] = {} # request_id → defer count + self._sent_commands: dict[str, str] = {} # request_id → command text (for MERGE edit detection) self._ready_event = asyncio.Event() self._channel_lock = asyncio.Lock() self.bridge = BridgeProtocol() @@ -542,6 +543,7 @@ class GravityBot(commands.Bot): channel = await self._get_channel(project) if channel: self._sent_approval_ids.add(req.request_id) + self._sent_commands[req.request_id] = req.command await self._send_approval_request(channel, req) # ── Check for auto_resolved pendings (approved directly in AG) ── @@ -567,6 +569,53 @@ class GravityBot(commands.Bot): pass f.unlink() self._deferred_ids.pop(data.get("request_id", ""), None) + self._sent_commands.pop(data.get("request_id", ""), None) + except (json.JSONDecodeError, OSError): + pass + + # ── Check for MERGE updates (step_probe updated command in already-sent pending) ── + for f in self.bridge.pending_dir.glob("*.json"): + try: + data = json.loads(f.read_text(encoding="utf-8-sig")) + rid = data.get("request_id", "") + if rid not in self._sent_approval_ids: + continue + if data.get("status") != "pending": + continue + msg_id = data.get("discord_message_id", 0) + if not msg_id: + continue + # Check if command was updated via MERGE + new_cmd = data.get("command", "") + old_cmd = self._sent_commands.get(rid, "") + if new_cmd and new_cmd != old_cmd and len(new_cmd) > len(old_cmd): + # MERGE detected — edit Discord message + self._sent_commands[rid] = new_cmd + project = data.get("project_name", Config.PROJECT_NAME) + channel = await self._get_channel(project) + if channel: + try: + msg = await channel.fetch_message(msg_id) + # Rebuild embed with full command + buttons = data.get("buttons") + desc_parts = [f"**명령어:**\n```\n{new_cmd[:1000]}\n```"] + if buttons and len(buttons) > 1: + btn_names = [b.get("text", "?") for b in buttons] + desc_parts.append(f"**선택지:** {' / '.join(btn_names)}") + desc = data.get("description", "") + if desc: + desc_parts.append(desc[:500]) + embed = discord.Embed( + title="⚠️ 승인 요청", + description="\n".join(desc_parts), + color=discord.Color.orange(), + timestamp=datetime.now(timezone.utc), + ) + embed.set_footer(text=f"ID: {rid}") + await msg.edit(embed=embed) + logger.info(f"MERGE edit: {rid[:12]} cmd='{new_cmd[:60]}'") + except discord.NotFound: + pass except (json.JSONDecodeError, OSError): pass diff --git a/extension/out/extension.js b/extension/out/extension.js index 3d943a4..501aabd 100644 --- a/extension/out/extension.js +++ b/extension/out/extension.js @@ -114,6 +114,7 @@ function ensureBridgeDir() { } // Module-level activeSessionId so writeChatSnapshot can register sessions lazily let activeSessionId = ''; +let activeTrajectoryId = ''; function writeChatSnapshot(text) { try { // Write to chat_snapshots/*.json for Bot's chat_snapshot_scanner to pick up @@ -426,6 +427,7 @@ const pendingResponses = new Map(); // Click trigger: extension sets this, renderer polls and clicks button let clickTrigger = null; let sessionStalled = false; // true when session is stalled waiting for approval +let lastPendingStepIndex = -1; // dedup: don't re-create pending for same step (module-level for tryApprovalStrategies) // Deep inspect trigger: curl sets this, renderer picks it up and POSTs results back let deepInspectRequested = false; let deepInspectResult = null; @@ -511,8 +513,15 @@ function startObserverHttpBridge() { if (fs.existsSync(respFile)) { try { const data = JSON.parse(fs.readFileSync(respFile, 'utf8')); - fs.unlinkSync(respFile); - logToFile(`[HTTP] response sent: ${rid} approved=${data.approved}`); + logToFile(`[HTTP] response served to renderer: ${rid} approved=${data.approved}`); + // Delay deletion: processResponseFile (response watcher) may need to read it too. + // The watcher fires with 300ms delay, so 2s is safe. + setTimeout(() => { + try { + fs.unlinkSync(respFile); + } + catch { } + }, 2000); res.writeHead(200, { 'Content-Type': 'application/json' }); res.end(JSON.stringify(data)); } @@ -1398,7 +1407,7 @@ function setupMonitor() { let lastKnownStepCount = 0; let lastNotifyStepIndex = -1; let lastTaskStepIndex = -1; - let lastPendingStepIndex = -1; // dedup: don't re-create pending for same step + // lastPendingStepIndex is module-level (above sessionStalled) let consecutiveIdleCount = 0; // debounce: require N consecutive stall polls let lastPendingTime = 0; // cooldown: minimum gap between pendings let sawRunningAfterPending = true; // gate: must see delta>0 before next pending @@ -1452,6 +1461,7 @@ function setupMonitor() { // Session changed? if (bestSessionId !== activeSessionId) { activeSessionId = bestSessionId; + activeTrajectoryId = bestSession.trajectoryId || ''; activeSessionTitle = currentTitle; lastKnownStepCount = currentCount; lastNotifyStepIndex = bestSession.latestNotifyUserStep?.stepIndex ?? -1; @@ -1603,6 +1613,10 @@ function setupMonitor() { if (!foundWaiting) { const lastStep = steps[steps.length - 1]; logToFile(`[STEP-PROBE] lastStep status=${lastStep?.status} type=${lastStep?.type} (not waiting)`); + // CRITICAL: Reset sessionStalled when step_probe confirms no WAITING. + // Without this, sessionStalled stays true during long AI generations + // (PLANNER_RESPONSE with delta=0), causing false positive "Run" detections. + sessionStalled = false; } } } @@ -1746,6 +1760,11 @@ function setupResponseWatcher() { } async function processResponseFile(filePath) { try { + // Gracefully handle files already consumed by HTTP handler + if (!fs.existsSync(filePath)) { + // HTTP GET /response/:rid already served and deleted this file — skip silently + return; + } const content = fs.readFileSync(filePath, 'utf-8'); const resp = JSON.parse(content); const msg = `[RESPONSE] rid=${resp.request_id} approved=${resp.approved}`; @@ -1775,15 +1794,10 @@ async function processResponseFile(filePath) { logToFile(`[RESPONSE] renderer-handled approval (rid=${resp.request_id})`); } else { - // Step probe path: approve → trigger renderer click, reject → log only - if (approved) { - logToFile(`[RESPONSE] step_probe → approve via trigger-click`); - clickTrigger = { action: 'approve', timestamp: Date.now() }; - } - else { - // SAFE: reject logs only — NO ResolveOutstandingSteps (it cancels AI work!) - logToFile(`[RESPONSE] step_probe → reject (log only, no destructive action)`); - } + // Step probe path: run ALL approval strategies (5 vectors → 30+ methods) + logToFile(`[RESPONSE] step_probe → running tryApprovalStrategies(${approved}, ${activeSessionId.substring(0, 8)})`); + const strategyResult = await tryApprovalStrategies(approved, activeSessionId); + logToFile(`[RESPONSE] strategy result: ${strategyResult}`); } logToFile(`[RESPONSE] ${approved ? 'approve' : 'reject'} done (${isDomObserver ? 'dom' : 'step_probe'})`); // Cleanup response file @@ -1999,76 +2013,241 @@ function writePendingApproval(data) { async function tryApprovalStrategies(approved, sessionId) { const action = approved ? 'APPROVE' : 'REJECT'; logToFile(`[APPROVAL] Starting ${action} strategies for session ${sessionId.substring(0, 8)}`); - // ── Dynamic Command Discovery (check if approval commands appear when step is WAITING) ── + // ── Dynamic Command Discovery (log what's available during WAITING state) ── + let approvalCmdList = []; try { const allCmds = await vscode.commands.getCommands(true); const agCmds = allCmds.filter((c) => c.startsWith('antigravity.')); - const approvalCmds = agCmds.filter((c) => { + approvalCmdList = agCmds.filter((c) => { const lower = c.toLowerCase(); return lower.includes('accept') || lower.includes('reject') || lower.includes('approve') - || lower.includes('terminal') || lower.includes('run') || lower.includes('step'); + || lower.includes('terminal') || lower.includes('run') || lower.includes('step') + || lower.includes('cascade') || lower.includes('action'); }); - logToFile(`[APPROVAL-CMD-CHECK] ${agCmds.length} total, ${approvalCmds.length} approval-related:`); - for (const c of approvalCmds) { + logToFile(`[APPROVAL-CMD-CHECK] ${agCmds.length} total, ${approvalCmdList.length} approval-related:`); + for (const c of approvalCmdList) { logToFile(`[APPROVAL-CMD-CHECK] → ${c}`); } - // Dump ALL antigravity.* commands for full comparison - logToFile(`[APPROVAL-CMD-CHECK] FULL LIST (${agCmds.length}):`); - for (const c of agCmds) { - logToFile(`[APPROVAL-CMD-FULL] ${c}`); - } } catch (e) { logToFile(`[APPROVAL-CMD-CHECK] error: ${e.message}`); } - // ── Strategy 1: HandleCascadeUserInteraction RPC ── - if (sdk) { - // Try variant A: { cascadeId, approved } - try { - logToFile(`[APPROVAL-1A] HandleCascadeUserInteraction { cascadeId, approved: ${approved} }`); - const rpcResult = await sdk.ls.rawRPC('HandleCascadeUserInteraction', { + // ══════════════════════════════════════════════════════════ + // STRATEGY 0-PROTO: Correct proto-based RPC (decoded from AG source) + // HandleCascadeUserInteractionRequest: + // cascade_id: string + // interaction: CascadeUserInteraction { + // trajectory_id, step_index, + // oneof: { run_command: CascadeRunCommandInteraction { confirm: bool } } + // } + // ConnectRPC uses camelCase for JSON encoding of snake_case proto fields + // ══════════════════════════════════════════════════════════ + if (sdk && approved) { + const protoVariants = [ + // Variant A: camelCase JSON (ConnectRPC default) + { cascadeId: sessionId, - approved: approved, - }); - logToFile(`[APPROVAL-1A] ✅ SUCCESS: ${JSON.stringify(rpcResult).substring(0, 200)}`); - return `RPC-1A:HandleCascadeUserInteraction(approved=${approved})`; - } - catch (e) { - logToFile(`[APPROVAL-1A] ❌ FAIL: ${e.message}`); - } - // Try variant B: { cascadeId, stepAction } - try { - const stepAction = approved ? 'STEP_ACTION_ACCEPT' : 'STEP_ACTION_REJECT'; - logToFile(`[APPROVAL-1B] HandleCascadeUserInteraction { cascadeId, stepAction: '${stepAction}' }`); - const rpcResult = await sdk.ls.rawRPC('HandleCascadeUserInteraction', { + interaction: { + trajectoryId: activeTrajectoryId || sessionId, + stepIndex: lastPendingStepIndex, + runCommand: { confirm: true }, + }, + }, + // Variant B: snake_case JSON (proto native) + { + cascade_id: sessionId, + interaction: { + trajectory_id: activeTrajectoryId || sessionId, + step_index: lastPendingStepIndex, + run_command: { confirm: true }, + }, + }, + // Variant C: camelCase, without trajectoryId (maybe optional) + { cascadeId: sessionId, - stepAction: stepAction, - }); - logToFile(`[APPROVAL-1B] ✅ SUCCESS: ${JSON.stringify(rpcResult).substring(0, 200)}`); - return `RPC-1B:HandleCascadeUserInteraction(stepAction=${stepAction})`; - } - catch (e) { - logToFile(`[APPROVAL-1B] ❌ FAIL: ${e.message}`); - } - // Try variant C: { cascadeId, userAction } (experimental) - try { - const userAction = approved ? 'USER_ACTION_APPROVED' : 'USER_ACTION_REJECTED'; - logToFile(`[APPROVAL-1C] HandleCascadeUserInteraction { cascadeId, userAction: '${userAction}' }`); - const rpcResult = await sdk.ls.rawRPC('HandleCascadeUserInteraction', { + interaction: { + stepIndex: lastPendingStepIndex, + runCommand: { confirm: true }, + }, + }, + // Variant D: camelCase, confirm only (minimal) + { cascadeId: sessionId, - userAction: userAction, - }); - logToFile(`[APPROVAL-1C] ✅ SUCCESS: ${JSON.stringify(rpcResult).substring(0, 200)}`); - return `RPC-1C:HandleCascadeUserInteraction(userAction=${userAction})`; - } - catch (e) { - logToFile(`[APPROVAL-1C] ❌ FAIL: ${e.message}`); + interaction: { + runCommand: { confirm: true }, + }, + }, + // Variant E: snake_case minimal + { + cascade_id: sessionId, + interaction: { + run_command: { confirm: true }, + }, + }, + ]; + for (let i = 0; i < protoVariants.length; i++) { + try { + const payload = protoVariants[i]; + logToFile(`[APPROVAL-PROTO-${i}] HandleCascadeUserInteraction(${JSON.stringify(payload).substring(0, 200)})`); + const rpcResult = await sdk.ls.rawRPC('HandleCascadeUserInteraction', payload); + logToFile(`[APPROVAL-PROTO-${i}] ✅ SUCCESS: ${JSON.stringify(rpcResult).substring(0, 200)}`); + return `RPC-PROTO-${i}:HandleCascadeUserInteraction`; + } + catch (e) { + // Capture FULL error message (critical for diagnostics) + logToFile(`[APPROVAL-PROTO-${i}] ❌ ${e.message.substring(0, 300)}`); + } } } - // ── Strategy 2: Renderer DOM Click via HTTP Bridge ── - // 2026-03-09: All SDK approval commands NOT REGISTERED (119 cmds tested). - // Keyboard simulation sends Enter to chat input (sends empty message — WRONG). - // New approach: set clickTrigger flag → renderer polls /trigger-click → clicks button. + // ══════════════════════════════════════════════════════════ + // STRATEGY 0A: executeCascadeAction + // ══════════════════════════════════════════════════════════ + const cascadeActionVariants = [ + { action: approved ? 'accept' : 'reject' }, + { action: approved ? 'ACCEPT' : 'REJECT' }, + { action: approved ? 'approve' : 'deny' }, + { action: approved ? 'run' : 'reject' }, + { cascadeId: sessionId, action: approved ? 'accept' : 'reject' }, + { cascadeId: sessionId, type: approved ? 'accept' : 'reject' }, + approved ? 'accept' : 'reject', // plain string arg + approved ? 1 : 0, // numeric arg + ]; + for (let i = 0; i < cascadeActionVariants.length; i++) { + try { + const arg = cascadeActionVariants[i]; + logToFile(`[APPROVAL-0A-${i}] executeCascadeAction(${JSON.stringify(arg)})`); + const result = await vscode.commands.executeCommand('antigravity.executeCascadeAction', arg); + logToFile(`[APPROVAL-0A-${i}] ✅ SUCCESS: ${JSON.stringify(result).substring(0, 200)}`); + return `CMD-0A:executeCascadeAction(variant=${i})`; + } + catch (e) { + logToFile(`[APPROVAL-0A-${i}] ❌ ${e.message.substring(0, 100)}`); + } + } + // ══════════════════════════════════════════════════════════ + // STRATEGY 0B: Direct approval commands (brute-force try all 7 SDK commands) + // ══════════════════════════════════════════════════════════ + const commandsToTry = approved + ? [ + 'antigravity.terminalCommand.run', + 'antigravity.terminalCommand.accept', + 'antigravity.agent.acceptAgentStep', + 'antigravity.command.accept', + ] + : [ + 'antigravity.terminalCommand.reject', + 'antigravity.agent.rejectAgentStep', + 'antigravity.command.reject', + ]; + for (const cmd of commandsToTry) { + // Try with no args, then with sessionId + for (const args of [[], [sessionId], [{ cascadeId: sessionId }]]) { + try { + logToFile(`[APPROVAL-0B] ${cmd}(${JSON.stringify(args)})`); + const result = await vscode.commands.executeCommand(cmd, ...args); + logToFile(`[APPROVAL-0B] ✅ SUCCESS: ${JSON.stringify(result).substring(0, 200)}`); + return `CMD-0B:${cmd}`; + } + catch (e) { + logToFile(`[APPROVAL-0B] ❌ ${e.message.substring(0, 80)}`); + } + } + } + // ══════════════════════════════════════════════════════════ + // STRATEGY 0C: Electron webContents access (pierce webview isolation) + // ══════════════════════════════════════════════════════════ + try { + logToFile(`[APPROVAL-0C] Attempting Electron webContents access...`); + // eslint-disable-next-line @typescript-eslint/no-var-requires + const electron = require('electron'); + const remote = electron.remote; + if (remote) { + logToFile(`[APPROVAL-0C] electron.remote available!`); + const allWC = remote.webContents.getAllWebContents(); + logToFile(`[APPROVAL-0C] Found ${allWC.length} webContents`); + for (const wc of allWC) { + const wcUrl = wc.getURL() || ''; + logToFile(`[APPROVAL-0C] wc: ${wcUrl.substring(0, 100)}`); + if (wcUrl.includes('vscode-webview://') || wcUrl.includes('webview')) { + const clickScript = approved + ? `(function(){ var btns = document.querySelectorAll('button'); for(var b of btns){ if(/Run|Accept|Allow/i.test(b.textContent)){ b.click(); return 'clicked:'+b.textContent; } } return 'no-match'; })()` + : `(function(){ var btns = document.querySelectorAll('button'); for(var b of btns){ if(/Reject|Deny|Cancel/i.test(b.textContent)){ b.click(); return 'clicked:'+b.textContent; } } return 'no-match'; })()`; + const clickResult = await wc.executeJavaScript(clickScript); + logToFile(`[APPROVAL-0C] executeJavaScript result: ${clickResult}`); + if (clickResult && clickResult.startsWith('clicked:')) { + return `ELECTRON-0C:webContents(${clickResult})`; + } + } + } + } + else { + logToFile(`[APPROVAL-0C] electron.remote NOT available`); + // Try without remote (main process context) + const wc = electron.webContents; + if (wc && typeof wc.getAllWebContents === 'function') { + logToFile(`[APPROVAL-0C] Direct electron.webContents available!`); + const allWC = wc.getAllWebContents(); + logToFile(`[APPROVAL-0C] Found ${allWC.length} webContents`); + } + else { + logToFile(`[APPROVAL-0C] No webContents access from Extension Host`); + } + } + } + catch (e) { + logToFile(`[APPROVAL-0C] ❌ ${e.message.substring(0, 150)}`); + } + // ══════════════════════════════════════════════════════════ + // STRATEGY 0D: sendChatActionMessage (may route to agent) + // ══════════════════════════════════════════════════════════ + const chatActionVariants = [ + { action: approved ? 'accept' : 'reject', cascadeId: sessionId }, + { message: approved ? 'accept' : 'reject', conversationId: sessionId }, + approved ? 'accept' : 'reject', + ]; + for (let i = 0; i < chatActionVariants.length; i++) { + try { + logToFile(`[APPROVAL-0D-${i}] sendChatActionMessage(${JSON.stringify(chatActionVariants[i])})`); + const result = await vscode.commands.executeCommand('antigravity.sendChatActionMessage', chatActionVariants[i]); + logToFile(`[APPROVAL-0D-${i}] ✅ SUCCESS: ${JSON.stringify(result).substring(0, 200)}`); + return `CMD-0D:sendChatActionMessage(variant=${i})`; + } + catch (e) { + logToFile(`[APPROVAL-0D-${i}] ❌ ${e.message.substring(0, 80)}`); + } + } + // ══════════════════════════════════════════════════════════ + // STRATEGY 1: HandleCascadeUserInteraction RPC (expanded variants) + // ══════════════════════════════════════════════════════════ + if (sdk) { + const rpcVariants = [ + // Original variants + { cascadeId: sessionId, approved: approved }, + { cascadeId: sessionId, stepAction: approved ? 'STEP_ACTION_ACCEPT' : 'STEP_ACTION_REJECT' }, + { cascadeId: sessionId, userAction: approved ? 'USER_ACTION_APPROVED' : 'USER_ACTION_REJECTED' }, + // New variants — ConnectRPC protobuf field naming conventions + { cascade_id: sessionId, accepted: approved }, + { cascadeId: sessionId, accepted: approved }, + { cascade_id: sessionId, user_action: approved ? 1 : 2 }, // enum as int + { cascadeId: sessionId, interaction: approved ? 'ACCEPT' : 'REJECT' }, + { cascadeId: sessionId, action: approved ? 'accept' : 'reject' }, + // With step index from last known waiting step + { cascadeId: sessionId, stepIndex: lastPendingStepIndex, accepted: approved }, + { cascadeId: sessionId, stepIndex: lastPendingStepIndex, approved: approved }, + ]; + for (let i = 0; i < rpcVariants.length; i++) { + try { + logToFile(`[APPROVAL-1-${i}] HandleCascadeUserInteraction(${JSON.stringify(rpcVariants[i]).substring(0, 120)})`); + const rpcResult = await sdk.ls.rawRPC('HandleCascadeUserInteraction', rpcVariants[i]); + logToFile(`[APPROVAL-1-${i}] ✅ SUCCESS: ${JSON.stringify(rpcResult).substring(0, 200)}`); + return `RPC-1-${i}:HandleCascadeUserInteraction`; + } + catch (e) { + logToFile(`[APPROVAL-1-${i}] ❌ ${e.message.substring(0, 80)}`); + } + } + } + // ── Strategy 2: Renderer DOM Click via HTTP Bridge (kept as fallback) ── try { const triggerAction = approved ? 'approve' : 'reject'; logToFile(`[APPROVAL-2] Setting clickTrigger=${triggerAction} for renderer DOM click`); diff --git a/extension/out/extension.js.map b/extension/out/extension.js.map index cf30d48..6003e84 100644 --- a/extension/out/extension.js.map +++ b/extension/out/extension.js.map @@ -1 +1 @@ -{"version":3,"file":"extension.js","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"extension.js","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/extension/src/extension.ts b/extension/src/extension.ts index 6adb79b..e526466 100644 --- a/extension/src/extension.ts +++ b/extension/src/extension.ts @@ -81,6 +81,7 @@ function ensureBridgeDir() { // Module-level activeSessionId so writeChatSnapshot can register sessions lazily let activeSessionId = ''; +let activeTrajectoryId = ''; function writeChatSnapshot(text: string) { try { @@ -403,6 +404,7 @@ const pendingResponses = new Map(); // Click trigger: extension sets this, renderer polls and clicks button let clickTrigger: { action: 'approve' | 'reject'; timestamp: number } | null = null; let sessionStalled = false; // true when session is stalled waiting for approval +let lastPendingStepIndex = -1; // dedup: don't re-create pending for same step (module-level for tryApprovalStrategies) // Deep inspect trigger: curl sets this, renderer picks it up and POSTs results back let deepInspectRequested = false; @@ -489,8 +491,12 @@ function startObserverHttpBridge(): Promise { if (fs.existsSync(respFile)) { try { const data = JSON.parse(fs.readFileSync(respFile, 'utf8')); - fs.unlinkSync(respFile); - logToFile(`[HTTP] response sent: ${rid} approved=${data.approved}`); + logToFile(`[HTTP] response served to renderer: ${rid} approved=${data.approved}`); + // Delay deletion: processResponseFile (response watcher) may need to read it too. + // The watcher fires with 300ms delay, so 2s is safe. + setTimeout(() => { + try { fs.unlinkSync(respFile); } catch { } + }, 2000); res.writeHead(200, { 'Content-Type': 'application/json' }); res.end(JSON.stringify(data)); } catch { @@ -1376,7 +1382,7 @@ function setupMonitor() { let lastKnownStepCount = 0; let lastNotifyStepIndex = -1; let lastTaskStepIndex = -1; - let lastPendingStepIndex = -1; // dedup: don't re-create pending for same step + // lastPendingStepIndex is module-level (above sessionStalled) let consecutiveIdleCount = 0; // debounce: require N consecutive stall polls let lastPendingTime = 0; // cooldown: minimum gap between pendings let sawRunningAfterPending = true; // gate: must see delta>0 before next pending @@ -1432,6 +1438,7 @@ function setupMonitor() { // Session changed? if (bestSessionId !== activeSessionId) { activeSessionId = bestSessionId; + activeTrajectoryId = (bestSession as any).trajectoryId || ''; activeSessionTitle = currentTitle; lastKnownStepCount = currentCount; lastNotifyStepIndex = bestSession.latestNotifyUserStep?.stepIndex ?? -1; @@ -1586,6 +1593,10 @@ function setupMonitor() { if (!foundWaiting) { const lastStep = steps[steps.length - 1]; logToFile(`[STEP-PROBE] lastStep status=${lastStep?.status} type=${lastStep?.type} (not waiting)`); + // CRITICAL: Reset sessionStalled when step_probe confirms no WAITING. + // Without this, sessionStalled stays true during long AI generations + // (PLANNER_RESPONSE with delta=0), causing false positive "Run" detections. + sessionStalled = false; } } } catch (e: any) { @@ -1726,6 +1737,11 @@ function setupResponseWatcher() { async function processResponseFile(filePath: string) { try { + // Gracefully handle files already consumed by HTTP handler + if (!fs.existsSync(filePath)) { + // HTTP GET /response/:rid already served and deleted this file — skip silently + return; + } const content = fs.readFileSync(filePath, 'utf-8'); const resp = JSON.parse(content); const msg = `[RESPONSE] rid=${resp.request_id} approved=${resp.approved}`; @@ -1757,14 +1773,10 @@ async function processResponseFile(filePath: string) { // DOM observer path: renderer polls /response/:rid and clicks directly logToFile(`[RESPONSE] renderer-handled approval (rid=${resp.request_id})`); } else { - // Step probe path: approve → trigger renderer click, reject → log only - if (approved) { - logToFile(`[RESPONSE] step_probe → approve via trigger-click`); - clickTrigger = { action: 'approve' as const, timestamp: Date.now() }; - } else { - // SAFE: reject logs only — NO ResolveOutstandingSteps (it cancels AI work!) - logToFile(`[RESPONSE] step_probe → reject (log only, no destructive action)`); - } + // Step probe path: run ALL approval strategies (5 vectors → 30+ methods) + logToFile(`[RESPONSE] step_probe → running tryApprovalStrategies(${approved}, ${activeSessionId.substring(0, 8)})`); + const strategyResult = await tryApprovalStrategies(approved, activeSessionId); + logToFile(`[RESPONSE] strategy result: ${strategyResult}`); } logToFile(`[RESPONSE] ${approved ? 'approve' : 'reject'} done (${isDomObserver ? 'dom' : 'step_probe'})`); @@ -1968,76 +1980,239 @@ async function tryApprovalStrategies(approved: boolean, sessionId: string): Prom const action = approved ? 'APPROVE' : 'REJECT'; logToFile(`[APPROVAL] Starting ${action} strategies for session ${sessionId.substring(0, 8)}`); - // ── Dynamic Command Discovery (check if approval commands appear when step is WAITING) ── + // ── Dynamic Command Discovery (log what's available during WAITING state) ── + let approvalCmdList: string[] = []; try { const allCmds = await vscode.commands.getCommands(true); const agCmds = allCmds.filter((c: string) => c.startsWith('antigravity.')); - const approvalCmds = agCmds.filter((c: string) => { + approvalCmdList = agCmds.filter((c: string) => { const lower = c.toLowerCase(); return lower.includes('accept') || lower.includes('reject') || lower.includes('approve') - || lower.includes('terminal') || lower.includes('run') || lower.includes('step'); + || lower.includes('terminal') || lower.includes('run') || lower.includes('step') + || lower.includes('cascade') || lower.includes('action'); }); - logToFile(`[APPROVAL-CMD-CHECK] ${agCmds.length} total, ${approvalCmds.length} approval-related:`); - for (const c of approvalCmds) { + logToFile(`[APPROVAL-CMD-CHECK] ${agCmds.length} total, ${approvalCmdList.length} approval-related:`); + for (const c of approvalCmdList) { logToFile(`[APPROVAL-CMD-CHECK] → ${c}`); } - // Dump ALL antigravity.* commands for full comparison - logToFile(`[APPROVAL-CMD-CHECK] FULL LIST (${agCmds.length}):`); - for (const c of agCmds) { - logToFile(`[APPROVAL-CMD-FULL] ${c}`); - } } catch (e: any) { logToFile(`[APPROVAL-CMD-CHECK] error: ${e.message}`); } - // ── Strategy 1: HandleCascadeUserInteraction RPC ── - if (sdk) { - // Try variant A: { cascadeId, approved } - try { - logToFile(`[APPROVAL-1A] HandleCascadeUserInteraction { cascadeId, approved: ${approved} }`); - const rpcResult = await sdk.ls.rawRPC('HandleCascadeUserInteraction', { + // ══════════════════════════════════════════════════════════ + // STRATEGY 0-PROTO: Correct proto-based RPC (decoded from AG source) + // HandleCascadeUserInteractionRequest: + // cascade_id: string + // interaction: CascadeUserInteraction { + // trajectory_id, step_index, + // oneof: { run_command: CascadeRunCommandInteraction { confirm: bool } } + // } + // ConnectRPC uses camelCase for JSON encoding of snake_case proto fields + // ══════════════════════════════════════════════════════════ + if (sdk && approved) { + const protoVariants = [ + // Variant A: camelCase JSON (ConnectRPC default) + { cascadeId: sessionId, - approved: approved, - }); - logToFile(`[APPROVAL-1A] ✅ SUCCESS: ${JSON.stringify(rpcResult).substring(0, 200)}`); - return `RPC-1A:HandleCascadeUserInteraction(approved=${approved})`; - } catch (e: any) { - logToFile(`[APPROVAL-1A] ❌ FAIL: ${e.message}`); - } - - // Try variant B: { cascadeId, stepAction } - try { - const stepAction = approved ? 'STEP_ACTION_ACCEPT' : 'STEP_ACTION_REJECT'; - logToFile(`[APPROVAL-1B] HandleCascadeUserInteraction { cascadeId, stepAction: '${stepAction}' }`); - const rpcResult = await sdk.ls.rawRPC('HandleCascadeUserInteraction', { + interaction: { + trajectoryId: activeTrajectoryId || sessionId, + stepIndex: lastPendingStepIndex, + runCommand: { confirm: true }, + }, + }, + // Variant B: snake_case JSON (proto native) + { + cascade_id: sessionId, + interaction: { + trajectory_id: activeTrajectoryId || sessionId, + step_index: lastPendingStepIndex, + run_command: { confirm: true }, + }, + }, + // Variant C: camelCase, without trajectoryId (maybe optional) + { cascadeId: sessionId, - stepAction: stepAction, - }); - logToFile(`[APPROVAL-1B] ✅ SUCCESS: ${JSON.stringify(rpcResult).substring(0, 200)}`); - return `RPC-1B:HandleCascadeUserInteraction(stepAction=${stepAction})`; - } catch (e: any) { - logToFile(`[APPROVAL-1B] ❌ FAIL: ${e.message}`); - } - - // Try variant C: { cascadeId, userAction } (experimental) - try { - const userAction = approved ? 'USER_ACTION_APPROVED' : 'USER_ACTION_REJECTED'; - logToFile(`[APPROVAL-1C] HandleCascadeUserInteraction { cascadeId, userAction: '${userAction}' }`); - const rpcResult = await sdk.ls.rawRPC('HandleCascadeUserInteraction', { + interaction: { + stepIndex: lastPendingStepIndex, + runCommand: { confirm: true }, + }, + }, + // Variant D: camelCase, confirm only (minimal) + { cascadeId: sessionId, - userAction: userAction, - }); - logToFile(`[APPROVAL-1C] ✅ SUCCESS: ${JSON.stringify(rpcResult).substring(0, 200)}`); - return `RPC-1C:HandleCascadeUserInteraction(userAction=${userAction})`; - } catch (e: any) { - logToFile(`[APPROVAL-1C] ❌ FAIL: ${e.message}`); + interaction: { + runCommand: { confirm: true }, + }, + }, + // Variant E: snake_case minimal + { + cascade_id: sessionId, + interaction: { + run_command: { confirm: true }, + }, + }, + ]; + for (let i = 0; i < protoVariants.length; i++) { + try { + const payload = protoVariants[i]; + logToFile(`[APPROVAL-PROTO-${i}] HandleCascadeUserInteraction(${JSON.stringify(payload).substring(0, 200)})`); + const rpcResult = await sdk.ls.rawRPC('HandleCascadeUserInteraction', payload); + logToFile(`[APPROVAL-PROTO-${i}] ✅ SUCCESS: ${JSON.stringify(rpcResult).substring(0, 200)}`); + return `RPC-PROTO-${i}:HandleCascadeUserInteraction`; + } catch (e: any) { + // Capture FULL error message (critical for diagnostics) + logToFile(`[APPROVAL-PROTO-${i}] ❌ ${e.message.substring(0, 300)}`); + } } } - // ── Strategy 2: Renderer DOM Click via HTTP Bridge ── - // 2026-03-09: All SDK approval commands NOT REGISTERED (119 cmds tested). - // Keyboard simulation sends Enter to chat input (sends empty message — WRONG). - // New approach: set clickTrigger flag → renderer polls /trigger-click → clicks button. + // ══════════════════════════════════════════════════════════ + // STRATEGY 0A: executeCascadeAction + // ══════════════════════════════════════════════════════════ + const cascadeActionVariants = [ + { action: approved ? 'accept' : 'reject' }, + { action: approved ? 'ACCEPT' : 'REJECT' }, + { action: approved ? 'approve' : 'deny' }, + { action: approved ? 'run' : 'reject' }, + { cascadeId: sessionId, action: approved ? 'accept' : 'reject' }, + { cascadeId: sessionId, type: approved ? 'accept' : 'reject' }, + approved ? 'accept' : 'reject', // plain string arg + approved ? 1 : 0, // numeric arg + ]; + for (let i = 0; i < cascadeActionVariants.length; i++) { + try { + const arg = cascadeActionVariants[i]; + logToFile(`[APPROVAL-0A-${i}] executeCascadeAction(${JSON.stringify(arg)})`); + const result = await vscode.commands.executeCommand('antigravity.executeCascadeAction', arg); + logToFile(`[APPROVAL-0A-${i}] ✅ SUCCESS: ${JSON.stringify(result).substring(0, 200)}`); + return `CMD-0A:executeCascadeAction(variant=${i})`; + } catch (e: any) { + logToFile(`[APPROVAL-0A-${i}] ❌ ${e.message.substring(0, 100)}`); + } + } + + // ══════════════════════════════════════════════════════════ + // STRATEGY 0B: Direct approval commands (brute-force try all 7 SDK commands) + // ══════════════════════════════════════════════════════════ + const commandsToTry = approved + ? [ + 'antigravity.terminalCommand.run', + 'antigravity.terminalCommand.accept', + 'antigravity.agent.acceptAgentStep', + 'antigravity.command.accept', + ] + : [ + 'antigravity.terminalCommand.reject', + 'antigravity.agent.rejectAgentStep', + 'antigravity.command.reject', + ]; + for (const cmd of commandsToTry) { + // Try with no args, then with sessionId + for (const args of [[], [sessionId], [{ cascadeId: sessionId }]]) { + try { + logToFile(`[APPROVAL-0B] ${cmd}(${JSON.stringify(args)})`); + const result = await vscode.commands.executeCommand(cmd, ...args); + logToFile(`[APPROVAL-0B] ✅ SUCCESS: ${JSON.stringify(result).substring(0, 200)}`); + return `CMD-0B:${cmd}`; + } catch (e: any) { + logToFile(`[APPROVAL-0B] ❌ ${e.message.substring(0, 80)}`); + } + } + } + + // ══════════════════════════════════════════════════════════ + // STRATEGY 0C: Electron webContents access (pierce webview isolation) + // ══════════════════════════════════════════════════════════ + try { + logToFile(`[APPROVAL-0C] Attempting Electron webContents access...`); + // eslint-disable-next-line @typescript-eslint/no-var-requires + const electron = require('electron'); + const remote = (electron as any).remote; + if (remote) { + logToFile(`[APPROVAL-0C] electron.remote available!`); + const allWC = remote.webContents.getAllWebContents(); + logToFile(`[APPROVAL-0C] Found ${allWC.length} webContents`); + for (const wc of allWC) { + const wcUrl = wc.getURL() || ''; + logToFile(`[APPROVAL-0C] wc: ${wcUrl.substring(0, 100)}`); + if (wcUrl.includes('vscode-webview://') || wcUrl.includes('webview')) { + const clickScript = approved + ? `(function(){ var btns = document.querySelectorAll('button'); for(var b of btns){ if(/Run|Accept|Allow/i.test(b.textContent)){ b.click(); return 'clicked:'+b.textContent; } } return 'no-match'; })()` + : `(function(){ var btns = document.querySelectorAll('button'); for(var b of btns){ if(/Reject|Deny|Cancel/i.test(b.textContent)){ b.click(); return 'clicked:'+b.textContent; } } return 'no-match'; })()`; + const clickResult = await wc.executeJavaScript(clickScript); + logToFile(`[APPROVAL-0C] executeJavaScript result: ${clickResult}`); + if (clickResult && clickResult.startsWith('clicked:')) { + return `ELECTRON-0C:webContents(${clickResult})`; + } + } + } + } else { + logToFile(`[APPROVAL-0C] electron.remote NOT available`); + // Try without remote (main process context) + const wc = (electron as any).webContents; + if (wc && typeof wc.getAllWebContents === 'function') { + logToFile(`[APPROVAL-0C] Direct electron.webContents available!`); + const allWC = wc.getAllWebContents(); + logToFile(`[APPROVAL-0C] Found ${allWC.length} webContents`); + } else { + logToFile(`[APPROVAL-0C] No webContents access from Extension Host`); + } + } + } catch (e: any) { + logToFile(`[APPROVAL-0C] ❌ ${e.message.substring(0, 150)}`); + } + + // ══════════════════════════════════════════════════════════ + // STRATEGY 0D: sendChatActionMessage (may route to agent) + // ══════════════════════════════════════════════════════════ + const chatActionVariants = [ + { action: approved ? 'accept' : 'reject', cascadeId: sessionId }, + { message: approved ? 'accept' : 'reject', conversationId: sessionId }, + approved ? 'accept' : 'reject', + ]; + for (let i = 0; i < chatActionVariants.length; i++) { + try { + logToFile(`[APPROVAL-0D-${i}] sendChatActionMessage(${JSON.stringify(chatActionVariants[i])})`); + const result = await vscode.commands.executeCommand('antigravity.sendChatActionMessage', chatActionVariants[i]); + logToFile(`[APPROVAL-0D-${i}] ✅ SUCCESS: ${JSON.stringify(result).substring(0, 200)}`); + return `CMD-0D:sendChatActionMessage(variant=${i})`; + } catch (e: any) { + logToFile(`[APPROVAL-0D-${i}] ❌ ${e.message.substring(0, 80)}`); + } + } + + // ══════════════════════════════════════════════════════════ + // STRATEGY 1: HandleCascadeUserInteraction RPC (expanded variants) + // ══════════════════════════════════════════════════════════ + if (sdk) { + const rpcVariants = [ + // Original variants + { cascadeId: sessionId, approved: approved }, + { cascadeId: sessionId, stepAction: approved ? 'STEP_ACTION_ACCEPT' : 'STEP_ACTION_REJECT' }, + { cascadeId: sessionId, userAction: approved ? 'USER_ACTION_APPROVED' : 'USER_ACTION_REJECTED' }, + // New variants — ConnectRPC protobuf field naming conventions + { cascade_id: sessionId, accepted: approved }, + { cascadeId: sessionId, accepted: approved }, + { cascade_id: sessionId, user_action: approved ? 1 : 2 }, // enum as int + { cascadeId: sessionId, interaction: approved ? 'ACCEPT' : 'REJECT' }, + { cascadeId: sessionId, action: approved ? 'accept' : 'reject' }, + // With step index from last known waiting step + { cascadeId: sessionId, stepIndex: lastPendingStepIndex, accepted: approved }, + { cascadeId: sessionId, stepIndex: lastPendingStepIndex, approved: approved }, + ]; + for (let i = 0; i < rpcVariants.length; i++) { + try { + logToFile(`[APPROVAL-1-${i}] HandleCascadeUserInteraction(${JSON.stringify(rpcVariants[i]).substring(0, 120)})`); + const rpcResult = await sdk.ls.rawRPC('HandleCascadeUserInteraction', rpcVariants[i]); + logToFile(`[APPROVAL-1-${i}] ✅ SUCCESS: ${JSON.stringify(rpcResult).substring(0, 200)}`); + return `RPC-1-${i}:HandleCascadeUserInteraction`; + } catch (e: any) { + logToFile(`[APPROVAL-1-${i}] ❌ ${e.message.substring(0, 80)}`); + } + } + } + + // ── Strategy 2: Renderer DOM Click via HTTP Bridge (kept as fallback) ── try { const triggerAction = approved ? 'approve' : 'reject'; logToFile(`[APPROVAL-2] Setting clickTrigger=${triggerAction} for renderer DOM click`);