Files
gravity_control/scratch_bundle_search.py

65 lines
2.6 KiB
Python

"""
Search AG bundle for UI component patterns, specifically:
1. Bot message container classes/selectors
2. Approval button patterns
3. Chat conversation structure
"""
import re, os, sys, io
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8', errors='replace')
bundle_path = r"C:\Users\Variet-Worker\AppData\Local\Programs\Antigravity\resources\app\out\jetskiAgent\main.js"
content = open(bundle_path, encoding='utf-8', errors='replace').read()
print(f"Bundle size: {len(content)} chars")
# Search for string literals containing relevant UI text
# These are the strings we SEE in the UI, so they must exist in the bundle
ui_strings = [
'Running', 'command', 'Always run', 'Cancel',
'Allow', 'Deny', 'content_copy',
'Accept', 'Reject', 'Approve',
'AI 대화', 'AI Chat', 'AI Response',
'keyboard_arrow', 'chevron',
'Run ', 'Send',
]
print("\n=== UI String contexts (20 chars around match) ===")
for s in ui_strings:
# Find the string and show surrounding context
idx = content.find(f'"{s}')
if idx == -1:
idx = content.find(f"'{s}")
if idx == -1:
idx = content.find(s)
if idx >= 0:
start = max(0, idx - 30)
end = min(len(content), idx + len(s) + 50)
ctx = content[start:end].replace('\n', ' ')
print(f" '{s}': ...{ctx}...")
# Specifically search for "Running" near button/onClick patterns
print("\n=== 'Running' in button context ===")
for m in re.finditer(r'Running.{0,5}command', content):
start = max(0, m.start() - 100)
end = min(len(content), m.end() + 100)
ctx = content[start:end].replace('\n', ' ')
print(f" @{m.start()}: ...{ctx[:200]}...")
# Search for className patterns with Tailwind classes
print("\n=== Tailwind class patterns near 'message' or 'chat' ===")
for m in re.finditer(r'"((?:flex|bg-|text-|rounded|p-|m-|w-|h-)[^"]{10,200})"', content):
cls = m.group(1)
if any(kw in content[max(0,m.start()-200):m.start()].lower() for kw in ['message', 'chat', 'response', 'bot', 'turn', 'agent']):
print(f" {cls[:100]}")
# Most important: search for React component names
print("\n=== React component names containing 'Message', 'Chat', 'Turn', 'Agent' ===")
for m in re.finditer(r'(?:function|class|const|var)\s+([A-Z][a-zA-Z]*(?:Message|Chat|Turn|Agent|Conversation|Response|Approval|Pending)[A-Za-z]*)', content):
print(f" {m.group(1)}")
# Search for data attributes
print("\n=== data-* attributes ===")
for m in re.finditer(r'"(data-[a-z-]+)"', content):
attr = m.group(1)
if attr not in ('data-vscode-context',):
print(f" {attr}")