diff --git a/extension/package-lock.json b/extension/package-lock.json index 97a5f93..1eb0812 100644 --- a/extension/package-lock.json +++ b/extension/package-lock.json @@ -1,12 +1,12 @@ { "name": "gravity-bridge", - "version": "0.5.92", + "version": "0.5.93", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "gravity-bridge", - "version": "0.5.92", + "version": "0.5.93", "dependencies": { "cheerio": "^1.2.0", "ws": "^8.19.0" diff --git a/extension/package.json b/extension/package.json index 50a295d..c70f99c 100644 --- a/extension/package.json +++ b/extension/package.json @@ -2,7 +2,7 @@ "name": "gravity-bridge", "displayName": "Gravity Bridge", "description": "Discord-based unified approval system for Antigravity AI interactions.", - "version": "0.5.92", + "version": "0.5.93", "publisher": "variet", "engines": { "vscode": "^1.100.0" diff --git a/extension/src/observer-script.ts b/extension/src/observer-script.ts index d8daa3e..db66616 100644 --- a/extension/src/observer-script.ts +++ b/extension/src/observer-script.ts @@ -189,6 +189,26 @@ export function generateApprovalObserverScript(_port: number): string { _lastContextDebug = _debugTrail.join(' > '); return parts.join(' \u2014 '); } + // v30: Command text is in plain divs near "Running command" header, not pre/code + var rcDivs = node.querySelectorAll('div'); + for (var rci = 0; rci < rcDivs.length; rci++) { + var rcTxt = (rcDivs[rci].textContent || '').trim(); + if (rcTxt === 'Running command' && rcDivs[rci].parentElement) { + var rcP = rcDivs[rci].parentElement; + for (var rcsi = 0; rcsi < rcP.children.length; rcsi++) { + if (rcP.children[rcsi] === rcDivs[rci]) continue; + var sibT = (rcP.children[rcsi].textContent || '').trim(); + var pM = sibT.match(/[\\u003e\\u00bb\\u276f]\\s+(.+)/); + if (pM && pM[1].trim().length > 3) { + var cmdV = pM[1].trim().substring(0, 300); + if (/^(Always|Run|Allow|Cancel|Deny)/i.test(cmdV)) continue; + log('CONTEXT-OK d='+depth+' src=running-cmd trail='+_debugTrail.join(' ')); + _lastContextDebug = _debugTrail.join(' '); + return 'Running command: ' + cmdV; + } + } + } + } // v23: Also search sibling elements at each level // AG Native's command display (pre.font-mono) is a SIBLING of footer, not ancestor if (node && node.parentElement) {